diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2Tests.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2Tests.java index 98b2ac88d69..7bb3b5fea06 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2Tests.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2Tests.java @@ -106,7 +106,6 @@ import org.eclipse.cdt.internal.core.parser.ParserException; * @author Doug Schaefer */ public class AST2Tests extends AST2BaseTest { - private static ParserLanguage[] LANGUAGES= {ParserLanguage.C, ParserLanguage.CPP}; public static TestSuite suite() { return suite(AST2Tests.class); @@ -3604,8 +3603,7 @@ public class AST2Tests extends AST2BaseTest { // } public void testBug181305_1() throws Exception { StringBuffer buffer = getContents(1)[0]; - for (int i = 0; i < LANGUAGES.length; i++) { - final ParserLanguage lang= LANGUAGES[i]; + for(ParserLanguage lang : ParserLanguage.values()) { IASTTranslationUnit tu = parse( buffer.toString(), lang, true, true ); // check class @@ -3627,8 +3625,7 @@ public class AST2Tests extends AST2BaseTest { // } public void testBug181305_2() throws Exception { StringBuffer buffer = getContents(1)[0]; - for (int i = 0; i < LANGUAGES.length; i++) { - final ParserLanguage lang= LANGUAGES[i]; + for(ParserLanguage lang : ParserLanguage.values()) { IASTTranslationUnit tu = parse( buffer.toString(), lang, true, true ); // check class @@ -3650,8 +3647,8 @@ public class AST2Tests extends AST2BaseTest { + "int g(int n, int m) {return n;}\n" + "void foo() { f=g; }"; - for (int i = 0; i < LANGUAGES.length; i++) - parseAndCheckBindings(code, LANGUAGES[i]); + for(ParserLanguage lang : ParserLanguage.values()) + parseAndCheckBindings(code, lang); } // void test() { @@ -3659,8 +3656,8 @@ public class AST2Tests extends AST2BaseTest { // } public void testBug181942() throws Exception { StringBuffer buffer = getContents(1)[0]; - for (int i = 0; i < LANGUAGES.length; i++) - parse( buffer.toString(), LANGUAGES[i], true, true ); + for(ParserLanguage lang : ParserLanguage.values()) + parse( buffer.toString(), lang, true, true ); } public void testMacroCommentsBug_177154_2() throws Exception { @@ -3696,8 +3693,8 @@ public class AST2Tests extends AST2BaseTest { // int __builtin_sin; public void testBug182464() throws Exception { StringBuffer buffer = getContents(1)[0]; - for (int i = 0; i < LANGUAGES.length; i++) - parseAndCheckBindings( buffer.toString(), LANGUAGES[i], true); + for(ParserLanguage lang : ParserLanguage.values()) + parseAndCheckBindings( buffer.toString(), lang, true); } public void testBug186018() throws Exception { @@ -3854,8 +3851,8 @@ public class AST2Tests extends AST2BaseTest { // typedef int (*J)(J); public void testBug192165() throws Exception { String content= getContents(1)[0].toString(); - for (int i = 0; i < LANGUAGES.length; i++) { - IASTTranslationUnit tu = parse( content, LANGUAGES[i], true, false ); + for(ParserLanguage lang : ParserLanguage.values()) { + IASTTranslationUnit tu = parse( content, lang, true, false ); CNameCollector col = new CNameCollector(); tu.accept(col); assertInstance(col.getName(0).resolveBinding(), IProblemBinding.class); diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/DOMLocationTests.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/DOMLocationTests.java index aa3d0c7270c..6f89323dfdc 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/DOMLocationTests.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/DOMLocationTests.java @@ -87,8 +87,7 @@ public class DOMLocationTests extends AST2BaseTest { } public void testBaseCase() throws ParserException { - for (ParserLanguage p = ParserLanguage.C; p != null; p = (p == ParserLanguage.C) ? ParserLanguage.CPP - : null) { + for (ParserLanguage p : ParserLanguage.values()) { IASTTranslationUnit tu = parse("int x;", p); //$NON-NLS-1$ IASTDeclaration declaration = tu.getDeclarations()[0]; IASTNodeLocation[] nodeLocations = declaration.getNodeLocations(); @@ -101,19 +100,15 @@ public class DOMLocationTests extends AST2BaseTest { assertEquals(fileLocation.getNodeLength(), 6); IASTNodeLocation[] tuLocations = tu.getNodeLocations(); assertEquals(tuLocations.length, nodeLocations.length); - assertEquals(fileLocation.getFileName(), - ((IASTFileLocation) tuLocations[0]).getFileName()); - assertEquals(fileLocation.getNodeOffset(), tuLocations[0] - .getNodeOffset()); - assertEquals(fileLocation.getNodeLength(), tuLocations[0] - .getNodeLength()); + assertEquals(fileLocation.getFileName(), ((IASTFileLocation) tuLocations[0]).getFileName()); + assertEquals(fileLocation.getNodeOffset(), tuLocations[0].getNodeOffset()); + assertEquals(fileLocation.getNodeLength(), tuLocations[0].getNodeLength()); } } public void testSimpleDeclaration() throws ParserException { String code = "int xLen5, * yLength8, zLength16( int );"; //$NON-NLS-1$ - for (ParserLanguage p = ParserLanguage.C; p != null; p = (p == ParserLanguage.C) ? ParserLanguage.CPP - : null) { + for (ParserLanguage p : ParserLanguage.values()) { IASTTranslationUnit tu = parse(code, p); IASTDeclaration[] declarations = tu.getDeclarations(); assertEquals(declarations.length, 1); @@ -132,17 +127,13 @@ public class DOMLocationTests extends AST2BaseTest { IASTDeclarator declarator = declarators[i]; switch (i) { case 0: - assertSoleLocation(declarator, - code.indexOf("xLen5"), "xLen5".length()); //$NON-NLS-1$ //$NON-NLS-2$ + assertSoleLocation(declarator, code.indexOf("xLen5"), "xLen5".length()); //$NON-NLS-1$ //$NON-NLS-2$ break; case 1: - assertSoleLocation(declarator, - code.indexOf("* yLength8"), "* yLength8".length()); //$NON-NLS-1$ //$NON-NLS-2$ + assertSoleLocation(declarator, code.indexOf("* yLength8"), "* yLength8".length()); //$NON-NLS-1$ //$NON-NLS-2$ break; case 2: - assertSoleLocation( - declarator, - code.indexOf("zLength16( int )"), "zLength16( int )".length()); //$NON-NLS-1$ //$NON-NLS-2$ + assertSoleLocation(declarator, code.indexOf("zLength16( int )"), "zLength16( int )".length()); //$NON-NLS-1$ //$NON-NLS-2$ break; } } @@ -152,17 +143,14 @@ public class DOMLocationTests extends AST2BaseTest { public void testSimpleObjectStyleMacroDefinition() throws Exception { String code = "/* hi */\n#define FOOT 0x01\n\n"; //$NON-NLS-1$ - for (ParserLanguage p = ParserLanguage.C; p != null; p = (p == ParserLanguage.C) ? ParserLanguage.CPP - : null) { + for (ParserLanguage p : ParserLanguage.values()) { IASTTranslationUnit tu = parse(code, p); IASTDeclaration[] declarations = tu.getDeclarations(); assertEquals(declarations.length, 0); IASTPreprocessorMacroDefinition[] macros = tu.getMacroDefinitions(); assertNotNull(macros); assertEquals(macros.length, 1); - assertSoleLocation( - macros[0], - code.indexOf("#"), code.indexOf("0x01") + 4 - code.indexOf("#")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + assertSoleLocation(macros[0], code.indexOf("#"), code.indexOf("0x01") + 4 - code.indexOf("#")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ assertTrue(macros[0] instanceof IASTPreprocessorObjectStyleMacroDefinition); assertEquals(macros[0].getName().toString(), "FOOT"); //$NON-NLS-1$ assertEquals(macros[0].getExpansion(), "0x01"); //$NON-NLS-1$ @@ -171,8 +159,7 @@ public class DOMLocationTests extends AST2BaseTest { public void testSimpleFunctionStyleMacroDefinition() throws Exception { String code = "#define FOOBAH( WOOBAH ) JOHN##WOOBAH\n\n"; //$NON-NLS-1$ - for (ParserLanguage p = ParserLanguage.C; p != null; p = (p == ParserLanguage.C) ? ParserLanguage.CPP - : null) { + for (ParserLanguage p : ParserLanguage.values()) { IASTTranslationUnit tu = parse(code, p); IASTDeclaration[] declarations = tu.getDeclarations(); assertEquals(declarations.length, 0); @@ -180,13 +167,10 @@ public class DOMLocationTests extends AST2BaseTest { assertNotNull(macros); assertEquals(macros.length, 1); assertTrue(macros[0] instanceof IASTPreprocessorFunctionStyleMacroDefinition); - assertSoleLocation( - macros[0], - code.indexOf("#define"), code.indexOf("##WOOBAH") + 8 - code.indexOf("#define")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$s + assertSoleLocation(macros[0], code.indexOf("#define"), code.indexOf("##WOOBAH") + 8 - code.indexOf("#define")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$s assertEquals(macros[0].getName().toString(), "FOOBAH"); //$NON-NLS-1$ assertEquals(macros[0].getExpansion(), "JOHN##WOOBAH"); //$NON-NLS-1$ - IASTFunctionStyleMacroParameter[] parms = ((IASTPreprocessorFunctionStyleMacroDefinition) macros[0]) - .getParameters(); + IASTFunctionStyleMacroParameter[] parms = ((IASTPreprocessorFunctionStyleMacroDefinition) macros[0]).getParameters(); assertNotNull(parms); assertEquals(parms.length, 1); assertEquals(parms[0].getParameter(), "WOOBAH"); //$NON-NLS-1$ @@ -221,30 +205,21 @@ public class DOMLocationTests extends AST2BaseTest { assertEquals(declarations.length, 1); IASTFunctionDefinition definition = (IASTFunctionDefinition) declarations[0]; IASTFunctionDeclarator declarator = definition.getDeclarator(); - assertSoleLocation( - declarator, - code.indexOf("foo"), code.indexOf("int x;") + 6 - code.indexOf("foo")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - IASTCompoundStatement body = (IASTCompoundStatement) definition - .getBody(); + assertSoleLocation(declarator, code.indexOf("foo"), code.indexOf("int x;") + 6 - code.indexOf("foo")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + IASTCompoundStatement body = (IASTCompoundStatement) definition.getBody(); assertEquals(body.getStatements().length, 1); - IASTReturnStatement returnStatement = (IASTReturnStatement) body - .getStatements()[0]; - IASTIdExpression expression = (IASTIdExpression) returnStatement - .getReturnValue(); - assertSoleLocation(expression, - code.indexOf("return ") + "return ".length(), 1); //$NON-NLS-1$ //$NON-NLS-2$ + IASTReturnStatement returnStatement = (IASTReturnStatement) body.getStatements()[0]; + IASTIdExpression expression = (IASTIdExpression) returnStatement.getReturnValue(); + assertSoleLocation(expression, code.indexOf("return ") + "return ".length(), 1); //$NON-NLS-1$ //$NON-NLS-2$ } public void testBug84343() throws Exception { String code = "class A {}; int f() {\nA * b = 0;\nreturn b;}"; //$NON-NLS-1$ IASTTranslationUnit tu = parse(code, ParserLanguage.CPP); - IASTFunctionDefinition f = (IASTFunctionDefinition) tu - .getDeclarations()[1]; - IASTDeclarationStatement ds = (IASTDeclarationStatement) ((IASTCompoundStatement) f - .getBody()).getStatements()[0]; + IASTFunctionDefinition f = (IASTFunctionDefinition) tu.getDeclarations()[1]; + IASTDeclarationStatement ds = (IASTDeclarationStatement) ((IASTCompoundStatement) f.getBody()).getStatements()[0]; IASTSimpleDeclaration b = (IASTSimpleDeclaration) ds.getDeclaration(); - ICPPASTNamedTypeSpecifier namedTypeSpec = (ICPPASTNamedTypeSpecifier) b - .getDeclSpecifier(); + ICPPASTNamedTypeSpecifier namedTypeSpec = (ICPPASTNamedTypeSpecifier) b.getDeclSpecifier(); assertSoleLocation(namedTypeSpec, code.indexOf("\nA") + 1, 1); //$NON-NLS-1$ } @@ -252,10 +227,8 @@ public class DOMLocationTests extends AST2BaseTest { String code = "enum hue { red, blue, green };"; //$NON-NLS-1$ IASTTranslationUnit tu = parse(code, ParserLanguage.CPP); IASTSimpleDeclaration d = (IASTSimpleDeclaration) tu.getDeclarations()[0]; - IASTEnumerationSpecifier enumeration = (IASTEnumerationSpecifier) d - .getDeclSpecifier(); - IASTEnumerationSpecifier.IASTEnumerator enumerator = enumeration - .getEnumerators()[0]; + IASTEnumerationSpecifier enumeration = (IASTEnumerationSpecifier) d.getDeclSpecifier(); + IASTEnumerationSpecifier.IASTEnumerator enumerator = enumeration.getEnumerators()[0]; assertSoleLocation(enumerator, code.indexOf("red"), "red".length()); //$NON-NLS-1$ //$NON-NLS-2$ } @@ -263,20 +236,16 @@ public class DOMLocationTests extends AST2BaseTest { String code = "class D { public: int x; };\nclass C : public virtual D {};"; //$NON-NLS-1$ IASTTranslationUnit tu = parse(code, ParserLanguage.CPP); IASTSimpleDeclaration d2 = (IASTSimpleDeclaration) tu.getDeclarations()[1]; - ICPPASTCompositeTypeSpecifier classSpec = (ICPPASTCompositeTypeSpecifier) d2 - .getDeclSpecifier(); - ICPPASTCompositeTypeSpecifier.ICPPASTBaseSpecifier [] bases = classSpec - .getBaseSpecifiers(); - assertSoleLocation(bases[0], - code.indexOf("public virtual D"), "public virtual D".length()); //$NON-NLS-1$ //$NON-NLS-2$ + ICPPASTCompositeTypeSpecifier classSpec = (ICPPASTCompositeTypeSpecifier) d2.getDeclSpecifier(); + ICPPASTCompositeTypeSpecifier.ICPPASTBaseSpecifier [] bases = classSpec.getBaseSpecifiers(); + assertSoleLocation(bases[0], code.indexOf("public virtual D"), "public virtual D".length()); //$NON-NLS-1$ //$NON-NLS-2$ } public void testBug84357() throws Exception { String code = "class X { int a;\n};\nint X:: * pmi = &X::a;"; //$NON-NLS-1$ IASTTranslationUnit tu = parse(code, ParserLanguage.CPP); - IASTSimpleDeclaration pmi = (IASTSimpleDeclaration) tu - .getDeclarations()[1]; + IASTSimpleDeclaration pmi = (IASTSimpleDeclaration) tu.getDeclarations()[1]; IASTDeclarator d = pmi.getDeclarators()[0]; IASTPointerOperator p = d.getPointerOperators()[0]; assertSoleLocation(p, code.indexOf("X:: *"), "X:: *".length()); //$NON-NLS-1$ //$NON-NLS-2$ @@ -284,37 +253,28 @@ public class DOMLocationTests extends AST2BaseTest { public void testBug84367() throws Exception { String code = "void foo( int );"; //$NON-NLS-1$ - for (ParserLanguage p = ParserLanguage.C; p != null; p = (p == ParserLanguage.C) ? ParserLanguage.CPP - : null) { + for (ParserLanguage p : ParserLanguage.values()) { IASTTranslationUnit tu = parse(code, p); - IASTSimpleDeclaration definition = (IASTSimpleDeclaration) tu - .getDeclarations()[0]; - IASTStandardFunctionDeclarator declarator = (IASTStandardFunctionDeclarator) definition - .getDeclarators()[0]; + IASTSimpleDeclaration definition = (IASTSimpleDeclaration) tu.getDeclarations()[0]; + IASTStandardFunctionDeclarator declarator = (IASTStandardFunctionDeclarator) definition.getDeclarators()[0]; IASTParameterDeclaration parameter = declarator.getParameters()[0]; assertSoleLocation(parameter, code.indexOf("int"), 3); //$NON-NLS-1$ - } } public void testElaboratedTypeSpecifier() throws ParserException { String code = "/* blah */ struct A anA; /* blah */"; //$NON-NLS-1$ - for (ParserLanguage p = ParserLanguage.C; p != null; p = (p == ParserLanguage.C) ? ParserLanguage.CPP - : null) { + for (ParserLanguage p : ParserLanguage.values()) { IASTTranslationUnit tu = parse(code, p); - IASTSimpleDeclaration declaration = (IASTSimpleDeclaration) tu - .getDeclarations()[0]; - IASTElaboratedTypeSpecifier elabType = (IASTElaboratedTypeSpecifier) declaration - .getDeclSpecifier(); - assertSoleLocation(elabType, - code.indexOf("struct"), "struct A".length()); //$NON-NLS-1$ //$NON-NLS-2$ + IASTSimpleDeclaration declaration = (IASTSimpleDeclaration) tu.getDeclarations()[0]; + IASTElaboratedTypeSpecifier elabType = (IASTElaboratedTypeSpecifier) declaration.getDeclSpecifier(); + assertSoleLocation(elabType, code.indexOf("struct"), "struct A".length()); //$NON-NLS-1$ //$NON-NLS-2$ } } public void testBug83852() throws Exception { String code = "/* blah */ typedef short jc; int x = 4; jc myJc = (jc)x; "; //$NON-NLS-1$ - for (ParserLanguage p = ParserLanguage.C; p != null; p = (p == ParserLanguage.C) ? ParserLanguage.CPP - : null) { + for (ParserLanguage p : ParserLanguage.values()) { IASTTranslationUnit tu = parse(code, p); IASTDeclaration[] declarations = tu.getDeclarations(); assertEquals(3, declarations.length); @@ -339,8 +299,7 @@ public class DOMLocationTests extends AST2BaseTest { } IASTInitializerExpression initializer = (IASTInitializerExpression) ((IASTSimpleDeclaration) declarations[2]) .getDeclarators()[0].getInitializer(); - IASTCastExpression castExpression = (IASTCastExpression) initializer - .getExpression(); + IASTCastExpression castExpression = (IASTCastExpression) initializer.getExpression(); IASTTypeId typeId = castExpression.getTypeId(); assertSoleLocation(typeId, code.indexOf("(jc)") + 1, "jc".length()); //$NON-NLS-1$ //$NON-NLS-2$ } @@ -348,61 +307,40 @@ public class DOMLocationTests extends AST2BaseTest { public void testBug83853() throws ParserException { String code = "int f() {return (1?0:1); }"; //$NON-NLS-1$ - for (ParserLanguage p = ParserLanguage.C; p != null; p = (p == ParserLanguage.C) ? ParserLanguage.CPP - : null) { + for (ParserLanguage p : ParserLanguage.values()) { IASTTranslationUnit tu = parse(code, p); - IASTFunctionDefinition definition = (IASTFunctionDefinition) tu - .getDeclarations()[0]; - IASTCompoundStatement statement = (IASTCompoundStatement) definition - .getBody(); - IASTReturnStatement returnStatement = (IASTReturnStatement) statement - .getStatements()[0]; - IASTUnaryExpression unaryExpression = (IASTUnaryExpression) returnStatement - .getReturnValue(); - assertEquals(unaryExpression.getOperator(), - IASTUnaryExpression.op_bracketedPrimary); - IASTConditionalExpression conditional = (IASTConditionalExpression) unaryExpression - .getOperand(); - assertSoleLocation(conditional, - code.indexOf("1?0:1"), "1?0:1".length()); //$NON-NLS-1$ //$NON-NLS-2$ + IASTFunctionDefinition definition = (IASTFunctionDefinition) tu.getDeclarations()[0]; + IASTCompoundStatement statement = (IASTCompoundStatement) definition.getBody(); + IASTReturnStatement returnStatement = (IASTReturnStatement) statement.getStatements()[0]; + IASTUnaryExpression unaryExpression = (IASTUnaryExpression) returnStatement.getReturnValue(); + assertEquals(unaryExpression.getOperator(), IASTUnaryExpression.op_bracketedPrimary); + IASTConditionalExpression conditional = (IASTConditionalExpression) unaryExpression.getOperand(); + assertSoleLocation(conditional, code.indexOf("1?0:1"), "1?0:1".length()); //$NON-NLS-1$ //$NON-NLS-2$ } } public void testBug84374() throws Exception { String code = "class P1 { public: int x; };\nclass P2 { public: int x; };\nclass B : public P1, public P2 {};\nvoid main() {\nB * b = new B();\n}"; //$NON-NLS-1$ IASTTranslationUnit tu = parse(code, ParserLanguage.CPP); - IASTFunctionDefinition main = (IASTFunctionDefinition) tu - .getDeclarations()[3]; - IASTCompoundStatement statement = (IASTCompoundStatement) main - .getBody(); - IASTDeclarationStatement decl = (IASTDeclarationStatement) statement - .getStatements()[0]; + IASTFunctionDefinition main = (IASTFunctionDefinition) tu.getDeclarations()[3]; + IASTCompoundStatement statement = (IASTCompoundStatement) main.getBody(); + IASTDeclarationStatement decl = (IASTDeclarationStatement) statement.getStatements()[0]; IASTSimpleDeclaration b = (IASTSimpleDeclaration) decl.getDeclaration(); - IASTInitializerExpression initializerExpression = (IASTInitializerExpression) b - .getDeclarators()[0].getInitializer(); - assertSoleLocation(initializerExpression, - code.indexOf("new B()"), "new B()".length()); //$NON-NLS-1$ //$NON-NLS-2$ - ICPPASTNewExpression newExpression = (ICPPASTNewExpression) initializerExpression - .getExpression(); - assertSoleLocation(newExpression, - code.indexOf("new B()"), "new B()".length()); //$NON-NLS-1$ //$NON-NLS-2$ + IASTInitializerExpression initializerExpression = (IASTInitializerExpression) b.getDeclarators()[0].getInitializer(); + assertSoleLocation(initializerExpression,code.indexOf("new B()"), "new B()".length()); //$NON-NLS-1$ //$NON-NLS-2$ + ICPPASTNewExpression newExpression = (ICPPASTNewExpression) initializerExpression.getExpression(); + assertSoleLocation(newExpression, code.indexOf("new B()"), "new B()".length()); //$NON-NLS-1$ //$NON-NLS-2$ } public void testBug83737() throws Exception { String code = "void f() { if( a == 0 ) g( a ); else if( a < 0 ) g( a >> 1 ); else if( a > 0 ) g( *(&a + 2) ); }"; //$NON-NLS-1$ - for (ParserLanguage p = ParserLanguage.C; p != null; p = (p == ParserLanguage.C) ? ParserLanguage.CPP - : null) { + for (ParserLanguage p : ParserLanguage.values()) { IASTTranslationUnit tu = parse(code, p); - IASTFunctionDefinition definition = (IASTFunctionDefinition) tu - .getDeclarations()[0]; - IASTCompoundStatement statement = (IASTCompoundStatement) definition - .getBody(); - IASTIfStatement first_if = (IASTIfStatement) statement - .getStatements()[0]; - IASTIfStatement second_if = (IASTIfStatement) first_if - .getElseClause(); - IASTIfStatement third_if = (IASTIfStatement) second_if - .getElseClause(); + IASTFunctionDefinition definition = (IASTFunctionDefinition) tu.getDeclarations()[0]; + IASTCompoundStatement statement = (IASTCompoundStatement) definition.getBody(); + IASTIfStatement first_if = (IASTIfStatement) statement.getStatements()[0]; + IASTIfStatement second_if = (IASTIfStatement) first_if.getElseClause(); + IASTIfStatement third_if = (IASTIfStatement) second_if.getElseClause(); assertNull(third_if.getElseClause()); int first_if_start = code.indexOf("if( a == 0 )"); //$NON-NLS-1$ int total_if_length = "if( a == 0 ) g( a ); else if( a < 0 ) g( a >> 1 ); else if( a > 0 ) g( *(&a + 2) );".length(); //$NON-NLS-1$ @@ -410,10 +348,8 @@ public class DOMLocationTests extends AST2BaseTest { int second_if_start = code.indexOf("if( a < 0 )"); //$NON-NLS-1$ int third_if_start = code.indexOf("if( a > 0 )"); //$NON-NLS-1$ assertSoleLocation(first_if, first_if_start, total_if_length); - assertSoleLocation(second_if, second_if_start, total_if_end - - second_if_start); - assertSoleLocation(third_if, third_if_start, total_if_end - - third_if_start); + assertSoleLocation(second_if, second_if_start, total_if_end - second_if_start); + assertSoleLocation(third_if, third_if_start, total_if_end - third_if_start); } } @@ -421,31 +357,23 @@ public class DOMLocationTests extends AST2BaseTest { String code = "class D { };\n D d1;\n const D d2;\n void foo() {\n typeid(d1) == typeid(d2);\n }"; //$NON-NLS-1$ IASTTranslationUnit tu = parse(code, ParserLanguage.CPP); IASTBinaryExpression bexp = (IASTBinaryExpression) ((IASTExpressionStatement) ((IASTCompoundStatement) ((IASTFunctionDefinition) tu - .getDeclarations()[3]).getBody()).getStatements()[0]) - .getExpression(); + .getDeclarations()[3]).getBody()).getStatements()[0]).getExpression(); IASTUnaryExpression exp = (IASTUnaryExpression) ((IASTBinaryExpression) ((IASTExpressionStatement) ((IASTCompoundStatement) ((IASTFunctionDefinition) tu .getDeclarations()[3]).getBody()).getStatements()[0]) .getExpression()).getOperand1(); - assertSoleLocation( - bexp, - code.indexOf("typeid(d1) == typeid(d2)"), "typeid(d1) == typeid(d2)".length()); //$NON-NLS-1$ //$NON-NLS-2$ - assertSoleLocation(exp, - code.indexOf("typeid(d1)"), "typeid(d1)".length()); //$NON-NLS-1$ //$NON-NLS-2$ + assertSoleLocation(bexp, code.indexOf("typeid(d1) == typeid(d2)"), "typeid(d1) == typeid(d2)".length()); //$NON-NLS-1$ //$NON-NLS-2$ + assertSoleLocation(exp, code.indexOf("typeid(d1)"), "typeid(d1)".length()); //$NON-NLS-1$ //$NON-NLS-2$ exp = (IASTUnaryExpression) ((IASTBinaryExpression) ((IASTExpressionStatement) ((IASTCompoundStatement) ((IASTFunctionDefinition) tu - .getDeclarations()[3]).getBody()).getStatements()[0]) - .getExpression()).getOperand2(); - assertSoleLocation(exp, - code.indexOf("typeid(d2)"), "typeid(d2)".length()); //$NON-NLS-1$ //$NON-NLS-2$ + .getDeclarations()[3]).getBody()).getStatements()[0]).getExpression()).getOperand2(); + assertSoleLocation(exp, code.indexOf("typeid(d2)"), "typeid(d2)".length()); //$NON-NLS-1$ //$NON-NLS-2$ } public void testBug84576() throws Exception { String code = "namespace A {\n extern \"C\" int g();\n }"; //$NON-NLS-1$ IASTTranslationUnit tu = parse(code, ParserLanguage.CPP); - ICPPASTLinkageSpecification spec = (ICPPASTLinkageSpecification) ((ICPPASTNamespaceDefinition) tu - .getDeclarations()[0]).getDeclarations()[0]; - assertSoleLocation(spec, - code.indexOf("extern \"C\""), "extern \"C\" int g();".length()); //$NON-NLS-1$ //$NON-NLS-2$ + ICPPASTLinkageSpecification spec = (ICPPASTLinkageSpecification) ((ICPPASTNamespaceDefinition) tu.getDeclarations()[0]).getDeclarations()[0]; + assertSoleLocation(spec, code.indexOf("extern \"C\""), "extern \"C\" int g();".length()); //$NON-NLS-1$ //$NON-NLS-2$ } public void testSimplePreprocessorStatements() throws Exception @@ -456,8 +384,7 @@ public class DOMLocationTests extends AST2BaseTest { buffer.append( "#undef _APPLE_H_\n"); //$NON-NLS-1$ buffer.append( "#endif\n"); //$NON-NLS-1$ String code = buffer.toString(); - for (ParserLanguage p = ParserLanguage.C; p != null; p = (p == ParserLanguage.C) ? ParserLanguage.CPP - : null) { + for (ParserLanguage p : ParserLanguage.values()) { IASTTranslationUnit tu = parse(code, p); assertEquals( tu.getDeclarations().length, 0 ); IASTPreprocessorStatement [] statements = tu.getAllPreprocessorStatements(); @@ -479,8 +406,7 @@ public class DOMLocationTests extends AST2BaseTest { buffer.append( "#include \n"); //$NON-NLS-1$ buffer.append( "int x;\n"); //$NON-NLS-1$ String code = buffer.toString(); - for (ParserLanguage p = ParserLanguage.C; p != null; p = (p == ParserLanguage.C) ? ParserLanguage.CPP - : null) { + for (ParserLanguage p : ParserLanguage.values()) { IASTTranslationUnit tu = parse(code, p, false, false); IASTDeclaration[] decls= tu.getDeclarations(); assertEquals( decls.length, 1 ); @@ -507,8 +433,7 @@ public class DOMLocationTests extends AST2BaseTest { buffer.append( "#include // more stuff \n"); //$NON-NLS-1$ buffer.append( "int x;\n"); //$NON-NLS-1$ String code = buffer.toString(); - for (ParserLanguage p = ParserLanguage.C; p != null; p = (p == ParserLanguage.C) ? ParserLanguage.CPP - : null) { + for (ParserLanguage p : ParserLanguage.values()) { IASTTranslationUnit tu = parse(code, p, false, false); IASTDeclaration[] decls= tu.getDeclarations(); IASTPreprocessorStatement [] statements = tu.getAllPreprocessorStatements(); @@ -531,8 +456,7 @@ public class DOMLocationTests extends AST2BaseTest { buffer.append( "int x\\i;\n"); // [28-36] buffer.append( "int x2;\n"); // [37-44] String code = buffer.toString(); - for (ParserLanguage p = ParserLanguage.C; p != null; p = (p == ParserLanguage.C) ? ParserLanguage.CPP - : null) { + for (ParserLanguage p : ParserLanguage.values()) { IASTTranslationUnit tu = parse(code, p, false, false); IASTDeclaration[] decls= tu.getDeclarations(); IASTPreprocessorStatement [] statements = tu.getAllPreprocessorStatements(); @@ -553,8 +477,7 @@ public class DOMLocationTests extends AST2BaseTest { buffer.append( "#define ! x\n"); buffer.append( "int x;\n"); String code = buffer.toString(); - for (ParserLanguage p = ParserLanguage.C; p != null; p = (p == ParserLanguage.C) ? ParserLanguage.CPP - : null) { + for (ParserLanguage p : ParserLanguage.values()) { IASTTranslationUnit tu = parse(code, p, false, false); IASTDeclaration[] decls= tu.getDeclarations(); IASTPreprocessorStatement [] statements = tu.getAllPreprocessorStatements(); @@ -573,8 +496,7 @@ public class DOMLocationTests extends AST2BaseTest { buffer.append( "nix(y,z);"); buffer.append( "int x;\n"); String code = buffer.toString(); - for (ParserLanguage p = ParserLanguage.C; p != null; p = (p == ParserLanguage.C) ? ParserLanguage.CPP - : null) { + for (ParserLanguage p : ParserLanguage.values()) { IASTTranslationUnit tu = parse(code, p, false, false); IASTDeclaration[] decls= tu.getDeclarations(); IASTPreprocessorStatement [] statements = tu.getAllPreprocessorStatements(); @@ -593,8 +515,7 @@ public class DOMLocationTests extends AST2BaseTest { buffer.append( "#else\n"); buffer.append( "int x;\n"); String code = buffer.toString(); - for (ParserLanguage p = ParserLanguage.C; p != null; p = (p == ParserLanguage.C) ? ParserLanguage.CPP - : null) { + for (ParserLanguage p : ParserLanguage.values()) { IASTTranslationUnit tu = parse(code, p, false, false); IASTDeclaration[] decls= tu.getDeclarations(); IASTProblem[] problems = tu.getPreprocessorProblems(); @@ -616,8 +537,7 @@ public class DOMLocationTests extends AST2BaseTest { public void testBug86323() throws Exception { String code = "void f() { int i=0; for (; i<10; i++) { } }"; //$NON-NLS-1$ - for (ParserLanguage p = ParserLanguage.C; p != null; p = (p == ParserLanguage.C) ? ParserLanguage.CPP - : null) { + for (ParserLanguage p : ParserLanguage.values()) { IASTTranslationUnit tu = parse(code, p); IASTForStatement for_stmt = (IASTForStatement) ((IASTCompoundStatement)((IASTFunctionDefinition)tu.getDeclarations()[0]).getBody()).getStatements()[1]; assertTrue( for_stmt.getInitializerStatement() instanceof IASTNullStatement ); @@ -740,7 +660,7 @@ public class DOMLocationTests extends AST2BaseTest { } public void testTemplateIdNameLocation_Bug211444() throws Exception { - IASTTranslationUnit tu = parse( "Foo::template test bar;", ParserLanguage.CPP ); //$NON-NLS-1$ + IASTTranslationUnit tu = parse( "Foo::template test bar;", ParserLanguage.CPP ); CPPNameCollector col = new CPPNameCollector(); tu.accept( col ); 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 ee97772e189..8d1efdba775 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPGrammar.g +++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPGrammar.g @@ -483,7 +483,7 @@ nested_name_specifier_opt class_or_namespace_name -- just identifiers ::= class_name - | namespace_name + --| namespace_name -- namespace_name name can only be an identifier token, which is already accepted by class_name postfix_expression @@ -958,9 +958,10 @@ declaration_specifiers declaration_specifiers_opt - ::= declaration_specifiers - | $empty + ::=? $empty -- this option must come first for constructors to parse correctly /. $Build consumeEmpty(); $EndBuild ./ + | declaration_specifiers + -- what about type qualifiers... cv_qualifier @@ -1040,8 +1041,9 @@ function_specifier | 'explicit' -typedef_name - ::= identifier_token +-- We have no way to disambiguate token types +--typedef_name +-- ::= identifier_token --type_specifier @@ -1082,8 +1084,8 @@ simple_type_specifier_token -- last two rules moved here from simple_type_specifier type_name -- all identifiers of some kind ::= class_name - | enum_name - | typedef_name + -- | enum_name + -- | typedef_name -- last two rules moved here from simple_type_specifier @@ -1109,8 +1111,9 @@ elaborated_type_specifier /. $Build consumeTypeSpecifierElaborated(false); $EndBuild ./ -enum_name - ::= identifier_token +-- there is currently no way to disambiguate identifier tokens +--enum_name +-- ::= identifier_token enum_specifier @@ -1131,25 +1134,29 @@ enumerator_list_opt enumerator_definition - ::= enumerator + ::= identifier_token /. $Build consumeEnumerator(false); $EndBuild ./ - | enumerator '=' constant_expression + | identifier_token '=' constant_expression /. $Build consumeEnumerator(true); $EndBuild ./ -enumerator - ::= identifier_token - - namespace_name - ::= original_namespace_name - | namespace_alias - - -original_namespace_name ::= identifier_name + + +--namespace_name +-- ::= original_namespace_name +-- | namespace_alias +--original_namespace_name +-- ::= identifier_name + + +--namespace_alias +-- ::= identifier_token + + namespace_definition ::= named_namespace_definition | unnamed_namespace_definition @@ -1175,8 +1182,7 @@ unnamed_namespace_definition /. $Build consumeNamespaceDefinition(false); $EndBuild ./ -namespace_alias - ::= identifier_token + namespace_alias_definition @@ -1343,7 +1349,7 @@ type_specifier_seq abstract_declarator - ::=? direct_abstract_declarator + ::= direct_abstract_declarator | ptr_operator_seq /. $Build consumeDeclaratorWithPointer(false); $EndBuild ./ | ptr_operator_seq direct_abstract_declarator @@ -1351,10 +1357,8 @@ abstract_declarator direct_abstract_declarator - ::=? basic_direct_abstract_declarator - -direct_abstract_declarator - ::= array_direct_abstract_declarator + ::= basic_direct_abstract_declarator + | array_direct_abstract_declarator | function_direct_abstract_declarator 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 f1161b32dd4..4dd675fb1f3 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 @@ -57,6 +57,7 @@ import org.eclipse.cdt.core.dom.ast.IASTProblem; import org.eclipse.cdt.core.dom.ast.IASTProblemExpression; import org.eclipse.cdt.core.dom.ast.IASTProblemHolder; import org.eclipse.cdt.core.dom.ast.IASTReturnStatement; +import org.eclipse.cdt.core.dom.ast.IASTSimpleDeclSpecifier; import org.eclipse.cdt.core.dom.ast.IASTSimpleDeclaration; import org.eclipse.cdt.core.dom.ast.IASTStatement; import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit; @@ -433,8 +434,8 @@ public abstract class BuildASTParserAction { IASTNode result; if(expressionStatement == null) result = declarationStatement; - //else if(isImplicitInt(decl)) - // result = expressionStatement; + else if(isImplicitInt(decl)) + result = expressionStatement; else result = nodeFactory.newAmbiguousStatement(declarationStatement, expressionStatement); @@ -445,22 +446,30 @@ public abstract class BuildASTParserAction { /** - * TODO : don't think this is correct. - * - * Returns true if the given declaration has unspecified type, + * Returns true if the given declaration has unspecified type, * in this case the type defaults to int and is know as "implicit int". + * + * With implicit int a lot of language constructs can be accidentally parsed + * as declarations: + * + * eg) x = 1; + * Should be an assignment statement but can also be parsed as a declaration + * of a variable x, of unspecified type, initialized to 1. + * + * These cases are easy to detect (using this method) and the wrong interpretation + * as a declaration is discarded. */ -// protected static boolean isImplicitInt(IASTDeclaration declaration) { -// if(declaration instanceof IASTSimpleDeclaration) { -// IASTDeclSpecifier declSpec = ((IASTSimpleDeclaration)declaration).getDeclSpecifier(); -// if(declSpec instanceof IASTSimpleDeclSpecifier && -// ((IASTSimpleDeclSpecifier)declSpec).getType() == IASTSimpleDeclSpecifier.t_unspecified) { -// -// return true; -// } -// } -// return false; -// } + protected static boolean isImplicitInt(IASTDeclaration declaration) { + if(declaration instanceof IASTSimpleDeclaration) { + IASTDeclSpecifier declSpec = ((IASTSimpleDeclaration)declaration).getDeclSpecifier(); + if(declSpec instanceof IASTSimpleDeclSpecifier && + ((IASTSimpleDeclSpecifier)declSpec).getType() == IASTSimpleDeclSpecifier.t_unspecified) { + + return true; + } + } + return false; + } /** 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 80c3a246099..7aea45602e1 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 @@ -481,1619 +481,1619 @@ public CPPExpressionStatementParser(String[] mapFrom) { // constructor } // - // Rule 57: postfix_expression ::= postfix_expression [ expression ] + // Rule 56: postfix_expression ::= postfix_expression [ expression ] // - case 57: { action.builder. + case 56: { action.builder. consumeExpressionArraySubscript(); break; } // - // Rule 58: postfix_expression ::= postfix_expression ( expression_list_opt ) + // Rule 57: postfix_expression ::= postfix_expression ( expression_list_opt ) // - case 58: { action.builder. + case 57: { action.builder. consumeExpressionFunctionCall(); break; } // - // Rule 59: postfix_expression ::= simple_type_specifier ( expression_list_opt ) + // Rule 58: postfix_expression ::= simple_type_specifier ( expression_list_opt ) // - case 59: { action.builder. + case 58: { action.builder. consumeExpressionSimpleTypeConstructor(); break; } // - // Rule 60: postfix_expression ::= typename dcolon_opt nested_name_specifier identifier_name ( expression_list_opt ) + // Rule 59: postfix_expression ::= typename dcolon_opt nested_name_specifier 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 ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) + // Rule 61: postfix_expression ::= postfix_expression . qualified_or_unqualified_name // case 61: { action.builder. - consumeExpressionTypeName(); break; - } - - // - // Rule 62: postfix_expression ::= postfix_expression . qualified_or_unqualified_name - // - case 62: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 63: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name + // Rule 62: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name // - case 63: { action.builder. + case 62: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 64: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name + // Rule 63: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name // - case 64: { action.builder. + case 63: { action.builder. consumeExpressionFieldReference(false, true); break; } // - // Rule 65: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name + // Rule 64: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name // - case 65: { action.builder. + case 64: { action.builder. consumeExpressionFieldReference(true, true); break; } // - // Rule 66: postfix_expression ::= postfix_expression . pseudo_destructor_name + // Rule 65: postfix_expression ::= postfix_expression . pseudo_destructor_name // - case 66: { action.builder. + case 65: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 67: postfix_expression ::= postfix_expression -> pseudo_destructor_name + // Rule 66: postfix_expression ::= postfix_expression -> pseudo_destructor_name // - case 67: { action.builder. + case 66: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 68: postfix_expression ::= postfix_expression ++ + // Rule 67: postfix_expression ::= postfix_expression ++ // - case 68: { action.builder. + case 67: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; } // - // Rule 69: postfix_expression ::= postfix_expression -- + // Rule 68: postfix_expression ::= postfix_expression -- // - case 69: { action.builder. + case 68: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; } // - // Rule 70: postfix_expression ::= dynamic_cast < type_id > ( expression ) + // Rule 69: postfix_expression ::= dynamic_cast < type_id > ( expression ) // - case 70: { action.builder. + case 69: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); break; } // - // Rule 71: postfix_expression ::= static_cast < type_id > ( expression ) + // Rule 70: postfix_expression ::= static_cast < type_id > ( expression ) // - case 71: { action.builder. + case 70: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_static_cast); break; } // - // Rule 72: postfix_expression ::= reinterpret_cast < type_id > ( expression ) + // Rule 71: postfix_expression ::= reinterpret_cast < type_id > ( expression ) // - case 72: { action.builder. + case 71: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); break; } // - // Rule 73: postfix_expression ::= const_cast < type_id > ( expression ) + // Rule 72: postfix_expression ::= const_cast < type_id > ( expression ) // - case 73: { action.builder. + case 72: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_const_cast); break; } // - // Rule 74: postfix_expression ::= typeid ( expression ) + // Rule 73: postfix_expression ::= typeid ( expression ) // - case 74: { action.builder. + case 73: { action.builder. consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break; } // - // Rule 75: postfix_expression ::= typeid ( type_id ) + // Rule 74: postfix_expression ::= typeid ( type_id ) // - case 75: { action.builder. + case 74: { action.builder. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid); break; } // - // Rule 76: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name + // Rule 75: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name + // + case 75: { action.builder. + consumePsudoDestructorName(true); break; + } + + // + // Rule 76: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name // case 76: { action.builder. consumePsudoDestructorName(true); break; } // - // Rule 77: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name + // Rule 77: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name // case 77: { action.builder. - consumePsudoDestructorName(true); break; - } - - // - // Rule 78: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name - // - case 78: { action.builder. consumePsudoDestructorName(false); break; } // - // Rule 79: destructor_type_name ::= ~ type_name + // Rule 78: destructor_type_name ::= ~ type_name // - case 79: { action.builder. + case 78: { action.builder. consumeDestructorName(); break; } // - // Rule 83: unary_expression ::= ++ cast_expression + // Rule 82: unary_expression ::= ++ cast_expression // - case 83: { action.builder. + case 82: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; } // - // Rule 84: unary_expression ::= -- cast_expression + // Rule 83: unary_expression ::= -- cast_expression // - case 84: { action.builder. + case 83: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; } // - // Rule 85: unary_expression ::= & cast_expression + // Rule 84: unary_expression ::= & cast_expression // - case 85: { action.builder. + case 84: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; } // - // Rule 86: unary_expression ::= * cast_expression + // Rule 85: unary_expression ::= * cast_expression // - case 86: { action.builder. + case 85: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; } // - // Rule 87: unary_expression ::= + cast_expression + // Rule 86: unary_expression ::= + cast_expression // - case 87: { action.builder. + case 86: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; } // - // Rule 88: unary_expression ::= - cast_expression + // Rule 87: unary_expression ::= - cast_expression // - case 88: { action.builder. + case 87: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; } // - // Rule 89: unary_expression ::= ~ cast_expression + // Rule 88: unary_expression ::= ~ cast_expression // - case 89: { action.builder. + case 88: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; } // - // Rule 90: unary_expression ::= ! cast_expression + // Rule 89: unary_expression ::= ! cast_expression // - case 90: { action.builder. + case 89: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; } // - // Rule 91: unary_expression ::= sizeof unary_expression + // Rule 90: unary_expression ::= sizeof unary_expression // - case 91: { action.builder. + case 90: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; } // - // Rule 92: unary_expression ::= sizeof ( type_id ) + // Rule 91: unary_expression ::= sizeof ( type_id ) // - case 92: { action.builder. + case 91: { action.builder. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_sizeof); break; } // - // Rule 93: new_expression ::= dcolon_opt new new_placement_opt new_type_id new_array_expressions_opt new_initializer_opt + // Rule 92: new_expression ::= dcolon_opt new new_placement_opt new_type_id new_array_expressions_opt new_initializer_opt // - case 93: { action.builder. + case 92: { action.builder. consumeExpressionNew(true); break; } // - // Rule 94: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_array_expressions_opt new_initializer_opt + // Rule 93: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_array_expressions_opt new_initializer_opt // - case 94: { action.builder. + case 93: { action.builder. consumeExpressionNew(false); break; } // - // Rule 96: new_placement_opt ::= $Empty + // Rule 95: new_placement_opt ::= $Empty // - case 96: { action.builder. + case 95: { action.builder. consumeEmpty(); break; } // - // Rule 97: new_type_id ::= type_specifier_seq + // Rule 96: new_type_id ::= type_specifier_seq // - case 97: { action.builder. + case 96: { action.builder. consumeTypeId(false); break; } // - // Rule 98: new_type_id ::= type_specifier_seq new_declarator + // Rule 97: new_type_id ::= type_specifier_seq new_declarator // - case 98: { action.builder. + case 97: { action.builder. consumeTypeId(true); break; } // - // Rule 99: new_declarator ::= new_pointer_operators + // Rule 98: new_declarator ::= new_pointer_operators // - case 99: { action.builder. + case 98: { action.builder. consumeNewDeclarator(); break; } // - // Rule 108: new_initializer_opt ::= $Empty + // Rule 107: new_initializer_opt ::= $Empty // - case 108: { action.builder. + case 107: { action.builder. consumeEmpty(); break; } // - // Rule 109: delete_expression ::= dcolon_opt delete cast_expression + // Rule 108: delete_expression ::= dcolon_opt delete cast_expression // - case 109: { action.builder. + case 108: { action.builder. consumeExpressionDelete(false); break; } // - // Rule 110: delete_expression ::= dcolon_opt delete [ ] cast_expression + // Rule 109: delete_expression ::= dcolon_opt delete [ ] cast_expression // - case 110: { action.builder. + case 109: { action.builder. consumeExpressionDelete(true); break; } // - // Rule 112: cast_expression ::= ( type_id ) cast_expression + // Rule 111: cast_expression ::= ( type_id ) cast_expression // - case 112: { action.builder. + case 111: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_cast); break; } // - // Rule 114: pm_expression ::= pm_expression .* cast_expression + // Rule 113: pm_expression ::= pm_expression .* cast_expression // - case 114: { action.builder. + case 113: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot); break; } // - // Rule 115: pm_expression ::= pm_expression ->* cast_expression + // Rule 114: pm_expression ::= pm_expression ->* cast_expression // - case 115: { action.builder. + case 114: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow); break; } // - // Rule 117: multiplicative_expression ::= multiplicative_expression * pm_expression + // Rule 116: multiplicative_expression ::= multiplicative_expression * pm_expression // - case 117: { action.builder. + case 116: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply); break; } // - // Rule 118: multiplicative_expression ::= multiplicative_expression / pm_expression + // Rule 117: multiplicative_expression ::= multiplicative_expression / pm_expression // - case 118: { action.builder. + case 117: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide); break; } // - // Rule 119: multiplicative_expression ::= multiplicative_expression % pm_expression + // Rule 118: multiplicative_expression ::= multiplicative_expression % pm_expression // - case 119: { action.builder. + case 118: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo); break; } // - // Rule 121: additive_expression ::= additive_expression + multiplicative_expression + // Rule 120: additive_expression ::= additive_expression + multiplicative_expression // - case 121: { action.builder. + case 120: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus); break; } // - // Rule 122: additive_expression ::= additive_expression - multiplicative_expression + // Rule 121: additive_expression ::= additive_expression - multiplicative_expression // - case 122: { action.builder. + case 121: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus); break; } // - // Rule 124: shift_expression ::= shift_expression << additive_expression + // Rule 123: shift_expression ::= shift_expression << additive_expression // - case 124: { action.builder. + case 123: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft); break; } // - // Rule 125: shift_expression ::= shift_expression >> additive_expression + // Rule 124: shift_expression ::= shift_expression >> additive_expression // - case 125: { action.builder. + case 124: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight); break; } // - // Rule 127: relational_expression ::= relational_expression < shift_expression + // Rule 126: relational_expression ::= relational_expression < shift_expression // - case 127: { action.builder. + case 126: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; } // - // Rule 128: relational_expression ::= relational_expression > shift_expression + // Rule 127: relational_expression ::= relational_expression > shift_expression // - case 128: { action.builder. + case 127: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; } // - // Rule 129: relational_expression ::= relational_expression <= shift_expression + // Rule 128: relational_expression ::= relational_expression <= shift_expression // - case 129: { action.builder. + case 128: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; } // - // Rule 130: relational_expression ::= relational_expression >= shift_expression + // Rule 129: relational_expression ::= relational_expression >= shift_expression // - case 130: { action.builder. + case 129: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; } // - // Rule 132: equality_expression ::= equality_expression == relational_expression + // Rule 131: equality_expression ::= equality_expression == relational_expression // - case 132: { action.builder. + case 131: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; } // - // Rule 133: equality_expression ::= equality_expression != relational_expression + // Rule 132: equality_expression ::= equality_expression != relational_expression // - case 133: { action.builder. + case 132: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; } // - // Rule 135: and_expression ::= and_expression & equality_expression + // Rule 134: and_expression ::= and_expression & equality_expression // - case 135: { action.builder. + case 134: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; } // - // Rule 137: exclusive_or_expression ::= exclusive_or_expression ^ and_expression + // Rule 136: exclusive_or_expression ::= exclusive_or_expression ^ and_expression // - case 137: { action.builder. + case 136: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; } // - // Rule 139: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression + // Rule 138: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression // - case 139: { action.builder. + case 138: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; } // - // Rule 141: logical_and_expression ::= logical_and_expression && inclusive_or_expression + // Rule 140: logical_and_expression ::= logical_and_expression && inclusive_or_expression // - case 141: { action.builder. + case 140: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; } // - // Rule 143: logical_or_expression ::= logical_or_expression || logical_and_expression + // Rule 142: logical_or_expression ::= logical_or_expression || logical_and_expression // - case 143: { action.builder. + case 142: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; } // - // Rule 145: conditional_expression ::= logical_or_expression ? expression : assignment_expression + // Rule 144: conditional_expression ::= logical_or_expression ? expression : assignment_expression // - case 145: { action.builder. + case 144: { action.builder. consumeExpressionConditional(); break; } // - // Rule 146: throw_expression ::= throw + // Rule 145: throw_expression ::= throw // - case 146: { action.builder. + case 145: { action.builder. consumeExpressionThrow(false); break; } // - // Rule 147: throw_expression ::= throw assignment_expression + // Rule 146: throw_expression ::= throw assignment_expression // - case 147: { action.builder. + case 146: { action.builder. consumeExpressionThrow(true); break; } // - // Rule 150: assignment_expression ::= logical_or_expression = assignment_expression + // Rule 149: assignment_expression ::= logical_or_expression = assignment_expression // - case 150: { action.builder. + case 149: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; } // - // Rule 151: assignment_expression ::= logical_or_expression *= assignment_expression + // Rule 150: assignment_expression ::= logical_or_expression *= assignment_expression // - case 151: { action.builder. + case 150: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 152: assignment_expression ::= logical_or_expression /= assignment_expression + // Rule 151: assignment_expression ::= logical_or_expression /= assignment_expression // - case 152: { action.builder. + case 151: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; } // - // Rule 153: assignment_expression ::= logical_or_expression %= assignment_expression + // Rule 152: assignment_expression ::= logical_or_expression %= assignment_expression // - case 153: { action.builder. + case 152: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; } // - // Rule 154: assignment_expression ::= logical_or_expression += assignment_expression + // Rule 153: assignment_expression ::= logical_or_expression += assignment_expression // - case 154: { action.builder. + case 153: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; } // - // Rule 155: assignment_expression ::= logical_or_expression -= assignment_expression + // Rule 154: assignment_expression ::= logical_or_expression -= assignment_expression // - case 155: { action.builder. + case 154: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; } // - // Rule 156: assignment_expression ::= logical_or_expression >>= assignment_expression + // Rule 155: assignment_expression ::= logical_or_expression >>= assignment_expression // - case 156: { action.builder. + case 155: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 157: assignment_expression ::= logical_or_expression <<= assignment_expression + // Rule 156: assignment_expression ::= logical_or_expression <<= assignment_expression // - case 157: { action.builder. + case 156: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 158: assignment_expression ::= logical_or_expression &= assignment_expression + // Rule 157: assignment_expression ::= logical_or_expression &= assignment_expression // - case 158: { action.builder. + case 157: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 159: assignment_expression ::= logical_or_expression ^= assignment_expression + // Rule 158: assignment_expression ::= logical_or_expression ^= assignment_expression // - case 159: { action.builder. + case 158: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 160: assignment_expression ::= logical_or_expression |= assignment_expression + // Rule 159: assignment_expression ::= logical_or_expression |= assignment_expression // - case 160: { action.builder. + case 159: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 162: expression ::= ERROR_TOKEN + // Rule 161: expression ::= ERROR_TOKEN // - case 162: { action.builder. + case 161: { action.builder. consumeExpressionProblem(); break; } // - // Rule 163: expression_list ::= expression_list_actual + // Rule 162: expression_list ::= expression_list_actual // - case 163: { action.builder. + case 162: { action.builder. consumeExpressionList(); break; } // - // Rule 167: expression_list_opt ::= $Empty + // Rule 166: expression_list_opt ::= $Empty // - case 167: { action.builder. + case 166: { action.builder. consumeEmpty(); break; } // - // Rule 169: expression_opt ::= $Empty + // Rule 168: expression_opt ::= $Empty // - case 169: { action.builder. + case 168: { action.builder. consumeEmpty(); break; } // - // Rule 172: constant_expression_opt ::= $Empty + // Rule 171: constant_expression_opt ::= $Empty // - case 172: { action.builder. + case 171: { action.builder. consumeEmpty(); break; } // - // Rule 181: statement ::= ERROR_TOKEN + // Rule 180: statement ::= ERROR_TOKEN // - case 181: { action.builder. + case 180: { action.builder. consumeStatementProblem(); break; } // - // Rule 182: labeled_statement ::= identifier : statement + // Rule 181: labeled_statement ::= identifier : statement // - case 182: { action.builder. + case 181: { action.builder. consumeStatementLabeled(); break; } // - // Rule 183: labeled_statement ::= case constant_expression : + // Rule 182: labeled_statement ::= case constant_expression : // - case 183: { action.builder. + case 182: { action.builder. consumeStatementCase(); break; } // - // Rule 184: labeled_statement ::= default : + // Rule 183: labeled_statement ::= default : // - case 184: { action.builder. + case 183: { action.builder. consumeStatementDefault(); break; } // - // Rule 185: expression_statement ::= expression ; + // Rule 184: expression_statement ::= expression ; // - case 185: { action.builder. + case 184: { action.builder. consumeStatementExpression(); break; } // - // Rule 186: expression_statement ::= ; + // Rule 185: expression_statement ::= ; // - case 186: { action.builder. + case 185: { action.builder. consumeStatementNull(); break; } // - // Rule 187: compound_statement ::= { statement_seq } + // Rule 186: compound_statement ::= { statement_seq } // - case 187: { action.builder. + case 186: { action.builder. consumeStatementCompoundStatement(true); break; } // - // Rule 188: compound_statement ::= { } + // Rule 187: compound_statement ::= { } // - case 188: { action.builder. + case 187: { action.builder. consumeStatementCompoundStatement(false); break; } // - // Rule 191: selection_statement ::= if ( condition ) statement + // Rule 190: selection_statement ::= if ( condition ) statement // - case 191: { action.builder. + case 190: { action.builder. consumeStatementIf(false); break; } // - // Rule 192: selection_statement ::= if ( condition ) statement else statement + // Rule 191: selection_statement ::= if ( condition ) statement else statement // - case 192: { action.builder. + case 191: { action.builder. consumeStatementIf(true); break; } // - // Rule 193: selection_statement ::= switch ( condition ) statement + // Rule 192: selection_statement ::= switch ( condition ) statement // - case 193: { action.builder. + case 192: { action.builder. consumeStatementSwitch(); break; } // - // Rule 195: condition ::= type_specifier_seq declarator = assignment_expression + // Rule 194: condition ::= type_specifier_seq declarator = assignment_expression // - case 195: { action.builder. + case 194: { action.builder. consumeConditionDeclaration(); break; } // - // Rule 196: iteration_statement ::= while ( condition ) statement + // Rule 195: iteration_statement ::= while ( condition ) statement // - case 196: { action.builder. + case 195: { action.builder. consumeStatementWhileLoop(); break; } // - // Rule 197: iteration_statement ::= do statement while ( expression ) ; + // Rule 196: iteration_statement ::= do statement while ( expression ) ; // - case 197: { action.builder. + case 196: { action.builder. consumeStatementDoLoop(); break; } // - // Rule 198: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement + // Rule 197: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement + // + case 197: { action.builder. + consumeStatementForLoop(); break; + } + + // + // Rule 198: iteration_statement ::= for ( simple_declaration expression_opt ; expression_opt ) statement // case 198: { action.builder. consumeStatementForLoop(); break; } // - // Rule 199: iteration_statement ::= for ( simple_declaration expression_opt ; expression_opt ) statement + // Rule 199: jump_statement ::= break ; // case 199: { action.builder. - consumeStatementForLoop(); break; - } - - // - // Rule 200: jump_statement ::= break ; - // - case 200: { action.builder. consumeStatementBreak(); break; } // - // Rule 201: jump_statement ::= continue ; + // Rule 200: jump_statement ::= continue ; // - case 201: { action.builder. + case 200: { action.builder. consumeStatementContinue(); break; } // - // Rule 202: jump_statement ::= return expression ; + // Rule 201: jump_statement ::= return expression ; // - case 202: { action.builder. + case 201: { action.builder. consumeStatementReturn(true); break; } // - // Rule 203: jump_statement ::= return ; + // Rule 202: jump_statement ::= return ; // - case 203: { action.builder. + case 202: { action.builder. consumeStatementReturn(false); break; } // - // Rule 204: jump_statement ::= goto identifier_token ; + // Rule 203: jump_statement ::= goto identifier_token ; // - case 204: { action.builder. + case 203: { action.builder. consumeStatementGoto(); break; } // - // Rule 205: declaration_statement ::= block_declaration + // Rule 204: declaration_statement ::= block_declaration + // + case 204: { action.builder. + consumeStatementDeclaration(); break; + } + + // + // Rule 205: declaration_statement ::= function_definition // case 205: { action.builder. consumeStatementDeclaration(); break; } // - // Rule 206: declaration_statement ::= function_definition + // Rule 222: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; // - case 206: { action.builder. - consumeStatementDeclaration(); break; - } - - // - // Rule 223: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; - // - case 223: { action.builder. + case 222: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 224: declaration_specifiers ::= simple_declaration_specifiers + // Rule 223: declaration_specifiers ::= simple_declaration_specifiers // - case 224: { action.builder. + case 223: { action.builder. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 225: declaration_specifiers ::= class_declaration_specifiers + // Rule 224: declaration_specifiers ::= class_declaration_specifiers + // + case 224: { action.builder. + consumeDeclarationSpecifiersComposite(); break; + } + + // + // Rule 225: declaration_specifiers ::= elaborated_declaration_specifiers // case 225: { action.builder. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 226: declaration_specifiers ::= elaborated_declaration_specifiers + // Rule 226: declaration_specifiers ::= enum_declaration_specifiers // case 226: { action.builder. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 227: declaration_specifiers ::= enum_declaration_specifiers + // Rule 227: declaration_specifiers ::= type_name_declaration_specifiers // case 227: { action.builder. - consumeDeclarationSpecifiersComposite(); break; - } - - // - // Rule 228: declaration_specifiers ::= type_name_declaration_specifiers - // - case 228: { action.builder. consumeDeclarationSpecifiersTypeName(); break; } // - // Rule 230: declaration_specifiers_opt ::= $Empty + // Rule 228: declaration_specifiers_opt ::= $Empty // - case 230: { action.builder. + case 228: { action.builder. consumeEmpty(); break; } // - // Rule 234: no_type_declaration_specifier ::= friend + // 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 235: no_type_declaration_specifier ::= typedef + // Rule 262: simple_type_specifier ::= simple_type_specifier_token // - case 235: { action.builder. + case 262: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 264: simple_type_specifier ::= simple_type_specifier_token + // Rule 276: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name // - case 264: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 280: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name - // - case 280: { action.builder. + case 276: { action.builder. consumeQualifiedId(false); break; } // - // Rule 281: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name + // Rule 277: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name // - case 281: { action.builder. + case 277: { action.builder. consumeQualifiedId(false); break; } // - // Rule 282: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name + // Rule 278: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name // - case 282: { action.builder. + case 278: { action.builder. consumeQualifiedId(false); break; } // - // Rule 283: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name + // Rule 279: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name // - case 283: { action.builder. + case 279: { action.builder. consumeQualifiedId(true); break; } // - // Rule 284: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name + // Rule 280: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name // - case 284: { action.builder. + case 280: { action.builder. consumeTypeSpecifierElaborated(false); break; } // - // Rule 285: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name + // Rule 281: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name // - case 285: { action.builder. + case 281: { action.builder. consumeTypeSpecifierElaborated(true); break; } // - // Rule 286: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name + // Rule 282: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name // - case 286: { action.builder. + case 282: { action.builder. consumeTypeSpecifierElaborated(false); break; } // - // Rule 288: enum_specifier ::= enum { enumerator_list_opt } + // Rule 283: enum_specifier ::= enum { enumerator_list_opt } // - case 288: { action.builder. + case 283: { action.builder. consumeTypeSpecifierEnumeration(false); break; } // - // Rule 289: enum_specifier ::= enum identifier_token { enumerator_list_opt } + // Rule 284: enum_specifier ::= enum identifier_token { enumerator_list_opt } // - case 289: { action.builder. + case 284: { action.builder. consumeTypeSpecifierEnumeration(true); break; } // - // Rule 294: enumerator_definition ::= enumerator + // Rule 289: enumerator_definition ::= identifier_token // - case 294: { action.builder. + case 289: { action.builder. consumeEnumerator(false); break; } // - // Rule 295: enumerator_definition ::= enumerator = constant_expression + // Rule 290: enumerator_definition ::= identifier_token = constant_expression // - case 295: { action.builder. + case 290: { action.builder. consumeEnumerator(true); break; } // - // Rule 304: original_namespace_definition ::= namespace identifier_name { declaration_seq_opt } + // Rule 296: original_namespace_definition ::= namespace identifier_name { declaration_seq_opt } // - case 304: { action.builder. + case 296: { action.builder. consumeNamespaceDefinition(true); break; } // - // Rule 305: extension_namespace_definition ::= namespace original_namespace_name { declaration_seq_opt } + // Rule 297: extension_namespace_definition ::= namespace original_namespace_name { declaration_seq_opt } // - case 305: { action.builder. + case 297: { action.builder. consumeNamespaceDefinition(true); break; } // - // Rule 306: unnamed_namespace_definition ::= namespace { declaration_seq_opt } + // Rule 298: unnamed_namespace_definition ::= namespace { declaration_seq_opt } // - case 306: { action.builder. + case 298: { action.builder. consumeNamespaceDefinition(false); break; } // - // Rule 308: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 299: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; // - case 308: { action.builder. + case 299: { action.builder. consumeNamespaceAliasDefinition(); break; } // - // Rule 309: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; + // Rule 300: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; // - case 309: { action.builder. + case 300: { action.builder. consumeUsingDeclaration(); break; } // - // Rule 310: typename_opt ::= typename + // Rule 301: typename_opt ::= typename // - case 310: { action.builder. + case 301: { action.builder. consumePlaceHolder(); break; } // - // Rule 311: typename_opt ::= $Empty + // Rule 302: typename_opt ::= $Empty // - case 311: { action.builder. + case 302: { action.builder. consumeEmpty(); break; } // - // Rule 312: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 303: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; // - case 312: { action.builder. + case 303: { action.builder. consumeUsingDirective(); break; } // - // Rule 313: asm_definition ::= asm ( stringlit ) ; + // Rule 304: asm_definition ::= asm ( stringlit ) ; // - case 313: { action.builder. + case 304: { action.builder. consumeDeclarationASM(); break; } // - // Rule 314: linkage_specification ::= extern stringlit { declaration_seq_opt } + // Rule 305: linkage_specification ::= extern stringlit { declaration_seq_opt } // - case 314: { action.builder. + case 305: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 315: linkage_specification ::= extern stringlit declaration + // Rule 306: linkage_specification ::= extern stringlit declaration // - case 315: { action.builder. + case 306: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 321: init_declarator ::= declarator initializer + // Rule 312: init_declarator ::= declarator initializer // - case 321: { action.builder. + case 312: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 323: declarator ::= ptr_operator_seq direct_declarator + // Rule 314: declarator ::= ptr_operator_seq direct_declarator // - case 323: { action.builder. + case 314: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 325: function_declarator ::= ptr_operator_seq direct_declarator + // Rule 316: function_declarator ::= ptr_operator_seq direct_declarator // - case 325: { action.builder. + case 316: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 329: basic_direct_declarator ::= declarator_id_name + // Rule 320: basic_direct_declarator ::= declarator_id_name // - case 329: { action.builder. + case 320: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 330: basic_direct_declarator ::= ( declarator ) + // Rule 321: basic_direct_declarator ::= ( declarator ) // - case 330: { action.builder. + case 321: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 331: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 322: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 331: { action.builder. + case 322: { action.builder. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 332: array_direct_declarator ::= array_direct_declarator array_modifier + // Rule 323: array_direct_declarator ::= array_direct_declarator array_modifier // - case 332: { action.builder. + case 323: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 333: array_direct_declarator ::= basic_direct_declarator array_modifier + // Rule 324: array_direct_declarator ::= basic_direct_declarator array_modifier // - case 333: { action.builder. + case 324: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 334: array_modifier ::= [ constant_expression ] + // Rule 325: array_modifier ::= [ constant_expression ] // - case 334: { action.builder. + case 325: { action.builder. consumeDirectDeclaratorArrayModifier(true); break; } // - // Rule 335: array_modifier ::= [ ] + // Rule 326: array_modifier ::= [ ] // - case 335: { action.builder. + case 326: { action.builder. consumeDirectDeclaratorArrayModifier(false); break; } // - // Rule 336: ptr_operator ::= * cv_qualifier_seq_opt + // Rule 327: ptr_operator ::= * cv_qualifier_seq_opt // - case 336: { action.builder. + case 327: { action.builder. consumePointer(); break; } // - // Rule 337: ptr_operator ::= & + // Rule 328: ptr_operator ::= & // - case 337: { action.builder. + case 328: { action.builder. consumeReferenceOperator(); break; } // - // Rule 338: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt + // Rule 329: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt // - case 338: { action.builder. + case 329: { action.builder. consumePointerToMember(); break; } // - // Rule 344: cv_qualifier ::= const + // Rule 335: cv_qualifier ::= const // - case 344: { action.builder. + case 335: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 345: cv_qualifier ::= volatile + // Rule 336: cv_qualifier ::= volatile // - case 345: { action.builder. + case 336: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 347: 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 347: { action.builder. + case 338: { action.builder. consumeQualifiedId(false); break; } // - // Rule 348: type_id ::= type_specifier_seq + // Rule 339: type_id ::= type_specifier_seq // - case 348: { action.builder. + case 339: { action.builder. consumeTypeId(false); break; } // - // Rule 349: type_id ::= type_specifier_seq abstract_declarator + // Rule 340: type_id ::= type_specifier_seq abstract_declarator // - case 349: { action.builder. + case 340: { action.builder. consumeTypeId(true); break; } // - // Rule 352: abstract_declarator ::= ptr_operator_seq + // Rule 343: abstract_declarator ::= ptr_operator_seq // - case 352: { action.builder. + case 343: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 353: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator + // Rule 344: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator // - case 353: { action.builder. + case 344: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 357: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 348: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - case 357: { action.builder. + case 348: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 358: array_direct_abstract_declarator ::= array_modifier + // Rule 349: array_direct_abstract_declarator ::= array_modifier // - case 358: { action.builder. + case 349: { action.builder. consumeDirectDeclaratorArrayDeclarator(false); break; } // - // Rule 359: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // Rule 350: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier // - case 359: { action.builder. + case 350: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 360: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier + // Rule 351: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier // - case 360: { action.builder. + case 351: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 361: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 352: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 361: { action.builder. + case 352: { action.builder. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 362: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 353: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 362: { action.builder. + case 353: { action.builder. consumeDirectDeclaratorFunctionDeclarator(false); break; } // - // Rule 363: parameter_declaration_clause ::= parameter_declaration_list_opt ... + // Rule 354: parameter_declaration_clause ::= parameter_declaration_list_opt ... + // + case 354: { action.builder. + consumePlaceHolder(); break; + } + + // + // Rule 355: parameter_declaration_clause ::= parameter_declaration_list_opt + // + case 355: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 356: parameter_declaration_clause ::= parameter_declaration_list , ... + // + case 356: { action.builder. + consumePlaceHolder(); break; + } + + // + // Rule 362: abstract_declarator_opt ::= $Empty + // + case 362: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 363: parameter_declaration ::= declaration_specifiers parameter_init_declarator // case 363: { action.builder. - consumePlaceHolder(); break; - } - - // - // Rule 364: parameter_declaration_clause ::= parameter_declaration_list_opt - // - case 364: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 365: parameter_declaration_clause ::= parameter_declaration_list , ... - // - case 365: { action.builder. - consumePlaceHolder(); break; - } - - // - // Rule 371: abstract_declarator_opt ::= $Empty - // - case 371: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 372: parameter_declaration ::= declaration_specifiers parameter_init_declarator - // - case 372: { action.builder. consumeParameterDeclaration(); break; } // - // Rule 373: parameter_declaration ::= declaration_specifiers + // Rule 364: parameter_declaration ::= declaration_specifiers // - case 373: { action.builder. + case 364: { action.builder. consumeParameterDeclarationWithoutDeclarator(); break; } // - // Rule 375: parameter_init_declarator ::= declarator = parameter_initializer + // Rule 366: parameter_init_declarator ::= declarator = parameter_initializer // - case 375: { action.builder. + case 366: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 377: parameter_init_declarator ::= abstract_declarator = parameter_initializer + // Rule 368: parameter_init_declarator ::= abstract_declarator = parameter_initializer // - case 377: { action.builder. + case 368: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 378: parameter_init_declarator ::= = parameter_initializer + // Rule 369: parameter_init_declarator ::= = parameter_initializer // - case 378: { action.builder. + case 369: { action.builder. consumeDeclaratorWithInitializer(false); break; } // - // Rule 379: parameter_initializer ::= assignment_expression + // Rule 370: parameter_initializer ::= assignment_expression // - case 379: { action.builder. + case 370: { action.builder. consumeInitializer(); break; } // - // Rule 380: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body + // Rule 371: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body // - case 380: { action.builder. + case 371: { action.builder. consumeFunctionDefinition(false); break; } // - // Rule 381: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq + // Rule 372: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq // - case 381: { action.builder. + case 372: { action.builder. consumeFunctionDefinition(true); break; } // - // Rule 384: initializer ::= ( expression_list ) + // Rule 375: initializer ::= ( expression_list ) // - case 384: { action.builder. + case 375: { action.builder. consumeInitializerConstructor(); break; } // - // Rule 385: initializer_clause ::= assignment_expression + // Rule 376: initializer_clause ::= assignment_expression // - case 385: { action.builder. + case 376: { action.builder. consumeInitializer(); break; } // - // Rule 386: initializer_clause ::= { initializer_list , } + // Rule 377: initializer_clause ::= { initializer_list , } // - case 386: { action.builder. + case 377: { action.builder. consumeInitializerList(); break; } // - // Rule 387: initializer_clause ::= { initializer_list } + // Rule 378: initializer_clause ::= { initializer_list } // - case 387: { action.builder. + case 378: { action.builder. consumeInitializerList(); break; } // - // Rule 388: initializer_clause ::= { } + // Rule 379: initializer_clause ::= { } // - case 388: { action.builder. + case 379: { action.builder. consumeInitializerList(); break; } // - // Rule 393: class_specifier ::= class_head { member_declaration_list_opt } + // Rule 384: class_specifier ::= class_head { member_declaration_list_opt } // - case 393: { action.builder. + case 384: { action.builder. consumeClassSpecifier(); break; } // - // Rule 394: class_head ::= class_keyword identifier_name_opt base_clause_opt + // Rule 385: class_head ::= class_keyword identifier_name_opt base_clause_opt // - case 394: { action.builder. + case 385: { action.builder. consumeClassHead(false); break; } // - // Rule 395: class_head ::= class_keyword template_id_name base_clause_opt + // Rule 386: class_head ::= class_keyword template_id_name base_clause_opt // - case 395: { action.builder. + case 386: { action.builder. consumeClassHead(false); break; } // - // Rule 396: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt + // Rule 387: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt // - case 396: { action.builder. + case 387: { action.builder. consumeClassHead(true); break; } // - // Rule 397: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt + // Rule 388: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt // - case 397: { action.builder. + case 388: { action.builder. consumeClassHead(true); break; } // - // Rule 399: identifier_name_opt ::= $Empty + // Rule 390: identifier_name_opt ::= $Empty // - case 399: { action.builder. + case 390: { action.builder. consumeEmpty(); break; } // - // Rule 403: visibility_label ::= access_specifier_keyword : + // Rule 394: visibility_label ::= access_specifier_keyword : // - case 403: { action.builder. + case 394: { action.builder. consumeVisibilityLabel(); break; } // - // Rule 404: member_declaration ::= declaration_specifiers_opt member_declarator_list ; + // Rule 395: member_declaration ::= declaration_specifiers_opt member_declarator_list ; // - case 404: { action.builder. + case 395: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 405: member_declaration ::= declaration_specifiers_opt ; + // Rule 396: member_declaration ::= declaration_specifiers_opt ; // - case 405: { action.builder. + case 396: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 408: 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 408: { action.builder. + case 399: { action.builder. consumeMemberDeclarationQualifiedId(); break; } // - // Rule 412: member_declaration ::= ERROR_TOKEN + // Rule 403: member_declaration ::= ERROR_TOKEN // - case 412: { action.builder. + case 403: { action.builder. consumeDeclarationProblem(); break; } // - // Rule 420: member_declarator ::= declarator constant_initializer + // Rule 411: member_declarator ::= declarator constant_initializer // - case 420: { action.builder. + case 411: { action.builder. consumeMemberDeclaratorWithInitializer(); break; } // - // Rule 421: member_declarator ::= bit_field_declarator : constant_expression + // Rule 412: member_declarator ::= bit_field_declarator : constant_expression // - case 421: { action.builder. + case 412: { action.builder. consumeBitField(true); break; } // - // Rule 422: member_declarator ::= : constant_expression + // Rule 413: member_declarator ::= : constant_expression // - case 422: { action.builder. + case 413: { action.builder. consumeBitField(false); break; } // - // Rule 423: bit_field_declarator ::= identifier_name + // Rule 414: bit_field_declarator ::= identifier_name // - case 423: { action.builder. + case 414: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 424: constant_initializer ::= = constant_expression + // Rule 415: constant_initializer ::= = constant_expression // - case 424: { action.builder. + case 415: { action.builder. consumeInitializer(); break; } // - // Rule 430: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 421: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 430: { action.builder. + case 421: { action.builder. consumeBaseSpecifier(false, false); break; } // - // Rule 431: 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 431: { action.builder. + case 422: { action.builder. consumeBaseSpecifier(true, true); break; } // - // Rule 432: 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 432: { action.builder. + case 423: { action.builder. consumeBaseSpecifier(true, true); break; } // - // Rule 433: 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 433: { action.builder. + case 424: { action.builder. consumeBaseSpecifier(true, false); break; } // - // Rule 434: access_specifier_keyword ::= private + // Rule 425: access_specifier_keyword ::= private // - case 434: { action.builder. + case 425: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 435: access_specifier_keyword ::= protected + // Rule 426: access_specifier_keyword ::= protected // - case 435: { action.builder. + case 426: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 436: access_specifier_keyword ::= public + // Rule 427: access_specifier_keyword ::= public // - case 436: { action.builder. + case 427: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 438: access_specifier_keyword_opt ::= $Empty + // Rule 429: access_specifier_keyword_opt ::= $Empty // - case 438: { action.builder. + case 429: { action.builder. consumeEmpty(); break; } // - // Rule 439: conversion_function_id_name ::= operator conversion_type_id + // Rule 430: conversion_function_id_name ::= operator conversion_type_id // - case 439: { action.builder. + case 430: { action.builder. consumeConversionName(); break; } // - // Rule 440: conversion_type_id ::= type_specifier_seq conversion_declarator + // Rule 431: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 440: { action.builder. + case 431: { action.builder. consumeTypeId(true); break; } // - // Rule 441: conversion_type_id ::= type_specifier_seq + // Rule 432: conversion_type_id ::= type_specifier_seq // - case 441: { action.builder. + case 432: { action.builder. consumeTypeId(false); break; } // - // Rule 442: conversion_declarator ::= ptr_operator_seq + // Rule 433: conversion_declarator ::= ptr_operator_seq // - case 442: { action.builder. + case 433: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 448: mem_initializer ::= mem_initializer_name ( expression_list_opt ) + // Rule 439: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 448: { action.builder. + case 439: { action.builder. consumeConstructorChainInitializer(); break; } // - // Rule 449: 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 449: { action.builder. + case 440: { action.builder. consumeQualifiedId(false); break; } // - // Rule 452: operator_function_id_name ::= operator_id_name < template_argument_list_opt > + // Rule 443: operator_function_id_name ::= operator_id_name < template_argument_list_opt > // - case 452: { action.builder. + case 443: { action.builder. consumeTemplateId(); break; } // - // Rule 453: operator_id_name ::= operator overloadable_operator + // Rule 444: operator_id_name ::= operator overloadable_operator // - case 453: { action.builder. + case 444: { action.builder. consumeOperatorName(); break; } // - // Rule 496: template_declaration ::= export_opt template < template_parameter_list > declaration + // Rule 487: template_declaration ::= export_opt template < template_parameter_list > declaration // - case 496: { action.builder. + case 487: { action.builder. consumeTemplateDeclaration(); break; } // - // Rule 497: export_opt ::= export + // Rule 488: export_opt ::= export // - case 497: { action.builder. + case 488: { action.builder. consumePlaceHolder(); break; } // - // Rule 498: export_opt ::= $Empty + // Rule 489: export_opt ::= $Empty // - case 498: { action.builder. + case 489: { action.builder. consumeEmpty(); break; } // - // Rule 503: type_parameter ::= class identifier_name_opt + // Rule 494: type_parameter ::= class identifier_name_opt // - case 503: { action.builder. + case 494: { action.builder. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 504: type_parameter ::= class identifier_name_opt = type_id + // Rule 495: type_parameter ::= class identifier_name_opt = type_id // - case 504: { action.builder. + case 495: { action.builder. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 505: type_parameter ::= typename identifier_name_opt + // Rule 496: type_parameter ::= typename identifier_name_opt // - case 505: { action.builder. + case 496: { action.builder. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 506: type_parameter ::= typename identifier_name_opt = type_id + // Rule 497: type_parameter ::= typename identifier_name_opt = type_id // - case 506: { action.builder. + case 497: { action.builder. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 507: type_parameter ::= template < template_parameter_list > class identifier_name_opt + // Rule 498: type_parameter ::= template < template_parameter_list > class identifier_name_opt // - case 507: { action.builder. + case 498: { action.builder. consumeTemplatedTypeTemplateParameter(false); break; } // - // Rule 508: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression + // Rule 499: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression // - case 508: { action.builder. + case 499: { action.builder. consumeTemplatedTypeTemplateParameter(true); break; } // - // Rule 509: template_id_name ::= template_identifier < template_argument_list_opt > + // Rule 500: template_id_name ::= template_identifier < template_argument_list_opt > // - case 509: { action.builder. + case 500: { action.builder. consumeTemplateId(); break; } // - // Rule 518: explicit_instantiation ::= template declaration + // Rule 509: explicit_instantiation ::= template declaration // - case 518: { action.builder. + case 509: { action.builder. consumeTemplateExplicitInstantiation(); break; } // - // Rule 519: explicit_specialization ::= template < > declaration + // Rule 510: explicit_specialization ::= template < > declaration // - case 519: { action.builder. + case 510: { action.builder. consumeTemplateExplicitSpecialization(); break; } // - // Rule 520: try_block ::= try compound_statement handler_seq + // Rule 511: try_block ::= try compound_statement handler_seq // - case 520: { action.builder. + case 511: { action.builder. consumeStatementTryBlock(); break; } // - // Rule 523: handler ::= catch ( exception_declaration ) compound_statement + // Rule 514: handler ::= catch ( exception_declaration ) compound_statement // - case 523: { action.builder. + case 514: { action.builder. consumeStatementCatchHandler(false); break; } // - // Rule 524: handler ::= catch ( ... ) compound_statement + // Rule 515: handler ::= catch ( ... ) compound_statement // - case 524: { action.builder. + case 515: { action.builder. consumeStatementCatchHandler(true); break; } // - // Rule 525: exception_declaration ::= type_specifier_seq declarator + // Rule 516: exception_declaration ::= type_specifier_seq declarator // - case 525: { action.builder. + case 516: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 526: exception_declaration ::= type_specifier_seq abstract_declarator + // Rule 517: exception_declaration ::= type_specifier_seq abstract_declarator // - case 526: { action.builder. + case 517: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 527: exception_declaration ::= type_specifier_seq + // Rule 518: exception_declaration ::= type_specifier_seq // - case 527: { action.builder. + case 518: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 535: expression_parser_start ::= ERROR_TOKEN + // Rule 526: expression_parser_start ::= ERROR_TOKEN // - case 535: { 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/CPPExpressionStatementParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParserprs.java index 4521ab920a6..84dcaac3edb 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 @@ -29,7 +29,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 }; }; public final static byte isKeyword[] = IsKeyword.isKeyword; @@ -42,521 +42,505 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse 1,1,1,1,1,1,1,3,1,1, 1,1,1,1,1,1,2,1,1,0, 1,0,4,2,2,2,3,2,3,2, - 2,1,0,1,1,1,4,4,4,8, - 8,3,3,4,4,3,3,2,2,7, - 7,7,7,4,4,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,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,2,2,2,2,2,1,0, - 1,1,1,1,1,1,2,1,2,2, - 2,1,1,2,2,1,2,2,1,2, - 2,1,2,2,1,1,1,1,1,1, + 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, + 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,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,1,1,1,1,3, - 4,4,5,4,5,4,1,5,6,1, - 3,1,0,1,3,1,1,1,1,1, - 1,1,1,6,6,5,1,7,6,1, - 0,6,5,6,4,1,3,1,0,1, - 2,1,3,1,3,1,1,1,1,3, - 9,2,2,3,2,3,1,5,1,2, - 2,1,0,1,1,1,3,1,2,1, - 1,2,3,1,1,1,3,1,2,2, - 9,8,2,1,3,1,3,1,0,1, - 0,2,1,1,3,1,3,2,1,5, - 8,1,2,3,1,5,4,3,1,3, - 1,1,5,4,4,5,5,1,0,1, - 1,1,2,4,2,2,1,5,1,1, - 1,1,1,2,1,0,1,3,1,2, - 3,2,1,2,2,1,0,1,3,3, - 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,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,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,-64,0,0,0,0, - -2,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-212, - 0,0,0,0,0,0,0,0,0,-5, - 0,0,0,0,-360,0,0,-6,0,0, - 0,-361,0,0,0,0,0,0,0,0, - 0,0,0,0,-91,0,0,0,0,0, + 1,1,1,1,2,2,7,1,0,1, + 3,1,1,2,4,2,4,7,9,5, + 1,1,3,1,0,1,1,1,2,4, + 4,1,2,5,5,3,3,1,4,3, + 1,0,1,3,2,1,-64,0,0,0, + 0,-55,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-51,0, - 0,0,0,0,-50,0,0,0,0,0, - -7,0,-344,0,0,-394,0,0,0,-126, - 0,0,0,0,0,0,0,0,-152,0, - 0,0,0,0,-419,0,0,0,0,0, - 0,0,-74,0,0,0,0,0,0,0, - 0,0,0,0,0,-374,0,0,0,-232, - -8,0,-296,0,0,0,0,0,0,-118, + -51,0,0,0,0,0,0,0,0,0, + -67,0,0,0,0,0,-3,0,0,-73, + 0,0,0,0,-2,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,0,0,0,0,0,0,-58,-54, - 0,0,0,0,0,0,0,0,0,-181, - 0,0,0,0,-185,-314,0,0,0,-9, - 0,0,0,0,0,0,0,0,-135,0, + 0,-125,0,0,0,0,0,0,-5,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,0,0,-74,0,0, + 0,0,0,0,0,0,0,0,0,0, + -177,0,0,0,0,-59,0,-229,0,0, + 0,0,0,0,-117,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-248,-55,0, - 0,0,-262,0,0,0,0,-237,0,0, - 0,0,0,0,-146,0,0,0,0,0, - 0,0,0,0,0,0,0,-148,0,0, - 0,0,0,-3,0,0,0,0,0,-138, + 0,0,0,0,-205,0,0,0,-52,0, + 0,0,0,0,-54,0,0,-230,0,0, + 0,-186,0,0,0,0,-235,0,0,0, + -132,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-66, + -6,0,0,0,-12,0,0,0,0,0, + 0,0,0,-178,0,0,0,-128,0,0, + -7,0,0,0,-421,0,-145,0,0,0, + 0,0,0,0,0,0,0,-225,-135,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-234,0, - 0,0,0,0,0,0,0,0,-270,-66, - 0,0,0,0,-310,-75,0,0,0,0, - -10,0,0,0,0,0,0,0,-21,0, + 0,0,-8,0,0,0,0,-311,0,0, + 0,0,0,0,0,0,0,-144,-118,-9, + 0,0,0,0,0,-517,0,0,0,0, + -10,0,0,0,0,0,0,0,0,0, + 0,-148,0,0,0,0,0,0,0,0, + 0,0,0,0,-146,-307,0,-151,0,0, + 0,0,-115,0,0,0,0,0,0,0, + -209,-11,0,0,0,0,0,0,0,0, + -223,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-271,-520,0,0,0,0,-343,0,0, - 0,0,0,0,0,-59,0,0,0,0, - -11,0,0,-226,0,0,0,0,0,0, + 0,0,0,0,-182,0,0,0,0,0, + 0,0,0,-371,0,0,0,0,0,-13, + -515,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-140,0,0,0,0,0, + 0,0,0,0,-58,0,0,0,0,0, + 0,0,0,-328,0,0,0,0,-293,-184, + 0,0,0,0,0,-245,0,0,-354,0, + 0,0,0,0,0,0,0,0,0,-236, + 0,0,0,0,-525,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-289,0, + 0,0,0,0,-14,0,0,0,0,0, + 0,0,0,0,-137,0,0,-234,0,0, + -333,0,0,0,0,0,0,0,0,0, + 0,0,0,-4,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-231,0,0, + 0,0,0,-215,0,0,0,-267,0,0, + 0,0,-15,-298,0,0,0,0,0,0, + 0,0,0,0,-18,0,0,0,0,-323, + 0,0,0,0,-277,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-375,0, + 0,0,0,0,-17,0,0,0,0,0, + 0,0,0,-349,0,0,0,0,0,-313, + 0,0,0,0,-30,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-332,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-31,-314,0,0,0,0,-61, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-185,0, + 0,0,0,0,-32,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-33,-477, + 0,0,0,0,-62,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-187,0,0,0,0,0,-34, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-35,-41,0,0,0,0,-109, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-300,0, + 0,0,0,-247,0,0,0,0,0,0, + 0,0,0,0,-456,0,0,0,-36,-130, + -43,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-189,0,0,0,0,0, + -37,0,0,0,0,0,0,0,0,-110, + -405,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,-285,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-416,0,0,0,-97,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-423,0,0,0,0,-119,0,0, - 0,0,-13,0,0,0,0,0,-233,0, - 0,0,0,0,0,0,-518,0,0,0, + -38,0,0,0,0,0,0,0,0,0, + -192,0,0,0,0,0,-474,0,0,-98, + 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,-203,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-99,0,0,0,0,-131,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -12,0,0,0,0,0,0,0,0,0, - -14,0,0,0,0,-149,0,0,0,0, - 0,-151,0,0,0,0,-250,0,0,0, - 0,0,0,0,-369,0,0,-15,-154,0, + 0,-208,-39,0,0,0,0,0,0,0, + 0,-147,-40,0,0,-100,0,0,0,0, + -138,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-528,0,0,0,0,0,0, + 0,0,0,0,-227,0,0,0,0,0, + 0,0,0,0,-152,0,0,0,-101,0, + 0,0,0,-142,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-147,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-17,0,0,-61,0,0,-238,0, - 0,-331,0,0,0,0,0,0,0,0, - 0,0,-30,-131,-18,0,0,0,0,0, - 0,0,0,-31,-4,0,0,0,0,0, + 0,0,-306,0,0,0,0,-201,0,0, + 0,-102,0,0,0,0,-153,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-228,0,0,0,0, + 0,0,0,0,0,-42,0,0,0,0, + -210,0,0,0,-103,0,0,0,0,-199, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-232,0, + 0,0,0,0,0,0,0,0,-56,0, + 0,0,0,-237,0,0,0,-104,0,0, + 0,0,-244,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-257,0,0,0,0,0,0,0,0, + 0,-57,0,0,0,0,0,0,0,0, + -105,0,0,0,0,-251,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-276,0,0,0,0,0, + -60,0,0,0,-343,0,0,0,0,0, + 0,0,0,-106,0,0,0,0,-252,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-288,0,0, + 0,0,0,-68,0,0,0,-344,0,0, + 0,0,0,0,0,0,-216,0,0,0, + 0,-253,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -301,0,0,0,0,0,-69,0,0,0, + -434,0,0,0,0,0,0,0,0,-510, + 0,0,0,0,-254,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-315,0,0,0,0,0,-507, + 0,0,0,-340,0,0,0,0,0,-71, + 0,0,-310,0,0,0,0,-259,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-272,0,0,0, + 0,-420,0,0,0,0,-286,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,0,-268,0,0,0,0, + 0,0,0,0,0,-72,0,0,0,0, + -243,0,0,0,0,-195,0,0,0,0, + 0,-338,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -261,-111,0,0,0,-295,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,-327,0,0,0,0,0, + 0,0,0,0,-334,0,0,0,0,-250, + 0,0,0,0,0,-296,0,0,0,-309, + -362,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -112,0,0,0,-318,0,0,0,0,-408, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-113, + 0,0,0,-114,0,0,0,0,-270,0, + 0,0,0,-20,0,0,0,0,0,-108, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-321,-121, + 0,0,0,0,0,0,0,0,-95,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-462,0,0,0,0,-317,0,0, + 0,0,-264,0,-93,0,0,0,0,-280, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-281,0, + 0,0,0,-350,-367,0,0,0,-94,0, + 0,0,0,-139,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-91,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -92,0,0,0,0,-326,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-154,0,0,0,0,-53, + 0,0,0,0,-366,0,-275,0,0,0, + 0,-155,0,0,-400,0,0,-156,-214,0, + 0,0,0,0,-84,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-157,0,-158,-85,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,-159,0,-19,-329,0,0,0, + 0,0,0,-49,0,0,0,0,-149,0, + 0,0,0,-160,-357,0,0,-331,0,0, + 0,0,0,-161,0,0,0,0,0,0, + -162,-383,-163,0,0,0,-164,0,0,-165, + -346,0,0,-368,0,0,0,0,0,-166, + 0,0,0,0,0,0,0,-86,0,0, + 0,0,-167,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-436,0,0,0,-87,0,0,0,0, + -351,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-355, + 0,0,0,-239,0,0,0,0,0,0, + 0,0,0,0,0,0,-88,0,0,0, + 0,-168,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -382,0,0,-1,0,0,-169,-202,0,-353, + -241,0,0,0,0,0,-170,-171,0,-402, + -172,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-345,0,0,0,0, + 0,-360,0,0,0,-283,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-498,0,-173,0,0,-89,0,0, + 0,0,-401,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-386,0,0,-451,-389,0,-174,0,0, + 0,0,0,0,0,0,0,0,0,-175, + -176,0,0,0,0,0,0,0,0,0, + -179,0,0,-509,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-180,0, + 0,0,0,0,-352,-181,0,0,0,-79, + 0,0,0,0,-258,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-373,0,-372,0, + 0,0,0,0,0,0,0,0,-190,-191, + 0,-423,-249,0,0,0,0,-196,-197,-200, + 0,-302,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,-80,0,0, + 0,0,-297,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-390,0,-425,0,0,0,0,0,0, + 0,0,-459,0,0,-384,-221,0,-222,-224, + 0,-143,-480,-134,-356,0,0,-50,0,0, + 0,-284,0,-508,-424,0,0,0,0,0, + 0,0,0,0,-238,0,0,-240,0,0, + 0,0,0,0,0,-499,0,0,0,0, + 0,0,0,0,0,0,-410,0,0,-458, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-406,-418,0,0,-119,0, + 0,0,0,0,0,0,0,0,0,0, + -419,0,0,0,-16,-248,0,0,0,0, + 0,0,-262,0,0,-63,-75,0,0,0, + 0,0,0,0,0,0,0,-263,0,0, + 0,0,0,0,0,0,0,0,-273,-136, + 0,0,0,0,0,0,-341,-466,0,0, + 0,-446,0,0,0,0,0,0,0,0, + 0,-428,0,0,0,0,0,0,0,0, + 0,0,0,0,-274,0,0,0,0,0, + -475,0,0,-278,-120,0,-316,0,0,0, + 0,0,-279,0,-290,-294,-123,0,0,0, + 0,-447,0,-426,0,-502,0,-455,0,-430, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-299,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-304,-482,0,0,0,0,0, + 0,-469,0,-394,-305,-503,0,-322,0,0, + 0,0,0,0,0,0,0,0,0,0, + -449,0,0,0,0,0,-319,0,-335,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-453,0, + 0,-337,0,0,-339,-369,0,0,0,-483, + 0,-460,0,0,0,-198,0,-45,-468,0, + -370,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-183,0,0,0,0, + -470,0,-376,-129,0,0,0,0,-378,0, + 0,-381,0,0,0,-387,0,0,0,0, + 0,0,0,0,-388,0,-479,0,0,0, + -396,0,0,0,-473,0,-461,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,-391,0,0,0,-399,0,0, + 0,0,0,0,0,0,-23,0,0,0, + 0,-407,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-409, + 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,-82,0,0,0,0, + -411,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-83, + 0,0,0,0,-412,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-320,0,0,0,0,-487,0, + 0,0,0,0,0,0,-22,0,0,0, + 0,-312,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-471, + -414,-488,0,-348,0,0,-363,0,0,0, + 0,-141,0,0,0,0,0,0,0,0, + -413,0,0,0,0,0,0,-76,-415,0, + 0,-422,0,-395,-427,0,0,-429,-440,0, + 0,0,0,0,-431,0,-500,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-432,0,0,0,0,-122,0, + 0,0,0,0,0,0,0,0,0,-489, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-490,-433,0,0,-493,0,-379,0, + 0,0,0,0,0,-435,-505,0,0,0, + 0,0,0,0,0,-437,0,-501,-486,0, + 0,0,0,-380,0,0,0,0,0,0, + -492,0,0,0,0,0,0,0,-438,0, + 0,0,0,0,0,0,0,-443,-513,0, + -124,-514,0,0,0,-374,0,0,0,0, + -519,0,0,0,0,0,0,0,0,0, + 0,0,-485,0,0,0,0,0,0,0, + 0,0,0,0,-497,0,0,0,0,0, + -516,-524,0,-439,0,-444,0,-448,-457,0, + 0,0,0,0,0,0,0,-521,0,-464, + -472,0,0,0,-392,0,0,0,0,-491, + -506,-255,-518,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-511,0,0,0,0,0,-522,0, + 0,0,-126,0,0,0,0,0,0,0, + 0,0,0,-46,0,0,0,0,0,0, + 0,0,0,0,0,0,-523,-256,-494,0, + 0,0,0,0,-47,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-526,0,0,0,0,0, + 0,0,0,0,0,0,0,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, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-24,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,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,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,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-29,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-65, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-77,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, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,-133,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-32, - 0,-33,-143,-198,0,0,0,0,0,-280, + 0,0,0,0,0,0,0,0,0,0, + 0,-206,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-385,-417,-242,0,0,0, + 0,-217,0,-397,0,0,0,0,0,-504, + 0,0,0,0,0,0,-233,0,0,0, + -512,0,0,0,0,0,0,0,0,0, + 0,0,0,-347,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-187,-228, - 0,0,0,0,0,0,0,0,-326,-62, - -110,-34,0,0,-316,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-335,0, - 0,0,0,0,0,0,0,0,-35,0, - 0,0,0,-403,0,0,-36,0,0,0, - 0,0,0,0,-303,-317,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-309, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-111,-459,0,0, - -480,0,0,0,0,-134,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, - -386,-117,0,0,0,-41,0,0,0,0, - -140,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-188, - 0,0,0,0,0,0,0,0,0,-37, - 0,0,0,0,-145,0,0,0,0,0, - -43,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,-192,0,0,0,0,0, - -454,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,-195, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-156,-150,0,0,0,0, - -98,0,0,0,0,-155,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-424,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -204,-439,-39,0,0,-99,0,0,0,0, - -202,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-40, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-42,0,-56,0,0, - -100,0,0,0,0,-283,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-206,0,0,0,0,0, - -57,0,0,0,-211,0,0,0,0,0, - -213,0,-60,0,0,-101,0,0,0,0, - -330,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-230, - 0,0,0,0,0,-68,-240,-69,0,0, - -102,0,0,0,0,-70,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,-235,0,0,0,0,0, - -247,-254,-72,0,0,-103,0,0,0,0, - -255,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-73, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-256,-257,-112,0,0, - -104,0,0,0,0,-284,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-113,0,0,0,0,0, - 0,0,0,0,-260,0,0,0,0,0, - -114,-501,-115,0,0,-105,0,0,0,0, - -122,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-129, - 0,0,0,0,-264,0,0,0,0,-279, - 0,0,0,0,0,-289,-298,-130,0,0, - -106,0,0,0,0,-329,0,0,0,0, + 0,0,0,-324,0,0,0,-452,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-291,0,0,0,0,0, - -299,-321,-142,0,0,-107,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,0,-304, - 0,0,0,0,0,-157,0,-158,0,0, - -219,0,0,0,0,-353,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-267,0,0,0,0,-318, - -159,0,0,0,0,0,0,0,0,0, - -160,0,-161,0,0,-513,0,0,0,0, - -162,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-324, - 0,0,0,0,0,-163,0,0,0,-332, - 0,0,0,0,0,-67,-370,-164,0,0, - -313,0,0,0,0,-208,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,-426,0,0,0,0,-328, - 0,0,0,0,-165,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-166, - 0,0,0,0,0,0,0,0,-357,0, - 0,0,0,-167,-334,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,-275,0,0,0, - 0,-337,-168,0,0,0,-169,0,0,0, - 0,-364,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-349,0,0,0,0, - 0,0,0,0,0,-170,0,0,0,0, - -180,0,0,0,0,-171,-172,-173,-348,0, - 0,0,0,0,-365,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-495,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-371,-174,0,0,0,0,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,-249,0,0, - 0,0,-385,0,0,0,0,0,0,0, - 0,0,-189,0,0,0,0,-404,-175,-176, - -366,0,0,0,0,-261,-109,0,0,0, + 0,-454,0,0,0,0,0,0,-271,0, + 0,-481,0,0,0,0,0,0,-218,-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,-355,0,0,0,0, - -177,0,0,-178,-179,-96,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-389,0,0,0,0,0, - 0,-94,0,0,0,0,-358,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-312,0,0,0,0, - 0,0,0,0,0,-95,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-292, - 0,0,0,0,-182,-183,0,0,-53,0, - 0,0,0,0,0,-239,0,0,0,0, - -184,0,0,-193,-375,0,0,-217,0,0, - 0,0,0,-92,0,0,0,0,0,0, + -393,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-246,0,0,0,0,-93,0,0, + 0,-358,0,0,0,0,0,0,0,0, + 0,0,0,0,-127,0,0,0,0,0, + 0,0,-150,0,0,0,0,0,0,0, + 0,-478,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-520,-207,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-76,0,0,0,0,0,-392,-77,0, - 0,0,0,0,0,0,0,0,-124,0, - 0,0,0,0,0,-382,0,0,0,0, - 0,-194,-346,0,-199,0,0,0,0,0, - 0,0,0,0,-200,-203,-347,0,0,0, - 0,0,0,-428,0,0,0,-483,0,0, - 0,-214,-427,0,0,0,0,0,0,0, - 0,0,-85,0,0,0,0,-224,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-403,-404,0,0,0,0,0,0,0, + 0,0,0,0,0,-188,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-303, 0,0,0,0,0,0,0,0,0,0, - -86,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,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,-225,0,0,0,-88,0,0,0, - 0,-408,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -116,0,0,0,-242,0,0,0,0,0, - 0,0,0,0,0,0,0,-89,0,0, - 0,0,-376,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-227,0,0,-253,0,0,0,0,-205, - -218,-397,-16,-241,0,0,0,0,-356,-429, - -243,-251,0,0,0,0,0,0,0,0, - 0,-413,-265,0,0,0,0,-273,0,0, - 0,0,0,-266,0,0,-286,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-276,-277,0,0,0,0,0,0, - -421,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, - -387,-288,0,0,0,0,0,0,0,0, - 0,0,0,0,-108,-479,0,-281,-301,0, - 0,0,0,0,0,0,0,-512,0,0, - 0,0,0,0,0,0,0,0,0,0, - -488,0,0,0,0,0,0,0,0,0, - -282,0,0,0,0,-80,0,0,0,0, - -293,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-297, - 0,0,0,-302,0,0,0,-307,0,0, - 0,0,0,0,-433,0,0,0,-272,0, - -121,0,-308,0,0,-502,-325,0,-305,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-506,0,0,-340,-437,-295,0,0,0, - 0,0,0,0,0,0,-81,0,0,0, - 0,-422,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -393,0,0,0,0,0,0,0,-342,0, - 0,0,0,0,0,-372,-20,0,0,0, - 0,0,-373,-320,0,0,-379,-449,0,0, - -381,0,0,0,-384,-363,-452,-236,0,0, - 0,0,0,-123,-45,-390,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-63, - 0,0,0,0,0,-258,-409,0,0,-391, - 0,0,0,0,0,0,0,0,0,0, - -383,0,0,0,0,-252,0,0,0,0, - 0,0,-399,0,0,0,-461,-319,0,0, - 0,0,0,0,0,0,0,0,-402,0, - 0,-410,0,0,0,0,0,0,0,0, - 0,0,0,-300,-412,0,0,0,-450,0, - 0,-464,0,0,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,0, - 0,0,0,0,0,-462,-322,0,0,0, - 0,0,0,-46,-458,-489,0,0,0,0, - -456,0,-414,0,0,0,-415,0,-416,0, - 0,0,0,0,-259,0,0,0,-418,0, - -215,0,0,0,0,0,-505,0,0,0, - -425,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-477,0,0,-1,0,0, - 0,0,0,-478,0,-430,0,-201,0,-244, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-469,-473, - 0,0,-432,0,-274,0,0,-132,0,0, - 0,0,-315,0,0,0,0,-485,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-434,0,0,-359,-463,0,0,0,0, - 0,0,0,0,0,-139,-327,0,0,0, - 0,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,-435,0,0,0,-487,0,-125,0,-436, - 0,0,0,0,0,-511,-507,-438,-120,0, - 0,0,0,0,0,0,0,0,-468,0, - -471,0,0,0,-440,0,-441,0,0,-144, 0,0,0,0,-465,0,0,0,0,0, - 0,0,0,0,-442,0,0,0,0,0, - 0,0,0,-476,0,0,0,0,0,0, - 0,0,-490,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-269,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-278,0,0,0,0,0,-474,-492,0, - 0,0,0,0,0,0,0,-23,0,0, - 0,0,-447,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -451,-460,-82,0,0,0,0,0,0,0, + 0,0,0,-467,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-265,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-83,0,0,0, - 0,-467,0,0,0,0,0,0,0,0, + -359,0,0,0,0,0,0,0,0,0, + 0,0,0,-398,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -84,0,0,0,0,-475,0,0,0,0, + 0,0,0,0,0,0,0,-226,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-323,0,0,0,0,0, - 0,0,0,0,0,0,0,-22,0,0, - 0,0,-127,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -24,0,0,0,0,-482,0,0,0,0, + 0,0,0,0,-266,0,0,0,0,0, + 0,0,0,0,-193,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-351,0,0,0,-504,0, - 0,-417,-396,0,0,-352,0,0,-405,-377, - -496,-137,-494,0,-509,0,0,0,-49,0, - 0,0,0,-514,0,0,0,0,-508,0, - 0,0,0,0,0,0,0,0,-491,0, - 0,0,-443,0,0,0,-398,0,0,0, + -282,0,0,0,0,-308,0,0,0,0, + 0,0,0,0,0,0,0,0,-219,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-444,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,0, - 0,0,0,-493,0,-516,0,-519,0,0, + 0,0,0,-450,0,0,0,0,0,0, + 0,0,0,-330,0,0,0,0,-336,0, + 0,0,0,0,-220,0,0,0,0,0, + -342,0,0,0,0,-364,0,0,0,0, + 0,-291,0,0,0,0,0,-496,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-525,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-495,0,0,0,0,0, - 0,0,-503,0,0,0,0,0,0,0, - 0,0,0,0,-445,0,-524,0,0,0, - 0,0,0,0,-517,0,0,0,0,0, - 0,0,0,0,0,-500,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-448,0,0,0,0, - 0,0,0,0,0,-522,0,0,0,0, - 0,0,0,0,0,0,-521,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-220,0,0,0, - 0,0,0,-527,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-526,0,0, + -365,0,0,0,0,-377,0,0,0,0, + 0,0,-463,0,0,0,0,-484,0,0, + 0,0,-212,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-194,0,0, + 0,0,0,0,0,-292,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-204,0,0,0,0,0,0,0, + 0,0,-213,0,0,0,0,-260,0,0, + 0,0,0,0,-44,-70,0,0,-441,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-529,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-420,0,-221,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-395, + 0,0,0,0,0,0,0,0,-442,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,-245,0,0,-290,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-25,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-26,0,0,0,0,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,-28,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -29,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-65,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-78,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-79, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-128,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-472,0,0,0,0,0,-136,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-287,-338,0,0,0,0,0,0,0, - 0,-209,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-388,0,0,0,0, - 0,-497,0,0,0,0,0,0,0,0, - 0,0,-186,0,0,0,0,-400,0,0, - 0,0,0,-515,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,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,-222, - -223,0,0,-350,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-457, - 0,0,0,0,0,-294,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-484,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-498,0,0,0,0,0,0,0, - 0,0,0,0,0,-481,0,0,0,0, - 0,0,0,0,0,0,0,0,-306,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-470,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-499,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-336,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-362,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -268,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-401,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-229,0, - 0,0,0,0,0,-47,0,0,0,0, - 0,0,0,0,-153,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-48,0, - 0,0,0,0,0,0,0,0,-191,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-523,0,0,0,0, - 0,0,-196,0,0,0,0,0,0,0, - 0,0,-269,0,0,0,0,0,0,0, - 0,-210,0,0,0,0,0,-285,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-311,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-333,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,0,0,0,-345,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-367,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-368,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-380,0,0,0,0,0, - 0,0,0,0,0,0,0,-466,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-486,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-197,0,0,0,0,0,0, - 0,0,0,0,0,0,-207,0,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,-263,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-446,-19,0,0, - 0,0,0,0,0,0,0,0,-44,0, - 0,0,0,0,-71,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-406,0,0,0,0,0, - -407,0,0,0,0,0,0,0,0,0, - 0,-453,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,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; @@ -566,562 +550,546 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public interface BaseAction { public final static char baseAction[] = { - 175,5,137,81,81,34,34,67,67,40, - 40,194,194,195,195,196,196,1,1,16, + 170,5,131,78,78,34,34,64,64,40, + 40,189,189,190,190,191,191,1,1,16, 16,16,16,16,16,16,16,17,17,17, - 15,11,11,9,9,9,9,9,2,68, - 68,6,6,12,12,12,12,47,47,138, - 138,139,57,57,46,46,18,18,18,18, + 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, 18,18,18,18,18,18,18,18,18,18, - 18,18,18,18,18,18,140,140,140,119, + 18,18,18,18,18,134,134,134,114,19, 19,19,19,19,19,19,19,19,19,19, - 19,19,19,20,20,176,176,177,177,178, - 143,143,144,144,141,141,145,142,142,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,44,44,43,43, - 43,43,43,43,43,43,43,43,43,43, - 43,39,39,29,146,146,104,104,107,107, - 97,197,197,72,72,72,72,72,72,72, - 72,72,73,73,73,74,74,60,60,179, - 179,75,75,75,120,120,76,76,76,76, - 77,77,77,77,77,78,78,82,82,82, - 82,82,82,82,53,53,53,53,53,110, - 110,111,111,52,24,24,24,24,24,48, - 48,91,91,91,91,91,153,153,148,148, - 148,148,148,149,149,149,150,150,150,151, - 151,151,152,152,152,92,92,92,92,92, - 93,93,93,98,13,14,14,14,14,14, - 14,14,14,14,14,14,96,96,96,124, - 124,124,124,124,122,122,122,99,123,123, - 155,155,154,154,126,126,127,42,42,41, - 86,86,87,87,89,90,88,45,55,51, - 156,156,56,54,85,85,157,157,147,147, - 128,128,80,80,158,158,65,65,65,62, - 62,61,66,66,70,70,59,59,59,94, - 94,106,105,105,64,64,63,63,58,58, - 49,108,108,108,100,100,100,101,102,102, - 102,103,103,112,112,112,114,114,113,113, - 198,198,95,95,181,181,181,181,181,130, - 50,50,160,180,180,131,131,131,131,182, - 182,30,30,121,132,132,132,132,115,115, - 125,125,125,162,163,163,163,163,163,163, - 163,163,163,185,185,183,183,184,184,164, - 164,164,164,165,186,117,116,116,187,187, - 166,166,166,166,109,109,109,188,188,10, - 189,189,190,167,159,159,168,168,169,170, - 170,7,7,8,172,172,172,172,172,172, - 172,172,172,172,172,172,172,172,172,172, - 172,172,172,172,172,172,172,172,172,172, - 172,172,172,172,172,172,172,172,172,172, - 172,172,172,172,172,172,69,71,71,173, - 173,133,133,134,134,134,134,134,134,3, - 4,174,174,171,171,135,135,135,83,84, - 79,161,161,118,118,191,191,191,136,136, - 129,129,192,192,175,175,1537,1840,1750,1723, - 1038,1028,3400,34,1093,31,35,30,32,1903, - 264,29,27,56,1113,111,81,82,113,1124, - 3181,1172,1170,1259,1222,2288,276,1400,1267,1543, - 2261,1453,1570,1586,148,70,38,450,1611,164, - 149,4965,1675,38,2985,36,1038,4243,4808,34, - 1093,31,35,346,32,3513,38,1011,36,1038, - 233,3037,34,1093,31,35,30,32,963,264, - 29,27,56,1113,111,81,82,113,1124,67, - 1172,1170,1259,1222,690,2260,2163,236,231,232, - 1125,159,279,3164,278,277,598,38,450,4833, - 2469,2572,4965,327,1776,329,4783,322,1596,688, - 38,1858,392,1038,166,688,3048,243,246,249, - 252,2559,908,2263,38,1011,36,1038,1821,4725, - 34,1093,31,35,63,32,2209,38,398,37, - 3347,1087,578,3091,3379,2961,3064,3368,3593,4193, - 2417,38,1011,36,1038,2459,3037,34,1093,31, - 35,2456,32,963,264,29,27,56,1113,111, - 81,82,113,1124,350,1172,1170,1259,1222,67, - 863,1400,1267,1543,749,1453,1570,1586,148,1362, - 688,38,2693,515,149,3170,688,296,98,3080, - 1582,4293,1300,443,3047,3051,418,3029,516,2417, - 38,1011,36,1038,2459,3037,34,1093,31,35, - 2456,32,963,264,29,27,56,1113,111,81, - 82,113,1124,350,1172,1170,1259,1222,1275,2798, - 1400,1267,1543,3346,1453,1570,1586,148,688,38, - 286,3066,515,149,340,1612,394,426,3080,429, - 2459,495,76,67,447,3047,3051,516,2890,38, - 1011,36,1038,494,3165,34,1093,43,35,350, - 2990,38,1011,36,1038,511,3037,34,1093,31, - 35,30,32,963,264,29,27,56,1113,111, - 81,82,113,1124,560,1172,1170,1259,1222,3347, - 393,1400,1267,1543,534,1453,1570,2586,170,3347, - 859,2455,291,2823,2471,1597,2461,38,1011,36, - 1038,3043,4725,34,1093,31,35,62,32,3472, - 38,1011,36,1038,511,3037,34,1093,31,35, - 30,32,963,264,29,27,56,1113,91,81, - 82,335,3347,3202,38,1011,36,1038,963,5045, - 34,1093,31,35,30,32,3262,1551,508,2450, - 2585,3152,2921,2471,2946,38,1011,36,1038,2459, - 3037,34,1093,31,35,2456,32,963,264,29, - 27,56,1113,111,81,82,113,1124,350,1172, - 1170,1259,1222,688,3501,1400,1267,1543,1935,1453, - 1570,1586,148,601,4293,395,426,515,149,3426, - 38,284,1625,3080,437,397,426,2756,38,1011, - 36,1038,516,3037,34,1093,31,35,30,32, - 963,264,29,27,56,1113,111,81,82,113, - 1124,510,1172,1170,1259,1222,66,3659,1400,1267, - 1543,3566,1453,1570,1586,148,3092,339,396,426, - 385,149,3073,38,1011,36,1038,3636,5045,34, - 1093,31,35,65,32,3741,795,2798,3602,3073, - 38,1011,36,1038,388,5045,34,1093,31,35, - 64,32,735,2587,2829,38,1011,36,1038,512, - 3037,34,1093,31,35,30,32,963,264,29, - 27,56,1113,111,81,82,113,1124,67,1172, - 1170,1259,1222,1125,3221,1400,1267,1543,453,1453, - 1570,1586,148,3780,420,3221,2798,385,149,3426, - 38,282,2890,38,1011,36,1038,1631,389,34, - 1093,2346,35,3166,510,1030,38,1633,46,1038, - 5014,386,45,1093,59,3106,38,1011,36,1038, - 4218,3037,34,1093,31,35,30,32,963,264, - 29,27,56,1113,111,81,82,113,1124,863, - 1172,1170,1259,1222,47,2602,1400,1267,1543,3745, - 1453,1570,1586,148,362,49,2602,3462,164,149, - 237,530,158,510,688,1840,1858,392,1038,5027, - 3106,38,1011,36,1038,390,3037,34,1093,31, - 35,30,32,963,264,29,27,56,1113,111, - 81,82,113,1124,276,1172,1170,1259,1222,67, - 1595,1400,1267,1543,1210,1453,1570,1586,148,1275, - 2798,2798,1694,379,149,3106,38,1011,36,1038, - 457,3037,34,1093,31,35,30,32,963,264, - 29,27,56,1113,111,81,82,113,1124,3525, - 1172,1170,1259,1222,28,75,1400,1267,1543,335, - 1453,1570,1586,148,3631,3362,3370,587,379,149, - 280,578,278,277,2316,510,3106,38,1011,36, - 1038,4866,3037,34,1093,31,35,30,32,963, - 264,29,27,56,1113,111,81,82,113,1124, - 3341,1172,1170,1259,1222,3312,4897,1400,1267,1543, - 378,1453,1570,1586,148,336,342,2798,1922,379, - 149,3031,38,1011,36,1038,863,3037,34,1093, - 31,35,30,32,963,264,29,27,56,1113, - 111,81,82,113,1124,1901,1172,1170,1259,1222, - 958,74,1400,1267,1543,377,1453,1570,1586,148, - 3646,3741,2798,2921,385,149,2902,38,1011,36, - 1038,1211,3037,34,1093,31,35,30,32,963, - 264,29,27,56,1113,111,81,82,113,1124, - 67,1172,1170,1259,1222,4709,59,1400,1267,1543, - 589,1453,1570,1586,148,863,375,456,3315,147, - 149,3106,38,1011,36,1038,444,3037,34,1093, - 31,35,30,32,963,264,29,27,56,1113, - 111,81,82,113,1124,67,1172,1170,1259,1222, - 680,359,1400,1267,1543,1881,1453,1570,1586,148, - 849,3741,383,677,165,149,3106,38,1011,36, - 1038,3271,3037,34,1093,31,35,30,32,963, - 264,29,27,56,1113,111,81,82,113,1124, - 67,1172,1170,1259,1222,3058,4252,1400,1267,1543, - 361,1453,1570,1586,148,863,2798,530,321,160, - 149,3106,38,1011,36,1038,2798,3037,34,1093, - 31,35,30,32,963,264,29,27,56,1113, - 111,81,82,113,1124,1262,1172,1170,1259,1222, - 92,360,1400,1267,1543,440,1453,1570,1586,148, - 58,2798,3205,61,159,149,3106,38,1011,36, - 1038,863,3037,34,1093,31,35,30,32,963, - 264,29,27,56,1113,111,81,82,113,1124, - 422,1172,1170,1259,1222,357,57,1400,1267,1543, - 331,1453,1570,1586,148,3057,1806,530,699,158, - 149,3106,38,1011,36,1038,1339,3037,34,1093, - 31,35,30,32,963,264,29,27,56,1113, - 111,81,82,113,1124,67,1172,1170,1259,1222, - 3260,787,1400,1267,1543,67,1453,1570,1586,148, - 778,2798,334,3786,157,149,3106,38,1011,36, - 1038,3091,3037,34,1093,31,35,30,32,963, - 264,29,27,56,1113,111,81,82,113,1124, - 522,1172,1170,1259,1222,95,332,1400,1267,1543, - 67,1453,1570,1586,148,859,1712,2798,3279,156, - 149,3106,38,1011,36,1038,1799,3037,34,1093, - 31,35,30,32,963,264,29,27,56,1113, - 111,81,82,113,1124,3792,1172,1170,1259,1222, - 902,1850,1400,1267,1543,67,1453,1570,1586,148, - 3285,2798,2798,1759,155,149,3106,38,1011,36, - 1038,2798,3037,34,1093,31,35,30,32,963, - 264,29,27,56,1113,111,81,82,113,1124, - 1876,1172,1170,1259,1222,1895,73,1400,1267,1543, - 77,1453,1570,1586,148,72,2798,2798,1875,154, - 149,3106,38,1011,36,1038,3725,3037,34,1093, - 31,35,30,32,963,264,29,27,56,1113, - 111,81,82,113,1124,1883,1172,1170,1259,1222, - 71,70,1400,1267,1543,67,1453,1570,1586,148, - 3144,2802,3742,3234,153,149,3106,38,1011,36, - 1038,83,3037,34,1093,31,35,30,32,963, - 264,29,27,56,1113,111,81,82,113,1124, - 969,1172,1170,1259,1222,3294,333,1400,1267,1543, - 67,1453,1570,1586,148,3293,2798,2798,3788,152, - 149,3106,38,1011,36,1038,863,3037,34,1093, - 31,35,30,32,963,264,29,27,56,1113, - 111,81,82,113,1124,406,1172,1170,1259,1222, - 2020,61,1400,1267,1543,67,1453,1570,1586,148, - 1219,2798,2798,984,151,149,3106,38,1011,36, - 1038,863,3037,34,1093,31,35,30,32,963, - 264,29,27,56,1113,111,81,82,113,1124, - 522,1172,1170,1259,1222,60,330,1400,1267,1543, - 3627,1453,1570,1586,148,1249,246,102,334,150, - 149,3106,38,1011,36,1038,2798,3037,34,1093, - 31,35,30,32,963,264,29,27,56,1113, - 111,81,82,113,1124,771,1172,1170,1259,1222, - 67,235,1400,1267,1543,4374,1453,1570,1586,148, - 106,323,103,411,145,149,3430,38,1011,36, - 1038,1835,3037,34,1093,31,35,30,32,963, - 264,29,27,56,1113,111,81,82,113,1124, - 67,1172,1170,1259,1222,3635,2186,1400,1267,1543, - 67,1453,1570,1586,148,2779,953,2798,3155,195, - 149,3513,38,1011,36,1038,3299,3037,34,1093, - 31,35,30,32,963,264,29,27,56,1113, - 111,81,82,113,1124,3756,1172,1170,1259,1222, - 3021,2293,1400,1267,1543,2798,1453,1570,2586,170, - 3513,38,1011,36,1038,3227,3037,34,1093,31, - 35,30,32,963,264,29,27,56,1113,111, - 81,82,113,1124,808,1172,1170,1259,1222,448, - 999,1400,1267,1543,808,1453,1570,2586,170,2890, - 38,1011,36,1038,1661,67,34,1093,2743,35, - 2397,1275,188,3513,38,1011,36,1038,295,3037, - 34,1093,31,35,30,32,963,264,29,27, - 56,1113,111,81,82,113,1124,3346,1172,1170, - 1259,1222,3266,1531,1400,1267,1543,3224,1453,1570, - 2586,170,3513,38,1011,36,1038,1911,3037,34, - 1093,31,35,30,32,963,264,29,27,56, - 1113,111,81,82,113,1124,67,1172,1170,1259, - 1222,1035,404,1400,1267,1543,3226,1453,1570,2586, - 170,688,38,510,2618,1038,336,675,1726,688, - 38,1858,392,1038,288,3513,38,1011,36,1038, - 422,3037,34,1093,31,35,30,32,963,264, - 29,27,56,1113,111,81,82,113,1124,430, - 1172,1170,1259,1222,67,778,1400,1267,1543,1361, - 1453,1570,2586,170,3554,38,1011,36,1038,421, - 3037,34,1093,31,35,30,32,963,264,29, - 27,56,1113,111,81,82,113,1124,1935,1172, - 1170,1259,1222,67,4293,1400,1267,1543,3687,1453, - 1570,2586,170,688,38,1705,1670,1038,3717,1667, - 1695,688,38,1858,392,1038,1595,3513,38,1011, - 36,1038,424,3037,34,1093,31,35,30,32, - 963,264,29,27,56,1113,111,81,82,113, - 1124,433,1172,1170,1259,1222,3165,2987,1400,1267, - 1543,2181,1453,2309,2182,2266,3513,38,1011,36, - 1038,3415,3037,34,1093,31,35,30,32,963, - 264,29,27,56,1113,111,81,82,113,1124, - 2316,1172,1170,1259,1222,67,408,1400,1267,1543, - 3649,2218,3513,38,1011,36,1038,3525,3037,34, - 1093,31,35,30,32,963,264,29,27,56, - 1113,111,81,82,113,1124,3346,1172,1170,1259, - 1222,341,342,1400,1267,2216,3513,38,1011,36, - 1038,99,3037,34,1093,31,35,30,32,963, - 264,29,27,56,1113,111,81,82,113,1124, - 3307,1172,1170,1259,1222,3348,986,1400,2217,3595, - 1840,1858,392,1038,1275,3288,688,38,510,281, - 1038,2888,238,264,1760,2209,38,398,511,1840, - 1858,392,1038,289,3513,38,1011,36,1038,276, - 3037,34,1093,31,35,30,32,963,264,29, - 27,56,1113,111,81,82,113,1124,276,1172, - 1170,1259,2167,2187,38,510,281,1038,3513,38, - 1011,36,1038,233,3037,34,1093,31,35,30, - 32,963,264,29,27,56,1113,111,81,82, - 113,1124,2260,1172,1170,1259,2206,1125,67,2323, - 236,231,232,2702,1125,279,3650,278,277,950, - 1678,2474,1445,1038,444,4749,688,38,1858,392, - 1038,166,1165,510,2782,2414,278,277,161,4916, - 243,246,249,252,2559,3603,3188,510,1495,54, - 3090,1821,93,4947,67,107,432,78,3346,1451, - 297,55,3195,3629,298,1676,2303,3379,2961,3064, - 3368,3593,4193,3513,38,1011,36,1038,2464,3037, - 34,1093,31,35,30,32,963,264,29,27, - 56,1113,111,81,82,113,1124,528,1172,1170, - 2001,3513,38,1011,36,1038,1506,3037,34,1093, - 31,35,30,32,963,264,29,27,56,1113, - 111,81,82,113,1124,306,1172,1170,2026,3513, - 38,1011,36,1038,1435,3037,34,1093,31,35, - 30,32,963,264,29,27,56,1113,111,81, - 82,113,1124,3076,1172,1170,2038,3513,38,1011, - 36,1038,3157,3037,34,1093,31,35,30,32, - 963,264,29,27,56,1113,111,81,82,113, - 1124,2822,1172,1170,2085,2191,38,1011,36,1038, - 4242,4808,34,1093,31,35,346,32,3513,38, - 1011,36,1038,3165,3037,34,1093,31,35,30, - 32,963,264,29,27,56,1113,111,81,82, - 113,1124,3167,1172,2110,2187,38,510,2940,1038, - 2799,1822,3719,3148,76,2459,4293,2459,2459,1027, - 1357,3228,3197,309,2459,4368,327,1776,329,2211, - 322,1596,3165,3349,2725,358,350,350,688,38, - 510,285,1038,2725,2754,2911,529,3083,38,1011, - 36,1038,3187,4808,34,1093,31,35,346,32, - 521,3080,1345,428,3601,351,1461,1371,356,339, - 532,3165,185,2878,3513,38,1011,36,1038,808, - 3037,34,1093,31,35,30,32,963,264,29, - 27,56,1113,111,81,82,113,1124,730,1172, - 2124,1027,1198,1542,3258,366,2459,2459,327,1776, - 329,201,322,1596,502,2370,67,358,692,953, - 1125,1125,1677,2774,2781,2725,2725,1902,3097,38, - 1011,36,1038,4242,4808,34,1093,31,35,346, - 32,688,1678,299,161,3773,372,351,1461,1371, - 356,868,499,501,2255,1541,3513,38,1011,36, - 1038,1403,3037,34,1093,31,35,30,32,963, - 264,29,27,56,1113,111,81,82,113,1124, - 3292,1946,297,3669,3793,453,298,1102,3323,327, - 1776,329,3036,322,1596,67,502,367,358,3164, - 3186,941,439,3702,2603,4833,3346,3327,525,2200, - 38,2985,36,1038,4243,4884,34,1093,31,35, - 346,32,688,1678,299,3160,510,3192,351,1461, - 1371,356,4978,4293,500,501,526,3513,38,1011, - 36,1038,3165,3037,34,1093,31,35,30,32, - 963,264,29,27,56,1113,111,81,82,113, - 1124,177,1948,297,3728,233,536,298,339,3673, - 327,1776,329,314,322,1596,2808,1668,1678,1686, - 392,1038,200,3795,3665,229,2987,3748,3165,908, - 161,3335,245,231,232,3340,3229,67,1750,296, - 2792,186,3245,4617,1583,67,3653,54,1300,4684, - 2459,206,217,214,205,215,216,218,297,55, - 2806,175,298,1676,2036,3652,2260,1,204,350, - 3727,1125,536,189,173,174,176,177,178,179, - 180,688,38,1858,392,1038,688,1840,1858,392, - 1038,229,808,3609,3080,166,161,2798,688,1840, - 1858,392,1038,1768,808,428,2792,186,233,3421, - 101,431,3747,417,3029,4684,276,206,217,214, - 205,215,216,218,1595,3771,2963,175,276,3165, - 358,3616,510,2162,187,248,231,232,4996,190, - 173,174,176,177,178,179,180,1790,38,1011, - 36,1038,4243,4884,34,1093,31,35,346,32, - 351,1461,1371,356,290,2823,3732,2799,349,202, - 1857,2459,2459,4293,67,3165,2209,38,398,2459, - 3087,67,79,3621,278,277,3254,3622,2316,3770, - 229,2725,2157,2824,347,2260,278,277,350,3816, - 1125,688,1678,1686,392,1038,339,3346,327,1776, - 329,3297,322,1596,4684,223,208,217,214,207, - 215,216,218,3080,166,3157,339,1318,2276,338, - 342,54,1795,1125,3757,209,3796,2804,2813,2459, - 3213,4617,297,55,4293,2459,298,51,219,210, - 211,212,213,300,301,302,303,161,229,2798, - 3165,3575,366,3749,2725,1750,296,814,774,1678, - 1686,392,1038,1595,305,316,4412,2598,3830,1677, - 2774,2781,4684,2459,208,217,214,207,215,216, - 218,3655,1390,3724,3195,1262,67,340,54,1901, - 4282,3298,229,209,3502,2804,1755,2260,358,297, - 55,2770,1125,298,1676,2575,219,210,211,212, - 213,300,301,302,303,1174,4684,1262,208,217, - 214,207,215,216,218,366,166,2316,353,1461, - 1371,356,3821,521,4412,2966,3878,209,1789,2804, - 1485,2459,1856,2774,2781,382,1262,3346,3600,1761, - 219,210,211,212,213,300,301,302,303,2320, - 229,2798,240,264,2459,3823,358,89,2196,342, - 3221,1678,1686,392,1038,67,1812,524,4412,3227, - 3366,290,2823,350,4684,3774,208,217,214,207, - 215,216,218,541,2798,3765,351,1461,1371,356, - 54,1956,233,2798,1541,209,523,2804,3469,2416, - 2824,297,55,233,304,298,1676,2046,219,210, - 211,212,213,300,301,302,303,1174,3806,251, - 231,232,688,38,510,283,1038,3347,67,3766, - 241,231,232,4503,2888,380,4412,3377,3513,38, - 1750,1723,1038,3751,3037,34,1093,31,35,30, - 32,963,264,29,27,56,1113,111,81,82, - 89,3854,3781,3513,38,1011,36,1038,37,3037, - 34,1093,31,35,30,32,963,264,29,27, - 56,1113,111,81,82,113,1981,3513,38,1011, - 36,1038,947,3037,34,1093,31,35,30,32, - 963,264,29,27,56,1113,111,81,82,113, - 1991,3513,38,1011,36,1038,3856,3037,34,1093, - 31,35,30,32,963,264,29,27,56,1113, - 111,81,82,113,1993,1926,38,1011,36,1038, - 3679,4884,34,1093,31,35,346,32,3513,38, - 1011,36,1038,1906,3037,34,1093,31,35,30, - 32,963,264,29,27,56,1113,111,81,82, - 90,3513,38,1011,36,1038,3165,3037,34,1093, - 31,35,30,32,963,264,29,27,56,1113, - 111,81,82,88,340,1595,327,1776,329,67, - 323,1596,265,2260,977,358,3307,536,1125,3696, - 1262,3165,1935,3857,2459,3858,313,233,4293,688, - 1678,1686,392,1038,3779,5552,229,5552,5552,3165, - 5552,161,166,2725,5552,353,1461,1371,356,2798, - 5552,2792,186,353,254,231,232,1595,536,54, - 4684,4304,206,217,214,205,215,216,218,2316, - 297,55,175,1345,298,1676,2721,229,536,312, - 382,339,161,3376,3483,173,174,176,177,178, - 179,180,2792,186,441,5552,3165,350,3165,536, - 5552,4684,161,206,217,214,205,215,216,218, - 2254,342,194,175,502,3628,3258,2075,229,5552, - 5552,2316,4542,161,5552,182,173,174,176,177, - 178,179,180,2792,186,529,4776,5552,308,5552, - 536,5552,4684,2798,206,217,214,205,215,216, - 218,5552,499,501,175,1409,5552,3165,94,229, - 536,107,2594,342,161,2798,193,173,174,176, - 177,178,179,180,2792,186,617,384,5552,350, - 2548,536,387,4684,161,206,217,214,205,215, - 216,218,3378,3279,194,175,1473,197,5552,3787, - 229,536,5552,5552,4542,161,2798,3664,173,174, - 176,177,178,179,180,2792,186,705,5552,5552, - 350,5552,536,5552,4684,161,206,217,214,205, - 215,216,218,5552,5552,194,175,2474,5552,5552, - 3888,229,1125,5552,2798,4542,161,5552,196,173, - 174,176,177,178,179,180,2792,186,793,5552, - 5552,5552,5552,536,5552,4684,161,206,217,214, - 205,215,216,218,5552,3391,1722,175,3929,5552, - 5552,5552,229,5552,5552,5552,5552,161,5552,192, - 173,174,176,177,178,179,180,2792,186,881, - 5552,5552,5552,5552,536,5552,4684,5552,206,217, - 214,205,215,216,218,5552,3424,1996,175,2521, - 5552,5552,1125,229,1125,5552,5552,5552,161,5552, - 199,173,174,176,177,178,179,180,2792,186, - 688,38,1858,392,1038,5552,161,4684,161,206, - 217,214,205,215,216,218,3149,203,1731,175, - 5552,5552,3606,38,282,688,38,510,2967,1038, - 449,198,173,174,176,177,178,179,180,3513, - 38,1011,36,1038,5552,3037,34,1093,31,35, - 30,32,963,264,29,27,56,1113,111,81, - 82,87,3513,38,1011,36,1038,5552,3037,34, - 1093,31,35,30,32,963,264,29,27,56, - 1113,111,81,82,86,3513,38,1011,36,1038, - 3995,3037,34,1093,31,35,30,32,963,264, - 29,27,56,1113,111,81,82,85,3513,38, - 1011,36,1038,5552,3037,34,1093,31,35,30, - 32,963,264,29,27,56,1113,111,81,82, - 84,3513,38,1011,36,1038,5552,3037,34,1093, - 31,35,30,32,963,264,29,27,56,1113, - 111,81,82,83,3376,38,1011,36,1038,730, - 3037,34,1093,31,35,30,32,963,264,29, - 27,56,1113,111,81,82,109,3513,38,1011, - 36,1038,5552,3037,34,1093,31,35,30,32, - 963,264,29,27,56,1113,111,81,82,115, - 3513,38,1011,36,1038,5552,3037,34,1093,31, - 35,30,32,963,264,29,27,56,1113,111, - 81,82,114,3659,1840,1858,392,1038,5552,3288, - 5552,5552,5552,5552,5552,5552,239,264,5552,5552, - 5552,5552,2043,5552,5552,5552,5552,1125,3513,38, - 1011,36,1038,276,3037,34,1093,31,35,30, - 32,963,264,29,27,56,1113,111,81,82, - 112,161,1935,1935,5552,5552,5552,5552,4293,4293, - 5552,168,3513,38,1011,36,1038,233,3037,34, - 1093,31,35,30,32,963,264,29,27,56, - 1113,111,81,82,110,5552,3903,5552,5552,5552, - 5552,2459,2090,5552,237,231,232,1125,5552,279, - 5552,278,277,688,1678,1686,392,1038,3685,5552, - 229,339,339,2459,2137,5552,5552,5552,5552,1125, - 5552,161,5552,5552,244,247,250,253,2559,3651, - 5552,168,229,54,4684,1821,208,217,214,207, - 215,216,218,161,297,55,3575,4645,298,1676, - 2762,5552,5552,168,5552,209,4684,2804,208,217, - 214,207,215,216,218,5552,5552,5552,496,210, - 211,212,213,300,301,302,303,209,3951,2804, - 2568,2615,5552,2459,3213,1125,1125,5552,5552,2459, - 518,210,211,212,213,300,301,302,303,3726, - 3976,5552,229,5552,5552,2459,2662,5552,2725,161, - 161,1125,5552,5552,5552,5552,5552,5552,5552,1766, - 1767,3836,3805,5552,229,5552,4684,2459,208,217, - 214,207,215,216,218,161,5552,5552,5552,5552, - 5552,5552,5552,5552,5552,1866,229,209,4684,2804, - 208,217,214,207,215,216,218,5552,5552,5552, - 315,210,211,212,213,300,301,302,303,209, - 4684,2804,208,217,214,207,215,216,218,366, - 5552,5552,519,210,211,212,213,300,301,302, - 303,209,5552,2804,5552,5552,2037,2774,2781,5552, - 5552,5552,5552,5552,220,210,211,212,213,300, - 301,302,303,1892,38,1011,36,1038,4243,4808, - 34,1093,31,35,346,32,1720,38,1011,36, - 1038,4243,4808,34,1093,31,35,346,32,1720, - 38,1011,36,1038,4243,4808,34,1093,31,35, - 346,32,1720,38,1011,36,1038,4243,4808,34, - 1093,31,35,346,32,5552,5552,5552,2709,5552, - 5552,5552,5552,1125,327,1776,329,5552,322,1596, - 5552,5552,5552,5552,5552,5552,5552,327,1776,329, - 5552,322,1596,1318,5552,5552,5552,161,5552,5552, - 327,1776,329,5552,322,1596,1318,3795,5552,5552, - 5552,5552,5552,327,1776,329,5552,322,1596,1902, - 5552,5552,5552,5552,5552,5552,5552,1046,38,1011, - 36,1038,3653,4884,34,1093,31,35,346,32, - 5552,316,5552,5552,5552,5552,5552,5552,5552,5552, - 5552,5552,5552,5552,317,1046,38,1011,36,1038, - 3195,4884,34,1093,31,35,346,32,5552,5552, - 3502,1000,38,1011,36,1038,2969,4808,34,1093, - 31,35,346,32,5552,5552,340,5552,327,1776, - 329,5552,325,1596,2882,38,1011,36,1038,3167, - 4808,34,1093,31,35,346,32,5552,5552,5552, - 5552,405,5552,5552,340,5552,327,1776,329,1601, - 323,1596,5552,5552,2459,5063,67,5552,5552,5552, - 5552,2459,324,2948,329,864,1678,1686,392,1038, - 5552,5552,5552,229,5552,5552,5552,5552,5552,67, - 350,5552,5552,5552,2459,324,2948,329,5552,864, - 1678,1686,392,1038,5552,54,5552,4661,5552,1845, - 409,5552,5552,350,5552,3080,297,55,5552,5552, - 298,1676,2771,5552,1811,5552,2213,5552,410,54, - 2804,1125,2478,774,1678,1686,392,1038,3080,5552, - 297,55,5552,1684,298,1676,52,1813,2459,5063, - 5552,5552,67,5552,5552,161,969,2459,774,1678, - 1686,392,1038,54,5552,168,5552,229,2793,1940, - 5552,5552,5552,5552,297,55,350,5552,298,1676, - 52,5552,5552,774,1678,1686,392,1038,54,5552, - 788,4661,1940,1845,409,5552,5552,5552,5552,297, - 55,3080,5552,298,1676,3044,5552,5552,5552,5552, - 1721,5552,410,54,2804,3118,864,1678,1686,392, - 1038,411,413,5552,297,55,5552,5552,298,1676, - 52,5552,5552,3874,774,1678,1686,392,1038,5552, - 2219,5552,783,5552,4793,5552,54,774,1678,1686, - 392,1038,2793,5552,5552,5552,5552,297,55,5552, - 5552,298,1676,52,54,5552,774,1678,1686,392, - 1038,5552,5552,2119,5552,297,55,54,5552,298, - 1676,3056,5552,5552,5552,5552,5552,5552,297,55, - 5552,3118,298,1676,52,5552,54,774,1678,1686, - 392,1038,5552,5552,2311,411,414,297,55,5552, - 5552,298,1676,52,5552,774,1678,1686,392,1038, - 5552,5552,5552,2566,5552,5552,5552,54,2825,1678, - 1686,392,1038,5552,5552,5552,5552,5552,297,55, - 5552,5552,298,1676,52,54,2898,1678,1686,392, - 1038,5552,5552,5552,3101,5552,297,55,54,5552, - 298,1676,52,5552,688,1678,1686,392,1038,297, - 55,5552,3970,298,1676,52,54,688,1678,1686, - 392,1038,5552,5552,5552,2901,5552,297,55,5552, - 5552,298,1676,52,54,688,1678,1686,392,1038, - 5552,5552,5552,2982,5552,297,55,54,5552,298, - 1676,1099,5552,688,1678,1686,392,1038,297,55, - 5552,5552,298,1676,3992,54,5552,1089,1153,5552, - 5552,5552,536,536,5552,5552,297,55,5552,1217, - 298,1676,2036,54,536,1281,5552,5552,5552,5552, - 536,229,350,5552,297,55,161,161,298,1676, - 2879,5552,5552,350,5552,67,168,1220,161,350, - 2459,67,5552,5552,161,3468,2459,3080,1317,4212, - 5552,5552,67,5552,1220,5552,1096,2459,3080,350, - 5552,5552,5552,5552,3080,350,5552,1221,5552,5552, - 5552,5552,5552,1496,5552,5552,350,5552,5552,5552, - 5552,5552,5552,5552,3080,5552,5552,5552,5552,5552, - 3080,5552,5552,506,5552,5552,5552,5552,5552,504, - 5552,3080,5552,5552,3280,5552,5552,5552,5552,5552, - 533,5552,0,5570,42,0,5569,42,0,510, - 33,0,451,719,0,41,5570,0,41,5569, - 0,131,2669,0,1,441,0,455,1149,0, - 454,1326,0,510,44,0,1078,96,0,38, - 307,0,391,299,0,36,392,0,33,391, - 0,510,33,391,0,649,42,0,1,1001, - 0,1,5827,0,1,5826,0,1,5825,0, - 1,5824,0,1,5823,0,1,5822,0,1, - 5821,0,1,5820,0,1,5819,0,1,5818, - 0,1,5817,0,1,5570,42,0,1,5569, - 42,0,1,1115,0,5787,242,0,5786,242, - 0,5897,242,0,5896,242,0,5814,242,0, - 5813,242,0,5812,242,0,5811,242,0,5810, - 242,0,5809,242,0,5808,242,0,5807,242, - 0,5827,242,0,5826,242,0,5825,242,0, - 5824,242,0,5823,242,0,5822,242,0,5821, - 242,0,5820,242,0,5819,242,0,5818,242, - 0,5817,242,0,5570,42,242,0,5569,42, - 242,0,5593,242,0,38,287,263,0,510, - 391,0,5570,53,0,5569,53,0,625,238, - 0,48,5591,0,48,40,0,133,2669,0, - 132,2669,0,30,517,0,5889,442,0,1209, - 442,0,1,5593,0,42,1,0,52,40, - 0,1,97,0,1,5593,230,0,1,42, - 230,0,230,416,0,5570,40,0,5569,40, - 0,5570,2,40,0,5569,2,40,0,5570, - 39,0,5569,39,0,5591,50,0,50,40, - 0,5562,407,0,5561,407,0,1,4529,0, - 1,2773,0,1,649,0,230,415,0,1980, - 326,0,5889,100,0,1209,100,0,1,5889, - 0,1,1209,0,42,5570,0,42,5569,0, - 3086,283,0,1,676,0,1,2475,0,5560, - 1,0,498,4298,0,1,230,0,1,230, - 3145,0,5562,230,0,5561,230,0,3397,230, - 0,162,181,0,299,3405,0,8,10,0, - 230,169,0,230,222,0,230,221,0,191, - 3847,0 + 19,19,20,20,171,171,172,172,173,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, + 39,39,29,140,140,99,99,102,102,94, + 192,192,69,69,69,69,69,69,69,69, + 69,70,70,70,71,71,57,57,174,174, + 72,72,72,115,115,73,73,73,73,74, + 74,74,74,74,75,75,79,79,79,79, + 79,79,79,50,50,50,50,50,105,105, + 106,106,49,24,24,24,24,24,45,45, + 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,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, + 48,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,46,103,103,103,95,95,95,96,97, + 97,97,98,98,107,107,107,109,109,108, + 108,193,193,92,92,176,176,176,176,176, + 124,47,47,155,175,175,125,125,125,125, + 177,177,30,30,116,126,126,126,126,110, + 110,120,120,120,157,158,158,158,158,158, + 158,158,158,158,180,180,178,178,179,179, + 159,159,159,159,160,181,112,111,111,182, + 182,161,161,161,161,104,104,104,183,183, + 10,184,184,185,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,186,186,186,130, + 130,123,123,187,187,170,170,1417,38,2046, + 1970,1123,3464,3492,34,1175,31,35,30,32, + 2354,262,29,27,55,1195,110,80,81,112, + 1234,83,1279,1265,1324,1310,675,274,1401,1369, + 1573,1633,1481,1583,1706,147,485,3136,163,148, + 2078,38,1055,36,1123,957,4373,34,1175,31, + 35,62,32,3359,38,1055,36,1123,232,2234, + 34,1175,31,35,30,32,950,262,29,27, + 55,1195,110,80,81,112,1234,525,1279,1265, + 1324,1310,3447,2870,2570,235,230,231,4625,1440, + 275,3318,38,1055,36,1123,787,2234,34,1175, + 31,35,30,32,950,262,29,27,55,1195, + 90,80,81,242,245,248,251,3127,3133,38, + 1055,36,1123,2270,4373,34,1175,31,35,61, + 32,774,38,501,2947,1123,3118,761,435,3019, + 3115,3549,3631,3733,4365,2281,38,1055,36,1123, + 2440,2234,34,1175,31,35,2819,32,950,262, + 29,27,55,1195,110,80,81,112,1234,341, + 1279,1265,1324,1310,66,3541,1401,1369,1573,2740, + 1481,1583,1706,147,839,1746,506,148,3612,38, + 280,3046,774,38,1696,1615,1123,3612,38,278, + 507,2281,38,1055,36,1123,2440,2234,34,1175, + 31,35,2819,32,950,262,29,27,55,1195, + 110,80,81,112,1234,341,1279,1265,1324,1310, + 410,1719,1401,1369,1573,513,1481,1583,1706,147, + 787,2534,506,148,774,38,2949,3046,513,385, + 417,58,65,2229,4818,3742,507,1828,38,1055, + 36,1123,2447,486,34,1175,43,35,2136,2843, + 38,1055,36,1123,502,2234,34,1175,31,35, + 30,32,950,262,29,27,55,1195,110,80, + 81,112,1234,1598,1279,1265,1324,1310,774,3069, + 1401,1369,1573,444,1481,1583,2880,169,83,2745, + 2072,2801,3201,1084,2826,3266,1809,38,1055,36, + 1123,3016,4863,34,1175,31,35,30,32,2835, + 502,499,1555,38,1055,36,1123,1711,4863,34, + 1175,31,35,64,32,3156,2929,326,1555,38, + 1055,36,1123,1777,4863,34,1175,31,35,63, + 32,2944,3131,1720,431,330,4680,2879,327,333, + 2826,2799,38,1055,36,1123,2440,2234,34,1175, + 31,35,2819,32,950,262,29,27,55,1195, + 110,80,81,112,1234,341,1279,1265,1324,1310, + 935,2952,1401,1369,1573,2926,1481,1583,1706,147, + 4803,3266,506,148,3171,38,389,3046,661,286, + 146,2609,38,1055,36,1123,507,2234,34,1175, + 31,35,30,32,950,262,29,27,55,1195, + 110,80,81,112,1234,513,1279,1265,1324,1310, + 428,4853,1401,1369,1573,83,1481,1583,1706,147, + 731,331,376,148,1828,38,1055,36,1123,3479, + 83,34,1175,2825,35,798,2304,47,2895,1828, + 38,1055,36,1123,774,379,34,1175,2857,35, + 774,38,501,277,1123,2682,38,1055,36,1123, + 503,2234,34,1175,31,35,30,32,950,262, + 29,27,55,1195,110,80,81,112,1234,3510, + 1279,1265,1324,1310,3286,3569,1401,1369,1573,1878, + 1481,1583,1706,147,97,1707,376,148,774,38, + 282,1681,38,1055,36,1123,380,4709,34,1175, + 31,35,337,32,2962,38,1055,36,1123,377, + 2234,34,1175,31,35,30,32,950,262,29, + 27,55,1195,110,80,81,112,1234,435,1279, + 1265,1324,1310,75,3481,1401,1369,1573,435,1481, + 1583,1706,147,3630,1633,163,148,331,3729,318, + 2339,320,350,316,2320,70,38,1831,46,1123, + 2304,1049,45,1175,3125,2962,38,1055,36,1123, + 381,2234,34,1175,31,35,30,32,950,262, + 29,27,55,1195,110,80,81,112,1234,3444, + 1279,1265,1324,1310,2932,3633,1401,1369,1573,787, + 1481,1583,1706,147,3510,92,370,148,106,994, + 2962,38,1055,36,1123,3805,2234,34,1175,31, + 35,30,32,950,262,29,27,55,1195,110, + 80,81,112,1234,611,1279,1265,1324,1310,386, + 417,1401,1369,1573,761,1481,1583,1706,147,388, + 417,370,148,187,3051,2962,38,1055,36,1123, + 3464,2234,34,1175,31,35,30,32,950,262, + 29,27,55,1195,110,80,81,112,1234,83, + 1279,1265,1324,1310,4588,677,1401,1369,1573,369, + 1481,1583,1706,147,4079,1184,370,148,3125,68, + 2884,38,1055,36,1123,3464,2234,34,1175,31, + 35,30,32,950,262,29,27,55,1195,110, + 80,81,112,1234,83,1279,1265,1324,1310,668, + 3086,1401,1369,1573,368,1481,1583,1706,147,28, + 93,376,148,106,249,2755,38,1055,36,1123, + 3464,2234,34,1175,31,35,30,32,950,262, + 29,27,55,1195,110,80,81,112,1234,513, + 1279,1265,1324,1310,3687,4704,1401,1369,1573,366, + 1481,1583,1706,147,74,3473,146,148,2955,1631, + 1746,2962,38,1055,36,1123,435,2234,34,1175, + 31,35,30,32,950,262,29,27,55,1195, + 110,80,81,112,1234,1863,1279,1265,1324,1310, + 1108,325,1401,1369,1573,374,1481,1583,1706,147, + 3464,2278,164,148,2962,38,1055,36,1123,4803, + 2234,34,1175,31,35,30,32,950,262,29, + 27,55,1195,110,80,81,112,1234,246,1279, + 1265,1324,1310,2440,73,1401,1369,1573,448,1481, + 1583,1706,147,774,3082,159,148,2962,38,1055, + 36,1123,2644,2234,34,1175,31,35,30,32, + 950,262,29,27,55,1195,110,80,81,112, + 1234,234,1279,1265,1324,1310,49,2895,1401,1369, + 1573,83,1481,1583,1706,147,4147,2278,158,148, + 2962,38,1055,36,1123,3464,2234,34,1175,31, + 35,30,32,950,262,29,27,55,1195,110, + 80,81,112,1234,512,1279,1265,1324,1310,83, + 358,1401,1369,1573,2691,1481,1583,1706,147,58, + 312,157,148,2962,38,1055,36,1123,1746,2234, + 34,1175,31,35,30,32,950,262,29,27, + 55,1195,110,80,81,112,1234,2612,1279,1265, + 1324,1310,83,1491,1401,1369,1573,1006,1481,1583, + 1706,147,3464,158,156,148,2962,38,1055,36, + 1123,1154,2234,34,1175,31,35,30,32,950, + 262,29,27,55,1195,110,80,81,112,1234, + 512,1279,1265,1324,1310,83,91,1401,1369,1573, + 1118,1481,1583,1706,147,3464,447,155,148,2962, + 38,1055,36,1123,1746,2234,34,1175,31,35, + 30,32,950,262,29,27,55,1195,110,80, + 81,112,1234,2743,1279,1265,1324,1310,351,57, + 1401,1369,1573,2938,1481,1583,1706,147,3464,4721, + 154,148,2962,38,1055,36,1123,1746,2234,34, + 1175,31,35,30,32,950,262,29,27,55, + 1195,110,80,81,112,1234,3712,1279,1265,1324, + 1310,2036,348,1401,1369,1573,1558,1481,1583,1706, + 147,3464,4102,153,148,2962,38,1055,36,1123, + 1746,2234,34,1175,31,35,30,32,950,262, + 29,27,55,1195,110,80,81,112,1234,83, + 1279,1265,1324,1310,4259,94,1401,1369,1573,1346, + 1481,1583,1706,147,3464,56,152,148,2962,38, + 1055,36,1123,3464,2234,34,1175,31,35,30, + 32,950,262,29,27,55,1195,110,80,81, + 112,1234,83,1279,1265,1324,1310,2913,1825,1401, + 1369,1573,1474,1481,1583,1706,147,1868,325,151, + 148,2962,38,1055,36,1123,3464,2234,34,1175, + 31,35,30,32,950,262,29,27,55,1195, + 110,80,81,112,1234,83,1279,1265,1324,1310, + 3462,3641,1401,1369,1573,513,1481,1583,1706,147, + 72,4726,150,148,2962,38,1055,36,1123,3464, + 2234,34,1175,31,35,30,32,950,262,29, + 27,55,1195,110,80,81,112,1234,83,1279, + 1265,1324,1310,1140,1753,1401,1369,1573,513,1481, + 1583,1706,147,71,4781,149,148,2962,38,1055, + 36,1123,3464,2234,34,1175,31,35,30,32, + 950,262,29,27,55,1195,110,80,81,112, + 1234,3591,1279,1265,1324,1310,1214,3708,1401,1369, + 1573,513,1481,1583,1706,147,70,4793,144,148, + 3276,38,1055,36,1123,3464,2234,34,1175,31, + 35,30,32,950,262,29,27,55,1195,110, + 80,81,112,1234,83,1279,1265,1324,1310,4164, + 3742,1401,1369,1573,3590,1481,1583,1706,147,69, + 1632,194,148,3359,38,1055,36,1123,1552,2234, + 34,1175,31,35,30,32,950,262,29,27, + 55,1195,110,80,81,112,1234,1552,1279,1265, + 1324,1310,774,3678,1401,1369,1573,3464,1481,1583, + 2880,169,3359,38,1055,36,1123,515,2234,34, + 1175,31,35,30,32,950,262,29,27,55, + 1195,110,80,81,112,1234,435,1279,1265,1324, + 1310,2269,384,1401,1369,1573,1748,1481,1583,2880, + 169,2675,38,501,277,1123,774,38,1917,383, + 1123,283,3359,38,1055,36,1123,290,2234,34, + 1175,31,35,30,32,950,262,29,27,55, + 1195,110,80,81,112,1234,274,1279,1265,1324, + 1310,3169,253,1401,1369,1573,3464,1481,1583,2880, + 169,3359,38,1055,36,1123,2621,2234,34,1175, + 31,35,30,32,950,262,29,27,55,1195, + 110,80,81,112,1234,3479,1279,1265,1324,1310, + 60,397,1401,1369,1573,3539,1481,1583,2880,169, + 2675,38,501,3126,1123,411,3464,387,417,276, + 1552,3359,38,1055,36,1123,413,2234,34,1175, + 31,35,30,32,950,262,29,27,55,1195, + 110,80,81,112,1234,395,1279,1265,1324,1310, + 59,605,1401,1369,1573,3464,1481,1583,2880,169, + 3400,38,1055,36,1123,412,2234,34,1175,31, + 35,30,32,950,262,29,27,55,1195,110, + 80,81,112,1234,284,1279,1265,1324,1310,321, + 693,1401,1369,1573,781,1481,1583,2880,169,774, + 38,501,281,1123,1546,38,1917,383,1123,76, + 3359,38,1055,36,1123,415,2234,34,1175,31, + 35,30,32,950,262,29,27,55,1195,110, + 80,81,112,1234,54,1279,1265,1324,1310,83, + 2066,1401,1369,1573,3484,1481,2701,1874,561,3359, + 38,1055,36,1123,3674,2234,34,1175,31,35, + 30,32,950,262,29,27,55,1195,110,80, + 81,112,1234,513,1279,1265,1324,1310,3705,4798, + 1401,1369,1573,860,2697,3359,38,1055,36,1123, + 2585,2234,34,1175,31,35,30,32,950,262, + 29,27,55,1195,110,80,81,112,1234,1282, + 1279,1265,1324,1310,3464,3464,1401,1369,2662,3359, + 38,1055,36,1123,498,2234,34,1175,31,35, + 30,32,950,262,29,27,55,1195,110,80, + 81,112,1234,787,1279,1265,1324,1310,105,2681, + 1401,2687,3359,38,1055,36,1123,323,2234,34, + 1175,31,35,30,32,950,262,29,27,55, + 1195,110,80,81,112,1234,324,1279,1265,1324, + 2580,3359,38,1055,36,1123,1746,2234,34,1175, + 31,35,30,32,950,262,29,27,55,1195, + 110,80,81,112,1234,156,1279,1265,1324,2593, + 3441,38,1917,383,1123,2737,3274,774,38,501, + 279,1123,244,237,262,3635,3574,3544,3382,424, + 38,1917,383,1123,1349,3359,38,1055,36,1123, + 274,2234,34,1175,31,35,30,32,950,262, + 29,27,55,1195,110,80,81,112,1234,274, + 1279,1265,2524,3620,101,3671,3359,38,1055,36, + 1123,232,2234,34,1175,31,35,30,32,950, + 262,29,27,55,1195,110,80,81,112,1234, + 83,1279,1265,2544,601,1084,1033,83,235,230, + 231,527,2690,275,774,38,1917,383,1123,774, + 38,1917,383,1123,777,510,38,441,83,3527, + 341,4786,3036,2640,1505,160,242,245,248,251, + 3127,1718,2737,1634,54,1285,2270,1812,353,37, + 1410,83,3046,77,83,521,2445,1874,883,2562, + 3477,1240,3019,3115,3549,3631,3733,4365,3359,38, + 1055,36,1123,3565,2234,34,1175,31,35,30, + 32,950,262,29,27,55,1195,110,80,81, + 112,1234,2606,1279,1265,2554,3359,38,1055,36, + 1123,1746,2234,34,1175,31,35,30,32,950, + 262,29,27,55,1195,110,80,81,112,1234, + 611,1279,1265,2561,1709,38,1055,36,1123,2962, + 4641,34,1175,31,35,337,32,3359,38,1055, + 36,1123,2653,2234,34,1175,31,35,30,32, + 950,262,29,27,55,1195,110,80,81,112, + 1234,83,1279,2563,2140,352,3514,2664,2935,1084, + 3774,3662,521,2440,3266,2440,2440,853,347,102, + 3809,686,318,2339,320,2440,313,2320,434,3273, + 3279,349,2644,160,2644,2644,774,38,1917,383, + 1123,3123,3198,567,2644,513,3032,38,1055,36, + 1123,3207,4641,34,1175,31,35,337,32,342, + 1591,1065,347,3048,330,938,421,3114,3359,38, + 1055,36,1123,2947,2234,34,1175,31,35,30, + 32,950,262,29,27,55,1195,110,80,81, + 112,1234,83,1279,2567,2737,83,2700,1787,3246, + 357,1411,493,357,318,2339,320,787,313,2320, + 2081,2957,493,349,3636,1754,2975,2978,2007,2975, + 2978,2210,435,2185,3065,38,1055,36,1123,2962, + 4641,34,1175,31,35,337,32,490,492,2007, + 363,342,1591,1065,347,3136,1755,490,492,1668, + 3359,38,1055,36,1123,2136,2234,34,1175,31, + 35,30,32,950,262,29,27,55,1195,110, + 80,81,112,1234,575,2435,513,3136,3236,3171, + 38,389,318,2339,320,399,313,2320,3586,1459, + 2678,349,3464,774,38,1917,383,1123,1775,2257, + 1574,516,1599,38,3232,36,1123,3209,4709,34, + 1175,31,35,337,32,3465,2835,300,322,342, + 1591,1065,347,274,1349,521,439,517,3359,38, + 1055,36,1123,2136,2234,34,1175,31,35,30, + 32,950,262,29,27,55,1195,110,80,81, + 112,1234,177,2452,83,332,333,527,330,2775, + 318,2339,320,3574,313,2320,3774,3471,2440,3508, + 165,2440,586,1552,2745,3742,229,2440,1630,1964, + 3266,160,2745,1084,3742,3125,78,229,3266,3295, + 2644,2997,185,1071,2835,237,341,4564,1792,205, + 216,213,204,214,215,217,1552,165,4564,174, + 207,216,213,206,214,215,217,3136,891,519, + 3464,188,172,173,175,176,177,178,179,208, + 330,3058,373,329,333,1,3136,298,330,3005, + 527,514,218,209,210,211,212,292,293,294, + 295,3136,239,262,3297,3004,3466,184,493,229, + 2440,408,3235,523,160,3246,3127,1630,4262,2953, + 305,2954,1084,3444,2997,185,200,1505,2951,341, + 4564,2135,205,216,213,204,214,215,217,2679, + 1026,199,174,491,492,2688,165,3038,3464,186, + 232,709,3136,4646,189,172,173,175,176,177, + 178,179,2057,38,1055,36,1123,3209,4709,34, + 1175,31,35,337,32,3480,3015,240,230,231, + 371,3600,3573,349,3202,1462,2440,774,38,1917, + 383,1123,203,3515,1572,3548,3589,3087,38,2869, + 1395,1123,3136,4446,3780,229,1552,349,3136,4198, + 83,342,1591,1065,347,2943,1625,274,330,340, + 318,2339,320,3775,313,2320,4564,54,207,216, + 213,206,214,215,217,342,1591,1065,347,1365, + 1874,722,201,1668,3660,3673,232,208,222,3058, + 2440,1663,1916,1071,3709,3616,1552,1084,3695,2440, + 218,209,210,211,212,292,293,294,295,229, + 297,83,444,244,230,231,1497,2935,341,2745, + 338,160,2440,3266,307,3266,4262,2986,520,430, + 4564,167,207,216,213,206,214,215,217,83, + 3046,2644,3624,3138,3111,699,3050,1304,420,523, + 3720,208,83,3058,3679,2440,2067,3175,83,3464, + 296,3776,3266,2440,218,209,210,211,212,292, + 293,294,295,330,229,330,774,38,1917,383, + 1123,3136,341,3632,862,38,1917,383,1123,3731, + 4262,3136,3733,3611,3577,4564,3735,207,216,213, + 206,214,215,217,3046,3740,54,3136,3444,357, + 4551,2418,331,2092,54,3464,208,83,3058,1874, + 2950,3759,3240,349,1754,2975,2978,1874,2878,218, + 209,210,211,212,292,293,294,295,2056,774, + 38,501,3188,1123,598,38,441,304,3760,3665, + 4786,344,1591,1065,347,4262,3186,3359,38,2046, + 1970,1123,875,2234,34,1175,31,35,30,32, + 950,262,29,27,55,1195,110,80,81,88, + 2465,2965,3359,38,1055,36,1123,37,2234,34, + 1175,31,35,30,32,950,262,29,27,55, + 1195,110,80,81,112,2458,3359,38,1055,36, + 1123,3770,2234,34,1175,31,35,30,32,950, + 262,29,27,55,1195,110,80,81,112,2493, + 3359,38,1055,36,1123,3778,2234,34,1175,31, + 35,30,32,950,262,29,27,55,1195,110, + 80,81,112,2495,1760,38,1055,36,1123,3464, + 4709,34,1175,31,35,337,32,3359,38,1055, + 36,1123,2136,2234,34,1175,31,35,30,32, + 950,262,29,27,55,1195,110,80,81,89, + 83,265,3464,1960,2136,4229,527,774,38,1917, + 383,1123,1549,38,1917,383,1123,438,3273,3279, + 331,3840,318,2339,320,229,314,2320,2187,3841, + 160,349,3423,1084,2136,2491,2964,424,2907,353, + 2997,185,54,2835,527,3782,4564,3464,205,216, + 213,204,214,215,217,1874,705,160,174,344, + 1591,1065,347,229,3787,2835,2056,1677,160,1747, + 3676,172,173,175,176,177,178,179,2997,185, + 3756,375,2571,333,4564,2804,205,216,213,204, + 214,215,217,441,3789,2835,174,3136,527,774, + 38,1917,383,1123,2574,333,3205,3136,181,172, + 173,175,176,177,178,179,3846,229,83,3171, + 38,389,160,951,774,38,1917,383,1123,423, + 232,529,2997,185,2934,333,527,4151,4564,89, + 205,216,213,204,214,215,217,303,969,3136, + 174,2607,3464,527,422,229,3742,247,230,231, + 160,3464,192,172,173,175,176,177,178,179, + 2997,185,229,774,38,291,4564,160,205,216, + 213,204,214,215,217,617,3688,167,174,4396, + 527,3136,3464,3480,3621,3757,2931,3182,3813,3804, + 3723,172,173,175,176,177,178,179,3136,229, + 3090,3848,232,373,160,774,38,1917,383,1123, + 3815,3817,1630,705,2997,185,3795,1084,527,3701, + 4564,299,205,216,213,204,214,215,217,250, + 230,231,174,2940,5399,440,5399,229,196,3475, + 3271,165,160,2680,195,172,173,175,176,177, + 178,179,2997,185,83,5399,5399,5399,4564,2440, + 205,216,213,204,214,215,217,793,1630,1963, + 174,5399,527,1084,1084,83,5399,5399,341,5399, + 2440,5399,191,172,173,175,176,177,178,179, + 5399,229,5399,5399,5399,5399,160,165,160,341, + 3046,2776,5399,378,232,881,2997,185,167,2181, + 527,2096,4564,3587,205,216,213,204,214,215, + 217,3046,2234,5399,174,5399,5399,1084,5399,229, + 2220,253,230,231,160,5399,198,172,173,175, + 176,177,178,179,2997,185,5399,5399,5399,5399, + 4564,160,205,216,213,204,214,215,217,5399, + 5399,2698,174,5399,5399,5399,5399,2146,5399,5399, + 5399,3629,5399,5399,197,172,173,175,176,177, + 178,179,3359,38,1055,36,1123,5399,2234,34, + 1175,31,35,30,32,950,262,29,27,55, + 1195,110,80,81,87,3359,38,1055,36,1123, + 5399,2234,34,1175,31,35,30,32,950,262, + 29,27,55,1195,110,80,81,86,3359,38, + 1055,36,1123,5399,2234,34,1175,31,35,30, + 32,950,262,29,27,55,1195,110,80,81, + 85,3359,38,1055,36,1123,5399,2234,34,1175, + 31,35,30,32,950,262,29,27,55,1195, + 110,80,81,84,3359,38,1055,36,1123,5399, + 2234,34,1175,31,35,30,32,950,262,29, + 27,55,1195,110,80,81,83,3359,38,1055, + 36,1123,5399,2234,34,1175,31,35,30,32, + 950,262,29,27,55,1195,110,80,81,82, + 3232,38,1055,36,1123,5399,2234,34,1175,31, + 35,30,32,950,262,29,27,55,1195,110, + 80,81,108,3359,38,1055,36,1123,5399,2234, + 34,1175,31,35,30,32,950,262,29,27, + 55,1195,110,80,81,114,3359,38,1055,36, + 1123,5399,2234,34,1175,31,35,30,32,950, + 262,29,27,55,1195,110,80,81,113,3359, + 38,1055,36,1123,5399,2234,34,1175,31,35, + 30,32,950,262,29,27,55,1195,110,80, + 81,111,3359,38,1055,36,1123,5399,2234,34, + 1175,31,35,30,32,950,262,29,27,55, + 1195,110,80,81,109,3746,1869,3626,38,278, + 2440,1084,2327,5399,3528,5399,5399,1084,5399,2440, + 774,38,291,5399,5399,5399,5399,2137,3069,229, + 5399,2010,5399,5399,5399,160,1084,5399,229,5399, + 5399,160,5399,5399,3662,3132,202,5399,5399,2440, + 4564,1806,207,216,213,206,214,215,217,4564, + 160,207,216,213,206,214,215,217,2644,5399, + 167,208,3329,3058,1630,5399,5399,5399,3793,1084, + 208,5399,3058,2440,487,209,210,211,212,292, + 293,294,295,509,209,210,211,212,292,293, + 294,295,229,165,5399,5399,5399,5399,5399,3077, + 38,1055,36,1123,3209,4641,34,1175,31,35, + 337,32,5399,4564,5399,207,216,213,206,214, + 215,217,3819,3641,5399,5399,357,2440,774,2137, + 3069,5399,3647,5399,208,5399,3058,2440,285,2374, + 83,2345,2975,2978,1084,2440,229,306,209,210, + 211,212,292,293,294,295,229,318,2339,320, + 3671,313,2320,2344,341,1997,3105,4564,160,207, + 216,213,206,214,215,217,1365,4564,1849,207, + 216,213,206,214,215,217,3046,5399,208,5399, + 3058,1630,5399,5399,5399,2224,1084,5399,208,5399, + 3058,510,209,210,211,212,292,293,294,295, + 5399,219,209,210,211,212,292,293,294,295, + 165,307,2666,38,3232,36,1123,3209,4641,34, + 1175,31,35,337,32,3505,38,1917,383,1123, + 3138,3274,5399,950,38,1917,383,1123,238,262, + 285,3679,1647,38,1055,36,1123,3209,4641,34, + 1175,31,35,337,32,274,2087,83,5399,5399, + 5399,1084,2440,54,5399,5399,5399,2150,3105,5399, + 318,2339,320,5399,313,2320,1874,1114,5399,5399, + 2872,341,5399,5399,5399,160,232,2459,5399,1964, + 5399,5399,83,83,5399,167,5399,2440,2440,5399, + 318,2339,320,3046,313,2320,1521,38,1917,383, + 1123,5399,1763,236,230,231,341,341,275,1365, + 1647,38,1055,36,1123,3209,4641,34,1175,31, + 35,337,32,5399,5399,1960,54,5399,3046,3046, + 2440,243,246,249,252,3127,5399,497,495,1874, + 52,2270,5399,5399,5399,5399,3038,5399,3672,341, + 718,5399,4646,5399,308,5399,5399,5399,5399,5399, + 5399,409,3235,5399,5399,5399,5399,5399,318,2339, + 320,3560,313,2320,1647,38,1055,36,1123,3209, + 4641,34,1175,31,35,337,32,2185,1781,38, + 1055,36,1123,2882,4641,34,1175,31,35,337, + 32,1681,38,1055,36,1123,5399,4709,34,1175, + 31,35,337,32,1693,38,1055,36,1123,3092, + 4641,34,1175,31,35,337,32,5399,396,5399, + 5399,5399,318,2339,320,5399,313,2320,1481,5399, + 5399,5399,5399,2440,4868,5399,315,3174,320,5399, + 1663,3700,5399,5399,5399,5399,5399,331,5399,318, + 2339,320,229,314,2320,1564,5399,5399,5399,5399, + 2440,4868,315,3174,320,862,38,1917,383,1123, + 5399,5399,5399,4538,5399,2091,400,5399,5399,229, + 5399,2953,38,1917,383,1123,2953,38,1917,383, + 1123,5399,5399,5399,401,54,3058,419,5399,2421, + 4538,3482,2091,400,1084,5399,5399,5399,1874,52, + 5399,54,5399,5399,5399,5399,54,5399,3185,1068, + 2745,401,5399,3058,1874,2308,3266,5399,160,1874, + 52,1911,3043,5399,83,3117,5399,5399,1892,2440, + 2716,5399,5399,5399,950,38,1917,383,1123,2953, + 38,1917,383,1123,5399,2468,5399,1911,341,3043, + 1084,2953,38,1917,383,1123,2953,38,1917,383, + 1123,5399,2515,5399,54,5399,4826,1084,2562,54, + 3046,5399,5399,1084,160,402,404,1874,52,524, + 5399,54,1874,2722,1935,5399,54,5399,1009,5399, + 5399,160,5399,3117,1874,52,1978,160,4615,1874, + 52,2416,402,405,5399,3487,5399,3632,5399,5399, + 3579,2953,38,1917,383,1123,2953,38,1917,383, + 1123,5399,5399,3174,38,1917,383,1123,3182,38, + 1917,383,1123,774,38,1917,383,1123,5399,5399, + 5399,54,5399,5399,5399,5399,54,98,774,38, + 1917,383,1123,54,1874,52,3162,5399,54,1874, + 52,5399,3266,54,5399,3604,1874,52,5399,5399, + 3695,1874,52,5399,5399,5399,51,3653,54,5399, + 5399,5399,4140,774,38,1917,383,1123,5399,5399, + 5399,1874,727,774,38,1917,383,1123,774,38, + 1917,383,1123,5399,5399,1097,1161,5399,5399,1225, + 527,527,4826,54,527,5399,5399,5399,5399,5399, + 5399,5399,5399,54,5399,5399,1874,4127,54,341, + 341,5399,5399,341,160,160,1874,561,160,5399, + 5399,1874,1124,5399,1410,1285,5399,5399,193,1289, + 5399,3046,3046,1353,527,4524,5399,5399,527,5399, + 1330,1582,5399,5399,5399,5399,5399,5399,5399,5399, + 5399,5399,5399,341,5399,5399,5399,341,160,5399, + 5399,5399,160,5399,5399,5399,5399,5399,193,5399, + 5399,5399,193,100,5399,4524,5399,5399,5399,4524, + 5399,5399,5399,5399,5399,5399,5399,5399,5399,5399, + 5399,5399,5399,5399,5399,5399,5399,5399,5399,5399, + 5399,5399,5399,5399,3078,5399,5399,5399,5399,5399, + 5399,5399,5399,5399,5399,5399,5399,5399,5399,5399, + 5399,5399,5399,5399,5399,5399,5399,5399,5399,5399, + 5399,5399,5399,5399,5399,5399,5399,5399,5399,5399, + 5399,5399,5399,5399,3249,5399,5399,5399,3305,5399, + 0,5417,42,0,5416,42,0,501,33,0, + 442,985,0,41,5417,0,41,5416,0,130, + 2588,0,1,432,0,42,5417,0,42,5416, + 0,446,1370,0,445,1548,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,2539,42,0,1,765,0,1,5672, + 0,1,5671,0,1,5670,0,1,5669,0, + 1,5668,0,1,5667,0,1,5666,0,1, + 5665,0,1,5664,0,1,5663,0,1,5662, + 0,1,5417,42,0,1,5416,42,0,1, + 1135,0,5633,241,0,5632,241,0,5735,241, + 0,5734,241,0,5660,241,0,5659,241,0, + 5658,241,0,5657,241,0,5656,241,0,5655, + 241,0,5654,241,0,5653,241,0,5672,241, + 0,5671,241,0,5670,241,0,5669,241,0, + 5668,241,0,5667,241,0,5666,241,0,5665, + 241,0,5664,241,0,5663,241,0,5662,241, + 0,42,241,5417,0,42,241,5416,0,241, + 5440,0,53,5417,0,53,5416,0,237,2958, + 0,48,5438,0,48,40,0,5417,53,0, + 5416,53,0,132,2588,0,131,2588,0,30, + 508,0,5727,433,0,1000,433,0,1,5440, + 0,1,42,0,52,40,0,1,96,0, + 228,1,5440,0,228,1,42,0,228,407, + 0,40,5417,0,40,5416,0,40,5417,2, + 0,40,5416,2,0,5417,39,0,5416,39, + 0,5438,50,0,50,40,0,5409,398,0, + 5408,398,0,1,4460,0,1,3035,0,1, + 2539,0,228,406,0,1954,317,0,5727,99, + 0,1000,99,0,1,5727,0,1,1000,0, + 279,3702,0,1,944,0,1,2859,0,5407, + 1,0,489,4134,0,228,1,0,228,1, + 3370,0,5409,228,0,5408,228,0,3619,228, + 0,161,180,0,8,10,0,228,168,0, + 228,221,0,228,220,0,190,3703,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1136,201 +1104,193 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse 20,21,22,23,24,25,26,27,28,29, 30,31,32,33,34,35,36,37,38,39, 40,41,42,43,44,45,46,47,48,49, - 50,51,52,53,54,55,56,57,0,59, - 0,61,62,63,64,65,0,67,68,0, - 1,2,72,4,74,0,76,77,78,79, + 50,51,52,53,54,55,56,0,58,59, + 3,61,62,63,64,65,66,0,68,0, + 1,2,72,6,74,75,7,77,78,79, 80,81,0,83,84,85,86,87,0,1, 2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19,20,21, 22,23,24,25,26,27,28,29,30,31, 32,33,34,35,36,37,38,39,40,41, 42,43,44,45,46,47,48,49,50,51, - 52,53,54,55,56,57,64,59,90,61, - 62,63,64,65,96,67,68,0,0,99, - 72,3,74,6,76,77,78,79,80,81, - 95,83,84,85,86,87,0,1,2,3, + 52,53,54,55,56,0,58,59,3,61, + 62,63,64,65,66,0,68,0,91,92, + 72,6,74,75,0,77,78,79,80,81, + 6,83,84,85,86,87,0,1,2,3, 4,5,6,7,8,9,10,11,12,13, 14,15,16,17,18,19,20,21,22,23, 24,25,26,27,28,29,30,31,32,33, 34,35,36,37,38,39,40,41,42,43, 44,45,46,47,48,49,50,51,52,53, - 54,55,56,57,0,59,0,61,62,63, - 64,65,0,67,68,0,10,11,91,92, - 74,6,76,77,78,79,80,81,0,83, + 54,55,56,0,58,59,0,61,62,63, + 64,65,66,0,68,0,91,92,0,6, + 74,75,0,77,78,79,80,81,101,83, 84,85,86,87,0,1,2,3,4,5, 6,7,8,9,10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25, 26,27,28,29,30,31,32,33,34,35, 36,37,38,39,40,41,42,43,44,45, 46,47,48,49,50,51,52,53,54,55, - 56,57,0,59,90,61,62,63,64,65, - 96,67,68,0,0,0,91,92,74,6, - 76,77,78,79,80,81,0,83,84,85, + 56,69,58,59,0,61,62,63,64,65, + 66,95,68,100,91,92,88,89,74,75, + 95,77,78,79,80,81,0,83,84,85, 86,87,0,1,2,3,4,5,6,7, 8,9,10,11,12,13,14,15,16,17, 18,19,20,21,22,23,24,25,26,27, 28,29,30,31,32,33,34,35,36,37, 38,39,40,41,42,43,44,45,46,47, - 48,49,50,51,52,53,54,55,56,57, - 0,59,90,61,62,63,64,65,96,67, - 68,0,88,89,91,92,74,0,76,77, - 78,79,80,81,99,83,84,85,86,87, + 48,49,50,51,52,53,54,55,56,0, + 58,59,3,61,62,63,64,65,66,73, + 68,97,98,0,1,2,74,75,5,77, + 78,79,80,81,0,83,84,85,86,87, 0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,28,29, 30,31,32,33,34,35,36,37,38,39, 40,41,42,43,44,45,46,47,48,49, - 50,51,52,53,54,55,56,57,71,59, - 90,61,62,63,64,65,96,67,68,0, - 0,1,2,4,74,5,76,77,78,79, - 80,81,101,83,84,85,86,87,0,1, + 50,51,52,53,54,55,56,0,58,59, + 3,61,62,63,64,65,66,73,68,0, + 1,2,0,4,74,75,4,77,78,79, + 80,81,0,83,84,85,86,87,0,1, 2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19,20,21, 22,23,24,25,26,27,28,29,30,31, 32,33,34,35,36,37,38,39,40,41, 42,43,44,45,46,47,48,49,50,51, - 52,53,54,55,56,57,0,59,0,61, - 62,63,64,65,8,67,68,0,1,2, - 0,4,74,3,76,77,78,79,80,81, + 52,53,54,55,56,0,58,59,3,61, + 62,63,64,65,66,73,68,0,1,2, + 0,4,74,75,0,77,78,79,80,81, 0,83,84,85,86,87,0,1,2,3, 4,5,6,7,8,9,10,11,12,13, 14,15,16,17,18,19,20,21,22,23, 24,25,26,27,28,29,30,31,32,33, 34,35,36,37,38,39,40,41,42,43, 44,45,46,47,48,49,50,51,52,53, - 54,55,56,57,0,59,0,61,62,63, - 64,65,8,67,68,97,98,0,1,2, - 74,0,76,77,78,79,80,81,0,83, + 54,55,56,69,58,59,0,61,62,63, + 64,65,66,73,68,0,10,11,88,89, + 74,75,0,77,78,79,80,81,0,83, 84,85,86,87,0,1,2,3,4,5, 6,7,8,9,10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25, 26,27,28,29,30,31,32,33,34,35, 36,37,38,39,40,41,42,43,44,45, 46,47,48,49,50,51,52,53,54,55, - 56,57,71,59,66,61,62,63,64,65, - 0,67,68,0,1,2,100,0,74,9, - 76,77,78,79,80,81,0,83,84,85, + 56,69,58,59,0,61,62,63,64,65, + 66,73,68,0,1,2,0,0,74,75, + 0,77,78,79,80,81,101,83,84,85, 86,87,0,1,2,3,4,5,6,7, 8,9,10,11,12,13,14,15,16,17, 18,19,20,21,22,23,24,25,26,27, 28,29,30,31,32,33,34,35,36,37, 38,39,40,41,42,43,44,45,46,47, - 48,49,50,51,52,53,54,55,56,57, - 73,59,66,61,62,63,64,65,0,67, - 68,3,0,0,1,2,74,0,76,77, - 78,79,80,81,12,83,84,85,86,87, + 48,49,50,51,52,53,54,55,56,69, + 58,59,0,61,62,63,64,65,66,0, + 68,0,1,2,88,89,74,75,9,77, + 78,79,80,81,0,83,84,85,86,87, 0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,28,29, 30,31,32,33,34,35,36,37,38,39, 40,41,42,43,44,45,46,47,48,49, - 50,51,52,53,54,55,56,57,71,59, - 0,61,62,63,64,65,0,67,68,0, - 1,2,0,4,74,0,76,77,78,79, + 50,51,52,53,54,55,56,0,58,59, + 3,61,62,63,64,65,66,73,68,0, + 1,2,100,0,74,75,0,77,78,79, 80,81,0,83,84,85,86,87,0,1, - 2,3,4,5,6,7,8,115,10,11, - 12,13,14,0,44,0,3,47,48,49, - 50,51,52,53,54,55,56,57,0,0, - 1,2,3,4,5,59,7,58,10,11, - 58,12,44,45,0,47,48,49,50,51, - 52,53,54,55,56,57,0,0,60,0, - 1,2,64,71,66,9,7,69,70,71, - 72,73,74,75,45,0,1,2,3,4, - 5,6,7,8,69,70,88,89,90,91, - 92,93,94,95,96,97,98,99,100,101, - 102,103,104,105,106,107,108,109,110,111, - 112,113,114,115,58,59,0,119,0,1, 2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19,20,21, 22,23,24,25,26,27,28,29,30,31, 32,33,34,35,36,37,38,39,40,41, 42,43,44,45,46,47,48,49,50,51, - 52,53,54,55,56,57,60,59,121,61, + 52,53,54,55,56,0,58,59,3,61, 62,63,0,1,2,3,4,5,6,7, - 8,9,10,11,0,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,22,0,24,25,26,27, 28,29,30,31,32,33,34,35,36,37, - 38,39,40,41,42,43,44,0,46,47, - 48,49,50,51,52,53,54,55,56,57, - 0,59,0,61,62,63,0,1,2,3, - 4,5,6,7,8,9,10,11,64,13, - 14,15,16,17,18,19,20,21,22,23, + 38,39,40,41,42,43,44,121,46,47, + 48,49,50,51,52,53,54,55,56,0, + 58,59,67,61,62,63,0,1,2,3, + 4,5,6,7,8,9,10,11,12,13, + 14,15,16,17,18,19,20,21,22,0, 24,25,26,27,28,29,30,31,32,33, 34,35,36,37,38,39,40,41,42,43, 44,0,46,47,48,49,50,51,52,53, - 54,55,56,57,0,59,66,61,62,63, + 54,55,56,0,58,59,3,61,62,63, 0,1,2,3,4,5,6,7,8,9, - 10,11,95,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,28,29, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,0,24,25,26,27,28,29, 30,31,32,33,34,35,36,37,38,39, - 40,41,42,43,44,64,46,47,48,49, - 50,51,52,53,54,55,56,57,0,59, - 66,61,62,63,0,1,2,3,4,5, - 6,7,8,9,10,11,0,13,14,15, - 16,17,18,19,20,21,22,23,24,25, + 40,41,42,43,44,0,46,47,48,49, + 50,51,52,53,54,55,56,0,58,59, + 67,61,62,63,0,1,2,3,4,5, + 6,7,8,9,10,11,12,13,14,15, + 16,17,18,19,20,21,22,0,24,25, 26,27,28,29,30,31,32,33,34,35, 36,37,38,39,40,41,42,43,44,0, 46,47,48,49,50,51,52,53,54,55, - 56,57,0,59,66,61,62,63,0,1, + 56,0,58,59,3,61,62,63,0,1, 2,3,4,5,6,7,8,9,10,11, - 64,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,28,29,30,31, + 12,13,14,15,16,17,18,19,20,21, + 22,0,24,25,26,27,28,29,30,31, 32,33,34,35,36,37,38,39,40,41, - 42,43,44,64,46,47,48,49,50,51, - 52,53,54,55,56,57,0,59,66,61, + 42,43,44,0,46,47,48,49,50,51, + 52,53,54,55,56,0,58,59,67,61, 62,63,0,1,2,3,4,5,6,7, - 8,9,10,11,0,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,22,0,24,25,26,27, 28,29,30,31,32,33,34,35,36,37, 38,39,40,41,42,43,44,0,46,47, - 48,49,50,51,52,53,54,55,56,57, - 0,59,0,61,62,63,0,1,2,3, - 4,5,6,7,8,9,10,11,64,13, - 14,15,16,17,18,19,20,21,22,23, + 48,49,50,51,52,53,54,55,56,0, + 58,59,67,61,62,63,0,1,2,3, + 4,5,6,7,8,9,10,11,12,13, + 14,15,16,17,18,19,20,21,22,0, 24,25,26,27,28,29,30,31,32,33, 34,35,36,37,38,39,40,41,0,0, - 44,0,0,47,48,49,50,51,52,53, - 54,55,56,57,0,59,0,61,62,63, + 44,0,4,47,48,49,50,51,52,53, + 54,55,56,0,58,59,0,61,62,63, 0,1,2,3,4,5,6,7,8,9, - 0,0,12,0,3,15,16,17,18,19, - 20,21,22,23,24,25,44,97,98,47, - 48,49,50,51,52,53,54,55,56,57, - 0,60,48,49,44,45,46,47,48,49, + 0,0,12,13,14,15,16,17,18,19, + 20,21,22,23,0,44,97,98,47,48, + 49,50,51,52,53,54,55,56,60,58, + 0,1,2,0,44,45,46,47,48,49, 50,51,52,53,54,55,56,57,58,59, - 0,61,62,63,0,65,0,0,1,2, - 10,11,72,73,0,1,2,3,4,5, - 70,7,82,0,1,2,3,4,5,6, - 7,8,9,0,0,12,0,3,15,16, - 17,18,19,20,21,22,23,24,25,42, - 43,0,116,117,118,4,116,117,118,0, - 1,2,3,4,5,0,7,44,45,46, + 67,61,62,63,64,0,1,2,0,1, + 2,0,72,73,0,1,2,0,4,5, + 121,7,82,0,1,2,3,4,5,6, + 7,8,9,0,23,12,13,14,15,16, + 17,18,19,20,21,22,23,42,43,99, + 42,43,88,89,114,115,116,0,0,1, + 2,3,4,5,6,7,8,44,45,46, 47,48,49,50,51,52,53,54,55,56, - 57,58,59,0,61,62,63,73,65,0, - 1,2,0,60,0,72,73,3,0,0, - 0,3,69,4,6,82,8,101,10,11, - 12,13,14,0,0,15,16,17,18,19, - 20,21,22,23,24,25,93,94,0,0, - 1,2,3,4,5,6,7,8,0,116, - 117,118,4,45,44,0,0,47,48,49, - 50,51,52,53,54,55,56,57,60,60, - 66,0,1,2,66,100,5,69,70,71, - 72,73,44,75,0,47,48,49,50,51, - 52,53,54,55,56,57,88,89,90,91, - 92,93,94,95,96,97,98,99,100,101, - 102,103,104,105,106,107,108,109,110,111, - 112,113,114,115,0,0,71,119,3,58, - 0,6,0,8,4,10,11,12,13,14, - 0,0,1,2,3,4,5,0,7,0, - 0,1,2,12,4,0,6,102,8,104, - 105,106,107,108,109,110,111,112,113,114, - 45,0,88,89,3,0,1,2,3,4, - 5,6,7,8,0,60,45,0,4,0, - 6,66,8,69,69,70,71,72,73,44, - 75,69,47,48,49,50,51,52,53,54, - 55,56,57,88,89,90,91,92,93,94, - 95,96,97,98,99,100,101,102,103,104, - 105,106,107,108,109,110,111,112,113,114, - 115,66,71,0,119,0,1,2,3,4, + 57,58,59,72,61,62,63,64,71,0, + 0,0,0,0,3,72,73,6,8,8, + 0,10,11,10,11,82,0,1,2,3, + 4,5,23,7,23,24,25,60,0,102, + 0,104,105,106,107,108,109,110,111,112, + 113,73,0,0,117,102,45,114,115,116, + 0,1,2,3,4,5,6,7,8,57, + 117,60,0,1,2,3,4,5,67,7, + 69,70,71,72,73,76,0,76,0,1, + 2,3,4,5,6,7,8,0,0,88, + 89,90,91,92,93,94,95,96,97,98, + 99,100,101,102,103,104,105,106,107,108, + 109,110,111,112,113,0,0,0,117,118, + 3,120,0,6,0,8,4,10,11,0, + 1,2,3,4,5,6,7,8,23,0, + 23,24,25,67,0,67,0,1,2,71, + 0,1,2,3,4,5,0,7,70,3, + 44,0,45,47,48,49,50,51,52,53, + 54,55,56,23,58,88,89,60,0,1, + 2,0,4,5,67,7,69,70,71,72, + 73,10,11,76,70,45,67,0,1,2, + 0,57,5,57,7,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,70,0,118,117,118,4,120,0,1, + 2,3,4,5,6,7,8,9,10,11, + 12,13,14,15,16,17,18,19,20,21, + 22,23,24,25,26,27,28,29,30,31, + 32,33,34,35,36,37,38,39,40,41, + 42,43,0,45,46,0,1,2,3,4, 5,6,7,8,9,10,11,12,13,14, 15,16,17,18,19,20,21,22,23,24, 25,26,27,28,29,30,31,32,33,34, @@ -1344,203 +1304,199 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse 11,12,13,14,15,16,17,18,19,20, 21,22,23,24,25,26,27,28,29,30, 31,32,33,34,35,36,37,38,39,40, - 41,42,43,0,45,46,0,1,2,3, + 41,42,43,0,95,46,0,1,2,3, + 4,5,6,7,8,0,0,1,2,3, + 4,0,6,0,8,69,70,0,1,2, + 0,4,5,3,7,76,0,1,2,3, 4,5,6,7,8,9,10,11,12,13, 14,15,16,17,18,19,20,21,22,23, 24,25,26,27,28,29,30,31,32,33, 34,35,36,37,38,39,40,41,42,43, - 0,0,46,3,3,0,0,1,2,0, - 0,1,2,3,4,5,6,7,8,0, - 1,2,3,4,5,6,7,8,0,1, - 2,75,0,1,2,3,4,5,6,7, - 8,9,10,11,12,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 28,29,30,31,32,33,34,35,36,37, - 38,39,40,41,42,43,66,0,46,0, - 0,71,0,1,2,0,4,5,3,7, - 0,12,73,88,89,0,1,2,3,4, - 5,6,7,8,9,10,11,75,13,14, - 15,16,17,18,19,20,21,22,23,24, - 25,26,27,28,29,30,31,32,33,34, - 35,36,37,38,39,40,41,42,43,0, - 58,46,0,1,2,3,4,5,6,7, - 8,9,10,11,75,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 28,29,30,31,32,33,34,35,36,37, - 38,39,40,41,42,43,0,0,46,0, + 65,60,46,67,57,0,0,1,2,0, 1,2,3,4,5,6,7,8,9,10, - 11,121,13,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,29,30, + 11,12,13,14,15,16,17,18,19,20, + 21,22,76,24,25,26,27,28,29,30, 31,32,33,34,35,36,37,38,39,40, - 41,42,43,0,95,46,0,1,2,3, - 4,5,6,7,8,9,10,11,0,13, - 14,15,16,17,18,19,20,21,22,23, + 41,42,43,48,49,46,0,1,2,3, + 4,5,6,7,8,9,10,11,12,13, + 14,15,16,17,18,19,20,21,22,0, 24,25,26,27,28,29,30,31,32,33, 34,35,36,37,38,39,40,41,42,43, - 0,1,2,0,4,5,3,7,0,1, - 2,58,4,0,1,2,3,4,5,6, - 7,8,9,10,11,69,13,14,15,16, - 17,18,19,20,21,22,23,24,25,26, + 0,0,46,0,1,2,3,4,5,6, + 7,8,9,10,11,12,13,14,15,16, + 17,18,19,20,21,22,0,24,25,26, 27,28,29,30,31,32,33,34,35,36, - 37,38,39,40,41,42,43,0,58,46, + 37,38,39,40,41,42,43,0,69,46, 0,1,2,3,4,5,6,7,8,9, - 10,11,64,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,28,29, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,0,24,25,26,27,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,43,0,69,0,1,2,3, + 4,5,6,7,8,9,10,11,12,13, + 14,15,16,17,18,19,20,21,22,69, + 24,25,26,27,28,29,30,31,32,33, + 34,35,36,37,38,39,40,41,42,43, + 67,0,46,0,1,2,3,4,5,6, + 7,8,9,10,11,12,13,14,15,16, + 17,18,19,20,21,22,119,24,25,26, + 27,28,29,30,31,32,33,34,35,36, + 37,38,39,40,41,42,43,0,0,46, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,26,24,25,26,27,28,29, 30,31,32,33,34,35,36,37,38,39, 40,41,42,43,0,0,46,0,1,2, - 3,4,5,6,7,8,9,10,11,0, + 3,4,5,6,7,8,9,10,11,12, 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,28,29,30,31,32, + 0,24,25,26,27,28,29,30,31,32, 33,34,35,36,37,38,39,40,41,42, 43,0,0,46,0,1,2,3,4,5, - 6,7,8,9,10,11,0,13,14,15, - 16,17,18,19,20,21,22,23,24,25, + 6,7,8,9,10,11,12,13,14,15, + 16,17,18,19,20,21,22,73,24,25, 26,27,28,29,30,31,32,33,34,35, - 36,37,38,39,40,41,42,43,0,0, + 36,37,38,39,40,41,42,43,0,69, 46,0,1,2,3,4,5,6,7,8, - 9,10,11,0,13,14,15,16,17,18, - 19,20,21,22,23,24,25,26,27,28, + 9,10,11,12,13,14,15,16,17,18, + 19,20,21,22,0,24,25,26,27,28, 29,30,31,32,33,34,35,36,37,38, 39,40,41,42,43,0,0,46,0,1, 2,3,4,5,6,7,8,9,10,11, - 0,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,36,37,38,39,40,41, - 42,43,0,0,46,0,1,2,3,4, - 5,6,7,8,9,10,11,12,13,14, - 15,16,17,18,19,20,21,22,23,24, - 25,26,27,28,29,30,31,32,33,34, - 35,36,37,38,39,40,41,0,0,1, - 2,0,4,0,6,0,8,0,3,12, - 12,58,0,1,2,3,4,12,6,64, - 8,0,1,2,0,1,2,72,0,1, - 2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19,20,21, 22,23,24,25,26,27,28,29,30,31, 32,33,34,35,36,37,38,39,40,41, - 69,66,75,75,69,70,69,70,66,58, - 75,0,1,2,3,4,5,0,7,0, - 1,2,64,95,5,0,7,0,1,2, + 44,67,0,47,48,49,50,51,52,53, + 54,55,56,0,58,0,1,2,3,4, + 5,8,7,65,0,1,2,0,0,0, 72,0,1,2,3,4,5,6,7,8, - 9,10,11,0,13,14,15,16,17,18, + 9,10,11,12,13,14,15,16,17,18, 19,20,21,22,23,24,25,26,27,28, 29,30,31,32,33,34,35,36,37,38, - 39,40,41,42,43,0,1,2,3,4, - 5,6,7,8,9,10,11,70,13,14, - 15,16,17,18,19,20,21,22,23,24, - 25,26,27,28,29,30,31,32,33,34, - 35,36,37,38,39,40,41,42,43,0, - 1,2,3,4,5,6,7,8,9,10, - 11,12,13,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,29,30, - 31,32,33,34,35,36,37,38,39,40, - 0,1,2,3,4,5,6,7,8,9, - 10,11,0,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,28,29, - 30,31,32,33,34,35,36,37,38,39, - 40,41,0,1,2,0,4,5,3,7, - 0,0,0,1,2,3,4,5,0,7, - 0,0,1,2,64,5,0,1,2,3, - 4,5,60,7,115,0,1,2,3,4, - 5,6,7,8,9,10,11,0,13,14, - 15,16,17,18,19,20,21,22,23,24, - 25,26,27,28,29,30,31,32,33,34, - 35,36,37,38,39,40,41,0,66,58, - 3,0,5,6,0,8,0,10,11,0, - 13,14,66,0,0,0,0,4,3,0, - 1,2,6,4,27,6,12,8,13,14, - 0,1,2,0,4,0,6,0,8,42, - 43,0,1,2,0,4,0,6,4,8, - 4,0,1,2,0,4,5,60,7,45, - 47,60,0,66,0,0,69,70,71,60, - 0,1,2,0,12,0,0,0,0,1, - 2,66,73,0,6,88,89,90,91,92, - 93,94,88,89,97,98,99,100,101,102, - 103,104,105,106,107,108,109,110,111,112, - 113,0,42,43,3,0,5,6,103,8, - 0,10,11,3,13,14,120,12,0,116, - 117,118,4,60,119,60,58,75,27,102, - 12,0,69,0,69,4,0,70,0,1, - 2,114,69,42,43,12,0,95,12,3, - 45,0,0,0,88,89,93,94,93,94, - 0,60,0,45,120,3,0,66,0,3, - 69,70,71,0,0,70,66,3,45,0, - 0,45,3,0,4,0,0,0,0,88, - 89,90,91,92,93,94,58,12,97,98, - 99,100,101,102,103,104,105,106,107,108, - 109,110,111,112,113,0,1,2,3,4, - 5,6,7,8,9,10,11,47,13,14, - 15,16,17,18,19,20,21,22,23,24, - 25,26,27,28,29,30,31,32,33,34, - 35,36,37,38,39,40,69,72,0,73, - 0,73,0,3,0,0,1,2,0,0, - 1,2,3,4,5,6,7,8,9,10, - 11,66,13,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,29,30, - 31,32,33,34,35,36,37,38,39,40, - 41,0,1,2,3,4,5,6,7,8, - 9,10,11,58,13,14,15,16,17,18, - 19,20,21,22,23,24,25,26,27,28, - 29,30,31,32,33,34,35,36,37,38, - 39,40,0,1,2,3,4,5,6,7, - 8,9,10,11,0,13,14,15,16,17, + 39,40,41,44,119,0,47,48,49,50, + 51,52,53,54,55,56,0,58,73,0, + 1,2,65,4,0,6,65,8,4,71, + 6,99,8,72,0,1,2,3,4,5, + 6,7,8,9,10,11,12,13,14,15, + 16,17,18,19,20,21,22,41,24,25, + 26,27,28,29,30,31,32,33,34,35, + 36,37,38,39,40,41,42,43,0,1, + 2,3,4,5,6,7,8,9,10,11, + 12,13,14,15,16,17,18,19,20,21, + 22,0,24,25,26,27,28,29,30,31, + 32,33,34,35,36,37,38,39,40,41, + 42,43,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, 18,19,20,21,22,23,24,25,26,27, 28,29,30,31,32,33,34,35,36,37, 38,39,40,0,1,2,3,4,5,6, - 7,8,9,10,11,0,13,14,15,16, - 17,18,19,20,21,22,23,24,25,26, + 7,8,9,10,11,12,13,14,15,16, + 17,18,19,20,21,22,0,24,25,26, 27,28,29,30,31,32,33,34,35,36, - 37,38,39,40,0,1,2,73,4,0, - 0,0,0,9,0,0,1,2,0,15, - 16,17,18,19,20,21,22,23,24,25, - 0,0,0,3,3,60,0,0,0,0, - 0,1,2,0,26,0,1,2,44,12, - 12,47,48,49,50,51,52,53,54,55, - 56,57,0,59,0,61,62,63,0,1, - 2,60,4,58,0,1,2,9,69,70, - 70,69,0,15,16,17,18,19,20,21, - 22,23,24,25,0,1,2,3,4,5, - 6,7,8,58,64,0,12,70,70,72, - 74,0,44,75,9,47,48,49,50,51, - 52,53,54,55,56,57,0,59,0,61, - 62,63,58,71,0,9,0,3,44,45, - 12,0,1,2,3,4,5,6,7,8, - 0,0,58,12,60,73,0,0,0,65, - 0,67,68,58,59,0,0,1,2,3, - 4,5,6,7,8,0,82,12,12,0, - 0,70,3,0,26,44,45,12,0,0, - 0,41,0,67,0,0,4,0,4,58, - 66,0,0,75,0,0,65,71,67,68, - 44,45,0,72,0,1,2,3,4,5, - 6,7,8,82,58,0,12,70,3,73, - 0,65,0,67,68,3,76,72,72,0, - 1,2,3,4,5,6,7,8,82,60, - 75,12,60,73,60,60,73,60,44,45, - 70,60,60,0,60,0,0,0,3,0, - 0,120,58,0,69,0,0,0,0,65, - 0,67,68,44,45,0,72,0,1,2, - 3,4,5,6,7,8,82,58,0,12, - 0,71,26,0,65,0,67,68,0,0, - 122,72,0,1,2,3,4,5,6,7, - 8,82,0,0,12,0,0,0,0,60, - 0,44,45,0,71,0,0,71,71,0, - 0,0,0,0,0,58,0,0,0,0, - 0,0,65,0,67,68,44,45,0,72, - 0,1,2,3,4,5,6,7,8,82, - 58,0,12,0,0,0,0,65,0,67, - 68,0,0,0,0,0,1,2,3,4, - 5,6,7,8,82,0,0,12,0,0, - 0,0,0,0,44,45,0,0,0,0, - 0,0,0,0,0,0,0,0,58,0, - 0,0,0,0,0,65,0,67,68,44, - 45,0,0,0,0,0,0,0,0,0, - 0,0,82,58,0,0,0,0,0,0, - 65,0,67,68,0,0,0,0,0,0, - 0,0,0,0,0,0,0,82,0,0, + 37,38,39,40,41,0,1,2,0,4, + 0,6,26,8,0,1,2,0,4,0, + 6,4,8,0,1,2,0,4,65,6, + 0,8,0,1,2,9,0,23,0,3, + 118,0,1,2,3,4,5,6,7,8, + 9,10,11,12,13,14,15,16,17,18, + 19,20,21,22,47,24,25,26,27,28, + 29,30,31,32,33,34,35,36,37,38, + 39,40,41,0,0,75,3,57,5,6, + 76,8,66,10,11,0,12,13,14,15, + 16,17,18,19,20,21,22,24,25,95, + 27,0,1,2,3,4,5,0,7,0, + 0,4,114,115,116,42,43,0,44,0, + 0,47,48,49,50,51,52,53,54,55, + 56,122,58,60,0,1,2,3,4,5, + 67,7,69,70,71,60,0,1,2,3, + 4,5,0,7,47,0,0,1,2,0, + 4,88,89,90,91,92,93,94,67,23, + 97,98,99,100,101,102,103,104,105,106, + 107,108,109,110,111,112,113,0,69,70, + 3,45,5,6,0,8,0,10,11,3, + 0,67,0,1,2,0,4,5,0,7, + 90,24,25,57,27,60,96,23,59,23, + 0,114,115,116,69,0,1,2,23,42, + 43,0,1,2,26,4,119,6,0,8, + 0,1,2,0,1,2,0,60,93,94, + 45,0,1,2,67,0,69,70,71,57, + 60,23,0,67,70,69,70,0,1,2, + 76,0,76,6,0,88,89,90,91,92, + 93,94,57,45,97,98,99,100,101,102, + 103,104,105,106,107,108,109,110,111,112, + 113,0,1,2,3,4,5,6,7,8, + 9,10,11,12,13,14,15,16,17,18, + 19,20,21,22,57,24,25,26,27,28, + 29,30,31,32,33,34,35,36,37,38, + 39,40,71,69,70,0,1,2,3,4, + 5,6,7,8,9,10,11,12,13,14, + 15,16,17,18,19,20,21,22,67,24, + 25,26,27,28,29,30,31,32,33,34, + 35,36,37,38,39,40,41,0,1,2, + 3,4,5,6,7,8,9,10,11,12, + 13,14,15,16,17,18,19,20,21,22, + 0,24,25,26,27,28,29,30,31,32, + 33,34,35,36,37,38,39,40,0,1, + 2,3,4,5,6,7,8,9,10,11, + 12,13,14,15,16,17,18,19,20,21, + 22,0,24,25,26,27,28,29,30,31, + 32,33,34,35,36,37,38,39,40,0, + 1,2,3,4,5,6,7,8,9,10, + 11,12,13,14,15,16,17,18,19,20, + 21,22,0,24,25,26,27,28,29,30, + 31,32,33,34,35,36,37,38,39,40, + 0,1,2,0,4,23,0,1,2,9, + 4,0,12,13,14,15,16,17,18,19, + 20,21,22,0,0,0,23,45,4,4, + 0,90,0,3,0,3,0,96,0,0, + 0,1,2,5,44,5,23,47,48,49, + 50,51,52,53,54,55,56,23,58,59, + 0,61,62,63,0,1,2,0,4,0, + 3,65,3,9,0,72,12,13,14,15, + 16,17,18,19,20,21,22,0,1,2, + 3,4,5,6,7,8,60,57,0,76, + 0,1,2,71,70,69,72,0,44,70, + 23,47,48,49,50,51,52,53,54,55, + 56,23,58,59,0,61,62,63,0,93, + 94,44,45,0,1,2,3,4,5,6, + 7,8,0,45,57,71,4,60,0,0, + 0,64,4,66,0,68,23,57,0,0, + 1,2,3,4,5,6,7,8,70,82, + 0,0,1,2,67,0,0,44,45,0, + 0,0,23,0,60,0,1,2,60,0, + 57,0,0,69,0,1,2,64,0,66, + 0,68,60,44,45,72,0,1,2,3, + 4,5,6,7,8,82,57,93,94,0, + 71,0,3,64,74,66,0,68,57,23, + 0,72,0,1,2,3,4,5,6,7, + 8,82,57,60,23,70,0,1,2,60, + 44,45,60,73,0,23,73,3,0,65, + 60,70,4,57,0,1,2,0,0,90, + 64,0,66,0,68,96,44,45,72,0, + 1,2,3,4,5,6,7,8,82,57, + 0,23,0,3,0,3,64,76,66,0, + 68,0,23,57,72,0,1,2,3,4, + 5,6,7,8,82,0,95,123,60,0, + 90,57,3,44,45,0,96,60,23,0, + 0,60,3,0,0,0,57,0,23,0, + 3,0,9,64,76,66,0,68,0,44, + 45,72,0,1,2,3,4,5,6,7, + 8,82,57,0,0,71,65,3,0,64, + 71,66,0,68,0,23,0,9,0,1, + 2,3,4,5,6,7,8,82,24,25, + 57,76,59,0,60,60,44,45,0,0, + 0,23,3,3,65,0,65,0,3,57, + 3,65,0,0,0,0,64,0,66,71, + 68,0,44,45,0,57,0,59,0,0, + 0,67,0,70,82,57,0,0,0,0, + 0,0,64,71,66,71,68,71,0,0, + 0,0,0,60,0,0,0,0,0,0, + 82,0,0,0,0,0,0,103,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,120,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,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; @@ -1548,412 +1504,399 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public interface TermAction { public final static char termAction[] = {0, - 5552,5518,5515,5515,5515,5515,5515,5515,5515,1, - 1,1,5528,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5525,3231,1,1,1, - 1,1,1,1,1,1,1,1,116,1, - 138,1,1,1,2065,2308,1,953,3129,5552, - 5196,5193,5559,5593,1525,364,3219,3002,2264,2831, - 3132,3642,5552,3209,655,3207,3947,3203,8,5537, - 5537,5537,5537,5537,5537,5537,5537,5537,5537,5537, - 5537,5537,5537,5537,5537,5537,5537,5537,5537,5537, - 5537,5537,5537,5537,5537,5537,5537,5537,5537,5537, - 5537,5537,5537,5537,5537,5537,5537,5537,5537,5537, - 5537,5537,5537,5537,5537,5537,5537,5537,5537,5537, - 5537,5537,5537,5537,5537,5537,1390,5537,4147,5537, - 5537,5537,5537,5537,4170,5537,5537,120,5552,2426, - 5537,5089,5537,3551,5537,5537,5537,5537,5537,5537, - 5915,5537,5537,5537,5537,5537,5552,5518,5515,5515, - 5515,5515,5515,5515,5515,1,1,1,5522,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,5525,3231,1,1,1,1,1,1,1, - 1,1,1,1,119,1,123,1,1,1, - 2065,2308,5552,953,3129,122,2997,2916,3527,3503, - 1525,3551,3219,3002,2264,2831,3132,3642,5552,3209, - 655,3207,3947,3203,5552,5518,5515,5515,5515,5515, - 5515,5515,5515,1,1,1,5522,1,1,1, + 5399,5368,5365,5365,5365,5365,5365,5365,5365,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,5378,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5375,3512,1,1,1, + 1,1,1,1,1,1,1,5399,1,1, + 4875,1,1,1,2753,1169,2002,119,3338,41, + 5056,5053,5406,3420,785,3509,666,3031,2190,3016, + 3352,3481,1,3501,1453,3425,4126,3401,8,5384, + 5384,5384,5384,5384,5384,5384,5384,5384,5384,5384, + 5384,5384,5384,5384,5384,5384,5384,5384,5384,5384, + 5384,5384,5384,5384,5384,5384,5384,5384,5384,5384, + 5384,5384,5384,5384,5384,5384,5384,5384,5384,5384, + 5384,5384,5384,5384,5384,5384,5384,5384,5384,5384, + 5384,5384,5384,5384,5384,5399,5384,5384,2958,5384, + 5384,5384,5384,5384,5384,121,5384,141,3396,3372, + 5384,3420,5384,5384,5399,5384,5384,5384,5384,5384, + 1782,5384,5384,5384,5384,5384,5399,5368,5365,5365, + 5365,5365,5365,5365,5365,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5372, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,5375,3512,1,1,1,1,1,1,1, + 1,1,1,139,1,1,355,1,1,1, + 2753,1169,2002,120,3338,1,3396,3372,125,3420, + 785,3509,5399,3031,2190,3016,3352,3481,2279,3501, + 1453,3425,4126,3401,5399,5368,5365,5365,5365,5365, + 5365,5365,5365,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5372,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5375, + 3512,1,1,1,1,1,1,1,1,1, + 1,2745,1,1,133,1,1,1,2753,1169, + 2002,5753,3338,2315,3396,3372,2657,2748,785,3509, + 5755,3031,2190,3016,3352,3481,5399,3501,1453,3425, + 4126,3401,5399,5368,5365,5365,5365,5365,5365,5365, + 5365,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5372,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5375,3512,1, + 1,1,1,1,1,1,1,1,1,95, + 1,1,5080,1,1,1,2753,1169,2002,1887, + 3338,2411,2382,5399,5416,5417,785,3509,2873,3031, + 2190,3016,3352,3481,418,3501,1453,3425,4126,3401, + 5399,5368,5365,5365,5365,5365,5365,5365,5365,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,5372,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5375,3512,1,1,1, + 1,1,1,1,1,1,1,237,1,1, + 5238,1,1,1,2753,1169,2002,4496,3338,5399, + 5044,5041,42,5440,785,3509,5440,3031,2190,3016, + 3352,3481,5399,3501,1453,3425,4126,3401,5399,5368, + 5365,5365,5365,5365,5365,5365,5365,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,5372,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,5375,3512,1,1,1,1,1, + 1,1,1,1,1,1,1,1,4397,1, + 1,1,2753,1169,2002,5793,3338,5399,5044,5041, + 129,5440,785,3509,5399,3031,2190,3016,3352,3481, + 436,3501,1453,3425,4126,3401,5399,5368,5365,5365, + 5365,5365,5365,5365,5365,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5372, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,5375,3512,1,1,1,1,1,1,1, + 1,1,1,2778,1,1,122,1,1,1, + 2753,1169,2002,2545,3338,142,2908,2830,2657,2748, + 785,3509,5399,3031,2190,3016,3352,3481,5399,3501, + 1453,3425,4126,3401,5399,5368,5365,5365,5365,5365, + 5365,5365,5365,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5372,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5375, + 3512,1,1,1,1,1,1,1,1,1, + 1,2790,1,1,5399,1,1,1,2753,1169, + 2002,2101,3338,5399,5416,5417,128,5399,785,3509, + 5399,3031,2190,3016,3352,3481,2279,3501,1453,3425, + 4126,3401,5399,5368,5365,5365,5365,5365,5365,5365, + 5365,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5372,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5375,3512,1, + 1,1,1,1,1,1,1,1,1,2791, + 1,1,140,1,1,1,2753,1169,2002,302, + 3338,5399,5235,5232,2657,2748,785,3509,5700,3031, + 2190,3016,3352,3481,5399,3501,1453,3425,4126,3401, + 5399,3370,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,5409,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5408,3512,1,1,1, + 1,1,1,1,1,1,1,5399,1,1, + 4132,1,1,1,2753,1169,2002,5582,3338,53, + 5250,5247,2315,5399,785,3509,5399,3031,2190,3016, + 3352,3481,5399,3501,1453,3425,4126,3401,5399,5365, + 5365,5365,5365,5365,5365,5365,5365,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,5387,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,5387,5560,1,1,1,1,1, + 1,1,1,1,1,1,1,1,3070,1, + 1,1,5399,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5399,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5040,5560,1, + 1,1,1,1,1,1,1,1,1,5399, + 1,1,799,1,1,1,5399,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5399, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,5399,5560,1,1,1,1,1,1,1, + 1,1,1,345,1,1,1529,1,1,1, + 5399,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,5399,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5399,5560,1,1,1, + 1,1,1,1,1,1,1,5399,1,1, + 799,1,1,1,5399,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5399,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5399, + 5560,1,1,1,1,1,1,1,1,1, + 1,317,1,1,5335,1,1,1,5399,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5525, - 3231,1,1,1,1,1,1,1,1,1, - 1,1,118,1,4147,1,1,1,2065,2308, - 4170,953,3129,121,126,139,3527,3503,1525,3551, - 3219,3002,2264,2831,3132,3642,5552,3209,655,3207, - 3947,3203,5552,5518,5515,5515,5515,5515,5515,5515, - 5515,1,1,1,5522,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,5399,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5525,3231,1, + 1,1,1,5399,5560,1,1,1,1,1, + 1,1,1,1,1,446,1,1,799,1, + 1,1,5399,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 117,1,4147,1,1,1,2065,2308,4170,953, - 3129,142,2738,2834,3527,3503,1525,294,3219,3002, - 2264,2831,3132,3642,2426,3209,655,3207,3947,3203, - 5552,5518,5515,5515,5515,5515,5515,5515,5515,1, - 1,1,5522,1,1,1,1,1,1,1, + 1,1,1,1,1,5399,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5399,5560,1, + 1,1,1,1,1,1,1,1,1,134, + 1,1,5071,1,1,1,42,5068,5065,2526, + 1135,3347,3918,3035,3941,975,3895,3872,5664,5662, + 5671,5670,5666,5667,5665,5668,5669,5672,5663,161, + 3987,3964,5422,3457,823,892,5424,840,621,851, + 5425,5423,781,5418,5420,5421,5419,1325,389,5399, + 5656,224,382,5659,5734,5735,5653,5660,5632,5658, + 5657,5654,5655,445,5633,5790,5399,612,5791,5792, + 5399,5284,5284,228,5280,228,228,228,228,1, + 137,5399,1,1,1,1,1,1,1,1, + 1,1,1,5288,127,5656,2411,2382,5659,5734, + 5735,5653,5660,5632,5658,5657,5654,5655,501,5633, + 53,5235,5232,5399,1,228,5802,1,1,1, + 1,1,1,1,1,1,1,489,1,1, + 5074,1,1,1,2313,5399,5416,5417,5399,5235, + 5232,5399,407,228,5399,5044,5041,143,1135,2539, + 526,3035,5887,5399,5284,5284,228,5280,228,228, + 228,228,1,143,5407,1,1,1,1,1, + 1,1,1,1,1,1,5332,4010,760,2349, + 4010,760,2657,2748,5824,5825,5826,5399,5399,5145, + 5141,4460,5149,2539,5347,3035,5344,1,228,5802, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5525,3231,1,1,1, - 1,1,1,1,1,1,1,1,2041,1, - 4147,1,1,1,2065,2308,4170,953,3129,42, - 5552,5569,5570,5593,1525,3106,3219,3002,2264,2831, - 3132,3642,2356,3209,655,3207,3947,3203,5552,5518, - 5515,5515,5515,5515,5515,5515,5515,1,1,1, - 5522,1,1,1,1,1,1,1,1,1, + 489,1,1,5406,1,1,1,2313,1844,1, + 135,383,40,124,5086,406,228,5086,583,5086, + 5399,5089,5089,2908,2830,5887,1,5145,5141,4460, + 5149,2539,166,3035,5089,5089,5089,3248,5399,2240, + 5399,1801,1758,1715,1672,1629,1586,1543,1500,1457, + 1414,2062,5399,5399,3812,2240,5086,5824,5825,5826, + 5399,5044,5041,4460,1135,2539,1000,3035,5727,5438, + 3812,5089,1,5145,5141,5323,5149,5329,5089,5326, + 5089,5089,5089,5089,5089,166,346,5089,364,5145, + 5141,2726,5149,2539,1,3035,1,126,162,5089, + 5089,5089,5089,5089,5089,5089,5089,5089,5089,5089, + 5089,5089,5089,5089,5089,5089,5089,5089,5089,5089, + 5089,5089,5089,5089,5089,5399,225,382,5089,5089, + 5092,5089,5399,5092,504,5092,875,5095,5095,343, + 5044,5041,2726,1135,2539,1000,3035,5727,5403,5399, + 5095,5095,5095,799,52,799,5399,9759,9759,1145, + 1,5145,5141,5323,5149,5329,5399,5326,1371,4269, + 5656,359,5092,5659,5734,5735,5653,5660,5632,5658, + 5657,5654,5655,5409,5633,2657,2748,5098,5399,5044, + 5041,123,1135,2539,5095,3035,5095,5095,5095,5095, + 5095,2908,2830,5095,901,5408,799,5399,5416,5417, + 5399,1020,2539,5438,3035,5095,5095,5095,5095,5095, + 5095,5095,5095,5095,5095,5095,5095,5095,5095,5095, + 5095,5095,5095,5095,5095,5095,5095,5095,5095,5095, + 5095,1438,1,5402,5095,5095,383,5095,5399,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5525,3231,1,1,1,1,1, - 1,1,1,1,1,1,136,1,134,1, - 1,1,2065,2308,595,953,3129,5552,5196,5193, - 5552,5593,1525,625,3219,3002,2264,2831,3132,3642, - 5552,3209,655,3207,3947,3203,5552,5518,5515,5515, - 5515,5515,5515,5515,5515,1,1,1,5522,1, + 1,5409,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,5399,5408,5560,5399,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,168,1, 1,1,1,1,1,1,1,1,1,1, - 1,5525,3231,1,1,1,1,1,1,1, - 1,1,1,1,137,1,140,1,1,1, - 2065,2308,595,953,3129,2518,2484,5552,5569,5570, - 1525,376,3219,3002,2264,2831,3132,3642,455,3209, - 655,3207,3947,3203,5552,5518,5515,5515,5515,5515, - 5515,5515,5515,1,1,1,5522,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 168,5560,5399,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5525, - 3231,1,1,1,1,1,1,1,1,1, - 1,1,1225,1,5217,1,1,1,2065,2308, - 311,953,3129,5552,5385,5382,2392,5552,1525,5862, - 3219,3002,2264,2831,3132,3642,454,3209,655,3207, - 3947,3203,5552,5518,5515,5515,5515,5515,5515,5515, - 5515,1,1,1,5522,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5525,3231,1, - 1,1,1,1,1,1,1,1,1,1, - 1951,1,5220,1,1,1,2065,2308,96,953, - 3129,5226,5552,53,5385,5382,1525,374,3219,3002, - 2264,2831,3132,3642,5556,3209,655,3207,3947,3203, - 5552,3145,1,1,1,1,1,1,1,1, - 1,1,5562,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5561,3231,1,1,1, - 1,1,1,1,1,1,1,1,1276,1, - 225,1,1,1,2065,2308,5552,953,3129,399, - 5196,5193,40,5593,1525,5552,3219,3002,2264,2831, - 3132,3642,419,3209,655,3207,3947,3203,5552,5375, - 5375,5375,5375,5375,5375,5375,5375,5555,5375,5375, - 5375,5375,5375,238,5810,30,5388,5813,5896,5897, - 5807,5814,5786,5812,5811,5808,5809,5787,125,1, - 5288,5284,5467,5292,5473,3196,5470,42,2997,2916, - 5591,5562,5375,5375,5552,5375,5375,5375,5375,5375, - 5375,5375,5375,5375,5375,5375,1,5552,5375,41, - 5208,5205,5375,2225,5375,5503,916,5375,5375,5375, - 5375,5375,5375,5375,5561,5552,5196,5193,4529,1115, - 649,1209,2773,5889,5403,5403,5375,5375,5375,5375, - 5375,5375,5375,5375,5375,5375,5375,5375,5375,5375, - 5375,5375,5375,5375,5375,5375,5375,5375,5375,5375, - 5375,5375,5375,5375,3043,5506,5552,5375,5552,5515, - 5515,5515,5515,5515,5515,5515,5515,1,1,1, - 5540,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5540,5714,1,1,1,1,1, - 1,1,1,1,1,1,3065,1,5192,1, - 1,1,5552,1,1,1,1,1,1,1, - 1,1,1,1,5552,1,1,1,1,1, + 1,1,1,1,1,168,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,30,168,5560,5399, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5714,1, 1,1,1,1,1,1,1,1,1,1, - 355,1,5552,1,1,1,5552,1,1,1, - 1,1,1,1,1,1,1,1,1715,1, + 1,1,168,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,5552,5714,1,1,1,1,1,1,1, - 1,1,1,1,105,1,820,1,1,1, - 5552,1,1,1,1,1,1,1,1,1, - 1,1,5917,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,2065,5714,1,1,1, - 1,1,1,1,1,1,1,1,328,1, - 4396,1,1,1,5552,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5552, - 5714,1,1,1,1,1,1,1,1,1, - 1,1,104,1,820,1,1,1,5552,1, - 1,1,1,1,1,1,1,1,1,1, - 3201,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,3316,5714,1,1,1,1,1, - 1,1,1,1,1,1,5552,1,2080,1, - 1,1,5552,1,1,1,1,1,1,1, - 1,1,1,1,5552,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5552,5714,1, - 1,1,1,1,1,1,1,1,1,1, - 135,1,5552,1,1,1,42,5196,5193,5078, - 1115,3478,4032,2773,4055,1173,4009,3611,5534,4101, - 4078,5819,5817,5826,5825,5821,5822,5820,5823,5824, - 5827,5818,5575,3588,681,921,5577,740,879,871, - 5578,5576,631,5571,5573,5574,5572,1366,5552,5552, - 5810,5552,226,5813,5896,5897,5807,5814,5786,5812, - 5811,5808,5809,5787,343,5952,438,640,5953,5954, - 5552,5428,5428,230,5424,230,230,230,230,1, - 163,1,5432,5552,4802,1,1,1,1,1, - 1,1,1,1,1,1,5810,2518,2484,5813, - 5896,5897,5807,5814,5786,5812,5811,5808,5809,5787, - 5552,3194,5896,5897,1,230,5964,1,1,1, - 1,1,1,1,1,1,1,1,498,1, - 124,1,1,1,5552,1975,143,5552,5569,5570, - 2997,2916,416,230,1,5288,5284,4529,5292,649, - 1411,2773,6049,5552,5428,5428,230,5424,230,230, - 230,230,1,131,5552,5476,5552,3867,1,1, - 1,1,1,1,1,1,1,1,1,4124, - 860,5552,5986,5987,5988,1016,5986,5987,5988,1, - 5288,5284,4529,5292,649,141,2773,1,230,5964, - 1,1,1,1,1,1,1,1,1,1, - 1,498,1,5552,1,1,1,2133,1975,293, - 5569,5570,5552,2697,1,415,230,3326,392,398, - 224,5235,5211,5232,5235,6049,5235,2356,5235,5235, - 5235,5235,5235,5552,5552,5819,5817,5826,5825,5821, - 5822,5820,5823,5824,5827,5818,2641,2613,227,319, - 5288,5284,4529,5292,649,5491,2773,5488,510,5986, - 5987,5988,5232,5235,5810,144,5552,5813,5896,5897, - 5807,5814,5786,5812,5811,5808,5809,5787,5235,510, - 820,40,5418,5418,5235,2392,5418,5235,5235,5235, - 5235,5235,5810,5235,130,5813,5896,5897,5807,5814, - 5786,5812,5811,5808,5809,5787,5235,5235,5235,5235, - 5235,5235,5235,5235,5235,5235,5235,5235,5235,5235, - 5235,5235,5235,5235,5235,5235,5235,5235,5235,5235, - 5235,5235,5235,5235,5552,391,1906,5235,5238,2765, - 1,5238,5552,5238,392,5238,5238,5238,5238,5238, - 5552,1,5288,5284,4529,5292,649,5552,2773,5552, - 441,1,1,319,1,228,5214,2317,5214,1861, - 1816,1771,1726,1681,1636,1591,1546,1501,1456,2875, - 5238,320,2738,2834,2876,352,5497,5494,2807,1115, - 649,1209,2773,5889,42,5241,319,5552,5593,5552, - 1209,5238,5889,2310,5238,5238,5238,5238,5238,5810, - 5238,2351,5813,5896,5897,5807,5814,5786,5812,5811, - 5808,5809,5787,5238,5238,5238,5238,5238,5238,5238, - 5238,5238,5238,5238,5238,5238,5238,5238,5238,5238, - 5238,5238,5238,5238,5238,5238,5238,5238,5238,5238, - 5238,820,1321,5552,5238,5552,1,1,1,1, - 1,1,1,1,1,1,1,5562,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5552, - 5561,5714,5552,1,1,1,1,1,1,1, - 1,1,1,1,169,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5552,169,5714,5552, - 1,1,1,1,1,1,1,1,1,1, - 1,169,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5552,169,5714,5552,1,1,1, - 1,1,1,1,1,1,1,1,169,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 5552,5552,5714,3949,4370,129,39,5452,5449,5552, - 373,5288,5284,2807,5292,649,1,2773,1,5552, - 5288,5284,4529,5292,649,5491,2773,5488,399,5569, - 5570,169,5552,1,1,1,1,1,1,1, - 1,1,1,1,169,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,820,5552,5714,1, - 162,1180,5552,5196,5193,5552,1115,5245,4371,2773, - 5552,167,2133,2738,2834,5552,1,1,1,1, - 1,1,1,1,1,1,1,169,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1022,570,5552,1,1,1,1,1,1,1, - 1,1,1,1,167,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5552,5552,5714,5552, - 1,1,1,1,1,1,1,1,1,1, - 1,535,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,52,3433,5714,1,5288,5284,5078, - 5292,3478,4032,2773,4055,5248,4009,3611,5552,4101, - 4078,5275,5281,5254,5257,5269,5266,5272,5263,5260, - 5251,5278,5575,3588,681,921,5577,740,879,871, - 5578,5576,631,5571,5573,5574,5572,1366,42,42, - 5552,5196,5193,5552,1115,5245,3086,2773,5552,5196, - 5193,2466,5593,5552,1,1,1,1,1,1, - 1,1,1,1,1,514,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5552,1039,5714, - 5552,1,1,1,1,1,1,1,1,1, - 1,1,1480,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5552,5552,5714,5552,1,1, - 1,1,1,1,1,1,1,1,1,5552, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,5552,5552,5714,5552,1,1,1,1,1, - 1,1,1,1,1,1,5552,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5552,5552, - 5714,5552,1,1,1,1,1,1,1,1, - 1,1,1,5552,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5552,5552,5714,5552,1, - 1,1,1,1,1,1,1,1,1,1, - 5552,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,5552,5552,5714,42,5196,5193,5078,1115, - 3478,4032,2773,4055,1001,4009,3611,5560,4101,4078, - 5819,5817,5826,5825,5821,5822,5820,5823,5824,5827, - 5818,5575,3588,681,921,5577,740,879,871,5578, - 5576,631,5571,5573,5574,5572,1366,5552,1,5415, - 5415,5552,5412,5552,1209,1,5889,5552,3326,5558, - 369,2944,352,42,42,3326,5593,348,1209,3639, - 5889,5552,9947,9947,5552,9872,9870,5559,42,5196, - 5193,5078,1115,3478,4032,2773,4055,1001,4009,3611, - 5560,4101,4078,5819,5817,5826,5825,5821,5822,5820, - 5823,5824,5827,5818,5575,3588,681,921,5577,740, - 879,871,5578,5576,631,5571,5573,5574,5572,1366, - 2354,820,5557,369,348,348,4276,2861,820,5591, - 348,1,5288,5284,5467,5292,5473,513,5470,5552, - 5569,5570,3639,369,649,5552,2773,5552,9872,9870, - 5559,146,5196,5193,5078,1115,3478,4032,2773,4055, - 1001,4009,3611,5552,4101,4078,5819,5817,5826,5825, - 5821,5822,5820,5823,5824,5827,5818,5575,3588,681, - 921,5577,740,879,871,5578,5576,631,5571,5573, - 5574,5572,1366,42,42,1,5288,5284,5078,5292, - 3478,4032,2773,4055,5248,4009,3611,924,4101,4078, - 5275,5281,5254,5257,5269,5266,5272,5263,5260,5251, - 5278,5575,3588,681,921,5577,740,879,871,5578, - 5576,631,5571,5573,5574,5572,1366,42,42,42, - 5196,5193,5078,1115,3478,4032,2773,4055,1001,4009, - 3611,5556,4101,4078,5819,5817,5826,5825,5821,5822, - 5820,5823,5824,5827,5818,5575,3588,681,921,5577, - 740,879,871,5578,5576,631,5571,5573,5574,5572, - 42,5196,5193,5078,1115,3478,4032,2773,4055,1001, - 4009,3611,5552,4101,4078,5819,5817,5826,5825,5821, - 5822,5820,5823,5824,5827,5818,5575,3588,681,921, - 5577,740,879,871,5578,5576,631,5571,5573,5574, - 5572,1366,5552,5196,5193,5552,1115,649,3215,2773, - 5552,5552,1,5288,5284,2807,5292,649,5552,2773, - 5552,48,5394,5394,3639,3106,1,5288,5284,2807, - 5292,649,4716,2773,5555,42,5196,5193,5078,1115, - 3478,4032,2773,4055,1001,4009,3611,5552,4101,4078, - 5819,5817,5826,5825,5821,5822,5820,5823,5824,5827, - 5818,5575,3588,681,921,5577,740,879,871,5578, - 5576,631,5571,5573,5574,5572,1366,1,820,5391, - 779,5552,6018,6012,128,6016,5552,6010,6011,33, - 6041,6042,820,42,5552,80,5552,5593,2542,442, - 42,42,1805,5593,6019,5409,5562,5406,5620,5621, - 97,1,1,5552,1,5552,5421,144,5421,1588, - 1621,100,42,42,5552,5593,5552,5485,1027,5482, - 683,5552,5196,5193,381,1115,649,6021,2773,5561, - 865,4739,1,720,5552,5552,6022,6043,6020,510, - 5552,5385,5382,133,369,132,127,368,40,5418, - 5418,2549,423,5552,1805,6032,6031,6044,6013,6014, - 6037,6038,2738,2834,6035,6036,6015,6017,6039,6040, - 6045,6025,6026,6027,6023,6024,6033,6034,6029,6028, - 6030,5552,4124,860,779,5552,6018,6012,663,6016, - 354,6010,6011,1615,6041,6042,3395,5562,38,5986, - 5987,5988,5229,2697,866,2697,5591,369,6019,2317, - 5229,5552,5397,407,5400,1641,181,2862,40,5418, - 5418,2875,2355,1588,1621,5461,108,369,5531,3327, - 5561,5552,5552,5552,2738,2834,2641,2613,2641,2613, - 5552,6021,5552,5229,3395,1980,283,720,5552,5500, - 6022,6043,6020,5552,5552,582,820,3643,5464,5552, - 42,5531,2772,5552,5593,5552,427,5552,5552,6032, - 6031,6044,6013,6014,6037,6038,2513,5560,6035,6036, - 6015,6017,6039,6040,6045,6025,6026,6027,6023,6024, - 6033,6034,6029,6028,6030,42,5196,5193,5078,1115, - 3478,4032,2773,4055,1001,4009,3611,2573,4101,4078, - 5819,5817,5826,5825,5821,5822,5820,5823,5824,5827, - 5818,5575,3588,681,921,5577,740,879,871,5578, - 5576,631,5571,5573,5574,5572,6061,5559,5552,2959, - 5552,5955,5552,3283,5552,5552,5438,5435,5552,42, - 5196,5193,5078,1115,3478,4032,2773,4055,1001,4009, - 3611,1405,4101,4078,5819,5817,5826,5825,5821,5822, - 5820,5823,5824,5827,5818,5575,3588,681,921,5577, - 740,879,871,5578,5576,631,5571,5573,5574,5572, - 1366,42,5196,5193,5095,1115,3478,4032,2773,4055, - 1001,4009,3611,5591,4101,4078,5819,5817,5826,5825, - 5821,5822,5820,5823,5824,5827,5818,5575,3588,681, - 921,5577,740,879,871,5578,5576,631,5571,5573, - 5574,5572,42,5196,5193,5078,1115,3478,4032,2773, - 4055,1001,4009,3611,445,4101,4078,5819,5817,5826, - 5825,5821,5822,5820,5823,5824,5827,5818,5575,3588, - 681,921,5577,740,879,871,5578,5576,631,5571, - 5573,5574,5572,42,5196,5193,5078,1115,3478,4032, - 2773,4055,1001,4009,3611,33,4101,4078,5819,5817, - 5826,5825,5821,5822,5820,5823,5824,5827,5818,5575, - 3588,681,921,5577,740,879,871,5578,5576,631, - 5571,5573,5574,5572,5552,5196,5193,575,5593,5552, - 292,5552,5552,1114,5552,5552,5445,5441,5552,5819, - 5817,5826,5825,5821,5822,5820,5823,5824,5827,5818, - 5552,5552,5552,3703,3785,5199,1,5552,5552,5552, - 5552,5569,5570,5552,2780,50,5458,5458,5810,5560, - 5558,5813,5896,5897,5807,5814,5786,5812,5811,5808, - 5809,5787,505,5952,5552,640,5953,5954,242,5368, - 5364,619,5372,5591,40,5418,5418,1114,3532,2861, - 736,6004,5552,5355,5361,5334,5337,5349,5346,5352, - 5343,5340,5331,5358,1,5515,5515,230,5515,230, - 230,230,230,5455,2955,1,230,1054,5132,5559, - 2125,425,5319,5557,5503,5310,5304,5301,5328,5307, - 5298,5313,5316,5325,5322,5295,311,5952,1,640, - 5953,5954,5591,5115,326,5862,503,5479,9954,230, - 5558,1,5515,5515,230,5515,230,230,230,230, - 531,520,5512,5543,3256,2172,5552,446,5552,2308, - 5552,1264,3129,3043,5506,1,1,5515,5515,230, - 5515,230,230,230,230,1,6049,5509,5543,5552, - 5552,633,5077,5552,3117,9954,230,527,191,451, - 318,3055,53,2986,53,44,5570,391,5569,5512, - 820,1,5552,5557,5552,5552,2308,5121,1264,3129, - 9954,230,5552,222,1,5515,5515,230,5515,230, - 230,230,230,6049,5512,5552,5546,636,3826,5736, - 38,2308,5552,1264,3129,3389,3556,5559,222,1, - 5515,5515,230,5515,230,230,230,230,6049,5202, - 527,5543,5570,3683,5569,5223,5735,5379,9954,230, - 4516,510,2030,5552,2385,5552,5552,507,4558,2, - 5552,3395,5512,5552,4390,5552,1,5552,5552,2308, - 5552,1264,3129,9954,230,5552,221,1,5515,5515, - 230,5515,230,230,230,230,6049,5512,5552,5543, - 5552,3152,3113,5552,2308,5552,1264,3129,5552,5552, - 5549,222,1,5515,5515,230,5515,230,230,230, - 230,6049,5552,5552,230,5552,5552,5552,5552,40, - 5552,9954,230,5552,3152,5552,5552,1996,903,5552, - 5552,5552,5552,5552,5552,5512,5552,5552,5552,5552, - 5552,5552,2308,5552,1264,3129,9954,230,5552,222, - 1,5515,5515,230,5515,230,230,230,230,6049, - 5512,5552,230,5552,5552,5552,5552,2308,5552,1264, - 3129,5552,5552,5552,5552,1,5515,5515,230,5515, - 230,230,230,230,6049,5552,5552,230,5552,5552, - 5552,5552,5552,5552,9954,230,5552,5552,5552,5552, - 5552,5552,5552,5552,5552,5552,5552,5552,5512,5552, - 5552,5552,5552,5552,5552,2308,5552,1264,3129,9954, - 230,5552,5552,5552,5552,5552,5552,5552,5552,5552, - 5552,5552,6049,5512,5552,5552,5552,5552,5552,5552, - 2308,5552,1264,3129,5552,5552,5552,5552,5552,5552, - 5552,5552,5552,5552,5552,5552,5552,6049 + 1,1,1,5399,3449,5560,310,5145,5141,4460, + 5149,2539,5347,3035,5344,5399,343,42,42,3070, + 5440,5399,1000,5399,5727,5259,5259,5399,5044,5041, + 5399,1135,5102,4659,3035,168,5399,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,168, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1259,3744,5560,799,862,334,288,5416,5417,5399, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,168,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,5734,5735,619,5399,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5399, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 5399,5399,5560,5399,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,5399,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5399,5899,5560, + 1,5145,5141,2526,5149,3347,3918,3035,3941,5105, + 3895,3872,5132,5138,5111,5114,5126,5123,5129,5120, + 5117,5108,5135,104,3987,3964,5422,3457,823,892, + 5424,840,621,851,5425,5423,781,5418,5420,5421, + 5419,1325,42,42,5399,5842,5399,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,505, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 4732,5399,5560,5399,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,3596,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5399,5399,5560, + 5399,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,3134,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,5399,5399,5560,5399,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 5399,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,5399,5399,5560,5399,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,3519,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5399,4252, + 5560,5399,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,319,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,372,226,5560,42,5044, + 5041,2526,1135,3347,3918,3035,3941,765,3895,3872, + 5664,5662,5671,5670,5666,5667,5665,5668,5669,5672, + 5663,5407,3987,3964,5422,3457,823,892,5424,840, + 621,851,5425,5423,781,5418,5420,5421,5419,1325, + 5656,799,138,5659,5734,5735,5653,5660,5632,5658, + 5657,5654,5655,136,5633,1,5145,5141,4460,5149, + 2539,583,3035,3598,39,5308,5305,5399,289,227, + 5406,42,5044,5041,2526,1135,3347,3918,3035,3941, + 765,3895,3872,5664,5662,5671,5670,5666,5667,5665, + 5668,5669,5672,5663,5407,3987,3964,5422,3457,823, + 892,5424,840,621,851,5425,5423,781,5418,5420, + 5421,5419,1325,5656,3596,5399,5659,5734,5735,5653, + 5660,5632,5658,5657,5654,5655,522,5633,2062,432, + 1,1,1739,1,42,5062,3598,5062,5440,1973, + 1000,2349,5727,5406,145,5044,5041,2526,1135,3347, + 3918,3035,3941,765,3895,3872,5664,5662,5671,5670, + 5666,5667,5665,5668,5669,5672,5663,3282,3987,3964, + 5422,3457,823,892,5424,840,621,851,5425,5423, + 781,5418,5420,5421,5419,1325,42,42,1,5145, + 5141,2526,5149,3347,3918,3035,3941,5105,3895,3872, + 5132,5138,5111,5114,5126,5123,5129,5120,5117,5108, + 5135,5399,3987,3964,5422,3457,823,892,5424,840, + 621,851,5425,5423,781,5418,5420,5421,5419,1325, + 42,42,42,5044,5041,2526,1135,3347,3918,3035, + 3941,765,3895,3872,5664,5662,5671,5670,5666,5667, + 5665,5668,5669,5672,5663,5403,3987,3964,5422,3457, + 823,892,5424,840,621,851,5425,5423,781,5418, + 5420,5421,5419,42,5044,5041,2526,1135,3347,3918, + 3035,3941,765,3895,3872,5664,5662,5671,5670,5666, + 5667,5665,5668,5669,5672,5663,5399,3987,3964,5422, + 3457,823,892,5424,840,621,851,5425,5423,781, + 5418,5420,5421,5419,1325,433,42,42,429,5440, + 5399,5265,3000,5262,1,5271,5271,42,5268,190, + 1000,5440,5727,96,1,1,302,1,3598,5277, + 5399,5277,5399,5250,5247,5700,5399,360,5399,4715, + 5402,42,5044,5041,2526,1135,3347,3918,3035,3941, + 765,3895,3872,5664,5662,5671,5670,5666,5667,5665, + 5668,5669,5672,5663,1835,3987,3964,5422,3457,823, + 892,5424,840,621,851,5425,5423,781,5418,5420, + 5421,5419,1325,1,223,3691,532,3153,5856,5850, + 360,5854,1921,5848,5849,5399,5664,5662,5671,5670, + 5666,5667,5665,5668,5669,5672,5663,5879,5880,360, + 5857,1,5145,5141,2726,5149,2539,42,3035,5399, + 5399,5440,5824,5825,5826,1749,1792,511,5656,5399, + 115,5659,5734,5735,5653,5660,5632,5658,5657,5654, + 5655,5396,5633,5859,1,5145,5141,2726,5149,2539, + 715,3035,5860,5881,5858,3765,1,5145,5141,4460, + 5149,2539,5399,3035,876,130,390,5068,5065,5399, + 5440,5870,5869,5882,5851,5852,5875,5876,799,310, + 5873,5874,5853,5855,5877,5878,5883,5863,5864,5865, + 5861,5862,5871,5872,5867,5866,5868,5399,4125,2946, + 532,310,5856,5850,5399,5854,1,5848,5849,3070, + 5399,799,5399,5044,5041,5399,1135,5102,1,3035, + 4033,5879,5880,42,5857,2616,4056,5405,3599,339, + 5399,5824,5825,5826,5059,48,5244,5244,5409,1749, + 1792,99,42,42,3301,5440,3596,5341,398,5338, + 390,5416,5417,5399,9624,9508,5399,5859,2496,2465, + 5408,5399,9624,9508,715,5399,5860,5881,5858,878, + 4270,5317,5399,799,4694,339,339,40,5274,5274, + 5404,367,339,1782,5399,5870,5869,5882,5851,5852, + 5875,5876,5241,5320,5873,5874,5853,5855,5877,5878, + 5883,5863,5864,5865,5861,5862,5871,5872,5867,5866, + 5868,42,5044,5041,2526,1135,3347,3918,3035,3941, + 765,3895,3872,5664,5662,5671,5670,5666,5667,5665, + 5668,5669,5672,5663,5438,3987,3964,5422,3457,823, + 892,5424,840,621,851,5425,5423,781,5418,5420, + 5421,5419,1190,3690,2946,42,5044,5041,2526,1135, + 3347,3918,3035,3941,765,3895,3872,5664,5662,5671, + 5670,5666,5667,5665,5668,5669,5672,5663,1634,3987, + 3964,5422,3457,823,892,5424,840,621,851,5425, + 5423,781,5418,5420,5421,5419,1325,42,5044,5041, + 4876,1135,3347,3918,3035,3941,765,3895,3872,5664, + 5662,5671,5670,5666,5667,5665,5668,5669,5672,5663, + 5399,3987,3964,5422,3457,823,892,5424,840,621, + 851,5425,5423,781,5418,5420,5421,5419,42,5044, + 5041,2526,1135,3347,3918,3035,3941,765,3895,3872, + 5664,5662,5671,5670,5666,5667,5665,5668,5669,5672, + 5663,118,3987,3964,5422,3457,823,892,5424,840, + 621,851,5425,5423,781,5418,5420,5421,5419,42, + 5044,5041,2526,1135,3347,3918,3035,3941,765,3895, + 3872,5664,5662,5671,5670,5666,5667,5665,5668,5669, + 5672,5663,180,3987,3964,5422,3457,823,892,5424, + 840,621,851,5425,5423,781,5418,5420,5421,5419, + 5399,5068,5065,1,5440,5381,5399,5068,5065,778, + 5440,5399,5664,5662,5671,5670,5666,5667,5665,5668, + 5669,5672,5663,5399,5399,5399,5359,5381,1354,999, + 5399,4033,311,3702,5399,2520,132,4056,5399,287, + 40,5274,5274,2873,5656,5274,5405,5659,5734,5735, + 5653,5660,5632,5658,5657,5654,5655,5407,5633,5790, + 5399,612,5791,5792,241,5225,5221,5399,5229,107, + 3758,1491,4194,778,365,5406,5212,5218,5191,5194, + 5206,5203,5209,5200,5197,5188,5215,1,5365,5365, + 228,5365,228,228,228,228,2616,2140,5399,5404, + 40,5274,5274,1280,1025,5253,5406,103,5176,828, + 228,5167,5161,5158,5185,5164,5155,5170,5173,5182, + 5179,5409,5152,5790,131,612,5791,5792,33,2496, + 2465,9064,228,1,5365,5365,228,5365,228,228, + 228,228,53,5408,5362,1235,5417,3515,5399,410, + 1,2753,2125,2455,5399,3338,5390,2051,5399,1, + 5365,5365,228,5365,228,228,228,228,4352,5887, + 5399,5399,5294,5291,2012,416,5399,9064,228,117, + 5399,5399,5390,33,2616,5399,5301,5297,5047,5399, + 5362,437,442,5256,5399,5416,5417,2753,5399,2455, + 44,3338,5417,9064,228,221,1,5365,5365,228, + 5365,228,228,228,228,5887,5362,2496,2465,5399, + 2151,1,1954,2753,2548,2455,5399,3338,5438,5393, + 116,221,1,5365,5365,228,5365,228,228,228, + 228,5887,5438,501,360,3077,50,5314,5314,551, + 9064,228,5050,5581,279,5390,414,5350,53,3140, + 5077,3334,5416,5362,40,5274,5274,382,1,4033, + 2753,1,2455,5399,3338,4056,9064,228,220,1, + 5365,5365,228,5365,228,228,228,228,5887,5362, + 5399,5405,5399,4321,496,3184,2753,360,2455,494, + 3338,5399,5390,5311,221,1,5365,5365,228,5365, + 228,228,228,228,5887,1,360,3525,5416,5399, + 4033,5438,3518,9064,228,5399,4056,5083,228,5399, + 5399,501,4879,1,5399,5399,5362,5399,518,1, + 4919,5399,5353,2753,5404,2455,5399,3338,38,9064, + 228,221,1,5365,5365,228,5365,228,228,228, + 228,5887,5362,309,79,4432,1169,3047,1,2753, + 4433,2455,5399,3338,5399,228,498,5353,1,5365, + 5365,228,5365,228,228,228,228,5887,5466,5467, + 3251,518,5356,2,2527,2772,9064,228,5399,5399, + 5399,228,3628,4923,3229,5399,3242,5399,4475,5362, + 4738,3307,5399,5399,5399,5399,2753,5399,2455,2303, + 3338,5399,9064,228,5399,3251,5399,5356,5399,5399, + 5399,3508,5399,4382,5887,5362,5399,5399,5399,5399, + 5399,5399,2753,2303,2455,1930,3338,846,5399,5399, + 5399,5399,5399,40,5399,5399,5399,5399,5399,5399, + 5887,5399,5399,5399,5399,5399,5399,570,5399,5399, + 5399,5399,5399,5399,5399,5399,5399,5399,5399,5399, + 5399,5399,5399,5399,648 }; }; public final static char termAction[] = TermAction.termAction; @@ -1961,59 +1904,59 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public interface Asb { public final static char asb[] = {0, - 1066,49,1016,321,47,51,892,793,793,793, - 793,114,892,460,793,534,460,1103,304,1105, - 322,322,322,322,322,322,322,322,322,972, - 978,983,980,987,985,992,990,994,993,995, - 168,996,321,304,86,86,86,86,361,175, - 58,457,86,165,44,460,460,58,565,460, - 44,44,35,305,894,85,645,116,377,384, - 304,955,955,1057,1057,175,1066,322,322,322, - 322,322,322,322,322,322,322,322,322,322, - 322,322,322,322,322,322,321,321,321,321, - 321,321,321,321,321,321,321,1066,322,44, - 44,604,604,604,604,264,44,58,842,942, - 953,516,953,511,953,513,953,937,953,953, - 114,361,165,165,58,322,842,124,653,526, - 525,397,114,1105,165,85,321,359,644,44, - 358,361,360,358,44,165,980,980,978,978, - 978,985,985,985,985,983,983,990,987,987, - 993,992,994,1120,995,892,892,892,892,361, - 361,604,469,603,457,361,453,220,361,381, - 264,268,379,516,272,361,361,361,264,604, - 35,165,1010,44,655,657,361,645,322,86, - 976,1,44,116,361,361,360,645,321,1066, - 1066,1066,1066,892,892,305,846,453,220,381, - 380,381,264,381,272,272,361,264,361,44, - 530,518,529,657,264,359,44,976,842,644, - 116,361,359,44,44,44,44,175,175,453, - 452,694,361,220,1120,266,213,1110,220,381, - 381,775,361,272,694,692,693,361,387,321, - 527,527,364,364,361,651,842,697,44,361, - 976,977,976,1066,1,218,116,44,44,453, - 645,793,358,433,1112,355,892,783,113,776, - 361,694,322,361,387,321,321,657,361,645, - 44,655,518,387,408,976,175,322,165,218, - 359,235,359,381,381,355,1015,842,361,786, - 322,1120,372,775,361,114,114,361,444,657, - 387,977,44,165,1016,235,359,381,516,114, - 1112,355,644,322,322,361,361,361,444,44, - 444,603,793,118,118,1016,516,285,783,361, - 892,361,361,892,437,444,235,731,235,602, - 602,509,286,114,361,175,658,437,795,1019, - 883,892,514,767,235,86,86,509,285,1120, - 322,1120,1016,892,892,892,286,892,361,848, - 1016,1016,361,516,284,44,43,439,606,604, - 883,795,730,516,797,516,114,603,277,892, - 277,1120,286,304,304,302,800,304,1016,1016, - 507,509,86,439,731,730,731,1016,371,1015, - 44,730,730,114,730,361,690,697,44,355, - 44,848,1016,883,892,44,509,730,321,804, - 355,1016,694,730,730,361,730,361,118,44, - 44,421,286,507,286,1016,848,883,1066,286, - 283,694,44,802,694,361,694,1016,602,516, - 516,927,321,284,1064,1016,44,802,1016,358, - 286,44,1064,1016,693,286,44,802,286 + 976,63,1099,422,61,65,927,785,785,785, + 785,57,927,547,785,601,547,1013,405,1015, + 423,423,423,423,423,423,423,423,423,1055, + 1061,1066,1063,1070,1068,1075,1073,1077,1076,1078, + 216,1079,422,405,29,29,29,29,462,223, + 1,544,29,113,159,547,547,1,632,547, + 159,159,150,406,840,28,724,59,1036,405, + 1038,1038,967,967,223,976,423,423,423,423, + 423,423,423,423,423,423,423,423,423,423, + 423,423,423,423,423,422,422,422,422,422, + 422,422,422,422,422,422,976,423,159,159, + 671,671,671,671,212,159,1,832,1025,1036, + 683,1036,678,1036,680,1036,1020,57,462,113, + 113,1,423,832,72,498,473,472,337,57, + 1015,113,28,422,460,723,159,459,462,461, + 459,159,113,1063,1063,1061,1061,1061,1068,1068, + 1068,1068,1066,1066,1073,1070,1070,1076,1075,1077, + 1120,1078,927,927,927,927,462,462,671,556, + 670,544,462,540,168,462,598,212,268,596, + 683,305,462,462,462,212,671,150,113,1093, + 159,500,502,462,724,423,29,1059,116,159, + 59,462,462,461,724,422,976,976,976,976, + 927,927,406,836,540,168,598,597,598,212, + 598,305,305,462,212,462,159,477,465,476, + 502,212,460,159,1059,832,723,59,462,460, + 159,159,159,159,223,223,540,539,675,462, + 168,1120,214,261,1110,168,598,598,1102,462, + 305,675,673,674,462,310,422,474,474,324, + 324,462,496,832,272,159,462,1059,1060,1059, + 976,116,266,59,159,159,540,724,785,459, + 320,1112,456,927,775,56,1103,462,675,423, + 462,310,422,422,502,462,724,159,500,465, + 310,348,1059,223,423,113,266,460,183,460, + 598,598,456,1098,832,462,778,423,1120,332, + 1102,462,57,57,462,488,502,310,1060,159, + 113,1099,183,460,598,683,57,1112,456,723, + 423,423,462,462,462,488,159,488,670,785, + 162,162,1099,683,386,775,462,927,462,462, + 927,481,488,183,731,183,669,669,537,387, + 57,462,223,503,481,787,929,918,927,373, + 767,183,29,29,537,386,1120,423,1120,1099, + 927,927,927,387,927,462,883,1099,1099,462, + 683,385,159,158,483,685,671,918,787,730, + 683,683,789,57,670,378,927,378,1120,387, + 405,405,403,838,405,1099,1099,594,537,29, + 483,731,730,731,1099,331,1098,159,730,730, + 730,57,462,535,272,159,456,159,883,1099, + 918,927,159,537,730,422,794,456,1099,675, + 730,730,730,462,462,162,159,159,361,387, + 594,387,1099,883,918,976,387,384,675,159, + 792,675,675,462,1099,669,683,683,873,422, + 385,974,1099,159,792,1099,459,387,159,974, + 1099,674,387,159,792,387 }; }; public final static char asb[] = Asb.asb; @@ -2021,118 +1964,118 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public interface Asr { public final static byte asr[] = {0, - 96,90,10,11,91,92,88,89,60,93, - 94,97,98,99,100,101,102,114,73,95, - 71,104,105,106,107,108,109,110,111,112, - 113,115,72,45,69,1,2,8,6,4, - 3,66,70,75,12,0,12,45,121,0, - 12,73,115,75,45,70,0,28,42,29, - 30,43,7,31,32,33,34,41,35,36, - 37,38,39,26,13,14,8,6,10,11, - 5,27,69,40,3,50,15,16,59,48, - 17,61,51,44,18,52,53,19,20,54, - 55,21,22,56,62,57,9,63,23,24, - 49,25,47,1,2,4,0,69,71,70, - 1,2,0,42,43,3,9,29,33,31, - 28,36,16,25,15,21,19,20,22,23, - 18,17,24,37,40,38,39,26,35,30, - 34,5,7,4,13,14,8,6,10,11, - 27,32,1,2,115,12,0,69,73,95, - 70,115,72,45,12,75,15,16,28,42, - 17,29,30,18,19,20,43,31,21,22, - 32,33,34,41,35,36,23,24,25,37, - 38,39,26,3,13,14,8,6,10,11, - 27,40,7,1,2,4,9,5,0,82, - 7,116,117,118,65,12,3,8,6,5, - 73,72,45,46,50,15,16,59,48,17, - 61,51,44,18,52,53,19,20,54,55, - 21,22,56,62,57,9,63,23,47,24, - 49,25,4,1,2,58,0,4,64,73, - 0,1,2,12,72,0,82,116,117,118, - 58,73,120,122,72,74,65,67,68,77, - 79,86,84,76,81,83,85,87,64,78, - 80,12,45,46,61,59,62,63,50,55, - 56,44,54,53,47,51,48,49,52,57, - 41,42,43,9,29,33,31,28,36,16, - 25,15,21,19,20,22,23,18,17,24, - 37,40,38,39,26,35,30,34,13,14, - 10,11,27,32,8,6,3,4,7,5, - 1,2,0,74,64,69,73,95,75,66, - 3,12,70,45,71,0,12,45,4,60, - 64,73,0,60,4,0,48,41,49,12, - 69,95,71,70,75,0,15,16,17,18, - 19,20,21,22,23,24,25,50,48,51, - 44,52,53,54,55,56,57,47,49,45, - 12,75,7,1,2,66,3,8,6,5, - 4,0,64,73,74,0,48,49,74,3, - 64,73,45,41,12,69,95,71,70,75, - 0,41,48,7,49,5,1,2,4,74, - 12,64,73,95,115,75,72,45,66,3, - 119,96,103,90,13,14,8,6,10,11, - 91,92,88,89,60,93,94,97,98,99, - 100,101,102,114,104,105,106,107,108,109, - 110,111,112,113,69,70,71,0,120,0, - 58,73,4,1,2,64,0,8,6,7, - 5,4,1,2,3,66,69,71,70,12, - 75,95,0,50,15,16,59,48,17,61, - 51,44,18,52,53,19,20,54,55,21, - 22,56,62,57,9,63,23,47,24,49, - 25,1,2,4,43,42,10,11,6,91, - 92,99,8,100,5,27,60,107,108,104, - 105,106,112,111,113,89,88,109,110,97, - 98,93,94,101,102,13,14,90,103,3, - 66,71,70,69,0,68,50,15,16,59, - 48,17,61,51,82,44,18,52,53,19, - 20,54,67,55,21,22,56,62,57,9, - 63,23,65,47,24,49,25,12,3,8, - 4,45,64,6,7,1,2,5,58,0, - 5,7,3,66,6,8,95,50,15,16, - 48,17,61,51,44,18,52,53,19,20, - 54,55,21,22,56,62,57,9,63,23, - 47,24,49,25,1,2,4,75,12,59, - 0,71,70,72,12,0,50,15,16,59, - 48,17,61,51,44,18,52,53,19,20, - 54,55,21,22,56,62,57,9,63,23, - 47,24,49,25,1,2,4,95,0,72, - 59,48,17,61,51,18,52,53,19,20, - 54,55,21,22,56,62,57,63,23,47, - 24,49,25,16,15,50,12,3,8,6, - 45,65,68,82,44,58,7,1,2,5, - 4,9,67,0,47,1,2,4,116,117, - 118,0,64,70,0,73,12,66,3,71, - 70,45,60,0,26,0,64,71,0,76, - 0,12,72,42,43,41,13,14,10,11, + 28,42,29,30,43,7,31,32,33,34, + 41,35,36,37,38,39,26,24,25,8, + 6,10,11,5,27,69,40,3,50,12, + 13,59,48,14,61,51,44,15,52,53, + 16,17,54,55,18,19,56,62,58,9, + 63,20,21,49,22,47,1,2,4,0, + 23,45,121,0,23,73,118,76,45,70, + 0,42,43,3,9,29,33,31,28,36, + 13,22,12,18,16,17,19,20,15,14, + 21,37,40,38,39,26,35,30,34,5, + 7,4,24,25,8,6,10,11,27,32, + 1,2,118,23,0,96,90,10,11,91, + 92,88,89,60,93,94,97,98,99,100, + 101,102,117,73,95,71,104,105,106,107, + 108,109,110,111,112,113,118,72,45,69, + 1,2,8,6,4,3,67,70,76,23, + 0,69,71,70,1,2,0,82,7,114, + 115,116,64,23,3,8,6,5,73,72, + 45,46,50,12,13,59,48,14,61,51, + 44,15,52,53,16,17,54,55,18,19, + 56,62,58,9,63,20,47,21,49,22, + 4,1,2,57,0,69,73,95,70,118, + 72,45,23,76,12,13,28,42,14,29, + 30,15,16,17,43,31,18,19,32,33, + 34,41,35,36,20,21,22,37,38,39, + 26,3,24,25,8,6,10,11,27,40, + 7,1,2,4,9,5,0,4,65,73, + 0,50,12,13,59,48,14,61,51,44, + 15,52,53,16,17,54,55,18,19,56, + 62,58,9,63,20,47,21,49,22,1, + 2,4,95,0,1,2,23,72,0,48, + 41,49,23,69,95,71,70,76,0,65, + 73,74,0,74,65,69,73,95,76,67, + 3,23,70,45,71,0,12,13,14,15, + 16,17,18,19,20,21,22,50,48,51, + 44,52,53,54,55,56,58,47,49,45, + 23,76,7,1,2,67,3,8,6,5, + 4,0,1,2,123,65,0,82,114,115, + 116,57,73,119,122,72,74,64,66,68, + 77,79,86,84,75,81,83,85,87,65, + 78,80,23,45,46,61,59,62,63,50, + 55,56,44,54,53,47,51,48,49,52, + 58,41,42,43,9,29,33,31,28,36, + 13,22,12,18,16,17,19,20,15,14, + 21,37,40,38,39,26,35,30,34,24, + 25,10,11,27,32,8,6,3,4,7, + 5,1,2,0,8,6,7,5,4,1, + 2,3,67,69,71,70,23,76,95,0, + 48,49,74,3,65,73,45,41,23,69, + 95,71,70,76,0,5,7,3,67,6, + 8,95,50,12,13,48,14,61,51,44, + 15,52,53,16,17,54,55,18,19,56, + 62,58,9,63,20,47,21,49,22,1, + 2,4,76,23,59,0,119,0,41,48, + 7,49,5,1,2,4,74,23,65,73, + 95,118,76,72,45,67,3,120,96,103, + 90,24,25,8,6,10,11,91,92,88, + 89,60,93,94,97,98,99,100,101,102, + 117,104,105,106,107,108,109,110,111,112, + 113,69,70,71,0,4,60,65,73,0, + 50,12,13,59,48,14,61,51,44,15, + 52,53,16,17,54,55,18,19,56,62, + 58,9,63,20,47,21,49,22,1,2, + 4,43,42,10,11,6,91,92,99,8, + 100,5,27,60,107,108,104,105,106,112, + 111,113,89,88,109,110,97,98,93,94, + 101,102,24,25,90,103,3,67,71,70, + 69,0,71,70,72,23,0,57,73,4, + 1,2,65,0,68,50,12,13,59,48, + 14,61,51,82,44,15,52,53,16,17, + 54,66,55,18,19,56,62,58,9,63, + 20,64,47,21,49,22,23,3,8,4, + 45,65,6,7,1,2,5,57,0,72, + 59,48,14,61,51,15,52,53,16,17, + 54,55,18,19,56,62,58,63,20,47, + 21,49,22,13,12,50,23,3,8,6, + 45,64,68,82,44,57,7,1,2,5, + 4,9,66,0,65,70,0,73,23,67, + 3,71,70,45,60,0,26,0,65,71, + 0,23,72,42,43,41,24,25,10,11, 5,27,32,3,7,37,40,38,39,26, - 35,30,34,16,25,15,21,19,20,22, - 23,18,17,24,9,29,33,31,28,36, - 64,1,2,8,4,6,0,15,16,28, - 42,17,29,30,18,19,20,43,31,21, - 22,32,33,34,41,35,36,9,23,24, - 25,37,38,39,26,13,14,10,11,27, - 40,46,12,8,6,45,5,7,1,2, - 4,3,0,42,43,13,14,10,11,27, - 32,37,40,38,39,26,35,30,34,16, - 25,15,21,19,20,22,23,18,17,24, - 9,29,33,31,28,36,8,6,3,66, - 5,7,1,2,4,0,9,61,59,62, - 63,16,25,15,21,19,20,22,23,18, - 17,24,74,64,5,4,2,1,49,47, - 57,56,55,7,54,53,52,44,51,48, - 50,119,103,13,14,66,3,96,90,6, - 91,92,10,11,89,88,60,93,94,97, - 98,8,99,100,101,69,95,75,71,104, - 105,106,107,108,109,110,111,112,113,73, - 115,72,102,114,70,45,12,0,59,48, - 17,61,51,18,52,53,19,20,54,55, - 21,22,56,62,57,9,63,23,47,24, - 49,25,16,15,50,12,3,8,6,45, - 65,67,68,82,44,60,7,4,58,5, - 1,2,0,12,75,15,16,28,17,29, - 30,18,19,20,31,21,22,32,33,34, - 41,35,36,9,23,24,25,37,38,39, - 26,3,13,14,8,6,10,11,27,4, - 40,46,5,7,1,2,43,42,0,45, - 12,5,7,3,1,2,4,6,8,73, + 35,30,34,13,22,12,18,16,17,19, + 20,15,14,21,9,29,33,31,28,36, + 65,1,2,8,4,6,0,75,0,42, + 43,24,25,10,11,27,32,37,40,38, + 39,26,35,30,34,13,22,12,18,16, + 17,19,20,15,14,21,9,29,33,31, + 28,36,8,6,3,67,5,7,1,2, + 4,0,12,13,28,42,14,29,30,15, + 16,17,43,31,18,19,32,33,34,41, + 35,36,9,20,21,22,37,38,39,26, + 24,25,10,11,27,40,46,23,8,6, + 45,5,7,1,2,4,3,0,59,48, + 14,61,51,15,52,53,16,17,54,55, + 18,19,56,62,58,9,63,20,47,21, + 49,22,13,12,50,23,3,8,6,45, + 64,66,68,82,44,60,7,4,57,5, + 1,2,0,23,76,12,13,28,14,29, + 30,15,16,17,31,18,19,32,33,34, + 41,35,36,9,20,21,22,37,38,39, + 26,3,24,25,8,6,10,11,27,4, + 40,46,5,7,1,2,43,42,0,9, + 61,59,62,63,13,22,12,18,16,17, + 19,20,15,14,21,74,65,5,4,2, + 1,49,47,58,56,55,7,54,53,52, + 44,51,48,50,120,103,24,25,67,3, + 96,90,6,91,92,10,11,89,88,60, + 93,94,97,98,8,99,100,101,69,95, + 76,71,104,105,106,107,108,109,110,111, + 112,113,73,118,72,102,117,70,45,23, + 0,47,1,2,4,114,115,116,0,45, + 23,5,7,3,1,2,4,6,8,73, 0 }; }; @@ -2141,59 +2084,59 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public interface Nasb { public final static char nasb[] = {0, - 163,11,194,37,11,11,11,11,11,11, - 11,139,11,11,11,126,11,176,236,101, - 37,37,174,37,37,37,37,37,37,11, + 112,11,203,27,11,11,11,11,11,11, + 11,126,11,11,11,149,11,177,94,163, + 27,27,175,27,27,27,27,27,27,11, 11,11,11,11,11,11,11,11,11,11, - 37,11,37,236,189,189,189,189,101,19, - 115,77,4,48,124,11,11,115,128,11, - 124,124,148,1,37,50,198,11,11,11, - 236,11,11,26,26,19,155,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,155,37,124, - 124,11,11,11,11,106,124,35,138,206, - 207,11,207,99,207,9,207,200,11,11, - 139,101,48,48,35,37,138,44,148,80, - 80,11,139,101,48,189,68,185,62,124, - 184,186,101,184,124,48,11,11,11,11, + 27,11,27,94,240,240,240,240,163,140, + 110,32,4,45,168,11,11,110,151,11, + 168,168,153,1,27,35,207,11,11,94, + 11,11,12,12,140,146,27,27,27,27, + 27,27,27,27,27,27,27,27,27,27, + 27,27,27,27,27,27,27,27,27,27, + 27,27,27,27,27,27,146,27,168,168, + 11,11,11,11,56,168,25,125,215,216, + 11,216,161,216,17,216,209,126,163,45, + 45,25,27,125,41,153,74,74,11,126, + 163,45,240,47,186,50,168,185,10,163, + 185,168,45,11,11,11,11,11,11,11, 11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,91, - 186,11,11,11,169,101,115,115,177,115, - 228,115,11,11,115,228,101,10,11,11, - 167,48,11,124,117,115,101,198,37,189, - 115,12,124,11,10,101,96,198,37,155, - 155,155,155,11,11,35,11,71,221,115, - 115,33,197,33,115,146,186,197,91,124, - 11,109,11,119,196,91,124,42,169,62, - 11,10,91,124,124,124,124,19,19,115, - 71,60,101,194,11,11,86,214,221,33, - 33,130,91,146,60,11,11,91,115,37, - 11,11,80,80,101,109,138,119,124,91, - 115,94,11,155,169,97,11,124,124,71, - 198,11,139,115,134,111,11,11,139,52, - 228,60,37,146,71,37,37,115,10,198, - 124,117,180,115,11,42,19,37,48,97, - 185,115,228,115,73,182,194,138,101,11, - 37,11,54,22,228,139,139,186,115,119, - 71,94,124,48,194,119,185,73,172,15, - 111,182,198,37,37,186,228,228,66,124, - 115,11,11,31,31,194,172,88,11,228, - 11,186,186,11,115,66,119,209,115,11, - 11,115,141,15,186,19,122,71,11,209, - 215,11,10,86,119,189,189,104,152,11, - 37,11,194,11,11,11,153,11,10,192, - 194,194,10,82,11,124,124,115,115,11, - 134,11,115,11,11,11,139,11,84,11, - 11,11,153,188,188,231,11,188,194,194, - 11,115,189,66,209,115,209,194,75,11, - 124,158,115,139,115,228,11,189,124,111, - 124,233,194,115,11,124,104,158,68,37, - 111,194,60,209,158,228,158,10,31,124, - 124,115,153,11,153,194,233,111,155,153, - 84,60,124,115,60,10,60,194,11,82, - 82,109,37,11,233,194,124,56,194,184, - 153,124,233,194,60,153,124,56,153 + 11,11,11,11,11,11,20,10,11,11, + 11,172,163,110,110,178,110,218,110,11, + 11,110,218,163,10,11,11,170,45,11, + 168,116,110,163,207,27,240,110,59,168, + 11,10,163,91,207,27,146,146,146,146, + 11,11,25,11,39,232,110,110,23,206, + 23,110,18,10,206,20,168,11,104,11, + 118,205,20,168,70,172,50,11,10,20, + 168,168,168,168,140,140,110,39,68,163, + 203,11,11,87,225,232,23,23,221,20, + 18,68,11,11,20,110,27,11,11,74, + 74,163,104,125,118,168,20,110,72,11, + 146,172,92,11,168,168,39,207,11,126, + 110,121,106,11,11,126,54,218,68,27, + 18,39,27,27,110,10,207,168,116,181, + 110,11,70,140,27,45,92,186,110,218, + 110,79,183,203,125,163,11,27,11,85, + 157,218,126,126,10,110,118,39,72,168, + 45,203,118,186,79,138,98,106,183,207, + 27,27,10,218,218,89,168,110,11,11, + 62,62,203,138,76,11,218,11,10,10, + 11,110,89,118,196,110,11,11,110,128, + 98,10,140,166,39,11,196,226,11,18, + 87,118,240,240,83,143,11,27,11,203, + 11,11,11,144,11,18,201,203,203,18, + 37,11,168,168,110,110,11,121,11,110, + 11,11,11,126,11,102,11,11,11,144, + 239,239,189,11,239,203,203,11,110,240, + 89,196,110,196,203,81,11,168,133,110, + 110,126,218,11,240,168,106,168,191,203, + 110,11,168,83,133,47,27,106,203,68, + 196,133,133,218,194,62,168,168,110,144, + 11,144,203,191,106,146,144,102,68,168, + 110,68,68,194,203,11,37,37,104,27, + 11,191,203,168,64,203,185,144,168,191, + 203,68,144,168,64,144 }; }; public final static char nasb[] = Nasb.nasb; @@ -2201,30 +2144,31 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public interface Nasr { public final static char nasr[] = {0, - 3,13,8,153,151,125,150,149,6,1, - 0,5,178,0,170,6,169,0,5,104, - 0,6,109,166,0,6,2,8,140,0, - 115,0,116,0,49,5,6,8,2,13, - 0,144,0,13,2,8,6,81,0,176, - 0,188,0,186,0,13,2,8,6,67, - 0,68,139,138,0,129,0,5,29,0, - 64,0,159,0,180,0,5,190,0,70, - 0,60,0,118,0,156,0,5,67,0, - 4,3,0,142,0,1,119,0,3,6, - 1,47,0,161,0,137,68,0,102,101, - 66,6,2,8,5,0,6,94,24,5, - 0,49,5,34,0,5,49,172,0,6, - 109,187,0,2,66,8,5,94,6,0, - 5,48,39,179,0,127,0,101,102,5, - 0,67,48,72,5,39,0,110,5,48, - 71,0,5,39,175,0,102,101,6,59, - 0,160,0,6,13,8,2,3,0,102, - 101,66,59,6,8,2,0,120,5,49, - 0,5,39,40,0,137,2,68,0,1, - 6,125,121,122,123,13,91,0,5,48, - 71,82,0,40,6,2,8,5,158,0, - 5,48,71,109,50,6,0,1,57,0, - 48,52,5,107,0,5,49,39,0 + 3,13,8,6,147,145,120,144,143,2, + 0,6,2,8,134,0,6,1,0,4, + 3,0,111,0,46,5,6,8,2,13, + 0,5,185,0,171,0,57,0,61,0, + 13,2,8,6,78,0,5,29,0,65, + 133,132,0,183,0,131,65,0,5,173, + 0,110,0,13,2,8,6,64,0,138, + 0,136,0,67,0,5,64,0,154,0, + 175,0,156,0,181,0,151,0,123,0, + 2,114,0,5,46,39,0,165,6,164, + 0,113,0,97,96,63,6,2,8,5, + 0,5,39,170,0,6,91,24,5,0, + 2,63,8,5,91,6,0,5,45,39, + 174,0,105,5,45,68,0,155,0,5, + 99,0,64,45,69,5,39,0,5,46, + 167,0,96,97,5,0,6,104,161,0, + 3,6,2,44,0,46,5,34,0,97, + 96,6,56,0,6,13,8,2,3,0, + 97,96,63,56,6,8,2,0,45,49, + 5,102,0,150,0,5,45,68,79,0, + 5,39,40,0,131,2,65,0,2,6, + 120,116,117,118,13,88,0,2,54,0, + 6,104,182,0,40,6,2,8,5,153, + 0,5,45,68,104,47,6,0,115,5, + 46,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -2233,18 +2177,18 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public interface TerminalIndex { public final static char terminalIndex[] = {0, 115,116,2,32,14,11,81,10,102,12, - 13,117,8,9,50,54,62,70,76,77, - 88,89,104,107,109,114,15,57,63,69, + 13,50,54,62,70,76,77,88,89,104, + 107,109,117,8,9,114,15,57,63,69, 86,90,92,96,99,101,111,112,113,46, 97,60,80,68,122,123,106,56,108,49, - 66,72,75,78,85,91,100,95,55,20, - 65,93,103,3,105,1,79,48,21,45, - 34,121,31,98,120,110,51,52,58,59, + 66,72,75,78,85,91,95,100,55,20, + 65,93,103,105,3,79,1,48,21,45, + 34,121,31,98,110,120,51,52,58,59, 61,67,71,73,74,87,94,18,19,7, 16,17,22,23,33,5,24,25,26,27, 28,29,6,35,36,37,38,39,40,41, - 42,43,44,30,119,82,83,84,4,53, - 124,64,118 + 42,43,44,82,83,84,30,119,53,4, + 125,64,124,118 }; }; public final static char terminalIndex[] = TerminalIndex.terminalIndex; @@ -2252,26 +2196,26 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, - 131,136,138,240,0,0,137,236,135,0, - 134,0,146,0,133,0,0,145,151,0, - 0,152,161,182,162,163,164,165,154,139, - 166,167,168,127,169,170,171,0,132,129, - 199,144,172,0,0,141,140,0,155,180, - 0,179,0,0,0,0,0,148,158,175, - 0,206,0,189,203,207,128,0,0,208, - 0,174,0,0,0,0,0,0,0,178, - 126,130,0,0,0,0,0,0,0,0, - 188,0,0,204,214,149,160,0,0,210, - 211,212,0,0,0,0,0,209,222,181, - 0,0,0,213,0,0,0,243,150,177, - 191,192,193,194,195,197,198,201,0,216, - 219,221,239,0,242,0,0,142,143,147, - 0,0,157,159,0,173,0,183,184,185, - 186,187,190,0,196,0,200,205,0,217, - 218,0,223,226,228,230,0,233,234,235, - 0,237,238,241,125,0,153,156,176,202, - 215,220,0,224,225,227,229,0,231,232, - 244,245,0,0,0,0,0,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,154,140, + 166,167,168,128,169,170,171,0,133,130, + 172,0,142,141,0,155,180,0,179,0, + 0,0,0,0,148,158,175,0,205,0, + 189,202,206,129,0,0,207,0,174,0, + 0,0,0,0,0,0,178,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,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,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; @@ -2317,18 +2261,18 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public interface ScopeLhs { public final static char scopeLhs[] = { - 50,18,18,76,18,18,18,18,76,85, - 51,90,89,123,69,55,76,75,50,18, - 76,20,3,7,166,166,163,121,50,88, - 123,122,124,56,51,140,134,76,18,18, - 134,103,61,136,79,169,166,163,131,122, - 122,124,52,60,144,19,18,18,18,18, - 18,12,118,163,131,76,75,75,38,140, - 75,18,18,18,18,103,76,20,170,166, - 180,101,108,63,70,62,158,80,124,77, - 73,145,144,176,140,17,163,124,120,22, - 132,132,59,140,140,76,50,163,74,138, - 47,138,47,169,120,121,50,50,61 + 47,18,18,73,18,18,18,18,73,82, + 48,87,86,118,66,52,73,72,47,18, + 73,20,3,7,161,161,158,116,47,85, + 118,117,119,53,48,134,128,73,18,18, + 128,98,58,130,76,164,161,158,125,117, + 117,119,49,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, + 175,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,47,158,71,132, + 44,132,44,164,115,116,47,47,58 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -2336,18 +2280,18 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public interface ScopeLa { public final static byte scopeLa[] = { - 120,75,75,75,75,75,75,75,75,72, - 45,72,72,72,69,1,75,122,64,3, - 45,75,69,69,1,1,45,72,64,72, + 119,76,76,76,76,76,76,76,76,72, + 45,72,72,72,69,1,76,122,65,3, + 45,76,69,69,1,1,45,72,65,72, 72,1,1,1,1,4,69,45,1,1, - 69,75,75,75,120,75,1,45,72,1, - 1,1,45,72,115,75,75,75,75,75, - 115,1,75,1,70,75,75,75,73,4, - 75,69,69,69,69,75,45,3,1,1, - 75,75,3,1,115,75,1,1,1,45, - 73,75,115,75,5,75,1,58,71,75, - 1,1,6,1,58,76,74,45,45,4, - 4,4,4,3,1,64,1,1,3 + 69,76,76,76,119,76,1,45,72,1, + 1,1,45,72,118,76,76,76,76,76, + 118,1,76,1,70,76,76,76,73,4, + 76,69,69,69,69,76,45,3,1,1, + 76,76,3,1,118,76,1,1,1,45, + 73,76,118,76,5,76,1,57,71,76, + 1,1,6,1,57,75,74,45,45,4, + 4,4,4,3,1,65,1,1,3 }; }; public final static byte scopeLa[] = ScopeLa.scopeLa; @@ -2374,71 +2318,71 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public interface ScopeRhs { public final static char scopeRhs[] = {0, - 315,3,41,0,127,0,314,3,120,0, - 127,175,0,128,183,74,0,218,0,294, - 128,60,127,0,21,0,296,128,60,58, - 0,21,55,0,34,133,0,21,55,0, - 0,296,128,60,58,194,0,21,130,0, - 294,128,60,131,0,180,129,0,139,0, - 227,3,293,0,293,0,2,0,127,0, - 180,129,232,0,180,129,47,232,0,180, - 129,311,47,0,132,191,170,129,0,129, - 0,191,170,129,0,135,129,0,171,0, - 307,128,171,0,128,171,0,224,129,0, - 170,248,0,138,0,0,0,136,0,0, - 0,306,128,64,255,0,128,0,255,0, - 3,0,0,128,0,305,128,64,0,45, - 128,0,152,3,0,128,283,282,128,74, - 281,171,0,282,128,74,281,171,0,217, - 0,218,0,281,171,0,98,0,0,217, - 0,218,0,205,98,0,0,217,0,218, - 0,282,128,281,171,0,217,0,205,0, - 0,217,0,235,128,3,0,127,0,0, - 0,0,0,235,128,3,224,0,231,3, - 0,217,128,0,210,0,149,0,170,129, - 0,11,0,0,0,220,66,0,126,0, - 235,128,3,185,0,185,0,2,0,0, - 127,0,0,0,0,0,203,3,0,203, - 0,234,128,64,26,44,0,180,129,67, - 65,0,144,129,0,132,180,129,279,65, - 0,180,129,279,65,0,180,129,71,124, - 67,0,234,128,64,67,0,234,128,64, - 164,67,0,234,128,64,125,67,0,277, - 128,64,124,61,0,277,128,64,61,0, - 180,129,61,0,136,0,191,180,129,248, - 0,138,0,180,129,248,0,191,170,129, - 9,0,170,129,9,0,95,138,0,270, - 128,171,0,162,86,0,230,163,230,175, - 3,83,0,127,174,0,230,175,3,83, - 0,129,0,127,174,0,230,163,230,163, - 230,3,83,0,230,163,230,3,83,0, - 230,3,83,0,129,0,129,0,127,174, - 0,162,3,76,195,81,0,127,129,0, - 195,81,0,110,2,132,127,129,0,243, - 3,76,0,203,172,0,34,172,0,172, - 0,178,34,172,0,243,3,87,0,195, - 157,243,3,85,0,64,174,0,243,3, - 85,0,127,174,64,174,0,302,128,64, - 0,162,0,220,78,0,31,0,162,114, - 160,0,31,172,0,181,3,0,127,152, - 0,227,3,0,220,66,267,0,162,66, - 0,181,3,299,43,129,0,127,0,0, - 0,0,299,43,129,0,2,148,127,0, - 0,0,0,181,3,32,0,150,0,126, - 58,170,129,0,32,150,0,95,138,32, - 150,0,219,180,129,0,149,32,150,0, - 181,3,36,0,162,3,36,0,162,3, - 69,181,60,28,0,181,60,28,0,21, - 2,132,127,0,162,3,69,181,60,31, - 0,181,60,31,0,162,3,69,181,60, - 33,0,181,60,33,0,162,3,69,181, - 60,29,0,181,60,29,0,227,3,126, - 191,170,129,9,0,126,191,170,129,9, - 0,138,2,0,127,0,227,3,125,260, - 170,129,9,0,260,170,129,9,0,136, - 2,0,127,0,227,3,136,0,227,3, - 141,0,162,66,141,0,262,0,32,0, - 32,142,0,169,0,135,0,162,3,0 + 311,3,41,0,128,0,310,3,119,0, + 128,175,0,129,181,74,0,217,0,290, + 129,60,128,0,21,0,292,129,60,57, + 0,21,55,0,34,134,0,21,55,0, + 0,292,129,60,57,192,0,21,131,0, + 290,129,60,132,0,178,130,0,140,0, + 223,3,289,0,289,0,2,0,128,0, + 178,130,228,0,178,130,47,228,0,178, + 130,307,47,0,133,189,168,130,0,130, + 0,189,168,130,0,136,130,0,169,0, + 303,129,169,0,129,169,0,223,130,0, + 168,244,0,139,0,0,0,137,0,0, + 0,302,129,65,250,0,129,0,250,0, + 3,0,0,129,0,301,129,65,0,45, + 129,0,153,3,0,129,279,278,129,74, + 277,169,0,278,129,74,277,169,0,216, + 0,217,0,277,169,0,98,0,0,216, + 0,217,0,204,98,0,0,216,0,217, + 0,278,129,277,169,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, + 0,11,0,0,0,218,67,0,127,0, + 231,129,3,183,0,183,0,2,0,0, + 128,0,0,0,0,0,201,3,0,202, + 0,230,129,65,26,44,0,178,130,66, + 64,0,198,130,0,133,178,130,275,64, + 0,178,130,275,64,0,178,130,71,125, + 66,0,230,129,65,66,0,230,129,65, + 123,66,0,230,129,65,126,66,0,272, + 129,65,125,61,0,272,129,65,61,0, + 178,130,61,0,137,0,189,178,130,244, + 0,139,0,178,130,244,0,189,168,130, + 9,0,168,130,9,0,95,139,0,265, + 129,169,0,163,86,0,226,164,226,173, + 3,83,0,128,174,0,226,173,3,83, + 0,130,0,128,174,0,226,164,226,164, + 226,3,83,0,226,164,226,3,83,0, + 226,3,83,0,130,0,130,0,128,174, + 0,163,3,75,193,81,0,128,130,0, + 193,81,0,110,2,133,128,130,0,239, + 3,75,0,201,170,0,34,172,0,170, + 0,178,34,172,0,239,3,87,0,193, + 158,239,3,85,0,64,174,0,239,3, + 85,0,128,174,64,174,0,298,129,65, + 0,163,0,218,78,0,31,0,163,117, + 161,0,31,172,0,179,3,0,128,152, + 0,223,3,0,218,67,262,0,163,67, + 0,179,3,295,43,130,0,128,0,0, + 0,0,295,43,130,0,2,148,128,0, + 0,0,0,179,3,32,0,150,0,127, + 57,168,130,0,32,150,0,95,139,32, + 150,0,217,178,130,0,149,32,150,0, + 179,3,36,0,163,3,36,0,163,3, + 69,179,60,28,0,179,60,28,0,21, + 2,133,128,0,163,3,69,179,60,31, + 0,179,60,31,0,163,3,69,179,60, + 33,0,179,60,33,0,163,3,69,179, + 60,29,0,179,60,29,0,223,3,127, + 189,168,130,9,0,127,189,168,130,9, + 0,139,2,0,128,0,223,3,126,255, + 168,130,9,0,255,168,130,9,0,137, + 2,0,128,0,223,3,137,0,223,3, + 142,0,163,67,142,0,257,0,32,0, + 32,143,0,167,0,136,0,163,3,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -2446,38 +2390,38 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public interface ScopeState { public final static char scopeState[] = {0, - 1318,0,3826,3785,3703,0,1812,3245,1542,2702, - 0,3929,3888,3847,3806,3765,3724,5077,3683,3642, - 3087,3021,3366,3298,4412,3254,3186,4390,4368,4298, - 4276,0,1451,1361,1035,0,636,575,0,3929, - 3888,3847,3376,3347,3806,3765,3724,3683,1525,3642, - 3087,3021,3650,3315,0,3649,2861,2779,0,3646, - 2450,0,633,2959,0,4684,4661,0,1219,778, - 0,4684,4645,4617,3575,4661,2888,4503,4516,4542, - 3167,582,4529,2969,2807,2725,0,4793,4709,3366, - 3298,4412,3254,3186,4390,4368,4298,4276,3929,3888, - 3847,3806,3765,3724,3683,3642,3087,3021,0,3366, - 3298,4412,3254,3186,4390,4368,4298,4276,4793,4709, - 0,1027,1016,0,3167,4645,4243,4617,3575,3187, - 2969,2987,4242,2288,2770,3258,735,3652,958,0, - 866,663,0,860,0,1776,1596,1461,1371,3575, - 3258,2888,2807,2725,3326,3080,0,4193,536,2459, - 0,4996,4978,4965,4947,4916,4897,4884,4866,4833, - 4808,5063,5045,5027,5014,4783,4749,4293,4725,3400, - 3288,2559,3659,3037,0,4996,4978,3970,3101,2566, - 4965,4947,4916,2311,2219,4897,4884,4866,3118,4833, - 3995,4808,3462,2798,5063,2765,3106,2513,2466,2478, - 5045,3221,5027,1174,5014,4783,4749,2303,4293,2211, - 4725,649,3400,3288,4193,2559,2459,3659,3037,2119, - 1102,808,1115,903,2888,4503,4516,4542,3167,4684, - 4645,582,4617,3575,4529,2969,2807,4661,2725,1039, - 1022,866,663,879,4252,4218,2317,2356,2426,2392, - 2518,2484,595,2834,2738,2697,2669,2641,2613,3551, - 3527,3503,2997,2916,4170,4147,4124,4101,4078,4055, - 4032,4009,3611,3478,3588,1996,2264,2225,2172,2133, - 2080,1276,1225,2041,1180,924,1951,820,749,690, - 1906,1861,1816,1771,1726,1681,1636,1591,1546,1501, - 1456,536,1411,1366,1125,1054,977,1321,0 + 1365,0,4923,4919,4879,0,2743,1497,2612,1411, + 0,3795,3757,3703,3665,3611,3573,3628,3519,3481, + 3015,2932,3240,3175,4262,3111,2943,4252,4198,4134, + 4125,0,2775,2562,2445,0,3334,2545,0,3795, + 3757,3703,2964,1960,3665,3611,3573,3519,785,3481, + 3015,2932,3636,2955,0,2700,2946,2690,0,1184, + 1049,0,3077,4496,0,4564,4538,0,1140,1006, + 0,4564,4551,1071,3444,4538,2804,4229,4382,4524, + 3092,4352,4460,2882,2726,2644,0,4615,4588,3240, + 3175,4262,3111,2943,4252,4198,4134,4125,3795,3757, + 3703,3665,3611,3573,3519,3481,3015,2932,0,3240, + 3175,4262,3111,2943,4252,4198,4134,4125,4615,4588, + 0,1354,875,0,3092,4551,3209,1071,3444,3207, + 2882,4826,2962,4680,2688,3246,935,2954,839,0, + 648,570,0,760,0,2339,2320,1591,1065,3444, + 3246,2804,2726,2644,3070,3046,0,4365,527,2440, + 0,4798,4793,4786,4781,4726,4721,4709,4704,4646, + 4641,4868,4863,4853,4818,4625,4446,3266,4373,3492, + 3274,3127,2534,2234,0,4798,4793,3695,3604,3579, + 4786,4781,4726,3487,2716,4721,4709,4704,3117,4646, + 3329,4641,2447,2229,4868,2140,2873,2051,1020,2459, + 4863,4803,4853,2056,4818,4625,4446,722,3266,661, + 4373,2539,3492,3274,4365,3127,2440,2534,2234,1009, + 994,787,1135,846,2804,4229,4382,4524,3092,4564, + 4551,4352,1071,3444,4460,2882,2726,4538,2644,878, + 862,648,570,621,4102,4079,2240,2279,2349,2315, + 2411,2382,583,2748,2657,2616,2588,2496,2465,3420, + 3396,3372,2908,2830,4056,4033,4010,3987,3964,3941, + 3918,3895,3872,3347,3457,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 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2485,59 +2429,59 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public interface InSymb { public final static char inSymb[] = {0, - 0,298,162,128,46,269,36,28,31,33, - 29,9,136,125,127,7,131,4,3,129, - 32,27,5,11,10,6,8,14,13,141, - 146,149,148,151,150,155,154,158,156,159, - 41,160,70,3,60,60,60,60,129,3, - 60,172,128,66,3,42,43,60,7,125, - 181,162,172,128,42,43,170,169,124,125, - 3,126,125,103,119,3,66,90,96,11, - 10,92,91,6,94,93,69,60,88,89, - 8,98,97,100,99,101,113,112,111,110, - 109,108,107,106,105,104,71,114,102,181, - 162,181,181,181,181,170,227,128,128,271, - 272,255,273,248,274,61,275,276,124,125, - 9,129,66,66,128,157,128,66,3,225, - 224,136,9,129,66,299,3,191,4,181, - 58,5,129,58,227,162,148,148,146,146, - 146,150,150,150,150,149,149,154,151,151, - 156,155,158,162,159,69,69,69,69,191, - 260,294,134,297,217,129,6,64,170,238, - 129,126,125,124,64,129,129,180,170,294, - 217,220,160,231,128,3,129,170,204,3, - 300,172,152,262,191,129,180,170,73,3, - 3,3,3,126,125,70,170,128,128,126, - 125,128,180,128,64,128,180,170,58,235, - 236,147,237,128,170,58,181,128,128,4, - 219,5,58,162,162,162,162,3,3,6, - 187,306,129,173,232,194,65,171,308,128, - 128,73,191,128,277,250,278,191,157,71, - 231,203,189,185,129,3,128,70,235,191, - 157,264,267,66,182,4,126,227,227,128, - 170,58,279,281,128,3,185,310,232,47, - 129,277,71,70,128,71,71,3,180,170, - 203,128,217,157,126,128,3,66,162,4, - 191,60,129,74,128,217,307,128,129,125, - 73,288,203,70,129,47,311,180,228,128, - 128,264,227,220,132,128,180,128,282,73, - 70,217,170,73,71,180,129,129,128,235, - 228,296,58,9,59,132,282,64,292,129, - 293,180,180,41,157,128,70,69,60,238, - 238,283,128,70,180,3,3,128,44,58, - 171,68,67,65,128,71,71,128,302,80, - 78,1,162,87,85,83,81,76,84,86, - 79,77,67,74,46,227,315,228,26,60, - 128,3,64,164,124,125,67,296,284,120, - 12,220,73,3,3,3,195,3,124,162, - 124,183,70,128,128,64,69,270,203,280, - 26,128,64,71,64,129,69,3,243,172, - 243,175,230,171,76,243,128,128,3,71, - 70,157,234,233,128,129,128,180,59,95, - 314,172,157,203,157,230,163,128,3,157, - 284,234,152,64,234,180,234,165,238,157, - 157,128,71,195,163,230,162,128,165,71, - 122,230,163,157,305,157,230,70,157 + 0,294,163,129,46,264,36,28,31,33, + 29,9,137,126,128,7,132,4,3,130, + 32,27,5,11,10,6,8,25,24,142, + 147,150,149,152,151,156,155,159,157,160, + 41,161,70,3,60,60,60,60,130,3, + 60,170,129,67,3,42,43,60,7,126, + 179,163,170,129,42,43,168,167,126,3, + 127,126,103,120,3,67,90,96,11,10, + 92,91,6,94,93,69,60,88,89,8, + 98,97,100,99,101,113,112,111,110,109, + 108,107,106,105,104,71,117,102,179,163, + 179,179,179,179,168,223,129,129,266,267, + 250,268,244,269,61,270,271,9,130,67, + 67,129,158,129,67,3,221,220,137,9, + 130,67,295,3,189,4,179,57,5,130, + 57,223,163,149,149,147,147,147,151,151, + 151,151,150,150,155,152,152,157,156,159, + 163,160,69,69,69,69,189,255,290,135, + 293,215,130,6,65,168,234,130,127,126, + 125,65,130,130,178,168,290,215,218,161, + 227,129,3,130,168,202,3,296,170,153, + 257,189,130,178,168,73,3,3,3,3, + 127,126,70,168,129,129,127,126,129,178, + 129,65,129,178,168,57,231,232,148,233, + 129,168,57,179,129,129,4,217,5,57, + 163,163,163,163,3,3,6,185,302,130, + 171,228,192,64,169,304,129,129,73,189, + 129,272,125,273,189,158,71,227,201,187, + 183,130,3,129,70,231,189,158,259,262, + 67,180,4,127,223,223,129,168,57,275, + 277,129,3,183,306,228,47,130,272,71, + 70,129,71,71,3,178,168,201,129,215, + 158,127,129,3,67,163,4,189,60,130, + 74,129,215,303,129,130,126,73,284,201, + 70,130,47,307,178,224,129,129,259,223, + 218,133,129,178,129,278,73,70,215,168, + 73,71,178,130,130,129,231,224,292,57, + 9,59,133,278,65,288,130,289,178,178, + 41,158,129,70,69,60,234,234,279,129, + 70,178,3,3,129,44,57,169,68,66, + 64,129,71,71,129,298,80,78,1,163, + 87,85,83,81,75,84,86,79,77,66, + 74,46,223,311,224,26,60,129,3,65, + 123,126,125,66,292,280,119,23,218,73, + 3,3,3,193,3,125,163,125,181,70, + 129,129,65,69,265,201,276,26,129,65, + 65,71,130,69,3,239,170,239,173,226, + 169,75,239,129,129,3,71,70,158,230, + 229,129,129,130,178,59,95,310,170,158, + 201,158,226,164,129,3,158,280,230,153, + 65,230,230,178,274,234,158,158,129,71, + 193,164,226,163,129,274,71,122,226,164, + 158,301,158,226,70,158 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2669,6 +2613,7 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse "RightBrace", "SemiColon", "ERROR_TOKEN", + "original_namespace_name", "EOF_TOKEN", "expression_parser_start", "]", @@ -2691,7 +2636,6 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse "plate", "class_or_namespace_name_with_t" + "emplate", - "namespace_name", "postfix_expression", "simple_type_specifier", "pseudo_destructor_name", @@ -2747,8 +2691,7 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse "class_keyword", "enumerator_list", "enumerator_definition", - "enumerator", - "original_namespace_name", + "namespace_name", "init_declarator_list", "init_declarator", "initializer", @@ -2814,20 +2757,20 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 529, - NT_OFFSET = 123, - LA_STATE_OFFSET = 6087, + NUM_STATES = 526, + NT_OFFSET = 124, + LA_STATE_OFFSET = 5925, MAX_LA = 2147483647, - NUM_RULES = 535, - NUM_NONTERMINALS = 198, - NUM_SYMBOLS = 321, + NUM_RULES = 526, + NUM_NONTERMINALS = 193, + NUM_SYMBOLS = 317, SEGMENT_SIZE = 8192, - START_STATE = 3248, + START_STATE = 2684, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 121, EOLT_SYMBOL = 121, - ACCEPT_ACTION = 5192, - ERROR_ACTION = 5552; + ACCEPT_ACTION = 5040, + ERROR_ACTION = 5399; public final static boolean BACKTRACK = true; diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParsersym.java index bd8f8e36cda..816020b4b9d 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParsersym.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParsersym.java @@ -17,11 +17,11 @@ public interface CPPExpressionStatementParsersym { public final static int TK_asm = 68, TK_auto = 50, - TK_bool = 15, + TK_bool = 12, TK_break = 77, TK_case = 78, - TK_catch = 120, - TK_char = 16, + TK_catch = 119, + TK_char = 13, TK_class = 59, TK_const = 48, TK_const_cast = 28, @@ -29,7 +29,7 @@ public interface CPPExpressionStatementParsersym { TK_default = 80, TK_delete = 42, TK_do = 81, - TK_double = 17, + TK_double = 14, TK_dynamic_cast = 29, TK_else = 122, TK_enum = 61, @@ -37,64 +37,64 @@ public interface CPPExpressionStatementParsersym { TK_export = 82, TK_extern = 44, TK_false = 30, - TK_float = 18, + TK_float = 15, TK_for = 83, TK_friend = 52, TK_goto = 84, TK_if = 85, TK_inline = 53, - TK_int = 19, - TK_long = 20, + TK_int = 16, + TK_long = 17, TK_mutable = 54, - TK_namespace = 67, + TK_namespace = 66, TK_new = 43, TK_operator = 7, - TK_private = 116, - TK_protected = 117, - TK_public = 118, + TK_private = 114, + TK_protected = 115, + TK_public = 116, TK_register = 55, TK_reinterpret_cast = 31, TK_return = 86, - TK_short = 21, - TK_signed = 22, + TK_short = 18, + TK_signed = 19, TK_sizeof = 32, TK_static = 56, TK_static_cast = 33, TK_struct = 62, TK_switch = 87, - TK_template = 58, + TK_template = 57, TK_this = 34, TK_throw = 41, TK_try = 74, TK_true = 35, - TK_typedef = 57, + TK_typedef = 58, TK_typeid = 36, TK_typename = 9, TK_union = 63, - TK_unsigned = 23, - TK_using = 65, + TK_unsigned = 20, + TK_using = 64, TK_virtual = 47, - TK_void = 24, + TK_void = 21, TK_volatile = 49, - TK_wchar_t = 25, - TK_while = 76, + TK_wchar_t = 22, + TK_while = 75, TK_integer = 37, TK_floating = 38, TK_charconst = 39, TK_stringlit = 26, TK_identifier = 1, TK_Completion = 2, - TK_EndOfCompletion = 12, - TK_Invalid = 123, - TK_LeftBracket = 66, + TK_EndOfCompletion = 23, + TK_Invalid = 124, + TK_LeftBracket = 67, TK_LeftParen = 3, - TK_LeftBrace = 64, - TK_Dot = 119, + TK_LeftBrace = 65, + TK_Dot = 120, TK_DotStar = 96, TK_Arrow = 103, TK_ArrowStar = 90, - TK_PlusPlus = 13, - TK_MinusMinus = 14, + TK_PlusPlus = 24, + TK_MinusMinus = 25, TK_And = 8, TK_Star = 6, TK_Plus = 10, @@ -115,7 +115,7 @@ public interface CPPExpressionStatementParsersym { TK_Or = 100, TK_AndAnd = 101, TK_OrOr = 102, - TK_Question = 114, + TK_Question = 117, TK_Colon = 73, TK_ColonColon = 4, TK_DotDotDot = 95, @@ -132,11 +132,12 @@ public interface CPPExpressionStatementParsersym { TK_OrAssign = 113, TK_Comma = 70, TK_zero = 40, - TK_RightBracket = 115, - TK_RightParen = 75, + TK_RightBracket = 118, + TK_RightParen = 76, TK_RightBrace = 72, TK_SemiColon = 45, TK_ERROR_TOKEN = 46, + TK_original_namespace_name = 123, TK_EOF_TOKEN = 121; public final static String orderedTerminalSymbols[] = { @@ -152,9 +153,6 @@ public interface CPPExpressionStatementParsersym { "typename", "Plus", "Minus", - "EndOfCompletion", - "PlusPlus", - "MinusMinus", "bool", "char", "double", @@ -166,6 +164,9 @@ public interface CPPExpressionStatementParsersym { "unsigned", "void", "wchar_t", + "EndOfCompletion", + "PlusPlus", + "MinusMinus", "stringlit", "Bang", "const_cast", @@ -197,17 +198,17 @@ public interface CPPExpressionStatementParsersym { "mutable", "register", "static", - "typedef", "template", + "typedef", "class", "LT", "enum", "struct", "union", - "LeftBrace", "using", - "LeftBracket", + "LeftBrace", "namespace", + "LeftBracket", "asm", "GT", "Comma", @@ -215,8 +216,8 @@ public interface CPPExpressionStatementParsersym { "RightBrace", "Colon", "try", - "RightParen", "while", + "RightParen", "break", "case", "continue", @@ -254,15 +255,16 @@ public interface CPPExpressionStatementParsersym { "AndAssign", "CaretAssign", "OrAssign", - "Question", - "RightBracket", "private", "protected", "public", - "Dot", + "Question", + "RightBracket", "catch", + "Dot", "EOF_TOKEN", "else", + "original_namespace_name", "Invalid" }; diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParser.java index 15ac7c5ad07..1c69c9e5294 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 @@ -481,1612 +481,1612 @@ public CPPNoCastExpressionParser(String[] mapFrom) { // constructor } // - // Rule 57: postfix_expression ::= postfix_expression [ expression ] + // Rule 56: postfix_expression ::= postfix_expression [ expression ] // - case 57: { action.builder. + case 56: { action.builder. consumeExpressionArraySubscript(); break; } // - // Rule 58: postfix_expression ::= postfix_expression ( expression_list_opt ) + // Rule 57: postfix_expression ::= postfix_expression ( expression_list_opt ) // - case 58: { action.builder. + case 57: { action.builder. consumeExpressionFunctionCall(); break; } // - // Rule 59: postfix_expression ::= simple_type_specifier ( expression_list_opt ) + // Rule 58: postfix_expression ::= simple_type_specifier ( expression_list_opt ) // - case 59: { action.builder. + case 58: { action.builder. consumeExpressionSimpleTypeConstructor(); break; } // - // Rule 60: postfix_expression ::= typename dcolon_opt nested_name_specifier identifier_name ( expression_list_opt ) + // Rule 59: postfix_expression ::= typename dcolon_opt nested_name_specifier 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 ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) + // Rule 61: postfix_expression ::= postfix_expression . qualified_or_unqualified_name // case 61: { action.builder. - consumeExpressionTypeName(); break; - } - - // - // Rule 62: postfix_expression ::= postfix_expression . qualified_or_unqualified_name - // - case 62: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 63: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name + // Rule 62: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name // - case 63: { action.builder. + case 62: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 64: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name + // Rule 63: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name // - case 64: { action.builder. + case 63: { action.builder. consumeExpressionFieldReference(false, true); break; } // - // Rule 65: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name + // Rule 64: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name // - case 65: { action.builder. + case 64: { action.builder. consumeExpressionFieldReference(true, true); break; } // - // Rule 66: postfix_expression ::= postfix_expression . pseudo_destructor_name + // Rule 65: postfix_expression ::= postfix_expression . pseudo_destructor_name // - case 66: { action.builder. + case 65: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 67: postfix_expression ::= postfix_expression -> pseudo_destructor_name + // Rule 66: postfix_expression ::= postfix_expression -> pseudo_destructor_name // - case 67: { action.builder. + case 66: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 68: postfix_expression ::= postfix_expression ++ + // Rule 67: postfix_expression ::= postfix_expression ++ // - case 68: { action.builder. + case 67: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; } // - // Rule 69: postfix_expression ::= postfix_expression -- + // Rule 68: postfix_expression ::= postfix_expression -- // - case 69: { action.builder. + case 68: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; } // - // Rule 70: postfix_expression ::= dynamic_cast < type_id > ( expression ) + // Rule 69: postfix_expression ::= dynamic_cast < type_id > ( expression ) // - case 70: { action.builder. + case 69: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); break; } // - // Rule 71: postfix_expression ::= static_cast < type_id > ( expression ) + // Rule 70: postfix_expression ::= static_cast < type_id > ( expression ) // - case 71: { action.builder. + case 70: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_static_cast); break; } // - // Rule 72: postfix_expression ::= reinterpret_cast < type_id > ( expression ) + // Rule 71: postfix_expression ::= reinterpret_cast < type_id > ( expression ) // - case 72: { action.builder. + case 71: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); break; } // - // Rule 73: postfix_expression ::= const_cast < type_id > ( expression ) + // Rule 72: postfix_expression ::= const_cast < type_id > ( expression ) // - case 73: { action.builder. + case 72: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_const_cast); break; } // - // Rule 74: postfix_expression ::= typeid ( expression ) + // Rule 73: postfix_expression ::= typeid ( expression ) // - case 74: { action.builder. + case 73: { action.builder. consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break; } // - // Rule 75: postfix_expression ::= typeid ( type_id ) + // Rule 74: postfix_expression ::= typeid ( type_id ) // - case 75: { action.builder. + case 74: { action.builder. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid); break; } // - // Rule 76: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name + // Rule 75: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name + // + case 75: { action.builder. + consumePsudoDestructorName(true); break; + } + + // + // Rule 76: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name // case 76: { action.builder. consumePsudoDestructorName(true); break; } // - // Rule 77: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name + // Rule 77: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name // case 77: { action.builder. - consumePsudoDestructorName(true); break; - } - - // - // Rule 78: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name - // - case 78: { action.builder. consumePsudoDestructorName(false); break; } // - // Rule 79: destructor_type_name ::= ~ type_name + // Rule 78: destructor_type_name ::= ~ type_name // - case 79: { action.builder. + case 78: { action.builder. consumeDestructorName(); break; } // - // Rule 83: unary_expression ::= ++ cast_expression + // Rule 82: unary_expression ::= ++ cast_expression // - case 83: { action.builder. + case 82: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; } // - // Rule 84: unary_expression ::= -- cast_expression + // Rule 83: unary_expression ::= -- cast_expression // - case 84: { action.builder. + case 83: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; } // - // Rule 85: unary_expression ::= & cast_expression + // Rule 84: unary_expression ::= & cast_expression // - case 85: { action.builder. + case 84: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; } // - // Rule 86: unary_expression ::= * cast_expression + // Rule 85: unary_expression ::= * cast_expression // - case 86: { action.builder. + case 85: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; } // - // Rule 87: unary_expression ::= + cast_expression + // Rule 86: unary_expression ::= + cast_expression // - case 87: { action.builder. + case 86: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; } // - // Rule 88: unary_expression ::= - cast_expression + // Rule 87: unary_expression ::= - cast_expression // - case 88: { action.builder. + case 87: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; } // - // Rule 89: unary_expression ::= ~ cast_expression + // Rule 88: unary_expression ::= ~ cast_expression // - case 89: { action.builder. + case 88: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; } // - // Rule 90: unary_expression ::= ! cast_expression + // Rule 89: unary_expression ::= ! cast_expression // - case 90: { action.builder. + case 89: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; } // - // Rule 91: unary_expression ::= sizeof unary_expression + // Rule 90: unary_expression ::= sizeof unary_expression // - case 91: { action.builder. + case 90: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; } // - // Rule 92: unary_expression ::= sizeof ( type_id ) + // Rule 91: unary_expression ::= sizeof ( type_id ) // - case 92: { action.builder. + case 91: { action.builder. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_sizeof); break; } // - // Rule 93: new_expression ::= dcolon_opt new new_placement_opt new_type_id new_array_expressions_opt new_initializer_opt + // Rule 92: new_expression ::= dcolon_opt new new_placement_opt new_type_id new_array_expressions_opt new_initializer_opt // - case 93: { action.builder. + case 92: { action.builder. consumeExpressionNew(true); break; } // - // Rule 94: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_array_expressions_opt new_initializer_opt + // Rule 93: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_array_expressions_opt new_initializer_opt // - case 94: { action.builder. + case 93: { action.builder. consumeExpressionNew(false); break; } // - // Rule 96: new_placement_opt ::= $Empty + // Rule 95: new_placement_opt ::= $Empty // - case 96: { action.builder. + case 95: { action.builder. consumeEmpty(); break; } // - // Rule 97: new_type_id ::= type_specifier_seq + // Rule 96: new_type_id ::= type_specifier_seq // - case 97: { action.builder. + case 96: { action.builder. consumeTypeId(false); break; } // - // Rule 98: new_type_id ::= type_specifier_seq new_declarator + // Rule 97: new_type_id ::= type_specifier_seq new_declarator // - case 98: { action.builder. + case 97: { action.builder. consumeTypeId(true); break; } // - // Rule 99: new_declarator ::= new_pointer_operators + // Rule 98: new_declarator ::= new_pointer_operators // - case 99: { action.builder. + case 98: { action.builder. consumeNewDeclarator(); break; } // - // Rule 108: new_initializer_opt ::= $Empty + // Rule 107: new_initializer_opt ::= $Empty // - case 108: { action.builder. + case 107: { action.builder. consumeEmpty(); break; } // - // Rule 109: delete_expression ::= dcolon_opt delete cast_expression + // Rule 108: delete_expression ::= dcolon_opt delete cast_expression // - case 109: { action.builder. + case 108: { action.builder. consumeExpressionDelete(false); break; } // - // Rule 110: delete_expression ::= dcolon_opt delete [ ] cast_expression + // Rule 109: delete_expression ::= dcolon_opt delete [ ] cast_expression // - case 110: { action.builder. + case 109: { action.builder. consumeExpressionDelete(true); break; } // - // Rule 113: pm_expression ::= pm_expression .* cast_expression + // Rule 112: pm_expression ::= pm_expression .* cast_expression // - case 113: { action.builder. + case 112: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot); break; } // - // Rule 114: pm_expression ::= pm_expression ->* cast_expression + // Rule 113: pm_expression ::= pm_expression ->* cast_expression // - case 114: { action.builder. + case 113: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow); break; } // - // Rule 116: multiplicative_expression ::= multiplicative_expression * pm_expression + // Rule 115: multiplicative_expression ::= multiplicative_expression * pm_expression // - case 116: { action.builder. + case 115: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply); break; } // - // Rule 117: multiplicative_expression ::= multiplicative_expression / pm_expression + // Rule 116: multiplicative_expression ::= multiplicative_expression / pm_expression // - case 117: { action.builder. + case 116: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide); break; } // - // Rule 118: multiplicative_expression ::= multiplicative_expression % pm_expression + // Rule 117: multiplicative_expression ::= multiplicative_expression % pm_expression // - case 118: { action.builder. + case 117: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo); break; } // - // Rule 120: additive_expression ::= additive_expression + multiplicative_expression + // Rule 119: additive_expression ::= additive_expression + multiplicative_expression // - case 120: { action.builder. + case 119: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus); break; } // - // Rule 121: additive_expression ::= additive_expression - multiplicative_expression + // Rule 120: additive_expression ::= additive_expression - multiplicative_expression // - case 121: { action.builder. + case 120: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus); break; } // - // Rule 123: shift_expression ::= shift_expression << additive_expression + // Rule 122: shift_expression ::= shift_expression << additive_expression // - case 123: { action.builder. + case 122: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft); break; } // - // Rule 124: shift_expression ::= shift_expression >> additive_expression + // Rule 123: shift_expression ::= shift_expression >> additive_expression // - case 124: { action.builder. + case 123: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight); break; } // - // Rule 126: relational_expression ::= relational_expression < shift_expression + // Rule 125: relational_expression ::= relational_expression < shift_expression // - case 126: { action.builder. + case 125: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; } // - // Rule 127: relational_expression ::= relational_expression > shift_expression + // Rule 126: relational_expression ::= relational_expression > shift_expression // - case 127: { action.builder. + case 126: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; } // - // Rule 128: relational_expression ::= relational_expression <= shift_expression + // Rule 127: relational_expression ::= relational_expression <= shift_expression // - case 128: { action.builder. + case 127: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; } // - // Rule 129: relational_expression ::= relational_expression >= shift_expression + // Rule 128: relational_expression ::= relational_expression >= shift_expression // - case 129: { action.builder. + case 128: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; } // - // Rule 131: equality_expression ::= equality_expression == relational_expression + // Rule 130: equality_expression ::= equality_expression == relational_expression // - case 131: { action.builder. + case 130: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; } // - // Rule 132: equality_expression ::= equality_expression != relational_expression + // Rule 131: equality_expression ::= equality_expression != relational_expression // - case 132: { action.builder. + case 131: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; } // - // Rule 134: and_expression ::= and_expression & equality_expression + // Rule 133: and_expression ::= and_expression & equality_expression // - case 134: { action.builder. + case 133: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; } // - // Rule 136: exclusive_or_expression ::= exclusive_or_expression ^ and_expression + // Rule 135: exclusive_or_expression ::= exclusive_or_expression ^ and_expression // - case 136: { action.builder. + case 135: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; } // - // Rule 138: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression + // Rule 137: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression // - case 138: { action.builder. + case 137: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; } // - // Rule 140: logical_and_expression ::= logical_and_expression && inclusive_or_expression + // Rule 139: logical_and_expression ::= logical_and_expression && inclusive_or_expression // - case 140: { action.builder. + case 139: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; } // - // Rule 142: logical_or_expression ::= logical_or_expression || logical_and_expression + // Rule 141: logical_or_expression ::= logical_or_expression || logical_and_expression // - case 142: { action.builder. + case 141: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; } // - // Rule 144: conditional_expression ::= logical_or_expression ? expression : assignment_expression + // Rule 143: conditional_expression ::= logical_or_expression ? expression : assignment_expression // - case 144: { action.builder. + case 143: { action.builder. consumeExpressionConditional(); break; } // - // Rule 145: throw_expression ::= throw + // Rule 144: throw_expression ::= throw // - case 145: { action.builder. + case 144: { action.builder. consumeExpressionThrow(false); break; } // - // Rule 146: throw_expression ::= throw assignment_expression + // Rule 145: throw_expression ::= throw assignment_expression // - case 146: { action.builder. + case 145: { action.builder. consumeExpressionThrow(true); break; } // - // Rule 149: assignment_expression ::= logical_or_expression = assignment_expression + // Rule 148: assignment_expression ::= logical_or_expression = assignment_expression // - case 149: { action.builder. + case 148: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; } // - // Rule 150: assignment_expression ::= logical_or_expression *= assignment_expression + // Rule 149: assignment_expression ::= logical_or_expression *= assignment_expression // - case 150: { action.builder. + case 149: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 151: assignment_expression ::= logical_or_expression /= assignment_expression + // Rule 150: assignment_expression ::= logical_or_expression /= assignment_expression // - case 151: { action.builder. + case 150: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; } // - // Rule 152: assignment_expression ::= logical_or_expression %= assignment_expression + // Rule 151: assignment_expression ::= logical_or_expression %= assignment_expression // - case 152: { action.builder. + case 151: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; } // - // Rule 153: assignment_expression ::= logical_or_expression += assignment_expression + // Rule 152: assignment_expression ::= logical_or_expression += assignment_expression // - case 153: { action.builder. + case 152: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; } // - // Rule 154: assignment_expression ::= logical_or_expression -= assignment_expression + // Rule 153: assignment_expression ::= logical_or_expression -= assignment_expression // - case 154: { action.builder. + case 153: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; } // - // Rule 155: assignment_expression ::= logical_or_expression >>= assignment_expression + // Rule 154: assignment_expression ::= logical_or_expression >>= assignment_expression // - case 155: { action.builder. + case 154: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 156: assignment_expression ::= logical_or_expression <<= assignment_expression + // Rule 155: assignment_expression ::= logical_or_expression <<= assignment_expression // - case 156: { action.builder. + case 155: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 157: assignment_expression ::= logical_or_expression &= assignment_expression + // Rule 156: assignment_expression ::= logical_or_expression &= assignment_expression // - case 157: { action.builder. + case 156: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 158: assignment_expression ::= logical_or_expression ^= assignment_expression + // Rule 157: assignment_expression ::= logical_or_expression ^= assignment_expression // - case 158: { action.builder. + case 157: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 159: assignment_expression ::= logical_or_expression |= assignment_expression + // Rule 158: assignment_expression ::= logical_or_expression |= assignment_expression // - case 159: { action.builder. + case 158: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 161: expression ::= ERROR_TOKEN + // Rule 160: expression ::= ERROR_TOKEN // - case 161: { action.builder. + case 160: { action.builder. consumeExpressionProblem(); break; } // - // Rule 162: expression_list ::= expression_list_actual + // Rule 161: expression_list ::= expression_list_actual // - case 162: { action.builder. + case 161: { action.builder. consumeExpressionList(); break; } // - // Rule 166: expression_list_opt ::= $Empty + // Rule 165: expression_list_opt ::= $Empty // - case 166: { action.builder. + case 165: { action.builder. consumeEmpty(); break; } // - // Rule 168: expression_opt ::= $Empty + // Rule 167: expression_opt ::= $Empty // - case 168: { action.builder. + case 167: { action.builder. consumeEmpty(); break; } // - // Rule 171: constant_expression_opt ::= $Empty + // Rule 170: constant_expression_opt ::= $Empty // - case 171: { action.builder. + case 170: { action.builder. consumeEmpty(); break; } // - // Rule 180: statement ::= ERROR_TOKEN + // Rule 179: statement ::= ERROR_TOKEN // - case 180: { action.builder. + case 179: { action.builder. consumeStatementProblem(); break; } // - // Rule 181: labeled_statement ::= identifier : statement + // Rule 180: labeled_statement ::= identifier : statement // - case 181: { action.builder. + case 180: { action.builder. consumeStatementLabeled(); break; } // - // Rule 182: labeled_statement ::= case constant_expression : + // Rule 181: labeled_statement ::= case constant_expression : // - case 182: { action.builder. + case 181: { action.builder. consumeStatementCase(); break; } // - // Rule 183: labeled_statement ::= default : + // Rule 182: labeled_statement ::= default : // - case 183: { action.builder. + case 182: { action.builder. consumeStatementDefault(); break; } // - // Rule 184: expression_statement ::= expression ; + // Rule 183: expression_statement ::= expression ; // - case 184: { action.builder. + case 183: { action.builder. consumeStatementExpression(); break; } // - // Rule 185: expression_statement ::= ; + // Rule 184: expression_statement ::= ; // - case 185: { action.builder. + case 184: { action.builder. consumeStatementNull(); break; } // - // Rule 186: compound_statement ::= { statement_seq } + // Rule 185: compound_statement ::= { statement_seq } // - case 186: { action.builder. + case 185: { action.builder. consumeStatementCompoundStatement(true); break; } // - // Rule 187: compound_statement ::= { } + // Rule 186: compound_statement ::= { } // - case 187: { action.builder. + case 186: { action.builder. consumeStatementCompoundStatement(false); break; } // - // Rule 190: selection_statement ::= if ( condition ) statement + // Rule 189: selection_statement ::= if ( condition ) statement // - case 190: { action.builder. + case 189: { action.builder. consumeStatementIf(false); break; } // - // Rule 191: selection_statement ::= if ( condition ) statement else statement + // Rule 190: selection_statement ::= if ( condition ) statement else statement // - case 191: { action.builder. + case 190: { action.builder. consumeStatementIf(true); break; } // - // Rule 192: selection_statement ::= switch ( condition ) statement + // Rule 191: selection_statement ::= switch ( condition ) statement // - case 192: { action.builder. + case 191: { action.builder. consumeStatementSwitch(); break; } // - // Rule 194: condition ::= type_specifier_seq declarator = assignment_expression + // Rule 193: condition ::= type_specifier_seq declarator = assignment_expression // - case 194: { action.builder. + case 193: { action.builder. consumeConditionDeclaration(); break; } // - // Rule 195: iteration_statement ::= while ( condition ) statement + // Rule 194: iteration_statement ::= while ( condition ) statement // - case 195: { action.builder. + case 194: { action.builder. consumeStatementWhileLoop(); break; } // - // Rule 196: iteration_statement ::= do statement while ( expression ) ; + // Rule 195: iteration_statement ::= do statement while ( expression ) ; // - case 196: { action.builder. + case 195: { action.builder. consumeStatementDoLoop(); break; } // - // Rule 197: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement + // 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 expression_opt ; expression_opt ) statement // case 197: { action.builder. consumeStatementForLoop(); break; } // - // Rule 198: iteration_statement ::= for ( simple_declaration expression_opt ; expression_opt ) statement + // Rule 198: jump_statement ::= break ; // case 198: { action.builder. - consumeStatementForLoop(); break; - } - - // - // Rule 199: jump_statement ::= break ; - // - case 199: { action.builder. consumeStatementBreak(); break; } // - // Rule 200: jump_statement ::= continue ; + // Rule 199: jump_statement ::= continue ; // - case 200: { action.builder. + case 199: { action.builder. consumeStatementContinue(); break; } // - // Rule 201: jump_statement ::= return expression ; + // Rule 200: jump_statement ::= return expression ; // - case 201: { action.builder. + case 200: { action.builder. consumeStatementReturn(true); break; } // - // Rule 202: jump_statement ::= return ; + // Rule 201: jump_statement ::= return ; // - case 202: { action.builder. + case 201: { action.builder. consumeStatementReturn(false); break; } // - // Rule 203: jump_statement ::= goto identifier_token ; + // Rule 202: jump_statement ::= goto identifier_token ; // - case 203: { action.builder. + case 202: { action.builder. consumeStatementGoto(); break; } // - // Rule 204: declaration_statement ::= block_declaration + // 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 205: declaration_statement ::= function_definition + // Rule 221: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; // - case 205: { action.builder. - consumeStatementDeclaration(); break; - } - - // - // Rule 222: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; - // - case 222: { action.builder. + case 221: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 223: declaration_specifiers ::= simple_declaration_specifiers + // Rule 222: declaration_specifiers ::= simple_declaration_specifiers // - case 223: { action.builder. + case 222: { action.builder. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 224: declaration_specifiers ::= class_declaration_specifiers + // Rule 223: declaration_specifiers ::= class_declaration_specifiers + // + case 223: { action.builder. + consumeDeclarationSpecifiersComposite(); break; + } + + // + // Rule 224: declaration_specifiers ::= elaborated_declaration_specifiers // case 224: { action.builder. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 225: declaration_specifiers ::= elaborated_declaration_specifiers + // Rule 225: declaration_specifiers ::= enum_declaration_specifiers // case 225: { action.builder. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 226: declaration_specifiers ::= enum_declaration_specifiers + // Rule 226: declaration_specifiers ::= type_name_declaration_specifiers // case 226: { action.builder. - consumeDeclarationSpecifiersComposite(); break; - } - - // - // Rule 227: declaration_specifiers ::= type_name_declaration_specifiers - // - case 227: { action.builder. consumeDeclarationSpecifiersTypeName(); break; } // - // Rule 229: declaration_specifiers_opt ::= $Empty + // Rule 227: declaration_specifiers_opt ::= $Empty // - case 229: { action.builder. + case 227: { action.builder. consumeEmpty(); break; } // - // Rule 233: no_type_declaration_specifier ::= friend + // Rule 232: no_type_declaration_specifier ::= friend + // + case 232: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 233: no_type_declaration_specifier ::= typedef // case 233: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 234: no_type_declaration_specifier ::= typedef + // Rule 261: simple_type_specifier ::= simple_type_specifier_token // - case 234: { action.builder. + case 261: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 263: simple_type_specifier ::= simple_type_specifier_token + // Rule 275: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name // - case 263: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 279: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name - // - case 279: { action.builder. + case 275: { action.builder. consumeQualifiedId(false); break; } // - // Rule 280: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name + // Rule 276: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name // - case 280: { action.builder. + case 276: { action.builder. consumeQualifiedId(false); break; } // - // Rule 281: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name + // Rule 277: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name // - case 281: { action.builder. + case 277: { action.builder. consumeQualifiedId(false); break; } // - // Rule 282: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name + // Rule 278: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name // - case 282: { action.builder. + case 278: { action.builder. consumeQualifiedId(true); break; } // - // Rule 283: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name + // Rule 279: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name // - case 283: { action.builder. + case 279: { action.builder. consumeTypeSpecifierElaborated(false); break; } // - // Rule 284: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name + // Rule 280: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name // - case 284: { action.builder. + case 280: { action.builder. consumeTypeSpecifierElaborated(true); break; } // - // Rule 285: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name + // Rule 281: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name // - case 285: { action.builder. + case 281: { action.builder. consumeTypeSpecifierElaborated(false); break; } // - // Rule 287: enum_specifier ::= enum { enumerator_list_opt } + // Rule 282: enum_specifier ::= enum { enumerator_list_opt } // - case 287: { action.builder. + case 282: { action.builder. consumeTypeSpecifierEnumeration(false); break; } // - // Rule 288: enum_specifier ::= enum identifier_token { enumerator_list_opt } + // Rule 283: enum_specifier ::= enum identifier_token { enumerator_list_opt } // - case 288: { action.builder. + case 283: { action.builder. consumeTypeSpecifierEnumeration(true); break; } // - // Rule 293: enumerator_definition ::= enumerator + // Rule 288: enumerator_definition ::= identifier_token // - case 293: { action.builder. + case 288: { action.builder. consumeEnumerator(false); break; } // - // Rule 294: enumerator_definition ::= enumerator = constant_expression + // Rule 289: enumerator_definition ::= identifier_token = constant_expression // - case 294: { action.builder. + case 289: { action.builder. consumeEnumerator(true); break; } // - // Rule 303: original_namespace_definition ::= namespace identifier_name { declaration_seq_opt } + // Rule 295: original_namespace_definition ::= namespace identifier_name { declaration_seq_opt } // - case 303: { action.builder. + case 295: { action.builder. consumeNamespaceDefinition(true); break; } // - // Rule 304: extension_namespace_definition ::= namespace original_namespace_name { declaration_seq_opt } + // Rule 296: extension_namespace_definition ::= namespace original_namespace_name { declaration_seq_opt } // - case 304: { action.builder. + case 296: { action.builder. consumeNamespaceDefinition(true); break; } // - // Rule 305: unnamed_namespace_definition ::= namespace { declaration_seq_opt } + // Rule 297: unnamed_namespace_definition ::= namespace { declaration_seq_opt } // - case 305: { action.builder. + case 297: { action.builder. consumeNamespaceDefinition(false); break; } // - // Rule 307: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 298: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; // - case 307: { action.builder. + case 298: { action.builder. consumeNamespaceAliasDefinition(); break; } // - // Rule 308: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; + // Rule 299: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; // - case 308: { action.builder. + case 299: { action.builder. consumeUsingDeclaration(); break; } // - // Rule 309: typename_opt ::= typename + // Rule 300: typename_opt ::= typename // - case 309: { action.builder. + case 300: { action.builder. consumePlaceHolder(); break; } // - // Rule 310: typename_opt ::= $Empty + // Rule 301: typename_opt ::= $Empty // - case 310: { action.builder. + case 301: { action.builder. consumeEmpty(); break; } // - // Rule 311: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 302: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; // - case 311: { action.builder. + case 302: { action.builder. consumeUsingDirective(); break; } // - // Rule 312: asm_definition ::= asm ( stringlit ) ; + // Rule 303: asm_definition ::= asm ( stringlit ) ; // - case 312: { action.builder. + case 303: { action.builder. consumeDeclarationASM(); break; } // - // Rule 313: linkage_specification ::= extern stringlit { declaration_seq_opt } + // Rule 304: linkage_specification ::= extern stringlit { declaration_seq_opt } // - case 313: { action.builder. + case 304: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 314: linkage_specification ::= extern stringlit declaration + // Rule 305: linkage_specification ::= extern stringlit declaration // - case 314: { action.builder. + case 305: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 320: init_declarator ::= declarator initializer + // Rule 311: init_declarator ::= declarator initializer // - case 320: { action.builder. + case 311: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 322: declarator ::= ptr_operator_seq direct_declarator + // Rule 313: declarator ::= ptr_operator_seq direct_declarator // - case 322: { action.builder. + case 313: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 324: function_declarator ::= ptr_operator_seq direct_declarator + // Rule 315: function_declarator ::= ptr_operator_seq direct_declarator // - case 324: { action.builder. + case 315: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 328: basic_direct_declarator ::= declarator_id_name + // Rule 319: basic_direct_declarator ::= declarator_id_name // - case 328: { action.builder. + case 319: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 329: basic_direct_declarator ::= ( declarator ) + // Rule 320: basic_direct_declarator ::= ( declarator ) // - case 329: { action.builder. + case 320: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 330: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 321: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 330: { action.builder. + case 321: { action.builder. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 331: array_direct_declarator ::= array_direct_declarator array_modifier + // Rule 322: array_direct_declarator ::= array_direct_declarator array_modifier // - case 331: { action.builder. + case 322: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 332: array_direct_declarator ::= basic_direct_declarator array_modifier + // Rule 323: array_direct_declarator ::= basic_direct_declarator array_modifier // - case 332: { action.builder. + case 323: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 333: array_modifier ::= [ constant_expression ] + // Rule 324: array_modifier ::= [ constant_expression ] // - case 333: { action.builder. + case 324: { action.builder. consumeDirectDeclaratorArrayModifier(true); break; } // - // Rule 334: array_modifier ::= [ ] + // Rule 325: array_modifier ::= [ ] // - case 334: { action.builder. + case 325: { action.builder. consumeDirectDeclaratorArrayModifier(false); break; } // - // Rule 335: ptr_operator ::= * cv_qualifier_seq_opt + // Rule 326: ptr_operator ::= * cv_qualifier_seq_opt // - case 335: { action.builder. + case 326: { action.builder. consumePointer(); break; } // - // Rule 336: ptr_operator ::= & + // Rule 327: ptr_operator ::= & // - case 336: { action.builder. + case 327: { action.builder. consumeReferenceOperator(); break; } // - // Rule 337: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt + // Rule 328: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt // - case 337: { action.builder. + case 328: { action.builder. consumePointerToMember(); break; } // - // Rule 343: cv_qualifier ::= const + // Rule 334: cv_qualifier ::= const // - case 343: { action.builder. + case 334: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 344: cv_qualifier ::= volatile + // Rule 335: cv_qualifier ::= volatile // - case 344: { action.builder. + case 335: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 346: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name + // Rule 337: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name // - case 346: { action.builder. + case 337: { action.builder. consumeQualifiedId(false); break; } // - // Rule 347: type_id ::= type_specifier_seq + // Rule 338: type_id ::= type_specifier_seq // - case 347: { action.builder. + case 338: { action.builder. consumeTypeId(false); break; } // - // Rule 348: type_id ::= type_specifier_seq abstract_declarator + // Rule 339: type_id ::= type_specifier_seq abstract_declarator // - case 348: { action.builder. + case 339: { action.builder. consumeTypeId(true); break; } // - // Rule 351: abstract_declarator ::= ptr_operator_seq + // Rule 342: abstract_declarator ::= ptr_operator_seq // - case 351: { action.builder. + case 342: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 352: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator + // Rule 343: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator // - case 352: { action.builder. + case 343: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 356: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 347: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - case 356: { action.builder. + case 347: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 357: array_direct_abstract_declarator ::= array_modifier + // Rule 348: array_direct_abstract_declarator ::= array_modifier // - case 357: { action.builder. + case 348: { action.builder. consumeDirectDeclaratorArrayDeclarator(false); break; } // - // Rule 358: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // Rule 349: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier // - case 358: { action.builder. + case 349: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 359: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier + // Rule 350: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier // - case 359: { action.builder. + case 350: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 360: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 351: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 360: { action.builder. + case 351: { action.builder. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 361: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 352: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 361: { action.builder. + case 352: { action.builder. consumeDirectDeclaratorFunctionDeclarator(false); break; } // - // Rule 362: parameter_declaration_clause ::= parameter_declaration_list_opt ... + // 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. - consumePlaceHolder(); break; - } - - // - // Rule 363: parameter_declaration_clause ::= parameter_declaration_list_opt - // - case 363: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 364: parameter_declaration_clause ::= parameter_declaration_list , ... - // - case 364: { action.builder. - consumePlaceHolder(); break; - } - - // - // Rule 370: abstract_declarator_opt ::= $Empty - // - case 370: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 371: parameter_declaration ::= declaration_specifiers parameter_init_declarator - // - case 371: { action.builder. consumeParameterDeclaration(); break; } // - // Rule 372: parameter_declaration ::= declaration_specifiers + // Rule 363: parameter_declaration ::= declaration_specifiers // - case 372: { action.builder. + case 363: { action.builder. consumeParameterDeclarationWithoutDeclarator(); break; } // - // Rule 374: parameter_init_declarator ::= declarator = parameter_initializer + // Rule 365: parameter_init_declarator ::= declarator = parameter_initializer // - case 374: { action.builder. + case 365: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 376: parameter_init_declarator ::= abstract_declarator = parameter_initializer + // Rule 367: parameter_init_declarator ::= abstract_declarator = parameter_initializer // - case 376: { action.builder. + case 367: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 377: parameter_init_declarator ::= = parameter_initializer + // Rule 368: parameter_init_declarator ::= = parameter_initializer // - case 377: { action.builder. + case 368: { action.builder. consumeDeclaratorWithInitializer(false); break; } // - // Rule 378: parameter_initializer ::= assignment_expression + // Rule 369: parameter_initializer ::= assignment_expression // - case 378: { action.builder. + case 369: { action.builder. consumeInitializer(); break; } // - // Rule 379: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body + // Rule 370: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body // - case 379: { action.builder. + case 370: { action.builder. consumeFunctionDefinition(false); break; } // - // Rule 380: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq + // Rule 371: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq // - case 380: { action.builder. + case 371: { action.builder. consumeFunctionDefinition(true); break; } // - // Rule 383: initializer ::= ( expression_list ) + // Rule 374: initializer ::= ( expression_list ) // - case 383: { action.builder. + case 374: { action.builder. consumeInitializerConstructor(); break; } // - // Rule 384: initializer_clause ::= assignment_expression + // Rule 375: initializer_clause ::= assignment_expression // - case 384: { action.builder. + case 375: { action.builder. consumeInitializer(); break; } // - // Rule 385: initializer_clause ::= { initializer_list , } + // Rule 376: initializer_clause ::= { initializer_list , } // - case 385: { action.builder. + case 376: { action.builder. consumeInitializerList(); break; } // - // Rule 386: initializer_clause ::= { initializer_list } + // Rule 377: initializer_clause ::= { initializer_list } // - case 386: { action.builder. + case 377: { action.builder. consumeInitializerList(); break; } // - // Rule 387: initializer_clause ::= { } + // Rule 378: initializer_clause ::= { } // - case 387: { action.builder. + case 378: { action.builder. consumeInitializerList(); break; } // - // Rule 392: class_specifier ::= class_head { member_declaration_list_opt } + // Rule 383: class_specifier ::= class_head { member_declaration_list_opt } // - case 392: { action.builder. + case 383: { action.builder. consumeClassSpecifier(); break; } // - // Rule 393: class_head ::= class_keyword identifier_name_opt base_clause_opt + // Rule 384: class_head ::= class_keyword identifier_name_opt base_clause_opt // - case 393: { action.builder. + case 384: { action.builder. consumeClassHead(false); break; } // - // Rule 394: class_head ::= class_keyword template_id_name base_clause_opt + // Rule 385: class_head ::= class_keyword template_id_name base_clause_opt // - case 394: { action.builder. + case 385: { action.builder. consumeClassHead(false); break; } // - // Rule 395: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt + // Rule 386: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt // - case 395: { action.builder. + case 386: { action.builder. consumeClassHead(true); break; } // - // Rule 396: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt + // Rule 387: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt // - case 396: { action.builder. + case 387: { action.builder. consumeClassHead(true); break; } // - // Rule 398: identifier_name_opt ::= $Empty + // Rule 389: identifier_name_opt ::= $Empty // - case 398: { action.builder. + case 389: { action.builder. consumeEmpty(); break; } // - // Rule 402: visibility_label ::= access_specifier_keyword : + // Rule 393: visibility_label ::= access_specifier_keyword : // - case 402: { action.builder. + case 393: { action.builder. consumeVisibilityLabel(); break; } // - // Rule 403: member_declaration ::= declaration_specifiers_opt member_declarator_list ; + // Rule 394: member_declaration ::= declaration_specifiers_opt member_declarator_list ; // - case 403: { action.builder. + case 394: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 404: member_declaration ::= declaration_specifiers_opt ; + // Rule 395: member_declaration ::= declaration_specifiers_opt ; // - case 404: { action.builder. + case 395: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 407: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; + // Rule 398: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; // - case 407: { action.builder. + case 398: { action.builder. consumeMemberDeclarationQualifiedId(); break; } // - // Rule 411: member_declaration ::= ERROR_TOKEN + // Rule 402: member_declaration ::= ERROR_TOKEN // - case 411: { action.builder. + case 402: { action.builder. consumeDeclarationProblem(); break; } // - // Rule 419: member_declarator ::= declarator constant_initializer + // Rule 410: member_declarator ::= declarator constant_initializer // - case 419: { action.builder. + case 410: { action.builder. consumeMemberDeclaratorWithInitializer(); break; } // - // Rule 420: member_declarator ::= bit_field_declarator : constant_expression + // Rule 411: member_declarator ::= bit_field_declarator : constant_expression // - case 420: { action.builder. + case 411: { action.builder. consumeBitField(true); break; } // - // Rule 421: member_declarator ::= : constant_expression + // Rule 412: member_declarator ::= : constant_expression // - case 421: { action.builder. + case 412: { action.builder. consumeBitField(false); break; } // - // Rule 422: bit_field_declarator ::= identifier_name + // Rule 413: bit_field_declarator ::= identifier_name // - case 422: { action.builder. + case 413: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 423: constant_initializer ::= = constant_expression + // Rule 414: constant_initializer ::= = constant_expression // - case 423: { action.builder. + case 414: { action.builder. consumeInitializer(); break; } // - // Rule 429: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 420: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 429: { action.builder. + case 420: { action.builder. consumeBaseSpecifier(false, false); break; } // - // Rule 430: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name + // Rule 421: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name // - case 430: { action.builder. + case 421: { action.builder. consumeBaseSpecifier(true, true); break; } // - // Rule 431: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name + // Rule 422: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name // - case 431: { action.builder. + case 422: { action.builder. consumeBaseSpecifier(true, true); break; } // - // Rule 432: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name + // Rule 423: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name // - case 432: { action.builder. + case 423: { action.builder. consumeBaseSpecifier(true, false); break; } // - // Rule 433: access_specifier_keyword ::= private + // Rule 424: access_specifier_keyword ::= private // - case 433: { action.builder. + case 424: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 434: access_specifier_keyword ::= protected + // Rule 425: access_specifier_keyword ::= protected // - case 434: { action.builder. + case 425: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 435: access_specifier_keyword ::= public + // Rule 426: access_specifier_keyword ::= public // - case 435: { action.builder. + case 426: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 437: access_specifier_keyword_opt ::= $Empty + // Rule 428: access_specifier_keyword_opt ::= $Empty // - case 437: { action.builder. + case 428: { action.builder. consumeEmpty(); break; } // - // Rule 438: conversion_function_id_name ::= operator conversion_type_id + // Rule 429: conversion_function_id_name ::= operator conversion_type_id // - case 438: { action.builder. + case 429: { action.builder. consumeConversionName(); break; } // - // Rule 439: conversion_type_id ::= type_specifier_seq conversion_declarator + // Rule 430: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 439: { action.builder. + case 430: { action.builder. consumeTypeId(true); break; } // - // Rule 440: conversion_type_id ::= type_specifier_seq + // Rule 431: conversion_type_id ::= type_specifier_seq // - case 440: { action.builder. + case 431: { action.builder. consumeTypeId(false); break; } // - // Rule 441: conversion_declarator ::= ptr_operator_seq + // Rule 432: conversion_declarator ::= ptr_operator_seq // - case 441: { action.builder. + case 432: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 447: mem_initializer ::= mem_initializer_name ( expression_list_opt ) + // Rule 438: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 447: { action.builder. + case 438: { action.builder. consumeConstructorChainInitializer(); break; } // - // Rule 448: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 439: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name // - case 448: { action.builder. + case 439: { action.builder. consumeQualifiedId(false); break; } // - // Rule 451: operator_function_id_name ::= operator_id_name < template_argument_list_opt > + // Rule 442: operator_function_id_name ::= operator_id_name < template_argument_list_opt > // - case 451: { action.builder. + case 442: { action.builder. consumeTemplateId(); break; } // - // Rule 452: operator_id_name ::= operator overloadable_operator + // Rule 443: operator_id_name ::= operator overloadable_operator // - case 452: { action.builder. + case 443: { action.builder. consumeOperatorName(); break; } // - // Rule 495: template_declaration ::= export_opt template < template_parameter_list > declaration + // Rule 486: template_declaration ::= export_opt template < template_parameter_list > declaration // - case 495: { action.builder. + case 486: { action.builder. consumeTemplateDeclaration(); break; } // - // Rule 496: export_opt ::= export + // Rule 487: export_opt ::= export // - case 496: { action.builder. + case 487: { action.builder. consumePlaceHolder(); break; } // - // Rule 497: export_opt ::= $Empty + // Rule 488: export_opt ::= $Empty // - case 497: { action.builder. + case 488: { action.builder. consumeEmpty(); break; } // - // Rule 502: type_parameter ::= class identifier_name_opt + // Rule 493: type_parameter ::= class identifier_name_opt // - case 502: { action.builder. + case 493: { action.builder. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 503: type_parameter ::= class identifier_name_opt = type_id + // Rule 494: type_parameter ::= class identifier_name_opt = type_id // - case 503: { action.builder. + case 494: { action.builder. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 504: type_parameter ::= typename identifier_name_opt + // Rule 495: type_parameter ::= typename identifier_name_opt // - case 504: { action.builder. + case 495: { action.builder. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 505: type_parameter ::= typename identifier_name_opt = type_id + // Rule 496: type_parameter ::= typename identifier_name_opt = type_id // - case 505: { action.builder. + case 496: { action.builder. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 506: type_parameter ::= template < template_parameter_list > class identifier_name_opt + // Rule 497: type_parameter ::= template < template_parameter_list > class identifier_name_opt // - case 506: { action.builder. + case 497: { action.builder. consumeTemplatedTypeTemplateParameter(false); break; } // - // Rule 507: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression + // Rule 498: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression // - case 507: { action.builder. + case 498: { action.builder. consumeTemplatedTypeTemplateParameter(true); break; } // - // Rule 508: template_id_name ::= template_identifier < template_argument_list_opt > + // Rule 499: template_id_name ::= template_identifier < template_argument_list_opt > // - case 508: { action.builder. + case 499: { action.builder. consumeTemplateId(); break; } // - // Rule 517: explicit_instantiation ::= template declaration + // Rule 508: explicit_instantiation ::= template declaration // - case 517: { action.builder. + case 508: { action.builder. consumeTemplateExplicitInstantiation(); break; } // - // Rule 518: explicit_specialization ::= template < > declaration + // Rule 509: explicit_specialization ::= template < > declaration // - case 518: { action.builder. + case 509: { action.builder. consumeTemplateExplicitSpecialization(); break; } // - // Rule 519: try_block ::= try compound_statement handler_seq + // Rule 510: try_block ::= try compound_statement handler_seq // - case 519: { action.builder. + case 510: { action.builder. consumeStatementTryBlock(); break; } // - // Rule 522: handler ::= catch ( exception_declaration ) compound_statement + // Rule 513: handler ::= catch ( exception_declaration ) compound_statement // - case 522: { action.builder. + case 513: { action.builder. consumeStatementCatchHandler(false); break; } // - // Rule 523: handler ::= catch ( ... ) compound_statement + // Rule 514: handler ::= catch ( ... ) compound_statement // - case 523: { action.builder. + case 514: { action.builder. consumeStatementCatchHandler(true); break; } // - // Rule 524: exception_declaration ::= type_specifier_seq declarator + // Rule 515: exception_declaration ::= type_specifier_seq declarator // - case 524: { action.builder. + case 515: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 525: exception_declaration ::= type_specifier_seq abstract_declarator + // Rule 516: exception_declaration ::= type_specifier_seq abstract_declarator // - case 525: { action.builder. + case 516: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 526: exception_declaration ::= type_specifier_seq + // Rule 517: exception_declaration ::= type_specifier_seq // - case 526: { action.builder. + case 517: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 534: no_cast_start ::= ERROR_TOKEN + // Rule 525: no_cast_start ::= ERROR_TOKEN // - case 534: { action.builder. + case 525: { 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 8b24368a81c..f1df8b04a26 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 @@ -29,7 +29,7 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0 + 0,0,0,0 }; }; public final static byte isKeyword[] = IsKeyword.isKeyword; @@ -42,390 +42,378 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 1,1,1,1,1,1,1,3,1,1, 1,1,1,1,1,1,2,1,1,0, 1,0,4,2,2,2,3,2,3,2, - 2,1,0,1,1,1,4,4,4,8, - 8,3,3,4,4,3,3,2,2,7, - 7,7,7,4,4,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,1,3,3,1,3,3,3,1,3, - 3,1,3,3,1,3,3,3,3,1, - 3,3,1,3,1,3,1,3,1,3, - 1,3,1,5,1,2,1,1,3,3, - 3,3,3,3,3,3,3,3,3,1, - 1,2,1,3,1,0,1,0,1,1, - 0,1,1,1,1,1,1,1,1,1, - 3,3,2,2,1,4,2,1,2,5, - 7,5,1,4,5,7,9,8,2,2, - 3,2,3,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,2,1, - 0,4,2,2,2,2,2,1,0,1, - 1,1,1,1,1,2,1,2,2,2, - 1,1,2,2,1,2,2,1,2,2, - 1,2,2,1,1,1,1,1,1,1, + 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, + 1,3,3,1,3,3,3,1,3,3, + 1,3,3,1,3,3,3,3,1,3, + 3,1,3,1,3,1,3,1,3,1, + 3,1,5,1,2,1,1,3,3,3, + 3,3,3,3,3,3,3,3,1,1, + 2,1,3,1,0,1,0,1,1,0, + 1,1,1,1,1,1,1,1,1,3, + 3,2,2,1,4,2,1,2,5,7, + 5,1,4,5,7,9,8,2,2,3, + 2,3,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,2,1,0, + 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,1,1,1,1,3,4, - 4,5,4,5,4,1,5,6,1,3, - 1,0,1,3,1,1,1,1,1,1, - 1,1,6,6,5,1,7,6,1,0, - 6,5,6,4,1,3,1,0,1,2, - 1,3,1,3,1,1,1,1,3,9, - 2,2,3,2,3,1,5,1,2,2, - 1,0,1,1,1,3,1,2,1,1, - 2,3,1,1,1,3,1,2,2,9, - 8,2,1,3,1,3,1,0,1,0, - 2,1,1,3,1,3,2,1,5,8, - 1,2,3,1,5,4,3,1,3,1, - 1,5,4,4,5,5,1,0,1,1, - 1,2,4,2,2,1,5,1,1,1, - 1,1,2,1,0,1,3,1,2,3, - 2,1,2,2,1,0,1,3,3,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,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,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,-109,0,0,0,0,-2, + 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,-108,0,0,0,0, + -2,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-50, + 0,0,0,0,0,0,0,0,0,0, + -372,0,0,0,-4,0,0,0,-69,0, + 0,0,0,-5,0,0,0,0,0,0, + 0,-86,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-57,0,0,0,0, + 0,-51,0,0,0,0,0,-6,0,-20, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-70,0,0,0, + 0,0,0,0,0,0,0,0,0,-174, + 0,0,0,0,-113,0,-256,0,0,0, + 0,0,0,-115,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-53,0,0,0,0,-135,0, + 0,0,-413,0,0,0,-514,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-58,0,-130,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-62,-245,0,0,0,0,0, + 0,0,0,0,-7,0,0,-368,0,0, + 0,0,0,-134,0,0,0,0,0,-8, + 0,0,0,0,0,0,0,-163,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,0,-123,0,0,0, + 0,0,0,0,0,0,-175,0,0,0, + 0,0,0,-137,0,0,0,0,-261,0, + 0,0,0,0,0,0,0,-54,-140,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-10,0,-325,0,0,0, + 0,-417,0,0,0,0,0,0,-246,0, + 0,0,0,-237,-17,0,0,0,0,0, + 0,0,0,0,-220,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-58,0, 0,0,0,-11,0,0,0,0,0,0, - 0,0,0,-357,0,0,-4,0,0,0, - -358,0,0,0,0,0,0,0,0,0, - 0,0,0,-87,0,0,0,0,0,0, + 0,0,0,-12,-13,0,0,-351,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,-229,0,0, - 0,0,-436,-213,0,0,0,0,0,0, - 0,-5,0,0,-485,0,0,-124,0,-50, - 0,0,0,0,0,0,0,0,-141,0, - 0,0,0,-416,0,0,0,0,0,0, - 0,-70,0,0,0,0,0,0,0,0, - 0,0,0,0,-6,0,0,-7,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,-466,0,0,0,0,0,-381, + 0,0,0,0,0,0,0,0,-433,0, + 0,0,-183,0,0,0,0,-233,0,0, + 0,0,0,0,-240,0,0,0,0,0, + -14,-63,0,0,-16,0,0,-258,-522,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-274,0,0,0,0,-128,-198,0, + 0,0,0,0,0,0,0,0,-29,0, + 0,-247,0,0,0,0,-267,0,0,0, + 0,0,-204,-304,0,0,0,-3,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-117,0,0,0,-8,-53,0, - 0,0,0,0,0,0,0,0,-340,0, - 0,0,0,0,0,0,-177,0,0,0, - 0,0,-133,0,0,0,0,0,0,0, + 0,0,-353,0,0,0,-30,-31,0,0, + -272,0,0,0,0,0,0,-291,0,0, + 0,0,-192,0,0,0,0,0,-281,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-57,0,0,0,0,0,0,0, - 0,-9,-230,0,0,0,0,-225,-178,0, - 0,0,-10,0,-137,0,0,0,0,0, - -165,0,0,0,0,0,0,0,-310,0, + 0,0,0,0,0,0,0,-179,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-315,0,0,0,0,-269,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-126,0,0,0, + 0,-32,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-168,-316,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-129,0,0,0,0,-182,0,0, - 0,0,0,0,0,0,0,-311,0,0, - 0,0,0,-3,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-33,0,0, + 0,0,0,0,0,0,-60,0,0,0, + -34,-474,0,0,0,0,-105,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,0,0,0,0,0,0, + -106,0,0,0,-278,-35,-40,0,0,0, + 0,-402,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -297,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-182,-114,0,0,-36, + 0,-42,0,0,0,0,-129,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, + -37,-38,0,0,-92,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-420,0,0,0,0,0,-231,0, - 0,0,0,0,0,0,0,0,-12,-63, - -517,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-223,0,0, + 0,0,0,0,0,0,0,0,0,-39, + 0,0,0,-41,0,0,0,-93,0,0, + 0,0,-131,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-289,0,0,0,0,0,0,0,0, + 0,0,-55,0,0,0,-56,-471,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,-184,0,0,0,0,0, + -186,0,0,0,0,0,0,0,0,-59, + 0,0,0,-95,0,0,0,0,-136,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-13,-168,0,0, - 0,0,-119,0,0,0,-14,-235,0,0, - 0,0,-328,0,0,0,0,0,0,0, - 0,0,0,0,0,-515,0,0,0,0, + 0,0,-303,0,0,0,0,0,0,0, + 0,0,-64,0,0,0,-96,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,0,0,-65,-189,0,0,0, + 0,0,0,0,0,-313,0,0,0,-97, + 0,0,0,0,-142,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-67,-197, + 0,0,0,0,0,0,0,0,-337,-68, + 0,0,-98,0,0,0,0,-165,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-166,0,0,0, + 0,-109,-211,0,0,0,0,0,0,0, + 0,-110,0,0,0,-99,0,0,0,0, + -199,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-224,0,0,0,0, + 0,0,0,0,-111,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,-225,0,0,0,0,0,-229,0, + 0,0,0,0,0,0,0,-112,-119,0, + 0,-101,0,0,0,0,-207,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -16,0,0,0,-114,-238,0,0,0,0, - -20,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-254,0,0,0,0, + 0,-273,0,0,0,0,0,0,0,0, + -143,-144,0,0,-102,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-29,-525,0,0, + 0,0,0,0,0,0,0,0,-462,0, + 0,0,0,0,-280,0,0,0,0,0, + 0,0,0,-145,0,0,0,-205,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-30,0,0,0,0,-233,0,0,0, - 0,0,0,0,0,0,-249,0,0,-281, - 0,0,-71,0,0,0,0,-405,0,0, - 0,0,0,0,0,-316,0,-31,-62,-284, + 0,-284,0,0,0,0,0,-298,0,0, + 0,0,0,0,0,0,-308,0,0,0, + -507,0,0,0,0,-209,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-317,0,0,0,0,0, + -323,0,0,0,0,0,0,0,0,-146, + 0,0,0,-307,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-306,0,0, + 0,0,-331,-147,0,0,0,0,-235,0, + 0,0,-311,0,0,0,0,-148,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-226,0,0,0, + 0,-149,0,0,0,0,0,0,0,0, + 0,-231,0,0,0,-453,-239,0,0,0, + 0,0,-335,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-32,0,0,0,0,-131,-51, - 0,0,0,0,0,0,0,0,-371,0, - 0,0,0,0,0,-33,0,0,-474,0, - -333,0,0,0,0,-207,0,0,0,0, - 0,0,0,-318,0,0,0,0,0,0, + 0,-150,-151,0,0,0,0,-312,0,0, + 0,-358,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-34,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-234,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-132,-134,-54, - 0,0,0,0,-319,0,0,0,0,0, + 0,0,0,0,0,-326,0,0,0,0, + 0,-328,0,0,0,0,0,0,0,0, + -397,0,0,0,-340,-234,0,0,0,0, + 0,-359,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-35, - 0,0,0,-400,0,0,0,0,0,-477, + 0,-346,0,0,0,0,0,0,0,0, + -405,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-341,0,0,0,0,-152, + 0,0,0,0,0,-345,0,0,0,-349, + 0,-153,-228,-431,-19,0,0,0,0,0, + -104,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -365,0,0,0,0,0,0,0,0,-91, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-60,0, - -366,-36,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,-171,0, - 0,0,0,0,0,0,0,0,0,-37, - 0,0,0,-106,0,-383,-456,0,0,-42, - 0,0,0,0,-107,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-154,-309, + 0,0,0,0,-89,0,0,0,0,-155, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-38,0,0,0,0,0,-184, - 0,0,0,0,0,0,0,0,-115,0, - 0,-39,0,0,-93,0,0,0,0,-139, + 0,0,0,0,0,0,0,0,-264,0, + 0,0,0,0,0,0,0,0,-90,0, + 0,0,0,-156,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-300,0, + 0,0,-379,0,0,0,0,0,-418,0, + 0,-87,0,0,0,0,-213,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-144,0,-451,0,0,0,-94, - 0,0,0,0,-145,0,0,0,0,0, + 0,0,0,0,0,-157,0,0,0,0, + -88,0,0,0,0,-370,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-306,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-41,-55, - -56,0,0,0,-95,0,0,0,0,-169, + 0,0,0,0,0,0,0,0,0,-52, + 0,0,0,0,0,0,-158,0,-159,0, + 0,0,0,0,-407,0,-285,-241,-203,0, + 0,0,0,-265,-80,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-185,0, - 0,0,0,0,-187,0,0,0,0,0, - 0,0,0,-59,-64,0,0,0,0,-96, - 0,0,0,0,-202,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-189,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-210,0, - -65,0,0,0,-97,0,0,0,0,-212, + 0,0,0,-160,0,-81,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-192,0, - 0,0,0,0,-200,0,0,0,0,0, - 0,0,0,-66,0,-498,-68,0,0,-98, - 0,0,0,0,-315,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-15, + 0,0,0,0,0,-1,-161,0,0,0, + 0,-248,0,-48,0,0,0,0,-138,0, + 0,0,0,0,-354,0,0,-482,0,0, + 0,0,-167,-170,0,0,0,0,0,0, + -343,-363,-171,0,0,0,0,0,0,-501, + 0,0,0,-383,0,0,0,0,0,-172, + -173,0,0,0,0,0,0,-82,0,0, + 0,0,-398,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-214,0,0,0,0,0,0, - 0,0,0,0,-227,0,0,0,-69,0, - -110,-111,0,0,-99,0,0,0,0,-237, + 0,-176,0,0,0,-83,0,0,0,0, + -295,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-319, + 0,0,0,-243,0,0,0,0,0,0, + 0,0,0,0,0,0,-84,0,0,0, + 0,-495,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-228,0, - 0,0,0,0,-232,0,0,0,0,0, - 0,0,0,-244,0,0,-112,0,0,-100, + -177,0,0,-414,0,0,0,-210,0,-350, + -178,0,0,0,0,0,0,0,-187,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-342,0,0,0,0,0, + 0,-357,0,0,-222,-287,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-249,0,-85,0,0, + 0,0,-188,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-386,0,0,0,-193,0,-194,0,0, + 0,0,0,0,0,0,0,0,0,-200, + -208,-329,0,-218,0,0,0,-360,0,0, + 0,0,0,-506,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-250,0, + 0,0,0,0,0,0,-219,0,0,-75, 0,0,0,0,-251,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-257, - 0,0,0,0,0,0,0,0,-252,0, - -113,-120,0,0,-101,0,0,0,0,-287, + 0,0,0,0,0,-380,-221,0,-238,-422, + 0,0,0,-415,0,0,0,-107,-133,0, + 0,-242,0,0,-318,0,0,0,0,-244, + 0,-299,0,0,0,0,0,0,0,0, + 0,0,0,0,-227,0,0,0,0,0, + 0,0,-259,0,0,-477,0,-76,0,0, + 0,0,-118,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-343,0, - 0,0,0,0,0,0,0,0,0,-201, - 0,0,0,-253,0,-127,-128,0,0,-102, - 0,0,0,0,-254,0,0,0,0,0, + 0,-416,0,-290,0,-459,0,-387,0,0, + 0,0,0,0,0,0,-369,0,0,-504, + -263,-260,-18,0,-338,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-146,0,0,0,0,0,0, - 0,0,0,0,-261,0,0,0,-147,0, - -148,-267,0,0,-103,0,0,0,0,-149, + 0,0,0,0,0,-403,0,0,0,-443, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-276,0, - 0,0,0,0,0,0,0,0,0,-344, - 0,0,0,-150,-138,0,-151,0,0,-166, - 0,0,0,0,-268,0,0,0,0,0, + 0,0,-444,0,-120,0,0,0,-122,0, + 0,0,0,-270,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-271,0,0, + 0,0,0,-275,0,0,0,0,0,-44, + -423,0,0,-279,0,0,-388,0,0,0, + 0,0,0,-292,0,0,0,0,0,0, + 0,0,-440,0,0,0,0,0,0,0, + 0,-425,0,0,0,0,0,0,0,0, + 0,0,0,0,-43,-293,0,0,0,0, + -456,0,0,0,0,0,0,0,0,0, + -472,0,-117,-320,-266,0,-116,0,0,-282, + 0,0,0,0,0,0,0,0,0,-283, + 0,0,-344,0,0,0,0,-452,0,0, + 0,-296,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-375,0,0,0,0,0,-283, - 0,0,0,0,0,0,0,0,-208,0, - 0,0,0,-264,0,0,0,0,0,0, + 0,0,0,0,-45,-427,0,0,0,0, + 0,0,0,0,0,-496,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-499,-479, + 0,0,0,0,0,0,0,0,-480,-446, + -124,-162,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-301,-180,0,0,0, + 0,-302,0,0,-201,0,0,0,0,0, + -324,-232,0,0,0,0,0,-334,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-336,0,0,0,0,-72,0, + 0,0,-366,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-216,0,0,0,0,-301,-320, - 0,0,0,0,0,-345,0,0,0,0, - 0,-510,0,0,0,0,0,0,0,0, + 0,-367,0,-352,0,0,0,0,-376,0, + 0,0,0,0,0,-22,0,0,0,0, + -373,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-375, + -77,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,-378, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-152,0,0,0, - -293,-295,0,0,0,0,-314,0,0,0, + 0,0,0,0,0,0,0,0,-79,0, + 0,0,0,-384,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-322,0,0,0,0,-385,0,0, + 0,0,0,0,0,-377,0,0,0,0, + -393,-364,-467,-121,0,0,0,0,-476,0, + -450,-448,-230,0,-411,0,-420,-505,-396,0, + -389,0,0,0,0,0,-404,0,-127,0, + 0,0,0,0,-406,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -259,0,0,0,0,0,0,0,0,0, - 0,-153,0,0,0,-338,0,0,0,0, - -154,0,0,0,0,0,0,0,0,0, + 0,0,-437,0,0,-408,-490,0,0,0, + 0,0,-236,0,0,0,0,0,0,-164, + 0,0,0,0,0,-371,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-155,-326,0,0,0,0, - 0,0,0,0,-140,0,0,0,0,-156, - 0,0,0,0,0,0,0,0,-361,0, + 0,0,0,-409,-421,-457,0,0,0,0, + 0,0,0,0,0,0,-487,-458,0,-491, + -49,0,0,0,0,0,-410,0,-412,-455, + -419,0,0,0,0,0,0,0,0,0, + 0,0,-424,0,0,0,0,-206,0,0, + -426,0,-473,0,-489,0,0,0,0,0, + -463,0,0,0,0,0,0,0,0,0, + 0,0,0,-255,0,0,0,0,0,-468, + -502,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-465,-428,-429,0, + 0,0,0,0,0,0,0,0,-494,0, + 0,-268,0,0,0,-483,0,0,-430,0, + 0,0,-432,0,0,0,0,0,0,0, + 0,0,0,-509,0,-434,-435,0,0,-436, + 0,-470,0,0,0,0,-515,0,0,-441, + -445,0,-454,0,0,0,-461,0,0,0, + 0,0,0,-46,0,-469,-47,-488,0,-503, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-510,-347, 0,0,0,0,0,0,0,0,0,0, - 0,0,-272,0,0,0,0,-334,-329,0, - 0,0,0,0,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,-331,0,0,0,0,0,0,0,0, - 0,0,-157,0,0,0,-143,0,0,0, - 0,-158,0,0,0,0,0,0,0,0, - -408,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-349,0,0,0,0,0, - -159,0,0,0,0,-348,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,-291,0,0,0,0,-434,0, - 0,0,0,0,0,0,-354,0,0,0, - 0,-288,-160,0,0,0,0,-186,0,0, - 0,0,-92,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-298,0,0,0,0,-90,0,0, - 0,0,-332,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-296,0,0,0, - 0,-91,0,0,0,0,-312,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-277,0,0,0,0, - 0,0,0,0,-52,0,0,0,0,-161, - 0,-162,-17,0,0,0,0,0,0,0, - 0,-163,-307,-206,0,0,0,0,-164,-88, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-236,0, - 0,0,0,-89,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-49,0,0, - 0,0,0,-170,-18,0,0,0,-352,0, - 0,0,0,0,-122,0,0,0,0,0, - 0,-363,0,0,0,0,0,0,-461,0, - 0,0,0,0,0,0,0,0,0,0, - -368,0,-173,0,0,0,0,0,0,-382, - 0,0,0,-386,0,0,0,-323,0,0, - 0,0,0,0,0,0,0,0,-81,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,-82,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-83,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-175,0, - 0,0,-84,0,0,0,0,-401,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-346,0,0,0, - -246,0,0,0,0,0,0,0,0,0, - 0,0,0,-85,0,0,0,0,-373,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-176,0,0, - -309,-195,0,0,0,0,-322,-179,-15,-391, - 0,0,-136,0,-353,0,-410,0,0,0, - 0,0,0,-347,-389,0,0,-355,-360,0, - 0,0,0,-243,0,0,0,0,0,-180, - 0,0,-290,0,0,0,0,0,0,0, - 0,0,0,0,0,-181,0,-190,0,0, - 0,0,0,0,-271,0,-418,0,0,-86, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-425,0,0,0,0, - 0,-191,0,-196,-367,-197,-379,0,0,0, - 0,-203,0,-509,0,0,0,0,0,0, - 0,0,0,0,0,0,-250,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-76,0,0,0,0,-419,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-211,0,0,0,0, - 0,-446,-423,0,0,0,0,0,0,0, - 0,0,-424,0,0,-458,0,0,-380,0, - 0,0,0,0,-302,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -447,0,-221,0,0,0,0,0,0,-222, - 0,0,-77,0,0,0,0,-224,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-390,0,-421,-241, - 0,0,0,-426,0,0,0,-430,0,0, - 0,-245,0,-118,-1,-247,-226,-356,-248,0, - 0,0,0,0,0,0,0,0,-242,0, - 0,0,0,-480,-476,0,0,-262,0,0, - 0,-239,0,0,0,0,0,0,0,0, - 0,0,0,0,-263,0,-273,0,0,-372, - 0,0,-406,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-503,0, - 0,-486,0,0,-449,0,0,0,-499,0, - -274,0,-321,0,0,0,0,-278,-453,0, - 0,0,0,0,0,0,0,-282,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-258,0,0,0,0,0,0, - 0,0,-428,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-392,0,0,0, - 0,-459,-285,-466,-72,-255,0,-240,-402,0, - 0,-475,-455,0,0,0,0,0,0,0, - -286,-299,-135,-468,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-507,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-121,-460, - 0,-473,0,0,0,0,0,-304,0,0, - 0,-305,0,0,0,0,0,0,0,0, - 0,0,-487,0,0,0,0,0,0,0, - 0,0,-482,0,0,-488,0,0,0,0, - 0,0,0,-270,0,0,0,0,-508,-44, - -327,0,0,-384,0,-209,0,0,0,0, - -337,0,0,-19,0,0,0,0,-339,0, - 0,0,0,0,-108,0,0,0,-484,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-369,0,-130,0,0,0,0,-370, - 0,0,0,0,0,0,-470,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-376,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-378,-479,0, - 0,0,0,0,0,-462,0,0,0,0, - 0,0,-381,-387,-471,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-275, - 0,0,0,0,0,0,0,0,0,-489, - -501,-388,0,-396,0,0,0,0,0,0, - -22,0,0,0,0,-399,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-407,-409,-78,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-79, - 0,0,0,0,-411,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-80,0,0,0,0,-412,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-325,0,0, - 0,0,-502,0,0,0,0,0,0,0, - -504,-413,-415,-303,0,0,0,0,0,0, - 0,0,0,0,0,0,-493,-422,-123,-500, - -292,-427,-414,-514,-429,0,-505,0,-431,-432, - -433,-398,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -125,0,0,0,0,-435,0,0,0,0, - -437,0,0,0,0,0,0,0,0,0, - 0,0,0,-438,0,0,0,0,0,-440, - -167,0,0,0,0,0,-513,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-519,0,-374,-439,-444,-417,0,0, - 0,0,0,-297,0,0,-448,-457,0,0, - -490,-464,-516,-317,-472,0,0,0,0,0, - -491,0,0,0,0,0,0,0,0,-522, - -45,0,0,0,0,0,0,0,-506,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-492,0,0,0,-335,0,-511,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-521,0,-524,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-497,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-46,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-518,0,0,0,-280,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-47,0,-256,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-523,0,-351,0,-395,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-199,0,-313,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-526,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-294,0,0,0,0,0, + -520,-71,0,-486,-252,0,0,-253,0,0, + -508,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-484,0,0,0,0,0,-498,-523,0, + 0,-500,0,0,-485,0,0,0,0,0, + 0,0,0,0,0,-513,0,0,-497,0, + 0,-518,0,-103,-511,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, @@ -448,108 +436,108 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,-61,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-74, + 0,0,0,0,0,0,0,0,0,-73, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-75,0,0,0,0,0,0,0, + 0,0,-74,0,0,0,0,-519,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-126,0,0,0,0, - 0,0,0,0,0,-341,0,0,0,0, + 0,0,0,0,0,-195,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -198,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-465,0,0,0,0,0, - -469,-494,-385,-512,0,0,0,0,0,0, - -350,-266,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-382,-516, + -521,-517,0,0,-294,0,0,-394,0,-314, + 0,0,0,-310,-196,-399,0,0,0,0, + 0,0,0,0,0,-191,0,0,0,0, + 0,0,-390,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-397,0, + 0,0,0,0,0,0,0,-214,0,0, + 0,-449,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-202,0,0, + 0,0,0,0,0,0,0,0,-348,0, + 0,-392,0,0,-451,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-139,0,0,0,0,0,0,0, + 0,0,0,0,-212,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-478,0, + 0,-277,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-257,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-288, + 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,-492,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,0,0,0,0,-125,0,0,0, + 0,0,0,0,-169,0,0,0,0,0, + 0,-438,0,0,0,-215,0,0,0,0, + 0,0,-216,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-475,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-66,0,0,0,0,0,0,0, + -300,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-217,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,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,-464,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,-142,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-48,0,0,0,0, + 0,0,0,-330,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -454,0,0,0,0,0,0,0,0,0, + -276,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-223,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-356,0,0, + 0,0,0,0,0,0,0,0,0,0, + -395,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-321,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-185,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-190,0,0,0,0,0,0,0, + 0,0,0,0,-400,-439,0,0,0,0, + 0,0,0,-286,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-305,0, + 0,0,0,0,0,0,0,-327,0,0, + 0,0,0,0,0,0,0,0,0,-333, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-481,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-172,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-269,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-495,0,0, - 0,0,0,0,0,0,0,0,0,0, - -478,0,0,0,0,0,0,0,0,0, - 0,0,0,-467,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-265,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,-339,0,0,0,0,0, + 0,0,0,0,0,0,-361,0,0,0, + 0,0,0,0,-362,0,0,0,0,0, + 0,0,0,0,0,0,-374,0,0,0, + 0,-460,0,0,0,0,0,0,0,0, + 0,-391,-401,0,0,0,0,0,0,0, + 0,-481,0,0,0,0,0,0,0,-442, + 0,0,-447,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-493,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-359,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-188,0,0,0, - 0,0,0,-193,0,0,0,0,0,0, - 0,0,0,0,0,0,-289,0,0,0, - 0,0,0,0,0,-520,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-308,0,0, - 0,0,0,0,-330,0,0,0,0,0, - 0,-336,0,0,0,0,0,0,-342,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-364, - 0,0,0,0,0,0,-365,0,0,0, - 0,0,0,-377,0,0,0,0,0,0, - -463,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,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,-183,0, - 0,0,0,0,0,-194,0,0,0,0, - 0,0,-205,0,0,0,0,0,0,0, - 0,0,0,0,0,-324,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -215,0,0,0,0,0,0,-260,0,0, - 0,0,0,0,0,0,0,0,0,0, - -394,-393,0,0,0,0,0,0,0,0, - 0,0,0,-443,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-43,0,0,0,0,0,0,-67,0, - 0,0,0,0,-441,-442,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-403,0,0,0, - 0,0,0,0,0,-445,-404,0,0,0, - 0,0,0,0,0,0,-450,0,0,0, - 0,0,-73,-104,0,0,0,0,0,0, - 0,0,0,0,0,0,-217,-218,0,0, - 0,0,0,-219,0,0,0,0,0,-220, - 0,0,0,0,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, - -496,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,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; @@ -559,556 +547,544 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface BaseAction { public final static char baseAction[] = { - 175,5,137,81,81,35,35,67,67,40, - 40,194,194,195,195,196,196,1,1,16, + 170,5,131,78,78,35,35,64,64,40, + 40,189,189,190,190,191,191,1,1,16, 16,16,16,16,16,16,16,17,17,17, - 15,11,11,9,9,9,9,9,2,68, - 68,6,6,12,12,12,12,47,47,138, - 138,139,57,57,46,46,18,18,18,18, + 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, 18,18,18,18,18,18,18,18,18,18, - 18,18,18,18,18,18,140,140,140,119, + 18,18,18,18,18,134,134,134,114,19, 19,19,19,19,19,19,19,19,19,19, - 19,19,19,20,20,176,176,177,177,178, - 143,143,144,144,141,141,145,142,142,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,44,44,43,43,43, - 43,43,43,43,43,43,43,43,43,43, - 39,39,29,146,146,104,104,107,107,97, - 197,197,72,72,72,72,72,72,72,72, - 72,73,73,73,74,74,59,59,179,179, - 75,75,75,120,120,76,76,76,76,77, - 77,77,77,77,78,78,82,82,82,82, - 82,82,82,53,53,53,53,53,110,110, - 111,111,52,24,24,24,24,24,48,48, - 91,91,91,91,91,153,153,148,148,148, - 148,148,149,149,149,150,150,150,151,151, - 151,152,152,152,92,92,92,92,92,93, - 93,93,98,13,14,14,14,14,14,14, - 14,14,14,14,14,96,96,96,124,124, - 124,124,124,122,122,122,99,123,123,155, - 155,154,154,126,126,127,42,42,41,86, - 86,87,87,89,90,88,45,55,50,156, - 156,56,54,85,85,157,157,147,147,128, - 128,80,80,158,158,65,65,65,61,61, - 60,66,66,70,70,58,58,58,94,94, - 106,105,105,64,64,62,62,63,63,51, - 108,108,108,100,100,100,101,102,102,102, - 103,103,112,112,112,114,114,113,113,198, - 198,95,95,181,181,181,181,181,130,49, - 49,160,180,180,131,131,131,131,182,182, - 30,30,121,132,132,132,132,115,115,125, - 125,125,162,163,163,163,163,163,163,163, - 163,163,185,185,183,183,184,184,164,164, - 164,164,165,186,117,116,116,187,187,166, - 166,166,166,109,109,109,188,188,10,189, - 189,190,167,159,159,168,168,169,170,170, - 7,7,8,172,172,172,172,172,172,172, - 172,172,172,172,172,172,172,172,172,172, - 172,172,172,172,172,172,172,172,172,172, - 172,172,172,172,172,172,172,172,172,172, - 172,172,172,172,172,69,71,71,173,173, - 133,133,134,134,134,134,134,134,3,4, - 174,174,171,171,135,135,135,83,84,79, - 161,161,118,118,191,191,191,136,136,129, - 129,192,192,175,175,1480,1826,1689,1647,967, - 1149,4423,34,1021,31,35,30,32,2524,263, - 29,27,56,1057,111,81,82,112,1082,3287, - 1144,1118,1208,1166,424,275,1332,1280,1404,1370, - 4346,1422,1509,147,70,38,449,1214,163,148, - 4784,2190,38,3291,36,967,3696,4647,34,1021, - 31,35,345,32,3538,38,957,36,967,232, - 3294,34,1021,31,35,30,32,909,263,29, - 27,56,1057,111,81,82,112,1082,3372,1144, - 1118,1208,1166,3677,1719,2223,235,230,231,2435, - 4849,278,76,277,276,686,1601,298,1606,2852, - 58,326,2322,328,4634,689,321,1790,2701,686, - 38,1827,391,967,686,2922,242,245,248,251, - 2535,739,1689,38,957,36,967,1782,4332,34, - 1021,31,35,63,32,507,296,3557,1526,37, - 297,632,338,3014,963,3229,3549,3581,4166,2455, - 38,957,36,967,2435,3294,34,1021,31,35, - 2780,32,909,263,29,27,56,1057,111,81, - 82,112,1082,349,1144,1118,1208,1166,3286,365, - 1332,1280,1404,1370,1546,1422,1509,147,3121,863, - 4849,452,514,148,393,425,1734,3012,3016,3128, - 3305,521,442,3354,3368,417,3299,686,38,509, - 2963,967,515,2455,38,957,36,967,2435,3294, - 34,1021,31,35,2780,32,909,263,29,27, - 56,1057,111,81,82,112,1082,349,1144,1118, - 1208,1166,338,58,1332,1280,1404,1370,753,1422, - 1509,147,3175,3211,38,283,514,148,3174,686, - 38,2970,67,3229,3305,1582,38,957,36,967, - 494,1546,34,1021,43,35,515,4849,848,3538, - 38,957,36,967,510,3294,34,1021,31,35, - 30,32,909,263,29,27,56,1057,111,81, - 82,112,1082,424,1144,1118,1208,1166,2909,4856, - 1332,1280,1404,1370,4849,1422,2916,169,686,295, - 2748,3274,3134,2796,3131,38,957,36,967,338, - 3294,34,1021,31,35,30,32,909,263,29, - 27,56,1057,111,81,82,112,1082,510,1144, - 1118,1208,1166,686,3647,1332,1280,1404,1370,3372, - 1422,1509,147,335,341,3286,339,163,148,771, - 1523,3115,38,957,36,967,294,4863,34,1021, - 31,35,30,32,2856,419,507,2796,2984,38, - 957,36,967,2435,3294,34,1021,31,35,2780, - 32,909,263,29,27,56,1057,111,81,82, - 112,1082,349,1144,1118,1208,1166,3591,2196,1332, - 1280,1404,1370,940,1422,1509,147,3633,3211,38, - 281,514,148,1582,38,957,36,967,805,3305, - 34,1021,2529,35,290,3057,2794,38,957,36, - 967,515,3294,34,1021,31,35,30,32,909, - 263,29,27,56,1057,111,81,82,112,1082, - 632,1144,1118,1208,1166,394,425,1332,1280,1404, - 1370,3634,1422,1509,147,1824,2260,232,358,384, - 148,3497,38,957,36,967,3400,3294,34,1021, - 31,35,30,32,909,263,29,27,56,1057, - 91,81,82,387,244,230,231,3111,2867,38, - 957,36,967,511,3294,34,1021,31,35,30, - 32,909,263,29,27,56,1057,111,81,82, - 112,1082,1854,1144,1118,1208,1166,1945,295,1332, - 1280,1404,1370,747,1422,1509,147,3302,38,281, - 3113,384,148,2254,38,957,36,967,3206,4332, - 34,1021,31,35,62,32,3113,388,412,1012, - 3131,38,957,36,967,385,3294,34,1021,31, - 35,30,32,909,263,29,27,56,1057,111, - 81,82,112,1082,158,1144,1118,1208,1166,863, - 1739,1332,1280,1404,1370,724,1422,1509,147,2509, - 38,397,799,378,148,3875,3230,2426,3670,3206, - 3098,1045,38,957,36,967,1031,4712,34,1021, - 31,35,345,32,3131,38,957,36,967,389, - 3294,34,1021,31,35,30,32,909,263,29, - 27,56,1057,111,81,82,112,1082,159,1144, - 1118,1208,1166,289,3057,1332,1280,1404,1370,76, - 1422,1509,147,686,38,285,520,378,148,339, - 456,326,2322,328,799,77,324,1790,863,863, - 775,2173,3091,66,805,3131,38,957,36,967, - 377,3294,34,1021,31,35,30,32,909,263, - 29,27,56,1057,111,81,82,112,1082,623, - 1144,1118,1208,1166,3384,493,1332,1280,1404,1370, - 1026,1422,1509,147,2251,3560,3561,520,378,148, - 3069,38,957,36,967,3183,3294,34,1021,31, - 35,30,32,909,263,29,27,56,1057,111, - 81,82,112,1082,376,1144,1118,1208,1166,455, - 4191,1332,1280,1404,1370,3559,1422,1509,147,775, - 1646,3413,1780,384,148,2940,38,957,36,967, - 439,3294,34,1021,31,35,30,32,909,263, - 29,27,56,1057,111,81,82,112,1082,424, - 1144,1118,1208,1166,28,4911,1332,1280,1404,1370, - 60,1422,1509,147,775,374,3413,3625,146,148, - 3131,38,957,36,967,775,3294,34,1021,31, - 35,30,32,909,263,29,27,56,1057,111, - 81,82,112,1082,336,1144,1118,1208,1166,75, - 58,1332,1280,1404,1370,798,1422,1509,147,775, - 74,382,986,164,148,3131,38,957,36,967, - 775,3294,34,1021,31,35,30,32,909,263, - 29,27,56,1057,111,81,82,112,1082,424, - 1144,1118,1208,1166,59,4705,1332,1280,1404,1370, - 361,1422,1509,147,775,92,3413,529,159,148, - 3131,38,957,36,967,863,3294,34,1021,31, - 35,30,32,909,263,29,27,56,1057,111, - 81,82,112,1082,952,1144,1118,1208,1166,58, - 4719,1332,1280,1404,1370,360,1422,1509,147,1593, - 963,1843,529,158,148,3131,38,957,36,967, - 2505,3294,34,1021,31,35,30,32,909,263, - 29,27,56,1057,111,81,82,112,1082,58, - 1144,1118,1208,1166,3017,58,1332,1280,1404,1370, - 618,1422,1509,147,3666,1147,57,320,157,148, - 3131,38,957,36,967,775,3294,34,1021,31, - 35,30,32,909,263,29,27,56,1057,111, - 81,82,112,1082,2914,1144,1118,1208,1166,899, - 359,1332,1280,1404,1370,330,1422,1509,147,863, - 95,3205,529,156,148,3131,38,957,36,967, - 775,3294,34,1021,31,35,30,32,909,263, - 29,27,56,1057,111,81,82,112,1082,58, - 1144,1118,1208,1166,1087,58,1332,1280,1404,1370, - 1026,1422,1509,147,1212,356,3819,1545,155,148, - 3131,38,957,36,967,863,3294,34,1021,31, - 35,30,32,909,263,29,27,56,1057,111, - 81,82,112,1082,58,1144,1118,1208,1166,3019, - 333,1332,1280,1404,1370,58,1422,1509,147,1663, - 1872,1277,1342,154,148,3131,38,957,36,967, - 775,3294,34,1021,31,35,30,32,909,263, - 29,27,56,1057,111,81,82,112,1082,3746, - 1144,1118,1208,1166,1925,58,1332,1280,1404,1370, - 2805,1422,1509,147,775,1899,102,1407,153,148, - 3131,38,957,36,967,775,3294,34,1021,31, - 35,30,32,909,263,29,27,56,1057,111, - 81,82,112,1082,521,1144,1118,1208,1166,1950, - 58,1332,1280,1404,1370,3644,1422,1509,147,775, - 73,1726,2359,152,148,3131,38,957,36,967, - 3631,3294,34,1021,31,35,30,32,909,263, - 29,27,56,1057,111,81,82,112,1082,424, - 1144,1118,1208,1166,72,4770,1332,1280,1404,1370, - 2919,1422,1509,147,775,3042,969,3744,151,148, - 3131,38,957,36,967,775,3294,34,1021,31, - 35,30,32,909,263,29,27,56,1057,111, - 81,82,112,1082,246,1144,1118,1208,1166,71, - 331,1332,1280,1404,1370,3309,1422,1509,147,334, - 70,3129,3372,150,148,3131,38,957,36,967, - 3226,3294,34,1021,31,35,30,32,909,263, - 29,27,56,1057,111,81,82,112,1082,58, - 1144,1118,1208,1166,2407,405,1332,1280,1404,1370, - 424,1422,1509,147,3241,2200,4777,601,149,148, - 3028,38,957,36,967,3372,3294,34,1021,31, - 35,30,32,909,263,29,27,56,1057,111, - 81,82,112,1082,3370,1144,1118,1208,1166,2997, - 58,1332,1280,1404,1370,3654,1422,2916,169,3131, - 38,957,36,967,234,3294,34,1021,31,35, - 30,32,909,263,29,27,56,1057,111,81, - 82,112,1082,4552,1144,1118,1208,1166,396,425, - 1332,1280,1404,1370,3189,1422,1509,147,98,514, - 58,334,144,148,2373,4231,686,38,1827,391, - 967,187,3455,38,957,36,967,1599,3294,34, - 1021,31,35,30,32,909,263,29,27,56, - 1057,111,81,82,112,1082,429,1144,1118,1208, - 1166,395,425,1332,1280,1404,1370,862,1422,1509, - 147,775,775,47,2862,194,148,3538,38,957, - 36,967,805,3294,34,1021,31,35,30,32, - 909,263,29,27,56,1057,111,81,82,112, - 1082,2852,1144,1118,1208,1166,2126,61,1332,1280, - 1404,1370,1472,1422,2916,169,3538,38,957,36, - 967,2176,3294,34,1021,31,35,30,32,909, - 263,29,27,56,1057,111,81,82,112,1082, - 1449,1144,1118,1208,1166,1972,58,1332,1280,1404, - 1370,3817,1422,2916,169,2499,38,957,36,967, - 2188,4863,34,1021,31,35,65,32,392,3538, - 38,957,36,967,2276,3294,34,1021,31,35, - 30,32,909,263,29,27,56,1057,111,81, - 82,112,1082,2852,1144,1118,1208,1166,3224,58, - 1332,1280,1404,1370,2755,1422,2916,169,3538,38, - 957,36,967,421,3294,34,1021,31,35,30, - 32,909,263,29,27,56,1057,111,81,82, - 112,1082,58,1144,1118,1208,1166,2768,403,1332, - 1280,1404,1370,1845,1422,2916,169,2499,38,957, - 36,967,3249,4863,34,1021,31,35,64,32, - 287,3579,38,957,36,967,420,3294,34,1021, - 31,35,30,32,909,263,29,27,56,1057, - 111,81,82,112,1082,58,1144,1118,1208,1166, - 1331,3256,1332,1280,1404,1370,863,1422,2916,169, - 3538,38,957,36,967,423,3294,34,1021,31, - 35,30,32,909,263,29,27,56,1057,111, - 81,82,112,1082,1546,1144,1118,1208,1166,424, - 4849,1332,1280,1404,1370,4791,2459,1582,38,957, - 36,967,3443,938,34,1021,2719,35,686,38, - 1719,1685,967,3538,38,957,36,967,3636,3294, - 34,1021,31,35,30,32,909,263,29,27, - 56,1057,111,81,82,112,1082,103,1144,1118, - 1208,1166,338,1523,1332,1280,1404,2442,3538,38, - 957,36,967,3626,3294,34,1021,31,35,30, - 32,909,263,29,27,56,1057,111,81,82, - 112,1082,332,1144,1118,1208,1166,775,3518,1332, - 1280,2323,3538,38,957,36,967,2260,3294,34, - 1021,31,35,30,32,909,263,29,27,56, - 1057,111,81,82,112,1082,3361,1144,1118,1208, - 1166,973,60,1332,2440,3620,1826,1827,391,967, - 1662,3325,1492,1934,38,1554,46,967,237,263, - 45,1021,1855,1631,511,1826,1827,391,967,2406, - 3538,38,957,36,967,275,3294,34,1021,31, - 35,30,32,909,263,29,27,56,1057,111, - 81,82,112,1082,275,1144,1118,1208,2232,686, - 38,509,280,967,3538,38,957,36,967,232, - 3294,34,1021,31,35,30,32,909,263,29, - 27,56,1057,111,81,82,112,1082,335,1144, - 1118,1208,2271,864,2172,2314,235,230,231,3320, - 864,278,3018,277,276,1906,1601,2798,1584,967, - 443,4627,686,38,1827,391,967,165,2697,424, - 3000,3098,277,276,160,4842,242,245,248,251, - 2535,58,436,2851,1329,54,1376,1782,93,407, - 58,107,432,78,58,3819,296,55,775,3169, - 297,1555,2328,3014,963,3229,3549,3581,4166,3538, - 38,957,36,967,2862,3294,34,1021,31,35, - 30,32,909,263,29,27,56,1057,111,81, - 82,112,1082,329,1144,1118,1917,3538,38,957, - 36,967,1419,3294,34,1021,31,35,30,32, - 909,263,29,27,56,1057,111,81,82,112, - 1082,1910,1144,1118,2047,3538,38,957,36,967, - 1545,3294,34,1021,31,35,30,32,909,263, - 29,27,56,1057,111,81,82,112,1082,3344, - 1144,1118,2092,3538,38,957,36,967,3623,3294, - 34,1021,31,35,30,32,909,263,29,27, - 56,1057,111,81,82,112,1082,3361,1144,1118, - 2101,1621,38,957,36,967,2304,4647,34,1021, - 31,35,345,32,3538,38,957,36,967,3320, - 3294,34,1021,31,35,30,32,909,263,29, - 27,56,1057,111,81,82,112,1082,3345,1144, - 2125,2852,686,1826,1827,391,967,3311,1864,3173, - 598,38,449,58,2435,3766,4784,3320,864,308, - 2435,326,2322,328,775,58,321,1790,3626,3201, - 1108,357,275,349,2177,38,509,3108,967,2701, - 985,3181,1565,2182,38,957,36,967,4876,4647, - 34,1021,31,35,345,32,604,184,1609,106, - 1150,350,1520,958,355,1945,295,3320,288,3163, - 3538,38,957,36,967,805,3294,34,1021,31, - 35,30,32,909,263,29,27,56,1057,111, - 81,82,112,1082,1449,1144,2140,805,279,94, - 277,276,107,326,2322,328,58,200,321,1790, - 501,1466,2557,357,1573,775,2180,686,38,1827, - 391,967,2932,2578,2856,38,957,36,967,2304, - 4647,34,1021,31,35,345,32,2177,38,509, - 280,967,371,350,1520,958,355,431,498,500, - 2570,1610,3538,38,957,36,967,3320,3294,34, - 1021,31,35,30,32,909,263,29,27,56, - 1057,111,81,82,112,1082,3126,1854,446,3354, - 3368,452,3320,775,326,2322,328,3635,3323,321, - 1790,289,3057,3221,357,443,775,199,438,686, - 38,1827,391,967,524,1709,38,3291,36,967, - 3696,4712,34,1021,31,35,345,32,447,2741, - 3091,3320,203,3352,350,1520,958,355,527,430, - 3360,3369,525,3538,38,957,36,967,1718,3294, - 34,1021,31,35,30,32,909,263,29,27, - 56,1057,111,81,82,112,1082,177,1869,2604, - 2934,201,535,338,2651,326,2322,328,58,4315, - 321,1790,67,3162,1547,2267,692,1784,2604,1537, - 864,228,2435,4918,2435,739,160,239,263,686, - 1826,1827,391,967,2852,58,2757,185,3374,1171, - 864,228,1546,2701,160,3562,205,216,4849,213, - 204,214,215,217,533,1880,174,1742,3085,275, - 2509,38,397,1,3550,4539,1865,408,535,188, - 172,173,175,176,177,178,179,381,232,686, - 1601,298,2509,38,397,58,409,228,3055,2852, - 1169,3123,160,686,1826,1827,391,967,3383,58, - 3778,305,2757,185,3172,240,230,231,3204,416, - 3299,3562,205,216,365,213,204,214,215,217, - 296,3653,174,275,297,79,3038,277,276,2178, - 186,2051,3012,3016,3174,189,172,173,175,176, - 177,178,179,1815,38,957,36,967,3696,4712, - 34,1021,31,35,345,32,313,686,38,1827, - 391,967,3757,1899,775,335,335,2435,3253,3809, - 864,864,3783,3320,2435,3412,3063,2435,379,410, - 412,3127,3751,1961,775,99,228,448,2435,346, - 540,277,276,2701,165,165,228,3679,3134,3651, - 2081,338,4232,326,2322,328,2604,349,321,1790, - 3562,207,216,222,213,206,214,215,217,3692, - 3562,207,216,1377,213,206,214,215,217,953, - 58,208,775,3055,1820,3263,4552,1171,3366,340, - 341,208,3654,3055,218,209,210,211,212,299, - 300,301,302,775,218,209,210,211,212,299, - 300,301,302,3856,501,523,775,3733,2435,1464, - 2052,315,4407,3034,686,38,509,284,967,2604, - 58,3448,4407,3089,3766,2435,1965,228,3206,2435, - 3173,2853,4849,232,1810,1601,1644,391,967,3653, - 3648,3279,498,500,349,3182,49,2862,2701,3903, - 811,3562,207,216,2435,213,206,214,215,217, - 247,230,231,1728,54,776,1601,1644,391,967, - 3752,3305,208,228,3055,296,55,3320,522,297, - 1555,910,3586,1691,339,218,209,210,211,212, - 299,300,301,302,3657,54,357,3562,207,216, - 1635,213,206,214,215,217,296,55,3450,3320, - 297,1555,2854,4407,3523,357,58,4222,208,501, - 3055,3309,2742,3627,3373,58,352,1520,958,355, - 4498,218,209,210,211,212,299,300,301,302, - 686,38,509,282,967,350,1520,958,355,312, - 3647,58,3660,348,3336,2864,986,499,500,4407, - 3531,3538,38,1689,1647,967,3648,3294,34,1021, - 31,35,30,32,909,263,29,27,56,1057, - 111,81,82,89,3655,3681,3538,38,957,36, - 967,37,3294,34,1021,31,35,30,32,909, - 263,29,27,56,1057,111,81,82,112,1871, - 3538,38,957,36,967,3649,3294,34,1021,31, - 35,30,32,909,263,29,27,56,1057,111, - 81,82,112,1880,3538,38,957,36,967,3771, - 3294,34,1021,31,35,30,32,909,263,29, - 27,56,1057,111,81,82,112,1914,1678,38, - 957,36,967,2852,4712,34,1021,31,35,345, - 32,2852,3777,3794,1858,38,957,36,967,3696, - 4647,34,1021,31,35,345,32,3320,3326,1904, - 775,236,3698,265,775,3662,2435,3320,535,2698, - 3742,3782,1974,38,957,36,967,3143,4647,34, - 1021,31,35,345,32,2701,339,228,326,2322, - 328,2792,160,322,1790,383,1781,4224,357,3715, - 304,3796,2757,185,326,2322,328,311,303,321, - 1790,3562,205,216,89,213,204,214,215,217, - 353,1522,174,232,2578,535,624,3320,352,1520, - 958,355,323,3238,328,3637,172,173,175,176, - 177,178,179,775,228,2604,3772,1010,1987,160, - 250,230,231,864,3174,232,366,3773,3730,2757, - 185,441,3781,3320,3174,3804,535,4656,3562,205, - 216,3806,213,204,214,215,217,160,3815,174, - 3247,58,253,230,231,228,2435,2961,202,3808, - 160,357,181,172,173,175,176,177,178,179, - 2757,185,529,307,381,349,1546,535,3245,3562, - 205,216,4849,213,204,214,215,217,3134,5491, - 174,350,1520,958,355,3320,228,775,3134,1610, - 1999,160,3305,192,172,173,175,176,177,178, - 179,2757,185,617,1692,5491,5491,386,535,5491, - 3562,205,216,5491,213,204,214,215,217,337, - 341,174,3856,58,338,196,5491,228,2435,2265, - 341,5491,160,5491,3698,172,173,175,176,177, - 178,179,2757,185,705,5491,5491,349,2929,535, - 5491,3562,205,216,4849,213,204,214,215,217, - 4605,5491,174,5491,58,2765,335,5491,228,2435, - 5491,864,5491,160,3305,195,172,173,175,176, - 177,178,179,2757,185,793,1737,3174,349,3174, - 535,5491,3562,205,216,165,213,204,214,215, - 217,5491,5491,174,5491,58,3778,335,5491,228, - 2435,5491,864,5491,160,3305,191,172,173,175, - 176,177,178,179,2757,185,881,1781,5491,349, - 5491,535,5491,3562,205,216,165,213,204,214, - 215,217,5491,5491,174,686,38,509,3281,967, - 228,3134,5491,3134,5491,160,3305,198,172,173, - 175,176,177,178,179,2757,185,5491,1700,5491, - 2397,5491,5491,5491,3562,205,216,5491,213,204, - 214,215,217,5491,5491,174,5491,5491,5491,5491, - 5491,101,2561,341,2846,341,5491,5491,197,172, - 173,175,176,177,178,179,3538,38,957,36, - 967,2764,3294,34,1021,31,35,30,32,909, - 263,29,27,56,1057,111,81,82,90,3538, - 38,957,36,967,5491,3294,34,1021,31,35, - 30,32,909,263,29,27,56,1057,111,81, - 82,88,3538,38,957,36,967,5491,3294,34, - 1021,31,35,30,32,909,263,29,27,56, - 1057,111,81,82,87,3538,38,957,36,967, - 5491,3294,34,1021,31,35,30,32,909,263, - 29,27,56,1057,111,81,82,86,3538,38, - 957,36,967,5491,3294,34,1021,31,35,30, - 32,909,263,29,27,56,1057,111,81,82, - 85,3538,38,957,36,967,5491,3294,34,1021, - 31,35,30,32,909,263,29,27,56,1057, - 111,81,82,84,3538,38,957,36,967,5491, - 3294,34,1021,31,35,30,32,909,263,29, - 27,56,1057,111,81,82,83,3401,38,957, - 36,967,5491,3294,34,1021,31,35,30,32, - 909,263,29,27,56,1057,111,81,82,109, - 3538,38,957,36,967,5491,3294,34,1021,31, - 35,30,32,909,263,29,27,56,1057,111, - 81,82,114,3538,38,957,36,967,5491,3294, - 34,1021,31,35,30,32,909,263,29,27, - 56,1057,111,81,82,113,3685,1826,1827,391, - 967,5491,3325,5491,5491,5491,3188,5491,5491,238, - 263,5491,4698,5491,5491,5491,5491,5491,5491,5491, - 5491,3538,38,957,36,967,275,3294,34,1021, - 31,35,30,32,909,263,29,27,56,1057, - 111,81,82,110,5491,324,5491,5491,5491,5491, - 2435,2034,2081,3929,2128,5491,864,864,2435,864, - 232,1537,1867,5491,5491,5491,2435,2435,4918,349, - 5491,5491,5491,5491,5491,5491,5491,228,5491,5491, - 160,160,5491,160,5491,2701,228,236,230,231, - 167,167,278,167,277,276,3410,5491,5491,3711, - 5491,3562,207,216,2435,213,206,214,215,217, - 4539,1865,408,5491,5491,1494,5491,243,246,249, - 252,2535,208,228,3055,5491,5491,5491,1782,5491, - 5491,409,5491,3055,5491,495,209,210,211,212, - 299,300,301,302,5491,3976,5491,3562,207,216, - 2435,213,206,214,215,217,365,5491,3547,3617, - 5491,3633,864,1601,1644,391,967,5491,208,228, - 3055,3038,428,2855,3012,3016,686,1601,1644,391, - 967,517,209,210,211,212,299,300,301,302, - 5491,4002,54,3562,207,216,2435,213,206,214, - 215,217,5491,296,55,5491,54,297,1555,1176, - 5491,5491,5491,5491,208,228,3055,296,55,2454, - 5491,297,1555,1025,410,413,5491,314,209,210, - 211,212,299,300,301,302,3266,3830,5491,3562, - 207,216,2435,213,206,214,215,217,5491,5491, - 5491,5491,5491,3195,1601,1644,391,967,5491,5491, - 208,228,3055,5491,5491,5491,5491,5491,5491,5491, - 5491,5491,5491,518,209,210,211,212,299,300, - 301,302,5491,54,5491,3562,207,216,5491,213, - 206,214,215,217,296,55,3188,5491,297,1555, - 1994,5491,4698,5491,5491,5491,208,5491,3055,5491, - 2742,5491,5491,5491,5491,5491,5491,5491,5491,219, - 209,210,211,212,299,300,301,302,1893,38, - 957,36,967,3696,4647,34,1021,31,35,345, - 32,1858,38,957,36,967,3696,4647,34,1021, - 31,35,345,32,1858,38,957,36,967,3696, - 4647,34,1021,31,35,345,32,5491,5491,1574, - 38,957,36,967,2945,4647,34,1021,31,35, - 345,32,686,1601,1644,391,967,5491,326,2322, - 328,5491,5491,321,1790,5491,5491,5491,5491,5491, - 5491,326,2322,328,5491,1494,321,1790,1377,404, - 5491,5491,54,5491,326,2322,328,5491,5491,321, - 1790,1377,5491,296,55,5491,5491,297,51,323, - 3238,328,5491,5491,3661,1045,38,957,36,967, - 5491,4712,34,1021,31,35,345,32,5491,5491, - 5491,5491,5491,5491,5491,5491,315,864,1601,1644, - 391,967,427,5491,776,1601,1644,391,967,316, - 5491,5491,5491,5491,5491,3173,5491,776,1601,1644, - 391,967,5491,3242,5491,3648,2204,54,5491,5491, - 5491,864,5491,339,54,326,2322,328,296,55, - 322,1790,297,1555,52,296,55,54,5491,297, - 1555,52,5491,5491,793,160,5491,5491,296,55, - 5491,1223,297,1555,2747,167,5491,1999,776,1601, - 1644,391,967,5491,3093,864,1601,1644,391,967, - 5491,5491,776,1601,1644,391,967,5491,5491,776, - 1601,1644,391,967,5491,5491,5491,5491,54,5491, - 5491,5491,5491,5491,5491,54,5491,5491,5491,296, - 55,5491,54,297,1555,52,296,55,5491,54, - 297,1555,52,296,55,2006,5491,297,1555,2769, - 296,55,2317,3717,297,1555,52,5491,5491,3093, - 776,1601,1644,391,967,5491,2542,776,1601,1644, - 391,967,5491,5491,776,1601,1644,391,967,5491, - 5491,3333,1601,1644,391,967,5491,5491,5491,5491, - 54,5491,5491,5491,5491,5491,5491,54,5491,5491, - 5491,296,55,5491,54,297,1555,52,296,55, - 5491,54,297,1555,52,296,55,2857,5491,297, - 1555,52,296,55,2939,5491,297,1555,52,5491, - 5491,3157,3339,1601,1644,391,967,5491,635,686, - 1601,1644,391,967,5491,5491,686,1601,1644,391, - 967,5491,5491,686,1601,1644,391,967,5491,5491, - 5491,5491,54,5491,5491,5491,1719,5491,5491,54, - 5491,2435,4849,296,55,5491,54,297,1555,52, - 296,55,5491,54,297,1555,2978,296,55,3079, - 2701,297,1555,968,296,55,5491,5491,297,1555, - 910,686,1601,1644,391,967,5491,5491,686,1601, - 1644,391,967,5491,5491,5491,5491,5491,5491,5491, - 5491,3646,335,5491,338,5491,2435,864,5491,5491, - 5491,54,5491,5491,1090,5491,5491,5491,54,535, - 5491,5491,296,55,5491,349,297,1555,1097,296, - 55,165,1155,297,1555,2363,528,535,228,1220, - 3518,365,5491,160,535,1285,1350,5491,5491,5491, - 535,535,3305,167,5491,5491,349,5491,1734,3012, - 3016,160,3385,349,531,5491,4221,58,160,349, - 349,1385,2435,5491,160,160,1415,58,1329,5491, - 5491,535,2435,3305,193,193,5491,58,5491,5491, - 3305,349,2435,2361,2408,1374,4524,4524,864,864, - 349,349,1430,5491,5491,160,2923,2512,2559,5491, - 5491,349,864,864,2606,193,5491,5491,3305,864, - 2653,3337,160,160,5491,864,5491,4524,3305,2700, - 505,5491,1475,2452,864,5491,160,160,3305,5491, - 503,5491,5491,160,5491,5491,1745,1779,5491,160, - 532,2747,5491,1824,5491,5491,864,5491,160,1835, - 5491,5491,5491,5491,5491,3164,3184,5491,1655,5491, - 5491,5491,5491,5491,5491,5491,5491,5491,5491,5491, - 160,5491,5491,5491,5491,5491,5491,5491,5491,5491, - 3554,5491,5491,2933,5491,5491,3232,5491,0,5509, - 42,0,5508,42,0,161,534,0,509,33, - 0,450,783,0,41,5509,0,41,5508,0, - 130,2645,0,1,440,0,454,1149,0,453, - 1238,0,509,44,0,2753,96,0,38,306, - 0,390,298,0,36,391,0,33,390,0, - 509,33,390,0,649,42,0,1,564,0, - 1,5765,0,1,5764,0,1,5763,0,1, - 5762,0,1,5761,0,1,5760,0,1,5759, - 0,1,5758,0,1,5757,0,1,5756,0, - 1,5755,0,1,5509,42,0,1,5508,42, - 0,1,2443,0,5725,241,0,5724,241,0, - 5835,241,0,5834,241,0,5752,241,0,5751, - 241,0,5750,241,0,5749,241,0,5748,241, - 0,5747,241,0,5746,241,0,5745,241,0, - 5765,241,0,5764,241,0,5763,241,0,5762, - 241,0,5761,241,0,5760,241,0,5759,241, - 0,5758,241,0,5757,241,0,5756,241,0, - 5755,241,0,5509,42,241,0,5508,42,241, - 0,5532,241,0,38,286,262,0,509,390, - 0,5509,53,0,5508,53,0,48,5530,0, - 48,40,0,132,2645,0,131,2645,0,2518, - 237,0,30,516,0,5827,441,0,1410,441, - 0,1,97,0,52,40,0,1,5532,0, - 42,1,0,1,5532,229,0,1,42,229, - 0,229,415,0,5509,40,0,5508,40,0, - 5530,50,0,50,40,0,5509,39,0,5508, - 39,0,5509,2,40,0,5508,2,40,0, - 5501,406,0,5500,406,0,1,3534,0,1, - 2749,0,1,649,0,229,414,0,5827,100, - 0,1410,100,0,2000,325,0,1,5827,0, - 1,1410,0,42,5509,0,42,5508,0,3166, - 282,0,1,1159,0,1,3060,0,5499,1, - 0,497,4269,0,1,229,0,1,229,3445, - 0,5501,229,0,5500,229,0,3604,229,0, - 161,180,0,298,3376,0,8,10,0,229, - 168,0,229,221,0,229,220,0,190,3774, - 0 + 19,19,20,20,171,171,172,172,173,137, + 137,138,138,135,135,139,136,136,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, + 39,29,140,140,99,99,102,102,94,192, + 192,69,69,69,69,69,69,69,69,69, + 70,70,70,71,71,56,56,174,174,72, + 72,72,115,115,73,73,73,73,74,74, + 74,74,74,75,75,79,79,79,79,79, + 79,79,50,50,50,50,50,105,105,106, + 106,49,24,24,24,24,24,45,45,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, + 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,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, + 193,193,92,92,176,176,176,176,176,124, + 46,46,155,175,175,125,125,125,125,177, + 177,30,30,116,126,126,126,126,110,110, + 120,120,120,157,158,158,158,158,158,158, + 158,158,158,180,180,178,178,179,179,159, + 159,159,159,160,181,112,111,111,182,182, + 161,161,161,161,104,104,104,183,183,10, + 184,184,185,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,186,186,186,130,130, + 123,123,187,187,170,170,1353,38,1670,1659, + 1021,963,4365,34,1025,31,35,30,32,2553, + 261,29,27,55,1069,110,80,81,111,1127, + 61,1222,1128,1281,1268,674,273,1370,1326,1412, + 1411,3723,1450,1454,146,1651,2938,162,147,1497, + 38,945,36,1021,332,4203,34,1025,31,35, + 62,32,3396,38,945,36,1021,231,2235,34, + 1025,31,35,30,32,944,261,29,27,55, + 1069,110,80,81,111,1127,61,1222,1128,1281, + 1268,735,1846,2309,234,229,230,3097,778,274, + 3355,38,945,36,1021,186,2235,34,1025,31, + 35,30,32,944,261,29,27,55,1069,90, + 80,81,241,244,247,250,3414,1733,38,945, + 36,1021,1799,4203,34,1025,31,35,61,32, + 774,38,500,2794,1021,2073,574,3696,3093,2913, + 2995,2999,3191,4357,2318,38,945,36,1021,2440, + 2235,34,1025,31,35,2681,32,944,261,29, + 27,55,1069,110,80,81,111,1127,340,1222, + 1128,1281,1268,66,1785,1370,1326,1412,1411,2125, + 1450,1454,146,774,2980,505,147,2987,38,945, + 36,1021,2868,4168,34,1025,31,35,30,32, + 660,383,498,3155,506,2318,38,945,36,1021, + 2440,2235,34,1025,31,35,2681,32,944,261, + 29,27,55,1069,110,80,81,111,1127,340, + 1222,1128,1281,1268,1615,3216,1370,1326,1412,1411, + 2440,1450,1454,146,3215,1018,505,147,3199,38, + 388,65,485,2868,1458,38,945,36,1021,2644, + 1146,34,1025,43,35,506,837,430,2880,38, + 945,36,1021,501,2235,34,1025,31,35,30, + 32,944,261,29,27,55,1069,110,80,81, + 111,1127,1210,1222,1128,1281,1268,2713,2753,1370, + 1326,1412,1411,4673,1450,2791,168,774,38,2827, + 2612,47,2790,2691,2063,38,945,36,1021,860, + 4168,34,1025,31,35,64,32,356,2048,2063, + 38,945,36,1021,501,4168,34,1025,31,35, + 63,32,2934,2872,2880,1274,325,1458,38,945, + 36,1021,774,3651,34,1025,2230,35,3374,3579, + 38,277,1807,484,3501,70,38,1540,46,1021, + 443,2778,45,1025,2691,2836,38,945,36,1021, + 2440,2235,34,1025,31,35,2681,32,944,261, + 29,27,55,1069,110,80,81,111,1127,340, + 1222,1128,1281,1268,513,1396,1370,1326,1412,1411, + 2534,1450,1454,146,954,1338,505,147,1458,38, + 945,36,1021,2868,1138,34,1025,2416,35,3215, + 2646,38,945,36,1021,506,2235,34,1025,31, + 35,30,32,944,261,29,27,55,1069,110, + 80,81,111,1127,1906,1222,1128,1281,1268,1088, + 3627,1370,1326,1412,1411,2440,1450,1454,146,3510, + 1351,375,147,774,38,1783,1746,1021,774,38, + 500,276,1021,159,2644,2966,38,500,3034,1021, + 837,1559,1093,166,378,1752,49,2790,3196,2719, + 38,945,36,1021,502,2235,34,1025,31,35, + 30,32,944,261,29,27,55,1069,110,80, + 81,111,1127,3674,1222,1128,1281,1268,1785,2771, + 1370,1326,1412,1411,3473,1450,1454,146,396,3481, + 375,147,2966,38,500,276,1021,774,38,500, + 280,1021,492,3071,2990,379,3467,784,2999,38, + 945,36,1021,376,2235,34,1025,31,35,30, + 32,944,261,29,27,55,1069,110,80,81, + 111,1127,512,1222,1128,1281,1268,490,491,1370, + 1326,1412,1411,3613,1450,1454,146,1349,677,162, + 147,774,38,500,278,1021,447,4028,774,38, + 500,3221,1021,774,38,1616,382,1021,784,2999, + 38,945,36,1021,380,2235,34,1025,31,35, + 30,32,944,261,29,27,55,1069,110,80, + 81,111,1127,273,1222,1128,1281,1268,2761,372, + 1370,1326,1412,1411,3207,1450,1454,146,427,92, + 369,147,106,2999,38,945,36,1021,3696,2235, + 34,1025,31,35,30,32,944,261,29,27, + 55,1069,110,80,81,111,1127,513,1222,1128, + 1281,1268,68,4096,1370,1326,1412,1411,574,1450, + 1454,146,97,330,369,147,275,513,2999,38, + 945,36,1021,4215,2235,34,1025,31,35,30, + 32,944,261,29,27,55,1069,110,80,81, + 111,1127,282,1222,1128,1281,1268,2215,3514,1370, + 1326,1412,1411,368,1450,1454,146,2048,370,369, + 147,249,2921,38,945,36,1021,2048,2235,34, + 1025,31,35,30,32,944,261,29,27,55, + 1069,110,80,81,111,1127,61,1222,1128,1281, + 1268,2725,28,1370,1326,1412,1411,367,1450,1454, + 146,2048,74,375,147,2964,1413,2792,38,945, + 36,1021,3109,2235,34,1025,31,35,30,32, + 944,261,29,27,55,1069,110,80,81,111, + 1127,513,1222,1128,1281,1268,73,4728,1370,1326, + 1412,1411,365,1450,1454,146,61,2048,145,147, + 325,4589,2999,38,945,36,1021,1785,2235,34, + 1025,31,35,30,32,944,261,29,27,55, + 1069,110,80,81,111,1127,1727,1222,1128,1281, + 1268,2440,58,1370,1326,1412,1411,373,1450,1454, + 146,853,50,163,147,2999,38,945,36,1021, + 340,2235,34,1025,31,35,30,32,944,261, + 29,27,55,1069,110,80,81,111,1127,75, + 1222,1128,1281,1268,1059,511,1370,1326,1412,1411, + 158,1450,1454,146,1461,446,158,147,2999,38, + 945,36,1021,1785,2235,34,1025,31,35,30, + 32,944,261,29,27,55,1069,110,80,81, + 111,1127,1855,1222,1128,1281,1268,2440,999,1370, + 1326,1412,1411,2341,1450,1454,146,2622,3109,157, + 147,2999,38,945,36,1021,2644,2235,34,1025, + 31,35,30,32,944,261,29,27,55,1069, + 110,80,81,111,1127,61,1222,1128,1281,1268, + 2037,1575,1370,1326,1412,1411,2233,1450,1454,146, + 1753,4046,156,147,2999,38,945,36,1021,2048, + 2235,34,1025,31,35,30,32,944,261,29, + 27,55,1069,110,80,81,111,1127,1660,1222, + 1128,1281,1268,1780,357,1370,1326,1412,1411,4775, + 1450,1454,146,1444,91,155,147,2999,38,945, + 36,1021,2048,2235,34,1025,31,35,30,32, + 944,261,29,27,55,1069,110,80,81,111, + 1127,511,1222,1128,1281,1268,3102,61,1370,1326, + 1412,1411,3423,1450,1454,146,2964,57,154,147, + 2999,38,945,36,1021,1785,2235,34,1025,31, + 35,30,32,944,261,29,27,55,1069,110, + 80,81,111,1127,2662,1222,1128,1281,1268,1417, + 61,1370,1326,1412,1411,2009,1450,1454,146,3727, + 1537,153,147,2999,38,945,36,1021,3156,2235, + 34,1025,31,35,30,32,944,261,29,27, + 55,1069,110,80,81,111,1127,1699,1222,1128, + 1281,1268,1395,61,1370,1326,1412,1411,765,1450, + 1454,146,1475,56,152,147,2999,38,945,36, + 1021,2048,2235,34,1025,31,35,30,32,944, + 261,29,27,55,1069,110,80,81,111,1127, + 76,1222,1128,1281,1268,349,61,1370,1326,1412, + 1411,2339,1450,1454,146,2200,94,151,147,2999, + 38,945,36,1021,350,2235,34,1025,31,35, + 30,32,944,261,29,27,55,1069,110,80, + 81,111,1127,3517,1222,1128,1281,1268,2464,61, + 1370,1326,1412,1411,3612,1450,1454,146,2247,1438, + 150,147,2999,38,945,36,1021,1785,2235,34, + 1025,31,35,30,32,944,261,29,27,55, + 1069,110,80,81,111,1127,61,1222,1128,1281, + 1268,4075,61,1370,1326,1412,1411,2310,1450,1454, + 146,156,244,149,147,2999,38,945,36,1021, + 410,2235,34,1025,31,35,30,32,944,261, + 29,27,55,1069,110,80,81,111,1127,3716, + 1222,1128,1281,1268,2440,61,1370,1326,1412,1411, + 4080,1450,1454,146,2690,324,148,147,2999,38, + 945,36,1021,340,2235,34,1025,31,35,30, + 32,944,261,29,27,55,1069,110,80,81, + 111,1127,3675,1222,1128,1281,1268,3704,2716,1370, + 1326,1412,1411,2792,1450,1454,146,774,3004,143, + 147,3313,38,945,36,1021,2048,2235,34,1025, + 31,35,30,32,944,261,29,27,55,1069, + 110,80,81,111,1127,61,1222,1128,1281,1268, + 3690,61,1370,1326,1412,1411,4179,1450,1454,146, + 3087,347,193,147,3396,38,945,36,1021,322, + 2235,34,1025,31,35,30,32,944,261,29, + 27,55,1069,110,80,81,111,1127,3696,1222, + 1128,1281,1268,3640,3088,1370,1326,1412,1411,3164, + 1450,2791,168,3396,38,945,36,1021,601,2235, + 34,1025,31,35,30,32,944,261,29,27, + 55,1069,110,80,81,111,1127,523,1222,1128, + 1281,1268,777,394,1370,1326,1412,1411,285,1450, + 2791,168,774,38,281,3745,1736,774,38,1616, + 382,1021,283,3396,38,945,36,1021,289,2235, + 34,1025,31,35,30,32,944,261,29,27, + 55,1069,110,80,81,111,1127,273,1222,1128, + 1281,1268,3122,3419,1370,1326,1412,1411,1785,1450, + 2791,168,3396,38,945,36,1021,2226,2235,34, + 1025,31,35,30,32,944,261,29,27,55, + 1069,110,80,81,111,1127,61,1222,1128,1281, + 1268,2690,61,1370,1326,1412,1411,3284,1450,2791, + 168,3511,3619,3599,1053,513,2048,3024,384,416, + 78,4787,3396,38,945,36,1021,412,2235,34, + 1025,31,35,30,32,944,261,29,27,55, + 1069,110,80,81,111,1127,101,1222,1128,1281, + 1268,1832,61,1370,1326,1412,1411,2562,1450,2791, + 168,3437,38,945,36,1021,411,2235,34,1025, + 31,35,30,32,944,261,29,27,55,1069, + 110,80,81,111,1127,513,1222,1128,1281,1268, + 1531,4795,1370,1326,1412,1411,1785,1450,2791,168, + 3504,311,1601,523,513,1683,38,1616,382,1021, + 4812,3396,38,945,36,1021,414,2235,34,1025, + 31,35,30,32,944,261,29,27,55,1069, + 110,80,81,111,1127,54,1222,1128,1281,1268, + 398,61,1370,1326,1412,1411,2856,2527,1583,1022, + 3396,38,945,36,1021,3640,2235,34,1025,31, + 35,30,32,944,261,29,27,55,1069,110, + 80,81,111,1127,102,1222,1128,1281,1268,1495, + 3164,1370,1326,1412,2449,3396,38,945,36,1021, + 3518,2235,34,1025,31,35,30,32,944,261, + 29,27,55,1069,110,80,81,111,1127,523, + 1222,1128,1281,1268,385,416,1370,1326,2406,3396, + 38,945,36,1021,3575,2235,34,1025,31,35, + 30,32,944,261,29,27,55,1069,110,80, + 81,111,1127,61,1222,1128,1281,1268,4182,3613, + 1370,2447,3396,38,945,36,1021,3193,2235,34, + 1025,31,35,30,32,944,261,29,27,55, + 1069,110,80,81,111,1127,138,1222,1128,1281, + 2320,3396,38,945,36,1021,3504,2235,34,1025, + 31,35,30,32,944,261,29,27,55,1069, + 110,80,81,111,1127,3190,1222,1128,1281,2354, + 3478,38,1616,382,1021,2561,3439,2044,3024,1376, + 387,416,784,236,261,3504,299,2709,2048,424, + 38,1616,382,1021,523,3396,38,945,36,1021, + 273,2235,34,1025,31,35,30,32,944,261, + 29,27,55,1069,110,80,81,111,1127,273, + 1222,1128,2018,1875,347,183,3396,38,945,36, + 1021,231,2235,34,1025,31,35,30,32,944, + 261,29,27,55,1069,110,80,81,111,1127, + 3041,1222,1128,2042,323,2440,2130,334,234,229, + 230,1088,2048,274,774,38,1616,382,1021,774, + 38,1616,382,1021,340,510,38,440,774,38, + 290,4807,2859,2066,3074,159,241,244,247,250, + 3414,3674,1564,3075,54,524,1799,72,612,37, + 774,38,290,77,61,386,416,1583,665,4086, + 3218,3235,3093,2913,2995,2999,3191,4357,3396,38, + 945,36,1021,3658,2235,34,1025,31,35,30, + 32,944,261,29,27,55,1069,110,80,81, + 111,1127,2294,1222,1128,2092,3396,38,945,36, + 1021,1093,2235,34,1025,31,35,30,32,944, + 261,29,27,55,1069,110,80,81,111,1127, + 3624,1222,1128,2093,1429,38,945,36,1021,4300, + 4694,34,1025,31,35,336,32,3396,38,945, + 36,1021,3808,2235,34,1025,31,35,30,32, + 944,261,29,27,55,1069,110,80,81,111, + 1127,2059,1222,2220,1859,352,877,443,1594,1088, + 3627,508,520,2440,3207,2440,531,93,3581,2993, + 106,317,2457,319,429,784,312,1912,433,3301, + 3320,348,2644,159,2644,774,38,1616,382,1021, + 3756,3110,3079,2993,201,1997,2703,38,945,36, + 1021,4644,4694,34,1025,31,35,336,32,341, + 1697,1678,346,329,1351,420,2048,3100,3396,38, + 945,36,1021,3048,2235,34,1025,31,35,30, + 32,944,261,29,27,55,1069,110,80,81, + 111,1127,61,1222,2232,512,2766,1332,2434,3548, + 356,71,492,317,2457,319,3574,784,312,1912, + 1772,2965,875,348,3582,2458,2872,2880,774,38, + 1616,382,1021,3094,2978,38,945,36,1021,4300, + 4694,34,1025,31,35,336,32,489,491,2048, + 362,341,1697,1678,346,326,332,3643,423,1936, + 3396,38,945,36,1021,2048,2235,34,1025,31, + 35,30,32,944,261,29,27,55,1069,110, + 80,81,111,1127,70,1841,1564,165,3253,2764, + 61,317,2457,319,3504,3422,312,1912,3642,61, + 69,348,246,3192,1088,774,38,1616,382,1021, + 684,515,1466,38,3228,36,1021,4309,4740,34, + 1025,31,35,336,32,3202,38,279,1721,341, + 1697,1678,346,699,199,273,3696,516,3396,38, + 945,36,1021,1399,2235,34,1025,31,35,30, + 32,944,261,29,27,55,1069,110,80,81, + 111,1127,3504,1842,2048,348,513,329,177,317, + 2457,319,4832,526,312,1912,1123,3199,38,388, + 3613,1742,3460,2177,434,1653,2440,4273,1088,1669, + 1077,4719,228,341,1697,1678,346,159,337,1961, + 297,339,198,4544,231,228,1,2455,184,351, + 3504,526,159,4621,204,215,520,212,203,213, + 214,216,1277,3504,173,1533,4529,1028,399,1778, + 228,243,229,230,2788,159,514,187,171,172, + 174,175,176,177,178,2455,184,400,1783,2952, + 202,4621,204,215,3641,212,203,213,214,216, + 61,3780,173,200,3103,2440,4142,598,38,440, + 185,407,3244,4807,2048,188,171,172,174,175, + 176,177,178,969,340,2903,231,3398,526,1573, + 231,2003,1837,38,945,36,1021,4309,4740,34, + 1025,31,35,336,32,1033,2048,228,2868,60, + 526,3565,159,246,229,230,2440,249,229,230, + 1702,3615,166,3042,2048,1653,2440,1418,3580,340, + 3661,4719,984,3207,159,228,238,261,401,404, + 3682,59,2976,2048,1321,228,419,329,3504,317, + 2457,319,3606,2868,312,1912,4621,206,215,320, + 212,205,213,214,216,1287,4621,206,215,2056, + 212,205,213,214,216,61,61,207,105,2952, + 2440,3081,329,4544,231,3413,3696,207,221,2952, + 217,208,209,210,211,291,292,293,294,340, + 217,208,209,210,211,291,292,293,294,3696, + 3699,239,229,230,306,2440,4239,2906,1178,3733, + 61,2644,1418,2868,2440,1498,4239,3156,3207,1573, + 437,3301,3320,3118,228,1712,3725,774,38,1616, + 382,1021,3692,228,3653,774,38,1616,382,1021, + 304,3747,3202,38,277,4621,206,215,3167,212, + 205,213,214,216,4621,206,215,54,212,205, + 213,214,216,296,1419,54,207,329,2952,2224, + 1583,2857,231,3136,1088,207,418,2952,51,217, + 208,209,210,211,291,292,293,294,217,208, + 209,210,211,291,292,293,294,3212,159,252, + 229,230,3714,3548,875,4239,3179,1131,1635,774, + 38,1616,382,1021,4239,3742,3396,38,1670,1659, + 1021,3759,2235,34,1025,31,35,30,32,944, + 261,29,27,55,1069,110,80,81,88,422, + 3752,3396,38,945,36,1021,37,2235,34,1025, + 31,35,30,32,944,261,29,27,55,1069, + 110,80,81,111,1884,3396,38,945,36,1021, + 3754,2235,34,1025,31,35,30,32,944,261, + 29,27,55,1069,110,80,81,111,1970,3396, + 38,945,36,1021,3729,2235,34,1025,31,35, + 30,32,944,261,29,27,55,1069,110,80, + 81,111,2004,1549,38,945,36,1021,3745,4740, + 34,1025,31,35,336,32,774,38,1616,382, + 1021,2455,2048,3504,1620,38,2699,1531,1021,3504, + 4658,61,1564,2049,3004,265,3091,2048,3613,3758, + 526,774,38,1616,382,1021,421,2502,3486,862, + 38,1616,382,1021,54,2996,434,2373,330,228, + 317,2457,319,3520,159,313,1912,1583,1003,303, + 348,439,438,353,2455,184,3766,3504,526,54, + 4621,204,215,1418,212,203,213,214,216,3207, + 1491,173,1583,2776,513,2688,3613,228,343,1697, + 1678,346,159,1143,3650,171,172,174,175,176, + 177,178,2455,184,3770,1701,61,3634,4621,204, + 215,3180,212,203,213,214,216,441,61,173, + 1953,1576,526,3189,1525,1088,1088,3772,4242,3776, + 2048,3639,180,171,172,174,175,176,177,178, + 518,228,372,2528,284,321,159,348,2054,159, + 164,3181,520,61,3207,529,2455,184,1088,166, + 526,2048,4621,204,215,3419,212,203,213,214, + 216,1198,3018,173,1997,341,1697,1678,346,228, + 61,3504,3759,1936,159,4327,191,171,172,174, + 175,176,177,178,2455,184,3517,2048,3803,3804, + 4621,204,215,330,212,203,213,214,216,617, + 98,173,2049,3004,526,348,3199,38,388,3760, + 1367,302,3689,3483,3711,171,172,174,175,176, + 177,178,3555,228,2000,3574,3793,89,159,1088, + 3237,2772,2048,343,1697,1678,346,705,2455,184, + 611,3764,526,3794,4621,204,215,2963,212,203, + 213,214,216,159,61,173,3807,61,3792,2440, + 3809,228,2440,166,331,332,159,3609,194,171, + 172,174,175,176,177,178,2455,184,340,3504, + 3216,340,4621,204,215,2440,212,203,213,214, + 216,793,1576,173,3726,1576,526,1088,1576,2804, + 1088,2053,2868,1088,2644,2868,190,171,172,174, + 175,176,177,178,1755,228,3670,1798,5373,4072, + 159,164,2048,284,164,5373,4070,164,61,881, + 2455,184,3696,960,526,2048,4621,204,215,5373, + 212,203,213,214,216,5373,3504,173,5373,2048, + 1998,3018,3504,228,2271,2048,5373,2950,159,1088, + 197,171,172,174,175,176,177,178,2455,184, + 3428,5373,356,5373,4621,204,215,5373,212,203, + 213,214,216,159,374,173,298,3412,2872,2880, + 3762,1592,195,2494,3044,5373,295,3076,196,171, + 172,174,175,176,177,178,3396,38,945,36, + 1021,5373,2235,34,1025,31,35,30,32,944, + 261,29,27,55,1069,110,80,81,89,3396, + 38,945,36,1021,5373,2235,34,1025,31,35, + 30,32,944,261,29,27,55,1069,110,80, + 81,87,3396,38,945,36,1021,5373,2235,34, + 1025,31,35,30,32,944,261,29,27,55, + 1069,110,80,81,86,3396,38,945,36,1021, + 5373,2235,34,1025,31,35,30,32,944,261, + 29,27,55,1069,110,80,81,85,3396,38, + 945,36,1021,5373,2235,34,1025,31,35,30, + 32,944,261,29,27,55,1069,110,80,81, + 84,3396,38,945,36,1021,5373,2235,34,1025, + 31,35,30,32,944,261,29,27,55,1069, + 110,80,81,83,3396,38,945,36,1021,5373, + 2235,34,1025,31,35,30,32,944,261,29, + 27,55,1069,110,80,81,82,3269,38,945, + 36,1021,5373,2235,34,1025,31,35,30,32, + 944,261,29,27,55,1069,110,80,81,108, + 3396,38,945,36,1021,5373,2235,34,1025,31, + 35,30,32,944,261,29,27,55,1069,110, + 80,81,113,3396,38,945,36,1021,1779,2235, + 34,1025,31,35,30,32,944,261,29,27, + 55,1069,110,80,81,112,3396,38,945,36, + 1021,5373,2235,34,1025,31,35,30,32,944, + 261,29,27,55,1069,110,80,81,109,3783, + 2048,2048,2077,5373,2440,1997,5373,1088,3168,5373, + 1997,5373,5373,2440,1576,61,3671,5373,5373,1088, + 2440,2440,377,228,5373,5373,774,38,1616,382, + 1021,159,228,1576,5373,3701,3739,5373,1088,340, + 2644,166,5373,164,4621,206,215,5373,212,205, + 213,214,216,4621,206,215,54,212,205,213, + 214,216,164,2868,5373,207,3574,2952,2364,1583, + 3222,3574,3817,1088,207,2146,2952,2440,486,208, + 209,210,211,291,292,293,294,508,208,209, + 210,211,291,292,293,294,228,159,774,38, + 1616,382,1021,5373,4071,328,332,2532,492,1997, + 2182,332,1997,3113,5373,3852,5373,4621,206,215, + 2440,212,205,213,214,216,5373,5373,54,5373, + 5373,5373,3427,950,38,1616,382,1021,207,228, + 2952,1583,1022,489,491,774,38,1616,382,1021, + 5373,305,208,209,210,211,291,292,293,294, + 4621,206,215,54,212,205,213,214,216,3649, + 3574,5373,2781,3574,2440,54,1583,1083,3207,5373, + 5373,207,5373,2952,3623,5373,5373,2459,1583,889, + 5373,5373,5373,228,509,208,209,210,211,291, + 292,293,294,774,38,1616,382,1021,5373,2271, + 332,5373,2860,332,4621,206,215,5373,212,205, + 213,214,216,5373,5373,5373,5373,4242,5373,5373, + 1418,5373,5373,54,5373,207,3207,2952,5373,1418, + 5373,5373,5373,5373,5373,3207,1583,2621,218,208, + 209,210,211,291,292,293,294,3185,38,945, + 36,1021,4309,4694,34,1025,31,35,336,32, + 2970,38,3228,36,1021,4309,4694,34,1025,31, + 35,336,32,5373,5373,329,5373,3542,38,1616, + 382,1021,5373,3439,329,1686,38,1616,382,1021, + 237,261,1161,5373,5373,5373,2411,526,5373,100, + 5373,1088,5373,2458,317,2457,319,273,1088,312, + 1912,3393,5373,5373,5373,54,340,317,2457,319, + 4608,159,312,1912,2056,159,5373,5373,1583,2387, + 5373,192,159,5373,5373,2746,5373,1669,231,1143, + 4515,5373,2819,5373,5373,5373,5373,1478,38,945, + 36,1021,4309,4694,34,1025,31,35,336,32, + 5373,5373,5373,1097,5373,235,229,230,526,306, + 274,1478,38,945,36,1021,4309,4694,34,1025, + 31,35,336,32,5373,5373,2505,340,3118,5373, + 5373,1088,159,242,245,248,251,3414,5373,3653, + 5373,5373,1277,1799,317,2457,319,3561,5373,312, + 1912,2868,5373,5373,5373,159,5373,5373,5373,408, + 3244,5373,5373,1549,2056,2835,5373,5373,317,2457, + 319,5373,5373,312,1912,1478,38,945,36,1021, + 4309,4694,34,1025,31,35,336,32,3094,3114, + 38,945,36,1021,2882,4694,34,1025,31,35, + 336,32,5373,5373,1690,38,945,36,1021,307, + 4740,34,1025,31,35,336,32,5373,5373,5373, + 5373,2552,5373,5373,5373,5373,1088,5373,5373,395, + 5373,5373,317,2457,319,5373,5373,312,1912,5373, + 5373,5373,5373,5373,5373,5373,314,3206,319,1659, + 159,5373,3668,5373,2440,4273,5373,5373,5373,330, + 2098,317,2457,319,5373,5373,315,1912,1690,38, + 945,36,1021,228,4740,34,1025,31,35,336, + 32,1816,38,945,36,1021,3062,4694,34,1025, + 31,35,336,32,4529,1028,399,5373,5373,5373, + 5373,5373,5373,5373,1594,5373,5373,5373,5373,2440, + 3207,5373,5373,5373,5373,400,5373,2952,1809,38, + 1616,382,1021,330,5373,317,2457,319,2644,5373, + 313,1912,5373,862,38,1616,382,1021,314,3206, + 319,5373,1918,5373,5373,61,1225,5373,54,5373, + 2440,526,5373,2903,3123,38,1616,382,1021,329, + 5373,1583,52,54,5373,5373,5373,5373,5373,340, + 340,5373,2895,5373,5373,159,1583,52,5373,3123, + 38,1616,382,1021,54,192,5373,2052,950,38, + 1616,382,1021,2868,4515,3393,356,1583,2640,5373, + 3123,38,1616,382,1021,496,401,403,2875,54, + 5373,2458,2872,2880,5373,5373,5373,5373,54,5373, + 5373,5373,1583,52,5373,5373,5373,667,5373,2951, + 54,1583,52,2715,1918,3123,38,1616,382,1021, + 5373,5373,948,1583,2722,5373,5373,3123,38,1616, + 382,1021,5373,5373,2875,3123,38,1616,382,1021, + 5373,3597,5373,5373,5373,54,5373,3123,38,1616, + 382,1021,3519,38,1616,382,1021,54,1583,52, + 5373,5373,3515,61,5373,54,5373,2440,2440,2798, + 1583,52,3688,38,1616,382,1021,54,1583,52, + 1289,3289,54,61,5373,526,340,340,2440,3406, + 1583,52,5373,5373,5373,1583,52,519,2599,5373, + 5373,3431,54,1088,340,5373,2548,340,5373,159, + 2868,2868,5373,5373,5373,1583,52,5373,5373,192, + 5373,5373,522,494,5373,5373,2570,159,4515,5373, + 5373,2868,5373,5373,5373,5373,5373,3765,5373,5373, + 5373,5373,5373,523,5373,5373,5373,5373,5373,5373, + 5373,5373,5373,5373,5373,5373,5373,5373,5373,5373, + 5373,5373,5373,5373,5373,5373,5373,5373,5373,5373, + 5373,5373,5373,5373,5373,5373,5373,5373,5373,5373, + 5373,5373,5373,5373,5373,5373,5373,5373,5373,5373, + 5373,5373,5373,5373,5373,3642,5373,5373,5373,5373, + 5373,5373,5373,5373,5373,5373,5373,5373,5373,5373, + 5373,5373,5373,5373,5373,5373,5373,5373,5373,5373, + 5373,5373,5373,5373,5373,5373,5373,5373,5373,5373, + 5373,5373,5373,5373,5373,5373,5373,5373,5373,5373, + 5373,5373,5373,5373,5373,5373,5373,5373,5373,3505, + 5373,0,5391,42,0,5390,42,0,160,525, + 0,500,33,0,441,606,0,41,5391,0, + 41,5390,0,129,2588,0,1,431,0,42, + 5391,0,42,5390,0,445,1058,0,444,1377, + 0,500,44,0,2869,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, + 934,0,1,5645,0,1,5644,0,1,5643, + 0,1,5642,0,1,5641,0,1,5640,0, + 1,5639,0,1,5638,0,1,5637,0,1, + 5636,0,1,5635,0,1,5391,42,0,1, + 5390,42,0,1,895,0,5606,240,0,5605, + 240,0,5708,240,0,5707,240,0,5633,240, + 0,5632,240,0,5631,240,0,5630,240,0, + 5629,240,0,5628,240,0,5627,240,0,5626, + 240,0,5645,240,0,5644,240,0,5643,240, + 0,5642,240,0,5641,240,0,5640,240,0, + 5639,240,0,5638,240,0,5637,240,0,5636, + 240,0,5635,240,0,42,240,5391,0,42, + 240,5390,0,240,5414,0,53,5391,0,53, + 5390,0,48,5412,0,48,40,0,5391,53, + 0,5390,53,0,131,2588,0,130,2588,0, + 236,3521,0,30,507,0,5700,432,0,1306, + 432,0,1,96,0,52,40,0,1,5414, + 0,1,42,0,227,1,5414,0,227,1, + 42,0,227,406,0,40,5391,0,40,5390, + 0,5412,50,0,50,40,0,5391,39,0, + 5390,39,0,40,5391,2,0,40,5390,2, + 0,5383,397,0,5382,397,0,1,4451,0, + 1,2520,0,1,2539,0,227,405,0,5700, + 99,0,1306,99,0,1955,316,0,1,5700, + 0,1,1306,0,278,3705,0,1,778,0, + 1,2947,0,5381,1,0,488,4078,0,227, + 1,0,227,1,3445,0,5383,227,0,5382, + 227,0,3637,227,0,160,179,0,8,10, + 0,227,167,0,227,220,0,227,219,0, + 189,3647,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1122,415 +1098,400 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 10,11,12,13,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,28,29, 30,31,32,33,34,35,36,37,38,39, - 40,41,42,43,44,45,46,47,48,49, - 50,51,52,53,54,55,56,0,58,0, - 60,61,62,63,64,65,0,67,68,0, - 1,2,72,4,74,0,76,77,78,79, + 40,41,42,43,44,45,46,47,48,0, + 50,51,52,53,54,55,56,57,58,59, + 0,61,62,63,64,65,66,0,68,0, + 1,2,72,6,74,75,7,77,78,79, 80,81,0,83,84,85,86,87,0,1, 2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19,20,21, 22,23,24,25,26,27,28,29,30,31, 32,33,34,35,36,37,38,39,40,41, - 42,43,44,45,46,47,48,49,50,51, - 52,53,54,55,56,70,58,0,60,61, - 62,63,64,65,0,67,68,0,0,100, - 72,95,74,6,76,77,78,79,80,81, - 0,83,84,85,86,87,0,1,2,3, + 42,43,44,45,46,47,48,0,50,51, + 52,53,54,55,56,57,58,59,99,61, + 62,63,64,65,66,0,68,0,91,92, + 72,6,74,75,0,77,78,79,80,81, + 6,83,84,85,86,87,0,1,2,3, 4,5,6,7,8,9,10,11,12,13, 14,15,16,17,18,19,20,21,22,23, 24,25,26,27,28,29,30,31,32,33, 34,35,36,37,38,39,40,41,42,43, - 44,45,46,47,48,49,50,51,52,53, - 54,55,56,0,58,0,60,61,62,63, - 64,65,9,67,68,0,88,89,91,92, - 74,6,76,77,78,79,80,81,0,83, + 44,45,46,47,48,0,50,51,52,53, + 54,55,56,57,58,59,99,61,62,63, + 64,65,66,0,68,0,91,92,0,6, + 74,75,0,77,78,79,80,81,101,83, 84,85,86,87,0,1,2,3,4,5, 6,7,8,9,10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25, 26,27,28,29,30,31,32,33,34,35, 36,37,38,39,40,41,42,43,44,45, - 46,47,48,49,50,51,52,53,54,55, - 56,0,58,0,60,61,62,63,64,65, - 95,67,68,0,0,0,91,92,74,6, - 76,77,78,79,80,81,12,83,84,85, + 46,47,48,0,50,51,52,53,54,55, + 56,57,58,59,0,61,62,63,64,65, + 66,0,68,0,91,92,88,89,74,75, + 95,77,78,79,80,81,0,83,84,85, 86,87,0,1,2,3,4,5,6,7, 8,9,10,11,12,13,14,15,16,17, 18,19,20,21,22,23,24,25,26,27, 28,29,30,31,32,33,34,35,36,37, 38,39,40,41,42,43,44,45,46,47, - 48,49,50,51,52,53,54,55,56,75, - 58,0,60,61,62,63,64,65,95,67, - 68,10,11,0,91,92,74,4,76,77, - 78,79,80,81,99,83,84,85,86,87, + 48,70,50,51,52,53,54,55,56,57, + 58,59,0,61,62,63,64,65,66,73, + 68,97,98,0,1,2,74,75,5,77, + 78,79,80,81,101,83,84,85,86,87, 0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,28,29, 30,31,32,33,34,35,36,37,38,39, - 40,41,42,43,44,45,46,47,48,49, - 50,51,52,53,54,55,56,0,58,0, - 60,61,62,63,64,65,0,67,68,3, - 0,1,2,0,74,5,76,77,78,79, + 40,41,42,43,44,45,46,47,48,0, + 50,51,52,53,54,55,56,57,58,59, + 0,61,62,63,64,65,66,0,68,0, + 1,2,0,4,74,75,4,77,78,79, 80,81,0,83,84,85,86,87,0,1, 2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19,20,21, 22,23,24,25,26,27,28,29,30,31, 32,33,34,35,36,37,38,39,40,41, - 42,43,44,45,46,47,48,49,50,51, - 52,53,54,55,56,0,58,74,60,61, - 62,63,64,65,0,67,68,0,1,2, - 0,4,74,0,76,77,78,79,80,81, + 42,43,44,45,46,47,48,70,50,51, + 52,53,54,55,56,57,58,59,0,61, + 62,63,64,65,66,73,68,0,1,2, + 0,4,74,75,0,77,78,79,80,81, 0,83,84,85,86,87,0,1,2,3, 4,5,6,7,8,9,10,11,12,13, 14,15,16,17,18,19,20,21,22,23, 24,25,26,27,28,29,30,31,32,33, 34,35,36,37,38,39,40,41,42,43, - 44,45,46,47,48,49,50,51,52,53, - 54,55,56,70,58,0,60,61,62,63, - 64,65,0,67,68,0,1,2,88,89, - 74,0,76,77,78,79,80,81,0,83, + 44,45,46,47,48,0,50,51,52,53, + 54,55,56,57,58,59,0,61,62,63, + 64,65,66,0,68,75,10,11,88,89, + 74,75,0,77,78,79,80,81,0,83, 84,85,86,87,0,1,2,3,4,5, 6,7,8,9,10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25, 26,27,28,29,30,31,32,33,34,35, 36,37,38,39,40,41,42,43,44,45, - 46,47,48,49,50,51,52,53,54,55, - 56,70,58,0,60,61,62,63,64,65, - 0,67,68,3,0,0,1,2,74,0, - 76,77,78,79,80,81,12,83,84,85, + 46,47,48,70,50,51,52,53,54,55, + 56,57,58,59,0,61,62,63,64,65, + 66,73,68,0,1,2,0,0,74,75, + 3,77,78,79,80,81,0,83,84,85, 86,87,0,1,2,3,4,5,6,7, 8,9,10,11,12,13,14,15,16,17, 18,19,20,21,22,23,24,25,26,27, 28,29,30,31,32,33,34,35,36,37, 38,39,40,41,42,43,44,45,46,47, - 48,49,50,51,52,53,54,55,56,75, - 58,0,60,61,62,63,64,65,0,67, - 68,0,0,0,1,2,74,0,76,77, - 78,79,80,81,12,83,84,85,86,87, + 48,0,50,51,52,53,54,55,56,57, + 58,59,0,61,62,63,64,65,66,0, + 68,0,1,2,88,89,74,75,9,77, + 78,79,80,81,0,83,84,85,86,87, 0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,28,29, 30,31,32,33,34,35,36,37,38,39, - 40,41,42,43,44,45,46,47,48,49, - 50,51,52,53,54,55,56,0,58,0, - 60,61,62,63,64,65,0,67,68,88, - 89,0,0,0,74,4,76,77,78,79, + 40,41,42,43,44,45,46,47,48,0, + 50,51,52,53,54,55,56,57,58,59, + 0,61,62,63,64,65,66,73,68,0, + 1,2,100,0,74,75,3,77,78,79, 80,81,0,83,84,85,86,87,0,1, - 2,3,4,5,6,7,8,115,10,11, - 12,13,14,44,0,0,47,48,49,50, - 51,52,53,54,55,56,44,58,47,47, - 48,49,50,51,52,53,54,55,56,0, - 58,0,44,45,3,47,48,49,50,51, - 52,53,54,55,56,0,58,59,66,61, - 0,1,2,8,66,5,99,69,70,71, - 72,73,74,75,0,1,2,3,4,5, - 6,7,8,69,70,0,88,89,90,91, - 92,93,94,95,96,97,98,99,100,101, - 102,103,104,105,106,107,108,109,110,111, - 112,113,114,115,116,76,101,57,120,0, + 2,3,4,5,6,7,8,9,10,11, + 12,13,14,15,16,17,18,19,20,21, + 22,23,24,25,26,27,28,29,30,31, + 32,33,34,35,36,37,38,39,40,41, + 42,43,44,45,46,47,48,0,50,51, + 52,53,54,55,56,57,58,59,0,61, + 62,63,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,22,0,24,25,26,27, + 28,29,30,31,32,33,34,35,36,37, + 38,39,40,41,42,43,44,60,46,47, + 48,119,50,51,52,53,54,55,56,57, + 58,59,0,61,62,63,0,1,2,3, + 4,5,6,7,8,9,10,11,12,13, + 14,15,16,17,18,19,20,21,22,0, + 24,25,26,27,28,29,30,31,32,33, + 34,35,36,37,38,39,40,41,42,43, + 44,49,46,47,48,0,50,51,52,53, + 54,55,56,57,58,59,0,61,62,63, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,0,24,25,26,27,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,43,44,60,46,47,48,0, + 50,51,52,53,54,55,56,57,58,59, + 0,61,62,63,0,1,2,3,4,5, + 6,7,8,9,10,11,12,13,14,15, + 16,17,18,19,20,21,22,0,24,25, + 26,27,28,29,30,31,32,33,34,35, + 36,37,38,39,40,41,42,43,44,60, + 46,47,48,0,50,51,52,53,54,55, + 56,57,58,59,0,61,62,63,0,1, + 2,3,4,5,6,7,8,9,10,11, + 12,13,14,15,16,17,18,19,20,21, + 22,0,24,25,26,27,28,29,30,31, + 32,33,34,35,36,37,38,39,40,41, + 42,43,44,60,46,47,48,0,50,51, + 52,53,54,55,56,57,58,59,0,61, + 62,63,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,22,0,24,25,26,27, + 28,29,30,31,32,33,34,35,36,37, + 38,39,40,41,0,0,44,60,0,47, + 48,0,50,51,52,53,54,55,56,57, + 58,59,0,61,62,63,0,0,0,3, + 8,4,6,6,8,8,10,11,0,1, + 2,3,4,5,6,7,8,0,90,23, + 24,25,44,0,96,47,48,4,50,51, + 52,53,54,55,56,57,58,0,1,2, + 0,45,5,69,7,0,1,2,3,4, + 5,6,7,8,0,100,60,0,1,2, + 3,4,5,67,7,69,70,71,72,73, + 0,73,76,3,0,67,0,1,2,71, + 4,5,65,7,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,71,0,117,118,119,0,121,73,3, + 10,11,6,69,8,49,10,11,0,1, + 2,3,4,5,6,7,8,67,0,23, + 24,25,102,0,104,105,106,107,108,109, + 110,111,112,113,0,0,44,117,4,47, + 48,45,50,51,52,53,54,55,56,57, + 58,97,98,0,1,2,60,4,23,6, + 0,8,0,67,41,69,70,71,72,73, + 10,11,76,0,0,67,23,3,60,0, + 1,2,0,4,88,89,90,91,92,93, + 94,95,96,97,98,99,100,101,102,103, + 104,105,106,107,108,109,110,111,112,113, + 0,76,0,117,118,119,4,121,0,1, + 2,3,4,5,6,7,8,9,49,76, + 12,13,14,15,16,17,18,19,20,21, + 22,23,0,1,2,0,1,2,95,0, + 1,2,3,4,5,6,7,8,0,47, + 0,3,44,45,46,47,48,49,50,51, + 52,53,54,55,56,57,58,59,0,61, + 62,63,64,23,42,43,0,42,43,3, + 72,73,0,1,2,0,4,5,3,7, + 82,0,1,2,3,4,5,6,7,8, + 9,0,0,12,13,14,15,16,17,18, + 19,20,21,22,23,67,114,115,116,119, + 70,0,114,115,116,4,76,0,0,0, + 0,49,0,4,0,44,45,46,47,48, + 49,50,51,52,53,54,55,56,57,58, + 59,23,61,62,63,64,71,23,0,1, + 2,60,60,72,73,0,1,2,3,4, + 5,44,7,82,47,48,47,50,51,52, + 53,54,55,56,57,58,0,1,2,3, + 4,5,6,7,8,0,1,2,70,4, + 72,6,70,8,0,114,115,116,0,1, + 2,3,4,5,6,7,8,9,10,11, + 12,13,14,15,16,17,18,19,20,21, + 22,23,24,25,26,27,28,29,30,31, + 32,33,34,35,36,37,38,39,40,41, + 42,43,118,45,46,0,1,2,3,4, + 5,6,7,8,9,10,11,12,13,14, + 15,16,17,18,19,20,21,22,23,24, + 25,26,27,28,29,30,31,32,33,34, + 35,36,37,38,39,40,41,42,43,95, + 45,46,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 28,29,30,31,32,33,34,35,36,37, + 38,39,40,41,42,43,0,45,46,0, 1,2,3,4,5,6,7,8,9,10, 11,12,13,14,15,16,17,18,19,20, 21,22,23,24,25,26,27,28,29,30, 31,32,33,34,35,36,37,38,39,40, - 41,42,43,44,45,46,47,48,49,50, - 51,52,53,54,55,56,0,58,0,60, - 4,62,63,64,0,1,2,3,4,5, - 6,7,8,9,10,11,0,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,28,29,30,31,32,33,34,35, - 36,37,38,39,40,41,42,43,44,0, - 46,47,48,49,50,51,52,53,54,55, - 56,0,58,0,60,4,62,63,64,0, - 1,2,3,4,5,6,7,8,9,10, - 11,0,13,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,29,30, - 31,32,33,34,35,36,37,38,39,40, - 41,42,43,44,116,46,47,48,49,50, - 51,52,53,54,55,56,0,58,0,60, - 0,62,63,64,0,1,2,3,4,5, - 6,7,8,9,10,11,0,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,28,29,30,31,32,33,34,35, - 36,37,38,39,40,41,42,43,44,116, - 46,47,48,49,50,51,52,53,54,55, - 56,0,58,0,60,69,62,63,64,0, - 1,2,3,4,5,6,7,8,9,10, - 11,0,13,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,29,30, - 31,32,33,34,35,36,37,38,39,40, - 41,42,43,44,0,46,47,48,49,50, - 51,52,53,54,55,56,0,58,0,60, - 69,62,63,64,0,1,2,3,4,5, - 6,7,8,9,10,11,0,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,28,29,30,31,32,33,34,35, - 36,37,38,39,40,41,42,43,44,0, - 46,47,48,49,50,51,52,53,54,55, - 56,0,58,0,60,69,62,63,64,0, - 1,2,3,4,5,6,7,8,9,10, - 11,0,13,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,29,30, - 31,32,33,34,35,36,37,38,39,40, - 41,0,0,44,3,0,47,48,49,50, - 51,52,53,54,55,56,0,58,0,60, - 0,62,63,64,0,0,0,3,12,4, - 6,6,8,8,10,11,12,13,14,88, - 89,15,16,17,18,19,20,21,22,23, - 24,25,0,0,1,2,3,4,5,57, - 7,0,1,2,59,12,5,66,7,45, - 44,100,0,47,48,49,50,51,52,53, - 54,55,56,59,58,0,1,2,0,4, - 66,75,4,69,70,71,72,73,45,75, - 0,1,2,3,4,5,6,7,8,57, - 0,95,88,89,90,91,92,93,94,95, - 96,97,98,99,100,101,102,103,104,105, - 106,107,108,109,110,111,112,113,114,115, - 116,0,0,71,120,3,61,59,6,8, - 8,0,10,11,12,13,14,0,1,2, - 3,4,5,6,7,8,66,0,0,1, - 2,71,4,5,102,7,104,105,106,107, - 108,109,110,111,112,113,114,45,0,1, - 2,3,4,5,6,7,8,0,0,1, - 2,59,4,6,6,0,8,0,66,0, - 12,69,70,71,72,73,0,75,0,1, - 2,0,4,66,6,57,8,117,118,119, - 88,89,90,91,92,93,94,95,96,97, - 98,99,100,101,102,103,104,105,106,107, - 108,109,110,111,112,113,114,115,116,0, - 0,73,120,0,1,2,3,4,5,6, - 7,8,9,75,69,12,69,70,15,16, - 17,18,19,20,21,22,23,24,25,0, - 1,2,71,95,0,1,2,3,4,5, - 6,7,8,0,1,2,0,44,45,46, - 47,48,49,50,51,52,53,54,55,56, - 57,58,0,60,0,62,63,64,65,69, - 70,42,43,0,0,72,73,0,1,2, - 3,4,5,0,7,82,0,1,2,3, - 4,5,6,7,8,9,97,98,12,0, - 57,15,16,17,18,19,20,21,22,23, - 24,25,0,1,2,3,4,5,0,7, - 117,118,119,0,12,0,1,2,66,4, - 44,45,46,47,48,49,50,51,52,53, - 54,55,56,57,58,0,60,73,62,63, - 64,65,69,0,1,2,57,45,72,73, - 7,97,98,90,0,1,2,44,82,96, - 47,48,49,50,51,52,53,54,55,56, - 0,58,57,3,0,1,2,3,4,71, - 6,0,8,0,1,2,3,4,5,0, - 7,10,11,117,118,119,0,1,2,3, + 41,42,43,0,48,46,50,0,0,1, + 2,8,0,0,1,2,3,4,0,6, + 0,8,0,1,2,0,4,5,3,7, + 23,0,0,1,2,76,0,1,2,3, 4,5,6,7,8,9,10,11,12,13, 14,15,16,17,18,19,20,21,22,23, 24,25,26,27,28,29,30,31,32,33, 34,35,36,37,38,39,40,41,42,43, - 66,45,46,0,1,2,3,4,5,6, - 7,8,9,10,11,12,13,14,15,16, - 17,18,19,20,21,22,23,24,25,26, - 27,28,29,30,31,32,33,34,35,36, - 37,38,39,40,41,42,43,0,45,46, - 0,1,2,3,4,5,6,7,8,9, - 10,11,12,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,28,29, - 30,31,32,33,34,35,36,37,38,39, - 40,41,42,43,0,45,46,0,1,2, - 3,4,5,6,7,8,9,10,11,12, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,28,29,30,31,32, - 33,34,35,36,37,38,39,40,41,42, - 43,0,0,46,3,0,0,1,2,0, - 0,0,1,2,3,4,5,0,7,0, - 1,2,3,4,5,0,7,10,11,0, - 1,2,75,0,1,2,3,4,5,6, - 7,8,9,10,11,12,13,14,15,16, - 17,18,19,20,21,22,23,24,25,26, - 27,28,29,30,31,32,33,34,35,36, - 37,38,39,40,41,42,43,66,69,46, - 0,1,2,0,1,2,57,4,5,0, - 7,66,73,88,89,0,0,1,2,3, - 4,5,6,7,8,9,10,11,75,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,29,30,31,32,33, - 34,35,36,37,38,39,40,41,42,43, - 57,61,46,0,1,2,3,4,5,6, - 7,8,9,10,11,66,13,14,15,16, - 17,18,19,20,21,22,23,24,25,26, - 27,28,29,30,31,32,33,34,35,36, - 37,38,39,40,41,42,43,0,0,46, - 0,1,2,3,4,5,6,7,8,9, - 10,11,0,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,28,29, - 30,31,32,33,34,35,36,37,38,39, - 40,41,42,43,0,0,46,0,1,2, - 3,4,5,6,7,8,9,10,11,61, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,28,29,30,31,32, - 33,34,35,36,37,38,39,40,41,42, - 43,0,0,46,0,1,2,3,4,5, - 6,7,8,9,10,11,0,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,28,29,30,31,32,33,34,35, - 36,37,38,39,40,41,42,43,0,1, - 2,0,4,5,0,7,101,3,0,1, - 2,0,1,2,3,4,5,6,7,8, - 9,10,11,69,13,14,15,16,17,18, - 19,20,21,22,23,24,25,26,27,28, - 29,30,31,32,33,34,35,36,37,38, - 39,40,41,42,43,0,0,46,0,1, - 2,3,4,5,6,7,8,9,10,11, - 66,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,36,37,38,39,40,41, - 42,43,0,0,46,0,1,2,3,4, - 5,6,7,8,9,10,11,61,13,14, - 15,16,17,18,19,20,21,22,23,24, - 25,26,27,28,29,30,31,32,33,34, - 35,36,37,38,39,40,41,42,43,0, - 0,46,0,1,2,3,4,5,6,7, - 8,9,10,11,61,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 28,29,30,31,32,33,34,35,36,37, - 38,39,40,41,42,43,0,0,46,0, + 67,49,46,76,0,1,2,69,70,0, 1,2,3,4,5,6,7,8,9,10, - 11,61,13,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,29,30, + 11,12,13,14,15,16,17,18,19,20, + 21,22,76,24,25,26,27,28,29,30, 31,32,33,34,35,36,37,38,39,40, - 41,42,43,0,0,46,0,1,2,3, - 4,5,6,7,8,9,10,11,61,13, - 14,15,16,17,18,19,20,21,22,23, + 41,42,43,49,122,46,0,1,2,3, + 4,5,6,7,8,9,10,11,12,13, + 14,15,16,17,18,19,20,21,22,0, 24,25,26,27,28,29,30,31,32,33, 34,35,36,37,38,39,40,41,42,43, 0,0,46,0,1,2,3,4,5,6, 7,8,9,10,11,12,13,14,15,16, - 17,18,19,20,21,22,23,24,25,26, + 17,18,19,20,21,22,0,24,25,26, 27,28,29,30,31,32,33,34,35,36, - 37,38,39,40,41,44,0,0,47,48, - 49,50,51,52,53,54,55,56,0,58, - 0,0,0,3,61,0,1,2,3,4, - 5,0,7,12,3,72,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,29,30,31,32,33, - 34,35,36,37,38,39,40,41,0,1, - 2,59,4,0,6,0,8,4,0,1, - 2,66,4,72,6,73,8,61,0,1, - 2,0,4,0,6,4,8,4,72,0, - 1,2,3,4,5,6,7,8,9,10, - 11,0,13,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,29,30, - 31,32,33,34,35,36,37,38,39,40, - 41,42,43,0,1,2,3,4,5,6, - 7,8,9,10,11,0,13,14,15,16, - 17,18,19,20,21,22,23,24,25,26, - 27,28,29,30,31,32,33,34,35,36, - 37,38,39,40,41,42,43,0,1,2, + 37,38,39,40,41,42,43,0,69,46, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,0,24,25,26,27,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,43,0,69,46,0,1,2, 3,4,5,6,7,8,9,10,11,12, 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,28,29,30,31,32, - 33,34,35,36,37,38,39,40,0,1, + 0,24,25,26,27,28,29,30,31,32, + 33,34,35,36,37,38,39,40,41,42, + 43,0,69,0,1,2,3,4,5,6, + 7,8,9,10,11,12,13,14,15,16, + 17,18,19,20,21,22,69,24,25,26, + 27,28,29,30,31,32,33,34,35,36, + 37,38,39,40,41,42,43,67,0,46, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,0,24,25,26,27,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,43,0,0,46,0,1,2, + 3,4,5,6,7,8,9,10,11,12, + 13,14,15,16,17,18,19,20,21,22, + 26,24,25,26,27,28,29,30,31,32, + 33,34,35,36,37,38,39,40,41,42, + 43,0,69,46,0,1,2,3,4,5, + 6,7,8,9,10,11,12,13,14,15, + 16,17,18,19,20,21,22,0,24,25, + 26,27,28,29,30,31,32,33,34,35, + 36,37,38,39,40,41,42,43,0,0, + 46,0,1,2,3,4,5,6,7,8, + 9,10,11,12,13,14,15,16,17,18, + 19,20,21,22,73,24,25,26,27,28, + 29,30,31,32,33,34,35,36,37,38, + 39,40,41,42,43,0,69,46,0,1, 2,3,4,5,6,7,8,9,10,11, - 0,13,14,15,16,17,18,19,20,21, + 12,13,14,15,16,17,18,19,20,21, + 22,0,24,25,26,27,28,29,30,31, + 32,33,34,35,36,37,38,39,40,41, + 42,43,0,0,46,0,1,2,3,4, + 5,6,7,8,9,10,11,12,13,14, + 15,16,17,18,19,20,21,22,23,24, + 25,26,27,28,29,30,31,32,33,34, + 35,36,37,38,39,40,41,44,67,0, + 47,48,0,50,51,52,53,54,55,56, + 57,58,0,1,2,3,4,5,0,7, + 65,3,0,1,2,0,4,72,0,1, + 2,3,4,5,6,7,8,9,10,11, + 12,13,14,15,16,17,18,19,20,21, 22,23,24,25,26,27,28,29,30,31, 32,33,34,35,36,37,38,39,40,41, - 0,0,0,3,0,1,2,5,4,5, - 0,7,0,13,14,0,0,0,0,61, + 0,1,2,0,4,0,6,4,8,67, + 0,1,2,0,4,67,6,65,8,90, + 0,1,2,65,4,96,6,0,8,74, + 72,0,1,2,3,4,5,6,7,8, + 9,10,11,12,13,14,15,16,17,18, + 19,20,21,22,49,24,25,26,27,28, + 29,30,31,32,33,34,35,36,37,38, + 39,40,41,42,43,0,1,2,3,4, + 5,6,7,8,9,10,11,12,13,14, + 15,16,17,18,19,20,21,22,71,24, + 25,26,27,28,29,30,31,32,33,34, + 35,36,37,38,39,40,41,42,43,0, + 1,2,3,4,5,6,7,8,9,10, + 11,12,13,14,15,16,17,18,19,20, + 21,22,23,24,25,26,27,28,29,30, + 31,32,33,34,35,36,37,38,39,40, 0,1,2,3,4,5,6,7,8,9, - 10,11,115,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,28,29, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,0,24,25,26,27,28,29, 30,31,32,33,34,35,36,37,38,39, - 40,41,0,0,0,3,66,5,6,59, - 8,0,10,11,3,13,14,0,0,1, - 2,4,70,12,0,1,2,71,71,27, - 0,1,2,0,0,0,6,4,4,0, - 0,1,2,103,42,43,12,0,90,0, - 0,48,49,0,96,0,0,102,0,0, - 120,59,12,59,47,12,42,43,66,114, - 0,69,70,71,0,57,0,66,0,45, - 69,70,0,1,2,0,75,57,12,0, - 88,89,90,91,92,93,94,57,45,97, - 98,99,100,101,102,103,104,105,106,107, - 108,109,110,111,112,113,0,59,59,3, - 70,5,6,70,8,75,10,11,69,13, - 14,0,1,2,117,118,119,59,0,57, - 0,1,2,27,59,90,70,69,72,0, - 12,96,93,94,69,0,121,0,42,43, - 90,12,0,1,2,0,96,12,0,1, - 2,93,94,0,0,59,3,3,93,94, - 0,0,66,45,3,69,70,71,57,0, - 0,26,3,3,45,0,122,57,3,0, - 45,0,0,0,88,89,90,91,92,93, - 94,12,0,97,98,99,100,101,102,103, - 104,105,106,107,108,109,110,111,112,113, - 0,1,2,3,4,5,6,7,8,9, - 10,11,0,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,28,29, - 30,31,32,33,34,35,36,37,38,39, - 40,72,0,71,73,3,73,0,66,0, - 3,0,3,41,0,1,2,3,4,5, - 6,7,8,9,10,11,66,13,14,15, - 16,17,18,19,20,21,22,23,24,25, + 40,41,0,0,0,0,1,2,5,0, + 1,2,3,4,5,0,7,0,1,2, + 3,4,5,0,7,65,0,1,2,0, + 4,5,0,7,0,0,4,118,0,1, + 2,3,4,5,6,7,8,9,10,11, + 12,13,14,15,16,17,18,19,20,21, + 22,59,24,25,26,27,28,29,30,31, + 32,33,34,35,36,37,38,39,40,41, + 0,0,73,3,67,5,6,0,8,0, + 10,11,60,12,13,14,15,16,17,18, + 19,20,21,22,24,25,102,27,73,0, + 0,1,2,0,0,5,3,3,0,1, + 2,117,42,43,6,44,0,0,47,48, + 0,50,51,52,53,54,55,56,57,58, + 60,0,0,114,115,116,4,67,0,69, + 70,71,65,0,1,2,3,4,5,49, + 7,0,0,1,2,0,0,49,88,89, + 90,91,92,93,94,0,23,97,98,99, + 100,101,102,103,104,105,106,107,108,109, + 110,111,112,113,0,0,0,3,45,5, + 6,60,8,0,10,11,0,0,1,2, + 3,4,5,6,7,8,90,90,24,25, + 0,27,96,96,0,1,2,3,4,5, + 23,7,0,1,2,0,42,43,0,1, + 2,0,1,2,69,70,26,23,0,88, + 89,44,45,0,60,0,49,0,23,0, + 3,67,67,69,70,71,60,60,120,45, + 67,64,0,66,0,68,0,3,23,73, + 45,49,88,89,90,91,92,93,94,82, + 49,97,98,99,100,101,102,103,104,105, + 106,107,108,109,110,111,112,113,0,1, + 2,3,4,5,6,7,8,9,10,11, + 12,13,14,15,16,17,18,19,20,21, + 22,76,24,25,26,27,28,29,30,31, + 32,33,34,35,36,37,38,39,40,73, + 95,0,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,22,67,24,25,26,27, + 28,29,30,31,32,33,34,35,36,37, + 38,39,40,41,0,1,2,3,4,5, + 6,7,8,9,10,11,12,13,14,15, + 16,17,18,19,20,21,22,0,24,25, 26,27,28,29,30,31,32,33,34,35, - 36,37,38,39,40,41,0,1,2,3, - 4,5,6,7,8,9,10,11,66,13, - 14,15,16,17,18,19,20,21,22,23, + 36,37,38,39,40,0,1,2,3,4, + 5,6,7,8,9,10,11,12,13,14, + 15,16,17,18,19,20,21,22,0,24, + 25,26,27,28,29,30,31,32,33,34, + 35,36,37,38,39,40,0,1,2,3, + 4,5,6,7,8,9,10,11,12,13, + 14,15,16,17,18,19,20,21,22,0, 24,25,26,27,28,29,30,31,32,33, 34,35,36,37,38,39,40,0,1,2, - 3,4,5,6,7,8,9,10,11,0, + 0,4,0,3,0,0,9,0,4,12, 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,28,29,30,31,32, - 33,34,35,36,37,38,39,40,0,1, - 2,3,4,5,6,7,8,9,10,11, - 0,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,36,37,38,39,40,0, - 1,2,0,4,0,0,0,3,9,3, - 0,9,0,0,15,16,17,18,19,20, - 21,22,23,24,25,0,0,0,0,59, - 3,3,0,0,0,0,0,12,12,0, - 0,0,0,44,4,0,47,48,49,50, - 51,52,53,54,55,56,0,58,0,60, - 0,62,63,64,0,1,2,26,4,67, - 0,59,59,9,4,71,66,0,73,15, - 16,17,18,19,20,21,22,23,24,25, - 0,1,2,3,4,5,6,7,8,59, - 75,75,12,70,59,73,70,73,44,0, - 71,47,48,49,50,51,52,53,54,55, - 56,0,58,0,60,0,62,63,64,59, - 0,0,0,73,44,45,0,1,2,3, - 4,5,6,7,8,0,69,57,12,59, - 0,0,0,3,9,65,0,67,68,3, - 0,0,0,1,2,3,4,5,6,7, - 8,0,82,0,12,0,3,121,3,70, - 44,45,59,0,59,0,3,0,0,59, - 59,59,71,57,0,0,0,9,0,0, - 0,65,57,67,68,60,44,45,72,0, - 1,2,3,4,5,6,7,8,82,57, - 60,12,61,71,73,26,0,65,0,67, - 68,0,0,0,72,0,1,2,3,4, - 5,6,7,8,82,57,0,12,60,0, - 0,0,0,44,45,0,71,0,71,0, - 0,0,0,0,0,0,57,0,0,0, - 0,0,0,0,65,0,67,68,0,44, - 45,72,0,1,2,3,4,5,6,7, - 8,82,57,0,12,0,0,0,0,0, - 65,0,67,68,0,0,0,72,0,1, - 2,3,4,5,6,7,8,82,0,121, - 12,0,0,0,0,0,44,45,0,0, - 0,0,0,0,0,0,0,0,0,57, - 0,0,0,0,0,0,0,65,0,67, - 68,0,44,45,72,0,1,2,3,4, - 5,6,7,8,82,57,0,12,0,0, - 0,0,0,65,0,67,68,0,0,0, - 0,0,1,2,3,4,5,6,7,8, - 82,0,0,12,0,0,0,0,0,44, - 45,0,0,0,0,0,0,0,0,0, - 0,0,57,0,0,0,0,0,0,0, - 65,0,67,68,0,44,45,0,0,0, - 0,0,0,0,0,0,0,82,57,0, - 0,0,0,0,0,0,65,0,67,68, - 0,0,0,0,0,0,0,0,0,0, + 0,1,2,0,24,25,88,89,49,0, + 0,1,2,0,0,0,0,0,0,1, + 2,44,0,0,47,48,23,50,51,52, + 53,54,55,56,57,58,59,23,61,62, + 63,0,1,2,60,4,0,67,45,49, + 9,69,70,12,13,14,15,16,17,18, + 19,20,21,22,0,1,2,3,4,5, + 6,7,8,60,0,65,60,60,0,1, + 2,0,69,103,3,44,69,23,47,48, + 76,50,51,52,53,54,55,56,57,58, + 59,121,61,62,63,0,93,94,44,45, + 93,94,0,49,0,1,2,3,4,5, + 6,7,8,0,1,2,0,49,64,120, + 66,0,68,123,60,9,72,23,0,0, + 0,0,0,69,3,3,82,0,0,1, + 2,3,4,5,6,7,8,0,44,45, + 0,23,23,49,23,60,9,93,94,0, + 0,23,49,0,0,49,3,65,64,9, + 66,0,68,45,45,59,72,0,1,2, + 0,0,44,45,4,0,82,49,0,1, + 2,3,4,5,6,7,8,67,67,70, + 69,70,64,0,66,0,68,76,23,49, + 72,23,0,66,0,0,0,3,0,59, + 82,71,0,1,2,3,4,5,6,7, + 8,67,44,45,0,23,0,49,23,3, + 60,0,71,0,3,23,3,0,0,0, + 3,70,64,0,66,0,68,72,3,0, + 72,0,3,60,3,0,44,45,3,0, + 82,49,0,1,2,3,4,5,6,7, + 8,0,0,0,72,3,64,71,66,71, + 68,76,0,0,72,23,0,0,0,3, + 95,0,0,0,82,71,0,1,2,3, + 4,5,6,7,8,0,44,45,70,0, + 71,49,0,0,71,0,0,0,26,23, + 0,0,0,0,65,0,64,0,66,0, + 68,0,1,2,3,4,5,6,7,8, + 44,45,71,70,82,49,0,65,65,0, + 0,60,0,0,23,0,0,0,0,71, + 64,0,66,0,68,0,0,0,0,0, + 0,0,0,0,0,44,45,0,82,0, + 49,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,64,0,66,0,68, + 0,0,0,0,0,0,0,120,0,0, 0,0,0,82,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0 + 0,0,0,0,0,0 }; }; public final static byte termCheck[] = TermCheck.termCheck; @@ -1538,415 +1499,400 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TermAction { public final static char termAction[] = {0, - 5491,5457,5454,5454,5454,5454,5454,5454,5454,1, - 1,1,5467,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5464,3548,1,1,1, - 1,1,1,1,1,1,1,1,1,139, - 1,1944,1,1,1,2678,363,893,3426,5491, - 5132,5129,5498,5532,2999,162,3533,2897,2241,2807, - 3444,3553,5491,3532,654,3499,3638,3475,8,5476, - 5476,5476,5476,5476,5476,5476,5476,5476,5476,5476, - 5476,5476,5476,5476,5476,5476,5476,5476,5476,5476, - 5476,5476,5476,5476,5476,5476,5476,5476,5476,5476, - 5476,5476,5476,5476,5476,5476,5476,5476,5476,5476, - 5476,5476,5476,5476,5476,5476,5476,5476,5476,5476, - 5476,5476,5476,5476,5476,1380,5476,5491,5476,5476, - 5476,5476,5476,5476,5491,5476,5476,119,125,2368, - 5476,5853,5476,3494,5476,5476,5476,5476,5476,5476, - 5491,5476,5476,5476,5476,5476,5491,5457,5454,5454, - 5454,5454,5454,5454,5454,1,1,1,5461,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,5464,3548,1,1,1,1,1,1,1, - 1,1,1,310,1,1,1,1944,1,1, - 1,2678,5800,893,3426,121,2714,2810,3470,3446, - 2999,3494,3533,2897,2241,2807,3444,3553,5491,3532, - 654,3499,3638,3475,5491,5457,5454,5454,5454,5454, - 5454,5454,5454,1,1,1,5461,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5464, - 3548,1,1,1,1,1,1,1,1,1, - 1,5491,1,1,1,1944,1,1,1,2678, - 5855,893,3426,120,1,137,3470,3446,2999,3494, - 3533,2897,2241,2807,3444,3553,166,3532,654,3499, - 3638,3475,5491,5457,5454,5454,5454,5454,5454,5454, - 5454,1,1,1,5461,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, + 5373,5342,5339,5339,5339,5339,5339,5339,5339,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,5352,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5349,3531,1,1,136, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,2593,561,882,118,3429,41, + 5030,5027,5380,3369,2379,3529,733,2932,2191,2864, + 3437,3425,5373,3527,713,3504,2684,3466,8,5358, + 5358,5358,5358,5358,5358,5358,5358,5358,5358,5358, + 5358,5358,5358,5358,5358,5358,5358,5358,5358,5358, + 5358,5358,5358,5358,5358,5358,5358,5358,5358,5358, + 5358,5358,5358,5358,5358,5358,5358,5358,5358,5358, + 5358,5358,5358,5358,5358,5358,5358,137,5358,5358, + 5358,5358,5358,5358,5358,5358,5358,5358,2349,5358, + 5358,5358,5358,5358,5358,120,5358,140,3345,3321, + 5358,3369,5358,5358,5373,5358,5358,5358,5358,5358, + 1826,5358,5358,5358,5358,5358,5373,5342,5339,5339, + 5339,5339,5339,5339,5339,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5346, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,5349,3531,1,1,5373,1,1,1,1, + 1,1,1,1,1,1,2349,1,1,1, + 2593,561,882,119,3429,354,3345,3321,124,3369, + 2379,3529,5373,2932,2191,2864,3437,3425,2280,3527, + 713,3504,2684,3466,5373,5342,5339,5339,5339,5339, + 5339,5339,5339,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5346,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5464,3548,1, - 1,1,1,1,1,1,1,1,1,166, - 1,122,1,1944,1,1,1,2678,3253,893, - 3426,2973,2892,42,3470,3446,2999,5532,3533,2897, - 2241,2807,3444,3553,2402,3532,654,3499,3638,3475, - 5491,5457,5454,5454,5454,5454,5454,5454,5454,1, - 1,1,5461,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5464,3548,1,1,1, - 1,1,1,1,1,1,1,5491,1,5491, - 1,1944,1,1,1,2678,5491,893,3426,4962, - 5491,5508,5509,1,2999,3029,3533,2897,2241,2807, - 3444,3553,5491,3532,654,3499,3638,3475,5491,5457, - 5454,5454,5454,5454,5454,5454,5454,1,1,1, - 5461,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5464,3548,1,1,1,1,1, - 1,1,1,1,1,5491,1,2212,1,1944, - 1,1,1,2678,5491,893,3426,5491,5132,5129, - 129,5532,2999,512,3533,2897,2241,2807,3444,3553, - 5491,3532,654,3499,3638,3475,5491,5457,5454,5454, - 5454,5454,5454,5454,5454,1,1,1,5461,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,5464,3548,1,1,1,1,1,1,1, - 1,1,1,928,1,5491,1,1944,1,1, - 1,2678,5491,893,3426,5491,5508,5509,2714,2810, - 2999,367,3533,2897,2241,2807,3444,3553,5491,3532, - 654,3499,3638,3475,5491,5457,5454,5454,5454,5454, - 5454,5454,5454,1,1,1,5461,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5464, - 3548,1,1,1,1,1,1,1,1,1, - 1,3551,1,5491,1,1944,1,1,1,2678, - 5491,893,3426,2518,5491,5491,5324,5321,2999,5491, - 3533,2897,2241,2807,3444,3553,5497,3532,654,3499, - 3638,3475,5491,5457,5454,5454,5454,5454,5454,5454, - 5454,1,1,1,5461,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5464,3548,1, - 1,1,1,1,1,1,1,1,1,5496, - 1,5491,1,1944,1,1,1,2678,5491,893, - 3426,128,5491,53,5324,5321,2999,5491,3533,2897, - 2241,2807,3444,3553,5495,3532,654,3499,3638,3475, - 5491,3445,1,1,1,1,1,1,1,1, - 1,1,5501,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5500,3548,1,1,1, - 1,1,1,1,1,1,1,138,1,224, - 1,1944,1,1,1,2678,5491,893,3426,2714, - 2810,42,225,5491,2999,5532,3533,2897,2241,2807, - 3444,3553,454,3532,654,3499,3638,3475,5491,5314, - 5314,5314,5314,5314,5314,5314,5314,5494,5314,5314, - 5314,5314,5314,5748,30,141,5751,5834,5835,5745, - 5752,5724,5750,5749,5746,5747,5748,5725,1809,5751, - 5834,5835,5745,5752,5724,5750,5749,5746,5747,5491, - 5725,96,5314,5314,5165,5314,5314,5314,5314,5314, - 5314,5314,5314,5314,5314,135,5314,5314,5156,5314, - 40,5354,5354,594,5314,5354,2402,5314,5314,5314, - 5314,5314,5314,5314,5491,5132,5129,3534,2443,649, - 1410,2749,5827,5342,5342,5491,5314,5314,5314,5314, - 5314,5314,5314,5314,5314,5314,5314,5314,5314,5314, - 5314,5314,5314,5314,5314,5314,5314,5314,5314,5314, - 5314,5314,5314,5314,5314,3655,2333,2774,5314,5491, - 5454,5454,5454,5454,5454,5454,5454,5454,1,1, - 1,5479,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5479,5652,1,1,1,1, - 1,1,1,1,1,1,5491,1,5491,1, - 1915,1,1,1,5491,1,1,1,1,1, - 1,1,1,1,1,1,5491,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5491, - 5652,1,1,1,1,1,1,1,1,1, - 1,509,1,5491,1,5171,1,1,1,5491, - 1,1,1,1,1,1,1,1,1,1, - 1,5491,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5128,5652,1,1,1,1, - 1,1,1,1,1,1,5491,1,5491,1, - 5491,1,1,1,5491,1,1,1,1,1, - 1,1,1,1,1,1,5491,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5135, - 5652,1,1,1,1,1,1,1,1,1, - 1,5491,1,5491,1,2563,1,1,1,5491, - 1,1,1,1,1,1,1,1,1,1, - 1,5491,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5491,5652,1,1,1,1, - 1,1,1,1,1,1,5491,1,5491,1, - 2594,1,1,1,5491,1,1,1,1,1, - 1,1,1,1,1,1,5491,1,1,1, + 1,1,1,1,1,1,1,1,1,5349, + 3531,1,1,5373,1,1,1,1,1,1, + 1,1,1,1,132,1,1,1,2593,561, + 882,161,3429,141,3345,3321,2657,2748,2379,3529, + 5726,2932,2191,2864,3437,3425,5373,3527,713,3504, + 2684,3466,5373,5342,5339,5339,5339,5339,5339,5339, + 5339,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5346,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5349,3531,1, + 1,1372,1,1,1,1,1,1,1,1, + 1,1,5373,1,1,1,2593,561,882,1888, + 3429,2411,2382,5373,5390,5391,2379,3529,2057,2932, + 2191,2864,3437,3425,2280,3527,713,3504,2684,3466, + 5373,5342,5339,5339,5339,5339,5339,5339,5339,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,5346,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5349,3531,1,1,5373, + 1,1,1,1,1,1,1,1,1,1, + 5373,1,1,1,2593,561,882,503,3429,5373, + 5015,5012,42,5414,2379,3529,5414,2932,2191,2864, + 3437,3425,417,3527,713,3504,2684,3466,5373,5342, + 5339,5339,5339,5339,5339,5339,5339,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,5346,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,5349,3531,1,1,905,1,1, + 1,1,1,1,1,1,1,1,5373,1, + 1,1,2593,561,882,3095,3429,5373,5015,5012, + 128,5414,2379,3529,5373,2932,2191,2864,3437,3425, + 5373,3527,713,3504,2684,3466,5373,5342,5339,5339, + 5339,5339,5339,5339,5339,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5346, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,5349,3531,1,1,5373,1,1,1,1, + 1,1,1,1,1,1,121,1,1,1, + 2593,561,882,358,3429,3666,2908,2830,2657,2748, + 2379,3529,5373,2932,2191,2864,3437,3425,5373,3527, + 713,3504,2684,3466,5373,5342,5339,5339,5339,5339, + 5339,5339,5339,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5346,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5349, + 3531,1,1,1482,1,1,1,1,1,1, + 1,1,1,1,5373,1,1,1,2593,561, + 882,5766,3429,5373,5390,5391,127,5373,2379,3529, + 3075,2932,2191,2864,3437,3425,5373,3527,713,3504, + 2684,3466,5373,5342,5339,5339,5339,5339,5339,5339, + 5339,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5346,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5349,3531,1, + 1,5373,1,1,1,1,1,1,1,1, + 1,1,138,1,1,1,2593,561,882,301, + 3429,5373,5209,5206,2657,2748,2379,3529,5673,2932, + 2191,2864,3437,3425,435,3527,713,3504,2684,3466, + 5373,3445,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,5383,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5382,3531,1,1,5373, + 1,1,1,1,1,1,1,1,1,1, + 5373,1,1,1,2593,561,882,2545,3429,53, + 5221,5218,2315,5373,2379,3529,3521,2932,2191,2864, + 3437,3425,5373,3527,713,3504,2684,3466,5373,5339, + 5339,5339,5339,5339,5339,5339,5339,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,5361,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,5361,5533,1,1,5373,1,1, + 1,1,1,1,1,1,1,1,5373,1, + 1,1,5373,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5373,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,3030,5533,1, + 1,5011,1,1,1,1,1,1,1,1, + 1,1,40,1,1,1,5373,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5373, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,5412,5533,1,1,5373,1,1,1,1, + 1,1,1,1,1,1,5373,1,1,1, + 5373,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,5373,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,3145,5533,1,1,5373, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5491, - 5652,1,1,1,1,1,1,1,1,1, - 1,127,1,5491,1,2669,1,1,1,42, - 5132,5129,2525,2443,3421,4005,2749,4028,1359,3982, - 3959,140,4074,4051,5757,5755,5764,5763,5759,5760, - 5758,5761,5762,5765,5756,5514,3936,678,803,5516, - 728,1031,792,5517,5515,675,5510,5512,5513,5511, - 1335,1,40,5748,3611,5491,5751,5834,5835,5745, - 5752,5724,5750,5749,5746,5747,1,5725,5491,5890, - 5491,638,5891,5892,391,42,223,5174,368,5532, - 5174,1410,5174,5827,5174,5174,5174,5174,5174,2714, - 2810,5757,5755,5764,5763,5759,5760,5758,5761,5762, - 5765,5756,52,1,5227,5223,5406,5231,5412,5530, - 5409,5491,5508,5509,3280,5501,649,1920,2749,5174, - 5748,2368,143,5751,5834,5835,5745,5752,5724,5750, - 5749,5746,5747,5174,5725,5491,5132,5129,397,5532, - 5174,368,5171,5174,5174,5174,5174,5174,5500,5174, - 372,5227,5223,2783,5231,649,1,2749,1,2489, - 437,368,5174,5174,5174,5174,5174,5174,5174,5174, - 5174,5174,5174,5174,5174,5174,5174,5174,5174,5174, - 5174,5174,5174,5174,5174,5174,5174,5174,5174,5174, - 5174,136,390,1875,5174,5177,1629,509,5177,594, - 5177,5491,5177,5177,5177,5177,5177,351,5436,5433, - 2783,2443,649,1410,2749,5827,1920,5491,5491,5132, - 5129,1120,2443,5184,2280,2749,1830,1785,1740,1695, - 1650,1605,1560,1515,1470,1425,5024,5177,5491,5227, - 5223,3534,5231,649,5430,2749,5427,5491,1,5360, - 5360,5180,5357,1770,1410,5491,5827,5491,5177,5491, - 368,5177,5177,5177,5177,5177,5491,5177,440,1, - 1,293,1,1920,5153,2135,5153,5924,5925,5926, - 5177,5177,5177,5177,5177,5177,5177,5177,5177,5177, - 5177,5177,5177,5177,5177,5177,5177,5177,5177,5177, - 5177,5177,5177,5177,5177,5177,5177,5177,5177,133, - 5491,2096,5177,5491,5367,5367,229,5363,229,229, - 229,229,1,368,2738,5371,4223,3284,1,1, - 1,1,1,1,1,1,1,1,1,5491, - 5508,5509,819,368,318,5227,5223,3534,5231,649, - 5430,2749,5427,5491,9778,9778,5491,1,229,5902, + 5373,1,1,1,5373,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 497,1,453,1,134,1,1,1,1964,3652, - 3284,4097,1119,115,5491,415,229,1,5227,5223, - 3534,5231,649,5491,2749,5987,5491,5367,5367,229, - 5363,229,229,229,229,1,2494,2460,5415,5491, - 5530,1,1,1,1,1,1,1,1,1, - 1,1,1,5227,5223,3534,5231,649,375,2749, - 5924,5925,5926,226,318,398,5132,5129,5159,5532, - 1,229,5902,1,1,1,1,1,1,1, - 1,1,1,497,1,5491,1,1959,1,1, - 1,1964,5999,41,5147,5144,3182,318,414,229, - 559,2494,2460,4120,292,5508,5509,5748,5987,4143, - 5751,5834,5835,5745,5752,5724,5750,5749,5746,5747, - 1,5725,42,3835,351,42,42,3611,5532,1184, - 1410,124,5827,1,5227,5223,5406,5231,5412,5491, - 5409,2973,2892,5924,5925,5926,5491,1,1,1, - 1,1,1,1,1,1,1,1,5501,1, + 1,1,1,1,1,1,1,5373,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,3664, + 5533,1,1,5373,1,1,1,1,1,1, + 1,1,1,1,5373,1,1,1,5373,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1920,5500,5652,5491,1,1,1,1,1,1, - 1,1,1,1,1,168,1,1,1,1, + 1,5373,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,3667,5533,1,1,33,1,1, + 1,1,1,1,1,1,1,1,114,1, + 1,1,42,5042,5039,2953,895,3296,3885,2520, + 3908,1237,3862,3839,5637,5635,5644,5643,5639,5640, + 5638,5641,5642,5645,5636,139,3954,3931,5396,3816, + 775,875,5398,790,620,822,5399,5397,618,5392, + 5394,5395,5393,1327,5373,5373,5629,5021,223,5632, + 5707,5373,5708,5626,5633,5605,5631,5630,5627,5628, + 5606,5763,134,827,5764,5765,382,42,5373,5063, + 582,5414,5063,1306,5063,5700,5060,5060,363,5119, + 5115,2726,5123,2539,1,2520,1,5373,4000,5060, + 5060,5060,5629,5373,4023,5632,5707,709,5708,5626, + 5633,5605,5631,5630,5627,5628,5606,5373,5390,5391, + 142,5063,2539,2554,2520,5373,5119,5115,4451,5123, + 2539,5321,2520,5318,5373,2315,5060,1,5119,5115, + 4451,5123,2539,5060,2520,5060,5060,5060,5060,5060, + 1,2102,5060,3480,133,798,5373,5015,5012,1149, + 895,5076,1366,2520,5060,5060,5060,5060,5060,5060, + 5060,5060,5060,5060,5060,5060,5060,5060,5060,5060, + 5060,5060,5060,5060,5060,5060,5060,5060,5060,5060, + 123,1845,224,5060,5060,5060,381,5060,2063,5069, + 2908,2830,5069,2563,5069,844,5066,5066,342,5015, + 5012,2726,895,2539,1306,2520,5700,798,5373,5066, + 5066,5066,2241,521,1802,1759,1716,1673,1630,1587, + 1544,1501,1458,1415,1,1,5629,3764,382,5632, + 5707,5069,5708,5626,5633,5605,5631,5630,5627,5628, + 5606,2411,2382,1,5251,5251,5072,5248,165,1306, + 122,5700,5373,5066,3350,5066,5066,5066,5066,5066, + 2908,2830,5066,5373,95,798,359,5054,550,389, + 5042,5039,5373,5414,5066,5066,5066,5066,5066,5066, + 5066,5066,5066,5066,5066,5066,5066,5066,5066,5066, + 5066,5066,5066,5066,5066,5066,5066,5066,5066,5066, + 5373,165,42,5066,5066,5066,5414,5066,5373,5258, + 5258,227,5254,227,227,227,227,1,42,359, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5491,168,5652, - 5491,1,1,1,1,1,1,1,1,1, - 1,1,168,1,1,1,1,1,1,1, + 1,5262,5373,5390,5391,5373,5209,5206,359,5373, + 5015,5012,4451,895,2539,1306,2520,5700,344,1084, + 5373,1703,1,227,5775,1,1,488,1,1, + 1,1,1,1,1,1,1,1,5373,1, + 1,1,849,5379,3977,764,1,3977,764,4085, + 406,227,5373,5015,5012,310,895,5076,3553,2520, + 5860,5373,5258,5258,227,5254,227,227,227,227, + 1,441,44,1,1,1,1,1,1,1, + 1,1,1,1,5306,798,5797,5798,5799,5018, + 4843,5373,5797,5798,5799,894,5378,225,5373,42, + 5373,859,286,5414,5373,1,227,5775,1,1, + 488,1,1,1,1,1,1,1,1,1, + 1,5381,1,1,1,849,1282,5377,53,5209, + 5206,5024,5051,405,227,1,5119,5115,5297,5123, + 5303,5629,5300,5860,5632,5707,2145,5708,5626,5633, + 5605,5631,5630,5627,5628,5606,309,5119,5115,4451, + 5123,2539,5321,2520,5318,431,1,1,1029,1, + 5380,5036,1927,5036,1,5797,5798,5799,5373,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5491,168,5652,5491,1,1, - 1,1,1,1,1,1,1,1,1,168, + 1,5383,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,5376,5382,5533,5373,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,167,1, 1,1,1,1,1,1,1,1,1,1, - 1,237,5491,5652,5339,126,39,5389,5386,5491, - 5491,1,5227,5223,2783,5231,649,123,2749,1, - 5227,5223,3534,5231,649,354,2749,2973,2892,48, - 5330,5330,168,5491,1,1,1,1,1,1, - 1,1,1,1,1,168,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1920,5942,5652, - 5491,5508,5509,5491,5132,5129,5327,2443,5184,105, - 2749,1920,2096,2714,2810,5491,5491,1,1,1, - 1,1,1,1,1,1,1,1,168,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 2227,3008,577,5491,1,1,1,1,1,1, - 1,1,1,1,1,5059,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5491,5491,5652, - 5491,1,1,1,1,1,1,1,1,1, - 1,1,5491,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5491,142,5652,5491,1,1, - 1,1,1,1,1,1,1,1,1,1539, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,5491,5491,5652,1,5227,5223,2525,5231,3421, - 4005,2749,4028,5187,3982,3959,5491,4074,4051,5214, - 5220,5193,5196,5208,5205,5211,5202,5199,5190,5217, - 5514,3936,678,803,5516,728,1031,792,5517,5515, - 675,5510,5512,5513,5511,1335,42,42,5491,5132, - 5129,5491,2443,649,353,2749,2333,1674,398,5508, - 5509,5491,1,1,1,1,1,1,1,1, - 1,1,1,513,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5491,5491,5652,5491,1, - 1,1,1,1,1,1,1,1,1,1, - 1920,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,5491,5491,5652,5491,1,1,1,1, - 1,1,1,1,1,1,1,1725,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5491, - 1,5652,5491,1,1,1,1,1,1,1, - 1,1,1,1,1944,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5491,5491,5652,5491, - 1,1,1,1,1,1,1,1,1,1, - 1,3099,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5491,5491,5652,5491,1,1,1, - 1,1,1,1,1,1,1,1,3230,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 5491,227,5652,42,5132,5129,2525,2443,3421,4005, - 2749,4028,564,3982,3959,5499,4074,4051,5757,5755, - 5764,5763,5759,5760,5758,5761,5762,5765,5756,5514, - 3936,678,803,5516,728,1031,792,5517,5515,675, - 5510,5512,5513,5511,1335,5748,5491,5491,5751,5834, - 5835,5745,5752,5724,5750,5749,5746,5747,5491,5725, - 5491,5491,33,5037,3411,1,5227,5223,2783,5231, - 649,5491,2749,5499,5038,5498,42,5132,5129,2525, - 2443,3421,4005,2749,4028,564,3982,3959,5499,4074, - 4051,5757,5755,5764,5763,5759,5760,5758,5761,5762, - 5765,5756,5514,3936,678,803,5516,728,1031,792, - 5517,5515,675,5510,5512,5513,5511,1335,441,42, - 42,509,5532,1,5348,5491,5345,391,97,1, - 1,1920,1,5498,5351,422,5351,3411,100,42, - 42,5491,5532,5491,5421,3168,5418,1100,5498,145, - 5132,5129,2525,2443,3421,4005,2749,4028,564,3982, - 3959,5491,4074,4051,5757,5755,5764,5763,5759,5760, - 5758,5761,5762,5765,5756,5514,3936,678,803,5516, - 728,1031,792,5517,5515,675,5510,5512,5513,5511, - 1335,42,42,1,5227,5223,2525,5231,3421,4005, - 2749,4028,5187,3982,3959,5491,4074,4051,5214,5220, - 5193,5196,5208,5205,5211,5202,5199,5190,5217,5514, - 3936,678,803,5516,728,1031,792,5517,5515,675, - 5510,5512,5513,5511,1335,42,42,42,5132,5129, - 2525,2443,3421,4005,2749,4028,564,3982,3959,5495, - 4074,4051,5757,5755,5764,5763,5759,5760,5758,5761, - 5762,5765,5756,5514,3936,678,803,5516,728,1031, - 792,5517,5515,675,5510,5512,5513,5511,42,5132, - 5129,2525,2443,3421,4005,2749,4028,564,3982,3959, - 5491,4074,4051,5757,5755,5764,5763,5759,5760,5758, - 5761,5762,5765,5756,5514,3936,678,803,5516,728, - 1031,792,5517,5515,675,5510,5512,5513,5511,1335, - 80,5491,5491,3165,5491,5132,5129,3029,2443,649, - 5491,2749,291,5559,5560,143,373,418,118,3411, - 42,5132,5129,2525,2443,3421,4005,2749,4028,564, - 3982,3959,5494,4074,4051,5757,5755,5764,5763,5759, - 5760,5758,5761,5762,5765,5756,5514,3936,678,803, - 5516,728,1031,792,5517,5515,675,5510,5512,5513, - 5511,1335,1,342,5491,1240,5023,5956,5950,3671, - 5954,1,5948,5949,3611,5979,5980,42,40,5354, - 5354,5532,858,347,5491,5324,5321,1245,2188,5957, - 40,5354,5354,5491,38,5491,1770,1116,5168,5491, - 5491,5377,5374,662,1510,1511,5168,5491,4120,5491, - 5491,5834,5835,5491,4143,117,5491,2280,5491,130, - 1103,5959,5497,3753,2453,5501,4097,1119,729,5024, - 116,5960,5981,5958,190,2877,5491,1920,132,5168, - 347,347,50,5383,5383,131,347,5530,5499,5491, - 5970,5969,5982,5951,5952,5975,5976,5530,5500,5973, - 5974,5953,5955,5977,5978,5983,5963,5964,5965,5961, - 5962,5971,5972,5967,5966,5968,5491,3794,2673,1240, - 5017,5956,5950,581,5954,5496,5948,5949,5150,5979, - 5980,5491,5396,5392,5924,5925,5926,2673,406,5380, - 40,5354,5354,5957,2673,4120,1058,5333,5498,5491, - 5400,4143,2617,2589,5336,180,3591,5491,1510,1511, - 4120,5501,5491,9716,9686,5491,4143,5470,5491,9716, - 9686,2617,2589,5491,5491,5959,5044,5050,2617,2589, - 5491,5491,729,5403,3166,5960,5981,5958,5530,5491, - 108,3004,3796,3837,5500,5491,5488,5530,2000,1, - 5470,426,504,5491,5970,5969,5982,5951,5952,5975, - 5976,5448,104,5973,5974,5953,5955,5977,5978,5983, - 5963,5964,5965,5961,5962,5971,5972,5967,5966,5968, - 42,5132,5129,2525,2443,3421,4005,2749,4028,564, - 3982,3959,530,4074,4051,5757,5755,5764,5763,5759, - 5760,5758,5761,5762,5765,5756,5514,3936,678,803, - 5516,728,1031,792,5517,5515,675,5510,5512,5513, - 5511,5498,325,4997,4466,5424,5893,282,2057,5491, - 5439,5491,4932,3383,42,5132,5129,2525,2443,3421, - 4005,2749,4028,564,3982,3959,1239,4074,4051,5757, - 5755,5764,5763,5759,5760,5758,5761,5762,5765,5756, - 5514,3936,678,803,5516,728,1031,792,5517,5515, - 675,5510,5512,5513,5511,1335,42,5132,5129,4969, - 2443,3421,4005,2749,4028,564,3982,3959,1920,4074, - 4051,5757,5755,5764,5763,5759,5760,5758,5761,5762, - 5765,5756,5514,3936,678,803,5516,728,1031,792, - 5517,5515,675,5510,5512,5513,5511,42,5132,5129, - 2525,2443,3421,4005,2749,4028,564,3982,3959,5491, - 4074,4051,5757,5755,5764,5763,5759,5760,5758,5761, - 5762,5765,5756,5514,3936,678,803,5516,728,1031, - 792,5517,5515,675,5510,5512,5513,5511,42,5132, - 5129,2525,2443,3421,4005,2749,4028,564,3982,3959, - 33,4074,4051,5757,5755,5764,5763,5759,5760,5758, - 5761,5762,5765,5756,5514,3936,678,803,5516,728, - 1031,792,5517,5515,675,5510,5512,5513,5511,5491, - 5132,5129,310,5532,319,444,5491,3035,843,4931, - 327,5800,5491,450,5757,5755,5764,5763,5759,5760, - 5758,5761,5762,5765,5756,1,1,5491,5491,5138, - 3555,4975,5491,424,5491,5491,445,5497,526,502, - 53,5491,5491,5748,5509,44,5751,5834,5835,5745, - 5752,5724,5750,5749,5746,5747,380,5725,5491,5890, - 5491,638,5891,5892,241,5307,5303,2936,5311,2309, - 53,640,5141,843,5508,1290,1920,5491,574,5294, - 5300,5273,5276,5288,5285,5291,5282,5279,5270,5297, - 1,5454,5454,229,5454,229,229,229,229,5509, - 5496,526,229,4176,5162,2149,2750,5674,5258,317, - 5007,5249,5243,5240,5267,5246,5237,5252,5255,5264, - 5261,38,5234,390,5890,1,638,5891,5892,5508, - 5491,5491,2,3610,9845,229,1,5454,5454,229, - 5454,229,229,229,229,1,4361,5451,5482,3552, - 5491,5491,5491,4976,5442,2678,5491,1284,3426,4944, - 5491,5491,1,5454,5454,229,5454,229,229,229, - 229,5491,5987,5491,5482,5491,5006,3591,4215,4511, - 9845,229,5318,5491,509,5491,5081,506,1,2179, - 2574,40,2549,5451,5491,5491,5491,5442,519,1, - 5491,2678,3330,1284,3426,5445,9845,229,221,1, - 5454,5454,229,5454,229,229,229,229,5987,5451, - 3082,5485,5473,2549,5673,3414,5491,2678,5491,1284, - 3426,5491,5491,5491,221,1,5454,5454,229,5454, - 229,229,229,229,5987,3330,5491,5482,5445,5491, - 5491,5491,5491,9845,229,5491,2012,5491,911,5491, - 5491,5491,5491,5491,5491,5491,5451,5491,5491,5491, - 5491,5491,5491,5491,2678,5491,1284,3426,5491,9845, - 229,220,1,5454,5454,229,5454,229,229,229, - 229,5987,5451,5491,5482,5491,5491,5491,5491,5491, - 2678,5491,1284,3426,5491,5491,5491,221,1,5454, - 5454,229,5454,229,229,229,229,5987,5491,3591, - 229,5491,5491,5491,5491,5491,9845,229,5491,5491, - 5491,5491,5491,5491,5491,5491,5491,5491,5491,5451, - 5491,5491,5491,5491,5491,5491,5491,2678,5491,1284, - 3426,5491,9845,229,221,1,5454,5454,229,5454, - 229,229,229,229,5987,5451,5491,229,5491,5491, - 5491,5491,5491,2678,5491,1284,3426,5491,5491,5491, - 5491,1,5454,5454,229,5454,229,229,229,229, - 5987,5491,5491,229,5491,5491,5491,5491,5491,9845, - 229,5491,5491,5491,5491,5491,5491,5491,5491,5491, - 5491,5491,5451,5491,5491,5491,5491,5491,5491,5491, - 2678,5491,1284,3426,5491,9845,229,5491,5491,5491, - 5491,5491,5491,5491,5491,5491,5491,5987,5451,5491, - 5491,5491,5491,5491,5491,5491,2678,5491,1284,3426, - 5491,5491,5491,5491,5491,5491,5491,5491,5491,5491, - 5491,5491,5491,5987 + 1,1,1,1,1,1,1,1,1,5728, + 167,5533,5373,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,167,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,333,167,5533,5373, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,167,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,135,5707,5533,5708,5373,287,5390, + 5391,582,189,342,42,42,3480,5414,30,1306, + 5373,5700,5373,5015,5012,236,895,2539,5230,2520, + 5379,5373,5373,9710,9710,167,5373,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,167, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 798,5412,5533,5378,48,5215,5215,5233,5233,5373, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,167,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,5212,5370,565,5373,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5373, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 5373,5373,5533,5373,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,5373,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5373,2580,5533, + 5373,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,5373,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,5373,2581,5533,1,5119,5115, + 2953,5123,3296,3885,2520,3908,5079,3862,3839,5106, + 5112,5085,5088,5100,5097,5103,5094,5091,5082,5109, + 445,3954,3931,5396,3816,775,875,5398,790,620, + 822,5399,5397,618,5392,5394,5395,5393,1327,42, + 42,5373,5872,5373,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,504,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5045,5373,5533, + 5373,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,5373,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,5373,5373,5533,5373,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 3031,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,5373,5815,5533,5373,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5373,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5373,5373, + 5533,5373,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,5555,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5373,4185,5533,5373,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,444,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,5373,226,5533,42,5015,5012,2953,895, + 3296,3885,2520,3908,934,3862,3839,5637,5635,5644, + 5643,5639,5640,5638,5641,5642,5645,5636,5381,3954, + 3931,5396,3816,775,875,5398,790,620,822,5399, + 5397,618,5392,5394,5395,5393,1327,5629,5048,117, + 5632,5707,5373,5708,5626,5633,5605,5631,5630,5627, + 5628,5606,1,5119,5115,2726,5123,2539,316,2520, + 3738,5315,5373,5042,5039,1,5414,5380,42,5015, + 5012,2953,895,3296,3885,2520,3908,934,3862,3839, + 5637,5635,5644,5643,5639,5640,5638,5641,5642,5645, + 5636,5381,3954,3931,5396,3816,775,875,5398,790, + 620,822,5399,5397,618,5392,5394,5395,5393,1327, + 432,42,42,5373,5414,52,5239,1325,5236,798, + 96,1,1,5373,1,798,5242,1617,5242,4000, + 99,42,42,3738,5414,4023,5312,288,5309,2132, + 5380,144,5015,5012,2953,895,3296,3885,2520,3908, + 934,3862,3839,5637,5635,5644,5643,5639,5640,5638, + 5641,5642,5645,5636,1008,3954,3931,5396,3816,775, + 875,5398,790,620,822,5399,5397,618,5392,5394, + 5395,5393,1327,42,42,1,5119,5115,2953,5123, + 3296,3885,2520,3908,5079,3862,3839,5106,5112,5085, + 5088,5100,5097,5103,5094,5091,5082,5109,1974,3954, + 3931,5396,3816,775,875,5398,790,620,822,5399, + 5397,618,5392,5394,5395,5393,1327,42,42,42, + 5015,5012,2953,895,3296,3885,2520,3908,934,3862, + 3839,5637,5635,5644,5643,5639,5640,5638,5641,5642, + 5645,5636,5377,3954,3931,5396,3816,775,875,5398, + 790,620,822,5399,5397,618,5392,5394,5395,5393, + 42,5015,5012,2953,895,3296,3885,2520,3908,934, + 3862,3839,5637,5635,5644,5643,5639,5640,5638,5641, + 5642,5645,5636,5373,3954,3931,5396,3816,775,875, + 5398,790,620,822,5399,5397,618,5392,5394,5395, + 5393,1327,5373,5373,142,39,5280,5277,2057,1, + 5119,5115,4451,5123,2539,5373,2520,1,5119,5115, + 2726,5123,2539,5373,2520,3738,5373,5015,5012,428, + 895,2539,388,2520,5373,5373,381,5376,42,5015, + 5012,2953,895,3296,3885,2520,3908,934,3862,3839, + 5637,5635,5644,5643,5639,5640,5638,5641,5642,5645, + 5636,3616,3954,3931,5396,3816,775,875,5398,790, + 620,822,5399,5397,618,5392,5394,5395,5393,1327, + 1,222,2063,858,798,5829,5823,5373,5827,5373, + 5821,5822,500,5637,5635,5644,5643,5639,5640,5638, + 5641,5642,5645,5636,5852,5853,2241,5830,3463,5373, + 40,5245,5245,5373,5373,5245,4138,4376,40,5245, + 5245,3764,1493,1497,1826,5629,116,115,5632,5707, + 5373,5708,5626,5633,5605,5631,5630,5627,5628,5606, + 5832,381,5373,5797,5798,5799,1626,704,5373,5833, + 5854,5831,1789,1,5119,5115,5297,5123,5303,1015, + 5300,126,5373,5221,5218,5373,5373,5412,5843,5842, + 5855,5824,5825,5848,5849,5373,5383,5846,5847,5826, + 5828,5850,5851,5856,5836,5837,5838,5834,5835,5844, + 5845,5840,5839,5841,5373,345,5373,858,5382,5829, + 5823,5057,5827,104,5821,5822,33,1,5339,5339, + 227,5339,227,227,227,227,4000,4000,5852,5853, + 5373,5830,4023,4023,1,5119,5115,4451,5123,2539, + 227,2520,40,5245,5245,397,1493,1497,389,5390, + 5391,5373,5268,5265,4069,990,3530,309,5373,2657, + 2748,9711,227,5373,5832,1,5336,5373,5291,5373, + 4383,704,798,5833,5854,5831,500,3543,3636,309, + 4561,2593,5373,2141,5373,3429,5373,4466,359,413, + 5294,1072,5843,5842,5855,5824,5825,5848,5849,5860, + 5412,5846,5847,5826,5828,5850,5851,5856,5836,5837, + 5838,5834,5835,5844,5845,5840,5839,5841,42,5015, + 5012,2953,895,3296,3885,2520,3908,934,3862,3839, + 5637,5635,5644,5643,5639,5640,5638,5641,5642,5645, + 5636,359,3954,3931,5396,3816,775,875,5398,790, + 620,822,5399,5397,618,5392,5394,5395,5393,5554, + 359,5373,42,5015,5012,2953,895,3296,3885,2520, + 3908,934,3862,3839,5637,5635,5644,5643,5639,5640, + 5638,5641,5642,5645,5636,1463,3954,3931,5396,3816, + 775,875,5398,790,620,822,5399,5397,618,5392, + 5394,5395,5393,1327,42,5015,5012,4443,895,3296, + 3885,2520,3908,934,3862,3839,5637,5635,5644,5643, + 5639,5640,5638,5641,5642,5645,5636,5373,3954,3931, + 5396,3816,775,875,5398,790,620,822,5399,5397, + 618,5392,5394,5395,5393,42,5015,5012,2953,895, + 3296,3885,2520,3908,934,3862,3839,5637,5635,5644, + 5643,5639,5640,5638,5641,5642,5645,5636,125,3954, + 3931,5396,3816,775,875,5398,790,620,822,5399, + 5397,618,5392,5394,5395,5393,42,5015,5012,2953, + 895,3296,3885,2520,3908,934,3862,3839,5637,5635, + 5644,5643,5639,5640,5638,5641,5642,5645,5636,5373, + 3954,3931,5396,3816,775,875,5398,790,620,822, + 5399,5397,618,5392,5394,5395,5393,5373,5042,5039, + 79,5414,5373,3702,53,5373,1217,5373,5391,5637, + 5635,5644,5643,5639,5640,5638,5641,5642,5645,5636, + 50,5274,5274,5373,5440,5441,2657,2748,3122,371, + 5373,5390,5391,129,1,5373,1,131,5373,9589, + 9383,5629,5373,5373,5632,5707,5383,5708,5626,5633, + 5605,5631,5630,5627,5628,5606,5763,5379,827,5764, + 5765,240,5199,5195,5391,5203,5373,3249,5382,5271, + 1217,3657,990,5186,5192,5165,5168,5180,5177,5183, + 5174,5171,5162,5189,1,5339,5339,227,5339,227, + 227,227,227,2616,130,3146,500,2616,5373,5287, + 5283,5373,5033,569,3705,5150,5224,5364,5141,5135, + 5378,5132,5159,5138,5129,5144,5147,5156,5153,5126, + 5763,647,827,5764,5765,5373,2496,2465,9711,227, + 2496,2465,5373,5336,1,5339,5339,227,5339,227, + 227,227,227,40,5245,5245,1,5412,2593,3636, + 2141,5373,3429,3598,2616,5327,220,5364,179,5373, + 103,1,5373,5227,3480,3708,5860,5373,1,5339, + 5339,227,5339,227,227,227,227,301,9711,227, + 366,5355,5383,5336,338,2126,5673,2496,2465,5373, + 1,5367,5412,107,318,3282,4084,561,2593,5327, + 2141,364,3429,5355,5382,5330,220,5373,9589,9383, + 53,415,9711,227,5390,5373,5860,5336,1,5339, + 5339,227,5339,227,227,227,227,2013,798,4340, + 338,338,2593,5373,2141,1,3429,338,5381,3282, + 219,5364,1,2234,5373,1,409,1955,495,5330, + 5860,1193,1,5339,5339,227,5339,227,227,227, + 227,798,9711,227,493,5333,278,5336,517,5324, + 5390,5373,1238,5373,4103,5364,4822,5373,436,38, + 3551,2955,2593,5373,2141,5373,3429,5380,4372,5373, + 220,5373,4686,2574,3053,5373,9711,227,4840,1, + 5860,5336,1,5339,5339,227,5339,227,227,227, + 227,5373,5373,308,5380,1869,2593,2152,2141,4685, + 3429,517,5373,5373,220,227,5373,510,497,4858, + 3732,2,1,5373,5860,4823,1,5339,5339,227, + 5339,227,227,227,227,5373,9711,227,3037,5373, + 2936,5336,5373,5373,2936,5373,5373,5373,3411,227, + 5373,5373,5373,5373,3421,5373,2593,5373,2141,5373, + 3429,1,5339,5339,227,5339,227,227,227,227, + 9711,227,1931,4427,5860,5336,5373,3506,3518,5373, + 5373,40,5373,5373,227,5373,5373,5373,5373,717, + 2593,5373,2141,5373,3429,5373,5373,5373,5373,5373, + 5373,5373,5373,5373,5373,9711,227,5373,5860,5373, + 5336,5373,5373,5373,5373,5373,5373,5373,5373,5373, + 5373,5373,5373,5373,5373,2593,5373,2141,5373,3429, + 5373,5373,5373,5373,5373,5373,5373,3636,5373,5373, + 5373,5373,5373,5860 }; }; public final static char termAction[] = TermAction.termAction; @@ -1954,59 +1900,59 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asb { public final static char asb[] = {0, - 1010,94,45,94,88,880,748,748,748,748, - 152,880,688,748,470,688,1047,1010,1049,46, - 46,46,46,46,46,46,46,46,960,966, - 971,968,975,973,980,978,982,981,983,162, - 984,45,28,124,124,124,124,85,170,96, - 685,124,379,582,688,688,96,501,688,582, - 882,123,624,154,263,275,28,943,943,1092, - 1092,170,1010,46,46,46,46,46,46,46, - 46,46,46,46,46,46,46,46,46,46, - 46,46,45,45,45,45,45,45,45,45, - 45,45,45,1010,46,582,582,326,29,540, - 540,540,540,259,582,96,332,930,941,794, - 941,432,941,791,941,925,941,941,152,85, - 379,379,96,379,123,45,83,623,582,82, - 85,84,82,582,379,968,968,966,966,966, - 973,973,973,973,971,971,978,975,975,981, - 980,982,1117,983,332,338,546,462,461,396, - 152,1049,880,880,880,880,85,85,540,698, - 539,685,85,681,215,85,436,259,435,265, - 794,270,85,85,85,259,540,46,124,964, - 291,582,154,85,85,84,624,45,326,379, - 999,582,548,550,85,624,1010,1010,1010,1010, - 880,880,29,336,681,215,436,266,436,259, - 436,270,270,85,259,85,582,964,332,623, - 154,85,83,582,450,454,465,550,259,83, - 582,582,582,582,170,170,681,680,677,85, - 215,1117,261,208,1107,215,436,436,1099,85, - 270,677,675,676,85,964,965,964,1010,291, - 213,154,382,45,463,463,278,278,85,544, - 332,798,582,85,582,582,681,624,748,82, - 392,1109,79,880,738,151,1100,85,677,46, - 85,964,170,46,379,213,382,45,45,550, - 85,624,582,548,454,382,407,83,230,83, - 436,436,79,1004,332,85,741,46,1117,286, - 1099,85,152,152,85,965,582,379,446,550, - 382,1005,230,83,436,794,152,1109,79,623, - 46,46,85,85,85,446,582,446,539,748, - 156,156,1005,794,9,738,85,880,85,85, - 880,439,446,230,631,230,538,538,542,10, - 152,85,170,551,439,796,1054,871,880,792, - 667,230,124,124,542,9,1117,46,1117,1005, - 880,880,880,10,880,85,836,1005,1005,85, - 794,8,582,466,441,585,540,871,796,630, - 794,831,794,152,539,1,880,1,1117,10, - 28,28,26,834,28,1005,1005,736,542,124, - 441,631,630,631,1005,285,1004,582,630,630, - 152,630,85,829,798,582,79,582,836,1005, - 871,880,582,542,630,45,752,79,1005,677, - 630,630,85,630,85,156,582,582,420,10, - 736,10,1005,836,871,1010,10,7,677,582, - 750,677,85,677,1005,538,794,794,915,45, - 8,1008,1005,582,750,1005,82,10,582,1008, - 1005,676,10,582,750,10 + 844,67,163,67,61,607,770,770,770,770, + 57,607,789,770,439,789,881,844,883,164, + 164,164,164,164,164,164,164,164,1059,1065, + 1070,1067,1074,1072,1079,1077,1081,1080,1082,253, + 1083,163,146,29,29,29,29,203,261,1, + 786,29,116,652,789,789,1,470,789,652, + 936,28,701,59,1040,146,1042,1042,1017,1017, + 261,844,164,164,164,164,164,164,164,164, + 164,164,164,164,164,164,164,164,164,164, + 164,163,163,163,163,163,163,163,163,163, + 163,163,844,164,652,652,241,147,509,509, + 509,509,350,652,1,247,1029,1040,934,1040, + 774,1040,931,1040,1024,57,203,116,116,1, + 116,28,163,201,700,652,200,203,202,200, + 652,116,1067,1067,1065,1065,1065,1072,1072,1072, + 1072,1070,1070,1077,1074,1074,1080,1079,1081,1117, + 1082,247,75,616,555,554,511,57,883,607, + 607,607,607,203,203,509,799,508,786,203, + 782,306,203,778,350,777,609,934,387,203, + 203,203,350,509,164,29,1063,206,652,59, + 203,203,202,701,163,241,116,1098,652,618, + 620,203,701,844,844,844,844,607,607,147, + 251,782,306,778,610,778,350,778,387,387, + 203,350,203,652,1063,247,700,59,203,201, + 652,435,547,558,620,350,201,652,652,652, + 652,261,261,782,781,659,203,306,1117,352, + 299,1107,306,778,778,707,203,387,659,657, + 658,203,1063,1064,1063,844,206,304,59,392, + 163,556,556,402,402,203,614,247,354,652, + 203,652,652,782,701,770,200,415,1109,197, + 607,760,56,708,203,659,164,203,1063,261, + 164,116,304,392,163,163,620,203,701,652, + 618,547,392,522,201,321,201,778,778,197, + 1103,247,203,763,164,1117,410,707,203,57, + 57,203,1064,652,116,431,620,392,1104,321, + 201,778,934,57,1109,197,700,164,164,203, + 203,203,431,652,431,508,770,69,69,1104, + 934,127,760,203,607,203,203,607,424,431, + 321,716,321,507,507,655,128,57,203,261, + 621,424,772,979,598,607,419,752,321,29, + 29,655,127,1117,164,1117,1104,607,607,607, + 128,607,203,563,1104,1104,203,934,126,652, + 559,426,662,509,598,772,715,934,934,839, + 57,508,119,607,119,1117,128,146,146,144, + 888,146,1104,1104,837,655,29,426,716,715, + 716,1104,409,1103,652,715,715,715,57,203, + 385,354,652,197,652,563,1104,598,607,652, + 655,715,163,892,197,1104,659,715,715,715, + 203,203,69,652,652,535,128,837,128,1104, + 563,598,844,128,125,659,652,890,659,659, + 203,1104,507,934,934,969,163,126,842,1104, + 652,890,1104,200,128,652,842,1104,658,128, + 652,890,128 }; }; public final static char asb[] = Asb.asb; @@ -2014,117 +1960,117 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asr { public final static byte asr[] = {0, - 82,117,118,119,57,73,121,122,72,74, - 65,67,68,77,79,86,84,76,81,83, - 85,87,61,78,80,12,45,46,62,60, - 63,64,50,55,56,44,54,53,47,51, - 48,49,52,58,41,42,43,9,29,33, - 31,28,36,16,25,15,21,19,20,22, - 23,18,17,24,37,40,38,39,26,35, - 30,34,13,14,10,11,27,32,8,6, - 3,4,7,5,1,2,0,12,73,115, - 75,45,70,116,0,28,42,29,30,43, - 7,31,32,33,34,41,35,36,37,38, - 39,26,13,14,8,6,10,11,5,27, - 69,40,3,50,15,16,60,48,17,62, - 51,44,18,52,53,19,20,54,55,21, - 22,56,63,58,9,64,23,24,49,25, - 47,1,2,4,0,69,71,70,1,2, - 0,69,73,95,70,115,72,45,116,12, - 75,15,16,28,42,17,29,30,18,19, - 20,43,31,21,22,32,33,34,41,35, - 36,23,24,25,37,38,39,26,3,13, - 14,8,6,10,11,27,40,7,1,2, - 4,9,5,0,82,7,117,118,119,65, - 12,3,8,6,5,73,72,45,46,50, - 15,16,60,48,17,62,51,44,18,52, - 53,19,20,54,55,21,22,56,63,58, - 9,64,23,47,24,49,25,4,1,2, - 57,0,12,45,4,59,61,73,0,1, - 2,12,72,0,59,4,0,74,61,69, - 73,95,75,66,3,12,70,45,71,0, - 96,90,10,11,91,92,88,89,59,93, - 94,97,98,99,100,101,102,114,73,95, - 71,104,105,106,107,108,109,110,111,112, - 113,115,72,45,116,12,69,70,75,3, - 66,1,2,8,4,6,0,42,43,9, - 29,33,31,28,36,16,25,15,21,19, - 20,22,23,18,17,24,37,40,38,39, - 26,35,30,34,5,7,4,3,13,14, - 8,6,10,11,27,32,1,2,115,12, - 0,48,41,49,12,69,95,71,70,75, - 0,61,73,74,0,15,16,17,18,19, - 20,21,22,23,24,25,50,48,51,44, - 52,53,54,55,56,58,47,49,45,12, - 75,7,1,2,66,3,8,6,5,4, - 0,57,1,2,4,61,73,0,48,49, - 74,3,61,73,45,41,69,71,70,12, - 75,95,0,8,6,7,5,4,1,2, - 3,66,69,71,95,75,12,70,0,50, - 15,16,60,48,17,62,51,44,18,52, - 53,19,20,54,55,21,22,56,63,58, - 9,64,23,47,24,49,25,1,2,4, - 43,42,10,11,6,91,92,99,8,100, - 5,27,59,107,108,104,105,106,112,111, - 113,89,88,109,110,97,98,93,94,101, - 102,13,14,90,103,3,66,71,70,69, - 0,121,0,5,7,3,66,6,8,95, - 50,15,16,60,48,17,62,51,44,18, - 52,53,19,20,54,55,21,22,56,63, - 58,9,64,23,47,24,49,25,1,2, - 4,75,12,0,68,50,15,16,60,48, - 17,62,51,82,44,18,52,53,19,20, - 54,67,55,21,22,56,63,58,9,64, - 23,65,47,24,49,25,12,3,8,4, - 45,61,6,7,1,2,5,57,0,72, - 60,48,17,62,51,18,52,53,19,20, - 54,55,21,22,56,63,58,64,23,47, - 24,49,25,16,15,50,12,3,8,6, - 45,65,68,82,44,57,7,1,2,5, - 4,9,67,0,71,70,72,12,0,41, - 48,7,49,5,1,2,4,74,12,61, - 73,95,115,75,72,45,116,66,3,120, - 96,103,90,13,14,8,6,10,11,91, - 92,88,89,59,93,94,97,98,99,100, - 101,102,114,104,105,106,107,108,109,110, - 111,112,113,69,70,71,0,61,70,0, - 73,12,66,3,71,70,45,59,0,12, - 72,42,43,41,13,14,8,6,10,11, + 28,42,29,30,43,7,31,32,33,34, + 41,35,36,37,38,39,26,24,25,8, + 6,10,11,5,27,69,40,3,51,12, + 13,59,48,14,61,52,44,15,53,54, + 16,17,55,56,18,19,57,62,58,9, + 63,20,21,50,22,47,1,2,4,0, + 23,73,118,76,45,70,119,0,69,71, + 70,1,2,0,42,43,9,29,33,31, + 28,36,13,22,12,18,16,17,19,20, + 15,14,21,37,40,38,39,26,35,30, + 34,5,7,4,3,24,25,8,6,10, + 11,27,32,1,2,118,23,0,82,114, + 115,116,49,73,120,122,72,74,64,66, + 68,77,79,86,84,75,81,83,85,87, + 65,78,80,23,45,46,61,59,62,63, + 51,56,57,44,55,54,47,52,48,50, + 53,58,41,42,43,9,29,33,31,28, + 36,13,22,12,18,16,17,19,20,15, + 14,21,37,40,38,39,26,35,30,34, + 24,25,10,11,27,32,8,6,3,4, + 7,5,1,2,0,96,90,10,11,91, + 92,88,89,60,93,94,97,98,99,100, + 101,102,117,73,95,71,104,105,106,107, + 108,109,110,111,112,113,118,72,45,119, + 23,69,70,76,3,67,1,2,8,4, + 6,0,69,73,95,70,118,72,45,119, + 23,76,12,13,28,42,14,29,30,15, + 16,17,43,31,18,19,32,33,34,41, + 35,36,20,21,22,37,38,39,26,3, + 24,25,8,6,10,11,27,40,7,1, + 2,4,9,5,0,82,7,114,115,116, + 64,23,3,8,6,5,73,72,45,46, + 51,12,13,59,48,14,61,52,44,15, + 53,54,16,17,55,56,18,19,57,62, + 58,9,63,20,47,21,50,22,4,1, + 2,49,0,51,12,13,48,14,61,52, + 44,15,53,54,16,17,55,56,18,19, + 57,62,58,9,63,20,47,21,50,22, + 1,2,4,95,59,0,1,2,23,72, + 0,48,41,50,23,69,95,71,70,76, + 0,74,65,69,73,95,76,67,3,23, + 70,45,71,0,65,73,74,0,1,2, + 123,65,0,48,50,74,3,65,73,45, + 41,69,71,70,23,76,95,0,51,12, + 13,59,48,14,61,52,44,15,53,54, + 16,17,55,56,18,19,57,62,58,9, + 63,20,47,21,50,22,1,2,4,43, + 42,10,11,6,91,92,99,8,100,5, + 27,60,107,108,104,105,106,112,111,113, + 89,88,109,110,97,98,93,94,101,102, + 24,25,90,103,3,67,71,70,69,0, + 12,13,14,15,16,17,18,19,20,21, + 22,51,48,52,44,53,54,55,56,57, + 58,47,50,45,23,76,7,1,2,67, + 3,8,6,5,4,0,8,6,7,5, + 4,1,2,3,67,69,71,95,76,23, + 70,0,12,13,28,42,14,29,30,15, + 16,17,43,31,18,19,32,33,34,41, + 35,36,9,20,21,22,37,38,39,26, + 24,25,10,11,27,40,46,23,8,6, + 45,5,7,1,2,4,3,0,4,60, + 65,73,0,5,7,3,67,6,8,95, + 51,12,13,59,48,14,61,52,44,15, + 53,54,16,17,55,56,18,19,57,62, + 58,9,63,20,47,21,50,22,1,2, + 4,76,23,0,120,0,71,70,72,23, + 0,68,51,12,13,59,48,14,61,52, + 82,44,15,53,54,16,17,55,66,56, + 18,19,57,62,58,9,63,20,64,47, + 21,50,22,23,3,8,4,45,65,6, + 7,1,2,5,49,0,47,1,2,4, + 114,115,116,0,72,59,48,14,61,52, + 15,53,54,16,17,55,56,18,19,57, + 62,58,63,20,47,21,50,22,13,12, + 51,23,3,8,6,45,64,68,82,44, + 49,7,1,2,5,4,9,66,0,65, + 70,0,73,23,67,3,71,70,45,60, + 0,26,0,49,1,2,4,65,73,0, + 41,48,7,50,5,1,2,4,74,23, + 65,73,95,118,76,72,45,119,67,3, + 121,96,103,90,24,25,8,6,10,11, + 91,92,88,89,60,93,94,97,98,99, + 100,101,102,117,104,105,106,107,108,109, + 110,111,112,113,69,70,71,0,65,71, + 0,23,76,12,13,28,14,29,30,15, + 16,17,31,18,19,32,33,34,41,35, + 36,9,20,21,22,37,38,39,26,3, + 24,25,8,6,10,11,27,4,40,46, + 5,7,1,2,43,42,0,75,0,23, + 72,42,43,41,24,25,8,6,10,11, 5,27,32,3,7,37,40,38,39,26, - 35,30,34,16,25,15,21,19,20,22, - 23,18,17,24,9,29,33,31,28,36, - 4,1,2,61,0,26,0,50,15,16, - 48,17,62,51,44,18,52,53,19,20, - 54,55,21,22,56,63,58,9,64,23, - 47,24,49,25,1,2,4,95,60,0, - 61,71,0,76,0,15,16,28,42,17, - 29,30,18,19,20,43,31,21,22,32, - 33,34,41,35,36,9,23,24,25,37, - 38,39,26,13,14,10,11,27,40,46, - 12,8,6,45,5,7,1,2,4,3, - 0,42,43,13,14,10,11,27,32,37, - 40,38,39,26,35,30,34,16,25,15, - 21,19,20,22,23,18,17,24,9,29, - 33,31,28,36,8,6,3,66,5,7, - 1,2,4,0,9,62,60,63,64,16, - 25,15,21,19,20,22,23,18,17,24, - 74,61,4,5,2,1,49,47,58,56, - 55,7,54,53,52,44,51,48,50,120, - 103,13,14,66,3,96,90,6,91,92, - 10,11,89,88,59,93,94,97,98,8, - 99,100,101,69,95,75,116,71,104,105, - 106,107,108,109,110,111,112,113,73,115, - 72,102,114,70,45,12,0,12,75,15, - 16,28,17,29,30,18,19,20,31,21, - 22,32,33,34,41,35,36,9,23,24, - 25,37,38,39,26,3,13,14,8,6, - 10,11,27,4,40,46,5,7,1,2, - 43,42,0,60,48,17,62,51,18,52, - 53,19,20,54,55,21,22,56,63,58, - 9,64,23,47,24,49,25,16,15,50, - 12,3,8,6,45,65,67,68,82,44, - 59,7,4,57,5,1,2,0,47,1, - 2,4,117,118,119,0,45,12,5,7, + 35,30,34,13,22,12,18,16,17,19, + 20,15,14,21,9,29,33,31,28,36, + 4,1,2,65,0,42,43,24,25,10, + 11,27,32,37,40,38,39,26,35,30, + 34,13,22,12,18,16,17,19,20,15, + 14,21,9,29,33,31,28,36,8,6, + 3,67,5,7,1,2,4,0,59,48, + 14,61,52,15,53,54,16,17,55,56, + 18,19,57,62,58,9,63,20,47,21, + 50,22,13,12,51,23,3,8,6,45, + 64,66,68,82,44,60,7,4,49,5, + 1,2,0,9,61,59,62,63,13,22, + 12,18,16,17,19,20,15,14,21,74, + 65,4,5,2,1,50,47,58,57,56, + 7,55,54,53,44,52,48,51,121,103, + 24,25,67,3,96,90,6,91,92,10, + 11,89,88,60,93,94,97,98,8,99, + 100,101,69,95,76,119,71,104,105,106, + 107,108,109,110,111,112,113,73,118,72, + 102,117,70,45,23,0,45,23,5,7, 3,1,2,4,6,8,73,0 }; }; @@ -2133,59 +2079,59 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasb { public final static char nasb[] = {0, - 140,11,32,11,11,11,11,11,11,11, - 131,11,11,11,119,11,174,155,108,32, - 32,172,32,32,32,32,32,32,11,11, - 11,11,11,11,11,11,11,11,11,32, - 11,32,231,236,236,236,236,108,103,117, - 67,4,87,224,11,11,117,121,11,224, - 32,65,61,11,11,11,231,11,11,25, - 25,103,155,32,32,32,32,32,32,32, - 32,32,32,32,32,32,32,32,32,32, - 32,32,32,32,32,32,32,32,32,32, - 32,32,32,155,32,224,224,168,1,11, - 11,11,11,52,224,30,130,196,197,11, - 197,106,197,9,197,190,11,11,131,108, - 87,87,30,87,236,123,183,79,224,182, - 184,108,182,224,87,11,11,11,11,11, + 97,11,31,11,11,11,11,11,11,11, + 141,11,11,11,93,11,178,155,192,31, + 31,176,31,31,31,31,31,31,11,11, + 11,11,11,11,11,11,11,11,11,31, + 11,31,163,218,218,218,218,192,195,114, + 20,4,48,240,11,11,114,95,11,240, + 31,40,57,11,11,163,11,11,15,15, + 195,155,31,31,31,31,31,31,31,31, + 31,31,31,31,31,31,31,31,31,31, + 31,31,31,31,31,31,31,31,31,31, + 31,31,155,31,240,240,129,1,11,11, + 11,11,26,240,29,140,214,215,11,215, + 190,215,50,215,208,141,192,48,48,29, + 48,218,133,187,36,240,186,10,192,186, + 240,48,11,11,11,11,11,11,11,11, 11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,130,83,168,44,44,11, - 131,108,11,11,11,11,39,184,11,11, - 11,165,108,117,117,175,117,219,117,11, - 11,117,219,108,10,11,11,32,236,117, - 76,224,11,10,108,100,61,32,163,87, - 11,224,20,117,108,61,155,155,155,155, - 11,11,30,11,42,143,117,117,16,60, - 16,117,57,184,60,39,224,55,165,79, - 11,10,39,224,11,111,11,22,59,39, - 224,224,224,224,103,103,117,42,50,108, - 188,11,11,92,212,143,16,16,208,39, - 57,50,11,11,39,117,96,11,155,165, - 101,11,117,32,11,11,44,44,108,111, - 130,22,224,39,224,224,42,61,11,131, - 117,126,113,11,11,131,98,219,50,32, - 57,55,103,32,87,101,42,32,32,117, - 10,61,224,20,178,117,11,183,117,219, - 117,94,180,188,130,108,11,32,11,37, - 199,219,131,131,184,96,224,87,117,22, - 42,188,22,183,94,150,12,113,180,61, - 32,32,184,219,219,72,224,117,11,11, - 70,70,188,150,89,11,219,11,184,184, - 11,117,72,22,203,117,11,11,117,133, - 12,184,103,222,42,11,203,213,11,10, - 92,22,236,236,63,152,11,32,11,188, - 11,11,11,153,11,10,186,188,188,10, - 138,11,224,224,117,117,11,126,11,117, - 11,11,11,131,11,18,11,11,11,153, - 235,235,226,11,235,188,188,11,117,236, - 72,203,117,203,188,74,11,224,158,117, - 131,117,219,11,236,224,113,224,228,188, - 117,11,224,63,158,123,32,113,188,50, - 203,158,219,158,10,70,224,224,117,153, - 11,153,188,228,113,155,153,18,50,224, - 117,50,10,50,188,11,138,138,111,32, - 11,228,188,224,46,188,182,153,224,228, - 188,50,153,224,46,153 + 11,140,44,129,80,80,11,141,192,11, + 11,11,11,23,10,11,11,11,200,192, + 114,114,179,114,235,114,11,11,114,235, + 192,10,11,11,31,218,114,69,240,11, + 10,192,90,57,31,198,48,11,240,120, + 114,192,57,155,155,155,155,11,11,29, + 11,125,228,114,114,84,56,84,114,51, + 10,56,23,240,82,200,36,11,10,23, + 240,11,108,11,122,55,23,240,240,240, + 240,195,195,114,125,63,192,118,11,11, + 53,221,228,84,84,172,23,51,63,11, + 11,23,114,67,11,155,200,91,11,114, + 31,11,11,80,80,192,108,140,122,240, + 23,240,240,125,57,11,141,114,136,110, + 11,11,141,72,235,63,31,51,82,195, + 31,48,91,125,31,31,114,10,57,240, + 120,182,114,11,187,114,235,114,127,184, + 118,140,192,11,31,11,78,148,235,141, + 141,10,67,240,48,114,122,125,118,122, + 187,127,74,100,110,184,57,31,31,10, + 235,235,106,240,114,11,11,42,42,118, + 74,12,11,235,11,10,10,11,114,106, + 122,203,114,11,11,114,143,100,10,195, + 238,125,11,203,222,11,51,53,122,218, + 218,76,152,11,31,11,118,11,11,11, + 153,11,51,116,118,118,51,88,11,240, + 240,114,114,11,136,11,114,11,11,11, + 141,11,65,11,11,11,153,217,217,158, + 11,217,118,118,11,114,218,106,203,114, + 203,118,86,11,240,167,114,114,141,235, + 11,218,240,110,240,160,118,114,11,240, + 76,167,133,31,110,118,63,203,167,167, + 235,104,42,240,240,114,153,11,153,118, + 160,110,155,153,65,63,240,114,63,63, + 104,118,11,88,88,108,31,11,160,118, + 240,59,118,186,153,240,160,118,63,153, + 240,59,153 }; }; public final static char nasb[] = Nasb.nasb; @@ -2193,30 +2139,31 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasr { public final static char nasr[] = {0, - 3,13,8,153,151,125,150,149,6,1, - 0,170,6,169,0,116,0,118,0,6, - 94,24,5,0,6,2,8,140,0,51, - 5,6,8,2,13,0,186,0,4,3, - 0,64,0,70,0,13,2,8,6,67, - 0,137,68,0,144,0,127,0,137,2, - 68,0,161,0,176,0,5,190,0,115, - 0,129,0,180,0,5,178,0,68,139, - 138,0,13,2,8,6,81,0,5,67, - 0,156,0,159,0,142,0,188,0,1, - 119,0,5,104,0,3,6,1,47,0, - 102,101,66,6,2,8,5,0,5,51, - 172,0,5,29,0,2,66,8,5,94, - 6,0,5,48,39,179,0,59,0,5, - 175,0,5,48,71,109,49,6,0,160, - 0,67,48,72,5,39,0,110,5,48, - 71,0,102,101,6,58,0,101,102,5, - 0,6,13,8,2,3,0,102,101,66, - 58,6,8,2,0,5,39,40,0,1, - 6,125,121,122,123,13,91,0,6,109, - 166,0,5,48,71,82,0,6,109,187, - 0,40,6,2,8,5,158,0,1,57, - 0,51,5,35,0,48,52,5,107,0, - 5,51,39,0,120,5,51,0 + 3,13,8,6,147,145,120,144,143,2, + 0,5,64,0,6,2,8,134,0,5, + 185,0,4,3,0,131,65,0,48,5, + 6,8,2,13,0,65,133,132,0,171, + 0,110,0,13,2,8,6,78,0,6, + 1,0,151,0,131,2,65,0,13,2, + 8,6,64,0,113,0,136,0,5,173, + 0,183,0,155,0,156,0,181,0,67, + 0,138,0,111,0,175,0,56,0,2, + 114,0,5,48,167,0,5,170,0,165, + 6,164,0,150,0,123,0,97,96,63, + 6,2,8,5,0,5,39,40,0,6, + 91,24,5,0,61,0,154,0,96,97, + 5,0,5,29,0,2,63,8,5,91, + 6,0,5,45,39,174,0,6,104,161, + 0,64,45,69,5,39,0,45,49,5, + 102,0,5,48,39,0,105,5,45,68, + 0,6,104,182,0,6,13,8,2,3, + 0,97,96,63,55,6,8,2,0,3, + 6,2,44,0,5,99,0,97,96,6, + 55,0,5,45,68,79,0,2,6,120, + 116,117,118,13,88,0,115,5,48,0, + 40,6,2,8,5,153,0,5,45,68, + 104,46,6,0,2,54,0,48,5,35, + 0 }; }; public final static char nasr[] = Nasr.nasr; @@ -2225,18 +2172,18 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TerminalIndex { public final static char terminalIndex[] = {0, 115,116,2,32,14,11,81,10,102,12, - 13,117,8,9,50,54,62,70,76,77, - 88,89,104,107,109,114,15,57,63,69, + 13,50,54,62,70,76,77,88,89,104, + 107,109,117,8,9,114,15,57,63,69, 86,90,92,96,99,101,111,112,113,46, - 97,60,80,68,122,123,106,56,108,49, - 66,72,75,78,85,91,95,100,20,55, - 3,65,93,103,105,1,79,48,21,45, - 34,121,31,98,120,110,51,52,58,59, + 97,60,80,68,122,123,106,56,95,108, + 49,66,72,75,78,85,91,100,55,20, + 65,93,103,105,3,79,1,48,21,45, + 34,121,31,98,110,120,51,52,58,59, 61,67,71,73,74,87,94,18,19,7, 16,17,22,23,33,5,24,25,26,27, 28,29,6,35,36,37,38,39,40,41, - 42,43,44,30,119,124,82,83,84,4, - 53,64,118 + 42,43,44,82,83,84,30,119,125,53, + 4,64,124,118 }; }; public final static char terminalIndex[] = TerminalIndex.terminalIndex; @@ -2244,26 +2191,26 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, - 131,136,138,240,0,0,137,236,135,0, - 134,0,146,0,133,0,0,145,151,0, - 0,152,161,182,162,163,164,165,154,139, - 166,167,168,169,127,170,171,0,132,129, - 199,144,172,0,0,141,140,0,180,0, - 155,179,0,0,0,0,0,158,175,0, - 206,0,148,189,203,207,128,0,0,208, - 0,174,0,0,0,0,0,0,0,178, - 126,130,0,0,0,0,0,0,0,0, - 188,0,0,204,214,149,160,0,0,210, - 211,212,0,0,0,0,0,209,222,181, - 0,0,0,213,0,0,0,243,150,177, - 191,192,193,194,195,197,198,201,0,216, - 219,221,239,0,242,0,0,142,143,147, - 0,0,157,159,0,173,0,183,184,185, - 186,187,190,0,196,0,200,205,0,217, - 218,0,223,226,228,230,0,233,234,235, - 0,237,238,241,125,0,153,156,176,202, - 215,220,0,224,225,227,229,0,231,232, - 244,245,0,0,0,0,0,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,154,140, + 166,167,168,169,128,170,171,0,133,130, + 172,0,142,141,0,180,0,155,179,0, + 0,0,0,0,158,175,0,205,0,148, + 189,202,206,129,0,0,207,0,174,0, + 0,0,0,0,0,0,178,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,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,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; @@ -2309,18 +2256,18 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeLhs { public final static char scopeLhs[] = { - 49,18,18,76,18,18,18,18,76,85, - 50,90,89,123,69,55,76,75,49,18, - 76,20,3,7,166,166,163,121,49,88, - 123,122,124,56,50,140,134,76,18,18, - 134,103,60,136,79,169,166,163,131,122, - 122,124,52,59,144,19,18,18,18,18, - 18,12,118,163,131,76,75,75,38,140, - 75,18,18,18,18,103,76,20,170,166, - 180,101,108,62,70,61,158,80,124,77, - 73,145,144,176,140,17,163,124,120,132, - 132,58,140,140,76,49,163,74,138,47, - 138,47,169,120,121,49,49,60 + 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,57,130,76,164,161,158,125,117, + 117,119,49,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, + 175,96,103,59,67,58,153,77,119,74, + 70,139,138,171,134,17,158,119,115,126, + 126,55,134,134,73,46,158,71,132,44, + 132,44,164,115,116,46,46,57 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -2328,18 +2275,18 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeLa { public final static byte scopeLa[] = { - 121,75,75,75,75,75,75,75,75,72, - 45,72,72,72,69,1,75,122,61,3, - 45,75,69,69,1,1,45,72,61,72, + 120,76,76,76,76,76,76,76,76,72, + 45,72,72,72,69,1,76,122,65,3, + 45,76,69,69,1,1,45,72,65,72, 72,1,1,1,1,4,69,45,1,1, - 69,75,75,75,121,75,1,45,72,1, - 1,1,45,72,115,75,75,75,75,75, - 115,1,75,1,70,75,75,75,73,4, - 75,69,69,69,69,75,45,3,1,1, - 75,75,3,1,115,75,1,1,1,45, - 73,75,115,75,5,75,1,57,71,1, - 1,6,1,57,76,74,45,45,4,4, - 4,4,3,1,61,1,1,3 + 69,76,76,76,120,76,1,45,72,1, + 1,1,45,72,118,76,76,76,76,76, + 118,1,76,1,70,76,76,76,73,4, + 76,69,69,69,69,76,45,3,1,1, + 76,76,3,1,118,76,1,1,1,45, + 73,76,118,76,5,76,1,49,71,1, + 1,6,1,49,75,74,45,45,4,4, + 4,4,3,1,65,1,1,3 }; }; public final static byte scopeLa[] = ScopeLa.scopeLa; @@ -2366,71 +2313,71 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeRhs { public final static char scopeRhs[] = {0, - 315,3,41,0,127,0,314,3,121,0, - 127,175,0,128,182,74,0,218,0,294, - 128,59,127,0,21,0,296,128,59,57, - 0,21,55,0,34,133,0,21,55,0, - 0,296,128,59,57,194,0,21,130,0, - 294,128,59,131,0,180,129,0,139,0, - 227,3,293,0,293,0,2,0,127,0, - 180,129,232,0,180,129,47,232,0,180, - 129,311,47,0,132,191,170,129,0,129, - 0,191,170,129,0,135,129,0,171,0, - 307,128,171,0,128,171,0,224,129,0, - 170,248,0,138,0,0,0,136,0,0, - 0,306,128,61,255,0,128,0,255,0, - 3,0,0,128,0,305,128,61,0,45, - 128,0,152,3,0,128,283,282,128,74, - 281,171,0,282,128,74,281,171,0,217, - 0,218,0,281,171,0,98,0,0,217, - 0,218,0,205,98,0,0,217,0,218, - 0,282,128,281,171,0,217,0,205,0, - 0,217,0,235,128,3,0,127,0,0, - 0,0,0,235,128,3,224,0,231,3, - 0,217,128,0,210,0,149,0,170,129, - 0,11,0,0,0,220,66,0,126,0, - 235,128,3,184,0,184,0,2,0,0, - 127,0,0,0,0,0,203,3,0,203, - 0,234,128,61,26,44,0,180,129,67, - 65,0,144,129,0,132,180,129,279,65, - 0,180,129,279,65,0,180,129,71,124, - 67,0,234,128,61,67,0,234,128,61, - 164,67,0,234,128,61,125,67,0,277, - 128,61,124,62,0,277,128,61,62,0, - 180,129,62,0,136,0,191,180,129,248, - 0,138,0,180,129,248,0,191,170,129, - 9,0,170,129,9,0,95,138,0,270, - 128,171,0,162,86,0,230,163,230,175, - 3,83,0,127,174,0,230,175,3,83, - 0,129,0,127,174,0,230,163,230,163, - 230,3,83,0,230,163,230,3,83,0, - 230,3,83,0,129,0,129,0,127,174, - 0,162,3,76,195,81,0,127,129,0, - 195,81,0,110,2,132,127,129,0,243, - 3,76,0,203,174,0,34,172,0,174, - 0,178,34,172,0,243,3,87,0,195, - 158,243,3,85,0,64,174,0,243,3, - 85,0,127,174,64,174,0,302,128,61, - 0,162,0,220,78,0,31,0,162,114, - 160,0,31,172,0,227,3,0,220,66, - 267,0,162,66,0,186,3,299,43,129, - 0,127,0,0,0,0,299,43,129,0, - 2,148,127,0,0,0,0,186,3,32, - 0,150,0,126,57,170,129,0,32,150, - 0,95,138,32,150,0,219,180,129,0, - 149,32,150,0,186,3,36,0,162,3, - 36,0,162,3,69,186,59,28,0,186, - 59,28,0,21,2,132,127,0,162,3, - 69,186,59,31,0,186,59,31,0,162, - 3,69,186,59,33,0,186,59,33,0, - 162,3,69,186,59,29,0,186,59,29, - 0,227,3,126,191,170,129,9,0,126, - 191,170,129,9,0,138,2,0,127,0, - 227,3,125,260,170,129,9,0,260,170, - 129,9,0,136,2,0,127,0,227,3, - 136,0,227,3,141,0,162,66,141,0, - 262,0,32,0,32,142,0,169,0,135, - 0,162,3,0 + 311,3,41,0,128,0,310,3,120,0, + 128,175,0,129,180,74,0,217,0,290, + 129,60,128,0,21,0,292,129,60,49, + 0,21,55,0,34,134,0,21,55,0, + 0,292,129,60,49,192,0,21,131,0, + 290,129,60,132,0,178,130,0,140,0, + 223,3,289,0,289,0,2,0,128,0, + 178,130,228,0,178,130,47,228,0,178, + 130,307,47,0,133,189,168,130,0,130, + 0,189,168,130,0,136,130,0,169,0, + 303,129,169,0,129,169,0,223,130,0, + 168,244,0,139,0,0,0,137,0,0, + 0,302,129,65,250,0,129,0,250,0, + 3,0,0,129,0,301,129,65,0,45, + 129,0,153,3,0,129,279,278,129,74, + 277,169,0,278,129,74,277,169,0,216, + 0,217,0,277,169,0,98,0,0,216, + 0,217,0,204,98,0,0,216,0,217, + 0,278,129,277,169,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, + 0,11,0,0,0,218,67,0,127,0, + 231,129,3,182,0,182,0,2,0,0, + 128,0,0,0,0,0,201,3,0,202, + 0,230,129,65,26,44,0,178,130,66, + 64,0,198,130,0,133,178,130,275,64, + 0,178,130,275,64,0,178,130,71,125, + 66,0,230,129,65,66,0,230,129,65, + 123,66,0,230,129,65,126,66,0,272, + 129,65,125,61,0,272,129,65,61,0, + 178,130,61,0,137,0,189,178,130,244, + 0,139,0,178,130,244,0,189,168,130, + 9,0,168,130,9,0,95,139,0,265, + 129,169,0,163,86,0,226,164,226,173, + 3,83,0,128,174,0,226,173,3,83, + 0,130,0,128,174,0,226,164,226,164, + 226,3,83,0,226,164,226,3,83,0, + 226,3,83,0,130,0,130,0,128,174, + 0,163,3,75,193,81,0,128,130,0, + 193,81,0,110,2,133,128,130,0,239, + 3,75,0,201,172,0,34,172,0,172, + 0,178,34,172,0,239,3,87,0,193, + 159,239,3,85,0,64,174,0,239,3, + 85,0,128,174,64,174,0,298,129,65, + 0,163,0,218,78,0,31,0,163,117, + 161,0,31,172,0,223,3,0,218,67, + 262,0,163,67,0,184,3,295,43,130, + 0,128,0,0,0,0,295,43,130,0, + 2,148,128,0,0,0,0,184,3,32, + 0,150,0,127,49,168,130,0,32,150, + 0,95,139,32,150,0,217,178,130,0, + 149,32,150,0,184,3,36,0,163,3, + 36,0,163,3,69,184,60,28,0,184, + 60,28,0,21,2,133,128,0,163,3, + 69,184,60,31,0,184,60,31,0,163, + 3,69,184,60,33,0,184,60,33,0, + 163,3,69,184,60,29,0,184,60,29, + 0,223,3,127,189,168,130,9,0,127, + 189,168,130,9,0,139,2,0,128,0, + 223,3,126,255,168,130,9,0,255,168, + 130,9,0,137,2,0,128,0,223,3, + 137,0,223,3,142,0,163,67,142,0, + 257,0,32,0,32,143,0,167,0,136, + 0,163,3,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -2438,38 +2385,38 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeState { public final static char scopeState[] = {0, - 1377,0,5006,4976,4975,0,1646,1169,623,1108, - 0,3856,3815,3774,3733,3692,3651,4944,3610,3553, - 3063,2997,3309,3263,4407,3172,3162,4361,4315,4269, - 4223,0,1466,1376,1331,0,2750,574,0,3856, - 3815,3774,3279,3206,3733,3692,3651,3610,2999,3553, - 3063,2997,3635,3018,0,3169,3284,2755,0,2697, - 2426,0,4176,4466,0,3562,4539,0,3562,4605, - 1171,3518,4539,2864,4498,4511,4524,3143,581,3534, - 2945,2783,2701,0,2407,1026,0,4232,3017,3309, - 3263,4407,3172,3162,4361,4315,4269,4223,3856,3815, - 3774,3733,3692,3651,3610,3553,3063,2997,0,3309, - 3263,4407,3172,3162,4361,4315,4269,4223,4232,3017, - 0,3168,1915,0,3143,4605,3696,1171,3518,4876, - 2945,2304,3778,3042,624,3286,848,811,724,0, - 2322,1790,1520,958,3518,3286,2864,2783,2701,3611, - 3305,0,1103,662,0,1119,0,4166,535,2435, - 0,4842,4791,4784,4777,4770,4719,4712,4705,4698, - 4647,4918,4911,4863,4856,4634,4627,4849,4423,4332, - 3325,2535,4346,3294,0,4842,4791,3157,2939,2857, - 4784,4777,4770,2542,2006,4719,4712,4705,3093,4698, - 3875,4647,3400,3274,4918,2877,2774,3029,2489,4911, - 2454,4863,4552,2742,4856,4634,4627,2328,4849,747, - 4423,4332,649,3325,4166,2535,2435,4346,3294,2317, - 973,805,2443,911,2864,4498,4511,4524,3143,3562, - 4605,581,1171,3518,3534,2945,2783,4539,2701,2227, - 2135,1103,662,4191,2280,2333,2402,2368,2494,2460, - 594,2810,2714,2673,2645,2617,2589,3494,3470,3446, - 2973,2892,4143,4120,4097,4074,4051,4028,4005,3982, - 3959,3421,3936,1031,2012,2241,2188,2149,2096,1245, - 1184,2057,819,1120,928,1959,1920,753,689,535, - 1875,1830,1785,1740,1695,1650,1605,1560,1515,1470, - 1425,1380,1335,864,1058,986,1290,0 + 2056,0,4840,4686,4372,0,2662,1498,999,1332, + 0,3739,3701,3647,3609,3555,3517,3053,3463,3425, + 2976,2938,3189,3180,4239,3091,3081,4185,4142,4078, + 4069,0,3422,2856,2562,0,3037,2545,0,3739, + 3701,3647,3428,2950,3609,3555,3517,3463,2379,3425, + 2976,2938,3486,1123,0,4086,990,2690,0,2561, + 1053,0,2955,3095,0,4621,4529,0,4621,4608, + 4544,3393,4529,2804,4327,4427,4515,3062,4340,4451, + 2882,2726,2644,0,2310,2009,0,2951,4589,3189, + 3180,4239,3091,3081,4185,4142,4078,4069,3739,3701, + 3647,3609,3555,3517,3463,3425,2976,2938,0,3189, + 3180,4239,3091,3081,4185,4142,4078,4069,2951,4589, + 0,894,709,0,3062,4608,4309,4544,3393,4644, + 2882,4300,4242,3473,2688,3548,1178,3192,3097,0, + 2457,1912,1697,1678,3393,3548,2804,2726,2644,3480, + 2868,0,647,569,0,764,0,4357,526,2440, + 0,4832,4812,4807,4795,4787,4775,4740,4728,4719, + 4694,4273,4215,4168,4096,4673,4658,3207,4365,4203, + 3439,3414,2534,2235,0,4832,4812,3431,3406,3289, + 4807,4795,4787,2798,2715,4775,4740,4728,2875,4719, + 1138,4694,1131,1077,4273,1072,1015,2057,1008,4215, + 2459,4168,3215,1143,4096,4673,4658,1003,3207,660, + 4365,4203,2539,3439,4357,3414,2440,2534,2235,948, + 877,784,895,717,2804,4327,4427,4515,3062,4621, + 4608,4340,4544,3393,4451,2882,2726,4529,2644,859, + 844,647,569,4046,2241,2280,2349,2315,2411,2382, + 582,2748,2657,2616,2588,2496,2465,3369,3345,3321, + 2908,2830,4023,4000,3977,3954,3931,3908,3885,3862, + 3839,3296,3816,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 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2477,59 +2424,59 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface InSymb { public final static char inSymb[] = {0, - 0,298,128,46,269,36,28,31,33,29, - 9,136,125,127,7,131,4,3,129,32, - 27,5,11,10,6,8,14,13,141,146, - 149,148,151,150,155,154,157,156,159,41, - 160,70,3,59,59,59,59,129,3,59, - 174,128,66,3,42,43,59,7,125,162, - 42,43,170,169,124,125,3,126,125,103, - 120,3,66,90,96,11,10,92,91,6, - 94,93,69,59,88,89,8,98,97,100, - 99,101,113,112,111,110,109,108,107,106, - 105,104,71,114,102,186,162,174,128,186, - 186,186,186,170,227,128,128,271,272,255, - 273,248,274,62,275,276,124,125,9,129, - 66,66,128,66,299,3,191,4,186,57, - 5,129,57,227,162,148,148,146,146,146, - 150,150,150,150,149,149,154,151,151,156, - 155,157,162,159,128,66,3,225,224,136, - 9,129,69,69,69,69,191,260,294,134, - 297,217,129,6,61,170,238,129,126,125, - 124,61,129,129,180,170,294,204,3,300, - 174,152,262,191,129,180,170,73,217,220, - 160,231,128,3,129,170,3,3,3,3, - 126,125,70,170,128,128,126,125,128,180, - 128,61,128,180,170,57,186,128,128,4, - 219,5,57,235,236,147,237,128,170,57, - 162,162,162,162,3,3,6,187,306,129, - 172,232,194,65,171,308,128,128,73,191, - 128,277,250,278,191,158,264,267,66,181, - 4,126,158,71,231,203,189,184,129,3, - 128,70,235,191,227,227,128,170,57,279, - 281,128,3,184,310,232,47,129,277,71, - 70,128,3,66,162,4,128,71,71,3, - 180,170,203,128,217,158,126,191,59,129, - 74,128,217,307,128,129,125,73,288,203, - 70,129,47,311,180,264,227,220,228,128, - 128,132,128,180,128,282,73,70,217,170, - 73,71,180,129,129,128,235,228,296,57, - 9,60,132,282,61,292,129,293,180,180, - 41,158,128,70,69,59,238,238,283,128, - 70,180,3,3,128,44,57,171,68,67, - 65,128,71,71,128,302,80,78,1,162, - 87,85,83,81,76,84,86,79,77,67, - 74,46,227,315,228,26,59,128,3,61, - 164,124,125,67,296,284,121,12,220,73, - 3,3,3,195,3,124,162,124,182,70, - 128,128,61,69,270,203,280,26,128,61, - 71,61,129,69,3,243,174,243,175,230, - 171,76,243,128,128,3,71,70,158,234, - 233,128,129,128,180,60,95,314,174,158, - 203,158,230,163,128,3,158,284,234,152, - 61,234,180,234,165,238,158,158,128,71, - 195,163,230,162,128,165,71,122,230,163, - 158,305,158,230,70,158 + 0,294,129,46,264,36,28,31,33,29, + 9,137,126,128,7,132,4,3,130,32, + 27,5,11,10,6,8,25,24,142,147, + 150,149,152,151,156,155,158,157,160,41, + 161,70,3,60,60,60,60,130,3,60, + 172,129,67,3,42,43,60,7,126,163, + 42,43,168,167,126,3,127,126,103,121, + 3,67,90,96,11,10,92,91,6,94, + 93,69,60,88,89,8,98,97,100,99, + 101,113,112,111,110,109,108,107,106,105, + 104,71,117,102,184,163,172,129,184,184, + 184,184,168,223,129,129,266,267,250,268, + 244,269,61,270,271,9,130,67,67,129, + 67,295,3,189,4,184,49,5,130,49, + 223,163,149,149,147,147,147,151,151,151, + 151,150,150,155,152,152,157,156,158,163, + 160,129,67,3,221,220,137,9,130,69, + 69,69,69,189,255,290,135,293,215,130, + 6,65,168,234,130,127,126,125,65,130, + 130,178,168,290,202,3,296,172,153,257, + 189,130,178,168,73,215,218,161,227,129, + 3,130,168,3,3,3,3,127,126,70, + 168,129,129,127,126,129,178,129,65,129, + 178,168,49,184,129,129,4,217,5,49, + 231,232,148,233,129,168,49,163,163,163, + 163,3,3,6,185,302,130,170,228,192, + 64,169,304,129,129,73,189,129,272,125, + 273,189,159,259,262,67,179,4,127,159, + 71,227,201,187,182,130,3,129,70,231, + 189,223,223,129,168,49,275,277,129,3, + 182,306,228,47,130,272,71,70,129,3, + 67,163,4,129,71,71,3,178,168,201, + 129,215,159,127,189,60,130,74,129,215, + 303,129,130,126,73,284,201,70,130,47, + 307,178,259,223,218,224,129,129,133,129, + 178,129,278,73,70,215,168,73,71,178, + 130,130,129,231,224,292,49,9,59,133, + 278,65,288,130,289,178,178,41,159,129, + 70,69,60,234,234,279,129,70,178,3, + 3,129,44,49,169,68,66,64,129,71, + 71,129,298,80,78,1,163,87,85,83, + 81,75,84,86,79,77,66,74,46,223, + 311,224,26,60,129,3,65,123,126,125, + 66,292,280,120,23,218,73,3,3,3, + 193,3,125,163,125,180,70,129,129,65, + 69,265,201,276,26,129,65,65,71,130, + 69,3,239,172,239,173,226,169,75,239, + 129,129,3,71,70,159,230,229,129,129, + 130,178,59,95,310,172,159,201,159,226, + 164,129,3,159,280,230,153,65,230,230, + 178,274,234,159,159,129,71,193,164,226, + 163,129,274,71,122,226,164,159,301,159, + 226,70,159 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2661,6 +2608,7 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab "RightBrace", "SemiColon", "ERROR_TOKEN", + "original_namespace_name", "EOF_TOKEN", "no_cast_start", "]", @@ -2683,7 +2631,6 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab "plate", "class_or_namespace_name_with_t" + "emplate", - "namespace_name", "postfix_expression", "simple_type_specifier", "pseudo_destructor_name", @@ -2739,8 +2686,7 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab "class_keyword", "enumerator_list", "enumerator_definition", - "enumerator", - "original_namespace_name", + "namespace_name", "init_declarator_list", "init_declarator", "initializer", @@ -2806,20 +2752,20 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 526, - NT_OFFSET = 123, - LA_STATE_OFFSET = 6025, + NUM_STATES = 523, + NT_OFFSET = 124, + LA_STATE_OFFSET = 5898, MAX_LA = 2147483647, - NUM_RULES = 534, - NUM_NONTERMINALS = 198, - NUM_SYMBOLS = 321, + NUM_RULES = 525, + NUM_NONTERMINALS = 193, + NUM_SYMBOLS = 317, SEGMENT_SIZE = 8192, - START_STATE = 3015, + START_STATE = 2526, IDENTIFIER_SYMBOL = 0, - EOFT_SYMBOL = 116, - EOLT_SYMBOL = 116, - ACCEPT_ACTION = 5128, - ERROR_ACTION = 5491; + EOFT_SYMBOL = 119, + EOLT_SYMBOL = 119, + ACCEPT_ACTION = 5011, + ERROR_ACTION = 5373; public final static boolean BACKTRACK = true; diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParsersym.java index 26b9d937a72..f5c1a1c1a53 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParsersym.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParsersym.java @@ -16,53 +16,53 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp; public interface CPPNoCastExpressionParsersym { public final static int TK_asm = 68, - TK_auto = 50, - TK_bool = 15, + TK_auto = 51, + TK_bool = 12, TK_break = 77, TK_case = 78, - TK_catch = 121, - TK_char = 16, - TK_class = 60, + TK_catch = 120, + TK_char = 13, + TK_class = 59, TK_const = 48, TK_const_cast = 28, TK_continue = 79, TK_default = 80, TK_delete = 42, TK_do = 81, - TK_double = 17, + TK_double = 14, TK_dynamic_cast = 29, TK_else = 122, - TK_enum = 62, - TK_explicit = 51, + TK_enum = 61, + TK_explicit = 52, TK_export = 82, TK_extern = 44, TK_false = 30, - TK_float = 18, + TK_float = 15, TK_for = 83, - TK_friend = 52, + TK_friend = 53, TK_goto = 84, TK_if = 85, - TK_inline = 53, - TK_int = 19, - TK_long = 20, - TK_mutable = 54, - TK_namespace = 67, + TK_inline = 54, + TK_int = 16, + TK_long = 17, + TK_mutable = 55, + TK_namespace = 66, TK_new = 43, TK_operator = 7, - TK_private = 117, - TK_protected = 118, - TK_public = 119, - TK_register = 55, + TK_private = 114, + TK_protected = 115, + TK_public = 116, + TK_register = 56, TK_reinterpret_cast = 31, TK_return = 86, - TK_short = 21, - TK_signed = 22, + TK_short = 18, + TK_signed = 19, TK_sizeof = 32, - TK_static = 56, + TK_static = 57, TK_static_cast = 33, - TK_struct = 63, + TK_struct = 62, TK_switch = 87, - TK_template = 57, + TK_template = 49, TK_this = 34, TK_throw = 41, TK_try = 74, @@ -70,31 +70,31 @@ public interface CPPNoCastExpressionParsersym { TK_typedef = 58, TK_typeid = 36, TK_typename = 9, - TK_union = 64, - TK_unsigned = 23, - TK_using = 65, + TK_union = 63, + TK_unsigned = 20, + TK_using = 64, TK_virtual = 47, - TK_void = 24, - TK_volatile = 49, - TK_wchar_t = 25, - TK_while = 76, + TK_void = 21, + TK_volatile = 50, + TK_wchar_t = 22, + TK_while = 75, TK_integer = 37, TK_floating = 38, TK_charconst = 39, TK_stringlit = 26, TK_identifier = 1, TK_Completion = 2, - TK_EndOfCompletion = 12, - TK_Invalid = 123, - TK_LeftBracket = 66, + TK_EndOfCompletion = 23, + TK_Invalid = 124, + TK_LeftBracket = 67, TK_LeftParen = 3, - TK_LeftBrace = 61, - TK_Dot = 120, + TK_LeftBrace = 65, + TK_Dot = 121, TK_DotStar = 96, TK_Arrow = 103, TK_ArrowStar = 90, - TK_PlusPlus = 13, - TK_MinusMinus = 14, + TK_PlusPlus = 24, + TK_MinusMinus = 25, TK_And = 8, TK_Star = 6, TK_Plus = 10, @@ -105,7 +105,7 @@ public interface CPPNoCastExpressionParsersym { TK_Percent = 92, TK_RightShift = 88, TK_LeftShift = 89, - TK_LT = 59, + TK_LT = 60, TK_GT = 69, TK_LE = 93, TK_GE = 94, @@ -115,7 +115,7 @@ public interface CPPNoCastExpressionParsersym { TK_Or = 100, TK_AndAnd = 101, TK_OrOr = 102, - TK_Question = 114, + TK_Question = 117, TK_Colon = 73, TK_ColonColon = 4, TK_DotDotDot = 95, @@ -132,12 +132,13 @@ public interface CPPNoCastExpressionParsersym { TK_OrAssign = 113, TK_Comma = 70, TK_zero = 40, - TK_RightBracket = 115, - TK_RightParen = 75, + TK_RightBracket = 118, + TK_RightParen = 76, TK_RightBrace = 72, TK_SemiColon = 45, TK_ERROR_TOKEN = 46, - TK_EOF_TOKEN = 116; + TK_original_namespace_name = 123, + TK_EOF_TOKEN = 119; public final static String orderedTerminalSymbols[] = { "", @@ -152,9 +153,6 @@ public interface CPPNoCastExpressionParsersym { "typename", "Plus", "Minus", - "EndOfCompletion", - "PlusPlus", - "MinusMinus", "bool", "char", "double", @@ -166,6 +164,9 @@ public interface CPPNoCastExpressionParsersym { "unsigned", "void", "wchar_t", + "EndOfCompletion", + "PlusPlus", + "MinusMinus", "stringlit", "Bang", "const_cast", @@ -189,6 +190,7 @@ public interface CPPNoCastExpressionParsersym { "ERROR_TOKEN", "virtual", "const", + "template", "volatile", "auto", "explicit", @@ -197,17 +199,16 @@ public interface CPPNoCastExpressionParsersym { "mutable", "register", "static", - "template", "typedef", - "LT", "class", - "LeftBrace", + "LT", "enum", "struct", "union", "using", - "LeftBracket", + "LeftBrace", "namespace", + "LeftBracket", "asm", "GT", "Comma", @@ -215,8 +216,8 @@ public interface CPPNoCastExpressionParsersym { "RightBrace", "Colon", "try", - "RightParen", "while", + "RightParen", "break", "case", "continue", @@ -254,15 +255,16 @@ public interface CPPNoCastExpressionParsersym { "AndAssign", "CaretAssign", "OrAssign", - "Question", - "RightBracket", - "EOF_TOKEN", "private", "protected", "public", - "Dot", + "Question", + "RightBracket", + "EOF_TOKEN", "catch", + "Dot", "else", + "original_namespace_name", "Invalid" }; diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParser.java index 54a0f08ac32..5b8c9c8f439 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 @@ -481,1612 +481,1612 @@ public CPPParser(String[] mapFrom) { // constructor } // - // Rule 57: postfix_expression ::= postfix_expression [ expression ] + // Rule 56: postfix_expression ::= postfix_expression [ expression ] // - case 57: { action.builder. + case 56: { action.builder. consumeExpressionArraySubscript(); break; } // - // Rule 58: postfix_expression ::= postfix_expression ( expression_list_opt ) + // Rule 57: postfix_expression ::= postfix_expression ( expression_list_opt ) // - case 58: { action.builder. + case 57: { action.builder. consumeExpressionFunctionCall(); break; } // - // Rule 59: postfix_expression ::= simple_type_specifier ( expression_list_opt ) + // Rule 58: postfix_expression ::= simple_type_specifier ( expression_list_opt ) // - case 59: { action.builder. + case 58: { action.builder. consumeExpressionSimpleTypeConstructor(); break; } // - // Rule 60: postfix_expression ::= typename dcolon_opt nested_name_specifier identifier_name ( expression_list_opt ) + // Rule 59: postfix_expression ::= typename dcolon_opt nested_name_specifier 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 ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) + // Rule 61: postfix_expression ::= postfix_expression . qualified_or_unqualified_name // case 61: { action.builder. - consumeExpressionTypeName(); break; - } - - // - // Rule 62: postfix_expression ::= postfix_expression . qualified_or_unqualified_name - // - case 62: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 63: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name + // Rule 62: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name // - case 63: { action.builder. + case 62: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 64: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name + // Rule 63: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name // - case 64: { action.builder. + case 63: { action.builder. consumeExpressionFieldReference(false, true); break; } // - // Rule 65: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name + // Rule 64: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name // - case 65: { action.builder. + case 64: { action.builder. consumeExpressionFieldReference(true, true); break; } // - // Rule 66: postfix_expression ::= postfix_expression . pseudo_destructor_name + // Rule 65: postfix_expression ::= postfix_expression . pseudo_destructor_name // - case 66: { action.builder. + case 65: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 67: postfix_expression ::= postfix_expression -> pseudo_destructor_name + // Rule 66: postfix_expression ::= postfix_expression -> pseudo_destructor_name // - case 67: { action.builder. + case 66: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 68: postfix_expression ::= postfix_expression ++ + // Rule 67: postfix_expression ::= postfix_expression ++ // - case 68: { action.builder. + case 67: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; } // - // Rule 69: postfix_expression ::= postfix_expression -- + // Rule 68: postfix_expression ::= postfix_expression -- // - case 69: { action.builder. + case 68: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; } // - // Rule 70: postfix_expression ::= dynamic_cast < type_id > ( expression ) + // Rule 69: postfix_expression ::= dynamic_cast < type_id > ( expression ) // - case 70: { action.builder. + case 69: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); break; } // - // Rule 71: postfix_expression ::= static_cast < type_id > ( expression ) + // Rule 70: postfix_expression ::= static_cast < type_id > ( expression ) // - case 71: { action.builder. + case 70: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_static_cast); break; } // - // Rule 72: postfix_expression ::= reinterpret_cast < type_id > ( expression ) + // Rule 71: postfix_expression ::= reinterpret_cast < type_id > ( expression ) // - case 72: { action.builder. + case 71: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); break; } // - // Rule 73: postfix_expression ::= const_cast < type_id > ( expression ) + // Rule 72: postfix_expression ::= const_cast < type_id > ( expression ) // - case 73: { action.builder. + case 72: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_const_cast); break; } // - // Rule 74: postfix_expression ::= typeid ( expression ) + // Rule 73: postfix_expression ::= typeid ( expression ) // - case 74: { action.builder. + case 73: { action.builder. consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break; } // - // Rule 75: postfix_expression ::= typeid ( type_id ) + // Rule 74: postfix_expression ::= typeid ( type_id ) // - case 75: { action.builder. + case 74: { action.builder. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid); break; } // - // Rule 76: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name + // Rule 75: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name + // + case 75: { action.builder. + consumePsudoDestructorName(true); break; + } + + // + // Rule 76: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name // case 76: { action.builder. consumePsudoDestructorName(true); break; } // - // Rule 77: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name + // Rule 77: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name // case 77: { action.builder. - consumePsudoDestructorName(true); break; - } - - // - // Rule 78: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name - // - case 78: { action.builder. consumePsudoDestructorName(false); break; } // - // Rule 79: destructor_type_name ::= ~ type_name + // Rule 78: destructor_type_name ::= ~ type_name // - case 79: { action.builder. + case 78: { action.builder. consumeDestructorName(); break; } // - // Rule 83: unary_expression ::= ++ cast_expression + // Rule 82: unary_expression ::= ++ cast_expression // - case 83: { action.builder. + case 82: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; } // - // Rule 84: unary_expression ::= -- cast_expression + // Rule 83: unary_expression ::= -- cast_expression // - case 84: { action.builder. + case 83: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; } // - // Rule 85: unary_expression ::= & cast_expression + // Rule 84: unary_expression ::= & cast_expression // - case 85: { action.builder. + case 84: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; } // - // Rule 86: unary_expression ::= * cast_expression + // Rule 85: unary_expression ::= * cast_expression // - case 86: { action.builder. + case 85: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; } // - // Rule 87: unary_expression ::= + cast_expression + // Rule 86: unary_expression ::= + cast_expression // - case 87: { action.builder. + case 86: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; } // - // Rule 88: unary_expression ::= - cast_expression + // Rule 87: unary_expression ::= - cast_expression // - case 88: { action.builder. + case 87: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; } // - // Rule 89: unary_expression ::= ~ cast_expression + // Rule 88: unary_expression ::= ~ cast_expression // - case 89: { action.builder. + case 88: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; } // - // Rule 90: unary_expression ::= ! cast_expression + // Rule 89: unary_expression ::= ! cast_expression // - case 90: { action.builder. + case 89: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; } // - // Rule 91: unary_expression ::= sizeof unary_expression + // Rule 90: unary_expression ::= sizeof unary_expression // - case 91: { action.builder. + case 90: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; } // - // Rule 92: unary_expression ::= sizeof ( type_id ) + // Rule 91: unary_expression ::= sizeof ( type_id ) // - case 92: { action.builder. + case 91: { action.builder. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_sizeof); break; } // - // Rule 93: new_expression ::= dcolon_opt new new_placement_opt new_type_id new_array_expressions_opt new_initializer_opt + // Rule 92: new_expression ::= dcolon_opt new new_placement_opt new_type_id new_array_expressions_opt new_initializer_opt // - case 93: { action.builder. + case 92: { action.builder. consumeExpressionNew(true); break; } // - // Rule 94: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_array_expressions_opt new_initializer_opt + // Rule 93: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_array_expressions_opt new_initializer_opt // - case 94: { action.builder. + case 93: { action.builder. consumeExpressionNew(false); break; } // - // Rule 96: new_placement_opt ::= $Empty + // Rule 95: new_placement_opt ::= $Empty // - case 96: { action.builder. + case 95: { action.builder. consumeEmpty(); break; } // - // Rule 97: new_type_id ::= type_specifier_seq + // Rule 96: new_type_id ::= type_specifier_seq // - case 97: { action.builder. + case 96: { action.builder. consumeTypeId(false); break; } // - // Rule 98: new_type_id ::= type_specifier_seq new_declarator + // Rule 97: new_type_id ::= type_specifier_seq new_declarator // - case 98: { action.builder. + case 97: { action.builder. consumeTypeId(true); break; } // - // Rule 99: new_declarator ::= new_pointer_operators + // Rule 98: new_declarator ::= new_pointer_operators // - case 99: { action.builder. + case 98: { action.builder. consumeNewDeclarator(); break; } // - // Rule 108: new_initializer_opt ::= $Empty + // Rule 107: new_initializer_opt ::= $Empty // - case 108: { action.builder. + case 107: { action.builder. consumeEmpty(); break; } // - // Rule 109: delete_expression ::= dcolon_opt delete cast_expression + // Rule 108: delete_expression ::= dcolon_opt delete cast_expression // - case 109: { action.builder. + case 108: { action.builder. consumeExpressionDelete(false); break; } // - // Rule 110: delete_expression ::= dcolon_opt delete [ ] cast_expression + // Rule 109: delete_expression ::= dcolon_opt delete [ ] cast_expression // - case 110: { action.builder. + case 109: { action.builder. consumeExpressionDelete(true); break; } // - // Rule 112: cast_expression ::= ( type_id ) cast_expression + // Rule 111: cast_expression ::= ( type_id ) cast_expression // - case 112: { action.builder. + case 111: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_cast); break; } // - // Rule 114: pm_expression ::= pm_expression .* cast_expression + // Rule 113: pm_expression ::= pm_expression .* cast_expression // - case 114: { action.builder. + case 113: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot); break; } // - // Rule 115: pm_expression ::= pm_expression ->* cast_expression + // Rule 114: pm_expression ::= pm_expression ->* cast_expression // - case 115: { action.builder. + case 114: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow); break; } // - // Rule 117: multiplicative_expression ::= multiplicative_expression * pm_expression + // Rule 116: multiplicative_expression ::= multiplicative_expression * pm_expression // - case 117: { action.builder. + case 116: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply); break; } // - // Rule 118: multiplicative_expression ::= multiplicative_expression / pm_expression + // Rule 117: multiplicative_expression ::= multiplicative_expression / pm_expression // - case 118: { action.builder. + case 117: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide); break; } // - // Rule 119: multiplicative_expression ::= multiplicative_expression % pm_expression + // Rule 118: multiplicative_expression ::= multiplicative_expression % pm_expression // - case 119: { action.builder. + case 118: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo); break; } // - // Rule 121: additive_expression ::= additive_expression + multiplicative_expression + // Rule 120: additive_expression ::= additive_expression + multiplicative_expression // - case 121: { action.builder. + case 120: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus); break; } // - // Rule 122: additive_expression ::= additive_expression - multiplicative_expression + // Rule 121: additive_expression ::= additive_expression - multiplicative_expression // - case 122: { action.builder. + case 121: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus); break; } // - // Rule 124: shift_expression ::= shift_expression << additive_expression + // Rule 123: shift_expression ::= shift_expression << additive_expression // - case 124: { action.builder. + case 123: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft); break; } // - // Rule 125: shift_expression ::= shift_expression >> additive_expression + // Rule 124: shift_expression ::= shift_expression >> additive_expression // - case 125: { action.builder. + case 124: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight); break; } // - // Rule 127: relational_expression ::= relational_expression < shift_expression + // Rule 126: relational_expression ::= relational_expression < shift_expression // - case 127: { action.builder. + case 126: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; } // - // Rule 128: relational_expression ::= relational_expression > shift_expression + // Rule 127: relational_expression ::= relational_expression > shift_expression // - case 128: { action.builder. + case 127: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; } // - // Rule 129: relational_expression ::= relational_expression <= shift_expression + // Rule 128: relational_expression ::= relational_expression <= shift_expression // - case 129: { action.builder. + case 128: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; } // - // Rule 130: relational_expression ::= relational_expression >= shift_expression + // Rule 129: relational_expression ::= relational_expression >= shift_expression // - case 130: { action.builder. + case 129: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; } // - // Rule 132: equality_expression ::= equality_expression == relational_expression + // Rule 131: equality_expression ::= equality_expression == relational_expression // - case 132: { action.builder. + case 131: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; } // - // Rule 133: equality_expression ::= equality_expression != relational_expression + // Rule 132: equality_expression ::= equality_expression != relational_expression // - case 133: { action.builder. + case 132: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; } // - // Rule 135: and_expression ::= and_expression & equality_expression + // Rule 134: and_expression ::= and_expression & equality_expression // - case 135: { action.builder. + case 134: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; } // - // Rule 137: exclusive_or_expression ::= exclusive_or_expression ^ and_expression + // Rule 136: exclusive_or_expression ::= exclusive_or_expression ^ and_expression // - case 137: { action.builder. + case 136: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; } // - // Rule 139: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression + // Rule 138: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression // - case 139: { action.builder. + case 138: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; } // - // Rule 141: logical_and_expression ::= logical_and_expression && inclusive_or_expression + // Rule 140: logical_and_expression ::= logical_and_expression && inclusive_or_expression // - case 141: { action.builder. + case 140: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; } // - // Rule 143: logical_or_expression ::= logical_or_expression || logical_and_expression + // Rule 142: logical_or_expression ::= logical_or_expression || logical_and_expression // - case 143: { action.builder. + case 142: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; } // - // Rule 145: conditional_expression ::= logical_or_expression ? expression : assignment_expression + // Rule 144: conditional_expression ::= logical_or_expression ? expression : assignment_expression // - case 145: { action.builder. + case 144: { action.builder. consumeExpressionConditional(); break; } // - // Rule 146: throw_expression ::= throw + // Rule 145: throw_expression ::= throw // - case 146: { action.builder. + case 145: { action.builder. consumeExpressionThrow(false); break; } // - // Rule 147: throw_expression ::= throw assignment_expression + // Rule 146: throw_expression ::= throw assignment_expression // - case 147: { action.builder. + case 146: { action.builder. consumeExpressionThrow(true); break; } // - // Rule 150: assignment_expression ::= logical_or_expression = assignment_expression + // Rule 149: assignment_expression ::= logical_or_expression = assignment_expression // - case 150: { action.builder. + case 149: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; } // - // Rule 151: assignment_expression ::= logical_or_expression *= assignment_expression + // Rule 150: assignment_expression ::= logical_or_expression *= assignment_expression // - case 151: { action.builder. + case 150: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 152: assignment_expression ::= logical_or_expression /= assignment_expression + // Rule 151: assignment_expression ::= logical_or_expression /= assignment_expression // - case 152: { action.builder. + case 151: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; } // - // Rule 153: assignment_expression ::= logical_or_expression %= assignment_expression + // Rule 152: assignment_expression ::= logical_or_expression %= assignment_expression // - case 153: { action.builder. + case 152: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; } // - // Rule 154: assignment_expression ::= logical_or_expression += assignment_expression + // Rule 153: assignment_expression ::= logical_or_expression += assignment_expression // - case 154: { action.builder. + case 153: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; } // - // Rule 155: assignment_expression ::= logical_or_expression -= assignment_expression + // Rule 154: assignment_expression ::= logical_or_expression -= assignment_expression // - case 155: { action.builder. + case 154: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; } // - // Rule 156: assignment_expression ::= logical_or_expression >>= assignment_expression + // Rule 155: assignment_expression ::= logical_or_expression >>= assignment_expression // - case 156: { action.builder. + case 155: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 157: assignment_expression ::= logical_or_expression <<= assignment_expression + // Rule 156: assignment_expression ::= logical_or_expression <<= assignment_expression // - case 157: { action.builder. + case 156: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 158: assignment_expression ::= logical_or_expression &= assignment_expression + // Rule 157: assignment_expression ::= logical_or_expression &= assignment_expression // - case 158: { action.builder. + case 157: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 159: assignment_expression ::= logical_or_expression ^= assignment_expression + // Rule 158: assignment_expression ::= logical_or_expression ^= assignment_expression // - case 159: { action.builder. + case 158: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 160: assignment_expression ::= logical_or_expression |= assignment_expression + // Rule 159: assignment_expression ::= logical_or_expression |= assignment_expression // - case 160: { action.builder. + case 159: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 162: expression ::= ERROR_TOKEN + // Rule 161: expression ::= ERROR_TOKEN // - case 162: { action.builder. + case 161: { action.builder. consumeExpressionProblem(); break; } // - // Rule 163: expression_list ::= expression_list_actual + // Rule 162: expression_list ::= expression_list_actual // - case 163: { action.builder. + case 162: { action.builder. consumeExpressionList(); break; } // - // Rule 167: expression_list_opt ::= $Empty + // Rule 166: expression_list_opt ::= $Empty // - case 167: { action.builder. + case 166: { action.builder. consumeEmpty(); break; } // - // Rule 169: expression_opt ::= $Empty + // Rule 168: expression_opt ::= $Empty // - case 169: { action.builder. + case 168: { action.builder. consumeEmpty(); break; } // - // Rule 172: constant_expression_opt ::= $Empty + // Rule 171: constant_expression_opt ::= $Empty // - case 172: { action.builder. + case 171: { action.builder. consumeEmpty(); break; } // - // Rule 181: statement ::= ERROR_TOKEN + // Rule 180: statement ::= ERROR_TOKEN // - case 181: { action.builder. + case 180: { action.builder. consumeStatementProblem(); break; } // - // Rule 182: labeled_statement ::= identifier : statement + // Rule 181: labeled_statement ::= identifier : statement // - case 182: { action.builder. + case 181: { action.builder. consumeStatementLabeled(); break; } // - // Rule 183: labeled_statement ::= case constant_expression : + // Rule 182: labeled_statement ::= case constant_expression : // - case 183: { action.builder. + case 182: { action.builder. consumeStatementCase(); break; } // - // Rule 184: labeled_statement ::= default : + // Rule 183: labeled_statement ::= default : // - case 184: { action.builder. + case 183: { action.builder. consumeStatementDefault(); break; } // - // Rule 185: expression_statement ::= expression ; + // Rule 184: expression_statement ::= expression ; // - case 185: { action.builder. + case 184: { action.builder. consumeStatementExpression(); break; } // - // Rule 186: expression_statement ::= ; + // Rule 185: expression_statement ::= ; // - case 186: { action.builder. + case 185: { action.builder. consumeStatementNull(); break; } // - // Rule 187: compound_statement ::= { statement_seq } + // Rule 186: compound_statement ::= { statement_seq } // - case 187: { action.builder. + case 186: { action.builder. consumeStatementCompoundStatement(true); break; } // - // Rule 188: compound_statement ::= { } + // Rule 187: compound_statement ::= { } // - case 188: { action.builder. + case 187: { action.builder. consumeStatementCompoundStatement(false); break; } // - // Rule 191: selection_statement ::= if ( condition ) statement + // Rule 190: selection_statement ::= if ( condition ) statement // - case 191: { action.builder. + case 190: { action.builder. consumeStatementIf(false); break; } // - // Rule 192: selection_statement ::= if ( condition ) statement else statement + // Rule 191: selection_statement ::= if ( condition ) statement else statement // - case 192: { action.builder. + case 191: { action.builder. consumeStatementIf(true); break; } // - // Rule 193: selection_statement ::= switch ( condition ) statement + // Rule 192: selection_statement ::= switch ( condition ) statement // - case 193: { action.builder. + case 192: { action.builder. consumeStatementSwitch(); break; } // - // Rule 195: condition ::= type_specifier_seq declarator = assignment_expression + // Rule 194: condition ::= type_specifier_seq declarator = assignment_expression // - case 195: { action.builder. + case 194: { action.builder. consumeConditionDeclaration(); break; } // - // Rule 196: iteration_statement ::= while ( condition ) statement + // Rule 195: iteration_statement ::= while ( condition ) statement // - case 196: { action.builder. + case 195: { action.builder. consumeStatementWhileLoop(); break; } // - // Rule 197: iteration_statement ::= do statement while ( expression ) ; + // Rule 196: iteration_statement ::= do statement while ( expression ) ; // - case 197: { action.builder. + case 196: { action.builder. consumeStatementDoLoop(); break; } // - // Rule 198: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement + // Rule 197: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement + // + case 197: { action.builder. + consumeStatementForLoop(); break; + } + + // + // Rule 198: iteration_statement ::= for ( simple_declaration expression_opt ; expression_opt ) statement // case 198: { action.builder. consumeStatementForLoop(); break; } // - // Rule 199: iteration_statement ::= for ( simple_declaration expression_opt ; expression_opt ) statement + // Rule 199: jump_statement ::= break ; // case 199: { action.builder. - consumeStatementForLoop(); break; - } - - // - // Rule 200: jump_statement ::= break ; - // - case 200: { action.builder. consumeStatementBreak(); break; } // - // Rule 201: jump_statement ::= continue ; + // Rule 200: jump_statement ::= continue ; // - case 201: { action.builder. + case 200: { action.builder. consumeStatementContinue(); break; } // - // Rule 202: jump_statement ::= return expression ; + // Rule 201: jump_statement ::= return expression ; // - case 202: { action.builder. + case 201: { action.builder. consumeStatementReturn(true); break; } // - // Rule 203: jump_statement ::= return ; + // Rule 202: jump_statement ::= return ; // - case 203: { action.builder. + case 202: { action.builder. consumeStatementReturn(false); break; } // - // Rule 204: jump_statement ::= goto identifier_token ; + // Rule 203: jump_statement ::= goto identifier_token ; // - case 204: { action.builder. + case 203: { action.builder. consumeStatementGoto(); break; } // - // Rule 205: declaration_statement ::= block_declaration + // Rule 204: declaration_statement ::= block_declaration + // + case 204: { action.builder. + consumeStatementDeclaration(); break; + } + + // + // Rule 205: declaration_statement ::= function_definition // case 205: { action.builder. consumeStatementDeclaration(); break; } // - // Rule 206: declaration_statement ::= function_definition + // Rule 222: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; // - case 206: { action.builder. - consumeStatementDeclaration(); break; - } - - // - // Rule 223: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; - // - case 223: { action.builder. + case 222: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 224: declaration_specifiers ::= simple_declaration_specifiers + // Rule 223: declaration_specifiers ::= simple_declaration_specifiers // - case 224: { action.builder. + case 223: { action.builder. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 225: declaration_specifiers ::= class_declaration_specifiers + // Rule 224: declaration_specifiers ::= class_declaration_specifiers + // + case 224: { action.builder. + consumeDeclarationSpecifiersComposite(); break; + } + + // + // Rule 225: declaration_specifiers ::= elaborated_declaration_specifiers // case 225: { action.builder. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 226: declaration_specifiers ::= elaborated_declaration_specifiers + // Rule 226: declaration_specifiers ::= enum_declaration_specifiers // case 226: { action.builder. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 227: declaration_specifiers ::= enum_declaration_specifiers + // Rule 227: declaration_specifiers ::= type_name_declaration_specifiers // case 227: { action.builder. - consumeDeclarationSpecifiersComposite(); break; - } - - // - // Rule 228: declaration_specifiers ::= type_name_declaration_specifiers - // - case 228: { action.builder. consumeDeclarationSpecifiersTypeName(); break; } // - // Rule 230: declaration_specifiers_opt ::= $Empty + // Rule 228: declaration_specifiers_opt ::= $Empty // - case 230: { action.builder. + case 228: { action.builder. consumeEmpty(); break; } // - // Rule 234: no_type_declaration_specifier ::= friend + // 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 235: no_type_declaration_specifier ::= typedef + // Rule 262: simple_type_specifier ::= simple_type_specifier_token // - case 235: { action.builder. + case 262: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 264: simple_type_specifier ::= simple_type_specifier_token + // Rule 276: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name // - case 264: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 280: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name - // - case 280: { action.builder. + case 276: { action.builder. consumeQualifiedId(false); break; } // - // Rule 281: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name + // Rule 277: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name // - case 281: { action.builder. + case 277: { action.builder. consumeQualifiedId(false); break; } // - // Rule 282: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name + // Rule 278: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name // - case 282: { action.builder. + case 278: { action.builder. consumeQualifiedId(false); break; } // - // Rule 283: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name + // Rule 279: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name // - case 283: { action.builder. + case 279: { action.builder. consumeQualifiedId(true); break; } // - // Rule 284: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name + // Rule 280: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name // - case 284: { action.builder. + case 280: { action.builder. consumeTypeSpecifierElaborated(false); break; } // - // Rule 285: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name + // Rule 281: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name // - case 285: { action.builder. + case 281: { action.builder. consumeTypeSpecifierElaborated(true); break; } // - // Rule 286: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name + // Rule 282: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name // - case 286: { action.builder. + case 282: { action.builder. consumeTypeSpecifierElaborated(false); break; } // - // Rule 288: enum_specifier ::= enum { enumerator_list_opt } + // Rule 283: enum_specifier ::= enum { enumerator_list_opt } // - case 288: { action.builder. + case 283: { action.builder. consumeTypeSpecifierEnumeration(false); break; } // - // Rule 289: enum_specifier ::= enum identifier_token { enumerator_list_opt } + // Rule 284: enum_specifier ::= enum identifier_token { enumerator_list_opt } // - case 289: { action.builder. + case 284: { action.builder. consumeTypeSpecifierEnumeration(true); break; } // - // Rule 294: enumerator_definition ::= enumerator + // Rule 289: enumerator_definition ::= identifier_token // - case 294: { action.builder. + case 289: { action.builder. consumeEnumerator(false); break; } // - // Rule 295: enumerator_definition ::= enumerator = constant_expression + // Rule 290: enumerator_definition ::= identifier_token = constant_expression // - case 295: { action.builder. + case 290: { action.builder. consumeEnumerator(true); break; } // - // Rule 304: original_namespace_definition ::= namespace identifier_name { declaration_seq_opt } + // Rule 296: original_namespace_definition ::= namespace identifier_name { declaration_seq_opt } // - case 304: { action.builder. + case 296: { action.builder. consumeNamespaceDefinition(true); break; } // - // Rule 305: extension_namespace_definition ::= namespace original_namespace_name { declaration_seq_opt } + // Rule 297: extension_namespace_definition ::= namespace original_namespace_name { declaration_seq_opt } // - case 305: { action.builder. + case 297: { action.builder. consumeNamespaceDefinition(true); break; } // - // Rule 306: unnamed_namespace_definition ::= namespace { declaration_seq_opt } + // Rule 298: unnamed_namespace_definition ::= namespace { declaration_seq_opt } // - case 306: { action.builder. + case 298: { action.builder. consumeNamespaceDefinition(false); break; } // - // Rule 308: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 299: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; // - case 308: { action.builder. + case 299: { action.builder. consumeNamespaceAliasDefinition(); break; } // - // Rule 309: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; + // Rule 300: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; // - case 309: { action.builder. + case 300: { action.builder. consumeUsingDeclaration(); break; } // - // Rule 310: typename_opt ::= typename + // Rule 301: typename_opt ::= typename // - case 310: { action.builder. + case 301: { action.builder. consumePlaceHolder(); break; } // - // Rule 311: typename_opt ::= $Empty + // Rule 302: typename_opt ::= $Empty // - case 311: { action.builder. + case 302: { action.builder. consumeEmpty(); break; } // - // Rule 312: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 303: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; // - case 312: { action.builder. + case 303: { action.builder. consumeUsingDirective(); break; } // - // Rule 313: asm_definition ::= asm ( stringlit ) ; + // Rule 304: asm_definition ::= asm ( stringlit ) ; // - case 313: { action.builder. + case 304: { action.builder. consumeDeclarationASM(); break; } // - // Rule 314: linkage_specification ::= extern stringlit { declaration_seq_opt } + // Rule 305: linkage_specification ::= extern stringlit { declaration_seq_opt } // - case 314: { action.builder. + case 305: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 315: linkage_specification ::= extern stringlit declaration + // Rule 306: linkage_specification ::= extern stringlit declaration // - case 315: { action.builder. + case 306: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 321: init_declarator ::= declarator initializer + // Rule 312: init_declarator ::= declarator initializer // - case 321: { action.builder. + case 312: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 323: declarator ::= ptr_operator_seq direct_declarator + // Rule 314: declarator ::= ptr_operator_seq direct_declarator // - case 323: { action.builder. + case 314: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 325: function_declarator ::= ptr_operator_seq direct_declarator + // Rule 316: function_declarator ::= ptr_operator_seq direct_declarator // - case 325: { action.builder. + case 316: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 329: basic_direct_declarator ::= declarator_id_name + // Rule 320: basic_direct_declarator ::= declarator_id_name // - case 329: { action.builder. + case 320: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 330: basic_direct_declarator ::= ( declarator ) + // Rule 321: basic_direct_declarator ::= ( declarator ) // - case 330: { action.builder. + case 321: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 331: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 322: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 331: { action.builder. + case 322: { action.builder. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 332: array_direct_declarator ::= array_direct_declarator array_modifier + // Rule 323: array_direct_declarator ::= array_direct_declarator array_modifier // - case 332: { action.builder. + case 323: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 333: array_direct_declarator ::= basic_direct_declarator array_modifier + // Rule 324: array_direct_declarator ::= basic_direct_declarator array_modifier // - case 333: { action.builder. + case 324: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 334: array_modifier ::= [ constant_expression ] + // Rule 325: array_modifier ::= [ constant_expression ] // - case 334: { action.builder. + case 325: { action.builder. consumeDirectDeclaratorArrayModifier(true); break; } // - // Rule 335: array_modifier ::= [ ] + // Rule 326: array_modifier ::= [ ] // - case 335: { action.builder. + case 326: { action.builder. consumeDirectDeclaratorArrayModifier(false); break; } // - // Rule 336: ptr_operator ::= * cv_qualifier_seq_opt + // Rule 327: ptr_operator ::= * cv_qualifier_seq_opt // - case 336: { action.builder. + case 327: { action.builder. consumePointer(); break; } // - // Rule 337: ptr_operator ::= & + // Rule 328: ptr_operator ::= & // - case 337: { action.builder. + case 328: { action.builder. consumeReferenceOperator(); break; } // - // Rule 338: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt + // Rule 329: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt // - case 338: { action.builder. + case 329: { action.builder. consumePointerToMember(); break; } // - // Rule 344: cv_qualifier ::= const + // Rule 335: cv_qualifier ::= const // - case 344: { action.builder. + case 335: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 345: cv_qualifier ::= volatile + // Rule 336: cv_qualifier ::= volatile // - case 345: { action.builder. + case 336: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 347: 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 347: { action.builder. + case 338: { action.builder. consumeQualifiedId(false); break; } // - // Rule 348: type_id ::= type_specifier_seq + // Rule 339: type_id ::= type_specifier_seq // - case 348: { action.builder. + case 339: { action.builder. consumeTypeId(false); break; } // - // Rule 349: type_id ::= type_specifier_seq abstract_declarator + // Rule 340: type_id ::= type_specifier_seq abstract_declarator // - case 349: { action.builder. + case 340: { action.builder. consumeTypeId(true); break; } // - // Rule 352: abstract_declarator ::= ptr_operator_seq + // Rule 343: abstract_declarator ::= ptr_operator_seq // - case 352: { action.builder. + case 343: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 353: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator + // Rule 344: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator // - case 353: { action.builder. + case 344: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 357: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 348: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - case 357: { action.builder. + case 348: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 358: array_direct_abstract_declarator ::= array_modifier + // Rule 349: array_direct_abstract_declarator ::= array_modifier // - case 358: { action.builder. + case 349: { action.builder. consumeDirectDeclaratorArrayDeclarator(false); break; } // - // Rule 359: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // Rule 350: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier // - case 359: { action.builder. + case 350: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 360: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier + // Rule 351: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier // - case 360: { action.builder. + case 351: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 361: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 352: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 361: { action.builder. + case 352: { action.builder. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 362: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 353: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 362: { action.builder. + case 353: { action.builder. consumeDirectDeclaratorFunctionDeclarator(false); break; } // - // Rule 363: parameter_declaration_clause ::= parameter_declaration_list_opt ... + // Rule 354: parameter_declaration_clause ::= parameter_declaration_list_opt ... + // + case 354: { action.builder. + consumePlaceHolder(); break; + } + + // + // Rule 355: parameter_declaration_clause ::= parameter_declaration_list_opt + // + case 355: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 356: parameter_declaration_clause ::= parameter_declaration_list , ... + // + case 356: { action.builder. + consumePlaceHolder(); break; + } + + // + // Rule 362: abstract_declarator_opt ::= $Empty + // + case 362: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 363: parameter_declaration ::= declaration_specifiers parameter_init_declarator // case 363: { action.builder. - consumePlaceHolder(); break; - } - - // - // Rule 364: parameter_declaration_clause ::= parameter_declaration_list_opt - // - case 364: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 365: parameter_declaration_clause ::= parameter_declaration_list , ... - // - case 365: { action.builder. - consumePlaceHolder(); break; - } - - // - // Rule 371: abstract_declarator_opt ::= $Empty - // - case 371: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 372: parameter_declaration ::= declaration_specifiers parameter_init_declarator - // - case 372: { action.builder. consumeParameterDeclaration(); break; } // - // Rule 373: parameter_declaration ::= declaration_specifiers + // Rule 364: parameter_declaration ::= declaration_specifiers // - case 373: { action.builder. + case 364: { action.builder. consumeParameterDeclarationWithoutDeclarator(); break; } // - // Rule 375: parameter_init_declarator ::= declarator = parameter_initializer + // Rule 366: parameter_init_declarator ::= declarator = parameter_initializer // - case 375: { action.builder. + case 366: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 377: parameter_init_declarator ::= abstract_declarator = parameter_initializer + // Rule 368: parameter_init_declarator ::= abstract_declarator = parameter_initializer // - case 377: { action.builder. + case 368: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 378: parameter_init_declarator ::= = parameter_initializer + // Rule 369: parameter_init_declarator ::= = parameter_initializer // - case 378: { action.builder. + case 369: { action.builder. consumeDeclaratorWithInitializer(false); break; } // - // Rule 379: parameter_initializer ::= assignment_expression + // Rule 370: parameter_initializer ::= assignment_expression // - case 379: { action.builder. + case 370: { action.builder. consumeInitializer(); break; } // - // Rule 380: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body + // Rule 371: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body // - case 380: { action.builder. + case 371: { action.builder. consumeFunctionDefinition(false); break; } // - // Rule 381: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq + // Rule 372: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq // - case 381: { action.builder. + case 372: { action.builder. consumeFunctionDefinition(true); break; } // - // Rule 384: initializer ::= ( expression_list ) + // Rule 375: initializer ::= ( expression_list ) // - case 384: { action.builder. + case 375: { action.builder. consumeInitializerConstructor(); break; } // - // Rule 385: initializer_clause ::= assignment_expression + // Rule 376: initializer_clause ::= assignment_expression // - case 385: { action.builder. + case 376: { action.builder. consumeInitializer(); break; } // - // Rule 386: initializer_clause ::= { initializer_list , } + // Rule 377: initializer_clause ::= { initializer_list , } // - case 386: { action.builder. + case 377: { action.builder. consumeInitializerList(); break; } // - // Rule 387: initializer_clause ::= { initializer_list } + // Rule 378: initializer_clause ::= { initializer_list } // - case 387: { action.builder. + case 378: { action.builder. consumeInitializerList(); break; } // - // Rule 388: initializer_clause ::= { } + // Rule 379: initializer_clause ::= { } // - case 388: { action.builder. + case 379: { action.builder. consumeInitializerList(); break; } // - // Rule 393: class_specifier ::= class_head { member_declaration_list_opt } + // Rule 384: class_specifier ::= class_head { member_declaration_list_opt } // - case 393: { action.builder. + case 384: { action.builder. consumeClassSpecifier(); break; } // - // Rule 394: class_head ::= class_keyword identifier_name_opt base_clause_opt + // Rule 385: class_head ::= class_keyword identifier_name_opt base_clause_opt // - case 394: { action.builder. + case 385: { action.builder. consumeClassHead(false); break; } // - // Rule 395: class_head ::= class_keyword template_id_name base_clause_opt + // Rule 386: class_head ::= class_keyword template_id_name base_clause_opt // - case 395: { action.builder. + case 386: { action.builder. consumeClassHead(false); break; } // - // Rule 396: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt + // Rule 387: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt // - case 396: { action.builder. + case 387: { action.builder. consumeClassHead(true); break; } // - // Rule 397: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt + // Rule 388: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt // - case 397: { action.builder. + case 388: { action.builder. consumeClassHead(true); break; } // - // Rule 399: identifier_name_opt ::= $Empty + // Rule 390: identifier_name_opt ::= $Empty // - case 399: { action.builder. + case 390: { action.builder. consumeEmpty(); break; } // - // Rule 403: visibility_label ::= access_specifier_keyword : + // Rule 394: visibility_label ::= access_specifier_keyword : // - case 403: { action.builder. + case 394: { action.builder. consumeVisibilityLabel(); break; } // - // Rule 404: member_declaration ::= declaration_specifiers_opt member_declarator_list ; + // Rule 395: member_declaration ::= declaration_specifiers_opt member_declarator_list ; // - case 404: { action.builder. + case 395: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 405: member_declaration ::= declaration_specifiers_opt ; + // Rule 396: member_declaration ::= declaration_specifiers_opt ; // - case 405: { action.builder. + case 396: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 408: 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 408: { action.builder. + case 399: { action.builder. consumeMemberDeclarationQualifiedId(); break; } // - // Rule 412: member_declaration ::= ERROR_TOKEN + // Rule 403: member_declaration ::= ERROR_TOKEN // - case 412: { action.builder. + case 403: { action.builder. consumeDeclarationProblem(); break; } // - // Rule 420: member_declarator ::= declarator constant_initializer + // Rule 411: member_declarator ::= declarator constant_initializer // - case 420: { action.builder. + case 411: { action.builder. consumeMemberDeclaratorWithInitializer(); break; } // - // Rule 421: member_declarator ::= bit_field_declarator : constant_expression + // Rule 412: member_declarator ::= bit_field_declarator : constant_expression // - case 421: { action.builder. + case 412: { action.builder. consumeBitField(true); break; } // - // Rule 422: member_declarator ::= : constant_expression + // Rule 413: member_declarator ::= : constant_expression // - case 422: { action.builder. + case 413: { action.builder. consumeBitField(false); break; } // - // Rule 423: bit_field_declarator ::= identifier_name + // Rule 414: bit_field_declarator ::= identifier_name // - case 423: { action.builder. + case 414: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 424: constant_initializer ::= = constant_expression + // Rule 415: constant_initializer ::= = constant_expression // - case 424: { action.builder. + case 415: { action.builder. consumeInitializer(); break; } // - // Rule 430: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 421: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 430: { action.builder. + case 421: { action.builder. consumeBaseSpecifier(false, false); break; } // - // Rule 431: 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 431: { action.builder. + case 422: { action.builder. consumeBaseSpecifier(true, true); break; } // - // Rule 432: 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 432: { action.builder. + case 423: { action.builder. consumeBaseSpecifier(true, true); break; } // - // Rule 433: 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 433: { action.builder. + case 424: { action.builder. consumeBaseSpecifier(true, false); break; } // - // Rule 434: access_specifier_keyword ::= private + // Rule 425: access_specifier_keyword ::= private // - case 434: { action.builder. + case 425: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 435: access_specifier_keyword ::= protected + // Rule 426: access_specifier_keyword ::= protected // - case 435: { action.builder. + case 426: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 436: access_specifier_keyword ::= public + // Rule 427: access_specifier_keyword ::= public // - case 436: { action.builder. + case 427: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 438: access_specifier_keyword_opt ::= $Empty + // Rule 429: access_specifier_keyword_opt ::= $Empty // - case 438: { action.builder. + case 429: { action.builder. consumeEmpty(); break; } // - // Rule 439: conversion_function_id_name ::= operator conversion_type_id + // Rule 430: conversion_function_id_name ::= operator conversion_type_id // - case 439: { action.builder. + case 430: { action.builder. consumeConversionName(); break; } // - // Rule 440: conversion_type_id ::= type_specifier_seq conversion_declarator + // Rule 431: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 440: { action.builder. + case 431: { action.builder. consumeTypeId(true); break; } // - // Rule 441: conversion_type_id ::= type_specifier_seq + // Rule 432: conversion_type_id ::= type_specifier_seq // - case 441: { action.builder. + case 432: { action.builder. consumeTypeId(false); break; } // - // Rule 442: conversion_declarator ::= ptr_operator_seq + // Rule 433: conversion_declarator ::= ptr_operator_seq // - case 442: { action.builder. + case 433: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 448: mem_initializer ::= mem_initializer_name ( expression_list_opt ) + // Rule 439: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 448: { action.builder. + case 439: { action.builder. consumeConstructorChainInitializer(); break; } // - // Rule 449: 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 449: { action.builder. + case 440: { action.builder. consumeQualifiedId(false); break; } // - // Rule 452: operator_function_id_name ::= operator_id_name < template_argument_list_opt > + // Rule 443: operator_function_id_name ::= operator_id_name < template_argument_list_opt > // - case 452: { action.builder. + case 443: { action.builder. consumeTemplateId(); break; } // - // Rule 453: operator_id_name ::= operator overloadable_operator + // Rule 444: operator_id_name ::= operator overloadable_operator // - case 453: { action.builder. + case 444: { action.builder. consumeOperatorName(); break; } // - // Rule 496: template_declaration ::= export_opt template < template_parameter_list > declaration + // Rule 487: template_declaration ::= export_opt template < template_parameter_list > declaration // - case 496: { action.builder. + case 487: { action.builder. consumeTemplateDeclaration(); break; } // - // Rule 497: export_opt ::= export + // Rule 488: export_opt ::= export // - case 497: { action.builder. + case 488: { action.builder. consumePlaceHolder(); break; } // - // Rule 498: export_opt ::= $Empty + // Rule 489: export_opt ::= $Empty // - case 498: { action.builder. + case 489: { action.builder. consumeEmpty(); break; } // - // Rule 503: type_parameter ::= class identifier_name_opt + // Rule 494: type_parameter ::= class identifier_name_opt // - case 503: { action.builder. + case 494: { action.builder. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 504: type_parameter ::= class identifier_name_opt = type_id + // Rule 495: type_parameter ::= class identifier_name_opt = type_id // - case 504: { action.builder. + case 495: { action.builder. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 505: type_parameter ::= typename identifier_name_opt + // Rule 496: type_parameter ::= typename identifier_name_opt // - case 505: { action.builder. + case 496: { action.builder. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 506: type_parameter ::= typename identifier_name_opt = type_id + // Rule 497: type_parameter ::= typename identifier_name_opt = type_id // - case 506: { action.builder. + case 497: { action.builder. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 507: type_parameter ::= template < template_parameter_list > class identifier_name_opt + // Rule 498: type_parameter ::= template < template_parameter_list > class identifier_name_opt // - case 507: { action.builder. + case 498: { action.builder. consumeTemplatedTypeTemplateParameter(false); break; } // - // Rule 508: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression + // Rule 499: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression // - case 508: { action.builder. + case 499: { action.builder. consumeTemplatedTypeTemplateParameter(true); break; } // - // Rule 509: template_id_name ::= template_identifier < template_argument_list_opt > + // Rule 500: template_id_name ::= template_identifier < template_argument_list_opt > // - case 509: { action.builder. + case 500: { action.builder. consumeTemplateId(); break; } // - // Rule 518: explicit_instantiation ::= template declaration + // Rule 509: explicit_instantiation ::= template declaration // - case 518: { action.builder. + case 509: { action.builder. consumeTemplateExplicitInstantiation(); break; } // - // Rule 519: explicit_specialization ::= template < > declaration + // Rule 510: explicit_specialization ::= template < > declaration // - case 519: { action.builder. + case 510: { action.builder. consumeTemplateExplicitSpecialization(); break; } // - // Rule 520: try_block ::= try compound_statement handler_seq + // Rule 511: try_block ::= try compound_statement handler_seq // - case 520: { action.builder. + case 511: { action.builder. consumeStatementTryBlock(); break; } // - // Rule 523: handler ::= catch ( exception_declaration ) compound_statement + // Rule 514: handler ::= catch ( exception_declaration ) compound_statement // - case 523: { action.builder. + case 514: { action.builder. consumeStatementCatchHandler(false); break; } // - // Rule 524: handler ::= catch ( ... ) compound_statement + // Rule 515: handler ::= catch ( ... ) compound_statement // - case 524: { action.builder. + case 515: { action.builder. consumeStatementCatchHandler(true); break; } // - // Rule 525: exception_declaration ::= type_specifier_seq declarator + // Rule 516: exception_declaration ::= type_specifier_seq declarator // - case 525: { action.builder. + case 516: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 526: exception_declaration ::= type_specifier_seq abstract_declarator + // Rule 517: exception_declaration ::= type_specifier_seq abstract_declarator // - case 526: { action.builder. + case 517: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 527: exception_declaration ::= type_specifier_seq + // Rule 518: exception_declaration ::= type_specifier_seq // - case 527: { action.builder. + case 518: { action.builder. consumeDeclarationSimple(false); break; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParserprs.java index b6849b12701..06f700d0f63 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParserprs.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParserprs.java @@ -29,7 +29,7 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0 + 0,0,0,0 }; }; public final static byte isKeyword[] = IsKeyword.isKeyword; @@ -42,535 +42,507 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 1,1,1,1,1,1,1,3,1,1, 1,1,1,1,1,1,2,1,1,0, 1,0,4,2,2,2,3,2,3,2, - 2,1,0,1,1,1,4,4,4,8, - 8,3,3,4,4,3,3,2,2,7, - 7,7,7,4,4,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,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,2,2,2,2,2,1,0, - 1,1,1,1,1,1,2,1,2,2, - 2,1,1,2,2,1,2,2,1,2, - 2,1,2,2,1,1,1,1,1,1, + 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, + 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,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,1,1,1,1,3, - 4,4,5,4,5,4,1,5,6,1, - 3,1,0,1,3,1,1,1,1,1, - 1,1,1,6,6,5,1,7,6,1, - 0,6,5,6,4,1,3,1,0,1, - 2,1,3,1,3,1,1,1,1,3, - 9,2,2,3,2,3,1,5,1,2, - 2,1,0,1,1,1,3,1,2,1, - 1,2,3,1,1,1,3,1,2,2, - 9,8,2,1,3,1,3,1,0,1, - 0,2,1,1,3,1,3,2,1,5, - 8,1,2,3,1,5,4,3,1,3, - 1,1,5,4,4,5,5,1,0,1, - 1,1,2,4,2,2,1,5,1,1, - 1,1,1,2,1,0,1,3,1,2, - 3,2,1,2,2,1,0,1,3,3, - 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,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,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,-241,0,0,0,0,-81,0, + 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,-238,0,0,0,0,-47, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-125,0,0,0, - 0,0,0,-243,0,0,0,-2,0,0, - 0,0,-103,0,0,-67,0,0,-391,0, + 0,0,0,0,0,0,0,-99,0,0, + 0,0,0,0,-2,0,0,0,-63,0, + 0,0,0,0,-4,0,0,-245,0,0, + 0,0,-7,0,0,0,0,0,0,0, + -262,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-4,-265,0,0,0,0,0,0,0, + 0,0,0,-9,0,0,0,0,0,-21, + 0,0,0,0,0,0,-3,0,-164,0, + 0,0,0,-14,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-520,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-189,-93,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,0,0,0,0, - 0,-21,0,0,0,0,0,0,0,0, - -48,0,0,-61,0,0,0,0,-7,0, - 0,0,0,-129,0,0,0,-104,0,-50, - 0,0,0,0,0,0,0,0,0,-110, - 0,0,0,-29,0,0,0,0,0,-32, + 0,0,0,-17,0,0,0,-102,0,0, + 0,0,-24,0,0,0,-94,0,0,0, + 0,0,0,0,0,0,0,0,0,-120, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-109,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-369,0, + 0,0,0,-12,0,0,0,0,0,0, + 0,0,-49,0,0,0,0,-25,0,-184, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,-224,0, - 0,0,-71,0,0,0,0,-77,0,0, - -9,0,0,-111,0,0,0,0,0,-312, - 0,0,-14,0,0,0,0,-123,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-334,0,0,0,0,-240,0,0, + 0,0,0,0,0,-108,0,0,0,0, + 0,-32,-64,0,-31,0,0,0,0,-73, + -35,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,-101,0,0,0, + 0,0,0,0,0,0,0,-77,0,0, + 0,0,0,-407,0,0,0,-37,0,0, + -281,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-86, - 0,0,-148,0,0,0,0,-372,0,0, - -523,0,0,0,0,0,0,0,0,0, - 0,0,0,-376,0,0,0,0,-197,0, 0,0,0,0,0,0,0,0,0,0, + -38,0,0,0,-202,0,0,0,0,-474, + 0,0,0,0,-34,0,0,0,0,0, + -288,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,-122,0,0, - 0,0,-24,0,0,0,0,0,0,0, - 0,0,0,0,-248,0,0,0,0,-68, - 0,0,0,0,0,0,0,-187,0,0, + 0,0,0,0,0,0,0,0,0,-28, + -78,0,0,0,0,0,0,0,0,-443, + 0,0,0,-16,0,-246,0,0,0,0, + 0,0,0,0,0,0,0,0,-39,0, + 0,-336,0,0,0,0,0,0,0,0, + 0,0,0,0,-427,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-324,0,0, + 0,0,0,0,0,0,0,0,-13,0, + 0,0,0,-42,0,0,0,0,0,-124, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-25,0,0, - 0,0,0,0,0,0,-10,0,0,0, - 0,0,0,-284,0,0,0,0,0,0, + -65,0,0,0,-95,-113,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-128,0, + 0,0,0,0,0,-43,0,0,0,-142, 0,0,0,0,0,0,0,0,0,0, + 0,-303,0,0,0,0,-68,-26,0,0, + 0,0,0,0,-291,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-108,0,0,0,0,0,-107,0, - -35,0,0,0,0,0,-291,0,0,0, + 0,0,0,0,0,0,0,-92,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-79,-44,0,0,-380,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-477,0,0,0, - -41,0,0,0,0,0,-212,0,0,0, - 0,-3,-266,0,0,0,0,-26,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,-121,0,0,0, + 0,0,0,-83,-381,0,0,0,0,-358, 0,0,0,0,0,0,0,0,0,0, - 0,0,-33,-430,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,0,0,-36,0,0,0,-192,0,0, - 0,0,0,-38,0,0,0,0,-114,0, - 0,-42,-13,-203,0,-113,0,0,0,-249, - 0,0,0,0,-39,0,0,0,0,0, - 0,0,0,0,0,0,-116,0,0,0, + 0,0,0,-52,-66,0,0,0,0,0, + 0,0,0,-373,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,-27, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-49,0,-292,0, - 0,0,-446,-288,0,0,0,0,0,-294, + 0,0,0,0,0,0,-54,-74,0,0, + 0,0,0,0,0,0,-55,0,-268,0, + 0,0,0,-135,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-118,-139,0, + 0,0,0,0,0,0,0,-61,0,0, + 0,-10,0,0,0,-215,-269,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-410,0,0,0,0,0,-147, - -377,-51,0,0,-40,0,0,-383,0,0, + 0,0,0,0,0,-458,0,0,0,0, + -41,0,0,0,0,0,-69,0,0,-270, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-54,0,0,0, + 0,0,0,0,0,0,0,0,-510,-75, + 0,0,0,-48,0,0,0,0,0,-80, + 0,0,-271,0,0,0,0,-67,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-69,0,0,-384,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-382,0, - 0,0,0,0,-463,-43,0,0,0,0, - 0,0,0,0,0,-58,-115,0,0,0, - 0,0,-126,-117,0,0,0,0,0,0, + 0,-521,-81,0,0,0,-50,0,0,0, + 0,0,-138,0,0,-272,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-44,0,0,0,0,0,0, - 0,0,0,-271,0,0,0,0,0,0, + 0,0,0,0,-53,0,0,0,0,0, + 0,0,0,0,0,-146,0,0,-273,0, + 0,0,0,-150,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-56,0,0, + 0,0,0,0,0,0,0,-122,-151,0, + 0,-274,0,0,0,0,-152,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-80,0,0,0,0,0,0,0, - 0,0,-498,0,0,0,0,0,0,0, - 0,-76,0,0,-45,-272,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-199,0, - 0,0,0,0,-461,0,0,0,0,-82, - 0,0,0,0,-404,0,0,-53,0,0, - -273,0,0,0,0,-70,0,0,0,0, + -58,0,0,0,0,0,0,0,0,0, + -123,-154,0,0,-275,0,0,0,0,-193, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-513, - -55,0,0,0,-60,0,0,0,0,0, - -524,-196,-333,0,0,-274,0,0,0,0, - -131,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-155,0,0, + 0,0,0,-62,-156,0,0,0,0,0, + 0,0,0,0,0,0,0,-276,0,0, + 0,0,-157,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-65,0,0,0,0,0, - 0,0,0,0,0,0,-56,0,0,0, - -275,0,0,0,0,-138,0,0,0,0, + -158,0,0,0,0,0,-72,-160,0,0, + 0,0,0,0,0,0,-196,0,0,0, + -277,0,0,0,0,-203,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-161,0,0,0,0,0,-76, + -173,0,0,0,0,0,0,0,0,0, + -174,0,0,-278,0,0,0,0,-227,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-502, - -341,-501,0,0,0,-276,0,0,0,0, - -121,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-175,0,0,0, + 0,0,-84,-176,0,0,0,0,0,0, + 0,0,-228,0,0,0,-377,0,0,0, + 0,-177,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-178, + 0,0,0,0,0,-85,-179,0,0,0, + 0,0,0,0,0,0,-180,0,0,-412, + 0,0,0,0,-236,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-181,0,0,0,0,0,-88,0, + 0,0,0,0,0,0,0,0,0,-182, + 0,0,-503,0,0,0,0,-183,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-517,-230,0,-57,0,0, - -277,0,0,0,0,-206,0,0,0,0, + 0,0,0,0,0,-185,0,0,0,0, + 0,-90,-186,0,0,0,0,0,0,0, + 0,-149,-190,0,0,-223,0,0,0,0, + -499,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-192,0, + 0,0,0,0,-91,-197,0,0,0,0, + 0,0,0,0,-306,0,0,0,0,-457, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-63,0,0,0,0,0,-75, 0,0,0,0,0,0,0,0,0,0, - 0,0,-311,0,0,-278,0,0,0,0, - -218,0,0,0,0,0,0,0,0,0, + 0,0,0,-97,-198,0,0,0,0,0, + 0,0,0,-145,0,0,0,0,-60,0, + 0,0,0,-201,-361,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-79,0,0,0,0,0, - 0,0,0,0,0,-231,-64,-72,0,0, - -279,0,0,0,0,-239,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-78,0,0,0,0,0,-87, + 0,0,0,-98,0,0,0,0,0,0, + 0,0,0,-389,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -416,-83,-84,0,0,-280,0,0,0,0, - -240,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-141,0, - 0,0,0,0,-88,0,0,0,0,0, - 0,0,0,0,0,-149,-318,-153,0,0, - -281,0,0,0,0,-244,0,0,0,0, + 0,0,0,0,0,0,-374,0,0,0, + 0,0,0,-204,0,0,0,-219,0,0, + 0,0,-187,0,0,0,0,-103,-100,0, + 0,0,0,-390,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-154,0,0,0,0,0,-91, - 0,0,0,0,0,0,0,0,0,-155, - -490,-157,-158,0,0,-380,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-133,0,0,0,0,-237,0,0, + 0,0,-497,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-93,0,0,0,0,0, - 0,0,0,0,-159,-142,-321,-160,0,0, - -415,0,0,0,0,-152,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-94,0,0,0,0,0,0, - 0,0,0,0,-95,0,0,0,0,0, - -161,-322,-102,0,0,-506,0,0,0,0, - -406,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-109,0,0,0, + 0,-400,0,0,0,0,-147,0,0,0, + 0,0,-280,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-98, - 0,0,0,0,-136,-227,0,-163,0,0, - -226,0,0,0,0,-164,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-503,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-309, - 0,0,0,0,-105,0,0,0,0,0, + 0,-134,-206,0,0,0,-207,0,0,0, + -211,-267,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-208,0,0,0,0,0, + -112,0,0,0,0,0,0,-265,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-176,0,0,0,0,-337,0, 0,0,0,0,0,0,0,0,0,0, - 0,-177,-364,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-217,0,0, + 0,-266,0,0,0,0,-413,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-504,0,0,0,0, - 0,0,0,0,0,0,-178,0,0,0, - 0,-392,0,0,0,0,0,0,0,0, + 0,0,0,0,-159,0,0,0,0,0, + 0,0,0,0,-263,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-179,0,0,0,0,0, - 0,0,0,0,0,-180,0,0,0,0, - -339,0,0,0,0,0,0,0,0,0, - 0,0,0,-414,-393,0,0,0,0,0, + 0,0,0,0,0,0,0,-18,0,0, + 0,0,0,-264,0,0,0,0,-495,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-181,0,0, - 0,0,0,-191,-182,0,0,0,-183,0, - 0,0,0,-500,0,0,0,0,0,0, + 0,0,0,0,0,0,-243,0,0,0, + 0,0,-5,0,0,0,0,-296,0,-153, + -244,-137,0,-302,0,0,0,-209,0,0, + -15,-287,-292,-410,0,0,0,0,0,0, + 0,0,-293,0,0,-105,0,0,-205,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-447,0,0,0, - 0,0,0,0,0,0,0,-184,0,0, - 0,0,-97,0,0,0,0,-185,-186,0, - 0,0,0,0,-137,-188,-283,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-189, - 0,0,0,0,0,0,-193,0,0,0, - -195,0,0,-200,0,-270,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,-100,-204,0,0,0,0, - 0,-268,0,0,0,0,-207,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -209,-473,0,0,0,-269,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-162,0, - 0,0,0,0,0,-361,0,0,-5,0, - 0,0,0,-210,0,-140,-127,0,0,0, - 0,0,0,0,0,0,0,-190,0,0, - 0,0,-267,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-316,0,0,0,0,-211,-19,0,0, - 0,0,0,0,-214,-208,0,0,0,0, - 0,0,0,0,0,0,0,0,-328,-220, - 0,-394,0,0,0,0,0,-101,-233,0, - 0,0,0,0,0,-335,0,0,0,0, - 0,-106,0,0,0,0,0,0,-336,-246, - 0,0,0,0,-28,0,0,0,0,0, - 0,0,0,0,-198,0,0,0,0,0, - 0,0,0,0,-62,0,0,0,0,-202, - 0,-247,0,0,0,0,0,0,0,0, - 0,0,0,-290,0,0,0,0,-221,0, - 0,-295,0,0,0,0,0,0,0,-296, - -303,0,0,0,-259,0,0,0,0,-304, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-308,0,0, - 0,0,-260,0,0,0,0,-215,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-310,0,0,0,0, - 0,-285,0,0,-323,-324,0,-433,0,0, - 0,0,-325,-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,-262,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-1,0,0,0,0,0, - -306,0,0,0,0,-205,-326,0,0,0, - 0,0,-263,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-330,0,0,0,-151, - 0,0,-342,0,0,0,-66,0,0,0, - 0,-287,0,0,-213,0,0,0,-293,0, - -343,-344,0,0,0,0,0,0,0,0, - 0,0,0,0,-264,0,0,0,0,-345, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-346,0,0, - 0,-297,0,0,0,0,0,0,0,0, - 0,0,0,0,-347,-348,-505,0,0,0, - 0,0,0,0,0,0,0,0,0,-492, - 0,0,0,-254,0,0,0,0,-217,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-302,0,0,-305, - -307,0,0,0,0,0,0,0,0,0, - 0,0,-403,0,0,0,0,0,0,0, - -225,0,0,0,-85,0,0,0,0,-340, - 0,-349,-92,-145,0,0,0,0,-350,0, - 0,0,0,0,0,0,0,0,-351,0, - -352,-366,-515,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,-112,0, - -379,0,0,0,0,0,0,0,0,0, - -144,0,-353,-314,-146,0,0,0,-16,0, - 0,-397,-411,0,0,0,0,0,0,0, - 0,0,-381,0,0,-150,0,0,0,0, - 0,-354,0,0,0,-34,0,0,0,-130, - 0,0,0,-320,0,0,0,0,0,0, - 0,-156,0,0,0,-315,0,-331,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-120,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-96,0,0,0, - 0,0,-355,0,0,0,-356,0,0,0, - 0,0,0,0,0,0,0,0,0,-133, - 0,0,-357,0,0,-358,-434,0,0,0, - 0,0,-327,0,0,0,0,0,0,0, - 0,0,0,-359,-216,0,0,-436,0,0, - 0,0,0,0,0,0,0,-360,-222,0, - -135,-363,0,0,0,0,0,-365,0,0, - 0,-367,0,0,0,0,-119,0,0,0, - 0,0,-368,0,0,0,0,0,-369,0, - 0,0,0,0,0,0,0,0,0,-460, - -371,0,0,-378,-399,0,-400,0,0,0, - 0,0,-401,0,0,0,0,0,0,-402, - -417,0,0,-418,0,0,0,-419,0,0, - 0,0,0,0,0,0,0,0,0,0, - -219,0,0,0,0,0,0,0,0,0, - 0,0,0,-31,0,0,0,0,0,0, - 0,0,0,0,0,0,-424,0,-428,0, - 0,0,-255,0,0,0,0,-432,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-374,0,0,-441,0, - -286,0,0,0,-442,0,0,0,-444,0, - 0,0,0,-165,0,0,0,0,0,0, - 0,-448,-234,0,-458,-494,-375,0,-455,0, - 0,-124,-390,0,0,0,0,0,-228,0, - 0,-300,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-409,0,-426, - 0,0,0,-462,0,0,0,0,-362,-427, - -429,0,0,0,0,0,-445,-474,-452,-15, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-478,-483,-491,0,0,0, - -37,0,0,0,0,0,0,0,0,0, - 0,-11,0,-454,-497,0,0,0,0,0, - -507,0,0,0,0,0,0,-512,0,0, - 0,0,0,-431,0,0,0,0,0,-238, - -456,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-435,0,0,0,0,0,0, - 0,0,0,-457,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-169,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-256,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -459,0,0,0,-257,0,0,0,0,0, + 0,0,0,0,-110,0,0,0,-256,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-401,0,0, + 0,0,0,-300,-218,0,0,0,0,0, + 0,0,0,-301,0,0,0,0,0,0, + 0,0,0,-305,0,0,0,0,0,0, + 0,0,0,-311,0,-195,-332,0,0,0, + 0,0,-312,0,0,0,0,0,0,-307, + -315,0,-107,0,0,0,0,0,0,0, + 0,-257,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,-258, + 0,0,0,0,-241,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-199,0,0,0,0,0,-320,0, + 0,-259,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-1,0,0,0,0,0, + -441,0,0,0,0,-308,-27,0,0,0, + 0,0,-251,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-321, + 0,0,0,-322,0,0,0,0,-143,0, + -323,0,-111,0,0,-212,0,-327,0,0, + 0,-339,0,0,0,0,0,0,0,0, + 0,-260,0,0,0,0,-340,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-341,0,0,0,-261,0, + 0,0,0,-342,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-343,0,-294,0,0, + 0,0,0,0,0,0,0,0,0,0, + -344,-213,-502,0,0,0,0,0,0,0, + 0,0,0,0,0,-284,0,0,-304,0, + 0,0,-345,-222,-346,0,0,-19,0,0, + 0,0,-347,0,-285,0,0,0,0,-313, + 0,0,0,0,-226,0,0,0,0,0, + 0,0,-125,-210,0,0,0,0,0,-348, + 0,0,0,0,0,0,0,0,0,-282, + 0,-330,0,0,0,0,0,0,0,0, + -349,-89,0,0,0,0,0,-20,0,0, + 0,-82,0,0,0,0,-126,0,0,0, + 0,0,-318,-350,0,0,-29,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-440,0,0,0,-188,0,0,0, + -290,0,0,0,0,0,0,0,-363,0, + 0,0,0,0,0,-221,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-127,-395,0, + 0,-470,0,0,-351,0,0,0,0,0, + 0,0,-352,0,0,-487,0,0,0,0, + 0,0,0,-371,-372,-353,-338,0,-216,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-299,0,0,0, + 0,0,-317,0,0,-452,-512,0,0,0, + 0,-387,0,0,0,0,0,0,0,0, + 0,0,0,0,-130,-316,-354,-319,0,0, + 0,0,-325,0,0,0,0,0,0,0, + 0,0,0,-328,0,0,-333,0,0,0, + -423,0,0,0,-378,0,0,0,0,0, + -33,0,0,0,0,0,0,-22,0,0, + 0,0,0,-403,0,0,0,0,0,-141, + 0,0,-162,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-131,0,-355,-356,0,0,0,-337,0, + -104,0,0,-230,-406,-357,0,0,0,0, + 0,0,-426,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, + -362,0,0,0,0,0,0,0,-364,0, + -148,0,0,0,-365,-411,0,-376,0,0, + 0,0,0,0,0,0,0,0,-252,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-370,0,-373,-128,0,0,0,0, - 0,-386,0,0,0,0,-465,0,0,0, - 0,0,0,0,-250,0,-464,-466,0,0, - 0,0,0,0,0,-450,0,0,0,0, - -398,0,0,0,0,0,-467,0,-468,0, + 0,0,0,0,-283,-498,0,0,-394,0, + -388,0,0,0,0,0,0,0,0,0, + 0,0,0,-500,-489,0,0,0,0,-366, + -368,0,0,-375,0,-382,-396,0,0,-225, + 0,0,0,0,0,0,0,-397,0,-398, + 0,0,0,-399,0,0,0,0,0,0, + 0,0,-447,0,0,0,0,-359,0,0, + 0,-408,0,0,0,-391,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-471,0,0,0,0,-479, - 0,-480,0,0,0,-18,-420,0,0,0, + 0,0,0,-248,-414,0,0,0,0,-430, + 0,0,0,0,0,0,0,0,-415,0, + 0,0,-416,0,0,0,-11,0,0,0, + 0,0,-501,0,0,-433,0,0,0,-514, + 0,-421,0,0,0,-370,-424,-425,-429,0, + 0,-438,0,0,0,0,0,0,0,0, + 0,0,0,-431,0,0,0,0,-453,0, + 0,-439,0,0,0,0,0,0,0,0, + 0,0,-428,-445,0,0,0,0,0,0, + 0,0,0,-455,0,0,0,0,0,0, + 0,0,0,-166,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-46,0,0,0,0,-472,0,0, - 0,0,0,0,-229,0,0,0,0,0, + 0,0,0,0,0,0,0,-253,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -459,0,-471,-254,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-475,0,-255,0, + 0,0,0,-480,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-367,0,-432,-442,-488,0,-494,0,-449, + -383,0,0,0,0,-504,0,0,0,0, + 0,0,0,-508,0,-483,-451,-482,0,-456, + 0,0,-59,0,0,0,0,-454,0,-297, + 0,0,0,0,0,0,0,0,0,0, + -509,0,0,0,0,0,0,0,0,-309, + 0,0,0,0,0,0,0,0,0,0, + 0,-417,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-461,0, + -479,-462,-463,0,0,0,-468,0,0,0, + 0,0,-214,0,0,0,0,0,0,-229, + 0,0,-464,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-465,-476,0,0,0,0, + 0,0,0,0,0,0,0,-481,0,0, + -469,-477,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-486,-478,0,0, + 0,0,0,-490,0,-492,0,0,0,-116, + 0,0,0,0,-444,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-493,0,-507,0,0,0,-513,0,0, + 0,0,0,0,0,-295,0,0,0,0, + -506,0,0,0,0,0,0,0,0,0, + 0,0,0,-515,-511,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-522,-516,-519,0,0,0,0,-523, + 0,-518,0,0,0,-136,0,0,0,0, + -144,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,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-525, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-331,-231, + 0,-232,0,0,0,0,0,-119,0,0, + -163,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-8,0, + 0,0,0,0,0,0,0,0,0,0, + -36,0,0,0,0,-200,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-86,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-289,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-87,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-234, + 0,0,0,0,-279,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-129,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-434,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-165, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-167,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-168,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-169,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-170,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-171,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-172,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -239,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-249,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-250,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,-45,0,0,0,0,0,-326,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-404,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-484, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-23,0,0,0,0,-379,0,-446, + 0,0,0,0,0,0,0,0,-117,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-235,0,-460,0,0,0, + -46,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, + -57,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -491,0,-384,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-30,0,0,0,0,0,0, + 0,0,0,0,0,0,-450,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-70,0,0,0,0,0,0,0, + 0,0,0,0,0,-115,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-435,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -140,0,0,0,0,0,0,0,0,0, + 0,0,0,-6,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-505,0,0, + -96,0,0,0,0,0,0,-247,0,0, + 0,0,0,0,0,0,-71,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,-191,0, + 0,0,0,-220,0,0,0,0,0,0, + 0,0,0,0,-436,0,0,0,0,0, + 0,0,0,0,0,-286,0,0,-448,0, + 0,0,0,0,0,0,-310,0,0,0, + 0,0,-466,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-314,-329, + 0,0,0,0,0,0,0,-335,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-392,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-393,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,0,-420, + 0,0,0,-517,0,0,0,0,0,0, + 0,0,0,0,0,-409,0,0,0,0, + 0,0,0,0,0,0,0,-242,0,0, + 0,-418,0,0,-437,0,0,0,0,0, + -233,0,0,0,0,0,0,0,-419,0, + 0,-422,0,0,0,0,0,0,0,0, + 0,0,-385,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-386, + 0,0,0,-405,0,0,0,0,0,0, + 0,-467,0,-524,-472,0,0,0,0,0, + 0,0,0,0,0,0,0,-496,0,0, -485,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-251,-482,-481,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, - -509,0,0,-298,-139,0,0,0,0,0, - 0,0,0,-514,0,-20,0,-495,0,0, - 0,0,0,0,-235,0,0,0,0,0, - -496,-510,0,0,0,0,0,0,-484,-22, - 0,-521,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-516,-519,0,0, - -166,0,0,0,0,-282,0,0,0,0, - 0,0,0,-522,0,0,0,0,0,0, - -236,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-489,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-526,0, - 0,0,0,0,0,-476,-237,0,0,0, - 0,0,0,0,0,-443,0,0,0,0, - 0,0,0,0,0,0,-388,0,0,0, - 0,0,0,0,0,0,0,0,-437,-289, - -518,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-405,0,0,0,0,0,0,0, - 0,-451,0,0,0,0,0,0,0,0, - 0,0,-389,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-525,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-412,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-334,0, - 0,0,0,0,0,0,0,0,-469,-470, - -486,-499,-528,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-47,0,0,0,0,0, - 0,0,0,0,0,-8,0,0,0,0, - 0,0,0,0,-408,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-89, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-23,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -453,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-508,0,0,0,0,0,0,-413,0, - 0,0,0,-527,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -299,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-438,-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,-439,0,-440,0,0,0,-132, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-168, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-170,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-171,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-172,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-173,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,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,-175,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,0,0,0,0,0,0,0, - 0,0,0,-252,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-253,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-301, - 0,0,0,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,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-407, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-487,0,0,0,0,0,0,0, - 0,0,0,0,0,-167,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-73,0,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, - -143,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-520,-475,0,0,-488,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-99,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-6,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-423,0,0,0,0,0, - 0,-52,0,0,0,0,0,0,0,0, - 0,-59,0,0,0,0,0,0,0,-74, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-134,0,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,-223,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-313,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-332, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-338,0,0, - 0,0,0,0,0,0,0,0,0,0, - -317,-395,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-396, - 0,0,0,0,0,0,0,0,0,0, - 0,-319,0,0,-385,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-449,0, - 0,0,0,-387,0,0,0,0,0,0, - 0,-232,-245,-421,-422,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-425, - 0,0,0,0,0,0,0,-511,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,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; @@ -580,576 +552,548 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface BaseAction { public final static char baseAction[] = { - 176,5,137,90,90,34,34,69,69,40, - 40,176,176,177,177,138,138,1,1,16, + 171,5,131,87,87,34,34,66,66,40, + 40,171,171,172,172,132,132,1,1,16, 16,16,16,16,16,16,16,17,17,17, - 15,11,11,9,9,9,9,9,2,70, - 70,6,6,12,12,12,12,48,48,139, - 139,140,57,57,46,46,18,18,18,18, + 15,11,11,9,9,9,9,9,2,67, + 67,6,6,12,12,12,12,45,45,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,18,141,141,141,119, + 18,18,18,18,18,135,135,135,114,19, 19,19,19,19,19,19,19,19,19,19, - 19,19,19,20,20,178,178,179,179,180, - 144,144,145,145,142,142,146,143,143,21, - 21,22,22,24,24,24,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,44,44,43,43, - 43,43,43,43,43,43,43,43,43,43, - 43,39,39,30,147,147,104,104,107,107, - 97,196,196,81,81,81,81,81,81,81, - 81,81,82,82,82,83,83,60,60,181, - 181,84,84,84,120,120,85,85,85,85, - 86,86,86,86,86,87,87,71,71,71, - 71,71,71,71,53,53,53,53,53,110, - 110,111,111,51,23,23,23,23,23,47, - 47,91,91,91,91,91,154,154,149,149, - 149,149,149,150,150,150,151,151,151,152, - 152,152,153,153,153,92,92,92,92,92, - 93,93,93,98,13,14,14,14,14,14, - 14,14,14,14,14,14,96,96,96,124, - 124,124,124,124,122,122,122,99,123,123, - 156,156,155,155,126,126,127,42,42,41, - 75,75,76,76,78,79,77,45,55,50, - 157,157,56,54,74,74,158,158,148,148, - 128,128,89,89,159,159,66,66,66,62, - 62,61,67,67,80,80,59,59,59,94, - 94,106,105,105,64,64,63,63,58,58, - 52,108,108,108,100,100,100,101,102,102, - 102,103,103,112,112,112,114,114,113,113, - 197,197,95,95,183,183,183,183,183,130, - 49,49,161,182,182,131,131,131,131,184, - 184,29,29,121,132,132,132,132,115,115, - 125,125,125,163,164,164,164,164,164,164, - 164,164,164,187,187,185,185,186,186,165, - 165,165,165,166,188,117,116,116,189,189, - 167,167,167,167,109,109,109,190,190,10, - 191,191,192,168,160,160,169,169,170,171, - 171,7,7,8,173,173,173,173,173,173, - 173,173,173,173,173,173,173,173,173,173, - 173,173,173,173,173,173,173,173,173,173, - 173,173,173,173,173,173,173,173,173,173, - 173,173,173,173,173,173,65,68,68,174, - 174,133,133,134,134,134,134,134,134,3, - 4,175,175,172,172,135,135,135,72,73, - 88,162,162,118,118,193,193,193,136,136, - 129,129,194,194,1537,853,2562,2530,908,1944, - 4980,34,1053,31,35,30,32,2756,264,29, - 27,56,2074,111,81,82,113,1944,2092,2155, - 2127,2208,2166,276,2912,2219,2215,2268,1672,2258, - 2269,2276,148,2476,38,284,3246,164,149,2355, - 38,2618,36,908,723,3371,34,1053,31,35, - 346,32,992,3620,38,1084,36,908,233,3801, - 34,1053,31,35,30,32,1998,264,29,27, - 56,2074,111,81,82,113,223,2092,2155,2127, - 2208,2166,2061,1638,2973,236,231,232,4852,495, - 279,2636,278,277,1054,1491,1727,392,908,1722, - 327,1466,329,793,3284,322,1273,457,2650,2419, - 1054,38,2508,2345,908,243,246,249,252,2478, - 2476,38,282,54,424,1990,842,2486,1683,2767, - 862,38,1754,46,908,297,55,45,1053,298, - 1458,2574,660,3350,2979,3636,3746,3770,4156,2430, - 38,1084,36,908,2419,3801,34,1053,31,35, - 2006,32,1998,264,29,27,56,2074,111,81, - 82,113,350,2092,2155,2127,2208,2166,2996,2713, - 2219,2215,2268,1028,2258,2269,2276,148,3323,3147, - 2438,1007,515,149,1054,38,510,281,908,502, - 3235,3022,4019,1749,418,2646,4948,516,2430,38, - 1084,36,908,2419,3801,34,1053,31,35,2006, - 32,1998,264,29,27,56,2074,111,81,82, - 113,350,2092,2155,2127,2208,2166,499,501,2219, - 2215,2268,339,2258,2269,2276,148,47,1816,2996, - 1816,515,149,1054,38,510,285,908,1054,3330, - 3022,158,38,1084,36,908,516,3999,34,1053, - 31,35,30,32,1054,3239,508,4731,2424,3437, - 38,1084,36,908,511,3801,34,1053,31,35, - 30,32,1998,264,29,27,56,2074,111,81, - 82,113,1147,2092,2155,2127,2208,2166,1641,2579, - 2219,2215,2268,969,2258,2269,2276,148,49,1816, - 2427,1860,164,149,2300,950,38,1084,36,908, - 1642,4998,34,1053,31,35,63,32,3011,38, - 1084,36,908,511,3801,34,1053,31,35,30, - 32,1998,264,29,27,56,2074,111,81,82, - 113,453,2092,2155,2127,2208,2166,429,953,2219, - 2215,2268,1104,2258,2269,2276,148,1935,1354,1415, - 2346,147,149,2300,3056,38,1084,36,908,2419, - 3801,34,1053,31,35,2006,32,1998,264,29, - 27,56,2074,111,81,82,113,350,2092,2155, - 2127,2208,2166,336,342,2219,2215,2268,1306,2258, - 2269,2276,148,1054,38,286,2574,515,149,1799, - 296,1054,38,1028,392,908,3022,2583,38,1084, - 36,908,516,3801,34,1053,31,35,30,32, - 1998,264,29,27,56,2074,111,81,82,113, - 37,2092,2155,2127,2208,2166,67,1738,2219,2215, - 2268,1211,2258,2269,2276,148,4236,1986,38,398, - 385,149,2344,3620,38,1084,36,908,1661,3801, - 34,1053,31,35,30,32,1998,264,29,27, - 56,2074,111,81,82,113,388,2092,2155,2127, - 2208,3002,321,1892,2656,38,1084,36,908,512, - 3801,34,1053,31,35,30,32,1998,264,29, - 27,56,2074,111,81,82,113,773,2092,2155, - 2127,2208,2166,3653,1893,2219,2215,2268,3375,2258, - 2269,2276,148,3271,1009,290,1818,385,149,1047, - 38,450,59,773,1641,4930,1467,2913,389,4065, - 1897,38,1084,36,908,2647,4998,34,1053,31, - 35,62,32,386,1916,1844,76,3101,38,1084, - 36,908,2591,3801,34,1053,31,35,30,32, - 1998,264,29,27,56,2074,111,81,82,113, - 773,2092,2155,2127,2208,2166,634,188,2219,2215, - 2268,2993,2258,2269,2276,148,382,59,1104,1641, - 385,149,4783,3869,1054,38,1028,392,908,1103, - 3437,38,1084,36,908,390,3801,34,1053,31, - 35,30,32,1998,264,29,27,56,2074,111, - 81,82,113,449,2092,2155,2127,2208,2166,341, - 342,2219,2215,2268,597,2258,2269,2276,148,2247, - 3235,1467,59,379,149,941,4948,1953,3437,38, - 1084,36,908,1104,3801,34,1053,31,35,30, - 32,1998,264,29,27,56,2074,111,81,82, - 113,66,2092,2155,2127,2208,2166,2056,383,2219, - 2215,2268,2045,2258,2269,2276,148,380,443,2307, - 2311,379,149,978,338,342,3437,38,1084,36, - 908,3341,3801,34,1053,31,35,30,32,1998, - 264,29,27,56,2074,111,81,82,113,1641, - 2092,2155,2127,2208,2166,1641,1275,2219,2215,2268, - 378,2258,2269,2276,148,2382,59,59,3348,379, - 149,969,819,1944,3168,38,1084,36,908,2579, - 3801,34,1053,31,35,30,32,1998,264,29, - 27,56,2074,111,81,82,113,1502,2092,2155, - 2127,2208,2166,332,1768,2219,2215,2268,377,2258, - 2269,2314,170,1104,3437,38,1084,36,908,1104, - 3801,34,1053,31,35,30,32,1998,264,29, - 27,56,2074,111,81,82,113,428,2092,2155, - 2127,2208,2166,421,98,2219,2215,2268,3302,2258, - 2269,2276,148,3869,3404,342,375,160,149,2500, - 3712,342,2636,456,335,1339,3437,38,1084,36, - 908,1439,3801,34,1053,31,35,30,32,1998, - 264,29,27,56,2074,111,81,82,113,1944, - 2092,2155,2127,2208,2166,3730,330,2219,2215,2268, - 2636,2258,2269,2276,148,1054,38,3275,1027,159, - 149,3437,38,1084,36,908,3145,3801,34,1053, - 31,35,30,32,1998,264,29,27,56,2074, - 111,81,82,113,494,2092,2155,2127,2208,2166, - 3730,3241,2219,2215,2268,59,2258,2269,2276,148, - 689,3730,2636,1944,158,149,3437,38,1084,36, - 908,3255,3801,34,1053,31,35,30,32,1998, - 264,29,27,56,2074,111,81,82,113,334, - 2092,2155,2127,2208,2166,59,384,2219,2215,2268, - 2959,2258,2269,2276,148,2933,333,1815,3348,157, - 149,3437,38,1084,36,908,3255,3801,34,1053, - 31,35,30,32,1998,264,29,27,56,2074, - 111,81,82,113,331,2092,2155,2127,2208,2166, - 306,530,2219,2215,2268,440,2258,2269,2276,148, - 1738,1944,1944,4660,156,149,3437,38,1084,36, - 908,2423,3801,34,1053,31,35,30,32,1998, - 264,29,27,56,2074,111,81,82,113,362, - 2092,2155,2127,2208,2166,393,530,2219,2215,2268, - 361,2258,2269,2276,148,1944,3098,530,1403,155, - 149,3437,38,1084,36,908,2636,3801,34,1053, - 31,35,30,32,1998,264,29,27,56,2074, - 111,81,82,113,2079,2092,2155,2127,2208,2166, - 59,2427,2219,2215,2268,848,2258,2269,2276,148, - 2779,57,102,3811,154,149,3437,38,1084,36, - 908,2648,3801,34,1053,31,35,30,32,1998, - 264,29,27,56,2074,111,81,82,113,77, - 2092,2155,2127,2208,2166,59,359,2219,2215,2268, - 748,2258,2269,2276,148,103,3521,2332,1877,153, - 149,3437,38,1084,36,908,2636,3801,34,1053, - 31,35,30,32,1998,264,29,27,56,2074, - 111,81,82,113,3006,2092,2155,2127,2208,2166, - 59,2721,2219,2215,2268,3566,2258,2269,2276,148, - 4598,3254,2411,2653,152,149,3437,38,1084,36, - 908,2636,3801,34,1053,31,35,30,32,1998, - 264,29,27,56,2074,111,81,82,113,690, - 2092,2155,2127,2208,2166,59,360,2219,2215,2268, - 644,2258,2269,2276,148,28,2705,2636,3290,151, - 149,3437,38,1084,36,908,2648,3801,34,1053, - 31,35,30,32,1998,264,29,27,56,2074, - 111,81,82,113,1932,2092,2155,2127,2208,2166, - 59,357,2219,2215,2268,3010,2258,2269,2276,148, - 2413,3772,2334,3289,150,149,3437,38,1084,36, - 908,420,3801,34,1053,31,35,30,32,1998, - 264,29,27,56,2074,111,81,82,113,522, - 2092,2155,2127,2208,2166,59,2427,2219,2215,2268, - 3090,2258,2269,2276,148,3304,1043,2636,3336,165, - 149,3437,38,1084,36,908,3255,3801,34,1053, - 31,35,30,32,1998,264,29,27,56,2074, - 111,81,82,113,773,2092,2155,2127,2208,2166, - 4912,75,2219,2215,2268,59,2258,2269,2276,148, - 3131,3341,2636,602,145,149,3537,38,1084,36, - 908,3274,3801,34,1053,31,35,30,32,1998, - 264,29,27,56,2074,111,81,82,113,522, - 2092,2155,2127,2208,2166,288,74,2219,2215,2268, - 3246,2258,2269,2276,148,3246,1054,296,2578,195, - 149,3620,38,1084,36,908,1676,3801,34,1053, - 31,35,30,32,1998,264,29,27,56,2074, - 111,81,82,113,1467,2092,2155,2127,2208,2166, - 313,2427,2219,2215,2268,312,2258,2269,2314,170, - 3620,38,1084,36,908,602,3801,34,1053,31, - 35,30,32,1998,264,29,27,56,2074,111, - 81,82,113,1103,2092,2155,2127,2208,2166,394, - 426,2219,2215,2268,3237,2258,2269,2314,170,70, - 38,1084,36,908,524,3999,34,1053,31,35, - 65,32,3053,3620,38,1084,36,908,295,3801, - 34,1053,31,35,30,32,1998,264,29,27, - 56,2074,111,81,82,113,1467,2092,2155,2127, - 2208,2166,291,1818,2219,2215,2268,1896,2258,2269, - 2314,170,3620,38,1084,36,908,422,3801,34, - 1053,31,35,30,32,1998,264,29,27,56, - 2074,111,81,82,113,1814,2092,2155,2127,2208, - 2166,395,426,2219,2215,2268,1840,2258,2269,2314, - 170,70,38,1084,36,908,523,3999,34,1053, - 31,35,64,32,2640,3620,38,1084,36,908, - 3198,3801,34,1053,31,35,30,32,1998,264, - 29,27,56,2074,111,81,82,113,1945,2092, - 2155,2127,2208,2166,1467,61,2219,2215,2268,2628, - 2258,2269,2314,170,3661,38,1084,36,908,421, - 3801,34,1053,31,35,30,32,1998,264,29, - 27,56,2074,111,81,82,113,1028,2092,2155, - 2127,2208,2166,3147,2427,2219,2215,2268,2235,2258, - 2269,2314,170,774,38,1084,36,908,413,325, - 34,1053,2275,35,382,3246,1677,3620,38,1084, - 36,908,424,3801,34,1053,31,35,30,32, - 1998,264,29,27,56,2074,111,81,82,113, - 2630,2092,2155,2127,2208,2166,3866,3160,2219,2215, - 2268,2865,2258,3128,2719,309,3620,38,1084,36, - 908,1635,3801,34,1053,31,35,30,32,1998, - 264,29,27,56,2074,111,81,82,113,1950, - 2092,2155,2127,2208,2166,59,3707,2219,2215,2268, - 2914,3096,3620,38,1084,36,908,1518,3801,34, - 1053,31,35,30,32,1998,264,29,27,56, - 2074,111,81,82,113,2652,2092,2155,2127,2208, - 2166,3419,3528,2219,2215,3077,3620,38,1084,36, - 908,99,3801,34,1053,31,35,30,32,1998, - 264,29,27,56,2074,111,81,82,113,773, - 2092,2155,2127,2208,2166,3867,2426,2219,3093,3702, - 853,1028,392,908,1879,2535,3344,774,38,1084, - 36,908,238,264,34,1053,43,35,1054,38, - 510,283,908,3620,38,1084,36,908,276,3801, - 34,1053,31,35,30,32,1998,264,29,27, - 56,2074,111,81,82,113,406,2092,2155,2127, - 2208,3073,1054,38,1028,392,908,3743,1770,1491, - 1547,1257,908,233,4842,3255,982,38,1084,36, - 908,3734,3371,34,1053,31,35,346,32,2636, - 3708,430,1054,38,1028,392,908,54,3151,59, - 236,231,232,2975,2419,279,59,278,277,297, - 55,819,59,298,1458,93,650,2760,107,2636, - 1753,433,350,59,521,865,1491,1727,392,908, - 243,246,249,252,2478,59,2983,327,1466,329, - 977,842,322,1273,314,1054,853,1028,392,908, - 59,3022,1870,92,54,1169,358,2655,3350,2979, - 3636,3746,3770,4156,3728,2590,297,55,1771,2484, - 298,1458,3294,1664,276,4962,351,1726,1636,356, - 3760,3762,2555,1222,2582,3620,38,1084,36,908, - 3791,3801,34,1053,31,35,30,32,1998,264, - 29,27,56,2074,111,81,82,113,2412,2092, - 2155,2127,2835,3620,38,1084,36,908,3255,3801, - 34,1053,31,35,30,32,1998,264,29,27, - 56,2074,111,81,82,113,778,2092,2155,2127, - 2836,280,59,278,277,3726,3834,2416,1054,38, - 1028,392,908,3836,3620,38,1084,36,908,372, - 3801,34,1053,31,35,30,32,1998,264,29, - 27,56,2074,111,81,82,113,432,2092,2155, - 2127,2912,3620,38,1084,36,908,305,3801,34, - 1053,31,35,30,32,1998,264,29,27,56, - 2074,111,81,82,113,1990,2092,2155,2127,2919, - 2419,774,38,1084,36,908,509,3865,34,1053, - 3303,35,3147,3620,38,1084,36,908,229,3801, - 34,1053,31,35,30,32,1998,264,29,27, - 56,2074,111,81,82,113,2959,2092,2155,2929, - 1799,296,4815,2632,208,217,214,514,207,215, - 216,218,1927,38,450,1986,38,398,4930,59, - 209,3157,3273,639,1299,340,15,210,211,212, - 213,300,301,302,303,3620,38,1084,36,908, - 3281,3801,34,1053,31,35,30,32,1998,264, - 29,27,56,2074,111,81,82,113,3288,2092, - 2155,2931,2338,38,1084,36,908,5045,3371,34, - 1053,31,35,346,32,2050,3292,2415,38,1084, - 36,908,3734,3371,34,1053,31,35,346,32, - 1986,38,398,13,3620,38,1084,36,908,3255, - 3801,34,1053,31,35,30,32,1998,264,29, - 27,56,2074,111,81,82,113,59,2092,2763, - 3246,3285,5084,327,1466,329,290,1818,322,1273, - 2600,568,3382,1054,38,510,3269,908,327,1466, - 329,3255,358,322,1273,1054,853,1028,392,908, - 2636,1412,3705,3732,602,2901,1844,358,2419,3712, - 308,404,351,1726,1636,356,525,1106,304,2475, - 1817,3147,3246,3528,276,444,229,351,1726,1636, - 356,447,2307,2311,58,526,2014,38,1084,36, - 908,723,4860,34,1053,31,35,346,32,514, - 4815,2636,208,217,214,3398,207,215,216,218, - 289,1678,185,3161,773,602,2419,3735,209,949, - 5012,639,2636,2636,219,210,211,212,213,300, - 301,302,303,3146,229,448,1054,1491,1727,392, - 908,347,3150,278,277,339,3209,327,1466,329, - 3848,2419,322,1273,59,2419,3434,95,4751,3601, - 2426,409,2634,4270,1511,54,773,3309,773,350, - 397,426,5030,229,3933,870,410,297,55,639, - 4718,298,51,233,334,38,1084,36,908,723, - 3371,34,1053,31,35,346,32,4815,1393,208, - 217,214,387,207,215,216,218,1054,1491,299, - 245,231,232,3264,316,209,94,501,639,107, - 1799,219,210,211,212,213,300,301,302,303, - 3925,396,426,149,576,2419,3268,1054,38,1028, - 392,908,358,2716,1728,327,1466,329,297,1995, - 322,1273,298,229,1754,1054,1491,299,2636,2214, - 4270,2485,351,1726,1636,356,431,444,1957,3154, - 349,3940,2654,870,411,414,2419,4815,3810,208, - 217,214,3359,207,215,216,218,1054,1491,1727, - 392,908,3587,3373,229,209,297,2880,639,3379, - 298,219,210,211,212,213,300,301,302,303, - 2426,3387,317,2893,3360,3397,54,3399,4815,453, - 208,217,214,3403,207,215,216,218,297,55, - 3404,3520,298,1458,89,2339,209,439,3812,639, - 4270,2628,219,210,211,212,213,300,301,302, - 303,1830,38,2618,36,908,723,4860,34,1053, - 31,35,346,32,334,38,1084,36,908,723, - 3371,34,1053,31,35,346,32,688,437,3867, - 1455,4270,2859,3620,38,1084,36,908,2066,3801, - 34,1053,31,35,30,32,1998,264,29,27, - 56,2074,111,81,82,113,3246,2092,2781,3522, - 339,177,327,1466,329,3526,534,322,1273,2142, - 38,510,281,908,1153,327,1466,329,521,534, - 322,1273,3238,59,229,3527,1641,3246,2419,2193, - 1683,161,1028,3246,819,4718,201,350,3147,1028, - 2932,186,3284,1412,161,3147,350,2419,4815,3026, - 206,217,214,1781,205,215,216,218,59,161, - 3246,175,1861,1173,3714,2486,3022,200,168,1, - 3246,59,1736,408,534,3022,3170,2636,3886,2636, - 3824,2656,189,173,174,176,177,178,179,180, - 1104,339,229,240,264,3532,3884,3745,339,161, - 204,865,1491,1727,392,908,417,2646,2932,186, - 202,3658,2067,3703,2636,3832,4815,2419,206,217, - 214,3250,205,215,216,218,2726,2881,3889,175, - 54,3744,342,5011,59,229,3671,502,187,1445, - 3155,3246,297,55,233,819,298,1458,3769,790, - 190,173,174,176,177,178,179,180,2905,4815, - 5700,208,217,214,59,207,215,216,218,1305, - 166,241,231,232,59,500,501,209,5700,4683, - 639,4031,3339,15,210,211,212,213,300,301, - 302,303,3620,38,2562,2530,908,5700,3801,34, - 1053,31,35,30,32,1998,264,29,27,56, - 2074,111,81,82,89,5700,3620,38,1084,36, - 908,37,3801,34,1053,31,35,30,32,1998, - 264,29,27,56,2074,111,81,82,113,5700, - 2782,2636,5700,5700,2499,3620,38,1084,36,908, - 14,3801,34,1053,31,35,30,32,1998,264, - 29,27,56,2074,111,81,82,113,5700,2800, - 3620,38,1084,36,908,3835,3801,34,1053,31, - 35,30,32,1998,264,29,27,56,2074,111, - 81,82,113,265,2818,2146,3152,5700,534,5700, - 819,2419,1883,38,1084,36,908,2636,4860,34, - 1053,31,35,346,32,3155,229,59,2636,2486, - 819,5700,3296,161,5700,161,2142,38,510,3365, - 908,3152,2932,186,3340,203,2419,2636,5700,2636, - 4815,73,206,217,214,166,205,215,216,218, - 5700,5700,72,175,2486,1054,38,510,3385,908, - 2636,340,2636,327,1466,329,1583,353,323,1273, - 5700,71,534,70,3237,173,174,176,177,178, - 179,180,358,1085,1491,1727,392,908,59,5700, - 229,366,5700,1403,2024,3257,2116,161,5700,5700, - 5042,3246,353,1726,1636,356,2932,186,1646,2357, - 2381,5700,54,5700,4815,5700,206,217,214,2910, - 205,215,216,218,297,55,366,175,298,1458, - 233,52,2489,441,3731,5700,5700,819,534,2837, - 3067,4192,59,3118,2357,2381,5700,1490,182,173, - 174,176,177,178,179,180,229,248,231,232, - 5700,3246,161,161,1028,1054,1491,1727,392,908, - 3147,1591,2932,186,59,358,1755,5700,2636,1501, - 4815,5700,206,217,214,59,205,215,216,218, - 2419,2636,2636,175,54,351,1726,1636,356,529, - 1869,4765,3246,1817,534,5700,297,55,350,5700, - 298,1458,61,1691,193,173,174,176,177,178, - 179,180,229,339,5700,60,3772,2636,2636,161, - 5700,1626,1491,1727,392,908,2536,3022,2932,186, - 233,819,197,2663,2351,5700,4815,5700,206,217, - 214,59,205,215,216,218,2419,5700,3572,175, - 54,106,3967,5700,233,617,161,251,231,232, - 534,5700,297,55,350,3114,298,1458,528,1826, - 3391,173,174,176,177,178,179,180,229,2636, - 5700,254,231,232,5700,161,685,1054,1491,1727, - 392,908,3147,3022,2932,186,3337,38,282,2727, - 5700,5700,4815,5700,206,217,214,59,205,215, - 216,218,2419,4033,5700,175,54,5700,5700,2729, - 3155,705,5700,5700,819,819,534,5700,297,55, - 350,5700,298,1458,5700,3103,196,173,174,176, - 177,178,179,180,229,3866,5700,5700,5700,161, - 166,161,5700,1054,1491,1727,392,908,3577,3022, - 2932,186,3710,5700,5700,506,3625,2419,4815,5700, - 206,217,214,59,205,215,216,218,2419,5700, - 5700,175,54,5700,5700,350,5700,793,5700,5700, - 5700,5700,534,5700,297,55,350,5700,298,1458, - 5700,3876,192,173,174,176,177,178,179,180, - 229,5700,5700,5700,3704,5700,5700,161,5700,1054, - 1491,1727,392,908,2961,3022,2932,186,5700,5700, - 101,504,5700,1455,4815,5700,206,217,214,3263, - 205,215,216,218,2419,5700,5700,175,54,3155, - 3155,2240,3155,881,819,819,819,819,534,5700, - 297,55,350,5700,298,1458,5700,1826,199,173, - 174,176,177,178,179,180,229,5700,5700,166, - 166,161,166,161,5700,1580,1491,1727,392,908, - 168,1214,2932,186,5700,5700,1702,5700,5700,5700, - 4815,2419,206,217,214,59,205,215,216,218, - 2419,5700,5700,175,54,5700,5700,5700,5700,229, - 5700,5700,5700,5700,5700,5700,297,55,350,5700, - 298,1458,5700,52,198,173,174,176,177,178, - 179,180,2263,4815,5700,208,217,214,5700,207, - 215,216,218,3748,3761,3632,3797,3022,3731,5700, - 3971,209,5700,3347,639,2419,5700,518,210,211, - 212,213,300,301,302,303,3766,853,1028,392, - 908,5700,2535,229,5700,5700,5700,5700,5700,239, - 264,334,38,1084,36,908,723,3371,34,1053, - 31,35,346,32,5700,276,5700,4815,5700,208, - 217,214,2287,207,215,216,218,819,3328,1666, - 853,1028,392,908,59,209,5700,5700,639,2419, - 5700,519,210,211,212,213,300,301,302,303, - 233,3535,161,5700,5700,5700,2419,350,276,5700, - 5700,168,327,1466,329,2776,4017,322,1273,5700, - 819,2419,5700,5700,2486,5700,5700,237,231,232, - 5700,5700,279,5700,278,277,3022,5700,5700,229, - 3366,5700,533,5700,2823,161,2870,5700,5700,819, - 3894,819,5700,5700,3588,2419,5700,244,247,250, - 253,2478,5700,4815,5700,208,217,214,842,207, - 215,216,218,229,161,3292,161,278,277,3798, - 5700,209,5700,3607,639,3609,5700,315,210,211, - 212,213,300,301,302,303,367,4815,78,208, - 217,214,5700,207,215,216,218,5700,5700,5700, - 5700,5700,5700,5700,5700,209,5700,5700,639,5700, - 5700,220,210,211,212,213,300,301,302,303, - 3620,38,1084,36,908,5700,3801,34,1053,31, - 35,30,32,1998,264,29,27,56,2074,111, - 81,82,90,3620,38,1084,36,908,5700,3801, - 34,1053,31,35,30,32,1998,264,29,27, - 56,2074,111,81,82,88,3620,38,1084,36, - 908,5700,3801,34,1053,31,35,30,32,1998, - 264,29,27,56,2074,111,81,82,87,3620, - 38,1084,36,908,5700,3801,34,1053,31,35, - 30,32,1998,264,29,27,56,2074,111,81, - 82,86,3620,38,1084,36,908,5700,3801,34, - 1053,31,35,30,32,1998,264,29,27,56, - 2074,111,81,82,85,3620,38,1084,36,908, - 5700,3801,34,1053,31,35,30,32,1998,264, - 29,27,56,2074,111,81,82,84,3620,38, - 1084,36,908,5700,3801,34,1053,31,35,30, - 32,1998,264,29,27,56,2074,111,81,82, - 83,3479,38,1084,36,908,5700,3801,34,1053, - 31,35,30,32,1998,264,29,27,56,2074, - 111,81,82,109,3620,38,1084,36,908,5700, - 3801,34,1053,31,35,30,32,1998,264,29, - 27,56,2074,111,81,82,115,3620,38,1084, - 36,908,5700,3801,34,1053,31,35,30,32, - 1998,264,29,27,56,2074,111,81,82,114, - 4047,5700,5700,5700,5700,2419,5700,5700,5700,5700, - 5700,5700,5700,5700,5700,5700,5700,5700,3620,38, - 1084,36,908,229,3801,34,1053,31,35,30, - 32,1998,264,29,27,56,2074,111,81,82, - 112,5700,5700,5700,5700,5700,5700,4815,5700,208, - 217,214,5700,207,215,216,218,5700,5700,5700, - 5700,5700,5700,5700,5700,209,5700,5700,639,5700, - 5700,496,210,211,212,213,300,301,302,303, - 3620,38,1084,36,908,5700,3801,34,1053,31, - 35,30,32,1998,264,29,27,56,2074,111, - 81,82,110,3222,38,1084,36,908,723,3371, - 34,1053,31,35,346,32,3579,38,1084,36, - 908,5700,3801,34,1053,31,35,30,32,1998, - 264,29,27,56,2074,91,81,82,2023,38, - 1084,36,908,5700,4860,34,1053,31,35,346, - 32,2091,38,1084,36,908,5700,4860,34,1053, - 31,35,346,32,327,1466,329,5700,5700,322, - 1273,2100,38,1084,36,908,3211,3371,34,1053, - 31,35,346,32,5700,2364,2917,5700,5700,2964, - 819,819,870,5700,819,5700,5700,340,5700,327, - 1466,329,5700,1601,325,1273,5700,5700,2419,3735, - 340,405,327,1466,329,161,161,323,1273,161, - 5700,5700,5700,5700,168,1592,229,5700,3762,5700, - 5700,316,324,1094,329,246,38,1084,36,908, - 2946,3371,34,1053,31,35,346,32,5700,5700, - 4751,576,2426,409,5700,1089,5700,5700,5700,5700, - 534,1728,1580,1491,1727,392,908,5700,410,5700, - 5700,639,865,1491,1727,392,908,5700,229,5700, - 865,1491,1727,392,908,161,5700,5700,5700,5700, - 5700,54,3859,5700,168,5700,324,1094,329,5700, - 5700,54,3444,297,55,5700,3299,298,1458,54, - 52,5700,1799,297,55,5700,5700,298,1458,573, - 52,297,55,5700,5700,298,1458,5700,1601,963, - 664,5700,1912,1491,1727,392,908,2905,5700,5700, - 5700,5700,5700,5700,5700,5700,5700,5700,5700,5700, - 865,1491,1727,392,908,5700,5700,5700,5700,5700, - 5700,54,3411,5700,5700,5700,411,413,865,1491, - 1727,392,908,297,55,5700,5700,298,1458,54, - 52,5700,865,1491,1727,392,908,5700,1556,3115, - 2971,297,55,5700,664,298,1458,54,52,5700, - 1714,1491,1727,392,908,5700,5700,1174,5700,297, - 55,54,5700,298,1458,5700,52,5700,1580,1491, - 1727,392,908,297,55,2472,5700,298,1458,54, - 52,2346,865,1491,1727,392,908,3147,5700,2502, - 5700,297,55,5700,5700,298,1458,54,1961,5700, - 865,1491,1727,392,908,5700,5700,2555,5700,297, - 55,54,2625,298,1458,2625,2184,2419,3147,5700, - 2419,3147,5700,297,55,4199,5700,298,1458,54, - 52,5700,5700,5700,5700,2486,5700,5700,2486,2658, - 340,297,55,5700,5700,298,1458,5700,52,1054, - 853,1028,392,908,3287,5700,5700,3097,5700,2419, - 5700,358,1217,1281,1345,1409,5700,534,534,534, - 534,339,5700,5700,339,5700,5700,2486,276,5700, - 5700,353,1726,1636,356,350,350,350,350,5700, - 5700,5700,161,161,161,161,5700,5700,5700,5700, - 1473,1952,1781,194,194,534,5011,366,3792,3572, - 366,5700,5700,2419,3022,3022,4171,4171,5700,5700, - 1907,2529,5700,350,2982,2357,2381,2982,2357,2381, - 161,350,5700,5700,5700,5700,5700,5700,5700,194, - 5700,5700,529,5700,5700,79,5700,278,277,502, - 5700,5700,4171,5700,5700,5700,5700,5700,5700,5700, - 3022,5700,5700,5700,5700,5700,532,5700,5700,5700, - 5700,5700,5700,5700,5700,5700,5700,5700,5700,5700, - 5700,5700,5700,5700,3349,3384,5700,499,501,5700, - 5700,5700,5700,5700,5700,5700,5700,5700,5700,5700, - 5700,5700,5700,5700,5700,5700,5700,5700,5700,5700, - 5700,5700,5700,5700,5700,5700,5700,5700,5700,5700, - 3511,5700,5700,5700,5700,5700,5700,5700,3248,5700, - 5700,5700,5700,5700,5700,5700,5700,5700,5700,5700, - 5700,5700,5700,5700,5700,5700,5700,5700,5700,5700, - 5700,5700,5700,5700,5700,5700,5700,5700,5700,5700, - 5700,5700,5700,5700,5700,5700,5700,5700,5700,5700, - 5700,5700,5700,5700,5700,5700,5700,5700,5700,5700, - 5700,5700,5700,5700,5700,5700,5700,5700,5700,5700, - 5700,5700,5700,5700,5700,5700,5700,5700,5700,5700, - 5700,5700,3814,5700,0,498,4076,0,1,230, - 0,5718,42,0,5717,42,0,1,3224,0, - 1,670,0,1,5718,42,0,1,5717,42, - 0,1,3006,0,1,971,0,5935,242,0, - 5934,242,0,6045,242,0,6044,242,0,5962, - 242,0,5961,242,0,5960,242,0,5959,242, - 0,5958,242,0,5957,242,0,5956,242,0, - 5955,242,0,5975,242,0,5974,242,0,5973, - 242,0,5972,242,0,5971,242,0,5970,242, - 0,5969,242,0,5968,242,0,5967,242,0, - 5966,242,0,5965,242,0,242,5718,42,0, - 242,5717,42,0,242,5741,0,38,287,263, - 0,510,391,0,5718,53,0,5717,53,0, - 1,6037,0,1,1670,0,41,5718,0,41, - 5717,0,451,1715,0,510,33,0,299,1945, - 0,38,307,0,391,299,0,1760,326,0, - 510,44,0,1,441,0,455,557,0,454, - 1323,0,52,40,0,230,222,0,1,5741, - 230,0,1,42,230,0,230,416,0,5718, - 40,0,5717,40,0,48,5739,0,48,40, - 0,1,2409,0,1,5975,0,1,5974,0, - 1,5973,0,1,5972,0,1,5971,0,1, - 5970,0,1,5969,0,1,5968,0,1,5967, - 0,1,5966,0,1,5965,0,1,1017,0, - 1,2775,0,230,221,0,5710,407,0,5709, - 407,0,230,415,0,30,517,0,131,2664, - 0,5708,1,0,6037,442,0,1670,442,0, - 5739,50,0,50,40,0,2516,96,0,392, - 36,0,36,392,0,391,33,0,33,391, - 0,510,391,33,0,42,971,0,1,230, - 3138,0,5710,230,0,5709,230,0,1,5741, - 0,42,1,0,238,3410,0,133,2664,0, - 132,2664,0,3194,230,0,162,181,0,42, - 5718,0,42,5717,0,1,97,0,8,10, - 0,230,169,0,5718,2,40,0,5717,2, - 40,0,5718,39,0,5717,39,0,6037,100, - 0,1670,100,0,283,4029,0,191,3901,0 + 19,19,20,20,173,173,174,174,175,138, + 138,139,139,136,136,140,137,137,21,21, + 22,22,24,24,24,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, + 39,39,30,141,141,99,99,102,102,94, + 191,191,78,78,78,78,78,78,78,78, + 78,79,79,79,80,80,57,57,176,176, + 81,81,81,115,115,82,82,82,82,83, + 83,83,83,83,84,84,68,68,68,68, + 68,68,68,50,50,50,50,50,105,105, + 106,106,48,23,23,23,23,23,44,44, + 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,150,150,149,149,121, + 121,151,72,72,73,73,75,76,74,52, + 47,152,152,53,51,71,71,153,153,142, + 142,122,122,86,86,154,154,63,63,63, + 59,59,58,64,64,77,77,56,56,56, + 91,91,101,100,100,61,61,60,60,55, + 55,49,103,103,103,95,95,95,96,97, + 97,97,98,98,107,107,107,109,109,108, + 108,192,192,92,92,178,178,178,178,178, + 124,46,46,156,177,177,125,125,125,125, + 179,179,29,29,116,126,126,126,126,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,62,65,65, + 169,169,127,127,128,128,128,128,128,128, + 3,4,170,170,167,167,129,129,129,69, + 70,85,157,157,113,113,188,188,188,130, + 130,123,123,189,189,1410,38,2401,2387,713, + 3025,4780,34,842,31,35,30,32,2688,262, + 29,27,55,1741,110,80,81,112,2212,1751, + 1784,1777,1820,1802,274,1392,1837,1827,1880,1927, + 1863,1888,1906,147,1085,163,163,148,2516,38, + 851,36,713,1586,4788,34,842,31,35,62, + 32,3493,38,851,36,713,232,3841,34,842, + 31,35,30,32,1698,262,29,27,55,1741, + 110,80,81,112,1635,1751,1784,1777,1820,1802, + 2507,1317,2874,235,230,231,4461,2510,275,3452, + 38,851,36,713,1684,3841,34,842,31,35, + 30,32,1698,262,29,27,55,1741,90,80, + 81,242,245,248,251,2798,2294,38,851,36, + 713,704,4866,34,842,31,35,30,32,385, + 417,499,3602,600,38,291,2412,3195,2411,994, + 2358,2858,3058,4393,2302,38,851,36,713,2393, + 3841,34,842,31,35,1734,32,1698,262,29, + 27,55,1741,110,80,81,112,341,1751,1784, + 1777,1820,1802,66,1618,1837,1827,1880,2212,1863, + 1888,1906,147,1026,2445,506,148,2499,38,851, + 36,713,435,2400,34,842,2222,35,187,507, + 2302,38,851,36,713,2393,3841,34,842,31, + 35,1734,32,1698,262,29,27,55,1741,110, + 80,81,112,341,1751,1784,1777,1820,1802,600, + 3041,1837,1827,1880,338,1863,1888,1906,147,1059, + 4292,506,148,600,38,2044,1994,713,1042,2400, + 2883,38,851,36,713,507,3841,34,842,31, + 35,30,32,1698,262,29,27,55,1741,110, + 80,81,112,502,1751,1784,1777,1820,1802,600, + 1544,1837,1827,1880,2133,1863,1888,1906,147,386, + 417,146,148,1799,38,851,36,713,2199,4866, + 34,842,31,35,64,32,600,38,501,277, + 713,1587,1077,3117,1913,247,38,1440,46,713, + 3025,1152,45,842,3310,38,851,36,713,502, + 3841,34,842,31,35,30,32,1698,262,29, + 27,55,1741,110,80,81,112,3120,1751,1784, + 1777,1820,1802,222,321,1837,1827,1880,1665,1863, + 1888,1906,147,1227,1970,163,148,2014,515,3675, + 1913,2928,38,851,36,713,2393,3841,34,842, + 31,35,1734,32,1698,262,29,27,55,1741, + 110,80,81,112,341,1751,1784,1777,1820,1802, + 286,1168,1837,1827,1880,1775,1863,1888,1906,147, + 64,3670,506,148,2187,600,38,778,383,713, + 2400,2455,38,851,36,713,507,3841,34,842, + 31,35,30,32,1698,262,29,27,55,1741, + 110,80,81,112,37,1751,1784,1777,1820,1802, + 423,3020,1837,1827,1880,559,1863,1888,1906,147, + 1737,331,376,148,1453,2412,2586,38,851,36, + 713,3829,4788,34,842,31,35,61,32,1467, + 47,1536,1799,38,851,36,713,379,4866,34, + 842,31,35,63,32,2528,38,851,36,713, + 503,3841,34,842,31,35,30,32,1698,262, + 29,27,55,1741,110,80,81,112,3234,1751, + 1784,1777,1820,1802,75,232,1837,1827,1880,338, + 1863,1888,1906,147,2515,4431,376,148,486,97, + 2499,38,851,36,713,431,380,34,842,43, + 35,75,244,230,231,3117,2973,38,851,36, + 713,377,3841,34,842,31,35,30,32,1698, + 262,29,27,55,1741,110,80,81,112,3248, + 1751,1784,1777,1820,1802,2182,3019,1837,1827,1880, + 2212,1863,1888,1906,147,304,2942,376,148,3433, + 3045,65,2499,38,851,36,713,1624,338,34, + 842,3002,35,3670,3513,3310,38,851,36,713, + 381,3841,34,842,31,35,30,32,1698,262, + 29,27,55,1741,110,80,81,112,338,1751, + 1784,1777,1820,1802,4702,298,1837,1827,1880,2478, + 1863,1888,1906,147,3025,603,370,148,3310,38, + 851,36,713,330,3841,34,842,31,35,30, + 32,1698,262,29,27,55,1741,110,80,81, + 112,374,1751,1784,1777,1820,1802,2210,485,1837, + 1827,1880,3936,1863,1888,1906,147,1624,4576,370, + 148,388,417,3670,2524,3310,38,851,36,713, + 3024,3841,34,842,31,35,30,32,1698,262, + 29,27,55,1741,110,80,81,112,312,1751, + 1784,1777,1820,1802,422,694,1837,1827,1880,369, + 1863,1888,1906,147,600,3328,370,148,3041,38, + 851,36,713,330,3841,34,842,31,35,30, + 32,1698,262,29,27,55,1741,110,80,81, + 112,1070,1751,1784,1777,1820,1802,1581,3196,1837, + 1827,1880,368,1863,1888,1956,169,3100,935,3310, + 38,851,36,713,3248,3841,34,842,31,35, + 30,32,1698,262,29,27,55,1741,110,80, + 81,112,323,1751,1784,1777,1820,1802,1613,1616, + 1837,1827,1880,512,1863,1888,1906,147,1797,366, + 159,148,3016,1185,1116,326,3544,3310,38,851, + 36,713,1707,3841,34,842,31,35,30,32, + 1698,262,29,27,55,1741,110,80,81,112, + 384,1751,1784,1777,1820,1802,3580,2307,1837,1827, + 1880,152,1863,1888,1906,147,2852,1903,158,148, + 3310,38,851,36,713,1070,3841,34,842,31, + 35,30,32,1698,262,29,27,55,1741,110, + 80,81,112,1132,1751,1784,1777,1820,1802,3580, + 1203,1837,1827,1880,152,1863,1888,1906,147,4671, + 782,157,148,3310,38,851,36,713,1855,3841, + 34,842,31,35,30,32,1698,262,29,27, + 55,1741,110,80,81,112,444,1751,1784,1777, + 1820,1802,3580,870,1837,1827,1880,152,1863,1888, + 1906,147,548,2585,156,148,3310,38,851,36, + 713,1059,3841,34,842,31,35,30,32,1698, + 262,29,27,55,1741,110,80,81,112,322, + 1751,1784,1777,1820,1802,1636,521,1837,1827,1880, + 708,1863,1888,1906,147,324,2005,155,148,3310, + 38,851,36,713,3039,3841,34,842,31,35, + 30,32,1698,262,29,27,55,1741,110,80, + 81,112,353,1751,1784,1777,1820,1802,152,521, + 1837,1827,1880,3101,1863,1888,1906,147,3020,2152, + 154,148,3310,38,851,36,713,1899,3841,34, + 842,31,35,30,32,1698,262,29,27,55, + 1741,110,80,81,112,352,1751,1784,1777,1820, + 1802,152,521,1837,1827,1880,674,1863,1888,1906, + 147,3020,952,153,148,3310,38,851,36,713, + 3025,3841,34,842,31,35,30,32,1698,262, + 29,27,55,1741,110,80,81,112,1294,1751, + 1784,1777,1820,1802,152,2297,1837,1827,1880,2177, + 1863,1888,1906,147,375,448,152,148,3310,38, + 851,36,713,3135,3841,34,842,31,35,30, + 32,1698,262,29,27,55,1741,110,80,81, + 112,3137,1751,1784,1777,1820,1802,152,1496,1837, + 1827,1880,3838,1863,1888,1906,147,3020,447,151, + 148,3310,38,851,36,713,3025,3841,34,842, + 31,35,30,32,1698,262,29,27,55,1741, + 110,80,81,112,1690,1751,1784,1777,1820,1802, + 152,1514,1837,1827,1880,730,1863,1888,1906,147, + 2901,1420,150,148,3310,38,851,36,713,1512, + 3841,34,842,31,35,30,32,1698,262,29, + 27,55,1741,110,80,81,112,3108,1751,1784, + 1777,1820,1802,152,245,1837,1827,1880,2823,1863, + 1888,1906,147,2280,325,149,148,3310,38,851, + 36,713,3161,3841,34,842,31,35,30,32, + 1698,262,29,27,55,1741,110,80,81,112, + 246,1751,1784,1777,1820,1802,152,2589,1837,1827, + 1880,2867,1863,1888,1906,147,350,856,164,148, + 3310,38,851,36,713,3025,3841,34,842,31, + 35,30,32,1698,262,29,27,55,1741,110, + 80,81,112,2938,1751,1784,1777,1820,1802,152, + 351,1837,1827,1880,2938,1863,1888,1906,147,4298, + 58,144,148,3410,38,851,36,713,2349,3841, + 34,842,31,35,30,32,1698,262,29,27, + 55,1741,110,80,81,112,1570,1751,1784,1777, + 1820,1802,152,3292,1837,1827,1880,3015,1863,1888, + 1906,147,3248,3600,194,148,3493,38,851,36, + 713,64,3841,34,842,31,35,30,32,1698, + 262,29,27,55,1741,110,80,81,112,1795, + 1751,1784,1777,1820,1802,152,3129,1837,1827,1880, + 3092,1863,1888,1956,169,3493,38,851,36,713, + 3024,3841,34,842,31,35,30,32,1698,262, + 29,27,55,1741,110,80,81,112,283,1751, + 1784,1777,1820,1802,152,234,1837,1827,1880,1120, + 1863,1888,1956,169,600,38,501,281,713,600, + 38,778,383,713,3134,3493,38,851,36,713, + 290,3841,34,842,31,35,30,32,1698,262, + 29,27,55,1741,110,80,81,112,274,1751, + 1784,1777,1820,1802,1278,76,1837,1827,1880,2679, + 1863,1888,1956,169,3493,38,851,36,713,413, + 3841,34,842,31,35,30,32,1698,262,29, + 27,55,1741,110,80,81,112,3214,1751,1784, + 1777,1820,1802,512,2358,1837,1827,1880,1544,1863, + 1888,1956,169,600,38,501,279,713,152,3112, + 38,280,276,3151,3493,38,851,36,713,3303, + 3841,34,842,31,35,30,32,1698,262,29, + 27,55,1741,110,80,81,112,2956,1751,1784, + 1777,1820,1802,3117,3113,1837,1827,1880,3025,1863, + 1888,1956,169,3534,38,851,36,713,412,3841, + 34,842,31,35,30,32,1698,262,29,27, + 55,1741,110,80,81,112,2004,1751,1784,1777, + 1820,1802,28,303,1837,1827,1880,1927,1863,1888, + 1956,169,600,38,501,3332,713,600,38,778, + 383,713,428,3493,38,851,36,713,415,3841, + 34,842,31,35,30,32,1698,262,29,27, + 55,1741,110,80,81,112,54,1751,1784,1777, + 1820,1802,3117,3682,1837,1827,1880,1744,1863,3106, + 51,3248,3493,38,851,36,713,3320,3841,34, + 842,31,35,30,32,1698,262,29,27,55, + 1741,110,80,81,112,3166,1751,1784,1777,1820, + 1802,152,300,1837,1827,1880,854,3094,3493,38, + 851,36,713,2523,3841,34,842,31,35,30, + 32,1698,262,29,27,55,1741,110,80,81, + 112,1630,1751,1784,1777,1820,1802,305,3705,1837, + 1827,2966,3493,38,851,36,713,3276,3841,34, + 842,31,35,30,32,1698,262,29,27,55, + 1741,110,80,81,112,338,1751,1784,1777,1820, + 1802,3950,2897,1837,3017,3493,38,851,36,713, + 435,3841,34,842,31,35,30,32,1698,262, + 29,27,55,1741,110,80,81,112,1738,1751, + 1784,1777,1820,2945,3493,38,851,36,713,1737, + 3841,34,842,31,35,30,32,1698,262,29, + 27,55,1741,110,80,81,112,1623,1751,1784, + 1777,1820,2953,3575,38,778,383,713,2403,2637, + 2502,1739,3118,2393,3117,3230,237,262,949,38, + 389,3695,3767,3632,509,38,778,383,713,232, + 513,2429,274,3701,239,262,600,38,282,1571, + 38,851,36,713,3706,3871,34,842,31,35, + 337,32,397,274,299,3214,247,230,231,3493, + 38,851,36,713,232,3841,34,842,31,35, + 30,32,1698,262,29,27,55,1741,110,80, + 81,112,232,1751,1784,1777,2771,349,600,38, + 3352,235,230,231,3726,1778,275,318,1458,320, + 358,4757,313,1265,3741,342,1793,1759,347,240, + 230,231,373,340,1904,2997,349,3364,3433,242, + 245,248,251,2798,338,2423,152,152,2484,704, + 4803,951,854,338,342,1793,1759,347,77,4818, + 3684,3025,2413,3112,38,278,2411,994,2358,2858, + 3058,4393,3493,38,851,36,713,3262,3841,34, + 842,31,35,30,32,1698,262,29,27,55, + 1741,110,80,81,112,348,1751,1784,1777,2793, + 3493,38,851,36,713,3544,3841,34,842,31, + 35,30,32,1698,262,29,27,55,1741,110, + 80,81,112,152,1751,1784,1777,2795,3913,3784, + 2093,371,3493,38,851,36,713,363,3841,34, + 842,31,35,30,32,1698,262,29,27,55, + 1741,110,80,81,112,1860,1751,1784,1777,2803, + 2393,2576,38,501,277,713,3776,597,38,778, + 383,713,1070,3493,38,851,36,713,229,3841, + 34,842,31,35,30,32,1698,262,29,27, + 55,1741,110,80,81,112,54,1751,2692,4654, + 3786,207,216,213,3843,206,214,215,217,2212, + 1264,3863,1358,70,38,441,3248,208,2344,4719, + 573,2009,333,15,209,210,211,212,292,293, + 294,295,3493,38,851,36,713,421,3841,34, + 842,31,35,30,32,1698,262,29,27,55, + 1741,110,80,81,112,2925,1751,1784,2830,3493, + 38,851,36,713,3132,3841,34,842,31,35, + 30,32,1698,262,29,27,55,1741,110,80, + 81,112,297,1751,1784,2851,3147,13,2216,38, + 851,36,713,3226,3871,34,842,31,35,337, + 32,3144,3248,2350,38,851,36,713,3706,3871, + 34,842,31,35,337,32,158,38,441,3756, + 387,417,4719,3164,3248,3666,555,3307,3027,38, + 1307,1525,713,3672,4446,600,38,778,383,713, + 600,38,778,383,713,1897,318,1458,320,411, + 3016,313,1265,2503,949,38,389,54,2393,395, + 3251,318,1458,320,440,349,313,1265,296,421, + 152,1264,3020,773,850,1240,2429,434,1923,1949, + 349,3260,3205,342,1793,1759,347,2393,3872,516, + 284,2531,600,38,778,383,713,1689,342,1793, + 1759,347,2393,3025,3119,229,517,1649,38,851, + 36,713,1137,4687,34,842,31,35,337,32, + 2429,274,349,3614,38,278,4654,3214,207,216, + 213,152,206,214,215,217,4398,74,1487,3117, + 342,1793,1759,347,208,357,3140,573,2531,232, + 218,209,210,211,212,292,293,294,295,4357, + 1716,2084,2223,330,2494,318,1458,320,3603,2503, + 313,1265,3643,2393,2393,3702,250,230,231,184, + 438,1923,1949,3788,373,338,3620,3973,1109,493, + 3577,229,2429,1081,3117,3117,592,3020,4563,1701, + 38,2504,36,713,1137,4687,34,842,31,35, + 337,32,4654,2187,207,216,213,152,206,214, + 215,217,4503,152,490,492,2063,3643,2939,307, + 208,854,3117,573,200,199,218,209,210,211, + 212,292,293,294,295,3728,2205,3116,3025,843, + 2393,2393,3670,3025,2478,330,160,318,1458,320, + 1407,357,313,1265,338,167,2227,3025,229,2429, + 4836,3117,399,3973,2231,1627,3316,2084,2223,49, + 1536,3082,73,2840,56,2636,2393,58,3931,4654, + 4563,207,216,213,3405,206,214,215,217,513, + 1548,91,330,1032,341,2393,3756,208,525,92, + 573,203,106,218,209,210,211,212,292,293, + 294,295,3803,229,3023,3823,341,2393,3508,3025, + 888,861,1544,160,152,152,2592,4779,357,2393, + 990,378,2138,152,4641,229,2402,400,1970,232, + 3973,2686,2400,3199,2084,2223,3842,341,1845,408, + 2530,1070,401,57,93,573,4654,106,207,216, + 213,3844,206,214,215,217,253,230,231,2737, + 2789,861,1544,2400,208,2784,3032,573,3025,2599, + 218,209,210,211,212,292,293,294,295,3493, + 38,851,36,713,1493,3841,34,842,31,35, + 30,32,1698,262,29,27,55,1741,110,80, + 81,112,439,1751,2707,177,3020,3973,2772,3025, + 525,2286,38,2504,36,713,1137,3871,34,842, + 31,35,337,32,3214,949,38,389,229,444, + 2831,2878,285,1070,3839,160,2205,3146,402,405, + 1624,2393,3670,3484,2909,185,3670,430,3241,4654, + 3272,205,216,213,3393,204,214,215,217,2429, + 1922,1579,174,2576,38,501,3457,713,1,318, + 1458,320,3025,525,313,1265,600,38,778,383, + 713,515,285,188,172,173,175,176,177,178, + 179,229,330,101,2361,3394,330,2636,160,854, + 600,38,778,383,713,424,94,2909,185,89, + 2794,1579,4654,3861,205,216,213,1937,204,214, + 215,217,2393,3214,160,174,3025,3491,357,423, + 3020,4779,3704,2967,186,3531,2016,3117,3787,2514, + 229,854,3398,3199,2084,2223,189,172,173,175, + 176,177,178,179,600,38,778,383,713,3117, + 3569,4654,3399,207,216,213,160,206,214,215, + 217,409,2530,152,2204,3327,202,201,1396,208, + 514,3258,573,422,3400,15,209,210,211,212, + 292,293,294,295,3493,38,2401,2387,713,3506, + 3841,34,842,31,35,30,32,1698,262,29, + 27,55,1741,110,80,81,88,102,3493,38, + 851,36,713,37,3841,34,842,31,35,30, + 32,1698,262,29,27,55,1741,110,80,81, + 112,2646,2725,3597,3493,38,851,36,713,14, + 3841,34,842,31,35,30,32,1698,262,29, + 27,55,1741,110,80,81,112,2229,2734,3493, + 38,851,36,713,3862,3841,34,842,31,35, + 30,32,1698,262,29,27,55,1741,110,80, + 81,112,265,2756,152,3025,3661,525,3676,4427, + 3025,1750,38,851,36,713,1853,4687,34,842, + 31,35,337,32,3769,229,2110,3025,3117,2393, + 3025,854,160,600,38,778,383,713,152,3641, + 1689,2909,185,4380,3571,2393,4654,341,205,216, + 213,3864,204,214,215,217,160,5418,520,174, + 3111,3638,54,2429,3657,167,4724,331,4668,318, + 1458,320,353,2400,314,1265,1264,525,2533,523, + 3322,172,173,175,176,177,178,179,349,152, + 5418,441,3025,3025,4501,229,525,600,38,501, + 3488,713,160,600,38,291,344,1793,1759,347, + 1095,2909,185,3025,229,525,4654,5418,205,216, + 213,160,204,214,215,217,72,71,3711,174, + 2909,185,493,341,5418,4654,5418,205,216,213, + 160,204,214,215,217,3025,3025,70,174,3018, + 181,172,173,175,176,177,178,179,529,2400, + 5418,152,3025,525,2485,2873,2369,491,492,192, + 172,173,175,176,177,178,179,617,3663,69, + 3214,229,525,2773,152,5418,3025,5418,160,1439, + 600,38,778,383,713,1624,3313,2909,185,5418, + 229,3670,4654,5418,205,216,213,160,204,214, + 215,217,3025,3745,3025,174,2909,185,3025,54, + 60,4654,420,205,216,213,1624,204,214,215, + 217,3117,3670,1264,174,1995,3496,172,173,175, + 176,177,178,179,705,152,59,5418,3752,525, + 1482,3780,105,5418,2404,195,172,173,175,176, + 177,178,179,793,3025,3168,5418,229,525,5418, + 3025,4854,3117,5418,160,5418,600,38,778,383, + 713,3111,330,2909,185,5418,229,4724,4654,5418, + 205,216,213,160,204,214,215,217,3743,519, + 2006,174,2909,185,3810,54,3670,4654,5418,205, + 216,213,196,204,214,215,217,3491,5418,1264, + 174,1366,191,172,173,175,176,177,178,179, + 881,5418,5418,98,5418,525,5418,5418,5418,5418, + 5418,198,172,173,175,176,177,178,179,2596, + 152,5418,152,229,2393,2393,3780,2393,1543,5418, + 160,1454,38,778,383,713,5418,5418,5418,2909, + 185,5418,341,341,4654,341,205,216,213,3091, + 204,214,215,217,2393,2485,5418,174,5418,5418, + 54,685,38,778,383,713,1543,5418,894,2400, + 5418,2400,229,5418,1264,2670,2575,2674,197,172, + 173,175,176,177,178,179,3814,5418,5418,3876, + 54,2393,5418,4654,5418,207,216,213,5418,206, + 214,215,217,1543,1264,5418,1234,5418,100,229, + 5418,208,5418,419,573,2862,5418,509,209,210, + 211,212,292,293,294,295,3828,3876,327,333, + 4654,2393,207,216,213,2298,206,214,215,217, + 600,38,778,383,713,2408,5418,5418,208,229, + 854,573,5418,5418,510,209,210,211,212,292, + 293,294,295,3717,3876,5418,332,333,2393,54, + 4654,5418,207,216,213,160,206,214,215,217, + 5418,5418,2601,1264,3095,1048,229,854,208,5418, + 5418,573,5418,3105,306,209,210,211,212,292, + 293,294,295,329,333,5418,5418,4654,5418,207, + 216,213,160,206,214,215,217,5418,5418,5418, + 5418,3572,5418,5418,5418,208,5418,5418,573,5418, + 5418,219,209,210,211,212,292,293,294,295, + 3493,38,851,36,713,5418,3841,34,842,31, + 35,30,32,1698,262,29,27,55,1741,110, + 80,81,89,3493,38,851,36,713,5418,3841, + 34,842,31,35,30,32,1698,262,29,27, + 55,1741,110,80,81,87,3493,38,851,36, + 713,5418,3841,34,842,31,35,30,32,1698, + 262,29,27,55,1741,110,80,81,86,3493, + 38,851,36,713,5418,3841,34,842,31,35, + 30,32,1698,262,29,27,55,1741,110,80, + 81,85,3493,38,851,36,713,5418,3841,34, + 842,31,35,30,32,1698,262,29,27,55, + 1741,110,80,81,84,3493,38,851,36,713, + 5418,3841,34,842,31,35,30,32,1698,262, + 29,27,55,1741,110,80,81,83,3493,38, + 851,36,713,5418,3841,34,842,31,35,30, + 32,1698,262,29,27,55,1741,110,80,81, + 82,3352,38,851,36,713,5418,3841,34,842, + 31,35,30,32,1698,262,29,27,55,1741, + 110,80,81,108,3493,38,851,36,713,5418, + 3841,34,842,31,35,30,32,1698,262,29, + 27,55,1741,110,80,81,114,3493,38,851, + 36,713,5418,3841,34,842,31,35,30,32, + 1698,262,29,27,55,1741,110,80,81,113, + 3903,5418,5418,5418,5418,2393,5418,5418,5418,5418, + 5418,5418,688,38,778,383,713,5418,3493,38, + 851,36,713,229,3841,34,842,31,35,30, + 32,1698,262,29,27,55,1741,110,80,81, + 111,54,5418,5418,4654,5418,207,216,213,5418, + 206,214,215,217,5418,1264,5418,52,5418,5418, + 5418,5418,208,5418,5418,573,663,5418,487,209, + 210,211,212,292,293,294,295,3493,38,851, + 36,713,5418,3841,34,842,31,35,30,32, + 1698,262,29,27,55,1741,110,80,81,109, + 1959,38,851,36,713,1137,3871,34,842,31, + 35,337,32,3638,38,778,383,713,1543,2637, + 600,38,778,383,713,5418,238,262,5418,1928, + 38,851,36,713,1137,3871,34,842,31,35, + 337,32,274,5418,5418,3026,5418,1543,5418,274, + 854,773,38,778,383,713,5418,5418,318,1458, + 320,5418,5418,313,1265,5418,776,38,778,383, + 713,5418,5418,5418,232,165,5418,5418,5418,3876, + 54,597,38,778,383,713,1081,318,1458,320, + 5418,5418,313,1265,1264,54,52,5418,5418,5418, + 5418,236,230,231,5418,717,275,5418,3876,1264, + 54,52,5418,78,5418,1081,5418,5418,3363,333, + 2099,1543,307,3768,1264,5418,52,5418,2393,243, + 246,249,252,2798,5418,2426,5418,5418,5418,704, + 5418,5418,843,5418,3023,5418,2429,3664,333,5418, + 5418,308,5418,1407,1928,38,851,36,713,1137, + 3871,34,842,31,35,337,32,1928,38,851, + 36,713,1137,3871,34,842,31,35,337,32, + 5418,5418,3876,1765,38,851,36,713,5418,4687, + 34,842,31,35,337,32,1882,38,851,36, + 713,5418,4687,34,842,31,35,337,32,5418, + 5418,5418,318,1458,320,493,5418,313,1265,2648, + 5418,3725,333,5418,854,318,1458,320,5418,5418, + 313,1265,5418,5418,5418,5418,5418,5418,5418,331, + 850,318,1458,320,5418,5418,316,1265,5418,160, + 490,492,331,3464,318,1458,320,5418,3573,314, + 1265,1891,38,851,36,713,2969,3871,34,842, + 31,35,337,32,1819,38,851,36,713,2877, + 3871,34,842,31,35,337,32,5418,2157,5418, + 5418,1473,3329,854,5418,5418,2393,3756,3026,5418, + 5418,396,5418,854,5418,5418,5418,685,38,778, + 383,713,5418,5418,229,5418,5418,5418,160,315, + 898,320,864,38,778,383,713,167,165,5418, + 5418,5418,315,898,320,4641,54,2402,400,685, + 38,778,383,713,685,38,778,383,713,5418, + 1264,54,1348,401,5418,2695,573,5418,5418,5418, + 854,2862,5418,5418,5418,1264,3026,52,54,3408, + 5418,854,5418,54,2393,5418,3583,685,38,778, + 383,713,1264,3026,52,160,5418,1264,854,52, + 3744,5418,341,2805,3593,1493,165,3099,2810,2224, + 1540,38,778,383,713,3670,54,5418,773,38, + 778,383,713,165,5418,980,5418,5418,3658,5418, + 1264,5418,52,685,38,778,383,713,980,54, + 5418,3266,5418,5418,5418,5418,5418,54,685,38, + 778,383,713,1264,5418,3064,5418,5418,5418,402, + 404,1264,54,3156,2009,331,600,38,778,383, + 713,5418,2414,5418,5418,3158,1264,54,52,5418, + 969,1324,5418,3070,2235,525,349,3290,5418,854, + 5418,1264,3666,52,5418,54,600,38,778,383, + 713,5418,3344,229,344,1793,1759,347,1158,1264, + 160,2893,1221,525,160,2742,5418,525,5418,167, + 854,152,5418,167,3518,54,2393,5418,2996,1284, + 5418,341,1347,5418,525,341,5418,525,160,1264, + 5418,2575,160,152,341,160,5418,2138,2393,5418, + 5418,193,341,5418,3625,341,5418,2400,5418,160, + 152,4547,160,3037,152,2393,341,3642,193,2393, + 2400,193,3026,5418,152,2789,2681,854,4547,2393, + 854,4547,3349,341,5418,5418,3750,341,3026,5418, + 5418,2836,2400,854,5418,5418,854,341,497,5418, + 5418,5418,165,5418,5418,160,5418,5418,5418,2400, + 5418,5418,5418,2400,3196,495,5418,5418,165,3485, + 5418,160,5418,2400,5418,5418,5418,3490,5418,524, + 3694,5418,5418,5418,5418,5418,5418,5418,5418,5418, + 5418,5418,5418,5418,3507,5418,5418,3510,5418,5418, + 5418,5418,5418,5418,5418,5418,5418,5418,5418,5418, + 5418,5418,5418,5418,5418,5418,5418,5418,5418,5418, + 5418,3692,5418,5418,5418,5418,5418,5418,5418,5418, + 5418,5418,5418,5418,5418,5418,5418,3698,5418,0, + 489,3859,0,228,1,0,42,5436,0,42, + 5435,0,1,4534,0,1,845,0,1,5436, + 42,0,1,5435,42,0,1,3051,0,1, + 945,0,5652,241,0,5651,241,0,5754,241, + 0,5753,241,0,5679,241,0,5678,241,0, + 5677,241,0,5676,241,0,5675,241,0,5674, + 241,0,5673,241,0,5672,241,0,5691,241, + 0,5690,241,0,5689,241,0,5688,241,0, + 5687,241,0,5686,241,0,5685,241,0,5684, + 241,0,5683,241,0,5682,241,0,5681,241, + 0,42,241,5436,0,42,241,5435,0,241, + 5459,0,501,382,0,53,5436,0,53,5435, + 0,1,5746,0,1,1697,0,41,5436,0, + 41,5435,0,442,1740,0,501,33,0,5436, + 53,0,5435,53,0,1783,317,0,5436,42, + 0,5435,42,0,501,44,0,1,432,0, + 446,1578,0,445,1621,0,52,40,0,228, + 221,0,228,1,5459,0,228,1,42,0, + 228,407,0,40,5436,0,40,5435,0,48, + 5457,0,48,40,0,1,2325,0,1,5691, + 0,1,5690,0,1,5689,0,1,5688,0, + 1,5687,0,1,5686,0,1,5685,0,1, + 5684,0,1,5683,0,1,5682,0,1,5681, + 0,1,2408,0,1,2824,0,228,220,0, + 5428,398,0,5427,398,0,228,406,0,30, + 508,0,130,2570,0,5426,1,0,5746,433, + 0,1697,433,0,5457,50,0,50,40,0, + 2517,95,0,383,36,0,36,383,0,382, + 33,0,33,382,0,501,33,382,0,945, + 42,0,228,1,3141,0,5428,228,0,5427, + 228,0,1,5459,0,1,42,0,237,4425, + 0,132,2570,0,131,2570,0,3299,228,0, + 161,180,0,1,96,0,8,10,0,228, + 168,0,40,5436,2,0,40,5435,2,0, + 5436,39,0,5435,39,0,5746,99,0,1697, + 99,0,279,4763,0,190,3724,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1164,216 +1108,203 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 20,21,22,23,24,25,26,27,28,29, 30,31,32,33,34,35,36,37,38,39, 40,41,42,43,44,45,46,47,48,49, - 50,51,52,53,54,55,56,57,0,59, - 0,61,62,63,64,65,66,67,8,0, - 1,2,72,4,5,75,7,77,78,79, + 50,51,52,53,54,55,56,0,58,59, + 60,61,62,0,64,65,66,67,5,0, + 1,2,72,4,0,75,76,3,78,79, 80,81,82,83,84,85,86,87,0,1, 2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19,20,21, 22,23,24,25,26,27,28,29,30,31, 32,33,34,35,36,37,38,39,40,41, 42,43,44,45,46,47,48,49,50,51, - 52,53,54,55,56,57,0,59,0,61, - 62,63,64,65,66,67,8,0,1,2, - 72,4,5,75,7,77,78,79,80,81, + 52,53,54,55,56,71,58,59,60,61, + 62,0,64,65,66,67,99,0,1,2, + 72,4,0,75,76,3,78,79,80,81, 82,83,84,85,86,87,0,1,2,3, 4,5,6,7,8,9,10,11,12,13, 14,15,16,17,18,19,20,21,22,23, 24,25,26,27,28,29,30,31,32,33, 34,35,36,37,38,39,40,41,42,43, 44,45,46,47,48,49,50,51,52,53, - 54,55,56,57,0,59,0,61,62,63, - 64,65,66,67,0,0,1,2,3,4, - 5,75,7,77,78,79,80,81,82,83, + 54,55,56,0,58,59,60,61,62,6, + 64,65,66,67,0,0,0,1,2,0, + 6,75,76,7,78,79,80,81,82,83, 84,85,86,87,0,1,2,3,4,5, 6,7,8,9,10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25, 26,27,28,29,30,31,32,33,34,35, 36,37,38,39,40,41,42,43,44,45, 46,47,48,49,50,51,52,53,54,55, - 56,57,0,59,0,61,62,63,64,65, - 66,67,0,0,1,2,3,4,5,75, - 7,77,78,79,80,81,82,83,84,85, + 56,0,58,59,60,61,62,0,64,65, + 66,67,0,88,89,91,92,0,6,75, + 76,4,78,79,80,81,82,83,84,85, 86,87,0,1,2,3,4,5,6,7, 8,9,10,11,12,13,14,15,16,17, 18,19,20,21,22,23,24,25,26,27, 28,29,30,31,32,33,34,35,36,37, 38,39,40,41,42,43,44,45,46,47, - 48,49,50,51,52,53,54,55,56,57, - 0,59,0,61,62,63,64,65,66,67, - 0,1,2,0,4,101,6,75,8,77, + 48,49,50,51,52,53,54,55,56,0, + 58,59,60,61,62,0,64,65,66,67, + 0,0,0,91,92,4,6,75,76,0, 78,79,80,81,82,83,84,85,86,87, 0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,28,29, 30,31,32,33,34,35,36,37,38,39, 40,41,42,43,44,45,46,47,48,49, - 50,51,52,53,54,55,56,57,75,59, - 0,61,62,63,64,65,66,67,0,1, - 2,99,4,0,6,75,8,77,78,79, + 50,51,52,53,54,55,56,75,58,59, + 60,61,62,0,64,65,66,67,0,1, + 2,91,92,5,0,75,76,3,78,79, 80,81,82,83,84,85,86,87,0,1, 2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19,20,21, 22,23,24,25,26,27,28,29,30,31, 32,33,34,35,36,37,38,39,40,41, 42,43,44,45,46,47,48,49,50,51, - 52,53,54,55,56,57,73,59,0,61, - 62,63,64,65,66,67,0,1,2,99, - 4,0,6,75,8,77,78,79,80,81, + 52,53,54,55,56,0,58,59,60,61, + 62,0,64,65,66,67,0,1,2,0, + 1,2,0,75,76,0,78,79,80,81, 82,83,84,85,86,87,0,1,2,3, 4,5,6,7,8,9,10,11,12,13, 14,15,16,17,18,19,20,21,22,23, 24,25,26,27,28,29,30,31,32,33, 34,35,36,37,38,39,40,41,42,43, 44,45,46,47,48,49,50,51,52,53, - 54,55,56,57,73,59,0,61,62,63, - 64,65,66,67,0,1,2,0,4,0, - 6,75,8,77,78,79,80,81,82,83, + 54,55,56,71,58,59,60,61,62,0, + 64,65,66,67,0,1,2,0,1,2, + 99,75,76,0,78,79,80,81,82,83, 84,85,86,87,0,1,2,3,4,5, 6,7,8,9,10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25, 26,27,28,29,30,31,32,33,34,35, 36,37,38,39,40,41,42,43,44,45, 46,47,48,49,50,51,52,53,54,55, - 56,57,73,59,77,61,62,63,64,65, - 66,67,0,0,1,2,4,0,5,75, - 7,77,78,79,80,81,82,83,84,85, + 56,68,58,59,60,61,62,0,64,65, + 66,67,0,1,2,0,1,2,0,75, + 76,0,78,79,80,81,82,83,84,85, 86,87,0,1,2,3,4,5,6,7, 8,9,10,11,12,13,14,15,16,17, 18,19,20,21,22,23,24,25,26,27, 28,29,30,31,32,33,34,35,36,37, 38,39,40,41,42,43,44,45,46,47, - 48,49,50,51,52,53,54,55,56,57, - 73,59,0,61,62,63,64,65,66,67, - 0,0,1,2,0,1,2,75,7,77, + 48,49,50,51,52,53,54,55,56,68, + 58,59,60,61,62,0,64,65,66,67, + 0,1,2,0,1,2,0,75,76,0, 78,79,80,81,82,83,84,85,86,87, 0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,28,29, 30,31,32,33,34,35,36,37,38,39, 40,41,42,43,44,45,46,47,48,49, - 50,51,52,53,54,55,56,57,0,59, - 0,61,62,63,64,65,66,67,0,0, - 1,2,0,4,5,75,7,77,78,79, + 50,51,52,53,54,55,56,68,58,59, + 60,61,62,0,64,65,66,67,0,1, + 2,0,97,98,3,75,76,0,78,79, 80,81,82,83,84,85,86,87,0,1, - 2,3,4,5,6,7,8,0,10,11, - 12,0,1,2,3,4,5,6,7,8, - 42,0,24,25,3,47,48,49,50,51, - 52,53,54,55,56,57,0,58,0,69, - 42,3,60,45,0,47,48,49,50,51, - 52,53,54,55,56,57,0,0,60,0, - 4,4,26,6,66,8,68,69,70,71, - 72,73,0,75,76,68,0,1,2,68, - 4,9,71,0,1,2,88,89,90,91, - 92,93,94,95,96,97,98,99,100,101, - 102,103,104,105,106,107,108,109,110,111, - 112,113,114,115,0,1,2,119,0,1, 2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19,20,21, 22,23,24,25,26,27,28,29,30,31, 32,33,34,35,36,37,38,39,40,41, 42,43,44,45,46,47,48,49,50,51, - 52,53,54,55,56,57,0,59,0,61, - 62,63,0,1,2,3,4,5,6,7, - 8,9,0,11,12,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 28,29,30,31,32,33,34,35,36,37, - 38,39,40,41,42,43,44,0,46,47, - 48,49,50,51,52,53,54,55,56,57, - 0,59,66,61,62,63,0,1,2,3, - 4,5,6,7,8,9,0,11,12,13, + 52,53,54,55,56,0,58,59,60,61, + 62,0,1,2,3,4,5,6,7,8, + 9,0,11,12,13,14,15,16,17,18, + 19,20,21,22,23,24,25,26,27,28, + 29,30,31,32,33,34,35,36,37,38, + 39,40,41,42,43,44,0,46,47,48, + 49,50,51,52,53,54,55,56,63,58, + 59,60,61,62,0,1,2,3,4,5, + 6,7,8,9,63,11,12,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,28,29,30,31,32,33,34,35, + 36,37,38,39,40,41,42,43,44,63, + 46,47,48,49,50,51,52,53,54,55, + 56,0,58,59,60,61,62,0,1,2, + 3,4,5,6,7,8,9,0,11,12, + 13,14,15,16,17,18,19,20,21,22, + 23,24,25,26,27,28,29,30,31,32, + 33,34,35,36,37,38,39,40,41,42, + 43,44,0,46,47,48,49,50,51,52, + 53,54,55,56,63,58,59,60,61,62, + 0,1,2,3,4,5,6,7,8,9, + 63,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,43,44,63,46,47,48,49, + 50,51,52,53,54,55,56,0,58,59, + 60,61,62,0,1,2,3,4,5,6, + 7,8,9,0,11,12,13,14,15,16, + 17,18,19,20,21,22,23,24,25,26, + 27,28,29,30,31,32,33,34,35,36, + 37,38,39,40,41,42,43,44,0,46, + 47,48,49,50,51,52,53,54,55,56, + 63,58,59,60,61,62,0,1,2,3, + 4,5,6,7,8,9,63,11,12,13, 14,15,16,17,18,19,20,21,22,23, 24,25,26,27,28,29,30,31,32,33, 34,35,36,37,38,39,40,41,42,43, 44,0,46,47,48,49,50,51,52,53, - 54,55,56,57,0,59,66,61,62,63, - 0,1,2,3,4,5,6,7,8,9, - 0,11,12,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,28,29, - 30,31,32,33,34,35,36,37,38,39, - 40,41,42,43,44,0,46,47,48,49, - 50,51,52,53,54,55,56,57,0,59, - 66,61,62,63,0,1,2,3,4,5, - 6,7,8,9,0,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,28,29,30,31,32,33,34,35, - 36,37,38,39,40,41,42,43,44,0, - 46,47,48,49,50,51,52,53,54,55, - 56,57,0,59,66,61,62,63,0,1, - 2,3,4,5,6,7,8,9,0,11, - 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,36,37,38,39,40,41, - 42,43,44,0,46,47,48,49,50,51, - 52,53,54,55,56,57,0,59,66,61, - 62,63,0,1,2,3,4,5,6,7, - 8,9,0,11,12,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 28,29,30,31,32,33,34,35,36,37, - 38,39,40,41,42,43,44,0,46,47, + 54,55,56,0,58,59,60,61,62,0, + 1,2,3,4,5,6,7,8,9,0, + 11,12,13,14,15,16,17,18,19,20, + 21,22,23,24,25,26,27,28,29,30, + 31,32,33,34,35,36,37,38,39,40, + 41,42,0,0,1,2,47,48,49,50, + 51,52,53,54,55,56,0,58,59,60, + 61,62,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,42,0,43,44,3,47, + 48,49,50,51,52,53,54,55,56,90, + 58,0,121,0,42,96,3,45,46,47, 48,49,50,51,52,53,54,55,56,57, - 0,59,66,61,62,63,0,1,2,3, - 4,5,6,7,8,9,0,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,29,30,31,32,33, - 34,35,36,37,38,39,40,41,42,0, - 1,2,0,47,48,49,50,51,52,53, - 54,55,56,57,0,59,0,61,62,63, - 0,1,2,3,4,5,6,7,8,9, - 10,0,95,13,14,15,16,17,18,19, - 20,21,22,23,42,0,1,2,0,47, - 48,49,50,51,52,53,54,55,56,57, - 0,0,42,0,3,45,46,47,48,49, - 50,51,52,53,54,55,56,57,58,59, - 0,61,62,63,64,0,1,2,43,44, - 5,0,72,73,74,0,0,0,1,2, - 3,4,5,6,7,8,9,10,48,49, - 13,14,15,16,17,18,19,20,21,22, - 23,0,1,2,3,4,5,6,7,8, - 0,10,71,0,1,2,116,117,118,42, - 60,0,45,46,47,48,49,50,51,52, - 53,54,55,56,57,58,59,0,61,62, - 63,64,5,42,69,70,45,71,0,72, - 73,74,0,0,0,3,43,44,6,58, - 8,60,10,11,12,64,65,0,67,0, - 1,2,0,4,26,74,24,25,102,58, - 104,105,106,107,108,109,110,111,112,113, - 114,0,121,116,117,118,42,45,0,1, - 2,47,48,49,50,51,52,53,54,55, - 56,57,60,0,0,0,1,2,4,6, - 68,69,70,71,72,73,73,58,76,0, - 1,2,3,4,5,6,7,8,71,0, + 58,59,60,61,62,69,64,24,25,0, + 1,2,0,0,72,73,74,0,1,2, + 3,4,5,6,7,8,9,10,11,12, + 13,14,15,16,17,18,19,20,21,0, + 0,1,2,3,4,5,6,7,8,68, + 0,68,43,44,4,0,114,115,116,42, + 48,49,45,46,47,48,49,50,51,52, + 53,54,55,56,57,58,59,60,61,62, + 0,64,0,1,2,0,103,0,6,72, + 73,74,0,0,9,3,0,4,6,6, + 8,8,10,120,0,0,10,0,68,4, + 71,71,57,63,22,23,24,25,0,1, + 2,3,4,5,6,7,8,114,115,116, + 26,114,115,116,0,1,2,45,4,57, + 6,102,8,104,105,106,107,108,109,110, + 111,112,113,0,67,63,117,0,0,0, + 68,69,70,71,72,73,70,9,72,77, + 0,1,2,3,4,5,6,7,8,26, 88,89,90,91,92,93,94,95,96,97, 98,99,100,101,102,103,104,105,106,107, - 108,109,110,111,112,113,114,115,0,0, - 0,119,3,58,60,6,0,8,0,10, - 11,12,0,1,2,3,4,5,6,7, - 8,0,0,24,25,0,0,1,2,60, - 4,5,73,7,91,92,11,12,69,0, - 42,0,1,2,45,47,48,49,50,51, - 52,53,54,55,56,57,0,1,2,60, - 4,0,93,94,0,1,2,68,69,70, - 71,72,73,0,0,76,70,69,70,0, - 68,60,60,10,58,6,0,88,89,90, - 91,92,93,94,95,96,97,98,99,100, - 101,102,103,104,105,106,107,108,109,110, - 111,112,113,114,115,0,1,2,119,0, + 108,109,110,111,112,113,0,0,0,117, + 118,3,120,0,6,57,8,59,10,0, + 1,2,3,4,5,6,7,8,69,70, + 22,23,24,25,0,1,2,3,4,5, + 6,7,8,73,0,1,2,0,4,42, + 6,4,8,45,47,48,49,50,51,52, + 53,54,55,56,0,58,0,3,0,1, + 2,63,4,5,68,7,68,69,70,71, + 72,73,69,70,0,77,0,68,0,1, + 2,3,4,5,47,7,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,57,0,117,118,3,120,0, 1,2,3,4,5,6,7,8,9,10, - 66,70,13,14,15,16,17,18,19,20, - 21,22,23,0,1,2,3,4,5,6, - 7,8,0,1,2,3,4,5,6,7, - 8,42,88,89,45,46,47,48,49,50, - 51,52,53,54,55,56,57,58,59,0, - 61,62,63,64,65,0,67,101,115,4, - 0,1,2,74,4,0,0,1,2,3, - 4,5,6,7,8,9,10,0,0,13, - 14,15,16,17,18,19,20,21,22,23, - 0,1,2,3,4,5,6,7,8,0, - 1,2,3,4,5,0,7,0,42,10, + 11,12,13,14,15,16,17,18,19,20, + 21,0,1,2,3,4,5,6,7,8, + 0,1,2,3,4,5,0,7,0,3, + 10,42,0,0,45,46,47,48,49,50, + 51,52,53,54,55,56,57,58,59,60, + 61,62,68,64,65,66,0,0,1,2, + 3,4,5,74,7,45,0,1,2,3, + 4,5,6,7,8,9,10,11,12,13, + 14,15,16,17,18,19,20,21,0,1, + 2,3,4,5,68,7,63,69,10,0, + 1,2,70,4,122,6,73,8,42,0, 121,45,46,47,48,49,50,51,52,53, - 54,55,56,57,58,59,66,61,62,63, - 64,65,0,67,69,70,58,88,89,0, - 74,0,1,2,45,0,1,2,3,4, + 54,55,56,57,58,59,60,61,62,73, + 64,65,66,45,0,0,1,2,4,4, + 74,6,0,8,0,0,1,2,3,4, 5,6,7,8,9,10,11,12,13,14, 15,16,17,18,19,20,21,22,23,24, 25,26,27,28,29,30,31,32,33,34, @@ -1392,190 +1323,192 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 14,15,16,17,18,19,20,21,22,23, 24,25,26,27,28,29,30,31,32,33, 34,35,36,37,38,39,40,41,0,43, - 44,0,46,0,100,4,3,0,1,2, - 3,4,5,0,7,0,1,2,3,4, - 0,6,9,8,0,1,2,3,4,5, - 10,7,76,0,1,2,3,4,5,6, - 7,8,9,10,11,12,13,14,15,16, - 17,18,19,20,21,22,23,24,25,26, - 27,28,29,30,31,32,33,34,35,36, - 37,38,39,40,41,68,43,44,65,46, - 0,0,0,68,0,1,2,3,4,5, - 70,7,0,1,2,0,76,73,6,0, - 1,2,3,4,5,6,7,8,9,76, - 11,12,13,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,29,30, - 31,32,33,34,35,36,37,38,39,40, - 41,60,43,44,0,0,1,2,68,0, - 58,69,68,0,73,11,12,4,0,1, - 2,3,4,5,6,7,8,9,69,11, - 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,36,37,38,39,40,41, - 47,43,44,58,46,0,1,2,3,4, - 5,6,7,8,9,120,11,12,13,14, - 15,16,17,18,19,20,21,22,23,24, - 25,26,27,28,29,30,31,32,33,34, - 35,36,37,38,39,40,41,0,43,44, - 3,46,0,1,2,3,4,5,6,7, - 8,9,10,11,12,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 28,29,30,31,32,33,34,35,36,37, - 38,39,40,41,0,1,2,0,4,0, - 6,0,8,0,10,0,3,6,0,0, - 1,2,4,10,5,10,0,0,66,0, - 1,2,0,0,72,0,1,2,3,4, - 5,6,7,8,9,10,11,12,13,14, - 15,16,17,18,19,20,21,22,23,24, - 25,26,27,28,29,30,31,32,33,34, - 35,36,37,38,39,40,41,58,60,70, - 76,68,69,70,0,58,60,58,4,76, - 0,76,0,1,2,0,1,2,0,95, - 68,66,91,92,97,98,73,72,0,1, + 44,3,46,0,0,1,2,4,4,0, + 6,0,8,0,10,0,1,2,3,4, + 5,70,7,0,1,2,3,4,0,6, + 0,8,4,77,0,1,2,3,4,5, + 6,7,8,9,10,11,12,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,28,29,30,31,32,33,34,35, + 36,37,38,39,40,41,67,43,44,0, + 46,77,3,68,73,0,1,2,3,4, + 5,68,7,0,1,2,0,4,5,95, + 7,0,1,2,3,4,5,6,7,8, + 9,77,11,12,13,14,15,16,17,18, + 19,20,21,22,23,24,25,26,27,28, + 29,30,31,32,33,34,35,36,37,38, + 39,40,41,0,43,44,3,68,0,0, + 1,2,3,4,5,0,7,0,73,63, + 0,1,2,3,4,5,6,7,8,9, + 69,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,41,0,43,44,0,46,0,1,2, + 3,4,5,6,7,8,9,68,11,12, + 13,14,15,16,17,18,19,20,21,22, + 23,24,25,26,27,28,29,30,31,32, + 33,34,35,36,37,38,39,40,41,101, + 43,44,95,46,0,1,2,3,4,5, + 6,7,8,9,10,11,12,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,28,29,30,31,32,33,34,35, + 36,37,38,39,40,41,0,95,0,1, + 2,0,0,5,3,7,0,1,2,0, + 4,10,10,0,0,0,1,2,9,4, + 5,67,7,0,1,2,72,0,1,2, + 3,4,5,6,7,8,9,10,11,12, + 13,14,15,16,17,18,19,20,21,22, + 23,24,25,26,27,28,29,30,31,32, + 33,34,35,36,37,38,39,40,41,68, + 69,70,57,67,65,0,1,2,77,77, + 57,67,69,70,0,0,1,2,0,4, + 5,0,7,0,67,0,8,95,3,72, + 0,1,2,3,4,5,6,7,8,9, + 0,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,41,57,43,44,0,46,0,1,2, + 3,4,5,6,7,8,9,73,11,12, + 13,14,15,16,17,18,19,20,21,22, + 23,24,25,26,27,28,29,30,31,32, + 33,34,35,36,37,38,39,40,41,0, + 43,44,101,46,0,1,2,3,4,5, + 6,7,8,9,59,11,12,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,28,29,30,31,32,33,34,35, + 36,37,38,39,40,41,0,43,44,3, + 46,0,1,2,3,4,5,6,7,8, + 9,0,11,12,13,14,15,16,17,18, + 19,20,21,22,23,24,25,26,27,28, + 29,30,31,32,33,34,35,36,37,38, + 39,40,41,0,43,44,3,46,0,1, 2,3,4,5,6,7,8,9,0,11, 12,13,14,15,16,17,18,19,20,21, 22,23,24,25,26,27,28,29,30,31, 32,33,34,35,36,37,38,39,40,41, - 58,43,44,58,46,0,1,2,3,4, + 0,43,44,3,46,0,1,2,3,4, 5,6,7,8,9,0,11,12,13,14, 15,16,17,18,19,20,21,22,23,24, 25,26,27,28,29,30,31,32,33,34, 35,36,37,38,39,40,41,0,43,44, - 102,46,0,1,2,3,4,5,6,7, - 8,9,114,11,12,13,14,15,16,17, + 3,46,0,1,2,3,4,5,6,7, + 8,9,0,11,12,13,14,15,16,17, 18,19,20,21,22,23,24,25,26,27, 28,29,30,31,32,33,34,35,36,37, - 38,39,40,41,0,43,44,3,46,0, - 1,2,3,4,5,6,7,8,9,0, + 38,39,40,41,0,43,44,0,1,2, + 3,4,5,6,7,8,9,0,11,12, + 13,14,15,16,17,18,19,20,21,22, + 23,24,25,26,27,28,29,30,31,32, + 33,34,35,36,37,38,39,40,41,0, + 43,44,0,1,2,3,4,5,6,7, + 8,9,0,11,12,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 28,29,30,31,32,33,34,35,36,37, + 38,39,40,41,90,0,1,2,0,0, + 96,0,0,0,0,0,0,1,2,10, + 4,0,1,2,10,10,5,100,0,67, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,0,67,57,3,67,5,6,57,8, + 0,1,2,3,4,5,6,7,8,0, + 10,77,77,22,23,24,25,0,27,71, + 0,0,1,2,4,0,0,0,0,0, + 1,2,100,8,43,44,10,10,0,22, + 23,0,42,0,0,45,0,118,123,0, + 1,2,119,0,63,0,0,57,3,68, + 69,70,71,63,64,65,66,47,118,0, + 0,45,45,0,74,0,67,0,57,88, + 89,90,91,92,93,94,57,10,97,98, + 99,100,101,102,103,104,105,106,107,108, + 109,110,111,112,113,0,57,63,3,63, + 5,6,69,8,0,1,2,3,4,5, + 6,7,8,0,10,97,98,22,23,24, + 25,90,27,63,114,115,116,96,63,69, + 102,88,89,0,1,2,90,70,43,44, + 0,0,96,3,77,117,42,0,0,45, + 0,88,89,93,94,0,0,10,63,0, + 0,57,0,68,69,70,71,26,64,65, + 66,0,22,23,3,0,72,0,74,0, + 67,22,23,88,89,90,91,92,93,94, + 57,0,97,98,99,100,101,102,103,104, + 105,106,107,108,109,110,111,112,113,0, + 1,2,3,4,5,6,7,8,9,72, 11,12,13,14,15,16,17,18,19,20, 21,22,23,24,25,26,27,28,29,30, 31,32,33,34,35,36,37,38,39,40, - 41,0,43,44,3,46,0,1,2,3, - 4,5,6,7,8,9,0,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,29,30,31,32,33, - 34,35,36,37,38,39,40,41,0,43, - 44,3,46,0,1,2,3,4,5,6, + 41,0,1,2,3,4,5,6,7,8, + 9,70,11,12,13,14,15,16,17,18, + 19,20,21,22,23,24,25,26,27,28, + 29,30,31,32,33,34,35,36,37,38, + 39,40,0,0,119,3,3,0,0,0, + 3,3,3,0,0,1,2,0,0,0, + 1,2,3,4,5,6,7,8,9,68, + 11,12,13,14,15,16,17,18,19,20, + 21,22,23,24,25,26,27,28,29,30, + 31,32,33,34,35,36,37,38,39,40, + 41,0,1,2,3,4,5,6,7,8, + 9,57,11,12,13,14,15,16,17,18, + 19,20,21,22,23,24,25,26,27,28, + 29,30,31,32,33,34,35,36,37,38, + 39,40,0,1,2,3,4,5,6,7, + 8,9,95,11,12,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 28,29,30,31,32,33,34,35,36,37, + 38,39,40,0,1,2,3,4,5,6, 7,8,9,0,11,12,13,14,15,16, 17,18,19,20,21,22,23,24,25,26, 27,28,29,30,31,32,33,34,35,36, - 37,38,39,40,41,0,43,44,0,46, - 0,1,2,3,4,5,6,7,8,9, - 0,11,12,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,28,29, - 30,31,32,33,34,35,36,37,38,39, - 40,41,0,43,44,0,1,2,3,4, - 5,6,7,8,9,60,11,12,13,14, - 15,16,17,18,19,20,21,22,23,24, - 25,26,27,28,29,30,31,32,33,34, - 35,36,37,38,39,40,41,0,43,44, - 0,1,2,3,4,5,6,7,8,9, - 0,11,12,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,28,29, - 30,31,32,33,34,35,36,37,38,39, - 40,41,90,0,0,0,0,3,96,0, - 0,0,0,0,0,10,0,11,12,0, - 0,10,6,0,10,68,66,0,1,2, - 3,4,5,6,7,8,9,10,11,12, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,28,29,30,31,32, - 33,34,35,36,37,38,39,40,0,60, - 60,3,68,5,6,70,8,72,69,11, - 12,0,1,2,3,4,5,76,7,70, - 76,10,24,25,0,27,0,0,4,3, - 0,4,93,94,4,0,95,91,92,0, - 10,43,44,0,0,10,0,97,98,3, - 24,25,0,0,10,3,45,0,60,116, - 117,118,0,0,1,2,68,69,70,71, - 0,47,115,0,0,45,0,0,0,0, - 45,0,9,0,10,9,88,89,90,91, - 92,93,94,0,68,97,98,99,100,101, - 102,103,104,105,106,107,108,109,110,111, - 112,113,0,60,68,3,72,5,6,45, - 8,58,69,11,12,0,0,1,2,103, - 0,58,59,0,58,59,24,25,60,27, - 116,117,118,10,70,119,93,94,0,0, - 71,3,90,60,71,43,44,100,96,10, - 90,122,0,120,0,3,96,90,0,88, - 89,3,60,96,10,0,0,0,45,3, - 68,69,70,71,58,60,0,0,0,3, - 60,3,0,0,45,3,3,0,0,0, - 88,89,90,91,92,93,94,0,0,97, - 98,99,100,101,102,103,104,105,106,107, - 108,109,110,111,112,113,0,1,2,3, - 4,5,6,7,8,9,72,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,29,30,31,32,33, - 34,35,36,37,38,39,40,41,0,1, - 2,3,4,5,6,7,8,9,70,11, - 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,36,37,38,39,40,0, - 0,0,3,3,3,0,0,0,3,3, - 3,0,0,0,0,4,0,1,2,3, - 4,5,6,7,8,9,68,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,29,30,31,32,33, - 34,35,36,37,38,39,40,41,0,1, - 2,3,4,5,6,7,8,9,68,11, - 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,36,37,38,39,40,0, - 1,2,3,4,5,6,7,8,9,95, - 11,12,13,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,29,30, - 31,32,33,34,35,36,37,38,39,40, - 0,1,2,3,4,5,6,7,8,9, - 0,11,12,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,28,29, - 30,31,32,33,34,35,36,37,38,39, - 40,0,1,2,0,4,0,0,0,0, - 9,0,4,0,13,14,15,16,17,18, - 19,20,21,22,23,0,0,0,0,0, - 0,0,1,2,3,4,5,6,7,8, - 10,10,0,42,0,0,0,3,47,48, - 49,50,51,52,53,54,55,56,57,0, - 59,0,61,62,63,0,1,2,60,4, - 41,0,59,42,9,69,45,70,13,14, - 15,16,17,18,19,20,21,22,23,58, - 0,0,88,89,69,64,65,70,67,88, - 89,10,60,72,95,74,76,42,0,0, - 0,0,47,48,49,50,51,52,53,54, - 55,56,57,0,59,0,61,62,63,0, - 71,0,71,0,3,0,13,14,15,16, - 17,18,19,20,21,22,23,0,1,2, - 3,4,5,6,7,8,0,10,0,0, - 0,71,0,0,0,42,0,76,0,0, - 47,48,49,50,51,52,53,54,55,56, - 57,71,73,0,73,0,26,0,0,42, - 0,120,45,0,1,2,3,4,5,6, - 7,8,69,10,69,58,0,0,0,0, - 0,64,65,0,67,0,60,0,0,72, - 0,74,0,0,0,1,2,3,4,5, - 6,7,8,69,10,42,68,71,45,0, - 1,2,3,4,5,6,7,8,0,10, - 0,58,0,68,71,0,0,64,65,71, - 67,0,0,0,0,72,42,74,0,45, - 0,1,2,3,4,5,6,7,8,0, - 10,42,58,0,45,0,0,0,64,65, - 0,67,0,0,0,0,72,58,74,0, - 0,0,0,64,65,0,67,0,0,0, - 0,72,42,74,0,45,0,1,2,3, - 4,5,6,7,8,0,10,0,58,0, - 0,0,0,0,64,65,0,67,0,0, - 0,0,0,0,74,0,0,1,2,3, - 4,5,6,7,8,0,10,0,42,0, - 0,45,0,0,0,0,0,0,0,0, - 0,0,0,0,58,0,0,0,0,0, - 64,65,0,67,0,0,0,0,42,0, - 74,45,0,0,0,0,0,0,0,0, - 0,0,0,0,58,0,0,0,0,0, - 64,65,0,67,0,0,0,0,0,0, - 74,0,0,0,0,0,0,0,0,0, + 37,38,39,40,0,1,2,0,4,0, + 0,4,0,9,4,11,12,13,14,15, + 16,17,18,19,20,21,0,0,0,0, + 57,0,0,1,2,3,4,5,6,7, + 8,10,10,0,1,2,42,0,0,0, + 41,47,48,49,50,51,52,53,54,55, + 56,0,58,59,60,61,62,0,1,2, + 63,4,0,63,42,3,9,45,11,12, + 13,14,15,16,17,18,19,20,21,57, + 0,63,0,3,68,0,64,65,66,70, + 57,0,10,72,72,0,74,0,3,42, + 0,0,0,0,47,48,49,50,51,52, + 53,54,55,56,0,58,59,60,61,62, + 0,0,71,0,0,11,12,13,14,15, + 16,17,18,19,20,21,0,1,2,3, + 4,5,6,7,8,0,10,0,1,2, + 3,4,5,6,7,8,42,10,119,77, + 0,47,48,49,50,51,52,53,54,55, + 56,70,58,88,89,0,73,0,42,88, + 89,45,0,0,63,10,0,0,0,42, + 69,71,45,57,70,0,9,0,10,76, + 64,65,66,0,57,0,0,0,72,0, + 74,64,65,66,93,94,71,0,0,72, + 45,74,0,1,2,3,4,5,6,7, + 8,71,10,0,1,2,3,4,5,6, + 7,8,0,10,57,70,59,0,1,2, + 3,4,5,6,7,8,70,10,0,0, + 0,0,0,0,42,77,71,45,10,0, + 63,0,69,0,69,42,69,71,45,57, + 0,0,0,0,0,0,64,65,66,42, + 57,0,45,0,72,0,74,64,65,66, + 93,94,0,45,57,0,0,74,0,0, + 0,64,65,66,0,73,0,0,0,0, + 0,74,0,1,2,3,4,5,6,7, + 8,69,10,42,73,0,73,0,47,48, + 49,50,51,52,53,54,55,56,0,58, + 0,69,71,73,71,0,0,0,0,0, + 0,0,0,0,42,0,0,45,0,0, + 0,0,0,0,0,0,0,0,0,57, + 0,0,0,0,0,0,64,65,66,0, + 0,0,42,0,0,0,74,47,48,49, + 50,51,52,53,54,55,56,0,58,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0 + 0,0,0,0,0,0,0,0,0,0, + 0,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; @@ -1583,419 +1516,405 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface TermAction { public final static char termAction[] = {0, - 5700,5628,5338,5338,5338,5338,5338,5338,5338,1, - 5653,1,1,1,1,1,1,1,1,1, + 5418,5352,5063,5063,5063,5063,5063,5063,5063,1, + 5377,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5635,3174,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 136,1,1,1,1022,814,1088,592,593,5700, - 5344,5341,5707,670,971,1221,3006,3171,3297,2093, - 3266,3132,3563,3159,798,3153,3565,3142,8,5668, - 5668,5668,5668,5668,5668,5668,5668,5668,5668,5668, - 5668,5668,5668,5668,5668,5668,5668,5668,5668,5668, - 5668,5668,5668,5668,5668,5668,5668,5668,5668,5668, - 5668,5668,5668,5668,5668,5668,5668,5668,5668,5668, - 5668,5668,5668,5668,5668,5668,5668,5668,5668,5668, - 5668,5668,5668,5668,5668,5668,5700,5668,137,5668, - 5668,5668,5668,5668,5668,5668,593,5700,5344,5341, - 5668,670,971,5668,3006,5668,5668,5668,5668,5668, - 5668,5668,5668,5668,5668,5668,5700,5628,5338,5338, - 5338,5338,5338,5338,5338,1,5632,1,1,1, + 1,1,1,1,1,5359,3224,1,1,1, + 1,1,1,1,1,1,1,137,1,1, + 1,1,1,5418,617,1274,565,662,4400,5418, + 5211,5208,5425,5459,311,2077,3221,2261,2965,2015, + 2964,3126,3482,3220,759,3155,3326,3149,8,5386, + 5386,5386,5386,5386,5386,5386,5386,5386,5386,5386, + 5386,5386,5386,5386,5386,5386,5386,5386,5386,5386, + 5386,5386,5386,5386,5386,5386,5386,5386,5386,5386, + 5386,5386,5386,5386,5386,5386,5386,5386,5386,5386, + 5386,5386,5386,5386,5386,5386,5386,5386,5386,5386, + 5386,5386,5386,5386,5386,1086,5386,5386,5386,5386, + 5386,1,5386,5386,5386,5386,2302,5418,5211,5208, + 5386,5459,5418,5386,5386,624,5386,5386,5386,5386, + 5386,5386,5386,5386,5386,5386,5418,5352,5063,5063, + 5063,5063,5063,5063,5063,1,5356,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5635,3174,1,1,1,1,1,1,1, - 1,1,1,1,5700,1,5700,1,1,1, - 1022,814,1088,592,5700,1,5357,5353,5347,5350, - 5364,1221,5361,3171,3297,2093,3266,3132,3563,3159, - 798,3153,3565,3142,5700,5628,5338,5338,5338,5338, - 5338,5338,5338,1,5632,1,1,1,1,1, + 1,5359,3224,1,1,1,1,1,1,1, + 1,1,1,5418,1,1,1,1,1,2593, + 617,1274,565,662,119,125,41,5190,5187,5418, + 3459,2077,3221,1308,2965,2015,2964,3126,3482,3220, + 759,3155,3326,3149,5418,5352,5063,5063,5063,5063, + 5063,5063,5063,1,5356,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5635, - 3174,1,1,1,1,1,1,1,1,1, - 1,1,5700,1,142,1,1,1,1022,814, - 1088,592,5700,1,5357,5353,3224,5350,971,1221, - 3006,3171,3297,2093,3266,3132,3563,3159,798,3153, - 3565,3142,5700,5628,5338,5338,5338,5338,5338,5338, - 5338,1,5632,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5359, + 3224,1,1,1,1,1,1,1,1,1, + 1,5418,1,1,1,1,1,5418,617,1274, + 565,662,121,2702,2729,3434,3408,42,3459,2077, + 3221,5459,2965,2015,2964,3126,3482,3220,759,3155, + 3326,3149,5418,5352,5063,5063,5063,5063,5063,5063, + 5063,1,5356,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5635,3174,1, - 1,1,1,1,1,1,1,1,1,1, - 5700,1,138,1,1,1,1022,814,1088,592, - 441,1,1,1,1,2316,5493,1221,5493,3171, - 3297,2093,3266,3132,3563,3159,798,3153,3565,3142, - 5700,5628,5338,5338,5338,5338,5338,5338,5338,1, - 5632,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5359,3224,1, + 1,1,1,1,1,1,1,1,1,5418, + 1,1,1,1,1,5418,617,1274,565,662, + 120,5418,1,3434,3408,877,3459,2077,3221,5418, + 2965,2015,2964,3126,3482,3220,759,3155,3326,3149, + 5418,5352,5063,5063,5063,5063,5063,5063,5063,1, + 5356,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5635,3174,1,1,1, - 1,1,1,1,1,1,1,1,1535,1, - 139,1,1,1,1022,814,1088,592,442,42, - 42,2386,5741,445,5597,1221,5594,3171,3297,2093, - 3266,3132,3563,3159,798,3153,3565,3142,5700,5628, - 5338,5338,5338,5338,5338,5338,5338,1,5632,1, + 1,1,1,1,1,5359,3224,1,1,1, + 1,1,1,1,1,1,1,1654,1,1, + 1,1,1,5418,617,1274,565,662,5418,5435, + 5436,3434,3408,4400,5418,2077,3221,1783,2965,2015, + 2964,3126,3482,3220,759,3155,3326,3149,5418,5352, + 5063,5063,5063,5063,5063,5063,5063,1,5356,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5635,3174,1,1,1,1,1, - 1,1,1,1,1,1,1099,1,5700,1, - 1,1,1022,814,1088,592,97,1,1,2386, - 1,427,5665,1221,5665,3171,3297,2093,3266,3132, - 3563,3159,798,3153,3565,3142,5700,5628,5338,5338, - 5338,5338,5338,5338,5338,1,5632,1,1,1, + 1,1,1,5359,3224,1,1,1,1,1, + 1,1,1,1,1,5418,1,1,1,1, + 1,138,617,1274,565,662,5418,5178,5175,5418, + 5435,5436,38,2077,3221,5418,2965,2015,2964,3126, + 3482,3220,759,3155,3326,3149,5418,5352,5063,5063, + 5063,5063,5063,5063,5063,1,5356,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5635,3174,1,1,1,1,1,1,1, - 1,1,1,1,1220,1,5700,1,1,1, - 1022,814,1088,592,100,42,42,5700,5741,5700, - 5691,1221,5688,3171,3297,2093,3266,3132,3563,3159, - 798,3153,3565,3142,5700,5628,5338,5338,5338,5338, - 5338,5338,5338,1,5632,1,1,1,1,1, + 1,5359,3224,1,1,1,1,1,1,1, + 1,1,1,1168,1,1,1,1,1,5418, + 617,1274,565,662,5418,5202,5199,5418,9523,9520, + 2302,2077,3221,319,2965,2015,2964,3126,3482,3220, + 759,3155,3326,3149,5418,5352,5063,5063,5063,5063, + 5063,5063,5063,1,5356,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5635, - 3174,1,1,1,1,1,1,1,1,1, - 1,1,6103,1,3295,1,1,1,1022,814, - 1088,592,42,5700,5717,5718,5741,5700,971,1221, - 3006,3171,3297,2093,3266,3132,3563,3159,798,3153, - 3565,3142,5700,5628,5338,5338,5338,5338,5338,5338, - 5338,1,5632,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5359, + 3224,1,1,1,1,1,1,1,1,1, + 1,1278,1,1,1,1,1,5418,617,1274, + 565,662,53,5202,5199,53,5178,5175,5418,2077, + 3221,446,2965,2015,2964,3126,3482,3220,759,3155, + 3326,3149,5418,5352,5063,5063,5063,5063,5063,5063, + 5063,1,5356,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5635,3174,1, - 1,1,1,1,1,1,1,1,1,1, - 2132,1,5700,1,1,1,1022,814,1088,592, - 5700,41,5469,5466,5700,5457,5454,1221,728,3171, - 3297,2093,3266,3132,3563,3159,798,3153,3565,3142, - 5700,3138,1,1,1,1,1,1,1,1, - 5710,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5359,3224,1, + 1,1,1,1,1,1,1,1,1,5220, + 1,1,1,1,1,133,617,1274,565,662, + 288,5435,5436,5418,9523,9520,5418,2077,3221,445, + 2965,2015,2964,3126,3482,3220,759,3155,3326,3149, + 5418,3141,1,1,1,1,1,1,1,1, + 5428,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5709,3174,1,1,1, - 1,1,1,1,1,1,1,1,5700,1, - 5700,1,1,1,1022,814,1088,592,225,5700, - 5344,5341,5700,670,5625,1221,3006,3171,3297,2093, - 3266,3132,3563,3159,798,3153,3565,3142,5700,5447, - 5447,5447,5447,5447,5447,5447,5447,328,5447,5447, - 5447,373,5357,5353,2822,5350,971,1,3006,1, - 5958,5700,5447,5447,743,5961,6044,6045,5955,5962, - 5934,5960,5959,5956,5957,5935,5700,2079,5700,4140, - 5447,1760,1495,5447,5700,5447,5447,5447,5447,5447, - 5447,5447,5447,5447,5447,5447,5700,42,5447,5700, - 648,5741,1011,1670,5447,6037,5447,5447,5447,5447, - 5447,5447,311,5447,5447,1324,5700,5344,5341,1324, - 5741,6010,1180,5700,5717,5718,5447,5447,5447,5447, - 5447,5447,5447,5447,5447,5447,5447,5447,5447,5447, - 5447,5447,5447,5447,5447,5447,5447,5447,5447,5447, - 5447,5447,5447,5447,5700,9942,8872,5447,5700,5338, - 5338,5338,5338,5338,5338,5338,5338,1,5671,1, + 1,1,1,1,1,5427,3224,1,1,1, + 1,1,1,1,1,1,1,5223,1,1, + 1,1,1,5418,617,1274,565,662,390,5435, + 5436,5418,2364,2335,3590,2077,3221,5418,2965,2015, + 2964,3126,3482,3220,759,3155,3326,3149,5418,5063, + 5063,5063,5063,5063,5063,5063,5063,1,5389,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5671,5862,1,1,1,1,1, - 1,1,1,1,1,1,5700,1,5700,1, - 1,1,5700,1,1,1,1,1,1,1, - 1,1,5700,1,1,1,1,1,1,1, + 1,1,1,5389,5579,1,1,1,1,1, + 1,1,1,1,1,5418,1,1,1,1, + 1,5418,1,1,1,1,1,1,1,1, + 1,382,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5700,5862,1, + 1,1,1,1,1,1,442,5579,1,1, + 1,1,1,1,1,1,1,1,1611,1, + 1,1,1,1,5418,1,1,1,1,1, + 1,1,1,1,5172,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1167,1,1,1,5700,1,1,1, - 1,1,1,1,1,1,5700,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5193, + 5579,1,1,1,1,1,1,1,1,1, + 1,33,1,1,1,1,1,5418,1,1, + 1,1,1,1,1,1,1,5418,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5700,5862,1,1,1,1,1,1,1, - 1,1,1,1,5700,1,1850,1,1,1, - 5700,1,1,1,1,1,1,1,1,1, - 5700,1,1,1,1,1,1,1,1,1, + 1,1,44,5579,1,1,1,1,1,1, + 1,1,1,1,5196,1,1,1,1,1, + 5418,1,1,1,1,1,1,1,1,1, + 1826,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5700,5862,1,1,1, - 1,1,1,1,1,1,1,1,5700,1, - 1895,1,1,1,5700,1,1,1,1,1, - 1,1,1,1,5700,1,1,1,1,1, + 1,1,1,1,1,5214,5579,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,5418,1,1,1,1,1,1, + 1,1,1,5418,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5700, - 5862,1,1,1,1,1,1,1,1,1, - 1,1,5700,1,5478,1,1,1,5700,1, - 1,1,1,1,1,1,1,1,5700,1, + 1,1,1,1,1,1,1,1,5418,5579, + 1,1,1,1,1,1,1,1,1,1, + 501,1,1,1,1,1,5418,1,1,1, + 1,1,1,1,1,1,3104,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5700,5862,1,1,1,1,1, - 1,1,1,1,1,1,5700,1,2522,1, - 1,1,5700,1,1,1,1,1,1,1, - 1,1,5700,1,1,1,1,1,1,1, + 1,5418,5579,1,1,1,1,1,1,1, + 1,1,1,5418,1,1,1,1,1,42, + 5069,5066,3073,845,3384,4119,3051,4142,3034,115, + 5683,5681,5690,5689,5685,5686,5684,5687,5688,5691, + 5682,4096,4073,4188,4165,5441,4050,1648,1691,5443, + 1655,619,1673,5444,5442,1622,5437,5439,5440,5438, + 780,5675,224,5418,5435,5436,5678,5753,5754,5672, + 5679,5651,5677,5676,5673,5674,5418,5652,5809,610, + 5810,5811,5418,5236,5236,228,5232,228,228,228, + 228,1,5240,1,1,1,1,1,1,1, + 1,1,1,1,5675,5418,4211,828,4425,5678, + 5753,5754,5672,5679,5651,5677,5676,5673,5674,4234, + 5652,346,5059,79,1,4257,4678,228,5821,1, + 1,1,1,1,1,1,1,1,1,489, + 1,1,1,1,1,3896,1349,5485,5486,5418, + 5178,5175,334,429,407,228,5906,5418,5236,5236, + 228,5232,228,228,228,228,1,5306,1,1, + 1,1,1,1,1,1,1,1,1,143, + 364,5082,5078,2758,5075,945,1,3051,1,1278, + 389,3284,4211,828,382,5418,5843,5844,5845,1, + 5753,5754,228,5821,1,1,1,1,1,1, + 1,1,1,1,489,1,1,1,1,1, + 5418,1349,40,5226,5226,302,568,5418,2593,406, + 228,5906,383,42,5719,5333,5418,5459,5333,1697, + 5333,5746,5336,996,5418,1,5426,5418,1278,383, + 1754,1145,931,501,5336,5336,5336,5336,310,5082, + 5078,4534,5075,945,5184,3051,5181,5843,5844,5845, + 1217,5843,5844,5845,432,1,1,5333,1,5457, + 5217,2193,5217,1711,1668,1625,1582,1539,1496,1453, + 1410,1367,1319,5418,1444,5336,3955,5418,1,30, + 5336,5336,5336,5336,5336,5336,1025,5291,5425,5336, + 5418,5082,5078,4534,5075,945,5184,3051,5181,530, + 5336,5336,5336,5336,5336,5336,5336,5336,5336,5336, + 5336,5336,5336,5336,5336,5336,5336,5336,5336,5336, + 5336,5336,5336,5336,5336,5336,104,225,382,5336, + 5336,5339,5336,5418,5339,2255,5339,5294,5342,343, + 5211,5208,2758,845,945,1697,3051,5746,5309,5309, + 5342,5342,5342,5342,5418,5211,5208,4534,845,945, + 1697,3051,5746,1965,433,42,42,42,5459,5675, + 5321,5459,5318,5339,5678,5753,5754,5672,5679,5651, + 5677,5676,5673,5674,5418,5652,52,4746,5418,5211, + 5208,5345,845,945,4945,3051,5342,5342,5342,5342, + 5342,5342,4280,3520,5418,5342,5418,1278,1,5082, + 5078,5072,5075,5089,2514,5086,5342,5342,5342,5342, + 5342,5342,5342,5342,5342,5342,5342,5342,5342,5342, + 5342,5342,5342,5342,5342,5342,5342,5342,5342,5342, + 5342,5342,190,836,317,5342,5342,5205,5342,5418, + 5063,5063,228,5063,228,228,228,228,1,228, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,364,5862,1, - 1,1,1,1,1,1,1,1,1,1, - 5700,1,1088,1,1,1,42,5344,5341,3284, - 670,3462,4419,3006,4442,3028,5700,4396,4373,5967, - 5965,5974,5973,5969,5970,5968,5971,5972,5975,5966, - 4488,4465,5723,4350,1863,1951,5725,1905,4696,1908, - 5726,5724,1862,5719,5721,5722,5720,878,5958,53, - 5457,5454,226,5961,6044,6045,5955,5962,5934,5960, - 5959,5956,5957,5935,5700,6100,5700,622,6101,6102, - 5700,5512,5512,230,5508,230,230,230,230,1, - 5516,5700,6063,1,1,1,1,1,1,1, - 1,1,1,1,5958,5700,5717,5718,5700,5961, - 6044,6045,5955,5962,5934,5960,5959,5956,5957,5935, - 343,320,1,5700,1317,230,6112,1,1,1, - 1,1,1,1,1,1,1,1,498,1, - 391,1,1,1,1906,5700,5717,5718,4511,564, - 5079,5700,416,230,6197,30,144,5700,5512,5512, - 230,5508,230,230,230,230,1,5582,6044,6045, - 1,1,1,1,1,1,1,1,1,1, - 1,1,5338,5338,230,5338,230,230,230,230, - 5700,230,1127,5700,5457,5454,6134,6135,6136,1, - 5451,5700,230,6112,1,1,1,1,1,1, - 1,1,1,1,1,498,1,5700,1,1, - 1,1906,5079,10094,5585,5585,230,1821,5700,415, - 230,6197,392,5700,227,5609,4511,564,5609,5335, - 5609,1225,5612,5609,5609,1022,917,38,592,399, - 5344,5341,5700,5741,631,6197,5609,5609,2277,1115, - 1776,1731,1686,1641,1596,1551,1506,1461,1416,1364, - 3806,5700,5334,6134,6135,6136,5958,5609,293,5717, - 5718,5961,6044,6045,5955,5962,5934,5960,5959,5956, - 5957,5935,5609,120,398,40,5502,5502,5484,3540, - 5609,5612,5612,5609,5609,5609,1911,42,5612,5700, - 5357,5353,3224,5350,971,5463,3006,5460,1934,131, - 5609,5609,5609,5609,5609,5609,5609,5609,5609,5609, - 5609,5609,5609,5609,5609,5609,5609,5609,5609,5609, - 5609,5609,5609,5609,5609,5609,5609,5609,228,391, - 5700,5609,5615,5739,510,5615,318,5615,5700,5618, - 5615,5615,352,5662,5659,2822,670,971,1670,3006, - 6037,451,33,5615,5615,123,5700,5344,5341,2692, - 670,5625,2040,3006,3515,3486,3243,2854,5588,5700, - 5958,5700,9942,8872,5615,5961,6044,6045,5955,5962, - 5934,5960,5959,5956,5957,5935,5700,5344,5341,5621, - 5741,292,2623,2595,5700,5717,5718,5615,5618,5618, - 5615,5615,5615,5700,126,5618,3044,4580,3312,5700, - 1324,5472,5475,5704,2171,2560,143,5615,5615,5615, - 5615,5615,5615,5615,5615,5615,5615,5615,5615,5615, - 5615,5615,5615,5615,5615,5615,5615,5615,5615,5615, - 5615,5615,5615,5615,5615,399,5717,5718,5615,5700, - 5338,5338,230,5338,230,230,230,230,1,230, - 1102,1996,1,1,1,1,1,1,1,1, - 1,1,1,319,5357,5353,3224,5350,971,5463, - 3006,5460,5700,5344,5341,3224,670,971,1670,3006, - 6037,10094,2733,2795,230,5716,1,1,1,1, - 1,1,1,1,1,1,1,5335,1,130, - 1,1,1,1022,917,1,592,2316,5703,392, - 5700,5344,5341,6197,5741,5700,5700,5338,5338,230, - 5338,230,230,230,230,1,230,5700,52,1, - 1,1,1,1,1,1,1,1,1,1, - 5700,5344,5341,3224,670,971,1670,3006,6037,1, - 5357,5353,5347,5350,5364,5700,5361,5700,10094,5710, - 12,230,5716,1,1,1,1,1,1,1, - 1,1,1,1,5335,1,1316,1,1,1, - 1022,917,5700,592,3334,3312,734,2733,2795,5700, - 6197,39,5685,5682,5709,5700,1,1,1,1, - 1,1,1,1,1,5710,1,1,1,1, + 1,5418,5211,5208,4534,845,945,1697,3051,5746, + 1,5082,5078,5072,5075,5089,1,5086,5418,2815, + 5428,9184,309,33,228,5434,1,1,1,1, + 1,1,1,1,1,1,5060,1,1,1, + 1,1,1278,617,1362,565,436,1,5082,5078, + 4534,5075,945,5906,3051,5427,5418,5063,5063,228, + 5063,228,228,228,228,1,228,1,1,1, + 1,1,1,1,1,1,1,1,1,5082, + 5078,4534,5075,945,1278,3051,501,5918,310,96, + 1,1,4409,1,5415,5383,414,5383,9184,5418, + 12,228,5434,1,1,1,1,1,1,1, + 1,1,1,5060,1,1,1,1,1,2683, + 617,1362,565,310,5418,99,42,42,2916,5459, + 5906,5409,5418,5406,5418,5418,1,1,1,1, + 1,1,1,1,1,5428,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,11,1,1, - 5709,5862,5700,1,1,1,1,1,1,1, - 1,1,169,1,1,1,1,1,1,1, + 5427,5579,5418,1,1,1,1,1,1,1, + 1,1,168,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,140,1,1,169,5862,5700, - 1,1,1,1,1,1,1,1,1,169, + 1,1,1,1,5418,1,1,168,5579,5418, + 1,1,1,1,1,1,1,1,1,168, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5700,1,1,169,5862,5700,1,1,1, - 1,1,1,1,1,1,169,1,1,1, + 1,287,1,1,168,5579,5418,1,1,1, + 1,1,1,1,1,1,168,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5700,1, - 1,510,5862,5700,2352,5484,5092,1,5357,5353, - 2822,5350,971,311,3006,352,42,42,3665,5741, - 5700,1670,6010,6037,1,5357,5353,3224,5350,971, - 5706,3006,169,5700,1,1,1,1,1,1, - 1,1,1,169,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,95,1, + 1,5330,5579,5418,1,5365,5365,940,5362,1, + 1697,418,5746,5418,360,1,5082,5078,2758,5075, + 945,809,3051,343,42,42,2815,5459,5418,1697, + 5418,5746,1931,168,5418,1,1,1,1,1, + 1,1,1,1,168,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1324,1,1,1077,5862, - 455,33,5700,1324,1,5357,5353,2822,5350,971, - 4204,3006,40,5502,5502,5700,5705,2040,2560,1, - 5357,5353,3284,5350,3462,4419,3006,4442,5531,169, - 4396,4373,5558,5564,5537,5540,5552,5549,5555,5546, - 5543,5534,5561,4488,4465,5723,4350,1863,1951,5725, - 1905,4696,1908,5726,5724,1862,5719,5721,5722,5720, - 878,510,42,42,125,5700,5522,5519,5496,5700, - 5739,6209,1324,42,423,3243,2854,5741,5700,1, - 1,1,1,1,1,1,1,1,514,1, + 1,1,1,1,1,1,1869,1,1,345, + 5579,360,2993,1278,3761,1,5082,5078,4534,5075, + 945,1278,3051,5418,5211,5208,5418,845,945,360, + 3051,1,5082,5078,3073,5075,3384,4119,3051,4142, + 5255,168,5282,5288,5261,5264,5276,5273,5279,5270, + 5267,5258,5285,4096,4073,4188,4165,5441,4050,1648, + 1691,5443,1655,619,1673,5444,5442,1622,5437,5439, + 5440,5438,780,237,42,42,5368,1278,141,1, + 5082,5078,2758,5075,945,5418,3051,355,1965,3830, + 5418,1,1,1,1,1,1,1,1,1, + 505,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5418,5579,5418,1,1, + 1,1,1,1,1,1,1,1278,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,2232, + 1,1,5772,5579,42,5211,5208,3073,845,3384, + 4119,3051,4142,2325,5426,5683,5681,5690,5689,5685, + 5686,5684,5687,5688,5691,5682,4096,4073,4188,4165, + 5441,4050,1648,1691,5443,1655,619,1673,5444,5442, + 1622,5437,5439,5440,5438,780,5418,5774,5418,5435, + 5436,1,1,945,2815,3051,5418,5069,5066,302, + 5459,339,360,5418,5418,5418,5211,5208,5719,845, + 5349,2516,3051,40,5226,5226,5425,42,5211,5208, + 3073,845,3384,4119,3051,4142,2325,5426,5683,5681, + 5690,5689,5685,5686,5684,5687,5688,5691,5682,4096, + 4073,4188,4165,5441,4050,1648,1691,5443,1655,619, + 1673,5444,5442,1622,5437,5439,5440,5438,780,1278, + 339,339,823,1568,764,39,5403,5400,339,360, + 5457,1912,3431,3520,5418,5418,5211,5208,135,845, + 5349,142,3051,5418,2516,1,581,360,4934,5425, + 5418,1,1,1,1,1,1,1,1,1, + 5418,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1012,1,1,5418,5579,5418,1,1, + 1,1,1,1,1,1,1,5812,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5418, + 1,1,2232,5579,5418,1,1,1,1,1, + 1,1,1,1,3215,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,5418,1,1,4882, + 5579,5418,1,1,1,1,1,1,1,1, + 1,5418,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,5418,1,1,4899,5579,5418,1, + 1,1,1,1,1,1,1,1,5418,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 2974,1,1,5739,5862,5700,1,1,1,1, - 1,1,1,1,1,3191,1,1,1,1, + 5418,1,1,4850,5579,5418,1,1,1,1, + 1,1,1,1,1,5418,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5700,1,1, - 3410,5862,42,5344,5341,3284,670,3462,4419,3006, - 4442,2409,5708,4396,4373,5967,5965,5974,5973,5969, - 5970,5968,5971,5972,5975,5966,4488,4465,5723,4350, - 1863,1951,5725,1905,4696,1908,5726,5724,1862,5719, - 5721,5722,5720,878,1,5641,5641,134,5638,513, - 1670,122,6037,1,369,5700,3665,3540,53,40, - 5502,5502,5718,348,5502,5706,5700,40,2545,48, - 5528,5528,454,5700,5707,42,5344,5341,3284,670, - 3462,4419,3006,4442,2409,5708,4396,4373,5967,5965, - 5974,5973,5969,5970,5968,5971,5972,5975,5966,4488, - 4465,5723,4350,1863,1951,5725,1905,4696,1908,5726, - 5724,1862,5719,5721,5722,5720,878,3596,5718,924, - 369,1324,348,348,5700,5739,1805,5525,719,348, - 5700,5705,50,5603,5603,5700,10090,10090,144,369, - 5499,2545,3515,3486,2443,1023,5884,5707,5700,1, - 1,1,1,1,1,1,1,1,5700,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 5600,1,1,5739,5862,5700,1,1,1,1, - 1,1,1,1,1,5700,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5700,1,1, - 2277,5862,5700,1,1,1,1,1,1,1, - 1,1,3806,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5700,1,1,3900,5862,5700, - 1,1,1,1,1,1,1,1,1,5700, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,96,1,1,5606,5862,5700,1,1,1, - 1,1,1,1,1,1,5700,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,238,1, - 1,5644,5862,5700,1,1,1,1,1,1, - 1,1,1,5700,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,44,1,1,5700,5862, - 146,5344,5341,3284,670,3462,4419,3006,4442,2409, - 5700,4396,4373,5967,5965,5974,5973,5969,5970,5968, - 5971,5972,5975,5966,4488,4465,5723,4350,1863,1951, - 5725,1905,4696,1908,5726,5724,1862,5719,5721,5722, - 5720,878,116,42,42,1,5357,5353,3284,5350, - 3462,4419,3006,4442,5531,5490,4396,4373,5558,5564, - 5537,5540,5552,5549,5555,5546,5543,5534,5561,4488, - 4465,5723,4350,1863,1951,5725,1905,4696,1908,5726, - 5724,1862,5719,5721,5722,5720,878,355,42,42, - 42,5344,5341,3284,670,3462,4419,3006,4442,2409, - 5700,4396,4373,5967,5965,5974,5973,5969,5970,5968, - 5971,5972,5975,5966,4488,4465,5723,4350,1863,1951, - 5725,1905,4696,1908,5726,5724,1862,5719,5721,5722, - 5720,878,4534,5700,326,5700,124,5487,4557,133, - 1,1,5700,438,1,5708,121,3243,2854,446, - 135,369,3540,5700,167,1324,2545,42,5344,5341, - 3284,670,3462,4419,3006,4442,2409,5704,4396,4373, - 5967,5965,5974,5973,5969,5970,5968,5971,5972,5975, - 5966,4488,4465,5723,4350,1863,1951,5725,1905,4696, - 1908,5726,5724,1862,5719,5721,5722,5720,1,2692, - 510,1450,1324,6166,6160,1054,6164,5707,5647,6158, - 6159,1,5357,5353,3224,5350,971,369,3006,2772, - 167,319,6189,6190,42,6167,80,5700,5741,3585, - 38,1007,2623,2595,5481,5700,369,3515,3486,191, - 5481,1772,1773,381,5700,5710,1,2443,1023,3665, - 5768,5769,1,132,5708,4085,319,141,6169,6134, - 6135,6136,119,40,5502,5502,539,6170,6191,6168, - 118,3129,5703,1,5700,5481,1,117,5700,294, - 5709,129,5567,376,5710,5567,6180,6179,6192,6161, - 6162,6185,6186,5700,3702,6183,6184,6163,6165,6187, - 6188,6193,6173,6174,6175,6171,6172,6181,6182,6177, - 6176,6178,5700,2692,1324,1450,5707,6166,6160,5709, - 6164,3279,5650,6158,6159,5700,5700,5678,5674,865, - 5700,2477,5570,407,2477,5570,6189,6190,2509,6167, - 6134,6135,6136,5576,579,1110,2623,2595,5700,181, - 2001,5094,4534,3293,1228,1772,1773,2352,4557,5656, - 4534,5697,5700,3191,1,5095,4557,4534,5700,2733, - 2795,4835,6169,4557,5591,5700,5700,5700,5579,5130, - 539,6170,6191,6168,5739,3755,5700,5700,5700,3899, - 3821,4235,5700,5700,5656,4264,4266,5700,5700,5700, - 6180,6179,6192,6161,6162,6185,6186,5700,368,6183, - 6184,6163,6165,6187,6188,6193,6173,6174,6175,6171, - 6172,6181,6182,6177,6176,6178,42,5344,5341,3284, - 670,3462,4419,3006,4442,2409,5707,4396,4373,5967, - 5965,5974,5973,5969,5970,5968,5971,5972,5975,5966, - 4488,4465,5723,4350,1863,1951,5725,1905,4696,1908, - 5726,5724,1862,5719,5721,5722,5720,878,42,5344, - 5341,3284,670,3462,4419,3006,4442,2409,4221,4396, - 4373,5967,5965,5974,5973,5969,5970,5968,5971,5972, - 5975,5966,4488,4465,5723,4350,1863,1951,5725,1905, - 4696,1908,5726,5724,1862,5719,5721,5722,5720,5700, - 354,5700,3942,3014,4029,5700,5700,108,4030,4769, - 4032,5700,5700,5700,1,1590,42,5344,5341,3284, - 670,3462,4419,3006,4442,2409,1503,4396,4373,5967, - 5965,5974,5973,5969,5970,5968,5971,5972,5975,5966, - 4488,4465,5723,4350,1863,1951,5725,1905,4696,1908, - 5726,5724,1862,5719,5721,5722,5720,878,42,5344, - 5341,5093,670,3462,4419,3006,4442,2409,1324,4396, - 4373,5967,5965,5974,5973,5969,5970,5968,5971,5972, - 5975,5966,4488,4465,5723,4350,1863,1951,5725,1905, - 4696,1908,5726,5724,1862,5719,5721,5722,5720,42, - 5344,5341,3284,670,3462,4419,3006,4442,2409,6065, - 4396,4373,5967,5965,5974,5973,5969,5970,5968,5971, - 5972,5975,5966,4488,4465,5723,4350,1863,1951,5725, - 1905,4696,1908,5726,5724,1862,5719,5721,5722,5720, - 42,5344,5341,3284,670,3462,4419,3006,4442,2409, - 5700,4396,4373,5967,5965,5974,5973,5969,5970,5968, - 5971,5972,5975,5966,4488,4465,5723,4350,1863,1951, - 5725,1905,4696,1908,5726,5724,1862,5719,5721,5722, - 5720,5700,5344,5341,128,5741,5700,425,53,1, - 1150,127,5717,5700,5967,5965,5974,5973,5969,5970, - 5968,5971,5972,5975,5966,5700,5700,163,5700,531, - 1,1,5338,5338,230,5338,230,230,230,230, - 527,5505,5700,5958,5700,5700,5700,5138,5961,6044, - 6045,5955,5962,5934,5960,5959,5956,5957,5935,374, - 6100,505,622,6101,6102,242,5440,5436,5717,5444, - 3367,520,2850,10094,1150,6152,230,740,5427,5433, - 5406,5409,5421,5418,5424,5415,5412,5403,5430,5335, - 503,1,2733,2795,3175,1022,917,1866,592,2733, - 2795,5706,2877,222,3630,6197,527,5391,5700,5700, - 419,5700,5382,5376,5373,5400,5379,5370,5385,5388, - 5397,5394,5367,224,6100,5700,622,6101,6102,5700, - 1276,283,3887,5700,5694,5700,5967,5965,5974,5973, - 5969,5970,5968,5971,5972,5975,5966,1,5338,5338, - 230,5338,230,230,230,230,2,5505,5700,5700, - 1,3953,5700,5700,5700,5958,5700,5705,105,5700, - 5961,6044,6045,5955,5962,5934,5960,5959,5956,5957, - 5935,2185,3637,5700,5883,104,731,5700,507,10094, - 5700,3191,230,1,5338,5338,230,5338,230,230, - 230,230,3177,5573,3183,5335,5700,5700,5700,5700, - 5700,1022,917,5700,592,5700,40,5700,5700,222, - 5700,6197,5700,5700,1,5338,5338,230,5338,230, - 230,230,230,3190,5505,10094,4766,1934,230,1, - 5338,5338,230,5338,230,230,230,230,5700,5505, - 5700,5335,5700,2224,1956,5700,5700,1022,917,801, - 592,5700,5700,5700,5700,221,10094,6197,5700,230, - 1,5338,5338,230,5338,230,230,230,230,5700, - 230,10094,5335,5700,230,5700,5700,5700,1022,917, - 5700,592,5700,5700,5700,5700,222,5335,6197,5700, - 5700,5700,5700,1022,917,5700,592,5700,5700,5700, - 5700,222,10094,6197,5700,230,1,5338,5338,230, - 5338,230,230,230,230,5700,230,5700,5335,5700, - 5700,5700,5700,5700,1022,917,5700,592,5700,5700, - 5700,5700,5700,5700,6197,5700,1,5338,5338,230, - 5338,230,230,230,230,5700,230,5700,10094,5700, - 5700,230,5700,5700,5700,5700,5700,5700,5700,5700, - 5700,5700,5700,5700,5335,5700,5700,5700,5700,5700, - 1022,917,5700,592,5700,5700,5700,5700,10094,5700, - 6197,230,5700,5700,5700,5700,5700,5700,5700,5700, - 5700,5700,5700,5700,5335,5700,5700,5700,5700,5700, - 1022,917,5700,592,5700,5700,5700,5700,5700,5700, - 6197 + 1,1,1,1,1,1,1,5418,1,1, + 4902,5579,145,5211,5208,3073,845,3384,4119,3051, + 4142,2325,5418,5683,5681,5690,5689,5685,5686,5684, + 5687,5688,5691,5682,4096,4073,4188,4165,5441,4050, + 1648,1691,5443,1655,619,1673,5444,5442,1622,5437, + 5439,5440,5438,780,118,42,42,1,5082,5078, + 3073,5075,3384,4119,3051,4142,5255,139,5282,5288, + 5261,5264,5276,5273,5279,5270,5267,5258,5285,4096, + 4073,4188,4165,5441,4050,1648,1691,5443,1655,619, + 1673,5444,5442,1622,5437,5439,5440,5438,780,5418, + 42,42,42,5211,5208,3073,845,3384,4119,3051, + 4142,2325,5418,5683,5681,5690,5689,5685,5686,5684, + 5687,5688,5691,5682,4096,4073,4188,4165,5441,4050, + 1648,1691,5443,1655,619,1673,5444,5442,1622,5437, + 5439,5440,5438,780,4234,5418,5435,5436,5418,5418, + 4257,5418,140,5418,5418,1,390,5069,5066,5422, + 5459,40,5226,5226,5424,166,5226,2268,289,2516, + 42,5211,5208,3073,845,3384,4119,3051,4142,2325, + 5422,5683,5681,5690,5689,5685,5686,5684,5687,5688, + 5691,5682,4096,4073,4188,4165,5441,4050,1648,1691, + 5443,1655,619,1673,5444,5442,1622,5437,5439,5440, + 5438,1,1401,42,1184,1955,5875,5869,3253,5873, + 1,5063,5063,228,5063,228,228,228,228,5418, + 228,5423,166,5867,5868,5898,5899,122,5876,1926, + 42,5418,5246,5243,5459,136,5418,398,134,48, + 5252,5252,2268,581,1450,1483,5428,5300,143,3169, + 2643,117,9184,5418,5418,228,5418,5421,1064,50, + 5327,5327,3285,129,5878,5418,116,5060,3992,981, + 5879,5900,5877,1009,617,1362,565,2088,5421,5418, + 130,5427,5303,128,5906,5418,2098,5418,5457,5889, + 5888,5901,5870,5871,5894,5895,5249,5424,5892,5893, + 5872,5874,5896,5897,5902,5882,5883,5884,5880,5881, + 5890,5891,5886,5885,5887,5418,5324,3832,1184,4891, + 5875,5869,5861,5873,1,5063,5063,228,5063,228, + 228,228,228,5418,5229,2364,2335,5867,5868,5898, + 5899,4234,5876,2602,5843,5844,5845,4257,2987,5312, + 2193,2702,2729,5418,9541,9541,4234,4944,1450,1483, + 5418,1,4257,4599,5423,3955,9184,5418,5418,228, + 124,2702,2729,2542,2449,5418,5418,5426,5878,123, + 5418,5060,5418,981,5879,5900,5877,604,617,1362, + 565,5418,3169,2643,4735,372,221,5418,5906,5418, + 662,3169,2643,5889,5888,5901,5870,5871,5894,5895, + 5457,504,5892,5893,5872,5874,5896,5897,5902,5882, + 5883,5884,5880,5881,5890,5891,5886,5885,5887,42, + 5211,5208,3073,845,3384,4119,3051,4142,2325,5425, + 5683,5681,5690,5689,5685,5686,5684,5687,5688,5691, + 5682,4096,4073,4188,4165,5441,4050,1648,1691,5443, + 1655,619,1673,5444,5442,1622,5437,5439,5440,5438, + 780,42,5211,5208,3073,845,3384,4119,3051,4142, + 2325,901,5683,5681,5690,5689,5685,5686,5684,5687, + 5688,5691,5682,4096,4073,4188,4165,5441,4050,1648, + 1691,5443,1655,619,1673,5444,5442,1622,5437,5439, + 5440,5438,5418,5418,3285,4885,4749,5418,5418,5418, + 4763,4942,4961,5418,40,5226,5226,1,5418,42, + 5211,5208,3073,845,3384,4119,3051,4142,2325,2842, + 5683,5681,5690,5689,5685,5686,5684,5687,5688,5691, + 5682,4096,4073,4188,4165,5441,4050,1648,1691,5443, + 1655,619,1673,5444,5442,1622,5437,5439,5440,5438, + 780,42,5211,5208,4878,845,3384,4119,3051,4142, + 2325,2631,5683,5681,5690,5689,5685,5686,5684,5687, + 5688,5691,5682,4096,4073,4188,4165,5441,4050,1648, + 1691,5443,1655,619,1673,5444,5442,1622,5437,5439, + 5440,5438,42,5211,5208,3073,845,3384,4119,3051, + 4142,2325,3626,5683,5681,5690,5689,5685,5686,5684, + 5687,5688,5691,5682,4096,4073,4188,4165,5441,4050, + 1648,1691,5443,1655,619,1673,5444,5442,1622,5437, + 5439,5440,5438,42,5211,5208,3073,845,3384,4119, + 3051,4142,2325,40,5683,5681,5690,5689,5685,5686, + 5684,5687,5688,5691,5682,4096,4073,4188,4165,5441, + 4050,1648,1691,5443,1655,619,1673,5444,5442,1622, + 5437,5439,5440,5438,5418,5069,5066,53,5459,522, + 53,5436,5418,1138,5435,5683,5681,5690,5689,5685, + 5686,5684,5687,5688,5691,5682,103,5418,2,437, + 5457,1,1,5063,5063,228,5063,228,228,228, + 228,5315,5229,5418,5396,5392,5675,5418,5418,511, + 3486,5678,5753,5754,5672,5679,5651,5677,5676,5673, + 5674,367,5652,5809,610,5810,5811,241,5165,5161, + 5436,5169,107,5435,9184,4958,1138,228,5152,5158, + 5131,5134,5146,5143,5149,5140,5137,5128,5155,5060, + 5418,40,1,3504,2143,127,617,1362,565,2786, + 5457,126,518,5425,221,279,5906,5418,5412,5116, + 5418,359,5418,5418,5107,5101,5098,5125,5104,5095, + 5110,5113,5122,5119,223,5092,5809,610,5810,5811, + 365,132,1188,5418,416,5683,5681,5690,5689,5685, + 5686,5684,5687,5688,5691,5682,1,5063,5063,228, + 5063,228,228,228,228,496,5297,1,5063,5063, + 228,5063,228,228,228,228,5675,5229,3285,518, + 494,5678,5753,5754,5672,5679,5651,5677,5676,5673, + 5674,2398,5652,2702,2729,5418,2054,5418,9184,2702, + 2729,228,5418,5418,2602,5428,162,1,1,9184, + 5371,1235,228,5060,3540,410,5291,5418,5424,3374, + 617,1362,565,5418,5060,5418,5418,131,220,5418, + 5906,617,1362,565,2542,2449,4913,5418,5418,221, + 5427,5906,1,5063,5063,228,5063,228,228,228, + 228,4930,5229,1,5063,5063,228,5063,228,228, + 228,228,5418,228,2255,3201,5294,1,5063,5063, + 228,5063,228,228,228,228,1797,228,180,5418, + 5418,5418,5418,5418,9184,5423,2104,228,5380,5418, + 2602,5418,3227,5418,3238,9184,5374,1168,228,5060, + 5418,5418,5418,498,5418,5418,617,1362,565,9184, + 5060,226,228,5418,221,5418,5906,617,1362,565, + 2542,2449,5418,5380,5060,5418,5418,5906,5418,5418, + 5418,617,1362,565,5418,1840,5418,5418,5418,5418, + 5418,5906,1,5063,5063,228,5063,228,228,228, + 228,3240,228,5675,5601,5418,3552,5418,5678,5753, + 5754,5672,5679,5651,5677,5676,5673,5674,5418,5652, + 227,3244,1883,5600,646,5418,5418,5418,5418,5418, + 5418,5418,5418,5418,9184,5418,5418,228,5418,5418, + 5418,5418,5418,5418,5418,5418,5418,5418,5418,5060, + 5418,5418,5418,5418,5418,5418,617,1362,565,5418, + 5418,5418,5675,5418,5418,5418,5906,5678,5753,5754, + 5672,5679,5651,5677,5676,5673,5674,5418,5652 }; }; public final static char termAction[] = TermAction.termAction; @@ -2003,59 +1922,59 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface Asb { public final static char asb[] = {0, - 631,1,669,1146,416,888,260,899,7,609, - 631,532,55,7,949,960,611,960,544,960, - 608,960,944,960,942,960,532,533,3,888, - 527,1065,165,769,533,165,533,1146,942,839, - 61,112,611,378,611,533,56,305,214,533, - 385,258,446,547,381,383,611,329,533,388, - 533,533,258,941,385,385,896,323,316,316, - 530,325,527,533,158,305,800,165,388,162, - 375,305,165,165,533,151,734,229,633,633, - 112,112,112,532,112,533,56,896,214,385, - 384,385,258,99,385,329,329,533,388,258, - 533,385,611,532,493,569,334,527,533,527, - 99,158,388,530,375,375,56,734,229,112, - 1023,112,112,533,112,896,896,1023,533,214, - 1158,54,1148,214,385,385,308,533,446,533, - 329,1023,536,1022,839,296,1146,942,942,942, - 942,532,1146,174,476,1067,494,494,494,494, - 494,494,494,494,494,979,985,990,987,994, - 992,999,997,1001,1000,1002,9,1003,838,533, - 611,457,541,533,1146,305,493,567,375,1017, - 104,158,157,839,162,305,563,551,562,838, - 942,106,106,1023,1023,533,1023,151,1150,541, - 443,309,533,99,1023,494,533,530,730,559, - 558,476,416,416,416,416,533,16,305,305, - 477,1105,415,151,476,962,962,150,150,16, - 1028,494,494,494,494,494,494,494,494,494, - 494,494,494,494,494,494,494,494,494,494, - 493,493,493,493,493,493,493,493,493,493, - 493,1028,494,477,629,458,532,533,16,613, - 567,158,713,493,560,560,728,530,1072,229, - 633,229,837,837,896,56,325,620,494,1158, - 324,308,533,532,532,533,296,305,732,734, - 305,305,839,839,839,839,258,305,494,677, - 532,1067,375,415,493,305,55,57,55,305, - 375,987,987,985,985,985,992,992,992,992, - 990,990,997,994,994,1000,999,1001,1158,1002, - 629,457,1158,494,1158,896,1146,1146,1146,458, - 1146,533,853,896,896,533,611,456,305,493, - 1022,713,493,493,732,551,229,416,416,896, - 1150,494,494,533,533,533,305,734,1146,1146, - 1146,1146,533,533,533,151,494,416,983,262, - 305,533,57,151,493,448,1146,448,1158,458, - 476,476,474,841,476,896,896,212,629,567, - 715,838,533,533,843,305,1028,1028,1028,1028, - 1146,1146,258,56,305,983,530,446,533,56, - 1072,305,527,305,853,896,888,1146,305,629, - 715,767,843,843,305,305,305,305,16,16, - 533,983,984,983,1028,262,59,446,305,305, - 701,458,212,458,896,853,888,1028,458,455, - 1146,106,720,843,305,305,688,983,16,494, - 375,59,611,611,1138,493,456,1026,896,305, - 735,837,720,720,984,305,375,458,305,1026, - 896,304,55,720,458,305,416,458 + 593,1,631,1021,353,849,313,878,3,217, + 593,472,51,3,1028,1039,591,1039,716,1039, + 588,1039,1023,545,1039,472,473,103,849,467, + 1156,931,740,473,931,473,1021,545,810,110, + 222,591,591,107,473,52,100,267,473,720, + 311,383,719,212,591,320,473,325,473,473, + 311,720,720,857,162,155,155,470,164,467, + 473,924,100,771,931,325,928,209,100,931, + 931,473,261,681,282,595,595,222,222,222, + 222,472,473,52,857,267,720,213,720,311, + 148,720,320,320,473,325,311,473,720,591, + 472,433,549,168,467,473,467,148,924,325, + 470,209,209,52,681,282,222,1102,222,222, + 222,473,857,857,1102,473,267,1115,50,1105, + 267,720,720,870,473,383,473,320,1102,315, + 1101,810,91,1021,545,545,545,545,472,1021, + 940,416,1158,434,434,434,434,434,434,434, + 434,434,1058,1064,1069,1066,1073,1071,1078,1076, + 1080,1079,1081,5,1082,809,473,591,397,385, + 473,1021,100,433,547,209,1096,153,924,923, + 810,928,100,534,522,533,809,545,509,509, + 1102,1102,1102,473,261,1107,385,380,871,473, + 148,1102,434,473,470,677,530,529,416,353, + 353,353,353,473,12,100,100,417,980,352, + 261,416,1041,1041,260,260,12,1119,434,434, + 434,434,434,434,434,434,434,434,434,434, + 434,434,434,434,434,434,434,433,433,433, + 433,433,433,433,433,433,433,433,1119,434, + 417,723,398,472,473,12,515,547,924,725, + 433,531,531,675,470,476,282,595,282,808, + 808,857,52,164,538,434,1115,163,870,473, + 472,472,473,91,100,679,681,100,100,810, + 810,810,810,311,100,434,639,472,1158,209, + 352,433,100,51,53,51,100,209,1066,1066, + 1064,1064,1064,1071,1071,1071,1071,1069,1069,1076, + 1073,1073,1079,1078,1080,1115,1081,723,397,1115, + 434,1115,857,1021,1021,1021,398,1021,473,814, + 857,857,473,591,396,100,433,1101,725,433, + 433,679,522,282,353,353,857,1107,434,434, + 473,473,473,100,681,1021,1021,1021,1021,473, + 473,473,261,434,353,1062,57,100,473,53, + 261,433,388,1021,388,1115,398,416,416,414, + 812,416,857,857,978,723,547,727,809,473, + 473,860,100,1119,1119,1119,1119,1021,1021,311, + 52,100,1062,470,383,473,52,476,100,467, + 100,814,857,849,1021,100,723,727,921,860, + 860,100,100,100,100,12,12,473,1062,1063, + 1062,1119,57,55,383,100,100,663,398,978, + 398,857,814,849,1119,398,395,1021,509,732, + 860,100,100,650,1062,12,434,209,55,591, + 591,1013,433,396,1117,857,100,682,808,732, + 732,1063,100,209,398,100,1117,857,99,51, + 732,398,100,353,398 }; }; public final static char asb[] = Asb.asb; @@ -2063,122 +1982,123 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface Asr { public final static byte asr[] = {0, - 121,0,66,73,75,0,26,0,69,73, - 95,70,115,72,45,10,76,13,14,28, - 43,15,29,30,16,17,18,44,31,19, - 20,32,33,34,41,35,36,21,22,23, - 37,38,39,26,3,24,25,8,6,11, - 12,27,40,9,4,7,1,2,5,0, - 67,50,13,14,59,48,15,61,51,74, - 42,16,52,53,17,18,54,65,55,19, - 20,56,62,57,9,63,21,64,47,22, - 49,23,10,3,8,4,45,66,7,5, - 1,2,58,6,0,69,71,70,1,2, - 0,67,50,13,14,59,48,15,61,51, - 74,42,16,52,53,17,18,54,65,55, - 19,20,56,62,57,9,63,21,64,47, - 22,49,23,10,3,8,6,72,45,4, - 7,5,58,1,2,0,41,48,7,49, - 5,1,2,4,75,10,66,73,95,115, - 76,72,45,68,3,119,96,103,90,24, - 25,8,6,11,12,91,92,88,89,60, - 93,94,97,98,99,100,101,102,114,104, - 105,106,107,108,109,110,111,112,113,69, - 70,71,0,74,7,116,117,118,64,10, - 3,8,6,5,73,72,45,46,50,13, - 14,59,48,15,61,51,42,16,52,53, - 17,18,54,55,19,20,56,62,57,9, - 63,21,47,22,49,23,4,1,2,58, - 0,96,90,11,12,91,92,88,89,60, - 93,94,97,98,99,100,101,102,114,73, - 95,71,104,105,106,107,108,109,110,111, - 112,113,115,72,45,69,1,2,8,6, - 4,3,68,70,76,10,0,47,1,2, - 4,116,117,118,0,75,66,69,73,95, - 76,68,3,71,10,45,70,0,1,2, - 10,72,0,43,44,3,9,29,33,31, - 28,36,14,23,13,19,17,18,20,21, - 16,15,22,37,40,38,39,26,35,30, - 34,5,7,4,24,25,8,6,11,12, - 27,32,1,2,115,10,0,66,71,0, - 10,45,4,60,66,73,0,28,43,29, - 30,44,7,31,32,33,34,41,35,36, - 37,38,39,26,24,25,8,6,11,12, - 5,27,69,40,3,9,61,59,62,63, - 14,23,13,19,17,18,20,21,16,15, - 22,50,55,56,42,54,53,51,48,49, - 52,57,1,2,47,4,0,74,116,117, - 118,58,73,121,120,122,72,75,64,65, - 67,78,80,86,84,77,82,83,85,87, - 66,79,81,10,45,46,61,59,62,63, + 121,0,26,0,69,73,95,70,118,72, + 45,10,77,11,12,28,43,13,29,30, + 14,15,16,44,31,17,18,32,33,34, + 41,35,36,19,20,21,37,38,39,26, + 3,24,25,8,6,22,23,27,40,9, + 4,7,1,2,5,0,96,90,22,23, + 91,92,88,89,63,93,94,97,98,99, + 100,101,102,117,73,95,71,104,105,106, + 107,108,109,110,111,112,113,118,72,45, + 69,1,2,8,6,4,3,68,70,77, + 10,0,67,73,75,0,67,71,0,66, + 50,11,12,59,48,13,60,51,74,42, + 14,52,53,15,16,54,65,55,17,18, + 56,61,58,9,62,19,64,47,20,49, + 21,10,3,8,4,45,67,7,5,1, + 2,57,6,0,75,67,69,73,95,77, + 68,3,71,10,45,70,0,43,44,3, + 9,29,33,31,28,36,12,21,11,17, + 15,16,18,19,14,13,20,37,40,38, + 39,26,35,30,34,5,7,4,24,25, + 8,6,22,23,27,32,1,2,118,10, + 0,4,63,67,73,0,1,2,123,67, + 0,66,50,11,12,59,48,13,60,51, + 74,42,14,52,53,15,16,54,65,55, + 17,18,56,61,58,9,62,19,64,47, + 20,49,21,10,3,8,6,72,45,4, + 7,5,57,1,2,0,74,7,114,115, + 116,64,10,3,8,6,5,73,72,45, + 46,50,11,12,59,48,13,60,51,42, + 14,52,53,15,16,54,55,17,18,56, + 61,58,9,62,19,47,20,49,21,4, + 1,2,57,0,10,70,72,71,0,1, + 2,10,72,0,28,43,29,30,44,7, + 31,32,33,34,41,35,36,37,38,39, + 26,24,25,8,6,22,23,5,27,69, + 40,3,9,60,59,61,62,12,21,11, + 17,15,16,18,19,14,13,20,50,55, + 56,42,54,53,51,48,49,52,58,1, + 2,47,4,0,67,70,0,74,114,115, + 116,57,73,121,119,122,72,75,64,65, + 66,78,80,86,84,76,82,83,85,87, + 67,79,81,10,45,46,60,59,61,62, 50,55,56,42,54,53,47,51,48,49, - 52,57,41,43,44,9,29,33,31,28, - 36,14,23,13,19,17,18,20,21,16, - 15,22,37,40,38,39,26,35,30,34, - 24,25,11,12,27,32,5,7,3,6, - 8,4,1,2,0,10,70,72,71,0, - 66,70,0,58,1,2,4,66,73,0, - 8,6,7,5,4,1,2,3,68,69, - 71,70,10,76,95,0,10,72,43,44, - 41,24,25,8,6,11,12,5,27,32, + 52,58,41,43,44,9,29,33,31,28, + 36,12,21,11,17,15,16,18,19,14, + 13,20,37,40,38,39,26,35,30,34, + 24,25,22,23,27,32,5,7,3,6, + 8,4,1,2,0,50,11,12,59,48, + 13,60,51,42,14,52,53,15,16,54, + 55,17,18,56,61,58,9,62,19,47, + 20,49,21,1,2,4,95,0,69,71, + 70,1,2,0,10,73,118,77,45,70, + 0,8,6,7,5,4,1,2,3,68, + 69,71,70,10,77,95,0,73,10,68, + 3,71,70,45,63,0,10,72,43,44, + 41,24,25,8,6,22,23,5,27,32, 3,7,37,40,38,39,26,35,30,34, - 14,23,13,19,17,18,20,21,16,15, - 22,9,29,33,31,28,36,4,1,2, - 66,0,10,73,115,76,45,70,0,60, - 73,10,68,3,71,70,45,0,120,0, - 121,46,59,48,15,61,51,16,52,53, - 17,18,54,55,19,20,56,62,57,63, - 21,47,22,49,23,14,13,50,10,3, - 8,6,45,64,67,74,42,58,7,1, - 2,5,4,9,65,0,13,14,15,16, - 17,18,19,20,21,22,23,50,48,51, - 42,52,53,54,55,56,57,47,49,45, - 10,76,7,1,2,68,3,8,6,5, - 4,0,48,49,75,3,66,73,45,41, - 10,69,95,71,70,76,0,5,7,3, - 68,6,8,95,50,13,14,48,15,61, - 51,42,16,52,53,17,18,54,55,19, - 20,56,62,57,9,63,21,47,22,49, - 23,1,2,4,76,10,59,0,50,13, - 14,59,48,15,61,51,42,16,52,53, - 17,18,54,55,19,20,56,62,57,9, - 63,21,47,22,49,23,1,2,4,44, - 43,11,12,6,91,92,99,8,100,5, - 27,60,107,108,104,105,106,112,111,113, - 89,88,109,110,97,98,93,94,101,102, - 24,25,90,103,3,68,71,70,69,0, - 77,0,48,41,49,10,69,95,71,70, - 76,0,13,14,28,43,15,29,30,16, - 17,18,44,31,19,20,32,33,34,41, - 35,36,9,21,22,23,37,38,39,26, - 24,25,11,12,27,40,46,8,6,5, - 7,1,2,4,3,45,10,0,59,48, - 15,61,51,16,52,53,17,18,54,55, - 19,20,56,62,57,9,63,21,47,22, - 49,23,14,13,50,7,10,3,8,6, - 5,45,64,65,67,74,42,1,2,58, - 4,60,0,9,61,59,62,63,14,23, - 13,19,17,18,20,21,16,15,22,75, - 66,5,4,2,1,49,47,57,56,55, - 7,54,53,52,42,51,48,50,119,103, - 24,25,68,3,96,90,6,91,92,11, - 12,89,88,60,93,94,97,98,8,99, - 100,101,69,95,76,71,104,105,106,107, - 108,109,110,111,112,113,73,115,45,102, - 114,70,72,10,0,10,76,13,14,28, - 15,29,30,16,17,18,31,19,20,32, - 33,34,41,35,36,9,21,22,23,37, - 38,39,26,3,24,25,8,6,11,12, - 27,4,40,46,5,7,1,2,44,43, - 0,50,13,14,59,48,15,61,51,42, - 16,52,53,17,18,54,55,19,20,56, - 62,57,9,63,21,47,22,49,23,1, - 2,4,95,0,43,44,24,25,11,12, - 27,32,37,40,38,39,26,35,30,34, - 14,23,13,19,17,18,20,21,16,15, - 22,9,29,33,31,28,36,8,6,68, - 5,7,1,2,4,3,0,45,10,5, - 7,3,1,2,4,6,8,73,0 + 12,21,11,17,15,16,18,19,14,13, + 20,9,29,33,31,28,36,4,1,2, + 67,0,121,46,59,48,13,60,51,14, + 52,53,15,16,54,55,17,18,56,61, + 58,62,19,47,20,49,21,12,11,50, + 10,3,8,6,45,64,66,74,42,57, + 7,1,2,5,4,9,65,0,11,12, + 13,14,15,16,17,18,19,20,21,50, + 48,51,42,52,53,54,55,56,58,47, + 49,45,10,77,7,1,2,68,3,8, + 6,5,4,0,5,7,3,68,6,8, + 95,50,11,12,59,48,13,60,51,42, + 14,52,53,15,16,54,55,17,18,56, + 61,58,9,62,19,47,20,49,21,1, + 2,4,77,10,0,57,1,2,4,67, + 73,0,119,0,48,49,75,3,67,73, + 45,41,10,69,95,71,70,77,0,50, + 11,12,59,48,13,60,51,42,14,52, + 53,15,16,54,55,17,18,56,61,58, + 9,62,19,47,20,49,21,1,2,4, + 44,43,22,23,6,91,92,99,8,100, + 5,27,63,107,108,104,105,106,112,111, + 113,89,88,109,110,97,98,93,94,101, + 102,24,25,90,103,3,68,71,70,69, + 0,76,0,11,12,28,43,13,29,30, + 14,15,16,44,31,17,18,32,33,34, + 41,35,36,9,19,20,21,37,38,39, + 26,24,25,22,23,27,40,46,8,6, + 5,7,1,2,4,3,45,10,0,48, + 41,49,10,69,95,71,70,77,0,47, + 1,2,4,114,115,116,0,48,13,60, + 51,14,52,53,15,16,54,55,17,18, + 56,61,58,9,62,19,47,20,49,21, + 12,11,50,7,10,3,8,6,5,45, + 64,65,66,74,42,63,1,2,4,57, + 59,0,41,48,7,49,5,1,2,4, + 75,10,67,73,95,118,77,72,45,68, + 3,120,96,103,90,24,25,8,6,22, + 23,91,92,88,89,63,93,94,97,98, + 99,100,101,102,117,104,105,106,107,108, + 109,110,111,112,113,69,70,71,0,43, + 44,24,25,22,23,27,32,37,40,38, + 39,26,35,30,34,12,21,11,17,15, + 16,18,19,14,13,20,9,29,33,31, + 28,36,8,6,68,5,7,1,2,4, + 3,0,9,60,59,61,62,12,21,11, + 17,15,16,18,19,14,13,20,75,67, + 5,4,2,1,49,47,58,56,55,7, + 54,53,52,42,51,48,50,120,103,24, + 25,68,3,96,90,6,91,92,22,23, + 89,88,63,93,94,97,98,8,99,100, + 101,69,95,77,71,104,105,106,107,108, + 109,110,111,112,113,73,118,45,102,117, + 70,72,10,0,45,10,5,7,3,1, + 2,4,6,8,73,0,10,77,11,12, + 28,13,29,30,14,15,16,31,17,18, + 32,33,34,41,35,36,9,19,20,21, + 37,38,39,26,3,24,25,8,6,22, + 23,27,4,40,46,5,7,1,2,44, + 43,0 }; }; public final static byte asr[] = Asr.asr; @@ -2186,59 +2106,59 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface Nasb { public final static char nasb[] = {0, - 117,11,56,11,4,212,11,194,11,107, - 161,10,10,11,205,206,11,206,104,206, - 9,206,199,11,11,11,10,106,115,129, - 111,171,11,136,185,11,106,11,11,11, - 115,115,11,11,11,187,187,17,115,172, - 115,187,11,115,11,11,11,115,187,115, - 106,107,11,11,115,122,177,44,78,78, - 133,11,181,106,115,17,138,11,115,89, - 87,17,11,11,107,192,115,115,194,194, - 115,124,115,10,115,107,184,177,218,115, - 115,98,14,19,98,115,46,185,23,14, - 30,122,65,61,80,25,83,181,106,111, - 192,37,23,133,87,87,184,237,237,124, - 52,194,124,187,124,177,177,52,106,177, - 11,56,211,218,98,98,72,30,11,107, - 46,52,11,11,11,140,11,11,11,11, - 11,10,11,11,151,106,25,25,169,25, - 25,25,25,25,25,11,11,11,11,11, - 11,11,11,11,11,11,25,11,11,30, - 65,58,11,187,11,17,25,115,87,11, - 11,115,37,11,232,17,11,109,11,11, - 11,54,54,52,52,107,52,192,129,11, - 10,144,187,19,52,25,46,133,140,78, - 78,151,245,245,245,245,106,166,17,17, - 1,25,12,192,151,11,11,39,39,166, - 158,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,158,25,23,115,146,61,185,166,11, - 48,37,115,25,11,11,109,133,237,237, - 194,115,11,11,177,184,177,11,25,11, - 94,33,187,10,10,185,230,17,235,115, - 17,17,11,11,11,11,191,17,25,11, - 10,106,87,245,80,17,183,106,183,17, - 87,11,11,11,11,11,11,11,11,11, + 108,11,26,11,4,224,11,203,11,24, + 166,228,228,11,217,218,11,218,119,218, + 23,218,211,11,11,228,121,104,129,100, + 177,11,147,10,11,121,11,11,11,104, + 104,11,11,11,208,208,12,104,178,104, + 208,11,104,11,11,104,208,104,121,10, + 11,104,16,173,63,67,67,133,11,183, + 121,104,12,149,11,104,49,73,12,11, + 11,10,138,104,104,203,203,104,124,104, + 104,228,31,186,173,230,104,104,14,81, + 45,14,104,24,10,33,81,42,16,106, + 115,84,35,69,183,121,100,138,201,33, + 133,73,73,186,144,144,124,59,203,124, + 124,208,173,173,59,121,173,11,26,223, + 230,14,14,197,42,11,10,24,59,11, + 11,11,89,11,11,11,11,11,228,11, + 11,151,121,35,35,175,35,35,35,35, + 35,35,11,11,11,11,11,11,11,11, + 11,11,11,35,11,11,42,106,28,11, + 208,11,12,35,104,73,11,11,104,201, + 11,239,12,11,98,11,11,11,93,93, + 59,59,59,31,138,129,11,228,79,208, + 45,59,35,24,133,89,67,67,151,190, + 190,190,190,121,220,12,12,1,35,40, + 138,151,11,11,18,18,220,163,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,163,35, + 33,104,155,115,10,220,11,55,201,104, + 35,11,11,98,133,144,144,203,104,11, + 11,173,186,173,11,35,11,113,193,208, + 228,228,10,237,12,142,104,12,12,11, + 11,11,11,137,12,35,11,228,121,73, + 190,84,12,185,121,185,12,73,11,11, 11,11,11,11,11,11,11,11,11,11, - 102,155,11,25,11,177,11,11,11,156, - 11,107,175,177,177,107,76,11,17,25, - 52,37,25,25,235,179,237,245,245,177, - 111,25,25,185,187,187,17,237,11,11, - 11,11,30,185,106,192,25,245,115,69, - 17,106,208,192,25,96,11,11,11,156, - 240,240,225,11,240,177,177,11,115,48, - 115,11,185,185,115,17,158,158,158,158, - 11,11,190,30,17,67,232,11,107,30, - 245,17,111,17,227,177,115,11,17,102, - 92,11,37,115,17,17,17,17,166,166, - 30,115,100,11,158,232,209,11,17,17, - 115,156,11,156,177,227,111,158,156,96, - 11,54,115,37,17,17,11,67,166,25, - 87,209,76,76,109,25,11,227,177,17, - 244,11,92,115,100,17,87,156,17,227, - 177,17,183,92,156,17,245,156 + 11,11,11,11,11,11,11,65,160,11, + 35,11,173,11,11,11,161,11,24,171, + 173,173,24,77,11,12,35,59,201,35, + 35,142,181,144,190,190,173,100,35,35, + 10,208,208,12,144,11,11,11,11,42, + 10,121,138,35,190,104,52,12,121,95, + 138,35,87,11,11,11,161,247,247,242, + 11,247,173,173,11,104,55,104,11,10, + 10,104,12,163,163,163,163,11,11,136, + 42,12,61,239,11,10,42,190,12,100, + 12,244,173,104,11,12,65,75,11,201, + 104,12,12,12,12,220,220,42,104,140, + 11,163,239,96,11,12,12,104,161,11, + 161,173,244,100,163,161,87,11,93,104, + 201,12,12,11,61,220,35,73,96,77, + 77,98,35,11,244,173,12,189,11,75, + 104,140,12,73,161,12,244,173,12,185, + 75,161,12,190,161 }; }; public final static char nasb[] = Nasb.nasb; @@ -2246,31 +2166,31 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface Nasr { public final static char nasr[] = {0, - 3,13,8,154,152,125,151,150,1,6, - 0,178,0,2,70,0,34,0,70,140, - 139,0,52,5,6,8,2,13,0,4, - 3,0,6,109,167,0,64,0,6,2, - 8,141,0,182,0,127,0,13,2,8, - 6,69,0,115,0,157,0,5,69,0, - 171,6,170,0,161,0,145,0,5,180, - 0,6,109,189,0,60,0,80,0,5, - 30,0,13,2,8,6,90,0,5,192, - 0,129,0,188,0,118,0,116,0,143, - 0,162,0,3,6,48,1,0,102,101, - 67,6,2,8,5,0,177,68,47,5, - 0,160,0,110,5,47,68,0,5,8, - 2,67,6,94,0,5,52,173,0,101, - 102,5,0,190,0,5,47,39,181,0, - 5,52,39,0,69,47,81,5,39,0, - 68,47,5,138,0,5,104,0,6,13, - 8,2,3,0,5,39,40,0,102,101, - 67,59,6,8,2,0,1,57,0,2, - 137,70,0,5,47,68,71,0,1,6, - 125,121,122,123,13,91,0,1,119,0, - 40,6,2,8,5,159,0,5,47,68, - 109,49,6,0,47,51,5,107,0,102, - 101,6,59,0,6,94,23,5,0,5, - 52,120,0,34,5,52,0 + 3,13,8,6,148,146,120,145,144,2, + 0,34,0,111,0,155,0,6,2,8, + 135,0,6,1,0,152,0,5,66,0, + 151,0,49,5,6,8,2,13,0,173, + 0,4,3,0,67,134,133,0,5,187, + 0,5,175,0,13,2,8,6,66,0, + 139,0,177,0,157,0,77,0,13,2, + 8,6,87,0,123,0,57,0,185,0, + 2,67,0,5,30,0,113,0,96,97, + 5,0,110,0,2,114,0,97,96,64, + 6,2,8,5,0,156,0,172,65,44, + 5,0,183,0,166,6,165,0,3,6, + 2,45,0,105,5,44,65,0,5,8, + 2,64,6,91,0,2,131,67,0,137, + 0,6,91,23,5,0,5,49,168,0, + 5,49,39,0,5,44,39,176,0,66, + 44,78,5,39,0,65,44,5,132,0, + 5,39,40,0,6,13,8,2,3,0, + 97,96,64,56,6,8,2,0,34,5, + 49,0,6,104,162,0,6,104,184,0, + 61,0,5,44,65,68,0,2,54,0, + 2,6,120,116,117,118,13,88,0,5, + 99,0,40,2,8,5,154,6,0,5, + 44,65,104,46,6,0,97,96,6,56, + 0,44,48,5,102,0,5,49,115,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -2279,18 +2199,18 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface TerminalIndex { public final static char terminalIndex[] = {0, 115,116,2,32,14,11,81,10,102,117, - 12,13,50,54,62,70,76,77,88,89, - 104,107,109,8,9,114,15,57,63,69, + 50,54,62,70,76,77,88,89,104,107, + 109,12,13,8,9,114,15,57,63,69, 86,90,92,96,99,101,111,112,113,46, 97,68,60,80,122,123,106,56,108,49, - 66,72,75,78,85,91,100,95,55,20, - 65,93,103,105,79,3,48,1,21,45, - 34,121,31,67,98,120,110,51,52,58, + 66,72,75,78,85,91,95,100,55,65, + 93,103,20,105,79,48,3,1,21,45, + 34,121,31,67,98,110,120,51,52,58, 59,61,71,73,74,87,94,18,19,7, 16,17,22,23,33,5,24,25,26,27, 28,29,6,35,36,37,38,39,40,41, - 42,43,44,30,119,82,83,84,4,53, - 124,64,118 + 42,43,44,82,83,84,30,119,53,4, + 125,64,124,118 }; }; public final static char terminalIndex[] = TerminalIndex.terminalIndex; @@ -2298,26 +2218,26 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, - 132,137,139,241,0,0,138,237,136,0, - 135,0,147,0,134,0,0,146,152,0, - 0,153,183,162,163,164,165,166,140,155, - 167,168,169,126,170,171,172,0,133,128, - 200,145,173,0,0,142,0,141,181,0, - 180,156,0,0,0,0,0,149,159,176, - 0,207,0,190,0,204,208,0,127,0, - 131,0,0,0,0,0,0,0,0,209, - 175,0,0,0,0,0,0,0,179,125, - 189,0,0,205,215,150,161,0,0,211, - 212,213,0,0,0,0,0,210,223,182, - 0,0,0,214,0,0,0,244,151,178, - 192,193,194,195,196,198,199,202,0,217, - 220,222,240,0,243,0,0,130,143,144, - 148,0,0,158,160,0,174,0,184,185, - 186,187,188,191,0,197,0,201,206,0, - 218,219,0,224,227,229,231,0,234,235, - 236,0,238,239,242,0,129,0,154,157, - 177,203,216,221,0,225,226,228,230,0, - 232,233,245,246,0,0,0 + 133,138,140,240,0,0,139,236,137,0, + 136,0,147,0,135,0,0,146,152,0, + 0,153,183,162,163,164,165,166,141,155, + 167,168,169,127,170,171,172,0,134,129, + 173,0,143,0,142,181,0,180,156,0, + 0,0,0,0,149,159,176,0,206,0, + 190,0,203,207,0,128,0,132,0,0, + 0,0,0,0,0,0,208,175,0,0, + 0,0,0,0,0,179,126,189,0,0, + 204,214,150,161,210,211,212,0,0,0, + 0,0,209,222,182,0,0,0,213,0, + 0,0,243,151,178,192,193,194,195,196, + 198,201,0,216,219,221,239,0,242,0, + 0,131,144,145,148,0,0,158,160,0, + 174,0,184,185,186,187,188,191,0,197, + 199,0,200,205,0,217,218,0,223,226, + 228,230,0,233,234,235,0,237,238,241, + 0,130,0,154,157,177,202,215,220,0, + 224,225,227,229,0,231,232,244,245,0, + 0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -2363,18 +2283,18 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopeLhs { public final static char scopeLhs[] = { - 49,18,18,85,18,18,18,18,85,74, - 50,79,78,123,65,55,85,84,49,18, - 85,20,3,7,167,167,164,121,49,77, - 123,122,124,56,50,141,134,85,18,18, - 134,103,61,136,88,170,167,164,131,122, - 122,124,51,60,145,19,18,18,18,18, - 18,12,118,164,131,85,84,84,38,141, - 84,18,18,18,18,103,85,20,171,167, - 182,101,108,63,80,62,159,89,124,86, - 82,146,145,178,141,17,164,124,120,22, - 132,132,59,141,141,85,49,164,83,139, - 48,139,48,170,120,121,49,49,61 + 46,18,18,82,18,18,18,18,82,71, + 47,76,75,118,62,52,82,81,46,18, + 82,20,3,7,162,162,159,116,46,74, + 118,117,119,53,47,135,128,82,18,18, + 128,98,58,130,85,165,162,159,125,117, + 117,119,48,57,139,19,18,18,18,18, + 18,12,113,159,125,82,81,81,38,135, + 81,18,18,18,18,98,82,20,166,162, + 177,96,103,60,77,59,154,86,119,83, + 79,140,139,173,135,17,159,119,115,22, + 126,126,56,135,135,82,46,159,80,133, + 45,133,45,165,115,116,46,46,58 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -2382,18 +2302,18 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopeLa { public final static byte scopeLa[] = { - 120,76,76,76,76,76,76,76,76,72, - 45,72,72,72,69,1,76,122,66,3, - 45,76,69,69,1,1,45,72,66,72, + 119,77,77,77,77,77,77,77,77,72, + 45,72,72,72,69,1,77,122,67,3, + 45,77,69,69,1,1,45,72,67,72, 72,1,1,1,1,4,69,45,1,1, - 69,76,76,76,120,76,1,45,72,1, - 1,1,45,72,115,76,76,76,76,76, - 115,1,76,1,70,76,76,76,73,4, - 76,69,69,69,69,76,45,3,1,1, - 76,76,3,1,115,76,1,1,1,45, - 73,76,115,76,5,76,1,58,71,76, - 1,1,6,1,58,77,75,45,45,4, - 4,4,4,3,1,66,1,1,3 + 69,77,77,77,119,77,1,45,72,1, + 1,1,45,72,118,77,77,77,77,77, + 118,1,77,1,70,77,77,77,73,4, + 77,69,69,69,69,77,45,3,1,1, + 77,77,3,1,118,77,1,1,1,45, + 73,77,118,77,5,77,1,57,71,77, + 1,1,6,1,57,76,75,45,45,4, + 4,4,4,3,1,67,1,1,3 }; }; public final static byte scopeLa[] = ScopeLa.scopeLa; @@ -2420,71 +2340,71 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopeRhs { public final static char scopeRhs[] = {0, - 317,3,41,0,126,0,316,3,120,0, - 126,176,0,128,183,75,0,219,0,295, - 128,60,127,0,21,0,297,128,60,58, - 0,21,55,0,34,134,0,21,55,0, - 0,297,128,60,58,191,0,21,131,0, - 295,128,60,131,0,180,129,0,140,0, - 227,3,294,0,294,0,2,0,126,0, - 180,129,232,0,180,129,47,232,0,180, - 129,313,47,0,132,193,171,129,0,128, - 0,193,171,129,0,136,128,0,170,0, - 309,128,170,0,128,170,0,225,128,0, - 171,248,0,139,0,0,0,137,0,0, - 0,308,128,66,255,0,127,0,255,0, - 3,0,0,127,0,307,128,66,0,45, - 127,0,153,3,0,128,284,283,128,75, - 282,170,0,283,128,75,282,170,0,218, - 0,219,0,282,170,0,98,0,0,218, - 0,219,0,206,98,0,0,218,0,219, - 0,283,128,282,170,0,218,0,206,0, - 0,218,0,235,128,3,0,126,0,0, - 0,0,0,235,128,3,224,0,231,3, - 0,217,128,0,211,0,150,0,171,129, - 0,11,0,0,0,220,68,0,125,0, - 235,128,3,185,0,185,0,2,0,0, - 126,0,0,0,0,0,212,3,0,204, - 0,234,128,66,26,42,0,180,129,65, - 64,0,145,128,0,132,180,129,280,64, - 0,180,129,280,64,0,180,129,71,124, - 65,0,234,128,66,65,0,234,128,66, - 164,65,0,234,128,66,125,65,0,278, - 128,66,124,61,0,278,128,66,61,0, - 180,129,61,0,137,0,193,180,129,248, - 0,139,0,180,129,248,0,193,171,129, - 9,0,171,129,9,0,95,139,0,271, - 128,170,0,162,86,0,230,163,230,174, - 3,83,0,126,175,0,230,174,3,83, - 0,128,0,126,175,0,230,163,230,163, - 230,3,83,0,230,163,230,3,83,0, - 230,3,83,0,128,0,128,0,126,175, - 0,162,3,77,204,82,0,126,128,0, - 204,82,0,110,2,133,126,128,0,243, - 3,77,0,212,175,0,34,173,0,175, - 0,179,34,173,0,243,3,87,0,204, - 157,243,3,85,0,64,175,0,243,3, - 85,0,126,175,64,175,0,304,128,66, - 0,162,0,220,79,0,31,0,162,114, - 160,0,31,173,0,181,3,0,126,153, - 0,227,3,0,220,68,268,0,162,68, - 0,181,3,301,44,129,0,126,0,0, - 0,0,301,44,129,0,2,149,126,0, - 0,0,0,181,3,32,0,151,0,126, - 58,171,129,0,32,151,0,95,139,32, - 151,0,219,180,129,0,150,32,151,0, - 181,3,36,0,162,3,36,0,162,3, - 69,181,60,28,0,181,60,28,0,21, - 2,133,126,0,162,3,69,181,60,31, - 0,181,60,31,0,162,3,69,181,60, - 33,0,181,60,33,0,162,3,69,181, - 60,29,0,181,60,29,0,227,3,126, - 193,171,129,9,0,126,193,171,129,9, - 0,139,2,0,126,0,227,3,125,260, - 171,129,9,0,260,171,129,9,0,137, - 2,0,126,0,227,3,136,0,227,3, - 141,0,162,68,141,0,263,0,32,0, - 32,143,0,169,0,136,0,162,3,0 + 313,3,41,0,127,0,312,3,119,0, + 127,176,0,129,181,75,0,218,0,291, + 129,63,128,0,21,0,293,129,63,57, + 0,21,55,0,34,135,0,21,55,0, + 0,293,129,63,57,189,0,21,132,0, + 291,129,63,132,0,178,130,0,141,0, + 223,3,290,0,290,0,2,0,127,0, + 178,130,228,0,178,130,47,228,0,178, + 130,309,47,0,133,191,169,130,0,129, + 0,191,169,130,0,137,129,0,168,0, + 305,129,168,0,129,168,0,224,129,0, + 169,244,0,140,0,0,0,138,0,0, + 0,304,129,67,250,0,128,0,250,0, + 3,0,0,128,0,303,129,67,0,45, + 128,0,154,3,0,129,280,279,129,75, + 278,168,0,279,129,75,278,168,0,217, + 0,218,0,278,168,0,98,0,0,217, + 0,218,0,205,98,0,0,217,0,218, + 0,279,129,278,168,0,217,0,205,0, + 0,217,0,231,129,3,0,127,0,0, + 0,0,0,231,129,3,220,0,227,3, + 0,215,129,0,210,0,150,0,169,130, + 0,11,0,0,0,218,68,0,126,0, + 231,129,3,183,0,183,0,2,0,0, + 127,0,0,0,0,0,210,3,0,203, + 0,230,129,67,26,42,0,178,130,65, + 64,0,199,129,0,133,178,130,276,64, + 0,178,130,276,64,0,178,130,71,125, + 65,0,230,129,67,65,0,230,129,67, + 123,65,0,230,129,67,126,65,0,273, + 129,67,125,60,0,273,129,67,60,0, + 178,130,60,0,138,0,191,178,130,244, + 0,140,0,178,130,244,0,191,169,130, + 9,0,169,130,9,0,95,140,0,266, + 129,168,0,163,86,0,226,164,226,172, + 3,83,0,127,175,0,226,172,3,83, + 0,129,0,127,175,0,226,164,226,164, + 226,3,83,0,226,164,226,3,83,0, + 226,3,83,0,129,0,129,0,127,175, + 0,163,3,76,202,82,0,127,129,0, + 202,82,0,110,2,134,127,129,0,239, + 3,76,0,210,173,0,34,173,0,173, + 0,179,34,173,0,239,3,87,0,202, + 158,239,3,85,0,64,175,0,239,3, + 85,0,127,175,64,175,0,300,129,67, + 0,163,0,218,79,0,31,0,163,117, + 161,0,31,173,0,179,3,0,127,153, + 0,223,3,0,218,68,263,0,163,68, + 0,179,3,297,44,130,0,127,0,0, + 0,0,297,44,130,0,2,149,127,0, + 0,0,0,179,3,32,0,151,0,127, + 57,169,130,0,32,151,0,95,140,32, + 151,0,217,178,130,0,150,32,151,0, + 179,3,36,0,163,3,36,0,163,3, + 69,179,63,28,0,179,63,28,0,21, + 2,134,127,0,163,3,69,179,63,31, + 0,179,63,31,0,163,3,69,179,63, + 33,0,179,63,33,0,163,3,69,179, + 63,29,0,179,63,29,0,223,3,127, + 191,169,130,9,0,127,191,169,130,9, + 0,140,2,0,127,0,223,3,126,255, + 169,130,9,0,255,169,130,9,0,138, + 2,0,127,0,223,3,137,0,223,3, + 142,0,163,68,142,0,258,0,32,0, + 32,144,0,167,0,137,0,163,3,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -2492,39 +2412,39 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopeState { public final static char scopeState[] = {0, - 2933,2382,0,1501,1490,1445,0,1403,1173,0, - 5130,5095,5094,0,1861,3170,1771,2416,0,1110, - 865,0,564,0,740,1220,0,5084,3312,644, - 0,2772,1099,0,4033,3967,3901,2116,2024,3835, - 3769,3703,3637,1221,3563,3339,3271,2214,1106,0, - 719,648,0,1726,1636,1466,1273,3572,5011,2837, - 2822,3665,2486,3022,0,870,0,3866,2247,3572, - 5045,5042,5011,3734,3309,3211,2726,3302,4731,4718, - 723,2946,0,3999,3933,5030,5012,4998,4980,4962, - 3867,4948,4930,3801,3735,4912,3147,4860,634,4852, - 4842,4065,3653,3371,2535,2478,0,3572,4751,4731, - 4718,4815,2837,4683,4171,579,2822,3211,2486,3044, - 3224,2946,0,4751,4815,0,3625,3596,5079,3279, - 3097,2658,4199,3999,3933,2893,5030,5012,2502,4998, - 4980,2472,4962,1174,3867,4948,4930,2438,3801,2996, - 793,3735,4912,3147,734,2905,4860,2555,634,4852, - 4842,650,4065,3653,3371,971,2535,4156,2478,2419, - 2721,2427,2263,670,801,2837,4683,4171,579,3572, - 2171,2079,2822,1110,865,3211,2486,4751,3044,4731, - 4718,3224,2946,4815,4696,4660,4598,2277,2316,2386, - 2352,2443,1023,593,2795,2733,2692,2664,2623,2595, - 3540,3515,3486,3243,2854,4557,4534,4511,4488,4465, - 4442,4419,4396,4373,3462,4350,1956,2224,1911,2185, - 2132,1276,1228,1866,2093,2040,1180,924,1821,1776, - 1731,1686,1641,1596,1551,1506,1461,1416,1364,534, - 2001,819,878,748,1324,689,1054,977,1127,0, - 534,4156,2419,0,2971,4783,4033,3967,3901,3835, - 3769,3703,3637,3563,3339,3271,4580,3131,3090,4270, - 3010,2913,4236,4140,3382,4076,2715,0,4580,3131, - 3090,4270,3010,2913,4236,4140,3382,4076,2715,2971, - 4783,0,4835,4580,3131,3090,4270,3010,2913,4236, - 4140,3382,4076,2715,4033,3967,3901,3835,3769,3703, - 3637,3563,3339,3271,0 + 2997,2942,0,1482,1439,1396,0,2369,990,0, + 4902,4899,4882,0,2956,1970,2307,1240,0,996, + 568,0,828,0,3540,3761,0,4503,3520,2867, + 0,2786,2683,0,3810,3743,3724,3313,3214,3657, + 3638,3571,3552,2077,3482,3258,3195,2897,2445,0, + 2916,877,0,1793,1759,1458,1265,3491,4779,2773, + 2758,2815,2429,2400,0,1081,0,3780,3675,3491, + 3226,3016,4779,3706,3230,2969,935,1227,4576,4563, + 1137,2877,0,4866,4836,4818,4803,4788,4780,4757, + 3950,4724,4719,3841,3756,4702,3670,4687,3513,4461, + 4446,4431,4292,3871,2637,2798,0,3491,4641,4576, + 4563,4654,2773,4380,4547,3201,2758,2969,2429,4409, + 4534,2877,0,4641,4654,0,3577,3253,4400,2631, + 3344,3290,2414,4866,4836,2182,4818,4803,3266,4788, + 4780,2810,4757,2805,3950,4724,4719,2093,3841,2187, + 2004,3756,4702,3670,836,2862,4687,2009,3513,4461, + 4446,773,4431,4292,3871,945,2637,4393,2798,2393, + 1132,1070,717,845,646,2773,4380,4547,3201,3491, + 1012,823,2758,996,568,2969,2429,4641,4409,4576, + 4563,4534,2877,4654,619,4357,4298,2193,2232,2302, + 2268,2364,2335,581,2729,2702,2602,2570,2542,2449, + 3459,3434,3408,3169,2643,4257,4234,4211,4188,4165, + 4142,4119,4096,4073,3384,4050,1883,2143,1840,2104, + 2054,1235,1188,1797,2015,1965,1145,901,1754,1711, + 1668,1625,1582,1539,1496,1453,1410,1367,1319,525, + 1926,854,780,730,1278,674,1025,951,1086,0, + 525,4393,2393,0,3070,4671,3810,3743,3724,3657, + 3638,3571,3552,3482,3258,3195,4280,3092,3015,3973, + 2938,2852,3936,3896,3307,3859,2625,0,4280,3092, + 3015,3973,2938,2852,3936,3896,3307,3859,2625,3070, + 4671,0,4850,4280,3092,3015,3973,2938,2852,3936, + 3896,3307,3859,2625,3810,3743,3724,3657,3638,3571, + 3552,3482,3258,3195,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2532,59 +2452,59 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface InSymb { public final static char inSymb[] = {0, - 0,299,64,67,128,170,191,58,42,65, - 300,65,280,3,272,273,255,274,248,275, - 61,276,277,124,127,125,9,129,282,128, - 3,4,131,7,5,125,129,185,58,60, - 26,66,164,124,125,129,129,26,66,171, - 238,129,169,126,124,125,124,66,129,60, - 129,180,171,125,75,128,271,212,190,185, - 128,281,217,129,6,212,7,125,60,175, - 68,3,43,44,180,171,3,60,69,128, - 66,128,66,71,66,180,180,157,128,126, - 125,128,180,4,128,66,128,180,128,171, - 58,128,283,73,3,71,68,217,129,70, - 171,128,128,128,68,68,193,128,128,128, - 234,233,128,129,128,165,132,308,129,172, - 232,64,170,310,128,128,73,193,263,193, - 128,278,250,279,295,175,36,28,31,33, - 29,9,136,134,3,129,32,27,5,12, - 11,6,8,25,24,141,147,149,148,151, - 150,155,154,158,156,159,41,160,298,193, - 283,66,293,129,294,153,128,66,220,160, - 171,6,187,295,217,235,236,146,237,297, - 58,9,59,234,234,180,234,171,128,312, - 232,47,129,4,278,71,70,128,3,225, - 224,3,60,60,60,60,129,3,181,162, - 128,43,44,171,3,126,125,103,119,3, - 68,90,96,12,11,92,91,6,94,93, - 69,60,88,89,8,98,97,100,99,101, - 113,112,111,110,109,108,107,106,105,104, - 71,114,102,70,284,128,70,180,3,270, - 128,128,157,71,231,212,3,128,70,70, - 69,60,238,238,165,193,309,125,73,289, - 212,70,129,47,313,180,217,231,128,3, - 181,162,181,181,181,181,171,227,157,136, - 9,129,68,301,3,181,58,129,58,227, - 162,148,148,147,147,147,150,150,150,150, - 149,149,154,151,151,156,155,158,162,159, - 128,304,81,79,1,162,87,85,83,82, - 77,84,86,80,78,65,75,46,227,70, - 307,128,71,71,128,217,128,71,71,132, - 70,73,71,180,129,129,235,128,69,69, - 69,69,193,260,129,171,213,3,302,175, - 153,129,180,171,73,285,120,10,220,73, - 3,3,3,204,3,124,162,124,183,70, - 228,297,180,180,157,235,3,3,3,3, - 126,125,171,58,181,128,128,219,5,58, - 3,243,175,243,174,230,170,77,243,128, - 128,69,128,157,162,162,162,162,3,3, - 193,157,265,268,68,182,4,126,95,316, - 175,157,212,157,230,163,128,3,157,285, - 41,59,228,128,227,227,126,128,3,68, - 162,4,157,157,128,71,204,163,230,162, - 3,238,128,228,265,227,220,122,230,163, - 157,317,71,128,157,230,70,157 + 0,295,64,66,129,168,189,57,42,65, + 296,65,276,3,267,268,250,269,244,270, + 60,271,272,128,126,9,130,278,129,3, + 4,132,7,5,126,130,183,57,63,26, + 67,123,126,125,130,130,26,67,169,234, + 130,167,127,126,125,67,130,63,130,178, + 169,75,129,266,210,188,183,129,277,215, + 130,6,210,7,126,63,173,68,3,43, + 44,178,169,3,63,69,129,67,129,67, + 67,71,178,178,158,129,127,126,129,178, + 4,129,67,129,178,129,169,57,129,279, + 73,3,71,68,215,130,70,169,129,129, + 129,68,68,191,129,129,129,230,229,129, + 129,130,275,133,304,130,170,228,64,168, + 306,129,129,73,191,258,191,129,273,125, + 274,291,173,36,28,31,33,29,9,137, + 135,3,130,32,27,5,23,22,6,8, + 25,24,142,148,150,149,152,151,156,155, + 159,157,160,41,161,294,191,279,67,289, + 130,290,154,129,67,218,161,169,6,185, + 291,215,231,232,147,233,293,57,9,59, + 230,230,230,178,169,129,308,228,47,130, + 4,273,71,70,129,3,221,220,3,63, + 63,63,63,130,3,179,163,129,43,44, + 169,3,127,126,103,120,3,68,90,96, + 23,22,92,91,6,94,93,69,63,88, + 89,8,98,97,100,99,101,113,112,111, + 110,109,108,107,106,105,104,71,117,102, + 70,280,129,70,178,3,265,129,129,158, + 71,227,210,3,129,70,70,69,63,234, + 234,275,191,305,126,73,285,210,70,130, + 47,309,178,215,227,129,3,179,163,179, + 179,179,179,169,223,158,137,9,130,68, + 297,3,179,57,130,57,223,163,149,149, + 148,148,148,151,151,151,151,150,150,155, + 152,152,157,156,159,163,160,129,300,81, + 79,1,163,87,85,83,82,76,84,86, + 80,78,65,75,46,223,70,303,129,71, + 71,129,215,129,71,71,133,70,73,71, + 178,130,130,231,129,69,69,69,69,191, + 255,130,169,211,3,298,173,154,130,178, + 169,73,281,119,10,218,73,3,3,3, + 202,3,125,163,125,181,70,224,293,178, + 178,158,231,3,3,3,3,127,126,169, + 57,179,129,129,217,5,57,3,239,173, + 239,172,226,168,76,239,129,129,69,129, + 158,163,163,163,163,3,3,191,158,260, + 263,68,180,4,127,95,312,173,158,210, + 158,226,164,129,3,158,281,41,59,224, + 129,223,223,127,129,3,68,163,4,158, + 158,129,71,202,164,226,163,3,234,129, + 224,260,223,218,122,226,164,158,313,71, + 129,158,226,70,158 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2716,6 +2636,7 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym "RightBrace", "SemiColon", "ERROR_TOKEN", + "original_namespace_name", "EOF_TOKEN", "]", ")", @@ -2739,7 +2660,6 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym "plate", "class_or_namespace_name_with_t" + "emplate", - "namespace_name", "postfix_expression", "simple_type_specifier", "pseudo_destructor_name", @@ -2795,8 +2715,7 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym "class_keyword", "enumerator_list", "enumerator_definition", - "enumerator", - "original_namespace_name", + "namespace_name", "init_declarator_list", "init_declarator", "initializer", @@ -2862,20 +2781,20 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 528, - NT_OFFSET = 123, - LA_STATE_OFFSET = 6233, + NUM_STATES = 525, + NT_OFFSET = 124, + LA_STATE_OFFSET = 5942, MAX_LA = 2147483647, - NUM_RULES = 533, - NUM_NONTERMINALS = 197, - NUM_SYMBOLS = 320, + NUM_RULES = 524, + NUM_NONTERMINALS = 192, + NUM_SYMBOLS = 316, SEGMENT_SIZE = 8192, - START_STATE = 2715, + START_STATE = 2625, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 121, EOLT_SYMBOL = 121, - ACCEPT_ACTION = 5334, - ERROR_ACTION = 5700; + ACCEPT_ACTION = 5059, + ERROR_ACTION = 5418; public final static boolean BACKTRACK = true; diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParsersym.java index 18664429ea5..a2a7976e0a7 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParsersym.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParsersym.java @@ -15,13 +15,13 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp; public interface CPPParsersym { public final static int - TK_asm = 67, + TK_asm = 66, TK_auto = 50, - TK_bool = 13, + TK_bool = 11, TK_break = 78, TK_case = 79, - TK_catch = 120, - TK_char = 14, + TK_catch = 119, + TK_char = 12, TK_class = 59, TK_const = 48, TK_const_cast = 28, @@ -29,55 +29,55 @@ public interface CPPParsersym { TK_default = 81, TK_delete = 43, TK_do = 82, - TK_double = 15, + TK_double = 13, TK_dynamic_cast = 29, TK_else = 122, - TK_enum = 61, + TK_enum = 60, TK_explicit = 51, TK_export = 74, TK_extern = 42, TK_false = 30, - TK_float = 16, + TK_float = 14, TK_for = 83, TK_friend = 52, TK_goto = 84, TK_if = 85, TK_inline = 53, - TK_int = 17, - TK_long = 18, + TK_int = 15, + TK_long = 16, TK_mutable = 54, TK_namespace = 65, TK_new = 44, TK_operator = 7, - TK_private = 116, - TK_protected = 117, - TK_public = 118, + TK_private = 114, + TK_protected = 115, + TK_public = 116, TK_register = 55, TK_reinterpret_cast = 31, TK_return = 86, - TK_short = 19, - TK_signed = 20, + TK_short = 17, + TK_signed = 18, TK_sizeof = 32, TK_static = 56, TK_static_cast = 33, - TK_struct = 62, + TK_struct = 61, TK_switch = 87, - TK_template = 58, + TK_template = 57, TK_this = 34, TK_throw = 41, TK_try = 75, TK_true = 35, - TK_typedef = 57, + TK_typedef = 58, TK_typeid = 36, TK_typename = 9, - TK_union = 63, - TK_unsigned = 21, + TK_union = 62, + TK_unsigned = 19, TK_using = 64, TK_virtual = 47, - TK_void = 22, + TK_void = 20, TK_volatile = 49, - TK_wchar_t = 23, - TK_while = 77, + TK_wchar_t = 21, + TK_while = 76, TK_integer = 37, TK_floating = 38, TK_charconst = 39, @@ -85,11 +85,11 @@ public interface CPPParsersym { TK_identifier = 1, TK_Completion = 2, TK_EndOfCompletion = 10, - TK_Invalid = 123, + TK_Invalid = 124, TK_LeftBracket = 68, TK_LeftParen = 3, - TK_LeftBrace = 66, - TK_Dot = 119, + TK_LeftBrace = 67, + TK_Dot = 120, TK_DotStar = 96, TK_Arrow = 103, TK_ArrowStar = 90, @@ -97,15 +97,15 @@ public interface CPPParsersym { TK_MinusMinus = 25, TK_And = 8, TK_Star = 6, - TK_Plus = 11, - TK_Minus = 12, + TK_Plus = 22, + TK_Minus = 23, TK_Tilde = 5, TK_Bang = 27, TK_Slash = 91, TK_Percent = 92, TK_RightShift = 88, TK_LeftShift = 89, - TK_LT = 60, + TK_LT = 63, TK_GT = 69, TK_LE = 93, TK_GE = 94, @@ -115,7 +115,7 @@ public interface CPPParsersym { TK_Or = 100, TK_AndAnd = 101, TK_OrOr = 102, - TK_Question = 114, + TK_Question = 117, TK_Colon = 73, TK_ColonColon = 4, TK_DotDotDot = 95, @@ -132,11 +132,12 @@ public interface CPPParsersym { TK_OrAssign = 113, TK_Comma = 70, TK_zero = 40, - TK_RightBracket = 115, - TK_RightParen = 76, + TK_RightBracket = 118, + TK_RightParen = 77, TK_RightBrace = 72, TK_SemiColon = 45, TK_ERROR_TOKEN = 46, + TK_original_namespace_name = 123, TK_EOF_TOKEN = 121; public final static String orderedTerminalSymbols[] = { @@ -151,8 +152,6 @@ public interface CPPParsersym { "And", "typename", "EndOfCompletion", - "Plus", - "Minus", "bool", "char", "double", @@ -164,6 +163,8 @@ public interface CPPParsersym { "unsigned", "void", "wchar_t", + "Plus", + "Minus", "PlusPlus", "MinusMinus", "stringlit", @@ -197,17 +198,17 @@ public interface CPPParsersym { "mutable", "register", "static", - "typedef", "template", + "typedef", "class", - "LT", "enum", "struct", "union", + "LT", "using", "namespace", - "LeftBrace", "asm", + "LeftBrace", "LeftBracket", "GT", "Comma", @@ -216,8 +217,8 @@ public interface CPPParsersym { "Colon", "export", "try", - "RightParen", "while", + "RightParen", "break", "case", "continue", @@ -254,15 +255,16 @@ public interface CPPParsersym { "AndAssign", "CaretAssign", "OrAssign", - "Question", - "RightBracket", "private", "protected", "public", - "Dot", + "Question", + "RightBracket", "catch", + "Dot", "EOF_TOKEN", "else", + "original_namespace_name", "Invalid" }; diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParser.java index 33c1c713ad2..07ed4bd99df 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParser.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParser.java @@ -481,1605 +481,1605 @@ public CPPSizeofExpressionParser(String[] mapFrom) { // constructor } // - // Rule 57: postfix_expression ::= postfix_expression [ expression ] + // Rule 56: postfix_expression ::= postfix_expression [ expression ] // - case 57: { action.builder. + case 56: { action.builder. consumeExpressionArraySubscript(); break; } // - // Rule 58: postfix_expression ::= postfix_expression ( expression_list_opt ) + // Rule 57: postfix_expression ::= postfix_expression ( expression_list_opt ) // - case 58: { action.builder. + case 57: { action.builder. consumeExpressionFunctionCall(); break; } // - // Rule 59: postfix_expression ::= simple_type_specifier ( expression_list_opt ) + // Rule 58: postfix_expression ::= simple_type_specifier ( expression_list_opt ) // - case 59: { action.builder. + case 58: { action.builder. consumeExpressionSimpleTypeConstructor(); break; } // - // Rule 60: postfix_expression ::= typename dcolon_opt nested_name_specifier identifier_name ( expression_list_opt ) + // Rule 59: postfix_expression ::= typename dcolon_opt nested_name_specifier 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 ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) + // Rule 61: postfix_expression ::= postfix_expression . qualified_or_unqualified_name // case 61: { action.builder. - consumeExpressionTypeName(); break; - } - - // - // Rule 62: postfix_expression ::= postfix_expression . qualified_or_unqualified_name - // - case 62: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 63: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name + // Rule 62: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name // - case 63: { action.builder. + case 62: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 64: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name + // Rule 63: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name // - case 64: { action.builder. + case 63: { action.builder. consumeExpressionFieldReference(false, true); break; } // - // Rule 65: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name + // Rule 64: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name // - case 65: { action.builder. + case 64: { action.builder. consumeExpressionFieldReference(true, true); break; } // - // Rule 66: postfix_expression ::= postfix_expression . pseudo_destructor_name + // Rule 65: postfix_expression ::= postfix_expression . pseudo_destructor_name // - case 66: { action.builder. + case 65: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 67: postfix_expression ::= postfix_expression -> pseudo_destructor_name + // Rule 66: postfix_expression ::= postfix_expression -> pseudo_destructor_name // - case 67: { action.builder. + case 66: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 68: postfix_expression ::= postfix_expression ++ + // Rule 67: postfix_expression ::= postfix_expression ++ // - case 68: { action.builder. + case 67: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; } // - // Rule 69: postfix_expression ::= postfix_expression -- + // Rule 68: postfix_expression ::= postfix_expression -- // - case 69: { action.builder. + case 68: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; } // - // Rule 70: postfix_expression ::= dynamic_cast < type_id > ( expression ) + // Rule 69: postfix_expression ::= dynamic_cast < type_id > ( expression ) // - case 70: { action.builder. + case 69: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); break; } // - // Rule 71: postfix_expression ::= static_cast < type_id > ( expression ) + // Rule 70: postfix_expression ::= static_cast < type_id > ( expression ) // - case 71: { action.builder. + case 70: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_static_cast); break; } // - // Rule 72: postfix_expression ::= reinterpret_cast < type_id > ( expression ) + // Rule 71: postfix_expression ::= reinterpret_cast < type_id > ( expression ) // - case 72: { action.builder. + case 71: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); break; } // - // Rule 73: postfix_expression ::= const_cast < type_id > ( expression ) + // Rule 72: postfix_expression ::= const_cast < type_id > ( expression ) // - case 73: { action.builder. + case 72: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_const_cast); break; } // - // Rule 74: postfix_expression ::= typeid ( expression ) + // Rule 73: postfix_expression ::= typeid ( expression ) // - case 74: { action.builder. + case 73: { action.builder. consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break; } // - // Rule 75: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name + // Rule 74: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name + // + case 74: { action.builder. + consumePsudoDestructorName(true); break; + } + + // + // Rule 75: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_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 + // Rule 76: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt 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 + // Rule 77: destructor_type_name ::= ~ type_name // - case 78: { action.builder. + case 77: { action.builder. consumeDestructorName(); break; } // - // Rule 82: unary_expression ::= ++ cast_expression + // Rule 81: unary_expression ::= ++ cast_expression // - case 82: { action.builder. + case 81: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; } // - // Rule 83: unary_expression ::= -- cast_expression + // Rule 82: unary_expression ::= -- cast_expression // - case 83: { action.builder. + case 82: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; } // - // Rule 84: unary_expression ::= & cast_expression + // Rule 83: unary_expression ::= & cast_expression // - case 84: { action.builder. + case 83: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; } // - // Rule 85: unary_expression ::= * cast_expression + // Rule 84: unary_expression ::= * cast_expression // - case 85: { action.builder. + case 84: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; } // - // Rule 86: unary_expression ::= + cast_expression + // Rule 85: unary_expression ::= + cast_expression // - case 86: { action.builder. + case 85: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; } // - // Rule 87: unary_expression ::= - cast_expression + // Rule 86: unary_expression ::= - cast_expression // - case 87: { action.builder. + case 86: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; } // - // Rule 88: unary_expression ::= ~ cast_expression + // Rule 87: unary_expression ::= ~ cast_expression // - case 88: { action.builder. + case 87: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; } // - // Rule 89: unary_expression ::= ! cast_expression + // Rule 88: unary_expression ::= ! cast_expression // - case 89: { action.builder. + case 88: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; } // - // Rule 90: unary_expression ::= sizeof unary_expression + // Rule 89: unary_expression ::= sizeof unary_expression // - case 90: { action.builder. + case 89: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; } // - // Rule 91: new_expression ::= dcolon_opt new new_placement_opt new_type_id new_array_expressions_opt new_initializer_opt + // Rule 90: new_expression ::= dcolon_opt new new_placement_opt new_type_id new_array_expressions_opt new_initializer_opt // - case 91: { action.builder. + case 90: { action.builder. consumeExpressionNew(true); break; } // - // Rule 92: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_array_expressions_opt new_initializer_opt + // Rule 91: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_array_expressions_opt new_initializer_opt // - case 92: { action.builder. + case 91: { action.builder. consumeExpressionNew(false); break; } // - // Rule 94: new_placement_opt ::= $Empty + // Rule 93: new_placement_opt ::= $Empty // - case 94: { action.builder. + case 93: { action.builder. consumeEmpty(); break; } // - // Rule 95: new_type_id ::= type_specifier_seq + // Rule 94: new_type_id ::= type_specifier_seq // - case 95: { action.builder. + case 94: { action.builder. consumeTypeId(false); break; } // - // Rule 96: new_type_id ::= type_specifier_seq new_declarator + // Rule 95: new_type_id ::= type_specifier_seq new_declarator // - case 96: { action.builder. + case 95: { action.builder. consumeTypeId(true); break; } // - // Rule 97: new_declarator ::= new_pointer_operators + // Rule 96: new_declarator ::= new_pointer_operators // - case 97: { action.builder. + case 96: { action.builder. consumeNewDeclarator(); break; } // - // Rule 106: new_initializer_opt ::= $Empty + // Rule 105: new_initializer_opt ::= $Empty // - case 106: { action.builder. + case 105: { action.builder. consumeEmpty(); break; } // - // Rule 107: delete_expression ::= dcolon_opt delete cast_expression + // Rule 106: delete_expression ::= dcolon_opt delete cast_expression // - case 107: { action.builder. + case 106: { action.builder. consumeExpressionDelete(false); break; } // - // Rule 108: delete_expression ::= dcolon_opt delete [ ] cast_expression + // Rule 107: delete_expression ::= dcolon_opt delete [ ] cast_expression // - case 108: { action.builder. + case 107: { action.builder. consumeExpressionDelete(true); break; } // - // Rule 110: cast_expression ::= ( type_id ) cast_expression + // Rule 109: cast_expression ::= ( type_id ) cast_expression // - case 110: { action.builder. + case 109: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_cast); break; } // - // Rule 112: pm_expression ::= pm_expression .* cast_expression + // Rule 111: pm_expression ::= pm_expression .* cast_expression // - case 112: { action.builder. + case 111: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot); break; } // - // Rule 113: pm_expression ::= pm_expression ->* cast_expression + // Rule 112: pm_expression ::= pm_expression ->* cast_expression // - case 113: { action.builder. + case 112: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow); break; } // - // Rule 115: multiplicative_expression ::= multiplicative_expression * pm_expression + // Rule 114: multiplicative_expression ::= multiplicative_expression * pm_expression // - case 115: { action.builder. + case 114: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply); break; } // - // Rule 116: multiplicative_expression ::= multiplicative_expression / pm_expression + // Rule 115: multiplicative_expression ::= multiplicative_expression / pm_expression // - case 116: { action.builder. + case 115: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide); break; } // - // Rule 117: multiplicative_expression ::= multiplicative_expression % pm_expression + // Rule 116: multiplicative_expression ::= multiplicative_expression % pm_expression // - case 117: { action.builder. + case 116: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo); break; } // - // Rule 119: additive_expression ::= additive_expression + multiplicative_expression + // Rule 118: additive_expression ::= additive_expression + multiplicative_expression // - case 119: { action.builder. + case 118: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus); break; } // - // Rule 120: additive_expression ::= additive_expression - multiplicative_expression + // Rule 119: additive_expression ::= additive_expression - multiplicative_expression // - case 120: { action.builder. + case 119: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus); break; } // - // Rule 122: shift_expression ::= shift_expression << additive_expression + // Rule 121: shift_expression ::= shift_expression << additive_expression // - case 122: { action.builder. + case 121: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft); break; } // - // Rule 123: shift_expression ::= shift_expression >> additive_expression + // Rule 122: shift_expression ::= shift_expression >> additive_expression // - case 123: { action.builder. + case 122: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight); break; } // - // Rule 125: relational_expression ::= relational_expression < shift_expression + // Rule 124: relational_expression ::= relational_expression < shift_expression // - case 125: { action.builder. + case 124: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; } // - // Rule 126: relational_expression ::= relational_expression > shift_expression + // Rule 125: relational_expression ::= relational_expression > shift_expression // - case 126: { action.builder. + case 125: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; } // - // Rule 127: relational_expression ::= relational_expression <= shift_expression + // Rule 126: relational_expression ::= relational_expression <= shift_expression // - case 127: { action.builder. + case 126: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; } // - // Rule 128: relational_expression ::= relational_expression >= shift_expression + // Rule 127: relational_expression ::= relational_expression >= shift_expression // - case 128: { action.builder. + case 127: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; } // - // Rule 130: equality_expression ::= equality_expression == relational_expression + // Rule 129: equality_expression ::= equality_expression == relational_expression // - case 130: { action.builder. + case 129: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; } // - // Rule 131: equality_expression ::= equality_expression != relational_expression + // Rule 130: equality_expression ::= equality_expression != relational_expression // - case 131: { action.builder. + case 130: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; } // - // Rule 133: and_expression ::= and_expression & equality_expression + // Rule 132: and_expression ::= and_expression & equality_expression // - case 133: { action.builder. + case 132: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; } // - // Rule 135: exclusive_or_expression ::= exclusive_or_expression ^ and_expression + // Rule 134: exclusive_or_expression ::= exclusive_or_expression ^ and_expression // - case 135: { action.builder. + case 134: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; } // - // Rule 137: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression + // Rule 136: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression // - case 137: { action.builder. + case 136: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; } // - // Rule 139: logical_and_expression ::= logical_and_expression && inclusive_or_expression + // Rule 138: logical_and_expression ::= logical_and_expression && inclusive_or_expression // - case 139: { action.builder. + case 138: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; } // - // Rule 141: logical_or_expression ::= logical_or_expression || logical_and_expression + // Rule 140: logical_or_expression ::= logical_or_expression || logical_and_expression // - case 141: { action.builder. + case 140: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; } // - // Rule 143: conditional_expression ::= logical_or_expression ? expression : assignment_expression + // Rule 142: conditional_expression ::= logical_or_expression ? expression : assignment_expression // - case 143: { action.builder. + case 142: { action.builder. consumeExpressionConditional(); break; } // - // Rule 144: throw_expression ::= throw + // Rule 143: throw_expression ::= throw // - case 144: { action.builder. + case 143: { action.builder. consumeExpressionThrow(false); break; } // - // Rule 145: throw_expression ::= throw assignment_expression + // Rule 144: throw_expression ::= throw assignment_expression // - case 145: { action.builder. + case 144: { action.builder. consumeExpressionThrow(true); break; } // - // Rule 148: assignment_expression ::= logical_or_expression = assignment_expression + // Rule 147: assignment_expression ::= logical_or_expression = assignment_expression // - case 148: { action.builder. + case 147: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; } // - // Rule 149: assignment_expression ::= logical_or_expression *= assignment_expression + // Rule 148: assignment_expression ::= logical_or_expression *= assignment_expression // - case 149: { action.builder. + case 148: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 150: assignment_expression ::= logical_or_expression /= assignment_expression + // Rule 149: assignment_expression ::= logical_or_expression /= assignment_expression // - case 150: { action.builder. + case 149: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; } // - // Rule 151: assignment_expression ::= logical_or_expression %= assignment_expression + // Rule 150: assignment_expression ::= logical_or_expression %= assignment_expression // - case 151: { action.builder. + case 150: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; } // - // Rule 152: assignment_expression ::= logical_or_expression += assignment_expression + // Rule 151: assignment_expression ::= logical_or_expression += assignment_expression // - case 152: { action.builder. + case 151: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; } // - // Rule 153: assignment_expression ::= logical_or_expression -= assignment_expression + // Rule 152: assignment_expression ::= logical_or_expression -= assignment_expression // - case 153: { action.builder. + case 152: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; } // - // Rule 154: assignment_expression ::= logical_or_expression >>= assignment_expression + // Rule 153: assignment_expression ::= logical_or_expression >>= assignment_expression // - case 154: { action.builder. + case 153: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 155: assignment_expression ::= logical_or_expression <<= assignment_expression + // Rule 154: assignment_expression ::= logical_or_expression <<= assignment_expression // - case 155: { action.builder. + case 154: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 156: assignment_expression ::= logical_or_expression &= assignment_expression + // Rule 155: assignment_expression ::= logical_or_expression &= assignment_expression // - case 156: { action.builder. + case 155: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 157: assignment_expression ::= logical_or_expression ^= assignment_expression + // Rule 156: assignment_expression ::= logical_or_expression ^= assignment_expression // - case 157: { action.builder. + case 156: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 158: assignment_expression ::= logical_or_expression |= assignment_expression + // Rule 157: assignment_expression ::= logical_or_expression |= assignment_expression // - case 158: { action.builder. + case 157: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 160: expression ::= ERROR_TOKEN + // Rule 159: expression ::= ERROR_TOKEN // - case 160: { action.builder. + case 159: { action.builder. consumeExpressionProblem(); break; } // - // Rule 161: expression_list ::= expression_list_actual + // Rule 160: expression_list ::= expression_list_actual // - case 161: { action.builder. + case 160: { action.builder. consumeExpressionList(); break; } // - // Rule 165: expression_list_opt ::= $Empty + // Rule 164: expression_list_opt ::= $Empty // - case 165: { action.builder. + case 164: { action.builder. consumeEmpty(); break; } // - // Rule 167: expression_opt ::= $Empty + // Rule 166: expression_opt ::= $Empty // - case 167: { action.builder. + case 166: { action.builder. consumeEmpty(); break; } // - // Rule 170: constant_expression_opt ::= $Empty + // Rule 169: constant_expression_opt ::= $Empty // - case 170: { action.builder. + case 169: { action.builder. consumeEmpty(); break; } // - // Rule 179: statement ::= ERROR_TOKEN + // Rule 178: statement ::= ERROR_TOKEN // - case 179: { action.builder. + case 178: { action.builder. consumeStatementProblem(); break; } // - // Rule 180: labeled_statement ::= identifier : statement + // Rule 179: labeled_statement ::= identifier : statement // - case 180: { action.builder. + case 179: { action.builder. consumeStatementLabeled(); break; } // - // Rule 181: labeled_statement ::= case constant_expression : + // Rule 180: labeled_statement ::= case constant_expression : // - case 181: { action.builder. + case 180: { action.builder. consumeStatementCase(); break; } // - // Rule 182: labeled_statement ::= default : + // Rule 181: labeled_statement ::= default : // - case 182: { action.builder. + case 181: { action.builder. consumeStatementDefault(); break; } // - // Rule 183: expression_statement ::= expression ; + // Rule 182: expression_statement ::= expression ; // - case 183: { action.builder. + case 182: { action.builder. consumeStatementExpression(); break; } // - // Rule 184: expression_statement ::= ; + // Rule 183: expression_statement ::= ; // - case 184: { action.builder. + case 183: { action.builder. consumeStatementNull(); break; } // - // Rule 185: compound_statement ::= { statement_seq } + // Rule 184: compound_statement ::= { statement_seq } // - case 185: { action.builder. + case 184: { action.builder. consumeStatementCompoundStatement(true); break; } // - // Rule 186: compound_statement ::= { } + // Rule 185: compound_statement ::= { } // - case 186: { action.builder. + case 185: { action.builder. consumeStatementCompoundStatement(false); break; } // - // Rule 189: selection_statement ::= if ( condition ) statement + // Rule 188: selection_statement ::= if ( condition ) statement // - case 189: { action.builder. + case 188: { action.builder. consumeStatementIf(false); break; } // - // Rule 190: selection_statement ::= if ( condition ) statement else statement + // Rule 189: selection_statement ::= if ( condition ) statement else statement // - case 190: { action.builder. + case 189: { action.builder. consumeStatementIf(true); break; } // - // Rule 191: selection_statement ::= switch ( condition ) statement + // Rule 190: selection_statement ::= switch ( condition ) statement // - case 191: { action.builder. + case 190: { action.builder. consumeStatementSwitch(); break; } // - // Rule 193: condition ::= type_specifier_seq declarator = assignment_expression + // Rule 192: condition ::= type_specifier_seq declarator = assignment_expression // - case 193: { action.builder. + case 192: { action.builder. consumeConditionDeclaration(); break; } // - // Rule 194: iteration_statement ::= while ( condition ) statement + // Rule 193: iteration_statement ::= while ( condition ) statement // - case 194: { action.builder. + case 193: { action.builder. consumeStatementWhileLoop(); break; } // - // Rule 195: iteration_statement ::= do statement while ( expression ) ; + // Rule 194: iteration_statement ::= do statement while ( expression ) ; // - case 195: { action.builder. + case 194: { action.builder. consumeStatementDoLoop(); break; } // - // Rule 196: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement + // Rule 195: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement + // + case 195: { action.builder. + consumeStatementForLoop(); break; + } + + // + // Rule 196: iteration_statement ::= for ( simple_declaration expression_opt ; expression_opt ) statement // case 196: { action.builder. consumeStatementForLoop(); break; } // - // Rule 197: iteration_statement ::= for ( simple_declaration expression_opt ; expression_opt ) statement + // Rule 197: jump_statement ::= break ; // case 197: { action.builder. - consumeStatementForLoop(); break; - } - - // - // Rule 198: jump_statement ::= break ; - // - case 198: { action.builder. consumeStatementBreak(); break; } // - // Rule 199: jump_statement ::= continue ; + // Rule 198: jump_statement ::= continue ; // - case 199: { action.builder. + case 198: { action.builder. consumeStatementContinue(); break; } // - // Rule 200: jump_statement ::= return expression ; + // Rule 199: jump_statement ::= return expression ; // - case 200: { action.builder. + case 199: { action.builder. consumeStatementReturn(true); break; } // - // Rule 201: jump_statement ::= return ; + // Rule 200: jump_statement ::= return ; // - case 201: { action.builder. + case 200: { action.builder. consumeStatementReturn(false); break; } // - // Rule 202: jump_statement ::= goto identifier_token ; + // Rule 201: jump_statement ::= goto identifier_token ; // - case 202: { action.builder. + case 201: { action.builder. consumeStatementGoto(); break; } // - // Rule 203: declaration_statement ::= block_declaration + // Rule 202: declaration_statement ::= block_declaration + // + case 202: { action.builder. + consumeStatementDeclaration(); break; + } + + // + // Rule 203: declaration_statement ::= function_definition // case 203: { action.builder. consumeStatementDeclaration(); break; } // - // Rule 204: declaration_statement ::= function_definition + // Rule 220: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; // - case 204: { action.builder. - consumeStatementDeclaration(); break; - } - - // - // Rule 221: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; - // - case 221: { action.builder. + case 220: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 222: declaration_specifiers ::= simple_declaration_specifiers + // Rule 221: declaration_specifiers ::= simple_declaration_specifiers // - case 222: { action.builder. + case 221: { action.builder. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 223: declaration_specifiers ::= class_declaration_specifiers + // Rule 222: declaration_specifiers ::= class_declaration_specifiers + // + case 222: { action.builder. + consumeDeclarationSpecifiersComposite(); break; + } + + // + // Rule 223: declaration_specifiers ::= elaborated_declaration_specifiers // case 223: { action.builder. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 224: declaration_specifiers ::= elaborated_declaration_specifiers + // Rule 224: declaration_specifiers ::= enum_declaration_specifiers // case 224: { action.builder. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 225: declaration_specifiers ::= enum_declaration_specifiers + // Rule 225: declaration_specifiers ::= type_name_declaration_specifiers // case 225: { action.builder. - consumeDeclarationSpecifiersComposite(); break; - } - - // - // Rule 226: declaration_specifiers ::= type_name_declaration_specifiers - // - case 226: { action.builder. consumeDeclarationSpecifiersTypeName(); break; } // - // Rule 228: declaration_specifiers_opt ::= $Empty + // Rule 226: declaration_specifiers_opt ::= $Empty // - case 228: { action.builder. + case 226: { action.builder. consumeEmpty(); break; } // - // Rule 232: no_type_declaration_specifier ::= friend + // Rule 231: no_type_declaration_specifier ::= friend + // + case 231: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 232: no_type_declaration_specifier ::= typedef // case 232: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 233: no_type_declaration_specifier ::= typedef + // Rule 260: simple_type_specifier ::= simple_type_specifier_token // - case 233: { action.builder. + case 260: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 262: simple_type_specifier ::= simple_type_specifier_token + // Rule 274: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name // - case 262: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 278: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name - // - case 278: { action.builder. + case 274: { action.builder. consumeQualifiedId(false); break; } // - // Rule 279: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name + // Rule 275: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name // - case 279: { action.builder. + case 275: { action.builder. consumeQualifiedId(false); break; } // - // Rule 280: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name + // Rule 276: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name // - case 280: { action.builder. + case 276: { action.builder. consumeQualifiedId(false); break; } // - // Rule 281: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name + // Rule 277: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name // - case 281: { action.builder. + case 277: { action.builder. consumeQualifiedId(true); break; } // - // Rule 282: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name + // Rule 278: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name // - case 282: { action.builder. + case 278: { action.builder. consumeTypeSpecifierElaborated(false); break; } // - // Rule 283: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name + // Rule 279: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name // - case 283: { action.builder. + case 279: { action.builder. consumeTypeSpecifierElaborated(true); break; } // - // Rule 284: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name + // Rule 280: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name // - case 284: { action.builder. + case 280: { action.builder. consumeTypeSpecifierElaborated(false); break; } // - // Rule 286: enum_specifier ::= enum { enumerator_list_opt } + // Rule 281: enum_specifier ::= enum { enumerator_list_opt } // - case 286: { action.builder. + case 281: { action.builder. consumeTypeSpecifierEnumeration(false); break; } // - // Rule 287: enum_specifier ::= enum identifier_token { enumerator_list_opt } + // Rule 282: enum_specifier ::= enum identifier_token { enumerator_list_opt } // - case 287: { action.builder. + case 282: { action.builder. consumeTypeSpecifierEnumeration(true); break; } // - // Rule 292: enumerator_definition ::= enumerator + // Rule 287: enumerator_definition ::= identifier_token // - case 292: { action.builder. + case 287: { action.builder. consumeEnumerator(false); break; } // - // Rule 293: enumerator_definition ::= enumerator = constant_expression + // Rule 288: enumerator_definition ::= identifier_token = constant_expression // - case 293: { action.builder. + case 288: { action.builder. consumeEnumerator(true); break; } // - // Rule 302: original_namespace_definition ::= namespace identifier_name { declaration_seq_opt } + // Rule 294: original_namespace_definition ::= namespace identifier_name { declaration_seq_opt } // - case 302: { action.builder. + case 294: { action.builder. consumeNamespaceDefinition(true); break; } // - // Rule 303: extension_namespace_definition ::= namespace original_namespace_name { declaration_seq_opt } + // Rule 295: extension_namespace_definition ::= namespace original_namespace_name { declaration_seq_opt } // - case 303: { action.builder. + case 295: { action.builder. consumeNamespaceDefinition(true); break; } // - // Rule 304: unnamed_namespace_definition ::= namespace { declaration_seq_opt } + // Rule 296: unnamed_namespace_definition ::= namespace { declaration_seq_opt } // - case 304: { action.builder. + case 296: { action.builder. consumeNamespaceDefinition(false); break; } // - // Rule 306: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 297: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; // - case 306: { action.builder. + case 297: { action.builder. consumeNamespaceAliasDefinition(); break; } // - // Rule 307: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; + // Rule 298: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; // - case 307: { action.builder. + case 298: { action.builder. consumeUsingDeclaration(); break; } // - // Rule 308: typename_opt ::= typename + // Rule 299: typename_opt ::= typename // - case 308: { action.builder. + case 299: { action.builder. consumePlaceHolder(); break; } // - // Rule 309: typename_opt ::= $Empty + // Rule 300: typename_opt ::= $Empty // - case 309: { action.builder. + case 300: { action.builder. consumeEmpty(); break; } // - // Rule 310: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 301: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; // - case 310: { action.builder. + case 301: { action.builder. consumeUsingDirective(); break; } // - // Rule 311: asm_definition ::= asm ( stringlit ) ; + // Rule 302: asm_definition ::= asm ( stringlit ) ; // - case 311: { action.builder. + case 302: { action.builder. consumeDeclarationASM(); break; } // - // Rule 312: linkage_specification ::= extern stringlit { declaration_seq_opt } + // Rule 303: linkage_specification ::= extern stringlit { declaration_seq_opt } // - case 312: { action.builder. + case 303: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 313: linkage_specification ::= extern stringlit declaration + // Rule 304: linkage_specification ::= extern stringlit declaration // - case 313: { action.builder. + case 304: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 319: init_declarator ::= declarator initializer + // Rule 310: init_declarator ::= declarator initializer // - case 319: { action.builder. + case 310: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 321: declarator ::= ptr_operator_seq direct_declarator + // Rule 312: declarator ::= ptr_operator_seq direct_declarator // - case 321: { action.builder. + case 312: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 323: function_declarator ::= ptr_operator_seq direct_declarator + // Rule 314: function_declarator ::= ptr_operator_seq direct_declarator // - case 323: { action.builder. + case 314: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 327: basic_direct_declarator ::= declarator_id_name + // Rule 318: basic_direct_declarator ::= declarator_id_name // - case 327: { action.builder. + case 318: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 328: basic_direct_declarator ::= ( declarator ) + // Rule 319: basic_direct_declarator ::= ( declarator ) // - case 328: { action.builder. + case 319: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 329: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 320: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 329: { action.builder. + case 320: { action.builder. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 330: array_direct_declarator ::= array_direct_declarator array_modifier + // Rule 321: array_direct_declarator ::= array_direct_declarator array_modifier // - case 330: { action.builder. + case 321: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 331: array_direct_declarator ::= basic_direct_declarator array_modifier + // Rule 322: array_direct_declarator ::= basic_direct_declarator array_modifier // - case 331: { action.builder. + case 322: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 332: array_modifier ::= [ constant_expression ] + // Rule 323: array_modifier ::= [ constant_expression ] // - case 332: { action.builder. + case 323: { action.builder. consumeDirectDeclaratorArrayModifier(true); break; } // - // Rule 333: array_modifier ::= [ ] + // Rule 324: array_modifier ::= [ ] // - case 333: { action.builder. + case 324: { action.builder. consumeDirectDeclaratorArrayModifier(false); break; } // - // Rule 334: ptr_operator ::= * cv_qualifier_seq_opt + // Rule 325: ptr_operator ::= * cv_qualifier_seq_opt // - case 334: { action.builder. + case 325: { action.builder. consumePointer(); break; } // - // Rule 335: ptr_operator ::= & + // Rule 326: ptr_operator ::= & // - case 335: { action.builder. + case 326: { action.builder. consumeReferenceOperator(); break; } // - // Rule 336: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt + // Rule 327: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt // - case 336: { action.builder. + case 327: { action.builder. consumePointerToMember(); break; } // - // Rule 342: cv_qualifier ::= const + // Rule 333: cv_qualifier ::= const // - case 342: { action.builder. + case 333: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 343: cv_qualifier ::= volatile + // Rule 334: cv_qualifier ::= volatile // - case 343: { action.builder. + case 334: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 345: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name + // Rule 336: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name // - case 345: { action.builder. + case 336: { action.builder. consumeQualifiedId(false); break; } // - // Rule 346: type_id ::= type_specifier_seq + // Rule 337: type_id ::= type_specifier_seq // - case 346: { action.builder. + case 337: { action.builder. consumeTypeId(false); break; } // - // Rule 347: type_id ::= type_specifier_seq abstract_declarator + // Rule 338: type_id ::= type_specifier_seq abstract_declarator // - case 347: { action.builder. + case 338: { action.builder. consumeTypeId(true); break; } // - // Rule 350: abstract_declarator ::= ptr_operator_seq + // Rule 341: abstract_declarator ::= ptr_operator_seq // - case 350: { action.builder. + case 341: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 351: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator + // Rule 342: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator // - case 351: { action.builder. + case 342: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 355: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 346: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - case 355: { action.builder. + case 346: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 356: array_direct_abstract_declarator ::= array_modifier + // Rule 347: array_direct_abstract_declarator ::= array_modifier // - case 356: { action.builder. + case 347: { action.builder. consumeDirectDeclaratorArrayDeclarator(false); break; } // - // Rule 357: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // Rule 348: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier // - case 357: { action.builder. + case 348: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 358: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier + // Rule 349: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier // - case 358: { action.builder. + case 349: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 359: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 350: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 359: { action.builder. + case 350: { action.builder. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 360: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 351: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 360: { action.builder. + case 351: { action.builder. consumeDirectDeclaratorFunctionDeclarator(false); break; } // - // Rule 361: parameter_declaration_clause ::= parameter_declaration_list_opt ... + // Rule 352: parameter_declaration_clause ::= parameter_declaration_list_opt ... + // + case 352: { action.builder. + consumePlaceHolder(); break; + } + + // + // Rule 353: parameter_declaration_clause ::= parameter_declaration_list_opt + // + case 353: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 354: parameter_declaration_clause ::= parameter_declaration_list , ... + // + case 354: { action.builder. + consumePlaceHolder(); break; + } + + // + // Rule 360: abstract_declarator_opt ::= $Empty + // + case 360: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 361: parameter_declaration ::= declaration_specifiers parameter_init_declarator // case 361: { action.builder. - consumePlaceHolder(); break; - } - - // - // Rule 362: parameter_declaration_clause ::= parameter_declaration_list_opt - // - case 362: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 363: parameter_declaration_clause ::= parameter_declaration_list , ... - // - case 363: { action.builder. - consumePlaceHolder(); break; - } - - // - // Rule 369: abstract_declarator_opt ::= $Empty - // - case 369: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 370: parameter_declaration ::= declaration_specifiers parameter_init_declarator - // - case 370: { action.builder. consumeParameterDeclaration(); break; } // - // Rule 371: parameter_declaration ::= declaration_specifiers + // Rule 362: parameter_declaration ::= declaration_specifiers // - case 371: { action.builder. + case 362: { action.builder. consumeParameterDeclarationWithoutDeclarator(); break; } // - // Rule 373: parameter_init_declarator ::= declarator = parameter_initializer + // Rule 364: parameter_init_declarator ::= declarator = parameter_initializer // - case 373: { action.builder. + case 364: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 375: parameter_init_declarator ::= abstract_declarator = parameter_initializer + // Rule 366: parameter_init_declarator ::= abstract_declarator = parameter_initializer // - case 375: { action.builder. + case 366: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 376: parameter_init_declarator ::= = parameter_initializer + // Rule 367: parameter_init_declarator ::= = parameter_initializer // - case 376: { action.builder. + case 367: { action.builder. consumeDeclaratorWithInitializer(false); break; } // - // Rule 377: parameter_initializer ::= assignment_expression + // Rule 368: parameter_initializer ::= assignment_expression // - case 377: { action.builder. + case 368: { action.builder. consumeInitializer(); break; } // - // Rule 378: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body + // Rule 369: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body // - case 378: { action.builder. + case 369: { action.builder. consumeFunctionDefinition(false); break; } // - // Rule 379: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq + // Rule 370: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq // - case 379: { action.builder. + case 370: { action.builder. consumeFunctionDefinition(true); break; } // - // Rule 382: initializer ::= ( expression_list ) + // Rule 373: initializer ::= ( expression_list ) // - case 382: { action.builder. + case 373: { action.builder. consumeInitializerConstructor(); break; } // - // Rule 383: initializer_clause ::= assignment_expression + // Rule 374: initializer_clause ::= assignment_expression // - case 383: { action.builder. + case 374: { action.builder. consumeInitializer(); break; } // - // Rule 384: initializer_clause ::= { initializer_list , } + // Rule 375: initializer_clause ::= { initializer_list , } // - case 384: { action.builder. + case 375: { action.builder. consumeInitializerList(); break; } // - // Rule 385: initializer_clause ::= { initializer_list } + // Rule 376: initializer_clause ::= { initializer_list } // - case 385: { action.builder. + case 376: { action.builder. consumeInitializerList(); break; } // - // Rule 386: initializer_clause ::= { } + // Rule 377: initializer_clause ::= { } // - case 386: { action.builder. + case 377: { action.builder. consumeInitializerList(); break; } // - // Rule 391: class_specifier ::= class_head { member_declaration_list_opt } + // Rule 382: class_specifier ::= class_head { member_declaration_list_opt } // - case 391: { action.builder. + case 382: { action.builder. consumeClassSpecifier(); break; } // - // Rule 392: class_head ::= class_keyword identifier_name_opt base_clause_opt + // Rule 383: class_head ::= class_keyword identifier_name_opt base_clause_opt // - case 392: { action.builder. + case 383: { action.builder. consumeClassHead(false); break; } // - // Rule 393: class_head ::= class_keyword template_id_name base_clause_opt + // Rule 384: class_head ::= class_keyword template_id_name base_clause_opt // - case 393: { action.builder. + case 384: { action.builder. consumeClassHead(false); break; } // - // Rule 394: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt + // Rule 385: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt // - case 394: { action.builder. + case 385: { action.builder. consumeClassHead(true); break; } // - // Rule 395: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt + // Rule 386: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt // - case 395: { action.builder. + case 386: { action.builder. consumeClassHead(true); break; } // - // Rule 397: identifier_name_opt ::= $Empty + // Rule 388: identifier_name_opt ::= $Empty // - case 397: { action.builder. + case 388: { action.builder. consumeEmpty(); break; } // - // Rule 401: visibility_label ::= access_specifier_keyword : + // Rule 392: visibility_label ::= access_specifier_keyword : // - case 401: { action.builder. + case 392: { action.builder. consumeVisibilityLabel(); break; } // - // Rule 402: member_declaration ::= declaration_specifiers_opt member_declarator_list ; + // Rule 393: member_declaration ::= declaration_specifiers_opt member_declarator_list ; // - case 402: { action.builder. + case 393: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 403: member_declaration ::= declaration_specifiers_opt ; + // Rule 394: member_declaration ::= declaration_specifiers_opt ; // - case 403: { action.builder. + case 394: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 406: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; + // Rule 397: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; // - case 406: { action.builder. + case 397: { action.builder. consumeMemberDeclarationQualifiedId(); break; } // - // Rule 410: member_declaration ::= ERROR_TOKEN + // Rule 401: member_declaration ::= ERROR_TOKEN // - case 410: { action.builder. + case 401: { action.builder. consumeDeclarationProblem(); break; } // - // Rule 418: member_declarator ::= declarator constant_initializer + // Rule 409: member_declarator ::= declarator constant_initializer // - case 418: { action.builder. + case 409: { action.builder. consumeMemberDeclaratorWithInitializer(); break; } // - // Rule 419: member_declarator ::= bit_field_declarator : constant_expression + // Rule 410: member_declarator ::= bit_field_declarator : constant_expression // - case 419: { action.builder. + case 410: { action.builder. consumeBitField(true); break; } // - // Rule 420: member_declarator ::= : constant_expression + // Rule 411: member_declarator ::= : constant_expression // - case 420: { action.builder. + case 411: { action.builder. consumeBitField(false); break; } // - // Rule 421: bit_field_declarator ::= identifier_name + // Rule 412: bit_field_declarator ::= identifier_name // - case 421: { action.builder. + case 412: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 422: constant_initializer ::= = constant_expression + // Rule 413: constant_initializer ::= = constant_expression // - case 422: { action.builder. + case 413: { action.builder. consumeInitializer(); break; } // - // Rule 428: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 419: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 428: { action.builder. + case 419: { action.builder. consumeBaseSpecifier(false, false); break; } // - // Rule 429: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name + // Rule 420: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name // - case 429: { action.builder. + case 420: { action.builder. consumeBaseSpecifier(true, true); break; } // - // Rule 430: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name + // Rule 421: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name // - case 430: { action.builder. + case 421: { action.builder. consumeBaseSpecifier(true, true); break; } // - // Rule 431: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name + // Rule 422: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name // - case 431: { action.builder. + case 422: { action.builder. consumeBaseSpecifier(true, false); break; } // - // Rule 432: access_specifier_keyword ::= private + // Rule 423: access_specifier_keyword ::= private // - case 432: { action.builder. + case 423: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 433: access_specifier_keyword ::= protected + // Rule 424: access_specifier_keyword ::= protected // - case 433: { action.builder. + case 424: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 434: access_specifier_keyword ::= public + // Rule 425: access_specifier_keyword ::= public // - case 434: { action.builder. + case 425: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 436: access_specifier_keyword_opt ::= $Empty + // Rule 427: access_specifier_keyword_opt ::= $Empty // - case 436: { action.builder. + case 427: { action.builder. consumeEmpty(); break; } // - // Rule 437: conversion_function_id_name ::= operator conversion_type_id + // Rule 428: conversion_function_id_name ::= operator conversion_type_id // - case 437: { action.builder. + case 428: { action.builder. consumeConversionName(); break; } // - // Rule 438: conversion_type_id ::= type_specifier_seq conversion_declarator + // Rule 429: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 438: { action.builder. + case 429: { action.builder. consumeTypeId(true); break; } // - // Rule 439: conversion_type_id ::= type_specifier_seq + // Rule 430: conversion_type_id ::= type_specifier_seq // - case 439: { action.builder. + case 430: { action.builder. consumeTypeId(false); break; } // - // Rule 440: conversion_declarator ::= ptr_operator_seq + // Rule 431: conversion_declarator ::= ptr_operator_seq // - case 440: { action.builder. + case 431: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 446: mem_initializer ::= mem_initializer_name ( expression_list_opt ) + // Rule 437: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 446: { action.builder. + case 437: { action.builder. consumeConstructorChainInitializer(); break; } // - // Rule 447: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 438: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name // - case 447: { action.builder. + case 438: { action.builder. consumeQualifiedId(false); break; } // - // Rule 450: operator_function_id_name ::= operator_id_name < template_argument_list_opt > + // Rule 441: operator_function_id_name ::= operator_id_name < template_argument_list_opt > // - case 450: { action.builder. + case 441: { action.builder. consumeTemplateId(); break; } // - // Rule 451: operator_id_name ::= operator overloadable_operator + // Rule 442: operator_id_name ::= operator overloadable_operator // - case 451: { action.builder. + case 442: { action.builder. consumeOperatorName(); break; } // - // Rule 494: template_declaration ::= export_opt template < template_parameter_list > declaration + // Rule 485: template_declaration ::= export_opt template < template_parameter_list > declaration // - case 494: { action.builder. + case 485: { action.builder. consumeTemplateDeclaration(); break; } // - // Rule 495: export_opt ::= export + // Rule 486: export_opt ::= export // - case 495: { action.builder. + case 486: { action.builder. consumePlaceHolder(); break; } // - // Rule 496: export_opt ::= $Empty + // Rule 487: export_opt ::= $Empty // - case 496: { action.builder. + case 487: { action.builder. consumeEmpty(); break; } // - // Rule 501: type_parameter ::= class identifier_name_opt + // Rule 492: type_parameter ::= class identifier_name_opt // - case 501: { action.builder. + case 492: { action.builder. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 502: type_parameter ::= class identifier_name_opt = type_id + // Rule 493: type_parameter ::= class identifier_name_opt = type_id // - case 502: { action.builder. + case 493: { action.builder. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 503: type_parameter ::= typename identifier_name_opt + // Rule 494: type_parameter ::= typename identifier_name_opt // - case 503: { action.builder. + case 494: { action.builder. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 504: type_parameter ::= typename identifier_name_opt = type_id + // Rule 495: type_parameter ::= typename identifier_name_opt = type_id // - case 504: { action.builder. + case 495: { action.builder. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 505: type_parameter ::= template < template_parameter_list > class identifier_name_opt + // Rule 496: type_parameter ::= template < template_parameter_list > class identifier_name_opt // - case 505: { action.builder. + case 496: { action.builder. consumeTemplatedTypeTemplateParameter(false); break; } // - // Rule 506: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression + // Rule 497: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression // - case 506: { action.builder. + case 497: { action.builder. consumeTemplatedTypeTemplateParameter(true); break; } // - // Rule 507: template_id_name ::= template_identifier < template_argument_list_opt > + // Rule 498: template_id_name ::= template_identifier < template_argument_list_opt > // - case 507: { action.builder. + case 498: { action.builder. consumeTemplateId(); break; } // - // Rule 516: explicit_instantiation ::= template declaration + // Rule 507: explicit_instantiation ::= template declaration // - case 516: { action.builder. + case 507: { action.builder. consumeTemplateExplicitInstantiation(); break; } // - // Rule 517: explicit_specialization ::= template < > declaration + // Rule 508: explicit_specialization ::= template < > declaration // - case 517: { action.builder. + case 508: { action.builder. consumeTemplateExplicitSpecialization(); break; } // - // Rule 518: try_block ::= try compound_statement handler_seq + // Rule 509: try_block ::= try compound_statement handler_seq // - case 518: { action.builder. + case 509: { action.builder. consumeStatementTryBlock(); break; } // - // Rule 521: handler ::= catch ( exception_declaration ) compound_statement + // Rule 512: handler ::= catch ( exception_declaration ) compound_statement // - case 521: { action.builder. + case 512: { action.builder. consumeStatementCatchHandler(false); break; } // - // Rule 522: handler ::= catch ( ... ) compound_statement + // Rule 513: handler ::= catch ( ... ) compound_statement // - case 522: { action.builder. + case 513: { action.builder. consumeStatementCatchHandler(true); break; } // - // Rule 523: exception_declaration ::= type_specifier_seq declarator + // Rule 514: exception_declaration ::= type_specifier_seq declarator // - case 523: { action.builder. + case 514: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 524: exception_declaration ::= type_specifier_seq abstract_declarator + // Rule 515: exception_declaration ::= type_specifier_seq abstract_declarator // - case 524: { action.builder. + case 515: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 525: exception_declaration ::= type_specifier_seq + // Rule 516: exception_declaration ::= type_specifier_seq // - case 525: { action.builder. + case 516: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 533: no_sizeof_type_name_start ::= ERROR_TOKEN + // Rule 524: no_sizeof_type_name_start ::= ERROR_TOKEN // - case 533: { action.builder. + case 524: { action.builder. consumeExpressionProblem(); break; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParserprs.java index dd396326a85..bf5f59c8bb4 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParserprs.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParserprs.java @@ -29,7 +29,7 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0 + 0,0,0,0 }; }; public final static byte isKeyword[] = IsKeyword.isKeyword; @@ -42,515 +42,487 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 1,1,1,1,1,1,1,3,1,1, 1,1,1,1,1,1,2,1,1,0, 1,0,4,2,2,2,3,2,3,2, - 2,1,0,1,1,1,4,4,4,8, - 8,3,3,4,4,3,3,2,2,7, - 7,7,7,4,5,6,3,2,1,1, - 1,2,2,2,2,2,2,2,2,2, - 7,9,3,0,1,2,2,1,2,3, - 4,1,0,3,1,0,3,5,1,4, - 1,3,3,1,3,3,3,1,3,3, - 1,3,3,1,3,3,3,3,1,3, - 3,1,3,1,3,1,3,1,3,1, - 3,1,5,1,2,1,1,3,3,3, - 3,3,3,3,3,3,3,3,1,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,2,2,2,2,2,1,0,1,1, - 1,1,1,1,2,1,2,2,2,1, - 1,2,2,1,2,2,1,2,2,1, - 2,2,1,1,1,1,1,1,1,1, + 2,1,0,1,1,4,4,4,8,8, + 3,3,4,4,3,3,2,2,7,7, + 7,7,4,5,6,3,2,1,1,1, + 2,2,2,2,2,2,2,2,2,7, + 9,3,0,1,2,2,1,2,3,4, + 1,0,3,1,0,3,5,1,4,1, + 3,3,1,3,3,3,1,3,3,1, + 3,3,1,3,3,3,3,1,3,3, + 1,3,1,3,1,3,1,3,1,3, + 1,5,1,2,1,1,3,3,3,3, + 3,3,3,3,3,3,3,1,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, + 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,1,1,1,1,3,4,4, - 5,4,5,4,1,5,6,1,3,1, - 0,1,3,1,1,1,1,1,1,1, - 1,6,6,5,1,7,6,1,0,6, - 5,6,4,1,3,1,0,1,2,1, - 3,1,3,1,1,1,1,3,9,2, - 2,3,2,3,1,5,1,2,2,1, - 0,1,1,1,3,1,2,1,1,2, - 3,1,1,1,3,1,2,2,9,8, - 2,1,3,1,3,1,0,1,0,2, - 1,1,3,1,3,2,1,5,8,1, - 2,3,1,5,4,3,1,3,1,1, - 5,4,4,5,5,1,0,1,1,1, - 2,4,2,2,1,5,1,1,1,1, - 1,2,1,0,1,3,1,2,3,2, - 1,2,2,1,0,1,3,3,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,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,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,-63,0,0,0,0,-2,0, + 1,1,2,2,7,1,0,1,3,1, + 1,2,4,2,4,7,9,5,1,1, + 3,1,0,1,1,1,2,4,4,1, + 2,5,5,3,3,1,4,3,1,0, + 1,3,1,1,-63,0,0,0,0,-2, 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,-356, - 0,0,-65,-230,0,0,0,0,-333,0, - 0,0,0,-66,0,0,0,0,0,0, - 0,-94,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-182,0,0,0,0, - -4,0,0,0,0,0,0,-5,0,0, - -456,0,0,-485,0,0,0,-50,0,0, - 0,0,0,0,0,-17,0,0,0,0, - -6,0,0,0,0,0,0,0,0,-147, - -73,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-311,0,0,0, - -7,0,0,0,0,0,0,-116,0,0, + 0,0,0,0,0,0,0,0,-58,0, + 0,0,0,-353,0,0,0,0,0,0, + -4,0,0,-413,0,0,0,-143,0,0, + 0,0,-123,0,0,0,0,0,0,-93, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-245,-366,0,0, - 0,0,0,-57,0,0,-11,0,0,0, - 0,0,0,-205,-517,0,0,0,0,0, + 0,0,0,-50,0,0,0,0,0,0, + 0,0,0,0,0,-5,-329,0,-20,0, + 0,0,0,-53,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -58,0,-133,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,-174,0, + 0,0,0,-6,0,-135,0,0,0,0, + 0,0,-115,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-416,0,0,0,0,0,0,-114,0, - 0,-235,0,0,-8,0,0,0,0,-225, - 0,0,0,0,0,-146,0,0,0,0, - 0,-53,0,0,0,0,0,-310,0,0, + 0,0,-7,0,0,0,0,0,0,0, + 0,-308,0,0,0,0,-73,0,0,0, + 0,0,0,0,0,0,0,0,0,-175, + 0,0,0,0,-130,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-246,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-40,0,0,0,0,-9,0, + 0,0,0,-8,-128,0,0,0,0,0, + 0,0,0,-9,-11,0,0,-206,0,0, + 0,-10,0,0,-325,0,0,0,0,-12, + -290,0,0,0,0,0,-146,0,0,0, + 0,0,-40,0,0,0,0,-13,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-10,0,0,0,0,0,0, - 0,0,-124,0,0,0,0,0,0,-148, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-12,0,0,-223,0,0, + 0,-14,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-514,0,0,0,0, + 0,0,0,0,0,0,0,0,-16,-222, + 0,-417,0,0,-220,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-421,-383,0,0, - 0,0,0,-119,0,0,-371,0,0,-259, - 0,0,-129,-328,0,0,0,0,0,0, - 0,0,0,0,0,-261,-515,0,0,0, + 0,0,0,-29,-363,0,0,0,0,0, + 0,0,0,0,0,0,0,-351,0,0, + 0,0,-65,0,0,0,0,0,-66,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,-57,0,0,0,0,0, + 0,0,0,0,0,0,-337,0,0,0, + 0,0,0,-145,0,0,0,0,-129,0, + 0,0,0,0,0,0,-255,-136,-17,0, + 0,0,0,0,0,0,0,-226,-522,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -141,0,0,0,0,0,0,0,0,0, - 0,0,-184,0,0,0,0,0,-247,0, - 0,-20,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-525,0,0, + 0,0,-126,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-30,-31,0, + 0,-148,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-3,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-13,0,0, - 0,0,0,0,0,0,0,-242,0,0, - 0,0,-151,0,0,0,0,-229,0,0, - 0,0,0,0,0,-264,-307,0,-14,-3, + 0,-380,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-304,-32,0,0, + -183,0,0,0,0,-181,-33,0,0,0, + 0,-179,-192,0,0,0,0,0,-274,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-185,0,0,0,0,0,-138, - 0,0,0,0,0,-292,0,0,-178,0, - 0,0,0,0,-187,0,0,0,0,0, - -74,0,0,0,0,-340,0,0,0,0, - 0,0,0,-277,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-34,0, + 0,0,0,0,-242,0,0,-140,-150,0, + 0,-310,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-189,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-131,0,0,0,0,0,-16,-313, + 0,0,0,0,0,-138,0,0,0,0, + -256,0,0,0,0,0,0,0,0,0, + 0,-35,0,0,0,0,-311,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-300,0,0,0,0,-289,0, - 0,0,0,0,0,0,0,0,-234,0, - 0,0,0,0,-314,0,0,0,0,-139, + -36,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-453,-37,0,0,-474, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-372,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-182,0, + 0,0,0,0,-42,0,0,0,0,-196, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-400,0,0,0,0,-477, - 0,0,0,0,-54,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-184,0, + 0,0,0,0,-286,0,0,0,0,0, + 0,0,0,-38,-39,0,0,0,-95,0, + 0,0,0,-323,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-258,0,0,0,0,-29,0, - 0,0,0,0,0,0,0,0,-60,0, - 0,0,0,0,-42,0,0,0,0,-61, + 0,0,-141,0,0,0,0,0,-41,0, + 0,0,0,0,0,0,0,0,-55,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,-297,0, - 0,0,0,-30,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-96, - 0,0,0,0,-280,0,0,0,0,0, + 0,0,0,0,0,-186,0,0,0,0, + 0,0,0,0,0,0,0,-56,0,0, + 0,0,0,0,-97,0,0,0,0,-277, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-312,0,0,0,0,-31,-306, + 0,0,0,0,0,0,0,0,-116,0, + 0,0,0,-346,0,0,0,0,0,0, + 0,0,0,0,-59,0,0,-98,0,0, + 0,0,-348,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-97,0,0,0,0,-109, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-348,0, - 0,0,0,-32,0,0,0,0,0,0, - -33,0,0,0,0,0,0,0,0,-98, - 0,0,0,0,-115,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-395,0,0,0,0,-334,-323, - 0,0,0,0,0,-34,0,0,0,0, - 0,0,0,0,-99,0,0,0,0,-132, + 0,-132,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-67,-68,0,0, + -99,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,0, - 0,0,0,-349,-35,0,0,0,0,0, - -192,0,0,0,0,0,0,0,0,-100, - 0,0,0,0,-143,0,0,0,0,0, + -320,0,0,0,0,0,0,0,0,-71, + 0,0,0,-100,0,0,0,0,-109,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-203,0,0,0,0,0,-343, + 0,0,0,0,0,0,0,-281,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-36,0,0,-101,0,0,0,0,-281, + 0,0,0,-110,0,0,-101,0,0,0, + 0,-111,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -282,0,0,0,0,0,-112,0,0,0, + 0,0,0,0,0,-119,-137,0,0,-102, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-332,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-151, + 0,0,-103,0,0,0,0,-152,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-189,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-153,-154,0,0,-104,0,0,0,0, + -155,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,-54,0,0,-156,-324,0,0,-105,0, + 0,0,0,-157,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-289,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-158,-159,0, + 0,-133,0,0,0,0,-261,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-200,0,0,0,0, + 0,-160,0,0,0,0,0,0,0,0, + -213,0,0,0,0,-161,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-202,0,0,0,0,0, + -398,0,0,0,0,0,0,0,0,0, + -258,0,0,-297,-246,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,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-60,0,0,0, + -162,0,0,-307,0,0,0,0,-269,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-303,0,0,0,0,0,0, + 0,0,-322,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-228,0,0,0, + 0,-163,0,0,0,0,0,0,-164,0, + 0,-233,0,0,0,0,-313,0,0,0, + 0,0,-335,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-331,-340,0,0,0,0,0,0,0, + 0,-358,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-205,0,0,0,0, + 0,0,0,0,0,0,0,-165,0,0, + -240,0,0,0,0,-61,-448,0,0,0, + -166,-359,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-224,0,0,0,0, + 0,0,0,0,0,0,0,-167,0,0, + -405,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-225,0,0,0,0,0, + -341,0,0,0,0,0,0,0,0,-247, + 0,0,0,0,-19,0,0,0,0,-306, + -107,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -168,0,0,0,0,0,0,0,0,-94, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-108,-169, + 0,0,0,0,-92,0,0,0,0,-170, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-229,0, + 0,0,0,0,0,0,0,0,-89,0, + 0,0,0,-171,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-254,0,0,0,0,0,-114,0, + -90,0,0,0,0,-172,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-173,0,0,0,0,-91, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-176,0,0,0,0,-52,0, + 0,0,0,-177,0,-267,0,0,0,0, + -62,0,0,-178,-264,0,-149,-211,0,0, + 0,0,-278,-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,0, + 0,-187,0,-84,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-342,0,0,0,0,0,0,0,0, + -349,0,-48,0,0,0,0,-360,0,0, + 0,0,-231,0,0,0,0,0,0,-352, + 0,0,-188,0,0,0,0,0,0,-397, + 0,0,0,-273,0,0,0,0,0,-193, + 0,0,-368,0,0,0,0,-369,0,0, + 0,0,0,0,0,0,-85,0,0,0, + 0,-194,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -197,0,0,0,-86,0,0,0,0,-477, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,-208,0, - 0,0,0,0,-37,0,0,0,0,0, - 0,0,0,0,-38,0,-39,0,0,-102, - 0,0,0,0,-152,0,0,0,0,0, + 0,0,-236,0,0,0,0,0,0,0, + 0,0,0,0,0,-87,0,0,0,0, + -198,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-43, + 0,0,0,0,0,-51,-199,0,-350,-285, + 0,0,0,0,0,-418,0,-381,-218,0, + 0,0,0,0,0,0,-207,-219,0,0, + 0,0,0,-376,0,0,0,0,0,0, + -212,0,-221,-113,-280,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-227,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-41, - 0,-55,0,0,-103,0,0,0,0,-201, + 0,0,0,0,-370,0,-88,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-228,0, - 0,0,0,0,-344,0,0,0,0,0, - 0,0,0,-153,-56,0,-59,0,0,-104, - 0,0,0,0,-199,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-232,0,0,0,0,0,-67, - 0,0,0,0,0,-209,0,0,-326,-68, - 0,-69,0,0,-105,0,0,0,0,-71, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-257,0, - 0,0,0,0,0,0,0,0,0,0, - -72,0,0,-451,-110,0,-231,0,0,-106, - 0,0,0,0,-210,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-276,0,0,0,0,0,0, - 0,0,0,0,0,-434,0,0,-237,-215, - 0,0,0,0,-136,0,0,0,0,-267, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-375,0, - 0,0,0,0,0,0,0,0,0,0, - -111,0,0,-216,0,0,0,0,-244,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-112, - 0,0,0,0,0,0,0,0,-113,0, - -149,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,0,0,0,0,0,0, - 0,0,-120,0,0,-251,-127,-272,-293,0, - 0,-325,0,0,0,0,-268,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-288,0,0,0,0, - 0,0,0,0,0,0,0,-128,0,0, - -338,0,0,0,0,-140,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-420, - 0,0,0,0,0,0,-154,0,0,-354, - 0,0,0,0,-155,-301,0,0,0,0, - 0,-156,-157,-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,-158, - 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,-315,0,0,0, - 0,0,-461,0,0,0,0,0,0,0, - 0,-177,0,0,0,0,-159,-160,-252,-345, - 0,0,0,0,-161,-408,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-162,0,0,0,0, - 0,-163,0,0,-108,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-117,0, - 0,0,0,-164,0,0,0,0,0,0, - -186,0,0,0,0,-357,0,0,-298,-165, - -351,0,-236,0,0,0,0,-95,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-352,0,0,0,0,0,-332,0,0, - 0,0,-93,0,0,0,0,-401,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-52,0,0,0, - 0,0,0,-243,0,0,0,0,-166,0, - 0,-309,-372,0,0,-214,0,0,0,0, - -327,-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, - -373,-167,0,-507,-91,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-43,0,0,0, - 0,0,0,-253,0,0,-19,0,0,0, - 0,-363,0,0,0,0,-379,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-436,0,0,0,0,0,0,0, - -168,0,-169,-170,0,-317,0,0,0,0, - -171,0,0,0,0,0,0,0,0,0, - -92,0,0,0,0,-172,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-173,0,0,0,0,-84, - 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,-85,0,0, - 0,0,-175,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-355,0,0,0,-86,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-176, - 0,0,0,-87,0,0,0,0,-405,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-498,0,0, - 0,-239,0,0,0,0,0,0,0,0, - 0,0,0,0,-88,0,0,0,0,-179, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-180,0, - 0,-181,-195,0,0,0,0,-486,0,0, - -391,0,0,-145,-321,-353,0,-190,0,0, - 0,0,0,0,-329,-331,0,0,-1,0, - 0,0,0,0,-250,0,0,0,0,0, - -191,0,0,-283,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-254,-196, - 0,0,0,0,0,-233,0,0,0,0, - -89,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-346,0,0, - 0,0,0,0,0,0,-197,-368,0,0, - 0,-474,0,0,-286,-360,-200,-380,0,0, - 0,0,0,0,-509,0,0,0,0,0, - 0,0,0,0,0,0,0,-270,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-79,0,0,0,0,-295,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-382,0,0,0, - 0,0,-296,0,0,0,0,-318,0,0, - 0,0,0,0,0,-271,0,-211,-392,0, - 0,0,0,0,0,-302,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-410,-221,0,0,0,0,0,0,0, - -222,-224,0,-80,0,0,0,0,-238,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-390,0,-350, - -240,0,0,0,-367,0,0,0,-248,-418, - 0,0,0,-476,-118,-417,-262,-226,0,-386, - 0,0,0,0,0,0,0,0,0,-249, - 0,0,0,0,-480,0,0,0,-389,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-263,-419,0, - -273,0,0,-406,-423,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-425,-503, - 0,0,-274,0,-278,-279,0,0,0,0, - 0,-446,0,-316,0,0,0,0,0,-374, - 0,0,0,0,-290,0,0,0,-294,0, - 0,0,0,0,0,-499,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-299,-304,-121,0,0,0,0,0, - 0,0,0,-428,0,0,0,0,0,0, - 0,0,0,0,0,0,-49,-305,0,-70, - -384,0,-459,-202,0,0,-322,0,0,0, - -394,-424,-15,-426,-337,0,0,0,0,0, - 0,-508,0,-339,0,0,0,0,0,0, - -443,0,0,-269,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -369,0,0,0,0,0,0,0,-370,0, - -475,0,-123,0,0,0,-341,0,0,-376, - 0,0,0,-378,0,0,0,0,0,0, - 0,0,0,-458,0,0,-430,0,0,0, - 0,0,-122,0,0,0,0,-381,0,-449, - -387,0,0,0,0,0,0,0,0,0, - 0,0,-482,0,0,0,0,0,-447,0, - 0,-453,0,0,0,0,0,0,-388,0, - 0,0,0,0,0,-285,0,0,0,0, - 0,-396,0,0,0,0,0,0,0,0, - 0,-76,-44,0,0,0,0,0,0,0, - 0,0,0,0,-484,0,0,0,0,0, - 0,0,-466,-460,0,0,0,-75,0,-45, - 0,0,0,0,0,-399,-407,-409,0,0, - 0,0,0,-411,0,0,0,0,0,0, - 0,0,0,0,0,-135,0,0,0,-468, - 0,0,0,0,0,0,0,0,0,0, - 0,-455,0,0,-412,-48,0,0,0,0, - 0,0,0,0,-413,0,-275,0,0,0, - 0,-415,-422,0,-427,0,0,0,0,0, - 0,0,0,0,0,0,-287,0,0,0, - 0,0,-429,0,-462,-431,0,0,-471,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, - -432,-81,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-82,0,0,0,0, - -433,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-83, - 0,0,0,0,-435,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-320,0,0,0,0,-473,0, - 0,0,0,0,0,0,-502,-437,-438,-478, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-470,-439,-479,-125,-489,-444,-414,-487, - -488,0,-493,0,0,-448,-457,-398,0,0, - 0,0,0,0,0,0,0,0,0,0, - -464,0,0,0,0,0,-241,0,0,0, - -472,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-440,-62,0,0,0, - 0,0,-500,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-501,0, - -514,-519,-505,0,0,-284,0,0,0,-491, - -506,0,-511,-504,0,0,-490,-137,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-513,0,-522,0,0,-524,-255, - 0,0,0,-516,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-492,0,0, - 0,-521,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-497,0, - 0,0,0,0,-144,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-107,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-518, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-217,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -523,-256,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-526,0,0,0,0,0,-46,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-218,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-21,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-23,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,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,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-26,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,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,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-64,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-77,0,0,0,0, + -298,0,0,-235,-312,0,-237,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -265,0,-295,0,0,0,-377,0,0,0, + 0,0,-506,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-431,0,0, 0,0,0,0,0,0,0,0,-78,0, + 0,0,0,-245,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-259,0,0,-433,0,0,-318,0, + 0,0,-338,0,0,0,-134,-144,0,0, + 0,0,-354,0,0,-227,0,0,0,0, + -299,0,0,0,0,0,0,0,0,0, + 0,0,0,-232,0,0,-504,0,0,0, + 0,0,0,-371,-260,0,-79,0,0,0, + 0,-270,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -271,0,0,0,-234,0,-387,0,0,0, + 0,0,0,0,-118,-483,0,0,-275,-263, + -276,-1,0,-244,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-44,0,0, + 0,0,0,0,-403,0,0,-314,-287,0, + 0,0,0,0,0,-495,0,0,0,0, + 0,0,0,-241,0,0,0,-326,0,0, + 0,-291,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-126,0,0,0,0,0,0,0,0, + 0,-296,0,0,0,0,0,0,0,0, + 0,-248,0,0,0,0,0,0,0,0, + 0,-440,-18,0,-120,0,0,0,0,0, + -425,0,0,0,0,0,0,0,0,0, + 0,0,0,-142,-301,0,0,0,0,-456, + 0,0,-473,-302,0,0,0,0,-472,-328, + 0,0,-249,0,0,-294,0,-319,0,0, + -343,0,0,0,-402,0,0,0,-334,-471, + 0,0,0,0,0,0,-336,0,0,0, + -366,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-134,0,0,0, + 0,0,0,0,0,0,-357,0,-239,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,-389,0,0, + 0,0,0,-250,0,0,-272,0,0,0, + 0,-251,-283,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-367,0,-373,-375, + -365,0,0,0,-292,0,-480,0,0,0, + 0,0,0,-293,-378,-382,-122,0,0,-117, + 0,0,0,0,0,0,0,0,0,0, + 0,-384,0,0,-180,0,0,0,0,0, + 0,-209,0,0,0,0,-315,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-206, + -379,0,0,-496,0,0,0,0,0,0, + -505,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-499,0,0,0,0,0,0, + -385,0,0,-22,0,0,0,0,-393,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-80,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-469,0,-324,0,-385,0,0,0, - -219,0,0,0,0,0,-397,0,-335,0, - 0,0,0,-319,0,0,0,-465,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,-82,0,0,0, + 0,-396,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -317,0,0,0,0,-347,0,0,0,0, + 0,0,0,-284,0,0,0,0,-364,-404, + -406,-121,0,0,0,0,-407,0,-383,-386, + -422,-49,-411,0,0,0,0,0,-420,-230, + 0,0,-408,-409,-410,-421,-127,0,0,0, + 0,0,-412,-415,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-124,-419, + -437,0,0,-416,0,0,0,0,0,0, + 0,0,0,0,0,0,-423,-462,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-347,0, + 0,0,-443,0,-427,0,0,0,0,0, + 0,0,0,0,-487,-444,0,-424,0,0, + 0,0,-388,0,0,-426,0,-428,0,0, + 0,0,0,0,0,0,0,-429,0,-430, + -414,-432,0,0,-15,0,0,0,0,0, + 0,-446,-489,0,0,0,0,0,-45,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-452,0,0,0,0,0,0, + 0,-191,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-434,-435,-436,0,0,0, + 0,0,0,0,0,0,-494,0,0,-309, + -441,0,-455,-445,0,0,-482,0,0,0, + -454,0,0,0,0,0,0,0,0,-450, + 0,-69,-466,-457,0,0,0,0,0,-461, + -501,0,0,-469,-515,0,0,-488,0,0, + -399,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-452,-503,-195,-508,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-238,0, + 0,0,0,0,0,0,0,0,-520,-459, + 0,-491,-74,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-458,0,0,0,0,0, + 0,0,0,0,0,0,-523,0,0,-467, + 0,0,0,0,0,0,0,-468,0,0, + 0,0,0,-476,0,-201,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-454,0,0,0,0, - 0,0,0,0,-198,0,0,0,-393,0, + -500,0,0,0,0,0,0,0,0,0, + 0,0,0,-21,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-23,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-24, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-25,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-26,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-27,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-28,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-64,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-76,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -77,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-131,0,0,0,0,-519,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-203,0,0,0, + 0,-463,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-394, + 0,-465,0,0,0,-470,-484,-252,-449,-75, + 0,-253,0,0,0,-345,0,0,0,-344, + -268,0,0,0,0,0,-485,-210,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,0,0,0,0,0,0,0, + 0,0,0,0,-486,0,0,0,-490,0, + 0,0,-451,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-478,-498,-497, + -106,-511,0,0,0,0,0,0,0,0, + 0,0,-392,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -257,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-266,0,0,0,0,0, + 0,-502,0,0,0,-510,0,0,0,0, + 0,0,0,0,0,-492,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,0,0,0,-516,0,-125,0,0,0, + 0,0,0,-139,0,0,0,0,0,0, + 0,-513,-518,-521,-214,-215,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-321, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-481,0,0, + 0,0,-475,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-47,0,0,0,0,0,0, - -441,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -300,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-316,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-464,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-262,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-330,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-517, + -216,-390,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-356, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-395,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -217,-223,0,0,0,0,0,0,-147,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-495,0, + 0,0,0,-185,0,0,0,0,0,0, + -46,0,0,0,0,0,0,0,0,0, + 0,0,0,-190,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-358,0,0,0,0,0,0,0,0, - 0,0,0,0,-303,0,0,0,0,0, - 0,0,0,0,0,0,0,-467,0,0, + -279,0,0,0,0,0,0,0,-305,0, 0,0,0,0,0,0,0,0,0,0, + -327,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-212,0,0,0,0, + 0,-288,-493,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-333,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,-47,0,0,0,0,0,0,0, + -361,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-362,0,0,0,0,0,0,0, + 0,-374,0,0,0,0,0,0,0,0, + -438,0,0,0,0,0,0,-460,0,0, + 0,0,0,0,0,0,-481,0,0,0, + 0,0,0,0,0,0,0,0,-391,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-439,-442,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-359,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-265,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-130, - 0,0,0,0,0,0,-142,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -150,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,0, - 0,0,0,0,-188,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-193,0,0,0,0,0,0,0, - 0,-207,0,0,0,0,0,0,0,0, - -282,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-403,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-308,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-330,0,0,0,0,0,0,-336,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-342, - 0,0,0,0,0,0,-364,0,0,0, - 0,0,0,-365,0,0,0,0,0,0, - -377,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-463,0,0,0,0,0,0,-483,0, - 0,0,0,0,0,-183,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,0,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,-213,0,0, - 0,0,0,0,-260,0,0,0,0,-402, - 0,0,0,0,0,0,-404,-450,0,0, - 0,0,0,-18,-442,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-445,-494,-512,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-520,0,-220,0,0,0,0,0, - 0,0,0,0,0,0,-291,0,0,0, - 0,0,-496,0,0,0,0,0,0,0, + 0,0,0,-204,0,0,0,0,0,-400, + 0,0,0,-401,0,0,0,0,0,-447, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, @@ -559,7 +531,12 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0 + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,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; @@ -569,565 +546,542 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface BaseAction { public final static char baseAction[] = { - 175,5,137,81,81,36,36,67,67,40, - 40,194,194,195,195,196,196,1,1,16, + 170,5,131,78,78,36,36,64,64,40, + 40,189,189,190,190,191,191,1,1,16, 16,16,16,16,16,16,16,17,17,17, - 15,11,11,9,9,9,9,9,2,68, - 68,6,6,12,12,12,12,47,47,138, - 138,139,57,57,46,46,18,18,18,18, + 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, 18,18,18,18,18,18,18,18,18,18, - 18,18,18,18,18,140,140,140,119,19, + 18,18,18,18,134,134,134,114,19,19, 19,19,19,19,19,19,19,19,19,19, - 19,20,20,176,176,177,177,178,143,143, - 144,144,141,141,145,142,142,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,34,34,35,35, - 37,37,38,38,44,44,43,43,43,43, - 43,43,43,43,43,43,43,43,43,39, - 39,29,146,146,104,104,107,107,97,197, - 197,72,72,72,72,72,72,72,72,72, - 73,73,73,74,74,59,59,179,179,75, - 75,75,120,120,76,76,76,76,77,77, - 77,77,77,78,78,82,82,82,82,82, - 82,82,53,53,53,53,53,110,110,111, - 111,51,24,24,24,24,24,48,48,91, - 91,91,91,91,153,153,148,148,148,148, - 148,149,149,149,150,150,150,151,151,151, - 152,152,152,92,92,92,92,92,93,93, - 93,98,13,14,14,14,14,14,14,14, - 14,14,14,14,96,96,96,124,124,124, - 124,124,122,122,122,99,123,123,155,155, - 154,154,126,126,127,42,42,41,86,86, - 87,87,89,90,88,45,55,50,156,156, - 56,54,85,85,157,157,147,147,128,128, - 80,80,158,158,65,65,65,61,61,60, - 66,66,70,70,58,58,58,94,94,106, - 105,105,63,63,62,62,64,64,52,108, - 108,108,100,100,100,101,102,102,102,103, - 103,112,112,112,114,114,113,113,198,198, - 95,95,181,181,181,181,181,130,49,49, - 160,180,180,131,131,131,131,182,182,30, - 30,121,132,132,132,132,115,115,125,125, - 125,162,163,163,163,163,163,163,163,163, - 163,185,185,183,183,184,184,164,164,164, - 164,165,186,117,116,116,187,187,166,166, - 166,166,109,109,109,188,188,10,189,189, - 190,167,159,159,168,168,169,170,170,7, - 7,8,172,172,172,172,172,172,172,172, - 172,172,172,172,172,172,172,172,172,172, - 172,172,172,172,172,172,172,172,172,172, - 172,172,172,172,172,172,172,172,172,172, - 172,172,172,172,69,71,71,173,173,133, - 133,134,134,134,134,134,134,3,4,174, - 174,171,171,135,135,135,83,84,79,161, - 161,118,118,191,191,191,136,136,129,129, - 192,192,175,175,1430,2037,1851,1820,1119,1155, - 4677,34,1229,31,35,30,32,2086,262,29, - 27,56,1349,109,80,81,111,1394,1552,1484, - 1439,1536,1491,2289,274,1632,1575,1675,1665,1677, - 2306,1720,146,2913,2502,38,282,162,147,1046, - 38,1088,36,1119,1442,4839,34,1229,31,35, - 344,32,3529,38,1088,36,1119,231,2487,34, - 1229,31,35,30,32,925,262,29,27,56, - 1349,109,80,81,111,1394,2141,1484,1439,1536, - 1491,1223,4976,1632,2523,234,229,230,1285,380, - 277,1288,276,275,686,1810,297,338,83,325, - 1640,327,2858,688,323,1415,1008,38,1767,46, - 1119,601,806,45,1229,241,244,247,250,3243, - 1843,3182,38,1088,36,1119,2033,4701,34,1229, - 31,35,63,32,338,295,3643,686,294,296, - 628,1517,2995,964,3115,3213,3556,4172,2449,38, - 1088,36,1119,2387,2487,34,1229,31,35,2719, - 32,925,262,29,27,56,1349,109,80,81, - 111,1394,348,1484,1439,1536,1491,3222,1873,1632, - 1575,1675,1665,1677,83,1720,146,60,4586,753, - 378,513,147,3376,2209,2851,38,1088,36,1119, - 3617,5038,34,1229,31,35,30,32,438,3745, - 506,3281,514,2449,38,1088,36,1119,2387,2487, - 34,1229,31,35,2719,32,925,262,29,27, - 56,1349,109,80,81,111,1394,348,1484,1439, - 1536,1491,686,3072,1632,1575,1675,1665,1677,1808, - 1720,146,2502,38,280,2072,513,147,47,2918, - 1518,67,806,289,3041,3617,2904,38,1088,36, - 1119,319,863,34,1229,43,35,514,3529,38, - 1088,36,1119,509,2487,34,1229,31,35,30, - 32,925,262,29,27,56,1349,109,80,81, - 111,1394,1029,1484,1439,1536,1491,360,4976,1632, - 1575,1675,1665,1677,528,2837,168,2212,1259,2700, - 3387,3085,2722,1344,2934,38,1088,36,1119,2146, - 2487,34,1229,31,35,30,32,925,262,29, - 27,56,1349,109,80,81,111,1394,509,1484, - 1439,1536,1491,493,2446,1632,1575,1675,1665,1677, - 1156,1720,146,1851,2761,334,340,145,147,4753, - 1923,38,1088,36,1119,293,5038,34,1229,31, - 35,65,32,451,2827,1926,1159,2722,2978,38, - 1088,36,1119,2387,2487,34,1229,31,35,2719, - 32,925,262,29,27,56,1349,109,80,81, - 111,1394,348,1484,1439,1536,1491,2306,1873,1632, - 1575,1675,1665,1677,940,1720,146,1423,38,396, - 2201,513,147,60,2904,38,1088,36,1119,4983, - 3617,34,1229,2342,35,97,944,2788,38,1088, - 36,1119,514,2487,34,1229,31,35,30,32, - 925,262,29,27,56,1349,109,80,81,111, - 1394,60,1484,1439,1536,1491,3250,5031,1632,1575, - 1675,1665,1677,83,1720,146,404,231,800,3327, - 383,147,3488,38,1088,36,1119,391,2487,34, - 1229,31,35,30,32,925,262,29,27,56, - 1349,90,80,81,386,243,229,230,2861,38, - 1088,36,1119,510,2487,34,1229,31,35,30, - 32,925,262,29,27,56,1349,109,80,81, - 111,1394,3251,1484,1439,1536,1491,359,2931,1632, - 1575,1675,1665,1677,528,1720,146,4586,3319,38, - 280,383,147,1923,38,1088,36,1119,1806,5038, - 34,1229,31,35,64,32,1802,1034,387,3299, - 3125,38,1088,36,1119,384,2487,34,1229,31, - 35,30,32,925,262,29,27,56,1349,109, - 80,81,111,1394,83,1484,1439,1536,1491,2998, - 1812,1632,1575,1675,1665,1677,2493,1720,146,686, - 38,2951,4976,162,147,83,3407,49,2918,3676, - 1108,3296,38,1088,36,1119,3647,4701,34,1229, - 31,35,62,32,3125,38,1088,36,1119,388, - 2487,34,1229,31,35,30,32,925,262,29, - 27,56,1349,109,80,81,111,1394,1203,1484, - 1439,1536,1491,1857,1156,1632,1575,1675,1665,1677, - 357,1720,146,863,392,424,435,377,147,3441, - 3125,38,1088,36,1119,1159,2487,34,1229,31, - 35,30,32,925,262,29,27,56,1349,109, - 80,81,111,1394,60,1484,1439,1536,1491,3439, - 4832,1632,1575,1675,1665,1677,628,1720,146,686, - 38,284,1254,377,147,3125,38,1088,36,1119, - 1742,2487,34,1229,31,35,30,32,925,262, - 29,27,56,1349,109,80,81,111,1394,99, - 1484,1439,1536,1491,455,1755,1632,1575,1675,1665, - 1677,66,1720,146,376,3113,3451,3481,377,147, - 3063,38,1088,36,1119,2132,2487,34,1229,31, - 35,30,32,925,262,29,27,56,1349,109, - 80,81,111,1394,1518,1484,1439,1536,1491,3105, - 358,1632,1575,1675,1665,1677,3416,1720,146,2132, - 375,492,418,383,147,3125,38,1088,36,1119, - 2132,2487,34,1229,31,35,30,32,925,262, - 29,27,56,1349,109,80,81,111,1394,1518, - 1484,1439,1536,1491,1521,4197,1632,1575,1675,1665, - 1677,91,1720,146,105,373,28,1344,163,147, - 3125,38,1088,36,1119,3616,2487,34,1229,31, - 35,30,32,925,262,29,27,56,1349,109, - 80,81,111,1394,1518,1484,1439,1536,1491,412, - 3309,1632,1575,1675,1665,1677,4890,1720,146,339, - 340,381,1344,158,147,3125,38,1088,36,1119, - 2132,2487,34,1229,31,35,30,32,925,262, - 29,27,56,1349,109,80,81,111,1394,1518, - 1484,1439,1536,1491,158,330,1632,1575,1675,1665, - 1677,3110,1720,146,336,340,74,1344,157,147, - 3125,38,1088,36,1119,2132,2487,34,1229,31, - 35,30,32,925,262,29,27,56,1349,109, - 80,81,111,1394,1518,1484,1439,1536,1491,3290, - 3222,1632,1575,1675,1665,1677,159,1720,146,2818, - 340,59,1344,156,147,3125,38,1088,36,1119, - 863,2487,34,1229,31,35,30,32,925,262, - 29,27,56,1349,109,80,81,111,1394,402, - 1484,1439,1536,1491,3439,152,1632,1575,1675,1665, - 1677,83,1720,146,2828,340,2786,1344,155,147, - 3125,38,1088,36,1119,863,2487,34,1229,31, - 35,30,32,925,262,29,27,56,1349,109, - 80,81,111,1394,83,1484,1439,1536,1491,3587, - 60,1632,1575,1675,1665,1677,4897,1720,146,3059, - 340,454,592,154,147,3125,38,1088,36,1119, - 1825,2487,34,1229,31,35,30,32,925,262, - 29,27,56,1349,109,80,81,111,1394,83, - 1484,1439,1536,1491,717,236,1632,1575,1675,1665, - 1677,1574,1720,146,3085,424,4230,510,153,147, - 3125,38,1088,36,1119,2132,2487,34,1229,31, - 35,30,32,925,262,29,27,56,1349,109, - 80,81,111,1394,83,1484,1439,1536,1491,1910, - 331,1632,1575,1675,1665,1677,92,1720,146,105, - 1538,58,1727,152,147,3125,38,1088,36,1119, - 2132,2487,34,1229,31,35,30,32,925,262, - 29,27,56,1349,109,80,81,111,1394,3654, - 1484,1439,1536,1491,2047,60,1632,1575,1675,1665, - 1677,4904,1720,146,863,1729,355,3582,151,147, - 3125,38,1088,36,1119,863,2487,34,1229,31, - 35,30,32,925,262,29,27,56,1349,109, - 80,81,111,1394,83,1484,1439,1536,1491,2916, - 324,1632,1575,1675,1665,1677,2198,1720,146,863, - 1489,842,500,150,147,3125,38,1088,36,1119, - 1492,2487,34,1229,31,35,30,32,925,262, - 29,27,56,1349,109,80,81,111,1394,83, - 1484,1439,1536,1491,1389,57,1632,1575,1675,1665, - 1677,1610,1720,146,1873,171,332,1806,149,147, - 3125,38,1088,36,1119,2132,2487,34,1229,31, - 35,30,32,925,262,29,27,56,1349,109, - 80,81,111,1394,83,1484,1439,1536,1491,1434, - 100,1632,1575,1675,1665,1677,60,1720,146,2132, - 3310,93,4962,148,147,3022,38,1088,36,1119, - 1806,2487,34,1229,31,35,30,32,925,262, - 29,27,56,1349,109,80,81,111,1394,3190, - 1484,1439,1536,1491,2978,1884,1632,1575,1675,1665, - 1677,699,2837,168,3125,38,1088,36,1119,2132, - 2487,34,1229,31,35,30,32,925,262,29, - 27,56,1349,109,80,81,111,1394,806,1484, - 1439,1536,1491,393,424,1632,1575,1675,1665,1677, - 787,1720,146,329,96,2066,333,143,147,1675, - 528,686,38,2078,390,1119,186,3446,38,1088, - 36,1119,1775,2487,34,1229,31,35,30,32, - 925,262,29,27,56,1349,109,80,81,111, - 1394,37,1484,1439,1536,1491,395,424,1632,1575, - 1675,1665,1677,1479,1720,146,2132,969,2201,1006, - 193,147,3529,38,1088,36,1119,1806,2487,34, - 1229,31,35,30,32,925,262,29,27,56, - 1349,109,80,81,111,1394,83,1484,1439,1536, - 1491,1530,73,1632,1575,1675,1665,1677,3625,2837, - 168,3529,38,1088,36,1119,2925,2487,34,1229, - 31,35,30,32,925,262,29,27,56,1349, - 109,80,81,111,1394,286,1484,1439,1536,1491, - 686,3566,1632,1575,1675,1665,1677,246,2837,168, - 2904,38,1088,36,1119,334,514,34,1229,2441, - 35,2348,1794,2831,3529,38,1088,36,1119,2311, - 2487,34,1229,31,35,30,32,925,262,29, - 27,56,1349,109,80,81,111,1394,75,1484, - 1439,1536,1491,394,424,1632,1575,1675,1665,1677, - 3109,2837,168,3529,38,1088,36,1119,420,2487, - 34,1229,31,35,30,32,925,262,29,27, - 56,1349,109,80,81,111,1394,83,1484,1439, - 1536,1491,4309,60,1632,1575,1675,1665,1677,4969, - 2837,168,686,38,508,2943,1119,1550,3112,2132, - 686,38,2078,390,1119,3242,3570,38,1088,36, - 1119,419,2487,34,1229,31,35,30,32,925, - 262,29,27,56,1349,109,80,81,111,1394, - 428,1484,1439,1536,1491,72,3348,1632,1575,1675, - 1665,1677,1676,2837,168,3529,38,1088,36,1119, - 422,2487,34,1229,31,35,30,32,925,262, - 29,27,56,1349,109,80,81,111,1394,1029, - 1484,1439,1536,1491,1760,4976,1632,1575,1675,1665, - 2546,686,38,1749,1704,1119,70,38,448,1442, - 680,863,4911,686,38,508,279,1119,3529,38, - 1088,36,1119,3554,2487,34,1229,31,35,30, - 32,925,262,29,27,56,1349,109,80,81, - 111,1394,3322,1484,1439,1536,1491,337,3644,1632, - 1575,1675,2524,3529,38,1088,36,1119,3111,2487, - 34,1229,31,35,30,32,925,262,29,27, - 56,1349,109,80,81,111,1394,974,1484,1439, - 1536,1491,406,616,1632,1575,2521,3611,2037,2078, - 390,1119,101,4670,1219,38,508,279,1119,3224, - 236,262,2201,1423,38,396,511,2037,2078,390, - 1119,1006,3529,38,1088,36,1119,274,2487,34, - 1229,31,35,30,32,925,262,29,27,56, - 1349,109,80,81,111,1394,274,1484,1439,1536, - 1491,3322,3245,2310,2306,3529,38,1088,36,1119, - 231,2487,34,1229,31,35,30,32,925,262, - 29,27,56,1349,109,80,81,111,1394,287, - 1484,1439,1536,2399,441,3220,3224,2261,234,229, - 230,307,1120,277,2132,276,275,1757,1810,1812, - 390,1119,686,38,2078,390,1119,686,38,2078, - 390,1119,2989,522,276,275,159,570,241,244, - 247,250,3243,226,1254,442,1460,54,3279,2033, - 71,1139,431,1846,335,77,3621,430,295,55, - 76,963,296,1800,584,2995,964,3115,3213,3556, - 4172,3529,38,1088,36,1119,852,2487,34,1229, - 31,35,30,32,925,262,29,27,56,1349, - 109,80,81,111,1394,3195,1484,1439,1536,2442, - 3529,38,1088,36,1119,3333,2487,34,1229,31, - 35,30,32,925,262,29,27,56,1349,109, - 80,81,111,1394,806,1484,1439,2217,3529,38, - 1088,36,1119,3343,2487,34,1229,31,35,30, - 32,925,262,29,27,56,1349,109,80,81, - 111,1394,3644,1484,1439,2218,3529,38,1088,36, - 1119,520,2487,34,1229,31,35,30,32,925, - 262,29,27,56,1349,109,80,81,111,1394, - 3354,1484,1439,2225,3529,38,1088,36,1119,138, - 2487,34,1229,31,35,30,32,925,262,29, - 27,56,1349,109,80,81,111,1394,1306,1484, - 1439,2256,1507,38,1088,36,1119,3646,4771,34, - 1229,31,35,344,32,3529,38,1088,36,1119, - 1824,2487,34,1229,31,35,30,32,925,262, - 29,27,56,1349,109,80,81,111,1394,986, - 1484,2262,1499,686,2037,2078,390,1119,1423,38, - 396,598,38,448,83,83,3746,4911,1768,1120, - 1479,2387,325,1640,327,83,83,320,1415,2214, - 2736,2622,356,274,1120,1219,38,508,3089,1119, - 2682,2259,3066,1865,1915,38,1088,36,1119,4274, - 4771,34,1229,31,35,344,32,519,159,2132, - 2447,3080,349,1280,1150,354,1086,294,532,442, - 3065,3529,38,1088,36,1119,520,2487,34,1229, - 31,35,30,32,925,262,29,27,56,1349, - 109,80,81,111,1394,70,1484,2294,83,278, - 2513,276,275,718,325,1640,327,2139,83,320, - 1415,500,138,958,356,2132,1635,314,686,38, - 2078,390,1119,3651,2908,2133,38,1088,36,1119, - 3646,4771,34,1229,31,35,344,32,686,38, - 508,283,1119,370,349,1280,1150,354,429,497, - 499,2735,1730,3529,38,1088,36,1119,2132,2487, - 34,1229,31,35,30,32,925,262,29,27, - 56,1349,109,80,81,111,1394,83,2117,445, - 3220,3224,1524,2132,806,325,1640,327,2132,3201, - 320,1415,288,3041,61,356,1086,294,1407,686, - 38,2078,390,1119,539,523,1541,38,3155,36, - 1119,4269,4839,34,1229,31,35,344,32,60, - 2038,3063,3322,3361,328,349,1280,1150,354,447, - 519,3363,862,524,3529,38,1088,36,1119,1559, - 2487,34,1229,31,35,30,32,925,262,29, - 27,56,1349,109,80,81,111,1394,177,2125, - 2132,3171,183,534,337,2132,325,1640,327,1535, - 3322,320,1415,2678,83,3196,1934,2130,1731,1120, - 83,1120,227,2387,5045,5050,1176,159,238,262, - 686,2037,2078,390,1119,2201,104,2942,184,83, - 579,2897,227,3623,2659,159,3568,204,215,212, - 199,203,213,214,216,3269,201,173,3185,3322, - 274,2832,288,3041,1,2132,4648,986,407,534, - 187,171,172,174,175,176,177,178,231,83, - 686,1810,297,3193,1854,2846,3614,408,227,3038, - 2402,3063,3322,159,686,2037,2078,390,1119,198, - 2306,446,304,2942,184,3617,239,229,230,1615, - 415,3164,3568,204,215,212,2201,203,213,214, - 216,295,3684,173,274,296,78,2997,276,275, - 1529,185,202,3682,3642,1472,188,171,172,174, - 175,176,177,178,1656,38,1088,36,1119,4269, - 4839,34,1229,31,35,344,32,1653,3337,380, - 2308,3746,1120,3767,1666,1120,2387,3643,2387,2387, - 4976,3365,3637,3167,2353,2859,2387,3044,2387,4324, - 409,411,2306,312,3648,2682,164,227,2682,159, - 345,1090,276,275,3188,348,534,348,231,1370, - 4819,970,337,4720,325,1640,327,527,526,320, - 1415,3568,206,215,212,227,205,213,214,216, - 159,1287,337,3617,631,558,246,229,230,3686, - 166,3782,207,1847,3038,530,2387,3188,579,3419, - 3708,521,4253,4819,3653,217,208,209,210,211, - 298,299,300,301,2132,227,500,83,4385,364, - 3019,1505,3143,950,1810,2738,1208,1119,3657,4735, - 83,3744,314,4428,3015,2832,1899,2959,2981,3568, - 206,215,212,3870,205,213,214,216,2387,3322, - 3555,3372,83,54,498,499,231,3211,3553,3748, - 207,3567,3038,1440,295,55,2025,227,296,1800, - 2301,2387,50,217,208,209,210,211,298,299, - 300,301,2355,83,249,229,230,1120,2387,200, - 2682,3568,206,215,212,3885,205,213,214,216, - 2387,4428,3096,2132,83,451,1440,348,1653,3263, - 83,159,207,1120,3038,2387,3731,3737,3740,227, - 426,1764,437,3152,3749,217,208,209,210,211, - 298,299,300,301,348,3617,1029,164,1165,3657, - 2132,3138,4976,3568,206,215,212,1855,205,213, - 214,216,3322,4428,3537,3750,686,1810,1812,390, - 1119,365,3617,427,207,3751,3038,686,38,508, - 281,1119,3756,3638,1941,2850,3698,217,208,209, - 210,211,298,299,300,301,54,686,38,508, - 3147,1119,221,666,337,83,2400,295,55,83, - 3315,296,1800,789,4519,4428,3654,3529,38,1851, - 1820,1119,1685,2487,34,1229,31,35,30,32, - 925,262,29,27,56,1349,109,80,81,88, - 4385,3762,3529,38,1088,36,1119,37,2487,34, - 1229,31,35,30,32,925,262,29,27,56, - 1349,109,80,81,111,2132,3529,38,1088,36, - 1119,2598,2487,34,1229,31,35,30,32,925, - 262,29,27,56,1349,109,80,81,111,2133, - 3529,38,1088,36,1119,2854,2487,34,1229,31, - 35,30,32,925,262,29,27,56,1349,109, - 80,81,111,2170,1625,38,1088,36,1119,2132, - 4839,34,1229,31,35,344,32,2201,3758,89, - 1689,38,1088,36,1119,4269,4771,34,1229,31, - 35,344,32,3322,3764,3322,2786,3640,1697,265, - 2132,2132,2845,3322,534,3739,3765,3781,1906,38, - 1088,36,1119,3124,4771,34,1229,31,35,344, - 32,1796,338,227,325,1640,327,2835,159,321, - 1415,3793,2387,5096,356,311,2444,3162,2942,184, - 325,1640,327,5097,303,320,1415,3568,204,215, - 212,2682,203,213,214,216,353,2845,173,231, - 631,534,3356,2132,351,1280,1150,354,322,3114, - 327,3558,171,172,174,175,176,177,178,83, - 227,2132,2132,3322,987,159,1029,252,229,230, - 3777,3792,4976,1353,2201,2942,184,441,1473,382, - 5588,5588,534,3144,3568,204,215,212,315,203, - 213,214,216,5588,3322,173,3639,3702,3821,2132, - 1653,227,364,310,3322,1120,159,356,180,171, - 172,174,175,176,177,178,2942,184,529,2835, - 2959,2981,3322,534,337,3568,204,215,212,164, - 203,213,214,216,5113,3862,173,349,1280,1150, - 354,302,227,5588,306,347,2126,159,356,191, - 171,172,174,175,176,177,178,2942,184,617, - 3524,5588,195,385,534,2926,3568,204,215,212, - 2387,203,213,214,216,5588,5588,173,349,1280, - 1150,354,2402,227,5588,5588,1730,1120,159,348, - 3653,171,172,174,175,176,177,178,2942,184, - 705,5588,5588,5588,2878,534,5588,3568,204,215, - 212,159,203,213,214,216,5588,1806,173,5588, - 5588,2531,5588,2506,227,5588,5588,5588,1120,159, - 5588,194,171,172,174,175,176,177,178,2942, - 184,793,1653,5588,5588,5588,534,1120,3568,204, - 215,212,159,203,213,214,216,5588,5588,173, - 5588,5588,2036,5588,5588,227,5588,5588,5588,5588, - 159,164,190,171,172,174,175,176,177,178, - 2942,184,881,5588,5588,5588,5588,534,83,3568, - 204,215,212,2387,203,213,214,216,5588,5588, - 173,5588,5588,5588,5588,2553,227,5588,5588,5588, - 1120,159,348,197,171,172,174,175,176,177, - 178,2942,184,5588,5588,5588,5588,5588,5588,5588, - 3568,204,215,212,159,203,213,214,216,5588, - 3617,173,1659,5588,2219,5588,2903,5588,5588,5588, - 5588,5588,1980,5588,196,171,172,174,175,176, - 177,178,3529,38,1088,36,1119,5588,2487,34, - 1229,31,35,30,32,925,262,29,27,56, - 1349,109,80,81,89,3529,38,1088,36,1119, - 5588,2487,34,1229,31,35,30,32,925,262, - 29,27,56,1349,109,80,81,87,3529,38, - 1088,36,1119,5588,2487,34,1229,31,35,30, - 32,925,262,29,27,56,1349,109,80,81, - 86,3529,38,1088,36,1119,5588,2487,34,1229, - 31,35,30,32,925,262,29,27,56,1349, - 109,80,81,85,3529,38,1088,36,1119,5588, - 2487,34,1229,31,35,30,32,925,262,29, - 27,56,1349,109,80,81,84,3529,38,1088, - 36,1119,5588,2487,34,1229,31,35,30,32, - 925,262,29,27,56,1349,109,80,81,83, - 3529,38,1088,36,1119,5588,2487,34,1229,31, - 35,30,32,925,262,29,27,56,1349,109, - 80,81,82,3395,38,1088,36,1119,5588,2487, - 34,1229,31,35,30,32,925,262,29,27, - 56,1349,109,80,81,107,3529,38,1088,36, - 1119,5588,2487,34,1229,31,35,30,32,925, - 262,29,27,56,1349,109,80,81,113,3529, - 38,1088,36,1119,5588,2487,34,1229,31,35, - 30,32,925,262,29,27,56,1349,109,80, - 81,112,3672,2037,2078,390,1119,5588,4670,5588, - 5588,5588,5588,5588,5588,237,262,5588,5588,5588, - 5588,5588,5588,5588,5588,5588,5588,3529,38,1088, - 36,1119,274,2487,34,1229,31,35,30,32, - 925,262,29,27,56,1349,109,80,81,110, - 5588,5588,5588,5588,5588,5588,5588,5588,5588,5588, - 3529,38,1088,36,1119,231,2487,34,1229,31, - 35,30,32,925,262,29,27,56,1349,109, - 80,81,108,1981,5588,1653,5588,3900,1120,5588, - 1120,2600,2387,235,229,230,1120,3698,277,1029, - 276,275,2387,5588,1666,4976,5588,5588,2550,2387, - 4976,227,159,2387,164,5588,5588,5588,5588,5588, - 159,227,166,242,245,248,251,3243,2682,5588, - 2484,5588,348,5588,2033,3568,206,215,212,2835, - 205,213,214,216,2387,3568,206,215,212,5588, - 205,213,214,216,3969,5588,207,337,3038,2387, - 3557,5588,337,2682,5588,5588,207,5588,3038,494, - 208,209,210,211,298,299,300,301,227,516, - 208,209,210,211,298,299,300,301,5588,2980, - 3563,5588,5588,4633,5588,5588,5588,5588,3524,364, - 5588,5588,3568,206,215,212,3984,205,213,214, - 216,2387,5588,5588,5588,1571,1899,2959,2981,1653, - 5588,4976,5588,207,1120,3038,5588,5588,5588,5588, - 227,5588,5588,5588,364,5588,313,208,209,210, - 211,298,299,300,301,5588,5588,5588,164,5588, - 5588,2985,2959,2981,3568,206,215,212,3797,205, - 213,214,216,2387,5588,5588,5588,5588,5588,5588, - 5588,5588,5588,338,83,207,5588,3038,5588,2387, - 5588,1226,227,5588,5588,356,534,5588,517,208, - 209,210,211,298,299,300,301,5588,348,3561, - 5588,5588,5588,5588,5588,348,3568,206,215,212, - 159,205,213,214,216,351,1280,1150,354,5588, - 192,5588,5588,3045,5588,5588,3617,207,5588,3038, - 5588,5588,5588,4558,5588,5588,5588,5588,1989,5588, - 218,208,209,210,211,298,299,300,301,1762, - 38,1088,36,1119,4269,4771,34,1229,31,35, - 344,32,2122,38,3155,36,1119,4269,4771,34, - 1229,31,35,344,32,1689,38,1088,36,1119, - 4269,4771,34,1229,31,35,344,32,1689,38, - 1088,36,1119,4269,4771,34,1229,31,35,344, - 32,3323,5588,5588,5588,5588,5588,5588,5588,325, - 1640,327,5588,5588,320,1415,686,1810,1812,390, - 1119,5588,325,1640,327,5588,5588,320,1415,631, - 5588,5588,5588,5588,5588,325,1640,327,5588,5588, - 320,1415,1176,5588,5588,5588,54,5588,325,1640, - 327,5588,5588,320,1415,2908,5588,295,55,5588, - 5588,296,51,1046,38,1088,36,1119,3650,4839, - 34,1229,31,35,344,32,5588,314,1000,38, - 1088,36,1119,2926,4771,34,1229,31,35,344, - 32,5588,5588,5588,5588,5588,3372,5588,5588,5588, - 774,1810,1812,390,1119,5588,3567,1840,1810,1812, - 390,1119,5588,5588,5588,5588,5588,5588,403,5588, - 5588,338,5588,325,1640,327,416,3164,321,1415, - 54,864,1810,1812,390,1119,5588,54,322,3114, - 327,295,55,5588,5588,296,1800,2780,295,55, - 1814,5588,296,1800,734,2387,5045,2723,5588,5588, - 5588,54,5588,5588,2723,864,1810,1812,390,1119, - 5588,5588,295,55,227,5588,296,1800,1900,5588, - 5588,5588,5588,774,1810,1812,390,1119,2406,5588, - 5588,5588,83,5588,5588,54,5588,2387,4648,986, - 407,774,1810,1812,390,1119,295,55,5588,5588, - 296,1800,52,54,5588,5588,348,5588,5588,408, - 5588,3038,574,5588,295,55,5588,5588,296,1800, - 52,54,5588,83,5588,5588,2126,5588,2387,5588, - 1269,5588,295,55,3617,5588,296,1800,2526,774, - 1810,1812,390,1119,5588,5588,1949,348,3074,2997, - 5588,5588,864,1810,1812,390,1119,5588,5588,774, - 1810,1812,390,1119,5588,5588,5588,5588,5588,54, - 5588,5588,5588,5588,5588,3617,5588,5588,5588,5588, - 295,55,54,5588,296,1800,52,504,5588,54, - 5588,5588,5588,295,55,5588,2220,296,1800,52, - 295,55,409,412,296,1800,2836,5588,5588,2120, - 774,1810,1812,390,1119,5588,3074,774,1810,1812, - 390,1119,5588,5588,774,1810,1812,390,1119,5588, - 5588,774,1810,1812,390,1119,5588,5588,5588,5588, - 54,5588,5588,5588,5588,5588,5588,54,5588,5588, - 5588,295,55,5588,54,296,1800,52,295,55, - 5588,54,296,1800,52,295,55,2492,5588,296, - 1800,52,295,55,2497,5588,296,1800,52,5588, - 5588,2838,1531,1810,1812,390,1119,5588,2919,3121, - 1810,1812,390,1119,5588,5588,686,1810,1812,390, - 1119,5588,5588,686,1810,1812,390,1119,5588,5588, - 5588,5588,54,5588,5588,5588,5588,5588,5588,54, - 5588,5588,5588,295,55,5588,54,296,1800,52, - 295,55,5588,54,296,1800,52,295,55,634, - 5588,296,1800,2952,295,55,3060,5588,296,1800, - 792,686,1810,1812,390,1119,5588,5588,686,1810, - 1812,390,1119,5588,5588,686,1810,1812,390,1119, - 3808,5588,5588,5588,5588,2387,5588,83,83,5588, - 5588,54,2387,2387,1158,1294,5588,5588,54,534, - 534,5588,295,55,2682,54,296,1800,1098,295, - 55,348,348,296,1800,584,295,55,348,348, - 296,1800,2309,159,159,1362,2028,2075,5588,5588, - 534,1120,1120,1370,192,5588,5588,5588,5588,3617, - 3617,5588,5588,2151,5588,2647,3617,4558,1120,348, - 1120,502,531,5588,159,159,159,2694,1359,5588, - 5588,5588,1120,2741,192,166,166,5588,1120,5588, - 5588,5588,159,5588,159,500,5588,4558,5588,5588, - 5588,5588,166,5588,2779,5588,159,5588,5588,5588, - 5588,5588,159,5588,5588,5588,1809,5588,5588,5588, - 5588,5588,3641,5588,5588,5588,5588,5588,5588,5588, - 5588,5588,5588,497,499,3360,5588,5588,5588,5588, - 5588,5588,5588,5588,5588,5588,5588,5588,5588,5588, - 5588,5588,5588,3674,3642,5588,5588,5588,5588,5588, - 5588,5588,5588,5588,5588,3529,5588,5588,5588,5588, - 3679,5588,5588,3505,5588,0,5606,42,0,5605, - 42,0,160,533,0,508,33,0,449,724, - 0,41,5606,0,41,5605,0,129,2626,0, - 1,439,0,453,1223,0,452,1550,0,508, - 44,0,2734,94,0,38,305,0,389,297, - 0,36,390,0,33,389,0,508,33,389, - 0,1991,42,0,1,727,0,1,5861,0, - 1,5860,0,1,5859,0,1,5858,0,1, - 5857,0,1,5856,0,1,5855,0,1,5854, - 0,1,5853,0,1,5852,0,1,5851,0, - 1,5606,42,0,1,5605,42,0,1,646, - 0,5821,240,0,5820,240,0,5931,240,0, - 5930,240,0,5848,240,0,5847,240,0,5846, - 240,0,5845,240,0,5844,240,0,5843,240, - 0,5842,240,0,5841,240,0,5861,240,0, - 5860,240,0,5859,240,0,5858,240,0,5857, - 240,0,5856,240,0,5855,240,0,5854,240, - 0,5853,240,0,5852,240,0,5851,240,0, - 5606,42,240,0,5605,42,240,0,5629,240, - 0,38,285,261,0,508,389,0,5606,53, - 0,5605,53,0,3137,236,0,48,5627,0, - 48,40,0,131,2626,0,130,2626,0,30, - 515,0,5923,440,0,1023,440,0,1,5629, - 0,42,1,0,52,40,0,1,95,0, - 1,5629,228,0,1,42,228,0,228,414, - 0,5606,40,0,5605,40,0,5606,2,40, - 0,5605,2,40,0,5606,39,0,5605,39, - 0,5627,50,0,50,40,0,5598,405,0, - 5597,405,0,1,4545,0,1,3153,0,1, - 1991,0,228,413,0,2197,324,0,5923,98, - 0,1023,98,0,1,5923,0,1,1023,0, - 42,5606,0,42,5605,0,3680,281,0,1, - 967,0,1,2403,0,5596,1,0,496,4267, - 0,1,228,0,1,228,3338,0,5598,228, - 0,5597,228,0,3539,228,0,160,179,0, - 297,3415,0,8,10,0,228,167,0,228, - 220,0,228,219,0,189,3780,0 + 20,20,171,171,172,172,173,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,34,34,35,35,37, + 37,38,38,42,42,41,41,41,41,41, + 41,41,41,41,41,41,41,41,39,39, + 29,140,140,99,99,102,102,94,192,192, + 69,69,69,69,69,69,69,69,69,70, + 70,70,71,71,56,56,174,174,72,72, + 72,115,115,73,73,73,73,74,74,74, + 74,74,75,75,79,79,79,79,79,79, + 79,50,50,50,50,50,105,105,106,106, + 48,24,24,24,24,24,45,45,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,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,58,58, + 57,63,63,67,67,55,55,55,91,91, + 101,100,100,60,60,59,59,61,61,49, + 103,103,103,95,95,95,96,97,97,97, + 98,98,107,107,107,109,109,108,108,193, + 193,92,92,176,176,176,176,176,124,46, + 46,155,175,175,125,125,125,125,177,177, + 30,30,116,126,126,126,126,110,110,120, + 120,120,157,158,158,158,158,158,158,158, + 158,158,180,180,178,178,179,179,159,159, + 159,159,160,181,112,111,111,182,182,161, + 161,161,161,104,104,104,183,183,10,184, + 184,185,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,186,186,186,130,130,123, + 123,187,187,170,170,1304,38,1540,1506,832, + 1098,4304,34,859,31,35,30,32,1627,260, + 29,27,55,894,108,79,80,110,1028,3150, + 1088,1029,1139,1097,3572,272,1221,1192,1324,1237, + 1325,1165,1359,145,686,3493,161,146,1759,38, + 808,36,832,2698,2513,34,859,43,35,4634, + 3391,38,808,36,832,230,2195,34,859,31, + 35,30,32,790,260,29,27,55,894,108, + 79,80,110,1028,48,1088,1029,1139,1097,673, + 371,1221,2111,233,228,229,1164,875,273,3350, + 38,808,36,832,3088,2195,34,859,31,35, + 30,32,790,260,29,27,55,894,89,79, + 80,240,243,246,249,3402,2763,38,808,36, + 832,1626,4589,34,859,31,35,62,32,686, + 38,499,2659,832,778,616,1083,3190,2905,3015, + 3187,3449,4297,2313,38,808,36,832,2399,2195, + 34,859,31,35,2404,32,790,260,29,27, + 55,894,108,79,80,110,1028,339,1088,1029, + 1139,1097,484,517,1221,1192,1324,1237,1325,369, + 1359,145,686,2872,504,146,442,2970,38,808, + 36,832,2411,4589,34,859,31,35,61,32, + 686,38,2668,348,505,2313,38,808,36,832, + 2399,2195,34,859,31,35,2404,32,790,260, + 29,27,55,894,108,79,80,110,1028,339, + 1088,1029,1139,1097,605,3088,1221,1192,1324,1237, + 1325,554,1359,145,693,1562,504,146,2979,433, + 66,2493,869,1740,2411,1759,38,808,36,832, + 1296,2761,34,859,2491,35,505,686,38,1498, + 381,832,500,2787,38,808,36,832,957,2195, + 34,859,31,35,30,32,790,260,29,27, + 55,894,108,79,80,110,1028,37,1088,1029, + 1139,1097,1512,284,1221,1192,1324,1237,1325,2394, + 1359,145,2414,446,144,146,3080,38,808,36, + 832,65,4108,34,859,31,35,30,32,2710, + 1301,497,686,3604,500,2831,38,808,36,832, + 2399,2195,34,859,31,35,2404,32,790,260, + 29,27,55,894,108,79,80,110,1028,339, + 1088,1029,1139,1097,3480,3373,1221,1192,1324,1237, + 1325,2552,1359,145,2414,74,504,146,1759,38, + 808,36,832,1767,2411,34,859,2705,35,1327, + 977,2641,38,808,36,832,505,2195,34,859, + 31,35,30,32,790,260,29,27,55,894, + 108,79,80,110,1028,48,1088,1029,1139,1097, + 735,95,1221,1192,1324,1237,1325,3479,1359,145, + 325,331,374,146,1445,38,808,36,832,3088, + 4108,34,859,31,35,64,32,1301,1030,70, + 38,1455,46,832,568,377,45,859,699,2714, + 38,808,36,832,501,2195,34,859,31,35, + 30,32,790,260,29,27,55,894,108,79, + 80,110,1028,1562,1088,1029,1139,1097,351,3562, + 1221,1192,1324,1237,1325,519,1359,145,2968,412, + 374,146,1445,38,808,36,832,977,4108,34, + 859,31,35,63,32,349,378,445,2994,38, + 808,36,832,375,2195,34,859,31,35,30, + 32,790,260,29,27,55,894,108,79,80, + 110,1028,3373,1088,1029,1139,1097,330,331,1221, + 1192,1324,1237,1325,1353,1359,145,2570,68,161, + 146,686,38,2175,2136,832,48,3119,4039,383, + 415,860,1631,686,38,1498,381,832,3205,2994, + 38,808,36,832,379,2195,34,859,31,35, + 30,32,790,260,29,27,55,894,108,79, + 80,110,1028,272,1088,1029,1139,1097,409,249, + 1221,1192,1324,1237,1325,1193,1359,145,3088,3088, + 368,146,2994,38,808,36,832,329,2195,34, + 859,31,35,30,32,790,260,29,27,55, + 894,108,79,80,110,1028,1562,1088,1029,1139, + 1097,1528,3746,1221,1192,1324,1237,1325,616,1359, + 145,426,500,368,146,350,274,2994,38,808, + 36,832,519,2195,34,859,31,35,30,32, + 790,260,29,27,55,894,108,79,80,110, + 1028,1898,1088,1029,1139,1097,4057,56,1221,1192, + 1324,1237,1325,367,1359,145,1681,488,368,146, + 2916,38,808,36,832,382,2195,34,859,31, + 35,30,32,790,260,29,27,55,894,108, + 79,80,110,1028,1546,1088,1029,1139,1097,2897, + 2181,1221,1192,1324,1237,1325,366,1359,145,48, + 1315,374,146,2939,4582,2994,38,808,36,832, + 3088,2195,34,859,31,35,30,32,790,260, + 29,27,55,894,108,79,80,110,1028,48, + 1088,1029,1139,1097,988,3222,1221,1192,1324,1237, + 1325,364,1359,145,1572,334,162,146,185,2994, + 38,808,36,832,3088,2195,34,859,31,35, + 30,32,790,260,29,27,55,894,108,79, + 80,110,1028,2019,1088,1029,1139,1097,2399,1409, + 1221,1192,1324,1237,1325,372,1359,145,323,1059, + 157,146,2994,38,808,36,832,339,2195,34, + 859,31,35,30,32,790,260,29,27,55, + 894,108,79,80,110,1028,2982,1088,1029,1139, + 1097,1997,778,1221,1192,1324,1237,1325,1081,1359, + 145,310,99,156,146,2994,38,808,36,832, + 1215,2195,34,859,31,35,30,32,790,260, + 29,27,55,894,108,79,80,110,1028,1559, + 1088,1029,1139,1097,3222,3205,1221,1192,1324,1237, + 1325,90,1359,145,104,3059,155,146,2994,38, + 808,36,832,3088,2195,34,859,31,35,30, + 32,790,260,29,27,55,894,108,79,80, + 110,1028,1559,1088,1029,1139,1097,321,3205,1221, + 1192,1324,1237,1325,328,1359,145,1634,3092,154, + 146,2994,38,808,36,832,1365,2195,34,859, + 31,35,30,32,790,260,29,27,55,894, + 108,79,80,110,1028,2086,1088,1029,1139,1097, + 1102,1193,1221,1192,1324,1237,1325,328,1359,145, + 1485,100,153,146,2994,38,808,36,832,1481, + 2195,34,859,31,35,30,32,790,260,29, + 27,55,894,108,79,80,110,1028,1559,1088, + 1029,1139,1097,3657,3205,1221,1192,1324,1237,1325, + 91,1359,145,104,2148,152,146,2994,38,808, + 36,832,2195,2195,34,859,31,35,30,32, + 790,260,29,27,55,894,108,79,80,110, + 1028,2450,1088,1029,1139,1097,2399,2242,1221,1192, + 1324,1237,1325,328,1359,145,1167,2018,151,146, + 2994,38,808,36,832,2603,2195,34,859,31, + 35,30,32,790,260,29,27,55,894,108, + 79,80,110,1028,1559,1088,1029,1139,1097,3381, + 3205,1221,1192,1324,1237,1325,1444,1359,145,2939, + 156,150,146,2994,38,808,36,832,244,2195, + 34,859,31,35,30,32,790,260,29,27, + 55,894,108,79,80,110,1028,48,1088,1029, + 1139,1097,3420,356,1221,1192,1324,1237,1325,328, + 1359,145,3086,3455,149,146,2994,38,808,36, + 832,3484,2195,34,859,31,35,30,32,790, + 260,29,27,55,894,108,79,80,110,1028, + 1559,1088,1029,1139,1097,4550,3205,1221,1192,1324, + 1237,1325,148,1359,145,601,2761,148,146,2994, + 38,808,36,832,777,2195,34,859,31,35, + 30,32,790,260,29,27,55,894,108,79, + 80,110,1028,3065,1088,1029,1139,1097,483,3205, + 1221,1192,1324,1237,1325,1783,1359,145,1298,1669, + 147,146,2875,38,808,36,832,332,2195,34, + 859,31,35,30,32,790,260,29,27,55, + 894,108,79,80,110,1028,48,1088,1029,1139, + 1097,3679,940,1221,1192,1324,1237,1325,1783,2571, + 167,2994,38,808,36,832,1479,2195,34,859, + 31,35,30,32,790,260,29,27,55,894, + 108,79,80,110,1028,2990,1088,1029,1139,1097, + 75,3573,1221,1192,1324,1237,1325,96,1359,145, + 324,3173,142,146,1562,686,38,1498,381,832, + 4671,3308,38,808,36,832,1290,2195,34,859, + 31,35,30,32,790,260,29,27,55,894, + 108,79,80,110,1028,272,1088,1029,1139,1097, + 98,395,1221,1192,1324,1237,1325,148,1359,145, + 568,2072,192,146,3391,38,808,36,832,1528, + 2195,34,859,31,35,30,32,790,260,29, + 27,55,894,108,79,80,110,1028,1884,1088, + 1029,1139,1097,4034,1720,1221,1192,1324,1237,1325, + 4726,2571,167,3391,38,808,36,832,77,2195, + 34,859,31,35,30,32,790,260,29,27, + 55,894,108,79,80,110,1028,699,1088,1029, + 1139,1097,3623,281,1221,1192,1324,1237,1325,3630, + 2571,167,686,38,499,275,832,686,38,1498, + 381,832,1884,3391,38,808,36,832,288,2195, + 34,859,31,35,30,32,790,260,29,27, + 55,894,108,79,80,110,1028,272,1088,1029, + 1139,1097,3698,1562,1221,1192,1324,1237,1325,4741, + 2571,167,3391,38,808,36,832,1463,2195,34, + 859,31,35,30,32,790,260,29,27,55, + 894,108,79,80,110,1028,48,1088,1029,1139, + 1097,1145,393,1221,1192,1324,1237,1325,2939,2571, + 167,2756,38,499,275,832,148,3373,384,415, + 336,676,3391,38,808,36,832,411,2195,34, + 859,31,35,30,32,790,260,29,27,55, + 894,108,79,80,110,1028,48,1088,1029,1139, + 1097,2415,28,1221,1192,1324,1237,1325,1406,2571, + 167,3432,38,808,36,832,410,2195,34,859, + 31,35,30,32,790,260,29,27,55,894, + 108,79,80,110,1028,3152,1088,1029,1139,1097, + 2751,1562,1221,1192,1324,1237,1325,4763,2571,167, + 2756,38,499,2962,832,1640,38,1498,381,832, + 1528,3391,38,808,36,832,413,2195,34,859, + 31,35,30,32,790,260,29,27,55,894, + 108,79,80,110,1028,54,1088,1029,1139,1097, + 320,523,1221,1192,1324,1237,2270,519,1497,919, + 3391,38,808,36,832,3587,2195,34,859,31, + 35,30,32,790,260,29,27,55,894,108, + 79,80,110,1028,282,1088,1029,1139,1097,148, + 1701,1221,1192,1324,2148,3391,38,808,36,832, + 2759,2195,34,859,31,35,30,32,790,260, + 29,27,55,894,108,79,80,110,1028,48, + 1088,1029,1139,1097,4101,73,1221,1192,2098,3391, + 38,808,36,832,2964,2195,34,859,31,35, + 30,32,790,260,29,27,55,894,108,79, + 80,110,1028,48,1088,1029,1139,1097,3056,148, + 1931,3391,38,808,36,832,2966,2195,34,859, + 31,35,30,32,790,260,29,27,55,894, + 108,79,80,110,1028,2973,1088,1029,1139,2002, + 3391,38,808,36,832,58,2195,34,859,31, + 35,30,32,790,260,29,27,55,894,108, + 79,80,110,1028,2289,1088,1029,1139,2009,3473, + 38,1498,381,832,1162,3427,686,38,499,279, + 832,3045,235,260,1372,699,1482,148,424,38, + 1498,381,832,1440,3391,38,808,36,832,272, + 2195,34,859,31,35,30,32,790,260,29, + 27,55,894,108,79,80,110,1028,272,1088, + 1029,1755,2016,57,3391,38,808,36,832,230, + 2195,34,859,31,35,30,32,790,260,29, + 27,55,894,108,79,80,110,1028,347,1088, + 1029,1764,686,38,1498,381,832,233,228,229, + 322,3684,273,686,38,1498,381,832,686,38, + 1498,381,832,686,38,280,340,978,666,345, + 875,2794,419,2712,338,240,243,246,249,3402, + 3100,3530,3528,54,48,1626,386,415,422,3600, + 1945,397,76,3089,38,387,1497,2684,3089,38, + 387,3190,2905,3015,3187,3449,4297,3391,38,808, + 36,832,2429,2195,34,859,31,35,30,32, + 790,260,29,27,55,894,108,79,80,110, + 1028,1451,1088,1029,1798,3391,38,808,36,832, + 1528,2195,34,859,31,35,30,32,790,260, + 29,27,55,894,108,79,80,110,1028,3070, + 1088,1029,1799,1377,38,808,36,832,1568,4651, + 34,859,31,35,335,32,3391,38,808,36, + 832,148,2195,34,859,31,35,30,32,790, + 260,29,27,55,894,108,79,80,110,1028, + 2125,1088,1832,3202,296,1048,1523,1541,3281,3578, + 48,1439,2399,3205,2399,1531,3572,346,3578,3120, + 316,2423,318,2399,2864,311,1420,148,3154,158, + 347,2603,433,2603,686,38,1498,381,832,2269, + 2911,3189,2603,3197,1392,2002,38,808,36,832, + 4428,4651,34,859,31,35,335,32,340,978, + 666,345,328,92,421,3684,2909,3391,38,808, + 36,832,3542,2195,34,859,31,35,30,32, + 790,260,29,27,55,894,108,79,80,110, + 1028,2701,1088,1846,158,48,617,2784,3657,355, + 4100,491,316,2423,318,298,568,311,1420,659, + 491,699,347,1327,2895,2734,2737,686,38,1498, + 381,832,3217,2010,38,808,36,832,1568,4651, + 34,859,31,35,335,32,488,490,1562,361, + 340,978,666,345,4788,489,490,420,2621,3391, + 38,808,36,832,3198,2195,34,859,31,35, + 30,32,790,260,29,27,55,894,108,79, + 80,110,1028,787,1670,730,3519,3081,785,48, + 316,2423,318,1601,4096,311,1420,1028,1685,4659, + 347,429,2647,510,38,439,3075,38,278,4772, + 514,1497,38,3069,36,832,1654,4707,34,859, + 31,35,335,32,3075,38,276,3572,340,978, + 666,345,385,415,3572,2216,515,3391,38,808, + 36,832,1423,2195,34,859,31,35,30,32, + 790,260,29,27,55,894,108,79,80,110, + 1028,3478,1678,3212,347,148,328,177,316,2423, + 318,2406,525,311,1420,1347,3089,38,387,3116, + 1690,3234,2078,513,3499,2399,4211,1048,957,3147, + 371,227,340,978,666,345,158,1964,48,511, + 2621,2524,4486,2399,227,1,3407,183,3575,2336, + 525,158,4566,203,214,211,3520,202,212,213, + 215,523,339,172,148,4469,1881,398,48,227, + 47,2599,3502,2649,158,230,186,170,171,173, + 174,175,176,177,3407,183,399,2411,2865,3212, + 4566,203,214,211,418,202,212,213,215,1549, + 2650,172,3476,242,228,229,432,3169,3170,184, + 406,3077,148,568,187,170,171,173,174,175, + 176,177,969,1036,2813,1363,3656,525,525,3410, + 2052,1793,38,808,36,832,1654,4707,34,859, + 31,35,335,32,48,3230,227,339,72,1048, + 3163,158,158,48,3515,2399,49,2599,1048,3563, + 48,165,2106,148,2399,2510,1301,3738,3507,511, + 3623,48,2411,2667,227,2497,895,400,403,1349, + 2497,2935,4180,227,1927,230,328,1487,316,2423, + 318,3159,530,311,1420,4566,205,214,211,71, + 204,212,213,215,4566,205,214,211,1236,204, + 212,213,215,245,228,229,206,3199,2865,3496, + 38,276,4486,3667,3730,206,977,2865,2399,216, + 207,208,209,210,290,291,292,293,216,207, + 208,209,210,290,291,292,293,227,686,38, + 1498,381,832,305,148,4178,2580,686,38,499, + 277,832,148,148,4178,3244,327,331,4566,205, + 214,211,3655,204,212,213,215,3626,438,3534, + 3508,48,568,3611,3394,148,1072,3750,510,206, + 70,2865,2399,510,148,3513,3759,1725,69,2819, + 3599,2399,216,207,208,209,210,290,291,292, + 293,227,3629,237,260,686,38,1498,381,832, + 227,60,686,38,1498,381,832,148,4178,3274, + 59,2816,4566,205,214,211,2946,204,212,213, + 215,4566,205,214,211,54,204,212,213,215, + 730,48,54,206,1528,2865,4193,230,1497,2683, + 230,3572,206,319,2865,51,216,207,208,209, + 210,290,291,292,293,485,207,208,209,210, + 290,291,292,293,1528,248,228,229,238,228, + 229,3644,4178,3791,3391,38,1540,1506,832,1674, + 2195,34,859,31,35,30,32,790,260,29, + 27,55,894,108,79,80,87,512,303,3391, + 38,808,36,832,37,2195,34,859,31,35, + 30,32,790,260,29,27,55,894,108,79, + 80,110,1712,3391,38,808,36,832,295,2195, + 34,859,31,35,30,32,790,260,29,27, + 55,894,108,79,80,110,1713,3391,38,808, + 36,832,3676,2195,34,859,31,35,30,32, + 790,260,29,27,55,894,108,79,80,110, + 1721,1532,38,808,36,832,148,4707,34,859, + 31,35,335,32,686,38,499,3058,832,148, + 2001,2989,3179,38,2452,1396,832,3684,4614,48, + 48,48,60,265,3641,3065,2107,1048,525,148, + 1997,2872,103,3683,3694,3701,2000,774,38,1498, + 381,832,54,3706,3684,3241,329,227,316,2423, + 318,163,158,312,1420,1497,1091,182,347,2639, + 3687,353,3407,183,3684,437,525,54,4566,203, + 214,211,517,202,212,213,215,3646,3514,172, + 1497,2530,4089,2399,198,227,342,978,666,345, + 158,1103,3601,170,171,173,174,175,176,177, + 3407,183,339,3684,197,48,4566,203,214,211, + 3040,202,212,213,215,441,3684,172,2523,230, + 525,2339,1309,598,38,439,3602,4145,3713,4772, + 179,170,171,173,174,175,176,177,3718,227, + 3677,1807,3237,201,158,3036,1048,251,228,229, + 2399,283,48,529,3407,183,199,3070,525,48, + 4566,203,214,211,2399,202,212,213,215,339, + 158,172,686,38,1498,381,832,227,1939,2891, + 3506,200,158,339,190,170,171,173,174,175, + 176,177,3407,183,2646,3733,89,3696,4566,203, + 214,211,54,202,212,213,215,617,2411,172, + 1301,3695,525,148,3725,1497,2854,686,38,289, + 1584,3738,3658,170,171,173,174,175,176,177, + 48,227,2172,1854,48,3049,158,1048,1048,3113, + 3172,686,38,289,3734,705,3407,183,3727,3744, + 525,3633,4566,203,214,211,2399,202,212,213, + 215,158,158,172,4107,3684,3741,1425,3678,227, + 977,2106,165,3205,158,2603,193,170,171,173, + 174,175,176,177,3407,183,436,3169,3170,3109, + 4566,203,214,211,2399,202,212,213,215,793, + 1562,172,1901,60,525,220,4797,1048,1048,5360, + 3061,331,442,2603,189,170,171,173,174,175, + 176,177,329,227,5360,48,5360,5360,158,428, + 3177,158,163,5360,347,4149,5360,881,3407,183, + 3684,165,525,491,4566,203,214,211,48,202, + 212,213,215,4266,3684,172,686,38,1498,381, + 832,227,342,978,666,345,158,4252,196,170, + 171,173,174,175,176,177,3407,183,488,490, + 3692,355,4566,203,214,211,54,202,212,213, + 215,4312,5360,172,302,5360,3153,2734,2737,1497, + 3109,1528,2417,5360,4256,5360,195,170,171,173, + 174,175,176,177,3391,38,808,36,832,3532, + 2195,34,859,31,35,30,32,790,260,29, + 27,55,894,108,79,80,88,3391,38,808, + 36,832,5360,2195,34,859,31,35,30,32, + 790,260,29,27,55,894,108,79,80,86, + 3391,38,808,36,832,294,2195,34,859,31, + 35,30,32,790,260,29,27,55,894,108, + 79,80,85,3391,38,808,36,832,5360,2195, + 34,859,31,35,30,32,790,260,29,27, + 55,894,108,79,80,84,3391,38,808,36, + 832,5360,2195,34,859,31,35,30,32,790, + 260,29,27,55,894,108,79,80,83,3391, + 38,808,36,832,5360,2195,34,859,31,35, + 30,32,790,260,29,27,55,894,108,79, + 80,82,3391,38,808,36,832,5360,2195,34, + 859,31,35,30,32,790,260,29,27,55, + 894,108,79,80,81,3264,38,808,36,832, + 5360,2195,34,859,31,35,30,32,790,260, + 29,27,55,894,108,79,80,106,3391,38, + 808,36,832,5360,2195,34,859,31,35,30, + 32,790,260,29,27,55,894,108,79,80, + 112,3391,38,808,36,832,5360,2195,34,859, + 31,35,30,32,790,260,29,27,55,894, + 108,79,80,111,3391,38,808,36,832,3509, + 2195,34,859,31,35,30,32,790,260,29, + 27,55,894,108,79,80,109,3391,38,808, + 36,832,148,2195,34,859,31,35,30,32, + 790,260,29,27,55,894,108,79,80,107, + 3049,5360,148,5360,5360,2399,148,148,60,3784, + 2219,5360,60,1048,2399,1048,1301,1048,3505,5360, + 3109,1997,2872,376,227,2399,5360,148,686,38, + 1498,381,832,227,5360,1948,5360,163,3543,158, + 1048,163,3597,2857,2603,4566,205,214,211,1149, + 204,212,213,215,4566,205,214,211,54,204, + 212,213,215,3251,158,324,206,5360,2865,3684, + 2763,1497,919,3853,165,206,977,2865,2399,507, + 207,208,209,210,290,291,292,293,304,207, + 208,209,210,290,291,292,293,227,3658,48, + 148,2266,148,2399,921,5360,1048,3175,5360,4115, + 5360,3184,355,1301,5360,5360,3171,331,4566,205, + 214,211,227,204,212,213,215,3399,2734,2737, + 158,686,38,1498,381,832,373,4295,4313,206, + 2231,2865,283,4566,205,214,211,5360,204,212, + 213,215,508,207,208,209,210,290,291,292, + 293,54,5360,5360,206,1601,2865,5360,5360,2200, + 2891,4659,3684,977,1497,2753,3684,217,207,208, + 209,210,290,291,292,293,1726,38,808,36, + 832,1654,4651,34,859,31,35,335,32,2704, + 38,3069,36,832,1654,4651,34,859,31,35, + 335,32,301,3411,331,148,4500,3540,38,1498, + 381,832,5360,3427,1676,38,1498,381,832,5360, + 236,260,3684,3684,148,2359,2406,5360,5360,5360, + 1048,1048,5360,316,2423,318,5360,272,311,1420, + 60,3689,5360,5360,54,1048,316,2423,318,5360, + 5360,311,1420,1236,158,158,5360,1497,1865,1964, + 3727,5360,297,194,3002,3053,957,230,1103,163, + 5360,5360,5360,2778,38,808,36,832,1654,4651, + 34,859,31,35,335,32,5360,5360,5360,5360, + 5360,5360,5360,5360,5360,234,228,229,305,5360, + 273,2778,38,808,36,832,1654,4651,34,859, + 31,35,335,32,5360,5360,417,3655,5360,5360, + 5360,5360,5360,241,244,247,250,3402,3611,5360, + 316,2423,318,1626,5360,311,1420,3044,1541,3386, + 5360,5360,5360,2399,3205,5360,5360,5360,407,3077, + 1236,5360,5360,5360,5360,5360,5360,5360,316,2423, + 318,5360,2603,311,1420,2778,38,808,36,832, + 1654,4651,34,859,31,35,335,32,3217,1643, + 38,808,36,832,2841,4651,34,859,31,35, + 335,32,5360,328,5360,306,1784,38,808,36, + 832,5360,4707,34,859,31,35,335,32,5360, + 2025,2453,60,5360,5360,1048,1048,1048,5360,394, + 5360,5360,316,2423,318,5360,5360,311,1420,3381, + 355,5360,5360,5360,5360,5360,313,3035,318,158, + 158,163,3638,5360,5360,2895,2734,2737,5360,165, + 3144,329,5360,316,2423,318,5360,5360,314,1420, + 1784,38,808,36,832,5360,4707,34,859,31, + 35,335,32,5360,5360,5360,2958,38,808,36, + 832,3021,4651,34,859,31,35,335,32,5360, + 5360,2500,1607,5360,5360,5360,1048,2399,4211,862, + 38,1498,381,832,5360,5360,5360,5360,5360,5360, + 5360,3419,4314,5360,5360,329,227,316,2423,318, + 158,5360,312,1420,952,38,1498,381,832,54, + 3152,48,2731,313,3035,318,2399,4469,1881,398, + 5360,5360,1497,2681,774,38,1498,381,832,5360, + 5360,5360,5360,2418,54,339,5360,5360,399,5360, + 2865,2771,38,1498,381,832,5360,1497,52,2771, + 38,1498,381,832,54,5360,5360,5360,2836,5360, + 2411,862,38,1498,381,832,5360,1497,52,5360, + 5360,54,1592,5360,5360,5360,2813,5360,2503,54, + 5360,5360,2547,2594,1497,2938,5360,1048,1048,5360, + 5360,54,1497,52,5360,2017,5360,2771,38,1498, + 381,832,5360,2482,1497,52,5360,5360,5360,2731, + 5360,158,158,5360,5360,908,2771,38,1498,381, + 832,1334,4182,48,5360,5360,5360,54,2399,400, + 402,2771,38,1498,381,832,5360,5360,5360,5360, + 1497,3107,5360,5360,5360,5360,54,339,5360,5360, + 1181,2017,2910,2771,38,1498,381,832,5360,1497, + 52,54,2771,38,1498,381,832,5360,5360,5360, + 2498,1103,2411,5360,1497,52,525,5360,3097,38, + 1498,381,832,54,1617,2674,5360,3214,38,1498, + 381,832,54,5360,5360,339,1497,52,5360,236, + 158,5360,5360,5360,2399,1497,52,2757,54,5360, + 191,5360,5360,1170,1237,5360,3138,54,525,525, + 4455,1497,52,339,5360,5360,5360,5360,5360,5360, + 1497,52,3607,5360,48,518,5360,339,339,2399, + 48,3631,158,158,48,2399,5360,5360,2411,2399, + 48,5360,191,191,5360,2399,5360,5360,339,5360, + 521,5360,4455,4455,339,5360,5360,5360,339,5360, + 5360,5360,5360,5360,339,5360,5360,5360,5360,5360, + 5360,5360,5360,2411,5360,5360,4062,5360,5360,2411, + 5360,5360,5360,2411,5360,2954,5360,5360,5360,2411, + 5360,495,5360,5360,5360,493,5360,5360,5360,5360, + 5360,522,5360,5360,5360,5360,5360,5360,5360,5360, + 5360,5360,5360,5360,5360,5360,5360,5360,4082,4086, + 5360,5360,5360,5360,5360,5360,5360,5360,5360,5360, + 5360,5360,5360,5360,5360,5360,5360,5360,5360,5360, + 5360,5360,5360,5360,5360,5360,5360,5360,5360,5360, + 5360,5360,5360,5360,5360,5360,5360,5360,5360,5360, + 5360,5360,5360,5360,5360,5360,5360,5360,5360,5360, + 5360,5360,5360,5360,5360,5360,3426,5360,0,5378, + 42,0,5377,42,0,159,524,0,499,33, + 0,440,945,0,41,5378,0,41,5377,0, + 128,2547,0,1,430,0,42,5378,0,42, + 5377,0,444,765,0,443,969,0,499,44, + 0,3034,93,0,499,380,0,36,381,0, + 381,36,0,33,380,0,380,33,0,499, + 33,380,0,797,42,0,1,775,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,5378,42,0,1,5377,42,0, + 1,979,0,5592,239,0,5591,239,0,5694, + 239,0,5693,239,0,5619,239,0,5618,239, + 0,5617,239,0,5616,239,0,5615,239,0, + 5614,239,0,5613,239,0,5612,239,0,5631, + 239,0,5630,239,0,5629,239,0,5628,239, + 0,5627,239,0,5626,239,0,5625,239,0, + 5624,239,0,5623,239,0,5622,239,0,5621, + 239,0,42,239,5378,0,42,239,5377,0, + 239,5401,0,53,5378,0,53,5377,0,235, + 3412,0,48,5399,0,48,40,0,5378,53, + 0,5377,53,0,130,2547,0,129,2547,0, + 30,506,0,5686,431,0,1096,431,0,1, + 5401,0,1,42,0,52,40,0,1,94, + 0,226,1,5401,0,226,1,42,0,226, + 405,0,40,5378,0,40,5377,0,40,5378, + 2,0,40,5377,2,0,5378,39,0,5377, + 39,0,5399,50,0,50,40,0,5370,396, + 0,5369,396,0,1,4391,0,1,3535,0, + 1,797,0,226,404,0,2735,315,0,5686, + 97,0,1096,97,0,1,5686,0,1,1096, + 0,277,4088,0,1,2533,0,1,2538,0, + 5368,1,0,487,4080,0,226,1,0,226, + 1,3401,0,5370,226,0,5369,226,0,3586, + 226,0,159,178,0,8,10,0,226,166, + 0,226,219,0,226,218,0,188,3635,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1141,200 +1095,192 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 10,11,12,13,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,28,29, 30,31,32,33,34,35,36,37,38,39, - 40,41,42,43,44,45,46,47,48,0, + 40,41,42,43,44,45,46,0,48,49, 50,51,52,53,54,55,56,57,58,0, - 60,61,62,4,64,65,66,67,68,0, - 1,2,72,4,74,26,76,77,78,79, + 60,61,62,63,64,65,66,0,68,0, + 1,2,72,6,74,75,7,77,78,79, + 80,81,23,83,84,85,86,87,0,1, + 2,3,4,5,6,7,8,9,10,11, + 12,13,14,15,16,17,18,19,20,21, + 22,23,24,25,26,27,28,29,30,31, + 32,33,34,35,36,37,38,39,40,41, + 42,43,44,45,46,76,48,49,50,51, + 52,53,54,55,56,57,58,0,60,61, + 62,63,64,65,66,0,68,0,91,92, + 72,6,74,75,0,77,78,79,80,81, + 23,83,84,85,86,87,0,1,2,3, + 4,5,6,7,8,9,10,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,30,31,32,33, + 34,35,36,37,38,39,40,41,42,43, + 44,45,46,76,48,49,50,51,52,53, + 54,55,56,57,58,0,60,61,62,63, + 64,65,66,0,68,0,91,92,0,6, + 74,75,95,77,78,79,80,81,23,83, + 84,85,86,87,0,1,2,3,4,5, + 6,7,8,9,10,11,12,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,28,29,30,31,32,33,34,35, + 36,37,38,39,40,41,42,43,44,45, + 46,76,48,49,50,51,52,53,54,55, + 56,57,58,0,60,61,62,63,64,65, + 66,0,68,0,91,92,88,89,74,75, + 9,77,78,79,80,81,23,83,84,85, + 86,87,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 28,29,30,31,32,33,34,35,36,37, + 38,39,40,41,42,43,44,45,46,76, + 48,49,50,51,52,53,54,55,56,57, + 58,0,60,61,62,63,64,65,66,0, + 68,10,11,0,1,2,74,75,5,77, + 78,79,80,81,101,83,84,85,86,87, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,43,44,45,46,0,48,49, + 50,51,52,53,54,55,56,57,58,0, + 60,61,62,63,64,65,66,8,68,0, + 1,2,0,4,74,75,0,77,78,79, 80,81,0,83,84,85,86,87,0,1, 2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19,20,21, 22,23,24,25,26,27,28,29,30,31, 32,33,34,35,36,37,38,39,40,41, - 42,43,44,45,46,47,48,0,50,51, - 52,53,54,55,56,57,58,0,60,61, - 62,0,64,65,66,67,68,0,0,8, - 72,0,74,6,76,77,78,79,80,81, + 42,43,44,45,46,59,48,49,50,51, + 52,53,54,55,56,57,58,100,60,61, + 62,63,64,65,66,73,68,0,1,2, + 0,4,74,75,0,77,78,79,80,81, 0,83,84,85,86,87,0,1,2,3, 4,5,6,7,8,9,10,11,12,13, 14,15,16,17,18,19,20,21,22,23, 24,25,26,27,28,29,30,31,32,33, 34,35,36,37,38,39,40,41,42,43, - 44,45,46,47,48,0,50,51,52,53, - 54,55,56,57,58,0,60,61,62,69, - 64,65,66,67,68,0,88,89,91,92, - 74,6,76,77,78,79,80,81,121,83, + 44,45,46,59,48,49,50,51,52,53, + 54,55,56,57,58,0,60,61,62,63, + 64,65,66,8,68,0,1,2,88,89, + 74,75,0,77,78,79,80,81,0,83, 84,85,86,87,0,1,2,3,4,5, 6,7,8,9,10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25, 26,27,28,29,30,31,32,33,34,35, 36,37,38,39,40,41,42,43,44,45, - 46,47,48,0,50,51,52,53,54,55, - 56,57,58,0,60,61,62,4,64,65, - 66,67,68,0,0,100,91,92,74,6, - 76,77,78,79,80,81,121,83,84,85, + 46,59,48,49,50,51,52,53,54,55, + 56,57,58,0,60,61,62,63,64,65, + 66,73,68,0,1,2,0,0,74,75, + 3,77,78,79,80,81,0,83,84,85, 86,87,0,1,2,3,4,5,6,7, 8,9,10,11,12,13,14,15,16,17, 18,19,20,21,22,23,24,25,26,27, 28,29,30,31,32,33,34,35,36,37, - 38,39,40,41,42,43,44,45,46,47, - 48,0,50,51,52,53,54,55,56,57, - 58,0,60,61,62,102,64,65,66,67, - 68,10,11,0,91,92,74,114,76,77, - 78,79,80,81,100,83,84,85,86,87, + 38,39,40,41,42,43,44,45,46,0, + 48,49,50,51,52,53,54,55,56,57, + 58,0,60,61,62,63,64,65,66,73, + 68,0,1,2,88,89,74,75,0,77, + 78,79,80,81,0,83,84,85,86,87, 0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,28,29, 30,31,32,33,34,35,36,37,38,39, - 40,41,42,43,44,45,46,47,48,0, + 40,41,42,43,44,45,46,59,48,49, 50,51,52,53,54,55,56,57,58,0, - 60,61,62,4,64,65,66,67,68,0, - 0,1,2,0,74,5,76,77,78,79, - 80,81,99,83,84,85,86,87,0,1, + 60,61,62,63,64,65,66,73,68,10, + 11,0,1,2,74,75,0,77,78,79, + 80,81,0,83,84,85,86,87,0,1, 2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19,20,21, 22,23,24,25,26,27,28,29,30,31, 32,33,34,35,36,37,38,39,40,41, - 42,43,44,45,46,47,48,0,50,51, - 52,53,54,55,56,57,58,74,60,61, - 62,0,64,65,66,67,68,0,1,2, - 0,4,74,3,76,77,78,79,80,81, - 101,83,84,85,86,87,0,1,2,3, + 42,43,44,45,46,59,48,49,50,51, + 52,53,54,55,56,57,58,0,60,0, + 3,63,3,65,66,0,1,2,3,4, + 5,6,7,8,9,10,11,12,13,14, + 15,16,17,18,19,20,21,22,0,24, + 25,26,27,28,29,30,31,32,33,34, + 35,36,37,38,39,40,41,42,43,44, + 0,46,0,48,49,50,51,52,53,54, + 55,56,57,58,67,60,67,0,63,0, + 65,66,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,22,67,24,25,26,27, + 28,29,30,31,32,33,34,35,36,37, + 38,39,40,41,42,43,44,67,46,67, + 48,49,50,51,52,53,54,55,56,57, + 58,0,60,0,0,63,0,65,66,0, + 1,2,3,4,5,6,7,8,9,10, + 11,12,13,14,15,16,17,18,19,20, + 21,22,0,24,25,26,27,28,29,30, + 31,32,33,34,35,36,37,38,39,40, + 41,42,43,44,0,46,119,48,49,50, + 51,52,53,54,55,56,57,58,62,60, + 69,70,63,70,65,66,0,1,2,3, + 4,5,6,7,8,9,10,11,12,13, + 14,15,16,17,18,19,20,21,22,67, + 24,25,26,27,28,29,30,31,32,33, + 34,35,36,37,38,39,40,41,42,43, + 44,67,46,119,48,49,50,51,52,53, + 54,55,56,57,58,0,60,0,3,63, + 0,65,66,0,1,2,3,4,5,6, + 7,8,9,10,11,12,13,14,15,16, + 17,18,19,20,21,22,0,24,25,26, + 27,28,29,30,31,32,33,34,35,36, + 37,38,39,40,41,0,0,44,0,49, + 50,48,49,50,51,52,53,54,55,56, + 57,58,0,60,0,0,63,3,65,66, + 6,0,8,47,10,11,0,1,2,3, + 4,5,6,7,8,88,89,23,24,25, + 44,0,1,2,48,49,50,51,52,53, + 54,55,56,57,58,0,44,59,0,45, + 48,49,50,51,52,53,54,55,56,57, + 58,73,0,59,0,1,2,3,4,0, + 6,67,8,69,70,71,72,73,47,0, + 76,70,3,67,0,1,2,71,4,5, + 0,7,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,71, + 0,117,118,119,0,121,0,3,10,11, + 6,67,8,71,10,11,0,1,2,3, + 4,5,6,7,8,100,67,23,24,25, + 102,0,104,105,106,107,108,109,110,111, + 112,113,0,1,2,117,4,0,6,45, + 8,0,1,2,3,4,5,6,7,8, + 0,1,2,59,4,0,6,0,8,69, + 23,67,102,69,70,71,72,73,0,73, + 76,0,4,23,6,4,8,117,23,73, + 59,0,88,89,90,91,92,93,94,95, + 96,97,98,99,100,101,102,103,104,105, + 106,107,108,109,110,111,112,113,67,72, + 0,117,118,119,4,121,0,1,2,3, + 4,5,6,7,8,9,76,72,12,13, + 14,15,16,17,18,19,20,21,22,23, + 0,1,2,0,4,95,6,4,8,0, + 1,2,0,1,2,3,4,5,48,7, + 44,45,46,47,48,49,50,51,52,53, + 54,55,56,57,58,23,60,61,0,63, + 99,65,66,0,0,0,1,2,72,73, + 0,42,43,3,0,1,2,45,82,0, + 1,2,3,4,5,6,7,8,9,26, + 0,12,13,14,15,16,17,18,19,20, + 21,22,23,0,114,115,116,42,43,0, + 114,115,116,4,0,0,1,2,3,4, + 5,47,7,44,45,46,47,48,49,50, + 51,52,53,54,55,56,57,58,23,60, + 61,71,63,0,65,66,88,89,0,1, + 2,72,73,5,0,7,0,48,44,3, + 45,82,48,49,50,51,52,53,54,55, + 56,57,58,0,1,2,3,4,5,6, + 7,8,0,1,2,3,4,5,6,7, + 8,101,0,114,115,116,0,1,2,3, 4,5,6,7,8,9,10,11,12,13, 14,15,16,17,18,19,20,21,22,23, 24,25,26,27,28,29,30,31,32,33, 34,35,36,37,38,39,40,41,42,43, - 44,45,46,47,48,0,50,51,52,53, - 54,55,56,57,58,0,60,61,62,0, - 64,65,66,67,68,0,1,2,97,98, - 74,26,76,77,78,79,80,81,0,83, - 84,85,86,87,0,1,2,3,4,5, - 6,7,8,9,10,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,28,29,30,31,32,33,34,35, - 36,37,38,39,40,41,42,43,44,45, - 46,47,48,0,50,51,52,53,54,55, - 56,57,58,0,60,61,62,69,64,65, - 66,67,68,0,1,2,97,98,74,26, - 76,77,78,79,80,81,0,83,84,85, - 86,87,0,1,2,3,4,5,6,7, - 8,9,10,11,12,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 28,29,30,31,32,33,34,35,36,37, - 38,39,40,41,42,43,44,45,46,47, - 48,0,50,51,52,53,54,55,56,57, - 58,0,60,61,62,69,64,65,66,67, - 68,0,0,0,1,2,74,6,76,77, - 78,79,80,81,12,83,84,85,86,87, - 0,1,2,3,4,5,6,7,8,9, - 10,11,12,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,28,29, - 30,31,32,33,34,35,36,37,38,39, - 40,41,42,43,44,45,46,47,48,0, - 50,51,52,53,54,55,56,57,58,0, - 60,61,62,0,64,65,66,67,68,0, - 1,2,101,4,74,12,76,77,78,79, - 80,81,0,83,84,85,86,87,0,1, - 2,3,4,5,6,7,8,115,10,11, - 12,13,14,44,0,0,47,48,45,50, - 51,52,53,54,55,56,57,58,49,0, - 1,2,3,4,5,0,7,0,1,2, - 5,12,44,45,7,47,48,0,50,51, - 52,53,54,55,56,57,58,59,0,61, - 0,63,4,0,6,73,8,69,70,71, - 72,73,74,75,45,0,1,2,3,4, - 5,6,7,8,69,70,88,89,90,91, - 92,93,94,95,96,97,98,99,100,101, - 102,103,104,105,106,107,108,109,110,111, - 112,113,114,115,116,0,1,2,120,0, - 1,2,3,4,5,6,7,8,9,10, - 11,12,13,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,29,30, - 31,32,33,34,35,36,37,38,39,40, - 41,42,43,44,45,46,47,48,0,50, - 51,52,53,54,55,56,57,58,0,60, - 117,118,119,64,0,66,67,0,1,2, - 3,4,5,6,7,8,9,10,11,0, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,28,29,30,31,32, - 33,34,35,36,37,38,39,40,41,42, - 43,44,0,46,47,48,4,50,51,52, - 53,54,55,56,57,58,0,60,0,1, - 2,64,0,66,67,0,1,2,3,4, - 5,6,7,8,9,10,11,99,13,14, - 15,16,17,18,19,20,21,22,23,24, - 25,26,27,28,29,30,31,32,33,34, - 35,36,37,38,39,40,41,42,43,44, - 116,46,47,48,0,50,51,52,53,54, - 55,56,57,58,0,60,0,0,0,64, - 3,66,67,0,1,2,3,4,5,6, - 7,8,9,10,11,0,13,14,15,16, - 17,18,19,20,21,22,23,24,25,26, - 27,28,29,30,31,32,33,34,35,36, - 37,38,39,40,41,42,43,44,116,46, - 47,48,0,50,51,52,53,54,55,56, - 57,58,0,60,70,69,70,64,71,66, - 67,0,1,2,3,4,5,6,7,8, - 9,10,11,0,13,14,15,16,17,18, - 19,20,21,22,23,24,25,26,27,28, - 29,30,31,32,33,34,35,36,37,38, - 39,40,41,42,43,44,0,46,47,48, - 4,50,51,52,53,54,55,56,57,58, - 0,60,0,1,2,64,121,66,67,0, - 1,2,3,4,5,6,7,8,9,10, - 11,0,13,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,29,30, - 31,32,33,34,35,36,37,38,39,40, - 41,0,0,44,122,3,47,48,0,50, - 51,52,53,54,55,56,57,58,0,60, - 49,0,4,64,3,66,67,6,0,8, - 12,10,11,12,13,14,0,1,2,3, - 4,5,6,7,8,44,0,0,47,48, - 0,50,51,52,53,54,55,56,57,58, - 0,1,2,45,0,63,45,0,4,61, - 0,1,2,3,4,5,6,7,8,0, - 59,0,1,2,63,4,0,6,0,8, - 69,70,71,72,73,48,75,50,70,63, - 0,1,2,3,4,59,6,71,8,88, - 89,90,91,92,93,94,95,96,97,98, - 99,100,101,102,103,104,105,106,107,108, - 109,110,111,112,113,114,115,116,71,0, - 90,120,3,73,0,6,96,8,4,10, - 11,12,13,14,0,1,2,3,4,5, - 6,7,8,63,0,1,2,88,89,102, - 6,104,105,106,107,108,109,110,111,112, - 113,114,0,95,45,0,1,2,3,4, - 5,6,7,8,12,0,1,2,59,4, - 0,6,63,8,0,0,0,12,69,70, - 71,72,73,49,75,10,11,63,0,1, - 2,3,4,5,0,7,0,88,89,90, - 91,92,93,94,95,96,97,98,99,100, - 101,102,103,104,105,106,107,108,109,110, - 111,112,113,114,115,116,0,75,0,120, - 0,1,2,3,4,5,6,7,8,9, - 75,0,12,69,3,15,16,17,18,19, - 20,21,22,23,24,25,0,1,2,0, - 95,0,1,2,3,4,5,0,7,10, - 11,4,76,12,44,45,46,47,48,49, - 50,51,52,53,54,55,56,57,58,63, - 60,63,62,0,64,0,66,67,42,43, - 0,0,72,73,63,0,45,0,1,2, - 9,0,82,0,1,2,3,4,5,6, - 7,8,9,0,0,12,59,3,15,16, - 17,18,19,20,21,22,23,24,25,0, - 1,2,0,1,2,0,0,117,118,119, - 0,1,2,8,4,60,49,44,45,46, - 47,48,49,50,51,52,53,54,55,56, - 57,58,0,60,63,62,0,64,73,66, - 67,42,43,90,0,72,73,63,0,96, - 44,49,69,47,48,82,50,51,52,53, - 54,55,56,57,58,0,1,2,3,4, - 5,61,7,41,0,1,2,3,4,5, - 0,7,0,1,2,0,4,5,3,7, - 117,118,119,0,1,2,3,4,5,6, + 0,45,46,0,1,2,3,4,5,6, 7,8,9,10,11,12,13,14,15,16, 17,18,19,20,21,22,23,24,25,26, 27,28,29,30,31,32,33,34,35,36, - 37,38,39,40,41,42,43,63,45,46, + 37,38,39,40,41,42,43,0,45,46, 0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,28,29, @@ -1344,206 +1290,201 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 13,14,15,16,17,18,19,20,21,22, 23,24,25,26,27,28,29,30,31,32, 33,34,35,36,37,38,39,40,41,42, - 43,0,45,46,0,1,2,3,4,5, + 43,47,0,46,97,98,0,1,2,0, + 0,0,1,2,3,4,5,0,7,0, + 1,2,3,4,5,0,7,0,0,4, + 3,3,23,76,0,1,2,3,4,5, 6,7,8,9,10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25, 26,27,28,29,30,31,32,33,34,35, - 36,37,38,39,40,41,42,43,0,95, - 46,0,1,2,3,4,5,0,7,0, - 59,0,0,1,2,3,4,5,0,7, - 0,1,2,12,4,0,6,0,8,75, - 0,1,2,3,4,5,6,7,8,9, - 10,11,12,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,28,29, - 30,31,32,33,34,35,36,37,38,39, - 40,41,42,43,73,63,46,0,1,2, - 0,4,73,6,59,8,75,69,0,1, - 2,0,12,0,1,2,3,4,5,6, - 7,8,9,10,11,75,13,14,15,16, - 17,18,19,20,21,22,23,24,25,26, - 27,28,29,30,31,32,33,34,35,36, - 37,38,39,40,41,42,43,49,0,46, - 0,1,2,3,4,5,6,7,8,9, - 10,11,72,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,28,29, - 30,31,32,33,34,35,36,37,38,39, - 40,41,42,43,0,0,46,0,1,2, - 3,4,5,6,7,8,9,10,11,61, + 36,37,38,39,40,41,42,43,67,70, + 46,0,0,73,59,76,67,0,1,2, + 3,4,5,6,7,8,9,10,11,12, 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,28,29,30,31,32, + 76,24,25,26,27,28,29,30,31,32, 33,34,35,36,37,38,39,40,41,42, 43,0,0,46,0,1,2,3,4,5, - 6,7,8,9,10,11,61,13,14,15, - 16,17,18,19,20,21,22,23,24,25, + 6,7,8,9,10,11,12,13,14,15, + 16,17,18,19,20,21,22,0,24,25, 26,27,28,29,30,31,32,33,34,35, - 36,37,38,39,40,41,42,43,0,0, + 36,37,38,39,40,41,42,43,97,98, 46,0,1,2,3,4,5,6,7,8, - 9,10,11,61,13,14,15,16,17,18, - 19,20,21,22,23,24,25,26,27,28, + 9,10,11,12,13,14,15,16,17,18, + 19,20,21,22,0,24,25,26,27,28, 29,30,31,32,33,34,35,36,37,38, - 39,40,41,42,43,0,0,46,0,1, + 39,40,41,42,43,0,69,46,0,1, 2,3,4,5,6,7,8,9,10,11, - 61,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,28,29,30,31, + 12,13,14,15,16,17,18,19,20,21, + 22,0,24,25,26,27,28,29,30,31, 32,33,34,35,36,37,38,39,40,41, - 42,43,0,1,2,49,4,0,6,0, - 8,0,1,2,59,0,1,2,3,4, - 5,6,7,8,9,10,11,69,13,14, - 15,16,17,18,19,20,21,22,23,24, + 42,43,47,69,46,0,1,2,3,4, + 5,6,7,8,9,10,11,12,13,14, + 15,16,17,18,19,20,21,22,0,24, 25,26,27,28,29,30,31,32,33,34, 35,36,37,38,39,40,41,42,43,0, - 49,46,0,1,2,3,4,5,6,7, - 8,9,10,11,0,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, + 69,46,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,22,0,24,25,26,27, 28,29,30,31,32,33,34,35,36,37, - 38,39,40,41,42,43,0,0,46,0, + 38,39,40,41,42,43,0,69,0,1, + 2,3,4,5,6,7,8,9,10,11, + 12,13,14,15,16,17,18,19,20,21, + 22,69,24,25,26,27,28,29,30,31, + 32,33,34,35,36,37,38,39,40,41, + 42,43,67,0,46,0,1,2,3,4, + 5,6,7,8,9,10,11,12,13,14, + 15,16,17,18,19,20,21,22,0,24, + 25,26,27,28,29,30,31,32,33,34, + 35,36,37,38,39,40,41,42,43,0, + 0,46,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,22,0,24,25,26,27, + 28,29,30,31,32,33,34,35,36,37, + 38,39,40,41,42,43,0,69,46,0, 1,2,3,4,5,6,7,8,9,10, - 11,0,13,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,29,30, + 11,12,13,14,15,16,17,18,19,20, + 21,22,0,24,25,26,27,28,29,30, 31,32,33,34,35,36,37,38,39,40, 41,42,43,0,95,46,0,1,2,3, - 4,5,6,7,8,9,10,11,61,13, - 14,15,16,17,18,19,20,21,22,23, + 4,5,6,7,8,9,10,11,12,13, + 14,15,16,17,18,19,20,21,22,0, 24,25,26,27,28,29,30,31,32,33, 34,35,36,37,38,39,40,41,42,43, - 0,0,46,0,1,2,3,4,5,6, - 7,8,9,10,11,0,13,14,15,16, - 17,18,19,20,21,22,23,24,25,26, + 0,69,46,0,1,2,3,4,5,6, + 7,8,9,10,11,12,13,14,15,16, + 17,18,19,20,21,22,120,24,25,26, 27,28,29,30,31,32,33,34,35,36, 37,38,39,40,41,42,43,0,0,46, 0,1,2,3,4,5,6,7,8,9, - 10,11,0,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,28,29, - 30,31,32,33,34,35,36,37,38,39, - 40,41,42,43,0,0,46,0,1,2, - 3,4,5,6,7,8,9,10,11,12, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,28,29,30,31,32, - 33,34,35,36,37,38,39,40,41,44, - 0,0,47,48,0,50,51,52,53,54, - 55,56,57,58,0,0,12,3,61,0, - 0,1,2,0,4,5,12,7,0,72, - 0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,28,29, 30,31,32,33,34,35,36,37,38,39, - 40,41,71,0,1,2,0,63,5,75, - 7,0,0,69,70,3,71,59,69,75, - 90,61,69,70,0,0,96,3,3,95, - 0,73,72,0,1,2,3,4,5,6, - 7,8,9,10,11,0,13,14,15,16, + 40,41,44,114,115,116,48,49,50,51, + 52,53,54,55,56,57,58,0,1,2, + 0,4,62,0,1,2,3,4,5,0, + 7,0,72,0,1,2,3,4,5,6, + 7,8,9,10,11,12,13,14,15,16, 17,18,19,20,21,22,23,24,25,26, 27,28,29,30,31,32,33,34,35,36, - 37,38,39,40,41,42,43,0,1,2, - 3,4,5,6,7,8,9,10,11,59, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,28,29,30,31,32, - 33,34,35,36,37,38,39,40,41,42, - 43,0,1,2,3,4,5,6,7,8, - 9,10,11,12,13,14,15,16,17,18, - 19,20,21,22,23,24,25,26,27,28, - 29,30,31,32,33,34,35,36,37,38, - 39,40,0,1,2,3,4,5,6,7, - 8,9,10,11,0,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 28,29,30,31,32,33,34,35,36,37, - 38,39,40,41,0,0,0,3,0,0, - 0,0,0,1,2,0,0,13,14,9, - 0,1,2,61,0,1,2,3,4,5, - 6,7,8,9,10,11,115,13,14,15, + 37,38,39,40,41,0,1,2,0,62, + 0,3,0,1,2,5,4,5,59,7, + 0,1,2,62,74,62,73,0,1,2, + 3,4,5,0,7,72,0,1,2,3, + 4,5,6,7,8,9,10,11,12,13, + 14,15,16,17,18,19,20,21,22,47, + 24,25,26,27,28,29,30,31,32,33, + 34,35,36,37,38,39,40,41,42,43, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,70,24,25,26,27,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,43,0,1,2,3,4,5, + 6,7,8,9,10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25, 26,27,28,29,30,31,32,33,34,35, - 36,37,38,39,40,41,0,63,59,3, - 0,5,6,61,8,65,10,11,69,13, - 14,0,1,2,0,4,5,0,7,0, - 0,4,0,27,0,0,0,3,90,88, - 89,12,93,94,96,0,0,103,42,43, - 15,16,17,18,19,20,21,22,23,24, - 25,0,0,0,120,59,4,0,0,63, - 49,0,4,49,47,69,70,71,0,44, - 70,0,47,48,0,50,51,52,53,54, - 55,56,57,58,88,89,90,91,92,93, - 94,72,70,97,98,99,100,101,102,103, - 104,105,106,107,108,109,110,111,112,113, - 0,59,59,3,63,5,6,59,8,0, - 10,11,69,13,14,0,1,2,0,4, - 5,12,7,59,117,118,119,27,0,0, - 1,2,4,69,5,0,93,94,0,1, - 2,0,42,43,0,0,0,1,2,88, - 89,0,0,12,45,3,0,93,94,59, - 0,0,0,63,49,3,0,0,0,69, - 70,71,0,0,0,47,3,59,49,70, - 0,0,0,3,0,3,45,49,88,89, - 90,91,92,93,94,49,12,97,98,99, - 100,101,102,103,104,105,106,107,108,109, - 110,111,112,113,0,1,2,3,4,5, - 6,7,8,9,10,11,70,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,28,29,30,31,32,33,34,35, - 36,37,38,39,40,88,89,0,0,75, - 0,3,0,0,0,0,1,2,3,4, - 5,6,7,8,9,10,11,63,13,14, - 15,16,17,18,19,20,21,22,23,24, + 36,37,38,39,40,0,1,2,3,4, + 5,6,7,8,9,10,11,12,13,14, + 15,16,17,18,19,20,21,22,0,24, 25,26,27,28,29,30,31,32,33,34, 35,36,37,38,39,40,41,0,1,2, - 3,4,5,6,7,8,9,10,11,59, + 3,4,5,0,7,0,3,0,3,0, + 1,2,0,4,5,3,7,62,0,1, + 2,0,4,0,6,4,8,4,0,0, + 1,2,118,0,1,2,3,4,5,6, + 7,8,9,10,11,12,13,14,15,16, + 17,18,19,20,21,22,47,24,25,26, + 27,28,29,30,31,32,33,34,35,36, + 37,38,39,40,41,0,47,99,3,0, + 5,6,59,8,0,10,11,3,0,1, + 2,3,4,5,6,7,8,90,0,24, + 25,73,27,96,0,1,2,23,4,0, + 6,23,8,4,0,1,2,42,43,0, + 1,2,0,4,5,0,7,0,0,1, + 2,0,44,45,59,47,0,1,2,0, + 1,2,67,0,69,70,71,59,0,61, + 23,67,64,69,70,0,68,59,0,0, + 76,47,3,88,89,90,91,92,93,94, + 82,23,97,98,99,100,101,102,103,104, + 105,106,107,108,109,110,111,112,113,0, + 59,0,3,0,5,6,3,8,0,10, + 11,62,0,1,2,3,4,5,6,7, + 8,0,0,24,25,90,27,59,0,1, + 2,96,4,0,76,23,71,69,0,1, + 2,42,43,5,0,23,0,0,0,1, + 2,4,6,95,6,118,44,45,59,47, + 59,93,94,0,1,2,67,45,69,70, + 71,0,123,61,3,47,64,69,70,0, + 68,60,3,0,72,47,0,88,89,90, + 91,92,93,94,82,47,97,98,99,100, + 101,102,103,104,105,106,107,108,109,110, + 111,112,113,0,1,2,3,4,5,6, + 7,8,9,10,11,12,13,14,15,16, + 17,18,19,20,21,22,0,24,25,26, + 27,28,29,30,31,32,33,34,35,36, + 37,38,39,40,71,69,70,0,1,2, + 3,4,5,6,7,8,9,10,11,12, 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,28,29,30,31,32, - 33,34,35,36,37,38,39,40,0,1, - 2,3,4,5,6,7,8,9,10,11, - 0,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,36,37,38,39,40,0, + 67,24,25,26,27,28,29,30,31,32, + 33,34,35,36,37,38,39,40,41,0, 1,2,3,4,5,6,7,8,9,10, - 11,0,13,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,29,30, + 11,12,13,14,15,16,17,18,19,20, + 21,22,0,24,25,26,27,28,29,30, 31,32,33,34,35,36,37,38,39,40, - 0,1,2,0,4,0,0,0,0,9, - 0,1,2,0,0,15,16,17,18,19, - 20,21,22,23,24,25,0,0,0,0, - 59,0,0,0,3,3,0,0,12,12, - 12,12,0,0,44,3,0,47,48,3, - 50,51,52,53,54,55,56,57,58,49, - 60,0,1,2,64,4,66,67,63,63, - 9,0,45,59,71,0,15,16,17,18, - 19,20,21,22,23,24,25,0,1,2, - 3,4,5,6,7,8,70,0,70,12, - 72,75,59,0,75,44,73,71,47,48, - 73,50,51,52,53,54,55,56,57,58, - 0,60,0,3,0,64,0,66,67,0, - 59,44,45,0,59,0,49,0,0,0, - 0,3,3,3,9,0,59,0,3,62, - 3,0,65,0,0,68,0,1,2,3, - 4,5,6,7,8,0,0,70,12,82, - 0,0,1,2,3,4,5,6,7,8, - 0,0,0,12,49,3,0,1,2,3, - 4,5,6,7,8,60,0,0,12,73, - 44,45,73,0,71,49,9,0,71,0, - 0,0,0,0,0,44,45,0,62,0, - 49,65,71,0,68,71,73,0,72,0, - 44,45,0,62,0,49,65,71,82,68, - 70,0,0,72,0,0,49,0,62,0, - 0,65,71,82,68,59,0,60,72,0, - 1,2,3,4,5,6,7,8,82,0, - 0,12,0,0,0,1,2,3,4,5, - 6,7,8,0,0,0,12,0,0,0, - 1,2,3,4,5,6,7,8,0,0, - 0,12,0,44,45,0,0,0,49,0, - 0,0,0,0,0,0,0,0,44,45, - 0,62,0,49,65,0,0,68,0,0, - 0,72,0,44,45,0,62,0,49,65, - 0,82,68,0,0,0,72,0,0,0, - 0,62,0,0,65,0,82,68,0,1, - 2,3,4,5,6,7,8,0,0,0, - 12,82,0,0,1,2,3,4,5,6, - 7,8,0,0,0,12,0,0,0,0, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,41,24,25,26,27,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,0,1,2,3,4,5,6,7,8, + 9,10,11,12,13,14,15,16,17,18, + 19,20,21,22,0,24,25,26,27,28, + 29,30,31,32,33,34,35,36,37,38, + 39,40,0,1,2,0,4,0,0,0, + 0,9,3,0,12,13,14,15,16,17, + 18,19,20,21,22,0,1,2,0,1, + 2,0,0,24,25,4,0,0,0,3, + 3,0,0,0,0,3,44,0,0,0, + 48,49,50,51,52,53,54,55,56,57, + 58,23,60,0,59,63,0,65,66,0, + 1,2,47,4,90,47,67,70,9,71, + 96,12,13,14,15,16,17,18,19,20, + 21,22,0,1,2,3,4,5,6,7, + 8,0,0,90,0,1,2,0,70,96, + 72,9,103,44,70,23,9,48,49,50, + 51,52,53,54,55,56,57,58,0,60, + 121,0,63,70,65,66,44,45,95,47, + 12,13,14,15,16,17,18,19,20,21, + 22,47,0,61,47,0,64,26,0,0, + 68,0,0,62,72,4,64,60,120,120, + 0,9,44,0,82,0,48,49,50,51, + 52,53,54,55,56,57,58,0,1,2, + 3,4,5,6,7,8,0,1,2,3, + 4,5,6,7,8,0,0,0,3,47, + 23,59,0,0,59,3,0,0,59,23, + 59,69,60,0,0,0,3,0,69,71, + 0,44,45,3,47,0,23,62,3,23, + 44,45,0,47,71,93,94,0,61,0, + 23,64,93,94,0,68,0,61,45,72, + 64,45,0,0,68,3,3,0,72,82, + 0,0,45,0,0,26,59,71,82,0, + 1,2,3,4,5,6,7,8,0,1, + 2,3,4,5,6,7,8,70,73,75, + 0,0,23,0,62,0,0,0,0,62, + 0,23,0,0,1,2,3,4,5,6, + 7,8,0,44,45,71,47,71,0,122, + 0,0,44,45,0,47,23,70,0,0, + 61,71,0,64,0,0,0,68,0,61, + 0,72,64,0,0,0,68,44,45,0, + 47,82,0,0,0,0,0,0,0,0, + 82,0,0,0,61,0,0,64,0,0, + 0,68,0,1,2,3,4,5,6,7, + 8,0,0,0,0,82,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,44,45,0,0,0,49,0,0, - 0,0,0,0,0,0,0,44,45,0, - 62,0,49,65,0,0,68,0,0,0, - 0,0,0,0,0,62,0,0,65,0, - 82,68,0,0,0,0,0,0,0,0, - 0,0,0,0,0,82,0,0,0,0, + 0,0,0,0,0,0,44,45,0,47, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,61,0,0,64,0,0,0, + 68,0,0,0,0,0,0,0,0,0, + 0,0,0,0,82,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, @@ -1555,413 +1496,400 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TermAction { public final static char termAction[] = {0, - 5588,5554,5551,5551,5551,5551,5551,5551,5551,1, - 1,1,5564,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5561,3393,1,1,5588, - 1,1,1,1,1,1,1,1,1,42, - 1,1929,2358,5629,1,2110,1,1,3336,5588, - 5229,5226,5595,5629,957,3154,3392,3039,2226,2990, - 3337,3559,1,3385,782,3375,2996,3344,8,5573, - 5573,5573,5573,5573,5573,5573,5573,5573,5573,5573, - 5573,5573,5573,5573,5573,5573,5573,5573,5573,5573, - 5573,5573,5573,5573,5573,5573,5573,5573,5573,5573, - 5573,5573,5573,5573,5573,5573,5573,5573,5573,5573, - 5573,5573,5573,5573,5573,5573,5573,5588,5573,5573, - 5573,5573,5573,5573,5573,5573,5573,5588,5573,5573, - 5573,134,5573,5573,5573,5573,5573,118,124,2412, - 5573,5588,5573,3500,5573,5573,5573,5573,5573,5573, - 5588,5573,5573,5573,5573,5573,5588,5554,5551,5551, - 5551,5551,5551,5551,5551,1,1,1,5558,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,5561,3393,1,1,379,1,1,1,1, - 1,1,1,1,1,138,1,1929,2358,2565, - 1,2110,1,1,3336,120,2695,2791,3476,3452, - 957,3500,3392,3039,2226,2990,3337,3559,3538,3385, - 782,3375,2996,3344,5588,5554,5551,5551,5551,5551, - 5551,5551,5551,1,1,1,5558,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5561, - 3393,1,1,142,1,1,1,1,1,1, - 1,1,1,5588,1,1929,2358,660,1,2110, - 1,1,3336,119,139,2353,3476,3452,957,3500, - 3392,3039,2226,2990,3337,3559,3538,3385,782,3375, - 2996,3344,5588,5554,5551,5551,5551,5551,5551,5551, - 5551,1,1,1,5558,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5561,3393,1, - 1,5588,1,1,1,1,1,1,1,1, - 1,121,1,1929,2358,2265,1,2110,1,1, - 3336,2954,2873,136,3476,3452,957,3762,3392,3039, - 2226,2990,3337,3559,2353,3385,782,3375,2996,3344, - 5588,5554,5551,5551,5551,5551,5551,5551,5551,1, - 1,1,5558,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5561,3393,1,1,5588, - 1,1,1,1,1,1,1,1,1,508, - 1,1929,2358,5268,1,2110,1,1,3336,140, - 5588,5605,5606,1,957,3010,3392,3039,2226,2990, - 3337,3559,592,3385,782,3375,2996,3344,5588,5554, - 5551,5551,5551,5551,5551,5551,5551,1,1,1, - 5558,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5561,3393,1,1,5588,1,1, - 1,1,1,1,1,1,1,2746,1,1929, - 2358,132,1,2110,1,1,3336,5588,5229,5226, - 5588,5629,957,2477,3392,3039,2226,2990,3337,3559, - 2318,3385,782,3375,2996,3344,5588,5554,5551,5551, - 5551,5551,5551,5551,5551,1,1,1,5558,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,5561,3393,1,1,5588,1,1,1,1, - 1,1,1,1,1,5588,1,1929,2358,133, - 1,2110,1,1,3336,5588,5605,5606,2541,2445, - 957,3234,3392,3039,2226,2990,3337,3559,5588,3385, - 782,3375,2996,3344,5588,5554,5551,5551,5551,5551, - 5551,5551,5551,1,1,1,5558,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5561, - 3393,1,1,1,1,1,1,1,1,1, - 1,1,1,5588,1,1929,2358,2575,1,2110, - 1,1,3336,5588,5421,5418,2541,2445,957,3292, - 3392,3039,2226,2990,3337,3559,5588,3385,782,3375, - 2996,3344,5588,5554,5551,5551,5551,5551,5551,5551, - 5551,1,1,1,5558,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5561,3393,1, - 1,5588,1,1,1,1,1,1,1,1, - 1,141,1,1929,2358,2603,1,2110,1,1, - 3336,5588,5588,53,5421,5418,957,1839,3392,3039, - 2226,2990,3337,3559,5592,3385,782,3375,2996,3344, - 5588,3338,1,1,1,1,1,1,1,1, - 1,1,5598,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5597,3393,1,1,5588, - 1,1,1,1,1,1,1,1,1,223, - 1,1929,2358,405,1,2110,1,1,3336,397, - 5229,5226,2318,5629,957,5497,3392,3039,2226,2990, - 3337,3559,5588,3385,782,3375,2996,3344,5588,5411, - 5411,5411,5411,5411,5411,5411,5411,5591,5411,5411, - 5411,5411,5411,5844,5588,30,5847,5930,5500,5931, - 5841,5848,5820,5846,5845,5842,5843,5821,42,1, - 5324,5320,5503,5328,5509,5588,5506,41,5244,5241, - 3010,5598,5411,5411,751,5411,5411,5588,5411,5411, - 5411,5411,5411,5411,5411,5411,5411,5411,42,5411, - 5588,5411,5629,436,1023,1944,5923,5411,5411,5411, - 5411,5411,5411,5411,5597,5588,5229,5226,4545,646, - 1991,1023,3153,5923,5439,5439,5411,5411,5411,5411, - 5411,5411,5411,5411,5411,5411,5411,5411,5411,5411, - 5411,5411,5411,5411,5411,5411,5411,5411,5411,5411, - 5411,5411,5411,5411,5411,291,5605,5606,5411,5588, - 5551,5551,5551,5551,5551,5551,5551,5551,1,1, - 1,5576,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5576,5748,1,1,137,1, - 1,1,1,1,1,1,1,1,5588,1, - 6020,6021,6022,1,5588,1,1,5588,1,1, - 1,1,1,1,1,1,1,1,1,5588, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5748,1,1,390,1,1,1, - 1,1,1,1,1,1,5588,1,39,5488, - 5485,1,5588,1,1,5588,1,1,1,1, - 1,1,1,1,1,1,1,592,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 5225,5748,1,1,5588,1,1,1,1,1, - 1,1,1,1,161,1,5588,318,5588,1, - 2994,1,1,5588,1,1,1,1,1,1, - 1,1,1,1,1,518,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5232,5748, - 1,1,5588,1,1,1,1,1,1,1, - 1,1,189,1,1365,4257,3141,1,1320,1, - 1,5588,1,1,1,1,1,1,1,1, - 1,1,1,5588,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5588,5748,1,1, - 1029,1,1,1,1,1,1,1,1,1, - 5588,1,397,5605,5606,1,3538,1,1,42, - 5229,5226,5064,646,3427,4011,3153,4034,1011,3988, - 3965,40,4080,4057,5853,5851,5860,5859,5855,5856, - 5854,5857,5858,5861,5852,5611,3942,681,894,5613, - 795,1032,869,5614,5612,651,5607,5609,5610,5608, - 864,224,1,5844,5585,3658,5847,5930,5588,5931, - 5841,5848,5820,5846,5845,5842,5843,5821,38,5986, - 5627,390,5265,903,5271,5987,5988,5271,511,5271, - 5265,5271,5271,5271,5271,5271,371,5324,5320,2764, - 5328,1991,1,3153,1,5844,5588,341,5847,5930, - 114,5931,5841,5848,5820,5846,5845,5842,5843,5821, - 5588,9350,9344,5265,5588,1905,5271,142,2039,1144, - 5588,5324,5320,4545,5328,1991,5527,3153,5524,128, - 5271,439,1,1,5271,1,5588,5250,362,5250, - 5271,5271,5271,5271,5271,5930,5271,5931,928,1905, - 350,42,42,3658,5629,3303,1023,1184,5923,5271, - 5271,5271,5271,5271,5271,5271,5271,5271,5271,5271, - 5271,5271,5271,5271,5271,5271,5271,5271,5271,5271, - 5271,5271,5271,5271,5271,5271,5271,5271,1860,389, - 4126,5271,5274,2081,5588,5274,4149,5274,2411,5274, - 5274,5274,5274,5274,350,5533,5530,2764,646,1991, - 1023,3153,5923,1905,40,5454,5454,2695,2791,2265, - 1839,1815,1770,1725,1680,1635,1590,1545,1500,1455, - 1410,3762,1,5949,5274,317,5324,5320,4545,5328, - 1991,5527,3153,5524,165,1,5451,5451,5277,5448, - 5588,1023,5274,5923,5588,123,5588,367,5274,5274, - 5274,5274,5274,5627,5274,2954,2873,1905,1,5324, - 5320,4545,5328,1991,5588,3153,5588,5274,5274,5274, - 5274,5274,5274,5274,5274,5274,5274,5274,5274,5274, - 5274,5274,5274,5274,5274,5274,5274,5274,5274,5274, - 5274,5274,5274,5274,5274,5274,453,165,452,5274, - 5588,5464,5464,228,5460,228,228,228,228,1, - 367,352,5468,2650,1614,1,1,1,1,1, - 1,1,1,1,1,1,5588,5605,5606,122, - 367,1,5324,5320,4545,5328,1991,396,3153,2954, - 2873,5268,3591,317,1,228,5998,1,1,496, - 1,1,1,1,1,1,1,1,1,5253, - 1,5256,1116,117,1,5588,1,1,4103,573, - 5588,309,414,228,1905,425,317,5588,9928,9928, - 5896,353,6083,5588,5464,5464,228,5460,228,228, - 228,228,1,5588,324,5512,508,5515,1,1, - 1,1,1,1,1,1,1,1,1,5588, - 5421,5418,48,5430,5430,135,225,6020,6021,6022, - 5588,5229,5226,2412,5629,2728,5627,1,228,5998, - 1,1,496,1,1,1,1,1,1,1, - 1,1,529,1,1905,1116,5588,1,3174,1, - 1,4103,573,4126,5588,413,228,1905,5588,4149, - 5844,5427,6095,5847,5930,6083,5931,5841,5848,5820, - 5846,5845,5842,5843,5821,1,5324,5320,5503,5328, - 5509,1581,5506,3248,1,5324,5320,2764,5328,1991, - 5588,3153,5588,5229,5226,5588,646,1991,3137,3153, - 6020,6021,6022,5588,1,1,1,1,1,1, - 1,1,1,1,1,5598,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1905,5597,5748, - 5588,1,1,1,1,1,1,1,1,1, - 1,1,167,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,167,5748,5588,1,1, - 1,1,1,1,1,1,1,1,1,167, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,5588,167,5748,5588,1,1,1,1,1, - 1,1,1,1,1,1,167,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5588,5951, - 5748,1,5324,5320,4545,5328,1991,5588,3153,5588, - 3330,5588,1,5324,5320,2764,5328,1991,5588,3153, - 440,42,42,5594,5629,5588,5445,5588,5442,167, - 5588,1,1,1,1,1,1,1,1,1, - 1,1,167,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,2081,1905,5748,95,1,1, - 5588,1,5989,5457,3868,5457,5593,6038,40,5454, - 5454,5588,5596,5588,1,1,1,1,1,1, - 1,1,1,1,1,167,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,2394,5588,621, - 5588,1,1,1,1,1,1,1,1,1, - 1,1,5595,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5588,5588,5748,5588,1,1, - 1,1,1,1,1,1,1,1,1,1794, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,5588,1,5748,5588,1,1,1,1,1, - 1,1,1,1,1,1,1929,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5588,5588, - 5748,5588,1,1,1,1,1,1,1,1, - 1,1,1,3272,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5588,52,5748,1,5324, - 5320,5064,5328,3427,4011,3153,4034,5284,3988,3965, - 3324,4080,4057,5311,5317,5290,5293,5305,5302,5308, - 5299,5296,5287,5314,5611,3942,681,894,5613,795, - 1032,869,5614,5612,651,5607,5609,5610,5608,864, - 42,42,98,42,42,2313,5629,5588,5521,5588, - 5518,5588,5474,5471,4444,5588,1,1,1,1, - 1,1,1,1,1,1,1,512,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 5627,5748,5588,1,1,1,1,1,1,1, - 1,1,1,1,5588,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5588,5588,5748,5588, - 1,1,1,1,1,1,1,1,1,1, - 1,5588,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5588,3560,5748,5588,1,1,1, - 1,1,1,1,1,1,1,1,5570,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 5588,5588,5748,5588,1,1,1,1,1,1, - 1,1,1,1,1,5588,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5588,5588,5748, - 5588,1,1,1,1,1,1,1,1,1, - 1,1,5588,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5588,226,5748,42,5229,5226, - 5064,646,3427,4011,3153,4034,727,3988,3965,5596, - 4080,4057,5853,5851,5860,5859,5855,5856,5854,5857, - 5858,5861,5852,5611,3942,681,894,5613,795,1032, - 869,5614,5612,651,5607,5609,5610,5608,864,5844, - 116,292,5847,5930,1,5931,5841,5848,5820,5846, - 5845,5842,5843,5821,1,374,367,3658,3639,5588, - 5588,5229,5226,5588,646,1991,346,3153,33,5595, - 42,5229,5226,5064,646,3427,4011,3153,4034,727, - 3988,3965,5596,4080,4057,5853,5851,5860,5859,5855, - 5856,5854,5857,5858,5861,5852,5611,3942,681,894, - 5613,795,1032,869,5614,5612,651,5607,5609,5610, - 5608,864,818,5588,5605,5606,5588,1905,1991,367, - 3153,5588,94,346,346,5262,1230,508,4376,346, - 4126,3639,3581,3141,236,1,4149,5424,4762,367, - 33,421,5595,144,5229,5226,5064,646,3427,4011, - 3153,4034,727,3988,3965,5588,4080,4057,5853,5851, - 5860,5859,5855,5856,5854,5857,5858,5861,5852,5611, - 3942,681,894,5613,795,1032,869,5614,5612,651, - 5607,5609,5610,5608,864,42,42,1,5324,5320, - 5064,5328,3427,4011,3153,4034,5284,3988,3965,5235, - 4080,4057,5311,5317,5290,5293,5305,5302,5308,5299, - 5296,5287,5314,5611,3942,681,894,5613,795,1032, - 869,5614,5612,651,5607,5609,5610,5608,864,42, - 42,42,5229,5226,5064,646,3427,4011,3153,4034, - 727,3988,3965,5592,4080,4057,5853,5851,5860,5859, - 5855,5856,5854,5857,5858,5861,5852,5611,3942,681, - 894,5613,795,1032,869,5614,5612,651,5607,5609, - 5610,5608,42,5229,5226,5064,646,3427,4011,3153, - 4034,727,3988,3965,5588,4080,4057,5853,5851,5860, - 5859,5855,5856,5854,5857,5858,5861,5852,5611,3942, - 681,894,5613,795,1032,869,5614,5612,651,5607, - 5609,5610,5608,864,79,5588,5588,3328,115,129, - 309,127,5588,5605,5606,5588,5588,5656,5657,5896, - 5588,9350,9344,3639,42,5229,5226,5064,646,3427, - 4011,3153,4034,727,3988,3965,5591,4080,4057,5853, - 5851,5860,5859,5855,5856,5854,5857,5858,5861,5852, - 5611,3942,681,894,5613,795,1032,869,5614,5612, - 651,5607,5609,5610,5608,864,1,3302,2654,1325, - 366,6052,6046,3237,6050,1896,6044,6045,5247,6075, - 6076,5588,5229,5226,5588,646,5281,42,3153,1, - 5588,5629,290,6053,5588,222,5588,3803,4126,2695, - 2791,5545,2598,2570,4149,5588,5588,661,1722,1765, - 5853,5851,5860,5859,5855,5856,5854,5857,5858,5861, - 5852,103,53,131,1171,6055,5606,5588,53,812, - 910,5588,5605,3113,1117,6056,6077,6054,5588,5844, - 3286,126,5847,5930,130,5931,5841,5848,5820,5846, - 5845,5842,5843,5821,6066,6065,6078,6047,6048,6071, - 6072,5595,677,6069,6070,6049,6051,6073,6074,6079, - 6059,6060,6061,6057,6058,6067,6068,6063,6062,6064, - 5588,5606,2654,1325,5127,6052,6046,5605,6050,5588, - 6044,6045,5433,6075,6076,5588,5229,5226,5588,646, - 5281,5598,3153,2654,6020,6021,6022,6053,42,40, - 5454,5454,5629,5436,5454,5588,2598,2570,5588,5481, - 5477,5588,1722,1765,5588,5588,50,5494,5494,2695, - 2791,5588,5588,5598,5597,3885,423,2598,2570,6055, - 5588,5588,5588,812,1103,4261,5588,125,5588,6056, - 6077,6054,5588,5588,5588,1620,5115,638,2755,4532, - 5588,5588,5588,3680,1,3822,5597,5627,6066,6065, - 6078,6047,6048,6071,6072,5491,5594,6069,6070,6049, - 6051,6073,6074,6079,6059,6060,6061,6057,6058,6067, - 6068,6063,6062,6064,42,5229,5226,5064,646,3427, - 4011,3153,4034,727,3988,3965,3217,4080,4057,5853, - 5851,5860,5859,5855,5856,5854,5857,5858,5861,5852, - 5611,3942,681,894,5613,795,1032,869,5614,5612, - 651,5607,5609,5610,5608,2695,2791,5588,106,5593, - 449,4255,5588,5588,5588,42,5229,5226,5064,646, - 3427,4011,3153,4034,727,3988,3965,1595,4080,4057, - 5853,5851,5860,5859,5855,5856,5854,5857,5858,5861, - 5852,5611,3942,681,894,5613,795,1032,869,5614, - 5612,651,5607,5609,5610,5608,864,42,5229,5226, - 3140,646,3427,4011,3153,4034,727,3988,3965,5238, - 4080,4057,5853,5851,5860,5859,5855,5856,5854,5857, - 5858,5861,5852,5611,3942,681,894,5613,795,1032, - 869,5614,5612,651,5607,5609,5610,5608,42,5229, - 5226,5064,646,3427,4011,3153,4034,727,3988,3965, - 5588,4080,4057,5853,5851,5860,5859,5855,5856,5854, - 5857,5858,5861,5852,5611,3942,681,894,5613,795, - 1032,869,5614,5612,651,5607,5609,5610,5608,42, - 5229,5226,5064,646,3427,4011,3153,4034,727,3988, - 3965,44,4080,4057,5853,5851,5860,5859,5855,5856, - 5854,5857,5858,5861,5852,5611,3942,681,894,5613, - 795,1032,869,5614,5612,651,5607,5609,5610,5608, - 5588,5229,5226,372,5629,326,102,5588,5588,973, - 40,5454,5454,5588,389,5853,5851,5860,5859,5855, - 5856,5854,5857,5858,5861,5852,5588,179,5588,1, - 5259,5588,281,443,2197,5536,417,5588,5594,5567, - 5596,525,5588,1,5844,4389,5588,5847,5930,3151, - 5931,5841,5848,5820,5846,5845,5842,5843,5821,5627, - 5986,240,5404,5400,903,5408,5987,5988,1905,2042, - 973,5588,5567,5415,1275,5588,5391,5397,5370,5373, - 5385,5382,5388,5379,5376,5367,5394,1,5551,5551, - 228,5551,228,228,228,228,5058,444,1058,228, - 5595,5593,508,5588,525,5355,2306,2173,5346,5340, - 2134,5337,5364,5343,5334,5349,5352,5361,5358,5331, - 5588,5986,5588,3413,5588,903,5588,5987,5988,5588, - 2745,6875,228,503,3000,1,5548,501,5588,5588, - 5588,4451,5065,3171,5539,5588,3395,5588,5095,2358, - 4278,38,1315,5588,5588,3336,1,5551,5551,228, - 5551,228,228,228,228,5588,5588,2731,5579,6083, - 316,1,5551,5551,228,5551,228,228,228,228, - 5588,505,5588,5579,3209,5133,1,5551,5551,228, - 5551,228,228,228,228,5542,2,1,5582,5770, - 6875,228,3616,5588,4803,5548,5539,5588,5057,5588, - 5588,5588,5588,5588,5588,6875,228,5588,2358,5588, - 5548,1315,2203,5588,3336,2203,5769,5588,220,5588, - 6875,228,5588,2358,5588,5548,1315,1997,6083,3336, - 3540,5588,5588,220,5588,5588,3209,5588,2358,5588, - 5588,1315,735,6083,3336,40,5588,5542,219,1, - 5551,5551,228,5551,228,228,228,228,6083,5588, - 5588,5579,5588,5588,1,5551,5551,228,5551,228, - 228,228,228,5588,5588,5588,5579,5588,5588,1, - 5551,5551,228,5551,228,228,228,228,5588,5588, - 5588,228,5588,6875,228,5588,5588,5588,5548,5588, - 5588,5588,5588,5588,5588,5588,5588,5588,6875,228, - 5588,2358,5588,5548,1315,5588,5588,3336,5588,5588, - 5588,220,5588,6875,228,5588,2358,5588,5548,1315, - 5588,6083,3336,5588,5588,5588,220,5588,5588,5588, - 5588,2358,5588,5588,1315,5588,6083,3336,1,5551, - 5551,228,5551,228,228,228,228,5588,5588,5588, - 228,6083,5588,1,5551,5551,228,5551,228,228, - 228,228,5588,5588,5588,228,5588,5588,5588,5588, - 5588,5588,5588,5588,5588,5588,5588,5588,5588,5588, - 5588,5588,6875,228,5588,5588,5588,5548,5588,5588, - 5588,5588,5588,5588,5588,5588,5588,6875,228,5588, - 2358,5588,5548,1315,5588,5588,3336,5588,5588,5588, - 5588,5588,5588,5588,5588,2358,5588,5588,1315,5588, - 6083,3336,5588,5588,5588,5588,5588,5588,5588,5588, - 5588,5588,5588,5588,5588,6083 + 5360,5329,5326,5326,5326,5326,5326,5326,5326,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,5339,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5336,3450,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1871,1264,1,862,1,1,117,3362,41, + 5017,5014,5367,3357,2656,3433,549,3454,2151,3434, + 3400,3413,164,3425,564,3424,3531,3423,8,5345, + 5345,5345,5345,5345,5345,5345,5345,5345,5345,5345, + 5345,5345,5345,5345,5345,5345,5345,5345,5345,5345, + 5345,5345,5345,5345,5345,5345,5345,5345,5345,5345, + 5345,5345,5345,5345,5345,5345,5345,5345,5345,5345, + 5345,5345,5345,5345,5345,164,5345,5345,5345,5345, + 5345,5345,5345,5345,5345,5345,5345,5360,5345,5345, + 5345,5345,5345,5345,5345,119,5345,353,3333,3309, + 5345,3357,5345,5345,5360,5345,5345,5345,5345,5345, + 5366,5345,5345,5345,5345,5345,5360,5329,5326,5326, + 5326,5326,5326,5326,5326,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5333, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,5336,3450,5365,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1871,1264,1, + 862,1,1,118,3362,5360,3333,3309,123,3357, + 2656,3433,5712,3454,2151,3434,3400,3413,5366,3425, + 564,3424,3531,3423,5360,5329,5326,5326,5326,5326, + 5326,5326,5326,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5333,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5336, + 3450,5365,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1871,1264,1,862,1, + 1,300,3362,139,3333,3309,2616,2707,2656,3433, + 5659,3454,2151,3434,3400,3413,516,3425,564,3424, + 3531,3423,5360,5329,5326,5326,5326,5326,5326,5326, + 5326,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5333,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5336,3450,516, + 1,1,1,1,1,1,1,1,1,1, + 1,120,1,1871,1264,1,862,1,1,5360, + 3362,2867,2789,5360,5377,5378,2656,3433,1885,3454, + 2151,3434,3400,3413,2240,3425,564,3424,3531,3423, + 5360,5329,5326,5326,5326,5326,5326,5326,5326,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,5333,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5336,3450,137,1,1, + 1,1,1,1,1,1,1,1,1,133, + 1,1871,1264,1,862,1,1,2309,3362,5360, + 5002,4999,5360,5401,2656,3433,5360,3454,2151,3434, + 3400,3413,5360,3425,564,3424,3531,3423,5360,5329, + 5326,5326,5326,5326,5326,5326,5326,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,5333,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,5336,3450,2928,1,1,1,1, + 1,1,1,1,1,1,1,2275,1,1871, + 1264,1,862,1,1,1841,3362,5360,5002,4999, + 127,5401,2656,3433,5360,3454,2151,3434,3400,3413, + 5360,3425,564,3424,3531,3423,5360,5329,5326,5326, + 5326,5326,5326,5326,5326,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5333, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,5336,3450,3549,1,1,1,1,1,1, + 1,1,1,1,1,134,1,1871,1264,1, + 862,1,1,2309,3362,5360,5377,5378,2616,2707, + 2656,3433,5360,3454,2151,3434,3400,3413,416,3425, + 564,3424,3531,3423,5360,5329,5326,5326,5326,5326, + 5326,5326,5326,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5333,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5336, + 3450,4621,1,1,1,1,1,1,1,1, + 1,1,1,5360,1,1871,1264,1,862,1, + 1,4245,3362,5360,5196,5193,126,5360,2656,3433, + 2640,3454,2151,3434,3400,3413,5360,3425,564,3424, + 3531,3423,5360,5329,5326,5326,5326,5326,5326,5326, + 5326,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5333,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5336,3450,5360, + 1,1,1,1,1,1,1,1,1,1, + 1,5360,1,1871,1264,1,862,1,1,5752, + 3362,53,5211,5208,2616,2707,2656,3433,5360,3454, + 2151,3434,3400,3413,434,3425,564,3424,3531,3423, + 5360,3401,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,5370,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5369,3450,4733,1,1, + 1,1,1,1,1,1,1,1,1,122, + 1,1871,1264,1,862,1,1,2833,3362,2867, + 2789,53,5196,5193,2656,3433,33,3454,2151,3434, + 3400,3413,5360,3425,564,3424,3531,3423,5360,5326, + 5326,5326,5326,5326,5326,5326,5326,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,5348,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,5348,5519,5008,1,1,1,1, + 1,1,1,1,1,1,1,1,1,343, + 2827,1,1826,1,1,5360,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,444,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 443,5519,344,1,1,1,1,1,1,1, + 1,1,1,1,1802,1,1802,5360,1,5360, + 1,1,5360,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5032,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5035,5519,1802, + 1,1,1,1,1,1,1,1,1,1, + 1,30,1,160,5360,1,5360,1,1,5360, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,102,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,317,5519,4998,1,1,1, + 1,1,1,1,1,1,1,1,1279,1, + 5220,5220,1,1285,1,1,5360,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,4692, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1802,5519,5005,1,1,1,1,1,1, + 1,1,1,1,1,5360,1,125,3412,1, + 332,1,1,42,5029,5026,3013,979,3284,3873, + 3535,3896,1176,3850,3827,5623,5621,5630,5629,5625, + 5626,5624,5627,5628,5631,5622,40,3942,3919,5383, + 3804,703,782,5385,764,619,774,5386,5384,664, + 5379,5381,5382,5380,803,5360,222,5615,33,5693, + 5694,5618,5693,5694,5612,5619,5591,5617,5616,5613, + 5614,5592,223,5749,381,5360,573,5050,5750,5751, + 5050,502,5050,5399,5047,5047,362,5106,5102,2685, + 5110,797,1,3535,1,2616,2707,5047,5047,5047, + 5615,5360,9572,9572,5618,5693,5694,5612,5619,5591, + 5617,5616,5613,5614,5592,138,5615,499,141,5050, + 5618,5693,5694,5612,5619,5591,5617,5616,5613,5614, + 5592,412,287,5047,341,42,42,2827,5401,5360, + 1096,5047,5686,5047,5047,5047,5047,5047,5399,315, + 5047,865,5296,1802,5360,5002,4999,1109,979,797, + 141,3535,5047,5047,5047,5047,5047,5047,5047,5047, + 5047,5047,5047,5047,5047,5047,5047,5047,5047,5047, + 5047,5047,5047,5047,5047,5047,5047,5047,121,1759, + 5360,5047,5047,5047,380,5047,5360,5056,2867,2789, + 5056,1802,5056,1934,5053,5053,5360,5106,5102,4391, + 5110,797,5308,3535,5305,2275,1802,5053,5053,5053, + 2201,5360,1716,1673,1630,1587,1544,1501,1458,1415, + 1372,1329,430,1,1,4181,1,5360,5023,5056, + 5023,341,5002,4999,2685,979,797,1096,3535,5686, + 1,5232,5232,5059,5229,1,1096,5360,5686,2280, + 5368,5053,2201,5053,5053,5053,5053,5053,42,2062, + 5053,42,5401,358,1096,5401,5686,4181,5320,2023, + 604,135,5053,5053,5053,5053,5053,5053,5053,5053, + 5053,5053,5053,5053,5053,5053,5053,5053,5053,5053, + 5053,5053,5053,5053,5053,5053,5053,5053,1802,5367, + 42,5053,5053,5053,5401,5053,5360,5245,5245,226, + 5241,226,226,226,226,1,358,5367,1,1, + 1,1,1,1,1,1,1,1,1,5249, + 431,42,42,5360,5401,358,5226,2828,5223,5360, + 5377,5378,1,5106,5102,5284,5110,5290,1087,5287, + 1,226,5761,487,1,1,1,1,1,1, + 1,1,1,1,1,5370,1,1807,124,1, + 580,1,1,5360,5360,5360,5196,5193,405,226, + 309,3965,913,3043,48,5205,5205,5369,5846,5360, + 5245,5245,226,5241,226,226,226,226,1,3467, + 140,1,1,1,1,1,1,1,1,1, + 1,1,5293,5360,5783,5784,5785,3965,913,42, + 5783,5784,5785,5401,224,1,5106,5102,4391,5110, + 797,5202,3535,1,226,5761,487,1,1,1, + 1,1,1,1,1,1,1,1,308,1, + 1807,1240,1,5360,1,1,2616,2707,5360,5377, + 5378,404,226,797,5360,3535,93,2053,5615,5041, + 308,5846,5618,5693,5694,5612,5619,5591,5617,5616, + 5613,5614,5592,5360,5002,4999,4391,979,797,1096, + 3535,5686,308,5106,5102,4391,5110,797,5308,3535, + 5305,2240,5360,5783,5784,5785,5360,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5370, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 5360,5369,5519,5360,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,166,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,131,166,5519, + 5360,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,166,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,52,166,5519,5360,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 166,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,2012,5360,5519,2370,2341,286,5377,5378,5360, + 5360,1,5106,5102,2685,5110,797,5360,3535,1, + 5106,5102,2685,5110,797,387,3535,235,1,380, + 5199,4844,5366,166,5360,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,166,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1802,4860, + 5519,132,5360,5541,499,5365,1802,5360,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 166,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,5360,5360,561,5360,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5360,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,2370,2341, + 5519,5360,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,5360,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5360,2314,5519,5360,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,5360,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,2992,2346,5519,5360,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5360,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5360, + 2365,5519,1,5106,5102,3013,5110,3284,3873,3535, + 3896,5066,3850,3827,5093,5099,5072,5075,5087,5084, + 5090,5081,5078,5069,5096,101,3942,3919,5383,3804, + 703,782,5385,764,619,774,5386,5384,664,5379, + 5381,5382,5380,803,42,42,5360,5858,5360,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,503,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1973,5360,5519,5360,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5360,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 5360,5519,5360,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5360,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,5360,5801,5519,5360, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,5360,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,5360,5714,5519,5360,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,427, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 5360,4153,5519,5360,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,3585,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5360,225,5519, + 42,5002,4999,3013,979,3284,3873,3535,3896,775, + 3850,3827,5623,5621,5630,5629,5625,5626,5624,5627, + 5628,5631,5622,5368,3942,3919,5383,3804,703,782, + 5385,764,619,774,5386,5384,664,5379,5381,5382, + 5380,803,5615,5783,5784,5785,5618,5693,5694,5612, + 5619,5591,5617,5616,5613,5614,5592,5360,5029,5026, + 1,5401,4179,1,5106,5102,4391,5110,797,440, + 3535,5360,5367,42,5002,4999,3013,979,3284,3873, + 3535,3896,775,3850,3827,5623,5621,5630,5629,5625, + 5626,5624,5627,5628,5631,5622,5368,3942,3919,5383, + 3804,703,782,5385,764,619,774,5386,5384,664, + 5379,5381,5382,5380,803,39,5269,5266,5360,1697, + 5360,4315,5360,5002,4999,1885,979,5063,5011,3535, + 5360,5211,5208,2299,3050,4179,2023,1,5106,5102, + 4391,5110,797,357,3535,5367,143,5002,4999,3013, + 979,3284,3873,3535,3896,775,3850,3827,5623,5621, + 5630,5629,5625,5626,5624,5627,5628,5631,5622,964, + 3942,3919,5383,3804,703,782,5385,764,619,774, + 5386,5384,664,5379,5381,5382,5380,803,42,42, + 1,5106,5102,3013,5110,3284,3873,3535,3896,5066, + 3850,3827,5093,5099,5072,5075,5087,5084,5090,5081, + 5078,5069,5096,1611,3942,3919,5383,3804,703,782, + 5385,764,619,774,5386,5384,664,5379,5381,5382, + 5380,803,42,42,42,5002,4999,3013,979,3284, + 3873,3535,3896,775,3850,3827,5623,5621,5630,5629, + 5625,5626,5624,5627,5628,5631,5622,5364,3942,3919, + 5383,3804,703,782,5385,764,619,774,5386,5384, + 664,5379,5381,5382,5380,42,5002,4999,3013,979, + 3284,3873,3535,3896,775,3850,3827,5623,5621,5630, + 5629,5625,5626,5624,5627,5628,5631,5622,136,3942, + 3919,5383,3804,703,782,5385,764,619,774,5386, + 5384,664,5379,5381,5382,5380,803,1,5106,5102, + 5284,5110,5290,5360,5287,5360,4316,113,4501,5360, + 5002,4999,5360,979,5063,4581,3535,4179,94,1, + 1,1,1,53,5238,381,5238,5378,5360,40, + 5235,5235,5363,42,5002,4999,3013,979,3284,3873, + 3535,3896,775,3850,3827,5623,5621,5630,5629,5625, + 5626,5624,5627,5628,5631,5622,1032,3942,3919,5383, + 3804,703,782,5385,764,619,774,5386,5384,664, + 5379,5381,5382,5380,803,1,2101,580,1752,5360, + 5815,5809,5378,5813,1,5807,5808,2827,1,5326, + 5326,226,5326,226,226,226,226,3988,44,5838, + 5839,3451,5816,4011,97,42,42,337,5401,5360, + 5302,226,5299,2914,5360,5255,5252,1369,1408,5360, + 5002,4999,5360,979,797,116,3535,5360,388,5377, + 5378,380,9604,226,5818,5323,5360,9516,8868,5360, + 5377,5378,624,5360,5819,5840,5817,3508,1,1871, + 5364,1802,2520,337,337,365,3362,5038,128,5360, + 337,5399,4088,5829,5828,5841,5810,5811,5834,5835, + 5846,358,5832,5833,5812,5814,5836,5837,5842,5822, + 5823,5824,5820,5821,5830,5831,5826,5825,5827,5360, + 5044,1,1752,5360,5815,5809,4092,5813,5360,5807, + 5808,3495,1,5326,5326,226,5326,226,226,226, + 226,5360,396,5838,5839,3988,5816,2575,388,5029, + 5026,4011,5401,5360,358,5351,1152,5020,40,5235, + 5235,1369,1408,5235,5360,5278,5360,5360,40,5235, + 5235,791,2333,358,2333,5363,9604,226,5818,5323, + 499,2454,2424,5360,9516,8868,624,5281,5819,5840, + 5817,105,3518,1871,4330,42,2520,3186,2658,5360, + 3362,2906,2735,363,219,2190,5360,5829,5828,5841, + 5810,5811,5834,5835,5846,5399,5832,5833,5812,5814, + 5836,5837,5842,5822,5823,5824,5820,5821,5830,5831, + 5826,5825,5827,42,5002,4999,3013,979,3284,3873, + 3535,3896,775,3850,3827,5623,5621,5630,5629,5625, + 5626,5624,5627,5628,5631,5622,5360,3942,3919,5383, + 3804,703,782,5385,764,619,774,5386,5384,664, + 5379,5381,5382,5380,1197,3630,2658,42,5002,4999, + 3013,979,3284,3873,3535,3896,775,3850,3827,5623, + 5621,5630,5629,5625,5626,5624,5627,5628,5631,5622, + 1148,3942,3919,5383,3804,703,782,5385,764,619, + 774,5386,5384,664,5379,5381,5382,5380,803,42, + 5002,4999,3622,979,3284,3873,3535,3896,775,3850, + 3827,5623,5621,5630,5629,5625,5626,5624,5627,5628, + 5631,5622,520,3942,3919,5383,3804,703,782,5385, + 764,619,774,5386,5384,664,5379,5381,5382,5380, + 42,5002,4999,3013,979,3284,3873,3535,3896,775, + 3850,3827,5623,5621,5630,5629,5625,5626,5624,5627, + 5628,5631,5622,3185,3942,3919,5383,3804,703,782, + 5385,764,619,774,5386,5384,664,5379,5381,5382, + 5380,42,5002,4999,3013,979,3284,3873,3535,3896, + 775,3850,3827,5623,5621,5630,5629,5625,5626,5624, + 5627,5628,5631,5622,115,3942,3919,5383,3804,703, + 782,5385,764,619,774,5386,5384,664,5379,5381, + 5382,5380,5360,5029,5026,5360,5401,285,408,78, + 5360,1013,3693,114,5623,5621,5630,5629,5625,5626, + 5624,5627,5628,5631,5622,5360,5262,5258,50,5275, + 5275,5360,5360,5427,5428,1756,277,5360,5360,5311, + 4502,5360,5360,1,414,4809,5615,5360,370,509, + 5618,5693,5694,5612,5619,5591,5617,5616,5613,5614, + 5592,5368,5749,435,2958,573,5360,5750,5751,239, + 5186,5182,5399,5190,3988,5272,4090,712,1013,2112, + 4011,5173,5179,5152,5155,5167,5164,5170,5161,5158, + 5149,5176,1,5326,5326,226,5326,226,226,226, + 226,5360,300,3988,40,5235,5235,1,989,4011, + 5367,5659,646,5137,2823,5351,5314,5128,5122,5119, + 5146,5125,5116,5131,5134,5143,5140,5113,221,5749, + 717,5360,573,3513,5750,5751,9604,226,4087,5323, + 5623,5621,5630,5629,5625,5626,5624,5627,5628,5631, + 5622,5399,130,1871,3167,5360,2520,3603,494,129, + 3362,53,1,1264,219,5377,2778,5317,3585,3585, + 5360,5314,5615,492,5846,1,5618,5693,5694,5612, + 5619,5591,5617,5616,5613,5614,5592,1,5326,5326, + 226,5326,226,226,226,226,1,5326,5326,226, + 5326,226,226,226,226,5360,38,188,3516,3167, + 5354,2575,5360,5360,3409,4781,178,2,2575,5351, + 5377,5214,5317,5360,5360,5360,4823,5360,5217,4850, + 5360,9604,226,3012,5323,5360,5370,3620,4824,5342, + 9604,226,5360,5323,4854,2454,2424,5360,1871,1, + 5370,2520,2454,2424,5360,3362,5360,1871,5369,218, + 2520,5342,5360,5360,3362,3468,4693,307,219,5846, + 496,5360,5369,5360,5360,3289,40,3690,5846,1, + 5326,5326,226,5326,226,226,226,226,1,5326, + 5326,226,5326,226,226,226,226,4279,5540,3634, + 5360,5360,5351,5360,3624,5360,5360,5360,5360,3715, + 5360,226,5360,1,5326,5326,226,5326,226,226, + 226,226,5360,9604,226,3690,5323,1891,5360,5357, + 5360,5360,9604,226,5360,5323,226,4363,5360,5360, + 1871,846,5360,2520,5360,5360,5360,3362,5360,1871, + 5360,219,2520,5360,5360,5360,3362,9604,226,5360, + 5323,5846,5360,5360,5360,5360,5360,5360,5360,5360, + 5846,5360,5360,5360,1871,5360,5360,2520,5360,5360, + 5360,3362,1,5326,5326,226,5326,226,226,226, + 226,5360,5360,5360,5360,5846,5360,5360,5360,5360, + 5360,5360,5360,5360,5360,226,5360,5360,5360,5360, + 5360,5360,5360,5360,5360,5360,5360,5360,5360,5360, + 5360,5360,5360,5360,5360,5360,9604,226,5360,5323, + 5360,5360,5360,5360,5360,5360,5360,5360,5360,5360, + 5360,5360,5360,1871,5360,5360,2520,5360,5360,5360, + 3362,5360,5360,5360,5360,5360,5360,5360,5360,5360, + 5360,5360,5360,5360,5846 }; }; public final static char termAction[] = TermAction.termAction; @@ -1969,59 +1897,59 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asb { public final static char asb[] = {0, - 1075,7,447,7,1,606,742,742,742,742, - 65,606,184,742,618,184,1112,430,1114,448, - 448,448,448,448,448,448,448,448,968,974, - 979,976,983,981,988,986,990,989,991,69, - 992,447,1075,37,37,37,37,487,77,9, - 181,37,360,544,184,184,9,649,184,544, - 544,287,431,890,36,729,67,299,306,1075, - 951,951,1054,1054,77,1075,448,448,448,448, - 448,448,448,448,448,448,448,448,448,448, - 448,448,448,448,448,447,447,447,447,447, - 447,447,447,447,447,447,1075,448,544,688, - 688,688,688,172,544,9,293,938,949,888, - 949,797,949,885,949,933,949,949,65,487, - 360,360,9,448,293,319,508,498,497,363, - 65,1114,360,36,447,485,728,484,487,486, - 484,544,360,976,976,974,974,974,981,981, - 981,981,979,979,986,983,983,989,988,990, - 1071,991,606,606,606,606,487,487,688,194, - 687,181,487,177,128,487,801,172,800,301, - 888,247,487,487,487,172,688,287,360,1007, - 544,510,512,487,729,448,37,972,252,544, - 67,487,487,486,729,447,1075,1075,1075,1075, - 606,606,431,297,177,128,801,302,801,172, - 801,247,247,487,172,487,544,558,490,501, - 512,172,485,544,972,293,728,67,487,485, - 544,544,544,544,77,77,177,176,612,487, - 128,1071,174,115,1061,128,801,801,744,487, - 247,612,610,611,487,309,447,499,499,234, - 234,487,506,293,804,544,487,972,973,972, - 1075,252,120,67,544,544,177,729,742,484, - 399,1063,481,606,615,64,745,487,612,448, - 487,309,447,447,512,487,729,544,510,490, - 309,374,972,77,448,360,120,485,143,485, - 801,801,481,1012,293,487,735,448,1071,242, - 744,487,65,65,487,554,512,309,973,544, - 360,1013,143,485,801,888,65,1063,481,728, - 448,448,487,487,487,554,544,554,687,742, - 122,122,1013,888,411,615,487,606,487,487, - 606,547,554,143,753,143,686,686,608,412, - 65,487,77,513,547,837,1016,597,606,886, - 789,143,37,37,608,411,1071,448,1071,1013, - 606,606,606,412,606,487,562,1013,1013,487, - 888,410,544,502,549,690,688,597,837,752, - 888,839,888,65,687,403,606,403,1071,412, - 430,430,428,842,430,1013,1013,232,608,37, - 549,753,752,753,1013,241,1012,544,752,752, - 65,752,487,835,804,544,481,544,562,1013, - 597,606,544,608,752,447,846,481,1013,612, - 752,752,487,752,487,122,544,544,387,412, - 232,412,1013,562,597,1075,412,409,612,544, - 844,612,487,612,1013,686,888,888,923,447, - 410,1073,1013,544,844,1013,484,412,544,1073, - 1013,611,412,544,844,412 + 926,67,537,67,61,760,595,595,595,595, + 57,760,177,595,762,177,963,520,965,538, + 538,538,538,538,538,538,538,538,1059,1065, + 1070,1067,1074,1072,1079,1077,1081,1080,1082,116, + 1083,537,926,29,29,29,29,577,124,1, + 174,29,403,486,177,177,1,793,177,486, + 486,104,521,836,28,662,59,1040,926,1042, + 1042,917,917,124,926,538,538,538,538,538, + 538,538,538,538,538,538,538,538,538,538, + 538,538,538,538,537,537,537,537,537,537, + 537,537,537,537,537,926,538,486,832,832, + 832,832,271,486,1,110,1029,1040,1014,1040, + 614,1040,1011,1040,1024,57,577,403,403,1, + 538,110,362,450,440,439,321,57,965,403, + 28,537,575,661,574,577,576,574,486,403, + 1067,1067,1065,1065,1065,1072,1072,1072,1072,1070, + 1070,1077,1074,1074,1080,1079,1081,1117,1082,760, + 760,760,760,577,577,832,187,831,174,577, + 170,227,577,618,271,617,406,1014,357,577, + 577,577,271,832,104,403,1098,486,452,454, + 577,662,538,29,1063,69,486,59,577,577, + 576,662,537,926,926,926,926,760,760,521, + 114,170,227,618,407,618,271,618,357,357, + 577,271,577,486,608,432,443,454,271,575, + 486,1063,110,661,59,577,575,486,486,486, + 486,124,124,170,169,582,577,227,1117,273, + 162,1107,227,618,618,1016,577,357,582,580, + 581,577,416,537,441,441,275,275,577,448, + 110,288,486,577,1063,1064,1063,926,69,167, + 59,486,486,170,662,595,574,489,1109,571, + 760,585,56,1017,577,582,538,577,416,537, + 537,454,577,662,486,452,432,416,332,1063, + 124,538,403,167,575,242,575,618,618,571, + 1103,110,577,588,538,1117,283,1016,577,57, + 57,577,604,454,416,1064,486,403,1104,242, + 575,618,1014,57,1109,571,661,538,538,577, + 577,577,604,486,604,831,595,426,426,1104, + 1014,501,585,577,760,577,577,760,597,604, + 242,669,242,830,830,621,502,57,577,124, + 455,597,612,879,751,760,411,705,242,29, + 29,621,501,1117,538,1117,1104,760,760,760, + 502,760,577,716,1104,1104,577,1014,500,486, + 444,599,623,832,751,612,668,1014,1014,713, + 57,831,493,760,493,1117,502,520,520,518, + 834,520,1104,1104,225,621,29,599,669,668, + 669,1104,282,1103,486,668,668,668,57,577, + 319,288,486,571,486,716,1104,751,760,486, + 621,668,537,972,571,1104,582,668,668,668, + 577,577,426,486,486,345,502,225,502,1104, + 716,751,926,502,499,582,486,970,582,582, + 577,1104,830,1014,1014,869,537,500,924,1104, + 486,970,1104,574,502,486,924,1104,581,502, + 486,970,502 }; }; public final static char asb[] = Asb.asb; @@ -2029,118 +1957,118 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asr { public final static byte asr[] = {0, - 12,73,115,75,45,70,116,0,28,42, - 29,30,43,7,31,32,33,34,41,35, - 36,37,38,39,26,13,14,8,6,10, - 11,5,27,69,40,3,51,15,16,60, - 48,17,64,52,44,18,53,54,19,20, - 55,56,21,22,57,66,58,9,67,23, - 24,50,25,47,1,2,4,0,69,73, - 95,70,115,72,45,116,12,75,15,16, - 28,42,17,29,30,18,19,20,43,31, - 21,22,32,33,34,41,35,36,23,24, - 25,37,38,39,26,3,13,14,8,6, - 10,11,27,40,7,1,2,4,9,5, - 0,69,71,70,1,2,0,82,7,117, - 118,119,62,12,3,8,6,5,73,72, - 45,46,51,15,16,60,48,17,64,52, - 44,18,53,54,19,20,55,56,21,22, - 57,66,58,9,67,23,47,24,50,25, - 4,1,2,49,0,41,48,7,50,5, - 1,2,4,74,12,61,73,95,115,75, - 72,45,116,63,3,120,96,103,90,13, - 14,8,6,10,11,91,92,88,89,59, - 93,94,97,98,99,100,101,102,114,104, - 105,106,107,108,109,110,111,112,113,69, - 70,71,0,74,61,69,73,95,75,63, - 3,12,70,45,71,0,1,2,12,72, - 0,96,90,10,11,91,92,88,89,59, - 93,94,97,98,99,100,101,102,114,73, - 95,71,104,105,106,107,108,109,110,111, - 112,113,115,72,45,116,12,69,70,75, - 3,63,1,2,8,4,6,0,12,45, - 4,59,61,73,0,59,4,0,48,41, - 50,12,69,95,71,70,75,0,42,43, - 3,9,29,33,31,28,36,16,25,15, - 21,19,20,22,23,18,17,24,37,40, - 38,39,26,35,30,34,5,7,4,13, - 14,8,6,10,11,27,32,1,2,115, - 12,0,15,16,17,18,19,20,21,22, - 23,24,25,51,48,52,44,53,54,55, - 56,57,58,47,50,45,12,75,7,1, - 2,63,3,8,6,5,4,0,61,73, - 74,0,82,117,118,119,49,73,121,122, - 72,74,62,65,68,77,79,86,84,76, - 81,83,85,87,61,78,80,12,45,46, - 64,60,66,67,51,56,57,44,55,54, - 47,52,48,50,53,58,41,42,43,9, - 29,33,31,28,36,16,25,15,21,19, - 20,22,23,18,17,24,37,40,38,39, - 26,35,30,34,13,14,10,11,27,32, - 8,6,3,4,7,5,1,2,0,8, - 6,7,5,4,1,2,3,63,69,71, - 95,75,12,70,0,5,7,3,63,6, - 8,95,51,15,16,60,48,17,64,52, - 44,18,53,54,19,20,55,56,21,22, - 57,66,58,9,67,23,47,24,50,25, - 1,2,4,75,12,0,48,50,74,3, - 61,73,45,41,69,71,70,12,75,95, - 0,15,16,28,42,17,29,30,18,19, - 20,43,31,21,22,32,33,34,41,35, - 36,9,23,24,25,37,38,39,26,13, - 14,10,11,27,40,46,12,8,6,45, - 5,7,1,2,4,3,0,121,0,71, - 70,72,12,0,61,70,0,51,15,16, - 60,48,17,64,52,44,18,53,54,19, - 20,55,56,21,22,57,66,58,9,67, - 23,47,24,50,25,1,2,4,43,42, - 10,11,6,91,92,99,8,100,5,27, - 59,107,108,104,105,106,112,111,113,89, - 88,109,110,97,98,93,94,101,102,13, - 14,90,103,3,63,71,70,69,0,68, - 51,15,16,60,48,17,64,52,82,44, - 18,53,54,19,20,55,65,56,21,22, - 57,66,58,9,67,23,62,47,24,50, - 25,12,3,8,4,45,61,6,7,1, - 2,5,49,0,73,12,63,3,71,70, - 45,59,0,47,1,2,4,117,118,119, - 0,72,60,48,17,64,52,18,53,54, - 19,20,55,56,21,22,57,66,58,67, - 23,47,24,50,25,16,15,51,12,3, - 8,6,45,62,68,82,44,49,7,1, - 2,5,4,9,65,0,49,1,2,4, - 61,73,0,51,15,16,48,17,64,52, - 44,18,53,54,19,20,55,56,21,22, - 57,66,58,9,67,23,47,24,50,25, - 1,2,4,95,60,0,26,0,61,71, - 0,76,0,12,72,42,43,41,13,14, - 8,6,10,11,5,27,32,3,7,37, - 40,38,39,26,35,30,34,16,25,15, - 21,19,20,22,23,18,17,24,9,29, - 33,31,28,36,4,1,2,61,0,42, - 43,13,14,10,11,27,32,37,40,38, - 39,26,35,30,34,16,25,15,21,19, - 20,22,23,18,17,24,9,29,33,31, - 28,36,8,6,3,63,5,7,1,2, - 4,0,9,64,60,66,67,16,25,15, - 21,19,20,22,23,18,17,24,74,61, - 4,5,2,1,50,47,58,57,56,7, - 55,54,53,44,52,48,51,120,103,13, - 14,63,3,96,90,6,91,92,10,11, - 89,88,59,93,94,97,98,8,99,100, - 101,69,95,75,116,71,104,105,106,107, - 108,109,110,111,112,113,73,115,72,102, - 114,70,45,12,0,60,48,17,64,52, - 18,53,54,19,20,55,56,21,22,57, - 66,58,9,67,23,47,24,50,25,16, - 15,51,12,3,8,6,45,62,65,68, - 82,44,59,7,4,49,5,1,2,0, - 45,12,5,7,3,1,2,4,6,8, - 73,0,12,75,15,16,28,17,29,30, - 18,19,20,31,21,22,32,33,34,41, - 35,36,9,23,24,25,37,38,39,26, - 3,13,14,8,6,10,11,27,4,40, - 46,5,7,1,2,43,42,0 + 28,42,29,30,43,7,31,32,33,34, + 41,35,36,37,38,39,26,24,25,8, + 6,10,11,5,27,69,40,3,51,12, + 13,60,49,14,63,52,44,15,53,54, + 16,17,55,56,18,19,57,65,58,9, + 66,20,21,50,22,48,1,2,4,0, + 23,73,118,76,45,70,119,0,96,90, + 10,11,91,92,88,89,59,93,94,97, + 98,99,100,101,102,117,73,95,71,104, + 105,106,107,108,109,110,111,112,113,118, + 72,45,119,23,69,70,76,3,67,1, + 2,8,4,6,0,69,73,95,70,118, + 72,45,119,23,76,12,13,28,42,14, + 29,30,15,16,17,43,31,18,19,32, + 33,34,41,35,36,20,21,22,37,38, + 39,26,3,24,25,8,6,10,11,27, + 40,7,1,2,4,9,5,0,41,49, + 7,50,5,1,2,4,74,23,62,73, + 95,118,76,72,45,119,67,3,121,96, + 103,90,24,25,8,6,10,11,91,92, + 88,89,59,93,94,97,98,99,100,101, + 102,117,104,105,106,107,108,109,110,111, + 112,113,69,70,71,0,82,7,114,115, + 116,61,23,3,8,6,5,73,72,45, + 46,51,12,13,60,49,14,63,52,44, + 15,53,54,16,17,55,56,18,19,57, + 65,58,9,66,20,48,21,50,22,4, + 1,2,47,0,74,62,69,73,95,76, + 67,3,23,70,45,71,0,51,12,13, + 49,14,63,52,44,15,53,54,16,17, + 55,56,18,19,57,65,58,9,66,20, + 48,21,50,22,1,2,4,95,60,0, + 12,13,14,15,16,17,18,19,20,21, + 22,51,49,52,44,53,54,55,56,57, + 58,48,50,45,23,76,7,1,2,67, + 3,8,6,5,4,0,1,2,23,72, + 0,42,43,3,9,29,33,31,28,36, + 13,22,12,18,16,17,19,20,15,14, + 21,37,40,38,39,26,35,30,34,5, + 7,4,24,25,8,6,10,11,27,32, + 1,2,118,23,0,4,59,62,73,0, + 1,2,123,62,0,49,41,50,23,69, + 95,71,70,76,0,69,71,70,1,2, + 0,8,6,7,5,4,1,2,3,67, + 69,71,95,76,23,70,0,5,7,3, + 67,6,8,95,51,12,13,60,49,14, + 63,52,44,15,53,54,16,17,55,56, + 18,19,57,65,58,9,66,20,48,21, + 50,22,1,2,4,76,23,0,62,73, + 74,0,82,114,115,116,47,73,120,122, + 72,74,61,64,68,77,79,86,84,75, + 81,83,85,87,62,78,80,23,45,46, + 63,60,65,66,51,56,57,44,55,54, + 48,52,49,50,53,58,41,42,43,9, + 29,33,31,28,36,13,22,12,18,16, + 17,19,20,15,14,21,37,40,38,39, + 26,35,30,34,24,25,10,11,27,32, + 8,6,3,4,7,5,1,2,0,71, + 70,72,23,0,62,70,0,73,23,67, + 3,71,70,45,59,0,49,50,74,3, + 62,73,45,41,69,71,70,23,76,95, + 0,26,0,47,1,2,4,62,73,0, + 120,0,68,51,12,13,60,49,14,63, + 52,82,44,15,53,54,16,17,55,64, + 56,18,19,57,65,58,9,66,20,61, + 48,21,50,22,23,3,8,4,45,62, + 6,7,1,2,5,47,0,72,60,49, + 14,63,52,15,53,54,16,17,55,56, + 18,19,57,65,58,66,20,48,21,50, + 22,13,12,51,23,3,8,6,45,61, + 68,82,44,47,7,1,2,5,4,9, + 64,0,62,71,0,12,13,28,42,14, + 29,30,15,16,17,43,31,18,19,32, + 33,34,41,35,36,9,20,21,22,37, + 38,39,26,24,25,10,11,27,40,46, + 23,8,6,45,5,7,1,2,4,3, + 0,51,12,13,60,49,14,63,52,44, + 15,53,54,16,17,55,56,18,19,57, + 65,58,9,66,20,48,21,50,22,1, + 2,4,43,42,10,11,6,91,92,99, + 8,100,5,27,59,107,108,104,105,106, + 112,111,113,89,88,109,110,97,98,93, + 94,101,102,24,25,90,103,3,67,71, + 70,69,0,75,0,42,43,24,25,10, + 11,27,32,37,40,38,39,26,35,30, + 34,13,22,12,18,16,17,19,20,15, + 14,21,9,29,33,31,28,36,8,6, + 3,67,5,7,1,2,4,0,60,49, + 14,63,52,15,53,54,16,17,55,56, + 18,19,57,65,58,9,66,20,48,21, + 50,22,13,12,51,23,3,8,6,45, + 61,64,68,82,44,59,7,4,47,5, + 1,2,0,23,76,12,13,28,14,29, + 30,15,16,17,31,18,19,32,33,34, + 41,35,36,9,20,21,22,37,38,39, + 26,3,24,25,8,6,10,11,27,4, + 40,46,5,7,1,2,43,42,0,23, + 72,42,43,41,24,25,8,6,10,11, + 5,27,32,3,7,37,40,38,39,26, + 35,30,34,13,22,12,18,16,17,19, + 20,15,14,21,9,29,33,31,28,36, + 4,1,2,62,0,48,1,2,4,114, + 115,116,0,9,63,60,65,66,13,22, + 12,18,16,17,19,20,15,14,21,74, + 62,4,5,2,1,50,48,58,57,56, + 7,55,54,53,44,52,49,51,121,103, + 24,25,67,3,96,90,6,91,92,10, + 11,89,88,59,93,94,97,98,8,99, + 100,101,69,95,76,119,71,104,105,106, + 107,108,109,110,111,112,113,73,118,72, + 102,117,70,45,23,0,45,23,5,7, + 3,1,2,4,6,8,73,0 }; }; public final static byte asr[] = Asr.asr; @@ -2148,59 +2076,59 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasb { public final static char nasb[] = {0, - 111,11,32,11,11,11,11,11,11,11, - 121,11,11,11,162,11,186,235,181,32, - 32,184,32,32,32,32,32,32,11,11, - 11,11,11,11,11,11,11,11,11,32, - 11,32,142,222,222,222,222,181,145,106, - 12,4,79,160,11,11,106,164,11,160, - 160,198,1,32,17,58,11,11,11,142, - 11,11,25,25,145,142,32,32,32,32, - 32,32,32,32,32,32,32,32,32,32, - 32,32,32,32,32,32,32,32,32,32, - 32,32,32,32,32,32,142,32,160,11, - 11,11,11,41,160,30,120,208,209,11, - 209,179,209,9,209,202,11,11,121,181, - 79,79,30,32,120,75,198,66,66,11, - 121,181,79,222,108,195,21,194,196,181, - 194,160,79,11,11,11,11,11,11,11, + 130,11,31,11,11,11,11,11,11,11, + 123,11,11,11,193,11,169,144,183,31, + 31,167,31,31,31,31,31,31,11,11, + 11,11,11,11,11,11,11,11,11,31, + 11,31,136,235,235,235,235,183,186,89, + 91,4,70,240,11,11,89,195,11,240, + 240,74,1,31,43,160,11,11,136,11, + 11,19,19,186,136,31,31,31,31,31, + 31,31,31,31,31,31,31,31,31,31, + 31,31,31,31,31,31,31,31,31,31, + 31,31,31,31,31,136,31,240,11,11, + 11,11,101,240,29,122,214,215,11,215, + 181,215,14,215,208,123,183,70,70,29, + 31,122,66,74,27,27,11,123,183,70, + 235,148,178,110,177,10,183,177,240,70, 11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,84,196,11,11, - 11,218,181,106,106,187,106,232,106,11, - 11,106,232,181,10,11,11,216,79,11, - 160,153,106,181,58,32,222,106,72,160, - 11,10,181,93,58,32,142,142,142,142, - 11,11,30,11,44,132,106,106,60,57, - 60,106,114,196,57,84,160,11,100,11, - 155,56,84,160,37,218,21,11,10,84, - 160,160,160,160,145,145,106,44,54,181, - 130,11,11,62,225,132,60,60,171,84, - 114,54,11,11,84,106,32,11,11,66, - 66,181,100,120,155,160,84,106,70,11, - 142,218,94,11,160,160,44,58,11,121, - 106,116,102,11,11,121,64,232,54,32, - 114,44,32,32,106,10,58,160,153,190, - 106,11,37,145,32,79,94,195,106,232, - 106,91,192,130,120,181,11,32,11,68, - 175,232,121,121,196,106,155,44,70,160, - 79,130,155,195,91,15,87,102,192,58, - 32,32,196,232,232,39,160,106,11,11, - 48,48,130,15,81,11,232,11,196,196, - 11,106,39,155,211,106,11,11,106,123, - 87,196,145,158,44,11,211,226,11,10, - 62,155,222,222,98,139,11,32,11,130, - 11,11,11,140,11,10,128,130,130,10, - 46,11,160,160,106,106,11,116,11,106, - 11,11,11,121,11,96,11,11,11,140, - 221,221,166,11,221,130,130,11,106,222, - 39,211,106,211,130,19,11,160,148,106, - 121,106,232,11,222,160,102,160,168,130, - 106,11,160,98,148,108,32,102,130,54, - 211,148,232,148,10,48,160,160,106,140, - 11,140,130,168,102,142,140,96,54,160, - 106,54,10,54,130,11,46,46,100,32, - 11,168,130,160,50,130,194,140,160,168, - 130,54,140,160,50,140 + 11,11,11,11,11,11,11,11,11,11, + 11,11,11,24,10,11,11,11,201,183, + 89,89,170,89,231,89,11,11,89,231, + 183,10,11,11,199,70,11,240,94,89, + 183,160,31,235,89,36,240,11,10,183, + 78,160,31,136,136,136,136,11,11,29, + 11,39,224,89,89,53,159,53,89,15, + 10,159,24,240,11,83,11,96,158,24, + 240,57,201,110,11,10,24,240,240,240, + 240,186,186,89,39,49,183,191,11,11, + 72,217,224,53,53,204,24,15,49,11, + 11,24,89,31,11,11,27,27,183,83, + 122,96,240,24,89,64,11,136,201,79, + 11,240,240,39,160,11,123,89,118,85, + 11,11,123,55,231,49,31,15,39,31, + 31,89,10,160,240,94,173,89,11,57, + 186,31,70,79,178,89,231,89,17,175, + 191,122,183,11,31,11,51,106,231,123, + 123,10,89,96,39,64,240,70,191,96, + 178,17,12,114,85,175,160,31,31,10, + 231,231,41,240,89,11,11,81,81,191, + 12,61,11,231,11,10,10,11,89,41, + 96,162,89,11,11,89,125,114,10,186, + 238,39,11,162,218,11,15,72,96,235, + 235,156,133,11,31,11,191,11,11,11, + 134,11,15,189,191,191,15,99,11,240, + 240,89,89,11,118,11,89,11,11,11, + 123,11,104,11,11,11,134,234,234,139, + 11,234,191,191,11,89,235,41,162,89, + 162,191,59,11,240,151,89,89,123,231, + 11,235,240,85,240,141,191,89,11,240, + 156,151,148,31,85,191,49,162,151,151, + 231,197,81,240,240,89,134,11,134,191, + 141,85,136,134,104,49,240,89,49,49, + 197,191,11,99,99,83,31,11,141,191, + 240,45,191,177,134,240,141,191,49,134, + 240,45,134 }; }; public final static char nasb[] = Nasb.nasb; @@ -2208,30 +2136,31 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasr { public final static char nasr[] = {0, - 3,13,8,153,151,125,150,149,6,1, - 0,5,190,0,160,0,176,0,180,0, - 68,139,138,0,6,2,8,140,0,52, - 5,6,8,2,13,0,144,0,129,0, - 137,68,0,63,0,59,0,115,0,13, - 2,8,6,67,0,137,2,68,0,116, - 0,156,0,188,0,70,0,186,0,142, - 0,5,178,0,13,2,8,6,81,0, - 5,67,0,4,3,0,170,6,169,0, - 159,0,1,119,0,118,0,161,0,102, - 101,66,6,2,8,5,0,5,29,0, - 5,175,0,127,0,2,66,8,5,94, - 6,0,5,48,39,179,0,5,39,40, - 0,5,48,71,109,49,6,0,67,48, - 72,5,39,0,5,104,0,110,5,48, - 71,0,6,94,24,5,0,52,5,36, - 0,5,52,172,0,48,51,5,107,0, - 6,109,187,0,6,109,166,0,3,6, - 1,47,0,6,13,8,2,3,0,102, - 101,66,58,6,8,2,0,101,102,5, - 0,1,6,125,121,122,123,13,91,0, - 5,48,71,82,0,102,101,6,58,0, - 120,5,52,0,40,6,2,8,5,158, - 0,1,57,0,5,52,39,0 + 3,13,8,6,147,145,120,144,143,2, + 0,155,0,6,1,0,154,0,6,2, + 8,134,0,4,3,0,67,0,49,5, + 6,8,2,13,0,5,173,0,60,0, + 123,0,171,0,13,2,8,6,64,0, + 181,0,111,0,183,0,138,0,175,0, + 5,64,0,136,0,13,2,8,6,78, + 0,151,0,96,97,5,0,2,114,0, + 110,0,97,96,63,6,2,8,5,0, + 5,185,0,6,91,24,5,0,56,0, + 131,65,0,113,0,6,104,161,0,65, + 133,132,0,165,6,164,0,2,63,8, + 5,91,6,0,5,45,39,174,0,5, + 170,0,64,45,69,5,39,0,45,48, + 5,102,0,5,49,39,0,5,29,0, + 105,5,45,68,0,156,0,131,2,65, + 0,5,45,68,79,0,6,13,8,2, + 3,0,97,96,63,55,6,8,2,0, + 3,6,2,44,0,5,99,0,5,39, + 40,0,5,49,167,0,150,0,97,96, + 6,55,0,6,104,182,0,2,6,120, + 116,117,118,13,88,0,40,6,2,8, + 5,153,0,5,45,68,104,46,6,0, + 2,54,0,115,5,49,0,49,5,36, + 0 }; }; public final static char nasr[] = Nasr.nasr; @@ -2240,18 +2169,18 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TerminalIndex { public final static char terminalIndex[] = {0, 115,116,2,32,14,11,81,10,102,12, - 13,117,8,9,50,54,62,70,76,77, - 88,89,104,107,109,114,15,57,63,69, + 13,50,54,62,70,76,77,88,89,104, + 107,109,117,8,9,114,15,57,63,69, 86,90,92,96,99,101,111,112,113,46, - 97,60,80,68,122,123,106,56,95,108, + 97,60,80,68,122,123,95,106,56,108, 49,66,72,75,78,85,91,100,20,55, - 3,105,1,65,79,93,103,48,21,45, - 34,121,31,98,120,110,51,52,58,59, + 105,3,65,79,93,103,1,48,21,45, + 34,121,31,98,110,120,51,52,58,59, 61,67,71,73,74,87,94,18,19,7, 16,17,22,23,33,5,24,25,26,27, 28,29,6,35,36,37,38,39,40,41, - 42,43,44,30,119,124,82,83,84,4, - 53,64,118 + 42,43,44,82,83,84,30,119,125,53, + 4,64,124,118 }; }; public final static char terminalIndex[] = TerminalIndex.terminalIndex; @@ -2259,26 +2188,26 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, - 131,136,138,240,0,0,137,236,135,0, - 134,0,146,0,133,0,0,145,151,0, - 0,152,161,182,162,163,164,165,154,139, - 166,167,168,169,170,127,171,0,132,129, - 199,144,172,0,0,141,140,0,180,0, - 179,155,0,0,0,0,0,158,175,0, - 206,0,189,148,203,207,128,0,0,208, - 0,174,0,0,0,0,0,0,0,178, - 126,130,0,0,0,0,0,0,0,0, - 188,0,0,204,214,149,160,0,0,210, - 211,212,0,0,0,0,0,209,222,181, - 0,0,0,213,0,0,0,243,150,177, - 191,192,193,194,195,197,198,201,0,216, - 219,221,239,0,242,0,0,142,143,147, - 0,0,157,159,0,173,0,183,184,185, - 186,187,190,0,196,0,200,205,0,217, - 218,0,223,226,228,230,0,233,234,235, - 0,237,238,241,125,0,153,156,176,202, - 215,220,0,224,225,227,229,0,231,232, - 244,245,0,0,0,0,0,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,154,140, + 166,167,168,169,170,128,171,0,133,130, + 172,0,142,141,0,180,0,179,155,0, + 0,0,0,0,158,175,0,205,0,189, + 148,202,206,129,0,0,207,0,174,0, + 0,0,0,0,0,0,178,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,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,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; @@ -2324,18 +2253,18 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeLhs { public final static char scopeLhs[] = { - 49,18,18,76,18,18,18,18,76,85, - 50,90,89,123,69,55,76,75,49,18, - 76,20,3,7,166,166,163,121,49,88, - 123,122,124,56,50,140,134,76,18,18, - 134,103,60,136,79,169,166,163,131,122, - 122,124,51,59,144,18,18,18,18,12, - 118,163,131,76,75,75,38,140,75,18, - 18,18,18,103,76,20,170,166,180,101, - 108,62,70,61,158,80,124,77,73,145, - 144,176,140,17,163,124,120,22,132,132, - 58,140,140,76,49,163,74,138,47,138, - 47,169,120,121,49,49,60 + 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,57,130,76,164,161,158,125,117, + 117,119,48,56,138,18,18,18,18,12, + 113,158,125,73,72,72,38,134,72,18, + 18,18,18,98,73,20,165,161,175,96, + 103,59,67,58,153,77,119,74,70,139, + 138,171,134,17,158,119,115,22,126,126, + 55,134,134,73,46,158,71,132,44,132, + 44,164,115,116,46,46,57 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -2343,18 +2272,18 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeLa { public final static byte scopeLa[] = { - 121,75,75,75,75,75,75,75,75,72, - 45,72,72,72,69,1,75,122,61,3, - 45,75,69,69,1,1,45,72,61,72, + 120,76,76,76,76,76,76,76,76,72, + 45,72,72,72,69,1,76,122,62,3, + 45,76,69,69,1,1,45,72,62,72, 72,1,1,1,1,4,69,45,1,1, - 69,75,75,75,121,75,1,45,72,1, - 1,1,45,72,115,75,75,75,115,1, - 75,1,70,75,75,75,73,4,75,69, - 69,69,69,75,45,3,1,1,75,75, - 3,1,115,75,1,1,1,45,73,75, - 115,75,5,75,1,49,71,75,1,1, - 6,1,49,76,74,45,45,4,4,4, - 4,3,1,61,1,1,3 + 69,76,76,76,120,76,1,45,72,1, + 1,1,45,72,118,76,76,76,118,1, + 76,1,70,76,76,76,73,4,76,69, + 69,69,69,76,45,3,1,1,76,76, + 3,1,118,76,1,1,1,45,73,76, + 118,76,5,76,1,47,71,76,1,1, + 6,1,47,75,74,45,45,4,4,4, + 4,3,1,62,1,1,3 }; }; public final static byte scopeLa[] = ScopeLa.scopeLa; @@ -2381,70 +2310,70 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeRhs { public final static char scopeRhs[] = {0, - 315,3,41,0,127,0,314,3,121,0, - 127,175,0,128,182,74,0,218,0,294, - 128,59,127,0,21,0,296,128,59,49, - 0,21,55,0,34,133,0,21,55,0, - 0,296,128,59,49,194,0,21,130,0, - 294,128,59,131,0,180,129,0,139,0, - 227,3,293,0,293,0,2,0,127,0, - 180,129,232,0,180,129,47,232,0,180, - 129,311,47,0,132,191,170,129,0,129, - 0,191,170,129,0,135,129,0,171,0, - 307,128,171,0,128,171,0,224,129,0, - 170,248,0,138,0,0,0,136,0,0, - 0,306,128,61,255,0,128,0,255,0, - 3,0,0,128,0,305,128,61,0,45, - 128,0,152,3,0,128,283,282,128,74, - 281,171,0,282,128,74,281,171,0,217, - 0,218,0,281,171,0,98,0,0,217, - 0,218,0,205,98,0,0,217,0,218, - 0,282,128,281,171,0,217,0,205,0, - 0,217,0,235,128,3,0,127,0,0, - 0,0,0,235,128,3,224,0,231,3, - 0,217,128,0,210,0,149,0,170,129, - 0,11,0,0,0,220,63,0,126,0, - 235,128,3,184,0,184,0,2,0,0, - 127,0,0,0,0,0,203,3,0,203, - 0,234,128,61,26,44,0,180,129,65, - 62,0,144,129,0,132,180,129,279,62, - 0,180,129,279,62,0,180,129,71,124, - 65,0,234,128,61,65,0,234,128,61, - 164,65,0,234,128,61,125,65,0,277, - 128,61,124,64,0,277,128,61,64,0, - 180,129,64,0,136,0,191,180,129,248, - 0,138,0,180,129,248,0,191,170,129, - 9,0,170,129,9,0,95,138,0,270, - 128,171,0,162,86,0,230,163,230,174, - 3,83,0,127,174,0,230,174,3,83, - 0,129,0,127,174,0,230,163,230,163, - 230,3,83,0,230,163,230,3,83,0, - 230,3,83,0,129,0,129,0,127,174, - 0,162,3,76,195,81,0,127,129,0, - 195,81,0,110,2,132,127,129,0,243, - 3,76,0,203,175,0,34,172,0,175, - 0,178,34,172,0,243,3,87,0,195, - 159,243,3,85,0,64,174,0,243,3, - 85,0,127,174,64,174,0,302,128,61, - 0,162,0,220,78,0,31,0,162,114, - 160,0,31,172,0,187,3,0,127,152, - 0,227,3,0,220,63,267,0,162,63, - 0,187,3,299,43,129,0,127,0,0, - 0,0,299,43,129,0,2,148,127,0, - 0,0,0,150,0,126,49,170,129,0, - 32,150,0,95,138,32,150,0,219,180, - 129,0,149,32,150,0,162,3,36,0, - 162,3,69,187,59,28,0,187,59,28, - 0,21,2,132,127,0,162,3,69,187, - 59,31,0,187,59,31,0,162,3,69, - 187,59,33,0,187,59,33,0,162,3, - 69,187,59,29,0,187,59,29,0,227, - 3,126,191,170,129,9,0,126,191,170, - 129,9,0,138,2,0,127,0,227,3, - 125,260,170,129,9,0,260,170,129,9, - 0,136,2,0,127,0,227,3,136,0, - 227,3,141,0,162,63,141,0,262,0, - 32,0,32,142,0,169,0,135,0,162, + 311,3,41,0,128,0,310,3,120,0, + 128,175,0,129,180,74,0,217,0,290, + 129,59,128,0,21,0,292,129,59,47, + 0,21,55,0,34,134,0,21,55,0, + 0,292,129,59,47,192,0,21,131,0, + 290,129,59,132,0,178,130,0,140,0, + 223,3,289,0,289,0,2,0,128,0, + 178,130,228,0,178,130,48,228,0,178, + 130,307,48,0,133,189,168,130,0,130, + 0,189,168,130,0,136,130,0,169,0, + 303,129,169,0,129,169,0,223,130,0, + 168,244,0,139,0,0,0,137,0,0, + 0,302,129,62,250,0,129,0,250,0, + 3,0,0,129,0,301,129,62,0,45, + 129,0,153,3,0,129,279,278,129,74, + 277,169,0,278,129,74,277,169,0,216, + 0,217,0,277,169,0,98,0,0,216, + 0,217,0,204,98,0,0,216,0,217, + 0,278,129,277,169,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, + 0,11,0,0,0,218,67,0,127,0, + 231,129,3,182,0,182,0,2,0,0, + 128,0,0,0,0,0,201,3,0,202, + 0,230,129,62,26,44,0,178,130,64, + 61,0,198,130,0,133,178,130,275,61, + 0,178,130,275,61,0,178,130,71,125, + 64,0,230,129,62,64,0,230,129,62, + 123,64,0,230,129,62,126,64,0,272, + 129,62,125,63,0,272,129,62,63,0, + 178,130,63,0,137,0,189,178,130,244, + 0,139,0,178,130,244,0,189,168,130, + 9,0,168,130,9,0,95,139,0,265, + 129,169,0,163,86,0,226,164,226,172, + 3,83,0,128,174,0,226,172,3,83, + 0,130,0,128,174,0,226,164,226,164, + 226,3,83,0,226,164,226,3,83,0, + 226,3,83,0,130,0,130,0,128,174, + 0,163,3,75,193,81,0,128,130,0, + 193,81,0,110,2,133,128,130,0,239, + 3,75,0,201,173,0,34,172,0,173, + 0,178,34,172,0,239,3,87,0,193, + 160,239,3,85,0,64,174,0,239,3, + 85,0,128,174,64,174,0,298,129,62, + 0,163,0,218,78,0,31,0,163,117, + 161,0,31,172,0,185,3,0,128,152, + 0,223,3,0,218,67,262,0,163,67, + 0,185,3,295,43,130,0,128,0,0, + 0,0,295,43,130,0,2,148,128,0, + 0,0,0,150,0,127,47,168,130,0, + 32,150,0,95,139,32,150,0,217,178, + 130,0,149,32,150,0,163,3,36,0, + 163,3,69,185,59,28,0,185,59,28, + 0,21,2,133,128,0,163,3,69,185, + 59,31,0,185,59,31,0,163,3,69, + 185,59,33,0,185,59,33,0,163,3, + 69,185,59,29,0,185,59,29,0,223, + 3,127,189,168,130,9,0,127,189,168, + 130,9,0,139,2,0,128,0,223,3, + 126,255,168,130,9,0,255,168,130,9, + 0,137,2,0,128,0,223,3,137,0, + 223,3,142,0,163,67,142,0,257,0, + 32,0,32,143,0,167,0,136,0,163, 3,0 }; }; @@ -2453,38 +2382,38 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeState { public final static char scopeState[] = {0, - 631,0,5095,5065,4451,0,2678,2832,2513,2659, - 0,3862,3821,3780,3739,3698,3657,3171,3616,3559, - 3044,2978,3315,3263,4428,3211,3143,4376,4324,4267, - 4257,0,1854,958,718,0,2731,2306,0,3862, - 3821,3780,3162,2444,3739,3698,3657,3616,957,3559, - 3044,2978,3080,570,0,5050,3141,2736,0,1574, - 1259,0,3217,3174,0,3568,4648,0,1530,717, - 0,3568,4633,579,3524,4648,2845,4519,3540,4558, - 3124,4532,4545,2926,2764,2682,0,4720,2998,3315, - 3263,4428,3211,3143,4376,4324,4267,4257,3862,3821, - 3780,3739,3698,3657,3616,3559,3044,2978,0,3315, - 3263,4428,3211,3143,4376,4324,4267,4257,4720,2998, - 0,1029,660,0,3124,4633,4269,579,3524,4274, - 2926,1156,3646,842,3144,4385,616,3356,2289,0, - 1171,661,0,573,0,1640,1415,1280,1150,3524, - 4385,2845,2764,2682,3658,3617,0,4172,534,2387, - 0,4969,4962,4911,4904,4897,4890,4839,4832,4819, - 4771,5045,5038,5031,4983,4753,4735,4976,4701,4677, - 4670,3243,3376,2487,0,4969,4962,2919,2838,2497, - 4911,4904,4897,2492,2220,4890,4839,4832,3074,4819, - 3407,4771,3387,2858,5045,2755,3010,2394,2313,2406, - 5038,4586,5031,2723,4983,4753,4735,2301,4976,2212, - 4701,1991,4677,4670,4172,3243,2387,3376,2487,2120, - 974,806,646,735,2845,4519,3540,4558,3124,3568, - 4633,4532,579,3524,4545,2926,2764,4648,2682,1103, - 910,1171,661,1032,4230,4197,2265,2318,592,2353, - 2541,2445,2412,2791,2695,2654,2626,2598,2570,3500, - 3476,3452,2954,2873,4149,4126,4103,4080,4057,4034, - 4011,3988,3965,3427,3942,1997,2226,2173,2134,2081, - 2042,1275,1230,818,1184,928,1944,1905,753,688, - 1860,1815,1770,1725,1680,1635,1590,1545,1500,1455, - 1410,534,1365,864,1120,1058,987,1320,0 + 1236,0,4824,4823,4781,0,2946,3070,2816,3065, + 0,3727,3689,3635,3597,3543,3505,3012,3451,3413, + 2935,2897,3177,3113,4178,3049,3040,4153,4089,4080, + 3186,0,2107,1072,895,0,3513,2833,0,3727, + 3689,3635,3251,2857,3597,3543,3505,3451,2656,3413, + 2935,2897,2864,554,0,3641,2658,2649,0,1444, + 1315,0,2823,4245,0,4566,4469,0,1531,1145, + 0,4566,4550,4486,3381,4469,2763,4266,4363,4455, + 3021,4279,4391,2841,2685,2603,0,2910,4582,3177, + 3113,4178,3049,3040,4153,4089,4080,3186,3727,3689, + 3635,3597,3543,3505,3451,3413,2935,2897,0,3177, + 3113,4178,3049,3040,4153,4089,4080,3186,2910,4582, + 0,2914,2828,0,3021,4550,1654,4486,3381,4428, + 2841,1783,1568,1740,2647,3657,1102,1482,1439,0, + 717,646,0,913,0,2423,1420,978,666,3381, + 3657,2763,2685,2603,2827,2411,0,4297,525,2399, + 0,4797,4788,4772,4763,4741,4726,4707,4671,4659, + 4651,4211,4108,3746,3562,4634,4614,3205,4589,4304, + 3427,3402,2493,2195,0,4797,4788,3138,2757,2674, + 4772,4763,4741,2498,2482,4726,4707,4671,2017,4659, + 3394,4651,3147,2406,4211,2190,1885,2101,2012,2418, + 4108,3212,3746,1103,3562,4634,4614,1091,3205,659, + 4589,797,4304,3427,4297,3402,2399,2493,2195,908, + 785,568,979,846,2763,4266,4363,4455,3021,4566, + 4550,4279,4486,3381,4391,2841,2685,4469,2603,1032, + 964,717,646,619,4057,4034,2201,2240,580,2275, + 2370,2341,2309,2707,2616,2575,2547,2454,2424,3357, + 3333,3309,2867,2789,4011,3988,3965,3942,3919,3896, + 3873,3850,3827,3284,3804,1891,2151,2112,2062,2023, + 1973,1197,1152,1934,1109,865,1841,1802,735,673, + 1759,1716,1673,1630,1587,1544,1501,1458,1415,1372, + 1329,525,1285,803,1048,989,921,1240,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2492,59 +2421,59 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface InSymb { public final static char inSymb[] = {0, - 0,298,128,46,269,36,28,31,33,29, - 9,136,125,127,7,131,4,3,129,32, - 27,5,11,10,6,8,14,13,141,146, - 149,148,151,150,155,154,157,156,158,41, - 160,70,3,59,59,59,59,129,3,59, - 175,128,63,3,42,43,59,7,125,187, - 162,175,128,42,43,170,169,124,125,3, - 126,125,103,120,3,63,90,96,11,10, - 92,91,6,94,93,69,59,88,89,8, - 98,97,100,99,101,113,112,111,110,109, - 108,107,106,105,104,71,114,102,162,187, - 187,187,187,170,227,128,128,271,272,255, - 273,248,274,64,275,276,124,125,9,129, - 63,63,128,159,128,63,3,225,224,136, - 9,129,63,299,3,191,4,49,5,129, - 49,227,162,148,148,146,146,146,150,150, - 150,150,149,149,154,151,151,156,155,157, - 162,158,69,69,69,69,191,260,294,134, - 297,217,129,6,61,170,238,129,126,125, - 124,61,129,129,180,170,294,217,220,160, - 231,128,3,129,170,204,3,300,175,152, - 262,191,129,180,170,73,3,3,3,3, - 126,125,70,170,128,128,126,125,128,180, - 128,61,128,180,170,49,235,236,147,237, - 128,170,49,187,128,128,4,219,5,49, - 162,162,162,162,3,3,6,186,306,129, - 172,232,194,62,171,308,128,128,73,191, - 128,277,250,278,191,159,71,231,203,189, - 184,129,3,128,70,235,191,159,264,267, - 63,181,4,126,227,227,128,170,49,279, - 281,128,3,184,310,232,47,129,277,71, - 70,128,71,71,3,180,170,203,128,217, - 159,126,128,3,63,162,4,191,59,129, - 74,128,217,307,128,129,125,73,288,203, - 70,129,47,311,180,228,128,128,264,227, - 220,132,128,180,128,282,73,70,217,170, - 73,71,180,129,129,128,235,228,296,49, - 9,60,132,282,61,292,129,293,180,180, - 41,159,128,70,69,59,238,238,283,128, - 70,180,3,3,128,44,49,171,68,65, - 62,128,71,71,128,302,80,78,1,162, - 87,85,83,81,76,84,86,79,77,65, - 74,46,227,315,228,26,59,128,3,61, - 164,124,125,65,296,284,121,12,220,73, - 3,3,3,195,3,124,162,124,182,70, - 128,128,61,69,270,203,280,26,128,61, - 71,61,129,69,3,243,175,243,174,230, - 171,76,243,128,128,3,71,70,159,234, - 233,128,129,128,180,60,95,314,175,159, - 203,159,230,163,128,3,159,284,234,152, - 61,234,180,234,165,238,159,159,128,71, - 195,163,230,162,128,165,71,122,230,163, - 159,305,159,230,70,159 + 0,294,129,46,264,36,28,31,33,29, + 9,137,126,128,7,132,4,3,130,32, + 27,5,11,10,6,8,25,24,142,147, + 150,149,152,151,156,155,158,157,159,41, + 161,70,3,59,59,59,59,130,3,59, + 173,129,67,3,42,43,59,7,126,185, + 163,173,129,42,43,168,167,126,3,127, + 126,103,121,3,67,90,96,11,10,92, + 91,6,94,93,69,59,88,89,8,98, + 97,100,99,101,113,112,111,110,109,108, + 107,106,105,104,71,117,102,163,185,185, + 185,185,168,223,129,129,266,267,250,268, + 244,269,63,270,271,9,130,67,67,129, + 160,129,67,3,221,220,137,9,130,67, + 295,3,189,4,47,5,130,47,223,163, + 149,149,147,147,147,151,151,151,151,150, + 150,155,152,152,157,156,158,163,159,69, + 69,69,69,189,255,290,135,293,215,130, + 6,62,168,234,130,127,126,125,62,130, + 130,178,168,290,215,218,161,227,129,3, + 130,168,202,3,296,173,153,257,189,130, + 178,168,73,3,3,3,3,127,126,70, + 168,129,129,127,126,129,178,129,62,129, + 178,168,47,231,232,148,233,129,168,47, + 185,129,129,4,217,5,47,163,163,163, + 163,3,3,6,184,302,130,170,228,192, + 61,169,304,129,129,73,189,129,272,125, + 273,189,160,71,227,201,187,182,130,3, + 129,70,231,189,160,259,262,67,179,4, + 127,223,223,129,168,47,275,277,129,3, + 182,306,228,48,130,272,71,70,129,71, + 71,3,178,168,201,129,215,160,127,129, + 3,67,163,4,189,59,130,74,129,215, + 303,129,130,126,73,284,201,70,130,48, + 307,178,224,129,129,259,223,218,133,129, + 178,129,278,73,70,215,168,73,71,178, + 130,130,129,231,224,292,47,9,60,133, + 278,62,288,130,289,178,178,41,160,129, + 70,69,59,234,234,279,129,70,178,3, + 3,129,44,47,169,68,64,61,129,71, + 71,129,298,80,78,1,163,87,85,83, + 81,75,84,86,79,77,64,74,46,223, + 311,224,26,59,129,3,62,123,126,125, + 64,292,280,120,23,218,73,3,3,3, + 193,3,125,163,125,180,70,129,129,62, + 69,265,201,276,26,129,62,62,71,130, + 69,3,239,173,239,172,226,169,75,239, + 129,129,3,71,70,160,230,229,129,129, + 130,178,60,95,310,173,160,201,160,226, + 164,129,3,160,280,230,153,62,230,230, + 178,274,234,160,160,129,71,193,164,226, + 163,129,274,71,122,226,164,160,301,160, + 226,70,160 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2676,6 +2605,7 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab "RightBrace", "SemiColon", "ERROR_TOKEN", + "original_namespace_name", "EOF_TOKEN", "no_sizeof_type_name_start", "]", @@ -2698,7 +2628,6 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab "plate", "class_or_namespace_name_with_t" + "emplate", - "namespace_name", "postfix_expression", "simple_type_specifier", "pseudo_destructor_name", @@ -2754,8 +2683,7 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab "class_keyword", "enumerator_list", "enumerator_definition", - "enumerator", - "original_namespace_name", + "namespace_name", "init_declarator_list", "init_declarator", "initializer", @@ -2821,20 +2749,20 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 526, - NT_OFFSET = 123, - LA_STATE_OFFSET = 6121, + NUM_STATES = 523, + NT_OFFSET = 124, + LA_STATE_OFFSET = 5884, MAX_LA = 2147483647, - NUM_RULES = 533, - NUM_NONTERMINALS = 198, - NUM_SYMBOLS = 321, + NUM_RULES = 524, + NUM_NONTERMINALS = 193, + NUM_SYMBOLS = 317, SEGMENT_SIZE = 8192, - START_STATE = 2749, + START_STATE = 2912, IDENTIFIER_SYMBOL = 0, - EOFT_SYMBOL = 116, - EOLT_SYMBOL = 116, - ACCEPT_ACTION = 5225, - ERROR_ACTION = 5588; + EOFT_SYMBOL = 119, + EOLT_SYMBOL = 119, + ACCEPT_ACTION = 4998, + ERROR_ACTION = 5360; public final static boolean BACKTRACK = true; diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParsersym.java index d66afc870e7..527bc4c89d2 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParsersym.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParsersym.java @@ -17,52 +17,52 @@ public interface CPPSizeofExpressionParsersym { public final static int TK_asm = 68, TK_auto = 51, - TK_bool = 15, + TK_bool = 12, TK_break = 77, TK_case = 78, - TK_catch = 121, - TK_char = 16, + TK_catch = 120, + TK_char = 13, TK_class = 60, - TK_const = 48, + TK_const = 49, TK_const_cast = 28, TK_continue = 79, TK_default = 80, TK_delete = 42, TK_do = 81, - TK_double = 17, + TK_double = 14, TK_dynamic_cast = 29, TK_else = 122, - TK_enum = 64, + TK_enum = 63, TK_explicit = 52, TK_export = 82, TK_extern = 44, TK_false = 30, - TK_float = 18, + TK_float = 15, TK_for = 83, TK_friend = 53, TK_goto = 84, TK_if = 85, TK_inline = 54, - TK_int = 19, - TK_long = 20, + TK_int = 16, + TK_long = 17, TK_mutable = 55, - TK_namespace = 65, + TK_namespace = 64, TK_new = 43, TK_operator = 7, - TK_private = 117, - TK_protected = 118, - TK_public = 119, + TK_private = 114, + TK_protected = 115, + TK_public = 116, TK_register = 56, TK_reinterpret_cast = 31, TK_return = 86, - TK_short = 21, - TK_signed = 22, + TK_short = 18, + TK_signed = 19, TK_sizeof = 32, TK_static = 57, TK_static_cast = 33, - TK_struct = 66, + TK_struct = 65, TK_switch = 87, - TK_template = 49, + TK_template = 47, TK_this = 34, TK_throw = 41, TK_try = 74, @@ -70,31 +70,31 @@ public interface CPPSizeofExpressionParsersym { TK_typedef = 58, TK_typeid = 36, TK_typename = 9, - TK_union = 67, - TK_unsigned = 23, - TK_using = 62, - TK_virtual = 47, - TK_void = 24, + TK_union = 66, + TK_unsigned = 20, + TK_using = 61, + TK_virtual = 48, + TK_void = 21, TK_volatile = 50, - TK_wchar_t = 25, - TK_while = 76, + TK_wchar_t = 22, + TK_while = 75, TK_integer = 37, TK_floating = 38, TK_charconst = 39, TK_stringlit = 26, TK_identifier = 1, TK_Completion = 2, - TK_EndOfCompletion = 12, - TK_Invalid = 123, - TK_LeftBracket = 63, + TK_EndOfCompletion = 23, + TK_Invalid = 124, + TK_LeftBracket = 67, TK_LeftParen = 3, - TK_LeftBrace = 61, - TK_Dot = 120, + TK_LeftBrace = 62, + TK_Dot = 121, TK_DotStar = 96, TK_Arrow = 103, TK_ArrowStar = 90, - TK_PlusPlus = 13, - TK_MinusMinus = 14, + TK_PlusPlus = 24, + TK_MinusMinus = 25, TK_And = 8, TK_Star = 6, TK_Plus = 10, @@ -115,7 +115,7 @@ public interface CPPSizeofExpressionParsersym { TK_Or = 100, TK_AndAnd = 101, TK_OrOr = 102, - TK_Question = 114, + TK_Question = 117, TK_Colon = 73, TK_ColonColon = 4, TK_DotDotDot = 95, @@ -132,12 +132,13 @@ public interface CPPSizeofExpressionParsersym { TK_OrAssign = 113, TK_Comma = 70, TK_zero = 40, - TK_RightBracket = 115, - TK_RightParen = 75, + TK_RightBracket = 118, + TK_RightParen = 76, TK_RightBrace = 72, TK_SemiColon = 45, TK_ERROR_TOKEN = 46, - TK_EOF_TOKEN = 116; + TK_original_namespace_name = 123, + TK_EOF_TOKEN = 119; public final static String orderedTerminalSymbols[] = { "", @@ -152,9 +153,6 @@ public interface CPPSizeofExpressionParsersym { "typename", "Plus", "Minus", - "EndOfCompletion", - "PlusPlus", - "MinusMinus", "bool", "char", "double", @@ -166,6 +164,9 @@ public interface CPPSizeofExpressionParsersym { "unsigned", "void", "wchar_t", + "EndOfCompletion", + "PlusPlus", + "MinusMinus", "stringlit", "Bang", "const_cast", @@ -187,9 +188,9 @@ public interface CPPSizeofExpressionParsersym { "extern", "SemiColon", "ERROR_TOKEN", + "template", "virtual", "const", - "template", "volatile", "auto", "explicit", @@ -201,13 +202,13 @@ public interface CPPSizeofExpressionParsersym { "typedef", "LT", "class", - "LeftBrace", "using", - "LeftBracket", + "LeftBrace", "enum", "namespace", "struct", "union", + "LeftBracket", "asm", "GT", "Comma", @@ -215,8 +216,8 @@ public interface CPPSizeofExpressionParsersym { "RightBrace", "Colon", "try", - "RightParen", "while", + "RightParen", "break", "case", "continue", @@ -254,15 +255,16 @@ public interface CPPSizeofExpressionParsersym { "AndAssign", "CaretAssign", "OrAssign", - "Question", - "RightBracket", - "EOF_TOKEN", "private", "protected", "public", - "Dot", + "Question", + "RightBracket", + "EOF_TOKEN", "catch", + "Dot", "else", + "original_namespace_name", "Invalid" };