From d76a1d07226c11d722d41316ce0cc4b296299c89 Mon Sep 17 00:00:00 2001 From: Mike Kucera Date: Wed, 7 Jan 2009 19:34:38 +0000 Subject: [PATCH] better handling of syntax errors in declarations for LR parser --- .../parser/AbstractGNUSourceCodeParser.java | 1 + .../core/lrparser/tests/LRCPPSpecTest.java | 21 + .../grammar/cpp/CPPGrammar.g | 21 +- .../action/cpp/CPPBuildASTParserAction.java | 5 +- .../dom/lrparser/cpp/CPPExpressionParser.java | 1297 +++--- .../lrparser/cpp/CPPExpressionParserprs.java | 3612 +++++++-------- .../lrparser/cpp/CPPExpressionParsersym.java | 174 +- .../cpp/CPPNoCastExpressionParser.java | 1293 +++--- .../cpp/CPPNoCastExpressionParserprs.java | 3554 ++++++++------- .../cpp/CPPNoCastExpressionParsersym.java | 174 +- .../cpp/CPPNoFunctionDeclaratorParser.java | 1285 +++--- .../cpp/CPPNoFunctionDeclaratorParserprs.java | 3804 ++++++++-------- .../cpp/CPPNoFunctionDeclaratorParsersym.java | 164 +- .../core/dom/lrparser/cpp/CPPParser.java | 1293 +++--- .../core/dom/lrparser/cpp/CPPParserprs.java | 4026 +++++++++-------- .../core/dom/lrparser/cpp/CPPParsersym.java | 158 +- .../cpp/CPPSizeofExpressionParser.java | 1289 +++--- .../cpp/CPPSizeofExpressionParserprs.java | 3661 +++++++-------- .../cpp/CPPSizeofExpressionParsersym.java | 174 +- .../cpp/CPPTemplateTypeParameterParser.java | 1297 +++--- .../CPPTemplateTypeParameterParserprs.java | 3644 +++++++-------- .../CPPTemplateTypeParameterParsersym.java | 164 +- 22 files changed, 15762 insertions(+), 15349 deletions(-) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/AbstractGNUSourceCodeParser.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/AbstractGNUSourceCodeParser.java index 4d5ddecdd48..e18d4f8b61c 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/AbstractGNUSourceCodeParser.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/AbstractGNUSourceCodeParser.java @@ -488,6 +488,7 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser { } public IASTTranslationUnit parse() { + if(1==1) throw new RuntimeException("KABOOM"); long startTime = System.currentTimeMillis(); translationUnit(); log.traceLog("Parse " //$NON-NLS-1$ diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCPPSpecTest.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCPPSpecTest.java index 2e36c90f831..250dad67b05 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCPPSpecTest.java +++ b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCPPSpecTest.java @@ -38,6 +38,15 @@ public class LRCPPSpecTest extends AST2CPPSpecTest { parse(code, ParserLanguage.CPP, checkBindings, expectedProblemBindings); } + @Override + protected IASTTranslationUnit parseWithErrors(String code, ParserLanguage lang) throws ParserException { + ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage(); + ParseHelper.Options options = new ParseHelper.Options(); + options.setCheckBindings(false); + options.setCheckPreprocessorProblems(false); + options.setCheckSyntaxProblems(false); + return ParseHelper.parse(code, language, options); + } @Override protected IASTTranslationUnit parse( String code, ParserLanguage lang, boolean checkBindings, int expectedProblemBindings ) throws ParserException { @@ -48,6 +57,16 @@ public class LRCPPSpecTest extends AST2CPPSpecTest { return ParseHelper.parse(code, language, options); } + @Override + protected IASTTranslationUnit parse( String code, ParserLanguage lang, @SuppressWarnings("unused") boolean useGNUExtensions, boolean expectNoProblems, boolean skipTrivialInitializers) throws ParserException { + ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage(); + ParseHelper.Options options = new ParseHelper.Options(); + options.setCheckSyntaxProblems(expectNoProblems); + options.setCheckPreprocessorProblems(expectNoProblems); + options.setSkipTrivialInitializers(skipTrivialInitializers); + return ParseHelper.parse(code, language, options); + } + @Override protected IASTTranslationUnit parse(String code, ParserLanguage lang, String[] problems) throws ParserException { ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage(); @@ -56,6 +75,8 @@ public class LRCPPSpecTest extends AST2CPPSpecTest { return ParseHelper.parse(code, language, options); } + + protected BaseExtensibleLanguage getCLanguage() { return C99Language.getDefault(); } 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 27cad1c9588..954d345396a 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPGrammar.g +++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPGrammar.g @@ -321,21 +321,8 @@ $Rules -- caught at the top level. translation_unit - ::= external_declaration_list + ::= declaration_seq_opt /. $Build consumeTranslationUnit(); $EndBuild ./ - | $empty - /. $Build consumeTranslationUnit(); $EndBuild ./ - - -external_declaration_list - ::= external_declaration - | external_declaration_list external_declaration - - -external_declaration - ::= declaration - | ERROR_TOKEN - /. $Build consumeDeclarationProblem(); $EndBuild ./ ------------------------------------------------------------------------------------------ @@ -914,6 +901,8 @@ declaration | explicit_specialization | linkage_specification | namespace_definition + | ERROR_TOKEN + /. $Build consumeDeclarationProblem(); $EndBuild ./ block_declaration @@ -1179,8 +1168,8 @@ named_namespace_definition unnamed_namespace_definition ::= 'namespace' '{' declaration_seq_opt '}' /. $Build consumeNamespaceDefinition(false); $EndBuild ./ - - + + namespace_alias_definition ::= 'namespace' identifier_token '=' dcolon_opt nested_name_specifier_opt namespace_name ';' /. $Build consumeNamespaceAliasDefinition(); $EndBuild ./ diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPBuildASTParserAction.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPBuildASTParserAction.java index c80fc764030..045cd8b5c47 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPBuildASTParserAction.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPBuildASTParserAction.java @@ -1448,8 +1448,9 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { if(declarator instanceof IASTFunctionDeclarator && declarator.getName() instanceof ICPPASTQualifiedName) { ICPPASTQualifiedName qualifiedName = (ICPPASTQualifiedName) declarator.getName(); - IASTName lastName = qualifiedName.getLastName(); - if(qualifiedName.isFullyQualified() && (lastName.getLookupKey()[0] == '~' || isSameName(name, lastName))) { + //IASTName lastName = qualifiedName.getLastName(); + + if(qualifiedName.isFullyQualified()) { ICPPASTQualifiedName newQualifiedName = nodeFactory.newQualifiedName(); newQualifiedName.addName(name); diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParser.java index 53e0e2ffb86..f5888ca3ad4 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParser.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParser.java @@ -269,2011 +269,2004 @@ public CPPExpressionParser(String[] mapFrom) { // constructor } // - // Rule 13: translation_unit ::= external_declaration_list + // Rule 13: translation_unit ::= declaration_seq_opt // case 13: { action.builder. consumeTranslationUnit(); break; } // - // Rule 14: translation_unit ::= $Empty + // Rule 16: literal ::= integer // - case 14: { action.builder. - consumeTranslationUnit(); break; + case 16: { action.builder. + consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; } // - // Rule 18: external_declaration ::= ERROR_TOKEN + // Rule 17: literal ::= 0 + // + case 17: { action.builder. + consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; + } + + // + // Rule 18: literal ::= floating // case 18: { action.builder. - consumeDeclarationProblem(); break; - } - - // - // Rule 21: literal ::= integer - // - case 21: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; - } - - // - // Rule 22: literal ::= 0 - // - case 22: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; - } - - // - // Rule 23: literal ::= floating - // - case 23: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_float_constant); break; } // - // Rule 24: literal ::= charconst + // Rule 19: literal ::= charconst // - case 24: { action.builder. + case 19: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_char_constant); break; } // - // Rule 25: literal ::= stringlit + // Rule 20: literal ::= stringlit // - case 25: { action.builder. + case 20: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_string_literal); break; } // - // Rule 26: literal ::= true + // Rule 21: literal ::= true // - case 26: { action.builder. + case 21: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_true); break; } // - // Rule 27: literal ::= false + // Rule 22: literal ::= false // - case 27: { action.builder. + case 22: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_false); break; } // - // Rule 28: literal ::= this + // Rule 23: literal ::= this // - case 28: { action.builder. + case 23: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_this); break; } // - // Rule 30: primary_expression ::= ( expression ) + // Rule 25: primary_expression ::= ( expression ) // - case 30: { action.builder. + case 25: { action.builder. consumeExpressionBracketed(); break; } // - // Rule 32: id_expression ::= qualified_or_unqualified_name + // Rule 27: id_expression ::= qualified_or_unqualified_name // - case 32: { action.builder. + case 27: { action.builder. consumeExpressionName(); break; } // - // Rule 39: unqualified_id_name ::= ~ identifier_token + // Rule 34: unqualified_id_name ::= ~ identifier_token // - case 39: { action.builder. + case 34: { action.builder. consumeDestructorName(); break; } // - // Rule 40: unqualified_id_name ::= ~ template_id_name + // Rule 35: unqualified_id_name ::= ~ template_id_name // - case 40: { action.builder. + case 35: { action.builder. consumeDestructorNameTemplateId(); break; } // - // Rule 41: identifier_name ::= identifier_token + // Rule 36: identifier_name ::= identifier_token // - case 41: { action.builder. + case 36: { action.builder. consumeIdentifierName(); break; } // - // Rule 42: template_opt ::= template + // Rule 37: template_opt ::= template // - case 42: { action.builder. + case 37: { action.builder. consumePlaceHolder(); break; } // - // Rule 43: template_opt ::= $Empty + // Rule 38: template_opt ::= $Empty // - case 43: { action.builder. + case 38: { action.builder. consumeEmpty(); break; } // - // Rule 44: dcolon_opt ::= :: + // Rule 39: dcolon_opt ::= :: // - case 44: { action.builder. + case 39: { action.builder. consumeToken(); break; } // - // Rule 45: dcolon_opt ::= $Empty + // Rule 40: dcolon_opt ::= $Empty // - case 45: { action.builder. + case 40: { action.builder. consumeEmpty(); break; } // - // Rule 46: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name + // Rule 41: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name // - case 46: { action.builder. + case 41: { action.builder. consumeQualifiedId(true); break; } // - // Rule 47: qualified_id_name ::= :: unqualified_id_name + // Rule 42: qualified_id_name ::= :: unqualified_id_name // - case 47: { action.builder. + case 42: { action.builder. consumeGlobalQualifiedId(); break; } // - // Rule 48: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template + // Rule 43: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template // - case 48: { action.builder. + case 43: { action.builder. consumeNestedNameSpecifier(true); break; } // - // Rule 49: nested_name_specifier ::= class_or_namespace_name :: + // Rule 44: nested_name_specifier ::= class_or_namespace_name :: // - case 49: { action.builder. + case 44: { action.builder. consumeNestedNameSpecifier(false); break; } // - // Rule 50: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template + // Rule 45: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template // - case 50: { action.builder. + case 45: { action.builder. consumeNestedNameSpecifier(true); break; } // - // Rule 51: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: + // Rule 46: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: // - case 51: { action.builder. + case 46: { action.builder. consumeNestedNameSpecifier(false); break; } // - // Rule 52: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name + // Rule 47: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name // - case 52: { action.builder. + case 47: { action.builder. consumeNameWithTemplateKeyword(); break; } // - // Rule 54: nested_name_specifier_opt ::= $Empty + // Rule 49: nested_name_specifier_opt ::= $Empty // - case 54: { action.builder. + case 49: { action.builder. consumeNestedNameSpecifierEmpty(); break; } // - // Rule 57: postfix_expression ::= postfix_expression [ expression ] + // Rule 52: postfix_expression ::= postfix_expression [ expression ] // - case 57: { action.builder. + case 52: { action.builder. consumeExpressionArraySubscript(); break; } // - // Rule 58: postfix_expression ::= postfix_expression ( expression_list_opt ) + // Rule 53: postfix_expression ::= postfix_expression ( expression_list_opt ) // - case 58: { action.builder. + case 53: { action.builder. consumeExpressionFunctionCall(); break; } // - // Rule 59: postfix_expression ::= simple_type_specifier ( expression_list_opt ) + // Rule 54: postfix_expression ::= simple_type_specifier ( expression_list_opt ) // - case 59: { action.builder. + case 54: { action.builder. consumeExpressionSimpleTypeConstructor(); break; } // - // Rule 60: postfix_expression ::= typename dcolon_opt nested_name_specifier identifier_name ( expression_list_opt ) + // Rule 55: postfix_expression ::= typename dcolon_opt nested_name_specifier identifier_name ( expression_list_opt ) // - case 60: { action.builder. + case 55: { action.builder. consumeExpressionTypeName(); break; } // - // Rule 61: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) + // Rule 56: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) // - case 61: { action.builder. + case 56: { action.builder. consumeExpressionTypeName(); break; } // - // Rule 62: postfix_expression ::= postfix_expression . qualified_or_unqualified_name + // Rule 57: postfix_expression ::= postfix_expression . qualified_or_unqualified_name // - case 62: { action.builder. + case 57: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 63: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name + // Rule 58: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name // - case 63: { action.builder. + case 58: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 64: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name + // Rule 59: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name // - case 64: { action.builder. + case 59: { action.builder. consumeExpressionFieldReference(false, true); break; } // - // Rule 65: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name + // Rule 60: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name // - case 65: { action.builder. + case 60: { action.builder. consumeExpressionFieldReference(true, true); break; } // - // Rule 66: postfix_expression ::= postfix_expression . pseudo_destructor_name + // Rule 61: postfix_expression ::= postfix_expression . pseudo_destructor_name // - case 66: { action.builder. + case 61: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 67: postfix_expression ::= postfix_expression -> pseudo_destructor_name + // Rule 62: postfix_expression ::= postfix_expression -> pseudo_destructor_name // - case 67: { action.builder. + case 62: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 68: postfix_expression ::= postfix_expression ++ + // Rule 63: postfix_expression ::= postfix_expression ++ // - case 68: { action.builder. + case 63: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; } // - // Rule 69: postfix_expression ::= postfix_expression -- + // Rule 64: postfix_expression ::= postfix_expression -- // - case 69: { action.builder. + case 64: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; } // - // Rule 70: postfix_expression ::= dynamic_cast < type_id > ( expression ) + // Rule 65: postfix_expression ::= dynamic_cast < type_id > ( expression ) // - case 70: { action.builder. + case 65: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); break; } // - // Rule 71: postfix_expression ::= static_cast < type_id > ( expression ) + // Rule 66: postfix_expression ::= static_cast < type_id > ( expression ) // - case 71: { action.builder. + case 66: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_static_cast); break; } // - // Rule 72: postfix_expression ::= reinterpret_cast < type_id > ( expression ) + // Rule 67: postfix_expression ::= reinterpret_cast < type_id > ( expression ) // - case 72: { action.builder. + case 67: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); break; } // - // Rule 73: postfix_expression ::= const_cast < type_id > ( expression ) + // Rule 68: postfix_expression ::= const_cast < type_id > ( expression ) // - case 73: { action.builder. + case 68: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_const_cast); break; } // - // Rule 74: postfix_expression ::= typeid ( expression ) + // Rule 69: postfix_expression ::= typeid ( expression ) // - case 74: { action.builder. + case 69: { action.builder. consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break; } // - // Rule 75: postfix_expression ::= typeid ( type_id ) + // Rule 70: postfix_expression ::= typeid ( type_id ) // - case 75: { action.builder. + case 70: { action.builder. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid); break; } // - // Rule 76: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name + // Rule 71: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name // - case 76: { action.builder. + case 71: { action.builder. consumePsudoDestructorName(true); break; } // - // Rule 77: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name + // Rule 72: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name // - case 77: { action.builder. + case 72: { action.builder. consumePsudoDestructorName(true); break; } // - // Rule 78: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name + // Rule 73: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name // - case 78: { action.builder. + case 73: { action.builder. consumePsudoDestructorName(false); break; } // - // Rule 79: destructor_type_name ::= ~ identifier_token + // Rule 74: destructor_type_name ::= ~ identifier_token // - case 79: { action.builder. + case 74: { action.builder. consumeDestructorName(); break; } // - // Rule 80: destructor_type_name ::= ~ template_id_name + // Rule 75: destructor_type_name ::= ~ template_id_name // - case 80: { action.builder. + case 75: { action.builder. consumeDestructorNameTemplateId(); break; } // - // Rule 84: unary_expression ::= ++ cast_expression + // Rule 79: unary_expression ::= ++ cast_expression // - case 84: { action.builder. + case 79: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; } // - // Rule 85: unary_expression ::= -- cast_expression + // Rule 80: unary_expression ::= -- cast_expression // - case 85: { action.builder. + case 80: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; } // - // Rule 86: unary_expression ::= & cast_expression + // Rule 81: unary_expression ::= & cast_expression // - case 86: { action.builder. + case 81: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; } // - // Rule 87: unary_expression ::= * cast_expression + // Rule 82: unary_expression ::= * cast_expression // - case 87: { action.builder. + case 82: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; } // - // Rule 88: unary_expression ::= + cast_expression + // Rule 83: unary_expression ::= + cast_expression // - case 88: { action.builder. + case 83: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; } // - // Rule 89: unary_expression ::= - cast_expression + // Rule 84: unary_expression ::= - cast_expression // - case 89: { action.builder. + case 84: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; } // - // Rule 90: unary_expression ::= ~ cast_expression + // Rule 85: unary_expression ::= ~ cast_expression // - case 90: { action.builder. + case 85: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; } // - // Rule 91: unary_expression ::= ! cast_expression + // Rule 86: unary_expression ::= ! cast_expression // - case 91: { action.builder. + case 86: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; } // - // Rule 92: unary_expression ::= sizeof unary_expression + // Rule 87: unary_expression ::= sizeof unary_expression // - case 92: { action.builder. + case 87: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; } // - // Rule 93: unary_expression ::= sizeof ( type_id ) + // Rule 88: unary_expression ::= sizeof ( type_id ) // - case 93: { action.builder. + case 88: { action.builder. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_sizeof); break; } // - // Rule 94: new_expression ::= dcolon_opt new new_placement_opt new_type_id new_array_expressions_opt new_initializer_opt + // Rule 89: new_expression ::= dcolon_opt new new_placement_opt new_type_id new_array_expressions_opt new_initializer_opt // - case 94: { action.builder. + case 89: { action.builder. consumeExpressionNew(true); break; } // - // Rule 95: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_array_expressions_opt new_initializer_opt + // Rule 90: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_array_expressions_opt new_initializer_opt // - case 95: { action.builder. + case 90: { action.builder. consumeExpressionNew(false); break; } // - // Rule 97: new_placement_opt ::= $Empty + // Rule 92: new_placement_opt ::= $Empty // - case 97: { action.builder. + case 92: { action.builder. consumeEmpty(); break; } // - // Rule 98: new_type_id ::= type_specifier_seq + // Rule 93: new_type_id ::= type_specifier_seq // - case 98: { action.builder. + case 93: { action.builder. consumeTypeId(false); break; } // - // Rule 99: new_type_id ::= type_specifier_seq new_declarator + // Rule 94: new_type_id ::= type_specifier_seq new_declarator // - case 99: { action.builder. + case 94: { action.builder. consumeTypeId(true); break; } // - // Rule 100: new_declarator ::= new_pointer_operators + // Rule 95: new_declarator ::= new_pointer_operators // - case 100: { action.builder. + case 95: { action.builder. consumeNewDeclarator(); break; } // - // Rule 109: new_initializer_opt ::= $Empty + // Rule 104: new_initializer_opt ::= $Empty // - case 109: { action.builder. + case 104: { action.builder. consumeEmpty(); break; } // - // Rule 110: delete_expression ::= dcolon_opt delete cast_expression + // Rule 105: delete_expression ::= dcolon_opt delete cast_expression // - case 110: { action.builder. + case 105: { action.builder. consumeExpressionDelete(false); break; } // - // Rule 111: delete_expression ::= dcolon_opt delete [ ] cast_expression + // Rule 106: delete_expression ::= dcolon_opt delete [ ] cast_expression // - case 111: { action.builder. + case 106: { action.builder. consumeExpressionDelete(true); break; } // - // Rule 113: cast_expression ::= ( type_id ) cast_expression + // Rule 108: cast_expression ::= ( type_id ) cast_expression // - case 113: { action.builder. + case 108: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_cast); break; } // - // Rule 115: pm_expression ::= pm_expression .* cast_expression + // Rule 110: pm_expression ::= pm_expression .* cast_expression // - case 115: { action.builder. + case 110: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot); break; } // - // Rule 116: pm_expression ::= pm_expression ->* cast_expression + // Rule 111: pm_expression ::= pm_expression ->* cast_expression // - case 116: { action.builder. + case 111: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow); break; } // - // Rule 118: multiplicative_expression ::= multiplicative_expression * pm_expression + // Rule 113: multiplicative_expression ::= multiplicative_expression * pm_expression // - case 118: { action.builder. + case 113: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply); break; } // - // Rule 119: multiplicative_expression ::= multiplicative_expression / pm_expression + // Rule 114: multiplicative_expression ::= multiplicative_expression / pm_expression // - case 119: { action.builder. + case 114: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide); break; } // - // Rule 120: multiplicative_expression ::= multiplicative_expression % pm_expression + // Rule 115: multiplicative_expression ::= multiplicative_expression % pm_expression // - case 120: { action.builder. + case 115: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo); break; } // - // Rule 122: additive_expression ::= additive_expression + multiplicative_expression + // Rule 117: additive_expression ::= additive_expression + multiplicative_expression // - case 122: { action.builder. + case 117: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus); break; } // - // Rule 123: additive_expression ::= additive_expression - multiplicative_expression + // Rule 118: additive_expression ::= additive_expression - multiplicative_expression // - case 123: { action.builder. + case 118: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus); break; } // - // Rule 125: shift_expression ::= shift_expression << additive_expression + // Rule 120: shift_expression ::= shift_expression << additive_expression // - case 125: { action.builder. + case 120: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft); break; } // - // Rule 126: shift_expression ::= shift_expression >> additive_expression + // Rule 121: shift_expression ::= shift_expression >> additive_expression // - case 126: { action.builder. + case 121: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight); break; } // - // Rule 128: relational_expression ::= relational_expression < shift_expression + // Rule 123: relational_expression ::= relational_expression < shift_expression // - case 128: { action.builder. + case 123: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; } // - // Rule 129: relational_expression ::= relational_expression > shift_expression + // Rule 124: relational_expression ::= relational_expression > shift_expression // - case 129: { action.builder. + case 124: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; } // - // Rule 130: relational_expression ::= relational_expression <= shift_expression + // Rule 125: relational_expression ::= relational_expression <= shift_expression // - case 130: { action.builder. + case 125: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; } // - // Rule 131: relational_expression ::= relational_expression >= shift_expression + // Rule 126: relational_expression ::= relational_expression >= shift_expression // - case 131: { action.builder. + case 126: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; } // - // Rule 133: equality_expression ::= equality_expression == relational_expression + // Rule 128: equality_expression ::= equality_expression == relational_expression // - case 133: { action.builder. + case 128: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; } // - // Rule 134: equality_expression ::= equality_expression != relational_expression + // Rule 129: equality_expression ::= equality_expression != relational_expression // - case 134: { action.builder. + case 129: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; } // - // Rule 136: and_expression ::= and_expression & equality_expression + // Rule 131: and_expression ::= and_expression & equality_expression // - case 136: { action.builder. + case 131: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; } // - // Rule 138: exclusive_or_expression ::= exclusive_or_expression ^ and_expression + // Rule 133: exclusive_or_expression ::= exclusive_or_expression ^ and_expression // - case 138: { action.builder. + case 133: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; } // - // Rule 140: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression + // Rule 135: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression // - case 140: { action.builder. + case 135: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; } // - // Rule 142: logical_and_expression ::= logical_and_expression && inclusive_or_expression + // Rule 137: logical_and_expression ::= logical_and_expression && inclusive_or_expression // - case 142: { action.builder. + case 137: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; } // - // Rule 144: logical_or_expression ::= logical_or_expression || logical_and_expression + // Rule 139: logical_or_expression ::= logical_or_expression || logical_and_expression // - case 144: { action.builder. + case 139: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; } // - // Rule 146: conditional_expression ::= logical_or_expression ? expression : assignment_expression + // Rule 141: conditional_expression ::= logical_or_expression ? expression : assignment_expression // - case 146: { action.builder. + case 141: { action.builder. consumeExpressionConditional(); break; } // - // Rule 147: throw_expression ::= throw + // Rule 142: throw_expression ::= throw // - case 147: { action.builder. + case 142: { action.builder. consumeExpressionThrow(false); break; } // - // Rule 148: throw_expression ::= throw assignment_expression + // Rule 143: throw_expression ::= throw assignment_expression // - case 148: { action.builder. + case 143: { action.builder. consumeExpressionThrow(true); break; } // - // Rule 151: assignment_expression ::= logical_or_expression = assignment_expression + // Rule 146: assignment_expression ::= logical_or_expression = assignment_expression // - case 151: { action.builder. + case 146: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; } // - // Rule 152: assignment_expression ::= logical_or_expression *= assignment_expression + // Rule 147: assignment_expression ::= logical_or_expression *= assignment_expression // - case 152: { action.builder. + case 147: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 153: assignment_expression ::= logical_or_expression /= assignment_expression + // Rule 148: assignment_expression ::= logical_or_expression /= assignment_expression // - case 153: { action.builder. + case 148: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; } // - // Rule 154: assignment_expression ::= logical_or_expression %= assignment_expression + // Rule 149: assignment_expression ::= logical_or_expression %= assignment_expression // - case 154: { action.builder. + case 149: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; } // - // Rule 155: assignment_expression ::= logical_or_expression += assignment_expression + // Rule 150: assignment_expression ::= logical_or_expression += assignment_expression // - case 155: { action.builder. + case 150: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; } // - // Rule 156: assignment_expression ::= logical_or_expression -= assignment_expression + // Rule 151: assignment_expression ::= logical_or_expression -= assignment_expression // - case 156: { action.builder. + case 151: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; } // - // Rule 157: assignment_expression ::= logical_or_expression >>= assignment_expression + // Rule 152: assignment_expression ::= logical_or_expression >>= assignment_expression // - case 157: { action.builder. + case 152: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 158: assignment_expression ::= logical_or_expression <<= assignment_expression + // Rule 153: assignment_expression ::= logical_or_expression <<= assignment_expression // - case 158: { action.builder. + case 153: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 159: assignment_expression ::= logical_or_expression &= assignment_expression + // Rule 154: assignment_expression ::= logical_or_expression &= assignment_expression // - case 159: { action.builder. + case 154: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 160: assignment_expression ::= logical_or_expression ^= assignment_expression + // Rule 155: assignment_expression ::= logical_or_expression ^= assignment_expression // - case 160: { action.builder. + case 155: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 161: assignment_expression ::= logical_or_expression |= assignment_expression + // Rule 156: assignment_expression ::= logical_or_expression |= assignment_expression // - case 161: { action.builder. + case 156: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 163: expression_list ::= expression_list_actual + // Rule 158: expression_list ::= expression_list_actual // - case 163: { action.builder. + case 158: { action.builder. consumeExpressionList(); break; } // - // Rule 167: expression_list_opt ::= $Empty + // Rule 162: expression_list_opt ::= $Empty + // + case 162: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 164: expression_opt ::= $Empty + // + case 164: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 167: constant_expression_opt ::= $Empty // case 167: { action.builder. consumeEmpty(); break; } // - // Rule 169: expression_opt ::= $Empty + // Rule 176: statement ::= ERROR_TOKEN // - case 169: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 172: constant_expression_opt ::= $Empty - // - case 172: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 181: statement ::= ERROR_TOKEN - // - case 181: { action.builder. + case 176: { action.builder. consumeStatementProblem(); break; } // - // Rule 182: labeled_statement ::= identifier : statement + // Rule 177: labeled_statement ::= identifier : statement // - case 182: { action.builder. + case 177: { action.builder. consumeStatementLabeled(); break; } // - // Rule 183: labeled_statement ::= case constant_expression : statement + // Rule 178: labeled_statement ::= case constant_expression : statement // - case 183: { action.builder. + case 178: { action.builder. consumeStatementCase(); break; } // - // Rule 184: labeled_statement ::= default : statement + // Rule 179: labeled_statement ::= default : statement // - case 184: { action.builder. + case 179: { action.builder. consumeStatementDefault(); break; } // - // Rule 185: expression_statement ::= expression ; + // Rule 180: expression_statement ::= expression ; // - case 185: { action.builder. + case 180: { action.builder. consumeStatementExpression(); break; } // - // Rule 186: expression_statement ::= ; + // Rule 181: expression_statement ::= ; // - case 186: { action.builder. + case 181: { action.builder. consumeStatementNull(); break; } // - // Rule 187: compound_statement ::= { statement_seq } + // Rule 182: compound_statement ::= { statement_seq } // - case 187: { action.builder. + case 182: { action.builder. consumeStatementCompoundStatement(true); break; } // - // Rule 188: compound_statement ::= { } + // Rule 183: compound_statement ::= { } // - case 188: { action.builder. + case 183: { action.builder. consumeStatementCompoundStatement(false); break; } // - // Rule 191: selection_statement ::= if ( condition ) statement + // Rule 186: selection_statement ::= if ( condition ) statement // - case 191: { action.builder. + case 186: { action.builder. consumeStatementIf(false); break; } // - // Rule 192: selection_statement ::= if ( condition ) statement else statement + // Rule 187: selection_statement ::= if ( condition ) statement else statement // - case 192: { action.builder. + case 187: { action.builder. consumeStatementIf(true); break; } // - // Rule 193: selection_statement ::= switch ( condition ) statement + // Rule 188: selection_statement ::= switch ( condition ) statement // - case 193: { action.builder. + case 188: { action.builder. consumeStatementSwitch(); break; } // - // Rule 195: condition ::= type_specifier_seq declarator = assignment_expression + // Rule 190: condition ::= type_specifier_seq declarator = assignment_expression // - case 195: { action.builder. + case 190: { action.builder. consumeConditionDeclaration(); break; } // - // Rule 197: condition_opt ::= $Empty + // Rule 192: condition_opt ::= $Empty // - case 197: { action.builder. + case 192: { action.builder. consumeEmpty(); break; } // - // Rule 198: iteration_statement ::= while ( condition ) statement + // Rule 193: iteration_statement ::= while ( condition ) statement // - case 198: { action.builder. + case 193: { action.builder. consumeStatementWhileLoop(); break; } // - // Rule 199: iteration_statement ::= do statement while ( expression ) ; + // Rule 194: iteration_statement ::= do statement while ( expression ) ; // - case 199: { action.builder. + case 194: { action.builder. consumeStatementDoLoop(); break; } // - // Rule 200: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement + // Rule 195: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement // - case 200: { action.builder. + case 195: { action.builder. consumeStatementForLoop(); break; } // - // Rule 202: for_init_statement ::= simple_declaration_with_declspec + // Rule 197: for_init_statement ::= simple_declaration_with_declspec // - case 202: { action.builder. + case 197: { action.builder. consumeStatementDeclaration(); break; } // - // Rule 203: jump_statement ::= break ; + // Rule 198: jump_statement ::= break ; // - case 203: { action.builder. + case 198: { action.builder. consumeStatementBreak(); break; } // - // Rule 204: jump_statement ::= continue ; + // Rule 199: jump_statement ::= continue ; // - case 204: { action.builder. + case 199: { action.builder. consumeStatementContinue(); break; } // - // Rule 205: jump_statement ::= return expression ; + // Rule 200: jump_statement ::= return expression ; // - case 205: { action.builder. + case 200: { action.builder. consumeStatementReturn(true); break; } // - // Rule 206: jump_statement ::= return ; + // Rule 201: jump_statement ::= return ; // - case 206: { action.builder. + case 201: { action.builder. consumeStatementReturn(false); break; } // - // Rule 207: jump_statement ::= goto identifier_token ; + // Rule 202: jump_statement ::= goto identifier_token ; // - case 207: { action.builder. + case 202: { action.builder. consumeStatementGoto(); break; } // - // Rule 208: declaration_statement ::= block_declaration + // Rule 203: declaration_statement ::= block_declaration // - case 208: { action.builder. + case 203: { action.builder. consumeStatementDeclarationWithDisambiguation(); break; } // - // Rule 209: declaration_statement ::= function_definition + // Rule 204: declaration_statement ::= function_definition // - case 209: { action.builder. + case 204: { action.builder. consumeStatementDeclaration(); break; } // - // Rule 226: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; + // Rule 212: declaration ::= ERROR_TOKEN // - case 226: { action.builder. + case 212: { action.builder. + consumeDeclarationProblem(); break; + } + + // + // Rule 222: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; + // + case 222: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 227: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; + // Rule 223: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; // - case 227: { action.builder. + case 223: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 228: declaration_specifiers ::= simple_declaration_specifiers + // Rule 224: declaration_specifiers ::= simple_declaration_specifiers // - case 228: { action.builder. + case 224: { action.builder. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 229: declaration_specifiers ::= class_declaration_specifiers + // Rule 225: declaration_specifiers ::= class_declaration_specifiers // - case 229: { action.builder. + case 225: { action.builder. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 230: declaration_specifiers ::= elaborated_declaration_specifiers + // Rule 226: declaration_specifiers ::= elaborated_declaration_specifiers // - case 230: { action.builder. + case 226: { action.builder. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 231: declaration_specifiers ::= enum_declaration_specifiers + // Rule 227: declaration_specifiers ::= enum_declaration_specifiers // - case 231: { action.builder. + case 227: { action.builder. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 232: declaration_specifiers ::= type_name_declaration_specifiers + // Rule 228: declaration_specifiers ::= type_name_declaration_specifiers // - case 232: { action.builder. + case 228: { action.builder. consumeDeclarationSpecifiersTypeName(); break; } // - // Rule 234: declaration_specifiers_opt ::= $Empty + // Rule 230: declaration_specifiers_opt ::= $Empty // - case 234: { action.builder. + case 230: { action.builder. consumeEmpty(); break; } // - // Rule 238: no_type_declaration_specifier ::= friend + // Rule 234: no_type_declaration_specifier ::= friend // - case 238: { action.builder. + case 234: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 239: no_type_declaration_specifier ::= typedef + // Rule 235: no_type_declaration_specifier ::= typedef // - case 239: { action.builder. + case 235: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 259: storage_class_specifier ::= auto + // Rule 255: storage_class_specifier ::= auto + // + case 255: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 256: storage_class_specifier ::= register + // + case 256: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 257: storage_class_specifier ::= static + // + case 257: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 258: storage_class_specifier ::= extern + // + case 258: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 259: storage_class_specifier ::= mutable // case 259: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 260: storage_class_specifier ::= register + // Rule 260: function_specifier ::= inline // case 260: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 261: storage_class_specifier ::= static + // Rule 261: function_specifier ::= virtual // case 261: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 262: storage_class_specifier ::= extern + // Rule 262: function_specifier ::= explicit // case 262: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 263: storage_class_specifier ::= mutable + // Rule 263: simple_type_specifier ::= char // case 263: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 264: function_specifier ::= inline + // Rule 264: simple_type_specifier ::= wchar_t // case 264: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 265: function_specifier ::= virtual + // Rule 265: simple_type_specifier ::= bool // case 265: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 266: function_specifier ::= explicit + // Rule 266: simple_type_specifier ::= short // case 266: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 267: simple_type_specifier ::= char + // Rule 267: simple_type_specifier ::= int // case 267: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 268: simple_type_specifier ::= wchar_t + // Rule 268: simple_type_specifier ::= long // case 268: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 269: simple_type_specifier ::= bool + // Rule 269: simple_type_specifier ::= signed // case 269: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 270: simple_type_specifier ::= short + // Rule 270: simple_type_specifier ::= unsigned // case 270: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 271: simple_type_specifier ::= int + // Rule 271: simple_type_specifier ::= float // case 271: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 272: simple_type_specifier ::= long + // Rule 272: simple_type_specifier ::= double // case 272: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 273: simple_type_specifier ::= signed + // Rule 273: simple_type_specifier ::= void // case 273: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 274: simple_type_specifier ::= unsigned - // - case 274: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 275: simple_type_specifier ::= float - // - case 275: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 276: simple_type_specifier ::= double + // Rule 276: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name // case 276: { action.builder. - consumeDeclSpecToken(); break; + consumeQualifiedId(false); break; } // - // Rule 277: simple_type_specifier ::= void + // Rule 277: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name // case 277: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 280: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name - // - case 280: { action.builder. consumeQualifiedId(false); break; } // - // Rule 281: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name + // Rule 278: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name // - case 281: { action.builder. + case 278: { action.builder. consumeQualifiedId(false); break; } // - // Rule 282: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name + // Rule 279: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name // - case 282: { action.builder. - consumeQualifiedId(false); break; - } - - // - // Rule 283: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name - // - case 283: { action.builder. + case 279: { action.builder. consumeQualifiedId(true); break; } // - // Rule 285: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name + // Rule 281: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name // - case 285: { action.builder. + case 281: { action.builder. consumeTypeSpecifierElaborated(false); break; } // - // Rule 286: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name + // Rule 282: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name // - case 286: { action.builder. + case 282: { action.builder. consumeTypeSpecifierElaborated(true); break; } // - // Rule 287: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name + // Rule 283: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name // - case 287: { action.builder. + case 283: { action.builder. consumeTypeSpecifierElaborated(false); break; } // - // Rule 288: enum_specifier ::= enum { enumerator_list_opt } + // Rule 284: enum_specifier ::= enum { enumerator_list_opt } // - case 288: { action.builder. + case 284: { action.builder. consumeTypeSpecifierEnumeration(false); break; } // - // Rule 289: enum_specifier ::= enum identifier_token { enumerator_list_opt } + // Rule 285: enum_specifier ::= enum identifier_token { enumerator_list_opt } // - case 289: { action.builder. + case 285: { action.builder. consumeTypeSpecifierEnumeration(true); break; } // - // Rule 294: enumerator_definition ::= identifier_token + // Rule 290: enumerator_definition ::= identifier_token // - case 294: { action.builder. + case 290: { action.builder. consumeEnumerator(false); break; } // - // Rule 295: enumerator_definition ::= identifier_token = constant_expression + // Rule 291: enumerator_definition ::= identifier_token = constant_expression // - case 295: { action.builder. + case 291: { action.builder. consumeEnumerator(true); break; } // - // Rule 299: named_namespace_definition ::= namespace namespace_name { declaration_seq_opt } + // Rule 295: named_namespace_definition ::= namespace namespace_name { declaration_seq_opt } // - case 299: { action.builder. + case 295: { action.builder. consumeNamespaceDefinition(true); break; } // - // Rule 300: unnamed_namespace_definition ::= namespace { declaration_seq_opt } + // Rule 296: unnamed_namespace_definition ::= namespace { declaration_seq_opt } // - case 300: { action.builder. + case 296: { action.builder. consumeNamespaceDefinition(false); break; } // - // Rule 301: 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 301: { action.builder. + case 297: { action.builder. consumeNamespaceAliasDefinition(); break; } // - // Rule 302: 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 302: { action.builder. + case 298: { action.builder. consumeUsingDeclaration(); break; } // - // Rule 303: typename_opt ::= typename + // Rule 299: typename_opt ::= typename // - case 303: { action.builder. + case 299: { action.builder. consumePlaceHolder(); break; } // - // Rule 304: typename_opt ::= $Empty + // Rule 300: typename_opt ::= $Empty // - case 304: { action.builder. + case 300: { action.builder. consumeEmpty(); break; } // - // Rule 305: 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 305: { action.builder. + case 301: { action.builder. consumeUsingDirective(); break; } // - // Rule 306: asm_definition ::= asm ( stringlit ) ; + // Rule 302: asm_definition ::= asm ( stringlit ) ; // - case 306: { action.builder. + case 302: { action.builder. consumeDeclarationASM(); break; } // - // Rule 307: linkage_specification ::= extern stringlit { declaration_seq_opt } + // Rule 303: linkage_specification ::= extern stringlit { declaration_seq_opt } // - case 307: { action.builder. + case 303: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 308: linkage_specification ::= extern stringlit declaration + // Rule 304: linkage_specification ::= extern stringlit declaration // - case 308: { action.builder. + case 304: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 313: init_declarator_complete ::= init_declarator + // Rule 309: init_declarator_complete ::= init_declarator // - case 313: { action.builder. + case 309: { action.builder. consumeInitDeclaratorComplete(); break; } // - // Rule 315: init_declarator ::= declarator initializer + // Rule 311: init_declarator ::= declarator initializer // - case 315: { action.builder. + case 311: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 317: declarator ::= ptr_operator_seq direct_declarator + // Rule 313: declarator ::= ptr_operator_seq direct_declarator // - case 317: { action.builder. + case 313: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 319: function_declarator ::= ptr_operator_seq direct_declarator + // Rule 315: function_declarator ::= ptr_operator_seq direct_declarator + // + case 315: { action.builder. + consumeDeclaratorWithPointer(true); break; + } + + // + // Rule 319: basic_direct_declarator ::= declarator_id_name // case 319: { action.builder. - consumeDeclaratorWithPointer(true); break; - } - - // - // Rule 323: basic_direct_declarator ::= declarator_id_name - // - case 323: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 324: basic_direct_declarator ::= ( declarator ) + // Rule 320: basic_direct_declarator ::= ( declarator ) // - case 324: { action.builder. + case 320: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 325: 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 325: { action.builder. + case 321: { action.builder. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 326: array_direct_declarator ::= array_direct_declarator array_modifier + // Rule 322: array_direct_declarator ::= array_direct_declarator array_modifier // - case 326: { action.builder. + case 322: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 327: array_direct_declarator ::= basic_direct_declarator array_modifier + // Rule 323: array_direct_declarator ::= basic_direct_declarator array_modifier // - case 327: { action.builder. + case 323: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 328: array_modifier ::= [ constant_expression ] + // Rule 324: array_modifier ::= [ constant_expression ] // - case 328: { action.builder. + case 324: { action.builder. consumeDirectDeclaratorArrayModifier(true); break; } // - // Rule 329: array_modifier ::= [ ] + // Rule 325: array_modifier ::= [ ] // - case 329: { action.builder. + case 325: { action.builder. consumeDirectDeclaratorArrayModifier(false); break; } // - // Rule 330: ptr_operator ::= * cv_qualifier_seq_opt + // Rule 326: ptr_operator ::= * cv_qualifier_seq_opt // - case 330: { action.builder. + case 326: { action.builder. consumePointer(); break; } // - // Rule 331: ptr_operator ::= & + // Rule 327: ptr_operator ::= & // - case 331: { action.builder. + case 327: { action.builder. consumeReferenceOperator(); break; } // - // Rule 332: 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 332: { action.builder. + case 328: { action.builder. consumePointerToMember(); break; } // - // Rule 338: cv_qualifier ::= const + // Rule 334: cv_qualifier ::= const // - case 338: { action.builder. + case 334: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 339: cv_qualifier ::= volatile + // Rule 335: cv_qualifier ::= volatile // - case 339: { action.builder. + case 335: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 341: 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 341: { action.builder. + case 337: { action.builder. consumeQualifiedId(false); break; } // - // Rule 342: type_id ::= type_specifier_seq + // Rule 338: type_id ::= type_specifier_seq // - case 342: { action.builder. + case 338: { action.builder. consumeTypeId(false); break; } // - // Rule 343: type_id ::= type_specifier_seq abstract_declarator + // Rule 339: type_id ::= type_specifier_seq abstract_declarator // - case 343: { action.builder. + case 339: { action.builder. consumeTypeId(true); break; } // - // Rule 346: abstract_declarator ::= ptr_operator_seq + // Rule 342: abstract_declarator ::= ptr_operator_seq // - case 346: { action.builder. + case 342: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 347: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator + // Rule 343: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator // - case 347: { action.builder. + case 343: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 351: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 347: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - case 351: { action.builder. + case 347: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 352: basic_direct_abstract_declarator ::= ( ) + // Rule 348: basic_direct_abstract_declarator ::= ( ) // - case 352: { action.builder. + case 348: { action.builder. consumeAbstractDeclaratorEmpty(); break; } // - // Rule 353: array_direct_abstract_declarator ::= array_modifier + // Rule 349: array_direct_abstract_declarator ::= array_modifier // - case 353: { action.builder. + case 349: { action.builder. consumeDirectDeclaratorArrayDeclarator(false); break; } // - // Rule 354: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // Rule 350: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier // - case 354: { action.builder. + case 350: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 355: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier + // Rule 351: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier // - case 355: { action.builder. + case 351: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 356: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 352: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 356: { action.builder. + case 352: { action.builder. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 357: 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 357: { action.builder. + case 353: { action.builder. consumeDirectDeclaratorFunctionDeclarator(false); break; } // - // Rule 358: parameter_declaration_clause ::= parameter_declaration_list_opt ... + // Rule 354: parameter_declaration_clause ::= parameter_declaration_list_opt ... // - case 358: { action.builder. + case 354: { action.builder. consumePlaceHolder(); break; } // - // Rule 359: parameter_declaration_clause ::= parameter_declaration_list_opt + // Rule 355: parameter_declaration_clause ::= parameter_declaration_list_opt // - case 359: { action.builder. + case 355: { action.builder. consumeEmpty(); break; } // - // Rule 360: parameter_declaration_clause ::= parameter_declaration_list , ... + // Rule 356: parameter_declaration_clause ::= parameter_declaration_list , ... // - case 360: { action.builder. + case 356: { action.builder. consumePlaceHolder(); break; } // - // Rule 366: abstract_declarator_opt ::= $Empty + // Rule 362: abstract_declarator_opt ::= $Empty // - case 366: { action.builder. + case 362: { action.builder. consumeEmpty(); break; } // - // Rule 367: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // Rule 363: parameter_declaration ::= declaration_specifiers parameter_init_declarator // - case 367: { action.builder. + case 363: { action.builder. consumeParameterDeclaration(); break; } // - // Rule 368: parameter_declaration ::= declaration_specifiers + // Rule 364: parameter_declaration ::= declaration_specifiers // - case 368: { action.builder. + case 364: { action.builder. consumeParameterDeclarationWithoutDeclarator(); break; } // - // Rule 370: parameter_init_declarator ::= declarator = parameter_initializer + // Rule 366: parameter_init_declarator ::= declarator = parameter_initializer // - case 370: { action.builder. + case 366: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 372: parameter_init_declarator ::= abstract_declarator = parameter_initializer + // Rule 368: parameter_init_declarator ::= abstract_declarator = parameter_initializer // - case 372: { action.builder. + case 368: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 373: parameter_init_declarator ::= = parameter_initializer + // Rule 369: parameter_init_declarator ::= = parameter_initializer // - case 373: { action.builder. + case 369: { action.builder. consumeDeclaratorWithInitializer(false); break; } // - // Rule 374: parameter_initializer ::= assignment_expression + // Rule 370: parameter_initializer ::= assignment_expression // - case 374: { action.builder. + case 370: { action.builder. consumeInitializer(); break; } // - // Rule 375: 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 375: { action.builder. + case 371: { action.builder. consumeFunctionDefinition(false); break; } // - // Rule 376: 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 376: { action.builder. + case 372: { action.builder. consumeFunctionDefinition(true); break; } // - // Rule 379: initializer ::= ( expression_list ) + // Rule 375: initializer ::= ( expression_list ) // - case 379: { action.builder. + case 375: { action.builder. consumeInitializerConstructor(); break; } // - // Rule 380: initializer_clause ::= assignment_expression + // Rule 376: initializer_clause ::= assignment_expression // - case 380: { action.builder. + case 376: { action.builder. consumeInitializer(); break; } // - // Rule 381: initializer_clause ::= start_initializer_list { initializer_list , } end_initializer_list + // Rule 377: initializer_clause ::= start_initializer_list { initializer_list , } end_initializer_list // - case 381: { action.builder. + case 377: { action.builder. consumeInitializerList(); break; } // - // Rule 382: initializer_clause ::= start_initializer_list { initializer_list } end_initializer_list + // Rule 378: initializer_clause ::= start_initializer_list { initializer_list } end_initializer_list // - case 382: { action.builder. + case 378: { action.builder. consumeInitializerList(); break; } // - // Rule 383: initializer_clause ::= { } + // Rule 379: initializer_clause ::= { } // - case 383: { action.builder. + case 379: { action.builder. consumeInitializerList(); break; } // - // Rule 384: start_initializer_list ::= $Empty + // Rule 380: start_initializer_list ::= $Empty // - case 384: { action.builder. + case 380: { action.builder. initializerListStart(); break; } // - // Rule 385: end_initializer_list ::= $Empty + // Rule 381: end_initializer_list ::= $Empty // - case 385: { action.builder. + case 381: { action.builder. initializerListEnd(); break; } // - // Rule 390: class_specifier ::= class_head { member_declaration_list_opt } + // Rule 386: class_specifier ::= class_head { member_declaration_list_opt } // - case 390: { action.builder. + case 386: { action.builder. consumeClassSpecifier(); break; } // - // Rule 391: class_head ::= class_keyword identifier_name_opt base_clause_opt + // Rule 387: class_head ::= class_keyword identifier_name_opt base_clause_opt // - case 391: { action.builder. + case 387: { action.builder. consumeClassHead(false); break; } // - // Rule 392: class_head ::= class_keyword template_id_name base_clause_opt + // Rule 388: class_head ::= class_keyword template_id_name base_clause_opt + // + case 388: { action.builder. + consumeClassHead(false); break; + } + + // + // Rule 389: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt + // + case 389: { action.builder. + consumeClassHead(true); break; + } + + // + // Rule 390: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt + // + case 390: { action.builder. + consumeClassHead(true); break; + } + + // + // Rule 392: identifier_name_opt ::= $Empty // case 392: { action.builder. - consumeClassHead(false); break; - } - - // - // Rule 393: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt - // - case 393: { action.builder. - consumeClassHead(true); break; - } - - // - // Rule 394: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt - // - case 394: { action.builder. - consumeClassHead(true); break; - } - - // - // Rule 396: identifier_name_opt ::= $Empty - // - case 396: { action.builder. consumeEmpty(); break; } // - // Rule 400: visibility_label ::= access_specifier_keyword : + // Rule 396: visibility_label ::= access_specifier_keyword : // - case 400: { action.builder. + case 396: { action.builder. consumeVisibilityLabel(); break; } // - // Rule 401: member_declaration ::= declaration_specifiers_opt member_declarator_list ; + // Rule 397: member_declaration ::= declaration_specifiers_opt member_declarator_list ; // - case 401: { action.builder. + case 397: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 402: member_declaration ::= declaration_specifiers_opt ; + // Rule 398: member_declaration ::= declaration_specifiers_opt ; // - case 402: { action.builder. + case 398: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 405: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; + // Rule 401: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; // - case 405: { action.builder. + case 401: { action.builder. consumeMemberDeclarationQualifiedId(); break; } // - // Rule 411: member_declaration ::= ERROR_TOKEN + // Rule 407: member_declaration ::= ERROR_TOKEN // - case 411: { action.builder. + case 407: { action.builder. consumeDeclarationProblem(); break; } // - // Rule 419: member_declarator ::= declarator constant_initializer + // Rule 415: member_declarator ::= declarator constant_initializer // - case 419: { action.builder. + case 415: { action.builder. consumeMemberDeclaratorWithInitializer(); break; } // - // Rule 420: member_declarator ::= bit_field_declarator : constant_expression + // Rule 416: member_declarator ::= bit_field_declarator : constant_expression // - case 420: { action.builder. + case 416: { action.builder. consumeBitField(true); break; } // - // Rule 421: member_declarator ::= : constant_expression + // Rule 417: member_declarator ::= : constant_expression // - case 421: { action.builder. + case 417: { action.builder. consumeBitField(false); break; } // - // Rule 422: bit_field_declarator ::= identifier_name + // Rule 418: bit_field_declarator ::= identifier_name // - case 422: { action.builder. + case 418: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 423: constant_initializer ::= = constant_expression + // Rule 419: constant_initializer ::= = constant_expression // - case 423: { action.builder. + case 419: { action.builder. consumeInitializer(); break; } // - // Rule 429: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 425: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 429: { action.builder. + case 425: { action.builder. consumeBaseSpecifier(false, false); break; } // - // Rule 430: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name + // Rule 426: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name // - case 430: { action.builder. + case 426: { action.builder. consumeBaseSpecifier(true, true); break; } // - // Rule 431: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name + // Rule 427: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name // - case 431: { action.builder. + case 427: { action.builder. consumeBaseSpecifier(true, true); break; } // - // Rule 432: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name + // Rule 428: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name // - case 432: { action.builder. + case 428: { action.builder. consumeBaseSpecifier(true, false); break; } // - // Rule 433: access_specifier_keyword ::= private + // Rule 429: access_specifier_keyword ::= private + // + case 429: { action.builder. + consumeAccessKeywordToken(); break; + } + + // + // Rule 430: access_specifier_keyword ::= protected + // + case 430: { action.builder. + consumeAccessKeywordToken(); break; + } + + // + // Rule 431: access_specifier_keyword ::= public + // + case 431: { action.builder. + consumeAccessKeywordToken(); break; + } + + // + // Rule 433: access_specifier_keyword_opt ::= $Empty // case 433: { action.builder. - consumeAccessKeywordToken(); break; - } - - // - // Rule 434: access_specifier_keyword ::= protected - // - case 434: { action.builder. - consumeAccessKeywordToken(); break; - } - - // - // Rule 435: access_specifier_keyword ::= public - // - case 435: { action.builder. - consumeAccessKeywordToken(); break; - } - - // - // Rule 437: access_specifier_keyword_opt ::= $Empty - // - case 437: { action.builder. consumeEmpty(); break; } // - // Rule 439: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > + // Rule 435: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > // - case 439: { action.builder. + case 435: { action.builder. consumeTemplateId(); break; } // - // Rule 440: conversion_function_id ::= operator conversion_type_id + // Rule 436: conversion_function_id ::= operator conversion_type_id // - case 440: { action.builder. + case 436: { action.builder. consumeConversionName(); break; } // - // Rule 441: conversion_type_id ::= type_specifier_seq conversion_declarator + // Rule 437: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 441: { action.builder. + case 437: { action.builder. consumeTypeId(true); break; } // - // Rule 442: conversion_type_id ::= type_specifier_seq + // Rule 438: conversion_type_id ::= type_specifier_seq // - case 442: { action.builder. + case 438: { action.builder. consumeTypeId(false); break; } // - // Rule 443: conversion_declarator ::= ptr_operator_seq + // Rule 439: conversion_declarator ::= ptr_operator_seq // - case 443: { action.builder. + case 439: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 449: mem_initializer ::= mem_initializer_name ( expression_list_opt ) + // Rule 445: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 449: { action.builder. + case 445: { action.builder. consumeConstructorChainInitializer(); break; } // - // Rule 450: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 446: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name // - case 450: { action.builder. + case 446: { action.builder. consumeQualifiedId(false); break; } // - // Rule 453: operator_function_id_name ::= operator_id_name < template_argument_list_opt > + // Rule 449: operator_function_id_name ::= operator_id_name < template_argument_list_opt > // - case 453: { action.builder. + case 449: { action.builder. consumeTemplateId(); break; } // - // Rule 454: operator_id_name ::= operator overloadable_operator + // Rule 450: operator_id_name ::= operator overloadable_operator // - case 454: { action.builder. + case 450: { action.builder. consumeOperatorName(); break; } // - // Rule 497: template_declaration ::= export_opt template < template_parameter_list > declaration + // Rule 493: template_declaration ::= export_opt template < template_parameter_list > declaration // - case 497: { action.builder. + case 493: { action.builder. consumeTemplateDeclaration(); break; } // - // Rule 498: export_opt ::= export + // Rule 494: export_opt ::= export // - case 498: { action.builder. + case 494: { action.builder. consumePlaceHolder(); break; } // - // Rule 499: export_opt ::= $Empty + // Rule 495: export_opt ::= $Empty // - case 499: { action.builder. + case 495: { action.builder. consumeEmpty(); break; } // - // Rule 503: template_parameter ::= parameter_declaration + // Rule 499: template_parameter ::= parameter_declaration // - case 503: { action.builder. + case 499: { action.builder. consumeTemplateParamterDeclaration(); break; } // - // Rule 504: type_parameter ::= class identifier_name_opt + // Rule 500: type_parameter ::= class identifier_name_opt + // + case 500: { action.builder. + consumeSimpleTypeTemplateParameter(false); break; + } + + // + // Rule 501: type_parameter ::= class identifier_name_opt = type_id + // + case 501: { action.builder. + consumeSimpleTypeTemplateParameter(true); break; + } + + // + // Rule 502: type_parameter ::= typename identifier_name_opt + // + case 502: { action.builder. + consumeSimpleTypeTemplateParameter(false); break; + } + + // + // Rule 503: type_parameter ::= typename identifier_name_opt = type_id + // + case 503: { action.builder. + consumeSimpleTypeTemplateParameter(true); break; + } + + // + // Rule 504: type_parameter ::= template < template_parameter_list > class identifier_name_opt // case 504: { action.builder. - consumeSimpleTypeTemplateParameter(false); break; - } - - // - // Rule 505: type_parameter ::= class identifier_name_opt = type_id - // - case 505: { action.builder. - consumeSimpleTypeTemplateParameter(true); break; - } - - // - // Rule 506: type_parameter ::= typename identifier_name_opt - // - case 506: { action.builder. - consumeSimpleTypeTemplateParameter(false); break; - } - - // - // Rule 507: type_parameter ::= typename identifier_name_opt = type_id - // - case 507: { action.builder. - consumeSimpleTypeTemplateParameter(true); break; - } - - // - // Rule 508: type_parameter ::= template < template_parameter_list > class identifier_name_opt - // - case 508: { action.builder. consumeTemplatedTypeTemplateParameter(false); break; } // - // Rule 509: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression + // Rule 505: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression // - case 509: { action.builder. + case 505: { action.builder. consumeTemplatedTypeTemplateParameter(true); break; } // - // Rule 510: template_id_name ::= identifier_name < template_argument_list_opt > + // Rule 506: template_id_name ::= identifier_name < template_argument_list_opt > // - case 510: { action.builder. + case 506: { action.builder. consumeTemplateId(); break; } // - // Rule 515: template_argument ::= assignment_expression + // Rule 511: template_argument ::= assignment_expression // - case 515: { action.builder. + case 511: { action.builder. consumeTemplateArgumentExpression(); break; } // - // Rule 516: template_argument ::= type_id + // Rule 512: template_argument ::= type_id // - case 516: { action.builder. + case 512: { action.builder. consumeTemplateArgumentTypeId(); break; } // - // Rule 517: explicit_instantiation ::= template declaration + // Rule 513: explicit_instantiation ::= template declaration // - case 517: { action.builder. + case 513: { action.builder. consumeTemplateExplicitInstantiation(); break; } // - // Rule 518: explicit_specialization ::= template < > declaration + // Rule 514: explicit_specialization ::= template < > declaration // - case 518: { action.builder. + case 514: { action.builder. consumeTemplateExplicitSpecialization(); break; } // - // Rule 519: try_block ::= try compound_statement handler_seq + // Rule 515: try_block ::= try compound_statement handler_seq // - case 519: { action.builder. + case 515: { action.builder. consumeStatementTryBlock(); break; } // - // Rule 522: handler ::= catch ( exception_declaration ) compound_statement + // Rule 518: handler ::= catch ( exception_declaration ) compound_statement // - case 522: { action.builder. + case 518: { action.builder. consumeStatementCatchHandler(false); break; } // - // Rule 523: handler ::= catch ( ... ) compound_statement + // Rule 519: handler ::= catch ( ... ) compound_statement // - case 523: { action.builder. + case 519: { action.builder. consumeStatementCatchHandler(true); break; } // - // Rule 524: exception_declaration ::= type_specifier_seq declarator + // Rule 520: exception_declaration ::= type_specifier_seq declarator // - case 524: { action.builder. + case 520: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 525: exception_declaration ::= type_specifier_seq abstract_declarator + // Rule 521: exception_declaration ::= type_specifier_seq abstract_declarator // - case 525: { action.builder. + case 521: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 526: exception_declaration ::= type_specifier_seq + // Rule 522: exception_declaration ::= type_specifier_seq // - case 526: { action.builder. + case 522: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 528: exception_specification ::= throw ( ) + // Rule 524: exception_specification ::= throw ( ) // - case 528: { action.builder. + case 524: { action.builder. consumePlaceHolder(); break; } // - // Rule 534: expression_parser_start ::= ERROR_TOKEN + // Rule 530: expression_parser_start ::= ERROR_TOKEN // - case 534: { action.builder. + case 530: { action.builder. consumeExpressionProblem(); break; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParserprs.java index 88ced855eda..4cf6de3321a 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParserprs.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParserprs.java @@ -38,487 +38,486 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface BaseCheck { public final static short baseCheck[] = {0, 0,0,1,1,1,1,1,1,1,1, - 1,1,1,0,1,2,1,1,1,1, - 1,1,1,1,1,1,1,1,1,3, - 1,1,1,1,1,1,1,1,2,2, - 1,1,0,1,0,4,2,3,2,3, - 2,2,1,0,1,1,4,4,4,8, - 8,3,3,4,4,3,3,2,2,7, - 7,7,7,4,4,5,6,3,2,2, - 1,1,1,2,2,2,2,2,2,2, - 2,2,4,7,9,3,0,1,2,2, - 1,2,3,4,1,0,3,1,0,3, - 5,1,4,1,3,3,1,3,3,3, - 1,3,3,1,3,3,1,3,3,3, - 3,1,3,3,1,3,1,3,1,3, - 1,3,1,3,1,5,1,2,1,1, - 3,3,3,3,3,3,3,3,3,3, - 3,1,2,1,3,1,0,1,0,1, - 1,0,1,1,1,1,1,1,1,1, - 1,3,4,3,2,1,4,2,1,2, - 5,7,5,1,4,1,0,5,7,8, - 1,1,2,2,3,2,3,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,2,1,0,4,4,2,2,2, - 2,2,1,0,1,1,1,1,1,1, - 2,1,2,2,2,1,1,2,2,1, - 2,2,1,2,2,1,2,2,1,1, + 1,1,1,1,3,1,1,1,1,1, + 1,1,1,2,2,1,1,0,1,0, + 4,2,3,2,3,2,2,1,0,1, + 1,4,4,4,8,8,3,3,4,4, + 3,3,2,2,7,7,7,7,4,4, + 5,6,3,2,2,1,1,1,2,2, + 2,2,2,2,2,2,2,4,7,9, + 3,0,1,2,2,1,2,3,4,1, + 0,3,1,0,3,5,1,4,1,3, + 3,1,3,3,3,1,3,3,1,3, + 3,1,3,3,3,3,1,3,3,1, + 3,1,3,1,3,1,3,1,3,1, + 5,1,2,1,1,3,3,3,3,3, + 3,3,3,3,3,3,1,2,1,3, + 1,0,1,0,1,1,0,1,1,1, + 1,1,1,1,1,1,3,4,3,2, + 1,4,2,1,2,5,7,5,1,4, + 1,0,5,7,8,1,1,2,2,3, + 2,3,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,2,1, + 0,4,4,2,2,2,2,2,1,0, + 1,1,1,1,1,1,2,1,2,2, + 2,1,1,2,2,1,2,2,1,2, + 2,1,2,2,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,3, - 4,4,5,2,4,5,4,5,6,1, - 3,1,0,1,3,1,1,1,6,5, - 7,6,1,0,6,5,6,4,1,3, - 1,0,1,1,2,1,3,1,3,1, - 1,1,1,3,9,2,2,3,2,3, - 1,5,1,2,2,1,0,1,1,1, - 3,1,2,1,1,2,3,1,1,1, - 3,2,1,2,2,9,8,2,1,3, - 1,3,1,0,1,0,2,1,1,3, - 1,3,2,1,5,8,1,2,3,1, - 7,6,3,0,0,1,3,1,1,5, - 4,4,5,5,1,0,1,1,1,2, - 4,2,2,1,5,1,1,1,1,1, - 1,1,2,1,0,1,3,1,2,3, - 2,1,2,2,1,0,1,3,3,5, - 5,4,1,1,1,1,0,1,5,2, - 2,1,2,2,1,0,1,3,4,3, - 1,1,5,2,1,1,3,3,1,1, + 1,1,1,1,1,3,4,4,5,2, + 4,5,4,5,6,1,3,1,0,1, + 3,1,1,1,6,5,7,6,1,0, + 6,5,6,4,1,3,1,0,1,1, + 2,1,3,1,3,1,1,1,1,3, + 9,2,2,3,2,3,1,5,1,2, + 2,1,0,1,1,1,3,1,2,1, + 1,2,3,1,1,1,3,2,1,2, + 2,9,8,2,1,3,1,3,1,0, + 1,0,2,1,1,3,1,3,2,1, + 5,8,1,2,3,1,7,6,3,0, + 0,1,3,1,1,5,4,4,5,5, + 1,0,1,1,1,2,4,2,2,1, + 5,1,1,1,1,1,1,1,2,1, + 0,1,3,1,2,3,2,1,2,2, + 1,0,1,3,3,5,5,4,1,1, + 1,1,0,1,5,2,2,1,2,2, + 1,0,1,3,4,3,1,1,5,2, + 1,1,3,3,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,2,2,7,1,0,1, - 3,1,1,2,4,2,4,7,9,5, - 1,3,1,0,1,1,2,4,4,1, - 2,5,5,3,3,1,4,3,1,0, - 1,3,1,1,-62,0,0,0,-412,0, + 2,2,7,1,0,1,3,1,1,2, + 4,2,4,7,9,5,1,3,1,0, + 1,1,2,4,4,1,2,5,5,3, + 3,1,4,3,1,0,1,3,1,1, + -62,0,0,0,-412,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-2,0,0,0, - 0,0,0,-4,0,0,-467,0,0,0, - 0,0,-435,0,0,0,0,-71,0,0, - 0,-54,0,0,0,0,0,0,0,0, - -5,-88,0,0,0,0,0,0,0,0, + 0,0,-2,0,0,0,0,0,0,-4, + 0,0,-467,0,0,0,0,0,-435,0, + 0,0,0,-71,0,0,0,-54,0,0, + 0,0,0,0,0,0,-5,-88,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-213,0,0,0,-20,0,0, + 0,0,0,0,0,0,0,0,0,-213, + 0,0,0,-20,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-243,0,0,0,-179,0, - 0,0,-72,0,0,0,0,0,0,0, + -243,0,0,0,-179,0,0,0,-72,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-115,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -115,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-127,0,0,0,0,0,-113,0, - -58,0,0,0,-128,0,0,0,0,-116, + 0,0,0,0,0,0,0,0,-127,0, + 0,0,0,0,-113,0,-58,0,0,0, + -128,0,0,0,0,-116,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-6,0,-7, + 0,0,0,0,0,-64,0,0,-49,-10, + 0,-146,0,0,0,0,0,-51,0,0, + 0,0,-8,-260,0,-523,0,0,0,-230, 0,0,0,0,0,0,0,0,0,0, - 0,-6,0,-7,0,0,0,0,0,-64, - 0,0,-49,-10,0,-146,0,0,0,0, - 0,-51,0,0,0,0,-8,-260,0,-523, - 0,0,0,-230,0,0,0,0,0,0, - 0,0,0,0,0,0,-9,-131,0,0, + 0,0,-9,-131,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-307,0,0,0, - 0,0,0,0,0,-118,-50,-521,0,0, - 0,0,0,0,-124,0,-275,0,0,0, - 0,0,-224,0,0,0,0,0,0,0, + 0,0,-307,0,0,0,0,0,0,0, + 0,-118,-50,-521,0,0,0,0,0,0, + -124,0,-275,0,0,0,0,0,-224,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-11,0,0,0,0,-388,0,0,0, - 0,0,0,0,0,-1,0,0,-12,0, - -142,0,0,-232,-65,0,0,0,-150,0, + 0,0,0,0,0,0,0,-11,0,0, + 0,0,-388,0,0,0,0,0,0,0, + 0,-1,0,0,-12,0,-142,0,0,-232, + -65,0,0,0,-150,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-13,0,0, - -498,0,0,0,0,0,0,0,0,0, + 0,0,0,-13,0,0,-498,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,-183,0,0,0,0,0, - 0,0,0,-522,0,0,0,-15,0,0, + 0,0,0,0,0,0,0,0,-246,0, 0,0,0,0,0,0,0,0,0,0, + -183,0,0,0,0,0,0,0,0,-522, + 0,0,0,-15,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-313,0,0,-28,0,0,0,0, - 0,0,0,0,0,0,-316,-431,0,0, + 0,0,0,0,0,0,0,0,-313,0, + 0,-28,0,0,0,0,0,0,0,0, + 0,0,-316,-431,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-117,0,0,-29, + 0,0,-117,0,0,-29,0,0,0,0, + 0,0,0,0,0,0,-3,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -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,-53,0,0,0,0,0, - -400,0,0,0,0,-30,-106,0,0,0, + -53,0,0,0,0,0,-400,0,0,0, + 0,-30,-106,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-267,0, - 0,0,0,0,0,0,0,0,-129,0, - -31,0,0,0,-280,0,0,0,-32,0, + 0,0,0,0,-267,0,0,0,0,0, + 0,0,0,0,-129,0,-31,0,0,0, + -280,0,0,0,-32,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-247, + 0,0,0,0,0,0,0,0,-396,0, + 0,0,0,-16,0,0,0,-350,-120,0, + 0,0,0,0,-320,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-247,0,0,0,0,0,0, - 0,0,-396,0,0,0,0,-16,0,0, - 0,-33,-120,0,0,0,0,0,-320,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-296,0,0,0,0,0,0, + 0,0,-235,0,0,0,0,-18,0,0, + 0,-353,-321,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-350,0,0, - 0,0,0,0,0,0,-235,0,0,0, - 0,-18,0,0,0,-353,-321,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-33,0,0,0,0,0, + 0,0,-527,0,0,0,-39,0,0,0, + -34,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-34,0, - 0,0,0,0,0,0,-527,0,0,0, - -39,0,0,0,-35,0,0,0,0,0, + 0,0,0,0,0,-134,0,0,0,0, + 0,0,0,0,-385,-74,-35,0,0,0, + -318,0,-41,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-134, - 0,0,0,0,0,0,0,0,-385,-74, - -36,0,0,0,-318,0,-41,0,0,0, - -37,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-38,0,0,0,0, - 0,0,0,0,-130,-296,0,0,0,-94, - 0,0,0,-439,0,0,0,0,0,0, + 0,-36,0,0,0,0,0,0,0,0, + -130,0,0,0,0,-94,0,0,0,-439, 0,0,0,0,0,0,0,0,0,0, - 0,-510,0,0,0,0,0,0,0,0, - 0,0,0,-210,0,0,0,0,-334,-40, - 0,0,-95,0,0,0,-497,0,0,0, + 0,0,0,0,0,0,0,-510,0,0, + 0,0,0,0,0,0,0,-37,0,-210, + 0,0,0,0,-451,0,0,0,-95,0, + 0,0,-497,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-455,0,0, + 0,-96,0,0,0,-38,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-451,0,0,0,-96,0,0,0,-55, + 0,0,0,-40,0,0,0,0,0,0, + 0,0,0,-55,0,-57,0,0,0,0, + -56,-66,0,0,-97,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-67,0,0,0, + 0,0,0,0,0,0,0,0,-137,0, + 0,0,-334,-69,-59,0,0,-98,0,0, + 0,-70,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,-56,0,-57, - 0,0,0,0,-455,0,0,0,-97,0, + 0,0,0,0,0,-144,-110,-60,0,0, + -99,0,0,0,-111,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-112,0,-138,0,0,0,-154,-132, + -107,0,0,-100,0,0,0,-139,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-137,0,0,0,-66,-67,-59,0, - 0,-98,0,0,0,-69,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-70,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-144, - -109,-60,0,0,-99,0,0,0,-110,0, + 0,0,0,0,0,-140,0,0,0,0, + 0,-141,-155,-108,0,0,-101,0,0,0, + -156,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-157,0, + 0,0,0,0,-158,-159,-114,0,0,-102, + 0,0,0,-160,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-111,0,-138,0, - 0,0,-154,-112,-107,0,0,-100,0,0, - 0,-132,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-139, - 0,0,0,0,0,0,0,0,0,-140, - 0,0,0,0,0,-141,-155,-108,0,0, - -101,0,0,0,-156,0,0,0,0,0, + 0,-161,0,0,0,0,0,0,0,0, + 0,-162,0,-185,0,0,0,0,-163,-149, + 0,0,-103,0,0,0,-164,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-165,0,0,0,0,0, + 0,0,0,0,-166,0,-186,0,0,0, + 0,-167,-153,0,0,-104,0,0,0,-168, 0,0,0,0,0,0,0,0,0,0, - 0,0,-157,0,0,0,0,0,-158,-159, - -114,0,0,-102,0,0,0,-160,0,0, + 0,0,0,0,0,0,0,-330,0,0, + 0,0,0,0,0,0,0,-192,0,-188, + 0,0,0,0,-200,-169,0,0,-135,0, + 0,0,-262,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-161,0,0,0,0, - 0,0,0,0,0,-162,0,-185,0,0, - 0,0,-163,-149,0,0,-103,0,0,0, - -164,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-165,0, - 0,0,0,0,0,0,0,0,-166,0, - -186,0,0,0,0,-167,-153,0,0,-104, - 0,0,0,-168,0,0,0,0,0,0, + -344,0,0,0,0,0,0,0,0,0, + -170,0,-171,0,0,0,-217,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-330,0,0,0,0,0,0,0,0, - 0,-192,0,-188,0,0,0,0,-200,-169, - 0,0,-135,0,0,0,-262,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-344,0,0,0,0,0, - 0,0,0,0,-170,0,-171,0,0,0, - -217,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-172,0,0,-333,0, + -190,0,0,0,0,-193,0,0,0,0, + 0,-178,0,0,0,-516,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-172, - 0,0,-333,0,-190,0,0,0,0,-193, - 0,0,0,0,0,-178,0,0,0,-516, + 0,0,0,0,0,0,0,-173,0,0, + 0,0,0,0,0,0,0,0,0,-204, + 0,0,0,0,-206,-202,0,0,-317,0, + 0,0,-342,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-173,0,0,0,0,0,0,0,0, - 0,0,0,-204,0,0,0,0,-206,-202, - 0,0,-317,0,0,0,-342,0,0,0, + -304,0,-174,0,0,0,-332,0,0,0, + -283,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-175,0,0,-176,0, + 0,0,0,0,-147,0,0,0,-284,-362, + 0,0,0,0,0,-348,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-304,0,-174,0,0,0, - -332,0,0,0,-283,0,0,0,0,0, + 0,0,0,0,0,0,0,-398,0,0, + 0,0,0,0,0,0,0,0,0,-177, + 0,0,0,-380,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-175, - 0,0,-176,0,0,0,0,0,-147,0, - 0,0,-284,-362,0,0,0,0,0,-348, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-180,0,0,0,0, + 0,-335,0,0,0,-181,0,0,0,0, + 0,0,-381,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-398,0,0,0,0,0,0,0,0, - 0,0,0,-177,0,0,0,-380,0,0, + 0,0,0,0,-411,0,0,0,0,0, + 0,-354,0,0,-433,0,0,0,0,0, + -442,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-392, + 0,0,0,0,0,0,0,0,-373,0, + 0,0,-182,-191,0,0,0,0,0,-93, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-180, - 0,0,0,0,0,-335,0,0,0,-181, - 0,0,0,0,0,0,-381,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-411,0, - 0,0,0,0,0,-354,0,0,-433,0, - 0,0,0,0,-442,0,0,0,0,0, + 0,-197,0,0,0,0,0,0,-198,0, + 0,-314,0,-187,0,0,0,-91,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-211, + 0,0,0,0,0,0,-238,0,0,-92, + 0,0,0,-369,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-392,0,0,0,0,0,0, - 0,0,-373,0,0,0,-182,-191,0,0, - 0,0,0,-93,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-197,0,0,0,0, - 0,0,-198,0,0,-314,0,-187,0,0, - 0,-91,0,0,0,0,0,0,0,0, + -89,0,0,0,-270,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-211,0,0,0,0,0,0, - -238,0,0,-92,0,0,0,-369,0,0, + 0,0,-292,0,0,0,0,0,-90,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-89,0,0,0,-270,0, + -201,0,0,0,0,0,-240,0,0,0, + 0,0,0,0,0,0,0,0,0,-212, + -196,0,0,0,-355,0,0,0,-286,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-292,0,0,0, - 0,0,-90,0,0,0,0,0,0,0, + 0,-152,0,0,0,-363,0,0,0,0, + 0,0,0,0,0,-231,0,0,0,-444, + 0,-222,0,0,0,0,0,0,0,0, + -223,-122,0,0,0,0,0,-464,0,0, + 0,0,-323,0,0,0,0,0,0,-225, + 0,0,-237,0,0,0,-239,0,0,0, + 0,0,0,0,-241,0,0,-376,0,0, + 0,0,0,0,0,0,0,0,-249,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,-201,0,0,0,0,0, - -240,0,0,0,0,0,0,0,0,0, - 0,0,0,-212,-196,0,0,0,-355,0, - 0,0,-286,0,0,0,0,0,0,0, - 0,0,0,0,0,-152,0,0,0,-363, - 0,0,0,0,0,0,0,0,0,-231, - 0,0,0,-444,0,-222,0,0,0,0, - 0,0,0,0,-223,-122,0,0,0,0, - 0,-464,0,0,0,0,-323,0,0,0, - 0,0,0,-393,0,0,-237,0,0,0, - -225,0,0,0,0,0,0,0,-239,0, - 0,-376,0,0,0,0,0,0,0,0, - 0,0,-241,0,0,0,0,0,-82,0, + 0,0,0,0,0,0,-263,0,0,0, + 0,-83,0,0,0,-408,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-265,0,0,0,0,0,0, + 0,-84,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -249,0,0,0,0,-83,0,0,0,0, + 0,0,0,-266,0,0,0,0,-85,0, + 0,0,-216,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-263,0,0, - 0,0,0,0,0,-84,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-265,0,0, - 0,0,-85,0,0,0,-216,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-266,0,0,0,0,-389, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-264,0,0,-215,0,0,0,-203, - -276,-14,-245,0,0,0,-475,-277,-326,-281, - 0,-423,0,0,-361,0,0,0,0,-282, - 0,0,-209,0,-234,0,0,-293,0,0, - 0,-374,0,0,0,0,0,0,0,0, - 0,0,0,-228,0,0,0,0,-43,0, - 0,0,0,-252,0,-460,0,0,0,0, - 0,0,0,0,0,0,0,-253,0,-297, - 0,0,-244,0,0,0,0,-359,0,0, - 0,0,0,0,0,0,-145,-440,0,0, - 0,0,0,0,-408,0,0,0,0,0, - 0,0,0,0,0,0,-61,0,0,0, - 0,-229,0,0,0,0,0,-382,0,0, - 0,0,0,-271,-242,0,0,0,0,-298, - -305,0,0,0,0,0,0,0,0,0, - 0,-233,0,-306,0,0,0,-236,0,0, + -276,0,0,0,0,-389,0,0,0,0, + 0,0,0,0,0,0,0,0,-264,0, + 0,-215,0,0,0,-203,-277,-14,-245,0, + 0,0,-475,-281,-326,-282,0,-423,0,0, + -361,0,0,0,0,-293,0,0,0,0, + -234,0,-297,-298,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-209, + 0,0,0,0,-43,0,0,0,0,-252, + 0,-393,0,0,0,0,0,0,0,0, + 0,0,0,-253,0,-305,0,0,-244,0, + 0,0,0,-306,0,0,0,0,0,0, + 0,0,-430,-440,0,0,0,0,0,0, -311,0,0,0,0,0,0,0,0,0, - 0,-515,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-52,0,0,0, - 0,0,0,0,-453,0,0,-302,0,0, - 0,-404,0,0,0,0,-324,-312,0,0, - 0,0,-250,0,0,0,0,-397,0,0, - 0,0,-357,-329,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-254,0,0, - 0,0,0,-347,0,0,0,0,-377,0, + 0,0,-61,-242,0,0,0,0,0,0, + 0,0,0,-382,0,0,0,0,0,-148, + -357,0,0,0,0,0,-119,-312,0,0, + 0,0,0,0,0,0,0,-228,0,-271, + 0,0,0,-250,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-515,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-349,0,0,0,0,0,-364,0, - 0,0,0,0,0,-47,0,0,0,-21, + 0,0,-52,0,0,0,0,0,0,0, + -453,0,-329,0,0,0,0,0,-404,0, + 0,0,-302,0,0,0,0,0,-251,0, + 0,0,0,-397,0,0,0,0,0,0, + 0,-347,0,0,0,0,0,0,0,0, + 0,-349,0,-254,0,0,0,-273,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,-251,0,0,0,0,0, - -148,-483,-367,0,0,-258,0,0,0,0, - 0,0,0,0,0,0,-86,0,0,0, - -226,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-390,0, - 0,0,-87,0,0,0,-391,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-309,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-394,-405,0,0,0,-199,-255,0, - 0,-427,0,-279,-272,0,-395,0,-291,0, - -449,-259,0,-401,0,-424,0,0,-303,-403, - 0,-406,0,0,-368,0,0,0,0,0, - 0,-413,0,0,0,0,0,0,0,0, - 0,0,-289,0,0,0,0,-470,0,0, - 0,0,-420,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-308,0,-421,0, - 0,0,0,-379,0,0,0,0,0,0, - 0,0,0,0,-17,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-441,0,-472,-430,0,0,0,0,0, - 0,-484,0,0,0,0,0,0,0,0, - 0,-248,-443,0,-322,0,-287,0,0,0, - -105,0,0,0,0,-445,-446,0,0,0, - 0,0,0,0,-143,0,0,0,-511,0, - 0,0,0,0,0,0,0,-489,0,0, - 0,0,-372,-454,-465,-447,0,0,0,0, + 0,-47,0,0,0,-21,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -448,-450,0,-466,-503,0,0,0,0,-468, + 0,0,0,0,0,0,0,0,-364,0, + -278,0,0,0,0,0,-236,0,0,0, + 0,-229,-368,0,0,0,0,0,0,0, + 0,0,-86,0,0,0,-367,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-469,0,-471,0,0,0,-425,0,0, - 0,-476,0,0,0,0,0,0,0,0, - 0,-505,0,0,0,0,-273,0,0,0, - 0,0,0,0,0,0,0,0,-463,0, - -328,0,0,0,0,0,0,-478,-480,0, - 0,0,0,0,0,0,0,0,-509,0, - 0,0,0,-278,0,0,0,0,0,0, - 0,0,0,0,0,-487,0,-479,0,-288, - 0,0,0,0,-299,0,0,0,0,0, - 0,0,0,0,0,-524,0,0,0,0, - -495,0,-504,-512,0,0,0,0,0,0, - 0,0,-517,0,-528,0,0,0,-456,-513, - 0,-300,0,0,0,0,0,0,0,0, - 0,0,-529,0,0,0,0,-290,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-415,0,0,-514,-325,0,0,0, + 0,0,0,0,-390,0,0,0,-87,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-337, - -274,0,-339,0,-341,0,0,0,0,0, - 0,0,0,0,0,0,-77,0,0,0, + 0,0,0,0,-309,0,0,0,0,0, + 0,0,0,0,0,0,0,-405,0,0, + 0,-359,-454,-199,-255,0,0,-427,0,-233, + -272,0,-465,0,-258,0,-449,-226,0,-289, + 0,-424,0,0,-279,0,0,-391,0,0, + -394,0,-290,0,0,0,0,-395,0,0, + 0,0,0,0,0,0,0,0,-299,-401, + 0,0,0,-470,0,0,0,0,-403,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-360,0, - 0,-78,0,0,0,0,0,0,0,0, + -291,0,-259,0,0,0,-483,0,0,-324, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-327,0,0,0, - 0,0,0,0,0,0,0,0,0,-507, + -17,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-406,0,-472, + -413,0,0,0,-456,0,0,-420,0,0, + 0,0,0,0,0,0,0,-248,-421,0, + -303,0,-287,0,0,0,-105,0,0,0, + 0,-460,0,0,0,0,0,0,0,0, + -143,0,0,0,0,0,0,0,0,0, + 0,0,0,-489,0,0,0,0,-372,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-79,0,0,0,0,0,0,0, + 0,0,0,-301,0,0,0,0,0,0, + 0,0,0,0,0,0,-441,-443,0,0, + -503,0,0,0,0,-513,0,0,0,0, + 0,0,0,0,0,0,0,-445,0,-446, + -447,0,0,-425,0,0,0,-379,0,0, + 0,0,0,0,0,0,0,-505,0,0, + 0,0,-478,-448,0,0,0,0,0,0, + 0,0,0,0,-463,0,-450,0,0,0, + 0,0,0,-479,-484,0,0,0,0,0, + 0,0,0,0,-509,0,0,0,0,-514, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-452,0,0,-518,0,-486, - 0,0,0,0,0,0,0,-436,0,0, - -356,0,-387,-119,0,0,0,0,0,0, - 0,0,0,0,-44,0,0,0,0,0, + 0,0,0,-319,0,-288,0,0,0,0, + -300,0,0,0,0,0,0,0,0,0, + 0,-524,0,0,0,0,-466,0,-486,0, + 0,0,0,0,0,0,0,0,-468,0, + 0,-308,0,0,0,0,0,-506,-469,0, + 0,0,0,0,0,0,0,0,-529,0, + 0,0,0,-471,0,-519,0,0,0,0, + 0,0,0,0,0,-322,0,-145,-415,0, + 0,0,-325,0,-476,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, + -480,0,0,0,0,0,0,0,0,0, + 0,0,-487,0,0,-328,-274,0,-495,0, + -337,-504,0,0,0,0,0,0,0,0, + 0,0,-77,0,0,0,-512,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-407,0,-386,-48,0,0, - 0,0,-410,-136,0,-414,0,0,0,0, - 0,0,0,-432,0,0,0,0,0,0, + 0,0,0,0,-360,0,0,-78,0,0, + 0,-517,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-374, + 0,0,-327,0,0,0,0,0,0,0, + 0,0,0,0,0,-507,0,0,0,0, + 0,0,0,0,0,0,0,0,-79,0, + 0,0,-528,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-457,0,-81,0, + -452,0,0,-518,0,-526,0,0,0,0, + 0,0,0,-436,0,0,-339,0,0,-121, + 0,0,-511,0,0,0,0,0,0,0, + -44,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-80,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -336,0,0,0,0,-218,0,0,0,0, - -371,0,0,0,0,0,0,0,0,-419, - -429,-121,0,0,0,-73,-219,0,0,0, - 0,-123,0,0,0,0,0,0,0,0, - 0,-125,0,0,0,0,0,0,0,0, + -341,0,-356,-48,0,0,0,0,-387,-136, + 0,-73,0,0,0,0,0,0,0,-432, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-386,0,-81,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-336,0,0,0, + 0,-218,0,0,0,0,-371,0,0,0, + 0,0,0,0,0,-407,-429,-123,0,0, + 0,-219,-220,0,0,0,0,-125,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-422,0,0,0, - 0,-459,-462,0,0,0,0,0,0,0, - 0,0,-481,0,0,0,0,0,0,0, - 0,0,0,0,0,-22,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-23,0,0, + 0,0,0,0,0,0,0,0,-410,0, + 0,0,0,0,0,0,0,-419,0,0, + 0,0,-422,0,0,0,0,-459,0,-462, + 0,0,-481,0,0,-414,0,0,0,0, + 0,-22,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-24, + 0,0,0,-23,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-24,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-25,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-26, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-25,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,-26,0,0,0,0,0,0, + 0,0,0,-63,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-27,0,0,0,0, + 0,0,0,0,0,-75,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-63,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,-75, + 0,0,0,0,0,0,0,0,0,-133, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-76,0,0,0,0,0,0,0,0, + 0,-207,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-133,0,0,0,0,0,0, + 0,0,0,-19,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-207,0,0,0,0, + 0,0,0,0,-338,-221,-457,-458,0,0, + -461,-485,-351,0,-365,0,-256,0,0,-257, + 0,-417,-295,0,-370,0,0,0,0,-294, + -499,0,0,0,0,-358,0,-490,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-19,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-338,-220, - -221,0,0,0,0,-351,0,0,-365,-458, - 0,-461,0,-256,0,-417,-295,0,-370,0, - 0,0,0,-294,0,-506,0,0,0,0, - 0,-499,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-301,0,0,0,0,0,0,0, - -490,0,0,0,0,0,0,0,0,0, - -519,0,0,0,0,0,0,0,0,0, - -409,0,0,0,0,0,0,-485,-492,0, - -418,0,0,-494,0,0,-526,0,0,-45, - -46,-208,0,0,0,0,-502,0,0,0, - 0,-319,0,0,0,-496,0,-500,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-358,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-310,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -491,0,0,0,0,0,0,0,0,0, - 0,0,0,-126,0,0,0,0,0,0, - 0,-151,0,0,0,0,0,-257,0,0, - 0,0,0,0,0,-227,-501,-331,-426,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-520,0,0,-488,0,0,0, - 0,0,0,0,-268,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-345,-525,-437,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,-428,0, - 0,0,0,0,0,-343,0,0,0,0, + 0,0,0,0,0,0,-492,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-378,0,0,0,0,0,0,0, - 0,0,0,0,0,-366,0,0,0,0, - 0,0,0,0,0,0,0,0,-508,0, - 0,0,0,-269,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-189, + 0,0,0,0,0,0,-409,0,0,0, + 0,0,0,0,-496,0,-418,-494,0,-502, + 0,0,0,0,0,-45,-46,-208,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-500,-501,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-194,0,0,0,-285,0, - 0,0,0,0,0,-315,0,0,0,-340, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-346,0,0,0,0,0,0, - -375,0,0,0,0,0,0,-438,0,0, - 0,0,0,0,0,0,-352,0,0,0, + 0,0,-310,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-491,0,0,0, + 0,0,0,0,0,0,0,0,0,-126, + 0,0,0,0,0,-520,-525,-151,0,0, + 0,0,0,-331,0,0,0,0,0,0, + 0,-227,0,-426,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -383,0,0,0,0,0,0,0,0,0, - 0,-384,0,0,0,-402,0,0,0,0, - 0,0,0,0,0,0,-399,0,0,0, - 0,0,0,0,0,-416,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -434,0,0,0,0,0,0,0,0,0, - -493,0,0,0,0,0,0,0,-42,0, - 0,0,0,-68,0,0,0,0,0,0, - 0,0,0,0,0,-184,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-195,0, - 0,0,0,0,-205,0,0,0,0,0, - 0,-473,0,0,0,0,0,0,0,0, - -214,0,0,0,-261,0,0,0,0,0, - 0,-474,0,0,0,0,0,0,0,-482, + 0,0,-488,0,0,0,0,0,0,0, + -268,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-345,0, + -437,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-477,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-343,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-378,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-366,0,0,0,0,0,0,0,0, + 0,0,0,0,-508,0,0,0,0,-269, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-189,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -194,0,0,0,-285,0,0,0,0,0, + 0,-315,0,0,0,-340,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-346, + 0,0,0,0,0,0,-375,0,0,0, + 0,0,0,-438,0,0,0,0,0,0, + 0,0,-352,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-383,0,0,0, + 0,0,0,0,0,0,0,-384,0,0, + 0,-402,0,0,0,0,0,0,0,0, + 0,0,-399,0,0,0,0,0,0,0, + 0,-416,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-434,0,0,0, + 0,0,0,0,0,0,-493,0,0,0, + 0,0,0,0,-42,0,0,0,0,-68, + 0,0,0,0,0,0,0,0,0,0, + 0,-184,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-195,0,0,0,0,0, + -205,0,0,0,0,0,0,-473,0,0, + 0,0,0,0,0,0,-214,0,0,0, + -261,0,0,0,0,0,0,-474,0,0, + 0,0,0,0,0,-482,0,0,0,0, + 0,0,0,0,0,0,0,-477,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, @@ -528,7 +527,8 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0 + 0,0,0,0,0,0,0,0,0,0, + 0 }; }; public final static short baseCheck[] = BaseCheck.baseCheck; @@ -539,534 +539,533 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface BaseAction { public final static char baseAction[] = { 169,4,133,82,82,32,32,66,66,38, - 38,40,40,193,193,194,194,195,195,1, - 1,15,15,15,15,15,15,15,15,16, - 16,16,14,11,11,6,6,6,6,6, - 6,2,64,64,5,5,12,12,44,44, - 134,134,135,56,56,43,17,17,17,17, + 38,40,40,193,1,1,15,15,15,15, + 15,15,15,15,16,16,16,14,11,11, + 6,6,6,6,6,6,2,64,64,5, + 5,12,12,44,44,134,134,135,56,56, + 43,17,17,17,17,17,17,17,17,17, 17,17,17,17,17,17,17,17,17,17, - 17,17,17,17,17,17,136,136,136,112, - 112,18,18,18,18,18,18,18,18,18, - 18,18,18,18,19,19,170,170,171,171, - 172,139,139,140,140,137,137,141,138,138, - 20,20,21,21,23,23,23,24,24,24, - 24,25,25,25,26,26,26,27,27,27, - 27,27,28,28,28,30,30,31,31,33, - 33,35,35,36,36,37,37,42,42,41, - 41,41,41,41,41,41,41,41,41,41, - 41,41,39,29,142,142,96,96,173,173, - 91,196,196,67,67,67,67,67,67,67, - 67,67,68,68,68,65,65,55,55,174, - 174,69,69,69,102,102,175,175,70,70, - 70,176,176,71,71,71,71,71,72,72, - 83,83,83,83,83,83,83,49,49,49, - 49,49,113,113,114,114,50,177,22,22, - 22,22,22,48,48,86,86,86,86,86, - 149,149,144,144,144,144,144,145,145,145, - 146,146,146,147,147,147,148,148,148,87, - 87,87,87,87,88,88,88,13,13,13, - 13,13,13,13,13,13,13,13,97,118, - 118,118,118,118,118,116,116,116,117,117, - 151,151,150,150,120,120,103,78,78,79, - 80,52,47,152,152,53,51,85,85,153, - 153,143,143,121,122,122,75,75,154,154, - 62,62,62,59,59,58,63,63,74,74, - 57,57,57,89,89,99,98,98,61,61, - 60,60,54,54,45,100,100,100,92,92, - 92,93,93,94,94,94,95,95,104,104, - 104,106,106,105,105,197,197,90,90,179, - 179,179,179,179,124,46,46,156,178,178, - 125,125,125,125,126,158,180,180,34,34, - 115,127,127,127,127,107,107,119,119,119, - 159,160,160,160,160,160,160,160,160,160, - 160,160,183,183,181,181,182,182,161,161, - 161,161,162,184,109,108,108,185,185,163, - 163,163,163,101,101,101,186,186,8,8, - 9,187,187,188,164,155,155,165,165,166, - 167,167,7,7,10,189,189,189,189,189, + 17,136,136,136,113,113,18,18,18,18, + 18,18,18,18,18,18,18,18,18,19, + 19,170,170,171,171,172,139,139,140,140, + 137,137,141,138,138,20,20,21,21,23, + 23,23,24,24,24,24,25,25,25,26, + 26,26,27,27,27,27,27,28,28,28, + 30,30,31,31,33,33,35,35,36,36, + 37,37,42,42,41,41,41,41,41,41, + 41,41,41,41,41,41,41,39,29,142, + 142,96,96,173,173,91,194,194,67,67, + 67,67,67,67,67,67,67,68,68,68, + 65,65,55,55,174,174,69,69,69,102, + 102,175,175,70,70,70,176,176,71,71, + 71,71,71,72,72,83,83,83,83,83, + 83,83,83,49,49,49,49,49,114,114, + 112,112,50,177,22,22,22,22,22,48, + 48,86,86,86,86,86,149,149,144,144, + 144,144,144,145,145,145,146,146,146,147, + 147,147,148,148,148,87,87,87,87,87, + 88,88,88,13,13,13,13,13,13,13, + 13,13,13,13,97,118,118,118,118,118, + 118,116,116,116,117,117,151,151,150,150, + 120,120,103,78,78,79,80,52,47,152, + 152,53,51,85,85,153,153,143,143,121, + 122,122,75,75,154,154,62,62,62,59, + 59,58,63,63,74,74,57,57,57,89, + 89,99,98,98,61,61,60,60,54,54, + 45,100,100,100,92,92,92,93,93,94, + 94,94,95,95,104,104,104,106,106,105, + 105,195,195,90,90,179,179,179,179,179, + 124,46,46,156,178,178,125,125,125,125, + 126,158,180,180,34,34,115,127,127,127, + 127,107,107,119,119,119,159,160,160,160, + 160,160,160,160,160,160,160,160,183,183, + 181,181,182,182,161,161,161,161,162,184, + 109,108,108,185,185,163,163,163,163,101, + 101,101,186,186,8,8,9,187,187,188, + 164,155,155,165,165,166,167,167,7,7, + 10,189,189,189,189,189,189,189,189,189, 189,189,189,189,189,189,189,189,189,189, 189,189,189,189,189,189,189,189,189,189, 189,189,189,189,189,189,189,189,189,189, - 189,189,189,189,189,189,189,76,81,81, - 168,168,129,129,130,130,130,130,130,130, - 3,131,131,128,128,110,110,84,77,73, - 157,157,111,111,190,190,190,132,132,123, - 123,191,191,169,169,1132,41,1696,1690,1427, - 3215,33,36,37,948,998,32,34,1680,31, - 29,56,1026,112,82,83,114,1090,1070,1161, - 1126,1212,1169,1315,1269,1299,1361,2885,1351,278, - 1386,1440,149,504,41,296,164,150,2508,41, - 919,38,1260,4352,33,36,37,948,998,63, - 34,1332,2396,41,919,38,237,1262,33,36, - 37,948,998,32,34,902,31,29,56,1026, - 112,82,83,114,495,1070,1161,1126,1212,1169, - 1819,240,235,236,504,41,1568,389,2396,41, - 919,38,279,1262,33,36,37,948,998,32, - 34,902,31,29,56,1026,112,82,83,91, - 247,250,253,256,2486,2758,41,282,55,504, - 41,2485,1213,2659,41,919,38,52,4352,33, - 36,37,948,998,62,34,3235,564,521,856, - 3604,3742,3752,3762,4344,1660,41,919,38,2847, - 1262,33,36,37,948,998,32,34,902,31, - 29,56,1026,112,82,83,114,344,1070,1161, - 1126,1212,1169,1315,67,1299,1361,315,1351,3418, - 1386,1440,149,331,41,284,515,150,4759,1343, - 2777,504,1576,1662,40,678,41,1568,389,516, - 1660,41,919,38,2847,1262,33,36,37,948, - 998,32,34,902,31,29,56,1026,112,82, - 83,114,344,1070,1161,1126,1212,1169,1315,55, - 1299,1361,1212,1351,2011,1386,1440,149,1567,2286, - 1508,515,150,44,592,2777,44,685,659,2936, - 1081,2435,1236,1956,516,511,1067,2493,1911,66, - 2161,41,919,38,756,4781,33,36,37,948, - 998,32,34,2160,509,2324,2170,2578,1660,41, - 919,38,2847,1262,33,36,37,948,998,32, - 34,902,31,29,56,1026,112,82,83,114, - 344,1070,1161,1126,1212,1169,1315,592,1299,1361, - 511,1351,4590,1386,1440,149,1387,44,75,515, - 150,740,659,2777,390,1983,1862,1911,2257,244, - 4575,2170,516,1865,41,919,38,2847,1262,33, - 36,37,948,998,32,34,902,31,29,56, - 1026,112,82,83,114,344,1070,1161,1126,1212, - 1169,1315,1396,1299,1361,1950,1351,2212,1386,1440, - 149,4221,391,425,515,150,1596,237,2777,2622, - 1081,331,41,284,756,1613,4765,516,511,1650, - 41,919,38,288,4781,33,36,37,948,998, - 65,34,245,235,236,162,2293,3663,2624,2170, - 2757,1994,41,919,38,533,1262,33,36,37, - 948,998,32,34,902,31,29,56,1026,112, - 82,83,114,1499,1070,1161,1126,1212,1169,1315, - 441,1299,1361,512,1351,1512,1386,1440,149,2079, - 4736,3833,380,150,1729,41,919,38,2686,1262, - 33,36,37,948,998,32,34,902,31,29, - 56,1026,112,82,83,114,382,1070,1161,1126, - 1212,1169,1315,1270,1299,1361,2577,1351,4637,1386, - 1440,149,392,425,3833,380,150,1911,1929,41, - 919,38,334,1262,33,36,37,948,998,32, - 34,902,31,29,56,1026,112,82,83,114, - 1307,1070,1161,1126,1212,1169,1315,2149,1299,1361, - 417,1351,4736,1386,1440,149,386,3319,3833,380, - 150,2102,41,919,38,557,1262,33,36,37, - 948,998,32,34,902,31,29,56,1026,112, - 82,83,114,289,1070,1161,1126,1212,1169,1315, - 2387,1299,1361,2698,1351,2519,1386,1440,149,387, - 3319,2514,164,150,333,2682,582,2396,41,919, - 38,3219,1262,33,36,37,948,998,32,34, - 902,31,29,56,1026,112,82,83,114,1715, - 1070,1161,1126,1212,1169,1315,985,1299,1361,2519, - 1351,2488,1982,378,3319,2102,41,919,38,1814, - 1262,33,36,37,948,998,32,34,902,31, - 29,56,1026,112,82,83,114,188,1070,1161, - 1126,1212,1169,1315,2149,1299,1361,496,1351,4736, - 1386,1440,149,2216,41,395,374,150,1773,41, - 919,38,156,1980,47,36,37,948,998,2102, - 41,919,38,564,1262,33,36,37,948,998, - 32,34,902,31,29,56,1026,112,82,83, - 114,458,1070,1161,1126,1212,1169,1315,2905,1299, - 1361,4137,1351,1821,1386,1440,149,504,41,287, - 374,150,1416,41,1568,389,592,2102,41,919, - 38,4651,1262,33,36,37,948,998,32,34, - 902,31,29,56,1026,112,82,83,114,373, - 1070,1161,1126,1212,1169,1315,55,1299,1361,234, - 1351,847,1386,1440,149,1567,925,75,374,150, - 3123,1801,41,919,38,60,1262,33,36,37, - 948,998,32,34,902,31,29,56,1026,112, - 82,83,114,100,1070,1161,1126,1212,1169,1315, - 2149,1299,1361,372,1351,4736,1386,1440,149,1088, - 44,1259,148,150,1081,504,2671,2102,41,919, - 38,1140,1262,33,36,37,948,998,32,34, - 902,31,29,56,1026,112,82,83,114,162, - 1070,1161,1126,1212,1169,1315,46,1299,1361,1653, - 1351,370,1386,1440,149,2519,2825,333,165,150, - 2102,41,919,38,2152,1262,33,36,37,948, - 998,32,34,902,31,29,56,1026,112,82, - 83,114,2988,1070,1161,1126,1212,1169,1315,3068, - 1299,1361,419,1351,2037,1386,1440,149,1194,2825, - 1415,161,150,2102,41,919,38,2152,1262,33, - 36,37,948,998,32,34,902,31,29,56, - 1026,112,82,83,114,381,1070,1161,1126,1212, - 1169,1315,357,1299,1361,291,1351,457,1386,1440, - 149,529,504,3328,160,150,2102,41,919,38, - 161,1262,33,36,37,948,998,32,34,902, - 31,29,56,1026,112,82,83,114,76,1070, - 1161,1126,1212,1169,1315,520,1299,1361,248,1351, - 44,1386,1440,149,818,504,3329,159,150,2102, - 41,919,38,521,1262,33,36,37,948,998, - 32,34,902,31,29,56,1026,112,82,83, - 114,77,1070,1161,1126,1212,1169,1315,520,1299, - 1361,567,1351,683,1386,1440,149,853,2738,1260, - 158,150,2102,41,919,38,1355,1262,33,36, - 37,948,998,32,34,902,31,29,56,1026, - 112,82,83,114,1474,1070,1161,1126,1212,1169, - 1315,4054,1299,1361,1422,1351,99,1386,1440,149, - 2519,1317,1260,157,150,2102,41,919,38,1413, - 1262,33,36,37,948,998,32,34,902,31, - 29,56,1026,112,82,83,114,354,1070,1161, - 1126,1212,1169,1315,30,1299,1361,1708,1351,681, - 1386,1440,149,2519,1788,1260,156,150,2102,41, - 919,38,2812,1262,33,36,37,948,998,32, - 34,902,31,29,56,1026,112,82,83,114, - 1546,1070,1161,1126,1212,1169,1315,75,1299,1361, - 2626,1351,4076,1386,1440,149,2566,2596,1260,155, - 150,2102,41,919,38,2698,1262,33,36,37, - 948,998,32,34,902,31,29,56,1026,112, - 82,83,114,355,1070,1161,1126,1212,1169,1315, - 74,1299,1361,852,1351,57,1386,1440,149,939, - 1026,1260,154,150,2102,41,919,38,1175,1262, - 33,36,37,948,998,32,34,902,31,29, - 56,1026,112,82,83,114,1710,1070,1161,1126, - 1212,1169,1315,59,1299,1361,2520,1351,44,1386, - 1440,149,3001,2718,1260,153,150,2102,41,919, - 38,843,1262,33,36,37,948,998,32,34, - 902,31,29,56,1026,112,82,83,114,2173, - 1070,1161,1126,1212,1169,1315,93,1299,1361,930, - 1351,44,1386,1440,149,4366,2115,1260,152,150, - 2102,41,919,38,2597,1262,33,36,37,948, - 998,32,34,902,31,29,56,1026,112,82, - 83,114,1499,1070,1161,1126,1212,1169,1315,58, - 1299,1361,1980,1351,44,1386,1440,149,804,2519, - 1809,151,150,2059,41,919,38,1913,1262,33, - 36,37,948,998,32,34,902,31,29,56, - 1026,112,82,83,114,2717,1070,1161,1126,1212, - 1169,1315,2812,1299,1361,321,1351,1398,1386,2415, - 170,2102,41,919,38,403,1262,33,36,37, - 948,998,32,34,902,31,29,56,1026,112, - 82,83,114,401,1070,1161,1126,1212,1169,1315, - 408,1299,1361,2519,1351,941,1386,1440,149,924, - 44,328,146,150,2695,329,504,41,1662,2476, - 2309,41,919,38,1869,1262,33,36,37,948, - 998,32,34,902,31,29,56,1026,112,82, - 83,114,394,1070,1161,1126,1212,1169,1315,2748, - 1299,1361,2698,1351,44,1386,1440,149,2795,2727, - 1260,195,150,2396,41,919,38,2828,1262,33, - 36,37,948,998,32,34,902,31,29,56, - 1026,112,82,83,114,103,1070,1161,1126,1212, - 1169,1315,351,1299,1361,1980,1351,1989,1386,2415, - 170,2396,41,919,38,2146,1262,33,36,37, - 948,998,32,34,902,31,29,56,1026,112, - 82,83,114,2079,1070,1161,1126,1212,1169,1315, - 2167,1299,1361,2176,1351,3470,1386,2415,170,1790, - 41,919,38,768,2847,46,36,37,948,998, - 2396,41,919,38,295,1262,33,36,37,948, - 998,32,34,902,31,29,56,1026,112,82, - 83,114,2847,1070,1161,1126,1212,1169,1315,326, - 1299,1361,405,1351,2206,1386,2415,170,2396,41, - 919,38,2685,1262,33,36,37,948,998,32, - 34,902,31,29,56,1026,112,82,83,114, - 302,1070,1161,1126,1212,1169,1315,327,1299,1361, - 1878,1351,4621,1386,2415,170,1790,41,919,38, - 1972,445,2084,36,37,948,998,2396,41,919, - 38,421,1262,33,36,37,948,998,32,34, - 902,31,29,56,1026,112,82,83,114,2847, - 1070,1161,1126,1212,1169,1315,592,1299,1361,2847, - 1351,4662,1386,2415,170,2439,41,919,38,420, - 1262,33,36,37,948,998,32,34,902,31, - 29,56,1026,112,82,83,114,226,1070,1161, - 1126,1212,1169,1315,592,1299,1361,306,1351,4686, - 1386,2415,170,1790,41,919,38,2180,2757,2112, - 36,37,948,998,2396,41,919,38,423,1262, - 33,36,37,948,998,32,34,902,31,29, - 56,1026,112,82,83,114,1746,1070,1161,1126, - 1212,1169,1315,2456,1299,1361,2203,1907,504,41, - 2782,2714,2396,41,919,38,3284,1262,33,36, - 37,948,998,32,34,902,31,29,56,1026, - 112,82,83,114,1260,1070,1161,1126,1212,1169, - 1315,1260,1299,1870,2396,41,919,38,2844,1262, - 33,36,37,948,998,32,34,902,31,29, - 56,1026,112,82,83,114,96,1070,1161,1126, - 1212,1169,1315,3074,1905,2396,41,919,38,756, - 1262,33,36,37,948,998,32,34,902,31, - 29,56,1026,112,82,83,114,2765,1070,1161, - 1126,1212,1826,2396,41,919,38,436,1262,33, - 36,37,948,998,32,34,902,31,29,56, - 1026,112,82,83,114,1677,1070,1161,1126,1212, - 1834,1306,41,919,38,3197,4579,33,36,37, - 948,998,340,34,2072,504,41,1568,389,504, - 41,1568,389,1227,41,919,38,2679,4579,33, - 36,37,948,998,340,34,1650,41,919,38, - 1911,4781,33,36,37,948,998,64,34,278, - 2753,41,285,429,2847,352,2668,394,425,321, - 2083,323,2206,316,2045,2684,1190,41,2258,1945, - 847,4540,504,41,296,353,2690,504,41,1568, - 389,321,2083,323,1911,316,2045,504,41,1662, - 281,591,185,345,1649,1563,350,353,3437,1104, - 55,2680,331,41,451,94,300,4666,108,1567, - 2298,278,280,2040,3307,345,1649,1563,350,2396, - 41,919,38,2000,1262,33,36,37,948,998, - 32,34,902,31,29,56,1026,112,82,83, - 114,2232,1070,1161,1126,1748,2396,41,919,38, - 299,1262,33,36,37,948,998,32,34,902, - 31,29,56,1026,112,82,83,114,2452,1070, - 1161,1126,1766,1864,341,3590,2396,41,919,38, - 367,1262,33,36,37,948,998,32,34,902, - 31,29,56,1026,112,82,83,114,2918,1070, - 1161,1126,1776,2396,41,919,38,2694,1262,33, - 36,37,948,998,32,34,902,31,29,56, - 1026,112,82,83,114,1818,1070,1161,1126,1783, - 1639,41,919,38,4433,4614,33,36,37,948, - 998,340,34,1718,41,296,69,41,1568,389, - 1703,1604,2145,1260,2847,4736,2847,2848,2789,1703, - 1873,535,262,2847,4736,2519,535,444,3084,3090, - 2794,2079,2421,44,344,1113,2671,973,2487,4234, - 278,2421,2828,3089,233,3079,162,333,321,2083, - 323,162,316,2045,44,186,2474,792,2369,44, - 186,2474,1121,2847,1260,539,1911,333,209,220, - 4506,208,217,218,219,221,333,175,1260,4476, - 2937,344,201,1458,41,1662,281,174,2765,189, - 173,176,177,178,179,180,73,1724,1,3068, - 361,2847,535,2561,2777,1088,2035,104,3537,361, - 72,309,313,1611,2331,2519,2533,1713,78,344, - 233,1340,2896,2331,2519,2533,2794,162,504,41, - 1568,389,307,2199,756,2800,186,2474,1121,2847, - 2409,2485,1434,3102,209,220,4506,208,217,218, - 219,221,44,175,2945,290,3471,2421,2753,41, - 282,2880,432,174,187,190,173,176,177,178, - 179,180,1534,41,919,38,3197,4579,33,36, - 37,948,998,340,34,867,2678,2482,41,1568, - 389,353,735,4711,202,2847,2758,4677,1613,440, - 242,454,504,41,1568,389,445,2850,2895,345, - 1649,1563,350,504,2740,1662,80,343,2216,41, - 395,278,3344,2800,2949,361,95,2847,356,108, - 321,2083,323,204,316,2045,431,529,1260,3113, - 2519,2533,393,425,2736,2421,353,524,237,1349, - 41,2904,38,4433,4579,33,36,37,948,998, - 340,34,2166,2899,345,1649,1563,350,2693,1714, - 71,2079,525,240,235,236,504,41,1568,389, - 2396,1576,919,1594,279,1262,33,36,37,948, - 998,32,34,902,31,29,56,1026,112,82, - 83,90,247,250,253,256,2486,321,2083,323, - 55,316,2045,361,1213,1458,41,1662,2800,1567, - 729,2598,1088,2964,1248,3139,44,3657,2519,2533, - 4193,856,3604,3742,3752,3762,4344,2396,41,919, - 38,1337,1262,33,36,37,948,998,32,34, - 902,31,29,56,1026,112,82,83,114,2511, - 1070,1161,1791,2396,41,919,38,2947,1262,33, - 36,37,948,998,32,34,902,31,29,56, - 1026,112,82,83,114,624,1070,1161,1809,1488, - 41,2904,38,4433,4614,33,36,37,948,998, - 340,34,3082,1579,504,41,1568,389,1914,1260, - 417,2923,2045,4736,44,1316,2847,2973,4252,44, - 4586,349,1337,1852,2921,535,418,41,451,44, - 2975,4666,2976,3721,344,1718,3027,296,430,330, - 336,70,2969,233,528,325,333,321,2083,323, - 162,316,2045,1260,529,48,2434,2777,436,186, - 2474,1121,535,2977,1248,334,531,209,220,4506, - 208,217,218,219,221,3089,175,1302,4476,2980, - 233,2007,353,3082,2720,3321,174,162,3292,173, - 176,177,178,179,180,44,186,2474,1121,535, - 347,1649,1563,350,209,220,4506,208,217,218, - 219,221,2971,175,523,44,1023,344,535,1081, - 335,336,1911,174,162,184,173,176,177,178, - 179,180,2803,2984,1612,44,233,2149,2035,2883, - 2777,44,4736,162,4132,1081,88,2986,2079,1569, - 416,2923,186,2474,1121,2187,41,1568,389,1854, - 209,220,4506,208,217,218,219,221,610,175, - 162,1895,535,2724,2847,2847,2992,2847,427,174, - 1940,182,173,176,177,178,179,180,383,55, - 233,448,3084,3090,333,2421,624,162,1567,1999, - 2868,2994,2998,4130,1785,697,186,2474,1121,535, - 2999,2435,203,305,209,220,4506,208,217,218, - 219,221,175,175,2987,858,3537,233,504,41, - 1568,389,2447,174,162,183,173,176,177,178, - 179,180,784,186,2474,1121,535,504,41,1662, - 286,209,220,4506,208,217,218,219,221,1980, - 175,44,450,503,233,4303,50,2434,2847,2993, - 174,162,193,173,176,177,178,179,180,871, - 186,2474,1121,535,504,41,1662,283,209,220, - 4506,208,217,218,219,221,940,175,2847,4228, - 2404,233,500,502,2847,1260,207,174,162,3393, - 173,176,177,178,179,180,958,186,2474,1121, - 535,3000,2421,3005,3007,209,220,4506,208,217, - 218,219,221,1119,175,2935,205,61,233,1980, - 1980,3063,1260,5284,174,162,198,173,176,177, - 178,179,180,1045,186,2474,1121,535,504,41, - 1662,2884,209,220,4506,208,217,218,219,221, - 5284,175,5284,592,60,233,1980,1260,4701,1121, - 1121,174,162,192,173,176,177,178,179,180, - 362,186,2474,1121,3843,523,5284,5284,5284,209, - 220,4506,208,217,218,219,221,5284,175,324, - 44,1113,2671,44,3731,44,1121,3233,174,2702, - 200,173,176,177,178,179,180,2396,41,919, - 38,522,1262,33,36,37,948,998,32,34, - 902,31,29,56,1026,112,82,83,114,1260, - 1070,1697,2396,41,919,38,5284,1262,33,36, - 37,948,998,32,34,902,31,29,56,1026, - 112,82,83,114,5284,1070,1705,1550,41,919, - 38,107,4614,33,36,37,948,998,340,34, - 1844,41,919,38,4433,4579,33,36,37,948, - 998,340,34,2396,41,919,38,5284,1262,33, - 36,37,948,998,32,34,902,31,29,56, - 1026,112,82,83,114,2848,1733,5284,2940,1081, - 2847,290,1081,5284,334,321,2083,323,2843,317, - 2045,44,2847,44,2147,1349,5284,2765,321,2083, - 323,353,316,2045,162,44,5284,162,5284,2847, - 2421,1037,2678,206,3358,539,5284,168,301,347, - 1649,1563,350,2396,41,919,38,344,1262,33, - 36,37,948,998,32,34,902,31,29,56, - 1026,112,82,83,114,44,1739,1260,1188,4469, - 2777,5284,1081,44,2178,237,1260,3741,2670,1619, - 5284,309,313,5284,1369,41,919,38,4433,4579, - 33,36,37,948,998,340,34,166,503,3655, - 249,235,236,4211,5284,5284,352,1260,2209,2396, - 41,919,38,3102,1262,33,36,37,948,998, - 32,34,902,31,29,56,1026,112,82,83, - 114,2645,1740,5284,5284,2847,44,500,502,449, - 1081,2771,321,2083,323,2847,316,2045,353,5284, - 44,2832,2175,233,3598,2847,1188,44,5284,539, - 1081,1081,2769,233,1741,162,345,1649,1563,350, - 5284,4434,2862,233,2000,2724,3264,211,220,4506, - 210,217,218,219,221,166,162,211,220,4506, - 210,217,218,219,221,5284,2738,211,220,4506, - 210,217,218,219,221,310,313,212,214,216, - 297,298,2645,237,222,213,215,212,214,216, - 297,298,2645,237,222,213,215,212,214,216, - 297,298,2645,237,222,213,215,44,252,235, - 236,1404,44,44,4139,2460,2982,3182,255,235, - 236,5284,1827,44,4139,2504,5284,1447,258,235, - 236,5284,5284,5284,4139,2726,2396,41,919,38, - 5284,1262,33,36,37,948,998,32,34,902, - 31,29,56,1026,112,82,83,89,2396,41, - 919,38,5284,1262,33,36,37,948,998,32, - 34,902,31,29,56,1026,112,82,83,88, - 2396,41,919,38,5284,1262,33,36,37,948, - 998,32,34,902,31,29,56,1026,112,82, - 83,87,2396,41,919,38,5284,1262,33,36, - 37,948,998,32,34,902,31,29,56,1026, - 112,82,83,86,2396,41,919,38,5284,1262, - 33,36,37,948,998,32,34,902,31,29, - 56,1026,112,82,83,85,2396,41,919,38, - 5284,1262,33,36,37,948,998,32,34,902, - 31,29,56,1026,112,82,83,84,2263,41, - 919,38,5284,1262,33,36,37,948,998,32, - 34,902,31,29,56,1026,112,82,83,110, - 2396,41,919,38,5284,1262,33,36,37,948, - 998,32,34,902,31,29,56,1026,112,82, - 83,116,2396,41,919,38,5284,1262,33,36, - 37,948,998,32,34,902,31,29,56,1026, - 112,82,83,115,2396,41,919,38,5284,1262, - 33,36,37,948,998,32,34,902,31,29, - 56,1026,112,82,83,113,2396,41,919,38, - 5284,1262,33,36,37,948,998,32,34,902, - 31,29,56,1026,112,82,83,111,2353,41, - 919,38,5284,1262,33,36,37,948,998,32, - 34,902,31,29,56,1026,92,82,83,2864, - 44,44,5284,2847,1081,1081,1316,5284,5284,2706, - 2876,4586,1260,2847,1188,5284,2724,2048,1081,2739, - 2847,233,4736,2847,44,5284,2847,5284,1081,162, - 162,233,2216,41,395,5284,5284,5284,2421,2898, - 3069,233,527,166,379,211,220,4506,210,217, - 218,219,221,162,5284,211,220,4506,210,217, - 218,219,221,1943,3588,211,220,4506,210,217, - 218,219,221,1337,4137,212,214,216,297,298, - 2645,1260,518,213,215,212,214,216,297,298, - 2645,2847,517,213,215,212,214,216,297,298, - 2645,2925,223,213,215,2847,503,1023,44,1260, - 3365,2953,951,3265,44,2847,5284,2847,3550,5284, - 44,44,44,233,2847,2847,2847,2936,5284,227, - 5284,2832,1337,233,3082,5284,1260,5284,1260,3384, - 5284,3302,344,344,344,501,502,211,220,4506, - 210,217,218,219,221,199,102,211,220,4506, - 210,217,218,219,221,2777,2777,2777,3339,428, - 3400,332,336,5284,1647,1654,2673,212,214,216, - 297,298,2645,1337,308,213,215,212,214,216, - 297,298,2645,3082,497,213,215,1369,41,919, - 38,4433,4579,33,36,37,948,998,340,34, - 5284,1369,41,919,38,4433,4579,33,36,37, - 948,998,340,34,2540,41,1568,389,5284,735, - 3601,336,765,41,1568,389,5284,243,1188,5284, - 5284,5284,1081,5284,3082,5284,1200,1260,1188,1188, - 2847,4785,1081,1081,5284,321,2083,323,278,316, - 2045,5284,5284,5284,5284,5284,55,166,233,321, - 2083,323,3437,316,2045,1567,2627,166,166,3436, - 5284,3603,336,5284,1260,237,3383,2644,2666,5284, - 5284,2847,1877,406,4415,1502,41,919,38,3049, - 4579,33,36,37,948,998,340,34,5284,344, - 241,235,236,2149,1260,44,4237,5284,4736,2847, - 5284,279,407,408,409,297,298,2645,5284,5284, - 5284,5284,4247,402,3402,5284,5284,344,5284,248, - 251,254,257,2486,3509,3697,3413,2588,5284,1337, - 5284,1213,5284,318,2821,323,1388,41,919,38, - 2777,4614,33,36,37,948,998,340,34,507, - 333,5284,5284,1388,41,919,38,5284,4614,33, - 36,37,948,998,340,34,1974,41,919,38, - 2650,4579,33,36,37,948,998,340,34,44, - 5284,5284,4493,1081,1275,410,412,5284,2847,4785, - 3082,5284,5284,334,321,2083,323,5284,319,2045, - 765,41,1568,389,5284,5284,233,798,162,4524, - 334,321,2083,323,5284,317,2045,5284,4404,5284, - 5284,5284,5284,5284,318,2821,323,3832,336,3137, - 1877,406,4415,5284,55,678,41,1568,389,678, - 41,1568,389,1567,53,5284,678,41,1568,389, - 765,41,1568,389,5284,5284,2470,4367,5284,5284, - 407,408,409,297,298,2645,5284,5284,5284,55, - 5284,5284,5284,55,678,41,1568,389,1567,53, - 55,1980,1567,2867,55,2588,5284,5284,44,1567, - 53,1257,2847,1567,53,2497,5284,678,41,1568, - 389,5284,2439,5284,5284,5284,2253,5284,55,5284, - 344,678,41,1568,389,5284,5284,1567,3144,5284, - 3137,1121,678,41,1568,389,678,41,1568,389, - 2497,55,5284,2777,5284,5284,377,1980,5284,5284, - 1567,53,505,410,413,55,2489,41,1568,389, - 5284,5284,5284,2788,1567,53,55,5284,5284,5284, - 55,2516,41,1568,389,1567,53,2862,5284,1567, - 53,2889,5284,5284,5284,535,5284,1121,3064,44, - 55,5284,3288,535,44,5284,5284,5284,535,1567, - 53,5284,377,344,5284,55,504,41,1568,389, - 162,344,573,5284,1567,53,344,5284,162,5284, - 194,5284,5284,162,5284,5284,4331,2492,1698,504, - 41,1568,389,1612,2777,504,41,1568,389,2777, - 55,5284,44,1655,5284,5284,535,375,1784,1567, - 2511,504,41,1568,389,504,41,1568,389,5284, - 5284,5284,44,55,344,5284,535,5284,5284,55, - 44,162,1567,2818,2847,5284,5284,5284,1567,655, - 5284,194,44,196,344,55,535,4331,5284,55, - 5284,162,344,5284,1567,925,5284,5284,1567,2858, - 5284,194,5284,3827,344,5284,5284,4331,5284,5284, - 5284,162,5284,5284,5284,2777,5284,5284,5284,5284, - 5284,194,5284,5284,532,5284,5284,4331,5284,5284, - 5284,5284,5284,5284,5284,5284,5284,5284,5284,5284, - 5284,5284,5284,5284,4201,5284,5284,5284,5284,5284, - 5284,5284,5284,5284,5284,5284,4146,5284,5284,5284, - 5284,5284,5284,5284,4229,5284,5284,5284,5284,5284, - 5284,5284,5284,5284,5284,5284,5284,5284,5284,5284, - 5284,5284,5284,5284,4256,5284,0,45,5304,0, - 45,5303,0,783,35,0,438,857,0,452, - 1520,0,44,731,0,44,5304,0,44,5303, - 0,2596,132,0,1,442,0,456,1159,0, - 455,1395,0,786,97,0,783,388,0,41, - 39,0,38,40,0,45,731,0,1,784, - 0,1,5561,0,1,5560,0,1,5559,0, - 1,5558,0,1,5557,0,1,5556,0,1, - 5555,0,1,5554,0,1,5553,0,1,5552, - 0,1,5551,0,45,1,5304,0,45,1, - 5303,0,1208,1,0,5523,246,0,5522,246, - 0,5623,246,0,5622,246,0,5550,246,0, - 5549,246,0,5548,246,0,5547,246,0,5546, - 246,0,5545,246,0,5544,246,0,5543,246, - 0,5561,246,0,5560,246,0,5559,246,0, - 5558,246,0,5557,246,0,5556,246,0,5555, - 246,0,5554,246,0,5553,246,0,5552,246, - 0,5551,246,0,45,5304,246,0,45,5303, - 246,0,5328,246,0,5304,54,0,5303,54, - 0,5290,1,0,5289,1,0,3658,242,0, - 38,389,0,35,388,0,49,5326,0,49, - 43,0,2596,134,0,2596,133,0,5615,443, - 0,1778,443,0,5328,1,0,45,1,0, - 53,43,0,1,98,0,499,2618,0,5328, - 1,234,0,45,1,234,0,234,415,0, - 5304,43,0,5303,43,0,5304,2,43,0, - 5303,2,43,0,5304,42,0,5303,42,0, - 5326,51,0,43,51,0,5294,404,0,5293, - 404,0,1,4317,0,1,2672,0,1,731, - 0,234,414,0,3195,320,0,5615,101,0, - 1778,101,0,41,79,0,1,5615,0,1, - 1778,0,4134,283,0,499,4129,0,1,234, - 0,234,225,0,234,224,0,1,1203,0, - 1,2878,0,5296,1,0,5292,1,0,1, - 234,3193,0,5293,234,0,3206,234,0,5296, - 384,0,5295,384,0,3282,234,0,10,12, - 0,8,10,12,0,191,3376,0,3395,384, - 0,8,12,0 + 189,189,189,76,81,81,168,168,129,129, + 130,130,130,130,130,130,3,131,131,128, + 128,110,110,84,77,73,157,157,111,111, + 190,190,190,132,132,123,123,191,191,169, + 169,1132,36,1692,1686,2266,3211,28,31,32, + 944,994,27,29,1658,26,24,51,1022,107, + 77,78,109,1118,1066,1157,1122,1295,1165,1347, + 72,1311,1428,1784,1382,274,1486,1504,144,508, + 36,292,159,145,2093,36,915,33,1913,4348, + 28,31,32,944,994,58,29,941,3168,36, + 915,33,233,1258,28,31,32,944,994,27, + 29,898,26,24,51,1022,107,77,78,109, + 491,1066,1157,1122,1295,1165,1815,236,231,232, + 508,36,1547,385,3168,36,915,33,275,1258, + 28,31,32,944,994,27,29,898,26,24, + 51,1022,107,77,78,86,243,246,249,252, + 2482,2785,36,278,50,508,36,2481,1209,2101, + 36,915,33,47,4348,28,31,32,944,994, + 57,29,3073,560,517,852,2797,3600,3738,3748, + 4340,2346,36,915,33,2843,1258,28,31,32, + 944,994,27,29,898,26,24,51,1022,107, + 77,78,109,340,1066,1157,1122,1295,1165,1347, + 62,1311,1428,311,1382,3093,1486,1504,144,244, + 36,280,511,145,4755,1352,2773,508,1564,1650, + 35,853,36,1547,385,512,2346,36,915,33, + 2843,1258,28,31,32,944,994,27,29,898, + 26,24,51,1022,107,77,78,109,340,1066, + 1157,1122,1295,1165,1347,50,1311,1428,1524,1382, + 1654,1486,1504,144,1522,2282,1490,511,145,56, + 70,2773,56,681,655,2932,1077,2431,1337,1952, + 512,507,1063,1668,1888,61,1620,36,915,33, + 1564,4777,28,31,32,944,994,27,29,2156, + 505,2320,2166,1669,2346,36,915,33,2843,1258, + 28,31,32,944,994,27,29,898,26,24, + 51,1022,107,77,78,109,340,1066,1157,1122, + 1295,1165,1347,70,1311,1428,507,1382,4586,1486, + 1504,144,2876,56,239,511,145,736,655,2773, + 386,2157,1858,1888,2253,240,4571,2166,512,2557, + 36,915,33,2843,1258,28,31,32,944,994, + 27,29,898,26,24,51,1022,107,77,78, + 109,340,1066,1157,1122,1295,1165,1347,942,1311, + 1428,1946,1382,2084,1486,1504,144,4217,387,421, + 511,145,2278,233,2773,1917,1077,244,36,280, + 1564,1927,4761,512,507,1231,36,915,33,284, + 4777,28,31,32,944,994,60,29,241,231, + 232,157,2289,3819,2048,2166,3428,2694,36,915, + 33,529,1258,28,31,32,944,994,27,29, + 898,26,24,51,1022,107,77,78,109,2311, + 1066,1157,1122,1295,1165,1347,437,1311,1428,508, + 1382,1924,1486,1504,144,2075,4732,3840,376,145, + 2416,36,915,33,2197,1258,28,31,32,944, + 994,27,29,898,26,24,51,1022,107,77, + 78,109,378,1066,1157,1122,1295,1165,1347,2661, + 1311,1428,3316,1382,4633,1486,1504,144,388,421, + 3840,376,145,1888,2625,36,915,33,330,1258, + 28,31,32,944,994,27,29,898,26,24, + 51,1022,107,77,78,109,1303,1066,1157,1122, + 1295,1165,1347,2062,1311,1428,331,1382,4732,1486, + 1504,144,382,3315,3840,376,145,2818,36,915, + 33,553,1258,28,31,32,944,994,27,29, + 898,26,24,51,1022,107,77,78,109,285, + 1066,1157,1122,1295,1165,1347,2383,1311,1428,2686, + 1382,1022,1486,1504,144,383,3315,2302,159,145, + 329,2678,1356,3168,36,915,33,3603,1258,28, + 31,32,944,994,27,29,898,26,24,51, + 1022,107,77,78,109,761,1066,1157,1122,1295, + 1165,1347,981,1311,1428,1022,1382,65,1978,374, + 3315,2818,36,915,33,2313,1258,28,31,32, + 944,994,27,29,898,26,24,51,1022,107, + 77,78,109,183,1066,1157,1122,1295,1165,1347, + 2062,1311,1428,492,1382,4732,1486,1504,144,2275, + 36,391,370,145,1521,36,915,33,2520,2069, + 42,31,32,944,994,2818,36,915,33,560, + 1258,28,31,32,944,994,27,29,898,26, + 24,51,1022,107,77,78,109,454,1066,1157, + 1122,1295,1165,1347,2511,1311,1428,4133,1382,1817, + 1486,1504,144,508,36,283,370,145,1259,36, + 1547,385,70,2818,36,915,33,4647,1258,28, + 31,32,944,994,27,29,898,26,24,51, + 1022,107,77,78,109,369,1066,1157,1122,1295, + 1165,1347,50,1311,1428,507,1382,843,1486,1504, + 144,1522,921,239,370,145,3178,2489,36,915, + 33,152,1258,28,31,32,944,994,27,29, + 898,26,24,51,1022,107,77,78,109,95, + 1066,1157,1122,1295,1165,1347,2062,1311,1428,368, + 1382,4732,1486,1504,144,2485,56,1280,143,145, + 1077,508,2641,2818,36,915,33,71,1258,28, + 31,32,944,994,27,29,898,26,24,51, + 1022,107,77,78,109,157,1066,1157,1122,1295, + 1165,1347,57,1311,1428,1649,1382,366,1486,1504, + 144,1022,415,329,160,145,2818,36,915,33, + 1100,1258,28,31,32,944,994,27,29,898, + 26,24,51,1022,107,77,78,109,2728,1066, + 1157,1122,1295,1165,1347,3064,1311,1428,1159,1382, + 2177,1486,1504,144,1190,508,3303,156,145,2818, + 36,915,33,1100,1258,28,31,32,944,994, + 27,29,898,26,24,51,1022,107,77,78, + 109,377,1066,1157,1122,1295,1165,1347,353,1311, + 1428,287,1382,453,1486,1504,144,525,508,3451, + 155,145,2818,36,915,33,317,1258,28,31, + 32,944,994,27,29,898,26,24,51,1022, + 107,77,78,109,1639,1066,1157,1122,1295,1165, + 1347,516,1311,1428,1344,1382,56,1486,1504,144, + 814,1427,1188,154,145,2818,36,915,33,517, + 1258,28,31,32,944,994,27,29,898,26, + 24,51,1022,107,77,78,109,2354,1066,1157, + 1122,1295,1165,1347,516,1311,1428,563,1382,2089, + 1486,1504,144,2511,1342,1913,153,145,2818,36, + 915,33,1461,1258,28,31,32,944,994,27, + 29,898,26,24,51,1022,107,77,78,109, + 75,1066,1157,1122,1295,1165,1347,4050,1311,1428, + 1418,1382,94,1486,1504,144,1022,162,1913,152, + 145,2818,36,915,33,249,1258,28,31,32, + 944,994,27,29,898,26,24,51,1022,107, + 77,78,109,350,1066,1157,1122,1295,1165,1347, + 25,1311,1428,336,1382,1644,1486,1504,144,1022, + 2497,1913,151,145,2818,36,915,33,1842,1258, + 28,31,32,944,994,27,29,898,26,24, + 51,1022,107,77,78,109,72,1066,1157,1122, + 1295,1165,1347,70,1311,1428,3369,1382,4072,1486, + 1504,144,1473,326,1913,150,145,2818,36,915, + 33,500,1258,28,31,32,944,994,27,29, + 898,26,24,51,1022,107,77,78,109,351, + 1066,1157,1122,1295,1165,1347,69,1311,1428,1027, + 1382,52,1486,1504,144,1402,1653,1913,149,145, + 2818,36,915,33,940,1258,28,31,32,944, + 994,27,29,898,26,24,51,1022,107,77, + 78,109,943,1066,1157,1122,1295,1165,1347,54, + 1311,1428,1282,1382,56,1486,1504,144,3078,1520, + 1913,148,145,2818,36,915,33,1446,1258,28, + 31,32,944,994,27,29,898,26,24,51, + 1022,107,77,78,109,1697,1066,1157,1122,1295, + 1165,1347,88,1311,1428,1468,1382,56,1486,1504, + 144,4362,2456,1913,147,145,2818,36,915,33, + 2524,1258,28,31,32,944,994,27,29,898, + 26,24,51,1022,107,77,78,109,2311,1066, + 1157,1122,1295,1165,1347,53,1311,1428,2069,1382, + 56,1486,1504,144,800,1022,1386,146,145,2763, + 36,915,33,2155,1258,28,31,32,944,994, + 27,29,898,26,24,51,1022,107,77,78, + 109,2241,1066,1157,1122,1295,1165,1347,3070,1311, + 1428,404,1382,492,1486,2411,165,2818,36,915, + 33,399,1258,28,31,32,944,994,27,29, + 898,26,24,51,1022,107,77,78,109,397, + 1066,1157,1122,1295,1165,1347,505,1311,1428,1022, + 1382,2150,1486,1504,144,920,56,324,141,145, + 2691,325,508,36,1650,2472,3051,36,915,33, + 1865,1258,28,31,32,944,994,27,29,898, + 26,24,51,1022,107,77,78,109,1409,1066, + 1157,1122,1295,1165,1347,3062,1311,1428,2686,1382, + 56,1486,1504,144,2774,1665,1913,190,145,3168, + 36,915,33,2544,1258,28,31,32,944,994, + 27,29,898,26,24,51,1022,107,77,78, + 109,98,1066,1157,1122,1295,1165,1347,347,1311, + 1428,2069,1382,2013,1486,2411,165,3168,36,915, + 33,2414,1258,28,31,32,944,994,27,29, + 898,26,24,51,1022,107,77,78,109,2075, + 1066,1157,1122,1295,1165,1347,2061,1311,1428,2096, + 1382,3471,1486,2411,165,1737,36,915,33,1820, + 2167,41,31,32,944,994,3168,36,915,33, + 291,1258,28,31,32,944,994,27,29,898, + 26,24,51,1022,107,77,78,109,2167,1066, + 1157,1122,1295,1165,1347,322,1311,1428,401,1382, + 2335,1486,2411,165,3168,36,915,33,2681,1258, + 28,31,32,944,994,27,29,898,26,24, + 51,1022,107,77,78,109,298,1066,1157,1122, + 1295,1165,1347,323,1311,1428,422,1382,4617,1486, + 2411,165,1737,36,915,33,682,441,2080,31, + 32,944,994,3168,36,915,33,417,1258,28, + 31,32,944,994,27,29,898,26,24,51, + 1022,107,77,78,109,2167,1066,1157,1122,1295, + 1165,1347,70,1311,1428,2167,1382,4658,1486,2411, + 165,3223,36,915,33,416,1258,28,31,32, + 944,994,27,29,898,26,24,51,1022,107, + 77,78,109,222,1066,1157,1122,1295,1165,1347, + 70,1311,1428,302,1382,4682,1486,2411,165,1737, + 36,915,33,597,2314,2108,31,32,944,994, + 3168,36,915,33,419,1258,28,31,32,944, + 994,27,29,898,26,24,51,1022,107,77, + 78,109,2021,1066,1157,1122,1295,1165,1347,683, + 1311,1428,230,1903,508,36,2982,2808,3168,36, + 915,33,3414,1258,28,31,32,944,994,27, + 29,898,26,24,51,1022,107,77,78,109, + 1913,1066,1157,1122,1295,1165,1347,1913,1311,1866, + 3168,36,915,33,1901,1258,28,31,32,944, + 994,27,29,898,26,24,51,1022,107,77, + 78,109,91,1066,1157,1122,1295,1165,1347,3085, + 1901,3168,36,915,33,1564,1258,28,31,32, + 944,994,27,29,898,26,24,51,1022,107, + 77,78,109,2479,1066,1157,1122,1295,1822,3168, + 36,915,33,432,1258,28,31,32,944,994, + 27,29,898,26,24,51,1022,107,77,78, + 109,1972,1066,1157,1122,1295,1830,1419,36,915, + 33,3193,4575,28,31,32,944,994,336,29, + 2160,508,36,1547,385,508,36,1547,385,1825, + 36,915,33,2675,4575,28,31,32,944,994, + 336,29,1231,36,915,33,1888,4777,28,31, + 32,944,994,59,29,274,2018,36,281,425, + 2167,348,2401,390,421,317,2079,319,2202,312, + 2041,2403,1292,36,2254,1941,843,4536,508,36, + 292,349,2676,508,36,1547,385,317,2079,319, + 2439,312,2041,508,36,1650,277,1445,180,341, + 1645,1559,346,349,3433,769,50,2674,244,36, + 447,89,296,4662,103,1522,2294,274,276,2446, + 2898,341,1645,1559,346,3168,36,915,33,1996, + 1258,28,31,32,944,994,27,29,898,26, + 24,51,1022,107,77,78,109,2260,1066,1157, + 1122,1744,3168,36,915,33,2485,1258,28,31, + 32,944,994,27,29,898,26,24,51,1022, + 107,77,78,109,2565,1066,1157,1122,1762,1860, + 337,3379,3168,36,915,33,363,1258,28,31, + 32,944,994,27,29,898,26,24,51,1022, + 107,77,78,109,2107,1066,1157,1122,1772,3168, + 36,915,33,2246,1258,28,31,32,944,994, + 27,29,898,26,24,51,1022,107,77,78, + 109,1626,1066,1157,1122,1779,1539,36,915,33, + 4429,4610,28,31,32,944,994,336,29,2187, + 36,292,679,36,1547,385,1914,2309,2877,1913, + 2843,4732,2843,2378,1931,1914,2402,531,262,2843, + 4732,1022,531,440,3110,3119,2449,2075,2417,352, + 340,1114,2641,2591,2483,4228,274,2417,525,3191, + 229,3131,157,329,317,2079,319,157,312,2041, + 56,181,2470,788,969,56,181,2470,1117,2843, + 1913,535,1888,329,204,216,4502,203,213,214, + 215,217,329,170,1913,4472,2006,340,196,1364, + 36,1650,277,169,2592,184,168,171,172,173, + 174,175,68,56,1,3064,357,1077,531,2529, + 2773,2519,2031,99,3533,357,67,305,309,1590, + 2327,2507,2515,1996,1900,73,229,1336,2843,2327, + 2507,2515,4121,157,508,36,1547,385,295,2195, + 1374,1900,181,2470,1117,2843,2417,1240,2518,3171, + 204,216,4502,203,213,214,215,217,56,170, + 1564,286,2365,2417,508,2693,1650,75,428,169, + 182,185,168,171,172,173,174,175,1808,36, + 915,33,3193,4575,28,31,32,944,994,336, + 29,863,2667,3278,36,1547,385,349,731,4707, + 197,2167,2754,2545,620,436,238,450,233,508, + 36,1547,385,1927,357,341,1645,1559,346,1364, + 36,1650,2694,339,2275,36,391,274,3080,2507, + 2515,357,1929,245,231,232,317,2079,319,199, + 312,2041,2549,427,1913,3693,2507,2515,508,36, + 1650,282,349,520,233,1800,36,2882,33,4429, + 4575,28,31,32,944,994,336,29,389,421, + 341,1645,1559,346,43,2430,66,2162,521,236, + 231,232,508,36,1547,385,3168,1564,915,1572, + 275,1258,28,31,32,944,994,27,29,898, + 26,24,51,1022,107,77,78,85,243,246, + 249,252,2482,317,2079,319,50,312,2041,1349, + 1209,508,36,1650,279,1522,725,2018,36,278, + 1208,3189,2523,2187,3088,292,2810,852,2797,3600, + 3738,3748,4340,3168,36,915,33,2581,1258,28, + 31,32,944,994,27,29,898,26,24,51, + 1022,107,77,78,109,2185,1066,1157,1787,3168, + 36,915,33,3191,1258,28,31,32,944,994, + 27,29,898,26,24,51,1022,107,77,78, + 109,2971,1066,1157,1805,1712,36,2882,33,4429, + 4610,28,31,32,944,994,336,29,508,36, + 1547,385,2479,2167,2008,1913,413,2892,2373,4732, + 56,2087,2843,2167,3467,56,4582,349,2250,3244, + 1913,531,766,36,447,56,2031,4662,2585,3354, + 340,2196,426,508,36,1650,2853,65,2597,229, + 524,198,329,317,2079,319,157,312,2041,1913, + 2586,301,3466,2773,436,181,2470,1117,531,2613, + 1208,330,527,204,216,4502,203,213,214,215, + 217,56,170,2250,4472,1848,229,2485,349,3133, + 2793,56,169,157,3435,168,171,172,173,174, + 175,56,181,2470,1117,531,343,1645,1559,346, + 204,216,4502,203,213,214,215,217,2649,170, + 523,2587,1019,340,531,2069,326,332,2614,169, + 157,179,168,171,172,173,174,175,2790,2615, + 1608,56,229,2062,3133,3717,2773,56,4732,157, + 90,1077,1888,103,2075,1565,412,2892,181,2470, + 1117,1399,36,1547,385,1117,204,216,4502,203, + 213,214,215,217,610,170,157,1891,531,2913, + 3843,331,332,2843,423,169,1936,177,168,171, + 172,173,174,175,2250,50,229,444,3110,3119, + 329,2417,620,157,1522,1995,2798,2654,2656,4118, + 321,697,181,2470,1117,531,2069,2431,303,525, + 204,216,4502,203,213,214,215,217,88,170, + 2687,2688,3533,229,508,36,1547,385,2474,169, + 157,178,168,171,172,173,174,175,784,181, + 2470,1117,531,2167,2689,3133,1117,204,216,4502, + 203,213,214,215,217,2069,170,2718,446,499, + 229,519,45,2430,2167,1888,169,157,188,168, + 171,172,173,174,175,871,181,2470,1117,531, + 2069,202,328,332,204,216,4502,203,213,214, + 215,217,2075,170,2250,4122,2521,229,496,498, + 2843,1913,200,169,157,3512,168,171,172,173, + 174,175,958,181,2470,1117,531,2308,2417,2167, + 1117,204,216,4502,203,213,214,215,217,2722, + 170,379,1220,55,229,518,2003,3091,2167,175, + 169,157,193,168,171,172,173,174,175,1045, + 181,2470,1117,531,2680,3133,2167,297,204,216, + 4502,203,213,214,215,217,56,170,1986,70, + 2791,229,2843,1913,4697,2681,3584,169,157,187, + 168,171,172,173,174,175,358,181,2470,1117, + 340,2660,3653,332,223,204,216,4502,203,213, + 214,215,217,1757,170,320,56,1114,2641,2723, + 4146,56,2682,1430,169,3727,195,168,171,172, + 173,174,175,3168,36,915,33,2756,1258,28, + 31,32,944,994,27,29,898,26,24,51, + 1022,107,77,78,109,1913,1066,1693,3168,36, + 915,33,1527,1258,28,31,32,944,994,27, + 29,898,26,24,51,1022,107,77,78,109, + 2544,1066,1701,1834,36,915,33,102,4610,28, + 31,32,944,994,336,29,1976,36,915,33, + 4429,4575,28,31,32,944,994,336,29,3168, + 36,915,33,2368,1258,28,31,32,944,994, + 27,29,898,26,24,51,1022,107,77,78, + 109,2378,1729,5280,2473,1077,2167,286,1077,5280, + 330,317,2079,319,2929,313,2041,56,2843,2710, + 1255,3229,5280,2172,317,2079,319,349,312,2041, + 157,56,5280,157,5280,2843,2417,1033,2667,201, + 3324,535,5280,163,194,343,1645,1559,346,3168, + 36,915,33,340,1258,28,31,32,944,994, + 27,29,898,26,24,51,1022,107,77,78, + 109,56,1735,56,1410,3530,2773,1345,1077,56, + 1732,233,1410,2566,2666,1607,1077,305,309,854, + 1629,36,915,33,4429,4575,28,31,32,944, + 994,336,29,161,499,4673,248,231,232,3416, + 5280,161,348,1913,441,3168,36,915,33,3171, + 1258,28,31,32,944,994,27,29,898,26, + 24,51,1022,107,77,78,109,1583,1736,5280, + 5280,2843,56,496,498,3736,1077,1847,317,2079, + 319,2843,312,2041,349,5280,56,1935,1361,229, + 4189,2843,56,56,5280,535,1077,1077,1628,229, + 1737,157,341,1645,1559,346,5280,4347,1823,229, + 1996,2720,3377,206,216,4502,205,213,214,215, + 217,157,157,206,216,4502,205,213,214,215, + 217,2734,2894,206,216,4502,205,213,214,215, + 217,306,309,207,209,211,293,294,2614,233, + 218,208,210,207,209,211,293,294,2614,233, + 218,208,210,207,209,211,293,294,2614,56, + 218,208,210,3737,251,231,232,5280,56,2456, + 5280,4135,3594,56,254,231,232,1400,56,2722, + 56,4135,3137,56,3325,5280,1913,1443,5280,3202, + 5280,4135,3168,36,915,33,5280,1258,28,31, + 32,944,994,27,29,898,26,24,51,1022, + 107,77,78,84,3168,36,915,33,2205,1258, + 28,31,32,944,994,27,29,898,26,24, + 51,1022,107,77,78,83,3168,36,915,33, + 5280,1258,28,31,32,944,994,27,29,898, + 26,24,51,1022,107,77,78,82,3168,36, + 915,33,5280,1258,28,31,32,944,994,27, + 29,898,26,24,51,1022,107,77,78,81, + 3168,36,915,33,5280,1258,28,31,32,944, + 994,27,29,898,26,24,51,1022,107,77, + 78,80,3168,36,915,33,5280,1258,28,31, + 32,944,994,27,29,898,26,24,51,1022, + 107,77,78,79,2995,36,915,33,5280,1258, + 28,31,32,944,994,27,29,898,26,24, + 51,1022,107,77,78,105,3168,36,915,33, + 5280,1258,28,31,32,944,994,27,29,898, + 26,24,51,1022,107,77,78,111,3168,36, + 915,33,5280,1258,28,31,32,944,994,27, + 29,898,26,24,51,1022,107,77,78,110, + 3168,36,915,33,5280,1258,28,31,32,944, + 994,27,29,898,26,24,51,1022,107,77, + 78,108,3168,36,915,33,5280,1258,28,31, + 32,944,994,27,29,898,26,24,51,1022, + 107,77,78,106,3113,36,915,33,5280,1258, + 28,31,32,944,994,27,29,898,26,24, + 51,1022,87,77,78,2023,56,1913,2263,2843, + 1077,1913,56,2087,5280,1671,947,1410,4582,2843, + 1410,1077,2913,2236,1077,1759,2843,229,4732,2843, + 56,2275,36,391,1077,157,2250,229,1913,445, + 523,5280,5280,375,2417,3065,161,229,5280,161, + 5280,206,216,4502,205,213,214,215,217,157, + 5280,206,216,4502,205,213,214,215,217,1939, + 3261,206,216,4502,205,213,214,215,217,2250, + 4133,207,209,211,293,294,2614,1913,514,208, + 210,207,209,211,293,294,2614,3133,513,208, + 210,207,209,211,293,294,2614,2111,219,208, + 210,2843,499,3109,1019,1913,3361,2199,56,3298, + 2443,2843,3546,5280,2828,5280,56,56,56,229, + 2843,2843,2843,5280,3659,332,5280,5280,3487,229, + 3133,5280,1913,1913,5280,5280,5280,3335,340,340, + 340,497,498,206,216,4502,205,213,214,215, + 217,5280,97,206,216,4502,205,213,214,215, + 217,2773,2773,2773,3266,3340,424,3838,332,5280, + 1615,1643,2669,207,209,211,293,294,2614,5280, + 304,208,210,207,209,211,293,294,2614,5280, + 493,208,210,1629,36,915,33,4429,4575,28, + 31,32,944,994,336,29,5280,1629,36,915, + 33,4429,4575,28,31,32,944,994,336,29, + 3328,36,1547,385,5280,731,1913,1913,856,36, + 1547,385,5280,239,1410,5280,5280,5280,1077,5280, + 5280,5280,1194,5280,1410,5280,2843,4781,1077,5280, + 5280,317,2079,319,274,312,2041,5280,3586,3409, + 5280,5280,50,161,229,317,2079,319,3433,312, + 2041,1522,2623,161,5280,5280,5280,5280,5280,5280, + 5280,233,3472,2659,2662,5280,5280,2843,1873,402, + 4411,1511,36,915,33,3045,4575,28,31,32, + 944,994,336,29,5280,340,237,231,232,2062, + 5280,56,5280,5280,4732,2843,5280,275,403,404, + 405,293,294,2614,5280,5280,5280,5280,4230,398, + 3505,5280,5280,340,5280,244,247,250,253,2482, + 4117,5280,5280,2557,5280,5280,5280,1209,5280,314, + 2761,319,1241,36,915,33,2773,4610,28,31, + 32,944,994,336,29,503,329,5280,5280,1241, + 36,915,33,5280,4610,28,31,32,944,994, + 336,29,1890,36,915,33,2646,4575,28,31, + 32,944,994,336,29,56,5280,5280,4489,1077, + 1300,406,408,5280,2843,4781,5280,5280,5280,330, + 317,2079,319,5280,315,2041,856,36,1547,385, + 5280,5280,229,794,157,4520,330,317,2079,319, + 5280,313,2041,5280,4346,5280,5280,5280,5280,5280, + 314,2761,319,5280,5280,3392,1873,402,4411,5280, + 50,853,36,1547,385,853,36,1547,385,1522, + 48,5280,853,36,1547,385,856,36,1547,385, + 5280,5280,2466,4253,5280,5280,403,404,405,293, + 294,2614,5280,5280,5280,50,5280,5280,5280,50, + 853,36,1547,385,1522,48,50,2069,1522,3140, + 50,2557,5280,5280,56,1522,48,1253,2843,1522, + 48,2493,5280,853,36,1547,385,5280,2435,5280, + 5280,5280,2249,5280,50,5280,340,853,36,1547, + 385,5280,5280,1522,3288,5280,3392,1117,853,36, + 1547,385,853,36,1547,385,2493,50,5280,2773, + 5280,5280,373,2069,5280,5280,1522,48,501,406, + 409,50,2305,36,1547,385,5280,5280,5280,2784, + 1522,48,50,5280,5280,5280,50,2341,36,1547, + 385,1522,48,2859,5280,1522,48,2444,5280,5280, + 5280,531,5280,1117,3058,56,50,5280,3284,531, + 56,5280,5280,5280,531,1522,48,5280,373,340, + 5280,50,508,36,1547,385,157,340,569,5280, + 1522,48,340,5280,157,5280,189,5280,5280,157, + 5280,5280,4327,2488,1694,508,36,1547,385,1608, + 2773,508,36,1547,385,2773,50,5280,56,1651, + 5280,5280,531,371,1780,1522,2500,508,36,1547, + 385,508,36,1547,385,5280,5280,5280,56,50, + 340,5280,531,5280,5280,50,56,157,1522,2977, + 2843,5280,5280,5280,1522,651,5280,189,56,191, + 340,50,531,4327,5280,50,5280,157,340,5280, + 1522,921,5280,5280,1522,2863,5280,189,5280,3833, + 340,5280,5280,4327,5280,5280,5280,157,5280,5280, + 5280,2773,5280,5280,5280,5280,5280,189,5280,5280, + 528,5280,5280,4327,5280,5280,5280,5280,5280,5280, + 5280,5280,5280,5280,5280,5280,5280,5280,5280,5280, + 4148,5280,5280,5280,5280,5280,5280,5280,5280,5280, + 5280,5280,3398,5280,5280,5280,5280,5280,5280,5280, + 4197,5280,5280,5280,5280,5280,5280,5280,5280,5280, + 5280,5280,5280,5280,5280,5280,5280,5280,5280,5280, + 4225,5280,0,40,5295,0,40,5294,0,779, + 30,0,434,853,0,448,1516,0,39,727, + 0,39,5295,0,39,5294,0,2592,127,0, + 1,438,0,452,1155,0,451,1391,0,782, + 92,0,779,384,0,36,34,0,33,35, + 0,40,727,0,1,780,0,1,5553,0, + 1,5552,0,1,5551,0,1,5550,0,1, + 5549,0,1,5548,0,1,5547,0,1,5546, + 0,1,5545,0,1,5544,0,1,5543,0, + 40,1,5295,0,40,1,5294,0,1204,1, + 0,5515,242,0,5514,242,0,5615,242,0, + 5614,242,0,5542,242,0,5541,242,0,5540, + 242,0,5539,242,0,5538,242,0,5537,242, + 0,5536,242,0,5535,242,0,5553,242,0, + 5552,242,0,5551,242,0,5550,242,0,5549, + 242,0,5548,242,0,5547,242,0,5546,242, + 0,5545,242,0,5544,242,0,5543,242,0, + 40,5295,242,0,40,5294,242,0,5319,242, + 0,5295,49,0,5294,49,0,5286,1,0, + 5285,1,0,3654,238,0,33,385,0,30, + 384,0,44,5317,0,44,38,0,2592,129, + 0,2592,128,0,5607,439,0,1774,439,0, + 5319,1,0,40,1,0,48,38,0,1, + 93,0,495,2584,0,5319,1,230,0,40, + 1,230,0,230,411,0,5295,38,0,5294, + 38,0,5295,2,38,0,5294,2,38,0, + 5295,37,0,5294,37,0,5317,46,0,38, + 46,0,5290,400,0,5289,400,0,1,4313, + 0,1,2668,0,1,727,0,230,410,0, + 3426,316,0,5607,96,0,1774,96,0,36, + 74,0,1,5607,0,1,1774,0,4127,279, + 0,495,4125,0,1,230,0,230,221,0, + 230,220,0,1,1199,0,1,2874,0,5292, + 1,0,5288,1,0,1,230,3258,0,5289, + 230,0,3278,230,0,5292,380,0,5291,380, + 0,3399,230,0,10,12,0,8,10,12, + 0,186,3372,0,3563,380,0,8,12,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1080,316 +1079,352 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP 10,11,12,13,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,28,29, 30,31,32,33,34,35,36,37,38,39, - 40,41,42,0,44,0,46,47,48,49, - 50,51,52,53,54,55,56,57,58,0, - 60,61,62,63,64,65,66,67,0,1, - 2,71,72,5,0,75,76,77,78,79, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,54,0,0,57,58,59, + 60,61,62,63,0,65,66,67,68,0, + 6,0,72,4,0,75,76,77,78,79, 80,81,82,83,84,85,86,0,1,2, 3,4,5,6,7,8,9,10,11,12, 13,14,15,16,17,18,19,20,21,22, 23,24,25,26,27,28,29,30,31,32, 33,34,35,36,37,38,39,40,41,42, - 0,44,0,46,47,48,49,50,51,52, - 53,54,55,56,57,58,101,60,61,62, - 63,64,65,66,67,0,97,98,71,72, - 0,0,75,76,77,78,79,80,81,82, + 43,44,45,46,47,48,49,50,51,52, + 53,54,71,69,57,58,59,60,61,62, + 63,0,65,66,67,68,100,93,94,72, + 9,0,75,76,77,78,79,80,81,82, 83,84,85,86,0,1,2,3,4,5, 6,7,8,9,10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25, 26,27,28,29,30,31,32,33,34,35, - 36,37,38,39,40,41,42,0,44,59, - 46,47,48,49,50,51,52,53,54,55, - 56,57,58,0,60,61,62,63,64,65, - 66,67,9,88,89,71,72,0,0,75, + 36,37,38,39,40,41,42,43,44,45, + 46,47,48,49,50,51,52,53,54,0, + 69,57,58,59,60,61,62,63,0,65, + 66,67,68,0,1,2,72,4,0,75, 76,77,78,79,80,81,82,83,84,85, 86,0,1,2,3,4,5,6,7,8, 9,10,11,12,13,14,15,16,17,18, 19,20,21,22,23,24,25,26,27,28, 29,30,31,32,33,34,35,36,37,38, - 39,40,41,42,0,44,59,46,47,48, - 49,50,51,52,53,54,55,56,57,58, - 0,60,61,62,63,64,65,66,67,9, - 0,1,2,72,4,0,75,76,77,78, + 39,40,41,42,43,44,45,46,47,48, + 49,50,51,52,53,54,0,69,57,58, + 59,60,61,62,63,0,65,66,67,68, + 0,6,103,104,105,0,75,76,77,78, 79,80,81,82,83,84,85,86,0,1, 2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19,20,21, 22,23,24,25,26,27,28,29,30,31, 32,33,34,35,36,37,38,39,40,41, - 42,0,44,0,46,47,48,49,50,51, - 52,53,54,55,56,57,58,0,60,61, - 62,63,64,65,66,67,0,0,1,2, - 72,4,0,75,76,77,78,79,80,81, + 42,43,44,45,46,47,48,49,50,51, + 52,53,54,0,69,57,58,59,60,61, + 62,63,9,65,66,67,68,101,93,94, + 90,0,92,75,76,77,78,79,80,81, 82,83,84,85,86,0,1,2,3,4, 5,6,7,8,9,10,11,12,13,14, 15,16,17,18,19,20,21,22,23,24, 25,26,27,28,29,30,31,32,33,34, - 35,36,37,38,39,40,41,42,0,44, - 73,46,47,48,49,50,51,52,53,54, - 55,56,57,58,101,60,61,62,63,64, - 65,66,67,0,1,2,90,72,92,0, + 35,36,37,38,39,40,41,42,43,44, + 45,46,47,48,49,50,51,52,53,54, + 69,0,57,58,59,60,61,62,63,0, + 65,66,67,68,0,6,0,0,1,2, 75,76,77,78,79,80,81,82,83,84, 85,86,0,1,2,3,4,5,6,7, 8,9,10,11,12,13,14,15,16,17, 18,19,20,21,22,23,24,25,26,27, 28,29,30,31,32,33,34,35,36,37, - 38,39,40,41,42,0,44,0,46,47, - 48,49,50,51,52,53,54,55,56,57, - 58,0,60,61,62,63,64,65,66,67, - 0,0,11,12,72,4,6,75,76,77, + 38,39,40,41,42,43,44,45,46,47, + 48,49,50,51,52,53,54,73,0,57, + 58,59,60,61,62,63,0,65,66,67, + 68,100,93,94,88,89,0,75,76,77, 78,79,80,81,82,83,84,85,86,0, 1,2,3,4,5,6,7,8,9,10, 11,12,13,14,15,16,17,18,19,20, 21,22,23,24,25,26,27,28,29,30, 31,32,33,34,35,36,37,38,39,40, - 41,42,0,44,0,46,47,48,49,50, - 51,52,53,54,55,56,57,58,0,60, - 61,62,63,64,65,66,67,0,1,2, - 0,72,0,3,75,76,77,78,79,80, + 41,42,43,44,45,46,47,48,49,50, + 51,52,53,54,0,69,57,58,59,60, + 61,62,63,0,65,66,67,68,0,1, + 2,0,0,5,75,76,77,78,79,80, 81,82,83,84,85,86,0,1,2,3, 4,5,6,7,8,9,10,11,12,13, 14,15,16,17,18,19,20,21,22,23, 24,25,26,27,28,29,30,31,32,33, - 34,35,36,37,38,39,40,41,42,59, - 44,59,46,47,48,49,50,51,52,53, - 54,55,56,57,58,0,60,61,62,63, - 64,65,66,67,0,1,2,0,72,0, - 3,75,76,77,78,79,80,81,82,83, + 34,35,36,37,38,39,40,41,42,43, + 44,45,46,47,48,49,50,51,52,53, + 54,69,71,57,58,59,60,61,62,63, + 0,65,66,67,68,0,1,2,0,4, + 10,75,76,77,78,79,80,81,82,83, 84,85,86,0,1,2,3,4,5,6, 7,8,9,10,11,12,13,14,15,16, 17,18,19,20,21,22,23,24,25,26, 27,28,29,30,31,32,33,34,35,36, - 37,38,39,40,41,42,59,44,73,46, - 47,48,49,50,51,52,53,54,55,56, - 57,58,0,60,61,62,63,64,65,66, - 67,0,0,11,12,72,4,0,75,76, + 37,38,39,40,41,42,43,44,45,46, + 47,48,49,50,51,52,53,54,0,71, + 57,58,59,60,61,62,63,0,65,66, + 67,68,0,1,2,0,1,2,75,76, 77,78,79,80,81,82,83,84,85,86, 0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,28,29, 30,31,32,33,34,35,36,37,38,39, - 40,41,42,0,44,0,46,47,48,49, - 50,51,52,53,54,55,56,57,58,0, - 60,61,62,63,64,65,66,67,0,0, - 0,90,72,92,4,75,76,77,78,79, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,54,0,0,57,58,59, + 60,61,62,63,0,65,66,67,68,0, + 0,0,0,3,3,75,76,77,78,79, 80,81,82,83,84,85,86,0,1,2, 3,4,5,6,7,8,9,10,11,12, 13,14,15,16,17,18,19,20,21,22, 23,24,25,26,27,28,29,30,31,32, 33,34,35,36,37,38,39,40,41,42, - 61,44,0,46,47,48,49,50,51,52, - 53,54,55,56,57,58,0,60,61,62, - 63,64,65,66,67,0,97,98,90,72, - 92,0,75,76,77,78,79,80,81,82, + 43,44,45,46,47,48,49,50,51,52, + 53,54,0,0,57,58,59,60,61,62, + 63,0,65,66,67,68,0,88,89,8, + 88,89,75,76,77,78,79,80,81,82, 83,84,85,86,0,1,2,3,4,5, 6,7,8,9,10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25, 26,27,28,29,30,31,32,33,34,35, - 36,37,38,39,40,41,42,0,44,0, - 46,47,48,49,50,51,52,53,54,55, - 56,57,58,0,60,61,62,63,64,65, - 66,67,0,1,2,90,72,92,0,75, + 36,37,38,39,40,41,42,43,44,45, + 46,47,48,49,50,51,52,53,54,0, + 0,57,58,59,60,61,62,63,0,65, + 66,67,68,0,1,2,90,0,92,75, 76,77,78,79,80,81,82,83,84,85, - 86,0,1,2,3,4,5,6,7,0, - 9,10,11,12,57,14,15,16,17,18, - 19,20,21,22,23,24,25,26,27,28, + 86,0,1,2,3,4,5,6,7,118, + 9,10,11,12,13,14,15,16,17,18, + 19,20,21,22,23,24,25,26,0,28, 29,30,31,32,33,34,35,36,37,38, - 39,40,41,42,0,44,0,46,47,48, - 49,50,51,52,53,54,55,0,57,0, - 1,2,61,4,91,8,65,66,67,0, - 1,2,3,4,5,6,7,8,9,10, - 121,0,13,14,15,16,17,18,19,20, - 21,22,23,24,25,0,0,1,2,3, - 4,5,43,7,8,0,1,2,99,4, - 122,6,43,44,9,46,47,48,49,50, - 51,52,53,54,55,56,45,58,0,0, - 61,74,88,89,65,66,67,8,0,0, - 71,72,73,4,0,1,2,3,4,5, - 6,7,8,9,10,59,87,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 74,0,103,104,105,0,1,2,3,4, - 5,6,7,44,9,0,0,43,44,4, - 46,47,48,49,50,51,52,53,54,55, - 56,0,58,74,3,61,0,0,70,65, - 66,67,0,1,2,71,72,73,0,1, - 2,3,4,5,0,7,0,3,100,44, - 6,87,8,9,59,11,12,13,0,1, - 2,3,4,5,69,7,75,103,104,105, - 26,27,46,47,68,43,0,0,1,2, - 3,4,5,6,7,0,9,0,3,45, - 14,15,16,17,18,19,20,21,22,23, - 24,25,0,59,0,0,1,2,103,104, - 105,73,68,69,70,71,0,73,74,3, - 44,0,46,47,48,49,50,51,52,53, - 54,55,88,89,90,91,92,93,94,95, - 96,97,98,99,100,101,102,0,1,2, - 106,107,108,109,110,111,112,113,114,115, - 116,117,118,0,120,121,3,62,63,6, - 68,8,9,69,11,12,13,0,1,2, - 3,4,5,6,7,69,9,100,0,26, - 27,0,1,2,3,4,5,0,7,8, - 3,0,1,2,13,4,102,6,45,0, - 9,107,108,109,110,111,112,113,114,115, - 116,117,59,0,1,2,3,4,5,0, - 7,68,69,70,71,0,73,74,3,0, - 1,2,3,4,5,6,7,59,9,0, - 73,88,89,90,91,92,93,94,95,96, - 97,98,99,100,101,102,0,0,0,106, - 107,108,109,110,111,112,113,114,115,116, - 117,118,59,120,121,0,1,2,3,4, - 5,6,7,0,9,10,11,12,59,14, - 15,16,0,18,19,20,21,22,23,24, - 25,26,27,28,29,30,31,32,33,34, - 35,36,37,38,39,40,41,42,0,1, - 2,3,4,5,6,7,68,9,70,0, - 1,2,57,4,5,43,7,62,63,0, - 1,2,3,4,5,6,7,72,9,10, - 11,12,69,14,15,16,0,18,19,20, - 21,22,23,24,25,26,27,28,29,30, - 31,32,33,34,35,36,37,38,39,40, - 41,42,0,1,2,0,4,0,6,0, - 8,9,0,0,0,3,57,0,1,2, - 8,62,63,0,10,8,3,68,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,28,14,15,16,0,18,19,20,21, - 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,36,37,38,39,40,41, - 42,59,0,1,2,68,74,5,102,7, - 68,64,70,107,0,57,74,0,43,0, - 1,2,64,91,5,0,7,88,89,71, - 0,1,2,3,4,5,6,7,0,9, - 10,11,12,0,14,15,16,0,18,19, - 20,21,22,23,24,25,26,27,28,29, - 30,31,32,33,34,35,36,37,38,39, - 40,41,42,0,1,2,3,4,5,0, - 7,8,68,0,70,68,13,57,45,0, - 43,8,62,63,0,1,2,3,4,5, - 6,7,0,9,10,11,12,0,14,15, - 16,68,18,19,20,21,22,23,24,25, - 26,27,28,29,30,31,32,33,34,35, - 36,37,38,39,40,41,42,99,95,96, - 0,0,0,0,1,2,3,4,8,6, - 8,57,9,70,71,13,62,63,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,69,14,15,16,68,18,19,20,21, - 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,36,37,38,39,40,41, - 42,0,59,0,1,2,3,4,5,0, - 7,71,0,1,2,57,4,8,0,0, - 8,3,64,0,1,2,3,4,5,6, - 7,8,9,10,11,12,0,14,15,16, - 0,18,19,20,21,22,23,24,25,26, + 39,40,41,42,43,44,45,46,47,48, + 49,50,51,52,53,54,0,0,57,58, + 59,4,61,0,1,2,3,4,5,6, + 7,8,9,10,11,12,13,14,15,16, + 17,18,19,20,21,22,23,24,119,0, 27,28,29,30,31,32,33,34,35,36, - 37,38,39,40,41,42,0,1,2,0, - 4,70,6,64,0,9,64,0,1,2, - 57,4,8,6,0,45,9,64,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,0,14,15,16,4,18,19,20,21, - 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,36,37,38,39,40,41, - 42,0,1,2,3,4,5,6,7,70, - 9,10,11,12,0,14,15,16,74,18, - 19,20,21,22,23,24,25,26,27,28, - 29,30,31,32,33,34,35,36,37,38, - 39,40,41,42,0,0,0,3,0,5, - 6,0,4,9,6,11,12,9,57,45, - 0,1,2,17,4,5,0,7,0,3, - 26,27,0,29,0,0,118,0,3,0, - 3,0,68,11,12,8,0,1,2,45, - 44,17,46,47,48,49,50,51,52,53, - 54,55,0,59,59,0,62,63,3,95, - 96,0,68,69,70,0,1,2,44,8, - 46,47,48,49,50,51,52,53,54,55, - 0,0,88,89,90,4,59,93,94,95, - 96,97,98,99,100,101,102,68,62,63, - 106,74,108,109,110,111,112,113,114,115, - 116,117,0,1,2,3,4,5,6,7, - 119,9,10,11,12,64,14,15,16,0, - 18,19,20,21,22,23,24,25,26,27, - 28,29,30,31,32,33,34,35,36,37, - 38,39,40,41,42,103,104,105,0,1, - 2,3,4,5,6,7,0,9,10,11, - 12,59,14,15,16,0,18,19,20,21, - 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,36,37,38,39,40,41, - 42,0,0,1,2,3,4,5,6,7, - 0,9,10,11,12,57,14,15,16,0, - 18,19,20,21,22,23,24,25,26,27, - 28,29,30,31,32,33,34,35,36,37, - 38,39,40,41,42,0,1,2,3,4, - 5,6,7,0,9,10,11,12,0,14, - 15,16,4,18,19,20,21,22,23,24, - 25,26,27,28,29,30,31,32,33,34, - 35,36,37,38,39,40,41,42,0,1, - 2,3,4,5,6,7,0,9,10,11, - 12,0,14,15,16,0,18,19,20,21, - 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,36,37,38,39,40,41, - 42,0,1,2,0,4,0,0,0,1, - 2,10,0,6,91,14,15,16,17,18, - 19,20,21,22,23,24,25,0,1,2, - 0,4,5,0,7,0,1,2,0,0, - 0,8,76,68,73,44,8,46,47,48, - 49,50,51,52,53,54,55,45,28,0, - 1,2,61,4,0,59,65,66,67,10, - 43,0,68,14,15,16,17,18,19,20, - 21,22,23,24,25,0,1,2,3,4, - 5,6,7,8,9,0,0,0,13,3, - 93,94,17,44,71,46,47,48,49,50, - 51,52,53,54,55,0,0,0,1,2, - 61,6,26,27,65,66,67,88,89,44, - 45,46,47,48,49,50,51,52,53,54, - 55,0,45,0,59,0,1,2,3,4, - 5,6,7,8,9,59,118,0,13,74, - 43,45,17,0,0,1,2,3,4,5, - 6,7,8,9,0,0,0,13,0,1, - 2,17,4,5,68,7,45,0,45,44, - 3,46,47,48,49,50,51,52,53,54, - 55,0,106,0,59,0,3,43,93,94, - 0,95,96,0,1,2,120,0,5,74, - 56,43,58,6,60,0,1,2,3,4, - 5,6,7,8,9,71,0,0,13,0, - 1,2,17,0,8,6,0,1,2,13, - 45,87,0,10,91,0,43,0,0,1, - 2,3,4,5,6,7,8,9,43,0, - 45,13,0,1,2,17,0,0,1,2, - 4,56,43,58,0,60,43,3,0,43, + 0,1,2,40,4,5,0,7,121,0, + 0,1,2,3,4,5,6,7,55,9, + 57,58,59,60,0,62,63,99,0,1, + 2,22,23,24,0,72,73,28,29,30, + 31,32,33,34,35,36,22,23,24,0, + 87,0,28,29,30,31,32,33,34,35, + 36,0,1,2,75,4,103,104,105,0, + 1,2,3,4,5,6,7,8,9,10, + 11,12,13,14,15,16,17,18,19,20, + 21,22,23,24,66,67,27,28,29,30, + 31,32,33,34,35,36,0,1,2,40, + 4,0,6,0,3,9,55,6,0,8, + 9,0,1,2,55,0,57,58,59,60, + 0,62,63,0,1,2,25,26,27,88, + 89,72,73,0,1,2,97,98,37,38, + 25,26,22,23,24,0,87,39,28,29, + 30,31,32,33,34,35,36,56,0,1, + 2,0,103,104,105,64,55,64,0,0, + 69,70,71,72,73,74,0,8,0,1, + 2,3,4,5,6,7,0,9,55,88, + 89,90,91,92,93,94,95,96,97,98, + 99,100,101,102,0,0,0,106,107,108, + 109,110,111,112,113,114,115,116,117,118, + 0,120,121,3,66,67,6,0,8,9, + 25,26,0,1,2,3,4,5,6,7, + 8,9,64,74,99,25,26,27,70,0, + 64,90,3,92,22,23,24,37,38,27, + 28,29,30,31,32,33,34,35,36,101, + 0,1,2,3,4,5,56,7,8,0, + 0,1,2,0,64,5,0,7,56,69, + 70,71,72,73,74,91,64,27,0,1, + 2,3,4,5,6,7,74,9,88,89, + 90,91,92,93,94,95,96,97,98,99, + 100,101,102,0,97,98,106,107,108,109, + 110,111,112,113,114,115,116,117,118,56, + 120,121,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,22,23,24,88,89,27, + 28,29,30,31,32,33,34,35,36,0, + 1,2,40,4,5,0,7,0,0,1, + 2,3,4,5,0,7,73,55,0,57, + 58,59,60,0,62,63,3,65,122,22, + 23,24,0,0,72,28,29,30,31,32, + 33,34,35,36,0,1,2,0,0,87, 0,1,2,3,4,5,6,7,8,9, - 45,43,45,13,61,17,70,17,0,0, - 93,94,87,0,56,43,58,0,60,0, - 43,45,0,1,2,88,89,8,73,71, - 0,0,44,43,46,47,48,49,50,51, - 52,53,54,55,0,87,56,0,58,5, - 60,0,1,2,3,4,5,6,7,8, - 9,71,0,0,13,43,0,0,17,0, - 1,2,10,10,8,8,45,87,70,13, - 13,0,69,0,1,2,3,4,5,6, - 7,8,9,74,43,0,13,0,17,0, - 17,4,3,8,0,43,0,56,0,58, - 91,60,43,0,0,0,8,4,0,56, - 73,13,71,61,0,44,43,46,47,48, - 49,50,51,52,53,54,55,0,87,56, - 0,58,45,60,0,1,2,3,4,5, - 6,7,8,9,0,0,0,13,45,0, - 45,17,8,8,0,70,0,8,0,74, - 87,3,0,1,2,3,4,5,6,7, - 8,9,45,0,70,13,3,43,0,17, - 0,73,0,69,0,0,0,3,3,0, - 56,45,58,0,60,0,0,0,3,45, - 70,0,0,0,3,43,3,0,0,0, - 3,3,3,119,0,71,0,0,56,74, - 58,87,60,74,0,69,0,45,0,0, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,70,0,27,28,29, + 30,31,32,33,34,35,36,64,70,56, + 40,0,1,2,3,4,5,6,7,55, + 9,25,26,56,56,55,56,57,58,59, + 60,0,62,63,3,65,0,1,2,8, + 102,5,90,7,92,107,108,109,110,111, + 112,113,114,115,116,117,0,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,0,73,27,28,29,30,31, + 32,33,34,35,36,64,40,0,40,0, + 1,2,3,4,5,74,7,0,1,2, + 3,4,5,55,7,57,58,59,60,0, + 62,63,3,65,0,1,2,3,4,5, + 72,7,8,0,1,2,3,4,5,6, + 7,0,9,0,3,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,64,73,27,28,29,30,31,32,33, + 34,35,36,64,0,0,40,0,64,0, + 1,2,3,4,5,8,7,64,74,0, + 0,55,119,57,58,59,60,8,62,63, + 10,65,0,0,1,2,0,4,72,6, + 8,8,9,0,1,2,0,4,0,6, + 0,0,9,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,72, + 60,27,28,29,30,31,32,33,34,35, + 36,0,56,74,40,0,1,2,3,4, + 5,55,7,8,56,0,74,74,3,55, + 91,57,58,59,60,0,62,63,3,65, + 70,73,27,8,91,0,72,0,1,2, + 3,4,0,6,0,3,9,0,1,2, + 0,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,0,0,27, + 28,29,30,31,32,33,34,35,36,64, + 0,0,40,3,69,4,71,6,0,74, + 9,64,55,102,69,55,8,55,107,57, + 58,59,60,0,62,63,0,65,0,0, + 4,8,0,1,2,0,4,5,3,7, + 0,1,2,56,4,5,0,7,22,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,0,68,27,28,29, + 30,31,32,33,34,35,36,55,0,0, + 40,68,64,4,0,55,0,1,2,0, + 4,55,8,4,8,55,0,57,58,59, + 60,0,62,63,8,65,0,1,2,8, + 4,27,6,0,0,9,0,1,2,103, + 104,105,0,27,8,0,0,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,39,68,27,28,29,30,31, + 32,33,34,35,36,0,1,2,40,4, + 0,6,71,72,9,0,1,2,8,0, + 5,0,56,55,68,57,58,59,60,0, + 62,63,0,65,69,0,71,27,3,0, + 8,0,23,24,0,1,2,0,1,2, + 3,4,5,6,7,87,9,10,11,12, + 13,14,15,16,17,18,19,20,21,0, + 55,0,25,26,0,1,2,0,0,8, + 0,71,0,0,37,38,39,4,41,42, + 43,44,45,46,47,48,49,50,51,52, + 53,54,73,71,0,70,74,3,61,62, + 0,1,2,66,67,0,1,2,3,4, + 5,6,7,0,9,10,11,12,13,14, + 15,16,17,18,19,20,21,0,56,56, + 25,26,0,72,64,8,69,0,71,71, + 8,69,37,38,39,8,41,42,43,44, + 45,46,47,48,49,50,51,52,53,54, + 0,0,0,3,27,3,61,95,96,56, + 0,66,67,0,69,0,1,2,3,4, + 5,6,7,8,9,10,11,12,13,14, + 15,16,17,18,19,20,21,0,0,72, + 25,26,0,0,6,0,74,0,0,4, + 8,8,37,38,39,0,41,42,43,44, + 45,46,47,48,49,50,51,52,53,54, + 27,70,0,0,1,2,61,64,0,6, + 8,3,0,68,0,0,4,72,0,1, + 2,3,4,5,6,7,0,9,10,11, + 12,13,14,15,16,17,18,19,20,21, + 0,56,64,25,26,5,74,0,0,0, + 0,3,0,0,69,37,38,39,55,41, + 42,43,44,45,46,47,48,49,50,51, + 52,53,54,0,0,61,74,3,0,61, + 95,96,56,0,66,67,0,1,2,3, + 4,5,6,7,0,9,10,11,12,13, + 14,15,16,17,18,19,20,21,56,56, + 0,25,26,3,0,0,0,0,71,70, + 0,0,69,37,38,39,0,41,42,43, + 44,45,46,47,48,49,50,51,52,53, + 54,91,0,0,0,3,73,61,95,96, + 56,73,66,67,0,1,2,3,4,5, + 6,7,8,9,10,11,12,13,14,15, + 16,17,18,19,20,21,56,56,0,25, + 26,3,56,0,70,0,71,71,0,0, + 0,37,38,39,4,41,42,43,44,45, + 46,47,48,49,50,51,52,53,54,0, + 0,0,22,70,70,61,0,0,0,3, + 3,3,68,0,1,2,3,4,5,6, + 7,8,9,10,11,12,13,14,15,16, + 17,18,19,20,21,0,0,0,25,26, + 3,0,0,0,3,3,73,0,73,70, + 37,38,39,0,41,42,43,44,45,46, + 47,48,49,50,51,52,53,54,0,91, + 0,70,73,0,61,0,76,0,0,0, + 0,68,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,25,26,0, + 1,2,0,1,2,0,39,0,0,37, + 38,39,0,41,42,43,44,45,46,47, + 48,49,50,51,52,53,54,0,1,2, + 3,4,5,6,7,70,9,10,11,12, + 13,14,15,16,17,18,19,20,21,55, + 0,0,25,26,55,0,119,55,0,0, + 0,56,0,0,37,38,39,0,41,42, + 43,44,45,46,47,48,49,50,51,52, + 53,54,0,0,0,0,0,4,61,3, + 118,5,6,0,0,9,11,12,13,14, + 15,16,17,18,19,20,21,22,23,24, + 0,25,26,28,29,30,31,32,33,34, + 35,36,0,37,38,0,0,41,0,0, + 0,0,10,0,0,0,0,4,0,56, + 0,0,56,0,0,0,0,0,10,0, + 64,0,66,67,0,69,70,71,0,0, + 0,0,40,0,0,0,0,0,0,0, + 0,0,0,0,88,89,90,55,40,93, + 94,95,96,97,98,99,100,101,102,56, + 0,0,106,55,108,109,110,111,112,113, + 114,115,116,117,0,1,2,3,4,5, + 6,7,0,9,10,11,12,13,14,15, + 16,17,18,19,20,21,0,0,0,25, + 26,0,0,0,0,0,0,0,0,0, + 0,37,38,39,0,41,42,43,44,45, + 46,47,48,49,50,51,52,53,54,0, + 0,1,2,3,4,5,6,7,64,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,0,0,0,25,26,0,0,0, + 0,0,0,0,0,0,0,37,38,39, + 0,41,42,43,44,45,46,47,48,49, + 50,51,52,53,54,0,0,0,0,0, + 0,61,0,1,2,3,4,5,6,7, + 0,9,10,11,12,13,14,15,16,17, + 18,19,20,21,0,0,0,25,26,0, + 0,0,0,0,0,0,0,0,0,37, + 38,39,0,41,42,43,44,45,46,47, + 48,49,50,51,52,53,54,0,1,2, + 3,4,5,6,7,0,9,10,11,12, + 13,14,15,16,17,18,19,20,21,0, + 0,0,25,26,0,0,0,0,0,0, + 0,0,0,0,37,38,39,0,41,42, + 43,44,45,46,47,48,49,50,51,52, + 53,54,0,1,2,3,4,5,6,7, + 0,9,10,11,12,13,14,15,16,17, + 18,19,20,21,0,0,0,25,26,0, + 0,0,0,0,0,0,0,0,0,37, + 38,39,0,41,42,43,44,45,46,47, + 48,49,50,51,52,53,54,0,1,2, + 0,4,0,0,0,0,0,10,11,12, + 13,14,15,16,17,18,19,20,21,22, + 23,24,0,0,0,28,29,30,31,32, + 33,34,35,36,0,0,0,40,3,0, + 0,0,0,0,0,0,0,0,1,2, + 0,4,0,0,57,58,59,10,11,12, + 13,14,15,16,17,18,19,20,21,22, + 23,24,37,38,0,28,29,30,31,32, + 33,34,35,36,0,0,0,40,0,1, + 2,3,4,5,6,7,8,9,0,64, + 0,0,0,0,57,58,59,0,0,0, + 22,23,24,0,0,27,28,29,30,31, + 32,33,34,35,36,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,70,87, - 0,0,28,73,0,69,0,0,69,0, - 0,0,45,0,0,0,73,0,0,73, - 0,69,0,0,0,0,0,0,0,0, - 0,0,0,69,0,69,0,0,0,0, + 0,106,0,0,0,0,0,0,0,0, + 0,0,64,0,0,120,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,119,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0 + 0,0 }; }; public final static byte termCheck[] = TermCheck.termCheck; @@ -1397,317 +1432,351 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface TermAction { public final static char termAction[] = {0, - 5284,5249,5228,5228,5228,5228,5228,5228,5265,5228, - 1,1,1,5253,1,1,1,1,1,1, + 5280,5245,5224,5224,5224,5224,5224,5224,5261,5224, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5249,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,143,1,1,1,1, - 1,1,1,1,1,1,1525,1,2338,135, - 2983,1,1,1,5295,1,1,1,5284,5303, - 5304,5291,5465,2873,385,3399,3262,3234,2215,2855, - 3172,3081,3261,1482,3236,3585,3207,10,5268,5268, - 5268,5268,5268,5268,5268,5268,5268,5268,5268,5268, - 5268,5268,5268,5268,5268,5268,5268,5268,5268,5268, - 5268,5268,5268,5268,5268,5268,5268,5268,5268,5268, - 5268,5268,5268,5268,5268,5268,5268,5268,5268,5268, - 5284,5268,5284,5268,5268,5268,5268,5268,5268,5268, - 5268,5268,5268,5268,5268,5268,2264,5268,5268,5268, - 5268,5268,5268,5268,5268,127,2393,2365,5268,5268, - 456,5284,5268,5268,5268,5268,5268,5268,5268,5268, - 5268,5268,5268,5268,8,5271,5271,5271,5271,5271, - 5271,5271,5271,5271,5271,5271,5271,5271,5271,5271, - 5271,5271,5271,5271,5271,5271,5271,5271,5271,5271, - 5271,5271,5271,5271,5271,5271,5271,5271,5271,5271, - 5271,5271,5271,5271,5271,5271,5271,5284,5271,4947, - 5271,5271,5271,5271,5271,5271,5271,5271,5271,5271, - 5271,5271,5271,137,5271,5271,5271,5271,5271,5271, - 5271,5271,592,2997,3023,5271,5271,455,5284,5271, - 5271,5271,5271,5271,5271,5271,5271,5271,5271,5271, - 5271,5284,5249,5228,5228,5228,5228,5228,5228,5256, - 5228,1,1,1,5253,1,1,1,1,1, + 1,1,1,1,1,1,136,1,1,1, + 1478,1,5456,2334,116,2997,1,1,5291,40, + 3695,158,5287,5319,5280,3175,3317,3063,2211,2851, + 3257,3077,3304,1435,3281,3581,3280,10,5264,5264, + 5264,5264,5264,5264,5264,5264,5264,5264,5264,5264, + 5264,5264,5264,5264,5264,5264,5264,5264,5264,5264, + 5264,5264,5264,5264,5264,5264,5264,5264,5264,5264, + 5264,5264,5264,5264,5264,5264,5264,5264,5264,5264, + 5264,5264,5264,5264,5264,5264,5264,5264,5264,5264, + 5264,5264,1353,2033,5264,5264,5264,5264,5264,5264, + 5264,132,5264,5264,5264,5264,2298,3629,3559,5264, + 588,5280,5264,5264,5264,5264,5264,5264,5264,5264, + 5264,5264,5264,5264,8,5267,5267,5267,5267,5267, + 5267,5267,5267,5267,5267,5267,5267,5267,5267,5267, + 5267,5267,5267,5267,5267,5267,5267,5267,5267,5267, + 5267,5267,5267,5267,5267,5267,5267,5267,5267,5267, + 5267,5267,5267,5267,5267,5267,5267,5267,5267,5267, + 5267,5267,5267,5267,5267,5267,5267,5267,5267,433, + 2066,5267,5267,5267,5267,5267,5267,5267,381,5267, + 5267,5267,5267,5280,4916,4913,5267,5319,5280,5267, + 5267,5267,5267,5267,5267,5267,5267,5267,5267,5267, + 5267,5280,5245,5224,5224,5224,5224,5224,5224,5252, + 5224,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5249,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5284,1,4950,1,1,1, - 1,1,1,1,1,1,1,1525,1,2338, - 138,2983,1,1,1,5295,1,1,1,592, - 5284,4920,4917,5465,5328,5284,3399,3262,3234,2215, - 2855,3172,3081,3261,1482,3236,3585,3207,5284,5249, - 5228,5228,5228,5228,5228,5228,5256,5228,1,1, - 1,5253,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,138,2069,1,1, + 1,1478,1,5456,2334,118,2997,1,1,5291, + 112,3695,5709,5710,5711,5280,3175,3317,3063,2211, + 2851,3257,3077,3304,1435,3281,3581,3280,5280,5245, + 5224,5224,5224,5224,5224,5224,5252,5224,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5249,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5284,1,144,1,1,1,1,1,1, - 1,1,1,1,1525,1,2338,5284,2983,1, - 1,1,5295,1,1,1,117,5284,4920,4917, - 5465,5328,5284,3399,3262,3234,2215,2855,3172,3081, - 3261,1482,3236,3585,3207,5284,5249,5228,5228,5228, - 5228,5228,5228,5256,5228,1,1,1,5253,1, + 1,1,1,133,2120,1,1,1,1478,1, + 5456,2334,588,2997,1,1,5291,2260,3629,3559, + 4006,5280,4028,3175,3317,3063,2211,2851,3257,3077, + 3304,1435,3281,3581,3280,5280,5245,5224,5224,5224, + 5224,5224,5224,5252,5224,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,5249,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5284,1, - 1911,1,1,1,1,1,1,1,1,1, - 1,1525,1,2338,2264,2983,1,1,1,5295, - 1,1,1,5284,5303,5304,4010,5465,4032,5284, - 3399,3262,3234,2215,2855,3172,3081,3261,1482,3236, - 3585,3207,5284,5249,5228,5228,5228,5228,5228,5228, - 5256,5228,1,1,1,5253,1,1,1,1, + 5786,137,1,1,1,1478,1,5456,2334,117, + 2997,1,1,5291,5280,3695,122,5280,5294,5295, + 3175,3317,3063,2211,2851,3257,3077,3304,1435,3281, + 3581,3280,5280,5245,5224,5224,5224,5224,5224,5224, + 5252,5224,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5249, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5284,1,5284,1,1, - 1,1,1,1,1,1,1,1,1525,1, - 2338,124,2983,1,1,1,5295,1,1,1, - 5284,45,3512,3487,5465,5328,2986,3399,3262,3234, - 2215,2855,3172,3081,3261,1482,3236,3585,3207,5284, - 5249,5228,5228,5228,5228,5228,5228,5256,5228,1, - 1,1,5253,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1907,5280,1, + 1,1,1478,1,5456,2334,5280,2997,1,1, + 5291,2298,3629,3559,2993,3019,5280,3175,3317,3063, + 2211,2851,3257,3077,3304,1435,3281,3581,3280,5280, + 5245,5224,5224,5224,5224,5224,5224,5252,5224,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,5249,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,5284,1,5284,1,1,1,1,1, - 1,1,1,1,1,1525,1,2338,5284,2983, - 1,1,1,5295,1,1,1,5284,5098,5095, - 348,5465,349,1994,3399,3262,3234,2215,2855,3172, - 3081,3261,1482,3236,3585,3207,5284,5249,5228,5228, - 5228,5228,5228,5228,5256,5228,1,1,1,5253, + 1,1,1,1,5280,5715,1,1,1,1478, + 1,5456,2334,5280,2997,1,1,5291,5280,5294, + 5295,509,5280,2814,3175,3317,3063,2211,2851,3257, + 3077,3304,1435,3281,3581,3280,5280,5245,5224,5224, + 5224,5224,5224,5224,5252,5224,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,5249,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1873, - 1,1873,1,1,1,1,1,1,1,1, - 1,1,1525,1,2338,426,2983,1,1,1, - 5295,1,1,1,54,5098,5095,320,5465,5284, - 5204,3399,3262,3234,2215,2855,3172,3081,3261,1482, - 3236,3585,3207,5284,5249,5228,5228,5228,5228,5228, - 5228,5256,5228,1,1,1,5253,1,1,1, + 1,5729,869,1,1,1,1478,1,5456,2334, + 300,2997,1,1,5291,5280,4916,4913,359,5319, + 5579,3175,3317,3063,2211,2851,3257,3077,3304,1435, + 3281,3581,3280,5280,5245,5224,5224,5224,5224,5224, + 5224,5252,5224,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 5249,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5280,3356, + 1,1,1,1478,1,5456,2334,5280,2997,1, + 1,5291,5280,5094,5091,49,5094,5091,3175,3317, + 3063,2211,2851,3257,3077,3304,1435,3281,3581,3280, + 5280,5245,5224,5224,5224,5224,5224,5224,5252,5224, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5249,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1873,1,3075,1, - 1,1,1,1,1,1,1,1,1,1525, - 1,2338,126,2983,1,1,1,5295,1,1, - 1,120,5284,3512,3487,5465,2981,5284,3399,3262, - 3234,2215,2855,3172,3081,3261,1482,3236,3585,3207, - 5284,5249,5228,5228,5228,5228,5228,5228,5256,5228, - 1,1,1,5253,1,1,1,1,1,1, + 1,1,1,1,1,5280,5280,1,1,1, + 1478,1,5456,2334,5280,2997,1,1,5291,126, + 5280,5280,125,4715,3654,3175,3317,3063,2211,2851, + 3257,3077,3304,1435,3281,3581,3280,5280,5245,5224, + 5224,5224,5224,5224,5224,5252,5224,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,5249,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5284,1,5284,1,1,1,1, - 1,1,1,1,1,1,1525,1,2338,136, - 2983,1,1,1,5295,1,1,1,119,5284, - 1,4010,5465,4032,389,3399,3262,3234,2215,2855, - 3172,3081,3261,1482,3236,3585,3207,5284,5249,5228, - 5228,5228,5228,5228,5228,5256,5228,1,1,1, - 5253,1,1,1,1,1,1,1,1,1, + 1,1,5280,5280,1,1,1,1478,1,5456, + 2334,5280,2997,1,1,5291,115,2993,3019,5284, + 2993,3019,3175,3317,3063,2211,2851,3257,3077,3304, + 1435,3281,3581,3280,5280,3258,1,1,1,1, + 1,1,3278,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,5289,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 4152,1,5284,1,1,1,1,1,1,1, - 1,1,1,1525,1,2338,5284,2983,1,1, - 1,5295,1,1,1,118,2393,2365,4010,5465, - 4032,5284,3399,3262,3234,2215,2855,3172,3081,3261, - 1482,3236,3585,3207,5284,3193,1,1,1,1, - 1,1,3206,1,1,1,1,5293,1,1, + 1,1,1,1,1,1,1,1,1,5280, + 5280,1,1,1,1478,1,5456,2334,5280,2997, + 1,1,5291,289,5294,5295,4006,5280,4028,3175, + 3317,3063,2211,2851,3257,3077,3304,1435,3281,3581, + 3280,40,4916,4913,3151,1204,2936,3896,2668,5283, + 3918,917,5545,5543,5552,5551,5547,5548,5546,5549, + 5550,5553,5544,5541,5614,5615,3874,3852,134,5535, + 5542,5538,5514,5540,5539,5536,5537,5515,3962,3940, + 5300,5673,624,768,813,5302,770,4094,793,5303, + 5301,587,5296,5298,5299,5297,5280,5280,861,5674, + 5675,2790,1307,5280,5149,5149,230,5145,230,230, + 230,5153,230,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,3389,1, + 230,1,1,1,1,1,1,1,1,1, + 5280,4916,4913,1,1204,727,5280,2668,4912,225, + 5280,4916,4913,4313,1204,727,1774,2668,5142,5607, + 1,1,1,2659,226,5687,1145,2330,5280,5294, + 5295,5541,5614,5615,5280,411,230,5535,5542,5538, + 5514,5540,5539,5536,5537,5515,5541,5614,5615,130, + 5774,124,5535,5542,5538,5514,5540,5539,5536,5537, + 5515,392,4916,4913,3651,5319,5709,5710,5711,5280, + 5149,5149,230,5145,230,230,230,5197,230,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,3984,776,230,1,1,1, + 1,1,1,1,1,1,438,1,1,1, + 1,34,4940,452,4955,4940,40,4955,5280,4955, + 4955,5280,8606,8606,5142,119,1,1,1,2659, + 227,5687,1145,37,5173,5170,4955,4955,4955,2993, + 3019,410,230,44,5115,5115,2389,2361,4955,4955, + 3508,3483,5541,5614,5615,135,5774,903,5535,5542, + 5538,5514,5540,5539,5536,5537,5515,4955,5280,5094, + 5091,114,5709,5710,5711,4955,5317,4943,139,1, + 4955,4955,4955,4955,4955,4955,5280,162,364,5004, + 5000,2439,5008,727,1,2668,451,1,5112,4955, + 4955,4955,4955,4955,4955,4955,4955,4955,4955,4955, + 4955,4955,4955,4955,355,121,5280,4955,4955,4955, + 4955,4955,4955,4955,4955,4955,4955,4955,4955,4955, + 5280,4955,4955,4958,3984,776,4958,131,4958,4958, + 3508,3483,30,384,384,5109,384,384,5109,384, + 5109,5109,1869,162,2330,4958,4958,4958,1161,92, + 4946,4006,4949,4028,384,384,384,4958,4958,5109, + 384,384,384,384,384,384,384,384,384,2260, + 1,5004,5000,5188,5008,5194,4958,5191,5290,123, + 39,4934,4931,5280,4958,4928,186,2668,4919,4958, + 4958,4958,4958,4958,4958,5634,5109,5289,308,5004, + 5000,4313,5008,727,5215,2668,5109,5212,4958,4958, + 4958,4958,4958,4958,4958,4958,4958,4958,4958,4958, + 4958,4958,4958,422,2389,2361,4958,4958,4958,4958, + 4958,4958,4958,4958,4958,4958,4958,4958,4958,2715, + 4958,4958,5280,5224,5224,230,5224,230,230,230, + 5227,230,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,2993,3019,230, + 1,1,8568,1,1,1,1,1,1,5280, + 4916,4913,1,1204,727,290,2668,228,1,5004, + 5000,4313,5008,727,5280,2668,3071,5221,140,1, + 1,1,2983,344,5492,2334,1990,2997,5271,5541, + 5614,5615,113,5280,221,5535,5542,5538,5514,5540, + 5539,5536,5537,5515,38,5136,5136,5280,5280,5774, + 5280,5224,5224,230,5224,230,230,230,230,230, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,530,1,5284, + 1,1,1,1,1,1999,120,230,1,1, + 8568,1,1,1,1,1,1,1869,1826,3611, + 1,5280,5004,5000,4313,5008,727,5215,2668,2739, + 5212,3508,3483,4236,4237,5221,2736,1,1,1, + 2983,1,5492,2334,3660,2997,5280,5294,5295,5097, + 1123,727,4006,2668,4028,3197,1783,1740,1697,1654, + 1611,1568,1525,1482,1439,1396,5280,5774,5280,5224, + 5224,230,5224,230,230,230,5230,230,1,1, 1,1,1,1,1,1,1,1,1,1, - 1525,1,2338,359,2983,1,1,1,5295,1, - 1,1,293,5303,5304,4010,5465,4032,191,3399, - 3262,3234,2215,2855,3172,3081,3261,1482,3236,3585, - 3207,45,4920,4917,3155,1208,2940,3900,2672,139, - 3922,921,3878,3856,3092,5553,5551,5560,5546,5559, - 5555,5556,5554,5557,5558,5561,5552,3966,3944,5309, - 628,772,817,5311,774,4098,797,5312,5310,591, - 5305,5307,5308,5306,131,5549,5284,5622,5623,5543, - 5550,5522,5548,5547,5544,5545,5523,1,1311,396, - 4920,4917,5681,5328,5642,167,865,5682,5683,5284, - 5153,5153,234,5149,234,234,234,5157,234,1, - 4916,5284,234,1,1,1,1,1,1,1, - 1,1,1,1,1,5284,1,5008,5004,2443, - 5012,731,45,2672,5101,442,1,1,2334,1, - 5275,4944,5146,1,4944,1,1,1,1,1, - 1,1,1,1,1,2663,2719,1149,141,5284, - 1,167,2997,3023,1,1,1,5290,163,45, - 415,5695,234,5328,5284,5153,5153,234,5149,234, - 234,234,5201,234,1,1873,5782,234,1,1, + 1,1,1,372,2086,230,1,1,8568,1, + 1,1,1,1,1,1869,4141,5280,1,1, + 5004,5000,4313,5008,727,5100,2668,1,5004,5000, + 2439,5008,727,5221,2668,1,1,1,2983,316, + 5492,2334,5200,2997,1,5004,5000,2439,5008,727, + 220,2668,5097,342,4916,4913,2439,1204,727,1774, + 2668,238,5607,5280,5103,5774,5280,5224,5224,230, + 5224,230,230,230,5227,230,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5104,1,5717,5718,5719,368,5008,5004,2443,5012, - 731,1,2672,1266,1,45,5284,5146,1,5328, + 1,1869,2086,230,1,1,8568,1,1,1, + 1,1,1,1869,5280,5280,1,5280,1869,1, + 5004,5000,5188,5008,5194,5288,5191,1869,5100,1, + 300,5221,3389,1,1,1,2983,360,5492,2334, + 5579,2997,5280,1,5133,5133,30,5130,221,1774, + 5286,360,5607,439,40,40,38,5319,30,5127, + 367,5280,5124,5774,5280,5224,5224,230,5224,230, + 230,230,5227,230,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5287, + 2240,230,1,1,8568,1,1,1,1,1, + 1,140,4919,360,1,1,5004,5000,4313,5008, + 727,5317,2668,308,779,1,5285,360,4238,5221, + 360,1,1,1,2983,1,5492,2334,3660,2997, + 1215,418,308,338,360,5280,221,342,40,40, + 3660,5319,5280,1774,5280,3722,5607,5280,5159,5156, + 48,5774,5280,5224,5224,230,5224,230,230,230, + 230,230,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,434,5280,230, + 1,1,8568,1,1,1,1,1,1,1869, + 5280,40,1,3742,338,5319,338,1774,5280,338, + 5607,1869,5317,1123,4115,2503,5292,5221,3197,1, + 1,1,2983,1,5492,2334,40,2997,345,5280, + 5319,5239,5280,4916,4913,5280,1204,4961,3743,2668, + 5280,4916,4913,4922,1204,4961,5280,2668,2292,5774, + 5280,5224,5224,230,5224,230,230,230,230,230, 1,1,1,1,1,1,1,1,1,1, - 2663,5284,1149,5289,4719,1,337,5284,1357,1, - 1,1,5284,8826,8826,414,5695,234,1,5008, - 5004,4317,5012,731,39,2672,5284,4959,2302,2296, - 4959,5782,4959,4959,1873,4959,4959,4959,1,5008, - 5004,4317,5012,731,1165,2672,3475,5717,5718,5719, - 4959,4959,5622,5623,2037,5326,228,5284,4920,4917, - 4317,1208,731,1778,2672,5284,5615,142,3658,4959, - 5553,5551,5560,5546,5559,5555,5556,5554,5557,5558, - 5561,5552,5284,4959,145,5284,5303,5304,5717,5718, - 5719,2090,4959,4959,4959,4959,314,4959,4959,3175, - 5549,5284,5622,5623,5543,5550,5522,5548,5547,5544, - 5545,5523,4959,4959,4959,4959,4959,4959,4959,4959, - 4959,4959,4959,4959,4959,4959,4959,42,5177,5174, - 4959,4959,4959,4959,4959,4959,4959,4959,4959,4959, - 4959,4959,4959,5284,4959,4959,4962,3988,780,4962, - 2070,4962,4962,1830,4962,4962,4962,5284,5008,5004, - 4317,5012,731,5219,2672,1038,5216,2302,106,4962, - 4962,1,5008,5004,5192,5012,5198,97,5195,5294, - 4953,443,45,45,5293,5328,1127,5131,4962,5284, - 5128,3201,1787,1744,1701,1658,1615,1572,1529,1486, - 1443,1400,4962,1,5008,5004,2443,5012,731,5284, - 2672,4962,4962,4962,4962,242,4962,4962,5107,346, - 4920,4917,2443,1208,731,1778,2672,4144,5615,5284, - 2090,4962,4962,4962,4962,4962,4962,4962,4962,4962, - 4962,4962,4962,4962,4962,4962,5284,5284,5284,4962, - 4962,4962,4962,4962,4962,4962,4962,4962,4962,4962, - 4962,4962,1873,4962,4962,5284,1,1,1,1, - 1,1,1,294,1,1,1,1,1873,1, - 1,1,43,1,1,1,1,1,1,1, + 1,1,1,1,1,5280,5291,230,1,1, + 8568,1,1,1,1,1,1,925,5280,1, + 1,5291,1869,385,400,2452,5280,4916,4913,5280, + 5319,2744,5182,3188,5292,5221,5280,1,1,1, + 2983,5280,5492,2334,5290,2997,93,1,1,5288, + 1,5185,5139,5280,5280,5139,5280,5294,5295,5709, + 5710,5711,5280,5289,5292,5280,448,5774,5280,5224, + 5224,230,5224,230,230,230,230,230,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,312,5008, - 5004,4317,5012,731,5219,2672,4231,5216,4136,5284, - 4920,4917,1,1208,731,5326,2672,1,1,1, - 5008,5004,3155,5012,2940,3900,2672,5818,3922,4968, - 3878,3856,2003,4995,5001,4974,145,4977,4989,4986, - 4992,4983,4980,4971,4998,3966,3944,5309,628,772, - 817,5311,774,4098,797,5312,5310,591,5305,5307, - 5308,5306,1,5137,5137,5284,5134,5284,1778,130, - 364,5615,1,5284,304,3664,1311,5284,5303,5304, - 342,45,45,1,5587,5296,4242,514,45,4920, - 4917,3155,1208,2940,3900,2672,5278,3922,784,3878, - 3856,907,5553,5551,5560,53,5559,5555,5556,5554, - 5557,5558,5561,5552,3966,3944,5309,628,772,817, - 5311,774,4098,797,5312,5310,591,5305,5307,5308, - 5306,1873,44,4938,4935,2073,364,4932,1127,2672, - 342,5295,342,3201,5284,1311,342,5284,2507,5284, - 5303,5304,5262,364,731,5284,2672,2997,3023,5291, - 147,4920,4917,3155,1208,2940,3900,2672,140,3922, - 784,3878,3856,132,5553,5551,5560,5284,5559,5555, - 5556,5554,5557,5558,5561,5552,3966,3944,5309,628, - 772,817,5311,774,4098,797,5312,5310,591,5305, - 5307,5308,5306,1,5008,5004,4317,5012,731,5284, - 2672,312,3356,5284,4136,2124,312,1311,2623,5284, - 2814,5292,45,45,1,5008,5004,3155,5012,2940, - 3900,2672,371,3922,4968,3878,3856,5284,4995,5001, - 4974,4941,4977,4989,4986,4992,4983,4980,4971,4998, - 3966,3944,5309,628,772,817,5311,774,4098,797, - 5312,5310,591,5305,5307,5308,5306,2334,2566,2539, - 5284,5284,404,346,45,45,3664,5328,5292,1778, - 5186,1311,5615,994,5291,5189,45,45,45,4920, - 4917,3155,1208,2940,3900,2672,5259,3922,784,3878, - 3856,1219,5553,5551,5560,5794,5559,5555,5556,5554, - 5557,5558,5561,5552,3966,3944,5309,628,772,817, - 5311,774,4098,797,5312,5310,591,5305,5307,5308, - 5306,513,1873,1,5008,5004,5192,5012,5198,5284, - 5195,5291,5284,4920,4917,1311,5328,5296,5284,5284, - 5296,3726,5262,45,4920,4917,3155,1208,2940,3900, - 2672,5259,3922,784,3878,3856,5284,5553,5551,5560, - 5284,5559,5555,5556,5554,5557,5558,5561,5552,3966, - 3944,5309,628,772,817,5311,774,4098,797,5312, - 5310,591,5305,5307,5308,5306,98,1,1,363, - 1,873,5143,5295,1,5143,5295,101,45,45, - 1311,5328,5290,5210,5284,3615,5207,5262,45,4920, - 4917,3155,1208,2940,3900,2672,5288,3922,784,3878, - 3856,5284,5553,5551,5560,3192,5559,5555,5556,5554, - 5557,5558,5561,5552,3966,3944,5309,628,772,817, - 5311,774,4098,797,5312,5310,591,5305,5307,5308, - 5306,45,4920,4917,3155,1208,2940,3900,2672,3360, - 3922,784,3878,3856,134,5553,5551,5560,5289,5559, - 5555,5556,5554,5557,5558,5561,5552,3966,3944,5309, - 628,772,817,5311,774,4098,797,5312,5310,591, - 5305,5307,5308,5306,1,322,229,582,45,5751, - 5745,5284,5328,5749,1778,5743,5744,5615,1311,2623, - 5284,4920,4917,5546,1208,731,5284,2672,5284,3747, - 5774,5775,125,5752,230,5284,5287,1,4120,5284, - 3664,5284,5122,3512,3487,5101,5284,5098,5095,5754, - 5549,5546,5622,5623,5543,5550,5522,5548,5547,5544, - 5545,5523,437,1115,1873,5284,1490,1518,4121,2566, - 2539,1,5755,5753,5776,396,5303,5304,5549,5243, - 5622,5623,5543,5550,5522,5548,5547,5544,5545,5523, - 5284,5284,5765,5764,5777,1396,1873,5746,5747,5770, - 5771,5768,5769,5748,5750,5772,5773,5723,3988,780, - 5778,5104,5758,5759,5760,5756,5757,5766,5767,5762, - 5761,5763,45,4920,4917,3155,1208,2940,3900,2672, - 3270,3922,784,3878,3856,5295,5553,5551,5560,5284, - 5559,5555,5556,5554,5557,5558,5561,5552,3966,3944, - 5309,628,772,817,5311,774,4098,797,5312,5310, - 591,5305,5307,5308,5306,5717,5718,5719,45,4920, - 4917,3155,1208,2940,3900,2672,5284,3922,784,3878, - 3856,1610,5553,5551,5560,5284,5559,5555,5556,5554, - 5557,5558,5561,5552,3966,3944,5309,628,772,817, - 5311,774,4098,797,5312,5310,591,5305,5307,5308, - 5306,5284,45,4920,4917,4724,1208,2940,3900,2672, - 5284,3922,784,3878,3856,1311,5553,5551,5560,5284, - 5559,5555,5556,5554,5557,5558,5561,5552,3966,3944, - 5309,628,772,817,5311,774,4098,797,5312,5310, - 591,5305,5307,5308,5306,45,4920,4917,3155,1208, - 2940,3900,2672,1,3922,784,3878,3856,5284,5553, - 5551,5560,1439,5559,5555,5556,5554,5557,5558,5561, - 5552,3966,3944,5309,628,772,817,5311,774,4098, - 797,5312,5310,591,5305,5307,5308,5306,45,4920, - 4917,3155,1208,2940,3900,2672,5284,3922,784,3878, - 3856,5284,5553,5551,5560,5284,5559,5555,5556,5554, - 5557,5558,5561,5552,3966,3944,5309,628,772,817, - 5311,774,4098,797,5312,5310,591,5305,5307,5308, - 5306,5284,4920,4917,5284,5328,105,121,5284,8712, - 8696,723,5284,3699,5644,5553,5551,5560,5546,5559, - 5555,5556,5554,5557,5558,5561,5552,5284,4920,4917, - 5284,1208,4965,1,2672,5284,8712,8696,5284,129, - 5284,5246,3381,5737,5684,5549,5288,5622,5623,5543, - 5550,5522,5548,5547,5544,5545,5523,4240,3666,246, - 5088,5084,5681,5092,5284,2041,865,5682,5683,723, - 929,5284,4119,5075,5081,5054,5039,5057,5069,5066, - 5072,5063,5060,5051,5078,35,388,388,5113,388, - 388,5113,388,5113,5113,5284,81,5284,5113,3746, - 3633,3563,388,5030,5291,5024,5021,5048,5027,5018, - 5033,5036,5045,5042,5015,123,133,49,5119,5119, - 5681,3699,5352,5353,865,5682,5683,2997,3023,388, - 4923,388,388,388,388,388,388,388,388,388, - 388,35,4241,438,5113,38,389,389,5110,389, - 389,5110,389,5110,5110,1350,5287,5284,5110,5113, - 5116,2623,389,1,1,5228,5228,234,5228,234, - 234,234,5231,234,5284,5284,5284,234,5284,4920, - 4917,8833,1208,4965,5125,2672,4923,5284,4926,389, - 4134,389,389,389,389,389,389,389,389,389, - 389,5284,578,5284,5110,452,4358,5225,3633,3563, - 5284,2566,2539,43,5140,5140,663,122,5140,5110, - 3095,2456,2338,3699,2983,1,5228,5228,234,5228, - 234,234,234,234,234,225,5284,128,234,43, - 5140,5140,8833,1,5294,2986,43,5140,5140,5293, - 4929,5782,5284,5237,4258,35,2975,388,1,5228, - 5228,234,5228,234,234,234,5234,234,5225,5284, - 2801,234,5284,5163,5160,8833,395,5284,5170,5166, - 388,3095,5326,2338,109,2983,3077,4368,231,2743, - 1,5228,5228,234,5228,234,234,234,5231,234, - 783,5225,4956,234,5240,5546,2909,8833,292,5284, - 3633,3563,5782,369,3095,5326,2338,5284,2983,1, - 5326,783,51,5183,5183,2997,3023,364,422,224, - 5284,5284,5549,5225,5622,5623,5543,5550,5522,5548, - 5547,5544,5545,5523,5284,5782,3095,446,2338,2873, - 2983,1,5228,5228,234,5228,234,234,234,5231, - 234,225,1,304,234,5180,5284,1,8833,43, - 5140,5140,5237,5587,5294,5294,783,5782,1355,5293, - 5293,232,1267,1,5228,5228,234,5228,234,234, - 234,234,234,364,5225,5284,234,54,5546,5284, - 8833,5304,3195,5290,376,3077,5284,3095,1,2338, - 364,2983,5326,54,424,1,197,5303,5284,2244, - 2522,197,225,5240,418,5549,5225,5622,5623,5543, - 5550,5522,5548,5547,5544,5545,5523,5284,5782,3095, - 447,2338,5304,2983,1,5228,5228,234,5228,234, - 234,234,234,234,8,1,79,234,5303,1, - 783,8833,5281,526,5284,4800,41,169,283,5289, - 5782,5222,1,5228,5228,234,5228,234,234,234, - 234,234,2801,5284,4126,234,3019,5225,311,8833, - 5284,2128,5284,2177,5284,5284,506,4369,3072,504, - 3095,5213,2338,5284,2983,5284,5284,519,4772,3473, - 3086,5284,5284,5284,4792,5225,2677,5284,5284,5284, - 4812,4407,4519,3270,5284,5281,508,2,3095,526, - 2338,5782,2983,169,1,3433,5284,3740,5284,5284, - 5284,5284,5284,5284,5284,5284,5284,5284,5284,5284, - 5284,5284,5284,5284,5284,5284,5284,5284,3674,5782, - 5284,5284,2929,3118,5284,4435,5284,5284,4628,5284, - 5284,5284,43,5284,5284,5284,3174,5284,5284,3228, - 5284,3433,5284,5284,5284,5284,5284,5284,5284,5284, - 5284,5284,5284,1960,5284,800,5284,5284,5284,5284, - 5284,5284,5284,5284,5284,5284,5284,5284,5284,5284, - 5284,5284,5284,5284,5284,5284,5284,5284,5284,5284, - 5284,5284,5284,5284,5284,5284,3270 + 1,1,1,3846,5291,230,1,1,8568,1, + 1,1,1,1,1,96,40,40,1,5319, + 5280,5206,990,5287,5203,38,5136,5136,5290,333, + 5136,5280,4925,5221,5291,1,1,1,2983,5280, + 5492,2334,5280,2997,4227,310,4132,5289,2753,5280, + 5286,5280,5614,5615,392,5294,5295,5280,1,1, + 1,1,1,1,1,5774,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5280, + 2869,1,1,1,5280,8734,8684,5280,288,5242, + 101,2905,127,391,1,1,1,384,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,5676,4796,5280,1034,5285,4116,1,5810, + 5280,8734,8684,1,1,1,5004,5000,3151,5008, + 2936,3896,2668,384,3918,4964,4991,4997,4970,4973, + 4985,4982,4988,4979,4976,4967,4994,8,2619,779, + 3874,3852,1,5287,4140,5277,3463,1,4132,1351, + 5286,4937,3962,3940,5300,5290,624,768,813,5302, + 770,4094,793,5303,5301,587,5296,5298,5299,5297, + 5280,365,5280,4127,5289,4130,1307,2562,2535,4952, + 5280,40,40,318,510,40,4916,4913,3151,1204, + 2936,3896,2668,5274,3918,780,5545,5543,5552,5551, + 5547,5548,5546,5549,5550,5553,5544,5280,5280,5277, + 3874,3852,1,1,3075,5280,5285,5280,100,1244, + 522,192,3962,3940,5300,129,624,768,813,5302, + 770,4094,793,5303,5301,587,5296,5298,5299,5297, + 192,1263,1,38,5136,5136,1307,1869,104,3075, + 164,4354,5280,5258,526,5280,1563,5287,142,4916, + 4913,3151,1204,2936,3896,2668,5280,3918,780,5545, + 5543,5552,5551,5547,5548,5546,5549,5550,5553,5544, + 5280,2619,2037,3874,3852,2814,522,420,5280,414, + 1,3426,1,128,5118,3962,3940,5300,5317,624, + 768,813,5302,770,4094,793,5303,5301,587,5296, + 5298,5299,5297,442,279,3168,164,5218,5280,1307, + 2562,2535,779,5280,40,40,1,5004,5000,3151, + 5008,2936,3896,2668,5280,3918,4964,4991,4997,4970, + 4973,4985,4982,4988,4979,4976,4967,4994,779,2619, + 5280,3874,3852,3015,36,443,307,5280,4123,2173, + 74,5280,5121,3962,3940,5300,5280,624,768,813, + 5302,770,4094,793,5303,5301,587,5296,5298,5299, + 5297,5636,5280,502,500,4364,2518,1307,2562,2535, + 2736,2124,40,40,40,4916,4913,3151,1204,2936, + 3896,2668,5255,3918,780,5545,5543,5552,5551,5547, + 5548,5546,5549,5550,5553,5544,5209,3597,5280,3874, + 3852,3068,3828,5280,3429,5280,3082,3670,1,5280, + 40,3962,3940,5300,5319,624,768,813,5302,770, + 4094,793,5303,5301,587,5296,5298,5299,5297,5280, + 5280,5280,1262,4431,4624,1307,5280,5280,5280,4768, + 4788,2673,5258,40,4916,4913,3151,1204,2936,3896, + 2668,5255,3918,780,5545,5543,5552,5551,5547,5548, + 5546,5549,5550,5553,5544,5280,5280,5280,3874,3852, + 4808,5280,5280,5280,4403,4515,3114,515,3170,3429, + 3962,3940,5300,5280,624,768,813,5302,770,4094, + 793,5303,5301,587,5296,5298,5299,5297,5280,4252, + 5280,1956,3224,5280,1307,504,3469,1,5280,5280, + 5280,5258,40,4916,4913,3151,1204,2936,3896,2668, + 5284,3918,780,5545,5543,5552,5551,5547,5548,5546, + 5549,5550,5553,5544,5280,5166,5162,3874,3852,46, + 5179,5179,38,5136,5136,2,2969,5280,5280,3962, + 3940,5300,5280,624,768,813,5302,770,4094,793, + 5303,5301,587,5296,5298,5299,5297,40,4916,4913, + 3151,1204,2936,3896,2668,796,3918,780,5545,5543, + 5552,5551,5547,5548,5546,5549,5550,5553,5544,5317, + 5280,5280,3874,3852,5176,5280,3389,5317,5280,5280, + 5280,38,5280,5280,3962,3940,5300,5280,624,768, + 813,5302,770,4094,793,5303,5301,587,5296,5298, + 5299,5297,5280,49,5280,224,1,5295,1307,578, + 5283,5743,5737,5280,5280,5741,5545,5543,5552,5551, + 5547,5548,5546,5549,5550,5553,5544,5541,5614,5615, + 5280,5735,5736,5535,5542,5538,5514,5540,5539,5536, + 5537,5515,1,5766,5767,5280,5280,5744,5280,5280, + 5280,5280,5233,49,5280,5280,5280,5294,1,5295, + 5280,5280,5746,5280,5280,5280,5280,5280,5233,5280, + 1111,5280,1514,1521,5280,5747,5745,5768,5280,5280, + 5280,5280,5236,5280,5280,5280,5280,5280,5280,5280, + 5280,5280,5280,5280,5757,5756,5769,3098,5236,5738, + 5739,5762,5763,5760,5761,5740,5742,5764,5765,5294, + 5280,5280,5770,3098,5750,5751,5752,5748,5749,5758, + 5759,5754,5753,5755,40,4916,4913,3151,1204,2936, + 3896,2668,5280,3918,780,5545,5543,5552,5551,5547, + 5548,5546,5549,5550,5553,5544,5280,5280,5280,3874, + 3852,5280,5280,5280,5280,5280,5280,5280,5280,5280, + 5280,3962,3940,5300,5280,624,768,813,5302,770, + 4094,793,5303,5301,587,5296,5298,5299,5297,5280, + 40,4916,4913,3151,1204,2936,3896,2668,1606,3918, + 780,5545,5543,5552,5551,5547,5548,5546,5549,5550, + 5553,5544,5280,5280,5280,3874,3852,5280,5280,5280, + 5280,5280,5280,5280,5280,5280,5280,3962,3940,5300, + 5280,624,768,813,5302,770,4094,793,5303,5301, + 587,5296,5298,5299,5297,5280,5280,5280,5280,5280, + 5280,1307,40,4916,4913,4720,1204,2936,3896,2668, + 5280,3918,780,5545,5543,5552,5551,5547,5548,5546, + 5549,5550,5553,5544,5280,5280,5280,3874,3852,5280, + 5280,5280,5280,5280,5280,5280,5280,5280,5280,3962, + 3940,5300,5280,624,768,813,5302,770,4094,793, + 5303,5301,587,5296,5298,5299,5297,40,4916,4913, + 3151,1204,2936,3896,2668,5280,3918,780,5545,5543, + 5552,5551,5547,5548,5546,5549,5550,5553,5544,5280, + 5280,5280,3874,3852,5280,5280,5280,5280,5280,5280, + 5280,5280,5280,5280,3962,3940,5300,5280,624,768, + 813,5302,770,4094,793,5303,5301,587,5296,5298, + 5299,5297,40,4916,4913,3151,1204,2936,3896,2668, + 5280,3918,780,5545,5543,5552,5551,5547,5548,5546, + 5549,5550,5553,5544,5280,5280,5280,3874,3852,5280, + 5280,5280,5280,5280,5280,5280,5280,5280,5280,3962, + 3940,5300,5280,624,768,813,5302,770,4094,793, + 5303,5301,587,5296,5298,5299,5297,5280,4916,4913, + 5280,5319,5280,5280,5280,5280,5280,719,5545,5543, + 5552,5551,5547,5548,5546,5549,5550,5553,5544,5541, + 5614,5615,5280,5280,5280,5535,5542,5538,5514,5540, + 5539,5536,5537,5515,5280,76,5280,5673,3662,5280, + 5280,5280,5280,5280,5280,5280,5280,242,5084,5080, + 5280,5088,5280,5280,861,5674,5675,719,5071,5077, + 5050,5053,5065,5062,5068,5059,5056,5047,5074,5026, + 5020,5017,5343,5344,5280,5044,5023,5035,5014,5029, + 5032,5041,5038,5011,5280,5280,5280,5673,33,385, + 385,5106,385,385,5106,385,5106,5106,5280,1346, + 5280,5280,5280,5280,861,5674,5675,5280,5280,5280, + 385,385,385,5280,5280,5106,385,385,385,385, + 385,385,385,385,385,5280,5280,5280,5280,5280, + 5280,5280,5280,5280,5280,5280,5280,5280,5280,5280, + 5280,574,5280,5280,5280,5280,5280,5280,5280,5280, + 5280,5280,5106,5280,5280,659,5280,5280,5280,5280, + 5280,5280,5106 }; }; public final static char termAction[] = TermAction.termAction; @@ -1715,59 +1784,59 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface Asb { public final static char asb[] = {0, - 201,7,53,1,243,708,708,708,708,1104, - 243,740,740,625,740,284,37,286,54,54, - 54,54,54,54,54,54,54,742,748,753, - 750,757,755,762,760,764,763,765,297,766, - 53,37,665,665,665,665,93,890,96,96, - 737,665,523,394,740,740,96,93,394,394, - 385,37,937,664,1019,1106,1041,37,740,742, - 828,828,890,53,54,54,54,54,54,54, + 202,7,53,1,244,709,709,709,709,1107, + 244,741,741,626,741,285,37,287,54,54, + 54,54,54,54,54,54,54,743,749,754, + 751,758,756,763,761,765,764,766,298,767, + 53,37,666,666,666,666,93,877,96,96, + 738,666,524,395,741,741,96,93,395,395, + 386,37,939,665,1022,1109,1044,37,741,743, + 830,830,877,53,54,54,54,54,54,54, 54,54,54,54,54,54,54,54,54,54, 54,54,54,53,53,53,53,53,53,53, - 53,53,53,53,53,54,394,394,888,888, - 888,888,478,394,96,96,1102,1030,1041,617, - 1041,612,1041,614,1041,1025,1104,93,523,523, - 96,708,54,1102,482,573,563,562,397,1048, - 1048,1104,286,523,664,53,91,1018,394,90, - 92,90,394,523,750,750,748,748,748,755, - 755,755,755,753,753,760,757,757,763,762, - 764,1118,765,243,243,243,243,93,93,888, - 887,888,737,93,733,433,93,551,478,526, - 549,617,531,93,93,93,478,888,385,523, - 781,394,575,577,93,1019,54,665,746,350, - 394,1106,93,93,92,1019,53,53,53,53, - 53,243,243,37,348,733,433,551,550,551, - 478,551,531,531,93,478,93,394,567,555, - 566,577,478,91,394,746,1102,1018,1106,93, - 91,394,394,394,394,890,890,733,732,622, - 93,433,1118,615,708,480,149,1108,433,551, - 551,724,93,531,622,620,621,93,714,53, - 564,564,536,536,93,571,1102,842,394,93, - 746,747,746,53,350,154,742,1106,394,394, - 733,1019,790,617,888,708,90,835,1110,87, - 243,697,692,725,93,622,54,93,714,53, - 53,577,93,1019,394,575,555,714,1083,746, - 890,54,523,154,91,790,790,157,449,91, - 551,551,87,786,1102,93,701,54,1118,544, - 724,93,1104,1104,93,882,577,714,747,394, - 523,787,622,933,980,339,243,615,193,790, - 790,449,91,551,617,1104,1110,87,1018,54, - 54,93,93,93,882,394,882,156,339,933, - 710,1104,622,887,708,291,291,787,617,17, - 697,93,243,93,93,243,875,882,157,790, - 787,543,786,394,1104,93,449,157,449,886, - 886,935,18,1104,93,890,578,875,790,53, - 246,87,787,93,93,449,665,665,935,17, - 1118,54,1118,787,16,243,243,243,18,243, - 93,305,787,787,93,617,394,393,877,622, - 394,622,617,93,787,887,9,243,9,18, - 1118,18,37,37,35,840,37,787,787,547, - 935,665,877,622,246,787,610,842,18,394, - 87,394,35,339,243,394,935,246,291,394, - 394,1096,18,547,18,787,339,53,18,15, - 621,886,617,617,1098,53,16,890,787,394, - 785,245,90,18,394,787,785,785,18 + 53,53,53,53,53,54,395,395,935,935, + 935,935,479,395,96,96,1105,1033,1044,618, + 1044,613,1044,615,1044,1028,1107,93,524,524, + 96,709,54,1105,483,574,564,563,398,1051, + 1051,1107,287,524,665,53,91,1021,395,90, + 92,90,395,524,751,751,749,749,749,756, + 756,756,756,754,754,761,758,758,764,763, + 765,1121,766,244,244,244,244,93,93,935, + 934,935,738,93,734,434,93,552,479,527, + 550,618,532,93,93,93,479,935,386,524, + 782,395,576,578,93,1022,54,666,747,351, + 395,1109,93,93,92,1022,53,53,53,53, + 53,244,244,37,349,734,434,552,551,552, + 479,552,532,532,93,479,93,395,568,556, + 567,578,479,91,395,747,1105,1021,1109,93, + 91,395,395,395,395,877,877,734,733,623, + 93,434,1121,616,709,481,149,1111,434,552, + 552,711,93,532,623,621,622,93,719,53, + 565,565,537,537,93,572,1105,837,395,93, + 747,748,747,53,351,154,743,1109,395,395, + 734,1022,791,618,935,709,90,870,1113,87, + 244,698,693,712,93,623,54,93,719,53, + 53,578,93,1022,395,576,556,719,1086,747, + 877,54,524,154,91,791,791,157,450,91, + 552,552,87,787,1105,93,702,54,1121,545, + 711,93,1107,1107,93,929,578,719,748,395, + 524,788,623,920,982,340,244,616,194,791, + 791,450,91,552,618,1107,1113,87,1021,54, + 54,93,93,93,929,395,929,156,340,920, + 729,1107,623,934,709,292,292,788,618,17, + 698,93,244,93,93,244,922,929,157,791, + 788,544,787,395,1107,93,450,157,450,933, + 933,937,18,1107,93,877,579,922,791,53, + 247,87,788,93,93,450,666,666,937,17, + 1121,54,1121,788,16,244,244,244,18,244, + 93,306,788,788,93,618,395,394,924,623, + 395,623,618,93,788,934,9,244,9,18, + 1121,18,37,37,35,875,37,788,788,548, + 937,666,924,623,247,788,611,837,18,395, + 87,395,35,340,244,395,937,247,292,395, + 395,1099,18,548,18,788,340,53,18,15, + 622,933,618,618,1101,53,16,877,788,395, + 786,246,90,18,395,788,786,786,18 }; }; public final static char asb[] = Asb.asb; @@ -1775,118 +1844,119 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface Asr { public final static byte asr[] = {0, - 8,73,118,74,13,70,121,0,87,103, - 104,105,43,73,119,122,71,72,75,58, - 56,60,77,79,85,83,76,81,82,84, - 86,64,78,80,13,8,48,61,46,65, - 49,17,50,51,52,53,54,66,55,67, - 44,47,57,62,63,10,31,35,33,30, - 38,15,25,14,21,19,20,22,23,18, - 16,24,39,42,40,41,28,37,32,36, - 26,27,11,12,29,34,9,6,3,4, - 7,5,1,2,0,48,14,15,61,46, - 30,62,16,31,65,49,17,32,18,50, - 51,19,20,52,63,53,33,21,22,34, - 54,35,66,36,57,37,55,38,67,23, - 44,24,47,25,39,40,41,28,3,26, - 27,9,6,11,12,29,68,42,7,1, - 2,4,10,5,0,64,61,46,16,65, - 49,18,50,51,19,20,52,53,21,22, - 54,66,55,67,23,44,24,47,25,15, - 14,48,8,3,9,6,13,58,60,87, - 17,43,7,1,2,5,4,10,56,0, - 14,15,30,62,16,31,32,18,19,20, - 63,7,33,21,22,34,35,36,57,37, - 38,10,23,24,25,39,40,41,28,1, - 2,26,27,9,6,11,12,5,29,4, - 42,72,3,0,71,57,26,27,9,6, - 11,12,29,34,3,4,39,42,40,41, - 28,37,32,36,15,25,14,21,19,20, - 22,23,18,16,24,10,31,35,33,30, - 38,64,8,7,5,1,2,63,62,0, - 68,69,70,1,2,0,68,73,91,70, - 118,74,71,121,14,15,30,62,16,31, - 32,18,19,20,63,33,21,22,34,35, - 36,57,37,38,10,23,24,25,39,40, - 41,28,26,27,11,12,29,42,8,9, - 13,5,7,1,2,4,3,6,0,92, - 90,11,12,93,94,88,89,45,95,96, - 97,98,99,100,101,102,107,73,91,69, - 108,109,110,111,112,113,114,115,116,117, - 118,71,13,121,68,1,2,9,6,4, - 3,59,70,74,8,0,48,14,15,46, - 16,49,17,18,50,51,19,20,52,7, - 53,21,22,54,55,23,44,24,47,25, - 1,2,8,59,9,6,5,4,74,13, - 3,0,87,56,7,103,104,105,58,8, - 3,9,6,5,73,71,13,72,48,14, - 15,61,46,16,65,49,17,18,50,51, - 19,20,52,53,21,22,54,66,55,10, - 67,23,44,24,47,25,4,1,2,43, - 0,62,63,3,10,31,35,33,30,38, - 15,25,14,21,19,20,22,23,18,16, - 24,39,42,40,41,28,37,32,36,5, - 7,4,26,27,9,6,11,12,29,34, - 1,2,118,8,0,4,8,73,64,0, - 1,2,8,71,0,75,68,73,91,74, - 64,59,3,8,70,13,69,0,4,45, - 8,73,64,0,9,6,7,5,4,1, - 2,3,59,68,69,70,8,74,91,0, - 5,7,3,59,6,9,91,48,14,15, - 46,16,65,49,17,18,50,51,19,20, - 52,53,21,22,54,66,55,10,67,23, - 44,24,47,25,1,2,4,74,8,61, - 0,43,73,4,1,2,64,8,0,69, - 70,71,8,0,63,62,11,12,6,93, - 94,99,9,100,5,29,69,45,68,111, - 112,108,109,110,116,115,117,89,88,113, - 114,97,98,95,96,101,102,26,27,70, - 90,106,59,3,48,14,15,61,46,16, - 65,49,17,18,50,51,19,20,52,53, - 21,22,54,66,55,10,67,23,24,47, - 25,1,2,4,44,0,8,64,70,0, - 73,8,59,3,69,70,13,45,0,8, - 64,69,0,46,57,47,8,68,91,69, - 70,74,0,44,1,2,4,103,104,105, - 0,57,46,7,47,5,1,2,4,75, - 64,120,106,26,27,59,3,92,90,6, - 93,94,11,12,89,88,45,95,96,97, - 98,9,99,100,101,68,91,74,121,69, - 108,109,110,111,112,113,114,115,116,117, - 73,118,102,107,71,70,13,8,0,60, - 48,14,15,61,46,16,65,49,87,17, - 18,50,51,19,20,52,56,53,21,22, - 54,66,55,10,67,23,58,44,24,47, - 25,8,3,9,6,71,13,7,4,43, - 5,1,2,0,8,73,64,75,0,76, - 0,48,14,15,61,46,16,65,49,17, - 18,50,51,19,20,52,53,21,22,54, - 66,55,10,67,23,44,24,47,25,1, - 2,4,91,0,46,47,75,3,73,13, - 64,57,8,91,74,69,70,68,0,8, - 74,14,15,30,62,16,31,32,18,19, - 20,63,7,33,21,22,34,35,36,57, - 37,38,10,23,24,25,39,40,41,1, - 2,3,26,27,9,6,11,12,5,29, - 4,42,28,0,119,0,62,63,26,27, - 9,6,11,12,5,29,34,3,4,7, - 39,42,40,41,28,37,32,36,15,25, - 14,21,19,20,22,23,18,16,24,10, - 31,35,33,30,38,59,1,2,0,61, - 46,16,65,49,18,50,51,19,20,52, - 53,21,22,54,66,55,10,67,23,44, - 24,47,25,15,14,48,8,3,9,13, - 58,56,60,87,17,45,4,6,7,1, - 2,5,43,0,10,65,61,66,67,15, - 25,14,21,19,20,22,23,18,16,24, - 75,73,91,118,71,64,121,120,92,106, - 90,26,27,11,12,93,94,88,89,45, - 68,95,96,97,98,99,100,101,102,107, - 69,108,109,110,111,112,113,114,115,116, - 117,70,48,46,49,17,50,51,52,53, - 54,55,44,47,13,8,74,3,59,5, - 7,6,9,1,2,4,0,13,8,5, - 7,3,1,2,4,6,9,73,0 + 8,73,118,74,27,71,121,0,87,103, + 104,105,55,73,119,122,72,62,75,63, + 60,65,77,79,85,83,76,81,82,84, + 86,68,78,80,27,8,28,40,23,57, + 29,30,31,32,33,34,35,58,36,59, + 22,24,61,66,67,10,43,47,45,42, + 50,12,21,11,17,15,16,18,19,14, + 13,20,51,54,52,53,39,49,44,48, + 37,38,25,26,41,46,9,6,3,4, + 7,5,1,2,0,28,11,12,40,23, + 42,66,13,43,57,29,30,44,14,31, + 32,15,16,33,67,34,45,17,18,46, + 35,47,58,48,61,49,36,50,59,19, + 22,20,24,21,51,52,53,39,3,37, + 38,9,6,25,26,41,69,54,7,1, + 2,4,10,5,0,68,40,23,13,57, + 29,14,31,32,15,16,33,34,17,18, + 35,58,36,59,19,22,20,24,21,12, + 11,28,8,3,9,6,27,63,65,87, + 30,62,55,7,1,2,5,4,10,60, + 0,11,12,42,66,13,43,44,14,15, + 16,67,7,45,17,18,46,47,48,61, + 49,50,10,19,20,21,51,52,53,39, + 1,2,37,38,9,6,25,26,5,41, + 4,54,62,3,0,72,61,37,38,9, + 6,25,26,41,46,3,4,51,54,52, + 53,39,49,44,48,12,21,11,17,15, + 16,18,19,14,13,20,10,43,47,45, + 42,50,68,8,7,5,1,2,67,66, + 0,69,70,71,1,2,0,69,73,91, + 71,118,74,72,121,11,12,42,66,13, + 43,44,14,15,16,67,45,17,18,46, + 47,48,61,49,50,10,19,20,21,51, + 52,53,39,37,38,25,26,41,54,8, + 9,27,5,7,1,2,4,3,6,0, + 92,90,25,26,93,94,88,89,56,95, + 96,97,98,99,100,101,102,107,73,91, + 70,108,109,110,111,112,113,114,115,116, + 117,118,72,27,121,69,1,2,9,6, + 4,3,64,71,74,8,0,28,11,12, + 23,13,29,30,14,31,32,15,16,33, + 7,34,17,18,35,36,19,22,20,24, + 21,1,2,8,64,9,6,5,4,74, + 27,3,0,87,60,7,103,104,105,63, + 8,3,9,6,5,73,72,27,62,28, + 11,12,40,23,13,57,29,30,14,31, + 32,15,16,33,34,17,18,35,58,36, + 10,59,19,22,20,24,21,4,1,2, + 55,0,66,67,3,10,43,47,45,42, + 50,12,21,11,17,15,16,18,19,14, + 13,20,51,54,52,53,39,49,44,48, + 5,7,4,37,38,9,6,25,26,41, + 46,1,2,118,8,0,4,8,73,68, + 0,1,2,8,72,0,75,69,73,91, + 74,68,64,3,8,71,27,70,0,4, + 56,8,73,68,0,9,6,7,5,4, + 1,2,3,64,69,70,71,8,74,91, + 0,5,7,3,64,6,9,91,28,11, + 12,23,13,57,29,30,14,31,32,15, + 16,33,34,17,18,35,58,36,10,59, + 19,22,20,24,21,1,2,4,74,8, + 40,0,55,73,4,1,2,68,8,0, + 70,71,72,8,0,67,66,25,26,6, + 93,94,99,9,100,5,41,70,56,69, + 111,112,108,109,110,116,115,117,89,88, + 113,114,97,98,95,96,101,102,37,38, + 71,90,106,64,3,28,11,12,40,23, + 13,57,29,30,14,31,32,15,16,33, + 34,17,18,35,58,36,10,59,19,20, + 24,21,1,2,4,22,0,8,68,71, + 0,73,8,64,3,70,71,27,56,0, + 22,1,2,4,103,104,105,0,23,61, + 24,8,69,91,70,71,74,0,8,68, + 70,0,61,23,7,24,5,1,2,4, + 75,68,120,106,37,38,64,3,92,90, + 6,93,94,25,26,89,88,56,95,96, + 97,98,9,99,100,101,69,91,74,121, + 70,108,109,110,111,112,113,114,115,116, + 117,73,118,102,107,72,71,27,8,0, + 65,28,11,12,40,23,13,57,29,87, + 30,14,31,32,15,16,33,60,34,17, + 18,35,58,36,10,59,19,63,22,20, + 24,21,8,3,9,6,72,27,62,7, + 4,55,5,1,2,0,28,11,12,40, + 23,13,57,29,30,14,31,32,15,16, + 33,34,17,18,35,58,36,10,59,19, + 22,20,24,21,1,2,4,91,0,8, + 73,68,75,0,76,0,8,74,11,12, + 42,66,13,43,44,14,15,16,67,7, + 45,17,18,46,47,48,61,49,50,10, + 19,20,21,51,52,53,1,2,3,37, + 38,9,6,25,26,5,41,4,54,39, + 0,23,24,75,3,73,27,68,61,8, + 91,74,70,71,69,0,119,0,66,67, + 37,38,9,6,25,26,5,41,46,3, + 4,7,51,54,52,53,39,49,44,48, + 12,21,11,17,15,16,18,19,14,13, + 20,10,43,47,45,42,50,64,1,2, + 0,40,23,13,57,29,14,31,32,15, + 16,33,34,17,18,35,58,36,10,59, + 19,22,20,24,21,12,11,28,8,3, + 9,27,63,60,65,87,30,62,56,4, + 6,7,1,2,5,55,0,10,57,40, + 58,59,12,21,11,17,15,16,18,19, + 14,13,20,75,73,91,118,72,68,121, + 120,92,106,90,37,38,25,26,93,94, + 88,89,56,69,95,96,97,98,99,100, + 101,102,107,70,108,109,110,111,112,113, + 114,115,116,117,71,28,23,29,30,31, + 32,33,34,35,36,22,24,27,8,74, + 3,64,5,7,6,9,1,2,4,0, + 27,8,5,7,3,1,2,4,6,9, + 73,0 }; }; public final static byte asr[] = Asr.asr; @@ -1896,57 +1966,57 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public final static char nasb[] = {0, 54,12,62,12,12,12,12,12,12,66, 12,12,12,132,12,108,188,77,62,62, - 154,62,62,62,62,62,62,12,12,12, + 158,62,62,62,62,62,62,12,12,12, 12,12,12,12,12,12,12,12,62,12, 62,188,32,32,32,32,77,211,255,255, - 43,5,94,182,12,12,255,158,182,182, + 43,5,94,180,12,12,255,162,180,180, 215,1,62,38,25,12,12,188,12,12, 17,17,211,144,62,62,62,62,62,62, 62,62,62,62,62,62,62,62,62,62, 62,62,62,62,62,62,62,62,62,62, - 62,62,62,62,144,62,182,182,12,12, - 12,12,35,182,27,27,172,239,240,152, + 62,62,62,62,144,62,180,180,12,12, + 12,12,35,180,27,27,170,239,240,152, 240,112,240,50,240,233,10,77,94,94, - 27,12,62,172,89,214,87,87,12,12, - 12,10,77,94,32,40,108,161,182,107, - 77,107,182,94,12,12,12,12,12,12, + 27,12,62,170,89,214,87,87,12,12, + 12,10,77,94,32,40,108,154,180,107, + 77,107,180,94,12,12,12,12,12,12, 12,12,12,12,12,12,12,12,12,12, 12,12,12,12,12,12,12,114,11,12, 12,12,201,77,255,255,114,255,257,255, - 12,152,255,257,77,11,12,12,175,94, - 12,182,127,255,77,25,62,32,255,84, - 182,12,11,77,124,25,62,144,144,144, - 144,12,12,27,12,165,242,255,255,46, - 24,46,255,159,11,24,114,182,12,103, - 12,138,23,114,182,57,201,161,12,158, - 114,182,182,182,182,211,211,255,165,69, + 12,152,255,257,77,11,12,12,173,94, + 12,180,127,255,77,25,62,32,255,84, + 180,12,11,77,124,25,62,144,144,144, + 144,12,12,27,12,186,242,255,255,46, + 24,46,255,163,11,24,114,180,12,103, + 12,138,23,114,180,57,201,154,12,162, + 114,180,180,180,180,211,211,255,186,69, 77,206,12,121,12,12,71,249,242,46, - 46,184,114,159,69,12,12,114,255,62, - 12,12,87,87,77,102,172,138,182,114, - 255,100,12,144,201,125,12,12,182,182, - 165,25,255,152,12,12,66,255,167,105, - 12,12,66,98,257,69,62,159,165,62, - 62,255,11,25,182,127,195,255,12,57, + 46,182,114,163,69,12,12,114,255,62, + 12,12,87,87,77,102,170,138,180,114, + 255,100,12,144,201,125,12,12,180,180, + 186,25,255,152,12,12,66,255,165,105, + 12,12,66,98,257,69,62,163,186,62, + 62,255,11,25,180,127,195,255,12,57, 211,62,94,125,108,219,255,224,255,257, - 255,96,197,206,172,77,12,62,12,75, - 229,257,66,66,11,255,138,165,100,182, + 255,96,197,206,170,77,12,62,12,75, + 229,257,66,66,11,255,138,186,100,180, 94,206,69,12,224,250,12,51,71,224, 219,138,108,96,260,117,105,197,25,62, - 62,11,257,257,80,182,255,151,167,12, + 62,11,257,257,80,180,255,151,165,12, 12,66,69,12,12,73,73,206,260,68, 12,257,12,11,11,12,255,80,224,255, - 206,13,12,182,66,257,138,224,255,12, - 12,255,141,117,11,211,180,165,219,40, + 206,13,12,180,66,257,138,224,255,12, + 12,255,141,117,11,211,178,186,219,40, 60,105,206,257,122,138,32,32,82,147, 12,62,12,206,12,12,12,12,148,12, - 159,204,206,206,159,192,182,182,255,69, - 182,255,152,122,206,12,15,12,12,148, + 163,204,206,206,163,192,180,180,255,69, + 180,255,152,122,206,12,15,12,12,148, 12,148,267,267,136,12,267,206,206,12, - 255,32,80,69,255,206,12,32,148,182, - 105,182,263,255,12,182,82,60,73,182, - 182,255,148,12,148,206,105,144,148,15, - 69,12,192,192,103,62,12,208,206,182, - 48,59,107,148,182,206,48,12,148 + 255,32,80,69,255,206,12,32,148,180, + 105,180,263,255,12,180,82,60,73,180, + 180,255,148,12,148,206,105,144,148,15, + 69,12,192,192,103,62,12,208,206,180, + 48,59,107,148,180,206,48,12,148 }; }; public final static char nasb[] = Nasb.nasb; @@ -1966,16 +2036,16 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP 9,10,5,82,0,155,0,186,0,138, 0,32,94,93,63,4,5,10,9,2, 0,5,44,2,3,0,167,5,166,0, - 40,103,0,2,112,0,22,4,5,89, + 40,103,0,2,113,0,22,4,5,89, 0,4,45,189,0,39,176,22,4,0, 48,40,174,4,39,0,66,39,48,67, - 4,40,0,5,10,9,13,3,1,0, - 64,135,134,0,61,0,2,63,9,10, - 4,5,89,0,94,93,5,57,0,45, - 4,32,0,5,101,185,0,4,45,39, + 4,40,0,64,135,134,0,5,10,9, + 13,3,1,0,2,63,9,10,4,5, + 89,0,94,93,5,57,0,45,4,32, + 0,5,101,185,0,61,0,4,45,39, 0,40,55,0,94,93,10,9,2,63, 5,57,0,4,39,38,0,4,173,0, - 4,96,0,32,93,94,4,0,113,4, + 4,96,0,32,93,94,4,0,114,4, 48,81,0,4,48,81,83,0,5,101, 163,0,2,5,119,115,116,117,13,86, 0,4,48,81,101,46,5,0,38,5, @@ -1989,13 +2059,13 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface TerminalIndex { public final static char terminalIndex[] = {0, 113,114,2,31,13,10,79,115,9,100, - 11,12,120,48,52,60,66,68,74,75, - 86,87,102,105,107,7,8,112,14,55, - 61,67,84,88,90,94,97,99,109,110, - 111,123,93,104,19,54,106,47,64,70, - 73,76,83,89,98,77,95,103,1,46, - 53,58,78,121,63,91,101,20,33,44, - 119,122,30,118,96,108,49,50,56,57, + 48,52,60,68,74,75,86,87,102,105, + 107,104,54,106,11,12,120,47,64,66, + 70,73,76,83,89,98,7,8,112,53, + 14,55,61,67,84,88,90,94,97,99, + 109,110,111,123,93,19,63,91,101,77, + 95,122,103,1,46,58,78,121,20,33, + 44,119,30,118,96,108,49,50,56,57, 59,69,71,72,85,92,65,17,18,6, 32,4,15,16,21,22,23,24,25,26, 27,28,80,81,82,5,29,34,35,36, @@ -2008,26 +2078,26 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, - 132,137,138,0,0,136,0,0,229,235, - 135,0,145,134,0,0,144,150,0,0, - 151,181,160,161,162,163,164,165,153,166, - 167,127,168,143,169,170,0,129,133,130, - 171,0,140,139,154,179,0,0,0,0, - 0,0,0,147,174,0,157,0,204,0, - 188,201,205,0,0,128,173,0,0,0, - 0,0,0,206,177,0,0,0,0,0, - 0,126,131,0,0,187,0,0,202,212, - 159,208,209,210,0,0,148,0,0,207, - 220,176,197,0,0,211,0,0,0,240, - 241,149,180,0,190,191,192,193,194,196, + 131,136,137,0,0,135,0,0,229,235, + 134,0,144,133,0,0,143,149,0,0, + 150,181,159,160,161,162,163,164,152,165, + 166,127,167,142,168,169,0,129,132,130, + 170,0,139,138,153,178,0,0,0,0, + 0,0,0,146,173,0,156,0,204,0, + 188,201,205,0,0,128,172,0,0,0, + 0,0,0,206,176,0,0,0,0,0, + 0,126,179,0,0,187,0,0,202,212, + 158,208,209,210,0,0,147,0,0,207, + 220,175,197,0,0,211,0,0,0,240, + 241,0,148,180,190,191,192,193,194,196, 199,0,0,214,217,0,219,0,238,0, - 239,0,0,141,142,146,0,0,156,158, - 0,172,0,182,183,184,185,186,189,0, + 239,0,0,140,141,145,0,0,155,157, + 0,171,0,182,183,184,185,186,189,0, 195,0,198,203,0,215,216,0,0,221, 224,226,228,0,232,233,234,237,125,0, - 152,155,0,175,0,178,0,200,213,218, + 151,154,0,174,0,177,0,200,213,218, 0,222,223,225,227,0,230,231,236,242, - 243,0,0,0,0,0,0 + 243,0,0,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -2092,18 +2162,18 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface ScopeLa { public final static byte scopeLa[] = { - 119,74,74,74,74,74,74,74,71,13, - 71,71,68,1,74,122,64,3,74,68, - 68,68,1,1,13,71,64,71,71,1, - 1,71,1,1,4,68,70,13,1,1, - 68,74,74,74,119,74,1,13,1,1, - 1,13,13,71,118,74,74,74,74,74, + 119,74,74,74,74,74,74,74,72,27, + 72,72,69,1,74,122,68,3,74,69, + 69,69,1,1,27,72,68,72,72,1, + 1,72,1,1,4,69,71,27,1,1, + 69,74,74,74,119,74,1,27,1,1, + 1,27,27,72,118,74,74,74,74,74, 118,1,74,1,74,74,74,73,4,74, - 68,68,68,68,74,3,1,1,74,74, - 3,1,118,74,1,1,1,13,74,118, - 74,5,74,1,43,69,73,74,1,1, - 6,1,43,76,75,13,13,4,4,4, - 4,3,1,64,1,1,3 + 69,69,69,69,74,3,1,1,74,74, + 3,1,118,74,1,1,1,27,74,118, + 74,5,74,1,55,70,73,74,1,1, + 6,1,55,76,75,27,27,4,4,4, + 4,3,1,68,1,1,3 }; }; public final static byte scopeLa[] = ScopeLa.scopeLa; @@ -2130,19 +2200,19 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface ScopeRhs { public final static char scopeRhs[] = {0, - 314,3,57,0,127,0,313,3,119,0, - 127,174,0,127,178,75,0,216,0,251, - 127,45,125,0,20,0,291,127,45,43, - 0,20,53,0,33,134,0,20,53,0, - 0,291,127,45,43,204,0,20,131,0, - 251,127,45,133,0,179,128,0,143,0, + 314,3,61,0,127,0,313,3,119,0, + 127,173,0,127,178,75,0,216,0,251, + 127,56,125,0,20,0,291,127,56,55, + 0,20,53,0,33,133,0,20,53,0, + 0,291,127,56,55,204,0,20,179,0, + 251,127,56,133,0,179,128,0,142,0, 219,3,290,0,290,0,2,0,127,0, - 251,127,45,132,0,179,128,224,0,179, - 128,44,224,0,179,128,309,44,0,129, + 251,127,56,132,0,179,128,224,0,179, + 128,22,224,0,179,128,309,22,0,129, 187,167,128,0,129,0,187,167,128,0, - 136,129,0,171,0,305,127,171,0,127, - 171,0,222,129,0,167,242,0,138,0, - 0,0,137,0,0,0,304,127,163,250, + 135,129,0,171,0,305,127,171,0,127, + 171,0,222,129,0,167,242,0,137,0, + 0,0,136,0,0,0,304,127,163,250, 0,128,0,250,0,130,0,0,128,0, 303,127,163,249,0,128,0,0,44,128, 0,0,152,3,0,127,279,278,127,75, @@ -2152,47 +2222,47 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP 0,278,127,277,171,0,215,0,203,0, 0,215,0,227,127,3,0,127,0,0, 0,0,0,227,127,3,216,0,223,3, - 0,212,127,0,208,0,148,0,167,128, - 0,10,0,0,0,214,59,0,126,0, + 0,212,127,0,208,0,147,0,167,128, + 0,10,0,0,0,214,64,0,126,0, 227,127,3,182,0,182,0,2,0,0, 127,0,0,0,0,0,198,3,0,201, - 0,237,127,163,28,17,0,179,128,56, - 58,0,197,129,0,129,179,128,275,58, - 0,179,128,275,58,0,179,128,69,124, - 56,0,237,127,163,56,0,237,127,163, - 226,56,0,273,127,163,124,65,0,273, - 127,163,65,0,179,128,65,0,137,0, - 187,179,128,242,0,138,0,179,128,242, + 0,235,127,163,39,30,0,179,128,60, + 63,0,197,129,0,129,179,128,275,63, + 0,179,128,275,63,0,179,128,70,124, + 60,0,235,127,163,60,0,235,127,163, + 226,60,0,273,127,163,124,57,0,273, + 127,163,57,0,179,128,57,0,136,0, + 187,179,128,242,0,137,0,179,128,242, 0,187,167,128,10,0,167,128,10,0, - 93,138,0,266,127,145,0,266,127,171, + 93,137,0,266,127,145,0,266,127,171, 0,162,85,0,296,161,298,299,3,82, - 0,127,173,0,298,299,3,82,0,129, - 0,127,173,0,162,3,76,190,81,0, - 127,129,0,190,81,0,108,2,133,127, + 0,127,172,0,298,299,3,82,0,129, + 0,127,172,0,162,3,76,190,81,0, + 127,129,0,190,81,0,108,2,132,127, 129,0,225,3,76,0,198,168,0,33, - 171,0,168,0,177,33,171,0,225,3, - 86,0,190,155,225,3,84,0,62,173, - 0,225,3,84,0,127,173,62,173,0, + 170,0,168,0,176,33,170,0,225,3, + 86,0,190,155,225,3,84,0,62,172, + 0,225,3,84,0,127,172,62,172,0, 297,127,163,0,162,0,214,78,0,30, - 173,0,162,107,159,0,30,171,0,177, - 3,0,127,151,0,219,3,0,214,59, - 263,0,162,59,0,177,3,293,63,128, - 0,127,0,0,0,0,293,63,128,0, - 2,147,127,0,0,0,0,177,3,34, - 0,149,0,126,43,167,128,0,31,149, - 0,93,138,31,149,0,220,179,128,0, - 148,31,149,0,177,3,38,0,162,3, - 38,0,162,3,68,177,45,30,0,177, - 45,30,0,20,2,133,127,0,162,3, - 68,177,45,33,0,177,45,33,0,162, - 3,68,177,45,35,0,177,45,35,0, - 162,3,68,177,45,31,0,177,45,31, + 172,0,162,107,159,0,30,170,0,177, + 3,0,127,150,0,219,3,0,214,64, + 263,0,162,64,0,177,3,293,67,128, + 0,127,0,0,0,0,293,67,128,0, + 2,146,127,0,0,0,0,177,3,46, + 0,148,0,126,55,167,128,0,31,148, + 0,93,137,31,148,0,220,179,128,0, + 147,31,148,0,177,3,50,0,162,3, + 50,0,162,3,69,177,56,42,0,177, + 56,42,0,20,2,132,127,0,162,3, + 69,177,56,45,0,177,56,45,0,162, + 3,69,177,56,47,0,177,56,47,0, + 162,3,69,177,56,43,0,177,56,43, 0,219,3,126,187,167,128,10,0,126, - 187,167,128,10,0,138,2,0,127,0, + 187,167,128,10,0,137,2,0,127,0, 219,3,125,256,167,128,10,0,256,167, - 128,10,0,137,2,0,127,0,219,3, - 136,0,219,3,140,0,162,59,140,0, - 258,0,31,0,31,141,0,166,0,136, + 128,10,0,136,2,0,127,0,219,3, + 136,0,219,3,140,0,162,64,140,0, + 258,0,31,0,31,140,0,166,0,135, 0,162,3,0 }; }; @@ -2201,38 +2271,38 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface ScopeState { public final static char scopeState[] = {0, - 4711,4812,4792,4772,0,1422,1447,567,1404,0, - 3413,3376,3339,3302,3265,3228,3174,3118,3081,2758, - 2682,2677,0,539,0,2982,2765,1349,0,3086, - 2522,0,3413,3376,3436,3400,3339,3302,3265,3228, - 3174,3118,3399,3081,2758,2682,4677,4621,0,3598, - 4136,3233,0,2748,2387,0,4126,3075,0,4506, - 4415,0,1852,973,0,4493,4506,4476,3537,4415, - 2832,3550,4331,3674,2650,2909,4317,3049,2443,2421, - 0,4524,4366,0,4524,4366,3741,4231,4221,3731, - 4139,4129,4119,3721,0,4524,4366,3741,4231,4221, - 3731,4139,4129,4119,3721,3413,3376,3339,3302,3265, - 3228,3174,3118,3081,2758,2682,0,3192,2981,0, - 2650,4493,4433,4476,3537,2679,3049,4137,3197,1194, - 2670,3068,985,1340,1067,0,663,578,0,780, - 0,2083,2045,1649,1563,3537,3068,2832,2443,2421, - 3664,2777,0,4344,535,2847,0,4701,4686,4666, - 4662,4651,4637,4614,4590,4586,4579,4785,4781,4765, - 4759,4575,4540,4736,4352,3215,735,2486,2936,1262, - 0,4701,3288,4686,3064,2862,4666,4662,4651,2788, - 2439,4637,4614,4590,2497,4586,3418,4579,3344,3307, - 4785,2975,2873,2743,2507,2666,4781,624,4765,2435, - 4759,4575,4540,2298,4736,1956,4352,3215,735,4344, - 2486,731,2847,2936,1262,2253,2166,2079,1208,800, - 2832,3550,4331,3674,2650,4493,2909,4506,4476,3537, - 4317,3049,2443,4415,2421,2456,929,663,578,4098, - 4076,4054,1127,2264,2334,2302,2393,2365,592,3023, - 2997,2623,2596,2566,2539,3699,3633,3563,3512,3487, - 4032,4010,3988,3966,3944,3922,3900,3878,3856,2940, - 628,1960,2215,2177,2128,2090,2041,1267,1219,2003, - 1165,873,1911,1873,818,740,685,1830,1787,1744, - 1701,1658,1615,1572,1529,1486,1443,1400,535,1357, - 1311,1081,994,951,1038,0 + 4707,4808,4788,4768,0,1418,1443,563,1400,0, + 3409,3372,3335,3298,3261,3224,3170,3114,3077,2754, + 2678,2673,0,535,0,3137,2566,1345,0,3082, + 2518,0,3409,3372,3340,3266,3335,3298,3261,3224, + 3170,3114,3175,3077,2754,2678,4673,4617,0,3594, + 4132,3229,0,3062,2383,0,4123,3071,0,4502, + 4411,0,1848,969,0,4489,4502,4472,3533,4411, + 2828,3546,4327,3670,2646,2905,4313,3045,2439,2417, + 0,4520,4362,0,4520,4362,3737,4227,4217,3727, + 4135,4125,4115,3717,0,4520,4362,3737,4227,4217, + 3727,4135,4125,4115,3717,3409,3372,3335,3298,3261, + 3224,3170,3114,3077,2754,2678,0,3188,2790,0, + 2646,4489,4429,4472,3533,2675,3045,4133,3193,1190, + 2666,3064,981,1336,1063,0,659,574,0,776, + 0,2079,2041,1645,1559,3533,3064,2828,2439,2417, + 3660,2773,0,4340,531,2843,0,4697,4682,4662, + 4658,4647,4633,4610,4586,4582,4575,4781,4777,4761, + 4755,4571,4536,4732,4348,3211,731,2482,2932,1258, + 0,4697,3284,4682,3058,2859,4662,4658,4647,2784, + 2435,4633,4610,4586,2493,4582,3093,4575,2971,2898, + 4781,2869,2814,2739,2503,2662,4777,620,4761,2431, + 4755,4571,4536,2294,4732,1952,4348,3211,731,4340, + 2482,727,2843,2932,1258,2249,2162,2075,1204,796, + 2828,3546,4327,3670,2646,4489,2905,4502,4472,3533, + 4313,3045,2439,4411,2417,2452,925,659,574,4094, + 4072,4050,1123,2260,2330,2298,2389,2361,588,3019, + 2993,2619,2592,2562,2535,3695,3629,3559,3508,3483, + 4028,4006,3984,3962,3940,3918,3896,3874,3852,2936, + 624,1956,2211,2173,2124,2086,2037,1263,1215,1999, + 1161,869,1907,1869,814,736,681,1826,1783,1740, + 1697,1654,1611,1568,1525,1482,1439,1396,531,1353, + 1307,1077,990,947,1034,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2240,59 +2310,59 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface InSymb { public final static char inSymb[] = {0, - 0,292,127,265,38,30,33,35,31,10, - 136,125,132,7,133,4,3,128,34,29, - 5,12,11,6,9,27,26,140,146,148, - 147,150,149,153,151,156,154,158,57,159, - 70,3,45,45,45,45,128,3,45,45, - 168,127,59,3,62,63,45,5,177,162, - 168,127,62,63,167,166,125,3,124,126, - 106,120,3,59,90,92,12,11,94,93, - 6,96,95,68,45,88,89,9,98,97, + 0,292,127,265,50,42,45,47,43,10, + 136,125,132,7,133,4,3,128,46,41, + 5,26,25,6,9,38,37,140,146,148, + 147,150,149,153,151,156,154,158,61,159, + 71,3,56,56,56,56,128,3,56,56, + 168,127,64,3,66,67,56,5,177,162, + 168,127,66,67,167,166,125,3,124,126, + 106,120,3,64,90,92,26,25,94,93, + 6,96,95,69,56,88,89,9,98,97, 100,99,101,117,116,115,114,113,112,111, - 110,109,108,69,107,102,177,162,177,177, + 110,109,108,70,107,102,177,162,177,177, 177,177,167,219,127,127,127,267,268,250, - 269,242,270,65,271,272,10,128,59,59, - 127,125,155,127,59,3,217,216,136,126, - 125,10,128,59,293,3,187,4,177,43, - 128,43,219,162,147,147,146,146,146,149, + 269,242,270,57,271,272,10,128,64,64, + 127,125,155,127,64,3,217,216,136,126, + 125,10,128,64,293,3,187,4,177,55, + 128,55,219,162,147,147,146,146,146,149, 149,149,149,148,148,151,150,150,154,153, - 156,162,158,68,68,68,68,187,256,251, + 156,162,158,69,69,69,69,187,256,251, 254,251,212,128,6,163,167,230,128,126, 125,124,163,128,128,179,167,251,212,214, 159,223,127,3,128,167,205,3,294,168, 152,258,187,128,179,167,73,3,3,3, - 3,126,125,70,167,127,127,126,125,127, - 179,127,163,127,179,167,43,227,228,145, - 229,127,167,43,177,127,127,4,220,5, - 43,162,162,162,162,3,3,6,184,304, - 128,169,224,56,43,204,58,171,306,127, - 127,73,187,127,273,124,274,187,155,69, - 223,198,186,182,128,3,127,70,227,187, - 155,260,263,59,180,4,124,126,219,219, - 127,167,163,226,45,43,275,277,127,3, - 182,308,224,44,128,273,69,70,127,69, - 69,3,179,167,198,127,212,155,126,127, - 3,59,162,4,187,127,163,68,45,128, + 3,126,125,71,167,127,127,126,125,127, + 179,127,163,127,179,167,55,227,228,145, + 229,127,167,55,177,127,127,4,220,5, + 55,162,162,162,162,3,3,6,184,304, + 128,169,224,60,55,204,63,171,306,127, + 127,73,187,127,273,124,274,187,155,70, + 223,198,186,182,128,3,127,71,227,187, + 155,260,263,64,180,4,124,126,219,219, + 127,167,163,226,56,55,275,277,127,3, + 182,308,224,22,128,273,70,71,127,70, + 70,3,179,167,198,127,212,155,126,127, + 3,64,162,4,187,127,163,69,56,128, 75,127,212,305,127,128,125,73,285,198, - 70,128,44,309,179,221,127,127,260,219, - 214,129,237,17,43,171,60,56,58,236, - 127,127,179,127,278,73,70,212,167,73, - 69,179,128,128,127,227,221,28,127,3, - 124,56,237,291,43,10,61,129,278,163, - 289,128,290,179,179,57,155,127,127,163, - 266,198,276,28,69,128,70,68,45,230, - 230,279,127,70,179,3,3,127,127,3, - 69,70,155,128,179,127,69,69,127,297, + 71,128,22,309,179,221,127,127,260,219, + 214,129,235,30,55,171,65,60,63,237, + 127,127,179,127,278,73,71,212,167,73, + 70,179,128,128,127,227,221,39,127,3, + 124,60,235,291,55,10,40,129,278,163, + 289,128,290,179,179,61,155,127,127,163, + 266,198,276,39,70,128,71,69,56,230, + 230,279,127,71,179,3,3,127,127,3, + 70,71,155,128,179,127,70,70,127,297, 80,78,1,162,8,86,84,82,81,76, - 83,85,79,77,56,75,219,314,221,237, + 83,85,79,77,60,75,219,314,221,235, 152,163,249,179,226,291,280,119,8,73, 214,73,3,3,3,190,3,124,162,124, - 178,70,127,127,163,226,68,3,73,225, - 168,225,299,145,76,225,127,127,61,91, + 178,71,127,127,163,226,69,3,73,225, + 168,225,299,145,76,225,127,127,40,91, 313,168,155,198,155,298,127,3,155,280, - 303,230,155,155,127,69,190,161,266,162, - 189,70,69,122,296,155,189,8,155 + 303,230,155,155,127,70,190,161,266,162, + 189,71,70,122,296,155,189,8,155 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2431,7 +2501,6 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP "}", ";", "{", - "declaration", "identifier_token", "expression", "id_expression", @@ -2482,6 +2551,7 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP "declarator", "for_init_statement", "function_definition", + "declaration", "declaration_seq", "declaration_specifiers", "simple_declaration_specifiers", @@ -2556,7 +2626,7 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public final String name(int index) { return name[index]; } public final static int - ERROR_SYMBOL = 72, + ERROR_SYMBOL = 62, SCOPE_UBOUND = 116, SCOPE_SIZE = 117, MAX_NAME_LENGTH = 37; @@ -2569,18 +2639,18 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public final static int NUM_STATES = 529, NT_OFFSET = 123, - LA_STATE_OFFSET = 5818, + LA_STATE_OFFSET = 5810, MAX_LA = 2147483647, - NUM_RULES = 534, - NUM_NONTERMINALS = 197, - NUM_SYMBOLS = 320, + NUM_RULES = 530, + NUM_NONTERMINALS = 195, + NUM_SYMBOLS = 318, SEGMENT_SIZE = 8192, - START_STATE = 916, + START_STATE = 912, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 121, EOLT_SYMBOL = 121, - ACCEPT_ACTION = 4916, - ERROR_ACTION = 5284; + ACCEPT_ACTION = 4912, + ERROR_ACTION = 5280; public final static boolean BACKTRACK = true; diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParsersym.java index 422da88b428..edd61e663d4 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParsersym.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParsersym.java @@ -15,97 +15,97 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp; public interface CPPExpressionParsersym { public final static int - TK_asm = 60, - TK_auto = 48, - TK_bool = 14, + TK_asm = 65, + TK_auto = 28, + TK_bool = 11, TK_break = 77, TK_case = 78, TK_catch = 119, - TK_char = 15, - TK_class = 61, - TK_const = 46, - TK_const_cast = 30, + TK_char = 12, + TK_class = 40, + TK_const = 23, + TK_const_cast = 42, TK_continue = 79, TK_default = 80, - TK_delete = 62, + TK_delete = 66, TK_do = 81, - TK_double = 16, - TK_dynamic_cast = 31, + TK_double = 13, + TK_dynamic_cast = 43, TK_else = 122, - TK_enum = 65, - TK_explicit = 49, + TK_enum = 57, + TK_explicit = 29, TK_export = 87, - TK_extern = 17, - TK_false = 32, - TK_float = 18, + TK_extern = 30, + TK_false = 44, + TK_float = 14, TK_for = 82, - TK_friend = 50, + TK_friend = 31, TK_goto = 83, TK_if = 84, - TK_inline = 51, - TK_int = 19, - TK_long = 20, - TK_mutable = 52, - TK_namespace = 56, - TK_new = 63, + TK_inline = 32, + TK_int = 15, + TK_long = 16, + TK_mutable = 33, + TK_namespace = 60, + TK_new = 67, TK_operator = 7, TK_private = 103, TK_protected = 104, TK_public = 105, - TK_register = 53, - TK_reinterpret_cast = 33, + TK_register = 34, + TK_reinterpret_cast = 45, TK_return = 85, - TK_short = 21, - TK_signed = 22, - TK_sizeof = 34, - TK_static = 54, - TK_static_cast = 35, - TK_struct = 66, + TK_short = 17, + TK_signed = 18, + TK_sizeof = 46, + TK_static = 35, + TK_static_cast = 47, + TK_struct = 58, TK_switch = 86, - TK_template = 43, - TK_this = 36, - TK_throw = 57, + TK_template = 55, + TK_this = 48, + TK_throw = 61, TK_try = 75, - TK_true = 37, - TK_typedef = 55, - TK_typeid = 38, + TK_true = 49, + TK_typedef = 36, + TK_typeid = 50, TK_typename = 10, - TK_union = 67, - TK_unsigned = 23, - TK_using = 58, - TK_virtual = 44, - TK_void = 24, - TK_volatile = 47, - TK_wchar_t = 25, + TK_union = 59, + TK_unsigned = 19, + TK_using = 63, + TK_virtual = 22, + TK_void = 20, + TK_volatile = 24, + TK_wchar_t = 21, TK_while = 76, - TK_integer = 39, - TK_floating = 40, - TK_charconst = 41, - TK_stringlit = 28, + TK_integer = 51, + TK_floating = 52, + TK_charconst = 53, + TK_stringlit = 39, TK_identifier = 1, TK_Completion = 2, TK_EndOfCompletion = 8, TK_Invalid = 123, - TK_LeftBracket = 59, + TK_LeftBracket = 64, TK_LeftParen = 3, TK_Dot = 120, TK_DotStar = 92, TK_Arrow = 106, TK_ArrowStar = 90, - TK_PlusPlus = 26, - TK_MinusMinus = 27, + TK_PlusPlus = 37, + TK_MinusMinus = 38, TK_And = 9, TK_Star = 6, - TK_Plus = 11, - TK_Minus = 12, + TK_Plus = 25, + TK_Minus = 26, TK_Tilde = 5, - TK_Bang = 29, + TK_Bang = 41, TK_Slash = 93, TK_Percent = 94, TK_RightShift = 88, TK_LeftShift = 89, - TK_LT = 45, - TK_GT = 68, + TK_LT = 56, + TK_GT = 69, TK_LE = 95, TK_GE = 96, TK_EQ = 97, @@ -118,7 +118,7 @@ public interface CPPExpressionParsersym { TK_Colon = 73, TK_ColonColon = 4, TK_DotDotDot = 91, - TK_Assign = 69, + TK_Assign = 70, TK_StarAssign = 108, TK_SlashAssign = 109, TK_PercentAssign = 110, @@ -129,14 +129,14 @@ public interface CPPExpressionParsersym { TK_AndAssign = 115, TK_CaretAssign = 116, TK_OrAssign = 117, - TK_Comma = 70, + TK_Comma = 71, TK_RightBracket = 118, TK_RightParen = 74, - TK_RightBrace = 71, - TK_SemiColon = 13, - TK_LeftBrace = 64, - TK_ERROR_TOKEN = 72, - TK_0 = 42, + TK_RightBrace = 72, + TK_SemiColon = 27, + TK_LeftBrace = 68, + TK_ERROR_TOKEN = 62, + TK_0 = 54, TK_EOF_TOKEN = 121; public final static String orderedTerminalSymbols[] = { @@ -151,13 +151,9 @@ public interface CPPExpressionParsersym { "EndOfCompletion", "And", "typename", - "Plus", - "Minus", - "SemiColon", "bool", "char", "double", - "extern", "float", "int", "long", @@ -166,9 +162,25 @@ public interface CPPExpressionParsersym { "unsigned", "void", "wchar_t", + "virtual", + "const", + "volatile", + "Plus", + "Minus", + "SemiColon", + "auto", + "explicit", + "extern", + "friend", + "inline", + "mutable", + "register", + "static", + "typedef", "PlusPlus", "MinusMinus", "stringlit", + "class", "Bang", "const_cast", "dynamic_cast", @@ -184,35 +196,23 @@ public interface CPPExpressionParsersym { "charconst", "0", "template", - "virtual", "LT", - "const", - "volatile", - "auto", - "explicit", - "friend", - "inline", - "mutable", - "register", - "static", - "typedef", - "namespace", - "throw", - "using", - "LeftBracket", - "asm", - "class", - "delete", - "new", - "LeftBrace", "enum", "struct", "union", + "namespace", + "throw", + "ERROR_TOKEN", + "using", + "LeftBracket", + "asm", + "delete", + "new", + "LeftBrace", "GT", "Assign", "Comma", "RightBrace", - "ERROR_TOKEN", "Colon", "RightParen", "try", 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 db249aee5dd..2dd98aed813 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 @@ -269,2004 +269,1997 @@ public CPPNoCastExpressionParser(String[] mapFrom) { // constructor } // - // Rule 13: translation_unit ::= external_declaration_list + // Rule 13: translation_unit ::= declaration_seq_opt // case 13: { action.builder. consumeTranslationUnit(); break; } // - // Rule 14: translation_unit ::= $Empty + // Rule 16: literal ::= integer // - case 14: { action.builder. - consumeTranslationUnit(); break; + case 16: { action.builder. + consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; } // - // Rule 18: external_declaration ::= ERROR_TOKEN + // Rule 17: literal ::= 0 + // + case 17: { action.builder. + consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; + } + + // + // Rule 18: literal ::= floating // case 18: { action.builder. - consumeDeclarationProblem(); break; - } - - // - // Rule 21: literal ::= integer - // - case 21: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; - } - - // - // Rule 22: literal ::= 0 - // - case 22: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; - } - - // - // Rule 23: literal ::= floating - // - case 23: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_float_constant); break; } // - // Rule 24: literal ::= charconst + // Rule 19: literal ::= charconst // - case 24: { action.builder. + case 19: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_char_constant); break; } // - // Rule 25: literal ::= stringlit + // Rule 20: literal ::= stringlit // - case 25: { action.builder. + case 20: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_string_literal); break; } // - // Rule 26: literal ::= true + // Rule 21: literal ::= true // - case 26: { action.builder. + case 21: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_true); break; } // - // Rule 27: literal ::= false + // Rule 22: literal ::= false // - case 27: { action.builder. + case 22: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_false); break; } // - // Rule 28: literal ::= this + // Rule 23: literal ::= this // - case 28: { action.builder. + case 23: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_this); break; } // - // Rule 30: primary_expression ::= ( expression ) + // Rule 25: primary_expression ::= ( expression ) // - case 30: { action.builder. + case 25: { action.builder. consumeExpressionBracketed(); break; } // - // Rule 32: id_expression ::= qualified_or_unqualified_name + // Rule 27: id_expression ::= qualified_or_unqualified_name // - case 32: { action.builder. + case 27: { action.builder. consumeExpressionName(); break; } // - // Rule 39: unqualified_id_name ::= ~ identifier_token + // Rule 34: unqualified_id_name ::= ~ identifier_token // - case 39: { action.builder. + case 34: { action.builder. consumeDestructorName(); break; } // - // Rule 40: unqualified_id_name ::= ~ template_id_name + // Rule 35: unqualified_id_name ::= ~ template_id_name // - case 40: { action.builder. + case 35: { action.builder. consumeDestructorNameTemplateId(); break; } // - // Rule 41: identifier_name ::= identifier_token + // Rule 36: identifier_name ::= identifier_token // - case 41: { action.builder. + case 36: { action.builder. consumeIdentifierName(); break; } // - // Rule 42: template_opt ::= template + // Rule 37: template_opt ::= template // - case 42: { action.builder. + case 37: { action.builder. consumePlaceHolder(); break; } // - // Rule 43: template_opt ::= $Empty + // Rule 38: template_opt ::= $Empty // - case 43: { action.builder. + case 38: { action.builder. consumeEmpty(); break; } // - // Rule 44: dcolon_opt ::= :: + // Rule 39: dcolon_opt ::= :: // - case 44: { action.builder. + case 39: { action.builder. consumeToken(); break; } // - // Rule 45: dcolon_opt ::= $Empty + // Rule 40: dcolon_opt ::= $Empty // - case 45: { action.builder. + case 40: { action.builder. consumeEmpty(); break; } // - // Rule 46: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name + // Rule 41: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name // - case 46: { action.builder. + case 41: { action.builder. consumeQualifiedId(true); break; } // - // Rule 47: qualified_id_name ::= :: unqualified_id_name + // Rule 42: qualified_id_name ::= :: unqualified_id_name // - case 47: { action.builder. + case 42: { action.builder. consumeGlobalQualifiedId(); break; } // - // Rule 48: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template + // Rule 43: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template // - case 48: { action.builder. + case 43: { action.builder. consumeNestedNameSpecifier(true); break; } // - // Rule 49: nested_name_specifier ::= class_or_namespace_name :: + // Rule 44: nested_name_specifier ::= class_or_namespace_name :: // - case 49: { action.builder. + case 44: { action.builder. consumeNestedNameSpecifier(false); break; } // - // Rule 50: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template + // Rule 45: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template // - case 50: { action.builder. + case 45: { action.builder. consumeNestedNameSpecifier(true); break; } // - // Rule 51: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: + // Rule 46: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: // - case 51: { action.builder. + case 46: { action.builder. consumeNestedNameSpecifier(false); break; } // - // Rule 52: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name + // Rule 47: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name // - case 52: { action.builder. + case 47: { action.builder. consumeNameWithTemplateKeyword(); break; } // - // Rule 54: nested_name_specifier_opt ::= $Empty + // Rule 49: nested_name_specifier_opt ::= $Empty // - case 54: { action.builder. + case 49: { action.builder. consumeNestedNameSpecifierEmpty(); break; } // - // Rule 57: postfix_expression ::= postfix_expression [ expression ] + // Rule 52: postfix_expression ::= postfix_expression [ expression ] // - case 57: { action.builder. + case 52: { action.builder. consumeExpressionArraySubscript(); break; } // - // Rule 58: postfix_expression ::= postfix_expression ( expression_list_opt ) + // Rule 53: postfix_expression ::= postfix_expression ( expression_list_opt ) // - case 58: { action.builder. + case 53: { action.builder. consumeExpressionFunctionCall(); break; } // - // Rule 59: postfix_expression ::= simple_type_specifier ( expression_list_opt ) + // Rule 54: postfix_expression ::= simple_type_specifier ( expression_list_opt ) // - case 59: { action.builder. + case 54: { action.builder. consumeExpressionSimpleTypeConstructor(); break; } // - // Rule 60: postfix_expression ::= typename dcolon_opt nested_name_specifier identifier_name ( expression_list_opt ) + // Rule 55: postfix_expression ::= typename dcolon_opt nested_name_specifier identifier_name ( expression_list_opt ) // - case 60: { action.builder. + case 55: { action.builder. consumeExpressionTypeName(); break; } // - // Rule 61: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) + // Rule 56: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) // - case 61: { action.builder. + case 56: { action.builder. consumeExpressionTypeName(); break; } // - // Rule 62: postfix_expression ::= postfix_expression . qualified_or_unqualified_name + // Rule 57: postfix_expression ::= postfix_expression . qualified_or_unqualified_name // - case 62: { action.builder. + case 57: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 63: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name + // Rule 58: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name // - case 63: { action.builder. + case 58: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 64: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name + // Rule 59: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name // - case 64: { action.builder. + case 59: { action.builder. consumeExpressionFieldReference(false, true); break; } // - // Rule 65: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name + // Rule 60: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name // - case 65: { action.builder. + case 60: { action.builder. consumeExpressionFieldReference(true, true); break; } // - // Rule 66: postfix_expression ::= postfix_expression . pseudo_destructor_name + // Rule 61: postfix_expression ::= postfix_expression . pseudo_destructor_name // - case 66: { action.builder. + case 61: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 67: postfix_expression ::= postfix_expression -> pseudo_destructor_name + // Rule 62: postfix_expression ::= postfix_expression -> pseudo_destructor_name // - case 67: { action.builder. + case 62: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 68: postfix_expression ::= postfix_expression ++ + // Rule 63: postfix_expression ::= postfix_expression ++ // - case 68: { action.builder. + case 63: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; } // - // Rule 69: postfix_expression ::= postfix_expression -- + // Rule 64: postfix_expression ::= postfix_expression -- // - case 69: { action.builder. + case 64: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; } // - // Rule 70: postfix_expression ::= dynamic_cast < type_id > ( expression ) + // Rule 65: postfix_expression ::= dynamic_cast < type_id > ( expression ) // - case 70: { action.builder. + case 65: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); break; } // - // Rule 71: postfix_expression ::= static_cast < type_id > ( expression ) + // Rule 66: postfix_expression ::= static_cast < type_id > ( expression ) // - case 71: { action.builder. + case 66: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_static_cast); break; } // - // Rule 72: postfix_expression ::= reinterpret_cast < type_id > ( expression ) + // Rule 67: postfix_expression ::= reinterpret_cast < type_id > ( expression ) // - case 72: { action.builder. + case 67: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); break; } // - // Rule 73: postfix_expression ::= const_cast < type_id > ( expression ) + // Rule 68: postfix_expression ::= const_cast < type_id > ( expression ) // - case 73: { action.builder. + case 68: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_const_cast); break; } // - // Rule 74: postfix_expression ::= typeid ( expression ) + // Rule 69: postfix_expression ::= typeid ( expression ) // - case 74: { action.builder. + case 69: { action.builder. consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break; } // - // Rule 75: postfix_expression ::= typeid ( type_id ) + // Rule 70: postfix_expression ::= typeid ( type_id ) // - case 75: { action.builder. + case 70: { action.builder. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid); break; } // - // Rule 76: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name + // Rule 71: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name // - case 76: { action.builder. + case 71: { action.builder. consumePsudoDestructorName(true); break; } // - // Rule 77: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name + // Rule 72: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name // - case 77: { action.builder. + case 72: { action.builder. consumePsudoDestructorName(true); break; } // - // Rule 78: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name + // Rule 73: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name // - case 78: { action.builder. + case 73: { action.builder. consumePsudoDestructorName(false); break; } // - // Rule 79: destructor_type_name ::= ~ identifier_token + // Rule 74: destructor_type_name ::= ~ identifier_token // - case 79: { action.builder. + case 74: { action.builder. consumeDestructorName(); break; } // - // Rule 80: destructor_type_name ::= ~ template_id_name + // Rule 75: destructor_type_name ::= ~ template_id_name // - case 80: { action.builder. + case 75: { action.builder. consumeDestructorNameTemplateId(); break; } // - // Rule 84: unary_expression ::= ++ cast_expression + // Rule 79: unary_expression ::= ++ cast_expression // - case 84: { action.builder. + case 79: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; } // - // Rule 85: unary_expression ::= -- cast_expression + // Rule 80: unary_expression ::= -- cast_expression // - case 85: { action.builder. + case 80: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; } // - // Rule 86: unary_expression ::= & cast_expression + // Rule 81: unary_expression ::= & cast_expression // - case 86: { action.builder. + case 81: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; } // - // Rule 87: unary_expression ::= * cast_expression + // Rule 82: unary_expression ::= * cast_expression // - case 87: { action.builder. + case 82: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; } // - // Rule 88: unary_expression ::= + cast_expression + // Rule 83: unary_expression ::= + cast_expression // - case 88: { action.builder. + case 83: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; } // - // Rule 89: unary_expression ::= - cast_expression + // Rule 84: unary_expression ::= - cast_expression // - case 89: { action.builder. + case 84: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; } // - // Rule 90: unary_expression ::= ~ cast_expression + // Rule 85: unary_expression ::= ~ cast_expression // - case 90: { action.builder. + case 85: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; } // - // Rule 91: unary_expression ::= ! cast_expression + // Rule 86: unary_expression ::= ! cast_expression // - case 91: { action.builder. + case 86: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; } // - // Rule 92: unary_expression ::= sizeof unary_expression + // Rule 87: unary_expression ::= sizeof unary_expression // - case 92: { action.builder. + case 87: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; } // - // Rule 93: unary_expression ::= sizeof ( type_id ) + // Rule 88: unary_expression ::= sizeof ( type_id ) // - case 93: { action.builder. + case 88: { action.builder. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_sizeof); break; } // - // Rule 94: new_expression ::= dcolon_opt new new_placement_opt new_type_id new_array_expressions_opt new_initializer_opt + // Rule 89: new_expression ::= dcolon_opt new new_placement_opt new_type_id new_array_expressions_opt new_initializer_opt // - case 94: { action.builder. + case 89: { action.builder. consumeExpressionNew(true); break; } // - // Rule 95: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_array_expressions_opt new_initializer_opt + // Rule 90: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_array_expressions_opt new_initializer_opt // - case 95: { action.builder. + case 90: { action.builder. consumeExpressionNew(false); break; } // - // Rule 97: new_placement_opt ::= $Empty + // Rule 92: new_placement_opt ::= $Empty // - case 97: { action.builder. + case 92: { action.builder. consumeEmpty(); break; } // - // Rule 98: new_type_id ::= type_specifier_seq + // Rule 93: new_type_id ::= type_specifier_seq // - case 98: { action.builder. + case 93: { action.builder. consumeTypeId(false); break; } // - // Rule 99: new_type_id ::= type_specifier_seq new_declarator + // Rule 94: new_type_id ::= type_specifier_seq new_declarator // - case 99: { action.builder. + case 94: { action.builder. consumeTypeId(true); break; } // - // Rule 100: new_declarator ::= new_pointer_operators + // Rule 95: new_declarator ::= new_pointer_operators // - case 100: { action.builder. + case 95: { action.builder. consumeNewDeclarator(); break; } // - // Rule 109: new_initializer_opt ::= $Empty + // Rule 104: new_initializer_opt ::= $Empty // - case 109: { action.builder. + case 104: { action.builder. consumeEmpty(); break; } // - // Rule 110: delete_expression ::= dcolon_opt delete cast_expression + // Rule 105: delete_expression ::= dcolon_opt delete cast_expression // - case 110: { action.builder. + case 105: { action.builder. consumeExpressionDelete(false); break; } // - // Rule 111: delete_expression ::= dcolon_opt delete [ ] cast_expression + // Rule 106: delete_expression ::= dcolon_opt delete [ ] cast_expression // - case 111: { action.builder. + case 106: { action.builder. consumeExpressionDelete(true); break; } // - // Rule 114: pm_expression ::= pm_expression .* cast_expression + // Rule 109: pm_expression ::= pm_expression .* cast_expression // - case 114: { action.builder. + case 109: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot); break; } // - // Rule 115: pm_expression ::= pm_expression ->* cast_expression + // Rule 110: pm_expression ::= pm_expression ->* cast_expression // - case 115: { action.builder. + case 110: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow); break; } // - // Rule 117: multiplicative_expression ::= multiplicative_expression * pm_expression + // Rule 112: multiplicative_expression ::= multiplicative_expression * pm_expression // - case 117: { action.builder. + case 112: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply); break; } // - // Rule 118: multiplicative_expression ::= multiplicative_expression / pm_expression + // Rule 113: multiplicative_expression ::= multiplicative_expression / pm_expression // - case 118: { action.builder. + case 113: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide); break; } // - // Rule 119: multiplicative_expression ::= multiplicative_expression % pm_expression + // Rule 114: multiplicative_expression ::= multiplicative_expression % pm_expression // - case 119: { action.builder. + case 114: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo); break; } // - // Rule 121: additive_expression ::= additive_expression + multiplicative_expression + // Rule 116: additive_expression ::= additive_expression + multiplicative_expression // - case 121: { action.builder. + case 116: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus); break; } // - // Rule 122: additive_expression ::= additive_expression - multiplicative_expression + // Rule 117: additive_expression ::= additive_expression - multiplicative_expression // - case 122: { action.builder. + case 117: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus); break; } // - // Rule 124: shift_expression ::= shift_expression << additive_expression + // Rule 119: shift_expression ::= shift_expression << additive_expression // - case 124: { action.builder. + case 119: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft); break; } // - // Rule 125: shift_expression ::= shift_expression >> additive_expression + // Rule 120: shift_expression ::= shift_expression >> additive_expression // - case 125: { action.builder. + case 120: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight); break; } // - // Rule 127: relational_expression ::= relational_expression < shift_expression + // Rule 122: relational_expression ::= relational_expression < shift_expression // - case 127: { action.builder. + case 122: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; } // - // Rule 128: relational_expression ::= relational_expression > shift_expression + // Rule 123: relational_expression ::= relational_expression > shift_expression // - case 128: { action.builder. + case 123: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; } // - // Rule 129: relational_expression ::= relational_expression <= shift_expression + // Rule 124: relational_expression ::= relational_expression <= shift_expression // - case 129: { action.builder. + case 124: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; } // - // Rule 130: relational_expression ::= relational_expression >= shift_expression + // Rule 125: relational_expression ::= relational_expression >= shift_expression // - case 130: { action.builder. + case 125: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; } // - // Rule 132: equality_expression ::= equality_expression == relational_expression + // Rule 127: equality_expression ::= equality_expression == relational_expression // - case 132: { action.builder. + case 127: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; } // - // Rule 133: equality_expression ::= equality_expression != relational_expression + // Rule 128: equality_expression ::= equality_expression != relational_expression // - case 133: { action.builder. + case 128: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; } // - // Rule 135: and_expression ::= and_expression & equality_expression + // Rule 130: and_expression ::= and_expression & equality_expression // - case 135: { action.builder. + case 130: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; } // - // Rule 137: exclusive_or_expression ::= exclusive_or_expression ^ and_expression + // Rule 132: exclusive_or_expression ::= exclusive_or_expression ^ and_expression // - case 137: { action.builder. + case 132: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; } // - // Rule 139: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression + // Rule 134: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression // - case 139: { action.builder. + case 134: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; } // - // Rule 141: logical_and_expression ::= logical_and_expression && inclusive_or_expression + // Rule 136: logical_and_expression ::= logical_and_expression && inclusive_or_expression // - case 141: { action.builder. + case 136: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; } // - // Rule 143: logical_or_expression ::= logical_or_expression || logical_and_expression + // Rule 138: logical_or_expression ::= logical_or_expression || logical_and_expression // - case 143: { action.builder. + case 138: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; } // - // Rule 145: conditional_expression ::= logical_or_expression ? expression : assignment_expression + // Rule 140: conditional_expression ::= logical_or_expression ? expression : assignment_expression // - case 145: { action.builder. + case 140: { action.builder. consumeExpressionConditional(); break; } // - // Rule 146: throw_expression ::= throw + // Rule 141: throw_expression ::= throw // - case 146: { action.builder. + case 141: { action.builder. consumeExpressionThrow(false); break; } // - // Rule 147: throw_expression ::= throw assignment_expression + // Rule 142: throw_expression ::= throw assignment_expression // - case 147: { action.builder. + case 142: { action.builder. consumeExpressionThrow(true); break; } // - // Rule 150: assignment_expression ::= logical_or_expression = assignment_expression + // Rule 145: assignment_expression ::= logical_or_expression = assignment_expression // - case 150: { action.builder. + case 145: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; } // - // Rule 151: assignment_expression ::= logical_or_expression *= assignment_expression + // Rule 146: assignment_expression ::= logical_or_expression *= assignment_expression // - case 151: { action.builder. + case 146: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 152: assignment_expression ::= logical_or_expression /= assignment_expression + // Rule 147: assignment_expression ::= logical_or_expression /= assignment_expression // - case 152: { action.builder. + case 147: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; } // - // Rule 153: assignment_expression ::= logical_or_expression %= assignment_expression + // Rule 148: assignment_expression ::= logical_or_expression %= assignment_expression // - case 153: { action.builder. + case 148: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; } // - // Rule 154: assignment_expression ::= logical_or_expression += assignment_expression + // Rule 149: assignment_expression ::= logical_or_expression += assignment_expression // - case 154: { action.builder. + case 149: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; } // - // Rule 155: assignment_expression ::= logical_or_expression -= assignment_expression + // Rule 150: assignment_expression ::= logical_or_expression -= assignment_expression // - case 155: { action.builder. + case 150: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; } // - // Rule 156: assignment_expression ::= logical_or_expression >>= assignment_expression + // Rule 151: assignment_expression ::= logical_or_expression >>= assignment_expression // - case 156: { action.builder. + case 151: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 157: assignment_expression ::= logical_or_expression <<= assignment_expression + // Rule 152: assignment_expression ::= logical_or_expression <<= assignment_expression // - case 157: { action.builder. + case 152: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 158: assignment_expression ::= logical_or_expression &= assignment_expression + // Rule 153: assignment_expression ::= logical_or_expression &= assignment_expression // - case 158: { action.builder. + case 153: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 159: assignment_expression ::= logical_or_expression ^= assignment_expression + // Rule 154: assignment_expression ::= logical_or_expression ^= assignment_expression // - case 159: { action.builder. + case 154: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 160: assignment_expression ::= logical_or_expression |= assignment_expression + // Rule 155: assignment_expression ::= logical_or_expression |= assignment_expression // - case 160: { action.builder. + case 155: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 162: expression_list ::= expression_list_actual + // Rule 157: expression_list ::= expression_list_actual // - case 162: { action.builder. + case 157: { action.builder. consumeExpressionList(); break; } // - // Rule 166: expression_list_opt ::= $Empty + // Rule 161: expression_list_opt ::= $Empty + // + case 161: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 163: expression_opt ::= $Empty + // + case 163: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 166: constant_expression_opt ::= $Empty // case 166: { action.builder. consumeEmpty(); break; } // - // Rule 168: expression_opt ::= $Empty + // Rule 175: statement ::= ERROR_TOKEN // - case 168: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 171: constant_expression_opt ::= $Empty - // - case 171: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 180: statement ::= ERROR_TOKEN - // - case 180: { action.builder. + case 175: { action.builder. consumeStatementProblem(); break; } // - // Rule 181: labeled_statement ::= identifier : statement + // Rule 176: labeled_statement ::= identifier : statement // - case 181: { action.builder. + case 176: { action.builder. consumeStatementLabeled(); break; } // - // Rule 182: labeled_statement ::= case constant_expression : statement + // Rule 177: labeled_statement ::= case constant_expression : statement // - case 182: { action.builder. + case 177: { action.builder. consumeStatementCase(); break; } // - // Rule 183: labeled_statement ::= default : statement + // Rule 178: labeled_statement ::= default : statement // - case 183: { action.builder. + case 178: { action.builder. consumeStatementDefault(); break; } // - // Rule 184: expression_statement ::= expression ; + // Rule 179: expression_statement ::= expression ; // - case 184: { action.builder. + case 179: { action.builder. consumeStatementExpression(); break; } // - // Rule 185: expression_statement ::= ; + // Rule 180: expression_statement ::= ; // - case 185: { action.builder. + case 180: { action.builder. consumeStatementNull(); break; } // - // Rule 186: compound_statement ::= { statement_seq } + // Rule 181: compound_statement ::= { statement_seq } // - case 186: { action.builder. + case 181: { action.builder. consumeStatementCompoundStatement(true); break; } // - // Rule 187: compound_statement ::= { } + // Rule 182: compound_statement ::= { } // - case 187: { action.builder. + case 182: { action.builder. consumeStatementCompoundStatement(false); break; } // - // Rule 190: selection_statement ::= if ( condition ) statement + // Rule 185: selection_statement ::= if ( condition ) statement // - case 190: { action.builder. + case 185: { action.builder. consumeStatementIf(false); break; } // - // Rule 191: selection_statement ::= if ( condition ) statement else statement + // Rule 186: selection_statement ::= if ( condition ) statement else statement // - case 191: { action.builder. + case 186: { action.builder. consumeStatementIf(true); break; } // - // Rule 192: selection_statement ::= switch ( condition ) statement + // Rule 187: selection_statement ::= switch ( condition ) statement // - case 192: { action.builder. + case 187: { action.builder. consumeStatementSwitch(); break; } // - // Rule 194: condition ::= type_specifier_seq declarator = assignment_expression + // Rule 189: condition ::= type_specifier_seq declarator = assignment_expression // - case 194: { action.builder. + case 189: { action.builder. consumeConditionDeclaration(); break; } // - // Rule 196: condition_opt ::= $Empty + // Rule 191: condition_opt ::= $Empty // - case 196: { action.builder. + case 191: { action.builder. consumeEmpty(); break; } // - // Rule 197: iteration_statement ::= while ( condition ) statement + // Rule 192: iteration_statement ::= while ( condition ) statement // - case 197: { action.builder. + case 192: { action.builder. consumeStatementWhileLoop(); break; } // - // Rule 198: iteration_statement ::= do statement while ( expression ) ; + // Rule 193: iteration_statement ::= do statement while ( expression ) ; // - case 198: { action.builder. + case 193: { action.builder. consumeStatementDoLoop(); break; } // - // Rule 199: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement + // Rule 194: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement // - case 199: { action.builder. + case 194: { action.builder. consumeStatementForLoop(); break; } // - // Rule 201: for_init_statement ::= simple_declaration_with_declspec + // Rule 196: for_init_statement ::= simple_declaration_with_declspec // - case 201: { action.builder. + case 196: { action.builder. consumeStatementDeclaration(); break; } // - // Rule 202: jump_statement ::= break ; + // Rule 197: jump_statement ::= break ; // - case 202: { action.builder. + case 197: { action.builder. consumeStatementBreak(); break; } // - // Rule 203: jump_statement ::= continue ; + // Rule 198: jump_statement ::= continue ; // - case 203: { action.builder. + case 198: { action.builder. consumeStatementContinue(); break; } // - // Rule 204: jump_statement ::= return expression ; + // Rule 199: jump_statement ::= return expression ; // - case 204: { action.builder. + case 199: { action.builder. consumeStatementReturn(true); break; } // - // Rule 205: jump_statement ::= return ; + // Rule 200: jump_statement ::= return ; // - case 205: { action.builder. + case 200: { action.builder. consumeStatementReturn(false); break; } // - // Rule 206: jump_statement ::= goto identifier_token ; + // Rule 201: jump_statement ::= goto identifier_token ; // - case 206: { action.builder. + case 201: { action.builder. consumeStatementGoto(); break; } // - // Rule 207: declaration_statement ::= block_declaration + // Rule 202: declaration_statement ::= block_declaration // - case 207: { action.builder. + case 202: { action.builder. consumeStatementDeclarationWithDisambiguation(); break; } // - // Rule 208: declaration_statement ::= function_definition + // Rule 203: declaration_statement ::= function_definition // - case 208: { action.builder. + case 203: { action.builder. consumeStatementDeclaration(); break; } // - // Rule 225: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; + // Rule 211: declaration ::= ERROR_TOKEN // - case 225: { action.builder. + case 211: { action.builder. + consumeDeclarationProblem(); break; + } + + // + // Rule 221: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; + // + case 221: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 226: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; + // Rule 222: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; // - case 226: { action.builder. + case 222: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 227: declaration_specifiers ::= simple_declaration_specifiers + // Rule 223: declaration_specifiers ::= simple_declaration_specifiers // - case 227: { action.builder. + case 223: { action.builder. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 228: declaration_specifiers ::= class_declaration_specifiers + // Rule 224: declaration_specifiers ::= class_declaration_specifiers // - case 228: { action.builder. + case 224: { action.builder. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 229: declaration_specifiers ::= elaborated_declaration_specifiers + // Rule 225: declaration_specifiers ::= elaborated_declaration_specifiers // - case 229: { action.builder. + case 225: { action.builder. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 230: declaration_specifiers ::= enum_declaration_specifiers + // Rule 226: declaration_specifiers ::= enum_declaration_specifiers // - case 230: { action.builder. + case 226: { action.builder. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 231: declaration_specifiers ::= type_name_declaration_specifiers + // Rule 227: declaration_specifiers ::= type_name_declaration_specifiers // - case 231: { action.builder. + case 227: { action.builder. consumeDeclarationSpecifiersTypeName(); break; } // - // Rule 233: declaration_specifiers_opt ::= $Empty + // Rule 229: declaration_specifiers_opt ::= $Empty // - case 233: { action.builder. + case 229: { action.builder. consumeEmpty(); break; } // - // Rule 237: no_type_declaration_specifier ::= friend + // Rule 233: no_type_declaration_specifier ::= friend // - case 237: { action.builder. + case 233: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 238: no_type_declaration_specifier ::= typedef + // Rule 234: no_type_declaration_specifier ::= typedef // - case 238: { action.builder. + case 234: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 258: storage_class_specifier ::= auto + // Rule 254: storage_class_specifier ::= auto + // + case 254: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 255: storage_class_specifier ::= register + // + case 255: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 256: storage_class_specifier ::= static + // + case 256: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 257: storage_class_specifier ::= extern + // + case 257: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 258: storage_class_specifier ::= mutable // case 258: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 259: storage_class_specifier ::= register + // Rule 259: function_specifier ::= inline // case 259: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 260: storage_class_specifier ::= static + // Rule 260: function_specifier ::= virtual // case 260: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 261: storage_class_specifier ::= extern + // Rule 261: function_specifier ::= explicit // case 261: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 262: storage_class_specifier ::= mutable + // Rule 262: simple_type_specifier ::= char // case 262: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 263: function_specifier ::= inline + // Rule 263: simple_type_specifier ::= wchar_t // case 263: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 264: function_specifier ::= virtual + // Rule 264: simple_type_specifier ::= bool // case 264: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 265: function_specifier ::= explicit + // Rule 265: simple_type_specifier ::= short // case 265: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 266: simple_type_specifier ::= char + // Rule 266: simple_type_specifier ::= int // case 266: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 267: simple_type_specifier ::= wchar_t + // Rule 267: simple_type_specifier ::= long // case 267: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 268: simple_type_specifier ::= bool + // Rule 268: simple_type_specifier ::= signed // case 268: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 269: simple_type_specifier ::= short + // Rule 269: simple_type_specifier ::= unsigned // case 269: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 270: simple_type_specifier ::= int + // Rule 270: simple_type_specifier ::= float // case 270: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 271: simple_type_specifier ::= long + // Rule 271: simple_type_specifier ::= double // case 271: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 272: simple_type_specifier ::= signed + // Rule 272: simple_type_specifier ::= void // case 272: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 273: simple_type_specifier ::= unsigned - // - case 273: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 274: simple_type_specifier ::= float - // - case 274: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 275: simple_type_specifier ::= double + // Rule 275: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name // case 275: { action.builder. - consumeDeclSpecToken(); break; + consumeQualifiedId(false); break; } // - // Rule 276: simple_type_specifier ::= void + // Rule 276: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name // case 276: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 279: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name - // - case 279: { action.builder. consumeQualifiedId(false); break; } // - // Rule 280: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name + // Rule 277: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name // - case 280: { action.builder. + case 277: { action.builder. consumeQualifiedId(false); break; } // - // Rule 281: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name + // Rule 278: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name // - case 281: { action.builder. - consumeQualifiedId(false); break; - } - - // - // Rule 282: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name - // - case 282: { action.builder. + case 278: { 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 287: enum_specifier ::= enum { enumerator_list_opt } + // Rule 283: enum_specifier ::= enum { enumerator_list_opt } // - case 287: { action.builder. + case 283: { action.builder. consumeTypeSpecifierEnumeration(false); break; } // - // Rule 288: enum_specifier ::= enum identifier_token { enumerator_list_opt } + // Rule 284: enum_specifier ::= enum identifier_token { enumerator_list_opt } // - case 288: { action.builder. + case 284: { action.builder. consumeTypeSpecifierEnumeration(true); break; } // - // Rule 293: enumerator_definition ::= identifier_token + // Rule 289: enumerator_definition ::= identifier_token // - case 293: { action.builder. + case 289: { action.builder. consumeEnumerator(false); break; } // - // Rule 294: enumerator_definition ::= identifier_token = constant_expression + // Rule 290: enumerator_definition ::= identifier_token = constant_expression // - case 294: { action.builder. + case 290: { action.builder. consumeEnumerator(true); break; } // - // Rule 298: named_namespace_definition ::= namespace namespace_name { declaration_seq_opt } + // Rule 294: named_namespace_definition ::= namespace namespace_name { declaration_seq_opt } // - case 298: { action.builder. + case 294: { action.builder. consumeNamespaceDefinition(true); break; } // - // Rule 299: unnamed_namespace_definition ::= namespace { declaration_seq_opt } + // Rule 295: unnamed_namespace_definition ::= namespace { declaration_seq_opt } // - case 299: { action.builder. + case 295: { action.builder. consumeNamespaceDefinition(false); break; } // - // Rule 300: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 296: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; // - case 300: { action.builder. + case 296: { action.builder. consumeNamespaceAliasDefinition(); break; } // - // Rule 301: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; + // Rule 297: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; // - case 301: { action.builder. + case 297: { action.builder. consumeUsingDeclaration(); break; } // - // Rule 302: typename_opt ::= typename + // Rule 298: typename_opt ::= typename // - case 302: { action.builder. + case 298: { action.builder. consumePlaceHolder(); break; } // - // Rule 303: typename_opt ::= $Empty + // Rule 299: typename_opt ::= $Empty // - case 303: { action.builder. + case 299: { action.builder. consumeEmpty(); break; } // - // Rule 304: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 300: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; // - case 304: { action.builder. + case 300: { action.builder. consumeUsingDirective(); break; } // - // Rule 305: asm_definition ::= asm ( stringlit ) ; + // Rule 301: asm_definition ::= asm ( stringlit ) ; // - case 305: { action.builder. + case 301: { action.builder. consumeDeclarationASM(); break; } // - // Rule 306: linkage_specification ::= extern stringlit { declaration_seq_opt } + // Rule 302: linkage_specification ::= extern stringlit { declaration_seq_opt } // - case 306: { action.builder. + case 302: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 307: linkage_specification ::= extern stringlit declaration + // Rule 303: linkage_specification ::= extern stringlit declaration // - case 307: { action.builder. + case 303: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 312: init_declarator_complete ::= init_declarator + // Rule 308: init_declarator_complete ::= init_declarator // - case 312: { action.builder. + case 308: { action.builder. consumeInitDeclaratorComplete(); break; } // - // Rule 314: init_declarator ::= declarator initializer + // Rule 310: init_declarator ::= declarator initializer // - case 314: { action.builder. + case 310: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 316: declarator ::= ptr_operator_seq direct_declarator + // Rule 312: declarator ::= ptr_operator_seq direct_declarator // - case 316: { action.builder. + case 312: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 318: function_declarator ::= ptr_operator_seq direct_declarator + // Rule 314: function_declarator ::= ptr_operator_seq direct_declarator + // + case 314: { action.builder. + consumeDeclaratorWithPointer(true); break; + } + + // + // Rule 318: basic_direct_declarator ::= declarator_id_name // case 318: { action.builder. - consumeDeclaratorWithPointer(true); break; - } - - // - // Rule 322: basic_direct_declarator ::= declarator_id_name - // - case 322: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 323: basic_direct_declarator ::= ( declarator ) + // Rule 319: basic_direct_declarator ::= ( declarator ) // - case 323: { action.builder. + case 319: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 324: 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 324: { action.builder. + case 320: { action.builder. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 325: array_direct_declarator ::= array_direct_declarator array_modifier + // Rule 321: array_direct_declarator ::= array_direct_declarator array_modifier // - case 325: { action.builder. + case 321: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 326: array_direct_declarator ::= basic_direct_declarator array_modifier + // Rule 322: array_direct_declarator ::= basic_direct_declarator array_modifier // - case 326: { action.builder. + case 322: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 327: array_modifier ::= [ constant_expression ] + // Rule 323: array_modifier ::= [ constant_expression ] // - case 327: { action.builder. + case 323: { action.builder. consumeDirectDeclaratorArrayModifier(true); break; } // - // Rule 328: array_modifier ::= [ ] + // Rule 324: array_modifier ::= [ ] // - case 328: { action.builder. + case 324: { action.builder. consumeDirectDeclaratorArrayModifier(false); break; } // - // Rule 329: ptr_operator ::= * cv_qualifier_seq_opt + // Rule 325: ptr_operator ::= * cv_qualifier_seq_opt // - case 329: { action.builder. + case 325: { action.builder. consumePointer(); break; } // - // Rule 330: ptr_operator ::= & + // Rule 326: ptr_operator ::= & // - case 330: { action.builder. + case 326: { action.builder. consumeReferenceOperator(); break; } // - // Rule 331: 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 331: { action.builder. + case 327: { action.builder. consumePointerToMember(); break; } // - // Rule 337: cv_qualifier ::= const + // Rule 333: cv_qualifier ::= const // - case 337: { action.builder. + case 333: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 338: cv_qualifier ::= volatile + // Rule 334: cv_qualifier ::= volatile // - case 338: { action.builder. + case 334: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 340: 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 340: { action.builder. + case 336: { action.builder. consumeQualifiedId(false); break; } // - // Rule 341: type_id ::= type_specifier_seq + // Rule 337: type_id ::= type_specifier_seq // - case 341: { action.builder. + case 337: { action.builder. consumeTypeId(false); break; } // - // Rule 342: type_id ::= type_specifier_seq abstract_declarator + // Rule 338: type_id ::= type_specifier_seq abstract_declarator // - case 342: { action.builder. + case 338: { action.builder. consumeTypeId(true); break; } // - // Rule 345: abstract_declarator ::= ptr_operator_seq + // Rule 341: abstract_declarator ::= ptr_operator_seq // - case 345: { action.builder. + case 341: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 346: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator + // Rule 342: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator // - case 346: { action.builder. + case 342: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 350: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 346: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - case 350: { action.builder. + case 346: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 351: basic_direct_abstract_declarator ::= ( ) + // Rule 347: basic_direct_abstract_declarator ::= ( ) // - case 351: { action.builder. + case 347: { action.builder. consumeAbstractDeclaratorEmpty(); break; } // - // Rule 352: array_direct_abstract_declarator ::= array_modifier + // Rule 348: array_direct_abstract_declarator ::= array_modifier // - case 352: { action.builder. + case 348: { action.builder. consumeDirectDeclaratorArrayDeclarator(false); break; } // - // Rule 353: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // Rule 349: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier // - case 353: { action.builder. + case 349: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 354: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier + // Rule 350: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier // - case 354: { action.builder. + case 350: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 355: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 351: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 355: { action.builder. + case 351: { action.builder. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 356: 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 356: { action.builder. + case 352: { action.builder. consumeDirectDeclaratorFunctionDeclarator(false); break; } // - // Rule 357: parameter_declaration_clause ::= parameter_declaration_list_opt ... + // Rule 353: parameter_declaration_clause ::= parameter_declaration_list_opt ... // - case 357: { action.builder. + case 353: { action.builder. consumePlaceHolder(); break; } // - // Rule 358: parameter_declaration_clause ::= parameter_declaration_list_opt + // Rule 354: parameter_declaration_clause ::= parameter_declaration_list_opt // - case 358: { action.builder. + case 354: { action.builder. consumeEmpty(); break; } // - // Rule 359: parameter_declaration_clause ::= parameter_declaration_list , ... + // Rule 355: parameter_declaration_clause ::= parameter_declaration_list , ... // - case 359: { action.builder. + case 355: { action.builder. consumePlaceHolder(); break; } // - // Rule 365: abstract_declarator_opt ::= $Empty + // Rule 361: abstract_declarator_opt ::= $Empty // - case 365: { action.builder. + case 361: { action.builder. consumeEmpty(); break; } // - // Rule 366: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // Rule 362: parameter_declaration ::= declaration_specifiers parameter_init_declarator // - case 366: { action.builder. + case 362: { action.builder. consumeParameterDeclaration(); break; } // - // Rule 367: parameter_declaration ::= declaration_specifiers + // Rule 363: parameter_declaration ::= declaration_specifiers // - case 367: { action.builder. + case 363: { action.builder. consumeParameterDeclarationWithoutDeclarator(); break; } // - // Rule 369: parameter_init_declarator ::= declarator = parameter_initializer + // Rule 365: parameter_init_declarator ::= declarator = parameter_initializer // - case 369: { action.builder. + case 365: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 371: parameter_init_declarator ::= abstract_declarator = parameter_initializer + // Rule 367: parameter_init_declarator ::= abstract_declarator = parameter_initializer // - case 371: { action.builder. + case 367: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 372: parameter_init_declarator ::= = parameter_initializer + // Rule 368: parameter_init_declarator ::= = parameter_initializer // - case 372: { action.builder. + case 368: { action.builder. consumeDeclaratorWithInitializer(false); break; } // - // Rule 373: parameter_initializer ::= assignment_expression + // Rule 369: parameter_initializer ::= assignment_expression // - case 373: { action.builder. + case 369: { action.builder. consumeInitializer(); break; } // - // Rule 374: 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 374: { action.builder. + case 370: { action.builder. consumeFunctionDefinition(false); break; } // - // Rule 375: 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 375: { action.builder. + case 371: { action.builder. consumeFunctionDefinition(true); break; } // - // Rule 378: initializer ::= ( expression_list ) + // Rule 374: initializer ::= ( expression_list ) // - case 378: { action.builder. + case 374: { action.builder. consumeInitializerConstructor(); break; } // - // Rule 379: initializer_clause ::= assignment_expression + // Rule 375: initializer_clause ::= assignment_expression // - case 379: { action.builder. + case 375: { action.builder. consumeInitializer(); break; } // - // Rule 380: initializer_clause ::= start_initializer_list { initializer_list , } end_initializer_list + // Rule 376: initializer_clause ::= start_initializer_list { initializer_list , } end_initializer_list // - case 380: { action.builder. + case 376: { action.builder. consumeInitializerList(); break; } // - // Rule 381: initializer_clause ::= start_initializer_list { initializer_list } end_initializer_list + // Rule 377: initializer_clause ::= start_initializer_list { initializer_list } end_initializer_list // - case 381: { action.builder. + case 377: { action.builder. consumeInitializerList(); break; } // - // Rule 382: initializer_clause ::= { } + // Rule 378: initializer_clause ::= { } // - case 382: { action.builder. + case 378: { action.builder. consumeInitializerList(); break; } // - // Rule 383: start_initializer_list ::= $Empty + // Rule 379: start_initializer_list ::= $Empty // - case 383: { action.builder. + case 379: { action.builder. initializerListStart(); break; } // - // Rule 384: end_initializer_list ::= $Empty + // Rule 380: end_initializer_list ::= $Empty // - case 384: { action.builder. + case 380: { action.builder. initializerListEnd(); break; } // - // Rule 389: class_specifier ::= class_head { member_declaration_list_opt } + // Rule 385: class_specifier ::= class_head { member_declaration_list_opt } // - case 389: { action.builder. + case 385: { action.builder. consumeClassSpecifier(); break; } // - // Rule 390: class_head ::= class_keyword identifier_name_opt base_clause_opt + // Rule 386: class_head ::= class_keyword identifier_name_opt base_clause_opt // - case 390: { action.builder. + case 386: { action.builder. consumeClassHead(false); break; } // - // Rule 391: class_head ::= class_keyword template_id_name base_clause_opt + // Rule 387: class_head ::= class_keyword template_id_name base_clause_opt + // + case 387: { action.builder. + consumeClassHead(false); break; + } + + // + // Rule 388: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt + // + case 388: { action.builder. + consumeClassHead(true); break; + } + + // + // Rule 389: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt + // + case 389: { action.builder. + consumeClassHead(true); break; + } + + // + // Rule 391: identifier_name_opt ::= $Empty // case 391: { action.builder. - consumeClassHead(false); break; - } - - // - // Rule 392: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt - // - case 392: { action.builder. - consumeClassHead(true); break; - } - - // - // Rule 393: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt - // - case 393: { action.builder. - consumeClassHead(true); break; - } - - // - // Rule 395: identifier_name_opt ::= $Empty - // - case 395: { action.builder. consumeEmpty(); break; } // - // Rule 399: visibility_label ::= access_specifier_keyword : + // Rule 395: visibility_label ::= access_specifier_keyword : // - case 399: { action.builder. + case 395: { action.builder. consumeVisibilityLabel(); break; } // - // Rule 400: member_declaration ::= declaration_specifiers_opt member_declarator_list ; + // Rule 396: member_declaration ::= declaration_specifiers_opt member_declarator_list ; // - case 400: { action.builder. + case 396: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 401: member_declaration ::= declaration_specifiers_opt ; + // Rule 397: member_declaration ::= declaration_specifiers_opt ; // - case 401: { action.builder. + case 397: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 404: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; + // Rule 400: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; // - case 404: { action.builder. + case 400: { action.builder. consumeMemberDeclarationQualifiedId(); break; } // - // Rule 410: member_declaration ::= ERROR_TOKEN + // Rule 406: member_declaration ::= ERROR_TOKEN // - case 410: { action.builder. + case 406: { action.builder. consumeDeclarationProblem(); break; } // - // Rule 418: member_declarator ::= declarator constant_initializer + // Rule 414: member_declarator ::= declarator constant_initializer // - case 418: { action.builder. + case 414: { action.builder. consumeMemberDeclaratorWithInitializer(); break; } // - // Rule 419: member_declarator ::= bit_field_declarator : constant_expression + // Rule 415: member_declarator ::= bit_field_declarator : constant_expression // - case 419: { action.builder. + case 415: { action.builder. consumeBitField(true); break; } // - // Rule 420: member_declarator ::= : constant_expression + // Rule 416: member_declarator ::= : constant_expression // - case 420: { action.builder. + case 416: { action.builder. consumeBitField(false); break; } // - // Rule 421: bit_field_declarator ::= identifier_name + // Rule 417: bit_field_declarator ::= identifier_name // - case 421: { action.builder. + case 417: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 422: constant_initializer ::= = constant_expression + // Rule 418: constant_initializer ::= = constant_expression // - case 422: { action.builder. + case 418: { action.builder. consumeInitializer(); break; } // - // Rule 428: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 424: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 428: { action.builder. + case 424: { action.builder. consumeBaseSpecifier(false, false); break; } // - // Rule 429: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name + // Rule 425: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name // - case 429: { action.builder. + case 425: { action.builder. consumeBaseSpecifier(true, true); break; } // - // Rule 430: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name + // Rule 426: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name // - case 430: { action.builder. + case 426: { action.builder. consumeBaseSpecifier(true, true); break; } // - // Rule 431: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name + // Rule 427: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name // - case 431: { action.builder. + case 427: { action.builder. consumeBaseSpecifier(true, false); break; } // - // Rule 432: access_specifier_keyword ::= private + // Rule 428: access_specifier_keyword ::= private + // + case 428: { action.builder. + consumeAccessKeywordToken(); break; + } + + // + // Rule 429: access_specifier_keyword ::= protected + // + case 429: { action.builder. + consumeAccessKeywordToken(); break; + } + + // + // Rule 430: access_specifier_keyword ::= public + // + case 430: { action.builder. + consumeAccessKeywordToken(); break; + } + + // + // Rule 432: access_specifier_keyword_opt ::= $Empty // case 432: { action.builder. - consumeAccessKeywordToken(); break; - } - - // - // Rule 433: access_specifier_keyword ::= protected - // - case 433: { action.builder. - consumeAccessKeywordToken(); break; - } - - // - // Rule 434: access_specifier_keyword ::= public - // - case 434: { action.builder. - consumeAccessKeywordToken(); break; - } - - // - // Rule 436: access_specifier_keyword_opt ::= $Empty - // - case 436: { action.builder. consumeEmpty(); break; } // - // Rule 438: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > + // Rule 434: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > // - case 438: { action.builder. + case 434: { action.builder. consumeTemplateId(); break; } // - // Rule 439: conversion_function_id ::= operator conversion_type_id + // Rule 435: conversion_function_id ::= operator conversion_type_id // - case 439: { action.builder. + case 435: { action.builder. consumeConversionName(); break; } // - // Rule 440: conversion_type_id ::= type_specifier_seq conversion_declarator + // Rule 436: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 440: { action.builder. + case 436: { action.builder. consumeTypeId(true); break; } // - // Rule 441: conversion_type_id ::= type_specifier_seq + // Rule 437: conversion_type_id ::= type_specifier_seq // - case 441: { action.builder. + case 437: { action.builder. consumeTypeId(false); break; } // - // Rule 442: conversion_declarator ::= ptr_operator_seq + // Rule 438: conversion_declarator ::= ptr_operator_seq // - case 442: { action.builder. + case 438: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 448: mem_initializer ::= mem_initializer_name ( expression_list_opt ) + // Rule 444: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 448: { action.builder. + case 444: { action.builder. consumeConstructorChainInitializer(); break; } // - // Rule 449: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 445: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name // - case 449: { action.builder. + case 445: { action.builder. consumeQualifiedId(false); break; } // - // Rule 452: operator_function_id_name ::= operator_id_name < template_argument_list_opt > + // Rule 448: operator_function_id_name ::= operator_id_name < template_argument_list_opt > // - case 452: { action.builder. + case 448: { action.builder. consumeTemplateId(); break; } // - // Rule 453: operator_id_name ::= operator overloadable_operator + // Rule 449: operator_id_name ::= operator overloadable_operator // - case 453: { action.builder. + case 449: { action.builder. consumeOperatorName(); break; } // - // Rule 496: template_declaration ::= export_opt template < template_parameter_list > declaration + // Rule 492: template_declaration ::= export_opt template < template_parameter_list > declaration // - case 496: { action.builder. + case 492: { action.builder. consumeTemplateDeclaration(); break; } // - // Rule 497: export_opt ::= export + // Rule 493: export_opt ::= export // - case 497: { action.builder. + case 493: { action.builder. consumePlaceHolder(); break; } // - // Rule 498: export_opt ::= $Empty + // Rule 494: export_opt ::= $Empty // - case 498: { action.builder. + case 494: { action.builder. consumeEmpty(); break; } // - // Rule 502: template_parameter ::= parameter_declaration + // Rule 498: template_parameter ::= parameter_declaration // - case 502: { action.builder. + case 498: { action.builder. consumeTemplateParamterDeclaration(); break; } // - // Rule 503: type_parameter ::= class identifier_name_opt + // Rule 499: type_parameter ::= class identifier_name_opt + // + case 499: { action.builder. + consumeSimpleTypeTemplateParameter(false); break; + } + + // + // Rule 500: type_parameter ::= class identifier_name_opt = type_id + // + case 500: { action.builder. + consumeSimpleTypeTemplateParameter(true); break; + } + + // + // Rule 501: type_parameter ::= typename identifier_name_opt + // + case 501: { action.builder. + consumeSimpleTypeTemplateParameter(false); break; + } + + // + // Rule 502: type_parameter ::= typename identifier_name_opt = type_id + // + case 502: { action.builder. + consumeSimpleTypeTemplateParameter(true); break; + } + + // + // Rule 503: type_parameter ::= template < template_parameter_list > class identifier_name_opt // case 503: { action.builder. - consumeSimpleTypeTemplateParameter(false); break; - } - - // - // Rule 504: type_parameter ::= class identifier_name_opt = type_id - // - case 504: { action.builder. - consumeSimpleTypeTemplateParameter(true); break; - } - - // - // Rule 505: type_parameter ::= typename identifier_name_opt - // - case 505: { action.builder. - consumeSimpleTypeTemplateParameter(false); break; - } - - // - // Rule 506: type_parameter ::= typename identifier_name_opt = type_id - // - case 506: { action.builder. - consumeSimpleTypeTemplateParameter(true); break; - } - - // - // Rule 507: type_parameter ::= template < template_parameter_list > class identifier_name_opt - // - case 507: { action.builder. consumeTemplatedTypeTemplateParameter(false); break; } // - // Rule 508: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression + // Rule 504: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression // - case 508: { action.builder. + case 504: { action.builder. consumeTemplatedTypeTemplateParameter(true); break; } // - // Rule 509: template_id_name ::= identifier_name < template_argument_list_opt > + // Rule 505: template_id_name ::= identifier_name < template_argument_list_opt > // - case 509: { action.builder. + case 505: { action.builder. consumeTemplateId(); break; } // - // Rule 514: template_argument ::= assignment_expression + // Rule 510: template_argument ::= assignment_expression // - case 514: { action.builder. + case 510: { action.builder. consumeTemplateArgumentExpression(); break; } // - // Rule 515: template_argument ::= type_id + // Rule 511: template_argument ::= type_id // - case 515: { action.builder. + case 511: { action.builder. consumeTemplateArgumentTypeId(); break; } // - // Rule 516: explicit_instantiation ::= template declaration + // Rule 512: explicit_instantiation ::= template declaration // - case 516: { action.builder. + case 512: { action.builder. consumeTemplateExplicitInstantiation(); break; } // - // Rule 517: explicit_specialization ::= template < > declaration + // Rule 513: explicit_specialization ::= template < > declaration // - case 517: { action.builder. + case 513: { action.builder. consumeTemplateExplicitSpecialization(); break; } // - // Rule 518: try_block ::= try compound_statement handler_seq + // Rule 514: try_block ::= try compound_statement handler_seq // - case 518: { action.builder. + case 514: { action.builder. consumeStatementTryBlock(); break; } // - // Rule 521: handler ::= catch ( exception_declaration ) compound_statement + // Rule 517: handler ::= catch ( exception_declaration ) compound_statement // - case 521: { action.builder. + case 517: { action.builder. consumeStatementCatchHandler(false); break; } // - // Rule 522: handler ::= catch ( ... ) compound_statement + // Rule 518: handler ::= catch ( ... ) compound_statement // - case 522: { action.builder. + case 518: { action.builder. consumeStatementCatchHandler(true); break; } // - // Rule 523: exception_declaration ::= type_specifier_seq declarator + // Rule 519: exception_declaration ::= type_specifier_seq declarator // - case 523: { action.builder. + case 519: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 524: exception_declaration ::= type_specifier_seq abstract_declarator + // Rule 520: exception_declaration ::= type_specifier_seq abstract_declarator // - case 524: { action.builder. + case 520: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 525: exception_declaration ::= type_specifier_seq + // Rule 521: exception_declaration ::= type_specifier_seq // - case 525: { action.builder. + case 521: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 527: exception_specification ::= throw ( ) + // Rule 523: exception_specification ::= throw ( ) // - case 527: { action.builder. + case 523: { action.builder. consumePlaceHolder(); break; } // - // Rule 533: no_cast_start ::= ERROR_TOKEN + // Rule 529: no_cast_start ::= ERROR_TOKEN // - case 533: { action.builder. + case 529: { 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 6b1ccdbff80..1860e7eb537 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 @@ -38,492 +38,491 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface BaseCheck { public final static short baseCheck[] = {0, 0,0,1,1,1,1,1,1,1,1, - 1,1,1,0,1,2,1,1,1,1, - 1,1,1,1,1,1,1,1,1,3, - 1,1,1,1,1,1,1,1,2,2, - 1,1,0,1,0,4,2,3,2,3, - 2,2,1,0,1,1,4,4,4,8, - 8,3,3,4,4,3,3,2,2,7, - 7,7,7,4,4,5,6,3,2,2, - 1,1,1,2,2,2,2,2,2,2, - 2,2,4,7,9,3,0,1,2,2, - 1,2,3,4,1,0,3,1,0,3, - 5,1,1,3,3,1,3,3,3,1, - 3,3,1,3,3,1,3,3,3,3, - 1,3,3,1,3,1,3,1,3,1, - 3,1,3,1,5,1,2,1,1,3, - 3,3,3,3,3,3,3,3,3,3, - 1,2,1,3,1,0,1,0,1,1, - 0,1,1,1,1,1,1,1,1,1, - 3,4,3,2,1,4,2,1,2,5, - 7,5,1,4,1,0,5,7,8,1, - 1,2,2,3,2,3,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,2,1,0,4,4,2,2,2,2, - 2,1,0,1,1,1,1,1,1,2, - 1,2,2,2,1,1,2,2,1,2, - 2,1,2,2,1,2,2,1,1,1, + 1,1,1,1,3,1,1,1,1,1, + 1,1,1,2,2,1,1,0,1,0, + 4,2,3,2,3,2,2,1,0,1, + 1,4,4,4,8,8,3,3,4,4, + 3,3,2,2,7,7,7,7,4,4, + 5,6,3,2,2,1,1,1,2,2, + 2,2,2,2,2,2,2,4,7,9, + 3,0,1,2,2,1,2,3,4,1, + 0,3,1,0,3,5,1,1,3,3, + 1,3,3,3,1,3,3,1,3,3, + 1,3,3,3,3,1,3,3,1,3, + 1,3,1,3,1,3,1,3,1,5, + 1,2,1,1,3,3,3,3,3,3, + 3,3,3,3,3,1,2,1,3,1, + 0,1,0,1,1,0,1,1,1,1, + 1,1,1,1,1,3,4,3,2,1, + 4,2,1,2,5,7,5,1,4,1, + 0,5,7,8,1,1,2,2,3,2, + 3,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,2,1,0, + 4,4,2,2,2,2,2,1,0,1, + 1,1,1,1,1,2,1,2,2,2, + 1,1,2,2,1,2,2,1,2,2, + 1,2,2,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,3,4, - 4,5,2,4,5,4,5,6,1,3, - 1,0,1,3,1,1,1,6,5,7, - 6,1,0,6,5,6,4,1,3,1, - 0,1,1,2,1,3,1,3,1,1, - 1,1,3,9,2,2,3,2,3,1, - 5,1,2,2,1,0,1,1,1,3, - 1,2,1,1,2,3,1,1,1,3, - 2,1,2,2,9,8,2,1,3,1, - 3,1,0,1,0,2,1,1,3,1, - 3,2,1,5,8,1,2,3,1,7, - 6,3,0,0,1,3,1,1,5,4, - 4,5,5,1,0,1,1,1,2,4, - 2,2,1,5,1,1,1,1,1,1, - 1,2,1,0,1,3,1,2,3,2, - 1,2,2,1,0,1,3,3,5,5, - 4,1,1,1,1,0,1,5,2,2, - 1,2,2,1,0,1,3,4,3,1, - 1,5,2,1,1,3,3,1,1,1, + 1,1,1,1,3,4,4,5,2,4, + 5,4,5,6,1,3,1,0,1,3, + 1,1,1,6,5,7,6,1,0,6, + 5,6,4,1,3,1,0,1,1,2, + 1,3,1,3,1,1,1,1,3,9, + 2,2,3,2,3,1,5,1,2,2, + 1,0,1,1,1,3,1,2,1,1, + 2,3,1,1,1,3,2,1,2,2, + 9,8,2,1,3,1,3,1,0,1, + 0,2,1,1,3,1,3,2,1,5, + 8,1,2,3,1,7,6,3,0,0, + 1,3,1,1,5,4,4,5,5,1, + 0,1,1,1,2,4,2,2,1,5, + 1,1,1,1,1,1,1,2,1,0, + 1,3,1,2,3,2,1,2,2,1, + 0,1,3,3,5,5,4,1,1,1, + 1,0,1,5,2,2,1,2,2,1, + 0,1,3,4,3,1,1,5,2,1, + 1,3,3,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,2,2,7,1,0,1,3, - 1,1,2,4,2,4,7,9,5,1, - 3,1,0,1,1,2,4,4,1,2, - 5,5,3,3,1,4,3,1,0,1, - 3,1,1,-107,0,0,0,-2,0,0, + 1,1,1,1,1,1,1,1,1,2, + 2,7,1,0,1,3,1,1,2,4, + 2,4,7,9,5,1,3,1,0,1, + 1,2,4,4,1,2,5,5,3,3, + 1,4,3,1,0,1,3,1,1,-107, + 0,0,0,-2,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-54,0,0,0, - 0,0,-200,0,0,0,0,0,0,0, - 0,-177,0,0,0,0,-68,0,0,0, - -59,0,0,0,0,0,0,0,0,0, - -85,0,0,0,0,0,0,0,0,0, + 0,0,-54,0,0,0,0,0,-200,0, + 0,0,0,0,0,0,0,-177,0,0, + 0,0,-68,0,0,0,-59,0,0,0, + 0,0,0,0,0,0,-85,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-58,0,0,0,-20,0,0,0, + 0,0,0,0,0,0,0,0,-58,0, + 0,0,-20,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-248, + 0,0,-69,0,0,0,0,0,0,0, + 0,0,0,0,0,-126,0,0,-51,-4, + 0,0,0,0,0,0,0,0,0,-114, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-248,0,0,-69,0,0,0, - 0,0,0,0,0,0,0,0,0,-126, - 0,0,-51,-4,0,0,0,0,0,0, - 0,0,0,-114,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-238,0,0,0, - 0,0,-5,-112,0,0,-116,-281,0,-398, - -136,0,0,0,0,-127,0,0,0,0, - -115,0,0,0,0,0,0,0,0,0, + 0,0,-238,0,0,0,0,0,-5,-112, + 0,0,-116,-281,0,-398,-136,0,0,0, + 0,-127,0,0,0,0,-115,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-6,0,0,0,0,0, - -104,0,0,0,0,0,0,0,-53,-7, - 0,-8,0,0,0,0,0,-10,-521,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-130,0,0,0, + -6,0,0,0,0,0,-104,0,0,0, + 0,0,0,0,-53,-7,0,-8,0,0, + 0,0,0,-10,-521,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-130,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-312,0,0,0,-9, - 0,0,0,0,-162,0,0,0,0,0, - 0,0,-123,0,0,0,0,0,0,-260, - 0,0,0,-222,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-312,0,0,0,-9,0,0,0,0, + -162,0,0,0,0,0,0,0,-123,0, + 0,0,0,0,0,-260,0,0,0,-222, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-258,0,0,0, - 0,0,-49,-50,0,0,0,0,0,-353, - 0,0,0,-170,0,0,0,-224,0,0, - -138,0,0,0,-11,0,0,0,0,0, - 0,0,0,0,0,-12,0,0,-128,-496, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-61,0, - 0,0,-181,0,0,0,0,0,0,0, - 0,0,-520,0,0,0,-129,0,0,0, + 0,0,-258,0,0,0,0,0,-49,-50, + 0,0,0,0,0,-353,0,0,0,-170, + 0,0,0,-224,0,0,-138,0,0,0, + -11,0,0,0,0,0,0,0,0,0, + 0,-12,0,0,-128,-496,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-13,0,0,0,0, - 0,-15,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-3,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-61,0,0,0,-181,0, + 0,0,0,0,0,0,0,0,-520,0, + 0,0,-129,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-57,0,0,0,0,-105, - 0,0,0,-119,0,0,0,0,0,-429, - 0,0,0,-28,0,0,0,0,0,0, + 0,-13,0,0,0,0,0,-15,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-29,0, - 0,0,-383,0,0,0,0,0,0,0, - 0,0,-394,0,0,-286,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,0,0,0,-305,0,0,0,-132,0, - 0,0,0,-233,0,0,0,0,-316,0, - -262,0,0,-89,0,0,0,0,0,0, + -57,0,0,0,0,-105,0,0,0,-119, + 0,0,0,0,0,-429,0,0,0,-282, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-30,0,0,0, - 0,0,-406,0,0,0,-323,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-28,0,0,0,-383,0, + 0,0,0,0,0,0,0,0,-394,0, + 0,-286,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-454, - 0,0,0,0,0,-342,-481,0,0,0, - -324,0,0,0,-142,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -305,0,0,0,-132,0,0,0,0,-233, + 0,0,0,0,-316,0,-262,0,0,-89, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-31,0,0,0,0,-165, - -1,0,0,0,0,-410,-39,0,0,0, - -340,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-406,0, + 0,0,-323,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-183,0,0,0,0, - -41,0,0,0,-32,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-454,0,0,0,0, + 0,-342,-481,0,0,0,-324,0,0,0, + -142,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-113,0,0,0,0,0,-137, - -282,0,0,-91,0,0,0,-33,0,0, 0,0,0,0,0,0,0,0,0,0, + -29,0,0,0,0,-165,-1,0,0,0, + 0,-410,-39,0,0,0,-340,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-141,-184,0,0, - 0,0,-34,-321,0,0,-92,0,0,0, - -35,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -311,0,0,0,0,0,-36,0,0,-93, + 0,-183,0,0,0,0,-41,0,0,0, + -30,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-113, + 0,0,0,0,0,-137,-31,0,0,-91, + 0,0,0,-32,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-186,0, - 0,0,0,-188,0,0,0,0,-449,0, - 0,0,-94,0,0,0,-37,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-141,-184,0,0,0,0,-321,-33, + 0,0,-92,0,0,0,-34,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-191,0,0,0,0,-199,0,0,0, - 0,-201,-38,0,0,-95,0,0,0,-40, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-55,0, - 0,0,0,0,0,0,0,0,-209,-213, - 0,0,0,0,-211,-56,0,0,-96,0, - 0,0,-63,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-311,0,0,0, + 0,0,-35,0,0,-93,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-64,0,0,0,0,0,0,0,0, - 0,-236,-226,0,0,0,0,-453,0,0, - 0,-97,0,0,0,-66,0,0,0,0, + 0,0,0,0,0,0,0,0,-36,0, + 0,0,0,0,-186,0,0,0,0,-188, + 0,0,0,0,-449,0,0,0,-94,0, + 0,0,-37,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-191,0,0, + 0,0,-199,0,0,0,0,-201,-38,0, + 0,-95,0,0,0,-40,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-243,-227,0,0,0,0, - -67,-108,0,0,-98,0,0,0,-109,0, + 0,0,0,0,-55,0,0,0,0,0, + 0,0,0,0,-209,-213,0,0,0,0, + -211,-56,0,0,-96,0,0,0,-63,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-64,0,0, + 0,0,0,0,0,0,0,-236,-226,0, + 0,0,0,-453,0,0,0,-97,0,0, + 0,-66,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-231,0,0,0,0,-256,0, - 0,0,0,-250,-110,0,0,-99,0,0, - 0,-519,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -111,0,0,0,0,0,0,0,0,0, - -251,-277,0,0,0,0,-252,-131,0,0, - -100,0,0,0,-143,0,0,0,0,0, + -243,-227,0,0,0,0,-67,-108,0,0, + -98,0,0,0,-109,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-231, + 0,0,0,0,-256,0,0,0,0,-250, + -110,0,0,-99,0,0,0,-519,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-253,-285,0,0,0,0,-295, - -144,0,0,-101,0,0,0,-372,0,0, + 0,0,0,0,0,0,-111,0,0,0, + 0,0,0,0,0,0,-251,-277,0,0, + 0,0,-252,-131,0,0,-100,0,0,0, + -143,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-253, + -285,0,0,0,0,-295,-144,0,0,-101, + 0,0,0,-372,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-297,-301,0,0, - 0,0,-298,-62,0,0,-163,0,0,0, - -166,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-297,-301,0,0,0,0,-298,-62, + 0,0,-163,0,0,0,-166,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -145,0,0,0,-207,0,0,0,-146,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-145,0,0,0, + -207,0,0,0,-146,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-306,0,0,0,0,-325,0, - 0,0,0,-320,0,0,0,-17,0,-360, - -147,0,-190,-514,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-306, + 0,0,0,0,-325,0,0,0,0,-320, + 0,0,0,-17,0,-360,-147,0,-190,-514, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-206,0,0,-315,0,0,0, - -148,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-348, - 0,0,0,0,0,0,0,0,0,-396, - -328,0,0,0,-319,0,0,0,-289,0, + 0,0,0,0,0,0,0,0,0,-206, + 0,0,-315,0,0,0,-148,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-348,0,0,0,0, + 0,0,0,0,0,-396,-328,0,0,0, + -319,0,0,0,-289,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-409,0, - 0,0,-16,0,0,0,-290,-302,0,0, - 0,0,0,-346,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-409,0,0,0,-16,0, + 0,0,-290,-302,0,0,0,0,0,-346, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-149,0,0,0, - 0,-378,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-150,0,0,0,0,0, - 0,0,0,0,-237,-431,0,0,0,-135, - 0,0,0,-151,-461,0,0,0,0,0, - -379,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-265, - 0,0,0,0,0,0,0,0,-440,0, + 0,0,-149,0,0,0,0,-378,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-367,0,0,0,0,0,-331,0,0, - 0,0,-356,0,0,0,-333,0,0,0, - -152,-153,0,0,0,0,0,-103,0,0, + -150,0,0,0,0,0,0,0,0,0, + -237,-431,0,0,0,-135,0,0,0,-151, + -461,0,0,0,0,0,-379,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -442,0,0,0,0,0,-335,0,0,0, - 0,0,0,-215,0,-90,0,0,0,0, + 0,0,0,0,0,-265,0,0,0,0, + 0,0,0,0,-440,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-367,0,0, + 0,0,0,-331,0,0,0,0,-356,0, + 0,0,-333,0,0,0,-152,-153,0,0, + 0,0,0,-103,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-88,0, - 0,0,-154,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-442,0,0,0, + 0,0,-335,0,0,0,0,0,0,-215, + 0,-90,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -86,0,0,0,-228,0,0,0,0,0, + 0,0,0,0,-88,0,0,0,-154,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-87,0, - 0,0,-155,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-465,0,0,0,0,-245,0,0,0, - 0,0,0,0,0,0,0,0,0,-156, - -194,0,0,0,-203,0,0,0,-292,0, + 0,0,0,0,0,0,-86,0,0,0, + -228,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-140,0,0,0,-273,0,0,0,0, - 0,0,0,0,0,-229,0,0,0,-451, - -157,0,0,0,0,0,0,0,0,0, - -351,-121,0,0,0,0,0,-433,0,0, - 0,0,-326,0,0,0,0,0,0,-314, - 0,0,-176,0,0,0,-158,0,0,0, - 0,0,0,0,-159,0,0,-185,0,0, - 0,0,0,-352,0,0,0,0,0,0, - 0,0,0,0,-79,0,0,0,0,0, + 0,0,0,0,-87,0,0,0,-155,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-160,0,0, - 0,-80,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-465,0,0, + 0,0,-245,0,0,0,0,0,0,0, + 0,0,0,0,0,-156,-194,0,0,0, + -203,0,0,0,-292,0,0,0,0,0, + 0,0,0,0,0,0,0,-140,0,0, + 0,-273,0,0,0,0,0,0,0,0, + 0,-229,0,0,0,-451,-157,0,0,0, + 0,0,0,0,0,0,-351,-121,0,0, + 0,0,0,-433,0,0,0,0,-326,0, + 0,0,0,0,0,-314,0,0,-176,0, + 0,0,-158,0,0,0,0,0,0,0, + -159,0,0,-185,0,0,0,0,0,-352, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-452,0,0,0,0,0, - 0,-81,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,0,-161,0,0,0,-82,0, + 0,0,0,-160,0,0,0,-80,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-167,0,0,0,-387,0,0,0,0, - 0,0,0,0,0,0,0,0,-168,-169, - -380,0,0,0,-486,-212,-172,-48,0,0, - 0,0,-473,-173,-257,-329,0,-421,-386,0, - 0,0,0,-371,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-300,0,-117, + -452,0,0,0,0,0,0,-81,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-317,-174,0,0,0,0,-327, - 0,-175,0,0,0,0,0,0,0,0, - 0,0,0,-278,0,0,-337,0,-178,-42, - 0,-355,0,0,0,0,0,0,0,0, - 0,-361,-43,-438,0,0,0,0,-232,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-377,0,0, - 0,0,0,0,0,0,0,0,0,-208, - -230,0,0,0,0,0,-179,0,0,0, - 0,0,0,0,0,0,0,0,0,-374, - 0,0,-272,0,0,-180,-373,0,0,0, - 0,0,0,0,0,0,0,-513,0,0, + -161,0,0,0,-82,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -189,0,-52,0,0,0,0,0,0,0, - 0,0,-390,0,0,0,0,0,-339,-234, - 0,0,0,0,-357,-334,-508,-293,0,0, - 0,0,0,-164,0,-70,0,0,0,0, - -195,0,0,0,0,0,0,0,0,0, - 0,-18,0,0,0,-422,0,0,0,0, - 0,0,0,0,0,-384,0,-412,0,0, - -196,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-413,0,0,0, - 0,0,0,-385,0,0,-354,0,0,0, + 0,0,0,0,0,0,0,-167,0,0, + 0,-387,0,0,0,0,0,0,0,0, + 0,0,0,0,-168,-169,-380,0,0,0, + -486,-212,-172,-48,0,0,0,0,-473,-173, + -257,-329,0,-421,-386,0,0,0,0,-371, 0,0,0,0,0,0,0,0,0,0, - 0,-402,0,0,0,-268,0,0,0,0, - 0,0,0,0,-202,0,0,0,0,0, - -210,0,0,0,0,0,0,0,0,0, - -220,-205,0,0,0,0,0,0,0,0, - 0,0,-83,0,0,0,-118,0,0,0, + 0,0,0,-300,0,-117,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-317, + -174,0,0,0,0,-327,0,-175,0,0, + 0,0,0,0,0,0,0,0,0,-278, + 0,0,-337,0,-178,-42,0,-355,0,0, + 0,0,0,0,0,0,0,-361,-43,-438, + 0,0,0,0,-232,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-84,0, - 0,0,-221,0,0,0,0,0,0,0, + 0,0,0,-377,0,0,0,0,0,0, + 0,0,0,0,0,-208,-230,0,0,0, + 0,0,-179,0,0,0,0,0,0,0, + 0,0,0,0,0,-374,0,0,-272,0, + 0,-180,-373,0,0,0,0,0,0,0, + 0,0,0,-513,0,0,0,0,0,0, + 0,0,0,0,0,0,-189,0,-52,0, + 0,0,0,0,0,0,0,0,-390,0, + 0,0,0,0,-339,-234,0,0,0,0, + -357,-334,-195,-293,0,0,0,0,0,-164, + 0,-70,0,0,0,0,-196,0,0,0, + 0,0,0,0,0,0,0,-18,0,0, + 0,-422,0,0,0,0,0,0,0,0, + 0,-384,0,-412,0,0,-202,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-511,0,0,-307,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-223,-463, - 0,0,0,0,0,-240,-139,0,0,0, - -244,-366,0,0,0,-425,-447,0,0,0, - 0,0,0,0,0,-455,-270,-235,0,0, - 0,0,-405,0,-239,0,0,0,0,0, + 0,0,-413,0,0,0,0,0,0,-385, + 0,0,-354,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-402,0,0, + 0,-268,0,0,0,0,0,0,0,0, + -210,0,0,0,0,0,-220,0,0,0, + 0,0,0,0,-221,0,-223,-205,0,0, + 0,0,0,0,0,0,0,0,-83,0, + 0,0,-118,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-246,-468,0,0,0,0,0,0, + 0,0,0,0,-84,0,0,0,-240,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-261,0,-247,-408,0,-476,0,0, - -263,0,0,0,0,0,0,0,0,0, - -470,0,0,0,0,-120,-269,0,0,0, - 0,0,0,0,0,0,0,0,-241,0, - 0,0,-370,0,0,0,0,-264,0,0, + 0,0,0,0,0,0,0,-511,0,0, + -307,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-463,-244,0,0,0,0, + 0,-246,-139,0,0,0,-525,-366,0,0, + 0,-425,-447,0,0,0,0,0,0,0, + 0,-455,-270,-235,0,0,0,0,-391,-405, 0,0,0,0,0,0,0,0,0,0, - 0,-47,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-487,-134,-434, - -294,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-417,0,0, + 0,0,0,0,0,0,0,0,-261,-468, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-501,0,0,0,0,0, - -274,-275,-279,0,0,0,0,0,0,0, - 0,0,0,-283,0,0,0,0,-395,0, + 0,0,0,0,0,0,0,0,-263,0, + -247,-408,0,-476,0,0,-508,0,0,0, + 0,0,0,0,0,0,-470,0,0,0, + 0,-120,-269,0,0,0,0,0,0,0, + 0,0,0,0,-241,0,0,0,-370,0, + 0,0,0,-264,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-47,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-487,-134,-434,-294,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-503,0,0,0,0,-242,0,0,0, + 0,0,0,-417,0,-274,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-284,0,-249,0,0,0,0, - 0,0,0,0,0,0,0,0,-507,0, - 0,0,0,-271,0,0,0,0,0,0, - 0,0,0,0,0,0,-299,-287,0,0, - 0,0,-403,0,0,0,0,0,0,0, - 0,0,0,0,0,-522,0,0,0,0, - -276,0,0,0,0,0,0,0,0,0, - 0,0,0,-477,-484,0,0,0,0,-296, + -501,0,0,0,0,0,-275,0,-279,0, + 0,0,0,0,0,0,0,0,0,-283, + 0,0,0,0,-395,0,0,0,0,0, + 0,0,0,0,0,0,0,-503,0,0, + 0,0,-242,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-284, + 0,-249,0,0,0,0,0,0,0,0, + 0,0,0,0,-507,0,0,0,0,-271, 0,0,0,0,0,0,0,0,0,0, - 0,0,-527,0,0,0,0,0,-288,-504, - -303,0,0,0,0,0,0,0,0,0, - -14,0,0,-133,0,0,-397,0,-304,-456, - 0,0,0,0,0,0,0,0,0,-391, + 0,0,-299,-287,0,0,0,0,-403,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-420,-458,-457, - -460,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-74,0,0,0, + 0,-522,0,0,0,0,-276,0,0,0, + 0,0,0,0,0,0,0,0,0,-477, + -484,0,0,0,0,-296,0,0,0,0, + 0,0,0,0,0,0,0,0,-527,0, + 0,0,0,0,-288,-504,-303,0,0,0, + 0,0,0,0,0,0,-14,0,0,-133, + 0,0,-512,0,-304,-456,0,0,0,0, + 0,0,0,0,0,-458,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,-75,0,0,0,0,0,0,0,0, + 0,0,0,-420,-482,-457,-460,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-330,0,0,0, - -309,0,0,0,0,0,0,0,0,-505, + 0,0,-74,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-76,0,0,0,-322,0,0,0, + 0,0,0,0,0,-309,0,-75,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-459,-423,0,0,0, - -482,-509,0,0,0,0,0,-254,0,0, - -310,0,-479,-332,0,-345,0,0,0,0, - 0,0,0,-347,-362,-365,-388,0,0,0, - 0,-497,0,0,0,-389,0,0,0,0, - 0,0,-77,0,0,0,-122,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-106,0,0,-483,0, - -392,-349,0,-488,0,0,0,0,-393,-399, - 0,0,-124,-462,0,0,-437,-401,-375,0, + 0,0,-330,0,0,0,-310,0,0,0, + 0,0,0,0,0,-505,0,0,0,0, + 0,0,0,0,0,0,0,0,-76,0, + 0,0,-322,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-492,0,0,-490,0,0,0,-78,0, + 0,-459,-423,0,0,0,-332,-509,-239,0, + 0,0,0,-254,0,0,-345,0,-479,-347, + 0,-362,0,0,0,0,0,0,0,-365, + -388,-389,-392,0,0,0,0,-497,0,0, + 0,-393,0,0,0,0,0,0,-77,0, + 0,0,-122,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-106,0,0,-483,0,-399,-349,0,-488, + 0,0,0,-401,-404,-411,0,0,-124,-462, + 0,0,-418,-419,-375,0,0,0,0,0, + 0,0,0,0,0,0,0,-492,0,0, + -517,0,0,0,-78,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-369,0,0,0,0,-517,0,0,0, - -494,-427,-404,0,-411,0,0,0,0,-500, - 0,0,-336,0,0,-418,0,0,0,0, - 0,-419,-498,0,0,0,-439,-71,0,0, - 0,0,0,0,0,0,-441,0,0,0, - 0,0,0,0,0,-443,0,0,0,0, + 0,0,0,0,0,0,0,-369,0,0, + 0,0,0,0,0,0,-490,-427,0,0, + -439,0,0,0,0,-500,0,0,-336,0, + 0,-441,0,0,0,0,0,-443,-494,0, + 0,0,-444,-71,0,0,0,0,0,0, + -445,0,-446,0,0,0,0,0,0,0, + 0,-448,0,0,0,0,0,0,0,0, + 0,0,0,-464,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-498, + 0,0,0,0,0,0,0,0,0,-428, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-466,-467,-469,-474,-478,0, + -524,0,0,-485,-493,0,0,-502,0,0, + -510,0,-21,0,0,0,-515,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-499,0,0,0,0,0,0, - 0,0,0,-428,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-444,-445, - -446,-448,-464,0,0,0,0,-466,-467,0, - 0,-469,0,-474,0,0,-21,0,0,0, - -478,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-22,0, - 0,0,-485,0,0,0,0,0,0,0, + 0,0,0,0,-22,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -23,0,0,0,-493,0,0,0,0,0, + 0,0,0,0,0,0,-23,0,0,0, + -526,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,-24,0,0,0,-502,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-25,0,0,0,-510,0, + -25,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-26,0,0,0, - -515,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-27,0, - 0,0,-526,0,0,0,0,0,0,0, + 0,0,-26,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -60,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-27,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-72,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-60,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,-72,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-197,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-430,0, + -73,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-19,0,0,0,-518,0,0,0,0, + 0,0,-197,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-363,-450,0,-102,0,0,-216,0, - 0,0,0,0,0,-368,0,-217,0,0, - 0,0,0,0,-523,0,0,0,0,0, - 0,0,0,0,0,-358,0,0,0,0, + 0,0,0,0,-430,0,0,0,0,0, + 0,0,0,0,0,0,0,-19,0,0, + 0,-499,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-363,-450, + 0,-102,0,0,-216,0,0,0,0,0, + 0,-368,0,-217,0,0,0,0,0,0, + -518,0,0,0,0,0,0,0,0,0, + 0,-358,0,0,0,0,-523,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-359,0,0,0, + 0,0,0,0,0,-171,0,0,0,0, + -187,0,0,0,0,0,0,0,0,0, + -407,0,0,0,0,0,0,0,0,0, + 0,0,0,-416,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -359,0,0,0,0,0,0,0,0,-171, - 0,0,0,-524,-187,0,0,0,0,0, - 0,0,0,0,-407,0,0,0,0,0, - 0,0,0,0,0,0,0,-416,0,0, - 0,0,-512,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-255,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-255,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-426,0,0,0,0, + 0,-426,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-495, - 0,0,0,-308,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-489,0,0, + 0,0,0,0,0,-437,0,0,0,-308, 0,0,0,0,0,0,0,0,0,0, - -125,0,0,0,0,0,0,0,0,-341, + 0,0,0,-489,0,0,0,0,0,0, + 0,0,0,0,0,0,-125,0,0,0, + 0,0,0,0,0,-341,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-218,-219,-516,0,0,0, - 0,0,0,0,0,0,0,0,0,-192, + -218,-219,-516,0,0,0,0,0,0,0, + 0,0,0,0,0,-192,0,0,0,0, + 0,0,0,0,0,0,0,0,-225,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-225,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-280,0,0,0,0, - 0,-318,-424,0,0,0,0,0,0,0, - 0,-266,0,0,0,0,0,0,0,0, + 0,-280,0,0,0,0,0,-318,-424,-495, + 0,0,0,0,0,0,0,-266,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-376,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -506,0,0,0,0,0,0,0,0,0, - 0,0,-364,0,0,0,0,0,0,0, - 0,0,0,0,0,-291,0,0,0,0, - -267,0,-415,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-343,0,0,0, + 0,-376,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-506,0,0,0, + 0,0,0,0,0,0,0,0,-364,0, 0,0,0,0,0,0,0,0,0,0, + 0,-291,0,0,0,0,-267,0,-415,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-343,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-313,0,0,0, - -338,0,0,0,-344,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-350,0,0,0,-381,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-313,0,0,0,-338,0,0,0, + -344,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-350,0, + 0,0,-381,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-397,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-382,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-382,0,0,0,0,0,0,0,0, - 0,0,0,0,-491,0,0,0,0,0, - 0,0,0,-400,0,0,0,-414,0,0, - 0,-432,0,0,0,0,0,0,0,0, + -491,0,0,0,0,0,0,0,0,-400, + 0,0,0,-414,0,0,0,-432,0,0, 0,0,0,0,0,0,0,0,0,0, - -65,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,0, 0,0,0,0,0,0,0,0,0,0, - -182,0,0,0,0,0,-193,0,0,0, - 0,-204,0,0,0,0,0,-214,0,0, - 0,0,-259,0,0,0,0,0,0,-471, + 0,0,0,0,0,0,-182,0,0,0, + 0,0,-193,0,0,0,0,-204,0,0, + 0,0,0,-214,0,0,0,0,-259,0, + 0,0,0,0,0,-471,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-472, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-472,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-475,0,0, - 0,0,0,0,0,0,0,-44,0,-45, - -46,0,0,0,0,-198,0,-435,0,0, - 0,0,0,-436,0,0,0,0,0,0, - 0,0,0,0,0,-480,0,0,0,0, + 0,0,0,-475,0,0,0,0,0,0, + 0,0,0,-44,0,-45,-46,0,0,0, + 0,-198,0,-435,0,0,0,0,0,-436, 0,0,0,0,0,0,0,0,0,0, + 0,-480,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,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; @@ -534,528 +533,528 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface BaseAction { public final static char baseAction[] = { 169,4,133,82,82,33,33,66,66,38, - 38,40,40,193,193,194,194,195,195,1, - 1,15,15,15,15,15,15,15,15,16, - 16,16,14,11,11,6,6,6,6,6, - 6,2,64,64,5,5,12,12,44,44, - 134,134,135,55,55,43,17,17,17,17, + 38,40,40,193,1,1,15,15,15,15, + 15,15,15,15,16,16,16,14,11,11, + 6,6,6,6,6,6,2,64,64,5, + 5,12,12,44,44,134,134,135,55,55, + 43,17,17,17,17,17,17,17,17,17, 17,17,17,17,17,17,17,17,17,17, - 17,17,17,17,17,17,136,136,136,112, - 112,18,18,18,18,18,18,18,18,18, - 18,18,18,18,19,19,170,170,171,171, - 172,139,139,140,140,137,137,141,138,138, - 20,20,21,22,22,22,24,24,24,24, - 25,25,25,26,26,26,27,27,27,27, - 27,28,28,28,30,30,31,31,32,32, - 35,35,36,36,37,37,42,42,41,41, - 41,41,41,41,41,41,41,41,41,41, - 41,39,29,142,142,96,96,173,173,91, - 196,196,67,67,67,67,67,67,67,67, - 67,68,68,68,65,65,54,54,174,174, - 69,69,69,102,102,175,175,70,70,70, - 176,176,71,71,71,71,71,72,72,83, - 83,83,83,83,83,83,49,49,49,49, - 49,113,113,114,114,50,177,23,23,23, - 23,23,48,48,86,86,86,86,86,149, - 149,144,144,144,144,144,145,145,145,146, - 146,146,147,147,147,148,148,148,87,87, - 87,87,87,88,88,88,13,13,13,13, - 13,13,13,13,13,13,13,97,118,118, - 118,118,118,118,116,116,116,117,117,151, - 151,150,150,120,120,103,78,78,79,80, - 52,47,152,152,53,51,85,85,153,153, - 143,143,121,122,122,75,75,154,154,62, - 62,62,59,59,58,63,63,74,74,57, - 57,57,89,89,99,98,98,61,61,60, - 60,56,56,45,100,100,100,92,92,92, - 93,93,94,94,94,95,95,104,104,104, - 106,106,105,105,197,197,90,90,179,179, - 179,179,179,124,46,46,156,178,178,125, - 125,125,125,126,158,180,180,34,34,115, - 127,127,127,127,107,107,119,119,119,159, - 160,160,160,160,160,160,160,160,160,160, - 160,183,183,181,181,182,182,161,161,161, - 161,162,184,109,108,108,185,185,163,163, - 163,163,101,101,101,186,186,8,8,9, - 187,187,188,164,155,155,165,165,166,167, - 167,7,7,10,189,189,189,189,189,189, + 17,136,136,136,113,113,18,18,18,18, + 18,18,18,18,18,18,18,18,18,19, + 19,170,170,171,171,172,139,139,140,140, + 137,137,141,138,138,20,20,21,22,22, + 22,24,24,24,24,25,25,25,26,26, + 26,27,27,27,27,27,28,28,28,30, + 30,31,31,32,32,35,35,36,36,37, + 37,42,42,41,41,41,41,41,41,41, + 41,41,41,41,41,41,39,29,142,142, + 96,96,173,173,91,194,194,67,67,67, + 67,67,67,67,67,67,68,68,68,65, + 65,54,54,174,174,69,69,69,102,102, + 175,175,70,70,70,176,176,71,71,71, + 71,71,72,72,83,83,83,83,83,83, + 83,83,49,49,49,49,49,114,114,112, + 112,50,177,23,23,23,23,23,48,48, + 86,86,86,86,86,149,149,144,144,144, + 144,144,145,145,145,146,146,146,147,147, + 147,148,148,148,87,87,87,87,87,88, + 88,88,13,13,13,13,13,13,13,13, + 13,13,13,97,118,118,118,118,118,118, + 116,116,116,117,117,151,151,150,150,120, + 120,103,78,78,79,80,52,47,152,152, + 53,51,85,85,153,153,143,143,121,122, + 122,75,75,154,154,62,62,62,59,59, + 58,63,63,74,74,57,57,57,89,89, + 99,98,98,61,61,60,60,56,56,45, + 100,100,100,92,92,92,93,93,94,94, + 94,95,95,104,104,104,106,106,105,105, + 195,195,90,90,179,179,179,179,179,124, + 46,46,156,178,178,125,125,125,125,126, + 158,180,180,34,34,115,127,127,127,127, + 107,107,119,119,119,159,160,160,160,160, + 160,160,160,160,160,160,160,183,183,181, + 181,182,182,161,161,161,161,162,184,109, + 108,108,185,185,163,163,163,163,101,101, + 101,186,186,8,8,9,187,187,188,164, + 155,155,165,165,166,167,167,7,7,10, 189,189,189,189,189,189,189,189,189,189, 189,189,189,189,189,189,189,189,189,189, 189,189,189,189,189,189,189,189,189,189, - 189,189,189,189,189,189,76,81,81,168, - 168,129,129,130,130,130,130,130,130,3, - 131,131,128,128,110,110,84,77,73,157, - 157,111,111,190,190,190,132,132,123,123, - 191,191,169,169,1132,41,2650,2649,1090,4160, - 33,36,37,1016,1022,32,34,2632,31,29, - 56,1084,112,82,83,113,1109,1260,1285,1197, - 1388,1345,1431,2037,1423,1517,1467,717,277,1553, - 1560,148,504,41,3013,163,149,2508,41,946, - 38,1260,3057,33,36,37,1016,1022,63,34, - 494,2396,41,946,38,236,2882,33,36,37, - 1016,1022,32,34,935,31,29,56,1084,112, - 82,83,113,1109,30,1285,1197,1388,1345,2323, - 239,234,235,504,1646,1768,40,2396,41,946, - 38,278,2882,33,36,37,1016,1022,32,34, - 935,31,29,56,1084,112,82,83,91,246, - 249,252,255,2472,2803,41,281,2659,41,946, - 38,1074,3057,33,36,37,1016,1022,62,34, - 331,41,283,1236,1269,4697,674,727,2690,2987, - 3146,3607,3643,4301,1660,41,946,38,2833,2882, - 33,36,37,1016,1022,32,34,935,31,29, - 56,1084,112,82,83,113,1109,343,1285,1197, - 1388,1345,1431,67,1423,1517,1467,2176,3370,1553, - 1560,148,4691,1113,1343,514,149,2176,2048,3626, - 2514,2598,4691,4691,2668,99,678,41,1622,388, - 515,1660,41,946,38,2833,2882,33,36,37, - 1016,1022,32,34,935,31,29,56,1084,112, - 82,83,113,1109,343,1285,1197,1388,1345,1431, - 55,1423,1517,1467,728,1212,1553,1560,148,1603, - 2871,1260,514,149,332,728,3626,572,2493,2519, - 1332,2421,1604,66,510,2425,187,515,592,2161, - 41,946,38,3182,4702,33,36,37,1016,1022, - 32,34,2729,508,75,2787,983,1660,41,946, - 38,2833,2882,33,36,37,1016,1022,32,34, - 935,31,29,56,1084,112,82,83,113,1109, - 343,1285,1197,1388,1345,1431,2203,1423,1517,1467, - 2011,510,1553,1560,148,2176,100,572,514,149, - 4691,440,3626,1983,1943,48,2955,102,4340,2806, - 1913,495,2787,515,1865,41,946,38,2833,2882, - 33,36,37,1016,1022,32,34,935,31,29, - 56,1084,112,82,83,113,1109,343,1285,1197, - 1388,1345,1431,1542,1423,1517,1467,1911,402,1553, - 1560,148,332,44,44,514,149,684,741,3626, - 504,41,1622,388,331,41,283,510,1337,4708, - 515,1650,41,946,38,1335,4702,33,36,37, - 1016,1022,65,34,2780,2901,2167,435,2787,2519, - 1994,41,946,38,428,2882,33,36,37,1016, - 1022,32,34,935,31,29,56,1084,112,82, - 83,113,1109,389,1285,1197,1388,1345,1431,1396, - 1423,1517,1467,1512,511,1553,1560,148,4691,2665, - 3441,379,149,1729,41,946,38,2519,2882,33, - 36,37,1016,1022,32,34,935,31,29,56, - 1084,112,82,83,113,1109,2231,1285,1197,1388, - 1345,1431,2493,1423,1517,1467,329,335,1553,1560, - 148,457,2514,3441,379,149,2102,41,946,38, - 333,2882,33,36,37,1016,1022,32,34,935, - 31,29,56,1084,112,82,83,113,1109,3480, - 1285,1197,1388,1345,1431,44,1423,1517,1467,817, - 1260,1553,1560,148,1980,385,2155,163,149,456, - 1929,41,946,38,2577,2882,33,36,37,1016, - 1022,32,34,935,31,29,56,1084,112,82, - 83,113,1109,74,1285,1197,1388,1345,1431,417, - 1423,1517,1467,1088,1418,1553,1560,148,386,2155, - 3441,379,149,2216,41,394,2102,41,946,38, - 3562,2882,33,36,37,1016,1022,32,34,935, - 31,29,56,1084,112,82,83,113,1109,3404, - 1285,1197,1388,1345,1431,592,1423,1517,1467,2519, - 4541,1553,1560,148,504,41,286,373,149,504, - 3241,1718,41,295,2396,41,946,38,674,2882, - 33,36,37,1016,1022,32,34,935,31,29, - 56,1084,112,82,83,113,1109,582,1285,1197, - 1388,1345,1431,1088,2497,377,2155,2102,41,946, - 38,1848,2882,33,36,37,1016,1022,32,34, - 935,31,29,56,1084,112,82,83,113,1109, - 3716,1285,1197,1388,1345,1431,356,1423,1517,1467, - 1980,4037,1553,1560,148,528,2848,1088,373,149, - 372,2102,41,946,38,2519,2882,33,36,37, - 1016,1022,32,34,935,31,29,56,1084,112, - 82,83,113,1109,2068,1285,1197,1388,1345,1431, - 730,1423,1517,1467,400,2488,1553,1560,148,290, - 770,1596,373,149,3573,1036,1427,1801,41,946, - 38,2900,2882,33,36,37,1016,1022,32,34, - 935,31,29,56,1084,112,82,83,113,1109, - 161,1285,1197,1388,1345,1431,355,1423,1517,1467, - 532,371,1553,1560,148,528,44,57,147,149, - 928,2102,41,946,38,1814,2882,33,36,37, - 1016,1022,32,34,935,31,29,56,1084,112, - 82,83,113,1109,353,1285,1197,1388,1345,1431, - 324,1423,1517,1467,1260,369,1553,1560,148,528, - 1260,2730,164,149,2102,41,946,38,156,2882, - 33,36,37,1016,1022,32,34,935,31,29, - 56,1084,112,82,83,113,1109,59,1285,1197, - 1388,1345,1431,93,1423,1517,1467,1260,44,1553, - 1560,148,4353,234,2730,160,149,2102,41,946, - 38,60,2882,33,36,37,1016,1022,32,34, - 935,31,29,56,1084,112,82,83,113,1109, - 58,1285,1197,1388,1345,1431,2807,1423,1517,1467, - 538,1270,1553,1560,148,444,4563,1259,159,149, - 2102,41,946,38,314,2882,33,36,37,1016, - 1022,32,34,935,31,29,56,1084,112,82, - 83,113,1109,76,1285,1197,1388,1345,1431,44, - 1423,1517,1467,2355,941,1553,1560,148,2781,504, - 3128,158,149,2102,41,946,38,1140,2882,33, - 36,37,1016,1022,32,34,935,31,29,56, - 1084,112,82,83,113,1109,77,1285,1197,1388, - 1345,1431,44,1423,1517,1467,2749,44,1553,1560, - 148,2145,1260,46,157,149,2102,41,946,38, - 1415,2882,33,36,37,1016,1022,32,34,935, - 31,29,56,1084,112,82,83,113,1109,161, - 1285,1197,1388,1345,1431,96,1423,1517,1467,2519, - 44,1553,1560,148,3125,1260,248,156,149,2102, - 41,946,38,853,2882,33,36,37,1016,1022, - 32,34,935,31,29,56,1084,112,82,83, - 113,1109,2552,1285,1197,1388,1345,1431,350,1423, - 1517,1467,1260,44,1553,1560,148,2946,504,3821, - 155,149,2102,41,946,38,1355,2882,33,36, - 37,1016,1022,32,34,935,31,29,56,1084, - 112,82,83,113,1109,1762,1285,1197,1388,1345, - 1431,327,1423,1517,1467,1260,2622,1553,1560,148, - 3147,1474,1317,154,149,2102,41,946,38,1413, - 2882,33,36,37,1016,1022,32,34,935,31, - 29,56,1084,112,82,83,113,1109,1805,1285, - 1197,1388,1345,1431,44,1423,1517,1467,2803,44, - 1553,1560,148,3327,1260,1647,153,149,2102,41, - 946,38,75,2882,33,36,37,1016,1022,32, - 34,935,31,29,56,1084,112,82,83,113, - 1109,1708,1285,1197,1388,1345,1431,73,1423,1517, - 1467,1260,44,1553,1560,148,2704,1260,2578,152, - 149,2102,41,946,38,2596,2882,33,36,37, - 1016,1022,32,34,935,31,29,56,1084,112, - 82,83,113,1109,72,1285,1197,1388,1345,1431, - 71,1423,1517,1467,1260,44,1553,1560,148,3537, - 1260,2665,151,149,2102,41,946,38,2900,2882, - 33,36,37,1016,1022,32,34,935,31,29, - 56,1084,112,82,83,113,1109,70,1285,1197, - 1388,1345,1431,2228,1423,1517,1467,1260,44,1553, - 1560,148,2856,1260,1613,150,149,2059,41,946, - 38,768,2882,33,36,37,1016,1022,32,34, - 935,31,29,56,1084,112,82,83,113,1109, - 61,1285,1197,1388,1345,1431,60,1423,1517,1467, - 381,591,1553,2961,169,2102,41,946,38,852, - 2882,33,36,37,1016,1022,32,34,935,31, - 29,56,1084,112,82,83,113,1109,2150,1285, - 1197,1388,1345,1431,1357,1423,1517,1467,1301,44, - 1553,1560,148,4126,2519,354,145,149,44,328, - 2781,939,1036,1980,2309,41,946,38,1589,2882, - 33,36,37,1016,1022,32,34,935,31,29, - 56,1084,112,82,83,113,1109,161,1285,1197, - 1388,1345,1431,3407,1423,1517,1467,581,404,1553, - 1560,148,444,1714,2720,194,149,2396,41,946, - 38,1026,2882,33,36,37,1016,1022,32,34, - 935,31,29,56,1084,112,82,83,113,1109, - 2883,1285,1197,1388,1345,1431,103,1423,1517,1467, - 2781,1260,1553,2961,169,2396,41,946,38,2487, - 2882,33,36,37,1016,1022,32,34,935,31, - 29,56,1084,112,82,83,113,1109,2150,1285, - 1197,1388,1345,1431,323,1423,1517,1467,301,2781, - 1553,2961,169,1773,41,946,38,1853,1980,47, - 36,37,1016,1022,2396,41,946,38,294,2882, - 33,36,37,1016,1022,32,34,935,31,29, - 56,1084,112,82,83,113,1109,225,1285,1197, - 1388,1345,1431,325,1423,1517,1467,1175,2277,1553, - 2961,169,2396,41,946,38,2233,2882,33,36, - 37,1016,1022,32,34,935,31,29,56,1084, - 112,82,83,113,1109,1710,1285,1197,1388,1345, - 1431,326,1423,1517,1467,1118,2781,1553,2961,169, - 1790,41,946,38,2520,1980,46,36,37,1016, - 1022,2396,41,946,38,420,2882,33,36,37, - 1016,1022,32,34,935,31,29,56,1084,112, - 82,83,113,1109,305,1285,1197,1388,1345,1431, - 1850,1423,1517,1467,418,3629,1553,2961,169,2439, - 41,946,38,419,2882,33,36,37,1016,1022, - 32,34,935,31,29,56,1084,112,82,83, - 113,1109,2884,1285,1197,1388,1345,1431,44,1423, - 1517,1467,4151,2519,1553,2961,169,1790,41,946, - 38,843,2158,1940,36,37,1016,1022,2396,41, - 946,38,422,2882,33,36,37,1016,1022,32, - 34,935,31,29,56,1084,112,82,83,113, - 1109,2781,1285,1197,1388,1345,1431,44,1423,1517, - 1467,3692,2724,2605,2655,3243,2396,41,946,38, - 3812,2882,33,36,37,1016,1022,32,34,935, - 31,29,56,1084,112,82,83,113,1109,184, - 1285,1197,1388,1345,1431,104,1423,1517,2505,2396, - 41,946,38,930,2882,33,36,37,1016,1022, - 32,34,935,31,29,56,1084,112,82,83, - 113,1109,1155,1285,1197,1388,1345,1431,2150,1423, - 2461,2396,41,946,38,669,2882,33,36,37, - 1016,1022,32,34,935,31,29,56,1084,112, - 82,83,113,1109,1155,1285,1197,1388,2383,2396, - 41,946,38,2110,2882,33,36,37,1016,1022, - 32,34,935,31,29,56,1084,112,82,83, - 113,1109,2979,1285,1197,1388,2420,1306,41,946, - 38,2858,4476,33,36,37,1016,1022,339,34, - 2115,504,41,1622,388,504,41,1622,388,1227, - 41,946,38,2666,4476,33,36,37,1016,1022, - 339,34,1650,41,946,38,1911,4702,33,36, - 37,1016,1022,64,34,277,2753,41,284,55, - 2781,1809,351,390,424,320,2067,322,52,315, - 2029,592,1190,41,2831,1504,4567,4165,504,41, - 295,352,3389,504,41,1622,388,320,2067,322, - 1911,315,2029,504,41,1768,2971,321,203,344, - 1861,1290,349,352,2021,1398,55,3328,504,41, - 1676,1633,287,520,592,1603,2508,277,279,4602, - 3314,344,1861,1290,349,2396,41,946,38,1595, - 2882,33,36,37,1016,1022,32,34,935,31, - 29,56,1084,112,82,83,113,1109,408,1285, - 1197,1991,2396,41,946,38,288,2882,33,36, - 37,1016,1022,32,34,935,31,29,56,1084, - 112,82,83,113,1109,2781,1285,1197,2107,1499, - 340,3050,2396,41,946,38,366,2882,33,36, - 37,1016,1022,32,34,935,31,29,56,1084, - 112,82,83,113,1109,394,1285,1197,2135,2396, - 41,946,38,202,2882,33,36,37,1016,1022, - 32,34,935,31,29,56,1084,112,82,83, - 113,1109,1546,1285,1197,2154,1639,41,946,38, - 4497,4545,33,36,37,1016,1022,339,34,2626, - 2566,504,41,1622,388,2998,1703,1724,1188,2833, - 2833,4691,1036,2847,1785,1337,1703,534,262,2173, - 2833,4691,534,4175,1790,41,946,38,343,2407, - 2020,36,37,1016,1022,431,3662,165,1613,2407, - 1387,232,161,332,320,2067,322,161,315,2029, - 3710,185,2271,243,1118,1989,185,2271,730,3126, - 2850,1296,2146,332,208,219,4463,207,216,217, - 218,220,174,332,2936,4310,2665,44,200,1878, - 44,3163,1260,173,534,188,172,175,176,177, - 178,179,1911,44,1,2780,360,2833,534,1458, - 3241,236,2237,343,1374,3507,360,308,312,161, - 1675,3061,3103,334,335,107,343,232,2727,1070, - 1675,3061,3103,161,2150,3626,244,234,235,2059, - 1914,669,185,2271,730,4691,781,2717,3626,3705, - 208,219,4463,207,216,217,218,220,174,1682, - 331,41,450,1458,3241,4624,2152,1980,299,173, - 186,189,172,175,176,177,178,179,1534,41, - 946,38,2858,4476,33,36,37,1016,1022,339, - 34,2692,2150,2482,41,1622,388,333,736,4615, - 201,2927,2744,592,3243,3774,241,730,4628,44, - 2753,41,281,1818,352,44,2645,3001,2176,1113, - 2833,376,94,4691,2691,108,1188,277,2656,289, - 1036,1746,346,1861,1290,349,320,2067,322,232, - 315,2029,1416,41,1622,388,418,41,450,391, - 424,4624,352,523,236,165,1260,351,1260,2446, - 3242,2184,210,219,4463,209,216,217,218,220, - 344,1861,1290,349,3351,332,55,592,524,239, - 234,235,4632,289,44,1603,1854,2936,1203,3083, - 278,2146,211,213,215,296,297,3168,352,221, - 212,214,504,41,1622,388,669,3507,246,249, - 252,255,2472,2490,3242,2072,344,1861,1290,349, - 1074,1677,1417,374,1595,443,3640,3648,520,4106, - 2742,2521,69,41,1622,388,430,2690,2987,3146, - 3607,3643,4301,2396,41,946,38,2147,2882,33, - 36,37,1016,1022,32,34,935,31,29,56, - 1084,112,82,83,113,1109,277,1285,2241,2396, - 41,946,38,2895,2882,33,36,37,1016,1022, - 32,34,935,31,29,56,1084,112,82,83, - 113,1109,1980,1285,2242,1488,41,3576,38,4497, - 4545,33,36,37,1016,1022,339,34,236,1855, - 2781,447,3640,3648,393,424,2232,765,41,1622, - 388,1104,1718,3596,295,95,2045,349,108,3056, - 2833,534,730,248,234,235,1260,1316,504,41, - 1768,280,4537,44,78,2800,522,4246,304,343, - 232,55,332,320,2067,322,161,315,2029,527, - 1603,1984,1848,2736,436,185,2271,730,534,448, - 2010,3626,2972,208,219,4463,207,216,217,218, - 220,174,530,2452,4310,2718,44,232,2781,2833, - 3702,2624,173,161,3814,172,175,176,177,178, - 179,523,185,2271,730,534,2175,669,2407,2425, - 208,219,4463,207,216,217,218,220,174,504, - 3254,1768,80,2724,232,2068,206,2833,2361,173, - 161,183,172,175,176,177,178,179,1461,185, - 2271,730,504,41,1622,388,2407,208,219,4463, - 207,216,217,218,220,174,415,3584,610,44, - 2844,2189,534,1036,2833,2833,173,236,181,172, - 175,176,177,178,179,360,55,1246,44,50, - 2955,232,3200,2407,2407,1603,724,161,1552,1810, - 3061,3103,251,234,235,697,185,2271,730,534, - 426,1673,2899,1499,208,219,4463,207,216,217, - 218,220,174,502,2686,392,424,3410,232,2216, - 41,394,3571,173,161,182,172,175,176,177, - 178,179,784,185,2271,730,534,1577,41,1768, - 3294,208,219,4463,207,216,217,218,220,174, - 502,361,499,501,2409,232,1577,41,1768,280, - 173,161,192,172,175,176,177,178,179,871, - 185,2271,730,534,504,41,1768,285,208,219, - 4463,207,216,217,218,220,174,1337,1873,499, - 501,3631,232,504,41,1622,388,173,161,3931, - 172,175,176,177,178,179,958,185,2271,730, - 534,504,41,1768,282,208,219,4463,207,216, - 217,218,220,174,2781,2781,3722,429,3803,232, - 504,41,1768,3574,173,161,197,172,175,176, - 177,178,179,1045,185,2271,730,534,2665,2790, - 2781,2485,208,219,4463,207,216,217,218,220, - 174,2145,204,300,1508,2833,232,1980,2833,2857, - 2687,173,161,191,172,175,176,177,178,179, - 1911,185,2271,730,343,331,335,343,4327,208, - 219,4463,207,216,217,218,220,174,44,1911, - 44,44,3647,526,1247,3561,673,730,173,563, - 199,172,175,176,177,178,179,2396,41,946, - 38,376,2882,33,36,37,1016,1022,32,34, - 935,31,29,56,1084,112,82,83,113,1109, - 75,1775,2396,41,946,38,298,2882,33,36, - 37,1016,1022,32,34,935,31,29,56,1084, - 112,82,83,113,1109,306,1811,1550,41,946, - 38,2941,4545,33,36,37,1016,1022,339,34, - 1844,41,946,38,4497,4476,33,36,37,1016, - 1022,339,34,2396,41,946,38,1337,2882,33, - 36,37,1016,1022,32,34,935,31,29,56, - 1084,112,82,83,113,1891,1260,504,41,1622, - 388,1911,1854,3438,333,320,2067,322,1188,316, - 2029,2901,1036,44,2943,1547,2738,4270,320,2067, - 322,352,315,2029,2935,2495,2947,2511,439,378, - 453,449,2216,41,394,1296,2923,165,2665,346, - 1861,1290,349,2396,41,946,38,2769,2882,33, - 36,37,1016,1022,32,34,935,31,29,56, - 1084,112,82,83,113,1899,1713,382,1732,44, - 855,1972,1316,950,1260,2855,335,4537,380,2937, - 2945,308,312,2862,504,41,295,2885,2972,1349, - 41,3576,38,4497,4476,33,36,37,1016,1022, - 339,34,44,3697,1847,1260,3520,3235,236,2396, - 41,946,38,3705,2882,33,36,37,1016,1022, - 32,34,935,31,29,56,1084,112,82,83, - 113,1941,2771,254,234,235,2833,2781,3272,3909, - 352,1260,2832,2974,236,2949,2833,320,2067,322, - 2874,315,2029,2864,2818,232,2964,2833,344,1861, - 1290,349,2965,1260,2010,232,342,2976,44,257, - 234,235,1036,1461,3309,226,232,2978,210,219, - 4463,209,216,217,218,220,88,3365,210,219, - 4463,209,216,217,218,220,3032,161,519,210, - 219,4463,209,216,217,218,220,1255,211,213, - 215,296,297,3168,1260,221,212,214,211,213, - 215,296,297,3168,44,221,212,214,1036,211, - 213,215,296,297,3168,427,517,212,214,2984, - 2986,2988,2990,2760,2402,4106,3420,4193,2994,175, - 416,3584,2980,3556,1226,4106,3439,2396,1646,946, - 1681,2995,2882,33,36,37,1016,1022,32,34, - 935,31,29,56,1084,112,82,83,90,2396, - 41,946,38,940,2882,33,36,37,1016,1022, - 32,34,935,31,29,56,1084,112,82,83, - 89,2396,41,946,38,2999,2882,33,36,37, - 1016,1022,32,34,935,31,29,56,1084,112, - 82,83,88,2396,41,946,38,3000,2882,33, - 36,37,1016,1022,32,34,935,31,29,56, - 1084,112,82,83,87,2396,41,946,38,3003, - 2882,33,36,37,1016,1022,32,34,935,31, - 29,56,1084,112,82,83,86,2396,41,946, - 38,1119,2882,33,36,37,1016,1022,32,34, - 935,31,29,56,1084,112,82,83,85,2396, - 41,946,38,2896,2882,33,36,37,1016,1022, - 32,34,935,31,29,56,1084,112,82,83, - 84,2263,41,946,38,5230,2882,33,36,37, - 1016,1022,32,34,935,31,29,56,1084,112, - 82,83,110,2396,41,946,38,5230,2882,33, - 36,37,1016,1022,32,34,935,31,29,56, - 1084,112,82,83,115,2396,41,946,38,5230, - 2882,33,36,37,1016,1022,32,34,935,31, - 29,56,1084,112,82,83,114,2396,41,946, - 38,5230,2882,33,36,37,1016,1022,32,34, - 935,31,29,56,1084,112,82,83,111,1369, - 41,946,38,4497,4476,33,36,37,1016,1022, - 339,34,2353,41,946,38,1260,2882,33,36, - 37,1016,1022,32,34,935,31,29,56,1084, - 92,82,83,2706,2847,5230,44,2833,1036,44, - 1036,5230,5230,1036,5230,5230,2739,5230,44,4164, - 2833,5230,1036,5230,5230,1260,232,320,2067,322, - 5230,315,2029,161,5230,161,2718,5230,161,232, - 2833,5230,205,3364,1296,2548,5230,161,1724,210, - 219,4463,209,216,217,218,220,1761,3383,2407, - 5230,1337,210,219,4463,209,216,217,218,220, - 2186,41,1622,388,2781,765,41,1622,388,211, - 213,215,296,297,3168,2925,516,212,214,2833, - 309,312,211,213,215,296,297,3168,2953,222, - 212,214,2833,1980,55,5230,5230,5230,232,55, - 5230,5230,198,1603,2284,5230,5230,5230,1603,53, - 5230,232,2665,1188,5230,2421,360,1036,5230,5230, - 2456,210,219,4463,209,216,217,218,220,5230, - 2896,3061,3103,730,210,219,4463,209,216,217, - 218,220,165,5230,5230,5230,1337,521,5230,2924, - 335,211,213,215,296,297,3168,5230,307,212, - 214,5230,5230,5230,211,213,215,296,297,3168, - 2885,496,212,214,1369,41,946,38,4497,4476, - 33,36,37,1016,1022,339,34,5230,1369,41, - 946,38,4497,4476,33,36,37,1016,1022,339, - 34,2540,41,1622,388,5230,736,2665,5230,1853, - 1388,41,946,38,242,4545,33,36,37,1016, - 1022,339,34,5230,5230,44,44,2889,5230,1036, - 1036,1036,320,2067,322,277,315,2029,5230,5230, - 678,41,1622,388,3440,335,320,2067,322,2021, - 315,2029,5230,1200,161,161,161,2833,4713,5230, - 5230,5230,236,3887,1767,1804,167,333,320,2067, - 322,5230,318,2029,55,5230,232,5230,5230,5230, - 5230,519,5230,1603,53,5230,44,240,234,235, - 1036,5230,1188,1188,5230,1164,1036,1036,278,870, - 405,4402,1502,41,946,38,3035,4476,33,36, - 37,1016,1022,339,34,161,247,250,253,256, - 2472,165,165,5230,5230,1934,5230,2857,1074,406, - 407,408,296,297,3168,5230,1388,41,946,38, - 401,4545,33,36,37,1016,1022,339,34,5230, - 5230,44,5230,5230,3123,1036,5230,5230,5230,5230, - 317,3511,322,1974,41,946,38,2636,4476,33, - 36,37,1016,1022,339,34,678,41,1622,388, - 161,1275,5230,2724,5230,2833,4713,2833,2732,3076, - 4076,5230,5230,333,320,2067,322,2176,316,2029, - 4115,5230,4691,5230,232,5230,2407,5230,5230,5230, - 55,5230,409,411,5230,5230,5230,5230,5230,1603, - 2710,317,3511,322,5230,5230,5230,870,405,4402, - 5230,2483,5230,5230,907,5230,4481,678,41,1622, - 388,765,41,1622,388,678,41,1622,388,5230, - 5230,5230,5230,5230,332,5230,1924,406,407,408, - 296,297,3168,678,41,1622,388,678,41,1622, - 388,55,5230,502,5230,55,5230,5230,5230,55, - 1603,53,3123,5230,1603,53,4436,5230,1603,2768, - 5230,5230,920,5230,5230,5230,2674,55,5230,5230, - 2483,55,678,41,1622,388,1603,53,5230,5230, - 1603,53,500,501,5230,2878,5230,1924,2651,534, - 5230,5230,2942,5230,678,41,1622,388,2489,41, - 1622,388,2516,41,1622,388,55,5230,343,5230, - 409,412,5230,5230,161,1603,53,5230,5230,5230, - 5230,44,5230,5230,193,534,5230,3333,55,5230, - 4288,5230,55,5230,5230,5230,55,1603,53,5230, - 5230,1603,53,5230,343,1603,53,5230,5230,3557, - 161,5230,5230,2478,5230,5230,5230,3644,5230,5230, - 581,504,41,1622,388,5230,3626,504,41,1622, - 388,5230,504,41,1622,388,5230,1380,504,41, - 1622,388,5230,504,41,1622,388,195,5230,5230, - 44,5230,5230,5230,534,55,5230,5230,5230,5230, - 5230,55,5230,5230,1603,3049,55,5230,5230,5230, - 1603,2850,55,343,44,1603,1854,55,534,161, - 5230,1603,654,5230,5230,5230,1603,2688,44,193, - 5230,5230,534,5230,5230,4288,5230,343,44,5230, - 44,44,2833,161,2833,2833,44,5230,44,5230, - 2833,343,2833,193,44,5230,5230,161,2833,4288, - 3390,343,5230,343,343,5230,44,193,5230,343, - 2833,343,5230,4288,5230,5230,5230,343,5230,5230, - 5230,5230,5230,3626,5230,3626,3626,5230,5230,343, - 5230,3626,3634,3626,1689,5230,1725,1751,5230,3626, - 5230,5230,1632,5230,506,5230,5230,5230,5230,5230, - 504,3626,5230,5230,5230,5230,3665,5230,5230,5230, - 5230,5230,531,5230,5230,5230,5230,5230,5230,5230, - 3701,5230,0,45,5250,0,45,5249,0,913, - 35,0,437,914,0,451,1065,0,44,623, - 0,44,5250,0,44,5249,0,2582,131,0, - 1,441,0,455,949,0,454,997,0,3199, - 97,0,913,387,0,41,39,0,38,40, - 0,45,623,0,1,798,0,1,5506,0, - 1,5505,0,1,5504,0,1,5503,0,1, - 5502,0,1,5501,0,1,5500,0,1,5499, - 0,1,5498,0,1,5497,0,1,5496,0, - 45,1,5250,0,45,1,5249,0,2063,1, - 0,5468,245,0,5467,245,0,5568,245,0, - 5567,245,0,5495,245,0,5494,245,0,5493, - 245,0,5492,245,0,5491,245,0,5490,245, - 0,5489,245,0,5488,245,0,5506,245,0, - 5505,245,0,5504,245,0,5503,245,0,5502, - 245,0,5501,245,0,5500,245,0,5499,245, - 0,5498,245,0,5497,245,0,5496,245,0, - 45,5250,245,0,45,5249,245,0,5274,245, - 0,5250,54,0,5249,54,0,49,5272,0, - 49,43,0,2582,133,0,2582,132,0,5236, - 1,0,5235,1,0,2658,241,0,38,388, - 0,35,387,0,5560,442,0,1336,442,0, - 1,98,0,53,43,0,5274,1,0,45, - 1,0,498,3131,0,5274,1,233,0,45, - 1,233,0,233,414,0,5250,43,0,5249, - 43,0,5272,51,0,43,51,0,5250,42, - 0,5249,42,0,5250,2,43,0,5249,2, - 43,0,5240,403,0,5239,403,0,1,4274, - 0,1,3401,0,1,623,0,233,413,0, - 5560,101,0,1336,101,0,41,79,0,1929, - 319,0,1,5560,0,1,1336,0,3568,282, - 0,498,4093,0,1,233,0,233,224,0, - 233,223,0,1,1123,0,1,3259,0,5242, - 1,0,5238,1,0,1,233,3737,0,5239, - 233,0,3746,233,0,5242,383,0,5241,383, - 0,3809,233,0,10,12,0,8,10,12, - 0,190,3346,0,3953,383,0,8,12,0 + 189,189,189,189,189,189,189,189,189,189, + 189,189,76,81,81,168,168,129,129,130, + 130,130,130,130,130,3,131,131,128,128, + 110,110,84,77,73,157,157,111,111,190, + 190,190,132,132,123,123,191,191,169,169, + 1132,36,2646,2645,1118,4156,28,31,32,1012, + 1018,27,29,2628,26,24,51,1105,107,77, + 78,108,1281,1913,1377,1341,1420,1384,1463,2177, + 1427,1513,1489,713,273,1549,1556,143,508,36, + 2965,158,144,2093,36,942,33,1913,3053,28, + 31,32,1012,1018,58,29,490,3168,36,942, + 33,232,2878,28,31,32,1012,1018,27,29, + 931,26,24,51,1105,107,77,78,108,1281, + 25,1377,1341,1420,1384,2319,235,230,231,508, + 1642,1764,35,3168,36,942,33,274,2878,28, + 31,32,1012,1018,27,29,931,26,24,51, + 1105,107,77,78,86,242,245,248,251,2468, + 2790,36,277,2101,36,942,33,1070,3053,28, + 31,32,1012,1018,57,29,244,36,279,1337, + 72,4693,670,723,2686,2983,3142,3603,3639,4297, + 2346,36,942,33,2829,2878,28,31,32,1012, + 1018,27,29,931,26,24,51,1105,107,77, + 78,108,1281,339,1377,1341,1420,1384,1463,62, + 1427,1513,1489,2062,3366,1549,1556,143,4687,941, + 1352,510,144,2062,2236,3622,2302,1374,4687,4687, + 2664,94,853,36,1618,384,511,2346,36,942, + 33,2829,2878,28,31,32,1012,1018,27,29, + 931,26,24,51,1105,107,77,78,108,1281, + 339,1377,1341,1420,1384,1463,50,1427,1513,1489, + 724,1524,1549,1556,143,1599,2853,1913,510,144, + 328,724,3622,568,2489,1022,1654,2417,1668,61, + 506,2421,182,511,70,1620,36,942,33,3178, + 4698,28,31,32,1012,1018,27,29,2725,504, + 70,2783,979,2346,36,942,33,2829,2878,28, + 31,32,1012,1018,27,29,931,26,24,51, + 1105,107,77,78,108,1281,339,1377,1341,1420, + 1384,1463,230,1427,1513,1489,1669,506,1549,1556, + 143,2062,95,568,510,144,4687,436,3622,2157, + 1939,43,2897,97,4336,2802,2155,491,2783,511, + 2557,36,942,33,2829,2878,28,31,32,1012, + 1018,27,29,931,26,24,51,1105,107,77, + 78,108,1281,339,1377,1341,1420,1384,1463,1538, + 1427,1513,1489,1888,398,1549,1556,143,328,56, + 56,510,144,680,737,3622,508,36,1618,384, + 244,36,279,506,2250,4704,511,1231,36,942, + 33,942,4698,28,31,32,1012,1018,60,29, + 2776,2867,1917,431,2783,1022,2694,36,942,33, + 424,2878,28,31,32,1012,1018,27,29,931, + 26,24,51,1105,107,77,78,108,1281,385, + 1377,1341,1420,1384,1463,1490,1427,1513,1489,1924, + 507,1549,1556,143,4687,2661,3437,375,144,2416, + 36,942,33,1022,2878,28,31,32,1012,1018, + 27,29,931,26,24,51,1105,107,77,78, + 108,1281,2048,1377,1341,1420,1384,1463,2197,1427, + 1513,1489,325,331,1549,1556,143,453,2510,3437, + 375,144,2818,36,942,33,329,2878,28,31, + 32,1012,1018,27,29,931,26,24,51,1105, + 107,77,78,108,1281,3057,1377,1341,1420,1384, + 1463,56,1427,1513,1489,813,1913,1549,1556,143, + 2069,381,2151,158,144,452,2625,36,942,33, + 2001,2878,28,31,32,1012,1018,27,29,931, + 26,24,51,1105,107,77,78,108,1281,69, + 1377,1341,1420,1384,1463,3316,1427,1513,1489,2075, + 1414,1549,1556,143,382,2151,3437,375,144,2275, + 36,390,2818,36,942,33,3558,2878,28,31, + 32,1012,1018,27,29,931,26,24,51,1105, + 107,77,78,108,1281,3400,1377,1341,1420,1384, + 1463,70,1427,1513,1489,1022,4537,1549,1556,143, + 508,36,282,369,144,508,3216,2187,36,291, + 3168,36,942,33,670,2878,28,31,32,1012, + 1018,27,29,931,26,24,51,1105,107,77, + 78,108,1281,71,1377,1341,1420,1384,1463,2075, + 2493,373,2151,2818,36,942,33,1844,2878,28, + 31,32,1012,1018,27,29,931,26,24,51, + 1105,107,77,78,108,1281,3643,1377,1341,1420, + 1384,1463,352,1427,1513,1489,2069,4033,1549,1556, + 143,524,2241,2075,369,144,368,2818,36,942, + 33,1022,2878,28,31,32,1012,1018,27,29, + 931,26,24,51,1105,107,77,78,108,1281, + 2064,1377,1341,1420,1384,1463,726,1427,1513,1489, + 396,331,1549,1556,143,286,2089,2278,369,144, + 3569,1032,2266,2489,36,942,33,2438,2878,28, + 31,32,1012,1018,27,29,931,26,24,51, + 1105,107,77,78,108,1281,156,1377,1341,1420, + 1384,1463,351,1427,1513,1489,528,367,1549,1556, + 143,524,56,52,142,144,924,2818,36,942, + 33,1356,2878,28,31,32,1012,1018,27,29, + 931,26,24,51,1105,107,77,78,108,1281, + 349,1377,1341,1420,1384,1463,320,1427,1513,1489, + 1913,365,1549,1556,143,524,1913,65,159,144, + 2818,36,942,33,2313,2878,28,31,32,1012, + 1018,27,29,931,26,24,51,1105,107,77, + 78,108,1281,54,1377,1341,1420,1384,1463,88, + 1427,1513,1489,1913,56,1549,1556,143,4349,2001, + 507,155,144,2818,36,942,33,152,2878,28, + 31,32,1012,1018,27,29,931,26,24,51, + 1105,107,77,78,108,1281,53,1377,1341,1420, + 1384,1463,2803,1427,1513,1489,534,2661,1549,1556, + 143,440,4559,1280,154,144,2818,36,942,33, + 310,2878,28,31,32,1012,1018,27,29,931, + 26,24,51,1105,107,77,78,108,1281,57, + 1377,1341,1420,1384,1463,56,1427,1513,1489,2351, + 2150,1549,1556,143,2777,508,3124,153,144,2818, + 36,942,33,1159,2878,28,31,32,1012,1018, + 27,29,931,26,24,51,1105,107,77,78, + 108,1281,72,1377,1341,1420,1384,1463,56,1427, + 1513,1489,2745,56,1549,1556,143,2141,1913,317, + 152,144,2818,36,942,33,1639,2878,28,31, + 32,1012,1018,27,29,931,26,24,51,1105, + 107,77,78,108,1281,1344,1377,1341,1420,1384, + 1463,91,1427,1513,1489,1022,56,1549,1556,143, + 3121,1913,1427,151,144,2818,36,942,33,1188, + 2878,28,31,32,1012,1018,27,29,931,26, + 24,51,1105,107,77,78,108,1281,2354,1377, + 1341,1420,1384,1463,346,1427,1513,1489,1913,56, + 1549,1556,143,2942,508,3799,150,144,2818,36, + 942,33,1342,2878,28,31,32,1012,1018,27, + 29,931,26,24,51,1105,107,77,78,108, + 1281,1758,1377,1341,1420,1384,1463,323,1427,1513, + 1489,1913,2523,1549,1556,143,3143,1461,75,149, + 144,2818,36,942,33,162,2878,28,31,32, + 1012,1018,27,29,931,26,24,51,1105,107, + 77,78,108,1281,1801,1377,1341,1420,1384,1463, + 56,1427,1513,1489,2799,56,1549,1556,143,3323, + 1913,249,148,144,2818,36,942,33,239,2878, + 28,31,32,1012,1018,27,29,931,26,24, + 51,1105,107,77,78,108,1281,336,1377,1341, + 1420,1384,1463,68,1427,1513,1489,1913,56,1549, + 1556,143,2700,1913,2497,147,144,2818,36,942, + 33,326,2878,28,31,32,1012,1018,27,29, + 931,26,24,51,1105,107,77,78,108,1281, + 67,1377,1341,1420,1384,1463,66,1427,1513,1489, + 1913,56,1549,1556,143,3533,1913,500,146,144, + 2818,36,942,33,2438,2878,28,31,32,1012, + 1018,27,29,931,26,24,51,1105,107,77, + 78,108,1281,65,1377,1341,1420,1384,1463,2224, + 1427,1513,1489,1913,56,1549,1556,143,2852,1913, + 1927,145,144,2763,36,942,33,1644,2878,28, + 31,32,1012,1018,27,29,931,26,24,51, + 1105,107,77,78,108,1281,56,1377,1341,1420, + 1384,1463,55,1427,1513,1489,377,1027,1549,2951, + 164,2818,36,942,33,1402,2878,28,31,32, + 1012,1018,27,29,931,26,24,51,1105,107, + 77,78,108,1281,2146,1377,1341,1420,1384,1463, + 1220,1427,1513,1489,1297,56,1549,1556,143,4122, + 1022,350,140,144,56,324,2167,1653,1032,2069, + 3051,36,942,33,1585,2878,28,31,32,1012, + 1018,27,29,931,26,24,51,1105,107,77, + 78,108,1281,156,1377,1341,1420,1384,1463,4579, + 1427,1513,1489,577,400,1549,1556,143,440,1710, + 2246,189,144,3168,36,942,33,940,2878,28, + 31,32,1012,1018,27,29,931,26,24,51, + 1105,107,77,78,108,1281,2520,1377,1341,1420, + 1384,1463,98,1427,1513,1489,2167,1913,1549,2951, + 164,3168,36,942,33,2485,2878,28,31,32, + 1012,1018,27,29,931,26,24,51,1105,107, + 77,78,108,1281,2146,1377,1341,1420,1384,1463, + 319,1427,1513,1489,297,2167,1549,2951,164,1521, + 36,942,33,1820,2069,42,31,32,1012,1018, + 3168,36,942,33,290,2878,28,31,32,1012, + 1018,27,29,931,26,24,51,1105,107,77, + 78,108,1281,221,1377,1341,1420,1384,1463,321, + 1427,1513,1489,943,2273,1549,2951,164,3168,36, + 942,33,2229,2878,28,31,32,1012,1018,27, + 29,931,26,24,51,1105,107,77,78,108, + 1281,1282,1377,1341,1420,1384,1463,322,1427,1513, + 1489,2311,2167,1549,2951,164,1737,36,942,33, + 1520,2069,41,31,32,1012,1018,3168,36,942, + 33,416,2878,28,31,32,1012,1018,27,29, + 931,26,24,51,1105,107,77,78,108,1281, + 301,1377,1341,1420,1384,1463,761,1427,1513,1489, + 414,3625,1549,2951,164,3223,36,942,33,415, + 2878,28,31,32,1012,1018,27,29,931,26, + 24,51,1105,107,77,78,108,1281,1901,1377, + 1341,1420,1384,1463,56,1427,1513,1489,4147,1022, + 1549,2951,164,1737,36,942,33,1446,1697,1936, + 31,32,1012,1018,3168,36,942,33,418,2878, + 28,31,32,1012,1018,27,29,931,26,24, + 51,1105,107,77,78,108,1281,2167,1377,1341, + 1420,1384,1463,56,1427,1513,1489,3688,2720,2601, + 1665,3239,3168,36,942,33,3797,2878,28,31, + 32,1012,1018,27,29,931,26,24,51,1105, + 107,77,78,108,1281,179,1377,1341,1420,1384, + 1463,99,1427,1513,2501,3168,36,942,33,1468, + 2878,28,31,32,1012,1018,27,29,931,26, + 24,51,1105,107,77,78,108,1281,1151,1377, + 1341,1420,1384,1463,2146,1427,2457,3168,36,942, + 33,1564,2878,28,31,32,1012,1018,27,29, + 931,26,24,51,1105,107,77,78,108,1281, + 1151,1377,1341,1420,2379,3168,36,942,33,2456, + 2878,28,31,32,1012,1018,27,29,931,26, + 24,51,1105,107,77,78,108,1281,1784,1377, + 1341,1420,2416,1419,36,942,33,2854,4472,28, + 31,32,1012,1018,335,29,2524,508,36,1618, + 384,508,36,1618,384,1825,36,942,33,2662, + 4472,28,31,32,1012,1018,335,29,1231,36, + 942,33,1888,4698,28,31,32,1012,1018,59, + 29,273,2018,36,280,50,2167,1386,347,386, + 420,316,2063,318,47,311,2025,70,1292,36, + 2827,1500,4563,4161,508,36,291,348,3385,508, + 36,1618,384,316,2063,318,1888,311,2025,508, + 36,1764,2957,404,198,340,1857,1286,345,348, + 2017,492,50,3324,508,36,1672,1629,283,516, + 70,1599,2504,273,275,4598,3310,340,1857,1286, + 345,3168,36,942,33,1591,2878,28,31,32, + 1012,1018,27,29,931,26,24,51,1105,107, + 77,78,108,1281,505,1377,1341,1987,3168,36, + 942,33,284,2878,28,31,32,1012,1018,27, + 29,931,26,24,51,1105,107,77,78,108, + 1281,2167,1377,1341,2103,1495,336,3045,3168,36, + 942,33,362,2878,28,31,32,1012,1018,27, + 29,931,26,24,51,1105,107,77,78,108, + 1281,1409,1377,1341,2131,3168,36,942,33,197, + 2878,28,31,32,1012,1018,27,29,931,26, + 24,51,1105,107,77,78,108,1281,1986,1377, + 1341,2150,1539,36,942,33,4493,4541,28,31, + 32,1012,1018,335,29,3369,1473,508,36,1618, + 384,2750,1914,2013,1410,2829,2829,4687,1032,2378, + 2061,2250,1914,530,262,2084,2829,4687,530,4171, + 1737,36,942,33,339,2403,2016,31,32,1012, + 1018,427,3658,160,1927,2403,2876,228,156,328, + 316,2063,318,156,311,2025,3706,180,2267,239, + 2311,2096,180,2267,726,3122,2793,1292,2335,328, + 203,215,4459,202,212,213,214,216,169,328, + 2411,4306,2661,56,195,422,56,3159,1913,168, + 530,183,167,170,171,172,173,174,1888,56, + 1,2776,356,2829,530,1114,3216,232,2233,339, + 1370,3503,356,304,308,156,1671,3046,3052,330, + 331,102,339,228,2474,1066,1671,3046,3052,156, + 2146,3622,240,230,231,2055,2008,1564,180,2267, + 726,4687,777,682,3622,3636,203,215,4459,202, + 212,213,214,216,169,1678,244,36,446,1114, + 3216,4620,597,2069,295,168,181,184,167,170, + 171,172,173,174,1808,36,942,33,2854,4472, + 28,31,32,1012,1018,335,29,2314,2146,3278, + 36,1618,384,329,732,4611,196,2923,2740,70, + 3239,4072,237,726,4624,56,2018,36,277,1814, + 348,56,1583,2021,2062,1109,2829,372,89,4687, + 1732,103,1410,273,2652,285,1032,683,342,1857, + 1286,345,316,2063,318,228,311,2025,1259,36, + 1618,384,766,36,446,387,420,4620,348,519, + 232,160,1913,347,1913,2442,3237,2160,205,215, + 4459,204,212,213,214,216,340,1857,1286,345, + 3347,328,50,70,520,235,230,231,4628,285, + 56,1599,1850,2411,1199,3080,274,2142,206,208, + 210,292,293,3164,348,217,207,209,508,36, + 1618,384,1564,3503,242,245,248,251,2468,2486, + 3237,1972,340,1857,1286,345,1070,2401,1413,370, + 1591,439,3627,3634,2738,2403,4102,2439,679,36, + 1618,384,426,2686,2983,3142,3603,3639,4297,3168, + 36,942,33,1240,2878,28,31,32,1012,1018, + 27,29,931,26,24,51,1105,107,77,78, + 108,1281,273,1377,2237,3168,36,942,33,2446, + 2878,28,31,32,1012,1018,27,29,931,26, + 24,51,1105,107,77,78,108,1281,2069,1377, + 2238,1712,36,3567,33,4493,4541,28,31,32, + 1012,1018,335,29,232,2167,1445,443,3627,3634, + 389,420,769,856,36,1618,384,239,2187,3582, + 291,90,2373,349,103,3009,2829,530,726,244, + 230,231,1913,2087,508,36,1764,276,4533,1888, + 56,73,518,300,4242,339,228,50,328,316, + 2063,318,156,311,2025,523,1599,1980,1844,2260, + 436,180,2267,726,530,444,2006,3622,2968,203, + 215,4459,202,212,213,214,216,169,526,2565, + 4306,1900,56,228,2167,2829,3698,2723,168,156, + 3798,167,170,171,172,173,174,523,180,2267, + 726,530,1255,1564,2403,294,203,215,4459,202, + 212,213,214,216,169,508,3250,1764,75,2913, + 228,2064,201,2829,2107,168,156,178,167,170, + 171,172,173,174,1457,180,2267,726,508,36, + 1618,384,2403,203,215,4459,202,212,213,214, + 216,169,411,3570,610,56,2929,2521,530,1032, + 2829,2829,168,232,176,167,170,171,172,173, + 174,356,50,1242,56,376,1626,228,3196,2403, + 2403,1599,720,156,1548,1806,3046,3052,247,230, + 231,697,180,2267,726,530,422,2309,516,2449, + 203,215,4459,202,212,213,214,216,169,498, + 2591,388,420,3406,228,2275,36,390,3507,168, + 156,177,167,170,171,172,173,174,784,180, + 2267,726,530,1364,36,1764,3290,203,215,4459, + 202,212,213,214,216,169,498,357,495,497, + 2478,228,1364,36,1764,276,168,156,187,167, + 170,171,172,173,174,871,180,2267,726,530, + 508,36,1764,281,203,215,4459,202,212,213, + 214,216,169,2250,2402,495,497,3583,228,508, + 36,1618,384,168,156,3817,167,170,171,172, + 173,174,958,180,2267,726,530,508,36,1764, + 278,203,215,4459,202,212,213,214,216,169, + 2167,2167,3644,425,3754,228,508,36,1764,3557, + 168,156,192,167,170,171,172,173,174,1045, + 180,2267,726,530,2661,2448,2167,2479,203,215, + 4459,202,212,213,214,216,169,2877,199,296, + 1842,2829,228,2069,2829,2592,2263,168,156,186, + 167,170,171,172,173,174,1888,180,2267,726, + 339,327,331,339,4323,203,215,4459,202,212, + 213,214,216,169,56,1888,56,56,4266,522, + 1243,3435,669,726,168,559,194,167,170,171, + 172,173,174,3168,36,942,33,517,2878,28, + 31,32,1012,1018,27,29,931,26,24,51, + 1105,107,77,78,108,1281,2483,1771,3168,36, + 942,33,302,2878,28,31,32,1012,1018,27, + 29,931,26,24,51,1105,107,77,78,108, + 1281,378,1807,1834,36,942,33,2516,4541,28, + 31,32,1012,1018,335,29,1976,36,942,33, + 4493,4472,28,31,32,1012,1018,335,29,3168, + 36,942,33,2250,2878,28,31,32,1012,1018, + 27,29,931,26,24,51,1105,107,77,78, + 108,1887,1913,508,36,1618,384,2519,2172,2785, + 329,316,2063,318,1410,312,2025,1929,1032,56, + 2544,1543,1349,4390,316,2063,318,348,311,2025, + 2581,2185,2545,2196,435,374,449,445,2275,36, + 390,1292,2597,160,2661,342,1857,1286,345,3168, + 36,942,33,1361,2878,28,31,32,1012,1018, + 27,29,931,26,24,51,1105,107,77,78, + 108,1895,1996,2421,1728,56,851,2585,2087,946, + 1913,2851,331,4533,2586,2613,2588,304,308,1628, + 508,36,291,2614,2622,1800,36,3567,33,4493, + 4472,28,31,32,1012,1018,335,29,56,3661, + 1843,2167,3516,3231,232,3168,36,942,33,3636, + 2878,28,31,32,1012,1018,27,29,931,26, + 24,51,1105,107,77,78,108,1937,1847,250, + 230,231,2829,45,2897,3811,348,1913,1935,222, + 232,2649,2829,316,2063,318,2443,311,2025,2023, + 2814,228,2652,2829,340,1857,1286,345,88,1913, + 2006,228,338,2654,56,253,230,231,1032,1457, + 3268,2655,228,2682,205,215,4459,204,212,213, + 214,216,2687,3361,205,215,4459,204,212,213, + 214,216,3305,156,2308,205,215,4459,204,212, + 213,214,216,1251,206,208,210,292,293,3164, + 1913,217,207,209,206,208,210,292,293,3164, + 56,217,207,209,1032,206,208,210,292,293, + 3164,423,513,207,209,2688,175,2680,2681,2660, + 3079,2167,4102,3028,1757,2718,412,3570,2689,3552, + 3416,2726,4102,3168,1642,942,1677,1527,2878,28, + 31,32,1012,1018,27,29,931,26,24,51, + 1105,107,77,78,85,3168,36,942,33,193, + 2878,28,31,32,1012,1018,27,29,931,26, + 24,51,1105,107,77,78,84,3168,36,942, + 33,2368,2878,28,31,32,1012,1018,27,29, + 931,26,24,51,1105,107,77,78,83,3168, + 36,942,33,5226,2878,28,31,32,1012,1018, + 27,29,931,26,24,51,1105,107,77,78, + 82,3168,36,942,33,5226,2878,28,31,32, + 1012,1018,27,29,931,26,24,51,1105,107, + 77,78,81,3168,36,942,33,5226,2878,28, + 31,32,1012,1018,27,29,931,26,24,51, + 1105,107,77,78,80,3168,36,942,33,5226, + 2878,28,31,32,1012,1018,27,29,931,26, + 24,51,1105,107,77,78,79,2995,36,942, + 33,5226,2878,28,31,32,1012,1018,27,29, + 931,26,24,51,1105,107,77,78,105,3168, + 36,942,33,5226,2878,28,31,32,1012,1018, + 27,29,931,26,24,51,1105,107,77,78, + 110,3168,36,942,33,5226,2878,28,31,32, + 1012,1018,27,29,931,26,24,51,1105,107, + 77,78,109,3168,36,942,33,5226,2878,28, + 31,32,1012,1018,27,29,931,26,24,51, + 1105,107,77,78,106,1629,36,942,33,4493, + 4472,28,31,32,1012,1018,335,29,3113,36, + 942,33,1913,2878,28,31,32,1012,1018,27, + 29,931,26,24,51,1105,87,77,78,1671, + 2378,5226,56,2829,1032,56,1032,5226,5226,1032, + 5226,5226,1759,5226,56,3403,2829,5226,1032,5226, + 5226,1913,228,316,2063,318,5226,311,2025,156, + 5226,156,1900,5226,156,228,2829,1913,200,3360, + 1292,2544,5226,156,1720,205,215,4459,204,212, + 213,214,216,1757,3801,2403,5226,2250,205,215, + 4459,204,212,213,214,216,1399,36,1618,384, + 3379,856,36,1618,384,206,208,210,292,293, + 3164,2111,512,207,209,2829,305,308,206,208, + 210,292,293,3164,2199,218,207,209,2829,5226, + 50,5226,5226,5226,228,50,5226,5226,5226,1599, + 2280,5226,5226,5226,1599,48,5226,228,2661,1410, + 5226,2417,356,1032,5226,5226,2452,205,215,4459, + 204,212,213,214,216,5226,2892,3046,3052,5226, + 205,215,4459,204,212,213,214,216,160,5226, + 5226,5226,2250,5226,5226,2920,331,206,208,210, + 292,293,3164,5226,303,207,209,5226,5226,5226, + 206,208,210,292,293,3164,1100,492,207,209, + 1629,36,942,33,4493,4472,28,31,32,1012, + 1018,335,29,5226,1629,36,942,33,4493,4472, + 28,31,32,1012,1018,335,29,3328,36,1618, + 384,5226,732,2661,5226,1849,1241,36,942,33, + 238,4541,28,31,32,1012,1018,335,29,5226, + 5226,56,56,2473,5226,1032,1032,1032,316,2063, + 318,273,311,2025,5226,5226,853,36,1618,384, + 3436,331,316,2063,318,2017,311,2025,5226,1194, + 156,156,156,2829,4709,5226,5226,5226,232,3808, + 1763,1800,162,329,316,2063,318,5226,314,2025, + 50,5226,228,5226,5226,5226,5226,515,5226,1599, + 48,5226,56,236,230,231,1032,5226,1410,1410, + 1100,1160,1032,1032,274,866,401,4398,1511,36, + 942,33,3031,4472,28,31,32,1012,1018,335, + 29,156,243,246,249,252,2468,160,160,5226, + 5226,1930,5226,2398,1070,402,403,404,292,293, + 3164,5226,1241,36,942,33,397,4541,28,31, + 32,1012,1018,335,29,5226,5226,56,5226,5226, + 3099,1032,5226,5226,5226,5226,313,3476,318,1890, + 36,942,33,2632,4472,28,31,32,1012,1018, + 335,29,853,36,1618,384,156,1300,5226,2913, + 5226,2829,4709,2829,2728,3072,4111,5226,5226,329, + 316,2063,318,2062,312,2025,4127,5226,4687,5226, + 228,515,2403,5226,5226,5226,50,5226,405,407, + 5226,5226,5226,5226,5226,1599,2706,313,3476,318, + 5226,5226,5226,866,401,4398,5226,2479,5226,5226, + 903,5226,4477,853,36,1618,384,856,36,1618, + 384,853,36,1618,384,5226,5226,3127,5226,5226, + 328,5226,1920,402,403,404,292,293,3164,853, + 36,1618,384,853,36,1618,384,50,5226,498, + 5226,50,5226,5226,5226,50,1599,48,3099,2069, + 1599,48,4432,5226,1599,2764,5226,5226,916,5226, + 5226,5226,2670,50,5226,5226,2479,50,853,36, + 1618,384,1599,48,5226,5226,1599,48,496,497, + 5226,2444,5226,1920,2647,530,5226,5226,2938,726, + 853,36,1618,384,2305,36,1618,384,2341,36, + 1618,384,50,372,339,5226,405,408,5226,5226, + 156,1599,48,5226,5226,5226,5226,56,5226,5226, + 188,530,5226,3329,50,5226,4284,5226,50,5226, + 5226,5226,50,1599,48,5226,5226,1599,48,5226, + 339,1599,48,5226,5226,3553,156,5226,5226,2474, + 5226,5226,5226,3640,5226,5226,577,508,36,1618, + 384,5226,3622,508,36,1618,384,5226,508,36, + 1618,384,5226,1376,508,36,1618,384,5226,508, + 36,1618,384,190,5226,5226,56,5226,5226,5226, + 530,50,5226,5226,5226,5226,5226,50,5226,5226, + 1599,2967,50,5226,5226,3434,1599,2846,50,339, + 56,1599,1850,50,530,156,5226,1599,650,5226, + 5226,5226,1599,2684,56,188,5226,5226,530,5226, + 5226,4284,5226,339,56,5226,56,56,2829,156, + 2829,2829,56,5226,56,5226,2829,339,2829,188, + 56,5226,5226,156,2829,4284,3386,339,5226,339, + 339,5226,56,188,5226,339,2829,339,5226,4284, + 5226,5226,5226,339,5226,5226,5226,5226,5226,3622, + 5226,3622,3622,5226,5226,339,5226,3622,3630,3622, + 1685,5226,1721,1747,5226,3622,5226,5226,1628,5226, + 502,5226,5226,5226,5226,5226,500,3622,5226,5226, + 5226,5226,3697,5226,5226,5226,5226,5226,527,5226, + 5226,5226,5226,5226,5226,5226,3719,5226,0,40, + 5241,0,40,5240,0,909,30,0,433,910, + 0,447,1061,0,39,619,0,39,5241,0, + 39,5240,0,2578,126,0,1,437,0,451, + 945,0,450,993,0,3195,92,0,909,383, + 0,36,34,0,33,35,0,40,619,0, + 1,794,0,1,5498,0,1,5497,0,1, + 5496,0,1,5495,0,1,5494,0,1,5493, + 0,1,5492,0,1,5491,0,1,5490,0, + 1,5489,0,1,5488,0,40,1,5241,0, + 40,1,5240,0,2059,1,0,5460,241,0, + 5459,241,0,5560,241,0,5559,241,0,5487, + 241,0,5486,241,0,5485,241,0,5484,241, + 0,5483,241,0,5482,241,0,5481,241,0, + 5480,241,0,5498,241,0,5497,241,0,5496, + 241,0,5495,241,0,5494,241,0,5493,241, + 0,5492,241,0,5491,241,0,5490,241,0, + 5489,241,0,5488,241,0,40,5241,241,0, + 40,5240,241,0,5265,241,0,5241,49,0, + 5240,49,0,44,5263,0,44,38,0,2578, + 128,0,2578,127,0,5232,1,0,5231,1, + 0,2654,237,0,33,384,0,30,383,0, + 5552,438,0,1332,438,0,1,93,0,48, + 38,0,5265,1,0,40,1,0,494,3119, + 0,5265,1,229,0,40,1,229,0,229, + 410,0,5241,38,0,5240,38,0,5263,46, + 0,38,46,0,5241,37,0,5240,37,0, + 5241,2,38,0,5240,2,38,0,5236,399, + 0,5235,399,0,1,4270,0,1,3397,0, + 1,619,0,229,409,0,5552,96,0,1332, + 96,0,36,74,0,1925,315,0,1,5552, + 0,1,1332,0,3564,278,0,494,4089,0, + 1,229,0,229,220,0,229,219,0,1, + 1119,0,1,3255,0,5238,1,0,5234,1, + 0,1,229,3712,0,5235,229,0,3718,229, + 0,5238,379,0,5237,379,0,3796,229,0, + 10,12,0,8,10,12,0,185,3342,0, + 3861,379,0,8,12,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1069,315 +1068,352 @@ 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,0,44,0,46,47,48,49, - 50,51,52,53,54,55,56,57,58,0, - 60,61,62,63,64,65,66,67,0,1, - 2,71,72,5,0,75,76,77,78,79, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,54,0,0,57,58,59, + 60,61,62,63,0,65,66,67,68,0, + 6,0,72,4,0,75,76,77,78,79, 80,81,82,83,84,85,86,0,1,2, 3,4,5,6,7,8,9,10,11,12, 13,14,15,16,17,18,19,20,21,22, 23,24,25,26,27,28,29,30,31,32, 33,34,35,36,37,38,39,40,41,42, - 0,44,0,46,47,48,49,50,51,52, - 53,54,55,56,57,58,101,60,61,62, - 63,64,65,66,67,0,97,98,71,72, - 0,0,75,76,77,78,79,80,81,82, + 43,44,45,46,47,48,49,50,51,52, + 53,54,71,69,57,58,59,60,61,62, + 63,0,65,66,67,68,100,93,94,72, + 9,0,75,76,77,78,79,80,81,82, 83,84,85,86,0,1,2,3,4,5, 6,7,8,9,10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25, 26,27,28,29,30,31,32,33,34,35, - 36,37,38,39,40,41,42,0,44,59, - 46,47,48,49,50,51,52,53,54,55, - 56,57,58,0,60,61,62,63,64,65, - 66,67,9,88,89,71,72,0,0,75, + 36,37,38,39,40,41,42,43,44,45, + 46,47,48,49,50,51,52,53,54,0, + 69,57,58,59,60,61,62,63,0,65, + 66,67,68,0,1,2,72,4,0,75, 76,77,78,79,80,81,82,83,84,85, 86,0,1,2,3,4,5,6,7,8, 9,10,11,12,13,14,15,16,17,18, 19,20,21,22,23,24,25,26,27,28, 29,30,31,32,33,34,35,36,37,38, - 39,40,41,42,0,44,59,46,47,48, - 49,50,51,52,53,54,55,56,57,58, - 0,60,61,62,63,64,65,66,67,9, - 0,1,2,72,4,0,75,76,77,78, + 39,40,41,42,43,44,45,46,47,48, + 49,50,51,52,53,54,0,69,57,58, + 59,60,61,62,63,0,65,66,67,68, + 0,6,103,104,105,0,75,76,77,78, 79,80,81,82,83,84,85,86,0,1, 2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19,20,21, 22,23,24,25,26,27,28,29,30,31, 32,33,34,35,36,37,38,39,40,41, - 42,0,44,0,46,47,48,49,50,51, - 52,53,54,55,56,57,58,0,60,61, - 62,63,64,65,66,67,0,0,1,2, - 72,4,0,75,76,77,78,79,80,81, + 42,43,44,45,46,47,48,49,50,51, + 52,53,54,0,69,57,58,59,60,61, + 62,63,9,65,66,67,68,101,93,94, + 90,0,92,75,76,77,78,79,80,81, 82,83,84,85,86,0,1,2,3,4, 5,6,7,8,9,10,11,12,13,14, 15,16,17,18,19,20,21,22,23,24, 25,26,27,28,29,30,31,32,33,34, - 35,36,37,38,39,40,41,42,0,44, - 73,46,47,48,49,50,51,52,53,54, - 55,56,57,58,101,60,61,62,63,64, - 65,66,67,0,1,2,90,72,92,0, + 35,36,37,38,39,40,41,42,43,44, + 45,46,47,48,49,50,51,52,53,54, + 69,0,57,58,59,60,61,62,63,0, + 65,66,67,68,0,6,0,0,1,2, 75,76,77,78,79,80,81,82,83,84, 85,86,0,1,2,3,4,5,6,7, 8,9,10,11,12,13,14,15,16,17, 18,19,20,21,22,23,24,25,26,27, 28,29,30,31,32,33,34,35,36,37, - 38,39,40,41,42,0,44,0,46,47, - 48,49,50,51,52,53,54,55,56,57, - 58,0,60,61,62,63,64,65,66,67, - 0,0,11,12,72,4,0,75,76,77, + 38,39,40,41,42,43,44,45,46,47, + 48,49,50,51,52,53,54,73,0,57, + 58,59,60,61,62,63,0,65,66,67, + 68,100,93,94,88,89,0,75,76,77, 78,79,80,81,82,83,84,85,86,0, 1,2,3,4,5,6,7,8,9,10, 11,12,13,14,15,16,17,18,19,20, 21,22,23,24,25,26,27,28,29,30, 31,32,33,34,35,36,37,38,39,40, - 41,42,0,44,0,46,47,48,49,50, - 51,52,53,54,55,56,57,58,0,60, - 61,62,63,64,65,66,67,0,1,2, - 90,72,92,0,75,76,77,78,79,80, + 41,42,43,44,45,46,47,48,49,50, + 51,52,53,54,0,69,57,58,59,60, + 61,62,63,0,65,66,67,68,0,1, + 2,0,0,5,75,76,77,78,79,80, 81,82,83,84,85,86,0,1,2,3, 4,5,6,7,8,9,10,11,12,13, 14,15,16,17,18,19,20,21,22,23, 24,25,26,27,28,29,30,31,32,33, - 34,35,36,37,38,39,40,41,42,0, - 44,73,46,47,48,49,50,51,52,53, - 54,55,56,57,58,0,60,61,62,63, - 64,65,66,67,0,1,2,0,72,0, - 3,75,76,77,78,79,80,81,82,83, + 34,35,36,37,38,39,40,41,42,43, + 44,45,46,47,48,49,50,51,52,53, + 54,69,71,57,58,59,60,61,62,63, + 0,65,66,67,68,0,1,2,0,4, + 10,75,76,77,78,79,80,81,82,83, 84,85,86,0,1,2,3,4,5,6, 7,8,9,10,11,12,13,14,15,16, 17,18,19,20,21,22,23,24,25,26, 27,28,29,30,31,32,33,34,35,36, - 37,38,39,40,41,42,59,44,59,46, - 47,48,49,50,51,52,53,54,55,56, - 57,58,0,60,61,62,63,64,65,66, - 67,0,0,11,12,72,4,0,75,76, + 37,38,39,40,41,42,43,44,45,46, + 47,48,49,50,51,52,53,54,0,71, + 57,58,59,60,61,62,63,0,65,66, + 67,68,0,1,2,0,1,2,75,76, 77,78,79,80,81,82,83,84,85,86, 0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,28,29, 30,31,32,33,34,35,36,37,38,39, - 40,41,42,0,44,0,46,47,48,49, - 50,51,52,53,54,55,56,57,58,0, - 60,61,62,63,64,65,66,67,0,0, - 0,90,72,92,4,75,76,77,78,79, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,54,0,0,57,58,59, + 60,61,62,63,0,65,66,67,68,0, + 0,0,0,3,3,75,76,77,78,79, 80,81,82,83,84,85,86,0,1,2, 3,4,5,6,7,8,9,10,11,12, 13,14,15,16,17,18,19,20,21,22, 23,24,25,26,27,28,29,30,31,32, 33,34,35,36,37,38,39,40,41,42, - 61,44,0,46,47,48,49,50,51,52, - 53,54,55,56,57,58,0,60,61,62, - 63,64,65,66,67,0,97,98,90,72, - 92,0,75,76,77,78,79,80,81,82, + 43,44,45,46,47,48,49,50,51,52, + 53,54,0,0,57,58,59,60,61,62, + 63,0,65,66,67,68,0,88,89,8, + 88,89,75,76,77,78,79,80,81,82, 83,84,85,86,0,1,2,3,4,5, 6,7,8,9,10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25, 26,27,28,29,30,31,32,33,34,35, - 36,37,38,39,40,41,42,0,44,0, - 46,47,48,49,50,51,52,53,54,55, - 56,57,58,0,60,61,62,63,64,65, - 66,67,0,88,89,3,72,0,0,75, + 36,37,38,39,40,41,42,43,44,45, + 46,47,48,49,50,51,52,53,54,0, + 0,57,58,59,60,61,62,63,0,65, + 66,67,68,0,1,2,90,0,92,75, 76,77,78,79,80,81,82,83,84,85, - 86,0,1,2,3,4,5,6,7,0, - 9,10,11,12,57,14,15,16,17,18, - 19,20,21,22,23,24,25,26,27,28, + 86,0,1,2,3,4,5,6,7,118, + 9,10,11,12,13,14,15,16,17,18, + 19,20,21,22,23,24,25,26,0,28, 29,30,31,32,33,34,35,36,37,38, - 39,40,41,42,0,44,59,46,47,48, - 49,50,51,52,53,54,55,0,57,0, - 1,2,61,4,91,8,65,66,67,0, - 1,2,3,4,5,6,7,8,9,10, - 121,0,13,14,15,16,17,18,19,20, - 21,22,23,24,25,0,0,1,2,3, - 4,5,43,7,8,0,1,2,99,4, - 122,6,43,44,9,46,47,48,49,50, - 51,52,53,54,55,56,45,58,0,0, - 61,74,88,89,65,66,67,8,0,0, - 71,72,73,4,0,1,2,3,4,5, - 6,7,8,9,10,59,87,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 74,76,103,104,105,0,1,2,3,4, - 5,6,7,44,9,0,0,43,44,4, - 46,47,48,49,50,51,52,53,54,55, - 56,0,58,74,0,61,0,3,70,65, - 66,67,0,1,2,71,72,73,0,1, - 2,3,4,5,0,7,0,3,100,44, - 6,87,8,9,59,11,12,13,0,1, - 2,3,4,5,69,7,45,103,104,105, - 26,27,46,47,68,43,0,0,1,2, - 3,4,5,6,7,0,9,0,3,45, - 14,15,16,17,18,19,20,21,22,23, - 24,25,0,59,0,0,1,2,103,104, - 105,73,68,69,70,71,0,73,74,3, - 44,75,46,47,48,49,50,51,52,53, - 54,55,88,89,90,91,92,93,94,95, - 96,97,98,99,100,101,102,0,1,2, - 106,107,108,109,110,111,112,113,114,115, - 116,117,118,0,120,121,3,62,63,6, - 68,8,9,69,11,12,13,0,1,2, - 3,4,5,6,7,69,9,100,0,26, - 27,0,1,2,3,4,5,0,7,8, - 3,0,1,2,13,4,102,6,45,0, - 9,107,108,109,110,111,112,113,114,115, - 116,117,59,0,1,2,3,4,5,0, - 7,68,69,70,71,0,73,74,3,0, - 1,2,3,4,5,6,7,59,9,0, - 73,88,89,90,91,92,93,94,95,96, - 97,98,99,100,101,102,0,1,2,106, - 107,108,109,110,111,112,113,114,115,116, - 117,118,59,120,121,0,1,2,3,4, - 5,6,7,0,9,10,11,12,59,14, - 15,16,0,18,19,20,21,22,23,24, - 25,26,27,28,29,30,31,32,33,34, - 35,36,37,38,39,40,41,42,0,1, - 2,3,4,5,6,7,0,9,45,0, - 1,2,57,4,5,43,7,62,63,0, - 1,2,3,4,5,6,7,72,9,10, - 11,12,0,14,15,16,0,18,19,20, - 21,22,23,24,25,26,27,28,29,30, - 31,32,33,34,35,36,37,38,39,40, - 41,42,0,1,2,0,4,0,6,0, - 8,9,0,0,68,3,57,0,1,2, - 8,62,63,0,0,8,3,68,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,69,14,15,16,0,18,19,20,21, - 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,36,37,38,39,40,41, - 42,59,0,1,2,68,74,5,102,7, - 68,64,70,107,0,57,74,3,43,0, - 1,2,64,91,5,0,7,88,89,71, - 0,1,2,3,4,5,6,7,0,9, - 10,11,12,0,14,15,16,0,18,19, - 20,21,22,23,24,25,26,27,28,29, - 30,31,32,33,34,35,36,37,38,39, - 40,41,42,0,1,2,3,4,5,0, - 7,8,0,0,0,3,13,57,45,10, - 6,8,62,63,0,1,2,3,4,5, - 6,7,0,9,10,11,12,0,14,15, - 16,68,18,19,20,21,22,23,24,25, - 26,27,28,29,30,31,32,33,34,35, - 36,37,38,39,40,41,42,99,95,96, - 0,59,0,0,1,2,3,4,8,6, - 8,57,9,70,71,13,62,63,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,69,14,15,16,68,18,19,20,21, - 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,36,37,38,39,40,41, - 42,0,59,0,1,2,3,4,5,0, - 7,71,0,1,2,57,4,8,0,0, - 8,3,64,0,1,2,3,4,5,6, - 7,8,9,10,11,12,0,14,15,16, - 0,18,19,20,21,22,23,24,25,26, + 39,40,41,42,43,44,45,46,47,48, + 49,50,51,52,53,54,0,0,57,58, + 59,4,61,0,1,2,3,4,5,6, + 7,8,9,10,11,12,13,14,15,16, + 17,18,19,20,21,22,23,24,119,0, 27,28,29,30,31,32,33,34,35,36, - 37,38,39,40,41,42,0,1,2,68, - 4,70,6,64,0,9,64,0,1,2, - 57,4,8,6,0,45,9,64,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,0,14,15,16,4,18,19,20,21, - 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,36,37,38,39,40,41, - 42,0,1,2,3,4,5,6,7,0, - 9,10,11,12,0,14,15,16,74,18, - 19,20,21,22,23,24,25,26,27,28, - 29,30,31,32,33,34,35,36,37,38, - 39,40,41,42,0,0,0,3,3,5, - 6,0,0,9,45,11,12,0,57,45, - 0,1,2,17,4,5,0,7,11,12, - 26,27,0,29,0,0,118,68,0,4, - 8,6,68,0,9,0,1,2,0,45, - 44,17,46,47,48,49,50,51,52,53, - 54,55,0,59,95,96,62,63,0,95, - 96,45,68,69,70,0,1,2,44,68, - 46,47,48,49,50,51,52,53,54,55, - 0,0,88,89,90,4,64,93,94,95, - 96,97,98,99,100,101,102,62,63,0, - 106,68,108,109,110,111,112,113,114,115, - 116,117,0,1,2,3,4,5,6,7, - 0,9,10,11,12,45,14,15,16,91, - 18,19,20,21,22,23,24,25,26,27, - 28,29,30,31,32,33,34,35,36,37, - 38,39,40,41,42,103,104,105,0,1, - 2,3,4,5,6,7,0,9,10,11, - 12,59,14,15,16,0,18,19,20,21, - 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,36,37,38,39,40,41, - 42,0,0,1,2,3,4,5,6,7, - 0,9,10,11,12,57,14,15,16,0, - 18,19,20,21,22,23,24,25,26,27, - 28,29,30,31,32,33,34,35,36,37, - 38,39,40,41,42,0,1,2,3,4, - 5,6,7,43,9,10,11,12,0,14, - 15,16,4,18,19,20,21,22,23,24, - 25,26,27,28,29,30,31,32,33,34, - 35,36,37,38,39,40,41,42,0,1, - 2,3,4,5,6,7,0,9,10,11, - 12,0,14,15,16,0,18,19,20,21, - 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,36,37,38,39,40,41, - 42,0,1,2,0,4,0,0,0,1, - 2,10,0,6,0,14,15,16,17,18, - 19,20,21,22,23,24,25,0,1,2, - 0,4,5,0,7,0,1,2,0,0, - 0,8,28,3,73,44,8,46,47,48, - 49,50,51,52,53,54,55,45,28,0, - 1,2,61,4,0,59,65,66,67,10, - 43,0,68,14,15,16,17,18,19,20, - 21,22,23,24,25,0,1,2,3,4, - 5,6,7,8,9,0,0,0,13,3, - 93,94,17,44,71,46,47,48,49,50, - 51,52,53,54,55,0,45,0,1,2, - 61,6,26,27,65,66,67,88,89,44, - 45,46,47,48,49,50,51,52,53,54, - 55,0,45,0,59,0,1,2,3,4, - 5,6,7,8,9,59,118,0,13,74, - 43,0,17,0,0,1,2,3,4,5, - 6,7,8,9,0,1,2,13,0,1, - 2,17,4,5,0,7,45,0,45,44, - 6,46,47,48,49,50,51,52,53,54, - 55,0,106,0,59,0,0,43,93,94, - 0,0,0,3,8,4,120,43,8,74, - 56,43,58,0,60,0,1,2,3,4, - 5,6,7,8,9,71,0,0,13,0, - 1,2,17,0,5,8,0,1,2,0, - 45,87,6,10,5,0,45,0,0,1, - 2,3,4,5,6,7,8,9,43,59, - 45,13,0,1,2,17,70,93,94,0, - 74,56,43,58,74,60,43,0,0,43, + 0,1,2,40,4,5,0,7,121,0, + 0,1,2,3,4,5,6,7,55,9, + 57,58,59,60,0,62,63,99,0,1, + 2,22,23,24,0,72,73,28,29,30, + 31,32,33,34,35,36,22,23,24,0, + 87,0,28,29,30,31,32,33,34,35, + 36,0,1,2,75,4,103,104,105,0, + 1,2,3,4,5,6,7,8,9,10, + 11,12,13,14,15,16,17,18,19,20, + 21,22,23,24,66,67,27,28,29,30, + 31,32,33,34,35,36,0,1,2,40, + 4,0,6,0,3,9,55,6,0,8, + 9,0,1,2,55,0,57,58,59,60, + 0,62,63,0,1,2,25,26,27,88, + 89,72,73,0,1,2,97,98,37,38, + 25,26,22,23,24,0,87,39,28,29, + 30,31,32,33,34,35,36,56,0,1, + 2,0,103,104,105,64,55,64,0,0, + 69,70,71,72,73,74,0,8,0,1, + 2,3,4,5,6,7,0,9,55,88, + 89,90,91,92,93,94,95,96,97,98, + 99,100,101,102,0,0,0,106,107,108, + 109,110,111,112,113,114,115,116,117,118, + 0,120,121,3,66,67,6,0,8,9, + 25,26,0,1,2,3,4,5,6,7, + 8,9,64,74,99,25,26,27,70,0, + 64,90,3,92,22,23,24,37,38,27, + 28,29,30,31,32,33,34,35,36,101, + 0,1,2,3,4,5,56,7,8,0, + 0,1,2,0,64,5,0,7,56,69, + 70,71,72,73,74,91,64,27,0,1, + 2,3,4,5,6,7,74,9,88,89, + 90,91,92,93,94,95,96,97,98,99, + 100,101,102,0,97,98,106,107,108,109, + 110,111,112,113,114,115,116,117,118,56, + 120,121,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,22,23,24,88,89,27, + 28,29,30,31,32,33,34,35,36,0, + 1,2,40,4,5,0,7,0,0,1, + 2,3,4,5,0,7,73,55,0,57, + 58,59,60,0,62,63,3,65,122,22, + 23,24,0,0,72,28,29,30,31,32, + 33,34,35,36,0,1,2,0,0,87, 0,1,2,3,4,5,6,7,8,9, - 0,43,45,13,61,17,70,17,8,0, - 0,74,87,13,56,43,58,0,60,0, - 1,2,0,1,2,70,0,0,91,71, - 73,4,44,43,46,47,48,49,50,51, - 52,53,54,55,0,87,56,68,58,70, - 60,0,1,2,3,4,5,6,7,8, - 9,71,43,0,13,43,0,0,17,0, - 1,2,45,10,8,8,0,87,69,13, - 13,0,0,0,1,2,3,4,5,6, - 7,8,9,0,43,0,13,0,17,4, - 17,8,0,0,0,8,43,56,0,58, - 13,60,43,10,0,0,8,3,0,0, - 0,45,71,8,61,44,43,46,47,48, - 49,50,51,52,53,54,55,70,87,56, - 45,58,0,60,0,1,2,3,4,5, - 6,7,8,9,0,0,0,13,3,56, - 0,17,0,3,0,3,0,74,0,3, - 87,69,0,1,2,3,4,5,6,7, - 8,9,74,0,0,13,71,43,70,17, - 70,0,73,0,3,0,3,0,0,0, - 56,45,58,0,60,0,3,0,3,0, - 3,69,3,0,0,43,3,0,0,0, - 0,3,0,119,0,0,0,73,56,0, - 58,87,60,0,70,0,0,0,70,0, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,70,0,27,28,29, + 30,31,32,33,34,35,36,64,70,56, + 40,0,1,2,3,4,5,6,7,55, + 9,25,26,56,56,55,56,57,58,59, + 60,0,62,63,3,65,0,1,2,8, + 102,5,90,7,92,107,108,109,110,111, + 112,113,114,115,116,117,0,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,0,73,27,28,29,30,31, + 32,33,34,35,36,64,40,0,40,0, + 1,2,3,4,5,74,7,0,1,2, + 3,4,5,55,7,57,58,59,60,0, + 62,63,3,65,0,1,2,3,4,5, + 72,7,8,0,1,2,3,4,5,6, + 7,0,9,0,3,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,64,73,27,28,29,30,31,32,33, + 34,35,36,64,0,0,40,0,64,0, + 1,2,3,4,5,8,7,64,74,0, + 0,55,119,57,58,59,60,8,62,63, + 10,65,0,0,1,2,0,4,72,6, + 8,8,9,0,1,2,0,4,0,6, + 0,0,9,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,72, + 60,27,28,29,30,31,32,33,34,35, + 36,0,56,74,40,0,1,2,3,4, + 5,55,7,8,56,0,74,74,3,55, + 91,57,58,59,60,0,62,63,3,65, + 0,73,27,8,91,5,72,0,1,2, + 3,4,0,6,0,3,9,0,1,2, + 0,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,0,0,27, + 28,29,30,31,32,33,34,35,36,64, + 0,0,40,3,69,4,71,6,0,74, + 9,64,55,102,0,55,8,55,107,57, + 58,59,60,0,62,63,0,65,0,0, + 4,8,0,1,2,0,4,5,3,7, + 0,1,2,56,4,5,0,7,22,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,61,68,27,28,29, + 30,31,32,33,34,35,36,55,0,0, + 40,68,64,4,0,55,0,1,2,0, + 4,55,8,4,8,55,0,57,58,59, + 60,0,62,63,8,65,0,1,2,8, + 4,27,6,0,0,9,0,1,2,103, + 104,105,0,27,8,0,0,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,39,68,27,28,29,30,31, + 32,33,34,35,36,0,1,2,40,4, + 0,6,71,72,9,0,1,2,8,0, + 5,0,56,55,68,57,58,59,60,0, + 62,63,0,65,69,0,71,27,3,0, + 8,0,23,24,0,1,2,0,1,2, + 3,4,5,6,7,87,9,10,11,12, + 13,14,15,16,17,18,19,20,21,0, + 55,0,25,26,0,1,2,0,0,8, + 0,71,0,0,37,38,39,4,41,42, + 43,44,45,46,47,48,49,50,51,52, + 53,54,73,71,0,70,74,3,61,62, + 0,1,2,66,67,0,1,2,3,4, + 5,6,7,0,9,10,11,12,13,14, + 15,16,17,18,19,20,21,0,56,56, + 25,26,0,72,64,8,69,0,71,71, + 8,69,37,38,39,8,41,42,43,44, + 45,46,47,48,49,50,51,52,53,54, + 0,0,0,3,27,3,61,95,96,56, + 0,66,67,3,69,0,1,2,3,4, + 5,6,7,8,9,10,11,12,13,14, + 15,16,17,18,19,20,21,0,0,72, + 25,26,0,0,6,0,74,0,0,4, + 8,8,37,38,39,0,41,42,43,44, + 45,46,47,48,49,50,51,52,53,54, + 27,70,0,0,1,2,61,0,0,6, + 8,4,0,68,0,3,0,72,0,1, + 2,3,4,5,6,7,0,9,10,11, + 12,13,14,15,16,17,18,19,20,21, + 73,56,64,25,26,0,74,70,0,0, + 0,3,0,0,69,37,38,39,55,41, + 42,43,44,45,46,47,48,49,50,51, + 52,53,54,0,0,0,74,69,64,61, + 95,96,56,0,66,67,0,1,2,3, + 4,5,6,7,0,9,10,11,12,13, + 14,15,16,17,18,19,20,21,56,56, + 0,25,26,3,0,0,71,0,3,70, + 0,0,69,37,38,39,0,41,42,43, + 44,45,46,47,48,49,50,51,52,53, + 54,91,0,0,70,3,73,61,95,96, + 56,0,66,67,0,1,2,3,4,5, + 6,7,8,9,10,11,12,13,14,15, + 16,17,18,19,20,21,56,56,0,25, + 26,0,56,0,0,71,3,3,71,0, + 0,37,38,39,4,41,42,43,44,45, + 46,47,48,49,50,51,52,53,54,0, + 0,0,22,70,3,61,0,0,0,3, + 3,70,68,0,1,2,3,4,5,6, + 7,8,9,10,11,12,13,14,15,16, + 17,18,19,20,21,0,0,0,25,26, + 3,73,0,0,73,0,0,0,0,70, + 37,38,39,0,41,42,43,44,45,46, + 47,48,49,50,51,52,53,54,0,0, + 0,0,73,0,61,39,76,0,70,0, + 0,68,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,25,26,0, + 1,2,0,1,2,70,0,0,0,37, + 38,39,0,41,42,43,44,45,46,47, + 48,49,50,51,52,53,54,0,1,2, + 3,4,5,6,7,0,9,10,11,12, + 13,14,15,16,17,18,19,20,21,55, + 91,119,25,26,55,0,0,55,0,0, + 0,0,56,0,37,38,39,0,41,42, + 43,44,45,46,47,48,49,50,51,52, + 53,54,0,0,0,0,0,4,61,3, + 118,5,6,0,0,9,11,12,13,14, + 15,16,17,18,19,20,21,22,23,24, + 0,25,26,28,29,30,31,32,33,34, + 35,36,0,37,38,0,0,41,0,0, + 0,0,10,0,0,0,0,4,0,56, + 0,0,56,0,0,0,0,0,10,0, + 64,0,66,67,0,69,70,71,0,0, + 0,0,40,0,0,0,0,0,0,0, + 0,0,0,0,88,89,90,55,40,93, + 94,95,96,97,98,99,100,101,102,56, + 0,0,106,55,108,109,110,111,112,113, + 114,115,116,117,0,1,2,3,4,5, + 6,7,0,9,10,11,12,13,14,15, + 16,17,18,19,20,21,0,0,0,25, + 26,0,0,0,0,0,0,0,0,0, + 0,37,38,39,0,41,42,43,44,45, + 46,47,48,49,50,51,52,53,54,0, + 0,1,2,3,4,5,6,7,64,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,0,0,0,25,26,0,0,0, + 0,0,0,0,0,0,0,37,38,39, + 0,41,42,43,44,45,46,47,48,49, + 50,51,52,53,54,0,0,0,0,0, + 0,61,0,1,2,3,4,5,6,7, + 0,9,10,11,12,13,14,15,16,17, + 18,19,20,21,0,0,0,25,26,0, + 0,0,0,0,0,0,0,0,0,37, + 38,39,0,41,42,43,44,45,46,47, + 48,49,50,51,52,53,54,0,1,2, + 3,4,5,6,7,0,9,10,11,12, + 13,14,15,16,17,18,19,20,21,0, + 0,0,25,26,0,0,0,0,0,0, + 0,0,0,0,37,38,39,0,41,42, + 43,44,45,46,47,48,49,50,51,52, + 53,54,0,1,2,3,4,5,6,7, + 0,9,10,11,12,13,14,15,16,17, + 18,19,20,21,0,0,0,25,26,0, + 0,0,0,0,0,0,0,0,0,37, + 38,39,0,41,42,43,44,45,46,47, + 48,49,50,51,52,53,54,0,1,2, + 0,4,0,0,0,0,0,10,11,12, + 13,14,15,16,17,18,19,20,21,22, + 23,24,0,0,0,28,29,30,31,32, + 33,34,35,36,0,0,0,40,3,0, + 0,0,0,0,0,0,0,0,1,2, + 0,4,0,0,57,58,59,10,11,12, + 13,14,15,16,17,18,19,20,21,22, + 23,24,37,38,0,28,29,30,31,32, + 33,34,35,36,0,0,0,40,0,1, + 2,3,4,5,6,7,8,9,0,64, + 0,0,0,0,57,58,59,0,0,0, + 22,23,24,0,0,27,28,29,30,31, + 32,33,34,35,36,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,69,69,28,0,0,0,0,87, - 0,0,0,0,0,0,0,0,73,45, - 73,0,73,0,0,0,0,0,0,0, - 0,0,0,69,0,0,0,0,69,0, - 0,69,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,91,0, - 0,0,0,0,0,0,0,119,0,0, + 0,106,0,0,0,0,0,0,0,0, + 0,0,64,0,0,120,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,119, - 0,0,0,0,0,0,0,0,0,0 + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0 }; }; public final static byte termCheck[] = TermCheck.termCheck; @@ -1385,318 +1421,351 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TermAction { public final static char termAction[] = {0, - 5230,5195,5174,5174,5174,5174,5174,5174,5211,5174, - 1,1,1,5199,1,1,1,1,1,1, + 5226,5191,5170,5170,5170,5170,5170,5170,5207,5170, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5195,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,142,1,1,1,1, - 1,1,1,1,1,1,1638,1,2222,134, - 3586,1,1,1,5241,1,1,1,5230,5249, - 5250,5237,5410,3159,384,1240,3802,2575,2199,2460, - 3727,3067,3801,1509,3800,4094,3799,10,5214,5214, - 5214,5214,5214,5214,5214,5214,5214,5214,5214,5214, - 5214,5214,5214,5214,5214,5214,5214,5214,5214,5214, - 5214,5214,5214,5214,5214,5214,5214,5214,5214,5214, - 5214,5214,5214,5214,5214,5214,5214,5214,5214,5214, - 5230,5214,5230,5214,5214,5214,5214,5214,5214,5214, - 5214,5214,5214,5214,5214,5214,2286,5214,5214,5214, - 5214,5214,5214,5214,5214,126,2379,2351,5214,5214, - 455,5230,5214,5214,5214,5214,5214,5214,5214,5214, - 5214,5214,5214,5214,8,5217,5217,5217,5217,5217, - 5217,5217,5217,5217,5217,5217,5217,5217,5217,5217, - 5217,5217,5217,5217,5217,5217,5217,5217,5217,5217, - 5217,5217,5217,5217,5217,5217,5217,5217,5217,5217, - 5217,5217,5217,5217,5217,5217,5217,5230,5217,4893, - 5217,5217,5217,5217,5217,5217,5217,5217,5217,5217, - 5217,5217,5217,136,5217,5217,5217,5217,5217,5217, - 5217,5217,591,2983,3009,5217,5217,454,5230,5217, - 5217,5217,5217,5217,5217,5217,5217,5217,5217,5217, - 5217,5230,5195,5174,5174,5174,5174,5174,5174,5202, - 5174,1,1,1,5199,1,1,1,1,1, + 1,1,1,1,1,1,135,1,1,1, + 1634,1,5401,2218,115,3580,1,1,5237,40, + 3665,157,5233,5265,5226,1236,3742,2571,2195,2456, + 3701,3063,3733,1505,3731,4090,3723,10,5210,5210, + 5210,5210,5210,5210,5210,5210,5210,5210,5210,5210, + 5210,5210,5210,5210,5210,5210,5210,5210,5210,5210, + 5210,5210,5210,5210,5210,5210,5210,5210,5210,5210, + 5210,5210,5210,5210,5210,5210,5210,5210,5210,5210, + 5210,5210,5210,5210,5210,5210,5210,5210,5210,5210, + 5210,5210,1337,2653,5210,5210,5210,5210,5210,5210, + 5210,131,5210,5210,5210,5210,2315,3599,3529,5210, + 587,5226,5210,5210,5210,5210,5210,5210,5210,5210, + 5210,5210,5210,5210,8,5213,5213,5213,5213,5213, + 5213,5213,5213,5213,5213,5213,5213,5213,5213,5213, + 5213,5213,5213,5213,5213,5213,5213,5213,5213,5213, + 5213,5213,5213,5213,5213,5213,5213,5213,5213,5213, + 5213,5213,5213,5213,5213,5213,5213,5213,5213,5213, + 5213,5213,5213,5213,5213,5213,5213,5213,5213,432, + 2660,5213,5213,5213,5213,5213,5213,5213,380,5213, + 5213,5213,5213,5226,4862,4859,5213,5265,5226,5213, + 5213,5213,5213,5213,5213,5213,5213,5213,5213,5213, + 5213,5226,5191,5170,5170,5170,5170,5170,5170,5198, + 5170,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5195,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5230,1,4896,1,1,1, - 1,1,1,1,1,1,1,1638,1,2222, - 137,3586,1,1,1,5241,1,1,1,591, - 5230,4866,4863,5410,5274,5230,1240,3802,2575,2199, - 2460,3727,3067,3801,1509,3800,4094,3799,5230,5195, - 5174,5174,5174,5174,5174,5174,5202,5174,1,1, - 1,5199,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,137,2701,1,1, + 1,1634,1,5401,2218,117,3580,1,1,5237, + 111,3665,5654,5655,5656,5226,1236,3742,2571,2195, + 2456,3701,3063,3733,1505,3731,4090,3723,5226,5191, + 5170,5170,5170,5170,5170,5170,5198,5170,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5195,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5230,1,143,1,1,1,1,1,1, - 1,1,1,1,1638,1,2222,5230,3586,1, - 1,1,5241,1,1,1,116,5230,4866,4863, - 5410,5274,5230,1240,3802,2575,2199,2460,3727,3067, - 3801,1509,3800,4094,3799,5230,5195,5174,5174,5174, - 5174,5174,5174,5202,5174,1,1,1,5199,1, + 1,1,1,132,2708,1,1,1,1634,1, + 5401,2218,587,3580,1,1,5237,2282,3599,3529, + 3989,5226,4011,1236,3742,2571,2195,2456,3701,3063, + 3733,1505,3731,4090,3723,5226,5191,5170,5170,5170, + 5170,5170,5170,5198,5170,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,5195,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5230,1, - 1895,1,1,1,1,1,1,1,1,1, - 1,1638,1,2222,2286,3586,1,1,1,5241, - 1,1,1,5230,5249,5250,3993,5410,4015,5230, - 1240,3802,2575,2199,2460,3727,3067,3801,1509,3800, - 4094,3799,5230,5195,5174,5174,5174,5174,5174,5174, - 5202,5174,1,1,1,5199,1,1,1,1, + 5731,136,1,1,1,1634,1,5401,2218,116, + 3580,1,1,5237,5226,3665,121,5226,5240,5241, + 1236,3742,2571,2195,2456,3701,3063,3733,1505,3731, + 4090,3723,5226,5191,5170,5170,5170,5170,5170,5170, + 5198,5170,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5195, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5230,1,5230,1,1, - 1,1,1,1,1,1,1,1,1638,1, - 2222,123,3586,1,1,1,5241,1,1,1, - 119,45,3482,3457,5410,5274,5230,1240,3802,2575, - 2199,2460,3727,3067,3801,1509,3800,4094,3799,5230, - 5195,5174,5174,5174,5174,5174,5174,5202,5174,1, - 1,1,5199,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1891,5226,1, + 1,1,1634,1,5401,2218,5226,3580,1,1, + 5237,2315,3599,3529,2979,3005,5226,1236,3742,2571, + 2195,2456,3701,3063,3733,1505,3731,4090,3723,5226, + 5191,5170,5170,5170,5170,5170,5170,5198,5170,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,5195,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,5230,1,5230,1,1,1,1,1, - 1,1,1,1,1,1638,1,2222,425,3586, - 1,1,1,5241,1,1,1,5230,5044,5041, - 3993,5410,4015,5230,1240,3802,2575,2199,2460,3727, - 3067,3801,1509,3800,4094,3799,5230,5195,5174,5174, - 5174,5174,5174,5174,5202,5174,1,1,1,5199, + 1,1,1,1,5226,5660,1,1,1,1634, + 1,5401,2218,5226,3580,1,1,5237,5226,5240, + 5241,508,5226,3155,1236,3742,2571,2195,2456,3701, + 3063,3733,1505,3731,4090,3723,5226,5191,5170,5170, + 5170,5170,5170,5170,5198,5170,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,5195,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5230, - 1,3077,1,1,1,1,1,1,1,1, - 1,1,1638,1,2222,5230,3586,1,1,1, - 5241,1,1,1,54,5044,5041,347,5410,348, - 1590,1240,3802,2575,2199,2460,3727,3067,3801,1509, - 3800,4094,3799,5230,5195,5174,5174,5174,5174,5174, - 5174,5202,5174,1,1,1,5199,1,1,1, + 1,5674,870,1,1,1,1634,1,5401,2218, + 299,3580,1,1,5237,5226,4862,4859,358,5265, + 5524,1236,3742,2571,2195,2456,3701,3063,3733,1505, + 3731,4090,3723,5226,5191,5170,5170,5170,5170,5170, + 5170,5198,5170,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 5195,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5226,3197, + 1,1,1,1634,1,5401,2218,5226,3580,1, + 1,5237,5226,5040,5037,49,5040,5037,1236,3742, + 2571,2195,2456,3701,3063,3733,1505,3731,4090,3723, + 5226,5191,5170,5170,5170,5170,5170,5170,5198,5170, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5195,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1857,1,1857,1, - 1,1,1,1,1,1,1,1,1,1638, - 1,2222,125,3586,1,1,1,5241,1,1, - 1,118,5230,3482,3457,5410,731,5230,1240,3802, - 2575,2199,2460,3727,3067,3801,1509,3800,4094,3799, - 5230,5195,5174,5174,5174,5174,5174,5174,5202,5174, - 1,1,1,5199,1,1,1,1,1,1, + 1,1,1,1,1,5226,5226,1,1,1, + 1634,1,5401,2218,5226,3580,1,1,5237,125, + 5226,5226,124,2726,2654,1236,3742,2571,2195,2456, + 3701,3063,3733,1505,3731,4090,3723,5226,5191,5170, + 5170,5170,5170,5170,5170,5198,5170,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,5195,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5230,1,5230,1,1,1,1, - 1,1,1,1,1,1,1638,1,2222,135, - 3586,1,1,1,5241,1,1,1,117,5230, - 1,3993,5410,4015,388,1240,3802,2575,2199,2460, - 3727,3067,3801,1509,3800,4094,3799,5230,5195,5174, - 5174,5174,5174,5174,5174,5202,5174,1,1,1, - 5199,1,1,1,1,1,1,1,1,1, + 1,1,5226,5226,1,1,1,1634,1,5401, + 2218,5226,3580,1,1,5237,114,2979,3005,5230, + 2979,3005,1236,3742,2571,2195,2456,3701,3063,3733, + 1505,3731,4090,3723,5226,3712,1,1,1,1, + 1,1,3718,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,5235,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 3592,1,5230,1,1,1,1,1,1,1, - 1,1,1,1638,1,2222,5230,3586,1,1, - 1,5241,1,1,1,130,2379,2351,3993,5410, - 4015,5230,1240,3802,2575,2199,2460,3727,3067,3801, - 1509,3800,4094,3799,5230,3737,1,1,1,1, - 1,1,3746,1,1,1,1,5239,1,1, + 1,1,1,1,1,1,1,1,1,5226, + 5226,1,1,1,1634,1,5401,2218,5226,3580, + 1,1,5237,288,5240,5241,3989,5226,4011,1236, + 3742,2571,2195,2456,3701,3063,3733,1505,3731,4090, + 3723,40,4862,4859,1934,2059,3813,3879,3397,5229, + 3901,920,5490,5488,5497,5496,5492,5493,5491,5494, + 5495,5498,5489,5486,5559,5560,3857,3835,133,5480, + 5487,5483,5459,5485,5484,5481,5482,5460,3945,3923, + 5246,5618,623,771,846,5248,786,4068,788,5249, + 5247,719,5242,5244,5245,5243,5226,5226,859,5619, + 5620,727,1293,5226,5095,5095,229,5091,229,229, + 229,5099,229,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,3795,1, + 229,1,1,1,1,1,1,1,1,1, + 5226,4862,4859,1,2059,619,5226,3397,4858,224, + 5226,4862,4859,4270,2059,619,1332,3397,5088,5552, + 1,1,1,1167,225,5632,2186,1170,5226,5240, + 5241,5486,5559,5560,5226,410,229,5480,5487,5483, + 5459,5485,5484,5481,5482,5460,5486,5559,5560,129, + 5719,123,5480,5487,5483,5459,5485,5484,5481,5482, + 5460,391,4862,4859,2845,5265,5654,5655,5656,5226, + 5095,5095,229,5091,229,229,229,5143,229,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,3967,975,229,1,1,1, + 1,1,1,1,1,1,437,1,1,1, + 1,34,4886,451,4901,4886,40,4901,5226,4901, + 4901,5226,8552,8552,5088,118,1,1,1,1167, + 226,5632,2186,37,5117,5114,4901,4901,4901,2979, + 3005,409,229,44,5046,5046,2375,2347,4901,4901, + 3478,3453,5486,5559,5560,134,5719,2665,5480,5487, + 5483,5459,5485,5484,5481,5482,5460,4901,5226,5040, + 5037,113,5654,5655,5656,4901,5263,4889,138,1, + 4901,4901,4901,4901,4901,4901,5226,161,363,4950, + 4946,2425,4954,619,1,3397,450,1,5043,4901, + 4901,4901,4901,4901,4901,4901,4901,4901,4901,4901, + 4901,4901,4901,4901,354,120,5226,4901,4901,4901, + 4901,4901,4901,4901,4901,4901,4901,4901,4901,4901, + 5226,4901,4901,4904,3967,975,4904,130,4904,4904, + 3478,3453,30,383,383,5067,383,383,5067,383, + 5067,5067,1853,161,1170,4904,4904,4904,1122,92, + 4892,3989,4895,4011,383,383,383,4904,4904,5067, + 383,383,383,383,383,383,383,383,383,2282, + 1,4950,4946,5134,4954,5140,4904,5137,5236,122, + 39,4880,4877,5226,4904,4874,185,3397,4865,4904, + 4904,4904,4904,4904,4904,5579,5067,5235,307,4950, + 4946,4270,4954,619,5161,3397,5067,5158,4904,4904, + 4904,4904,4904,4904,4904,4904,4904,4904,4904,4904, + 4904,4904,4904,421,2375,2347,4904,4904,4904,4904, + 4904,4904,4904,4904,4904,4904,4904,4904,4904,2739, + 4904,4904,5226,5170,5170,229,5170,229,229,229, + 5173,229,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,2979,3005,229, + 1,1,8472,1,1,1,1,1,1,5226, + 4862,4859,1,2059,619,289,3397,227,1,4950, + 4946,4270,4954,619,5226,3397,3073,5167,139,1, + 1,1,3058,343,5437,2218,1586,3580,5217,5486, + 5559,5560,112,5226,220,5480,5487,5483,5459,5485, + 5484,5481,5482,5460,38,5079,5079,5226,5226,5719, + 5226,5170,5170,229,5170,229,229,229,229,229, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,529,1,5230, + 1,1,1,1,1,1983,119,229,1,1, + 8472,1,1,1,1,1,1,1853,1810,4764, + 1,5226,4950,4946,4270,4954,619,5161,3397,3292, + 5158,3478,3453,4766,4767,5167,3387,1,1,1, + 3058,1,5437,2218,2860,3580,5226,5240,5241,5055, + 2244,619,3989,3397,4011,4092,1767,1724,1681,1638, + 1595,1552,1509,1466,1423,1380,5226,5719,5226,5170, + 5170,229,5170,229,229,229,5176,229,1,1, 1,1,1,1,1,1,1,1,1,1, - 1638,1,2222,358,3586,1,1,1,5241,1, - 1,1,5230,2983,3009,2730,5410,106,190,1240, - 3802,2575,2199,2460,3727,3067,3801,1509,3800,4094, - 3799,45,4866,4863,1938,2063,3817,3883,3401,138, - 3905,924,3861,3839,3703,5498,5496,5505,5491,5504, - 5500,5501,5499,5502,5503,5506,5497,3949,3927,5255, - 627,775,850,5257,790,4072,792,5258,5256,723, - 5251,5253,5254,5252,129,5494,4386,5567,5568,5488, - 5495,5467,5493,5492,5489,5490,5468,1,1297,395, - 4866,4863,5626,5274,5587,166,863,5627,5628,5230, - 5099,5099,233,5095,233,233,233,5103,233,1, - 4862,5230,233,1,1,1,1,1,1,1, - 1,1,1,1,1,5230,1,4954,4950,2429, - 4958,623,45,3401,5059,441,1,1,1174,1, - 5221,4890,5092,1,4890,1,1,1,1,1, - 1,1,1,1,1,1171,2743,2190,140,5230, - 1,166,2983,3009,1,1,1,5236,162,45, - 414,5640,233,5274,5230,5099,5099,233,5095,233, - 233,233,5147,233,1,1857,5727,233,1,1, + 1,1,1,371,2070,229,1,1,8472,1, + 1,1,1,1,1,1853,3588,5226,1,1, + 4950,4946,4270,4954,619,5058,3397,1,4950,4946, + 2425,4954,619,5167,3397,1,1,1,3058,315, + 5437,2218,5155,3580,1,4950,4946,2425,4954,619, + 219,3397,5055,341,4862,4859,2425,2059,619,1332, + 3397,1,5552,5226,4772,5719,5226,5170,5170,229, + 5170,229,229,229,5173,229,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5062,3865,5662,5663,5664,367,4954,4950,2429,4958, - 623,1,3401,2471,1,45,5230,5092,1,5274, + 1,1853,2070,229,1,1,8472,1,1,1, + 1,1,1,1853,5226,5226,1,5226,1853,1, + 4950,4946,5134,4954,5140,5234,5137,1853,5058,1, + 299,5167,3795,1,1,1,3058,359,5437,2218, + 5524,3580,5226,1,5085,5085,30,5082,220,1332, + 5232,359,5552,438,40,40,38,5265,30,5073, + 5226,5226,5070,5719,5226,5170,5170,229,5170,229, + 229,229,5173,229,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5233, + 2839,229,1,1,8472,1,1,1,1,1, + 1,139,4865,359,1,1,4950,4946,4270,4954, + 619,5263,3397,307,909,237,5231,359,5061,5167, + 359,1,1,1,3058,1,5437,2218,2860,3580, + 5226,417,307,337,359,3155,220,341,40,40, + 2860,5265,5226,1332,5226,4095,5552,5226,5105,5102, + 48,5719,5226,5170,5170,229,5170,229,229,229, + 229,229,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,433,5226,229, + 1,1,8472,1,1,1,1,1,1,1853, + 5226,40,1,4104,337,5265,337,1332,5226,337, + 5552,1853,5263,2244,525,3074,5238,5167,4092,1, + 1,1,3058,1,5437,2218,40,3580,344,5226, + 5265,5185,5226,4862,4859,5226,2059,4907,4321,3397, + 5226,4862,4859,4868,2059,4907,5226,3397,842,5719, + 5226,5170,5170,229,5170,229,229,229,229,229, 1,1,1,1,1,1,1,1,1,1, - 1171,5230,2190,5235,5230,1,336,2658,1341,1, - 1,1,5230,8768,8768,413,5640,233,1,4954, - 4950,4274,4958,623,39,3401,1,4905,2319,846, - 4905,5727,4905,4905,1857,4905,4905,4905,1,4954, - 4950,4274,4958,623,1126,3401,4768,5662,5663,5664, - 4905,4905,5567,5568,2657,5272,227,5230,4866,4863, - 4274,2063,623,1336,3401,97,5560,141,4899,4905, - 5498,5496,5505,5491,5504,5500,5501,5499,5502,5503, - 5506,5497,5230,4905,144,5230,5249,5250,5662,5663, - 5664,2074,4905,4905,4905,4905,313,4905,4905,3784, - 5494,2849,5567,5568,5488,5495,5467,5493,5492,5489, - 5490,5468,4905,4905,4905,4905,4905,4905,4905,4905, - 4905,4905,4905,4905,4905,4905,4905,292,5249,5250, - 4905,4905,4905,4905,4905,4905,4905,4905,4905,4905, - 4905,4905,4905,5230,4905,4905,4908,3971,979,4908, - 2664,4908,4908,1814,4908,4908,4908,5230,4954,4950, - 4274,4958,623,5165,3401,1080,5162,2319,105,4908, - 4908,1,4954,4950,5138,4958,5144,1,5141,5240, - 4776,442,45,45,5239,5274,2248,5077,4908,5230, - 5074,4096,1771,1728,1685,1642,1599,1556,1513,1470, - 1427,1384,4908,1,4954,4950,2429,4958,623,5230, - 3401,4908,4908,4908,4908,241,4908,4908,5065,345, - 4866,4863,2429,2063,623,1336,3401,2025,5560,5230, - 2074,4908,4908,4908,4908,4908,4908,4908,4908,4908, - 4908,4908,4908,4908,4908,4908,42,5121,5118,4908, - 4908,4908,4908,4908,4908,4908,4908,4908,4908,4908, - 4908,4908,1857,4908,4908,5230,1,1,1,1, - 1,1,1,5230,1,1,1,1,1857,1, - 1,1,43,1,1,1,1,1,1,1, + 1,1,1,1,1,3635,5237,229,1,1, + 8472,1,1,1,1,1,1,927,5226,1, + 1,5237,1853,384,399,2438,5226,4862,4859,5226, + 5265,3405,5128,3559,5238,5167,5226,1,1,1, + 3058,5226,5437,2218,5236,3580,93,1,1,5234, + 1,5131,5076,5226,5226,5076,5226,5240,5241,5654, + 5655,5656,5226,5235,5238,5226,447,5719,5226,5170, + 5170,229,5170,229,229,229,229,229,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,311,4954, - 4950,4274,4958,623,5165,3401,5230,5162,4770,5230, - 4866,4863,1,2063,623,5272,3401,1,1,1, - 4954,4950,1938,4958,3817,3883,3401,5763,3905,4914, - 3861,3839,293,4941,4947,4920,144,4923,4935,4932, - 4938,4929,4926,4917,4944,3949,3927,5255,627,775, - 850,5257,790,4072,792,5258,5256,723,5251,5253, - 5254,5252,1,5089,5089,5230,5086,5230,1336,128, - 363,5560,1,5230,2705,2864,1297,5230,5249,5250, - 341,45,45,5230,5230,5242,4099,513,45,4866, - 4863,1938,2063,3817,3883,3401,5224,3905,798,3861, - 3839,1987,5498,5496,5505,53,5504,5500,5501,5499, - 5502,5503,5506,5497,3949,3927,5255,627,775,850, - 5257,790,4072,792,5258,5256,723,5251,5253,5254, - 5252,1857,44,4884,4881,2712,363,4878,2248,3401, - 341,5241,341,4096,5230,1297,341,4108,3078,5230, - 5249,5250,5208,363,623,5230,3401,2983,3009,5237, - 146,4866,4863,1938,2063,3817,3883,3401,139,3905, - 798,3861,3839,131,5498,5496,5505,5230,5504,5500, - 5501,5499,5502,5503,5506,5497,3949,3927,5255,627, - 775,850,5257,790,4072,792,5258,5256,723,5251, - 5253,5254,5252,1,4954,4950,4274,4958,623,303, - 3401,311,319,5230,5230,5159,311,1297,2609,5532, - 1719,5238,45,45,1,4954,4950,1938,4958,3817, - 3883,3401,370,3905,4914,3861,3839,5230,4941,4947, - 4920,4887,4923,4935,4932,4938,4929,4926,4917,4944, - 3949,3927,5255,627,775,850,5257,790,4072,792, - 5258,5256,723,5251,5253,5254,5252,1174,2552,2525, - 5230,1857,403,345,45,45,2864,5274,5238,1336, - 5132,1297,5560,993,5237,5135,45,45,45,4866, - 4863,1938,2063,3817,3883,3401,5205,3905,798,3861, - 3839,1207,5498,5496,5505,5739,5504,5500,5501,5499, - 5502,5503,5506,5497,3949,3927,5255,627,775,850, - 5257,790,4072,792,5258,5256,723,5251,5253,5254, - 5252,5230,1857,1,4954,4950,5138,4958,5144,5230, - 5141,5237,5230,4866,4863,1297,5274,5242,5230,5230, - 5242,4325,5208,45,4866,4863,1938,2063,3817,3883, - 3401,5205,3905,798,3861,3839,5230,5498,5496,5505, - 5230,5504,5500,5501,5499,5502,5503,5506,5497,3949, - 3927,5255,627,775,850,5257,790,4072,792,5258, - 5256,723,5251,5253,5254,5252,98,1,1,4188, - 1,4483,5080,5241,1,5080,5241,101,45,45, - 1297,5274,5236,5153,5230,4771,5150,5208,45,4866, - 4863,1938,2063,3817,3883,3401,5234,3905,798,3861, - 3839,5230,5498,5496,5505,3085,5504,5500,5501,5499, - 5502,5503,5506,5497,3949,3927,5255,627,775,850, - 5257,790,4072,792,5258,5256,723,5251,5253,5254, - 5252,45,4866,4863,1938,2063,3817,3883,3401,133, - 3905,798,3861,3839,132,5498,5496,5505,5235,5504, - 5500,5501,5499,5502,5503,5506,5497,3949,3927,5255, - 627,775,850,5257,790,4072,792,5258,5256,723, - 5251,5253,5254,5252,1,5230,228,557,4326,5696, - 5690,5230,5230,5694,2609,5688,5689,124,1297,2609, - 5230,4866,4863,5491,2063,623,35,3401,3482,3457, - 5719,5720,1,5697,229,45,5233,5053,5230,5274, - 5189,1336,5056,5230,5560,5230,5044,5041,1,5699, - 5494,5491,5567,5568,5488,5495,5467,5493,5492,5489, - 5490,5468,436,789,2552,2525,1579,1596,5230,2552, - 2525,4869,5700,5698,5721,395,5249,5250,5494,5668, - 5567,5568,5488,5495,5467,5493,5492,5489,5490,5468, - 437,5230,5710,5709,5722,1381,5241,5691,5692,5715, - 5716,5713,5714,5693,5695,5717,5718,3971,979,5230, - 5723,5682,5703,5704,5705,5701,5702,5711,5712,5707, - 5706,5708,45,4866,4863,1938,2063,3817,3883,3401, - 5230,3905,798,3861,3839,4872,5498,5496,5505,5589, - 5504,5500,5501,5499,5502,5503,5506,5497,3949,3927, - 5255,627,775,850,5257,790,4072,792,5258,5256, - 723,5251,5253,5254,5252,5662,5663,5664,45,4866, - 4863,1938,2063,3817,3883,3401,5230,3905,798,3861, - 3839,1159,5498,5496,5505,5230,5504,5500,5501,5499, - 5502,5503,5506,5497,3949,3927,5255,627,775,850, - 5257,790,4072,792,5258,5256,723,5251,5253,5254, - 5252,5230,45,4866,4863,4651,2063,3817,3883,3401, - 5230,3905,798,3861,3839,1297,5498,5496,5505,5230, - 5504,5500,5501,5499,5502,5503,5506,5497,3949,3927, - 5255,627,775,850,5257,790,4072,792,5258,5256, - 723,5251,5253,5254,5252,45,4866,4863,1938,2063, - 3817,3883,3401,3409,3905,798,3861,3839,5230,5498, - 5496,5505,1424,5504,5500,5501,5499,5502,5503,5506, - 5497,3949,3927,5255,627,775,850,5257,790,4072, - 792,5258,5256,723,5251,5253,5254,5252,45,4866, - 4863,1938,2063,3817,3883,3401,5230,3905,798,3861, - 3839,5230,5498,5496,5505,5230,5504,5500,5501,5499, - 5502,5503,5506,5497,3949,3927,5255,627,775,850, - 5257,790,4072,792,5258,5256,723,5251,5253,5254, - 5252,5230,4866,4863,5230,5274,321,120,5230,8639, - 8571,670,451,3669,5230,5498,5496,5505,5491,5504, - 5500,5501,5499,5502,5503,5506,5497,5230,4866,4863, - 5230,2063,4911,1,3401,5230,8639,8571,5230,127, - 5230,5192,2669,3568,5629,5494,5234,5567,5568,5488, - 5495,5467,5493,5492,5489,5490,5468,4875,2898,245, - 5034,5030,5626,5038,5230,1857,863,5627,5628,670, - 931,387,3713,5021,5027,5000,4985,5003,5015,5012, - 5018,5009,5006,4997,5024,35,387,387,5071,387, - 387,5071,387,5071,5071,5230,81,5230,5071,2866, - 3603,3533,387,4976,5237,4970,4967,4994,4973,4964, - 4979,4982,4991,4988,4961,122,4902,49,5050,5050, - 5626,3669,5298,5299,863,5627,5628,2983,3009,387, - 4869,387,387,387,387,387,387,387,387,387, - 387,1,913,5230,5071,38,388,388,5068,388, - 388,5068,388,5068,5068,3728,5233,5230,5068,5071, - 5047,5230,388,5230,1,5174,5174,233,5174,233, - 233,233,5177,233,43,5083,5083,233,5230,4866, - 4863,8770,2063,4911,121,3401,913,5230,3391,388, - 3669,388,388,388,388,388,388,388,388,388, - 388,5230,577,5230,5068,79,5230,5171,3603,3533, - 1,394,5230,2864,5236,387,657,3296,5059,5068, - 3062,2442,2222,5230,3586,1,5174,5174,233,5174, - 233,233,233,233,233,224,512,1,233,43, - 5083,5083,8770,1,5083,363,43,5083,5083,5230, - 5156,5727,1719,5183,3159,362,913,35,1,5174, - 5174,233,5174,233,233,233,5180,233,5171,1857, - 3391,233,5230,5109,5106,8770,4796,3603,3533,5230, - 5235,3062,3277,2222,5062,3586,3639,5230,230,5272, - 1,5174,5174,233,5174,233,233,233,5177,233, - 5230,5171,913,233,5186,5491,874,8770,5240,368, - 5230,363,5727,5239,3062,5272,2222,5230,3586,51, - 5115,5115,5230,5128,5124,3201,5230,54,363,223, - 421,5250,5494,5171,5567,5568,5488,5495,5467,5493, - 5492,5489,5490,5468,5230,5727,3062,3843,2222,4483, - 3586,1,5174,5174,233,5174,233,233,233,5177, - 233,224,5112,1,233,5272,1,5230,8770,43, - 5083,5083,5250,5183,5240,5240,5230,5727,1251,5239, - 5239,231,5230,1,5174,5174,233,5174,233,233, - 233,233,233,1,5171,54,233,1,5491,5249, - 8770,525,417,303,5230,196,3639,3062,1,2222, - 196,3586,5272,5532,5230,8,168,4213,291,445, - 423,2727,224,5227,5186,5494,5171,5567,5568,5488, - 5495,5467,5493,5492,5489,5490,5468,3649,5727,3062, - 5249,2222,41,3586,1,5174,5174,233,5174,233, - 233,233,233,233,5230,109,5230,233,4392,2843, - 5230,8770,282,1929,446,5168,5230,525,310,3587, - 5727,2161,1,5174,5174,233,5174,233,233,233, - 233,233,168,505,503,233,5227,5171,1169,8770, - 3632,5230,2800,5230,4393,5230,3066,5230,375,5230, - 3062,3218,2222,5230,3586,5230,4720,5230,4744,5230, - 2663,2917,4758,5230,5230,5171,2655,1,5230,5230, - 518,4451,507,3808,2,5230,1,2112,3062,5230, - 2222,5727,3586,5230,2886,5230,5230,5230,4059,5230, - 5230,5230,5230,5230,5230,5230,5230,5230,5230,5230, - 5230,5230,4778,4784,3585,5230,5230,5230,5230,5727, - 5230,5230,5230,5230,5230,5230,5230,5230,3104,43, - 3141,5230,3198,5230,5230,5230,5230,5230,5230,5230, - 5230,5230,5230,2917,5230,5230,5230,5230,1944,5230, - 5230,799,5230,5230,5230,5230,5230,5230,5230,5230, - 5230,5230,5230,5230,5230,5230,5230,5230,3723,5230, - 5230,5230,5230,5230,5230,5230,5230,3808,5230,5230, - 5230,5230,5230,5230,5230,5230,5230,5230,5230,5230, - 5230,5230,5230,5230,5230,5230,5230,5230,5230,3808 + 1,1,1,2894,5237,229,1,1,8472,1, + 1,1,1,1,1,96,40,40,1,5265, + 5226,5149,989,5233,5146,38,5079,5079,5236,332, + 5079,5226,4871,5167,5237,1,1,1,3058,5226, + 5437,2218,5226,3580,4184,309,4479,5235,3780,5226, + 5232,5226,5559,5560,391,5240,5241,5226,1,1, + 1,1,1,1,1,5719,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5226, + 3273,1,1,1,5226,8679,8629,5226,287,5188, + 101,3645,126,390,1,1,1,383,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,5621,4792,5226,1076,5231,4322,1,5755, + 5226,8679,8629,1,1,1,4950,4946,1934,4954, + 3813,3879,3397,383,3901,4910,4937,4943,4916,4919, + 4931,4928,4934,4925,4922,4913,4940,8,2605,909, + 3857,3835,1,5233,4382,5223,3804,1,4479,1165, + 5232,4883,3945,3923,5246,5236,623,771,846,5248, + 786,4068,788,5249,5247,719,5242,5244,5245,5243, + 5226,366,5226,3564,5235,4209,1293,2548,2521,4898, + 104,40,40,4388,509,40,4862,4859,1934,2059, + 3813,3879,3397,5220,3901,794,5490,5488,5497,5496, + 5492,5493,5491,5494,5495,5498,5489,441,5226,5223, + 3857,3835,1,1,1715,5226,5231,364,100,1080, + 521,191,3945,3923,5246,128,623,771,846,5248, + 786,4068,788,5249,5247,719,5242,5244,5245,5243, + 191,1203,1,38,5079,5079,1293,5226,5226,1715, + 163,1419,5226,5204,317,1925,5226,5233,141,4862, + 4859,1934,2059,3813,3879,3397,5226,3901,794,5490, + 5488,5497,5496,5492,5493,5491,5494,5495,5498,5489, + 2796,2605,2021,3857,3835,419,521,1247,278,413, + 1,5164,1,127,5049,3945,3923,5246,5263,623, + 771,846,5248,786,4068,788,5249,5247,719,5242, + 5244,5245,5243,5226,36,5226,163,3709,1853,1293, + 2548,2521,909,5226,40,40,1,4950,4946,1934, + 4954,3813,3879,3397,5226,3901,4910,4937,4943,4916, + 4919,4931,4928,4934,4925,4922,4913,4940,909,2605, + 5226,3857,3835,3581,442,5226,3628,306,4389,2157, + 74,5226,5052,3945,3923,5246,5226,623,771,846, + 5248,786,4068,788,5249,5247,719,5242,5244,5245, + 5243,5581,5226,501,2913,3062,2108,1293,2548,2521, + 3387,499,40,40,40,4862,4859,1934,2059,3813, + 3879,3397,5201,3901,794,5490,5488,5497,5496,5492, + 5493,5491,5494,5495,5498,5489,5152,2723,5226,3857, + 3835,5226,3214,5226,5226,2882,4716,4740,4055,5226, + 40,3945,3923,5246,5265,623,771,846,5248,786, + 4068,788,5249,5247,719,5242,5244,5245,5243,5226, + 5226,5226,2467,4774,2659,1293,5226,5226,5226,4754, + 2651,4780,5204,40,4862,4859,1934,2059,3813,3879, + 3397,5201,3901,794,5490,5488,5497,5496,5492,5493, + 5491,5494,5495,5498,5489,5226,1,5226,3857,3835, + 4447,3100,514,5226,3137,503,5226,5226,5226,2913, + 3945,3923,5246,5226,623,771,846,5248,786,4068, + 788,5249,5247,719,5242,5244,5245,5243,5226,1, + 5226,5226,3194,5226,1293,3572,3805,5226,1940,5226, + 5226,5204,40,4862,4859,1934,2059,3813,3879,3397, + 5230,3901,794,5490,5488,5497,5496,5492,5493,5491, + 5494,5495,5498,5489,46,5111,5111,3857,3835,5226, + 5124,5120,38,5079,5079,795,2,5226,5226,3945, + 3923,5246,5226,623,771,846,5248,786,4068,788, + 5249,5247,719,5242,5244,5245,5243,40,4862,4859, + 1934,2059,3813,3879,3397,5226,3901,794,5490,5488, + 5497,5496,5492,5493,5491,5494,5495,5498,5489,5108, + 3770,3795,3857,3835,5263,5226,5226,5263,5226,5226, + 5226,5226,38,5226,3945,3923,5246,5226,623,771, + 846,5248,786,4068,788,5249,5247,719,5242,5244, + 5245,5243,5226,49,5226,223,1,5241,1293,553, + 5229,5688,5682,5226,5226,5686,5490,5488,5497,5496, + 5492,5493,5491,5494,5495,5498,5489,5486,5559,5560, + 5226,5680,5681,5480,5487,5483,5459,5485,5484,5481, + 5482,5460,1,5711,5712,5226,5226,5689,5226,5226, + 5226,5226,5179,49,5226,5226,5226,5240,1,5241, + 5226,5226,5691,5226,5226,5226,5226,5226,5179,5226, + 785,5226,1575,1592,5226,5692,5690,5713,5226,5226, + 5226,5226,5182,5226,5226,5226,5226,5226,5226,5226, + 5226,5226,5226,5226,5702,5701,5714,3592,5182,5683, + 5684,5707,5708,5705,5706,5685,5687,5709,5710,5240, + 5226,5226,5715,3592,5695,5696,5697,5693,5694,5703, + 5704,5699,5698,5700,40,4862,4859,1934,2059,3813, + 3879,3397,5226,3901,794,5490,5488,5497,5496,5492, + 5493,5491,5494,5495,5498,5489,5226,5226,5226,3857, + 3835,5226,5226,5226,5226,5226,5226,5226,5226,5226, + 5226,3945,3923,5246,5226,623,771,846,5248,786, + 4068,788,5249,5247,719,5242,5244,5245,5243,5226, + 40,4862,4859,1934,2059,3813,3879,3397,1155,3901, + 794,5490,5488,5497,5496,5492,5493,5491,5494,5495, + 5498,5489,5226,5226,5226,3857,3835,5226,5226,5226, + 5226,5226,5226,5226,5226,5226,5226,3945,3923,5246, + 5226,623,771,846,5248,786,4068,788,5249,5247, + 719,5242,5244,5245,5243,5226,5226,5226,5226,5226, + 5226,1293,40,4862,4859,4647,2059,3813,3879,3397, + 5226,3901,794,5490,5488,5497,5496,5492,5493,5491, + 5494,5495,5498,5489,5226,5226,5226,3857,3835,5226, + 5226,5226,5226,5226,5226,5226,5226,5226,5226,3945, + 3923,5246,5226,623,771,846,5248,786,4068,788, + 5249,5247,719,5242,5244,5245,5243,40,4862,4859, + 1934,2059,3813,3879,3397,5226,3901,794,5490,5488, + 5497,5496,5492,5493,5491,5494,5495,5498,5489,5226, + 5226,5226,3857,3835,5226,5226,5226,5226,5226,5226, + 5226,5226,5226,5226,3945,3923,5246,5226,623,771, + 846,5248,786,4068,788,5249,5247,719,5242,5244, + 5245,5243,40,4862,4859,1934,2059,3813,3879,3397, + 5226,3901,794,5490,5488,5497,5496,5492,5493,5491, + 5494,5495,5498,5489,5226,5226,5226,3857,3835,5226, + 5226,5226,5226,5226,5226,5226,5226,5226,5226,3945, + 3923,5246,5226,623,771,846,5248,786,4068,788, + 5249,5247,719,5242,5244,5245,5243,5226,4862,4859, + 5226,5265,5226,5226,5226,5226,5226,666,5490,5488, + 5497,5496,5492,5493,5491,5494,5495,5498,5489,5486, + 5559,5560,5226,5226,5226,5480,5487,5483,5459,5485, + 5484,5481,5482,5460,5226,76,5226,5618,2862,5226, + 5226,5226,5226,5226,5226,5226,5226,241,5030,5026, + 5226,5034,5226,5226,859,5619,5620,666,5017,5023, + 4996,4999,5011,5008,5014,5005,5002,4993,5020,4972, + 4966,4963,5289,5290,5226,4990,4969,4981,4960,4975, + 4978,4987,4984,4957,5226,5226,5226,5618,33,384, + 384,5064,384,384,5064,384,5064,5064,5226,3724, + 5226,5226,5226,5226,859,5619,5620,5226,5226,5226, + 384,384,384,5226,5226,5064,384,384,384,384, + 384,384,384,384,384,5226,5226,5226,5226,5226, + 5226,5226,5226,5226,5226,5226,5226,5226,5226,5226, + 5226,573,5226,5226,5226,5226,5226,5226,5226,5226, + 5226,5226,5064,5226,5226,653,5226,5226,5226,5226, + 5226,5226,5064 }; }; public final static char termAction[] = TermAction.termAction; @@ -1704,59 +1773,59 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asb { public final static char asb[] = {0, - 168,54,485,48,210,929,929,929,929,1104, - 210,682,682,844,682,155,485,157,486,486, - 486,486,486,486,486,486,486,684,690,695, - 692,699,697,704,702,706,705,707,212,708, - 485,469,884,884,884,884,525,629,56,56, - 679,884,420,45,682,682,56,525,45,937, - 883,1019,1106,1041,469,682,684,372,372,629, - 485,486,486,486,486,486,486,486,486,486, + 168,54,486,48,210,931,931,931,931,1107, + 210,683,683,846,683,155,486,157,487,487, + 487,487,487,487,487,487,487,685,691,696, + 693,700,698,705,703,707,706,708,212,709, + 486,470,886,886,886,886,526,630,56,56, + 680,886,421,45,683,683,56,526,45,939, + 885,1022,1109,1044,470,683,685,373,373,630, + 486,487,487,487,487,487,487,487,487,487, + 487,487,487,487,487,487,487,487,487,487, 486,486,486,486,486,486,486,486,486,486, - 485,485,485,485,485,485,485,485,485,485, - 485,485,486,45,45,36,469,804,804,804, - 804,310,45,56,56,1102,1030,1041,590,1041, - 585,1041,587,1041,1025,1104,525,420,420,56, - 929,420,883,485,523,1018,45,522,524,522, - 45,420,692,692,690,690,690,697,697,697, - 697,695,695,702,699,699,705,704,706,1118, - 707,1102,379,546,536,535,593,1048,1048,1104, - 157,210,210,210,210,525,525,804,803,804, - 679,525,675,265,525,779,310,314,777,590, - 319,525,525,525,310,804,486,884,688,1, - 45,1106,525,525,524,1019,485,36,420,723, - 45,548,550,525,1019,485,485,485,485,210, - 210,469,263,675,265,779,778,779,310,779, - 319,319,525,310,525,45,688,1102,1018,1106, - 525,523,45,540,528,539,550,310,523,45, - 45,45,45,629,629,675,674,841,525,265, - 1118,588,929,312,109,1108,265,779,779,783, - 525,319,841,839,840,525,688,689,688,485, - 1,114,684,1106,324,485,537,537,428,428, - 525,544,1102,806,45,525,45,45,675,1019, - 334,590,804,929,522,423,1110,519,210,918, - 911,784,525,841,486,525,688,629,486,420, - 114,324,485,485,550,525,1019,45,548,528, - 324,1083,523,334,334,733,281,523,779,779, - 519,728,1102,525,922,486,1118,436,783,525, - 1104,1104,525,689,45,420,798,550,324,729, - 841,672,980,254,210,588,769,334,334,281, - 523,779,590,1104,1110,519,1018,486,486,525, - 525,525,798,45,798,732,254,672,931,1104, - 841,803,929,162,162,729,590,449,918,525, - 210,525,525,210,791,798,733,334,729,435, - 728,45,1104,525,281,733,281,802,802,916, - 450,1104,525,629,551,791,334,485,117,519, - 729,525,525,281,884,884,916,449,1118,486, - 1118,729,448,210,210,210,450,210,525,220, - 729,729,525,590,45,44,793,841,45,841, - 590,525,729,803,441,210,441,450,1118,450, - 469,469,467,935,469,729,729,439,916,884, - 793,841,117,729,583,806,450,45,519,45, - 467,254,210,45,916,117,162,45,45,1096, - 450,439,450,729,254,485,450,447,840,802, - 590,590,1098,485,448,629,729,45,727,116, - 522,450,45,729,727,727,450 + 486,486,487,45,45,36,470,806,806,806, + 806,310,45,56,56,1105,1033,1044,591,1044, + 586,1044,588,1044,1028,1107,526,421,421,56, + 931,421,885,486,524,1021,45,523,525,523, + 45,421,693,693,691,691,691,698,698,698, + 698,696,696,703,700,700,706,705,707,1121, + 708,1105,380,547,537,536,594,1051,1051,1107, + 157,210,210,210,210,526,526,806,805,806, + 680,526,676,265,526,781,310,314,779,591, + 319,526,526,526,310,806,487,886,689,1, + 45,1109,526,526,525,1022,486,36,421,724, + 45,549,551,526,1022,486,486,486,486,210, + 210,470,263,676,265,781,780,781,310,781, + 319,319,526,310,526,45,689,1105,1021,1109, + 526,524,45,541,529,540,551,310,524,45, + 45,45,45,630,630,676,675,843,526,265, + 1121,589,931,312,109,1111,265,781,781,785, + 526,319,843,841,842,526,689,690,689,486, + 1,114,685,1109,324,486,538,538,429,429, + 526,545,1105,808,45,526,45,45,676,1022, + 334,591,806,931,523,424,1113,520,210,920, + 913,786,526,843,487,526,689,630,487,421, + 114,324,486,486,551,526,1022,45,549,529, + 324,1086,524,334,334,734,281,524,781,781, + 520,729,1105,526,924,487,1121,437,785,526, + 1107,1107,526,690,45,421,800,551,324,730, + 843,673,982,254,210,589,771,334,334,281, + 524,781,591,1107,1113,520,1021,487,487,526, + 526,526,800,45,800,733,254,673,933,1107, + 843,805,931,162,162,730,591,450,920,526, + 210,526,526,210,793,800,734,334,730,436, + 729,45,1107,526,281,734,281,804,804,918, + 451,1107,526,630,552,793,334,486,117,520, + 730,526,526,281,886,886,918,450,1121,487, + 1121,730,449,210,210,210,451,210,526,220, + 730,730,526,591,45,44,795,843,45,843, + 591,526,730,805,442,210,442,451,1121,451, + 470,470,468,937,470,730,730,440,918,886, + 795,843,117,730,584,808,451,45,520,45, + 468,254,210,45,918,117,162,45,45,1099, + 451,440,451,730,254,486,451,448,842,804, + 591,591,1101,486,449,630,730,45,728,116, + 523,451,45,730,728,728,451 }; }; public final static char asb[] = Asb.asb; @@ -1764,118 +1833,119 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asr { public final static byte asr[] = {0, - 92,90,11,12,93,94,88,89,45,95, + 92,90,25,26,93,94,88,89,56,95, 96,97,98,99,100,101,102,107,73,91, - 69,108,109,110,111,112,113,114,115,116, - 117,118,71,13,121,68,1,2,9,6, - 4,3,59,70,74,8,0,8,73,118, - 74,13,70,121,0,48,14,15,61,46, - 30,62,16,31,65,49,17,32,18,50, - 51,19,20,52,63,53,33,21,22,34, - 54,35,66,36,57,37,55,38,67,23, - 44,24,47,25,39,40,41,28,3,26, - 27,9,6,11,12,29,68,42,7,1, - 2,4,10,5,0,71,57,26,27,9, - 6,11,12,29,34,3,4,39,42,40, - 41,28,37,32,36,15,25,14,21,19, - 20,22,23,18,16,24,10,31,35,33, - 30,38,64,8,7,5,1,2,63,62, - 0,68,69,70,1,2,0,14,15,30, - 62,16,31,32,18,19,20,63,7,33, - 21,22,34,35,36,57,37,38,10,23, - 24,25,39,40,41,28,1,2,26,27, - 9,6,11,12,5,29,4,42,72,3, - 0,68,73,91,70,118,74,71,121,14, - 15,30,62,16,31,32,18,19,20,63, - 33,21,22,34,35,36,57,37,38,10, - 23,24,25,39,40,41,28,26,27,11, - 12,29,42,8,9,13,5,7,1,2, - 4,3,6,0,87,56,7,103,104,105, - 58,8,3,9,6,5,73,71,13,72, - 48,14,15,61,46,16,65,49,17,18, - 50,51,19,20,52,53,21,22,54,66, - 55,10,67,23,44,24,47,25,4,1, - 2,43,0,4,8,73,64,0,1,2, - 8,71,0,46,57,47,8,68,91,69, - 70,74,0,60,48,14,15,61,46,16, - 65,49,87,17,18,50,51,19,20,52, - 56,53,21,22,54,66,55,10,67,23, - 58,44,24,47,25,8,3,9,6,71, - 13,7,4,43,5,1,2,0,62,63, - 10,31,35,33,30,38,15,25,14,21, - 19,20,22,23,18,16,24,39,42,40, - 41,28,37,32,36,5,7,4,3,26, - 27,9,6,11,12,29,34,1,2,118, - 8,0,8,73,64,75,0,75,68,73, - 91,74,64,59,3,8,70,13,69,0, - 87,103,104,105,43,73,119,122,71,72, - 75,58,56,60,77,79,85,83,76,81, - 82,84,86,64,78,80,13,8,48,61, - 46,65,49,17,50,51,52,53,54,66, - 55,67,44,47,57,62,63,10,31,35, - 33,30,38,15,25,14,21,19,20,22, - 23,18,16,24,39,42,40,41,28,37, - 32,36,26,27,11,12,29,34,9,6, - 3,4,7,5,1,2,0,9,6,7, - 5,4,1,2,3,59,68,69,70,8, - 74,91,0,5,7,3,59,6,9,91, - 48,14,15,46,16,65,49,17,18,50, - 51,19,20,52,53,21,22,54,66,55, - 10,67,23,44,24,47,25,1,2,4, - 74,8,61,0,43,73,4,1,2,64, - 8,0,48,14,15,46,16,49,17,18, - 50,51,19,20,52,7,53,21,22,54, - 55,23,44,24,47,25,1,2,8,59, - 9,6,5,4,74,13,3,0,8,74, - 14,15,30,62,16,31,32,18,19,20, - 63,7,33,21,22,34,35,36,57,37, - 38,10,23,24,25,39,40,41,1,2, - 3,26,27,9,6,11,12,5,29,4, - 42,28,0,57,46,7,47,5,1,2, - 4,75,64,120,106,26,27,59,3,92, - 90,6,93,94,11,12,89,88,45,95, - 96,97,98,9,99,100,101,68,91,74, - 121,69,108,109,110,111,112,113,114,115, - 116,117,73,118,102,107,71,70,13,8, - 0,64,61,46,16,65,49,18,50,51, - 19,20,52,53,21,22,54,66,55,67, - 23,44,24,47,25,15,14,48,8,3, - 9,6,13,58,60,87,17,43,7,1, - 2,5,4,10,56,0,4,45,8,73, - 64,0,44,1,2,4,103,104,105,0, - 46,47,75,3,73,13,64,57,8,91, - 74,69,70,68,0,48,14,15,61,46, - 16,65,49,17,18,50,51,19,20,52, - 53,21,22,54,66,55,10,67,23,44, - 24,47,25,1,2,4,91,0,69,70, - 71,8,0,63,62,11,12,6,93,94, - 99,9,100,5,29,69,45,68,111,112, - 108,109,110,116,115,117,89,88,113,114, - 97,98,95,96,101,102,26,27,70,90, - 106,59,3,48,14,15,61,46,16,65, - 49,17,18,50,51,19,20,52,53,21, - 22,54,66,55,10,67,23,24,47,25, - 1,2,4,44,0,119,0,8,64,70, - 0,73,8,59,3,69,70,13,45,0, - 8,64,69,0,76,0,62,63,26,27, - 9,6,11,12,5,29,34,3,4,7, - 39,42,40,41,28,37,32,36,15,25, - 14,21,19,20,22,23,18,16,24,10, - 31,35,33,30,38,59,1,2,0,61, - 46,16,65,49,18,50,51,19,20,52, - 53,21,22,54,66,55,10,67,23,44, - 24,47,25,15,14,48,8,3,9,13, - 58,56,60,87,17,45,4,6,7,1, - 2,5,43,0,10,65,61,66,67,15, - 25,14,21,19,20,22,23,18,16,24, - 75,73,91,118,71,64,121,120,92,106, - 90,26,27,11,12,93,94,88,89,45, - 68,95,96,97,98,99,100,101,102,107, - 69,108,109,110,111,112,113,114,115,116, - 117,70,48,46,49,17,50,51,52,53, - 54,55,44,47,13,8,74,3,59,5, - 7,6,9,1,2,4,0,13,8,5, - 7,3,1,2,4,6,9,73,0 + 70,108,109,110,111,112,113,114,115,116, + 117,118,72,27,121,69,1,2,9,6, + 4,3,64,71,74,8,0,8,73,118, + 74,27,71,121,0,28,11,12,40,23, + 42,66,13,43,57,29,30,44,14,31, + 32,15,16,33,67,34,45,17,18,46, + 35,47,58,48,61,49,36,50,59,19, + 22,20,24,21,51,52,53,39,3,37, + 38,9,6,25,26,41,69,54,7,1, + 2,4,10,5,0,72,61,37,38,9, + 6,25,26,41,46,3,4,51,54,52, + 53,39,49,44,48,12,21,11,17,15, + 16,18,19,14,13,20,10,43,47,45, + 42,50,68,8,7,5,1,2,67,66, + 0,69,70,71,1,2,0,11,12,42, + 66,13,43,44,14,15,16,67,7,45, + 17,18,46,47,48,61,49,50,10,19, + 20,21,51,52,53,39,1,2,37,38, + 9,6,25,26,5,41,4,54,62,3, + 0,69,73,91,71,118,74,72,121,11, + 12,42,66,13,43,44,14,15,16,67, + 45,17,18,46,47,48,61,49,50,10, + 19,20,21,51,52,53,39,37,38,25, + 26,41,54,8,9,27,5,7,1,2, + 4,3,6,0,87,60,7,103,104,105, + 63,8,3,9,6,5,73,72,27,62, + 28,11,12,40,23,13,57,29,30,14, + 31,32,15,16,33,34,17,18,35,58, + 36,10,59,19,22,20,24,21,4,1, + 2,55,0,4,8,73,68,0,1,2, + 8,72,0,23,61,24,8,69,91,70, + 71,74,0,65,28,11,12,40,23,13, + 57,29,87,30,14,31,32,15,16,33, + 60,34,17,18,35,58,36,10,59,19, + 63,22,20,24,21,8,3,9,6,72, + 27,62,7,4,55,5,1,2,0,66, + 67,10,43,47,45,42,50,12,21,11, + 17,15,16,18,19,14,13,20,51,54, + 52,53,39,49,44,48,5,7,4,3, + 37,38,9,6,25,26,41,46,1,2, + 118,8,0,8,73,68,75,0,75,69, + 73,91,74,68,64,3,8,71,27,70, + 0,87,103,104,105,55,73,119,122,72, + 62,75,63,60,65,77,79,85,83,76, + 81,82,84,86,68,78,80,27,8,28, + 40,23,57,29,30,31,32,33,34,35, + 58,36,59,22,24,61,66,67,10,43, + 47,45,42,50,12,21,11,17,15,16, + 18,19,14,13,20,51,54,52,53,39, + 49,44,48,37,38,25,26,41,46,9, + 6,3,4,7,5,1,2,0,9,6, + 7,5,4,1,2,3,64,69,70,71, + 8,74,91,0,5,7,3,64,6,9, + 91,28,11,12,23,13,57,29,30,14, + 31,32,15,16,33,34,17,18,35,58, + 36,10,59,19,22,20,24,21,1,2, + 4,74,8,40,0,55,73,4,1,2, + 68,8,0,28,11,12,23,13,29,30, + 14,31,32,15,16,33,7,34,17,18, + 35,36,19,22,20,24,21,1,2,8, + 64,9,6,5,4,74,27,3,0,8, + 74,11,12,42,66,13,43,44,14,15, + 16,67,7,45,17,18,46,47,48,61, + 49,50,10,19,20,21,51,52,53,1, + 2,3,37,38,9,6,25,26,5,41, + 4,54,39,0,61,23,7,24,5,1, + 2,4,75,68,120,106,37,38,64,3, + 92,90,6,93,94,25,26,89,88,56, + 95,96,97,98,9,99,100,101,69,91, + 74,121,70,108,109,110,111,112,113,114, + 115,116,117,73,118,102,107,72,71,27, + 8,0,68,40,23,13,57,29,14,31, + 32,15,16,33,34,17,18,35,58,36, + 59,19,22,20,24,21,12,11,28,8, + 3,9,6,27,63,65,87,30,62,55, + 7,1,2,5,4,10,60,0,4,56, + 8,73,68,0,22,1,2,4,103,104, + 105,0,23,24,75,3,73,27,68,61, + 8,91,74,70,71,69,0,28,11,12, + 40,23,13,57,29,30,14,31,32,15, + 16,33,34,17,18,35,58,36,10,59, + 19,22,20,24,21,1,2,4,91,0, + 70,71,72,8,0,67,66,25,26,6, + 93,94,99,9,100,5,41,70,56,69, + 111,112,108,109,110,116,115,117,89,88, + 113,114,97,98,95,96,101,102,37,38, + 71,90,106,64,3,28,11,12,40,23, + 13,57,29,30,14,31,32,15,16,33, + 34,17,18,35,58,36,10,59,19,20, + 24,21,1,2,4,22,0,119,0,8, + 68,71,0,73,8,64,3,70,71,27, + 56,0,8,68,70,0,76,0,66,67, + 37,38,9,6,25,26,5,41,46,3, + 4,7,51,54,52,53,39,49,44,48, + 12,21,11,17,15,16,18,19,14,13, + 20,10,43,47,45,42,50,64,1,2, + 0,40,23,13,57,29,14,31,32,15, + 16,33,34,17,18,35,58,36,10,59, + 19,22,20,24,21,12,11,28,8,3, + 9,27,63,60,65,87,30,62,56,4, + 6,7,1,2,5,55,0,10,57,40, + 58,59,12,21,11,17,15,16,18,19, + 14,13,20,75,73,91,118,72,68,121, + 120,92,106,90,37,38,25,26,93,94, + 88,89,56,69,95,96,97,98,99,100, + 101,102,107,70,108,109,110,111,112,113, + 114,115,116,117,71,28,23,29,30,31, + 32,33,34,35,36,22,24,27,8,74, + 3,64,5,7,6,9,1,2,4,0, + 27,8,5,7,3,1,2,4,6,9, + 73,0 }; }; public final static byte asr[] = Asr.asr; @@ -1885,10 +1955,10 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final static char nasb[] = {0, 78,12,60,12,12,12,12,12,12,64, 12,12,12,198,12,110,135,173,60,60, - 222,60,60,60,60,60,60,12,12,12, + 220,60,60,60,60,60,60,12,12,12, 12,12,12,12,12,12,12,12,60,12, 60,140,34,34,34,34,173,124,261,261, - 26,5,92,189,12,12,261,226,189,60, + 26,5,92,189,12,12,261,224,189,60, 55,24,12,12,140,12,12,16,16,124, 135,60,60,60,60,60,60,60,60,60, 60,60,60,60,60,60,60,60,60,60, @@ -1901,41 +1971,41 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 12,12,12,12,12,12,12,12,12,12, 12,184,87,168,76,76,12,12,12,10, 173,12,12,12,12,116,11,12,12,12, - 208,173,261,261,116,261,233,261,12,149, - 261,233,173,11,12,12,60,34,261,13, + 208,173,261,261,116,261,231,261,12,149, + 261,231,173,11,12,12,60,34,261,13, 189,12,11,173,176,24,60,151,92,12, 189,119,261,173,24,135,135,135,135,12, 12,29,12,53,248,261,261,100,23,100, - 261,227,11,23,116,189,96,208,43,12, - 226,116,189,12,105,12,129,22,116,189, - 189,189,189,124,124,261,53,41,173,231, + 261,225,11,23,116,189,96,208,43,12, + 224,116,189,12,105,12,129,22,116,189, + 189,189,189,124,124,261,53,41,173,229, 12,70,12,12,98,255,248,100,100,191, - 116,227,41,12,12,116,261,138,12,135, + 116,225,41,12,12,116,261,138,12,135, 208,177,12,12,261,60,12,12,76,76, 173,104,184,129,189,116,189,189,53,24, 261,149,12,12,64,261,179,107,12,12, - 64,47,233,41,60,227,96,124,60,92, + 64,47,231,41,60,225,96,124,60,92, 177,53,60,60,261,11,24,189,119,202, - 261,12,110,163,261,217,261,233,261,83, - 204,231,184,173,12,60,12,94,211,233, - 64,64,11,138,189,92,261,129,53,231, - 41,12,217,256,12,50,98,217,163,129, + 261,12,110,163,261,215,261,231,261,83, + 204,229,184,173,12,60,12,94,211,231, + 64,64,11,138,189,92,261,129,53,229, + 41,12,215,256,12,50,98,215,163,129, 110,83,160,156,107,204,24,60,60,11, - 233,233,66,189,261,148,179,12,12,64, - 41,12,12,68,68,231,160,40,12,233, - 12,11,11,12,261,66,217,261,231,81, - 12,189,64,233,129,217,261,12,12,261, + 231,231,66,189,261,148,179,12,12,64, + 41,12,12,68,68,229,160,40,12,231, + 12,11,11,12,261,66,215,261,229,81, + 12,189,64,231,129,215,261,12,12,261, 132,156,11,124,187,53,163,195,58,107, - 231,233,71,129,34,34,215,144,12,60, - 12,231,12,12,12,12,145,12,227,229, - 231,231,227,73,189,189,261,41,189,261, - 149,71,231,12,102,12,12,145,12,145, - 267,267,127,12,267,231,231,12,261,34, - 66,41,261,231,12,34,145,189,107,189, - 263,261,12,189,215,58,68,189,189,261, - 145,12,145,231,107,135,145,102,41,12, - 73,73,105,60,12,245,231,189,85,57, - 109,145,189,231,85,12,145 + 229,231,71,129,34,34,234,144,12,60, + 12,229,12,12,12,12,145,12,225,227, + 229,229,225,73,189,189,261,41,189,261, + 149,71,229,12,102,12,12,145,12,145, + 267,267,127,12,267,229,229,12,261,34, + 66,41,261,229,12,34,145,189,107,189, + 263,261,12,189,234,58,68,189,189,261, + 145,12,145,229,107,135,145,102,41,12, + 73,73,105,60,12,245,229,189,85,57, + 109,145,189,229,85,12,145 }; }; public final static char nasb[] = Nasb.nasb; @@ -1959,14 +2029,14 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 0,48,40,174,4,39,0,138,0,4, 45,39,0,66,39,48,67,4,40,0, 94,93,5,57,0,167,5,166,0,40, - 156,0,113,4,48,81,0,33,93,94, - 4,0,2,44,0,2,112,0,2,63, + 156,0,114,4,48,81,0,33,93,94, + 4,0,2,44,0,2,113,0,2,63, 9,10,4,5,89,0,45,4,33,0, 5,101,185,0,4,29,0,4,45,189, 0,94,93,10,9,2,63,5,57,0, - 5,101,163,0,157,0,4,48,81,83, - 0,5,10,9,13,3,1,0,4,39, - 38,0,2,55,0,2,5,119,115,116, + 5,101,163,0,4,48,81,83,0,5, + 10,9,13,3,1,0,4,39,38,0, + 2,55,0,157,0,2,5,119,115,116, 117,13,86,0,4,173,0,4,48,81, 101,46,5,0,38,5,2,9,10,154, 4,0,45,4,175,0,4,45,102,0 @@ -1978,13 +2048,13 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TerminalIndex { public final static char terminalIndex[] = {0, 113,114,2,31,13,10,79,115,9,100, - 11,12,120,48,52,60,66,68,74,75, - 86,87,102,105,107,7,8,112,14,55, - 61,67,84,88,90,94,97,99,109,110, - 111,123,93,104,19,54,106,47,64,70, - 73,76,83,89,98,77,95,103,1,46, - 53,58,78,121,63,91,101,20,33,44, - 119,122,30,118,96,108,49,50,56,57, + 48,52,60,68,74,75,86,87,102,105, + 107,104,54,106,11,12,120,47,64,66, + 70,73,76,83,89,98,7,8,112,53, + 14,55,61,67,84,88,90,94,97,99, + 109,110,111,123,93,19,63,91,101,77, + 95,122,103,1,46,58,78,121,20,33, + 44,119,30,118,96,108,49,50,56,57, 59,69,71,72,85,92,65,17,18,6, 32,4,15,16,21,22,23,24,25,26, 27,28,80,81,82,5,29,34,35,36, @@ -1997,26 +2067,26 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, - 132,137,138,0,0,136,0,0,229,235, - 135,0,145,134,0,0,144,150,0,0, - 151,160,181,161,162,163,164,165,153,166, - 167,168,127,143,169,170,0,129,133,130, - 171,0,140,139,154,179,0,0,0,0, - 0,0,0,174,0,147,157,0,204,0, - 188,201,205,0,0,128,173,0,0,0, - 0,0,0,206,177,0,0,0,0,0, - 0,126,131,0,0,187,0,0,202,212, - 159,208,209,210,0,0,148,0,0,207, - 220,176,197,0,0,211,0,0,0,240, - 241,149,180,0,190,191,192,193,194,196, + 131,136,137,0,0,135,0,0,229,235, + 134,0,144,133,0,0,143,149,0,0, + 150,159,181,160,161,162,163,164,152,165, + 166,167,127,142,168,169,0,129,132,130, + 170,0,139,138,153,178,0,0,0,0, + 0,0,0,173,0,146,156,0,204,0, + 188,201,205,0,0,128,172,0,0,0, + 0,0,0,206,176,0,0,0,0,0, + 0,126,179,0,0,187,0,0,202,212, + 158,208,209,210,0,0,147,0,0,207, + 220,175,197,0,0,211,0,0,0,240, + 241,0,148,180,190,191,192,193,194,196, 199,0,0,214,217,0,219,0,238,0, - 239,0,0,141,142,146,0,0,156,158, - 0,172,0,182,183,184,185,186,189,0, + 239,0,0,140,141,145,0,0,155,157, + 0,171,0,182,183,184,185,186,189,0, 195,0,198,203,0,215,216,0,0,221, 224,226,228,0,232,233,234,237,125,0, - 152,155,0,175,0,178,0,200,213,218, + 151,154,0,174,0,177,0,200,213,218, 0,222,223,225,227,0,230,231,236,242, - 243,0,0,0,0,0,0 + 243,0,0,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -2081,18 +2151,18 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeLa { public final static byte scopeLa[] = { - 119,74,74,74,74,74,74,74,71,13, - 71,71,68,1,74,122,64,3,74,68, - 68,68,1,1,13,71,64,71,71,1, - 1,71,1,1,4,68,70,13,1,1, - 68,74,74,74,119,74,1,13,1,1, - 1,13,13,71,118,74,74,74,74,74, + 119,74,74,74,74,74,74,74,72,27, + 72,72,69,1,74,122,68,3,74,69, + 69,69,1,1,27,72,68,72,72,1, + 1,72,1,1,4,69,71,27,1,1, + 69,74,74,74,119,74,1,27,1,1, + 1,27,27,72,118,74,74,74,74,74, 118,1,74,1,74,74,74,73,4,74, - 68,68,68,68,74,3,1,1,74,74, - 3,1,118,74,1,1,1,13,74,118, - 74,5,74,1,43,69,73,1,1,6, - 1,43,76,75,13,13,4,4,4,4, - 3,1,64,1,1,3 + 69,69,69,69,74,3,1,1,74,74, + 3,1,118,74,1,1,1,27,74,118, + 74,5,74,1,55,70,73,1,1,6, + 1,55,76,75,27,27,4,4,4,4, + 3,1,68,1,1,3 }; }; public final static byte scopeLa[] = ScopeLa.scopeLa; @@ -2119,19 +2189,19 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeRhs { public final static char scopeRhs[] = {0, - 314,3,57,0,127,0,313,3,119,0, - 127,174,0,127,177,75,0,216,0,251, - 127,45,125,0,20,0,291,127,45,43, - 0,20,53,0,33,134,0,20,53,0, - 0,291,127,45,43,204,0,20,131,0, - 251,127,45,133,0,178,128,0,143,0, + 314,3,61,0,127,0,313,3,119,0, + 127,173,0,127,177,75,0,216,0,251, + 127,56,125,0,20,0,291,127,56,55, + 0,20,53,0,33,133,0,20,53,0, + 0,291,127,56,55,204,0,20,179,0, + 251,127,56,133,0,178,128,0,142,0, 219,3,290,0,290,0,2,0,127,0, - 251,127,45,132,0,178,128,224,0,178, - 128,44,224,0,178,128,309,44,0,129, + 251,127,56,132,0,178,128,224,0,178, + 128,22,224,0,178,128,309,22,0,129, 187,167,128,0,129,0,187,167,128,0, - 136,129,0,171,0,305,127,171,0,127, - 171,0,222,129,0,167,242,0,138,0, - 0,0,137,0,0,0,304,127,163,250, + 135,129,0,171,0,305,127,171,0,127, + 171,0,222,129,0,167,242,0,137,0, + 0,0,136,0,0,0,304,127,163,250, 0,128,0,250,0,130,0,0,128,0, 303,127,163,249,0,128,0,0,44,128, 0,0,152,3,0,127,279,278,127,75, @@ -2141,47 +2211,47 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 0,278,127,277,171,0,215,0,203,0, 0,215,0,227,127,3,0,127,0,0, 0,0,0,227,127,3,216,0,223,3, - 0,212,127,0,208,0,148,0,167,128, - 0,10,0,0,0,214,59,0,126,0, + 0,212,127,0,208,0,147,0,167,128, + 0,10,0,0,0,214,64,0,126,0, 227,127,3,182,0,182,0,2,0,0, 127,0,0,0,0,0,198,3,0,201, - 0,237,127,163,28,17,0,178,128,56, - 58,0,197,129,0,129,178,128,275,58, - 0,178,128,275,58,0,178,128,69,124, - 56,0,237,127,163,56,0,237,127,163, - 226,56,0,273,127,163,124,65,0,273, - 127,163,65,0,178,128,65,0,137,0, - 187,178,128,242,0,138,0,178,128,242, + 0,235,127,163,39,30,0,178,128,60, + 63,0,197,129,0,129,178,128,275,63, + 0,178,128,275,63,0,178,128,70,124, + 60,0,235,127,163,60,0,235,127,163, + 226,60,0,273,127,163,124,57,0,273, + 127,163,57,0,178,128,57,0,136,0, + 187,178,128,242,0,137,0,178,128,242, 0,187,167,128,10,0,167,128,10,0, - 93,138,0,266,127,146,0,266,127,171, + 93,137,0,266,127,146,0,266,127,171, 0,162,85,0,296,161,298,299,3,82, - 0,127,173,0,298,299,3,82,0,129, - 0,127,173,0,162,3,76,190,81,0, - 127,129,0,190,81,0,108,2,133,127, + 0,127,172,0,298,299,3,82,0,129, + 0,127,172,0,162,3,76,190,81,0, + 127,129,0,190,81,0,108,2,132,127, 129,0,225,3,76,0,198,168,0,33, - 171,0,168,0,177,33,171,0,225,3, - 86,0,190,156,225,3,84,0,62,173, - 0,225,3,84,0,127,173,62,173,0, + 170,0,168,0,176,33,170,0,225,3, + 86,0,190,156,225,3,84,0,62,172, + 0,225,3,84,0,127,172,62,172,0, 297,127,163,0,162,0,214,78,0,30, - 173,0,162,107,159,0,30,171,0,219, - 3,0,214,59,263,0,162,59,0,179, - 3,293,63,128,0,127,0,0,0,0, - 293,63,128,0,2,147,127,0,0,0, - 0,179,3,34,0,149,0,126,43,167, - 128,0,31,149,0,93,138,31,149,0, - 220,178,128,0,148,31,149,0,179,3, - 38,0,162,3,38,0,162,3,68,179, - 45,30,0,179,45,30,0,20,2,133, - 127,0,162,3,68,179,45,33,0,179, - 45,33,0,162,3,68,179,45,35,0, - 179,45,35,0,162,3,68,179,45,31, - 0,179,45,31,0,219,3,126,187,167, - 128,10,0,126,187,167,128,10,0,138, + 172,0,162,107,159,0,30,170,0,219, + 3,0,214,64,263,0,162,64,0,179, + 3,293,67,128,0,127,0,0,0,0, + 293,67,128,0,2,146,127,0,0,0, + 0,179,3,46,0,148,0,126,55,167, + 128,0,31,148,0,93,137,31,148,0, + 220,178,128,0,147,31,148,0,179,3, + 50,0,162,3,50,0,162,3,69,179, + 56,42,0,179,56,42,0,20,2,132, + 127,0,162,3,69,179,56,45,0,179, + 56,45,0,162,3,69,179,56,47,0, + 179,56,47,0,162,3,69,179,56,43, + 0,179,56,43,0,219,3,126,187,167, + 128,10,0,126,187,167,128,10,0,137, 2,0,127,0,219,3,125,256,167,128, - 10,0,256,167,128,10,0,137,2,0, + 10,0,256,167,128,10,0,136,2,0, 127,0,219,3,136,0,219,3,140,0, - 162,59,140,0,258,0,31,0,31,141, - 0,166,0,136,0,162,3,0 + 162,64,140,0,258,0,31,0,31,140, + 0,166,0,135,0,162,3,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -2189,38 +2259,38 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeState { public final static char scopeState[] = {0, - 4615,4758,4744,4720,0,2857,4270,2402,3647,0, - 3383,3346,3309,3272,3235,3198,3141,3104,3067,2744, - 2668,2663,0,1296,0,1247,1203,1113,0,2886, - 2800,0,3383,3346,4193,3032,3309,3272,3235,3198, - 3141,3104,1240,3067,2744,2668,3407,2807,0,3200, - 4483,3163,0,2927,2724,0,3632,3077,0,4463, - 4402,0,4436,4463,4310,3507,4402,2818,3520,4288, - 4059,2636,3649,4274,3035,2429,2407,0,2704,2145, - 0,4481,4353,0,4481,4353,3702,4188,4175,3692, - 4106,4093,3713,2856,0,4481,4353,3702,4188,4175, - 3692,4106,4093,3713,2856,3383,3346,3309,3272,3235, - 3198,3141,3104,3067,2744,2668,0,3085,731,0, - 2636,4436,4497,4310,3507,2666,3035,2858,728,717, - 2656,2780,983,855,727,0,2067,2029,1861,1290, - 3507,2780,2818,2429,2407,2864,3626,0,657,577, - 0,979,0,4301,534,2833,0,4632,4628,4624, - 4602,4567,4563,4545,4541,4537,4476,4713,4708,4702, - 4697,4340,4165,4691,4160,3057,736,2472,3182,2882, - 0,4632,3557,4628,3333,2942,4624,4602,4567,2651, - 920,4563,4545,4541,2483,4537,3370,4476,3351,3314, - 4713,3296,3277,3159,3078,4708,2972,4702,2425,2421, - 4697,4340,4165,2508,4691,2493,4160,3057,736,4301, - 2472,623,2833,3182,2882,2674,2237,2150,2063,799, - 2818,3520,4288,4059,2636,4436,3649,4463,4310,3507, - 4274,3035,2429,4402,2407,2442,931,657,577,4037, - 2248,2286,1174,2319,2379,2351,591,3009,2983,2609, - 2582,2552,2525,3669,3603,3533,3482,3457,4015,3993, - 3971,3949,3927,3905,3883,3861,3839,3817,627,4072, - 1944,2199,2161,2112,2074,1251,1207,2025,1987,1126, - 874,1895,1857,817,741,684,534,1814,1771,1728, - 1685,1642,1599,1556,1513,1470,1427,1384,1341,1297, - 1036,993,950,1080,0 + 4611,4754,4740,4716,0,3127,4390,2398,4266,0, + 3379,3342,3305,3268,3231,3194,3137,3100,3063,2740, + 2664,2659,0,1292,0,1243,1199,1109,0,2882, + 2796,0,3379,3342,3403,3028,3305,3268,3231,3194, + 3137,3100,1236,3063,2740,2664,4579,2803,0,3196, + 4479,3159,0,2923,2720,0,3628,3073,0,4459, + 4398,0,4432,4459,4306,3503,4398,2814,3516,4284, + 4055,2632,3645,4270,3031,2425,2403,0,2700,2141, + 0,4477,4349,0,4477,4349,3698,4184,4171,3688, + 4102,4089,3709,2852,0,4477,4349,3698,4184,4171, + 3688,4102,4089,3709,2852,3379,3342,3305,3268,3231, + 3194,3137,3100,3063,2740,2664,0,3559,727,0, + 2632,4432,4493,4306,3503,2662,3031,2854,724,713, + 2652,2776,979,851,723,0,2063,2025,1857,1286, + 3503,2776,2814,2425,2403,2860,3622,0,653,573, + 0,975,0,4297,530,2829,0,4628,4624,4620, + 4598,4563,4559,4541,4537,4533,4472,4709,4704,4698, + 4693,4336,4161,4687,4156,3053,732,2468,3178,2878, + 0,4628,3553,4624,3329,2938,4620,4598,4563,2647, + 916,4559,4541,4537,2479,4533,3366,4472,3347,3310, + 4709,3292,3273,3155,3074,4704,2968,4698,2421,2417, + 4693,4336,4161,2504,4687,2489,4156,3053,732,4297, + 2468,619,2829,3178,2878,2670,2233,2146,2059,795, + 2814,3516,4284,4055,2632,4432,3645,4459,4306,3503, + 4270,3031,2425,4398,2403,2438,927,653,573,4033, + 2244,2282,1170,2315,2375,2347,587,3005,2979,2605, + 2578,2548,2521,3665,3599,3529,3478,3453,4011,3989, + 3967,3945,3923,3901,3879,3857,3835,3813,623,4068, + 1940,2195,2157,2108,2070,1247,1203,2021,1983,1122, + 870,1891,1853,813,737,680,530,1810,1767,1724, + 1681,1638,1595,1552,1509,1466,1423,1380,1337,1293, + 1032,989,946,1076,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2228,59 +2298,59 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface InSymb { public final static char inSymb[] = {0, - 0,292,127,265,38,30,33,35,31,10, - 136,125,132,7,133,4,3,128,34,29, - 5,12,11,6,9,27,26,140,145,148, - 147,150,149,153,151,155,154,158,57,159, - 70,3,45,45,45,45,128,3,45,45, - 168,127,59,3,62,63,45,5,162,62, - 63,167,166,125,3,124,126,106,120,3, - 59,90,92,12,11,94,93,6,96,95, - 68,45,88,89,9,98,97,100,99,101, + 0,292,127,265,50,42,45,47,43,10, + 136,125,132,7,133,4,3,128,46,41, + 5,26,25,6,9,38,37,140,145,148, + 147,150,149,153,151,155,154,158,61,159, + 71,3,56,56,56,56,128,3,56,56, + 168,127,64,3,66,67,56,5,162,66, + 67,167,166,125,3,124,126,106,120,3, + 64,90,92,26,25,94,93,6,96,95, + 69,56,88,89,9,98,97,100,99,101, 117,116,115,114,113,112,111,110,109,108, - 69,107,102,179,162,168,127,179,179,179, + 70,107,102,179,162,168,127,179,179,179, 179,167,219,127,127,127,267,268,250,269, - 242,270,65,271,272,10,128,59,59,127, - 125,59,293,3,187,4,179,43,128,43, + 242,270,57,271,272,10,128,64,64,127, + 125,64,293,3,187,4,179,55,128,55, 219,162,147,147,145,145,145,149,149,149, 149,148,148,151,150,150,154,153,155,162, - 158,127,59,3,217,216,136,126,125,10, - 128,68,68,68,68,187,256,251,254,251, + 158,127,64,3,217,216,136,126,125,10, + 128,69,69,69,69,187,256,251,254,251, 212,128,6,163,167,230,128,126,125,124, 163,128,128,178,167,251,205,3,294,168, 152,258,187,128,178,167,73,212,214,159, 223,127,3,128,167,3,3,3,3,126, - 125,70,167,127,127,126,125,127,178,127, - 163,127,178,167,43,179,127,127,4,220, - 5,43,227,228,146,229,127,167,43,162, + 125,71,167,127,127,126,125,127,178,127, + 163,127,178,167,55,179,127,127,4,220, + 5,55,227,228,146,229,127,167,55,162, 162,162,162,3,3,6,184,304,128,169, - 224,56,43,204,58,171,306,127,127,73, - 187,127,273,124,274,187,156,260,263,59, - 180,4,124,126,156,69,223,198,186,182, - 128,3,127,70,227,187,219,219,127,167, - 163,226,45,43,275,277,127,3,182,308, - 224,44,128,273,69,70,127,3,59,162, - 4,127,69,69,3,178,167,198,127,212, - 156,126,187,127,163,68,45,128,75,127, - 212,305,127,128,125,73,285,198,70,128, - 44,309,178,260,219,214,221,127,127,129, - 237,17,43,171,60,56,58,236,127,127, - 178,127,278,73,70,212,167,73,69,178, - 128,128,127,227,221,28,127,3,124,56, - 237,291,43,10,61,129,278,163,289,128, - 290,178,178,57,156,127,127,163,266,198, - 276,28,69,128,70,68,45,230,230,279, - 127,70,178,3,3,127,127,3,69,70, - 156,128,178,127,69,69,127,297,80,78, + 224,60,55,204,63,171,306,127,127,73, + 187,127,273,124,274,187,156,260,263,64, + 180,4,124,126,156,70,223,198,186,182, + 128,3,127,71,227,187,219,219,127,167, + 163,226,56,55,275,277,127,3,182,308, + 224,22,128,273,70,71,127,3,64,162, + 4,127,70,70,3,178,167,198,127,212, + 156,126,187,127,163,69,56,128,75,127, + 212,305,127,128,125,73,285,198,71,128, + 22,309,178,260,219,214,221,127,127,129, + 235,30,55,171,65,60,63,237,127,127, + 178,127,278,73,71,212,167,73,70,178, + 128,128,127,227,221,39,127,3,124,60, + 235,291,55,10,40,129,278,163,289,128, + 290,178,178,61,156,127,127,163,266,198, + 276,39,70,128,71,69,56,230,230,279, + 127,71,178,3,3,127,127,3,70,71, + 156,128,178,127,70,70,127,297,80,78, 1,162,8,86,84,82,81,76,83,85, - 79,77,56,75,219,314,221,237,152,163, + 79,77,60,75,219,314,221,235,152,163, 249,178,226,291,280,119,8,73,214,73, - 3,3,3,190,3,124,162,124,177,70, - 127,127,163,226,68,3,73,225,168,225, - 299,146,76,225,127,127,61,91,313,168, + 3,3,3,190,3,124,162,124,177,71, + 127,127,163,226,69,3,73,225,168,225, + 299,146,76,225,127,127,40,91,313,168, 156,198,156,298,127,3,156,280,303,230, - 156,156,127,69,190,161,266,162,189,70, - 69,122,296,156,189,8,156 + 156,156,127,70,190,161,266,162,189,71, + 70,122,296,156,189,8,156 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2419,7 +2489,6 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab "}", ";", "{", - "declaration", "identifier_token", "expression", "id_expression", @@ -2470,6 +2539,7 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab "declarator", "for_init_statement", "function_definition", + "declaration", "declaration_seq", "declaration_specifiers", "simple_declaration_specifiers", @@ -2544,7 +2614,7 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final String name(int index) { return name[index]; } public final static int - ERROR_SYMBOL = 72, + ERROR_SYMBOL = 62, SCOPE_UBOUND = 115, SCOPE_SIZE = 116, MAX_NAME_LENGTH = 37; @@ -2557,18 +2627,18 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final static int NUM_STATES = 527, NT_OFFSET = 123, - LA_STATE_OFFSET = 5763, + LA_STATE_OFFSET = 5755, MAX_LA = 2147483647, - NUM_RULES = 533, - NUM_NONTERMINALS = 197, - NUM_SYMBOLS = 320, + NUM_RULES = 529, + NUM_NONTERMINALS = 195, + NUM_SYMBOLS = 318, SEGMENT_SIZE = 8192, - START_STATE = 1291, + START_STATE = 1287, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 121, EOLT_SYMBOL = 121, - ACCEPT_ACTION = 4862, - ERROR_ACTION = 5230; + ACCEPT_ACTION = 4858, + ERROR_ACTION = 5226; 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 104d2bcdc38..49403283abc 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParsersym.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParsersym.java @@ -15,97 +15,97 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp; public interface CPPNoCastExpressionParsersym { public final static int - TK_asm = 60, - TK_auto = 48, - TK_bool = 14, + TK_asm = 65, + TK_auto = 28, + TK_bool = 11, TK_break = 77, TK_case = 78, TK_catch = 119, - TK_char = 15, - TK_class = 61, - TK_const = 46, - TK_const_cast = 30, + TK_char = 12, + TK_class = 40, + TK_const = 23, + TK_const_cast = 42, TK_continue = 79, TK_default = 80, - TK_delete = 62, + TK_delete = 66, TK_do = 81, - TK_double = 16, - TK_dynamic_cast = 31, + TK_double = 13, + TK_dynamic_cast = 43, TK_else = 122, - TK_enum = 65, - TK_explicit = 49, + TK_enum = 57, + TK_explicit = 29, TK_export = 87, - TK_extern = 17, - TK_false = 32, - TK_float = 18, + TK_extern = 30, + TK_false = 44, + TK_float = 14, TK_for = 82, - TK_friend = 50, + TK_friend = 31, TK_goto = 83, TK_if = 84, - TK_inline = 51, - TK_int = 19, - TK_long = 20, - TK_mutable = 52, - TK_namespace = 56, - TK_new = 63, + TK_inline = 32, + TK_int = 15, + TK_long = 16, + TK_mutable = 33, + TK_namespace = 60, + TK_new = 67, TK_operator = 7, TK_private = 103, TK_protected = 104, TK_public = 105, - TK_register = 53, - TK_reinterpret_cast = 33, + TK_register = 34, + TK_reinterpret_cast = 45, TK_return = 85, - TK_short = 21, - TK_signed = 22, - TK_sizeof = 34, - TK_static = 54, - TK_static_cast = 35, - TK_struct = 66, + TK_short = 17, + TK_signed = 18, + TK_sizeof = 46, + TK_static = 35, + TK_static_cast = 47, + TK_struct = 58, TK_switch = 86, - TK_template = 43, - TK_this = 36, - TK_throw = 57, + TK_template = 55, + TK_this = 48, + TK_throw = 61, TK_try = 75, - TK_true = 37, - TK_typedef = 55, - TK_typeid = 38, + TK_true = 49, + TK_typedef = 36, + TK_typeid = 50, TK_typename = 10, - TK_union = 67, - TK_unsigned = 23, - TK_using = 58, - TK_virtual = 44, - TK_void = 24, - TK_volatile = 47, - TK_wchar_t = 25, + TK_union = 59, + TK_unsigned = 19, + TK_using = 63, + TK_virtual = 22, + TK_void = 20, + TK_volatile = 24, + TK_wchar_t = 21, TK_while = 76, - TK_integer = 39, - TK_floating = 40, - TK_charconst = 41, - TK_stringlit = 28, + TK_integer = 51, + TK_floating = 52, + TK_charconst = 53, + TK_stringlit = 39, TK_identifier = 1, TK_Completion = 2, TK_EndOfCompletion = 8, TK_Invalid = 123, - TK_LeftBracket = 59, + TK_LeftBracket = 64, TK_LeftParen = 3, TK_Dot = 120, TK_DotStar = 92, TK_Arrow = 106, TK_ArrowStar = 90, - TK_PlusPlus = 26, - TK_MinusMinus = 27, + TK_PlusPlus = 37, + TK_MinusMinus = 38, TK_And = 9, TK_Star = 6, - TK_Plus = 11, - TK_Minus = 12, + TK_Plus = 25, + TK_Minus = 26, TK_Tilde = 5, - TK_Bang = 29, + TK_Bang = 41, TK_Slash = 93, TK_Percent = 94, TK_RightShift = 88, TK_LeftShift = 89, - TK_LT = 45, - TK_GT = 68, + TK_LT = 56, + TK_GT = 69, TK_LE = 95, TK_GE = 96, TK_EQ = 97, @@ -118,7 +118,7 @@ public interface CPPNoCastExpressionParsersym { TK_Colon = 73, TK_ColonColon = 4, TK_DotDotDot = 91, - TK_Assign = 69, + TK_Assign = 70, TK_StarAssign = 108, TK_SlashAssign = 109, TK_PercentAssign = 110, @@ -129,14 +129,14 @@ public interface CPPNoCastExpressionParsersym { TK_AndAssign = 115, TK_CaretAssign = 116, TK_OrAssign = 117, - TK_Comma = 70, + TK_Comma = 71, TK_RightBracket = 118, TK_RightParen = 74, - TK_RightBrace = 71, - TK_SemiColon = 13, - TK_LeftBrace = 64, - TK_ERROR_TOKEN = 72, - TK_0 = 42, + TK_RightBrace = 72, + TK_SemiColon = 27, + TK_LeftBrace = 68, + TK_ERROR_TOKEN = 62, + TK_0 = 54, TK_EOF_TOKEN = 121; public final static String orderedTerminalSymbols[] = { @@ -151,13 +151,9 @@ public interface CPPNoCastExpressionParsersym { "EndOfCompletion", "And", "typename", - "Plus", - "Minus", - "SemiColon", "bool", "char", "double", - "extern", "float", "int", "long", @@ -166,9 +162,25 @@ public interface CPPNoCastExpressionParsersym { "unsigned", "void", "wchar_t", + "virtual", + "const", + "volatile", + "Plus", + "Minus", + "SemiColon", + "auto", + "explicit", + "extern", + "friend", + "inline", + "mutable", + "register", + "static", + "typedef", "PlusPlus", "MinusMinus", "stringlit", + "class", "Bang", "const_cast", "dynamic_cast", @@ -184,35 +196,23 @@ public interface CPPNoCastExpressionParsersym { "charconst", "0", "template", - "virtual", "LT", - "const", - "volatile", - "auto", - "explicit", - "friend", - "inline", - "mutable", - "register", - "static", - "typedef", - "namespace", - "throw", - "using", - "LeftBracket", - "asm", - "class", - "delete", - "new", - "LeftBrace", "enum", "struct", "union", + "namespace", + "throw", + "ERROR_TOKEN", + "using", + "LeftBracket", + "asm", + "delete", + "new", + "LeftBrace", "GT", "Assign", "Comma", "RightBrace", - "ERROR_TOKEN", "Colon", "RightParen", "try", diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParser.java index 2e2cb8fefb6..fb002c19bca 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParser.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParser.java @@ -269,2004 +269,1997 @@ public CPPNoFunctionDeclaratorParser(String[] mapFrom) { // constructor } // - // Rule 13: translation_unit ::= external_declaration_list + // Rule 13: translation_unit ::= declaration_seq_opt // case 13: { action.builder. consumeTranslationUnit(); break; } // - // Rule 14: translation_unit ::= $Empty + // Rule 16: literal ::= integer // - case 14: { action.builder. - consumeTranslationUnit(); break; + case 16: { action.builder. + consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; } // - // Rule 18: external_declaration ::= ERROR_TOKEN + // Rule 17: literal ::= 0 + // + case 17: { action.builder. + consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; + } + + // + // Rule 18: literal ::= floating // case 18: { action.builder. - consumeDeclarationProblem(); break; - } - - // - // Rule 21: literal ::= integer - // - case 21: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; - } - - // - // Rule 22: literal ::= 0 - // - case 22: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; - } - - // - // Rule 23: literal ::= floating - // - case 23: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_float_constant); break; } // - // Rule 24: literal ::= charconst + // Rule 19: literal ::= charconst // - case 24: { action.builder. + case 19: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_char_constant); break; } // - // Rule 25: literal ::= stringlit + // Rule 20: literal ::= stringlit // - case 25: { action.builder. + case 20: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_string_literal); break; } // - // Rule 26: literal ::= true + // Rule 21: literal ::= true // - case 26: { action.builder. + case 21: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_true); break; } // - // Rule 27: literal ::= false + // Rule 22: literal ::= false // - case 27: { action.builder. + case 22: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_false); break; } // - // Rule 28: literal ::= this + // Rule 23: literal ::= this // - case 28: { action.builder. + case 23: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_this); break; } // - // Rule 30: primary_expression ::= ( expression ) + // Rule 25: primary_expression ::= ( expression ) // - case 30: { action.builder. + case 25: { action.builder. consumeExpressionBracketed(); break; } // - // Rule 32: id_expression ::= qualified_or_unqualified_name + // Rule 27: id_expression ::= qualified_or_unqualified_name // - case 32: { action.builder. + case 27: { action.builder. consumeExpressionName(); break; } // - // Rule 39: unqualified_id_name ::= ~ identifier_token + // Rule 34: unqualified_id_name ::= ~ identifier_token // - case 39: { action.builder. + case 34: { action.builder. consumeDestructorName(); break; } // - // Rule 40: unqualified_id_name ::= ~ template_id_name + // Rule 35: unqualified_id_name ::= ~ template_id_name // - case 40: { action.builder. + case 35: { action.builder. consumeDestructorNameTemplateId(); break; } // - // Rule 41: identifier_name ::= identifier_token + // Rule 36: identifier_name ::= identifier_token // - case 41: { action.builder. + case 36: { action.builder. consumeIdentifierName(); break; } // - // Rule 42: template_opt ::= template + // Rule 37: template_opt ::= template // - case 42: { action.builder. + case 37: { action.builder. consumePlaceHolder(); break; } // - // Rule 43: template_opt ::= $Empty + // Rule 38: template_opt ::= $Empty // - case 43: { action.builder. + case 38: { action.builder. consumeEmpty(); break; } // - // Rule 44: dcolon_opt ::= :: + // Rule 39: dcolon_opt ::= :: // - case 44: { action.builder. + case 39: { action.builder. consumeToken(); break; } // - // Rule 45: dcolon_opt ::= $Empty + // Rule 40: dcolon_opt ::= $Empty // - case 45: { action.builder. + case 40: { action.builder. consumeEmpty(); break; } // - // Rule 46: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name + // Rule 41: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name // - case 46: { action.builder. + case 41: { action.builder. consumeQualifiedId(true); break; } // - // Rule 47: qualified_id_name ::= :: unqualified_id_name + // Rule 42: qualified_id_name ::= :: unqualified_id_name // - case 47: { action.builder. + case 42: { action.builder. consumeGlobalQualifiedId(); break; } // - // Rule 48: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template + // Rule 43: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template // - case 48: { action.builder. + case 43: { action.builder. consumeNestedNameSpecifier(true); break; } // - // Rule 49: nested_name_specifier ::= class_or_namespace_name :: + // Rule 44: nested_name_specifier ::= class_or_namespace_name :: // - case 49: { action.builder. + case 44: { action.builder. consumeNestedNameSpecifier(false); break; } // - // Rule 50: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template + // Rule 45: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template // - case 50: { action.builder. + case 45: { action.builder. consumeNestedNameSpecifier(true); break; } // - // Rule 51: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: + // Rule 46: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: // - case 51: { action.builder. + case 46: { action.builder. consumeNestedNameSpecifier(false); break; } // - // Rule 52: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name + // Rule 47: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name // - case 52: { action.builder. + case 47: { action.builder. consumeNameWithTemplateKeyword(); break; } // - // Rule 54: nested_name_specifier_opt ::= $Empty + // Rule 49: nested_name_specifier_opt ::= $Empty // - case 54: { action.builder. + case 49: { action.builder. consumeNestedNameSpecifierEmpty(); break; } // - // Rule 57: postfix_expression ::= postfix_expression [ expression ] + // Rule 52: postfix_expression ::= postfix_expression [ expression ] // - case 57: { action.builder. + case 52: { action.builder. consumeExpressionArraySubscript(); break; } // - // Rule 58: postfix_expression ::= postfix_expression ( expression_list_opt ) + // Rule 53: postfix_expression ::= postfix_expression ( expression_list_opt ) // - case 58: { action.builder. + case 53: { action.builder. consumeExpressionFunctionCall(); break; } // - // Rule 59: postfix_expression ::= simple_type_specifier ( expression_list_opt ) + // Rule 54: postfix_expression ::= simple_type_specifier ( expression_list_opt ) // - case 59: { action.builder. + case 54: { action.builder. consumeExpressionSimpleTypeConstructor(); break; } // - // Rule 60: postfix_expression ::= typename dcolon_opt nested_name_specifier identifier_name ( expression_list_opt ) + // Rule 55: postfix_expression ::= typename dcolon_opt nested_name_specifier identifier_name ( expression_list_opt ) // - case 60: { action.builder. + case 55: { action.builder. consumeExpressionTypeName(); break; } // - // Rule 61: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) + // Rule 56: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) // - case 61: { action.builder. + case 56: { action.builder. consumeExpressionTypeName(); break; } // - // Rule 62: postfix_expression ::= postfix_expression . qualified_or_unqualified_name + // Rule 57: postfix_expression ::= postfix_expression . qualified_or_unqualified_name // - case 62: { action.builder. + case 57: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 63: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name + // Rule 58: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name // - case 63: { action.builder. + case 58: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 64: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name + // Rule 59: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name // - case 64: { action.builder. + case 59: { action.builder. consumeExpressionFieldReference(false, true); break; } // - // Rule 65: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name + // Rule 60: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name // - case 65: { action.builder. + case 60: { action.builder. consumeExpressionFieldReference(true, true); break; } // - // Rule 66: postfix_expression ::= postfix_expression . pseudo_destructor_name + // Rule 61: postfix_expression ::= postfix_expression . pseudo_destructor_name // - case 66: { action.builder. + case 61: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 67: postfix_expression ::= postfix_expression -> pseudo_destructor_name + // Rule 62: postfix_expression ::= postfix_expression -> pseudo_destructor_name // - case 67: { action.builder. + case 62: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 68: postfix_expression ::= postfix_expression ++ + // Rule 63: postfix_expression ::= postfix_expression ++ // - case 68: { action.builder. + case 63: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; } // - // Rule 69: postfix_expression ::= postfix_expression -- + // Rule 64: postfix_expression ::= postfix_expression -- // - case 69: { action.builder. + case 64: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; } // - // Rule 70: postfix_expression ::= dynamic_cast < type_id > ( expression ) + // Rule 65: postfix_expression ::= dynamic_cast < type_id > ( expression ) // - case 70: { action.builder. + case 65: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); break; } // - // Rule 71: postfix_expression ::= static_cast < type_id > ( expression ) + // Rule 66: postfix_expression ::= static_cast < type_id > ( expression ) // - case 71: { action.builder. + case 66: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_static_cast); break; } // - // Rule 72: postfix_expression ::= reinterpret_cast < type_id > ( expression ) + // Rule 67: postfix_expression ::= reinterpret_cast < type_id > ( expression ) // - case 72: { action.builder. + case 67: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); break; } // - // Rule 73: postfix_expression ::= const_cast < type_id > ( expression ) + // Rule 68: postfix_expression ::= const_cast < type_id > ( expression ) // - case 73: { action.builder. + case 68: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_const_cast); break; } // - // Rule 74: postfix_expression ::= typeid ( expression ) + // Rule 69: postfix_expression ::= typeid ( expression ) // - case 74: { action.builder. + case 69: { action.builder. consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break; } // - // Rule 75: postfix_expression ::= typeid ( type_id ) + // Rule 70: postfix_expression ::= typeid ( type_id ) // - case 75: { action.builder. + case 70: { action.builder. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid); break; } // - // Rule 76: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name + // Rule 71: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name // - case 76: { action.builder. + case 71: { action.builder. consumePsudoDestructorName(true); break; } // - // Rule 77: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name + // Rule 72: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name // - case 77: { action.builder. + case 72: { action.builder. consumePsudoDestructorName(true); break; } // - // Rule 78: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name + // Rule 73: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name // - case 78: { action.builder. + case 73: { action.builder. consumePsudoDestructorName(false); break; } // - // Rule 79: destructor_type_name ::= ~ identifier_token + // Rule 74: destructor_type_name ::= ~ identifier_token // - case 79: { action.builder. + case 74: { action.builder. consumeDestructorName(); break; } // - // Rule 80: destructor_type_name ::= ~ template_id_name + // Rule 75: destructor_type_name ::= ~ template_id_name // - case 80: { action.builder. + case 75: { action.builder. consumeDestructorNameTemplateId(); break; } // - // Rule 84: unary_expression ::= ++ cast_expression + // Rule 79: unary_expression ::= ++ cast_expression // - case 84: { action.builder. + case 79: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; } // - // Rule 85: unary_expression ::= -- cast_expression + // Rule 80: unary_expression ::= -- cast_expression // - case 85: { action.builder. + case 80: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; } // - // Rule 86: unary_expression ::= & cast_expression + // Rule 81: unary_expression ::= & cast_expression // - case 86: { action.builder. + case 81: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; } // - // Rule 87: unary_expression ::= * cast_expression + // Rule 82: unary_expression ::= * cast_expression // - case 87: { action.builder. + case 82: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; } // - // Rule 88: unary_expression ::= + cast_expression + // Rule 83: unary_expression ::= + cast_expression // - case 88: { action.builder. + case 83: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; } // - // Rule 89: unary_expression ::= - cast_expression + // Rule 84: unary_expression ::= - cast_expression // - case 89: { action.builder. + case 84: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; } // - // Rule 90: unary_expression ::= ~ cast_expression + // Rule 85: unary_expression ::= ~ cast_expression // - case 90: { action.builder. + case 85: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; } // - // Rule 91: unary_expression ::= ! cast_expression + // Rule 86: unary_expression ::= ! cast_expression // - case 91: { action.builder. + case 86: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; } // - // Rule 92: unary_expression ::= sizeof unary_expression + // Rule 87: unary_expression ::= sizeof unary_expression // - case 92: { action.builder. + case 87: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; } // - // Rule 93: unary_expression ::= sizeof ( type_id ) + // Rule 88: unary_expression ::= sizeof ( type_id ) // - case 93: { action.builder. + case 88: { action.builder. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_sizeof); break; } // - // Rule 94: new_expression ::= dcolon_opt new new_placement_opt new_type_id new_array_expressions_opt new_initializer_opt + // Rule 89: new_expression ::= dcolon_opt new new_placement_opt new_type_id new_array_expressions_opt new_initializer_opt // - case 94: { action.builder. + case 89: { action.builder. consumeExpressionNew(true); break; } // - // Rule 95: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_array_expressions_opt new_initializer_opt + // Rule 90: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_array_expressions_opt new_initializer_opt // - case 95: { action.builder. + case 90: { action.builder. consumeExpressionNew(false); break; } // - // Rule 97: new_placement_opt ::= $Empty + // Rule 92: new_placement_opt ::= $Empty // - case 97: { action.builder. + case 92: { action.builder. consumeEmpty(); break; } // - // Rule 98: new_type_id ::= type_specifier_seq + // Rule 93: new_type_id ::= type_specifier_seq // - case 98: { action.builder. + case 93: { action.builder. consumeTypeId(false); break; } // - // Rule 99: new_type_id ::= type_specifier_seq new_declarator + // Rule 94: new_type_id ::= type_specifier_seq new_declarator // - case 99: { action.builder. + case 94: { action.builder. consumeTypeId(true); break; } // - // Rule 100: new_declarator ::= new_pointer_operators + // Rule 95: new_declarator ::= new_pointer_operators // - case 100: { action.builder. + case 95: { action.builder. consumeNewDeclarator(); break; } // - // Rule 109: new_initializer_opt ::= $Empty + // Rule 104: new_initializer_opt ::= $Empty // - case 109: { action.builder. + case 104: { action.builder. consumeEmpty(); break; } // - // Rule 110: delete_expression ::= dcolon_opt delete cast_expression + // Rule 105: delete_expression ::= dcolon_opt delete cast_expression // - case 110: { action.builder. + case 105: { action.builder. consumeExpressionDelete(false); break; } // - // Rule 111: delete_expression ::= dcolon_opt delete [ ] cast_expression + // Rule 106: delete_expression ::= dcolon_opt delete [ ] cast_expression // - case 111: { action.builder. + case 106: { action.builder. consumeExpressionDelete(true); break; } // - // Rule 113: cast_expression ::= ( type_id ) cast_expression + // Rule 108: cast_expression ::= ( type_id ) cast_expression // - case 113: { action.builder. + case 108: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_cast); break; } // - // Rule 115: pm_expression ::= pm_expression .* cast_expression + // Rule 110: pm_expression ::= pm_expression .* cast_expression // - case 115: { action.builder. + case 110: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot); break; } // - // Rule 116: pm_expression ::= pm_expression ->* cast_expression + // Rule 111: pm_expression ::= pm_expression ->* cast_expression // - case 116: { action.builder. + case 111: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow); break; } // - // Rule 118: multiplicative_expression ::= multiplicative_expression * pm_expression + // Rule 113: multiplicative_expression ::= multiplicative_expression * pm_expression // - case 118: { action.builder. + case 113: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply); break; } // - // Rule 119: multiplicative_expression ::= multiplicative_expression / pm_expression + // Rule 114: multiplicative_expression ::= multiplicative_expression / pm_expression // - case 119: { action.builder. + case 114: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide); break; } // - // Rule 120: multiplicative_expression ::= multiplicative_expression % pm_expression + // Rule 115: multiplicative_expression ::= multiplicative_expression % pm_expression // - case 120: { action.builder. + case 115: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo); break; } // - // Rule 122: additive_expression ::= additive_expression + multiplicative_expression + // Rule 117: additive_expression ::= additive_expression + multiplicative_expression // - case 122: { action.builder. + case 117: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus); break; } // - // Rule 123: additive_expression ::= additive_expression - multiplicative_expression + // Rule 118: additive_expression ::= additive_expression - multiplicative_expression // - case 123: { action.builder. + case 118: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus); break; } // - // Rule 125: shift_expression ::= shift_expression << additive_expression + // Rule 120: shift_expression ::= shift_expression << additive_expression // - case 125: { action.builder. + case 120: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft); break; } // - // Rule 126: shift_expression ::= shift_expression >> additive_expression + // Rule 121: shift_expression ::= shift_expression >> additive_expression // - case 126: { action.builder. + case 121: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight); break; } // - // Rule 128: relational_expression ::= relational_expression < shift_expression + // Rule 123: relational_expression ::= relational_expression < shift_expression // - case 128: { action.builder. + case 123: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; } // - // Rule 129: relational_expression ::= relational_expression > shift_expression + // Rule 124: relational_expression ::= relational_expression > shift_expression // - case 129: { action.builder. + case 124: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; } // - // Rule 130: relational_expression ::= relational_expression <= shift_expression + // Rule 125: relational_expression ::= relational_expression <= shift_expression // - case 130: { action.builder. + case 125: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; } // - // Rule 131: relational_expression ::= relational_expression >= shift_expression + // Rule 126: relational_expression ::= relational_expression >= shift_expression // - case 131: { action.builder. + case 126: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; } // - // Rule 133: equality_expression ::= equality_expression == relational_expression + // Rule 128: equality_expression ::= equality_expression == relational_expression // - case 133: { action.builder. + case 128: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; } // - // Rule 134: equality_expression ::= equality_expression != relational_expression + // Rule 129: equality_expression ::= equality_expression != relational_expression // - case 134: { action.builder. + case 129: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; } // - // Rule 136: and_expression ::= and_expression & equality_expression + // Rule 131: and_expression ::= and_expression & equality_expression // - case 136: { action.builder. + case 131: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; } // - // Rule 138: exclusive_or_expression ::= exclusive_or_expression ^ and_expression + // Rule 133: exclusive_or_expression ::= exclusive_or_expression ^ and_expression // - case 138: { action.builder. + case 133: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; } // - // Rule 140: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression + // Rule 135: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression // - case 140: { action.builder. + case 135: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; } // - // Rule 142: logical_and_expression ::= logical_and_expression && inclusive_or_expression + // Rule 137: logical_and_expression ::= logical_and_expression && inclusive_or_expression // - case 142: { action.builder. + case 137: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; } // - // Rule 144: logical_or_expression ::= logical_or_expression || logical_and_expression + // Rule 139: logical_or_expression ::= logical_or_expression || logical_and_expression // - case 144: { action.builder. + case 139: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; } // - // Rule 146: conditional_expression ::= logical_or_expression ? expression : assignment_expression + // Rule 141: conditional_expression ::= logical_or_expression ? expression : assignment_expression // - case 146: { action.builder. + case 141: { action.builder. consumeExpressionConditional(); break; } // - // Rule 147: throw_expression ::= throw + // Rule 142: throw_expression ::= throw // - case 147: { action.builder. + case 142: { action.builder. consumeExpressionThrow(false); break; } // - // Rule 148: throw_expression ::= throw assignment_expression + // Rule 143: throw_expression ::= throw assignment_expression // - case 148: { action.builder. + case 143: { action.builder. consumeExpressionThrow(true); break; } // - // Rule 151: assignment_expression ::= logical_or_expression = assignment_expression + // Rule 146: assignment_expression ::= logical_or_expression = assignment_expression // - case 151: { action.builder. + case 146: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; } // - // Rule 152: assignment_expression ::= logical_or_expression *= assignment_expression + // Rule 147: assignment_expression ::= logical_or_expression *= assignment_expression // - case 152: { action.builder. + case 147: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 153: assignment_expression ::= logical_or_expression /= assignment_expression + // Rule 148: assignment_expression ::= logical_or_expression /= assignment_expression // - case 153: { action.builder. + case 148: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; } // - // Rule 154: assignment_expression ::= logical_or_expression %= assignment_expression + // Rule 149: assignment_expression ::= logical_or_expression %= assignment_expression // - case 154: { action.builder. + case 149: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; } // - // Rule 155: assignment_expression ::= logical_or_expression += assignment_expression + // Rule 150: assignment_expression ::= logical_or_expression += assignment_expression // - case 155: { action.builder. + case 150: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; } // - // Rule 156: assignment_expression ::= logical_or_expression -= assignment_expression + // Rule 151: assignment_expression ::= logical_or_expression -= assignment_expression // - case 156: { action.builder. + case 151: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; } // - // Rule 157: assignment_expression ::= logical_or_expression >>= assignment_expression + // Rule 152: assignment_expression ::= logical_or_expression >>= assignment_expression // - case 157: { action.builder. + case 152: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 158: assignment_expression ::= logical_or_expression <<= assignment_expression + // Rule 153: assignment_expression ::= logical_or_expression <<= assignment_expression // - case 158: { action.builder. + case 153: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 159: assignment_expression ::= logical_or_expression &= assignment_expression + // Rule 154: assignment_expression ::= logical_or_expression &= assignment_expression // - case 159: { action.builder. + case 154: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 160: assignment_expression ::= logical_or_expression ^= assignment_expression + // Rule 155: assignment_expression ::= logical_or_expression ^= assignment_expression // - case 160: { action.builder. + case 155: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 161: assignment_expression ::= logical_or_expression |= assignment_expression + // Rule 156: assignment_expression ::= logical_or_expression |= assignment_expression // - case 161: { action.builder. + case 156: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 163: expression_list ::= expression_list_actual + // Rule 158: expression_list ::= expression_list_actual // - case 163: { action.builder. + case 158: { action.builder. consumeExpressionList(); break; } // - // Rule 167: expression_list_opt ::= $Empty + // Rule 162: expression_list_opt ::= $Empty + // + case 162: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 164: expression_opt ::= $Empty + // + case 164: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 167: constant_expression_opt ::= $Empty // case 167: { action.builder. consumeEmpty(); break; } // - // Rule 169: expression_opt ::= $Empty + // Rule 176: statement ::= ERROR_TOKEN // - case 169: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 172: constant_expression_opt ::= $Empty - // - case 172: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 181: statement ::= ERROR_TOKEN - // - case 181: { action.builder. + case 176: { action.builder. consumeStatementProblem(); break; } // - // Rule 182: labeled_statement ::= identifier : statement + // Rule 177: labeled_statement ::= identifier : statement // - case 182: { action.builder. + case 177: { action.builder. consumeStatementLabeled(); break; } // - // Rule 183: labeled_statement ::= case constant_expression : statement + // Rule 178: labeled_statement ::= case constant_expression : statement // - case 183: { action.builder. + case 178: { action.builder. consumeStatementCase(); break; } // - // Rule 184: labeled_statement ::= default : statement + // Rule 179: labeled_statement ::= default : statement // - case 184: { action.builder. + case 179: { action.builder. consumeStatementDefault(); break; } // - // Rule 185: expression_statement ::= expression ; + // Rule 180: expression_statement ::= expression ; // - case 185: { action.builder. + case 180: { action.builder. consumeStatementExpression(); break; } // - // Rule 186: expression_statement ::= ; + // Rule 181: expression_statement ::= ; // - case 186: { action.builder. + case 181: { action.builder. consumeStatementNull(); break; } // - // Rule 187: compound_statement ::= { statement_seq } + // Rule 182: compound_statement ::= { statement_seq } // - case 187: { action.builder. + case 182: { action.builder. consumeStatementCompoundStatement(true); break; } // - // Rule 188: compound_statement ::= { } + // Rule 183: compound_statement ::= { } // - case 188: { action.builder. + case 183: { action.builder. consumeStatementCompoundStatement(false); break; } // - // Rule 191: selection_statement ::= if ( condition ) statement + // Rule 186: selection_statement ::= if ( condition ) statement // - case 191: { action.builder. + case 186: { action.builder. consumeStatementIf(false); break; } // - // Rule 192: selection_statement ::= if ( condition ) statement else statement + // Rule 187: selection_statement ::= if ( condition ) statement else statement // - case 192: { action.builder. + case 187: { action.builder. consumeStatementIf(true); break; } // - // Rule 193: selection_statement ::= switch ( condition ) statement + // Rule 188: selection_statement ::= switch ( condition ) statement // - case 193: { action.builder. + case 188: { action.builder. consumeStatementSwitch(); break; } // - // Rule 195: condition ::= type_specifier_seq declarator = assignment_expression + // Rule 190: condition ::= type_specifier_seq declarator = assignment_expression // - case 195: { action.builder. + case 190: { action.builder. consumeConditionDeclaration(); break; } // - // Rule 197: condition_opt ::= $Empty + // Rule 192: condition_opt ::= $Empty // - case 197: { action.builder. + case 192: { action.builder. consumeEmpty(); break; } // - // Rule 198: iteration_statement ::= while ( condition ) statement + // Rule 193: iteration_statement ::= while ( condition ) statement // - case 198: { action.builder. + case 193: { action.builder. consumeStatementWhileLoop(); break; } // - // Rule 199: iteration_statement ::= do statement while ( expression ) ; + // Rule 194: iteration_statement ::= do statement while ( expression ) ; // - case 199: { action.builder. + case 194: { action.builder. consumeStatementDoLoop(); break; } // - // Rule 200: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement + // Rule 195: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement // - case 200: { action.builder. + case 195: { action.builder. consumeStatementForLoop(); break; } // - // Rule 202: for_init_statement ::= simple_declaration_with_declspec + // Rule 197: for_init_statement ::= simple_declaration_with_declspec // - case 202: { action.builder. + case 197: { action.builder. consumeStatementDeclaration(); break; } // - // Rule 203: jump_statement ::= break ; + // Rule 198: jump_statement ::= break ; // - case 203: { action.builder. + case 198: { action.builder. consumeStatementBreak(); break; } // - // Rule 204: jump_statement ::= continue ; + // Rule 199: jump_statement ::= continue ; // - case 204: { action.builder. + case 199: { action.builder. consumeStatementContinue(); break; } // - // Rule 205: jump_statement ::= return expression ; + // Rule 200: jump_statement ::= return expression ; // - case 205: { action.builder. + case 200: { action.builder. consumeStatementReturn(true); break; } // - // Rule 206: jump_statement ::= return ; + // Rule 201: jump_statement ::= return ; // - case 206: { action.builder. + case 201: { action.builder. consumeStatementReturn(false); break; } // - // Rule 207: jump_statement ::= goto identifier_token ; + // Rule 202: jump_statement ::= goto identifier_token ; // - case 207: { action.builder. + case 202: { action.builder. consumeStatementGoto(); break; } // - // Rule 208: declaration_statement ::= block_declaration + // Rule 203: declaration_statement ::= block_declaration // - case 208: { action.builder. + case 203: { action.builder. consumeStatementDeclarationWithDisambiguation(); break; } // - // Rule 209: declaration_statement ::= function_definition + // Rule 204: declaration_statement ::= function_definition // - case 209: { action.builder. + case 204: { action.builder. consumeStatementDeclaration(); break; } // - // Rule 226: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; + // Rule 212: declaration ::= ERROR_TOKEN // - case 226: { action.builder. + case 212: { action.builder. + consumeDeclarationProblem(); break; + } + + // + // Rule 222: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; + // + case 222: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 227: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; + // Rule 223: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; // - case 227: { action.builder. + case 223: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 228: declaration_specifiers ::= simple_declaration_specifiers + // Rule 224: declaration_specifiers ::= simple_declaration_specifiers // - case 228: { action.builder. + case 224: { action.builder. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 229: declaration_specifiers ::= class_declaration_specifiers + // Rule 225: declaration_specifiers ::= class_declaration_specifiers // - case 229: { action.builder. + case 225: { action.builder. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 230: declaration_specifiers ::= elaborated_declaration_specifiers + // Rule 226: declaration_specifiers ::= elaborated_declaration_specifiers // - case 230: { action.builder. + case 226: { action.builder. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 231: declaration_specifiers ::= enum_declaration_specifiers + // Rule 227: declaration_specifiers ::= enum_declaration_specifiers // - case 231: { action.builder. + case 227: { action.builder. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 232: declaration_specifiers ::= type_name_declaration_specifiers + // Rule 228: declaration_specifiers ::= type_name_declaration_specifiers // - case 232: { action.builder. + case 228: { action.builder. consumeDeclarationSpecifiersTypeName(); break; } // - // Rule 234: declaration_specifiers_opt ::= $Empty + // Rule 230: declaration_specifiers_opt ::= $Empty // - case 234: { action.builder. + case 230: { action.builder. consumeEmpty(); break; } // - // Rule 238: no_type_declaration_specifier ::= friend + // Rule 234: no_type_declaration_specifier ::= friend // - case 238: { action.builder. + case 234: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 239: no_type_declaration_specifier ::= typedef + // Rule 235: no_type_declaration_specifier ::= typedef // - case 239: { action.builder. + case 235: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 259: storage_class_specifier ::= auto + // Rule 255: storage_class_specifier ::= auto + // + case 255: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 256: storage_class_specifier ::= register + // + case 256: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 257: storage_class_specifier ::= static + // + case 257: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 258: storage_class_specifier ::= extern + // + case 258: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 259: storage_class_specifier ::= mutable // case 259: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 260: storage_class_specifier ::= register + // Rule 260: function_specifier ::= inline // case 260: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 261: storage_class_specifier ::= static + // Rule 261: function_specifier ::= virtual // case 261: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 262: storage_class_specifier ::= extern + // Rule 262: function_specifier ::= explicit // case 262: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 263: storage_class_specifier ::= mutable + // Rule 263: simple_type_specifier ::= char // case 263: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 264: function_specifier ::= inline + // Rule 264: simple_type_specifier ::= wchar_t // case 264: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 265: function_specifier ::= virtual + // Rule 265: simple_type_specifier ::= bool // case 265: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 266: function_specifier ::= explicit + // Rule 266: simple_type_specifier ::= short // case 266: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 267: simple_type_specifier ::= char + // Rule 267: simple_type_specifier ::= int // case 267: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 268: simple_type_specifier ::= wchar_t + // Rule 268: simple_type_specifier ::= long // case 268: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 269: simple_type_specifier ::= bool + // Rule 269: simple_type_specifier ::= signed // case 269: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 270: simple_type_specifier ::= short + // Rule 270: simple_type_specifier ::= unsigned // case 270: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 271: simple_type_specifier ::= int + // Rule 271: simple_type_specifier ::= float // case 271: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 272: simple_type_specifier ::= long + // Rule 272: simple_type_specifier ::= double // case 272: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 273: simple_type_specifier ::= signed + // Rule 273: simple_type_specifier ::= void // case 273: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 274: simple_type_specifier ::= unsigned - // - case 274: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 275: simple_type_specifier ::= float - // - case 275: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 276: simple_type_specifier ::= double + // Rule 276: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name // case 276: { action.builder. - consumeDeclSpecToken(); break; + consumeQualifiedId(false); break; } // - // Rule 277: simple_type_specifier ::= void + // Rule 277: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name // case 277: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 280: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name - // - case 280: { action.builder. consumeQualifiedId(false); break; } // - // Rule 281: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name + // Rule 278: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name // - case 281: { action.builder. + case 278: { action.builder. consumeQualifiedId(false); break; } // - // Rule 282: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name + // Rule 279: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name // - case 282: { action.builder. - consumeQualifiedId(false); break; - } - - // - // Rule 283: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name - // - case 283: { action.builder. + case 279: { action.builder. consumeQualifiedId(true); break; } // - // Rule 285: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name + // Rule 281: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name // - case 285: { action.builder. + case 281: { action.builder. consumeTypeSpecifierElaborated(false); break; } // - // Rule 286: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name + // Rule 282: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name // - case 286: { action.builder. + case 282: { action.builder. consumeTypeSpecifierElaborated(true); break; } // - // Rule 287: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name + // Rule 283: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name // - case 287: { action.builder. + case 283: { action.builder. consumeTypeSpecifierElaborated(false); break; } // - // Rule 288: enum_specifier ::= enum { enumerator_list_opt } + // Rule 284: enum_specifier ::= enum { enumerator_list_opt } // - case 288: { action.builder. + case 284: { action.builder. consumeTypeSpecifierEnumeration(false); break; } // - // Rule 289: enum_specifier ::= enum identifier_token { enumerator_list_opt } + // Rule 285: enum_specifier ::= enum identifier_token { enumerator_list_opt } // - case 289: { action.builder. + case 285: { action.builder. consumeTypeSpecifierEnumeration(true); break; } // - // Rule 294: enumerator_definition ::= identifier_token + // Rule 290: enumerator_definition ::= identifier_token // - case 294: { action.builder. + case 290: { action.builder. consumeEnumerator(false); break; } // - // Rule 295: enumerator_definition ::= identifier_token = constant_expression + // Rule 291: enumerator_definition ::= identifier_token = constant_expression // - case 295: { action.builder. + case 291: { action.builder. consumeEnumerator(true); break; } // - // Rule 299: named_namespace_definition ::= namespace namespace_name { declaration_seq_opt } + // Rule 295: named_namespace_definition ::= namespace namespace_name { declaration_seq_opt } // - case 299: { action.builder. + case 295: { action.builder. consumeNamespaceDefinition(true); break; } // - // Rule 300: unnamed_namespace_definition ::= namespace { declaration_seq_opt } + // Rule 296: unnamed_namespace_definition ::= namespace { declaration_seq_opt } // - case 300: { action.builder. + case 296: { action.builder. consumeNamespaceDefinition(false); break; } // - // Rule 301: 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 301: { action.builder. + case 297: { action.builder. consumeNamespaceAliasDefinition(); break; } // - // Rule 302: 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 302: { action.builder. + case 298: { action.builder. consumeUsingDeclaration(); break; } // - // Rule 303: typename_opt ::= typename + // Rule 299: typename_opt ::= typename // - case 303: { action.builder. + case 299: { action.builder. consumePlaceHolder(); break; } // - // Rule 304: typename_opt ::= $Empty + // Rule 300: typename_opt ::= $Empty // - case 304: { action.builder. + case 300: { action.builder. consumeEmpty(); break; } // - // Rule 305: 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 305: { action.builder. + case 301: { action.builder. consumeUsingDirective(); break; } // - // Rule 306: asm_definition ::= asm ( stringlit ) ; + // Rule 302: asm_definition ::= asm ( stringlit ) ; // - case 306: { action.builder. + case 302: { action.builder. consumeDeclarationASM(); break; } // - // Rule 307: linkage_specification ::= extern stringlit { declaration_seq_opt } + // Rule 303: linkage_specification ::= extern stringlit { declaration_seq_opt } // - case 307: { action.builder. + case 303: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 308: linkage_specification ::= extern stringlit declaration + // Rule 304: linkage_specification ::= extern stringlit declaration // - case 308: { action.builder. + case 304: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 314: init_declarator ::= declarator initializer + // Rule 310: init_declarator ::= declarator initializer // - case 314: { action.builder. + case 310: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 316: declarator ::= ptr_operator_seq direct_declarator + // Rule 312: declarator ::= ptr_operator_seq direct_declarator // - case 316: { action.builder. + case 312: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 318: function_declarator ::= ptr_operator_seq direct_declarator + // Rule 314: function_declarator ::= ptr_operator_seq direct_declarator // - case 318: { action.builder. + case 314: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 321: basic_direct_declarator ::= declarator_id_name + // Rule 317: basic_direct_declarator ::= declarator_id_name // - case 321: { action.builder. + case 317: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 322: basic_direct_declarator ::= ( declarator ) + // Rule 318: basic_direct_declarator ::= ( declarator ) // - case 322: { action.builder. + case 318: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 323: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 319: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 323: { action.builder. + case 319: { action.builder. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 324: array_direct_declarator ::= array_direct_declarator array_modifier + // Rule 320: array_direct_declarator ::= array_direct_declarator array_modifier // - case 324: { action.builder. + case 320: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 325: array_direct_declarator ::= basic_direct_declarator array_modifier + // Rule 321: array_direct_declarator ::= basic_direct_declarator array_modifier // - case 325: { action.builder. + case 321: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 326: array_modifier ::= [ constant_expression ] + // Rule 322: array_modifier ::= [ constant_expression ] // - case 326: { action.builder. + case 322: { action.builder. consumeDirectDeclaratorArrayModifier(true); break; } // - // Rule 327: array_modifier ::= [ ] + // Rule 323: array_modifier ::= [ ] // - case 327: { action.builder. + case 323: { action.builder. consumeDirectDeclaratorArrayModifier(false); break; } // - // Rule 328: ptr_operator ::= * cv_qualifier_seq_opt + // Rule 324: ptr_operator ::= * cv_qualifier_seq_opt // - case 328: { action.builder. + case 324: { action.builder. consumePointer(); break; } // - // Rule 329: ptr_operator ::= & + // Rule 325: ptr_operator ::= & // - case 329: { action.builder. + case 325: { action.builder. consumeReferenceOperator(); break; } // - // Rule 330: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt + // Rule 326: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt // - case 330: { action.builder. + case 326: { action.builder. consumePointerToMember(); break; } // - // Rule 336: cv_qualifier ::= const + // Rule 332: cv_qualifier ::= const // - case 336: { action.builder. + case 332: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 337: cv_qualifier ::= volatile + // Rule 333: cv_qualifier ::= volatile // - case 337: { action.builder. + case 333: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 339: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name + // Rule 335: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name // - case 339: { action.builder. + case 335: { action.builder. consumeQualifiedId(false); break; } // - // Rule 340: type_id ::= type_specifier_seq + // Rule 336: type_id ::= type_specifier_seq // - case 340: { action.builder. + case 336: { action.builder. consumeTypeId(false); break; } // - // Rule 341: type_id ::= type_specifier_seq abstract_declarator + // Rule 337: type_id ::= type_specifier_seq abstract_declarator // - case 341: { action.builder. + case 337: { action.builder. consumeTypeId(true); break; } // - // Rule 344: abstract_declarator ::= ptr_operator_seq + // Rule 340: abstract_declarator ::= ptr_operator_seq // - case 344: { action.builder. + case 340: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 345: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator + // Rule 341: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator // - case 345: { action.builder. + case 341: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 349: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 345: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - case 349: { action.builder. + case 345: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 350: basic_direct_abstract_declarator ::= ( ) + // Rule 346: basic_direct_abstract_declarator ::= ( ) // - case 350: { action.builder. + case 346: { action.builder. consumeAbstractDeclaratorEmpty(); break; } // - // Rule 351: array_direct_abstract_declarator ::= array_modifier + // Rule 347: array_direct_abstract_declarator ::= array_modifier // - case 351: { action.builder. + case 347: { action.builder. consumeDirectDeclaratorArrayDeclarator(false); break; } // - // Rule 352: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // Rule 348: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier // - case 352: { action.builder. + case 348: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 353: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier + // Rule 349: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier // - case 353: { action.builder. + case 349: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 354: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 350: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 354: { action.builder. + case 350: { action.builder. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 355: 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 355: { action.builder. + case 351: { action.builder. consumeDirectDeclaratorFunctionDeclarator(false); break; } // - // Rule 356: parameter_declaration_clause ::= parameter_declaration_list_opt ... + // Rule 352: parameter_declaration_clause ::= parameter_declaration_list_opt ... // - case 356: { action.builder. + case 352: { action.builder. consumePlaceHolder(); break; } // - // Rule 357: parameter_declaration_clause ::= parameter_declaration_list_opt + // Rule 353: parameter_declaration_clause ::= parameter_declaration_list_opt // - case 357: { action.builder. + case 353: { action.builder. consumeEmpty(); break; } // - // Rule 358: parameter_declaration_clause ::= parameter_declaration_list , ... + // Rule 354: parameter_declaration_clause ::= parameter_declaration_list , ... // - case 358: { action.builder. + case 354: { action.builder. consumePlaceHolder(); break; } // - // Rule 364: abstract_declarator_opt ::= $Empty + // Rule 360: abstract_declarator_opt ::= $Empty // - case 364: { action.builder. + case 360: { action.builder. consumeEmpty(); break; } // - // Rule 365: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // Rule 361: parameter_declaration ::= declaration_specifiers parameter_init_declarator // - case 365: { action.builder. + case 361: { action.builder. consumeParameterDeclaration(); break; } // - // Rule 366: parameter_declaration ::= declaration_specifiers + // Rule 362: parameter_declaration ::= declaration_specifiers // - case 366: { action.builder. + case 362: { action.builder. consumeParameterDeclarationWithoutDeclarator(); break; } // - // Rule 368: parameter_init_declarator ::= declarator = parameter_initializer + // Rule 364: parameter_init_declarator ::= declarator = parameter_initializer // - case 368: { action.builder. + case 364: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 370: parameter_init_declarator ::= abstract_declarator = parameter_initializer + // Rule 366: parameter_init_declarator ::= abstract_declarator = parameter_initializer // - case 370: { action.builder. + case 366: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 371: parameter_init_declarator ::= = parameter_initializer + // Rule 367: parameter_init_declarator ::= = parameter_initializer // - case 371: { action.builder. + case 367: { action.builder. consumeDeclaratorWithInitializer(false); break; } // - // Rule 372: parameter_initializer ::= assignment_expression + // Rule 368: parameter_initializer ::= assignment_expression // - case 372: { action.builder. + case 368: { action.builder. consumeInitializer(); break; } // - // Rule 373: 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 373: { action.builder. + case 369: { action.builder. consumeFunctionDefinition(false); break; } // - // Rule 374: 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 374: { action.builder. + case 370: { action.builder. consumeFunctionDefinition(true); break; } // - // Rule 377: initializer ::= ( expression_list ) + // Rule 373: initializer ::= ( expression_list ) // - case 377: { action.builder. + case 373: { action.builder. consumeInitializerConstructor(); break; } // - // Rule 378: initializer_clause ::= assignment_expression + // Rule 374: initializer_clause ::= assignment_expression // - case 378: { action.builder. + case 374: { action.builder. consumeInitializer(); break; } // - // Rule 379: initializer_clause ::= start_initializer_list { initializer_list , } end_initializer_list + // Rule 375: initializer_clause ::= start_initializer_list { initializer_list , } end_initializer_list // - case 379: { action.builder. + case 375: { action.builder. consumeInitializerList(); break; } // - // Rule 380: initializer_clause ::= start_initializer_list { initializer_list } end_initializer_list + // Rule 376: initializer_clause ::= start_initializer_list { initializer_list } end_initializer_list // - case 380: { action.builder. + case 376: { action.builder. consumeInitializerList(); break; } // - // Rule 381: initializer_clause ::= { } + // Rule 377: initializer_clause ::= { } // - case 381: { action.builder. + case 377: { action.builder. consumeInitializerList(); break; } // - // Rule 382: start_initializer_list ::= $Empty + // Rule 378: start_initializer_list ::= $Empty // - case 382: { action.builder. + case 378: { action.builder. initializerListStart(); break; } // - // Rule 383: end_initializer_list ::= $Empty + // Rule 379: end_initializer_list ::= $Empty // - case 383: { action.builder. + case 379: { action.builder. initializerListEnd(); break; } // - // Rule 388: class_specifier ::= class_head { member_declaration_list_opt } + // Rule 384: class_specifier ::= class_head { member_declaration_list_opt } // - case 388: { action.builder. + case 384: { action.builder. consumeClassSpecifier(); break; } // - // Rule 389: class_head ::= class_keyword identifier_name_opt base_clause_opt + // Rule 385: class_head ::= class_keyword identifier_name_opt base_clause_opt // - case 389: { action.builder. + case 385: { action.builder. consumeClassHead(false); break; } // - // Rule 390: class_head ::= class_keyword template_id_name base_clause_opt + // Rule 386: class_head ::= class_keyword template_id_name base_clause_opt + // + case 386: { action.builder. + consumeClassHead(false); break; + } + + // + // Rule 387: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt + // + case 387: { action.builder. + consumeClassHead(true); break; + } + + // + // Rule 388: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt + // + case 388: { action.builder. + consumeClassHead(true); break; + } + + // + // Rule 390: identifier_name_opt ::= $Empty // case 390: { action.builder. - consumeClassHead(false); break; - } - - // - // Rule 391: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt - // - case 391: { action.builder. - consumeClassHead(true); break; - } - - // - // Rule 392: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt - // - case 392: { action.builder. - consumeClassHead(true); break; - } - - // - // Rule 394: identifier_name_opt ::= $Empty - // - case 394: { action.builder. consumeEmpty(); break; } // - // Rule 398: visibility_label ::= access_specifier_keyword : + // Rule 394: visibility_label ::= access_specifier_keyword : // - case 398: { action.builder. + case 394: { action.builder. consumeVisibilityLabel(); break; } // - // Rule 399: member_declaration ::= declaration_specifiers_opt member_declarator_list ; + // Rule 395: member_declaration ::= declaration_specifiers_opt member_declarator_list ; // - case 399: { action.builder. + case 395: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 400: member_declaration ::= declaration_specifiers_opt ; + // Rule 396: member_declaration ::= declaration_specifiers_opt ; // - case 400: { action.builder. + case 396: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 403: 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 403: { action.builder. + case 399: { action.builder. consumeMemberDeclarationQualifiedId(); break; } // - // Rule 409: member_declaration ::= ERROR_TOKEN + // Rule 405: member_declaration ::= ERROR_TOKEN // - case 409: { action.builder. + case 405: { action.builder. consumeDeclarationProblem(); break; } // - // Rule 417: member_declarator ::= declarator constant_initializer + // Rule 413: member_declarator ::= declarator constant_initializer // - case 417: { action.builder. + case 413: { action.builder. consumeMemberDeclaratorWithInitializer(); break; } // - // Rule 418: member_declarator ::= bit_field_declarator : constant_expression + // Rule 414: member_declarator ::= bit_field_declarator : constant_expression // - case 418: { action.builder. + case 414: { action.builder. consumeBitField(true); break; } // - // Rule 419: member_declarator ::= : constant_expression + // Rule 415: member_declarator ::= : constant_expression // - case 419: { action.builder. + case 415: { action.builder. consumeBitField(false); break; } // - // Rule 420: bit_field_declarator ::= identifier_name + // Rule 416: bit_field_declarator ::= identifier_name // - case 420: { action.builder. + case 416: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 421: constant_initializer ::= = constant_expression + // Rule 417: constant_initializer ::= = constant_expression // - case 421: { action.builder. + case 417: { action.builder. consumeInitializer(); break; } // - // Rule 427: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 423: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 427: { action.builder. + case 423: { action.builder. consumeBaseSpecifier(false, false); break; } // - // Rule 428: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name + // Rule 424: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name // - case 428: { action.builder. + case 424: { action.builder. consumeBaseSpecifier(true, true); break; } // - // Rule 429: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name + // Rule 425: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name // - case 429: { action.builder. + case 425: { action.builder. consumeBaseSpecifier(true, true); break; } // - // Rule 430: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name + // Rule 426: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name // - case 430: { action.builder. + case 426: { action.builder. consumeBaseSpecifier(true, false); break; } // - // Rule 431: access_specifier_keyword ::= private + // Rule 427: access_specifier_keyword ::= private + // + case 427: { action.builder. + consumeAccessKeywordToken(); break; + } + + // + // Rule 428: access_specifier_keyword ::= protected + // + case 428: { action.builder. + consumeAccessKeywordToken(); break; + } + + // + // Rule 429: access_specifier_keyword ::= public + // + case 429: { action.builder. + consumeAccessKeywordToken(); break; + } + + // + // Rule 431: access_specifier_keyword_opt ::= $Empty // case 431: { action.builder. - consumeAccessKeywordToken(); break; - } - - // - // Rule 432: access_specifier_keyword ::= protected - // - case 432: { action.builder. - consumeAccessKeywordToken(); break; - } - - // - // Rule 433: access_specifier_keyword ::= public - // - case 433: { action.builder. - consumeAccessKeywordToken(); break; - } - - // - // Rule 435: access_specifier_keyword_opt ::= $Empty - // - case 435: { action.builder. consumeEmpty(); break; } // - // Rule 437: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > + // Rule 433: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > // - case 437: { action.builder. + case 433: { action.builder. consumeTemplateId(); break; } // - // Rule 438: conversion_function_id ::= operator conversion_type_id + // Rule 434: conversion_function_id ::= operator conversion_type_id // - case 438: { action.builder. + case 434: { action.builder. consumeConversionName(); break; } // - // Rule 439: conversion_type_id ::= type_specifier_seq conversion_declarator + // Rule 435: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 439: { action.builder. + case 435: { action.builder. consumeTypeId(true); break; } // - // Rule 440: conversion_type_id ::= type_specifier_seq + // Rule 436: conversion_type_id ::= type_specifier_seq // - case 440: { action.builder. + case 436: { action.builder. consumeTypeId(false); break; } // - // Rule 441: conversion_declarator ::= ptr_operator_seq + // Rule 437: conversion_declarator ::= ptr_operator_seq // - case 441: { action.builder. + case 437: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 447: mem_initializer ::= mem_initializer_name ( expression_list_opt ) + // Rule 443: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 447: { action.builder. + case 443: { action.builder. consumeConstructorChainInitializer(); break; } // - // Rule 448: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 444: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name // - case 448: { action.builder. + case 444: { action.builder. consumeQualifiedId(false); break; } // - // Rule 451: operator_function_id_name ::= operator_id_name < template_argument_list_opt > + // Rule 447: operator_function_id_name ::= operator_id_name < template_argument_list_opt > // - case 451: { action.builder. + case 447: { action.builder. consumeTemplateId(); break; } // - // Rule 452: operator_id_name ::= operator overloadable_operator + // Rule 448: operator_id_name ::= operator overloadable_operator // - case 452: { action.builder. + case 448: { action.builder. consumeOperatorName(); break; } // - // Rule 495: template_declaration ::= export_opt template < template_parameter_list > declaration + // Rule 491: template_declaration ::= export_opt template < template_parameter_list > declaration // - case 495: { action.builder. + case 491: { action.builder. consumeTemplateDeclaration(); break; } // - // Rule 496: export_opt ::= export + // Rule 492: export_opt ::= export // - case 496: { action.builder. + case 492: { action.builder. consumePlaceHolder(); break; } // - // Rule 497: export_opt ::= $Empty + // Rule 493: export_opt ::= $Empty // - case 497: { action.builder. + case 493: { action.builder. consumeEmpty(); break; } // - // Rule 501: template_parameter ::= parameter_declaration + // Rule 497: template_parameter ::= parameter_declaration // - case 501: { action.builder. + case 497: { action.builder. consumeTemplateParamterDeclaration(); break; } // - // Rule 502: type_parameter ::= class identifier_name_opt + // Rule 498: type_parameter ::= class identifier_name_opt + // + case 498: { action.builder. + consumeSimpleTypeTemplateParameter(false); break; + } + + // + // Rule 499: type_parameter ::= class identifier_name_opt = type_id + // + case 499: { action.builder. + consumeSimpleTypeTemplateParameter(true); break; + } + + // + // Rule 500: type_parameter ::= typename identifier_name_opt + // + case 500: { action.builder. + consumeSimpleTypeTemplateParameter(false); break; + } + + // + // Rule 501: type_parameter ::= typename identifier_name_opt = type_id + // + case 501: { action.builder. + consumeSimpleTypeTemplateParameter(true); break; + } + + // + // Rule 502: type_parameter ::= template < template_parameter_list > class identifier_name_opt // case 502: { action.builder. - consumeSimpleTypeTemplateParameter(false); break; - } - - // - // Rule 503: type_parameter ::= class identifier_name_opt = type_id - // - case 503: { action.builder. - consumeSimpleTypeTemplateParameter(true); break; - } - - // - // Rule 504: type_parameter ::= typename identifier_name_opt - // - case 504: { action.builder. - consumeSimpleTypeTemplateParameter(false); break; - } - - // - // Rule 505: type_parameter ::= typename identifier_name_opt = type_id - // - case 505: { action.builder. - consumeSimpleTypeTemplateParameter(true); break; - } - - // - // Rule 506: type_parameter ::= template < template_parameter_list > class identifier_name_opt - // - case 506: { action.builder. consumeTemplatedTypeTemplateParameter(false); break; } // - // Rule 507: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression + // Rule 503: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression // - case 507: { action.builder. + case 503: { action.builder. consumeTemplatedTypeTemplateParameter(true); break; } // - // Rule 508: template_id_name ::= identifier_name < template_argument_list_opt > + // Rule 504: template_id_name ::= identifier_name < template_argument_list_opt > // - case 508: { action.builder. + case 504: { action.builder. consumeTemplateId(); break; } // - // Rule 513: template_argument ::= assignment_expression + // Rule 509: template_argument ::= assignment_expression // - case 513: { action.builder. + case 509: { action.builder. consumeTemplateArgumentExpression(); break; } // - // Rule 514: template_argument ::= type_id + // Rule 510: template_argument ::= type_id // - case 514: { action.builder. + case 510: { action.builder. consumeTemplateArgumentTypeId(); break; } // - // Rule 515: explicit_instantiation ::= template declaration + // Rule 511: explicit_instantiation ::= template declaration // - case 515: { action.builder. + case 511: { action.builder. consumeTemplateExplicitInstantiation(); break; } // - // Rule 516: explicit_specialization ::= template < > declaration + // Rule 512: explicit_specialization ::= template < > declaration // - case 516: { action.builder. + case 512: { action.builder. consumeTemplateExplicitSpecialization(); break; } // - // Rule 517: try_block ::= try compound_statement handler_seq + // Rule 513: try_block ::= try compound_statement handler_seq // - case 517: { action.builder. + case 513: { action.builder. consumeStatementTryBlock(); break; } // - // Rule 520: handler ::= catch ( exception_declaration ) compound_statement + // Rule 516: handler ::= catch ( exception_declaration ) compound_statement // - case 520: { action.builder. + case 516: { action.builder. consumeStatementCatchHandler(false); break; } // - // Rule 521: handler ::= catch ( ... ) compound_statement + // Rule 517: handler ::= catch ( ... ) compound_statement // - case 521: { action.builder. + case 517: { action.builder. consumeStatementCatchHandler(true); break; } // - // Rule 522: exception_declaration ::= type_specifier_seq declarator + // Rule 518: exception_declaration ::= type_specifier_seq declarator // - case 522: { action.builder. + case 518: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 523: exception_declaration ::= type_specifier_seq abstract_declarator + // Rule 519: exception_declaration ::= type_specifier_seq abstract_declarator // - case 523: { action.builder. + case 519: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 524: exception_declaration ::= type_specifier_seq + // Rule 520: exception_declaration ::= type_specifier_seq // - case 524: { action.builder. + case 520: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 526: exception_specification ::= throw ( ) + // Rule 522: exception_specification ::= throw ( ) // - case 526: { action.builder. + case 522: { action.builder. consumePlaceHolder(); break; } // - // Rule 532: no_function_declarator_start ::= ERROR_TOKEN + // Rule 528: no_function_declarator_start ::= ERROR_TOKEN // - case 532: { action.builder. + case 528: { action.builder. consumeDeclarationProblem(); break; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParserprs.java index 2cc426b78e5..81c979d2755 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParserprs.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParserprs.java @@ -38,490 +38,490 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface BaseCheck { public final static short baseCheck[] = {0, 0,0,1,1,1,1,1,1,1,1, - 1,1,1,0,1,2,1,1,1,1, - 1,1,1,1,1,1,1,1,1,3, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,3,1,1,1,1,1, + 1,1,1,2,2,1,1,0,1,0, + 4,2,3,2,3,2,2,1,0,1, + 1,4,4,4,8,8,3,3,4,4, + 3,3,2,2,7,7,7,7,4,4, + 5,6,3,2,2,1,1,1,2,2, + 2,2,2,2,2,2,2,4,7,9, + 3,0,1,2,2,1,2,3,4,1, + 0,3,1,0,3,5,1,4,1,3, + 3,1,3,3,3,1,3,3,1,3, + 3,1,3,3,3,3,1,3,3,1, + 3,1,3,1,3,1,3,1,3,1, + 5,1,2,1,1,3,3,3,3,3, + 3,3,3,3,3,3,1,2,1,3, + 1,0,1,0,1,1,0,1,1,1, + 1,1,1,1,1,1,3,4,3,2, + 1,4,2,1,2,5,7,5,1,4, + 1,0,5,7,8,1,1,2,2,3, + 2,3,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,2,1, + 0,4,4,2,2,2,2,2,1,0, + 1,1,1,1,1,1,2,1,2,2, + 2,1,1,2,2,1,2,2,1,2, + 2,1,2,2,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,3,4,4,5,2, + 4,5,4,5,6,1,3,1,0,1, + 3,1,1,1,6,5,7,6,1,0, + 6,5,6,4,1,3,1,0,1,2, + 1,3,1,3,1,1,1,3,9,2, + 2,3,2,3,1,5,1,2,2,1, + 0,1,1,1,3,1,2,1,1,2, + 3,1,1,1,3,2,1,2,2,9, + 8,2,1,3,1,3,1,0,1,0, + 2,1,1,3,1,3,2,1,5,8, + 1,2,3,1,7,6,3,0,0,1, + 3,1,1,5,4,4,5,5,1,0, + 1,1,1,2,4,2,2,1,5,1, + 1,1,1,1,1,1,2,1,0,1, + 3,1,2,3,2,1,2,2,1,0, + 1,3,3,5,5,4,1,1,1,1, + 0,1,5,2,2,1,2,2,1,0, + 1,3,4,3,1,1,5,2,1,1, + 3,3,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,2,2, - 1,1,0,1,0,4,2,3,2,3, - 2,2,1,0,1,1,4,4,4,8, - 8,3,3,4,4,3,3,2,2,7, - 7,7,7,4,4,5,6,3,2,2, - 1,1,1,2,2,2,2,2,2,2, - 2,2,4,7,9,3,0,1,2,2, - 1,2,3,4,1,0,3,1,0,3, - 5,1,4,1,3,3,1,3,3,3, - 1,3,3,1,3,3,1,3,3,3, - 3,1,3,3,1,3,1,3,1,3, - 1,3,1,3,1,5,1,2,1,1, - 3,3,3,3,3,3,3,3,3,3, - 3,1,2,1,3,1,0,1,0,1, - 1,0,1,1,1,1,1,1,1,1, - 1,3,4,3,2,1,4,2,1,2, - 5,7,5,1,4,1,0,5,7,8, - 1,1,2,2,3,2,3,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,2,1,0,4,4,2,2,2, - 2,2,1,0,1,1,1,1,1,1, - 2,1,2,2,2,1,1,2,2,1, - 2,2,1,2,2,1,2,2,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,3, - 4,4,5,2,4,5,4,5,6,1, - 3,1,0,1,3,1,1,1,6,5, - 7,6,1,0,6,5,6,4,1,3, - 1,0,1,2,1,3,1,3,1,1, - 1,3,9,2,2,3,2,3,1,5, - 1,2,2,1,0,1,1,1,3,1, - 2,1,1,2,3,1,1,1,3,2, - 1,2,2,9,8,2,1,3,1,3, - 1,0,1,0,2,1,1,3,1,3, - 2,1,5,8,1,2,3,1,7,6, - 3,0,0,1,3,1,1,5,4,4, - 5,5,1,0,1,1,1,2,4,2, - 2,1,5,1,1,1,1,1,1,1, - 2,1,0,1,3,1,2,3,2,1, - 2,2,1,0,1,3,3,5,5,4, - 1,1,1,1,0,1,5,2,2,1, - 2,2,1,0,1,3,4,3,1,1, - 5,2,1,1,3,3,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,2,2,7,1,0,1,3,1, - 1,2,4,2,4,7,9,5,1,3, - 1,0,1,1,2,4,4,1,2,5, - 5,3,3,1,4,3,1,0,1,3, - 1,1,1,-109,0,0,0,-2,0,0, + 7,1,0,1,3,1,1,2,4,2, + 4,7,9,5,1,3,1,0,1,1, + 2,4,4,1,2,5,5,3,3,1, + 4,3,1,0,1,3,1,1,1,-109, + 0,0,0,-2,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-7,0,0,0,0, - 0,0,0,-264,0,-111,0,0,0,0, - 0,-261,0,0,0,0,-197,0,0,0, - -4,0,0,0,0,0,0,0,0,-132, + 0,-7,0,0,0,0,0,0,0,-264, + 0,-111,0,0,0,0,0,-261,0,0, + 0,0,-197,0,0,0,-4,0,0,0, + 0,0,0,0,0,-132,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-6,0,0, + 0,-123,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-24,0,0,0,0,0,0, + 0,-115,0,0,0,0,0,0,0,0, + 0,0,0,0,-312,0,-86,0,0,0, + 0,0,0,0,0,0,0,0,-74,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-20,0, + 0,0,0,0,0,0,-289,0,0,0, + 0,-14,-8,0,0,-32,0,-156,0,0, + 0,0,0,-75,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-399,0,-10,0,0,0,0, + 0,-191,0,0,0,0,0,-97,0,0, + 0,-232,0,0,0,0,0,0,0,0, + -116,0,0,0,-235,0,0,0,0,0, + 0,0,0,0,-18,0,-276,-19,0,0, + -90,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -181,0,0,0,0,0,0,0,0,-154, + -72,0,0,-26,0,0,-5,-83,0,0, + 0,-27,0,0,0,-221,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-21,0,0,0,0, + 0,0,0,0,-30,-22,0,0,0,0, + 0,-112,-357,0,0,0,-407,0,0,0, + -473,0,-230,0,0,0,-12,0,0,0, + 0,0,0,0,0,0,0,0,-460,0, + 0,-40,-174,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-6,0,0,0,-123,0,0,0,0, + -3,0,0,0,0,-277,0,0,0,-335, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-24,0,0, - 0,0,0,0,0,-115,0,0,0,0, - 0,0,0,0,0,0,0,0,-312,0, - -86,0,0,0,0,0,0,0,0,0, - 0,0,-74,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-20,0,0,0,0,0,0,0, - -289,0,0,0,0,-14,-8,0,0,-32, - 0,-156,0,0,0,0,0,-75,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-399,0,-10, - 0,0,0,0,0,-191,0,0,0,0, - 0,-97,0,0,0,-232,0,0,0,0, - 0,0,0,0,-116,0,0,0,-235,0, - 0,0,0,0,0,0,0,0,-18,0, - -276,-335,0,0,-90,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-181,0,0,0,0,0, - 0,0,0,-154,-72,0,0,-19,0,0, - -5,-83,0,0,0,-26,0,0,0,-221, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-21, - 0,0,0,0,0,0,0,0,-371,-22, - 0,0,0,0,0,-112,-357,0,0,0, - -407,0,0,0,0,0,-230,0,0,0, - -12,0,0,0,0,0,0,0,0,0, - 0,0,-460,0,0,-40,-174,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-3,0,0,0,0,-277, - 0,0,0,-27,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-30,0,0,0,0,0,0,0,-28, 0,0,0,0,0,0,0,-31,0,0, - 0,0,-16,0,0,0,-41,0,0,0, + 0,0,0,0,0,-28,0,-41,0,0, + 0,0,0,-42,0,0,0,0,-16,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-251,0,-42,0,0,0,0,0, - 0,0,0,0,0,-38,0,0,0,-257, + 0,0,0,0,0,0,0,0,-251,0, + -43,0,0,0,0,0,0,0,0,0, + 0,-38,0,0,0,-257,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-308,0,-43,0,-88, - 0,0,0,0,0,-272,0,0,-391,0, - 0,0,-137,0,0,0,0,0,0,0, + 0,-308,0,0,0,-88,0,0,0,0, + 0,-272,0,0,-391,0,0,0,-137,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-44,0,0,0,-322,0, 0,0,0,0,0,0,0,0,0,0, + -44,0,0,0,-322,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-36,0, - 0,0,0,0,0,0,-241,0,0,0, - 0,-92,0,0,0,0,-45,0,0,0, - 0,0,-361,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-36,0,0,0,0,0, + 0,0,-241,0,0,0,0,-92,0,0, + 0,0,-45,0,0,0,0,0,-361,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-39,0,-89,0,0,0,0,0, - -464,0,-418,0,0,-35,0,0,0,-362, - 0,0,0,-313,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-39,0, + -89,0,0,0,0,0,-464,0,-418,0, + 0,-35,0,0,0,-362,0,0,0,-313, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-465,0,0,0,-439,0,0, - 0,0,-186,-17,0,0,0,-345,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-465, + 0,0,0,-439,0,0,0,0,-186,-17, + 0,0,0,-345,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-46,0,0, - 0,-47,0,-59,-70,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-170,0,0,0, - 0,0,0,0,0,0,0,0,-60,0, - 0,0,0,0,0,0,0,-79,-61,-138, + 0,0,0,-46,0,0,0,-47,0,-59, + -70,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-170,0,0,0,0,0,0,0, + 0,0,0,0,-60,0,0,0,0,0, + 0,0,0,-79,-61,-138,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-62,0,0,0,0,0,0,0,0, - 0,0,0,-187,0,0,0,0,0,0, - 0,0,-139,0,0,0,-384,0,0,0, + 0,0,0,0,0,0,0,-62,0,0, + 0,0,0,0,0,0,0,0,0,-187, + 0,0,0,0,0,0,0,0,-139,0, + 0,0,-384,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-63,0,0,0,0,0, - 0,0,0,0,-64,0,-98,0,0,0, - 0,0,-65,0,0,-140,0,0,0,-66, + -63,0,0,0,0,0,0,0,0,0, + -64,0,-98,0,0,0,0,0,-65,0, + 0,-140,0,0,0,-371,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-155,0,-67,0,0, - 0,0,0,-68,-473,-69,0,0,-141,0, - 0,0,-448,0,0,0,0,0,0,0, + 0,-155,0,-66,0,0,0,0,0,-67, + -515,-68,0,0,-141,0,0,0,-448,0, 0,0,0,0,0,0,0,0,0,0, - -71,0,0,0,0,0,0,0,-157,0, - -73,0,0,0,0,0,-94,-515,-96,0, - 0,-142,0,0,0,-501,0,0,0,0, + 0,0,0,0,0,0,-69,0,0,0, + 0,0,0,0,-157,0,-71,0,0,0, + 0,0,-73,-94,-96,0,0,-142,0,0, + 0,-501,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-114, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-114,0,0,0,0,0,0, - 0,0,0,-151,0,-159,0,0,0,0, - 0,-152,0,0,-143,0,0,0,-153,0, + 0,-159,0,0,0,0,0,-151,0,0, + -143,0,0,0,-152,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-160,0,-162,0, - 0,0,0,-193,-166,0,0,-144,0,0, - 0,-167,0,0,0,0,0,0,0,0, + 0,0,-153,0,-162,0,0,0,0,-193, + -160,0,0,-144,0,0,0,-166,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,-171,0,0, + 0,0,-201,-168,0,0,-145,0,0,0, + -177,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-178,0, + 0,0,0,0,0,0,-179,0,0,0, + 0,0,0,0,-180,-188,-189,0,0,-146, + 0,0,0,-190,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-171,0,0,0,0,-201,-168,0,0, - -145,0,0,0,-177,0,0,0,0,0, + 0,-202,0,0,0,0,0,0,0,-203, + 0,-204,0,0,0,0,0,-205,-206,-207, + 0,0,-147,0,0,0,-208,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-178,0,0,0,0,0,0,0, - -179,0,0,0,0,0,0,0,-180,-188, - -189,0,0,-146,0,0,0,-190,0,0, + 0,0,0,0,-209,0,0,0,0,0, + 0,0,-223,0,-210,0,0,0,0,0, + -211,-212,-213,0,0,-148,0,0,0,-214, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-202,0,0,0,0, - 0,0,0,-203,0,-204,0,0,0,0, - 0,-205,-206,-207,0,0,-147,0,0,0, - -208,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-209,0, - 0,0,0,0,0,0,-223,0,-210,0, - 0,0,0,0,-211,-212,-213,0,0,-148, - 0,0,0,-214,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-215,0,0, + 0,0,0,0,0,-224,0,-216,0,0, + 0,0,0,-217,-218,-219,0,0,-173,0, + 0,0,-220,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-215,0,0,0,0,0,0,0,-224, - 0,-216,0,0,0,0,0,-217,-218,-219, - 0,0,-173,0,0,0,-220,0,0,0, + -236,0,0,0,0,0,0,0,-228,0, + -237,0,0,0,0,0,-238,-239,-260,0, + 0,-256,0,0,0,-262,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-236,0,0,0,0,0, - 0,0,-228,0,-237,0,0,0,0,0, - -238,-239,-260,0,0,-256,0,0,0,-262, + 0,0,0,-351,0,0,0,0,0,0, + 0,-245,0,-263,0,0,0,0,0,-408, + 0,0,0,0,-520,0,0,0,-273,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-351,0,0, - 0,0,0,0,0,-245,0,-263,0,0, - 0,0,0,-408,0,0,0,0,-520,0, - 0,0,-273,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-247,0,0,0, + 0,0,0,0,-250,0,-274,0,0,0, + 0,0,-282,-259,-283,0,0,-311,0,0, + 0,-285,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-287, + 0,0,0,0,0,0,0,-161,0,-294, + 0,0,0,0,0,-349,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -247,0,0,0,0,0,0,0,-250,0, - -274,0,0,0,0,0,-282,-259,-283,0, - 0,-311,0,0,0,-285,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-287,0,0,0,0,0,0, - 0,-161,0,-294,0,0,0,0,0,-349, + 0,0,0,0,0,-299,0,0,0,-108, + 0,0,0,0,-240,0,0,0,-300,-416, + 0,0,0,-369,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-299, - 0,0,0,-108,0,0,0,0,-240,0, - 0,0,-300,-416,0,0,0,-369,0,0, + 0,0,0,0,0,-301,0,0,0,0, + 0,-388,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-301, - 0,0,0,0,0,-388,0,0,0,0, + 0,-298,0,-292,0,0,0,0,0,-25, + 0,0,0,0,-270,0,0,0,0,-389, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-298,0,-292,0,0, - 0,0,0,-25,0,0,0,0,-270,0, - 0,0,0,-389,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-15, + 0,-347,0,0,0,0,0,-451,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-15,0,-347,0,0,0,0, - 0,-451,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-303,0,0, + 0,0,0,0,0,-275,0,0,0,-372, + -310,-29,0,0,0,-150,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-305,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-303,0,0,0,0,0,0,0,-275, - 0,0,0,-372,-310,-29,0,0,0,-150, + 0,-33,0,-135,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-305,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-33,0,-135,0,0, + 0,0,0,0,0,-136,0,0,0,-306, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-136, - 0,0,0,-306,0,0,0,0,0,0, + 0,0,0,0,0,-133,0,0,0,-314, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-133, - 0,0,0,-314,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-373,0,0, + 0,0,0,-134,0,0,0,-323,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-373,0,0,0,0,0,-134,0,0, - 0,-323,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-324, - 0,0,0,0,0,-126,0,0,0,-332, + 0,0,0,0,0,-324,0,0,0,0, + 0,-126,0,0,0,-332,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-370,0,0, - 0,0,-127,0,0,0,0,0,0,0, + 0,0,0,-336,0,0,0,0,-127,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-336,0,0,0,0,-128, - 0,0,0,-255,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-225,0,0,0,0,-129,0,0,0, - -91,0,0,0,0,0,0,0,0,0, + -337,0,0,0,0,-128,0,0,0,-367, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-286,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-325,0,0, + 0,0,0,0,0,0,0,-225,0,0, + 0,0,-129,0,0,0,-91,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -525,0,0,0,-502,0,0,0,0,0, - 0,0,0,0,0,-199,0,0,0,0, - 0,0,0,0,0,0,0,0,-77,0, - 0,-227,-9,-337,0,0,0,-417,0,0, - 0,0,-348,0,0,-350,0,0,0,0, - 0,0,-433,-327,0,-105,0,0,-302,0, - 0,0,-404,0,0,0,0,0,-307,-95, - -517,0,0,0,0,0,-366,0,0,0, - 0,0,0,0,0,0,0,-374,0,-321, - 0,0,0,0,-169,0,0,0,0,0, - 0,0,0,0,0,0,-355,0,-449,-377, - 0,0,0,0,0,0,0,-401,0,0, + 0,0,0,0,-255,0,0,0,0,-286, 0,0,0,0,0,0,0,0,0,0, - 0,-23,0,0,0,0,0,0,0,-185, - 0,0,0,0,0,-402,0,0,0,-411, - 0,-405,0,0,0,0,0,0,0,0, - 0,0,-406,0,-76,0,0,0,-78,0, - -412,0,0,0,0,0,0,0,0,0, - 0,-11,0,0,0,-414,-80,-130,0,0, + 0,0,-348,-325,0,0,0,0,0,0, + 0,0,0,0,0,0,-525,0,0,0, + -350,0,0,0,0,0,0,0,0,0, + 0,-199,0,0,0,0,0,0,0,0, + 0,0,0,0,-95,0,0,0,-9,-195, + 0,0,0,0,-37,-254,0,0,0,0, + 0,-366,0,0,0,0,0,0,-433,-172, + 0,-77,0,-106,-374,0,0,0,0,0, + 0,0,0,0,0,-234,0,-302,0,0, + 0,-377,0,0,0,0,0,0,0,0, + 0,-107,0,-401,0,0,0,0,0,-402, + -169,0,0,0,0,0,0,0,0,0, + 0,0,-307,0,-449,-405,-321,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,-406,0,0,0,-23,0,0, + 0,0,0,0,0,-185,0,0,0,0, + 0,-330,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-412,0, + -76,0,0,0,-78,0,-414,0,0,0, + 0,0,0,0,0,0,0,-11,0,0, + 0,-423,-80,-130,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -430,0,-431,0,0,0,0,0,0,-379, - 0,0,0,0,-338,0,0,0,0,0, - 0,0,0,0,0,-469,0,0,0,0, - 0,0,0,0,0,0,-398,0,-400,0, + 0,0,0,0,0,-355,0,0,0,0, + 0,0,0,0,0,0,-430,0,-431,0, + 0,0,0,0,0,-370,0,0,0,0, + -338,0,0,0,0,0,0,0,0,0, + 0,-331,0,0,0,0,0,0,0,0, + 0,0,-398,0,-400,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-131,0,0,0, + -175,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-458,0, + 0,0,0,-386,0,0,0,-176,0,-182, + 0,0,0,0,-379,0,0,-504,0,0, + 0,-244,-227,-438,-450,0,0,0,0,-81, + 0,0,0,0,0,-293,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -131,0,0,0,-172,0,0,0,0,0, + 0,0,-476,0,-452,-327,0,0,0,0, + -454,-196,0,0,0,0,0,0,0,0, + 0,-455,0,0,0,-382,-502,0,0,0, + 0,0,0,-417,0,0,0,-444,0,0, + 0,0,0,0,0,-456,0,0,0,0, + 0,0,0,0,0,0,0,0,-478,0, + 0,-340,0,-200,-457,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-459, + 0,0,0,-383,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-165, + 0,0,0,-404,0,0,0,0,0,0, + 0,0,-493,0,0,0,0,-461,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-458,0,0,0,0,-386,0,0, - 0,-37,0,-106,0,0,-356,0,-330,0, - 0,0,0,-403,0,-244,-267,-107,0,0, - 0,0,0,-81,0,0,0,0,0,-438, + 0,-409,-472,0,0,-242,-434,0,0,0, + 0,0,0,-87,0,0,0,0,0,-474, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-476,0,-297,0, - 0,0,0,-450,-452,-175,0,0,0,0, - 0,0,0,0,0,-454,0,0,0,-382, - 0,0,0,0,0,-176,0,-182,-234,-378, - 0,0,-455,-353,0,0,0,0,0,-456, + 0,0,0,0,0,0,-508,0,0,0, + 0,-290,0,0,0,-243,0,0,0,0, + 0,0,0,0,0,-475,0,0,0,-435, + 0,0,0,0,0,0,0,-93,0,0, + 0,0,-360,-477,0,0,0,0,-267,0, + -482,-252,0,0,0,0,0,0,0,0, + -510,0,-486,0,0,-284,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-491, + 0,0,0,0,-291,-82,-499,-297,-84,-509, + 0,-158,0,0,0,0,-516,0,0,0, + 0,-194,0,-469,-521,0,0,0,0,0, + 0,0,0,0,-514,0,0,-118,0,-315, 0,0,0,0,0,0,0,0,0,0, - 0,0,-478,0,0,-457,0,0,-459,0, + 0,0,0,-288,0,0,0,0,-422,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-472,0,0,0,-383,0,0, - 0,0,0,0,0,0,0,0,0,-474, - 0,0,0,-165,0,0,0,-409,0,0, - 0,0,0,0,0,0,-493,0,0,-475, - 0,-461,0,0,0,0,0,-477,0,0, - 0,0,0,0,0,0,0,0,0,-242, - -196,0,-482,0,0,0,0,-87,0,0, - 0,0,-486,-491,0,0,0,0,0,0, - 0,-499,0,0,0,0,0,0,0,0, - -508,0,0,-509,0,-290,0,0,0,-516, - 0,0,0,0,0,0,0,0,0,-521, - 0,0,0,-435,0,0,0,0,0,0, - 0,-93,0,0,0,0,0,-100,0,0, - 0,0,-268,0,0,-200,0,0,0,0, - 0,0,0,0,-510,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-360,0,0,0,0,-243,-82, - 0,-252,0,0,0,-158,0,0,0,0, - 0,0,0,0,0,-194,-444,0,0,0, - 0,0,0,0,0,0,0,0,-514,0, - 0,-118,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-288,0,0, - 0,0,0,0,-254,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-367,0,-340, - 0,0,0,0,0,0,0,0,0,0, - 0,-519,0,0,0,0,0,0,0,0, - 0,0,0,0,-121,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-363, - -284,-195,0,0,0,0,-49,0,0,0, - 0,-427,0,0,0,0,-101,0,0,-291, - 0,0,0,0,-342,0,-526,0,0,-84, - 0,0,0,0,0,0,-315,-102,0,-117, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-519,0,0, + 0,0,0,0,0,0,0,0,0,0, + -121,0,0,0,-316,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-363,0,-342,0,0, + 0,0,-49,0,0,0,0,-427,0,0, + 0,0,-100,0,0,-317,0,0,0,0, + -411,-344,-526,-184,0,0,0,0,0,0, + 0,0,-318,-468,0,-328,0,0,-356,-378, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-269,0,0,0,0,0,-101, + 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,0,-352,0,0,0,0, + 0,0,0,-365,0,0,0,0,-226,0, + 0,0,0,0,0,0,0,-295,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-326,-403,-353,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-122, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-304,0,0,0,0,0, + 0,0,0,0,0,0,0,-124,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-104,0,0,0,-394,0,-419,-481,0, + 0,0,0,-105,0,0,0,0,-229,0, 0,0,-425,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-269,0,0, + 0,-296,0,0,0,0,0,0,0,-164, + 0,0,0,0,0,0,0,0,-125,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -396,0,0,0,-271,0,0,-231,0,0, + -268,-339,0,0,0,0,0,0,-364,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-50,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-329,0,0,0,0, + 0,0,-358,-359,0,0,0,0,-522,0, + 0,-381,0,-517,-397,0,0,0,0,0, + 0,0,0,0,0,0,-440,0,0,0, + 0,0,-421,0,0,0,0,-415,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,-424,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -470,0,0,0,0,-385,0,0,0,0, + 0,0,0,0,0,0,-429,-395,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-512,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-163,0,0, + 0,-192,0,0,0,-198,0,0,0,0, + 0,0,0,-1,0,0,0,0,0,0, + 0,0,0,0,0,0,-117,0,-48,-432, + 0,0,0,0,-442,0,-466,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-437,0,0,0,0,0,0, + 0,0,0,0,0,0,-334,0,0,0, + 0,0,0,0,0,0,-246,0,0,0, + -453,0,0,-489,0,0,0,-51,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-487, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-488,0,-498,0,0,0,0,-52, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-53,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-507,0,0,0,0,-54,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -55,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-56,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-57,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-58,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-110,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -119,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-120,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-183,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-248,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-341,-149, + -233,-462,0,0,-463,-494,0,0,-375,0, + 0,0,0,-278,0,0,0,0,-380,0, + 0,0,0,-279,0,0,0,0,0,0, + 0,0,0,0,-471,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,-485, + 0,0,0,0,0,0,0,0,0,-410, + 0,0,0,-387,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-280,-281,-333, + -420,0,0,0,0,-490,0,0,0,-496, + 0,-428,0,0,0,0,-511,0,0,0, + -102,0,0,-500,0,-467,0,0,0,0, + -523,-528,0,0,0,-505,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-506,0,0,0,-441,0,0,0, + 0,0,0,0,0,0,0,0,0,-13, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-85,0,0,0,-222, + 0,-524,-527,0,0,0,0,0,0,0, + -309,0,0,0,0,0,-253,0,0,0, + -445,0,0,0,0,0,-513,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-319,0, 0,0,0,-103,0,0,0,0,0,0, - 0,-316,0,0,0,0,0,0,0,0, - -529,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-317, - 0,-318,-233,-328,0,0,0,0,0,0, - 0,-295,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-470,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-122,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-304,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-124,0,0,0,-358,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-104,0,0,0,-422, - 0,0,-481,-434,0,0,0,0,0,-226, - 0,0,-229,0,0,0,0,0,0,0, - 0,0,0,-344,0,0,0,0,0,0, - 0,0,0,-164,0,0,0,0,0,0, - 0,0,-125,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-359,0,0,0,-231,0, - 0,0,0,0,0,-339,0,0,-331,0, - 0,0,-364,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-50,0, + 0,0,0,0,0,0,-320,0,0,-368, + 0,0,0,0,0,-34,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-184, - 0,0,0,0,0,0,-396,0,0,0, - 0,0,-522,0,0,-381,0,0,-397,0, - 0,0,0,0,0,0,0,0,0,0, - -440,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,-415,0,0, - 0,0,0,0,0,0,0,0,0,-329, - 0,0,0,-504,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-352,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-512,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-163,0,0,0,-192,0,0,0,-198, - 0,0,0,0,0,0,0,-1,0,0, - 0,0,0,0,0,0,0,0,0,0, - -149,0,-48,-365,0,0,0,0,0,0, - -424,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-394,0,0, - 0,0,0,0,-419,0,0,0,0,0, - -293,0,0,0,0,0,-518,0,0,0, - -246,0,0,0,0,0,0,-442,0,0, - 0,-51,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-421,0,-429,0,0,-432,0, - 0,0,0,0,0,0,-437,0,-487,0, - 0,0,0,-52,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-53,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-488,0,0, - 0,0,-54,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-55,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-56,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-57,0, + 0,0,-265,0,0,0,0,0,0,0, + 0,0,0,0,0,-495,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -58,0,0,0,0,0,0,0,0,0, + 0,-346,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-110,0,0,0,0,0,0,0, + 0,0,0,-436,0,0,0,0,0,0, + 0,0,0,0,-266,0,0,0,0,0, + 0,0,0,-343,0,0,0,0,0,-354, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-119,0,0,0,0,0, + 0,0,0,0,-376,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-120,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-183,0, + 0,0,0,0,0,0,0,0,-392,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, - -248,0,0,0,0,0,0,0,0,0, + 0,0,0,-413,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-426, + 0,0,0,-390,0,0,0,0,0,0, + -497,0,0,0,0,0,0,0,-443,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-341,-278,-271,0,0,0,-453,0, - -498,-466,-375,-489,0,-507,0,-279,0,0, - 0,0,-380,-395,0,0,0,-280,0,0, - 0,0,0,0,0,0,0,-281,0,0, + 0,0,0,0,-99,0,0,0,0,0, + 0,0,0,0,-113,0,-492,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-258, 0,0,0,0,0,0,0,0,0,0, + 0,0,-249,0,0,0,0,0,0,0, + 0,0,0,-479,0,-480,-483,0,0,0, + 0,0,-446,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-462,0,0,0,0,0,0, - 0,0,0,-385,0,0,0,-387,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-463,0,-420,0,0,-494,0,-471, - -496,0,0,0,0,-428,0,0,0,0, - -484,-485,0,0,-249,0,0,0,0,0, - -334,0,-490,0,0,0,-511,0,0,0, - 0,-319,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-500,0,0,0, - -441,0,0,0,0,0,0,0,0,0, - 0,0,0,-13,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-505,0,-85, - 0,0,0,-222,0,-506,0,0,0,0, - -524,0,0,-410,-309,0,0,0,0,0, - -253,0,0,0,-445,0,0,0,0,0, - -333,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-527,0,0,0,0, - 0,0,-320,0,0,0,0,-446,0,0, - 0,0,0,0,0,0,-523,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -368,0,0,-436,0,0,0,0,0,-34, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-265,0,0,0, - 0,0,0,0,0,0,0,0,0,-495, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-528, - 0,0,0,0,0,-346,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-266,0, - 0,0,0,0,0,0,0,-343,0,0, - 0,0,0,-354,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-376,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-392,0,0,0,0,0,-393,0, - 0,0,0,0,0,0,0,-326,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-413,0,0, - 0,-467,0,0,0,0,0,0,0,0, - 0,0,0,-426,0,0,0,-390,0,0, - 0,0,0,0,-497,0,0,0,0,0, - 0,0,-443,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-99,0, - 0,0,0,0,0,0,0,0,-113,0, - -492,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-258,0,0,0,0,0,0, - 0,0,0,0,0,0,-468,0,0,0, - 0,0,0,0,0,0,0,-479,0,-480, - -483,0,0,0,0,0,-447,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -513,0,0,0,0,0,0,0,0,0, - 0,0,0,-503,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-447, + 0,0,0,0,0,0,0,0,0,-503, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, @@ -531,11 +531,7 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,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; @@ -546,541 +542,537 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface BaseAction { public final static char baseAction[] = { 169,4,132,81,81,32,32,65,65,38, - 38,40,40,193,193,194,194,195,195,1, - 1,15,15,15,15,15,15,15,15,16, - 16,16,14,11,11,6,6,6,6,6, - 6,2,63,63,5,5,12,12,44,44, - 133,133,134,58,58,43,17,17,17,17, + 38,40,40,193,1,1,15,15,15,15, + 15,15,15,15,16,16,16,14,11,11, + 6,6,6,6,6,6,2,63,63,5, + 5,12,12,44,44,133,133,134,58,58, + 43,17,17,17,17,17,17,17,17,17, 17,17,17,17,17,17,17,17,17,17, - 17,17,17,17,17,17,135,135,135,113, - 113,18,18,18,18,18,18,18,18,18, - 18,18,18,18,19,19,170,170,171,171, - 172,138,138,139,139,136,136,140,137,137, - 20,20,21,21,23,23,23,24,24,24, - 24,25,25,25,26,26,26,27,27,27, - 27,27,28,28,28,29,29,31,31,33, - 33,35,35,36,36,37,37,42,42,41, - 41,41,41,41,41,41,41,41,41,41, - 41,41,39,30,141,141,95,95,173,173, - 90,196,196,66,66,66,66,66,66,66, - 66,66,67,67,67,64,64,55,55,174, - 174,68,68,68,101,101,175,175,69,69, - 69,176,176,70,70,70,70,70,71,71, - 82,82,82,82,82,82,82,49,49,49, - 49,49,114,114,115,115,50,177,22,22, - 22,22,22,48,48,85,85,85,85,85, - 148,148,143,143,143,143,143,144,144,144, - 145,145,145,146,146,146,147,147,147,86, - 86,86,86,86,87,87,87,13,13,13, - 13,13,13,13,13,13,13,13,96,119, - 119,119,119,119,119,117,117,117,118,118, - 150,150,149,149,121,121,102,77,77,78, - 79,52,47,151,151,53,51,84,84,152, - 152,142,142,104,104,73,73,153,153,61, - 61,56,56,154,62,62,74,74,59,59, - 59,88,88,98,97,97,60,60,57,57, - 54,54,45,99,99,99,91,91,91,92, - 92,93,93,93,94,94,105,105,105,107, - 107,106,106,197,197,89,89,179,179,179, - 179,179,123,46,46,156,178,178,124,124, - 124,124,125,158,180,180,34,34,116,126, - 126,126,126,108,108,120,120,120,159,160, - 160,160,160,160,160,160,160,160,160,160, - 183,183,181,181,182,182,161,161,161,161, - 162,184,110,109,109,185,185,163,163,163, - 163,100,100,100,186,186,8,8,9,187, - 187,188,164,155,155,165,165,166,167,167, - 7,7,10,189,189,189,189,189,189,189, + 17,135,135,135,114,114,18,18,18,18, + 18,18,18,18,18,18,18,18,18,19, + 19,170,170,171,171,172,138,138,139,139, + 136,136,140,137,137,20,20,21,21,23, + 23,23,24,24,24,24,25,25,25,26, + 26,26,27,27,27,27,27,28,28,28, + 29,29,31,31,33,33,35,35,36,36, + 37,37,42,42,41,41,41,41,41,41, + 41,41,41,41,41,41,41,39,30,141, + 141,95,95,173,173,90,194,194,66,66, + 66,66,66,66,66,66,66,67,67,67, + 64,64,55,55,174,174,68,68,68,101, + 101,175,175,69,69,69,176,176,70,70, + 70,70,70,71,71,82,82,82,82,82, + 82,82,82,49,49,49,49,49,115,115, + 113,113,50,177,22,22,22,22,22,48, + 48,85,85,85,85,85,148,148,143,143, + 143,143,143,144,144,144,145,145,145,146, + 146,146,147,147,147,86,86,86,86,86, + 87,87,87,13,13,13,13,13,13,13, + 13,13,13,13,96,119,119,119,119,119, + 119,117,117,117,118,118,150,150,149,149, + 121,121,102,77,77,78,79,52,47,151, + 151,53,51,84,84,152,152,142,142,104, + 104,73,73,153,153,61,61,56,56,154, + 62,62,74,74,59,59,59,88,88,98, + 97,97,60,60,57,57,54,54,45,99, + 99,99,91,91,91,92,92,93,93,93, + 94,94,105,105,105,107,107,106,106,195, + 195,89,89,179,179,179,179,179,123,46, + 46,156,178,178,124,124,124,124,125,158, + 180,180,34,34,116,126,126,126,126,108, + 108,120,120,120,159,160,160,160,160,160, + 160,160,160,160,160,160,183,183,181,181, + 182,182,161,161,161,161,162,184,110,109, + 109,185,185,163,163,163,163,100,100,100, + 186,186,8,8,9,187,187,188,164,155, + 155,165,165,166,167,167,7,7,10,189, 189,189,189,189,189,189,189,189,189,189, 189,189,189,189,189,189,189,189,189,189, 189,189,189,189,189,189,189,189,189,189, - 189,189,189,189,189,75,80,80,168,168, - 128,128,129,129,129,129,129,129,3,130, - 130,127,127,111,111,83,76,72,157,157, - 112,112,190,190,190,131,131,122,122,191, - 191,169,169,103,1132,41,1738,1731,733,3766, - 33,36,37,727,770,32,34,1730,31,29, - 56,1344,112,82,83,114,1213,1379,1412,1389, - 1465,1455,1480,1473,1895,1514,2051,1508,278,1516, - 1541,149,2041,41,296,164,150,1976,41,556, - 38,1656,4431,33,36,37,727,770,65,34, - 2334,41,556,38,237,3287,33,36,37,727, - 770,32,34,1342,31,29,56,1344,112,82, - 83,114,2146,1379,1412,1389,1465,1455,1817,240, - 235,236,156,858,809,40,2334,41,556,38, - 279,3287,33,36,37,727,770,32,34,1342, - 31,29,56,1344,112,82,83,114,1720,1766, - 247,250,253,256,2874,325,2453,41,556,38, - 1388,3770,33,36,37,727,770,63,34,156, - 1953,331,41,284,2060,1559,3534,2569,2709,2727, - 3140,3310,4410,1590,41,556,38,2672,3287,33, - 36,37,727,770,32,34,1342,31,29,56, - 1344,112,82,83,114,342,1379,1412,1389,1465, - 1455,1480,1473,37,1514,2599,1508,683,1516,1541, - 149,2915,41,282,513,150,1344,1312,2064,494, - 1508,1256,156,41,1850,1807,3156,514,1590,41, - 556,38,2672,3287,33,36,37,727,770,32, - 34,1342,31,29,56,1344,112,82,83,114, - 342,1379,1412,1389,1465,1455,1480,1473,2668,1514, - 1478,1508,4285,1516,1541,149,331,41,284,513, - 150,3841,1847,2064,3700,331,156,41,809,281, - 291,67,514,1202,509,2608,41,556,38,1168, - 3770,33,36,37,727,770,62,34,3874,1602, - 1594,45,853,1602,4510,1590,41,556,38,2672, - 3287,33,36,37,727,770,32,34,1342,31, - 29,56,1344,112,82,83,114,342,1379,1412, - 1389,1465,1455,1480,1473,2617,1514,381,1508,509, - 1516,1541,149,1197,2046,1720,513,150,1349,1256, - 2064,1871,1705,2022,811,1609,1915,3762,1602,514, - 1922,41,556,38,2672,3287,33,36,37,727, - 770,32,34,1342,31,29,56,1344,112,82, - 83,114,342,1379,1412,1389,1465,1455,1480,1473, - 37,1514,1639,1508,738,1516,1541,149,2069,853, - 1307,513,150,332,2705,2064,1227,156,41,1028, - 387,2858,41,393,514,76,509,156,41,287, - 66,2091,41,556,38,324,326,47,36,37, - 727,770,1652,156,4301,1602,1081,1859,41,556, - 38,427,3287,33,36,37,727,770,32,34, - 1342,31,29,56,1344,112,82,83,114,380, - 1379,1412,1389,1465,1455,1480,1473,1197,1514,1202, - 1508,510,1516,1541,149,1333,1467,1243,378,150, - 1659,41,556,38,2059,3287,33,36,37,727, - 770,32,34,1342,31,29,56,1344,112,82, - 83,114,941,1379,1412,1389,1465,1455,1480,1473, - 37,1514,77,1508,815,1516,1541,149,1655,2761, - 1243,378,150,1731,41,556,38,594,3287,33, - 36,37,727,770,32,34,1342,31,29,56, - 1344,112,82,83,114,1264,1379,1412,1389,1465, - 1455,1480,1473,2063,1514,2587,1508,3831,1516,1541, - 149,384,946,1243,378,150,2149,41,556,38, - 1847,3287,33,36,37,727,770,32,34,1342, - 31,29,56,1344,112,82,83,114,439,1379, - 1412,1389,1465,1455,1480,1473,1140,1514,2649,1508, - 1720,1516,1541,149,385,946,1847,164,150,156, - 41,1028,387,2334,41,556,38,799,3287,33, - 36,37,727,770,32,34,1342,31,29,56, - 1344,112,82,83,114,388,1379,1412,1389,1465, - 1455,1480,1473,430,1514,2685,1859,376,946,2149, - 41,556,38,314,3287,33,36,37,727,770, - 32,34,1342,31,29,56,1344,112,82,83, - 114,288,1379,1412,1389,1465,1455,1480,1473,37, - 1514,456,1508,2610,1516,1541,149,156,41,1989, - 372,150,2541,41,556,38,434,2745,46,36, - 37,727,770,2149,41,556,38,1559,3287,33, - 36,37,727,770,32,34,1342,31,29,56, - 1344,112,82,83,114,99,1379,1412,1389,1465, - 1455,1480,1473,37,1514,1720,1508,782,1516,1541, - 149,156,3043,75,372,150,156,41,1028,387, - 2149,41,556,38,45,3287,33,36,37,727, - 770,32,34,1342,31,29,56,1344,112,82, - 83,114,371,1379,1412,1389,1465,1455,1480,1473, - 55,1514,2857,1508,1081,1516,1541,149,75,1012, - 1557,372,150,2241,1987,41,556,38,1598,3287, - 33,36,37,727,770,32,34,1342,31,29, - 56,1344,112,82,83,114,455,1379,1412,1389, - 1465,1455,1480,1473,2690,1514,370,1508,1519,1516, - 1551,170,768,3496,2850,1794,41,556,38,3889, - 3287,33,36,37,727,770,32,34,1342,31, - 29,56,1344,112,82,83,114,2673,1379,1412, - 1389,1465,1455,1480,1473,355,1514,352,1508,417, - 1516,1541,149,368,527,327,148,150,1081,1492, - 2149,41,556,38,855,3287,33,36,37,727, - 770,32,34,1342,31,29,56,1344,112,82, - 83,114,1712,1379,1412,1389,1465,1455,1480,1473, - 354,1514,379,1508,1903,1516,1541,149,1506,527, - 1202,161,150,2149,41,556,38,1598,3287,33, - 36,37,727,770,32,34,1342,31,29,56, - 1344,112,82,83,114,2752,1379,1412,1389,1465, - 1455,1480,1473,4264,1514,504,1508,37,1516,1541, - 149,947,443,321,160,150,2149,41,556,38, - 408,3287,33,36,37,727,770,32,34,1342, - 31,29,56,1344,112,82,83,114,353,1379, - 1412,1389,1465,1455,1480,1473,37,1514,1473,1508, - 4414,1516,1541,149,930,2705,60,159,150,2149, - 41,556,38,2434,3287,33,36,37,727,770, - 32,34,1342,31,29,56,1344,112,82,83, - 114,1319,1379,1412,1389,1465,1455,1480,1473,37, - 1514,1373,1508,2482,1516,1541,149,1113,2992,1850, - 158,150,2149,41,556,38,2434,3287,33,36, - 37,727,770,32,34,1342,31,29,56,1344, - 112,82,83,114,1468,1379,1412,1389,1465,1455, - 1480,1473,4424,1514,1270,1508,1771,1516,1541,149, - 2572,443,2053,157,150,2149,41,556,38,1404, - 3287,33,36,37,727,770,32,34,1342,31, - 29,56,1344,112,82,83,114,519,1379,1412, - 1389,1465,1455,1480,1473,518,1514,1626,1508,37, - 1516,1541,149,3513,1720,1301,156,150,2149,41, - 556,38,2039,3287,33,36,37,727,770,32, - 34,1342,31,29,56,1344,112,82,83,114, - 519,1379,1412,1389,1465,1455,1480,1473,518,1514, - 1515,1508,37,1516,1541,149,2929,1720,1913,155, - 150,2149,41,556,38,2070,3287,33,36,37, - 727,770,32,34,1342,31,29,56,1344,112, - 82,83,114,2089,1379,1412,1389,1465,1455,1480, - 1473,2185,1514,1558,1508,4141,1516,1541,149,2278, - 2073,2574,154,150,2149,41,556,38,2514,3287, - 33,36,37,727,770,32,34,1342,31,29, - 56,1344,112,82,83,114,2708,1379,1412,1389, - 1465,1455,1480,1473,2791,1514,591,1508,57,1516, - 1541,149,765,852,939,153,150,2149,41,556, - 38,1026,3287,33,36,37,727,770,32,34, - 1342,31,29,56,1344,112,82,83,114,1845, - 1379,1412,1389,1465,1455,1480,1473,37,1514,2483, - 1508,2867,1516,1541,149,1511,1729,669,152,150, - 2149,41,556,38,2784,3287,33,36,37,727, - 770,32,34,1342,31,29,56,1344,112,82, - 83,114,2786,1379,1412,1389,1465,1455,1480,1473, - 2863,1514,1017,1508,3103,1516,1541,149,1634,2324, - 770,151,150,2149,41,556,38,147,3287,33, - 36,37,727,770,32,34,1342,31,29,56, - 1344,112,82,83,114,2388,1379,1412,1389,1465, - 1455,1480,1473,37,1514,2456,1508,4165,1516,1541, - 149,2495,2589,1318,165,150,2149,41,556,38, - 2908,3287,33,36,37,727,770,32,34,1342, - 31,29,56,1344,112,82,83,114,2954,1379, - 1412,1389,1465,1455,1480,1473,37,1514,2203,1508, - 3188,1516,1541,149,2858,41,393,146,150,2242, - 41,556,38,2370,3287,33,36,37,727,770, - 32,34,1342,31,29,56,1344,112,82,83, - 114,2869,1379,1412,1389,1465,1455,1480,1473,37, - 1514,2161,1508,2148,1516,1541,149,2686,2027,2933, - 195,150,2334,41,556,38,1392,3287,33,36, - 37,727,770,32,34,1342,31,29,56,1344, - 112,82,83,114,2392,1379,1412,1389,1465,1455, - 1480,1473,1081,1514,2189,1508,401,1516,1551,170, - 2334,41,556,38,1202,3287,33,36,37,727, - 770,32,34,1342,31,29,56,1344,112,82, - 83,114,2763,1379,1412,1389,1465,1455,1480,1473, - 1081,1514,1893,1508,1649,1516,1551,170,3630,156, - 41,809,1987,2429,156,41,1028,387,2334,41, - 556,38,295,3287,33,36,37,727,770,32, - 34,1342,31,29,56,1344,112,82,83,114, - 3230,1379,1412,1389,1465,1455,1480,1473,429,1514, - 2918,1508,417,1516,1551,170,2334,41,556,38, - 419,3287,33,36,37,727,770,32,34,1342, - 31,29,56,1344,112,82,83,114,351,1379, - 1412,1389,1465,1455,1480,1473,37,1514,2557,1508, - 3576,1516,1551,170,1188,343,1424,1303,348,156, - 41,809,286,341,2334,41,556,38,2797,3287, - 33,36,37,727,770,32,34,1342,31,29, - 56,1344,112,82,83,114,493,1379,1412,1389, - 1465,1455,1480,1473,37,1514,1714,1508,1076,1516, - 1551,170,2380,41,556,38,418,3287,33,36, - 37,727,770,32,34,1342,31,29,56,1344, - 112,82,83,114,2852,1379,1412,1389,1465,1455, - 1480,1473,1958,1514,399,1508,1308,1516,1551,170, - 156,41,809,283,2669,1847,156,41,1028,387, - 2334,41,556,38,421,3287,33,36,37,727, - 770,32,34,1342,31,29,56,1344,112,82, - 83,114,2935,1379,1412,1389,1465,1455,1480,1473, - 278,1514,403,1508,3579,1867,1188,2410,2334,41, - 556,38,3018,3287,33,36,37,727,770,32, - 34,1342,31,29,56,1344,112,82,83,114, - 289,1379,1412,1389,1465,1455,1480,1473,322,1852, - 2334,41,556,38,2647,3287,33,36,37,727, - 770,32,34,1342,31,29,56,1344,112,82, - 83,114,339,1379,1412,1389,1465,1455,1480,1858, - 2334,41,556,38,1848,3287,33,36,37,727, - 770,32,34,1342,31,29,56,1344,112,82, - 83,114,1847,1379,1412,1389,1465,1824,2334,41, - 556,38,2913,3287,33,36,37,727,770,32, - 34,1342,31,29,56,1344,112,82,83,114, - 2937,1379,1412,1389,1465,1842,2334,41,556,38, - 2767,3287,33,36,37,727,770,32,34,1342, - 31,29,56,1344,112,82,83,114,1720,1379, - 1412,1389,1774,2334,41,556,38,300,3287,33, - 36,37,727,770,32,34,1342,31,29,56, - 1344,112,82,83,114,2953,1379,1412,1389,1781, - 2334,41,556,38,2682,3287,33,36,37,727, - 770,32,34,1342,31,29,56,1344,112,82, - 83,114,1031,1379,1412,1389,1799,2334,41,556, - 38,2511,3287,33,36,37,727,770,32,34, - 1342,31,29,56,1344,112,82,83,114,103, - 1379,1412,1389,1809,1484,41,556,38,4678,2722, - 33,36,37,727,770,338,34,1202,1513,41, - 556,38,3280,2722,33,36,37,727,770,338, - 34,2463,41,556,38,75,4431,33,36,37, - 727,770,32,34,2635,507,1976,41,556,38, - 350,4431,33,36,37,727,770,64,34,2062, - 581,321,1031,2031,2282,315,861,2672,156,41, - 1028,387,244,1651,581,321,2559,2400,351,315, - 861,389,423,262,2378,342,1703,534,2672,1519, - 1076,2286,351,1847,4618,343,1424,1303,348,1830, - 1195,1081,428,2382,4624,233,2514,2964,910,343, - 1424,1303,348,162,48,1688,166,3139,1331,237, - 37,186,4169,2690,3134,156,41,1028,387,209, - 220,4639,208,217,218,219,221,1519,175,1, - 2965,2690,4663,534,245,235,236,174,2207,189, - 173,176,177,178,179,180,521,323,299,55, - 2825,233,2426,41,1028,387,527,3038,52,162, - 2720,390,423,360,2866,242,2955,186,4169,2690, - 2716,2928,1571,365,2593,209,220,4639,208,217, - 218,219,221,2959,175,1344,278,328,334,2710, - 1256,2725,350,174,187,190,173,176,177,178, - 179,180,243,41,1028,387,2966,2849,2334,41, - 556,38,237,3287,33,36,37,727,770,32, - 34,1342,31,29,56,1344,112,82,83,114, - 2746,1379,1412,1815,351,188,55,240,235,236, - 438,2971,452,2972,331,1012,730,2649,279,237, - 1259,343,1424,1303,348,2541,41,556,38,3139, - 2246,2244,36,37,727,770,1847,237,247,250, - 253,256,2874,854,249,235,236,1720,1388,1545, - 41,556,38,726,3092,33,36,37,727,770, - 338,34,252,235,236,2569,2709,2727,3140,3310, - 4410,2334,41,556,38,1195,3287,33,36,37, - 727,770,32,34,1342,31,29,56,1344,112, - 82,83,114,349,1379,1412,1816,534,331,41, - 449,307,1188,4698,1188,581,321,1519,331,37, - 315,861,4669,3228,1519,233,1636,1031,1188,4714, - 2672,1256,985,162,1190,41,1637,1596,104,3146, - 2973,186,4169,2690,377,2825,4119,4576,2514,209, - 220,4639,208,217,218,219,221,436,175,1227, - 30,534,309,533,2712,2974,1188,174,55,3033, - 173,176,177,178,179,180,88,1012,732,233, - 1354,2599,333,334,2672,331,1188,162,1188,1195, - 2041,2686,296,2975,1302,186,4169,2690,75,4425, - 2977,3500,2514,209,220,4639,208,217,218,219, - 221,2750,175,523,3030,359,2981,534,74,2983, - 59,174,2775,184,173,176,177,178,179,180, - 2146,3281,1996,2014,1998,233,392,423,2541,41, - 556,38,1549,162,2998,36,37,727,770,2825, - 2985,186,4169,2690,156,41,1028,387,2669,209, - 220,4639,208,217,218,219,221,610,175,501, - 175,534,2867,442,2711,2726,1076,174,2979,182, - 173,176,177,178,179,180,330,334,278,233, - 1840,1188,2060,1650,2609,1256,302,162,243,41, - 1028,387,162,2987,2989,186,4169,2690,498,500, - 206,4302,2990,209,220,4639,208,217,218,219, - 221,697,175,93,2991,534,2798,41,809,281, - 2994,174,55,183,173,176,177,178,179,180, - 1526,1012,1645,233,156,41,1028,387,2692,332, - 280,162,243,41,1028,387,2994,426,37,186, - 4169,2690,2672,1031,351,5355,1188,209,220,4639, - 208,217,218,219,221,784,175,5355,448,534, - 342,345,1424,1303,348,174,55,193,173,176, - 177,178,179,180,1195,1012,1367,233,58,1188, - 2874,5355,1188,2064,5355,162,678,41,1028,387, - 2246,5355,1695,186,4169,2690,2342,156,41,296, - 2672,209,220,4639,208,217,218,219,221,871, - 175,349,37,534,96,5355,1076,5355,342,174, - 55,3080,173,176,177,178,179,180,1260,1012, - 53,233,2672,5355,2825,69,41,1028,387,162, - 237,1063,162,5355,3510,5355,5355,186,4169,2690, - 2514,1687,391,423,5355,209,220,4639,208,217, - 218,219,221,5355,175,255,235,236,2557,278, - 37,3818,334,174,3646,198,173,176,177,178, - 179,180,1907,41,556,38,4678,2722,33,36, - 37,727,770,338,34,2334,41,556,38,4290, - 3287,33,36,37,727,770,32,34,1342,31, - 29,56,1344,112,82,83,114,359,1379,1756, - 1636,1188,37,5355,2672,1256,1076,1790,41,1028, - 387,2024,1354,3394,1996,2014,2672,37,581,321, - 1188,2672,2514,315,861,37,5355,958,78,2920, - 2894,534,3142,2630,2514,522,351,1188,37,342, - 1703,55,2672,1519,1076,5355,5355,1979,4733,233, - 1012,916,2859,343,1424,1303,348,162,1302,331, - 342,523,2064,4425,37,186,4169,2690,2672,73, - 166,1713,1188,209,220,4639,208,217,218,219, - 221,1045,175,2064,3637,534,342,2410,3583,359, - 237,174,1721,192,173,176,177,178,179,180, - 5355,501,5355,233,72,3281,1996,2014,5355,2064, - 1188,162,1188,2821,1188,258,235,236,1729,186, - 4169,2690,156,2455,809,80,5355,209,220,4639, - 208,217,218,219,221,3106,175,156,41,296, - 499,500,71,5355,70,174,3794,200,173,176, - 177,178,179,180,2334,41,556,38,2609,3287, - 33,36,37,727,770,32,34,1342,31,29, - 56,1344,112,82,83,114,2635,1379,1764,1380, - 41,2583,38,726,3092,33,36,37,727,770, - 338,34,2334,41,556,38,1188,3287,33,36, - 37,727,770,32,34,1342,31,29,56,1344, - 112,82,83,114,5355,1772,156,41,1028,387, - 2669,425,5355,2867,418,41,449,534,61,4698, - 2747,41,285,2134,1953,581,321,5355,331,4313, - 315,861,5355,2324,37,4171,50,1688,1437,5355, - 55,5355,1928,162,156,41,1028,387,226,1012, - 845,186,4169,2334,41,556,38,4576,3287,33, - 36,37,727,770,32,34,1342,31,29,56, - 1344,112,82,83,114,1188,1773,201,55,2747, - 41,282,5355,2159,5355,5355,2594,1012,3569,2960, - 2672,5355,5355,1365,41,556,38,5355,3092,33, - 36,37,727,770,338,34,5355,60,233,2288, - 41,556,38,5355,3287,33,36,37,727,770, - 32,34,1342,31,29,56,1344,92,82,83, - 414,2586,211,220,4639,210,217,218,219,221, - 1344,5355,2240,5355,290,1256,5355,2960,5355,581, - 321,2196,332,2883,316,861,2695,1076,5355,1188, - 2672,212,214,216,297,298,1938,351,222,213, - 215,2732,1116,1981,5355,2672,5355,5355,233,446, - 2711,2726,5355,162,345,1424,1303,348,5355,4725, - 202,107,168,233,2798,41,809,2574,1188,331, - 4183,2372,211,220,4639,210,217,218,219,221, - 156,41,809,2617,2858,41,393,211,220,4639, - 210,217,218,219,221,5355,94,5355,3030,108, - 3887,212,214,216,297,298,1938,37,222,213, - 215,4718,5355,5355,5355,5355,212,214,216,297, - 298,1938,5355,222,213,215,1778,41,556,38, - 726,2722,33,36,37,727,770,338,34,5355, - 4183,2603,243,41,1028,387,2527,41,1028,387, - 678,41,1028,387,95,4183,2786,108,1228,41, - 556,38,726,2722,33,36,37,727,770,338, - 34,37,5355,37,37,1076,55,534,4184,5355, - 55,1188,581,321,55,1012,53,315,861,1012, - 1971,5355,3070,1012,2464,342,4466,5355,37,985, - 927,162,1253,162,2994,37,5355,5355,3195,1298, - 1860,1344,2868,3848,581,321,1256,1081,2064,315, - 861,156,41,1028,387,5355,5355,2854,2669,309, - 533,985,2334,41,556,38,5355,3287,33,36, - 37,727,770,32,34,1342,31,29,56,1344, - 112,82,83,91,37,55,37,2690,3661,37, - 4435,531,533,1523,1012,721,306,37,4487,37, - 4311,4702,520,1566,2334,858,556,1584,2750,3287, - 33,36,37,727,770,32,34,1342,31,29, - 56,1344,112,82,83,90,2334,41,556,38, - 5355,3287,33,36,37,727,770,32,34,1342, - 31,29,56,1344,112,82,83,89,37,5355, - 5355,5355,2545,2334,41,556,38,538,3287,33, - 36,37,727,770,32,34,1342,31,29,56, - 1344,112,82,83,88,2334,41,556,38,100, - 3287,33,36,37,727,770,32,34,1342,31, - 29,56,1344,112,82,83,87,2334,41,556, - 38,5355,3287,33,36,37,727,770,32,34, - 1342,31,29,56,1344,112,82,83,86,2334, - 41,556,38,5355,3287,33,36,37,727,770, - 32,34,1342,31,29,56,1344,112,82,83, - 85,2334,41,556,38,5355,3287,33,36,37, - 727,770,32,34,1342,31,29,56,1344,112, - 82,83,84,2195,41,556,38,5355,3287,33, - 36,37,727,770,32,34,1342,31,29,56, - 1344,112,82,83,110,2334,41,556,38,5355, - 3287,33,36,37,727,770,32,34,1342,31, - 29,56,1344,112,82,83,116,2334,41,556, - 38,5355,3287,33,36,37,727,770,32,34, - 1342,31,29,56,1344,112,82,83,115,2334, - 41,556,38,5355,3287,33,36,37,727,770, - 32,34,1342,31,29,56,1344,112,82,83, - 113,2334,41,556,38,5355,3287,33,36,37, - 727,770,32,34,1342,31,29,56,1344,112, - 82,83,111,2769,37,2134,1953,2672,1076,2669, - 5355,37,1188,2634,2482,3746,2865,2672,37,5355, - 3242,5355,1076,2655,1195,233,5355,2672,37,5355, - 5355,5355,1076,5355,162,233,5355,5355,37,5355, - 5355,5355,1076,3317,447,233,525,185,162,211, - 220,4639,210,217,218,219,221,3352,162,211, - 220,4639,210,217,218,219,221,3390,162,211, - 220,4639,210,217,218,219,221,3392,212,214, - 216,297,298,1938,2825,516,213,215,212,214, - 216,297,298,1938,2669,515,213,215,212,214, - 216,297,298,1938,1081,223,213,215,1528,41, - 2583,38,726,2722,33,36,37,727,770,338, - 34,3825,334,2669,5355,2806,290,5355,1188,2672, - 2669,1188,204,5355,5355,5355,2832,5355,5355,5355, - 2672,2669,2669,5355,2690,37,5355,233,5355,2672, - 5355,2431,5355,2669,2245,1981,1256,2669,233,375, - 3061,203,1703,3115,581,321,1076,342,305,315, - 861,211,220,4639,210,217,218,219,221,207, - 205,1928,211,220,4639,210,217,218,219,221, - 2064,301,166,5355,5355,3643,5355,5355,5355,3300, - 212,214,216,297,298,1938,5355,308,213,215, - 4311,212,214,216,297,298,1938,1188,495,213, - 215,1409,41,556,38,726,2722,33,36,37, - 727,770,338,34,1409,41,556,38,726,2722, - 33,36,37,727,770,338,34,5355,1188,3169, - 2484,41,1028,387,1200,3038,1188,3476,2672,4784, - 373,1188,5355,243,1081,243,41,1028,387,415, - 2586,156,41,1028,387,2061,233,581,321,2672, - 2611,37,315,861,278,1076,5355,5355,3837,102, - 581,321,5355,4570,985,315,861,2514,5355,55, - 1988,404,4537,5355,2690,55,1188,2286,1012,53, - 237,162,5355,1703,1012,916,5355,1076,37,375, - 2428,5355,2672,917,310,533,5355,2669,5355,405, - 406,407,297,298,1938,241,235,236,3361,5355, - 342,1703,5355,166,1703,1076,279,5355,1076,5355, - 1394,41,556,38,1903,3092,33,36,37,727, - 770,338,34,2064,501,227,248,251,254,257, - 2874,166,505,5355,166,5355,1388,1496,41,556, - 38,3459,2722,33,36,37,727,770,338,34, - 1409,41,556,38,726,2722,33,36,37,727, - 770,338,34,498,500,5355,581,321,3565,332, - 2669,316,861,408,410,400,1394,41,556,38, - 3879,3092,33,36,37,727,770,338,34,5355, - 5355,5355,5355,2272,321,1080,3649,4609,5355,4172, - 5355,5355,5355,2974,5355,5355,581,321,199,1274, - 5355,315,861,2672,4784,5355,5355,5355,678,41, - 1028,387,5355,3064,243,41,1028,387,5355,5355, - 5355,233,581,321,5355,332,5355,318,861,1968, - 41,556,38,2799,2722,33,36,37,727,770, - 338,34,55,5355,5355,1988,404,4537,55,5355, - 5355,1012,53,243,41,1028,387,1012,53,243, - 41,1028,387,5355,5355,5355,2978,5355,1344,5355, - 5355,5355,1119,1256,405,406,407,297,298,1938, - 2232,317,5355,5355,5355,2272,321,55,243,41, - 1028,387,1195,55,5355,5355,1012,53,5355,1903, - 5355,5355,1012,53,2910,41,1028,387,1260,5355, - 5355,2074,2672,5355,5355,2950,5355,2578,5355,534, - 5355,5355,55,2930,41,1028,387,331,5355,5355, - 2514,1012,53,5355,5355,5355,5355,342,55,37, - 5355,5355,5355,534,5355,162,3084,1012,53,37, - 5355,2754,2825,534,194,2672,3583,55,408,411, - 4550,342,3157,5355,5355,5355,1012,53,5355,162, - 5355,342,5355,342,156,41,1028,387,2926,162, - 5355,3417,2232,317,2064,5355,5355,2719,2868,3938, - 334,2672,5355,2906,2064,5355,4176,359,37,5355, - 37,37,534,3031,534,534,5355,37,55,342, - 5355,2672,5355,3688,1996,2014,196,1012,2899,526, - 342,37,342,342,5355,1076,5355,5355,162,342, - 162,162,2064,5355,37,5355,5355,194,2672,194, - 194,529,5355,4550,5355,4550,4550,5355,5355,5355, - 5355,162,2064,5355,5355,5355,342,5355,5355,5355, - 4421,503,5355,5355,5355,5355,5355,5355,5355,5355, - 5355,5355,5355,5355,5355,5355,5355,5355,5355,2064, - 5355,5355,5355,5355,5355,5355,5355,5355,530,5355, - 4317,5355,5355,5355,5355,5355,5355,5355,5355,4288, - 5355,4291,4377,5355,5355,5355,5355,5355,5355,5355, - 5355,5355,5355,5355,5355,5355,5355,5355,5355,5355, - 5355,5355,5355,5355,5355,5355,5355,5355,5355,5355, - 5355,5355,5355,5355,5355,5355,5355,5355,5355,5355, - 5355,4416,5355,5355,5355,5355,5355,5355,5355,5355, - 5355,5355,5355,5355,5355,5355,5355,5355,5355,5355, - 5355,5355,5355,5355,5355,5355,5355,5355,5355,5355, - 5355,5355,5355,5355,5355,5355,5355,5355,4174,5355, - 0,45,5375,1,0,45,5374,1,0,931, - 1,0,713,35,0,436,900,0,450,1020, - 0,5375,54,0,5374,54,0,44,622,0, - 44,5375,0,44,5374,0,5367,382,0,5366, - 382,0,45,5375,0,45,5374,0,41,39, - 0,1,440,0,454,1110,0,453,1245,0, - 713,386,0,53,43,0,2460,132,0,1, - 1338,0,1,5632,0,1,5631,0,1,5630, - 0,1,5629,0,1,5628,0,1,5627,0, - 1,5626,0,1,5625,0,1,5624,0,1, - 5623,0,1,5622,0,5594,246,0,5593,246, - 0,5692,246,0,5691,246,0,5621,246,0, - 5620,246,0,5619,246,0,5618,246,0,5617, - 246,0,5616,246,0,5615,246,0,5614,246, - 0,5632,246,0,5631,246,0,5630,246,0, - 5629,246,0,5628,246,0,5627,246,0,5626, - 246,0,5625,246,0,5624,246,0,5623,246, - 0,5622,246,0,45,5375,246,0,45,5374, - 246,0,5399,246,0,49,5397,0,49,43, - 0,3282,97,0,38,40,0,45,622,0, - 5684,441,0,1189,441,0,5361,1,0,5360, - 1,0,242,2596,0,38,387,0,35,386, - 0,2460,134,0,2460,133,0,497,1910,0, - 5399,1,234,0,45,1,234,0,234,413, - 0,5375,43,0,5374,43,0,5397,51,0, - 43,51,0,5399,1,0,45,1,0,1, - 98,0,5365,402,0,5364,402,0,4394,1, - 0,2573,1,0,622,1,0,234,412,0, - 2354,382,0,5375,2,43,0,5374,2,43, - 0,5375,42,0,5374,42,0,1,5684,0, - 1,1189,0,8,12,0,5684,101,0,1189, - 101,0,41,79,0,497,4173,0,1,234, - 0,234,225,0,283,4322,0,234,224,0, - 1,921,0,1,1944,0,5367,1,0,5363, - 1,0,1,234,2905,0,5364,234,0,2916, - 234,0,3010,234,0,10,12,0,8,10, - 12,0,191,3307,0 + 189,189,189,189,189,189,189,189,189,189, + 189,75,80,80,168,168,128,128,129,129, + 129,129,129,129,3,130,130,127,127,111, + 111,83,76,72,157,157,112,112,190,190, + 190,131,131,122,122,191,191,169,169,103, + 1132,36,1734,1727,1346,3762,28,31,32,723, + 766,27,29,1726,26,24,51,1340,107,77, + 78,109,1844,1375,1408,1385,1461,1451,1504,1469, + 761,1512,1628,1510,274,1537,1547,144,2236,36, + 292,159,145,1718,36,552,33,1029,4427,28, + 31,32,723,766,60,29,3116,36,552,33, + 233,3283,28,31,32,723,766,27,29,1338, + 26,24,51,1340,107,77,78,109,2142,1375, + 1408,1385,1461,1451,1813,236,231,232,421,808, + 805,35,3116,36,552,33,275,3283,28,31, + 32,723,766,27,29,1338,26,24,51,1340, + 107,77,78,109,1022,1762,243,246,249,252, + 2870,321,1622,36,552,33,1384,3766,28,31, + 32,723,766,58,29,421,1949,244,36,280, + 2056,1555,3530,2592,2705,2723,3136,3139,4406,2280, + 36,552,33,2668,3283,28,31,32,723,766, + 27,29,1338,26,24,51,1340,107,77,78, + 109,338,1375,1408,1385,1461,1451,1504,1469,49, + 1512,2608,1510,679,1537,1547,144,2482,36,278, + 509,145,2102,1847,2060,490,1248,1252,421,36, + 1846,1803,3152,510,2280,36,552,33,2668,3283, + 28,31,32,723,766,27,29,1338,26,24, + 51,1340,107,77,78,109,338,1375,1408,1385, + 1461,1451,1504,1469,2191,1512,2021,1510,4281,1537, + 1547,144,244,36,280,509,145,3837,1496,2060, + 3626,327,421,36,805,277,287,62,510,1198, + 505,1710,36,552,33,1376,3766,28,31,32, + 723,766,57,29,3663,2104,1598,56,1344,1605, + 4506,2280,36,552,33,2668,3283,28,31,32, + 723,766,27,29,1338,26,24,51,1340,107, + 77,78,109,338,1375,1408,1385,1461,1451,1504, + 1469,2272,1512,377,1510,505,1537,1547,144,1193, + 1366,1022,509,145,1348,1252,2060,1187,2099,2018, + 807,1633,1652,3758,1605,510,2626,36,552,33, + 2668,3283,28,31,32,723,766,27,29,1338, + 26,24,51,1340,107,77,78,109,338,1375, + 1408,1385,1461,1451,1504,1469,49,1512,1635,1510, + 734,1537,1547,144,2065,70,1336,509,145,328, + 2701,2060,1932,421,36,1008,383,1548,36,389, + 510,2405,505,421,36,283,61,2061,36,552, + 33,320,322,42,31,32,723,766,1666,421, + 4202,1605,1343,2559,36,552,33,423,3283,28, + 31,32,723,766,27,29,1338,26,24,51, + 1340,107,77,78,109,376,1375,1408,1385,1461, + 1451,1504,1469,1193,1512,1198,1510,506,1537,1547, + 144,1726,1463,1239,374,145,2350,36,552,33, + 1378,3283,28,31,32,723,766,27,29,1338, + 26,24,51,1340,107,77,78,109,2457,1375, + 1408,1385,1461,1451,1504,1469,49,1512,1028,1510, + 811,1537,1547,144,2593,2757,1239,374,145,2423, + 36,552,33,515,3283,28,31,32,723,766, + 27,29,1338,26,24,51,1340,107,77,78, + 109,1260,1375,1408,1385,1461,1451,1504,1469,1884, + 1512,2599,1510,2876,1537,1547,144,380,942,1239, + 374,145,2868,36,552,33,1496,3283,28,31, + 32,723,766,27,29,1338,26,24,51,1340, + 107,77,78,109,435,1375,1408,1385,1461,1451, + 1504,1469,230,1512,71,1510,1022,1537,1547,144, + 381,942,1496,159,145,421,36,1008,383,3116, + 36,552,33,795,3283,28,31,32,723,766, + 27,29,1338,26,24,51,1340,107,77,78, + 109,384,1375,1408,1385,1461,1451,1504,1469,426, + 1512,2634,1855,372,942,2868,36,552,33,310, + 3283,28,31,32,723,766,27,29,1338,26, + 24,51,1340,107,77,78,109,284,1375,1408, + 1385,1461,1451,1504,1469,49,1512,452,1510,2565, + 1537,1547,144,421,36,1985,368,145,2070,36, + 552,33,430,2717,41,31,32,723,766,2868, + 36,552,33,1555,3283,28,31,32,723,766, + 27,29,1338,26,24,51,1340,107,77,78, + 109,94,1375,1408,1385,1461,1451,1504,1469,49, + 1512,1022,1510,778,1537,1547,144,421,3113,2555, + 368,145,421,36,1008,383,2868,36,552,33, + 56,3283,28,31,32,723,766,27,29,1338, + 26,24,51,1340,107,77,78,109,367,1375, + 1408,1385,1461,1451,1504,1469,50,1512,3319,1510, + 1343,1537,1547,144,2555,905,1554,368,145,1671, + 2695,36,552,33,2547,3283,28,31,32,723, + 766,27,29,1338,26,24,51,1340,107,77, + 78,109,451,1375,1408,1385,1461,1451,1504,1469, + 3301,1512,366,1510,157,1537,1553,165,1260,3492, + 2343,2490,36,552,33,3870,3283,28,31,32, + 723,766,27,29,1338,26,24,51,1340,107, + 77,78,109,1401,1375,1408,1385,1461,1451,1504, + 1469,351,1512,348,1510,505,1537,1547,144,364, + 523,323,143,145,1343,1157,2868,36,552,33, + 851,3283,28,31,32,723,766,27,29,1338, + 26,24,51,1340,107,77,78,109,65,1375, + 1408,1385,1461,1451,1504,1469,350,1512,375,1510, + 72,1537,1547,144,1502,523,1198,156,145,2868, + 36,552,33,2547,3283,28,31,32,723,766, + 27,29,1338,26,24,51,1340,107,77,78, + 109,2097,1375,1408,1385,1461,1451,1504,1469,3716, + 1512,769,1510,49,1537,1547,144,943,439,143, + 155,145,2868,36,552,33,1378,3283,28,31, + 32,723,766,27,29,1338,26,24,51,1340, + 107,77,78,109,349,1375,1408,1385,1461,1451, + 1504,1469,49,1512,1257,1510,4410,1537,1547,144, + 1430,2659,1272,154,145,2868,36,552,33,1410, + 3283,28,31,32,723,766,27,29,1338,26, + 24,51,1340,107,77,78,109,317,1375,1408, + 1385,1461,1451,1504,1469,49,1512,1400,1510,2478, + 1537,1547,144,1915,848,239,153,145,2868,36, + 552,33,1410,3283,28,31,32,723,766,27, + 29,1338,26,24,51,1340,107,77,78,109, + 1463,1375,1408,1385,1461,1451,1504,1469,4260,1512, + 72,1510,1755,1537,1547,144,2863,439,596,152, + 145,2868,36,552,33,413,3283,28,31,32, + 723,766,27,29,1338,26,24,51,1340,107, + 77,78,109,515,1375,1408,1385,1461,1451,1504, + 1469,514,1512,683,1510,49,1537,1547,144,3509, + 1022,2105,151,145,2868,36,552,33,2110,3283, + 28,31,32,723,766,27,29,1338,26,24, + 51,1340,107,77,78,109,944,1375,1408,1385, + 1461,1451,1504,1469,514,1512,921,1510,49,1537, + 1547,144,2606,1022,1896,150,145,2868,36,552, + 33,1919,3283,28,31,32,723,766,27,29, + 1338,26,24,51,1340,107,77,78,109,2240, + 1375,1408,1385,1461,1451,1504,1469,2245,1512,1511, + 1510,4137,1537,1547,144,2269,2078,3396,149,145, + 2868,36,552,33,3321,3283,28,31,32,723, + 766,27,29,1338,26,24,51,1340,107,77, + 78,109,326,1375,1408,1385,1461,1451,1504,1469, + 500,1512,853,1510,52,1537,1547,144,1027,1724, + 1398,148,145,2868,36,552,33,1620,3283,28, + 31,32,723,766,27,29,1338,26,24,51, + 1340,107,77,78,109,1815,1375,1408,1385,1461, + 1451,1504,1469,49,1512,1846,1510,3099,1537,1547, + 144,1230,1531,1894,147,145,2868,36,552,33, + 2666,3283,28,31,32,723,766,27,29,1338, + 26,24,51,1340,107,77,78,109,2674,1375, + 1408,1385,1461,1451,1504,1469,2720,1512,1812,1510, + 3571,1537,1547,144,578,1647,331,146,145,2868, + 36,552,33,491,3283,28,31,32,723,766, + 27,29,1338,26,24,51,1340,107,77,78, + 109,2177,1375,1408,1385,1461,1451,1504,1469,49, + 1512,2379,1510,3565,1537,1547,144,2411,2478,2480, + 160,145,2868,36,552,33,2724,3283,28,31, + 32,723,766,27,29,1338,26,24,51,1340, + 107,77,78,109,2522,1375,1408,1385,1461,1451, + 1504,1469,49,1512,2607,1510,3184,1537,1547,144, + 1548,36,389,141,145,2996,36,552,33,2267, + 3283,28,31,32,723,766,27,29,1338,26, + 24,51,1340,107,77,78,109,2450,1375,1408, + 1385,1461,1451,1504,1469,49,1512,674,1510,2144, + 1537,1547,144,2513,2156,2515,190,145,3116,36, + 552,33,1286,3283,28,31,32,723,766,27, + 29,1338,26,24,51,1340,107,77,78,109, + 935,1375,1408,1385,1461,1451,1504,1469,1343,1512, + 1975,1510,397,1537,1553,165,3116,36,552,33, + 1198,3283,28,31,32,723,766,27,29,1338, + 26,24,51,1340,107,77,78,109,2759,1375, + 1408,1385,1461,1451,1504,1469,1343,1512,1889,1510, + 2179,1537,1553,165,3304,421,36,805,1983,2417, + 421,36,1008,383,3116,36,552,33,291,3283, + 28,31,32,723,766,27,29,1338,26,24, + 51,1340,107,77,78,109,2952,1375,1408,1385, + 1461,1451,1504,1469,425,1512,2725,1510,413,1537, + 1553,165,3116,36,552,33,415,3283,28,31, + 32,723,766,27,29,1338,26,24,51,1340, + 107,77,78,109,347,1375,1408,1385,1461,1451, + 1504,1469,49,1512,2183,1510,3572,1537,1553,165, + 1357,339,1420,1299,344,421,36,805,282,337, + 3116,36,552,33,2793,3283,28,31,32,723, + 766,27,29,1338,26,24,51,1340,107,77, + 78,109,489,1375,1408,1385,1461,1451,1504,1469, + 49,1512,2446,1510,1072,1537,1553,165,3173,36, + 552,33,414,3283,28,31,32,723,766,27, + 29,1338,26,24,51,1340,107,77,78,109, + 2575,1375,1408,1385,1461,1451,1504,1469,1264,1512, + 395,1510,1304,1537,1553,165,421,36,805,279, + 2246,1496,421,36,1008,383,3116,36,552,33, + 417,3283,28,31,32,723,766,27,29,1338, + 26,24,51,1340,107,77,78,109,2520,1375, + 1408,1385,1461,1451,1504,1469,274,1512,399,1510, + 2782,1863,1357,2406,3116,36,552,33,3094,3283, + 28,31,32,723,766,27,29,1338,26,24, + 51,1340,107,77,78,109,285,1375,1408,1385, + 1461,1451,1504,1469,318,1848,3116,36,552,33, + 1109,3283,28,31,32,723,766,27,29,1338, + 26,24,51,1340,107,77,78,109,335,1375, + 1408,1385,1461,1451,1504,1854,3116,36,552,33, + 2167,3283,28,31,32,723,766,27,29,1338, + 26,24,51,1340,107,77,78,109,1496,1375, + 1408,1385,1461,1820,3116,36,552,33,2418,3283, + 28,31,32,723,766,27,29,1338,26,24, + 51,1340,107,77,78,109,2514,1375,1408,1385, + 1461,1838,3116,36,552,33,2277,3283,28,31, + 32,723,766,27,29,1338,26,24,51,1340, + 107,77,78,109,2726,1375,1408,1385,1770,3116, + 36,552,33,296,3283,28,31,32,723,766, + 27,29,1338,26,24,51,1340,107,77,78, + 109,2306,1375,1408,1385,1777,3116,36,552,33, + 2183,3283,28,31,32,723,766,27,29,1338, + 26,24,51,1340,107,77,78,109,2304,1375, + 1408,1385,1795,3116,36,552,33,2149,3283,28, + 31,32,723,766,27,29,1338,26,24,51, + 1340,107,77,78,109,1797,1375,1408,1385,1805, + 1419,36,552,33,3413,2718,28,31,32,723, + 766,334,29,1356,1749,36,552,33,3276,2718, + 28,31,32,723,766,334,29,1982,36,552, + 33,2549,4427,28,31,32,723,766,27,29, + 2631,503,1718,36,552,33,346,4427,28,31, + 32,723,766,59,29,832,577,317,1198,2750, + 49,311,857,2668,1072,1357,679,36,1008,383, + 577,317,2551,2396,347,311,857,385,419,262, + 832,338,3435,530,1357,2550,3561,2282,347,2406, + 3102,339,1420,1299,344,240,832,373,157,2378, + 274,229,2582,4614,906,339,1420,1299,344,157, + 43,1684,1357,3066,2614,2590,4115,181,3841,3301, + 2581,421,36,1008,383,204,216,4635,203,213, + 214,215,217,1481,170,1,1582,49,4620,530, + 2590,3093,233,169,25,184,168,171,172,173, + 174,175,324,330,2727,50,2590,229,3230,36, + 1008,383,2020,3034,47,157,2015,241,231,232, + 2862,238,49,181,3841,3301,2460,329,330,361, + 73,204,216,4635,203,213,214,215,217,2586, + 170,2102,274,326,330,1247,1252,2588,346,169, + 182,185,168,171,172,173,174,175,507,36, + 1008,383,2587,1261,3116,36,552,33,233,3283, + 28,31,32,723,766,27,29,1338,26,24, + 51,1340,107,77,78,109,157,1375,1408,1811, + 347,4659,50,236,231,232,434,2616,448,2684, + 327,905,726,2645,275,233,1022,339,1420,1299, + 344,2070,36,552,33,3066,2242,2240,31,32, + 723,766,2545,233,243,246,249,252,2870,850, + 245,231,232,1022,1384,1538,36,552,33,722, + 3088,28,31,32,723,766,334,29,248,231, + 232,2592,2705,2723,3136,3139,4406,3116,36,552, + 33,1357,3283,28,31,32,723,766,27,29, + 1338,26,24,51,1340,107,77,78,109,349, + 1375,1408,1812,530,244,36,445,98,1357,4694, + 1357,577,317,70,327,1832,311,857,1548,36, + 389,229,1916,2304,2649,2583,2668,1252,981,157, + 2194,36,1641,1592,99,3142,2102,181,3841,3301, + 69,1252,54,4572,2510,204,216,4635,203,213, + 214,215,217,436,170,2618,2590,530,305,529, + 2668,88,1357,169,50,3101,168,171,172,173, + 174,175,2687,905,728,229,2265,2555,2510,89, + 2668,327,103,157,421,36,1008,383,421,36, + 292,181,3841,3301,88,3827,2757,3189,2510,204, + 216,4635,203,213,214,215,217,2722,170,523, + 3026,355,49,530,1357,2763,3642,169,424,179, + 168,171,172,173,174,175,3147,3116,1992,2010, + 2764,229,386,419,2070,36,552,33,1545,157, + 3022,31,32,723,766,356,53,181,3841,3301, + 421,36,1008,383,1496,204,216,4635,203,213, + 214,215,217,610,170,497,2608,530,2303,438, + 2699,2707,1072,169,95,177,168,171,172,173, + 174,175,2246,2307,274,229,2010,766,36,445, + 4195,1252,4694,157,507,36,1008,383,157,319, + 2765,181,3841,3301,494,496,201,4250,523,204, + 216,4635,203,213,214,215,217,697,170,295, + 298,530,1231,36,805,277,1357,169,50,178, + 168,171,172,173,174,175,175,905,1648,229, + 421,36,1008,383,2646,328,276,157,507,36, + 1008,383,2990,832,2619,181,3841,3301,345,2304, + 347,2087,1357,204,216,4635,203,213,214,215, + 217,784,170,2728,444,530,1357,341,1420,1299, + 344,169,50,188,168,171,172,173,174,175, + 2020,905,1363,229,91,1357,1363,2789,1932,1632, + 2752,157,940,36,1008,383,2242,2758,2647,181, + 3841,3301,2154,2590,1496,2771,2668,204,216,4635, + 203,213,214,215,217,871,170,2682,49,530, + 1357,5314,1072,5314,338,169,50,3155,168,171, + 172,173,174,175,2447,905,48,229,2668,2246, + 3496,330,442,2699,2707,157,233,1059,157,233, + 3389,2771,68,181,3841,3301,2510,1683,388,419, + 5314,204,216,4635,203,213,214,215,217,303, + 170,251,231,232,254,231,232,222,5314,169, + 5314,193,168,171,172,173,174,175,2091,36, + 552,33,3413,2718,28,31,32,723,766,334, + 29,3116,36,552,33,1357,3283,28,31,32, + 723,766,27,29,1338,26,24,51,1340,107, + 77,78,109,355,1375,1752,1916,5314,49,5314, + 2668,1252,2916,2184,36,1008,383,67,2265,3316, + 1992,2010,2668,49,577,317,1357,2668,2510,311, + 857,2268,49,958,2102,2589,1433,530,5314,1252, + 2510,518,347,1357,2270,338,1357,50,2668,157, + 2236,2630,292,1975,4665,229,905,912,66,339, + 1420,1299,344,157,1901,327,338,519,2060,4421, + 49,181,3841,3301,2668,65,522,1691,3384,204, + 216,4635,203,213,214,215,217,1045,170,2060, + 2142,530,338,327,3579,355,183,169,525,187, + 168,171,172,173,174,175,49,497,5314,229, + 4714,3116,1992,2010,49,2060,5314,157,3728,2372, + 36,281,3026,5314,1709,181,3841,3301,421,2424, + 805,75,5314,204,216,4635,203,213,214,215, + 217,5314,170,2102,157,1901,495,496,1252,4710, + 4421,169,2056,195,168,171,172,173,174,175, + 3116,36,552,33,2643,3283,28,31,32,723, + 766,27,29,1338,26,24,51,1340,107,77, + 78,109,2155,1375,1760,1473,36,2523,33,722, + 3088,28,31,32,723,766,334,29,3116,36, + 552,33,327,3283,28,31,32,723,766,27, + 29,1338,26,24,51,1340,107,77,78,109, + 5314,1768,421,36,1008,383,49,421,49,2303, + 1249,3579,1294,530,1817,3844,5314,5314,1072,1114, + 1949,577,317,157,327,2643,311,857,4729,2320, + 5314,3885,1231,36,805,2451,50,5314,1924,157, + 421,36,1008,383,161,905,841,181,3841,3116, + 36,552,33,4572,3283,28,31,32,723,766, + 27,29,1338,26,24,51,1340,107,77,78, + 109,2545,1769,196,50,1114,1949,5314,2372,36, + 278,2304,1585,905,3568,5314,2668,5314,422,1834, + 36,552,33,5314,3088,28,31,32,723,766, + 334,29,5314,5314,229,3059,36,552,33,2850, + 3283,28,31,32,723,766,27,29,1338,26, + 24,51,1340,87,77,78,410,2541,206,216, + 4635,205,213,214,215,217,421,36,805,2582, + 286,2236,5314,1357,1357,577,317,2192,328,2445, + 312,857,1849,1072,1343,1357,2668,207,209,211, + 293,294,1934,347,218,208,210,1937,1112,1977, + 5314,2668,5314,49,229,56,55,3657,1357,157, + 341,1420,1299,344,5314,4721,197,102,163,229, + 387,419,5314,1343,3301,2368,286,4179,206,216, + 4635,205,213,214,215,217,5314,1357,90,517, + 3814,103,5314,206,216,4635,205,213,214,215, + 217,421,36,292,2241,1977,1343,207,209,211, + 293,294,1934,3301,218,208,210,49,832,3795, + 5314,4431,207,209,211,293,294,1934,516,218, + 208,210,1803,36,552,33,722,2718,28,31, + 32,723,766,334,29,2994,3301,4179,507,36, + 1008,383,2188,36,1008,383,940,36,1008,383, + 3154,371,4179,5314,1739,36,552,33,722,2718, + 28,31,32,723,766,334,29,1817,2590,49, + 49,1072,50,530,1519,2246,50,1357,577,317, + 50,905,48,311,857,905,1967,5314,5314,905, + 2505,338,4413,4286,49,981,923,161,4306,157, + 2990,5314,5314,5314,2576,3498,330,1972,2622,443, + 577,317,1252,302,2060,311,857,421,36,1008, + 383,2246,5314,2594,1993,305,529,981,3116,36, + 552,33,5314,3283,28,31,32,723,766,27, + 29,1338,26,24,51,1340,107,77,78,86, + 49,50,369,5314,1562,5314,521,527,529,180, + 905,717,2954,49,4311,49,3827,2917,5314,3742, + 3116,808,552,1580,2722,3283,28,31,32,723, + 766,27,29,1338,26,24,51,1340,107,77, + 78,85,3116,36,552,33,5314,3283,28,31, + 32,723,766,27,29,1338,26,24,51,1340, + 107,77,78,84,2413,5314,5314,5314,3238,3116, + 36,552,33,534,3283,28,31,32,723,766, + 27,29,1338,26,24,51,1340,107,77,78, + 83,3116,36,552,33,97,3283,28,31,32, + 723,766,27,29,1338,26,24,51,1340,107, + 77,78,82,3116,36,552,33,5314,3283,28, + 31,32,723,766,27,29,1338,26,24,51, + 1340,107,77,78,81,3116,36,552,33,5314, + 3283,28,31,32,723,766,27,29,1338,26, + 24,51,1340,107,77,78,80,3116,36,552, + 33,5314,3283,28,31,32,723,766,27,29, + 1338,26,24,51,1340,107,77,78,79,2931, + 36,552,33,5314,3283,28,31,32,723,766, + 27,29,1338,26,24,51,1340,107,77,78, + 105,3116,36,552,33,5314,3283,28,31,32, + 723,766,27,29,1338,26,24,51,1340,107, + 77,78,111,3116,36,552,33,5314,3283,28, + 31,32,723,766,27,29,1338,26,24,51, + 1340,107,77,78,110,3116,36,552,33,5314, + 3283,28,31,32,723,766,27,29,1338,26, + 24,51,1340,107,77,78,108,3116,36,552, + 33,5314,3283,28,31,32,723,766,27,29, + 1338,26,24,51,1340,107,77,78,106,2025, + 49,2408,2246,2668,1072,2246,1357,5314,5314,1673, + 5314,5314,5314,2668,49,5314,5314,5314,1072,1761, + 5314,229,5314,2668,49,5314,5314,5314,1072,5314, + 157,229,5314,5314,5314,2246,5314,5314,3057,1856, + 199,229,2246,198,157,206,216,4635,205,213, + 214,215,217,3170,157,206,216,4635,205,213, + 214,215,217,3255,2631,206,216,4635,205,213, + 214,215,217,301,207,209,211,293,294,1934, + 202,512,208,210,207,209,211,293,294,1934, + 2246,511,208,210,207,209,211,293,294,1934, + 1343,219,208,210,1926,36,2523,33,722,2718, + 28,31,32,723,766,334,29,5314,49,49, + 49,2113,1072,1072,1072,2668,2246,5314,200,5314, + 1357,5314,2201,5314,45,1684,2668,2246,5314,5314, + 3301,49,5314,229,1357,2668,832,5314,157,157, + 157,2246,2246,5314,229,371,1357,3296,3313,2766, + 577,317,3111,338,297,311,857,206,216,4635, + 205,213,214,215,217,3639,3165,1924,206,216, + 4635,205,213,214,215,217,2060,5314,3644,223, + 194,5314,5314,5314,5314,1717,207,209,211,293, + 294,1934,5314,304,208,210,2590,207,209,211, + 293,294,1934,1357,491,208,210,1490,36,552, + 33,722,2718,28,31,32,723,766,334,29, + 1490,36,552,33,722,2718,28,31,32,723, + 766,334,29,3883,330,3683,3280,36,1008,383, + 1195,3034,1357,1357,2668,4780,3790,5314,5314,239, + 5314,507,36,1008,383,411,2541,421,36,1008, + 383,2335,229,577,317,2668,5314,49,311,857, + 274,1072,5314,5314,4312,3357,577,317,5314,5314, + 981,311,857,2510,5314,50,1984,400,4533,5314, + 5314,50,5314,2282,905,48,233,157,5314,1817, + 905,912,5314,1072,49,5314,4412,5314,2668,913, + 306,529,5314,5314,5314,401,402,403,293,294, + 1934,237,231,232,5314,5314,338,1817,5314,161, + 1817,1072,275,5314,1072,5314,1519,36,552,33, + 1899,3088,28,31,32,723,766,334,29,2060, + 497,5314,244,247,250,253,2870,161,1725,5314, + 161,5314,1384,1237,36,552,33,3455,2718,28, + 31,32,723,766,334,29,1490,36,552,33, + 722,2718,28,31,32,723,766,334,29,494, + 496,5314,577,317,3633,328,5314,312,857,404, + 406,396,1519,36,552,33,5314,3088,28,31, + 32,723,766,334,29,5314,5314,5314,5314,2268, + 317,1076,3634,4605,1817,3645,5314,5314,1072,3023, + 5314,5314,577,317,5314,1301,5314,311,857,2668, + 4780,5314,5314,5314,940,36,1008,383,5314,3140, + 507,36,1008,383,161,5314,5314,229,577,317, + 5314,328,5314,314,857,1634,36,552,33,2795, + 2718,28,31,32,723,766,334,29,50,5314, + 5314,1984,400,4533,50,5314,5314,905,48,507, + 36,1008,383,905,48,507,36,1008,383,5314, + 5314,5314,2974,5314,5314,5314,5314,5314,1115,5314, + 401,402,403,293,294,1934,2228,313,5314,3797, + 5314,2268,317,50,507,36,1008,383,5314,50, + 5314,5314,905,48,5314,1899,5314,5314,905,48, + 1667,36,1008,383,2447,5314,5314,2070,2668,5314, + 5314,2390,5314,2924,5314,530,5314,5314,50,1829, + 36,1008,383,5314,5314,5314,2510,905,48,5314, + 5314,5314,5314,338,50,49,5314,5314,5314,530, + 5314,157,3080,905,48,49,5314,2685,5314,530, + 189,2668,5314,50,404,407,4546,338,2928,5314, + 5314,5314,905,48,5314,157,5314,338,5314,338, + 421,36,1008,383,2848,157,5314,3711,2228,313, + 2060,5314,5314,49,2622,5314,5314,2668,5314,2821, + 2060,5314,3934,355,49,5314,49,49,530,2902, + 530,530,5314,49,50,338,5314,2668,5314,3668, + 1992,2010,191,905,3138,5314,338,5314,338,338, + 5314,5314,5314,5314,157,338,157,157,2060,5314, + 49,5314,5314,189,2668,189,189,3135,5314,4546, + 49,4546,4546,5314,2668,5314,5314,5314,2060,5314, + 5314,5314,338,5314,5314,5314,5314,501,5314,5314, + 5314,5314,338,5314,5314,5314,5314,5314,5314,5314, + 5314,5314,5314,5314,5314,2060,5314,5314,5314,5314, + 5314,5314,5314,5314,499,2060,4297,5314,5314,5314, + 5314,5314,5314,5314,526,4166,5314,4290,4304,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,5314,5314, + 5314,5314,5314,5314,5314,5314,5314,4373,5314,0, + 40,5329,1,0,40,5328,1,0,927,1, + 0,709,30,0,432,896,0,446,1016,0, + 5329,49,0,5328,49,0,39,618,0,39, + 5329,0,39,5328,0,5326,378,0,5325,378, + 0,40,5329,0,40,5328,0,36,34,0, + 1,436,0,450,1106,0,449,1241,0,709, + 382,0,48,38,0,2456,127,0,1,1334, + 0,1,5587,0,1,5586,0,1,5585,0, + 1,5584,0,1,5583,0,1,5582,0,1, + 5581,0,1,5580,0,1,5579,0,1,5578, + 0,1,5577,0,5549,242,0,5548,242,0, + 5647,242,0,5646,242,0,5576,242,0,5575, + 242,0,5574,242,0,5573,242,0,5572,242, + 0,5571,242,0,5570,242,0,5569,242,0, + 5587,242,0,5586,242,0,5585,242,0,5584, + 242,0,5583,242,0,5582,242,0,5581,242, + 0,5580,242,0,5579,242,0,5578,242,0, + 5577,242,0,40,5329,242,0,40,5328,242, + 0,5353,242,0,44,5351,0,44,38,0, + 2570,92,0,33,35,0,40,618,0,5639, + 437,0,1185,437,0,5320,1,0,5319,1, + 0,238,3504,0,33,383,0,30,382,0, + 2456,129,0,2456,128,0,493,1906,0,5353, + 1,230,0,40,1,230,0,230,409,0, + 5329,38,0,5328,38,0,5351,46,0,38, + 46,0,5353,1,0,40,1,0,1,93, + 0,5324,398,0,5323,398,0,4390,1,0, + 2569,1,0,618,1,0,230,408,0,2350, + 378,0,5329,2,38,0,5328,2,38,0, + 5329,37,0,5328,37,0,1,5639,0,1, + 1185,0,8,12,0,5639,96,0,1185,96, + 0,36,74,0,493,4169,0,1,230,0, + 230,221,0,279,4469,0,230,220,0,1, + 917,0,1,1940,0,5326,1,0,5322,1, + 0,1,230,2895,0,5323,230,0,2901,230, + 0,3076,230,0,10,12,0,8,10,12, + 0,186,3303,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1093,316 +1085,359 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars 0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,28,29, - 30,31,32,33,34,35,0,37,38,39, - 40,41,42,43,0,45,46,47,48,49, - 50,51,52,53,54,55,56,57,58,0, - 60,61,62,63,64,65,66,67,0,1, - 2,71,72,5,0,75,76,77,78,79, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,43,44,45,46,47,0,49, + 50,51,52,53,54,0,56,57,58,59, + 60,61,62,63,0,65,66,67,68,0, + 6,0,72,4,3,75,76,77,78,79, 80,81,82,83,84,85,86,0,1,2, 3,4,5,6,7,8,9,10,11,12, 13,14,15,16,17,18,19,20,21,22, 23,24,25,26,27,28,29,30,31,32, - 33,34,35,0,37,38,39,40,41,42, - 43,57,45,46,47,48,49,50,51,52, - 53,54,55,56,57,58,0,60,61,62, - 63,64,65,66,67,0,1,2,71,72, - 101,0,75,76,77,78,79,80,81,82, + 33,34,35,36,37,38,39,40,41,42, + 43,44,45,46,47,64,49,50,51,52, + 53,54,0,56,57,58,59,60,61,62, + 63,9,65,66,67,68,0,93,94,72, + 4,0,75,76,77,78,79,80,81,82, 83,84,85,86,0,1,2,3,4,5, 6,7,8,9,10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25, 26,27,28,29,30,31,32,33,34,35, - 0,37,38,39,40,41,42,43,0,45, - 46,47,48,49,50,51,52,53,54,55, - 56,57,58,0,60,61,62,63,64,65, - 66,67,0,1,2,71,72,101,0,75, + 36,37,38,39,40,41,42,43,44,45, + 46,47,0,49,50,51,52,53,54,0, + 56,57,58,59,60,61,62,63,0,65, + 66,67,68,0,1,2,72,4,0,75, 76,77,78,79,80,81,82,83,84,85, 86,0,1,2,3,4,5,6,7,8, 9,10,11,12,13,14,15,16,17,18, 19,20,21,22,23,24,25,26,27,28, - 29,30,31,32,33,34,35,0,37,38, - 39,40,41,42,43,0,45,46,47,48, - 49,50,51,52,53,54,55,56,57,58, - 0,60,61,62,63,64,65,66,67,9, - 0,1,2,72,4,0,75,76,77,78, + 29,30,31,32,33,34,35,36,37,38, + 39,40,41,42,43,44,45,46,47,71, + 49,50,51,52,53,54,0,56,57,58, + 59,60,61,62,63,0,65,66,67,68, + 0,6,103,104,105,0,75,76,77,78, 79,80,81,82,83,84,85,86,0,1, 2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19,20,21, 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,0,37,38,39,40,41, - 42,43,0,45,46,47,48,49,50,51, - 52,53,54,55,56,57,58,0,60,61, - 62,63,64,65,66,67,0,0,1,2, - 72,4,0,75,76,77,78,79,80,81, + 32,33,34,35,36,37,38,39,40,41, + 42,43,44,45,46,47,0,49,50,51, + 52,53,54,73,56,57,58,59,60,61, + 62,63,0,65,66,67,68,101,93,94, + 0,1,2,75,76,77,78,79,80,81, 82,83,84,85,86,0,1,2,3,4, 5,6,7,8,9,10,11,12,13,14, 15,16,17,18,19,20,21,22,23,24, 25,26,27,28,29,30,31,32,33,34, - 35,0,37,38,39,40,41,42,43,0, - 45,46,47,48,49,50,51,52,53,54, - 55,56,57,58,0,60,61,62,63,64, - 65,66,67,0,97,98,90,72,92,0, + 35,36,37,38,39,40,41,42,43,44, + 45,46,47,71,49,50,51,52,53,54, + 0,56,57,58,59,60,61,62,63,0, + 65,66,67,68,0,6,0,1,2,0, 75,76,77,78,79,80,81,82,83,84, 85,86,0,1,2,3,4,5,6,7, 8,9,10,11,12,13,14,15,16,17, 18,19,20,21,22,23,24,25,26,27, - 28,29,30,31,32,33,34,35,0,37, - 38,39,40,41,42,43,0,45,46,47, - 48,49,50,51,52,53,54,55,56,57, - 58,0,60,61,62,63,64,65,66,67, - 0,88,89,0,72,0,3,75,76,77, + 28,29,30,31,32,33,34,35,36,37, + 38,39,40,41,42,43,44,45,46,47, + 0,49,50,51,52,53,54,0,56,57, + 58,59,60,61,62,63,9,65,66,67, + 68,101,93,94,90,0,92,75,76,77, 78,79,80,81,82,83,84,85,86,0, 1,2,3,4,5,6,7,8,9,10, 11,12,13,14,15,16,17,18,19,20, 21,22,23,24,25,26,27,28,29,30, - 31,32,33,34,35,0,37,38,39,40, - 41,42,43,0,45,46,47,48,49,50, - 51,52,53,54,55,56,57,58,0,60, - 61,62,63,64,65,66,67,0,1,2, - 90,72,92,0,75,76,77,78,79,80, + 31,32,33,34,35,36,37,38,39,40, + 41,42,43,44,45,46,47,0,49,50, + 51,52,53,54,69,56,57,58,59,60, + 61,62,63,0,65,66,67,68,0,1, + 2,0,0,5,75,76,77,78,79,80, 81,82,83,84,85,86,0,1,2,3, 4,5,6,7,8,9,10,11,12,13, 14,15,16,17,18,19,20,21,22,23, 24,25,26,27,28,29,30,31,32,33, - 34,35,0,37,38,39,40,41,42,43, - 0,45,46,47,48,49,50,51,52,53, - 54,55,56,57,58,0,60,61,62,63, - 64,65,66,67,0,97,98,0,72,0, - 3,75,76,77,78,79,80,81,82,83, + 34,35,36,37,38,39,40,41,42,43, + 44,45,46,47,71,49,50,51,52,53, + 54,69,56,57,58,59,60,61,62,63, + 0,65,66,67,68,0,1,2,0,4, + 10,75,76,77,78,79,80,81,82,83, 84,85,86,0,1,2,3,4,5,6, 7,8,9,10,11,12,13,14,15,16, 17,18,19,20,21,22,23,24,25,26, - 27,28,29,30,31,32,33,34,35,0, - 37,38,39,40,41,42,43,0,45,46, - 47,48,49,50,51,52,53,54,55,56, - 57,58,73,60,61,62,63,64,65,66, - 67,0,0,121,90,72,92,5,75,76, + 27,28,29,30,31,32,33,34,35,36, + 37,38,39,40,41,42,43,44,45,46, + 47,0,49,50,51,52,53,54,0,56, + 57,58,59,60,61,62,63,0,65,66, + 67,68,0,6,23,24,88,89,75,76, 77,78,79,80,81,82,83,84,85,86, 0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,28,29, - 30,31,32,33,34,35,0,37,38,39, - 40,41,42,43,0,45,46,47,48,49, - 50,51,52,53,54,55,56,57,58,0, - 60,61,62,63,64,65,66,67,0,0, - 0,90,72,92,4,75,76,77,78,79, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,43,44,45,46,47,0,49, + 50,51,52,53,54,0,56,57,58,59, + 60,61,62,63,0,65,66,67,68,0, + 1,2,90,0,92,75,76,77,78,79, 80,81,82,83,84,85,86,0,1,2, 3,4,5,6,7,8,9,10,11,12, 13,14,15,16,17,18,19,20,21,22, 23,24,25,26,27,28,29,30,31,32, - 33,34,35,0,37,38,39,40,41,42, - 43,0,45,46,47,48,49,50,51,52, - 53,54,55,56,57,58,0,60,61,62, - 63,64,65,66,67,0,88,89,99,72, - 0,0,75,76,77,78,79,80,81,82, + 33,34,35,36,37,38,39,40,41,42, + 43,44,45,46,47,71,49,50,51,52, + 53,54,69,56,57,58,59,60,61,62, + 63,0,65,66,67,68,0,0,0,8, + 3,0,75,76,77,78,79,80,81,82, 83,84,85,86,0,1,2,3,4,5, 6,7,8,9,10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25, 26,27,28,29,30,31,32,33,34,35, - 0,37,38,39,40,41,42,43,8,45, - 46,47,48,49,50,51,52,53,54,55, - 56,57,58,73,60,61,62,63,64,65, - 66,67,0,88,89,99,72,0,6,75, + 36,37,38,39,40,41,42,43,44,45, + 46,47,64,49,50,51,52,53,54,0, + 56,57,58,59,60,61,62,63,0,65, + 66,67,68,0,1,2,90,0,92,75, 76,77,78,79,80,81,82,83,84,85, - 86,0,1,2,3,4,5,6,7,0, - 9,10,62,12,13,14,15,16,17,18, - 19,20,21,22,23,24,25,26,27,28, - 29,30,31,32,33,34,35,0,37,38, - 39,40,41,42,43,8,45,46,47,48, - 49,50,51,52,53,54,55,0,57,0, - 1,2,61,4,0,8,65,66,67,0, - 1,2,3,4,5,6,7,8,9,10, - 11,12,0,0,15,16,17,18,19,20, - 21,22,23,24,25,36,0,0,1,2, - 3,4,5,6,7,36,9,70,71,40, - 46,47,103,104,105,46,47,48,49,50, - 51,52,53,54,55,56,44,58,0,0, - 61,74,36,0,65,66,67,8,10,0, - 71,72,73,0,1,2,3,4,5,6, - 7,8,9,10,11,12,87,0,15,16, - 17,18,19,20,21,22,23,24,25,72, - 0,0,103,104,105,4,0,1,2,36, - 4,0,6,40,56,9,0,0,0,46, - 47,48,49,50,51,52,53,54,55,56, - 0,58,0,74,61,3,36,68,65,66, - 67,40,0,0,71,72,73,4,0,6, - 91,3,9,0,6,44,8,9,28,11, - 87,13,14,10,0,1,2,3,4,5, - 6,7,0,9,26,27,103,104,105,0, - 1,2,3,4,5,6,7,69,9,36, - 73,0,44,0,1,2,3,4,5,6, - 7,69,9,0,103,104,105,59,0,1, - 2,3,4,5,61,7,68,69,70,71, - 102,73,74,59,0,107,108,109,110,111, - 112,113,114,115,116,117,88,89,90,91, - 92,93,94,95,96,97,98,99,100,101, - 102,0,73,0,106,107,108,109,110,111, - 112,113,114,115,116,117,118,0,120,121, - 3,68,0,6,102,8,9,0,11,107, - 13,14,91,0,1,2,3,4,5,6, - 7,0,9,26,27,0,1,2,3,4, - 5,0,7,8,13,14,11,0,1,2, - 0,44,0,1,2,3,4,5,0,7, - 8,44,4,13,14,0,59,0,1,2, - 3,4,5,0,7,68,69,70,71,0, - 73,74,59,36,0,1,2,3,4,5, - 6,7,69,9,0,88,89,90,91,92, - 93,94,95,96,97,98,99,100,101,102, - 0,59,100,106,107,108,109,110,111,112, - 113,114,115,116,117,118,74,120,121,0, - 1,2,3,4,5,6,7,0,9,10, - 73,0,13,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,29,30, - 31,32,33,34,35,0,37,38,39,4, - 41,42,43,0,45,0,1,2,68,4, - 70,6,9,8,9,44,57,122,0,0, - 0,3,63,64,0,0,8,68,0,1, - 2,3,4,5,6,7,8,9,10,44, - 73,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,44,37,38,39,44,41, - 42,43,0,45,0,1,2,59,4,74, - 8,0,8,0,59,57,68,6,70,0, - 62,8,74,73,11,76,91,8,0,71, + 86,0,1,2,3,4,5,6,7,118, + 9,10,11,12,13,14,15,16,17,18, + 19,20,21,22,23,24,0,26,27,28, + 29,30,31,32,33,34,35,36,37,38, + 39,40,41,42,43,44,45,46,47,71, + 49,50,51,52,53,54,0,56,57,58, + 59,35,36,62,0,1,2,3,4,5, + 6,7,8,9,10,11,12,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,28,29,30,31,32,33,34,0, + 0,1,2,0,40,0,0,1,2,3, + 4,5,48,7,8,0,0,0,1,2, + 64,57,58,59,60,61,0,63,0,0, + 0,25,3,0,35,36,72,73,22,23, + 24,0,26,27,28,29,30,31,32,33, + 34,87,22,23,24,0,26,27,28,29, + 30,31,32,33,34,48,0,103,104,105, 0,1,2,3,4,5,6,7,8,9, - 10,13,14,13,14,15,16,17,18,19, + 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,62,37,38,39, - 0,41,42,43,4,45,74,0,1,2, - 3,4,5,70,7,8,0,57,11,0, - 1,2,62,0,1,2,3,4,5,6, - 7,0,9,10,93,94,13,14,15,16, - 17,18,19,20,21,22,23,24,25,26, - 27,28,29,30,31,32,33,34,35,0, - 37,38,39,4,41,42,43,118,45,0, - 1,2,3,4,0,6,0,0,9,0, - 57,0,63,64,8,8,63,64,0,1, - 2,3,4,5,6,7,8,9,10,40, - 0,13,14,15,16,17,18,19,20,21, + 30,31,32,33,34,0,1,2,75,4, + 40,6,0,0,9,0,3,0,48,6, + 8,8,9,97,98,0,0,57,58,59, + 60,61,0,63,8,0,1,2,25,4, + 99,6,72,73,9,0,91,0,35,36, + 37,38,5,8,22,23,24,87,26,27, + 28,29,30,31,32,33,34,0,55,0, + 0,1,2,103,104,105,6,64,66,0, + 55,64,69,70,71,72,73,74,0,1, + 2,3,4,5,6,7,0,9,73,0, + 74,88,89,90,91,92,93,94,95,96, + 97,98,99,100,101,102,71,72,48,106, + 107,108,109,110,111,112,113,114,115,116, + 117,118,0,120,121,3,121,0,6,70, + 8,9,0,1,2,3,4,5,6,7, + 0,9,64,0,4,88,89,25,70,0, + 1,2,3,4,5,0,7,35,36,37, + 38,102,22,8,0,0,107,108,109,110, + 111,112,113,114,115,116,117,55,0,1, + 2,3,4,5,6,7,64,9,119,100, + 0,69,70,71,72,73,74,0,1,2, + 3,4,5,6,7,73,9,0,1,2, + 88,89,90,91,92,93,94,95,96,97, + 98,99,100,101,102,35,36,72,106,107, + 108,109,110,111,112,113,114,115,116,117, + 118,0,120,121,0,1,2,3,4,5, + 6,7,8,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,0, + 0,0,1,2,40,4,5,0,7,0, + 3,0,48,0,1,2,3,4,5,0, + 7,57,58,59,60,61,0,63,0,65, + 69,0,71,22,23,24,72,26,27,28, + 29,30,31,32,33,34,0,1,2,48, + 0,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,88,89,0, + 1,2,40,4,5,64,7,0,1,2, + 48,4,5,0,7,0,0,55,3,57, + 58,59,60,61,64,63,0,65,0,1, + 2,3,4,5,6,7,100,9,0,1, + 2,3,4,5,0,7,8,48,4,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,70,0,1,2,61, + 40,5,0,1,2,3,4,5,48,7, + 8,0,64,90,0,92,0,57,58,59, + 60,61,74,63,8,65,0,25,0,1, + 2,0,72,0,1,2,3,4,5,6, + 7,10,9,0,48,0,0,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,0,37,38,39,59,41, - 42,43,0,45,10,3,0,1,2,3, - 4,5,0,7,0,57,4,71,71,70, - 62,0,1,2,3,4,5,6,7,59, - 9,10,88,89,13,14,15,16,17,18, - 19,20,21,22,23,24,25,26,27,28, - 29,30,31,32,33,34,35,0,37,38, - 39,59,41,42,43,59,45,0,1,2, - 3,4,5,59,7,0,1,2,57,4, - 5,0,7,0,63,64,0,1,2,3, - 4,5,6,7,8,9,10,0,0,13, + 32,33,34,0,1,2,0,4,40,6, + 74,60,9,0,0,0,48,64,55,4, + 0,55,88,89,4,57,58,59,60,61, + 99,63,0,65,0,0,1,2,0,4, + 72,6,22,8,9,0,1,2,3,4, + 5,0,7,88,89,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,0,37,38,39,0,41,42,43, - 0,45,75,3,8,5,6,11,0,9, - 0,1,2,13,14,0,1,2,8,4, - 0,6,0,3,9,0,26,27,0,29, - 0,0,0,1,2,68,4,70,6,0, - 10,9,0,12,44,3,15,16,17,18, - 19,20,21,22,23,24,25,0,0,59, - 0,1,2,63,64,5,36,7,68,69, - 70,40,62,0,118,0,68,46,47,48, - 49,50,51,52,53,54,55,59,88,89, - 90,61,70,93,94,95,96,97,98,99, - 100,101,102,0,1,2,106,68,108,109, - 110,111,112,113,114,115,116,117,0,1, - 2,3,4,5,6,7,68,9,10,0, - 0,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,0,37,38,39,0,41, - 42,43,4,45,0,1,2,3,4,5, - 6,7,0,9,10,57,0,13,14,15, + 34,0,1,2,0,4,40,6,4,48, + 9,0,1,2,48,4,5,69,7,74, + 97,98,0,57,58,59,60,61,73,63, + 8,65,0,103,104,105,91,0,72,0, + 1,2,3,4,0,6,102,3,9,0, + 0,107,8,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, - 70,37,38,39,28,41,42,43,36,45, - 0,0,1,2,3,4,5,6,7,0, - 9,10,68,59,13,14,15,16,17,18, - 19,20,21,22,23,24,25,26,27,28, - 29,30,31,32,33,34,35,0,37,38, - 39,0,41,42,43,4,45,0,1,2, - 3,4,5,6,7,0,9,10,57,59, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,28,29,30,31,32, - 33,34,35,0,37,38,39,0,41,42, - 43,0,45,0,1,2,3,4,5,6, - 7,0,9,10,3,68,13,14,15,16, - 17,18,19,20,21,22,23,24,25,26, - 27,28,29,30,31,32,33,34,35,0, - 37,38,39,0,41,42,43,0,45,0, - 1,2,3,4,5,6,7,0,9,10, - 3,0,13,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,29,30, - 31,32,33,34,35,0,37,38,39,0, - 41,42,43,100,45,0,1,2,0,4, - 0,1,2,0,4,10,6,12,69,9, - 15,16,17,18,19,20,21,22,23,24, - 25,0,0,1,2,0,4,5,3,7, - 0,70,0,1,2,40,4,5,91,7, - 0,46,47,48,49,50,51,52,53,54, - 55,0,0,0,1,2,61,4,36,8, - 65,66,67,10,0,12,68,3,15,16, - 17,18,19,20,21,22,23,24,25,0, - 0,1,2,0,1,2,3,4,5,6, - 7,8,9,40,11,12,0,1,2,46, - 47,48,49,50,51,52,53,54,55,0, - 0,1,2,4,61,5,36,7,65,66, - 67,70,119,40,0,74,0,44,0,46, - 47,48,49,50,51,52,53,54,55,0, - 88,89,59,0,1,2,3,4,5,6, - 7,8,9,44,11,12,0,74,0,63, - 64,3,0,0,1,2,3,4,5,6, - 7,8,9,0,11,12,0,0,1,2, - 4,4,5,40,7,59,0,1,2,46, - 47,48,49,50,51,52,53,54,55,36, - 44,73,59,0,1,2,3,4,5,6, - 7,8,9,36,11,12,0,74,0,56, - 44,58,36,60,0,1,2,3,4,5, - 6,7,8,9,71,11,12,0,0,36, - 0,0,0,1,2,8,8,44,6,11, - 87,0,1,2,0,0,5,0,3,56, - 36,58,44,60,0,1,2,3,4,5, - 6,7,8,9,0,11,12,0,36,0, - 56,0,58,6,60,0,70,36,0,0, - 87,12,3,8,0,71,8,8,44,62, - 36,0,1,2,3,4,5,6,7,8, - 9,87,11,12,0,0,0,1,2,40, - 56,0,58,0,60,46,47,48,49,50, - 51,52,53,54,55,71,0,36,0,1, - 2,3,4,5,6,7,8,9,59,11, - 12,87,36,0,73,0,71,56,44,58, - 0,60,74,74,70,44,6,0,1,2, - 93,94,71,0,36,0,1,2,3,4, - 5,6,7,8,9,70,11,12,87,68, - 0,1,2,119,56,59,58,44,60,44, - 0,0,1,2,3,4,5,6,7,8, - 9,36,11,12,91,0,95,96,0,0, - 0,68,3,68,0,87,36,0,1,2, - 12,56,0,58,0,60,0,36,0,1, - 2,0,8,0,8,26,27,11,95,96, - 95,96,0,93,94,12,0,56,40,58, - 8,60,87,0,46,47,48,49,50,51, - 52,53,54,55,36,12,44,0,59,0, - 1,2,0,40,0,1,2,0,87,46, - 47,48,49,50,51,52,53,54,55,0, - 1,2,0,40,0,3,0,3,74,46, - 47,48,49,50,51,52,53,54,55,0, - 36,44,0,0,0,106,74,8,0,0, - 11,44,3,0,0,0,3,3,3,120, - 0,0,0,0,0,3,0,3,0,3, - 0,69,0,3,0,3,0,3,0,0, - 0,0,3,0,0,0,44,0,0,0, - 0,0,44,0,0,69,0,0,0,0, + 26,27,28,29,30,31,32,33,34,40, + 0,1,2,71,40,5,74,7,0,0, + 1,2,48,64,5,55,7,0,64,0, + 3,57,58,59,60,61,0,63,74,65, + 0,1,2,3,4,5,0,7,0,1, + 2,0,4,0,0,4,8,6,4,0, + 9,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,0,0,1, + 2,55,40,0,64,0,3,48,55,55, + 48,0,76,8,66,69,0,0,0,57, + 58,59,60,61,8,63,0,65,0,3, + 25,3,0,0,1,2,8,0,1,2, + 0,95,96,0,1,2,48,4,8,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,0,1,2,72,0, + 40,48,64,8,0,0,64,69,48,71, + 67,68,74,8,67,68,66,57,58,59, + 60,61,0,63,0,65,0,0,0,0, + 25,0,1,2,10,8,0,8,0,0, + 1,2,3,4,5,6,7,87,9,10, + 11,12,13,14,15,16,17,18,19,20, + 21,66,0,0,40,0,0,0,69,4, + 8,0,48,69,35,36,37,38,39,48, + 41,42,43,44,45,46,47,25,49,50, + 51,52,53,54,0,56,70,69,0,72, + 64,62,0,74,10,3,67,68,69,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,40,69,73,71,0,37, + 38,3,48,0,35,36,37,38,39,0, + 41,42,43,44,45,46,47,8,49,50, + 51,52,53,54,0,56,64,0,1,2, + 0,62,0,3,25,66,0,0,0,48, + 8,72,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,0,0,0,0,106,0, + 1,2,8,8,8,48,0,35,36,37, + 38,39,120,41,42,43,44,45,46,47, + 25,49,50,51,52,53,54,0,56,0, + 3,0,1,2,62,69,74,70,66,0, + 1,2,3,4,5,6,7,48,9,10, + 11,12,13,14,15,16,17,18,19,20, + 21,55,0,0,0,3,71,3,74,0, + 74,0,3,119,35,36,37,38,39,48, + 41,42,43,44,45,46,47,91,49,50, + 51,52,53,54,0,56,0,3,0,0, + 0,62,73,3,0,0,67,68,0,1, + 2,3,4,5,6,7,8,9,10,11, + 12,13,14,15,16,17,18,19,20,21, + 0,0,0,70,3,0,0,0,39,0, + 3,70,0,35,36,37,38,39,0,41, + 42,43,44,45,46,47,0,49,50,51, + 52,53,54,0,56,0,62,0,0,73, + 62,73,0,0,66,0,1,2,3,4, + 5,6,7,0,9,10,11,12,13,14, + 15,16,17,18,19,20,21,55,0,0, + 70,3,39,55,48,73,71,71,0,0, + 35,36,37,38,39,0,41,42,43,44, + 45,46,47,0,49,50,51,52,53,54, + 91,56,0,0,0,70,0,62,55,3, + 73,73,67,68,0,1,2,3,4,5, + 6,7,8,9,10,11,12,13,14,15, + 16,17,18,19,20,21,0,0,0,0, + 55,4,4,0,0,0,0,0,55,35, + 36,37,38,39,69,41,42,43,44,45, + 46,47,69,49,50,51,52,53,54,0, + 56,0,3,70,5,6,0,0,9,3, + 95,96,0,0,0,3,3,3,95,96, + 0,55,55,55,55,91,0,119,55,55, + 55,55,0,0,35,36,37,38,0,0, + 41,3,0,0,0,0,0,70,0,0, + 0,0,0,0,55,0,0,0,0,0, + 0,0,118,64,0,0,67,68,69,70, + 71,70,39,0,0,0,0,70,0,0, + 0,55,0,0,0,0,0,88,89,90, + 0,0,93,94,95,96,97,98,99,100, + 101,102,0,0,0,106,0,108,109,110, + 111,112,113,114,115,116,117,0,1,2, + 3,4,5,6,7,0,9,10,11,12, + 13,14,15,16,17,18,19,20,21,0, + 0,0,122,0,0,0,0,0,0,0, + 0,0,35,36,37,38,39,0,41,42, + 43,44,45,46,47,0,49,50,51,52, + 53,54,0,56,0,0,0,0,0,62, + 0,1,2,3,4,5,6,7,0,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,0,0,0,0,0,0,0,0, + 0,0,0,0,0,35,36,37,38,39, + 0,41,42,43,44,45,46,47,0,49, + 50,51,52,53,54,0,56,0,0,0, + 0,0,0,0,64,0,1,2,3,4, + 5,6,7,0,9,10,11,12,13,14, + 15,16,17,18,19,20,21,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,69,69,0,28,0,0,0,0, - 0,0,0,0,0,0,0,0,44,69, - 69,0,0,0,0,0,73,0,0,61, - 0,73,0,0,0,69,0,0,0,69, - 0,0,69,0,0,0,0,0,0,0, + 35,36,37,38,39,0,41,42,43,44, + 45,46,47,0,49,50,51,52,53,54, + 0,56,0,0,0,0,0,62,0,1, + 2,3,4,5,6,7,0,9,10,11, + 12,13,14,15,16,17,18,19,20,21, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,35,36,37,38,39,0,41, + 42,43,44,45,46,47,0,49,50,51, + 52,53,54,0,56,0,1,2,3,4, + 5,6,7,0,9,10,11,12,13,14, + 15,16,17,18,19,20,21,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 35,36,37,38,39,0,41,42,43,44, + 45,46,47,0,49,50,51,52,53,54, + 0,56,0,1,2,3,4,5,6,7, + 0,9,10,11,12,13,14,15,16,17, + 18,19,20,21,0,0,0,0,0,0, + 0,0,0,0,0,0,0,35,36,37, + 38,39,0,41,42,43,44,45,46,47, + 0,49,50,51,52,53,54,0,56,0, + 1,2,0,4,0,0,0,0,0,10, + 11,12,13,14,15,16,17,18,19,20, + 21,22,23,24,0,26,27,28,29,30, + 31,32,33,34,0,0,0,0,0,40, + 0,0,0,0,0,0,0,0,0,0, + 1,2,0,4,0,0,57,58,59,10, + 11,12,13,14,15,16,17,18,19,20, + 21,22,23,24,0,26,27,28,29,30, + 31,32,33,34,0,0,0,0,0,40, + 0,1,2,3,4,5,6,7,8,9, + 0,0,0,0,0,0,57,58,59,0, + 0,0,22,23,24,25,26,27,28,29, + 30,31,32,33,34,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,55,0,0,0,0, + 0,0,0,0,64,0,0,0,0,0, + 0,0,0,0,74,0,1,2,3,4, + 5,6,7,8,9,0,0,0,0,0, + 0,0,0,0,0,0,0,22,23,24, + 25,26,27,28,29,30,31,32,33,34, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,11,12,13,14,15, + 16,17,18,19,20,21,22,23,24,64, + 26,27,28,29,30,31,32,33,34,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, - 119,0,0,0,0,0,0,0,0,0, - 0 + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0 }; }; public final static byte termCheck[] = TermCheck.termCheck; @@ -1410,318 +1445,353 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface TermAction { public final static char termAction[] = {0, - 5355,5332,5308,5308,5308,5308,5308,5308,5342,5308, - 1,5336,1,1,1,1,1,1,1,1, + 5314,5291,5267,5267,5267,5267,5267,5267,5301,5267, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5295,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,383,1,1,1,1,1, - 1,1,1,1,1,1,1251,1,2770,143, - 2650,1,5366,1,1,1,1,1,5355,5374, - 5375,5362,5536,3402,528,1294,2959,4283,2202,4254, - 2904,2843,2956,943,2940,3012,2933,10,5345,5345, - 5345,5345,5345,5345,5345,5345,5345,5345,5345,5345, - 5345,5345,5345,5345,5345,5345,5345,5345,5345,5345, - 5345,5345,5345,5345,5345,5345,5345,5345,5345,5345, - 5345,5345,5345,5355,5345,5345,5345,5345,5345,5345, - 5345,2880,5345,5345,5345,5345,5345,5345,5345,5345, - 5345,5345,5345,5345,5345,5345,144,5345,5345,5345, - 5345,5345,5345,5345,5345,5355,5374,5375,5345,5345, - 1123,5355,5345,5345,5345,5345,5345,5345,5345,5345, - 5345,5345,5345,5345,8,5348,5348,5348,5348,5348, - 5348,5348,5348,5348,5348,5348,5348,5348,5348,5348, - 5348,5348,5348,5348,5348,5348,5348,5348,5348,5348, - 5348,5348,5348,5348,5348,5348,5348,5348,5348,5348, - 5355,5348,5348,5348,5348,5348,5348,5348,5355,5348, - 5348,5348,5348,5348,5348,5348,5348,5348,5348,5348, - 5348,5348,5348,5355,5348,5348,5348,5348,5348,5348, - 5348,5348,5355,5014,5011,5348,5348,1123,5355,5348, - 5348,5348,5348,5348,5348,5348,5348,5348,5348,5348, - 5348,5355,5332,5308,5308,5308,5308,5308,5308,5339, - 5308,1,5336,1,1,1,1,1,1,1, + 1,1,1,1,1,379,1,1,1,1, + 1247,5490,1,2855,116,2612,5325,1,1,5314, + 3539,342,5321,2487,1932,1290,2970,4165,2198,4162, + 2865,2839,2955,939,2936,3008,2912,10,5304,5304, + 5304,5304,5304,5304,5304,5304,5304,5304,5304,5304, + 5304,5304,5304,5304,5304,5304,5304,5304,5304,5304, + 5304,5304,5304,5304,5304,5304,5304,5304,5304,5304, + 5304,5304,5304,5304,5304,5304,5304,5304,5304,5304, + 5304,5304,5304,5304,5304,1300,5304,5304,5304,5304, + 5304,5304,132,5304,5304,5304,5304,5304,5304,5304, + 5304,586,5304,5304,5304,5304,40,3468,622,5304, + 5353,5314,5304,5304,5304,5304,5304,5304,5304,5304, + 5304,5304,5304,5304,8,5307,5307,5307,5307,5307, + 5307,5307,5307,5307,5307,5307,5307,5307,5307,5307, + 5307,5307,5307,5307,5307,5307,5307,5307,5307,5307, + 5307,5307,5307,5307,5307,5307,5307,5307,5307,5307, + 5307,5307,5307,5307,5307,5307,5307,5307,5307,5307, + 5307,5307,5314,5307,5307,5307,5307,5307,5307,431, + 5307,5307,5307,5307,5307,5307,5307,5307,158,5307, + 5307,5307,5307,5314,4994,4991,5307,5353,5314,5307, + 5307,5307,5307,5307,5307,5307,5307,5307,5307,5307, + 5307,5314,5291,5267,5267,5267,5267,5267,5267,5298, + 5267,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,5295,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5355,1,1, - 1,1,1,1,1,5355,1,1,1,1, - 1,1,1,1,1,1,1,1251,1,2770, - 137,2650,1,5366,1,1,1,1,1,590, - 5355,5035,5032,5536,5399,5355,1294,2959,4283,2202, - 4254,2904,2843,2956,943,2940,3012,2933,5355,5332, - 5308,5308,5308,5308,5308,5308,5339,5308,1,5336, + 1,1,1,1,1,1,1,1,1,1859, + 1,1,1,1,1,1,138,1,1,1, + 1,1247,5490,1,2855,118,2612,5325,1,1, + 5314,3539,5741,5742,5743,5314,1290,2970,4165,2198, + 4162,2865,2839,2955,939,2936,3008,2912,5314,5291, + 5267,5267,5267,5267,5267,5267,5298,5267,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,5295,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,5314,1,1,1, + 1,1,1,1902,1,1,1,1,1247,5490, + 1,2855,507,2612,5325,1,1,1119,3468,622, + 5314,5328,5329,1290,2970,4165,2198,4162,2865,2839, + 2955,939,2936,3008,2912,5314,5291,5267,5267,5267, + 5267,5267,5267,5298,5267,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 5295,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,866,1,1,1,1,1,1, + 139,1,1,1,1,1247,5490,1,2855,117, + 2612,5325,1,1,112,3539,5314,4973,4970,5314, + 1290,2970,4165,2198,4162,2865,2839,2955,939,2936, + 3008,2912,5314,5291,5267,5267,5267,5267,5267,5267, + 5298,5267,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5295,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5355,1,1,1,1,1, - 1,1,5355,1,1,1,1,1,1,1, - 1,1,1,1,1251,1,2770,135,2650,1, - 5366,1,1,1,1,1,117,5355,5035,5032, - 5536,5399,5355,1294,2959,4283,2202,4254,2904,2843, - 2956,943,2940,3012,2933,5355,5332,5308,5308,5308, - 5308,5308,5308,5339,5308,1,5336,1,1,1, + 5314,1,1,1,1,1,1,133,1,1, + 1,1,1247,5490,1,2855,586,2612,5325,1, + 1,1119,3468,622,4071,5314,4093,1290,2970,4165, + 2198,4162,2865,2839,2955,939,2936,3008,2912,5314, + 5291,5267,5267,5267,5267,5267,5267,5298,5267,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,5295,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5314,1,1, + 1,1,1,1,5818,1,1,1,1,1247, + 5490,1,2855,288,2612,5325,1,1,5314,5328, + 5329,5314,5314,3398,1290,2970,4165,2198,4162,2865, + 2839,2955,939,2936,3008,2912,5314,5291,5267,5267, + 5267,5267,5267,5267,5298,5267,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,5295,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,665,1,1,1,1,1, + 1,5747,1,1,1,1,1247,5490,1,2855, + 300,2612,5325,1,1,5314,4994,4991,122,5353, + 5613,1290,2970,4165,2198,4162,2865,2839,2955,939, + 2936,3008,2912,5314,5291,5267,5267,5267,5267,5267, + 5267,5298,5267,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5295,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5355,1,1,1,1,1,1,1,5355, + 1,331,1,1,1,1,1,1,5314,1, + 1,1,1,1247,5490,1,2855,5314,2612,5325, + 1,1,115,1678,5646,5647,2724,2817,1290,2970, + 4165,2198,4162,2865,2839,2955,939,2936,3008,2912, + 5314,5291,5267,5267,5267,5267,5267,5267,5298,5267, 1,1,1,1,1,1,1,1,1,1, - 1,1251,1,2770,5355,2650,1,5366,1,1, - 1,1,1,127,2378,2350,4075,5536,4097,5355, - 1294,2959,4283,2202,4254,2904,2843,2956,943,2940, - 3012,2933,5355,5332,5308,5308,5308,5308,5308,5308, - 5339,5308,1,5336,1,1,1,1,1,1, + 1,1,1,1,1,5295,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5355,1, - 1,1,1,1,1,1,5355,1,1,1, - 1,1,1,1,1,1,1,1,1251,1, - 2770,5355,2650,1,5366,1,1,1,1,1, - 120,2728,2821,5355,5536,5355,4749,1294,2959,4283, - 2202,4254,2904,2843,2956,943,2940,3012,2933,5355, - 5332,5308,5308,5308,5308,5308,5308,5339,5308,1, - 5336,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5314,1, + 1,1,1,1,1,5314,1,1,1,1, + 1247,5490,1,2855,357,2612,5325,1,1,49, + 4973,4970,4071,5314,4093,1290,2970,4165,2198,4162, + 2865,2839,2955,939,2936,3008,2912,5314,5291,5267, + 5267,5267,5267,5267,5267,5298,5267,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5355,1,1,1,1, - 1,1,1,5355,1,1,1,1,1,1, - 1,1,1,1,1,1251,1,2770,136,2650, - 1,5366,1,1,1,1,1,54,5014,5011, - 4075,5536,4097,5355,1294,2959,4283,2202,4254,2904, - 2843,2956,943,2940,3012,2933,5355,5332,5308,5308, - 5308,5308,5308,5308,5339,5308,1,5336,1,1, + 1,1,5295,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,2896,1,1,1,1, + 1,1,5761,1,1,1,1,1247,5490,1, + 2855,5314,2612,5325,1,1,114,5314,315,5318, + 4745,5314,1290,2970,4165,2198,4162,2865,2839,2955, + 939,2936,3008,2912,5314,2895,1,1,1,1, + 1,1,2901,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5323, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,5355,1,1,1,1,1,1,1, - 5355,1,1,1,1,1,1,1,1,1, - 1,1,1251,1,2770,5355,2650,1,5366,1, - 1,1,1,1,119,2378,2350,5355,5536,5355, - 2596,1294,2959,4283,2202,4254,2904,2843,2956,943, - 2940,3012,2933,5355,5332,5308,5308,5308,5308,5308, - 5308,5339,5308,1,5336,1,1,1,1,1, + 1,1,1300,1,1,1,1,1,1,5314, + 1,1,1,1,1247,5490,1,2855,418,2612, + 5325,1,1,289,5328,5329,4071,5314,4093,1290, + 2970,4165,2198,4162,2865,2839,2955,939,2936,3008, + 2912,40,4994,4991,3789,927,3890,3961,2569,5317, + 3983,772,5579,5577,5586,5585,5581,5582,5580,5583, + 5584,5587,5578,5575,5646,5647,119,5569,5576,5572, + 5548,5574,5573,5570,5571,5549,3939,3912,4027,4005, + 5334,5705,3848,1024,1203,5336,1061,3595,1151,3415, + 5337,5335,1018,5330,5332,5333,316,5331,858,5706, + 5707,3430,3251,1341,5314,5183,5183,230,5179,230, + 230,230,5187,230,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,230, + 1,1,1,1,1,1,1,1,1,121, + 37,5243,5240,5314,1,5314,1,4954,4950,5217, + 4958,5223,5176,5220,5324,5314,225,38,5012,5012, + 1300,1,1,1,568,5719,130,560,5314,5314, + 226,5323,3504,1,3430,3251,409,230,5575,5646, + 5647,134,5569,5576,5572,5548,5574,5573,5570,5571, + 5549,5806,5575,5646,5647,353,5569,5576,5572,5548, + 5574,5573,5570,5571,5549,5351,5314,5741,5742,5743, + 5314,5183,5183,230,5179,230,230,230,5226,230, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5355, - 1,1,1,1,1,1,1,5355,1,1, - 1,1,1,1,1,1,1,1,1,1251, - 1,2770,1906,2650,1,5366,1,1,1,1, - 1,118,5355,4990,4075,5536,4097,3402,1294,2959, - 4283,2202,4254,2904,2843,2956,943,2940,3012,2933, - 5355,5332,5308,5308,5308,5308,5308,5308,5339,5308, - 1,5336,1,1,1,1,1,1,1,1, + 1,1,1,1,1,230,1,1,1,1, + 1,1,1,1,1,436,1,1,3302,1, + 1,5000,5314,34,5000,5314,4997,450,5176,4997, + 5326,4997,4997,2374,2346,30,5314,1,1,1, + 568,5719,227,560,5320,437,40,40,4997,5353, + 2316,5152,408,230,5149,5314,5666,5314,4997,4997, + 4997,4997,3398,5322,5575,5646,5647,5806,5569,5576, + 5572,5548,5574,5573,5570,5571,5549,126,4997,140, + 38,5012,5012,5741,5742,5743,1678,4997,5325,5314, + 709,5003,4997,4997,4997,4997,4997,4997,362,4954, + 4950,2524,4958,618,1,2569,5314,1,416,136, + 5319,4997,4997,4997,4997,4997,4997,4997,4997,4997, + 4997,4997,4997,4997,4997,4997,986,5321,5351,4997, + 4997,4997,4997,4997,4997,4997,4997,4997,4997,4997, + 4997,4997,5314,4997,4997,5143,4949,5314,5143,1816, + 5143,5143,5314,4954,4950,4390,4958,618,5249,2569, + 40,5246,1300,5314,5353,2724,2817,5143,1155,1, + 4954,4950,4390,4958,618,5314,2569,5143,5143,5143, + 5143,2246,2746,5322,5314,5314,4160,1773,1730,1687, + 1644,1601,1558,1515,1472,1429,1386,5143,5314,4994, + 4991,4390,927,618,1185,2569,5143,5639,3040,2284, + 120,5143,5143,5143,5143,5143,5143,308,4954,4950, + 4390,4958,618,5249,2569,2026,5246,390,5328,5329, + 5143,5143,5143,5143,5143,5143,5143,5143,5143,5143, + 5143,5143,5143,5143,5143,3430,3251,5321,5143,5143, + 5143,5143,5143,5143,5143,5143,5143,5143,5143,5143, + 5143,5314,5143,5143,5314,5267,5267,230,5267,230, + 230,230,5270,230,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,230, + 1,1,8627,1,1,1,1,1,1,125, + 5314,5314,4994,4991,1,927,5146,92,2569,5314, + 5140,228,5264,1,4954,4950,5217,4958,5223,5314, + 5220,1,1,1,3320,5526,137,2855,5314,2612, + 4292,449,3288,5575,5646,5647,221,5569,5576,5572, + 5548,5574,5573,5570,5571,5549,5314,8562,8561,573, + 343,5806,5314,5267,5267,230,5267,230,230,230, + 230,230,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,230,1,1, + 8627,1,1,1,1,1,1,2724,2817,5314, + 4994,4991,1,927,5146,5006,2569,5314,4994,4991, + 5264,927,618,113,2569,309,5314,2069,2190,1, + 1,1,3320,5526,1300,2855,5314,2612,5314,4954, + 4950,4390,4958,618,1,2569,2284,1,1,4954, + 4950,2524,4958,618,1,2569,5155,2552,383,5806, + 5314,5267,5267,230,5267,230,230,230,5276,230, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5355,1,1,1, - 1,1,1,1,5355,1,1,1,1,1, - 1,1,1,1,1,1,1251,1,2770,139, - 2650,1,5366,1,1,1,1,1,131,5355, - 5355,4075,5536,4097,2491,1294,2959,4283,2202,4254, - 2904,2843,2956,943,2940,3012,2933,5355,5332,5308, - 5308,5308,5308,5308,5308,5339,5308,1,5336,1, + 1,1,1,1,1,230,1,1,8627,1, + 1,1,1,1,1,1029,38,5012,5012,5842, + 1,5012,1,4954,4950,4390,4958,618,5264,2569, + 308,135,1300,4071,124,4093,1,1,1,1, + 3320,5526,5158,2855,162,2612,5314,308,5314,8562, + 8561,300,220,340,4994,4991,2524,927,618,1185, + 2569,5613,5639,30,3522,123,432,5806,5314,5267, + 5267,230,5267,230,230,230,5270,230,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,230,1,1,8627,1,1,1, + 1,1,1,93,1,1,5314,1,1,5208, + 162,3414,5208,131,5314,5314,5264,1300,4961,4161, + 40,4964,2724,2817,5353,1,1,1,3320,5526, + 2316,2855,5314,2612,140,1,5205,5205,5314,5202, + 221,1185,1102,358,5639,1,4954,4950,4390,4958, + 618,38,2569,2724,2817,5806,5314,5267,5267,230, + 5267,230,230,230,5270,230,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5355,1,1,1,1,1,1, - 1,5355,1,1,1,1,1,1,1,1, - 1,1,1,1251,1,2770,140,2650,1,5366, - 1,1,1,1,1,130,2728,2821,2320,5536, - 424,5355,1294,2959,4283,2202,4254,2904,2843,2956, - 943,2940,3012,2933,5355,2905,1,1,1,1, - 1,1,2916,1,1,5364,1,1,1,1, + 1,230,1,1,8627,1,1,1,1,1, + 1,96,40,40,5314,5353,1,5258,990,5351, + 5255,5314,4994,4991,5264,927,618,1881,2569,358, + 2374,2346,5314,1,1,1,3320,5526,2026,2855, + 5320,2612,5314,5741,5742,5743,358,5314,221,340, + 40,40,2676,5353,1,1185,2246,2676,5639,5314, + 446,4160,5155,5806,5314,5267,5267,230,5267,230, + 230,230,230,230,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,230, + 1,1,8627,1,1,1,1,1,1,2858, + 39,4982,4979,4850,1,4976,5319,2569,5314,5314, + 5328,5329,5264,1300,618,4967,2569,238,1300,5314, + 5161,1,1,1,3320,5526,5314,2855,5158,2612, + 1,4954,4950,2524,4958,618,127,2569,5314,4994, + 4991,40,5353,5314,389,5353,5326,1185,382,48, + 5639,5806,5314,5267,5267,230,5267,230,230,230, + 230,230,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,230,1,1, + 8627,1,1,1,1,1,1,5314,44,5137, + 5137,2483,1,1,1300,398,4793,782,709,709, + 5264,5314,3137,5211,5325,5015,8,5314,5314,1, + 1,1,3320,5526,5252,2855,5314,2612,1,4174, + 5214,2676,101,5314,5328,5329,336,5314,4973,4970, + 1,2429,2402,390,4994,4991,5134,5353,5285,5806, + 5314,5267,5267,230,5267,230,230,230,230,230, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 5355,1,1,1,1,1,1,1,5367,1, - 1,1,1,1,1,1,1,1,1,1, - 1251,1,2770,3338,2650,1,5366,1,1,1, - 1,1,5355,2728,2821,2320,5536,5355,1682,1294, - 2959,4283,2202,4254,2904,2843,2956,943,2940,3012, - 2933,45,5035,5032,3793,931,3894,3965,2573,435, - 3987,776,5366,5617,3943,3916,5624,5622,5631,5630, - 5626,5627,5625,5628,5629,5632,5623,4031,4009,5380, - 3852,1065,1207,5382,1108,3599,1155,5355,5383,5381, - 1037,5620,5376,5378,5379,5363,5377,5691,5692,5614, - 5621,5593,5619,5618,5615,5616,5594,5355,1345,394, - 5035,5032,5750,5399,335,5361,862,5751,5752,5355, - 5224,5224,234,5220,234,234,234,5228,234,1, - 234,1,35,5355,1,1,1,1,1,1, - 1,1,1,1,1,45,43,5355,4995,4991, - 4394,4999,622,1,2573,5217,1,990,5362,1, - 5691,5692,5786,5787,5788,1,1,1,1,1, - 1,1,1,1,1,572,5002,564,304,1, - 1,5360,5397,5355,1,1,1,362,5658,5355, - 413,5764,234,5355,5224,5224,234,5220,234,234, - 234,5267,234,1,234,1,5851,5355,1,1, - 1,1,1,1,1,1,1,1,1,5887, - 53,45,5786,5787,5788,5399,440,1,1,5217, - 1,436,5041,1,2864,5041,5355,5355,145,1, - 1,1,1,1,1,1,1,1,1,572, - 5355,564,313,362,1,2194,786,5863,1,1, - 1,1106,5355,45,412,5764,234,5399,39,1189, - 362,5038,5684,1,5038,5005,5038,5038,768,5038, - 5851,5038,5038,5320,344,5035,5032,2528,931,622, - 1189,2573,145,5684,5038,5038,5786,5787,5788,5355, - 4995,4991,4394,4999,622,5290,2573,1820,5287,2703, - 5753,357,5038,5355,5035,5032,4394,931,622,1189, - 2573,1033,5684,5355,5786,5787,5788,5038,1,4995, - 4991,4394,4999,622,5323,2573,5038,5038,5038,5038, - 2250,5038,5038,1304,5355,3791,1777,1734,1691,1648, - 1605,1562,1519,1476,1433,1390,5038,5038,5038,5038, - 5038,5038,5038,5038,5038,5038,5038,5038,5038,5038, - 5038,5355,2030,5355,5038,5038,5038,5038,5038,5038, - 5038,5038,5038,5038,5038,5038,5038,5355,5038,5038, - 5184,5792,141,5184,2250,5184,5184,450,5184,3791, - 5184,5184,5711,366,4995,4991,2528,4999,622,1, - 2573,124,1,5184,5184,1,4995,4991,5258,4999, - 5264,5355,5261,5365,3434,3255,5364,43,5053,5053, - 126,5184,1,4995,4991,2528,4999,622,45,2573, - 5196,5008,5399,3434,3255,191,5184,1,4995,4991, - 4394,4999,622,5355,2573,5184,5184,5184,5184,5355, - 5184,5184,1304,5397,312,4995,4991,4394,4999,622, - 5290,2573,1159,5287,5355,5184,5184,5184,5184,5184, - 5184,5184,5184,5184,5184,5184,5184,5184,5184,5184, - 5355,1304,2288,5184,5184,5184,5184,5184,5184,5184, - 5184,5184,5184,5184,5184,5184,5199,5184,5184,1, - 4995,4991,3793,4999,3894,3965,2573,444,3987,5059, - 2030,5355,3943,3916,5086,5092,5065,5068,5080,5077, - 5083,5074,5071,5062,5089,4031,4009,5380,3852,1065, - 1207,5382,1108,3599,1155,393,5383,5381,1037,386, - 5376,5378,5379,138,5377,1,5246,5246,4296,5243, - 3292,1189,590,362,5684,713,1345,5352,1,5355, - 35,2680,45,45,386,319,340,512,45,5035, - 5032,3793,931,3894,3965,2573,5270,3987,1338,713, - 2848,3943,3916,5624,5622,5631,5630,5626,5627,5625, - 5628,5629,5632,5623,4031,4009,5380,3852,1065,1207, - 5382,1108,3599,1155,713,5383,5381,1037,5050,5376, - 5378,5379,1,5377,5355,5035,5032,1304,5399,362, - 167,121,5367,5355,1304,1345,340,3543,340,5355, - 5029,5365,340,420,5364,3052,362,5359,125,5362, - 45,5035,5032,3793,931,3894,3965,2573,5026,3987, - 1338,3434,3255,3943,3916,5624,5622,5631,5630,5626, - 5627,5625,5628,5629,5632,5623,4031,4009,5380,3852, - 1065,1207,5382,1108,3599,1155,5366,5383,5381,1037, - 1,5376,5378,5379,387,5377,167,1,4995,4991, - 4394,4999,622,4268,2573,312,5355,1345,312,5355, - 5374,5375,5029,147,5035,5032,3793,931,3894,3965, - 2573,5355,3987,1338,3472,626,3943,3916,5624,5622, - 5631,5630,5626,5627,5625,5628,5629,5632,5623,4031, - 4009,5380,3852,1065,1207,5382,1108,3599,1155,45, - 5383,5381,1037,5399,5376,5378,5379,5358,5377,344, - 45,45,2680,5399,129,1189,5355,8,5684,163, - 1345,5355,4053,566,5363,5293,45,45,45,5035, - 5032,3793,931,3894,3965,2573,5026,3987,1338,2647, - 320,3943,3916,5624,5622,5631,5630,5626,5627,5625, - 5628,5629,5632,5623,4031,4009,5380,3852,1065,1207, - 5382,1108,3599,1155,304,5383,5381,1037,1304,5376, - 5378,5379,346,5377,5658,1936,1,4995,4991,2528, - 4999,622,5355,2573,454,1345,3393,5362,5293,1863, - 5029,1,4995,4991,3793,4999,3894,3965,2573,1304, - 3987,5059,2728,2821,3943,3916,5086,5092,5065,5068, - 5080,5077,5083,5074,5071,5062,5089,4031,4009,5380, - 3852,1065,1207,5382,1108,3599,1155,1,5383,5381, - 1037,1304,5376,5378,5379,1304,5377,1,4995,4991, - 5258,4999,5264,5044,5261,5355,5035,5032,1345,931, - 622,5355,2573,5355,45,45,45,5035,5032,3793, - 931,3894,3965,2573,5359,3987,1338,5355,5355,3943, - 3916,5624,5622,5631,5630,5626,5627,5625,5628,5629, - 5632,5623,4031,4009,5380,3852,1065,1207,5382,1108, - 3599,1155,5355,5383,5381,1037,402,5376,5378,5379, - 1,5377,3524,2154,5252,5820,5814,5255,5355,5818, - 5355,5374,5375,5812,5813,441,45,45,5367,5399, - 97,5193,511,5181,5190,5355,5843,5844,453,5821, - 1,228,98,1,1,3044,1,3292,5249,5355, - 5320,5249,242,5617,5823,5202,5624,5622,5631,5630, - 5626,5627,5625,5628,5629,5632,5623,5355,5355,648, - 44,5023,5020,866,994,5017,2703,2573,5824,5822, - 5845,5620,5366,5355,5358,5355,5806,5691,5692,5614, - 5621,5593,5619,5618,5615,5616,5594,5047,5834,5833, - 5846,5323,870,5815,5816,5839,5840,5837,5838,5817, - 5819,5841,5842,293,5374,5375,5847,1885,5827,5828, - 5829,5825,5826,5835,5836,5831,5830,5832,45,5035, - 5032,3793,931,3894,3965,2573,1895,3987,1338,5355, - 292,3943,3916,5624,5622,5631,5630,5626,5627,5625, - 5628,5629,5632,5623,4031,4009,5380,3852,1065,1207, - 5382,1108,3599,1155,5355,5383,5381,1037,5355,5376, - 5378,5379,812,5377,45,5035,5032,3793,931,3894, - 3965,2573,5355,3987,1338,1345,5355,3943,3916,5624, - 5622,5631,5630,5626,5627,5625,5628,5629,5632,5623, - 4031,4009,5380,3852,1065,1207,5382,1108,3599,1155, - 669,5383,5381,1037,3801,5376,5378,5379,2110,5377, - 347,45,5035,5032,3793,931,3894,3965,2573,5355, - 3987,1338,1901,1644,3943,3916,5624,5622,5631,5630, - 5626,5627,5625,5628,5629,5632,5623,4031,4009,5380, - 3852,1065,1207,5382,1108,3599,1155,5355,5383,5381, - 1037,5355,5376,5378,5379,909,5377,45,5035,5032, - 4759,931,3894,3965,2573,5355,3987,1338,1345,1304, - 3943,3916,5624,5622,5631,5630,5626,5627,5625,5628, - 5629,5632,5623,4031,4009,5380,3852,1065,1207,5382, - 1108,3599,1155,142,5383,5381,1037,5355,5376,5378, - 5379,5355,5377,45,5035,5032,3793,931,3894,3965, - 2573,1,3987,1338,4305,1902,3943,3916,5624,5622, - 5631,5630,5626,5627,5625,5628,5629,5632,5623,4031, - 4009,5380,3852,1065,1207,5382,1108,3599,1155,294, - 5383,5381,1037,5355,5376,5378,5379,1,5377,45, - 5035,5032,3793,931,3894,3965,2573,5355,3987,1338, - 4164,361,3943,3916,5624,5622,5631,5630,5626,5627, - 5625,5628,5629,5632,5623,4031,4009,5380,3852,1065, - 1207,5382,1108,3599,1155,5355,5383,5381,1037,5355, - 5376,5378,5379,2288,5377,5355,5035,5032,5355,5399, - 101,45,45,5355,5399,671,5299,5617,1992,5296, - 5624,5622,5631,5630,5626,5627,5625,5628,5629,5632, - 5623,5355,5355,5035,5032,5355,931,5187,4178,2573, - 5355,2594,5355,5035,5032,5620,931,622,5713,2573, - 5355,5691,5692,5614,5621,5593,5619,5618,5615,5616, - 5594,5355,128,246,5168,5164,5750,5172,577,5361, - 862,5751,5752,671,5355,5119,4163,4188,5155,5161, - 5134,5137,5149,5146,5152,5143,5140,5131,5158,5355, - 49,5178,5178,35,386,386,5208,386,386,5208, - 386,5208,5208,5110,5208,386,5355,5014,5011,5104, - 5101,5128,5107,5098,5113,5116,5125,5122,5095,54, - 5355,5374,5375,5375,5750,622,5175,2573,862,5751, - 5752,4844,2990,386,5355,5360,106,5002,5355,386, - 386,386,386,386,386,386,386,386,386,5355, - 2728,2821,5208,38,387,387,5205,387,387,5205, - 387,5205,5205,5375,5205,387,5355,5208,5355,4053, - 566,4198,5355,1,5308,5308,234,5308,234,234, - 234,5311,234,5355,234,8886,54,5355,5035,5032, - 5374,931,5187,387,2573,4441,5355,8883,8883,387, - 387,387,387,387,387,387,387,387,387,5305, - 3098,2116,5205,1,5308,5308,234,5308,234,234, - 234,234,234,2556,234,8886,422,5205,5355,2930, - 5374,2770,5397,2650,1,5308,5308,234,5308,234, - 234,234,5317,234,225,234,8886,1,5355,5305, - 5355,5355,43,5053,5053,5326,5365,2073,1682,5364, - 5851,43,5053,5053,5355,5355,5053,5355,4322,2930, - 5305,2770,3297,2650,1,5308,5308,234,5308,234, - 234,234,5311,234,374,234,8886,123,5397,229, - 2930,5355,2770,3543,2650,1,2934,3684,1,1, - 5851,5617,2680,5329,445,224,5361,5196,3318,5366, - 5305,1,5308,5308,234,5308,234,234,234,5311, - 234,5851,234,8886,5355,311,5355,5234,5231,5620, - 2930,132,2770,1,2650,5691,5692,5614,5621,5593, - 5619,5618,5615,5616,5594,225,105,5305,1,5308, - 5308,234,5308,234,234,234,234,234,1304,234, - 8886,5851,5397,134,2897,133,5362,2930,3344,2770, - 122,2650,5360,5199,3504,2487,3543,42,5284,5281, - 3472,626,225,5355,5305,1,5308,5308,234,5308, - 234,234,234,234,234,4381,234,8886,5851,5056, - 51,5240,5240,2990,2930,2078,2770,2487,2650,2487, - 5355,1,5308,5308,234,5308,234,234,234,234, - 234,5305,234,8886,4408,5355,2433,2406,230,81, - 5355,5211,3320,5214,5355,5851,5237,394,5374,5375, - 5617,2930,1,2770,1,2650,1,5305,43,5053, - 5053,5355,524,231,5365,5423,5424,5364,2433,2406, - 2433,2406,1,3472,626,5617,5355,2930,5620,2770, - 169,2650,5851,232,5691,5692,5614,5621,5593,5619, - 5618,5615,5616,5594,3066,5617,713,5355,3172,5355, - 8495,8428,369,5620,5355,5277,5273,5355,5851,5691, - 5692,5614,5621,5593,5619,5618,5615,5616,5594,5355, - 8495,8428,5355,5620,5355,4473,367,3727,524,5691, - 5692,5614,5621,5593,5619,5618,5615,5616,5594,1, - 5397,2073,79,416,41,656,169,197,5355,109, - 197,3305,4501,283,5355,5355,5314,2658,4504,795, - 504,502,5355,5355,5355,4797,5355,4808,5355,4810, - 5355,1213,5355,3503,5355,4811,5355,4761,5355,5355, - 5355,517,4831,506,2,5355,5302,1,5355,5355, - 5355,5355,3876,5355,5355,1260,5355,5355,5355,5355, - 5355,5355,5355,5355,5355,5355,5355,5355,5355,5355, - 5355,5355,2164,3323,5355,2628,5355,5355,5355,5355, - 5355,5355,5355,5355,5355,5355,5355,5355,43,4478, - 4817,5355,5355,5355,5355,5355,2953,5355,5355,3704, - 5355,3007,5355,5355,5355,3323,5355,5355,5355,1949, - 5355,5355,2541,5355,5355,5355,5355,5355,5355,5355, - 5355,5355,5355,5355,5355,5355,5355,5355,5355,5355, - 5355,5355,5355,5355,5355,5355,5355,5355,5355,5355, - 5355,5355,5355,5355,5355,5355,5355,5355,5355,5355, - 5355,5355,5355,5355,5355,5355,5355,5355,5355,5355, - 2990 + 1,1,1,1,1,230,1,1,8627,1, + 1,1,1,1,1,5314,5328,5329,5252,5314, + 1,40,1300,5326,5314,5314,4280,336,5264,336, + 4049,562,336,5324,4049,562,5325,1,1,1, + 3320,5526,5314,2855,1,2612,290,1,5314,1, + 5323,5314,8620,8620,5279,5288,100,5320,5314,1, + 4954,4950,3789,4958,3890,3961,2569,5806,3983,5018, + 5045,5051,5024,5027,5039,5036,5042,5033,5030,5021, + 5048,5325,1,420,5282,5314,5314,5314,1891,1476, + 5324,5314,2664,1897,3939,3912,4027,4005,5334,5351, + 3848,1024,1203,5336,1061,3595,1151,5323,5337,5335, + 1018,5330,5332,5333,1,5331,1988,1898,5314,5321, + 2074,1341,76,5319,5279,3787,40,40,508,40, + 4994,4991,3789,927,3890,3961,2569,5229,3983,1334, + 5579,5577,5586,5585,5581,5582,5580,5583,5584,5587, + 5578,5314,5193,5190,5282,3130,3334,3288,5314,5377, + 5378,4184,2664,5314,3939,3912,4027,4005,5334,1, + 3848,1024,1203,5336,1061,3595,1151,192,5337,5335, + 1018,5330,5332,5333,370,5331,3168,46,5199,5199, + 5314,1341,1,4278,192,4988,5314,365,5314,5351, + 520,5321,40,4994,4991,3789,927,3890,3961,2569, + 4985,3983,1334,5579,5577,5586,5585,5581,5582,5580, + 5583,5584,5587,5578,1,5314,1,5314,652,38, + 5012,5012,164,5324,358,5196,382,3939,3912,4027, + 4005,5334,791,3848,1024,1203,5336,1061,3595,1151, + 5323,5337,5335,1018,5330,5332,5333,5314,5331,5314, + 4279,5314,5236,5232,1341,4159,520,1209,4988,142, + 4994,4991,3789,927,3890,3961,2569,3062,3983,1334, + 5579,5577,5586,5585,5581,5582,5580,5583,5584,5587, + 5578,5009,5314,363,5314,4469,4264,4497,164,5314, + 358,412,3376,3040,3939,3912,4027,4005,5334,5351, + 3848,1024,1203,5336,1061,3595,1151,358,5337,5335, + 1018,5330,5332,5333,104,5331,440,4500,5314,5314, + 279,1341,5708,5273,524,5314,40,40,40,4994, + 4991,3789,927,3890,3961,2569,4985,3983,1334,5579, + 5577,5586,5585,5581,5582,5580,5583,5584,5587,5578, + 36,5314,5314,1256,2624,441,307,5314,764,1, + 4594,2160,5314,3939,3912,4027,4005,5334,5314,3848, + 1024,1203,5336,1061,3595,1151,5314,5337,5335,1018, + 5330,5332,5333,5314,5331,500,2864,5314,5314,2844, + 1341,2112,5314,5314,4988,1,4954,4950,3789,4958, + 3890,3961,2569,5314,3983,5018,5045,5051,5024,5027, + 5039,5036,5042,5033,5030,5021,5048,3293,5314,5314, + 3513,3314,3697,3340,2106,2893,3027,4377,513,5314, + 3939,3912,4027,4005,5334,129,3848,1024,1203,5336, + 1061,3595,1151,128,5337,5335,1018,5330,5332,5333, + 5668,5331,5314,498,1,4813,5314,1341,4301,4804, + 2949,3003,40,40,40,4994,4991,3789,927,3890, + 3961,2569,5318,3983,1334,5579,5577,5586,5585,5581, + 5582,5580,5583,5584,5587,5578,5314,49,49,1, + 2483,5329,5328,5314,5314,74,5314,5314,2483,3939, + 3912,4027,4005,5334,5170,3848,1024,1203,5336,1061, + 3595,1151,5173,5337,5335,1018,5330,5332,5333,1, + 5331,5314,2150,4840,5775,5769,5314,502,5773,4806, + 2429,2402,5314,5314,5314,3499,4807,4757,2429,2402, + 186,4474,5329,5328,709,4316,2,3040,2069,3278, + 5261,3727,5314,1,5767,5768,5798,5799,5314,5314, + 5776,4437,5314,5314,5314,5314,5314,3513,5314,5314, + 5314,5314,5314,5314,5778,5314,5314,5314,5314,5314, + 5314,5314,5317,644,5314,5314,854,862,5779,5777, + 5800,1945,2595,5314,5314,5314,5314,2537,5314,5314, + 5314,38,5314,5314,5314,5314,5314,5789,5788,5801, + 5314,5314,5770,5771,5794,5795,5792,5793,5772,5774, + 5796,5797,5314,5314,5314,5802,5314,5782,5783,5784, + 5780,5781,5790,5791,5786,5785,5787,40,4994,4991, + 3789,927,3890,3961,2569,5314,3983,1334,5579,5577, + 5586,5585,5581,5582,5580,5583,5584,5587,5578,5314, + 5314,5314,5311,5314,5314,5314,5314,5314,5314,5314, + 5314,5314,3939,3912,4027,4005,5334,5314,3848,1024, + 1203,5336,1061,3595,1151,5314,5337,5335,1018,5330, + 5332,5333,5314,5331,5314,5314,5314,5314,5314,1341, + 40,4994,4991,3789,927,3890,3961,2569,5314,3983, + 1334,5579,5577,5586,5585,5581,5582,5580,5583,5584, + 5587,5578,5314,5314,5314,5314,5314,5314,5314,5314, + 5314,5314,5314,5314,5314,3939,3912,4027,4005,5334, + 5314,3848,1024,1203,5336,1061,3595,1151,5314,5337, + 5335,1018,5330,5332,5333,5314,5331,5314,5314,5314, + 5314,5314,5314,5314,1640,40,4994,4991,3789,927, + 3890,3961,2569,5314,3983,1334,5579,5577,5586,5585, + 5581,5582,5580,5583,5584,5587,5578,5314,5314,5314, + 5314,5314,5314,5314,5314,5314,5314,5314,5314,5314, + 3939,3912,4027,4005,5334,5314,3848,1024,1203,5336, + 1061,3595,1151,5314,5337,5335,1018,5330,5332,5333, + 5314,5331,5314,5314,5314,5314,5314,1341,40,4994, + 4991,4755,927,3890,3961,2569,5314,3983,1334,5579, + 5577,5586,5585,5581,5582,5580,5583,5584,5587,5578, + 5314,5314,5314,5314,5314,5314,5314,5314,5314,5314, + 5314,5314,5314,3939,3912,4027,4005,5334,5314,3848, + 1024,1203,5336,1061,3595,1151,5314,5337,5335,1018, + 5330,5332,5333,5314,5331,40,4994,4991,3789,927, + 3890,3961,2569,5314,3983,1334,5579,5577,5586,5585, + 5581,5582,5580,5583,5584,5587,5578,5314,5314,5314, + 5314,5314,5314,5314,5314,5314,5314,5314,5314,5314, + 3939,3912,4027,4005,5334,5314,3848,1024,1203,5336, + 1061,3595,1151,5314,5337,5335,1018,5330,5332,5333, + 5314,5331,40,4994,4991,3789,927,3890,3961,2569, + 5314,3983,1334,5579,5577,5586,5585,5581,5582,5580, + 5583,5584,5587,5578,5314,5314,5314,5314,5314,5314, + 5314,5314,5314,5314,5314,5314,5314,3939,3912,4027, + 4005,5334,5314,3848,1024,1203,5336,1061,3595,1151, + 5314,5337,5335,1018,5330,5332,5333,5314,5331,5314, + 4994,4991,5314,5353,5314,5314,5314,5314,5314,667, + 5579,5577,5586,5585,5581,5582,5580,5583,5584,5587, + 5578,5575,5646,5647,5314,5569,5576,5572,5548,5574, + 5573,5570,5571,5549,5314,5314,5314,5314,5314,5705, + 5314,5314,5314,5314,5314,5314,5314,5314,5314,242, + 5127,5123,5314,5131,5314,5314,858,5706,5707,667, + 5114,5120,5093,5096,5108,5105,5111,5102,5099,5090, + 5117,5069,5063,5060,5314,5087,5066,5078,5057,5072, + 5075,5084,5081,5054,5314,5314,5314,5314,5314,5705, + 30,382,382,5167,382,382,5167,382,5167,5167, + 5314,5314,5314,5314,5314,5314,858,5706,5707,5314, + 5314,5314,382,382,382,5167,382,382,382,382, + 382,382,382,382,382,5314,5314,5314,5314,5314, + 5314,5314,5314,5314,5314,5314,5314,5314,5314,5314, + 5314,5314,5314,5314,5314,4961,5314,5314,5314,5314, + 5314,5314,5314,5314,5167,5314,5314,5314,5314,5314, + 5314,5314,5314,5314,5167,33,383,383,5164,383, + 383,5164,383,5164,5164,5314,5314,5314,5314,5314, + 5314,5314,5314,5314,5314,5314,5314,383,383,383, + 5164,383,383,383,383,383,383,383,383,383, + 5314,5314,5314,5314,224,5314,5314,5314,5314,5314, + 5314,5314,5314,5314,5314,5579,5577,5586,5585,5581, + 5582,5580,5583,5584,5587,5578,5575,5646,5647,5164, + 5569,5576,5572,5548,5574,5573,5570,5571,5549,5164 }; }; public final static char termAction[] = TermAction.termAction; @@ -1729,59 +1799,59 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface Asb { public final static char asb[] = {0, - 878,1,10,3,3,457,810,810,630,810, - 457,173,451,1063,417,135,227,708,810,17, - 17,807,670,268,224,810,810,17,457,1067, - 1002,980,224,451,457,803,224,417,125,895, - 939,708,708,708,708,1065,939,401,175,418, - 418,418,418,418,418,418,418,418,812,818, - 823,820,827,825,832,830,834,833,835,271, - 836,268,851,17,17,1063,991,1002,895,1002, - 860,1002,862,1002,986,1065,457,268,268,17, - 562,455,457,322,803,460,125,135,401,670, - 670,670,670,457,743,224,224,215,401,898, - 669,980,401,812,979,979,743,417,418,418, - 418,418,418,418,418,418,418,418,418,418, - 418,418,418,418,418,418,418,417,417,417, - 417,417,417,417,417,417,417,417,417,418, - 796,795,796,807,324,457,894,369,467,472, - 895,478,457,457,457,369,796,1067,457,562, - 803,802,417,135,224,224,796,796,796,796, - 369,224,418,1063,591,581,580,483,1009,1009, - 1065,175,268,669,417,224,454,456,454,224, - 268,820,820,818,818,818,825,825,825,825, - 823,823,830,827,827,833,832,834,1079,835, - 401,324,894,473,894,369,894,478,478,457, - 369,457,562,803,124,939,939,939,939,457, - 457,215,224,593,595,457,980,418,670,816, - 180,224,457,456,980,417,125,457,324,1079, - 863,708,371,70,1069,324,894,894,870,457, - 478,125,519,124,457,122,134,417,417,417, - 417,939,939,224,585,573,584,595,369,455, - 224,816,1063,1067,457,455,980,524,895,796, - 708,454,893,1071,939,569,697,871,457,125, - 418,457,122,122,224,224,224,224,743,743, - 788,417,582,582,589,1063,710,224,457,816, - 817,816,417,180,75,812,1067,455,524,524, - 78,340,455,894,894,451,856,702,418,1079, - 12,595,870,457,1065,1065,457,224,224,788, - 417,417,593,573,788,1044,816,743,418,268, - 75,857,125,786,941,313,939,863,114,524, - 524,340,455,894,895,1065,1071,418,418,595, - 457,457,457,790,788,817,224,268,77,313, - 786,798,1065,125,795,708,128,128,857,895, - 381,569,457,939,224,457,457,790,790,78, - 524,857,856,224,1065,457,340,78,340,794, - 794,888,382,1065,457,743,890,939,790,524, - 451,857,457,457,340,670,670,888,381,1079, - 418,1079,857,380,939,939,939,382,939,457, - 279,857,857,457,895,224,890,596,125,457, - 857,795,373,939,373,382,1079,382,401,401, - 399,868,401,857,857,15,888,892,223,857, - 628,710,382,224,451,224,399,313,939,224, - 888,892,670,128,224,224,1057,382,15,382, - 857,313,417,382,379,794,895,895,1059,417, - 380,743,857,224,454,382,224,857,382 + 113,1,10,3,3,219,727,727,647,727, + 219,261,213,1063,179,223,315,604,727,17, + 17,724,687,356,312,727,727,17,219,1067, + 1002,565,312,213,219,720,312,179,126,894, + 121,604,604,604,604,1065,121,163,263,180, + 180,180,180,180,180,180,180,180,729,735, + 740,737,744,742,749,747,751,750,752,359, + 753,356,768,17,17,1063,991,1002,894,1002, + 791,1002,793,1002,986,1065,219,356,356,17, + 575,217,219,410,720,461,126,223,163,687, + 687,687,687,219,842,312,312,303,163,897, + 686,565,163,729,564,564,842,179,180,180, + 180,180,180,180,180,180,180,180,180,180, + 180,180,180,180,180,180,180,179,179,179, + 179,179,179,179,179,179,179,179,179,180, + 789,788,789,724,412,219,893,457,468,478, + 894,473,219,219,219,457,789,1067,219,575, + 720,719,179,223,312,312,789,789,789,789, + 457,312,180,1063,608,590,589,484,1009,1009, + 1065,263,356,686,179,312,216,218,216,312, + 356,737,737,735,735,735,742,742,742,742, + 740,740,747,744,744,750,749,751,1079,752, + 163,412,893,479,893,457,893,473,473,219, + 457,219,575,720,125,121,121,121,121,219, + 219,303,312,610,612,219,565,180,687,733, + 268,312,219,218,565,179,126,219,412,1079, + 794,604,459,70,1069,412,893,893,834,219, + 473,126,520,125,219,123,222,179,179,179, + 179,121,121,312,594,582,593,612,457,217, + 312,733,1063,1067,219,217,565,525,894,789, + 604,216,892,1071,121,571,714,835,219,126, + 180,219,123,123,312,312,312,312,842,842, + 781,179,591,591,606,1063,799,312,219,733, + 734,733,179,268,75,729,1067,217,525,525, + 78,428,217,893,893,213,773,598,180,1079, + 12,612,834,219,1065,1065,219,312,312,781, + 179,179,610,582,781,1044,733,842,180,356, + 75,774,126,885,940,401,121,794,978,525, + 525,428,217,893,894,1065,1071,180,180,612, + 219,219,219,783,781,734,312,356,77,401, + 885,777,1065,126,788,604,129,129,774,894, + 143,571,219,121,312,219,219,783,783,78, + 525,774,773,312,1065,219,428,78,428,787, + 787,887,144,1065,219,842,889,121,783,525, + 213,774,219,219,428,687,687,887,143,1079, + 180,1079,774,142,121,121,121,144,121,219, + 367,774,774,219,894,312,889,613,126,219, + 774,788,135,121,135,144,1079,144,163,163, + 161,832,163,774,774,15,887,891,311,774, + 645,799,144,312,213,312,161,401,121,312, + 887,891,687,129,312,312,1057,144,15,144, + 774,401,179,144,141,787,894,894,1059,179, + 142,842,774,312,216,144,312,774,144 }; }; public final static char asb[] = Asb.asb; @@ -1789,113 +1859,113 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface Asr { public final static byte asr[] = {0, - 121,0,75,68,73,91,74,62,59,121, - 3,8,70,11,69,0,48,15,16,61, - 46,30,63,17,31,65,49,12,32,18, - 50,51,19,20,52,64,53,33,21,22, - 34,54,35,66,37,57,38,55,39,67, - 23,40,24,47,25,41,42,43,28,3, - 26,27,9,6,13,14,29,68,45,7, - 1,2,4,10,5,0,62,61,46,17, - 65,49,18,50,51,19,20,52,53,21, - 22,54,66,55,67,23,40,24,47,25, - 16,15,48,8,3,9,6,11,58,60, - 87,12,36,7,1,2,5,4,10,56, - 0,11,121,70,8,71,0,68,69,70, - 1,2,0,71,57,26,27,9,6,13, - 14,29,34,3,4,41,45,42,43,28, - 38,32,37,16,25,15,21,19,20,22, - 23,18,17,24,10,31,35,33,30,39, - 62,8,7,5,1,2,64,63,0,92, - 90,13,14,93,94,88,89,44,95,96, - 97,98,99,100,101,102,107,73,91,69, - 108,109,110,111,112,113,114,115,116,117, - 118,71,11,121,68,1,2,9,6,4, - 3,59,70,74,8,0,63,64,3,10, - 31,35,33,30,39,16,25,15,21,19, - 20,22,23,18,17,24,41,45,42,43, - 28,38,32,37,5,7,4,26,27,9, - 6,13,14,29,34,1,2,118,8,0, - 68,73,91,70,118,74,71,121,15,16, - 30,63,17,31,32,18,19,20,64,33, - 21,22,34,35,37,57,38,39,10,23, - 24,25,41,42,43,28,26,27,13,14, - 29,45,8,9,11,5,7,1,2,4, - 3,6,0,87,56,7,103,104,105,58, - 8,3,9,6,5,73,71,11,72,48, - 15,16,61,46,17,65,49,12,18,50, - 51,19,20,52,53,21,22,54,66,55, - 10,67,23,40,24,47,25,4,1,2, - 36,0,87,103,104,105,36,73,119,122, - 71,72,75,58,56,60,77,79,85,83, - 76,81,82,84,86,62,78,80,11,8, - 48,61,46,65,49,12,50,51,52,53, - 54,66,55,67,40,47,57,63,64,10, - 31,35,33,30,39,16,25,15,21,19, - 20,22,23,18,17,24,41,45,42,43, - 28,38,32,37,26,27,13,14,29,34, - 9,6,3,4,7,5,1,2,0,8, - 73,118,74,11,70,0,4,8,73,62, - 0,4,8,73,62,44,0,1,2,8, - 71,0,48,15,16,46,17,49,12,18, - 50,51,19,20,52,7,53,21,22,54, - 55,23,40,24,47,25,1,2,8,59, - 9,6,5,4,74,11,3,0,8,70, - 71,69,0,60,48,15,16,61,46,17, - 65,49,87,12,18,50,51,19,20,52, - 56,53,21,22,54,66,55,10,67,23, - 58,40,24,47,25,8,3,9,4,71, - 11,7,6,5,1,2,36,0,8,62, - 70,0,9,6,7,5,4,1,2,3, - 59,68,69,70,8,74,91,0,5,7, - 3,59,6,9,91,48,15,16,46,17, - 65,49,12,18,50,51,19,20,52,53, - 21,22,54,66,55,10,67,23,40,24, - 47,25,1,2,4,74,8,61,0,64, - 63,13,14,6,93,94,99,9,100,5, - 29,69,44,68,111,112,108,109,110,116, - 115,117,89,88,113,114,97,98,95,96, - 101,102,26,27,70,90,106,59,3,10, - 65,61,66,67,16,25,15,21,19,20, - 22,23,18,17,24,48,53,54,12,52, - 51,49,46,47,50,55,1,2,4,40, - 0,73,8,59,69,70,11,44,0,48, - 15,16,61,46,17,65,49,12,18,50, - 51,19,20,52,53,21,22,54,66,55, - 10,67,23,40,24,47,25,1,2,4, - 91,0,8,74,15,16,30,63,17,31, - 32,18,19,20,64,7,33,21,22,34, - 35,37,57,38,39,10,23,24,25,41, - 42,43,1,2,3,26,27,9,6,13, - 14,5,29,4,45,28,0,46,47,57, - 8,91,74,69,70,68,0,8,62,69, - 0,57,46,7,47,5,1,2,4,75, - 62,120,106,26,27,59,3,92,90,6, - 93,94,13,14,89,88,44,95,96,97, - 98,9,99,100,101,68,91,74,121,69, - 108,109,110,111,112,113,114,115,116,117, - 73,118,71,102,107,70,11,8,0,36, - 73,4,62,8,1,2,0,76,0,40, - 1,2,4,103,104,105,0,9,6,3, - 7,5,72,4,1,2,0,119,0,46, - 47,57,75,73,62,8,0,63,64,26, - 27,9,6,13,14,5,29,34,4,7, - 41,45,42,43,28,38,32,37,16,25, - 15,21,19,20,22,23,18,17,24,10, - 31,35,33,30,39,59,1,2,3,0, - 61,46,17,65,49,18,50,51,19,20, - 52,53,21,22,54,66,55,10,67,23, - 40,24,47,25,16,15,48,8,3,9, - 6,11,58,56,60,87,12,44,4,7, - 5,36,1,2,0,10,65,61,66,67, - 16,25,15,21,19,20,22,23,18,17, - 24,75,73,91,118,71,62,121,120,92, - 106,90,26,27,13,14,93,94,88,89, - 44,68,95,96,97,98,99,100,101,102, - 107,69,108,109,110,111,112,113,114,115, - 116,117,70,48,46,49,12,50,51,52, - 53,54,55,40,47,11,8,74,3,59, - 5,7,6,9,1,2,4,0,11,8, + 121,0,75,69,73,91,74,66,64,121, + 3,8,71,25,70,0,26,11,12,40, + 23,42,67,13,43,57,27,28,44,14, + 29,30,15,16,31,68,32,45,17,18, + 46,33,47,58,49,62,50,34,51,59, + 19,22,20,24,21,52,53,54,39,3, + 37,38,9,6,35,36,41,69,56,7, + 1,2,4,10,5,0,66,40,23,13, + 57,27,14,29,30,15,16,31,32,17, + 18,33,58,34,10,59,19,22,20,24, + 21,12,11,26,8,25,63,60,65,87, + 28,48,9,6,7,5,61,4,1,2, + 3,0,25,121,71,8,72,0,69,70, + 71,1,2,0,87,103,104,105,48,73, + 119,122,72,61,75,63,60,65,77,79, + 85,83,76,81,82,84,86,66,78,80, + 25,8,26,40,23,57,27,28,29,30, + 31,32,33,58,34,59,22,24,62,67, + 68,10,43,47,45,42,51,12,21,11, + 17,15,16,18,19,14,13,20,52,56, + 53,54,39,50,44,49,37,38,35,36, + 41,46,9,6,3,4,7,5,1,2, + 0,72,62,37,38,9,6,35,36,41, + 46,3,4,52,56,53,54,39,50,44, + 49,12,21,11,17,15,16,18,19,14, + 13,20,10,43,47,45,42,51,66,8, + 7,5,1,2,68,67,0,92,90,35, + 36,93,94,88,89,55,95,96,97,98, + 99,100,101,102,107,73,91,70,108,109, + 110,111,112,113,114,115,116,117,118,72, + 25,121,69,1,2,9,6,4,3,64, + 71,74,8,0,67,68,3,10,43,47, + 45,42,51,12,21,11,17,15,16,18, + 19,14,13,20,52,56,53,54,39,50, + 44,49,5,7,4,37,38,9,6,35, + 36,41,46,1,2,118,8,0,69,73, + 91,71,118,74,72,121,11,12,42,67, + 13,43,44,14,15,16,68,45,17,18, + 46,47,49,62,50,51,10,19,20,21, + 52,53,54,39,37,38,35,36,41,56, + 8,9,25,5,7,1,2,4,3,6, + 0,87,60,7,103,104,105,63,8,3, + 9,6,5,73,72,25,61,26,11,12, + 40,23,13,57,27,28,14,29,30,15, + 16,31,32,17,18,33,58,34,10,59, + 19,22,20,24,21,4,1,2,48,0, + 8,73,118,74,25,71,0,4,8,73, + 66,0,1,2,8,72,0,4,8,73, + 66,55,0,26,11,12,23,13,27,28, + 14,29,30,15,16,31,7,32,17,18, + 33,34,19,22,20,24,21,1,2,8, + 64,9,6,5,4,74,25,3,0,8, + 71,72,70,0,65,26,11,12,40,23, + 13,57,27,87,28,14,29,30,15,16, + 31,60,32,17,18,33,58,34,10,59, + 19,63,22,20,24,21,8,3,9,6, + 72,25,61,4,7,5,48,1,2,0, + 8,66,71,0,7,6,5,1,2,48, + 0,9,6,7,5,4,1,2,3,64, + 69,70,71,8,74,91,0,73,8,64, + 70,71,25,55,0,5,7,3,64,6, + 9,91,26,11,12,23,13,57,27,28, + 14,29,30,15,16,31,32,17,18,33, + 58,34,10,59,19,22,20,24,21,1, + 2,4,74,8,40,0,68,67,35,36, + 6,93,94,99,9,100,5,41,70,55, + 69,111,112,108,109,110,116,115,117,89, + 88,113,114,97,98,95,96,101,102,37, + 38,71,90,106,64,3,10,57,40,58, + 59,12,21,11,17,15,16,18,19,14, + 13,20,26,32,33,28,31,30,27,23, + 24,29,34,1,2,4,22,0,62,23, + 7,24,5,1,2,4,75,66,120,106, + 37,38,64,3,92,90,6,93,94,35, + 36,89,88,55,95,96,97,98,9,99, + 100,101,69,91,74,121,70,108,109,110, + 111,112,113,114,115,116,117,73,118,72, + 102,107,71,25,8,0,8,66,70,0, + 23,24,62,8,91,74,70,71,69,0, + 48,73,4,66,8,1,2,0,26,11, + 12,40,23,13,57,27,28,14,29,30, + 15,16,31,32,17,18,33,58,34,10, + 59,19,22,20,24,21,1,2,4,91, + 0,76,0,22,1,2,4,103,104,105, + 0,8,74,11,12,42,67,13,43,44, + 14,15,16,68,7,45,17,18,46,47, + 49,62,50,51,10,19,20,21,52,53, + 54,1,2,3,37,38,9,6,35,36, + 5,41,4,56,39,0,119,0,23,24, + 62,75,73,66,8,0,67,68,37,38, + 9,6,35,36,5,41,46,3,4,7, + 52,56,53,54,39,50,44,49,12,21, + 11,17,15,16,18,19,14,13,20,10, + 43,47,45,42,51,64,1,2,0,40, + 23,13,57,27,14,29,30,15,16,31, + 32,17,18,33,58,34,59,19,22,20, + 24,21,12,11,26,8,3,9,6,25, + 63,65,87,28,61,55,48,7,1,2, + 5,4,10,60,0,10,57,40,58,59, + 12,21,11,17,15,16,18,19,14,13, + 20,75,73,91,118,72,66,121,120,92, + 106,90,37,38,35,36,93,94,88,89, + 55,69,95,96,97,98,99,100,101,102, + 107,70,108,109,110,111,112,113,114,115, + 116,117,71,26,23,27,28,29,30,31, + 32,33,34,22,24,25,8,74,3,64, + 5,7,6,9,1,2,4,0,25,8, 5,7,3,1,2,4,6,9,73,0 }; }; @@ -1904,59 +1974,59 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface Nasb { public final static char nasb[] = {0, - 104,12,54,20,20,221,12,12,111,12, - 141,107,104,186,92,57,75,12,12,254, - 254,49,5,80,262,12,12,254,109,12, - 12,38,262,203,141,254,262,59,254,131, - 12,12,12,12,12,11,12,213,141,59, - 59,217,59,59,59,59,59,59,12,12, - 12,12,12,12,12,12,12,12,12,59, - 12,80,12,28,28,186,238,239,131,239, - 153,239,45,239,232,10,141,80,80,28, - 97,107,141,12,124,12,139,254,213,33, - 33,33,33,141,121,262,262,134,1,59, - 15,38,213,12,22,22,121,118,59,59, - 59,59,59,59,59,59,59,59,59,59, - 59,59,59,59,59,59,59,59,59,59, - 59,59,59,59,59,59,59,59,118,59, - 12,12,12,207,254,155,254,171,254,12, - 131,254,171,141,109,12,12,12,109,38, - 254,124,59,57,262,262,12,12,12,12, - 42,262,59,186,133,20,20,12,12,12, - 10,141,80,33,92,262,106,141,106,262, - 80,12,12,12,12,12,12,12,12,12, + 104,12,56,20,20,228,12,12,113,12, + 138,107,104,189,92,59,77,12,12,258, + 258,49,5,82,174,12,12,258,109,12, + 12,38,174,207,138,258,174,61,258,131, + 12,12,12,12,12,11,12,220,138,61, + 61,224,61,61,61,61,61,61,12,12, + 12,12,12,12,12,12,12,12,12,61, + 12,82,12,28,28,189,242,243,131,243, + 152,243,45,243,236,10,138,82,82,28, + 97,107,138,12,111,12,170,258,220,33, + 33,33,33,138,197,174,174,134,1,61, + 15,38,220,12,22,22,197,123,61,61, + 61,61,61,61,61,61,61,61,61,61, + 61,61,61,61,61,61,61,61,61,61, + 61,61,61,61,61,61,61,61,123,61, + 12,12,12,211,258,154,258,166,258,12, + 131,258,166,138,109,12,12,12,109,38, + 258,111,61,59,174,174,12,12,12,12, + 42,174,61,189,133,20,20,12,12,12, + 10,138,82,33,92,174,106,138,106,174, + 82,12,12,12,12,12,12,12,12,12, 12,12,12,12,12,12,12,12,12,12, - 28,241,254,254,95,37,95,254,222,109, - 37,155,97,124,139,12,12,12,12,155, - 109,166,262,148,254,141,38,59,33,254, - 65,262,141,174,38,59,139,141,164,12, - 17,12,12,13,248,241,95,95,177,155, - 222,139,12,12,155,40,56,118,118,118, - 118,12,12,262,12,102,12,191,36,155, - 262,90,207,12,221,155,38,254,131,12, - 12,11,254,181,12,12,11,68,171,139, - 59,222,40,12,262,262,262,262,121,121, - 254,59,12,12,101,186,191,262,155,254, - 199,12,118,207,175,12,12,107,194,254, - 224,254,171,254,82,203,164,12,59,12, - 88,254,158,171,11,11,109,262,262,124, - 59,59,148,201,254,12,90,121,59,80, - 175,164,139,12,224,249,12,46,13,224, - 194,191,107,82,229,144,104,59,59,191, - 109,171,171,254,124,199,262,80,130,181, - 12,12,11,139,12,12,52,52,164,229, - 138,12,171,12,262,109,109,70,254,224, - 254,164,12,262,11,171,191,224,254,12, - 12,254,115,144,109,121,254,12,70,194, - 104,164,171,18,191,33,33,86,126,12, - 59,12,164,12,12,12,12,127,12,222, - 162,164,164,222,72,262,124,260,139,18, - 164,12,84,12,12,127,12,127,264,264, - 189,12,264,164,164,12,254,254,262,164, - 12,33,127,262,104,262,256,254,12,262, - 86,70,33,52,262,262,254,127,12,127, - 164,104,118,127,84,12,72,72,102,59, - 12,210,164,262,106,127,262,164,127 + 28,245,258,258,95,37,95,258,229,109, + 37,154,97,111,170,12,12,12,12,154, + 109,161,174,147,258,138,38,61,33,258, + 67,174,138,117,38,61,170,138,159,12, + 17,12,12,13,252,245,95,95,176,154, + 229,170,12,12,154,40,58,123,123,123, + 123,12,12,174,12,102,12,194,36,154, + 174,90,211,12,228,154,38,258,131,12, + 12,11,258,184,12,12,11,70,166,170, + 61,229,40,12,174,174,174,174,197,197, + 258,61,12,12,101,189,194,174,154,258, + 141,12,123,211,118,12,12,107,200,258, + 231,258,166,258,84,207,159,12,61,12, + 88,258,180,166,11,11,109,174,174,111, + 61,61,147,205,258,12,90,197,61,82, + 118,159,170,12,231,253,12,46,13,231, + 200,194,107,84,217,143,104,61,61,194, + 109,166,166,258,111,141,174,82,130,184, + 12,12,11,170,12,12,52,52,159,217, + 169,12,166,12,174,109,109,72,258,231, + 258,159,12,174,11,166,194,231,258,12, + 12,258,120,143,109,197,258,12,72,200, + 104,159,166,18,194,33,33,86,126,12, + 61,12,159,12,12,12,12,127,12,229, + 157,159,159,229,74,174,111,172,170,18, + 159,12,54,12,12,127,12,127,264,264, + 192,12,264,159,159,12,258,258,174,159, + 12,33,127,174,104,174,260,258,12,174, + 86,72,33,52,174,174,258,127,12,127, + 159,104,123,127,54,12,74,74,102,61, + 12,214,159,174,106,127,174,159,127 }; }; public final static char nasb[] = Nasb.nasb; @@ -1969,28 +2039,28 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars 0,5,2,9,10,135,0,5,10,9, 2,13,4,45,0,132,2,63,0,158, 0,132,63,0,5,1,40,0,4,188, - 0,108,0,178,0,65,125,40,5,10, - 9,2,13,0,4,172,0,186,0,122, - 0,40,55,0,13,2,9,10,5,81, - 0,155,0,112,0,157,0,184,0,139, + 0,108,0,112,0,178,0,65,125,40, + 5,10,9,2,13,0,4,172,0,186, + 0,122,0,40,55,0,13,2,9,10, + 5,81,0,155,0,157,0,184,0,139, 0,4,30,0,109,0,63,134,133,0, 32,93,92,4,62,5,10,9,2,0, - 4,45,189,0,48,40,174,4,39,0, - 4,95,0,60,0,65,39,48,66,4, - 40,0,32,92,93,4,0,4,65,0, - 44,2,0,167,5,166,0,22,4,5, - 88,0,5,44,2,3,0,5,100,163, - 0,4,39,38,0,93,92,5,59,0, - 2,58,0,2,113,0,5,100,185,0, - 2,62,9,10,4,5,88,0,39,176, - 22,4,0,114,4,48,80,0,137,0, - 93,92,10,9,2,62,5,59,0,4, - 173,0,4,45,39,0,5,10,9,13, - 3,1,0,4,48,80,82,0,40,156, - 0,2,5,120,116,117,118,13,85,0, - 4,48,80,100,46,5,0,38,5,2, - 9,10,153,4,0,45,4,175,0,45, - 4,32,0,4,45,101,0 + 60,0,4,45,189,0,2,114,0,48, + 40,174,4,39,0,65,39,48,66,4, + 40,0,32,92,93,4,0,44,2,0, + 137,0,167,5,166,0,22,4,5,88, + 0,5,44,2,3,0,4,39,38,0, + 93,92,5,59,0,2,58,0,4,65, + 0,45,4,32,0,5,100,185,0,5, + 100,163,0,2,62,9,10,4,5,88, + 0,39,176,22,4,0,4,95,0,115, + 4,48,80,0,93,92,10,9,2,62, + 5,59,0,4,173,0,40,156,0,4, + 45,39,0,5,10,9,13,3,1,0, + 4,48,80,82,0,2,5,120,116,117, + 118,13,85,0,4,48,80,100,46,5, + 0,38,5,2,9,10,153,4,0,45, + 4,175,0,4,45,101,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -1999,13 +2069,13 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface TerminalIndex { public final static char terminalIndex[] = {0, 113,114,2,31,13,10,79,115,9,100, - 120,66,11,12,48,52,60,68,74,75, - 86,87,102,105,107,7,8,112,14,55, - 61,67,84,88,90,93,94,97,99,104, - 109,110,111,19,123,54,106,47,64,70, - 73,76,83,89,98,77,95,103,1,46, - 53,121,58,78,63,91,101,20,33,44, - 119,122,30,118,96,108,49,50,56,57, + 48,52,60,68,74,75,86,87,102,105, + 107,104,54,106,120,47,64,66,70,73, + 76,83,89,98,11,12,7,8,112,53, + 14,55,61,67,84,88,90,93,94,97, + 99,109,110,111,19,123,63,91,101,77, + 122,95,103,1,46,121,58,78,20,33, + 44,119,30,118,96,108,49,50,56,57, 59,69,71,72,85,92,65,17,18,6, 32,4,15,16,21,22,23,24,25,26, 27,28,80,81,82,5,29,34,35,36, @@ -2018,26 +2088,26 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, - 132,137,138,0,0,136,0,0,229,235, - 135,0,145,134,0,0,144,150,0,0, - 151,181,160,161,162,163,164,165,166,153, - 167,127,168,143,169,170,0,129,133,130, - 171,0,140,139,154,179,0,0,0,0, - 0,0,0,147,174,204,0,0,157,188, - 201,205,0,0,128,173,0,0,0,0, - 0,0,177,206,0,0,0,0,0,0, - 126,131,0,0,187,0,0,202,212,159, - 208,209,210,0,0,148,0,0,207,220, - 176,197,199,0,0,0,211,0,0,0, - 240,241,149,180,0,190,191,192,193,194, + 131,136,137,0,0,135,0,0,229,235, + 134,0,144,133,0,0,143,149,0,0, + 150,181,159,160,161,162,163,164,165,152, + 166,127,167,142,168,169,0,129,132,130, + 170,0,139,138,153,178,0,0,0,0, + 0,0,0,146,173,204,0,0,156,188, + 201,205,0,0,128,172,0,0,0,0, + 0,0,176,206,0,0,0,0,0,0, + 126,179,0,0,187,0,0,202,212,158, + 208,209,210,0,0,147,0,0,207,220, + 175,197,199,0,0,0,211,0,0,0, + 240,241,0,148,180,190,191,192,193,194, 196,0,214,217,0,219,0,238,0,239, - 0,0,141,142,146,0,0,156,158,0, - 172,0,182,183,184,185,186,189,0,195, + 0,0,140,141,145,0,0,155,157,0, + 171,0,182,183,184,185,186,189,0,195, 0,198,203,0,0,215,216,0,0,221, 224,226,228,0,232,233,234,237,125,0, - 152,155,0,175,0,178,0,200,213,218, + 151,154,0,174,0,177,0,200,213,218, 0,222,223,225,227,0,230,231,236,242, - 243,0,0,0,0,0,0 + 243,0,0,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -2102,18 +2172,18 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface ScopeLa { public final static byte scopeLa[] = { - 119,74,74,74,74,74,74,74,71,11, - 71,71,68,1,74,122,62,3,74,68, - 68,68,1,1,11,71,62,71,71,1, - 1,71,1,1,4,68,70,11,1,1, - 68,74,74,74,119,74,1,11,1,1, - 1,11,11,71,118,74,74,74,74,74, + 119,74,74,74,74,74,74,74,72,25, + 72,72,69,1,74,122,66,3,74,69, + 69,69,1,1,25,72,66,72,72,1, + 1,72,1,1,4,69,71,25,1,1, + 69,74,74,74,119,74,1,25,1,1, + 1,25,25,72,118,74,74,74,74,74, 118,1,74,1,74,74,74,73,4,74, - 68,68,68,68,74,3,1,1,74,74, - 3,1,118,74,1,1,1,11,74,118, - 74,5,74,1,36,69,73,74,1,1, - 6,1,36,76,75,11,11,4,4,4, - 4,3,1,62,1,1,3 + 69,69,69,69,74,3,1,1,74,74, + 3,1,118,74,1,1,1,25,74,118, + 74,5,74,1,48,70,73,74,1,1, + 6,1,48,76,75,25,25,4,4,4, + 4,3,1,66,1,1,3 }; }; public final static byte scopeLa[] = ScopeLa.scopeLa; @@ -2140,19 +2210,19 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface ScopeRhs { public final static char scopeRhs[] = {0, - 314,3,57,0,127,0,313,3,119,0, - 127,174,0,127,178,75,0,216,0,250, - 127,44,125,0,20,0,291,127,44,36, - 0,20,53,0,33,134,0,20,53,0, - 0,291,127,44,36,203,0,20,131,0, - 250,127,44,133,0,181,128,0,143,0, + 314,3,62,0,127,0,313,3,119,0, + 127,173,0,127,178,75,0,216,0,250, + 127,55,125,0,20,0,291,127,55,48, + 0,20,53,0,33,133,0,20,53,0, + 0,291,127,55,48,203,0,20,179,0, + 250,127,55,133,0,181,128,0,142,0, 218,3,290,0,290,0,2,0,127,0, - 250,127,44,132,0,181,128,223,0,181, - 128,40,223,0,181,128,309,40,0,129, + 250,127,55,132,0,181,128,223,0,181, + 128,22,223,0,181,128,309,22,0,129, 186,167,128,0,129,0,186,167,128,0, - 136,129,0,171,0,305,127,171,0,127, - 171,0,222,129,0,167,243,0,138,0, - 0,0,137,0,0,0,304,127,163,249, + 135,129,0,171,0,305,127,171,0,127, + 171,0,222,129,0,167,243,0,137,0, + 0,0,136,0,0,0,304,127,163,249, 0,128,0,249,0,130,0,0,128,0, 303,127,163,248,0,128,0,0,44,128, 0,0,153,3,0,127,279,278,127,75, @@ -2162,47 +2232,47 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars 0,278,127,276,171,0,215,0,203,0, 0,215,0,228,127,3,0,127,0,0, 0,0,0,228,127,3,215,0,222,3, - 0,211,127,0,208,0,148,0,167,128, - 0,10,0,0,0,213,59,0,126,0, + 0,211,127,0,208,0,147,0,167,128, + 0,10,0,0,0,213,64,0,126,0, 228,127,3,179,0,179,0,2,0,0, 127,0,0,0,0,0,196,3,0,201, - 0,238,127,163,28,12,0,181,128,56, - 58,0,197,129,0,129,181,128,274,58, - 0,181,128,274,58,0,181,128,69,124, - 56,0,238,127,163,56,0,238,127,163, - 225,56,0,272,127,163,124,65,0,272, - 127,163,65,0,181,128,65,0,137,0, - 186,181,128,243,0,138,0,181,128,243, + 0,236,127,163,39,28,0,181,128,60, + 63,0,197,129,0,129,181,128,274,63, + 0,181,128,274,63,0,181,128,70,124, + 60,0,236,127,163,60,0,236,127,163, + 225,60,0,272,127,163,124,57,0,272, + 127,163,57,0,181,128,57,0,136,0, + 186,181,128,243,0,137,0,181,128,243, 0,186,167,128,10,0,167,128,10,0, - 93,138,0,265,127,145,0,265,127,171, + 93,137,0,265,127,145,0,265,127,171, 0,162,85,0,296,161,298,299,3,82, - 0,127,173,0,298,299,3,82,0,129, - 0,127,173,0,162,3,76,189,81,0, - 127,129,0,189,81,0,108,2,133,127, + 0,127,172,0,298,299,3,82,0,129, + 0,127,172,0,162,3,76,189,81,0, + 127,129,0,189,81,0,108,2,132,127, 129,0,224,3,76,0,196,168,0,33, - 171,0,168,0,177,33,171,0,224,3, - 86,0,189,155,224,3,84,0,62,173, - 0,224,3,84,0,127,173,62,173,0, + 170,0,168,0,176,33,170,0,224,3, + 86,0,189,155,224,3,84,0,62,172, + 0,224,3,84,0,127,172,62,172,0, 297,127,163,0,162,0,213,78,0,30, - 173,0,162,107,159,0,30,171,0,177, - 3,0,127,151,0,218,3,0,213,59, - 262,0,162,59,0,177,3,293,64,128, - 0,127,0,0,0,0,293,64,128,0, - 2,147,127,0,0,0,0,177,3,34, - 0,149,0,126,36,167,128,0,31,149, - 0,93,138,31,149,0,219,181,128,0, - 148,31,149,0,177,3,39,0,162,3, - 39,0,162,3,68,177,44,30,0,177, - 44,30,0,20,2,133,127,0,162,3, - 68,177,44,33,0,177,44,33,0,162, - 3,68,177,44,35,0,177,44,35,0, - 162,3,68,177,44,31,0,177,44,31, + 172,0,162,107,159,0,30,170,0,177, + 3,0,127,150,0,218,3,0,213,64, + 262,0,162,64,0,177,3,293,68,128, + 0,127,0,0,0,0,293,68,128,0, + 2,146,127,0,0,0,0,177,3,46, + 0,148,0,126,48,167,128,0,31,148, + 0,93,137,31,148,0,219,181,128,0, + 147,31,148,0,177,3,51,0,162,3, + 51,0,162,3,69,177,55,42,0,177, + 55,42,0,20,2,132,127,0,162,3, + 69,177,55,45,0,177,55,45,0,162, + 3,69,177,55,47,0,177,55,47,0, + 162,3,69,177,55,43,0,177,55,43, 0,218,3,126,186,167,128,10,0,126, - 186,167,128,10,0,138,2,0,127,0, + 186,167,128,10,0,137,2,0,127,0, 218,3,125,255,167,128,10,0,255,167, - 128,10,0,137,2,0,127,0,218,3, - 136,0,218,3,140,0,162,59,140,0, - 257,0,31,0,31,141,0,166,0,136, + 128,10,0,136,2,0,127,0,218,3, + 136,0,218,3,140,0,162,64,140,0, + 257,0,31,0,31,140,0,166,0,135, 0,162,3,0 }; }; @@ -2211,38 +2281,38 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface ScopeState { public final static char scopeState[] = {0, - 4725,4811,4810,4808,0,1558,1566,1515,1523,0, - 3361,3307,3169,3115,3061,3007,2953,2897,2843,2649, - 2593,3503,0,2545,1298,1253,0,3504,2848,0, - 3361,3307,3837,2611,3169,3115,3061,3007,2953,2897, - 1294,2843,2649,2593,4424,4264,0,4435,3292,2920, - 0,3637,3579,0,3228,2148,0,2934,3338,0, - 4639,4537,0,4609,4414,0,4609,4414,3661,4296, - 4285,3646,4183,4173,4163,3576,0,4609,4414,3661, - 4296,4285,3646,4183,4173,4163,3576,3361,3307,3169, - 3115,3061,3007,2953,2897,2843,2649,2593,0,795, - 656,0,566,0,3393,2491,0,534,4410,2672, - 0,2799,3583,3280,4576,4311,4678,3459,3831,2866, - 3030,3630,854,2705,4510,726,0,4733,4714,4698, - 4669,4663,4624,4618,4425,4784,4431,3841,3770,3766, - 3534,3762,3146,3496,3092,3038,2874,3287,1256,2722, - 0,1424,1303,861,581,3583,3030,3242,2528,2514, - 2680,2064,0,985,0,4639,3583,4576,4537,4510, - 3242,3746,4550,4381,2799,4268,2528,3459,2514,4394, - 3778,0,4733,3084,4714,2578,2074,4698,4669,4663, - 1119,917,4624,4618,3700,4425,3684,3402,3066,2240, - 2159,4784,3195,4431,3841,2069,786,3770,3766,2635, - 2994,3534,3762,3146,732,3496,3092,3038,4410,2874, - 3287,1256,2246,2672,2722,622,2978,2775,1202,931, - 2541,3242,3746,4550,4381,2799,4268,4639,3583,4576, - 2528,3459,2514,4537,2556,577,795,656,4510,4394, - 3778,3599,4141,4119,2250,1123,2320,2288,2378,2350, - 590,2821,2728,2487,2460,2433,2406,3543,3472,626, - 3434,3255,4097,4075,4053,4031,4009,3987,3965,3943, - 3916,3894,3852,1949,2202,2164,2116,2078,1260,1213, - 2030,1159,1992,1906,870,1863,1820,1777,1734,1691, - 1648,1605,1562,1519,1476,1433,1390,534,815,738, - 683,1345,1076,1304,990,947,1033,0 + 4721,4807,4806,4804,0,1511,1562,921,1519,0, + 3357,3303,3165,3111,3057,3003,2949,2893,2839,2645, + 2589,3499,0,2917,1294,1249,0,3027,2844,0, + 3357,3303,3683,3644,3165,3111,3057,3003,2949,2893, + 1290,2839,2645,2589,4260,3716,0,4431,3288,2916, + 0,3561,2782,0,2460,2144,0,3415,3334,0, + 4635,4533,0,4605,4410,0,4605,4410,3657,4292, + 4281,3642,4179,4169,4159,3572,0,4605,4410,3657, + 4292,4281,3642,4179,4169,4159,3572,3357,3303,3165, + 3111,3057,3003,2949,2893,2839,2645,2589,0,791, + 652,0,562,0,4161,2487,0,530,4406,2668, + 0,2795,3579,3276,4572,3827,3413,3455,2876,2862, + 3026,3304,850,2701,4506,722,0,4729,4710,4694, + 4665,4659,4620,4614,4421,4780,4427,3837,3766,3762, + 3530,3758,3142,3492,3088,3034,2870,3283,1252,2718, + 0,1420,1299,857,577,3579,3026,3238,2524,2510, + 2676,2060,0,981,0,4635,3579,4572,4533,4506, + 3238,3742,4546,4377,2795,4264,2524,3455,2510,4390, + 3774,0,4729,3080,4710,2924,2070,4694,4665,4659, + 1115,913,4620,4614,3626,4421,3522,3398,3062,2236, + 2155,4780,2576,4427,3837,2065,782,3766,3762,2631, + 2990,3530,3758,3142,728,3492,3088,3034,4406,2870, + 3283,1252,2242,2668,2718,618,2974,2771,1198,927, + 2537,3238,3742,4546,4377,2795,4264,4635,3579,4572, + 2524,3455,2510,4533,2552,573,791,652,4506,4390, + 3774,3595,4137,4115,2246,1119,2316,2284,2374,2346, + 586,2817,2724,2483,2456,2429,2402,3539,3468,622, + 3430,3251,4093,4071,4049,4027,4005,3983,3961,3939, + 3912,3890,3848,1945,2198,2160,2112,2074,1256,1209, + 2026,1155,1988,1902,866,1859,1816,1773,1730,1687, + 1644,1601,1558,1515,1472,1429,1386,530,811,734, + 679,1341,1072,1300,986,943,1029,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2251,58 +2321,58 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface InSymb { public final static char inSymb[] = {0, 0,292,196,179,185,5,125,132,7,133, - 128,4,3,127,3,69,59,125,124,44, - 44,168,127,59,3,63,64,44,181,166, + 128,4,3,127,3,70,64,125,124,55, + 55,168,127,64,3,67,68,55,181,166, 125,167,196,211,128,6,153,127,163,248, - 39,30,33,35,31,10,136,3,128,34, - 29,5,14,13,6,9,27,26,140,146, - 148,147,150,149,152,151,156,154,158,57, + 51,42,45,47,43,10,136,3,128,46, + 41,5,36,35,6,9,38,37,140,146, + 148,147,150,149,152,151,156,154,158,62, 159,213,159,127,127,127,266,267,249,268, - 243,269,65,270,271,10,128,59,59,127, - 4,186,128,167,127,264,127,163,3,44, - 44,44,44,128,3,177,162,168,127,63, - 64,167,3,126,106,120,3,59,90,92, - 14,13,94,93,6,96,95,68,44,88, + 243,269,57,270,271,10,128,64,64,127, + 4,186,128,167,127,264,127,163,3,55, + 55,55,55,128,3,177,162,168,127,67, + 68,167,3,126,106,120,3,64,90,92, + 36,35,94,93,6,96,95,69,55,88, 89,9,98,97,100,99,101,117,116,115, - 114,113,112,111,110,109,108,69,107,102, + 114,113,112,111,110,109,108,70,107,102, 250,253,250,211,163,167,231,128,126,125, 124,163,128,128,181,167,250,257,186,167, - 6,183,70,127,177,162,177,177,177,177, + 6,183,71,127,177,162,177,177,177,177, 167,218,155,127,3,216,215,136,126,125, - 10,128,59,293,3,177,36,128,36,218, + 10,128,64,293,3,177,48,128,48,218, 162,147,147,146,146,146,149,149,149,149, 148,148,151,150,150,154,152,156,162,158, - 70,127,126,125,127,181,127,163,127,181, - 167,36,4,127,303,68,68,68,68,186, + 71,127,126,125,127,181,127,163,127,181, + 167,48,4,127,303,69,69,69,69,186, 255,211,222,127,3,128,167,204,3,294, 168,153,128,181,167,73,304,128,169,223, - 56,36,203,58,171,306,127,127,73,186, - 127,272,124,273,186,188,70,3,3,3, - 3,126,125,228,229,145,230,127,167,36, - 177,127,127,219,5,36,167,163,225,44, - 36,274,276,127,179,308,223,40,128,272, - 69,70,188,8,162,162,162,162,3,3, - 155,69,222,196,3,127,70,228,186,155, - 259,262,59,182,4,124,126,186,127,163, - 68,44,128,75,127,211,305,125,73,285, - 196,3,70,128,40,309,181,218,218,127, - 69,69,127,211,155,126,127,3,59,162, - 4,129,238,12,36,171,60,56,58,237, - 127,127,181,127,278,73,70,73,69,127, - 181,128,128,220,127,259,218,213,28,127, - 3,124,56,238,291,36,10,61,129,278, + 60,48,203,63,171,306,127,127,73,186, + 127,272,124,273,186,188,71,3,3,3, + 3,126,125,228,229,145,230,127,167,48, + 177,127,127,219,5,48,167,163,225,55, + 48,274,276,127,179,308,223,22,128,272, + 70,71,188,8,162,162,162,162,3,3, + 155,70,222,196,3,127,71,228,186,155, + 259,262,64,182,4,124,126,186,127,163, + 69,55,128,75,127,211,305,125,73,285, + 196,3,71,128,22,309,181,218,218,127, + 70,70,127,211,155,126,127,3,64,162, + 4,129,236,28,48,171,65,60,63,238, + 127,127,181,127,278,73,71,73,70,127, + 181,128,128,220,127,259,218,213,39,127, + 3,124,60,236,291,48,10,40,129,278, 163,289,128,290,228,181,181,127,220,127, - 163,265,275,28,69,128,70,68,44,231, - 231,279,127,70,181,3,155,57,127,127, - 70,155,128,181,127,69,69,127,297,80, + 163,265,275,39,70,128,71,69,55,231, + 231,279,127,71,181,3,155,62,127,127, + 71,155,128,181,127,70,70,127,297,80, 78,1,162,8,86,84,82,81,76,83, - 85,79,77,56,75,218,127,3,238,181, + 85,79,77,60,75,218,127,3,236,181, 225,291,280,119,8,73,213,73,3,3, 3,189,3,124,162,124,178,220,314,225, - 68,3,73,224,168,224,299,145,76,224, - 127,127,70,61,91,313,168,155,196,155, - 298,127,3,155,280,231,155,155,127,69, - 189,161,265,162,69,122,296,155,155 + 69,3,73,224,168,224,299,145,76,224, + 127,127,71,40,91,313,168,155,196,155, + 298,127,3,155,280,231,155,155,127,70, + 189,161,265,162,70,122,296,155,155 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2441,7 +2511,6 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars "}", ";", "{", - "declaration", "identifier_token", "expression", "id_expression", @@ -2492,6 +2561,7 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars "declarator", "for_init_statement", "function_definition", + "declaration", "declaration_seq", "declaration_specifiers", "simple_declaration_specifiers", @@ -2566,7 +2636,7 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public final String name(int index) { return name[index]; } public final static int - ERROR_SYMBOL = 72, + ERROR_SYMBOL = 61, SCOPE_UBOUND = 116, SCOPE_SIZE = 117, MAX_NAME_LENGTH = 37; @@ -2579,18 +2649,18 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public final static int NUM_STATES = 529, NT_OFFSET = 123, - LA_STATE_OFFSET = 5888, + LA_STATE_OFFSET = 5843, MAX_LA = 2147483647, - NUM_RULES = 533, - NUM_NONTERMINALS = 197, - NUM_SYMBOLS = 320, + NUM_RULES = 529, + NUM_NONTERMINALS = 195, + NUM_SYMBOLS = 318, SEGMENT_SIZE = 8192, - START_STATE = 3778, + START_STATE = 3774, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 121, EOLT_SYMBOL = 121, - ACCEPT_ACTION = 4990, - ERROR_ACTION = 5355; + ACCEPT_ACTION = 4949, + ERROR_ACTION = 5314; public final static boolean BACKTRACK = true; diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParsersym.java index 001560b68bf..1ca1cdabe3e 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParsersym.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParsersym.java @@ -15,97 +15,97 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp; public interface CPPNoFunctionDeclaratorParsersym { public final static int - TK_asm = 60, - TK_auto = 48, - TK_bool = 15, + TK_asm = 65, + TK_auto = 26, + TK_bool = 11, TK_break = 77, TK_case = 78, TK_catch = 119, - TK_char = 16, - TK_class = 61, - TK_const = 46, - TK_const_cast = 30, + TK_char = 12, + TK_class = 40, + TK_const = 23, + TK_const_cast = 42, TK_continue = 79, TK_default = 80, - TK_delete = 63, + TK_delete = 67, TK_do = 81, - TK_double = 17, - TK_dynamic_cast = 31, + TK_double = 13, + TK_dynamic_cast = 43, TK_else = 122, - TK_enum = 65, - TK_explicit = 49, + TK_enum = 57, + TK_explicit = 27, TK_export = 87, - TK_extern = 12, - TK_false = 32, - TK_float = 18, + TK_extern = 28, + TK_false = 44, + TK_float = 14, TK_for = 82, - TK_friend = 50, + TK_friend = 29, TK_goto = 83, TK_if = 84, - TK_inline = 51, - TK_int = 19, - TK_long = 20, - TK_mutable = 52, - TK_namespace = 56, - TK_new = 64, + TK_inline = 30, + TK_int = 15, + TK_long = 16, + TK_mutable = 31, + TK_namespace = 60, + TK_new = 68, TK_operator = 7, TK_private = 103, TK_protected = 104, TK_public = 105, - TK_register = 53, - TK_reinterpret_cast = 33, + TK_register = 32, + TK_reinterpret_cast = 45, TK_return = 85, - TK_short = 21, - TK_signed = 22, - TK_sizeof = 34, - TK_static = 54, - TK_static_cast = 35, - TK_struct = 66, + TK_short = 17, + TK_signed = 18, + TK_sizeof = 46, + TK_static = 33, + TK_static_cast = 47, + TK_struct = 58, TK_switch = 86, - TK_template = 36, - TK_this = 37, - TK_throw = 57, + TK_template = 48, + TK_this = 49, + TK_throw = 62, TK_try = 75, - TK_true = 38, - TK_typedef = 55, - TK_typeid = 39, + TK_true = 50, + TK_typedef = 34, + TK_typeid = 51, TK_typename = 10, - TK_union = 67, - TK_unsigned = 23, - TK_using = 58, - TK_virtual = 40, - TK_void = 24, - TK_volatile = 47, - TK_wchar_t = 25, + TK_union = 59, + TK_unsigned = 19, + TK_using = 63, + TK_virtual = 22, + TK_void = 20, + TK_volatile = 24, + TK_wchar_t = 21, TK_while = 76, - TK_integer = 41, - TK_floating = 42, - TK_charconst = 43, - TK_stringlit = 28, + TK_integer = 52, + TK_floating = 53, + TK_charconst = 54, + TK_stringlit = 39, TK_identifier = 1, TK_Completion = 2, TK_EndOfCompletion = 8, TK_Invalid = 123, - TK_LeftBracket = 59, + TK_LeftBracket = 64, TK_LeftParen = 3, TK_Dot = 120, TK_DotStar = 92, TK_Arrow = 106, TK_ArrowStar = 90, - TK_PlusPlus = 26, - TK_MinusMinus = 27, + TK_PlusPlus = 37, + TK_MinusMinus = 38, TK_And = 9, TK_Star = 6, - TK_Plus = 13, - TK_Minus = 14, + TK_Plus = 35, + TK_Minus = 36, TK_Tilde = 5, - TK_Bang = 29, + TK_Bang = 41, TK_Slash = 93, TK_Percent = 94, TK_RightShift = 88, TK_LeftShift = 89, - TK_LT = 44, - TK_GT = 68, + TK_LT = 55, + TK_GT = 69, TK_LE = 95, TK_GE = 96, TK_EQ = 97, @@ -118,7 +118,7 @@ public interface CPPNoFunctionDeclaratorParsersym { TK_Colon = 73, TK_ColonColon = 4, TK_DotDotDot = 91, - TK_Assign = 69, + TK_Assign = 70, TK_StarAssign = 108, TK_SlashAssign = 109, TK_PercentAssign = 110, @@ -129,14 +129,14 @@ public interface CPPNoFunctionDeclaratorParsersym { TK_AndAssign = 115, TK_CaretAssign = 116, TK_OrAssign = 117, - TK_Comma = 70, + TK_Comma = 71, TK_RightBracket = 118, TK_RightParen = 74, - TK_RightBrace = 71, - TK_SemiColon = 11, - TK_LeftBrace = 62, - TK_ERROR_TOKEN = 72, - TK_0 = 45, + TK_RightBrace = 72, + TK_SemiColon = 25, + TK_LeftBrace = 66, + TK_ERROR_TOKEN = 61, + TK_0 = 56, TK_EOF_TOKEN = 121; public final static String orderedTerminalSymbols[] = { @@ -151,10 +151,6 @@ public interface CPPNoFunctionDeclaratorParsersym { "EndOfCompletion", "And", "typename", - "SemiColon", - "extern", - "Plus", - "Minus", "bool", "char", "double", @@ -166,9 +162,25 @@ public interface CPPNoFunctionDeclaratorParsersym { "unsigned", "void", "wchar_t", + "virtual", + "const", + "volatile", + "SemiColon", + "auto", + "explicit", + "extern", + "friend", + "inline", + "mutable", + "register", + "static", + "typedef", + "Plus", + "Minus", "PlusPlus", "MinusMinus", "stringlit", + "class", "Bang", "const_cast", "dynamic_cast", @@ -180,39 +192,27 @@ public interface CPPNoFunctionDeclaratorParsersym { "this", "true", "typeid", - "virtual", "integer", "floating", "charconst", "LT", "0", - "const", - "volatile", - "auto", - "explicit", - "friend", - "inline", - "mutable", - "register", - "static", - "typedef", + "enum", + "struct", + "union", "namespace", + "ERROR_TOKEN", "throw", "using", "LeftBracket", "asm", - "class", "LeftBrace", "delete", "new", - "enum", - "struct", - "union", "GT", "Assign", "Comma", "RightBrace", - "ERROR_TOKEN", "Colon", "RightParen", "try", 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 1bb9c414797..9f4de5e9cd0 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 @@ -269,2004 +269,1997 @@ public CPPParser(String[] mapFrom) { // constructor } // - // Rule 13: translation_unit ::= external_declaration_list + // Rule 13: translation_unit ::= declaration_seq_opt // case 13: { action.builder. consumeTranslationUnit(); break; } // - // Rule 14: translation_unit ::= $Empty + // Rule 16: literal ::= integer // - case 14: { action.builder. - consumeTranslationUnit(); break; + case 16: { action.builder. + consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; } // - // Rule 18: external_declaration ::= ERROR_TOKEN + // Rule 17: literal ::= 0 + // + case 17: { action.builder. + consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; + } + + // + // Rule 18: literal ::= floating // case 18: { action.builder. - consumeDeclarationProblem(); break; - } - - // - // Rule 21: literal ::= integer - // - case 21: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; - } - - // - // Rule 22: literal ::= 0 - // - case 22: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; - } - - // - // Rule 23: literal ::= floating - // - case 23: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_float_constant); break; } // - // Rule 24: literal ::= charconst + // Rule 19: literal ::= charconst // - case 24: { action.builder. + case 19: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_char_constant); break; } // - // Rule 25: literal ::= stringlit + // Rule 20: literal ::= stringlit // - case 25: { action.builder. + case 20: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_string_literal); break; } // - // Rule 26: literal ::= true + // Rule 21: literal ::= true // - case 26: { action.builder. + case 21: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_true); break; } // - // Rule 27: literal ::= false + // Rule 22: literal ::= false // - case 27: { action.builder. + case 22: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_false); break; } // - // Rule 28: literal ::= this + // Rule 23: literal ::= this // - case 28: { action.builder. + case 23: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_this); break; } // - // Rule 30: primary_expression ::= ( expression ) + // Rule 25: primary_expression ::= ( expression ) // - case 30: { action.builder. + case 25: { action.builder. consumeExpressionBracketed(); break; } // - // Rule 32: id_expression ::= qualified_or_unqualified_name + // Rule 27: id_expression ::= qualified_or_unqualified_name // - case 32: { action.builder. + case 27: { action.builder. consumeExpressionName(); break; } // - // Rule 39: unqualified_id_name ::= ~ identifier_token + // Rule 34: unqualified_id_name ::= ~ identifier_token // - case 39: { action.builder. + case 34: { action.builder. consumeDestructorName(); break; } // - // Rule 40: unqualified_id_name ::= ~ template_id_name + // Rule 35: unqualified_id_name ::= ~ template_id_name // - case 40: { action.builder. + case 35: { action.builder. consumeDestructorNameTemplateId(); break; } // - // Rule 41: identifier_name ::= identifier_token + // Rule 36: identifier_name ::= identifier_token // - case 41: { action.builder. + case 36: { action.builder. consumeIdentifierName(); break; } // - // Rule 42: template_opt ::= template + // Rule 37: template_opt ::= template // - case 42: { action.builder. + case 37: { action.builder. consumePlaceHolder(); break; } // - // Rule 43: template_opt ::= $Empty + // Rule 38: template_opt ::= $Empty // - case 43: { action.builder. + case 38: { action.builder. consumeEmpty(); break; } // - // Rule 44: dcolon_opt ::= :: + // Rule 39: dcolon_opt ::= :: // - case 44: { action.builder. + case 39: { action.builder. consumeToken(); break; } // - // Rule 45: dcolon_opt ::= $Empty + // Rule 40: dcolon_opt ::= $Empty // - case 45: { action.builder. + case 40: { action.builder. consumeEmpty(); break; } // - // Rule 46: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name + // Rule 41: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name // - case 46: { action.builder. + case 41: { action.builder. consumeQualifiedId(true); break; } // - // Rule 47: qualified_id_name ::= :: unqualified_id_name + // Rule 42: qualified_id_name ::= :: unqualified_id_name // - case 47: { action.builder. + case 42: { action.builder. consumeGlobalQualifiedId(); break; } // - // Rule 48: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template + // Rule 43: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template // - case 48: { action.builder. + case 43: { action.builder. consumeNestedNameSpecifier(true); break; } // - // Rule 49: nested_name_specifier ::= class_or_namespace_name :: + // Rule 44: nested_name_specifier ::= class_or_namespace_name :: // - case 49: { action.builder. + case 44: { action.builder. consumeNestedNameSpecifier(false); break; } // - // Rule 50: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template + // Rule 45: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template // - case 50: { action.builder. + case 45: { action.builder. consumeNestedNameSpecifier(true); break; } // - // Rule 51: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: + // Rule 46: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: // - case 51: { action.builder. + case 46: { action.builder. consumeNestedNameSpecifier(false); break; } // - // Rule 52: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name + // Rule 47: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name // - case 52: { action.builder. + case 47: { action.builder. consumeNameWithTemplateKeyword(); break; } // - // Rule 54: nested_name_specifier_opt ::= $Empty + // Rule 49: nested_name_specifier_opt ::= $Empty // - case 54: { action.builder. + case 49: { action.builder. consumeNestedNameSpecifierEmpty(); break; } // - // Rule 57: postfix_expression ::= postfix_expression [ expression ] + // Rule 52: postfix_expression ::= postfix_expression [ expression ] // - case 57: { action.builder. + case 52: { action.builder. consumeExpressionArraySubscript(); break; } // - // Rule 58: postfix_expression ::= postfix_expression ( expression_list_opt ) + // Rule 53: postfix_expression ::= postfix_expression ( expression_list_opt ) // - case 58: { action.builder. + case 53: { action.builder. consumeExpressionFunctionCall(); break; } // - // Rule 59: postfix_expression ::= simple_type_specifier ( expression_list_opt ) + // Rule 54: postfix_expression ::= simple_type_specifier ( expression_list_opt ) // - case 59: { action.builder. + case 54: { action.builder. consumeExpressionSimpleTypeConstructor(); break; } // - // Rule 60: postfix_expression ::= typename dcolon_opt nested_name_specifier identifier_name ( expression_list_opt ) + // Rule 55: postfix_expression ::= typename dcolon_opt nested_name_specifier identifier_name ( expression_list_opt ) // - case 60: { action.builder. + case 55: { action.builder. consumeExpressionTypeName(); break; } // - // Rule 61: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) + // Rule 56: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) // - case 61: { action.builder. + case 56: { action.builder. consumeExpressionTypeName(); break; } // - // Rule 62: postfix_expression ::= postfix_expression . qualified_or_unqualified_name + // Rule 57: postfix_expression ::= postfix_expression . qualified_or_unqualified_name // - case 62: { action.builder. + case 57: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 63: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name + // Rule 58: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name // - case 63: { action.builder. + case 58: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 64: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name + // Rule 59: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name // - case 64: { action.builder. + case 59: { action.builder. consumeExpressionFieldReference(false, true); break; } // - // Rule 65: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name + // Rule 60: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name // - case 65: { action.builder. + case 60: { action.builder. consumeExpressionFieldReference(true, true); break; } // - // Rule 66: postfix_expression ::= postfix_expression . pseudo_destructor_name + // Rule 61: postfix_expression ::= postfix_expression . pseudo_destructor_name // - case 66: { action.builder. + case 61: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 67: postfix_expression ::= postfix_expression -> pseudo_destructor_name + // Rule 62: postfix_expression ::= postfix_expression -> pseudo_destructor_name // - case 67: { action.builder. + case 62: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 68: postfix_expression ::= postfix_expression ++ + // Rule 63: postfix_expression ::= postfix_expression ++ // - case 68: { action.builder. + case 63: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; } // - // Rule 69: postfix_expression ::= postfix_expression -- + // Rule 64: postfix_expression ::= postfix_expression -- // - case 69: { action.builder. + case 64: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; } // - // Rule 70: postfix_expression ::= dynamic_cast < type_id > ( expression ) + // Rule 65: postfix_expression ::= dynamic_cast < type_id > ( expression ) // - case 70: { action.builder. + case 65: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); break; } // - // Rule 71: postfix_expression ::= static_cast < type_id > ( expression ) + // Rule 66: postfix_expression ::= static_cast < type_id > ( expression ) // - case 71: { action.builder. + case 66: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_static_cast); break; } // - // Rule 72: postfix_expression ::= reinterpret_cast < type_id > ( expression ) + // Rule 67: postfix_expression ::= reinterpret_cast < type_id > ( expression ) // - case 72: { action.builder. + case 67: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); break; } // - // Rule 73: postfix_expression ::= const_cast < type_id > ( expression ) + // Rule 68: postfix_expression ::= const_cast < type_id > ( expression ) // - case 73: { action.builder. + case 68: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_const_cast); break; } // - // Rule 74: postfix_expression ::= typeid ( expression ) + // Rule 69: postfix_expression ::= typeid ( expression ) // - case 74: { action.builder. + case 69: { action.builder. consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break; } // - // Rule 75: postfix_expression ::= typeid ( type_id ) + // Rule 70: postfix_expression ::= typeid ( type_id ) // - case 75: { action.builder. + case 70: { action.builder. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid); break; } // - // Rule 76: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name + // Rule 71: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name // - case 76: { action.builder. + case 71: { action.builder. consumePsudoDestructorName(true); break; } // - // Rule 77: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name + // Rule 72: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name // - case 77: { action.builder. + case 72: { action.builder. consumePsudoDestructorName(true); break; } // - // Rule 78: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name + // Rule 73: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name // - case 78: { action.builder. + case 73: { action.builder. consumePsudoDestructorName(false); break; } // - // Rule 79: destructor_type_name ::= ~ identifier_token + // Rule 74: destructor_type_name ::= ~ identifier_token // - case 79: { action.builder. + case 74: { action.builder. consumeDestructorName(); break; } // - // Rule 80: destructor_type_name ::= ~ template_id_name + // Rule 75: destructor_type_name ::= ~ template_id_name // - case 80: { action.builder. + case 75: { action.builder. consumeDestructorNameTemplateId(); break; } // - // Rule 84: unary_expression ::= ++ cast_expression + // Rule 79: unary_expression ::= ++ cast_expression // - case 84: { action.builder. + case 79: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; } // - // Rule 85: unary_expression ::= -- cast_expression + // Rule 80: unary_expression ::= -- cast_expression // - case 85: { action.builder. + case 80: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; } // - // Rule 86: unary_expression ::= & cast_expression + // Rule 81: unary_expression ::= & cast_expression // - case 86: { action.builder. + case 81: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; } // - // Rule 87: unary_expression ::= * cast_expression + // Rule 82: unary_expression ::= * cast_expression // - case 87: { action.builder. + case 82: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; } // - // Rule 88: unary_expression ::= + cast_expression + // Rule 83: unary_expression ::= + cast_expression // - case 88: { action.builder. + case 83: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; } // - // Rule 89: unary_expression ::= - cast_expression + // Rule 84: unary_expression ::= - cast_expression // - case 89: { action.builder. + case 84: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; } // - // Rule 90: unary_expression ::= ~ cast_expression + // Rule 85: unary_expression ::= ~ cast_expression // - case 90: { action.builder. + case 85: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; } // - // Rule 91: unary_expression ::= ! cast_expression + // Rule 86: unary_expression ::= ! cast_expression // - case 91: { action.builder. + case 86: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; } // - // Rule 92: unary_expression ::= sizeof unary_expression + // Rule 87: unary_expression ::= sizeof unary_expression // - case 92: { action.builder. + case 87: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; } // - // Rule 93: unary_expression ::= sizeof ( type_id ) + // Rule 88: unary_expression ::= sizeof ( type_id ) // - case 93: { action.builder. + case 88: { action.builder. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_sizeof); break; } // - // Rule 94: new_expression ::= dcolon_opt new new_placement_opt new_type_id new_array_expressions_opt new_initializer_opt + // Rule 89: new_expression ::= dcolon_opt new new_placement_opt new_type_id new_array_expressions_opt new_initializer_opt // - case 94: { action.builder. + case 89: { action.builder. consumeExpressionNew(true); break; } // - // Rule 95: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_array_expressions_opt new_initializer_opt + // Rule 90: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_array_expressions_opt new_initializer_opt // - case 95: { action.builder. + case 90: { action.builder. consumeExpressionNew(false); break; } // - // Rule 97: new_placement_opt ::= $Empty + // Rule 92: new_placement_opt ::= $Empty // - case 97: { action.builder. + case 92: { action.builder. consumeEmpty(); break; } // - // Rule 98: new_type_id ::= type_specifier_seq + // Rule 93: new_type_id ::= type_specifier_seq // - case 98: { action.builder. + case 93: { action.builder. consumeTypeId(false); break; } // - // Rule 99: new_type_id ::= type_specifier_seq new_declarator + // Rule 94: new_type_id ::= type_specifier_seq new_declarator // - case 99: { action.builder. + case 94: { action.builder. consumeTypeId(true); break; } // - // Rule 100: new_declarator ::= new_pointer_operators + // Rule 95: new_declarator ::= new_pointer_operators // - case 100: { action.builder. + case 95: { action.builder. consumeNewDeclarator(); break; } // - // Rule 109: new_initializer_opt ::= $Empty + // Rule 104: new_initializer_opt ::= $Empty // - case 109: { action.builder. + case 104: { action.builder. consumeEmpty(); break; } // - // Rule 110: delete_expression ::= dcolon_opt delete cast_expression + // Rule 105: delete_expression ::= dcolon_opt delete cast_expression // - case 110: { action.builder. + case 105: { action.builder. consumeExpressionDelete(false); break; } // - // Rule 111: delete_expression ::= dcolon_opt delete [ ] cast_expression + // Rule 106: delete_expression ::= dcolon_opt delete [ ] cast_expression // - case 111: { action.builder. + case 106: { action.builder. consumeExpressionDelete(true); break; } // - // Rule 113: cast_expression ::= ( type_id ) cast_expression + // Rule 108: cast_expression ::= ( type_id ) cast_expression // - case 113: { action.builder. + case 108: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_cast); break; } // - // Rule 115: pm_expression ::= pm_expression .* cast_expression + // Rule 110: pm_expression ::= pm_expression .* cast_expression // - case 115: { action.builder. + case 110: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot); break; } // - // Rule 116: pm_expression ::= pm_expression ->* cast_expression + // Rule 111: pm_expression ::= pm_expression ->* cast_expression // - case 116: { action.builder. + case 111: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow); break; } // - // Rule 118: multiplicative_expression ::= multiplicative_expression * pm_expression + // Rule 113: multiplicative_expression ::= multiplicative_expression * pm_expression // - case 118: { action.builder. + case 113: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply); break; } // - // Rule 119: multiplicative_expression ::= multiplicative_expression / pm_expression + // Rule 114: multiplicative_expression ::= multiplicative_expression / pm_expression // - case 119: { action.builder. + case 114: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide); break; } // - // Rule 120: multiplicative_expression ::= multiplicative_expression % pm_expression + // Rule 115: multiplicative_expression ::= multiplicative_expression % pm_expression // - case 120: { action.builder. + case 115: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo); break; } // - // Rule 122: additive_expression ::= additive_expression + multiplicative_expression + // Rule 117: additive_expression ::= additive_expression + multiplicative_expression // - case 122: { action.builder. + case 117: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus); break; } // - // Rule 123: additive_expression ::= additive_expression - multiplicative_expression + // Rule 118: additive_expression ::= additive_expression - multiplicative_expression // - case 123: { action.builder. + case 118: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus); break; } // - // Rule 125: shift_expression ::= shift_expression << additive_expression + // Rule 120: shift_expression ::= shift_expression << additive_expression // - case 125: { action.builder. + case 120: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft); break; } // - // Rule 126: shift_expression ::= shift_expression >> additive_expression + // Rule 121: shift_expression ::= shift_expression >> additive_expression // - case 126: { action.builder. + case 121: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight); break; } // - // Rule 128: relational_expression ::= relational_expression < shift_expression + // Rule 123: relational_expression ::= relational_expression < shift_expression // - case 128: { action.builder. + case 123: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; } // - // Rule 129: relational_expression ::= relational_expression > shift_expression + // Rule 124: relational_expression ::= relational_expression > shift_expression // - case 129: { action.builder. + case 124: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; } // - // Rule 130: relational_expression ::= relational_expression <= shift_expression + // Rule 125: relational_expression ::= relational_expression <= shift_expression // - case 130: { action.builder. + case 125: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; } // - // Rule 131: relational_expression ::= relational_expression >= shift_expression + // Rule 126: relational_expression ::= relational_expression >= shift_expression // - case 131: { action.builder. + case 126: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; } // - // Rule 133: equality_expression ::= equality_expression == relational_expression + // Rule 128: equality_expression ::= equality_expression == relational_expression // - case 133: { action.builder. + case 128: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; } // - // Rule 134: equality_expression ::= equality_expression != relational_expression + // Rule 129: equality_expression ::= equality_expression != relational_expression // - case 134: { action.builder. + case 129: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; } // - // Rule 136: and_expression ::= and_expression & equality_expression + // Rule 131: and_expression ::= and_expression & equality_expression // - case 136: { action.builder. + case 131: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; } // - // Rule 138: exclusive_or_expression ::= exclusive_or_expression ^ and_expression + // Rule 133: exclusive_or_expression ::= exclusive_or_expression ^ and_expression // - case 138: { action.builder. + case 133: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; } // - // Rule 140: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression + // Rule 135: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression // - case 140: { action.builder. + case 135: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; } // - // Rule 142: logical_and_expression ::= logical_and_expression && inclusive_or_expression + // Rule 137: logical_and_expression ::= logical_and_expression && inclusive_or_expression // - case 142: { action.builder. + case 137: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; } // - // Rule 144: logical_or_expression ::= logical_or_expression || logical_and_expression + // Rule 139: logical_or_expression ::= logical_or_expression || logical_and_expression // - case 144: { action.builder. + case 139: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; } // - // Rule 146: conditional_expression ::= logical_or_expression ? expression : assignment_expression + // Rule 141: conditional_expression ::= logical_or_expression ? expression : assignment_expression // - case 146: { action.builder. + case 141: { action.builder. consumeExpressionConditional(); break; } // - // Rule 147: throw_expression ::= throw + // Rule 142: throw_expression ::= throw // - case 147: { action.builder. + case 142: { action.builder. consumeExpressionThrow(false); break; } // - // Rule 148: throw_expression ::= throw assignment_expression + // Rule 143: throw_expression ::= throw assignment_expression // - case 148: { action.builder. + case 143: { action.builder. consumeExpressionThrow(true); break; } // - // Rule 151: assignment_expression ::= logical_or_expression = assignment_expression + // Rule 146: assignment_expression ::= logical_or_expression = assignment_expression // - case 151: { action.builder. + case 146: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; } // - // Rule 152: assignment_expression ::= logical_or_expression *= assignment_expression + // Rule 147: assignment_expression ::= logical_or_expression *= assignment_expression // - case 152: { action.builder. + case 147: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 153: assignment_expression ::= logical_or_expression /= assignment_expression + // Rule 148: assignment_expression ::= logical_or_expression /= assignment_expression // - case 153: { action.builder. + case 148: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; } // - // Rule 154: assignment_expression ::= logical_or_expression %= assignment_expression + // Rule 149: assignment_expression ::= logical_or_expression %= assignment_expression // - case 154: { action.builder. + case 149: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; } // - // Rule 155: assignment_expression ::= logical_or_expression += assignment_expression + // Rule 150: assignment_expression ::= logical_or_expression += assignment_expression // - case 155: { action.builder. + case 150: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; } // - // Rule 156: assignment_expression ::= logical_or_expression -= assignment_expression + // Rule 151: assignment_expression ::= logical_or_expression -= assignment_expression // - case 156: { action.builder. + case 151: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; } // - // Rule 157: assignment_expression ::= logical_or_expression >>= assignment_expression + // Rule 152: assignment_expression ::= logical_or_expression >>= assignment_expression // - case 157: { action.builder. + case 152: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 158: assignment_expression ::= logical_or_expression <<= assignment_expression + // Rule 153: assignment_expression ::= logical_or_expression <<= assignment_expression // - case 158: { action.builder. + case 153: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 159: assignment_expression ::= logical_or_expression &= assignment_expression + // Rule 154: assignment_expression ::= logical_or_expression &= assignment_expression // - case 159: { action.builder. + case 154: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 160: assignment_expression ::= logical_or_expression ^= assignment_expression + // Rule 155: assignment_expression ::= logical_or_expression ^= assignment_expression // - case 160: { action.builder. + case 155: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 161: assignment_expression ::= logical_or_expression |= assignment_expression + // Rule 156: assignment_expression ::= logical_or_expression |= assignment_expression // - case 161: { action.builder. + case 156: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 163: expression_list ::= expression_list_actual + // Rule 158: expression_list ::= expression_list_actual // - case 163: { action.builder. + case 158: { action.builder. consumeExpressionList(); break; } // - // Rule 167: expression_list_opt ::= $Empty + // Rule 162: expression_list_opt ::= $Empty + // + case 162: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 164: expression_opt ::= $Empty + // + case 164: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 167: constant_expression_opt ::= $Empty // case 167: { action.builder. consumeEmpty(); break; } // - // Rule 169: expression_opt ::= $Empty + // Rule 176: statement ::= ERROR_TOKEN // - case 169: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 172: constant_expression_opt ::= $Empty - // - case 172: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 181: statement ::= ERROR_TOKEN - // - case 181: { action.builder. + case 176: { action.builder. consumeStatementProblem(); break; } // - // Rule 182: labeled_statement ::= identifier : statement + // Rule 177: labeled_statement ::= identifier : statement // - case 182: { action.builder. + case 177: { action.builder. consumeStatementLabeled(); break; } // - // Rule 183: labeled_statement ::= case constant_expression : statement + // Rule 178: labeled_statement ::= case constant_expression : statement // - case 183: { action.builder. + case 178: { action.builder. consumeStatementCase(); break; } // - // Rule 184: labeled_statement ::= default : statement + // Rule 179: labeled_statement ::= default : statement // - case 184: { action.builder. + case 179: { action.builder. consumeStatementDefault(); break; } // - // Rule 185: expression_statement ::= expression ; + // Rule 180: expression_statement ::= expression ; // - case 185: { action.builder. + case 180: { action.builder. consumeStatementExpression(); break; } // - // Rule 186: expression_statement ::= ; + // Rule 181: expression_statement ::= ; // - case 186: { action.builder. + case 181: { action.builder. consumeStatementNull(); break; } // - // Rule 187: compound_statement ::= { statement_seq } + // Rule 182: compound_statement ::= { statement_seq } // - case 187: { action.builder. + case 182: { action.builder. consumeStatementCompoundStatement(true); break; } // - // Rule 188: compound_statement ::= { } + // Rule 183: compound_statement ::= { } // - case 188: { action.builder. + case 183: { action.builder. consumeStatementCompoundStatement(false); break; } // - // Rule 191: selection_statement ::= if ( condition ) statement + // Rule 186: selection_statement ::= if ( condition ) statement // - case 191: { action.builder. + case 186: { action.builder. consumeStatementIf(false); break; } // - // Rule 192: selection_statement ::= if ( condition ) statement else statement + // Rule 187: selection_statement ::= if ( condition ) statement else statement // - case 192: { action.builder. + case 187: { action.builder. consumeStatementIf(true); break; } // - // Rule 193: selection_statement ::= switch ( condition ) statement + // Rule 188: selection_statement ::= switch ( condition ) statement // - case 193: { action.builder. + case 188: { action.builder. consumeStatementSwitch(); break; } // - // Rule 195: condition ::= type_specifier_seq declarator = assignment_expression + // Rule 190: condition ::= type_specifier_seq declarator = assignment_expression // - case 195: { action.builder. + case 190: { action.builder. consumeConditionDeclaration(); break; } // - // Rule 197: condition_opt ::= $Empty + // Rule 192: condition_opt ::= $Empty // - case 197: { action.builder. + case 192: { action.builder. consumeEmpty(); break; } // - // Rule 198: iteration_statement ::= while ( condition ) statement + // Rule 193: iteration_statement ::= while ( condition ) statement // - case 198: { action.builder. + case 193: { action.builder. consumeStatementWhileLoop(); break; } // - // Rule 199: iteration_statement ::= do statement while ( expression ) ; + // Rule 194: iteration_statement ::= do statement while ( expression ) ; // - case 199: { action.builder. + case 194: { action.builder. consumeStatementDoLoop(); break; } // - // Rule 200: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement + // Rule 195: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement // - case 200: { action.builder. + case 195: { action.builder. consumeStatementForLoop(); break; } // - // Rule 202: for_init_statement ::= simple_declaration_with_declspec + // Rule 197: for_init_statement ::= simple_declaration_with_declspec // - case 202: { action.builder. + case 197: { action.builder. consumeStatementDeclaration(); break; } // - // Rule 203: jump_statement ::= break ; + // Rule 198: jump_statement ::= break ; // - case 203: { action.builder. + case 198: { action.builder. consumeStatementBreak(); break; } // - // Rule 204: jump_statement ::= continue ; + // Rule 199: jump_statement ::= continue ; // - case 204: { action.builder. + case 199: { action.builder. consumeStatementContinue(); break; } // - // Rule 205: jump_statement ::= return expression ; + // Rule 200: jump_statement ::= return expression ; // - case 205: { action.builder. + case 200: { action.builder. consumeStatementReturn(true); break; } // - // Rule 206: jump_statement ::= return ; + // Rule 201: jump_statement ::= return ; // - case 206: { action.builder. + case 201: { action.builder. consumeStatementReturn(false); break; } // - // Rule 207: jump_statement ::= goto identifier_token ; + // Rule 202: jump_statement ::= goto identifier_token ; // - case 207: { action.builder. + case 202: { action.builder. consumeStatementGoto(); break; } // - // Rule 208: declaration_statement ::= block_declaration + // Rule 203: declaration_statement ::= block_declaration // - case 208: { action.builder. + case 203: { action.builder. consumeStatementDeclarationWithDisambiguation(); break; } // - // Rule 209: declaration_statement ::= function_definition + // Rule 204: declaration_statement ::= function_definition // - case 209: { action.builder. + case 204: { action.builder. consumeStatementDeclaration(); break; } // - // Rule 226: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; + // Rule 212: declaration ::= ERROR_TOKEN // - case 226: { action.builder. + case 212: { action.builder. + consumeDeclarationProblem(); break; + } + + // + // Rule 222: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; + // + case 222: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 227: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; + // Rule 223: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; // - case 227: { action.builder. + case 223: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 228: declaration_specifiers ::= simple_declaration_specifiers + // Rule 224: declaration_specifiers ::= simple_declaration_specifiers // - case 228: { action.builder. + case 224: { action.builder. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 229: declaration_specifiers ::= class_declaration_specifiers + // Rule 225: declaration_specifiers ::= class_declaration_specifiers // - case 229: { action.builder. + case 225: { action.builder. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 230: declaration_specifiers ::= elaborated_declaration_specifiers + // Rule 226: declaration_specifiers ::= elaborated_declaration_specifiers // - case 230: { action.builder. + case 226: { action.builder. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 231: declaration_specifiers ::= enum_declaration_specifiers + // Rule 227: declaration_specifiers ::= enum_declaration_specifiers // - case 231: { action.builder. + case 227: { action.builder. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 232: declaration_specifiers ::= type_name_declaration_specifiers + // Rule 228: declaration_specifiers ::= type_name_declaration_specifiers // - case 232: { action.builder. + case 228: { action.builder. consumeDeclarationSpecifiersTypeName(); break; } // - // Rule 234: declaration_specifiers_opt ::= $Empty + // Rule 230: declaration_specifiers_opt ::= $Empty // - case 234: { action.builder. + case 230: { action.builder. consumeEmpty(); break; } // - // Rule 238: no_type_declaration_specifier ::= friend + // Rule 234: no_type_declaration_specifier ::= friend // - case 238: { action.builder. + case 234: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 239: no_type_declaration_specifier ::= typedef + // Rule 235: no_type_declaration_specifier ::= typedef // - case 239: { action.builder. + case 235: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 259: storage_class_specifier ::= auto + // Rule 255: storage_class_specifier ::= auto + // + case 255: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 256: storage_class_specifier ::= register + // + case 256: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 257: storage_class_specifier ::= static + // + case 257: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 258: storage_class_specifier ::= extern + // + case 258: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 259: storage_class_specifier ::= mutable // case 259: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 260: storage_class_specifier ::= register + // Rule 260: function_specifier ::= inline // case 260: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 261: storage_class_specifier ::= static + // Rule 261: function_specifier ::= virtual // case 261: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 262: storage_class_specifier ::= extern + // Rule 262: function_specifier ::= explicit // case 262: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 263: storage_class_specifier ::= mutable + // Rule 263: simple_type_specifier ::= char // case 263: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 264: function_specifier ::= inline + // Rule 264: simple_type_specifier ::= wchar_t // case 264: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 265: function_specifier ::= virtual + // Rule 265: simple_type_specifier ::= bool // case 265: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 266: function_specifier ::= explicit + // Rule 266: simple_type_specifier ::= short // case 266: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 267: simple_type_specifier ::= char + // Rule 267: simple_type_specifier ::= int // case 267: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 268: simple_type_specifier ::= wchar_t + // Rule 268: simple_type_specifier ::= long // case 268: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 269: simple_type_specifier ::= bool + // Rule 269: simple_type_specifier ::= signed // case 269: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 270: simple_type_specifier ::= short + // Rule 270: simple_type_specifier ::= unsigned // case 270: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 271: simple_type_specifier ::= int + // Rule 271: simple_type_specifier ::= float // case 271: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 272: simple_type_specifier ::= long + // Rule 272: simple_type_specifier ::= double // case 272: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 273: simple_type_specifier ::= signed + // Rule 273: simple_type_specifier ::= void // case 273: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 274: simple_type_specifier ::= unsigned - // - case 274: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 275: simple_type_specifier ::= float - // - case 275: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 276: simple_type_specifier ::= double + // Rule 276: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name // case 276: { action.builder. - consumeDeclSpecToken(); break; + consumeQualifiedId(false); break; } // - // Rule 277: simple_type_specifier ::= void + // Rule 277: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name // case 277: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 280: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name - // - case 280: { action.builder. consumeQualifiedId(false); break; } // - // Rule 281: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name + // Rule 278: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name // - case 281: { action.builder. + case 278: { action.builder. consumeQualifiedId(false); break; } // - // Rule 282: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name + // Rule 279: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name // - case 282: { action.builder. - consumeQualifiedId(false); break; - } - - // - // Rule 283: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name - // - case 283: { action.builder. + case 279: { action.builder. consumeQualifiedId(true); break; } // - // Rule 285: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name + // Rule 281: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name // - case 285: { action.builder. + case 281: { action.builder. consumeTypeSpecifierElaborated(false); break; } // - // Rule 286: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name + // Rule 282: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name // - case 286: { action.builder. + case 282: { action.builder. consumeTypeSpecifierElaborated(true); break; } // - // Rule 287: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name + // Rule 283: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name // - case 287: { action.builder. + case 283: { action.builder. consumeTypeSpecifierElaborated(false); break; } // - // Rule 288: enum_specifier ::= enum { enumerator_list_opt } + // Rule 284: enum_specifier ::= enum { enumerator_list_opt } // - case 288: { action.builder. + case 284: { action.builder. consumeTypeSpecifierEnumeration(false); break; } // - // Rule 289: enum_specifier ::= enum identifier_token { enumerator_list_opt } + // Rule 285: enum_specifier ::= enum identifier_token { enumerator_list_opt } // - case 289: { action.builder. + case 285: { action.builder. consumeTypeSpecifierEnumeration(true); break; } // - // Rule 294: enumerator_definition ::= identifier_token + // Rule 290: enumerator_definition ::= identifier_token // - case 294: { action.builder. + case 290: { action.builder. consumeEnumerator(false); break; } // - // Rule 295: enumerator_definition ::= identifier_token = constant_expression + // Rule 291: enumerator_definition ::= identifier_token = constant_expression // - case 295: { action.builder. + case 291: { action.builder. consumeEnumerator(true); break; } // - // Rule 299: named_namespace_definition ::= namespace namespace_name { declaration_seq_opt } + // Rule 295: named_namespace_definition ::= namespace namespace_name { declaration_seq_opt } // - case 299: { action.builder. + case 295: { action.builder. consumeNamespaceDefinition(true); break; } // - // Rule 300: unnamed_namespace_definition ::= namespace { declaration_seq_opt } + // Rule 296: unnamed_namespace_definition ::= namespace { declaration_seq_opt } // - case 300: { action.builder. + case 296: { action.builder. consumeNamespaceDefinition(false); break; } // - // Rule 301: 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 301: { action.builder. + case 297: { action.builder. consumeNamespaceAliasDefinition(); break; } // - // Rule 302: 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 302: { action.builder. + case 298: { action.builder. consumeUsingDeclaration(); break; } // - // Rule 303: typename_opt ::= typename + // Rule 299: typename_opt ::= typename // - case 303: { action.builder. + case 299: { action.builder. consumePlaceHolder(); break; } // - // Rule 304: typename_opt ::= $Empty + // Rule 300: typename_opt ::= $Empty // - case 304: { action.builder. + case 300: { action.builder. consumeEmpty(); break; } // - // Rule 305: 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 305: { action.builder. + case 301: { action.builder. consumeUsingDirective(); break; } // - // Rule 306: asm_definition ::= asm ( stringlit ) ; + // Rule 302: asm_definition ::= asm ( stringlit ) ; // - case 306: { action.builder. + case 302: { action.builder. consumeDeclarationASM(); break; } // - // Rule 307: linkage_specification ::= extern stringlit { declaration_seq_opt } + // Rule 303: linkage_specification ::= extern stringlit { declaration_seq_opt } // - case 307: { action.builder. + case 303: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 308: linkage_specification ::= extern stringlit declaration + // Rule 304: linkage_specification ::= extern stringlit declaration // - case 308: { action.builder. + case 304: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 313: init_declarator_complete ::= init_declarator + // Rule 309: init_declarator_complete ::= init_declarator // - case 313: { action.builder. + case 309: { action.builder. consumeInitDeclaratorComplete(); break; } // - // Rule 315: init_declarator ::= declarator initializer + // Rule 311: init_declarator ::= declarator initializer // - case 315: { action.builder. + case 311: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 317: declarator ::= ptr_operator_seq direct_declarator + // Rule 313: declarator ::= ptr_operator_seq direct_declarator // - case 317: { action.builder. + case 313: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 319: function_declarator ::= ptr_operator_seq direct_declarator + // Rule 315: function_declarator ::= ptr_operator_seq direct_declarator + // + case 315: { action.builder. + consumeDeclaratorWithPointer(true); break; + } + + // + // Rule 319: basic_direct_declarator ::= declarator_id_name // case 319: { action.builder. - consumeDeclaratorWithPointer(true); break; - } - - // - // Rule 323: basic_direct_declarator ::= declarator_id_name - // - case 323: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 324: basic_direct_declarator ::= ( declarator ) + // Rule 320: basic_direct_declarator ::= ( declarator ) // - case 324: { action.builder. + case 320: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 325: 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 325: { action.builder. + case 321: { action.builder. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 326: array_direct_declarator ::= array_direct_declarator array_modifier + // Rule 322: array_direct_declarator ::= array_direct_declarator array_modifier // - case 326: { action.builder. + case 322: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 327: array_direct_declarator ::= basic_direct_declarator array_modifier + // Rule 323: array_direct_declarator ::= basic_direct_declarator array_modifier // - case 327: { action.builder. + case 323: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 328: array_modifier ::= [ constant_expression ] + // Rule 324: array_modifier ::= [ constant_expression ] // - case 328: { action.builder. + case 324: { action.builder. consumeDirectDeclaratorArrayModifier(true); break; } // - // Rule 329: array_modifier ::= [ ] + // Rule 325: array_modifier ::= [ ] // - case 329: { action.builder. + case 325: { action.builder. consumeDirectDeclaratorArrayModifier(false); break; } // - // Rule 330: ptr_operator ::= * cv_qualifier_seq_opt + // Rule 326: ptr_operator ::= * cv_qualifier_seq_opt // - case 330: { action.builder. + case 326: { action.builder. consumePointer(); break; } // - // Rule 331: ptr_operator ::= & + // Rule 327: ptr_operator ::= & // - case 331: { action.builder. + case 327: { action.builder. consumeReferenceOperator(); break; } // - // Rule 332: 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 332: { action.builder. + case 328: { action.builder. consumePointerToMember(); break; } // - // Rule 338: cv_qualifier ::= const + // Rule 334: cv_qualifier ::= const // - case 338: { action.builder. + case 334: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 339: cv_qualifier ::= volatile + // Rule 335: cv_qualifier ::= volatile // - case 339: { action.builder. + case 335: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 341: 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 341: { action.builder. + case 337: { action.builder. consumeQualifiedId(false); break; } // - // Rule 342: type_id ::= type_specifier_seq + // Rule 338: type_id ::= type_specifier_seq // - case 342: { action.builder. + case 338: { action.builder. consumeTypeId(false); break; } // - // Rule 343: type_id ::= type_specifier_seq abstract_declarator + // Rule 339: type_id ::= type_specifier_seq abstract_declarator // - case 343: { action.builder. + case 339: { action.builder. consumeTypeId(true); break; } // - // Rule 346: abstract_declarator ::= ptr_operator_seq + // Rule 342: abstract_declarator ::= ptr_operator_seq // - case 346: { action.builder. + case 342: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 347: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator + // Rule 343: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator // - case 347: { action.builder. + case 343: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 351: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 347: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - case 351: { action.builder. + case 347: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 352: basic_direct_abstract_declarator ::= ( ) + // Rule 348: basic_direct_abstract_declarator ::= ( ) // - case 352: { action.builder. + case 348: { action.builder. consumeAbstractDeclaratorEmpty(); break; } // - // Rule 353: array_direct_abstract_declarator ::= array_modifier + // Rule 349: array_direct_abstract_declarator ::= array_modifier // - case 353: { action.builder. + case 349: { action.builder. consumeDirectDeclaratorArrayDeclarator(false); break; } // - // Rule 354: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // Rule 350: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier // - case 354: { action.builder. + case 350: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 355: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier + // Rule 351: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier // - case 355: { action.builder. + case 351: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 356: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 352: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 356: { action.builder. + case 352: { action.builder. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 357: 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 357: { action.builder. + case 353: { action.builder. consumeDirectDeclaratorFunctionDeclarator(false); break; } // - // Rule 358: parameter_declaration_clause ::= parameter_declaration_list_opt ... + // Rule 354: parameter_declaration_clause ::= parameter_declaration_list_opt ... // - case 358: { action.builder. + case 354: { action.builder. consumePlaceHolder(); break; } // - // Rule 359: parameter_declaration_clause ::= parameter_declaration_list_opt + // Rule 355: parameter_declaration_clause ::= parameter_declaration_list_opt // - case 359: { action.builder. + case 355: { action.builder. consumeEmpty(); break; } // - // Rule 360: parameter_declaration_clause ::= parameter_declaration_list , ... + // Rule 356: parameter_declaration_clause ::= parameter_declaration_list , ... // - case 360: { action.builder. + case 356: { action.builder. consumePlaceHolder(); break; } // - // Rule 366: abstract_declarator_opt ::= $Empty + // Rule 362: abstract_declarator_opt ::= $Empty // - case 366: { action.builder. + case 362: { action.builder. consumeEmpty(); break; } // - // Rule 367: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // Rule 363: parameter_declaration ::= declaration_specifiers parameter_init_declarator // - case 367: { action.builder. + case 363: { action.builder. consumeParameterDeclaration(); break; } // - // Rule 368: parameter_declaration ::= declaration_specifiers + // Rule 364: parameter_declaration ::= declaration_specifiers // - case 368: { action.builder. + case 364: { action.builder. consumeParameterDeclarationWithoutDeclarator(); break; } // - // Rule 370: parameter_init_declarator ::= declarator = parameter_initializer + // Rule 366: parameter_init_declarator ::= declarator = parameter_initializer // - case 370: { action.builder. + case 366: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 372: parameter_init_declarator ::= abstract_declarator = parameter_initializer + // Rule 368: parameter_init_declarator ::= abstract_declarator = parameter_initializer // - case 372: { action.builder. + case 368: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 373: parameter_init_declarator ::= = parameter_initializer + // Rule 369: parameter_init_declarator ::= = parameter_initializer // - case 373: { action.builder. + case 369: { action.builder. consumeDeclaratorWithInitializer(false); break; } // - // Rule 374: parameter_initializer ::= assignment_expression + // Rule 370: parameter_initializer ::= assignment_expression // - case 374: { action.builder. + case 370: { action.builder. consumeInitializer(); break; } // - // Rule 375: 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 375: { action.builder. + case 371: { action.builder. consumeFunctionDefinition(false); break; } // - // Rule 376: 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 376: { action.builder. + case 372: { action.builder. consumeFunctionDefinition(true); break; } // - // Rule 379: initializer ::= ( expression_list ) + // Rule 375: initializer ::= ( expression_list ) // - case 379: { action.builder. + case 375: { action.builder. consumeInitializerConstructor(); break; } // - // Rule 380: initializer_clause ::= assignment_expression + // Rule 376: initializer_clause ::= assignment_expression // - case 380: { action.builder. + case 376: { action.builder. consumeInitializer(); break; } // - // Rule 381: initializer_clause ::= start_initializer_list { initializer_list , } end_initializer_list + // Rule 377: initializer_clause ::= start_initializer_list { initializer_list , } end_initializer_list // - case 381: { action.builder. + case 377: { action.builder. consumeInitializerList(); break; } // - // Rule 382: initializer_clause ::= start_initializer_list { initializer_list } end_initializer_list + // Rule 378: initializer_clause ::= start_initializer_list { initializer_list } end_initializer_list // - case 382: { action.builder. + case 378: { action.builder. consumeInitializerList(); break; } // - // Rule 383: initializer_clause ::= { } + // Rule 379: initializer_clause ::= { } // - case 383: { action.builder. + case 379: { action.builder. consumeInitializerList(); break; } // - // Rule 384: start_initializer_list ::= $Empty + // Rule 380: start_initializer_list ::= $Empty // - case 384: { action.builder. + case 380: { action.builder. initializerListStart(); break; } // - // Rule 385: end_initializer_list ::= $Empty + // Rule 381: end_initializer_list ::= $Empty // - case 385: { action.builder. + case 381: { action.builder. initializerListEnd(); break; } // - // Rule 390: class_specifier ::= class_head { member_declaration_list_opt } + // Rule 386: class_specifier ::= class_head { member_declaration_list_opt } // - case 390: { action.builder. + case 386: { action.builder. consumeClassSpecifier(); break; } // - // Rule 391: class_head ::= class_keyword identifier_name_opt base_clause_opt + // Rule 387: class_head ::= class_keyword identifier_name_opt base_clause_opt // - case 391: { action.builder. + case 387: { action.builder. consumeClassHead(false); break; } // - // Rule 392: class_head ::= class_keyword template_id_name base_clause_opt + // Rule 388: class_head ::= class_keyword template_id_name base_clause_opt + // + case 388: { action.builder. + consumeClassHead(false); break; + } + + // + // Rule 389: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt + // + case 389: { action.builder. + consumeClassHead(true); break; + } + + // + // Rule 390: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt + // + case 390: { action.builder. + consumeClassHead(true); break; + } + + // + // Rule 392: identifier_name_opt ::= $Empty // case 392: { action.builder. - consumeClassHead(false); break; - } - - // - // Rule 393: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt - // - case 393: { action.builder. - consumeClassHead(true); break; - } - - // - // Rule 394: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt - // - case 394: { action.builder. - consumeClassHead(true); break; - } - - // - // Rule 396: identifier_name_opt ::= $Empty - // - case 396: { action.builder. consumeEmpty(); break; } // - // Rule 400: visibility_label ::= access_specifier_keyword : + // Rule 396: visibility_label ::= access_specifier_keyword : // - case 400: { action.builder. + case 396: { action.builder. consumeVisibilityLabel(); break; } // - // Rule 401: member_declaration ::= declaration_specifiers_opt member_declarator_list ; + // Rule 397: member_declaration ::= declaration_specifiers_opt member_declarator_list ; // - case 401: { action.builder. + case 397: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 402: member_declaration ::= declaration_specifiers_opt ; + // Rule 398: member_declaration ::= declaration_specifiers_opt ; // - case 402: { action.builder. + case 398: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 405: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; + // Rule 401: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; // - case 405: { action.builder. + case 401: { action.builder. consumeMemberDeclarationQualifiedId(); break; } // - // Rule 411: member_declaration ::= ERROR_TOKEN + // Rule 407: member_declaration ::= ERROR_TOKEN // - case 411: { action.builder. + case 407: { action.builder. consumeDeclarationProblem(); break; } // - // Rule 419: member_declarator ::= declarator constant_initializer + // Rule 415: member_declarator ::= declarator constant_initializer // - case 419: { action.builder. + case 415: { action.builder. consumeMemberDeclaratorWithInitializer(); break; } // - // Rule 420: member_declarator ::= bit_field_declarator : constant_expression + // Rule 416: member_declarator ::= bit_field_declarator : constant_expression // - case 420: { action.builder. + case 416: { action.builder. consumeBitField(true); break; } // - // Rule 421: member_declarator ::= : constant_expression + // Rule 417: member_declarator ::= : constant_expression // - case 421: { action.builder. + case 417: { action.builder. consumeBitField(false); break; } // - // Rule 422: bit_field_declarator ::= identifier_name + // Rule 418: bit_field_declarator ::= identifier_name // - case 422: { action.builder. + case 418: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 423: constant_initializer ::= = constant_expression + // Rule 419: constant_initializer ::= = constant_expression // - case 423: { action.builder. + case 419: { action.builder. consumeInitializer(); break; } // - // Rule 429: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 425: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 429: { action.builder. + case 425: { action.builder. consumeBaseSpecifier(false, false); break; } // - // Rule 430: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name + // Rule 426: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name // - case 430: { action.builder. + case 426: { action.builder. consumeBaseSpecifier(true, true); break; } // - // Rule 431: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name + // Rule 427: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name // - case 431: { action.builder. + case 427: { action.builder. consumeBaseSpecifier(true, true); break; } // - // Rule 432: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name + // Rule 428: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name // - case 432: { action.builder. + case 428: { action.builder. consumeBaseSpecifier(true, false); break; } // - // Rule 433: access_specifier_keyword ::= private + // Rule 429: access_specifier_keyword ::= private + // + case 429: { action.builder. + consumeAccessKeywordToken(); break; + } + + // + // Rule 430: access_specifier_keyword ::= protected + // + case 430: { action.builder. + consumeAccessKeywordToken(); break; + } + + // + // Rule 431: access_specifier_keyword ::= public + // + case 431: { action.builder. + consumeAccessKeywordToken(); break; + } + + // + // Rule 433: access_specifier_keyword_opt ::= $Empty // case 433: { action.builder. - consumeAccessKeywordToken(); break; - } - - // - // Rule 434: access_specifier_keyword ::= protected - // - case 434: { action.builder. - consumeAccessKeywordToken(); break; - } - - // - // Rule 435: access_specifier_keyword ::= public - // - case 435: { action.builder. - consumeAccessKeywordToken(); break; - } - - // - // Rule 437: access_specifier_keyword_opt ::= $Empty - // - case 437: { action.builder. consumeEmpty(); break; } // - // Rule 439: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > + // Rule 435: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > // - case 439: { action.builder. + case 435: { action.builder. consumeTemplateId(); break; } // - // Rule 440: conversion_function_id ::= operator conversion_type_id + // Rule 436: conversion_function_id ::= operator conversion_type_id // - case 440: { action.builder. + case 436: { action.builder. consumeConversionName(); break; } // - // Rule 441: conversion_type_id ::= type_specifier_seq conversion_declarator + // Rule 437: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 441: { action.builder. + case 437: { action.builder. consumeTypeId(true); break; } // - // Rule 442: conversion_type_id ::= type_specifier_seq + // Rule 438: conversion_type_id ::= type_specifier_seq // - case 442: { action.builder. + case 438: { action.builder. consumeTypeId(false); break; } // - // Rule 443: conversion_declarator ::= ptr_operator_seq + // Rule 439: conversion_declarator ::= ptr_operator_seq // - case 443: { action.builder. + case 439: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 449: mem_initializer ::= mem_initializer_name ( expression_list_opt ) + // Rule 445: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 449: { action.builder. + case 445: { action.builder. consumeConstructorChainInitializer(); break; } // - // Rule 450: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 446: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name // - case 450: { action.builder. + case 446: { action.builder. consumeQualifiedId(false); break; } // - // Rule 453: operator_function_id_name ::= operator_id_name < template_argument_list_opt > + // Rule 449: operator_function_id_name ::= operator_id_name < template_argument_list_opt > // - case 453: { action.builder. + case 449: { action.builder. consumeTemplateId(); break; } // - // Rule 454: operator_id_name ::= operator overloadable_operator + // Rule 450: operator_id_name ::= operator overloadable_operator // - case 454: { action.builder. + case 450: { action.builder. consumeOperatorName(); break; } // - // Rule 497: template_declaration ::= export_opt template < template_parameter_list > declaration + // Rule 493: template_declaration ::= export_opt template < template_parameter_list > declaration // - case 497: { action.builder. + case 493: { action.builder. consumeTemplateDeclaration(); break; } // - // Rule 498: export_opt ::= export + // Rule 494: export_opt ::= export // - case 498: { action.builder. + case 494: { action.builder. consumePlaceHolder(); break; } // - // Rule 499: export_opt ::= $Empty + // Rule 495: export_opt ::= $Empty // - case 499: { action.builder. + case 495: { action.builder. consumeEmpty(); break; } // - // Rule 503: template_parameter ::= parameter_declaration + // Rule 499: template_parameter ::= parameter_declaration // - case 503: { action.builder. + case 499: { action.builder. consumeTemplateParamterDeclaration(); break; } // - // Rule 504: type_parameter ::= class identifier_name_opt + // Rule 500: type_parameter ::= class identifier_name_opt + // + case 500: { action.builder. + consumeSimpleTypeTemplateParameter(false); break; + } + + // + // Rule 501: type_parameter ::= class identifier_name_opt = type_id + // + case 501: { action.builder. + consumeSimpleTypeTemplateParameter(true); break; + } + + // + // Rule 502: type_parameter ::= typename identifier_name_opt + // + case 502: { action.builder. + consumeSimpleTypeTemplateParameter(false); break; + } + + // + // Rule 503: type_parameter ::= typename identifier_name_opt = type_id + // + case 503: { action.builder. + consumeSimpleTypeTemplateParameter(true); break; + } + + // + // Rule 504: type_parameter ::= template < template_parameter_list > class identifier_name_opt // case 504: { action.builder. - consumeSimpleTypeTemplateParameter(false); break; - } - - // - // Rule 505: type_parameter ::= class identifier_name_opt = type_id - // - case 505: { action.builder. - consumeSimpleTypeTemplateParameter(true); break; - } - - // - // Rule 506: type_parameter ::= typename identifier_name_opt - // - case 506: { action.builder. - consumeSimpleTypeTemplateParameter(false); break; - } - - // - // Rule 507: type_parameter ::= typename identifier_name_opt = type_id - // - case 507: { action.builder. - consumeSimpleTypeTemplateParameter(true); break; - } - - // - // Rule 508: type_parameter ::= template < template_parameter_list > class identifier_name_opt - // - case 508: { action.builder. consumeTemplatedTypeTemplateParameter(false); break; } // - // Rule 509: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression + // Rule 505: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression // - case 509: { action.builder. + case 505: { action.builder. consumeTemplatedTypeTemplateParameter(true); break; } // - // Rule 510: template_id_name ::= identifier_name < template_argument_list_opt > + // Rule 506: template_id_name ::= identifier_name < template_argument_list_opt > // - case 510: { action.builder. + case 506: { action.builder. consumeTemplateId(); break; } // - // Rule 515: template_argument ::= assignment_expression + // Rule 511: template_argument ::= assignment_expression // - case 515: { action.builder. + case 511: { action.builder. consumeTemplateArgumentExpression(); break; } // - // Rule 516: template_argument ::= type_id + // Rule 512: template_argument ::= type_id // - case 516: { action.builder. + case 512: { action.builder. consumeTemplateArgumentTypeId(); break; } // - // Rule 517: explicit_instantiation ::= template declaration + // Rule 513: explicit_instantiation ::= template declaration // - case 517: { action.builder. + case 513: { action.builder. consumeTemplateExplicitInstantiation(); break; } // - // Rule 518: explicit_specialization ::= template < > declaration + // Rule 514: explicit_specialization ::= template < > declaration // - case 518: { action.builder. + case 514: { action.builder. consumeTemplateExplicitSpecialization(); break; } // - // Rule 519: try_block ::= try compound_statement handler_seq + // Rule 515: try_block ::= try compound_statement handler_seq // - case 519: { action.builder. + case 515: { action.builder. consumeStatementTryBlock(); break; } // - // Rule 522: handler ::= catch ( exception_declaration ) compound_statement + // Rule 518: handler ::= catch ( exception_declaration ) compound_statement // - case 522: { action.builder. + case 518: { action.builder. consumeStatementCatchHandler(false); break; } // - // Rule 523: handler ::= catch ( ... ) compound_statement + // Rule 519: handler ::= catch ( ... ) compound_statement // - case 523: { action.builder. + case 519: { action.builder. consumeStatementCatchHandler(true); break; } // - // Rule 524: exception_declaration ::= type_specifier_seq declarator + // Rule 520: exception_declaration ::= type_specifier_seq declarator // - case 524: { action.builder. + case 520: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 525: exception_declaration ::= type_specifier_seq abstract_declarator + // Rule 521: exception_declaration ::= type_specifier_seq abstract_declarator // - case 525: { action.builder. + case 521: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 526: exception_declaration ::= type_specifier_seq + // Rule 522: exception_declaration ::= type_specifier_seq // - case 526: { action.builder. + case 522: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 528: exception_specification ::= throw ( ) + // Rule 524: exception_specification ::= throw ( ) // - case 528: { action.builder. + case 524: { action.builder. consumePlaceHolder(); break; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParserprs.java index c411f754cc9..2b360c42dcf 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 @@ -38,495 +38,497 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface BaseCheck { public final static short baseCheck[] = {0, 0,0,1,1,1,1,1,1,1,1, - 1,1,1,0,1,2,1,1,1,1, - 1,1,1,1,1,1,1,1,1,3, - 1,1,1,1,1,1,1,1,2,2, - 1,1,0,1,0,4,2,3,2,3, - 2,2,1,0,1,1,4,4,4,8, - 8,3,3,4,4,3,3,2,2,7, - 7,7,7,4,4,5,6,3,2,2, - 1,1,1,2,2,2,2,2,2,2, - 2,2,4,7,9,3,0,1,2,2, - 1,2,3,4,1,0,3,1,0,3, - 5,1,4,1,3,3,1,3,3,3, - 1,3,3,1,3,3,1,3,3,3, - 3,1,3,3,1,3,1,3,1,3, - 1,3,1,3,1,5,1,2,1,1, - 3,3,3,3,3,3,3,3,3,3, - 3,1,2,1,3,1,0,1,0,1, - 1,0,1,1,1,1,1,1,1,1, - 1,3,4,3,2,1,4,2,1,2, - 5,7,5,1,4,1,0,5,7,8, - 1,1,2,2,3,2,3,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,2,1,0,4,4,2,2,2, - 2,2,1,0,1,1,1,1,1,1, - 2,1,2,2,2,1,1,2,2,1, - 2,2,1,2,2,1,2,2,1,1, + 1,1,1,1,3,1,1,1,1,1, + 1,1,1,2,2,1,1,0,1,0, + 4,2,3,2,3,2,2,1,0,1, + 1,4,4,4,8,8,3,3,4,4, + 3,3,2,2,7,7,7,7,4,4, + 5,6,3,2,2,1,1,1,2,2, + 2,2,2,2,2,2,2,4,7,9, + 3,0,1,2,2,1,2,3,4,1, + 0,3,1,0,3,5,1,4,1,3, + 3,1,3,3,3,1,3,3,1,3, + 3,1,3,3,3,3,1,3,3,1, + 3,1,3,1,3,1,3,1,3,1, + 5,1,2,1,1,3,3,3,3,3, + 3,3,3,3,3,3,1,2,1,3, + 1,0,1,0,1,1,0,1,1,1, + 1,1,1,1,1,1,3,4,3,2, + 1,4,2,1,2,5,7,5,1,4, + 1,0,5,7,8,1,1,2,2,3, + 2,3,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,2,1, + 0,4,4,2,2,2,2,2,1,0, + 1,1,1,1,1,1,2,1,2,2, + 2,1,1,2,2,1,2,2,1,2, + 2,1,2,2,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,3, - 4,4,5,2,4,5,4,5,6,1, - 3,1,0,1,3,1,1,1,6,5, - 7,6,1,0,6,5,6,4,1,3, - 1,0,1,1,2,1,3,1,3,1, - 1,1,1,3,9,2,2,3,2,3, - 1,5,1,2,2,1,0,1,1,1, - 3,1,2,1,1,2,3,1,1,1, - 3,2,1,2,2,9,8,2,1,3, - 1,3,1,0,1,0,2,1,1,3, - 1,3,2,1,5,8,1,2,3,1, - 7,6,3,0,0,1,3,1,1,5, - 4,4,5,5,1,0,1,1,1,2, - 4,2,2,1,5,1,1,1,1,1, - 1,1,2,1,0,1,3,1,2,3, - 2,1,2,2,1,0,1,3,3,5, - 5,4,1,1,1,1,0,1,5,2, - 2,1,2,2,1,0,1,3,4,3, - 1,1,5,2,1,1,3,3,1,1, + 1,1,1,1,1,3,4,4,5,2, + 4,5,4,5,6,1,3,1,0,1, + 3,1,1,1,6,5,7,6,1,0, + 6,5,6,4,1,3,1,0,1,1, + 2,1,3,1,3,1,1,1,1,3, + 9,2,2,3,2,3,1,5,1,2, + 2,1,0,1,1,1,3,1,2,1, + 1,2,3,1,1,1,3,2,1,2, + 2,9,8,2,1,3,1,3,1,0, + 1,0,2,1,1,3,1,3,2,1, + 5,8,1,2,3,1,7,6,3,0, + 0,1,3,1,1,5,4,4,5,5, + 1,0,1,1,1,2,4,2,2,1, + 5,1,1,1,1,1,1,1,2,1, + 0,1,3,1,2,3,2,1,2,2, + 1,0,1,3,3,5,5,4,1,1, + 1,1,0,1,5,2,2,1,2,2, + 1,0,1,3,4,3,1,1,5,2, + 1,1,3,3,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,2,2,7,1,0,1, - 3,1,1,2,4,2,4,7,9,5, - 1,3,1,0,1,1,2,4,4,1, - 2,5,5,3,3,1,4,3,1,0, - 1,3,-239,0,0,0,-98,0,0,0, + 2,2,7,1,0,1,3,1,1,2, + 4,2,4,7,9,5,1,3,1,0, + 1,1,2,4,4,1,2,5,5,3, + 3,1,4,3,1,0,1,3,-238,0, + 0,0,-2,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-2,0,0,0,0,0, - 0,0,-3,0,-462,0,0,0,0,0, - -25,0,0,0,0,0,-510,0,0,0, - 0,0,0,0,0,0,0,0,0,-262, + -4,0,0,0,0,0,0,0,-3,0, + -7,0,0,0,0,0,-104,0,0,0, + 0,-509,0,0,0,0,0,0,0,0, + 0,0,0,0,-9,-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,-67,0,0,0,0,0,0,0,0, - 0,-373,0,-19,0,0,0,-101,0,0, - -58,0,0,0,0,0,0,-76,0,0, - -46,-110,0,0,0,0,0,0,0,0, - 0,0,-4,-444,0,0,0,0,0,0, - -12,-103,0,-7,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-105,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-325,0,0,0,0,0,0, - 0,-64,0,0,0,0,0,-464,0,-241, - 0,-34,0,0,0,0,0,0,-119,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-114,0, - -9,0,0,0,0,0,-14,0,0,0, - 0,0,-24,0,-377,0,0,-48,0,0, - 0,0,0,0,-245,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-31,-120,0,0,0, + 0,0,0,0,0,0,0,-461,0,0, + 0,0,0,0,0,0,0,-19,0,0, + 0,-309,0,-14,-62,0,0,-21,0,0, + 0,0,0,0,0,-284,0,0,0,-34, + 0,0,0,0,0,0,0,0,-100,-12, + 0,0,0,-24,0,0,-31,-103,0,-32, + 0,0,-35,0,0,0,0,0,-17,0, + 0,0,0,0,0,0,0,0,-105,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-99,0,0,0,0,0, - -204,0,-13,-21,0,0,0,0,0,0, - 0,-281,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-443,0,0,0, + 0,-75,0,0,-37,0,0,-48,0,0, + 0,-463,0,-119,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-17,0,0,0,-331, - 0,0,0,0,0,-128,0,0,0,-92, - 0,0,-104,0,0,0,0,-527,0,0, - 0,0,0,0,0,0,0,0,0,0, - -32,0,-27,-35,0,0,0,0,-42,-381, - 0,0,0,-16,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-220,0,0,0,0,0,0,0,-41, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-463,0,0,0,-37,0,0,0, + 0,0,0,-27,0,0,0,0,0,0, + 0,-25,0,0,0,0,0,0,0,0, + 0,-139,0,0,0,-188,-324,0,0,0, + 0,-244,0,0,0,-38,0,0,0,0, + 0,0,0,0,-224,0,0,0,0,0, + -39,-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,-309,0,-410,0,0,0, - 0,-65,0,0,0,-107,0,0,0,0, - 0,0,-265,0,0,0,-38,0,0,0, + 0,-43,0,-65,0,0,0,0,0,0, + 0,0,0,0,0,-203,0,-99,0,0, + 0,0,-108,0,0,0,-280,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-404,0,0,-115, - 0,0,0,-39,0,0,0,0,0,0, + 0,0,0,0,0,0,-114,0,-51,0, + 0,0,0,0,-92,0,0,0,0,0, + -83,0,0,-53,-313,0,0,0,-219,0, + 0,0,0,0,0,-128,0,0,-30,0, + 0,0,-60,0,0,0,0,0,0,0, + -372,0,0,-42,-380,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-43,0,0,0,0,0,0,0,-40, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-66,-112,0,0,0,-197,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-47,0,0,0,0,0,0,0,0, - -267,0,0,0,-83,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-480,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-292,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-51,0, - 0,0,0,0,0,0,-49,0,0,0, - 0,0,0,0,-53,-134,-189,0,0,-100, - 0,-60,-69,0,0,0,-72,0,0,0, - 0,0,0,0,0,-54,-383,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-52,0,-68,0, + 0,0,0,0,0,0,-68,0,0,0, 0,0,0,0,0,0,-78,0,0,0, - 0,0,0,0,0,0,-77,0,0,-106, - 0,0,-135,0,0,0,-384,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-140,0, - -75,0,0,0,0,0,0,0,0,-91, - -246,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-113,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-117,0, - 0,0,0,0,0,0,-55,0,-122,0, - 0,0,0,0,-163,0,0,0,-184,0, - 0,0,-494,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -79,0,-80,0,0,0,-518,0,0,0, - 0,0,0,-268,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-416,0,0,0,0, - 0,0,0,0,0,-81,0,0,0,0, - 0,0,-225,0,0,0,-269,0,0,0, - -137,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-493,0, - 0,0,0,0,0,0,-139,0,-147,0, - 0,0,0,0,-228,-507,-151,0,0,-270, - 0,0,0,-152,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-153,0,0,0,0,0,0,0,0, - 0,0,0,-57,0,0,0,0,0,-123, - 0,0,-271,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-155,0,0,0,0,0, - 0,0,0,0,0,0,-61,0,0,0, - 0,-63,-194,0,0,-272,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-156,0,-157,0,0, - 0,0,0,-229,0,-333,0,0,-273,0, - 0,0,-158,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -159,0,0,0,0,0,0,0,-71,0, - -161,0,0,0,0,0,-173,0,-341,0, - 0,-274,0,0,0,-174,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-175,0,0,0,0,0,0, - 0,-73,0,0,0,0,0,0,0,-176, - 0,-506,0,0,-275,0,0,0,-177,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-178,0,0,0, - 0,0,0,0,-74,0,-179,0,0,0, - 0,0,-180,0,-522,0,0,-276,0,0, - 0,-181,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-182, - 0,0,0,0,0,0,0,-84,0,-183, - 0,0,0,0,0,-185,0,-186,0,0, - -277,0,0,0,-190,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-192,0,0,0,0,0,0,0, - -85,0,-193,0,0,0,0,0,-195,0, - -202,0,0,-278,0,0,0,-203,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-206,0,0,0,0, - 0,0,0,-88,0,-208,0,0,0,0, - 0,-209,-210,-218,0,0,-380,0,0,0, - -244,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-287,0, - 0,0,0,0,0,0,-90,0,-293,0, - 0,0,0,0,-294,-94,-301,0,0,-415, - 0,0,0,-302,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-306,0,0,0,0,0,0,0,-308, - 0,-321,0,0,0,0,0,-322,-323,-324, - 0,0,-511,0,0,0,-361,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-328,0,0,0,0,0, - 0,0,-96,0,-329,0,0,0,0,0, - -330,-150,-342,0,0,-224,0,0,0,-132, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-343,0,0, - 0,0,0,0,0,-335,0,-133,0,0, - 0,0,0,-307,0,0,0,0,0,0, + 0,0,-479,0,0,0,0,-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,0,0, - 0,-30,0,0,0,-344,-345,0,0,0, - 0,0,-364,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-136,0,0,0,0,0, - 0,0,-97,0,0,0,0,0,0,0, - -392,0,0,0,0,0,0,0,0,0, + 0,-40,0,0,0,0,0,0,0,0, + -13,-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, - -102,0,-447,0,0,0,0,0,-93,0, - 0,0,-346,-347,0,0,0,0,0,-393, + 0,0,0,-66,0,-517,0,0,0,0, + 0,0,0,0,-196,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,-303,0,0,0,0,0,0,0,-198, - 0,-199,0,0,0,0,0,-505,0,0, + 0,0,0,0,0,0,-80,0,-308,0, + 0,0,0,0,-63,0,0,-403,0,0, + -279,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-348,0,-349, - 0,0,0,0,0,-124,0,0,0,-62, - -350,0,0,0,0,0,-280,0,0,0, + -235,0,0,0,0,0,0,0,-291,0, + 0,0,-76,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-305,0, - 0,0,0,0,0,0,-351,0,-200,0, - 0,0,0,0,-266,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -67,0,-41,0,0,0,0,0,-133,0, + 0,-93,0,0,0,-376,0,0,0,0, + 0,0,-382,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-81,0,0,0,0,0, + 0,0,-136,0,0,0,0,0,0,0, + -330,0,0,0,0,0,-58,0,0,0, + -383,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-409,0,0,0,0,0, + 0,0,0,-91,-113,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-138,0,0,0, + 0,0,0,0,-47,0,0,0,0,0, + 0,0,-147,0,0,0,-183,0,0,0, + -54,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-146,0, + -150,0,0,0,0,0,0,0,0,-46, + 0,-267,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-151,0,0,0,0,0,0, + 0,0,0,-152,0,-49,0,0,0,0, + -227,-240,0,0,-268,0,0,0,-228,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-154,0,0,0, + 0,0,0,0,-52,0,0,0,0,0, + 0,0,-415,-155,-156,0,0,-269,0,0, + 0,-506,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-157, + 0,0,0,0,0,0,0,-55,0,0, + 0,0,0,0,0,-492,-158,0,0,0, + -270,0,0,0,-160,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, + -57,0,-173,0,0,0,0,0,-174,-175, + -176,0,0,-271,0,0,0,-177,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-61,0,0,0,0,0,0, + 0,0,-178,-179,0,0,-272,0,0,0, + -180,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-71,0,-181,0, + 0,0,0,0,-182,-184,-185,0,0,-273, + 0,0,0,-189,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-191,0,0,0,0,0,0,0,-73, + 0,-192,0,0,0,0,0,-194,-201,-202, + 0,0,-274,0,0,0,-205,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,-207,0,0,0,0,0, - 0,0,0,0,0,0,0,-263,0,0, - 0,-352,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-353, - 0,0,0,0,0,-337,0,0,0,-366, - 0,0,0,0,0,0,0,0,-59,0, - 0,0,0,0,0,-503,0,0,-339,0, - 0,0,-461,0,0,0,0,0,0,0, - 0,-215,0,0,0,0,0,0,-285,0, - 0,0,0,-528,0,-354,0,0,0,0, - -264,0,0,0,0,0,0,0,0,0, + 0,0,-74,0,-208,0,0,0,0,0, + -209,-217,-243,0,0,-275,0,0,0,-286, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-295,0, + 0,0,0,0,0,0,0,-292,0,0, + 0,0,0,0,0,-84,0,-293,0,0, + 0,0,0,-300,-301,-305,0,0,-276,0, + 0,0,-307,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-213,-28,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-256,0,0,0, + -320,0,0,0,0,0,0,0,-85,0, + -321,0,0,0,0,0,-322,-323,-327,0, + 0,-277,0,0,0,-328,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-355,0, - 0,0,0,0,0,0,0,0,0,-214, - 0,0,-82,0,0,0,-216,-196,-242,0, - 0,0,0,0,0,0,0,-160,0,-356, - 0,-282,0,0,-33,0,0,-357,0,-358, - 0,0,0,0,0,0,0,-359,0,0, - 0,0,-257,0,0,0,0,0,0,0, + 0,0,0,-329,0,0,0,0,0,0, + 0,-88,0,-341,0,0,0,0,0,-342, + -343,-344,0,0,-379,0,0,0,-345,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-360,0,0,0,0,0, - 0,0,0,0,0,-164,0,0,0,-223, + 0,0,0,0,0,0,-346,0,0,0, + 0,0,0,0,-90,0,-347,0,0,0, + 0,0,-348,-94,-349,0,0,-414,0,0, + 0,-350,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-351, + 0,0,0,0,0,0,0,-352,0,-353, + 0,0,0,0,0,-354,-355,-356,0,0, + -510,0,0,0,-357,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-18,-363,0, - -365,-205,-258,0,0,0,0,0,0,0, + 0,0,-358,0,0,0,0,0,0,0, + -96,0,-359,0,0,0,0,0,-362,-364, + -366,0,0,-223,0,0,0,-131,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-367,0,0,0,0,-259, + 0,0,0,0,0,-367,0,0,0,0, + 0,0,0,-334,0,-132,0,0,0,0, + 0,-306,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-283,-368,0,-369, - 0,-146,0,0,0,-29,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-375, - -10,0,0,0,0,0,0,-219,-5,0, - 0,0,0,0,0,0,0,-138,0,0, - -370,0,0,0,0,0,0,0,0,0, - -20,0,-374,0,-362,0,0,0,0,-372, - 0,0,0,0,0,0,-399,0,0,0, - 0,0,0,0,0,0,0,0,-26,0, - 0,0,0,-312,0,-237,-238,0,0,0, - 0,0,0,0,0,-187,0,0,0,-288, - 0,0,0,0,0,0,0,0,-118,0, - -316,0,0,-400,0,0,0,0,0,0, - -289,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-291,0,0,0,0, - 0,-401,0,0,0,0,0,0,-300,-284, - 0,0,0,-402,0,0,-217,0,0,0, + 0,-97,0,0,0,0,0,0,0,-124, + 0,0,0,-368,-135,0,0,0,0,0, + -363,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,0,0,0,-260, - 0,0,0,-417,0,0,0,0,0,0, + 0,0,-302,0,0,0,0,0,0,0, + -102,0,0,0,0,0,0,0,-391,0, 0,0,0,0,0,0,0,0,0,0, - 0,-418,0,0,0,-227,0,0,-319,0, - -201,-420,-121,0,0,0,0,0,0,0, - -425,-490,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-109,-143,0,0,-108, - 0,-261,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-313,0,0,0,-429,0,0, - -22,0,-424,-297,-371,0,0,0,0,0, - 0,0,-433,0,0,0,-211,0,0,-442, + 0,0,0,0,0,0,0,0,-197,0, + -369,0,0,0,0,0,-303,0,0,0, + -371,-149,0,0,0,0,0,-392,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-398, + 0,0,0,0,0,0,0,-198,0,-399, + 0,-400,0,0,0,-504,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-199,0,0,0,0, + 0,0,0,-107,0,0,0,-401,-416,-417, + -393,0,0,0,-266,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-419,0,0,0, + 0,0,0,0,0,0,-98,0,-433,0, + 0,0,-264,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-72,0,0,0,0,0, + 0,0,0,0,-265,0,0,0,-424,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-206,0,0,0,0,0, + 0,0,0,0,0,0,0,-262,0,0, 0,-212,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-378,-476,0,0, + 0,0,0,0,0,0,0,0,0,-428, + 0,0,0,0,0,-432,0,0,-245,0, + 0,0,-77,0,0,0,0,0,0,0, + 0,-281,0,0,0,0,0,0,-526,0, + 0,0,-441,0,0,0,0,0,0,0, + 0,-159,0,0,0,0,0,0,-59,0, + 0,0,-145,0,0,0,0,0,0,0, + -263,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-15,0, - -443,0,-419,-449,-513,-459,0,0,0,0, + 0,0,0,0,0,0,0,0,-294,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-95,0,0,0,0, - 0,0,0,0,0,0,-497,0,0,-222, - 0,0,0,0,-465,0,-477,0,0,0, - 0,0,0,0,0,0,-481,0,-482,0, - -421,-487,0,0,0,0,-376,0,0,-149, + 0,-442,-213,-28,0,0,0,0,0,0, + 0,0,0,0,0,0,-255,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-142,0,0,0,0,0,-390, - 0,0,0,0,0,0,0,-318,0,0, - 0,0,-495,0,0,0,0,0,0,0, - 0,0,0,0,-496,0,0,-414,-453,0, - 0,0,0,-320,-144,0,0,0,-409,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-502,-512,0,-36,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-403, - 0,0,0,-427,0,0,0,0,0,0, - 0,0,-517,0,0,0,-486,0,0,0, + 0,0,0,0,0,0,0,0,-448,0, + 0,0,0,0,0,0,0,0,0,-222, + 0,0,-82,0,0,0,-434,0,0,0, + 0,0,0,0,-287,0,0,0,0,0, + -186,0,0,0,-458,-451,-106,0,0,0, + 0,0,0,0,0,-464,0,-446,0,-195, + 0,-204,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,-44,0,0,0,0,-326,0,-520, - 0,0,0,-317,0,0,0,0,0,-428, + 0,0,-476,0,0,0,-336,0,0,0, + 0,0,0,0,0,0,0,0,0,-101, + 0,-480,-475,-10,0,0,0,-153,-481,0, + -519,0,-257,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-488,0,0,-290,0,0, - -489,0,0,0,0,0,0,-336,0,0, - 0,0,0,0,0,0,0,0,0,-304, + 0,0,0,0,-117,0,0,0,0,-258, 0,0,0,0,0,0,0,0,0,0, - 0,-385,0,0,0,0,0,-514,0,0, - 0,0,0,0,0,0,0,0,-340,0, - -431,0,-492,0,-188,-226,0,0,0,0, - 0,-231,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-296,0,0,-315,0,0,-379,0,0, - 0,0,0,-430,0,0,0,0,0,0, + 0,-430,0,0,0,0,-282,-16,-486,-494, + 0,-338,0,0,0,-495,0,0,0,0, + 0,0,0,0,0,-501,0,0,0,-110, + 0,0,-215,-247,0,-122,0,0,0,0, + 0,0,0,-304,0,0,0,0,0,0, + 0,-511,0,0,0,0,0,0,0,0, + -361,0,-512,0,0,0,0,0,0,-148, 0,0,0,0,0,0,0,0,0,0, - -523,0,0,-397,0,0,0,0,0,0, - 0,0,0,-411,0,0,0,0,0,0, - 0,0,0,-525,-437,0,0,0,0,-432, - 0,0,-508,0,0,0,0,0,0,0, - 0,-445,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-382,-529,-154, + 0,0,0,0,-5,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -446,-454,0,0,0,0,0,0,0,0, - 0,0,-45,0,0,0,0,0,0,0, - -314,0,0,0,0,-1,0,0,0,0, + 0,0,-214,0,0,-123,0,0,0,0, + 0,0,0,0,-109,0,-316,0,0,-384, + 0,0,-516,0,0,0,0,0,0,0, + 0,0,0,0,-26,0,0,0,0,-193, + 0,0,-283,0,0,0,-493,0,-36,0, + 0,0,-241,0,0,-216,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-218,0,0,0,0,0, + 0,0,0,-402,0,0,0,0,0,0, + 0,0,0,-144,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -142,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,-118,-18,0, + -259,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-260,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-370,-15,0,-314,0,0,0,0, + 0,-125,-236,-527,0,0,0,0,0,0, + -444,0,0,0,0,0,0,0,-187,-237, + 0,0,0,0,0,0,0,-137,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-418,0,0,-288, + 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,-20,0,-312,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,-126,0,0,0, + 0,0,-315,0,0,0,0,0,0,0, + -386,-296,0,-297,0,0,0,0,0,-22, + 0,0,0,0,-200,0,0,-33,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-452,0,0,-502,0,0, + -143,0,0,0,-405,0,0,0,0,0, + 0,0,0,0,0,-230,0,-290,0,0, + -64,0,0,0,0,0,-210,0,0,0, + 0,0,0,0,0,0,0,0,0,-318, + 0,0,0,0,0,0,0,0,-485,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,-121,0,0,0,0,0, + -211,0,0,-289,0,0,0,0,0,0, + 0,-365,0,0,0,0,0,0,0,0, + 0,0,-487,0,0,0,0,0,-373,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-317,-231,0,0,0,0,0,0, + -332,0,0,-319,0,0,-221,0,0,-232, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-491,0,-246,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-374, + -225,0,0,-278,0,0,0,0,0,0, + -377,-381,-340,0,0,0,0,-233,-375,0, + 0,0,0,0,0,0,0,0,0,0, + -522,0,0,0,0,-447,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-387,0,-413,-325,0,0,0,0,0, + 0,-295,0,-285,-507,0,0,0,0,0, + 0,0,0,0,0,-335,0,0,0,0, + 0,0,0,0,-528,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-339,0, + 0,-408,0,-505,0,0,-1,0,0,0, + 0,-521,0,0,0,-449,0,0,0,-378, + 0,0,0,0,0,0,0,0,0,0, + 0,-44,0,0,0,-112,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -389,0,0,0,0,0,0,0,0,0, + -134,0,0,0,0,0,-437,-438,-439,0, + 0,0,0,0,0,0,0,-396,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,-450, - 0,0,0,0,0,0,0,-451,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-250,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-360,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,-385,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-489,0,0,0, + 0,0,0,0,0,0,0,0,0,-252, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-410,0,-473,0,0,0,0,0,0, + 0,0,0,0,0,-465,-89,-498,0,-460, + 0,-496,0,0,0,0,0,-478,0,0, + 0,-440,0,0,-508,0,0,0,0,-45, + 0,0,0,0,0,0,0,0,-116,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-127,0,-429,0,0, + 0,0,0,0,0,-436,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-162,0,0,0,0,0,0,0, + 0,0,-445,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-431,0,-426,-129,0,0,-471,0,-435, + -427,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-234,0,0,0,-453,0,0,0,0, + 0,0,-50,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-404,0, + 0,0,-455,-459,-457,0,-477,0,0,-466, + 0,0,-467,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-474,0,0,0,0,0,-468, + 0,0,0,0,0,0,0,0,0,-253, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-254,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-164,0,0, + 0,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,-166,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-167,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-168,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-169,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-170, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-171,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-239,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-248,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-249,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-326, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-390,0,0,0,0,0,0,0,0, + 0,0,0,0,-406,0,0,0,-469,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-411,0,0,0, + -8,0,-490,-472,0,-503,0,0,0,0, + 0,-470,-11,-482,-484,0,0,-488,0,0, + 0,0,0,0,0,-226,0,-497,-513,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-474,0,0, - 0,-413,0,0,0,0,0,0,0,0, - -251,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-56,0, + 0,0,0,-483,0,0,0,0,0,0, + 0,-499,-500,0,0,0,0,0,0,0, + 0,0,0,0,-86,0,0,0,0,0, + -524,0,0,0,0,0,-87,-514,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-448,-252,0,0, + 0,0,0,0,0,0,-397,-518,0,-520, + 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, - 0,0,-386,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-457,-126, - -89,-298,0,0,0,0,-436,-458,-467,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-394,0,0,0,0,-50, - 0,0,0,0,-475,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-456,-485,-127,-236,0,0, - 0,0,0,0,0,-460,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-468, - 0,0,0,0,0,0,0,0,-334,0, - -452,0,0,0,0,-130,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-434,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-498,0,-519,0,0,0,0,0, + 0,0,0,0,-523,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-163,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-148,0,0,0,0,0,0,0,0, - -253,0,0,0,0,0,0,0,0,0, + 0,0,0,-298,0,0,0,0,-29,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-469,0,0,0, - -254,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-525,0,0,0, + 0,0,-454,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-470,0,-255,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-11,0,0,0, - 0,0,0,0,0,0,0,-235,0,0, - 0,0,0,0,0,-232,-233,-509,0,0, - 0,0,0,-116,0,0,0,0,0,0, - 0,0,0,0,0,0,-125,0,0,-471, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-483,-435,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-484,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-405, - 0,0,0,-500,-56,0,0,0,0,-501, - 0,-165,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-166,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-167,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -168,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-169,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-170,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-171,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-172,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -240,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-249,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-250,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-327,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-391,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-407,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-515,-248,0,-8,-247,0, - -398,0,0,-279,0,-86,-521,0,0,0, - 0,-286,0,0,0,0,0,0,0,0, - 0,0,0,0,-466,0,0,0,0,0, - 0,0,0,0,0,0,0,-524,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-70, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-145,0,-87, - 0,0,0,0,0,0,0,-129,0,0, - 0,0,-526,0,0,0,-387,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-438,-439,0,0,0,0,0,-499, + 0,0,0,0,0,0,0,0,0,-23, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-299,0,0,0,0,0,0,0,0, - 0,0,-23,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-455,0, + -69,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-95,0, + 0,0,0,0,0,-111,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-131, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-141,0,0, 0,0,0,0,0,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,0,0,0,0,0,0,0,0, + 0,-6,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -333,-388,-423,0,0,0,0,0,0,0, + -130,0,0,0,-190,0,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,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,-310,0,0,0,0,0,0,0,0, - 0,-111,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-191,0,0,0,0,0,0,0, - -141,0,0,0,0,0,0,0,0,0, - 0,0,0,-6,0,0,0,0,0,0, + 0,0,-331,0,0,0,0,0,0,0, + -337,0,0,0,0,0,-394,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, - -221,0,0,0,-311,0,0,0,0,0, - 0,-332,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-338,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-395, + 0,0,-456,0,0,0,0,0,0,0, + 0,0,0,0,0,-161,0,0,0,0, + 0,0,0,0,0,0,-229,-242,0,0, 0,0,0,0,0,0,0,0,0,0, - -396,0,0,0,0,0,0,-162,-230,0, + -421,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-412,0,0,0,0, - 0,0,0,0,0,0,-243,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -422,-516,0,0,0,0,0,0,0,0, - 0,0,0,-423,0,0,0,0,0,0, - -426,0,0,0,0,0,0,0,0,0, - 0,0,-234,0,-388,0,0,-440,0,0, - 0,0,0,0,-389,0,0,-408,0,-530, - 0,0,0,0,0,0,0,-441,0,0, - -472,0,0,-479,0,0,0,0,0,0, - -473,0,0,0,0,0,0,0,-478,0, - -491,-504,0,0,0,0,0,0,0,0, + 0,0,0,0,-422,0,0,0,0,0, + 0,0,0,-407,0,0,0,0,-425,0, + 0,0,0,0,-515,0,0,0,0,0, + 0,0,-529,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, @@ -538,7 +540,13 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0 + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,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; @@ -548,545 +556,553 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface BaseAction { public final static char baseAction[] = { - 170,4,133,85,85,32,32,72,72,38, - 38,40,40,170,170,171,171,134,134,1, - 1,15,15,15,15,15,15,15,15,16, - 16,16,14,11,11,6,6,6,6,6, - 6,2,64,64,5,5,12,12,44,44, - 135,135,136,56,56,43,17,17,17,17, + 169,4,133,82,82,32,32,66,66,38, + 38,40,40,169,1,1,15,15,15,15, + 15,15,15,15,16,16,16,14,11,11, + 6,6,6,6,6,6,2,64,64,5, + 5,12,12,44,44,134,134,135,56,56, + 43,17,17,17,17,17,17,17,17,17, 17,17,17,17,17,17,17,17,17,17, - 17,17,17,17,17,17,137,137,137,112, - 112,18,18,18,18,18,18,18,18,18, - 18,18,18,18,19,19,172,172,173,173, - 174,140,140,141,141,138,138,142,139,139, - 20,20,21,21,23,23,23,24,24,24, - 24,25,25,25,26,26,26,27,27,27, - 27,27,28,28,28,29,29,31,31,33, - 33,35,35,36,36,37,37,42,42,41, - 41,41,41,41,41,41,41,41,41,41, - 41,41,39,30,143,143,96,96,175,175, - 91,195,195,73,73,73,73,73,73,73, - 73,73,74,74,74,65,65,55,55,176, - 176,75,75,75,102,102,177,177,76,76, - 76,178,178,77,77,77,77,77,78,78, - 81,81,81,81,81,81,81,49,49,49, - 49,49,113,113,114,114,50,179,22,22, - 22,22,22,48,48,86,86,86,86,86, - 150,150,145,145,145,145,145,146,146,146, - 147,147,147,148,148,148,149,149,149,87, - 87,87,87,87,88,88,88,13,13,13, - 13,13,13,13,13,13,13,13,97,118, - 118,118,118,118,118,116,116,116,117,117, - 152,152,151,151,120,120,103,68,68,69, - 70,52,47,153,153,53,51,84,84,154, - 154,144,144,121,122,122,82,82,155,155, - 62,62,62,59,59,58,63,63,80,80, - 57,57,57,89,89,99,98,98,61,61, - 60,60,54,54,45,100,100,100,92,92, - 92,93,93,94,94,94,95,95,104,104, - 104,106,106,105,105,196,196,90,90,181, - 181,181,181,181,124,46,46,157,180,180, - 125,125,125,125,126,159,182,182,34,34, - 115,127,127,127,127,107,107,119,119,119, - 160,161,161,161,161,161,161,161,161,161, - 161,161,185,185,183,183,184,184,162,162, - 162,162,163,186,109,108,108,187,187,164, - 164,164,164,101,101,101,188,188,8,8, - 9,189,189,190,165,156,156,166,166,167, - 168,168,7,7,10,191,191,191,191,191, - 191,191,191,191,191,191,191,191,191,191, - 191,191,191,191,191,191,191,191,191,191, - 191,191,191,191,191,191,191,191,191,191, - 191,191,191,191,191,191,191,66,71,71, - 169,169,129,129,130,130,130,130,130,130, - 3,131,131,128,128,110,110,83,67,79, - 158,158,111,111,192,192,192,132,132,123, - 123,193,193,1132,41,2071,2065,504,4722,33, - 36,37,941,816,32,34,2055,31,29,56, - 1727,112,82,83,114,1392,1736,1770,1754,1797, - 1779,1813,1807,1373,1840,62,1822,278,1850,1856, - 149,332,41,284,164,150,631,3057,41,944, - 38,3402,3225,33,36,37,941,816,340,34, - 2597,41,944,38,237,1425,33,36,37,941, - 816,32,34,1721,31,29,56,1727,112,82, - 83,114,72,1736,1770,1754,1797,1779,2440,240, - 235,236,680,3244,1399,41,1245,1297,504,3710, - 279,680,41,783,389,321,1123,323,1546,316, - 1032,1565,332,41,451,391,425,4663,247,250, - 253,256,624,71,2397,41,282,353,55,524, - 906,158,941,1557,1427,55,3283,1229,788,345, - 1684,1555,350,1986,1229,1320,1969,525,3079,954, - 2688,2801,3021,4543,1775,41,944,38,2779,1425, - 33,36,37,941,816,32,34,1721,31,29, - 56,1727,112,82,83,114,344,1736,1770,1754, - 1797,1779,1813,1807,2148,1840,863,1822,3598,1850, - 1856,149,1410,496,382,515,150,1124,2450,3490, - 2449,1237,680,1506,1463,40,392,425,516,1775, - 41,944,38,2779,1425,33,36,37,941,816, - 32,34,1721,31,29,56,1727,112,82,83, - 114,344,1736,1770,1754,1797,1779,1813,1807,55, - 1840,1566,1822,1128,1850,1856,149,1884,3240,333, - 515,150,290,1770,3490,680,3018,1077,680,41, - 2193,2063,315,516,511,1349,41,944,38,2598, - 4736,33,36,37,941,816,63,34,444,1865, - 1883,4642,1582,2072,1564,1858,2037,1775,41,944, - 38,2779,1425,33,36,37,941,816,32,34, - 1721,31,29,56,1727,112,82,83,114,344, - 1736,1770,1754,1797,1779,1813,1807,1077,1840,511, - 1822,325,1850,1856,149,1723,41,285,515,150, - 529,1745,3490,158,1263,1266,1124,1901,3513,4035, - 1858,516,2051,41,944,38,2779,1425,33,36, - 37,941,816,32,34,1721,31,29,56,1727, - 112,82,83,114,344,1736,1770,1754,1797,1779, - 1813,1807,3769,1840,1417,1822,1409,1850,1856,149, - 506,41,284,515,150,4030,1654,3490,334,2752, - 680,41,296,680,41,287,516,511,2108,41, - 944,38,67,4786,33,36,37,941,816,32, - 34,2224,509,335,2243,1908,1162,2330,1858,1409, - 2119,41,944,38,1381,1425,33,36,37,941, - 816,32,34,1721,31,29,56,1727,112,82, - 83,114,316,1736,1770,1754,1797,1779,1813,1807, - 55,1840,512,1822,3681,1850,1856,149,300,1977, - 2280,380,150,1844,41,944,38,1115,1425,33, - 36,37,941,816,32,34,1721,31,29,56, - 1727,112,82,83,114,237,1736,1770,1754,1797, - 1779,1813,1807,2080,1840,2581,1822,3024,1850,1856, - 149,3637,1235,2280,380,150,680,41,1463,281, - 249,235,236,2597,41,944,38,2394,1425,33, - 36,37,941,816,32,34,1721,31,29,56, - 1727,112,82,83,114,1433,1736,1770,1754,1797, - 1779,1813,1807,436,2610,386,2282,680,41,3081, - 1917,41,944,38,422,1425,33,36,37,941, - 816,32,34,1721,31,29,56,1727,112,82, - 83,114,1225,1736,1770,1754,1797,1779,1813,1807, - 1511,1840,326,1822,4450,1850,1856,149,387,2282, - 2280,380,150,1532,680,41,783,389,2357,41, - 944,38,3371,1425,33,36,37,941,816,32, - 34,1721,31,29,56,1727,112,82,83,114, - 1934,1736,1770,1754,1797,1779,1813,1807,55,1840, - 3014,1822,55,1850,1856,149,3106,1229,1893,164, - 150,2597,41,944,38,1329,1425,33,36,37, - 941,816,32,34,1721,31,29,56,1727,112, - 82,83,114,1692,1736,1770,1754,1797,1779,1813, - 1807,99,1840,327,2620,378,2282,2357,41,944, - 38,419,1425,33,36,37,941,816,32,34, - 1721,31,29,56,1727,112,82,83,114,245, - 1736,1770,1754,1797,1779,1813,1807,55,1840,2326, - 1822,537,1850,1856,149,1783,1654,1906,374,150, - 1805,2747,1507,2825,41,944,38,1565,4430,33, - 36,37,941,816,340,34,1409,2357,41,944, - 38,1969,1425,33,36,37,941,816,32,34, - 1721,31,29,56,1727,112,82,83,114,324, - 1736,1770,1754,1797,1779,1813,1807,1258,1840,1161, - 1822,628,1850,1856,149,76,2231,1476,374,150, - 334,321,1123,323,3852,319,1032,1565,390,188, - 1723,41,282,680,41,783,389,2357,41,944, - 38,373,1425,33,36,37,941,816,32,34, - 1721,31,29,56,1727,112,82,83,114,495, - 1736,1770,1754,1797,1779,1813,1807,55,1840,1727, - 1822,1657,1850,1856,149,2963,1229,2597,374,150, - 158,2269,41,944,38,4590,4736,33,36,37, - 941,816,62,34,2846,48,1549,2185,41,944, - 38,372,1425,33,36,37,941,816,32,34, - 1721,31,29,56,1727,112,82,83,114,1243, - 1736,1770,1754,1797,1779,1813,1807,55,1840,1546, - 1822,662,1850,1899,170,1297,41,783,389,1983, - 41,944,38,62,1425,33,36,37,941,816, - 32,34,1721,31,29,56,1727,112,82,83, - 114,370,1736,1770,1754,1797,1779,1813,1807,55, - 1840,1494,1822,2406,1850,1856,149,2450,1229,2599, - 148,150,329,2326,2357,41,944,38,1643,1425, - 33,36,37,941,816,32,34,1721,31,29, - 56,1727,112,82,83,114,117,1736,1770,1754, - 1797,1779,1813,1807,458,1840,1371,1822,66,1850, - 1856,149,863,680,1557,161,150,2357,41,944, - 38,591,1425,33,36,37,941,816,32,34, - 1721,31,29,56,1727,112,82,83,114,465, - 1736,1770,1754,1797,1779,1813,1807,2475,1840,1357, - 1822,441,1850,1856,149,2039,1692,1816,160,150, - 2357,41,944,38,1910,1425,33,36,37,941, - 816,32,34,1721,31,29,56,1727,112,82, - 83,114,683,1736,1770,1754,1797,1779,1813,1807, - 357,1840,381,1822,55,1850,1856,149,684,529, - 1546,159,150,2357,41,944,38,521,1425,33, - 36,37,941,816,32,34,1721,31,29,56, - 1727,112,82,83,114,1556,1736,1770,1754,1797, - 1779,1813,1807,291,1840,354,1822,55,1850,1856, - 149,2990,1394,1546,158,150,2357,41,944,38, - 521,1425,33,36,37,941,816,32,34,1721, - 31,29,56,1727,112,82,83,114,77,1736, - 1770,1754,1797,1779,1813,1807,2519,1840,2536,1822, - 226,1850,1856,149,1635,457,1546,157,150,2357, - 41,944,38,2572,1425,33,36,37,941,816, - 32,34,1721,31,29,56,1727,112,82,83, - 114,2575,1736,1770,1754,1797,1779,1813,1807,55, - 1840,1750,1822,2859,1850,1856,149,1221,328,1546, - 156,150,2357,41,944,38,69,1425,33,36, - 37,941,816,32,34,1721,31,29,56,1727, - 112,82,83,114,1647,1736,1770,1754,1797,1779, - 1813,1807,55,1840,355,1822,739,1850,1856,149, - 1649,4342,1546,155,150,2357,41,944,38,1541, - 1425,33,36,37,941,816,32,34,1721,31, - 29,56,1727,112,82,83,114,1646,1736,1770, - 1754,1797,1779,1813,1807,55,1840,1534,1822,817, - 1850,1856,149,1019,57,1546,154,150,2357,41, - 944,38,323,1425,33,36,37,941,816,32, - 34,1721,31,29,56,1727,112,82,83,114, - 497,1736,1770,1754,1797,1779,1813,1807,55,1840, - 838,1822,3977,1850,1856,149,1574,103,2059,153, - 150,2357,41,944,38,2080,1425,33,36,37, - 941,816,32,34,1721,31,29,56,1727,112, - 82,83,114,2285,1736,1770,1754,1797,1779,1813, - 1807,55,1840,678,1822,3680,1850,1856,149,1915, - 104,857,152,150,2357,41,944,38,944,1425, - 33,36,37,941,816,32,34,1721,31,29, - 56,1727,112,82,83,114,1764,1736,1770,1754, - 1797,1779,1813,1807,55,1840,2249,1822,3737,1850, - 1856,149,1268,2580,2260,151,150,2357,41,944, - 38,1490,1425,33,36,37,941,816,32,34, - 1721,31,29,56,1727,112,82,83,114,2294, - 1736,1770,1754,1797,1779,1813,1807,55,1840,1958, - 1822,3776,1850,1856,149,2402,1394,2538,165,150, - 2357,41,944,38,2539,1425,33,36,37,941, - 816,32,34,1721,31,29,56,1727,112,82, - 83,114,2107,1736,1770,1754,1797,1779,1813,1807, - 1026,1840,1903,1822,306,1850,1856,149,2105,2114, - 2343,146,150,2480,41,944,38,30,1425,33, - 36,37,941,816,32,34,1721,31,29,56, - 1727,112,82,83,114,2474,1736,1770,1754,1797, - 1779,1813,1807,55,1840,2774,1822,2987,1850,1856, - 149,2250,1654,1901,195,150,2597,41,944,38, - 1394,1425,33,36,37,941,816,32,34,1721, - 31,29,56,1727,112,82,83,114,2082,1736, - 1770,1754,1797,1779,1813,1807,55,1840,1394,1822, - 1128,1850,1899,170,2597,41,944,38,305,1425, - 33,36,37,941,816,32,34,1721,31,29, - 56,1727,112,82,83,114,3444,1736,1770,1754, - 1797,1779,1813,1807,288,1840,302,1822,520,1850, - 1899,170,1250,41,944,38,156,1956,47,36, - 37,941,816,2597,41,944,38,295,1425,33, - 36,37,941,816,32,34,1721,31,29,56, - 1727,112,82,83,114,1804,1736,1770,1754,1797, - 1779,1813,1807,2467,1840,1496,1822,3205,1850,1899, - 170,2597,41,944,38,421,1425,33,36,37, - 941,816,32,34,1721,31,29,56,1727,112, - 82,83,114,403,1736,1770,1754,1797,1779,1813, - 1807,55,1840,2092,1822,3150,1850,1899,170,1831, - 41,944,38,1991,1840,2108,36,37,941,816, - 2597,41,944,38,2962,1425,33,36,37,941, - 816,32,34,1721,31,29,56,1727,112,82, - 83,114,1394,1736,1770,1754,1797,1779,1813,1807, - 55,1840,1409,1822,2850,1850,1899,170,2653,41, - 944,38,420,1425,33,36,37,941,816,32, - 34,1721,31,29,56,1727,112,82,83,114, - 301,1736,1770,1754,1797,1779,1813,1807,1974,1840, - 2158,1822,2871,1850,1899,170,1831,41,944,38, - 330,2234,46,36,37,941,816,2597,41,944, - 38,423,1425,33,36,37,941,816,32,34, - 1721,31,29,56,1727,112,82,83,114,1222, - 1736,1770,1754,1797,1779,1813,1807,2344,1840,55, - 1822,3058,2655,3318,3127,2597,41,944,38,1815, - 1425,33,36,37,941,816,32,34,1721,31, - 29,56,1727,112,82,83,114,401,1736,1770, - 1754,1797,1779,1813,2618,1285,41,944,38,3402, - 3225,33,36,37,941,816,340,34,2597,41, - 944,38,2389,1425,33,36,37,941,816,32, - 34,1721,31,29,56,1727,112,82,83,114, - 1143,1736,1770,1754,1797,2496,2040,41,944,38, - 1394,4786,33,36,37,941,816,65,34,680, - 41,783,389,321,1123,323,2092,316,1032,2040, - 41,944,38,30,4786,33,36,37,941,816, - 64,34,680,41,296,353,2986,1985,185,680, - 41,783,389,278,2450,445,2457,345,1684,1555, - 350,2597,41,944,38,1979,1425,33,36,37, - 941,816,32,34,1721,31,29,56,1727,112, - 82,83,114,450,1736,1770,1754,1797,2579,2759, - 41,944,38,3352,3225,33,36,37,941,816, - 340,34,1654,2312,41,944,38,722,4430,33, - 36,37,941,816,340,34,280,2597,41,944, - 38,352,1425,33,36,37,941,816,32,34, - 1721,31,29,56,1727,112,82,83,114,2639, - 1736,1770,1754,2244,520,2272,367,321,1123,323, - 1654,316,1032,680,41,783,389,2131,1565,2131, - 333,321,1123,323,3290,316,1032,3127,158,353, - 671,1257,55,3948,307,2239,2037,356,2217,2779, - 758,345,1684,1555,350,612,529,278,1113,2861, - 379,1539,1253,2597,41,944,38,344,1425,33, - 36,37,941,816,32,34,1721,31,29,56, - 1727,112,82,83,114,2391,1736,1770,1754,2318, - 1361,3340,299,2326,309,313,2541,41,944,38, - 1654,1425,33,36,37,941,816,32,34,1721, - 31,29,56,1727,92,82,83,1642,3080,2476, - 341,2522,1565,2597,41,944,38,1299,1425,33, - 36,37,941,816,32,34,1721,31,29,56, - 1727,112,82,83,114,88,1736,1770,1754,2320, - 2597,41,944,38,2886,1425,33,36,37,941, - 816,32,34,1721,31,29,56,1727,112,82, - 83,114,289,1736,1770,1754,2331,262,2534,237, - 2628,533,680,41,1463,286,3086,41,944,38, - 722,3225,33,36,37,941,816,340,34,233, - 1394,2214,1102,296,252,235,236,162,1881,1508, - 41,783,389,4715,2829,186,2450,1247,2214,41, - 296,2661,242,209,220,4684,208,217,218,219, - 221,3101,175,2275,440,1,454,1128,204,533, - 2682,980,174,278,321,1123,323,2684,316,1032, - 189,173,176,177,178,179,180,233,980,593, - 41,783,389,162,158,162,1565,1565,1257,4750, - 237,206,3300,186,2450,1247,680,41,1463,283, - 1654,209,220,4684,208,217,218,219,221,1338, - 175,1565,237,55,2695,240,235,236,4307,30, - 174,55,1229,1252,949,950,279,187,190,173, - 176,177,178,179,180,2459,55,255,235,236, - 3488,949,2712,351,247,250,253,256,624,55, - 332,41,451,4467,2714,4663,906,1274,41,2012, - 38,722,4430,33,36,37,941,816,340,34, - 2961,2386,383,2805,3079,954,2688,2801,3021,4543, - 2597,41,944,38,2733,1425,33,36,37,941, - 816,32,34,1721,31,29,56,1727,112,82, - 83,114,175,1736,1770,2367,1951,330,336,1565, - 3294,1338,2665,1410,333,321,1123,323,1124,316, - 1032,2225,2965,41,944,38,722,3225,33,36, - 37,941,816,340,34,2326,1409,504,352,1025, - 330,75,2597,41,944,38,1253,1425,33,36, - 37,941,816,32,34,1721,31,29,56,1727, - 112,82,83,114,158,1736,1770,2422,2646,4761, - 333,3124,2961,2275,1889,349,1247,533,2779,533, - 321,1123,323,1424,316,1032,353,1677,41,395, - 2742,377,1677,41,395,3688,2405,233,345,1684, - 1555,350,861,162,612,162,2861,1409,2753,335, - 336,186,2450,186,2450,1247,448,1865,1883,416, - 2020,209,220,4684,208,217,218,219,221,2824, - 175,2744,237,436,2459,2509,2752,533,201,1128, - 174,2359,244,309,313,394,425,1247,2971,173, - 176,177,178,179,180,233,1197,258,235,236, - 2779,1323,3414,162,362,162,3358,1677,41,395, - 1946,186,2450,1247,168,2578,1299,2241,233,209, - 220,4684,208,217,218,219,221,2582,175,2690, - 237,523,2737,375,1987,533,3375,1394,174,1994, - 941,1557,2185,406,4671,445,184,173,176,177, - 178,179,180,233,1303,245,235,236,2779,1323, - 1394,162,407,408,409,297,298,664,55,186, - 2450,1247,4371,2024,3852,203,233,209,220,4684, - 208,217,218,219,221,2784,175,94,1873,610, - 108,3679,202,533,1565,504,174,1521,405,55, - 2185,406,4671,2233,182,173,176,177,178,179, - 180,233,2796,2308,3253,593,41,783,389,162, - 407,408,409,297,298,664,74,186,2450,1247, - 680,41,1463,3040,1394,209,220,4684,208,217, - 218,219,221,2798,175,50,1549,697,5384,55, - 4408,533,2326,5384,174,1521,410,412,1229,1175, - 290,5384,183,173,176,177,178,179,180,233, - 5384,2593,207,767,41,783,389,162,1565,1246, - 2753,3164,5384,5384,1765,186,2450,1247,2779,1124, - 1394,2670,1564,209,220,4684,208,217,218,219, - 221,5384,175,393,425,784,2405,55,1338,533, - 59,1394,174,5384,410,413,1229,53,1565,5384, - 193,173,176,177,178,179,180,233,205,920, - 1831,41,944,38,5384,162,3170,36,37,941, - 816,333,1765,186,2450,1247,2779,1124,1394,3085, - 93,209,220,4684,208,217,218,219,221,1565, - 175,1497,5384,871,2405,1409,1410,533,5384,2961, - 174,1124,55,3405,361,5384,2779,5384,3223,173, - 176,177,178,179,180,233,227,5384,3434,1926, - 1936,58,1410,162,344,3041,5384,1124,1565,333, - 1124,186,2450,1247,55,1247,332,336,2473,209, - 220,4684,208,217,218,219,221,3490,175,95, - 377,958,108,333,1565,533,2022,5384,174,5384, - 449,3663,361,565,1565,5384,198,173,176,177, - 178,179,180,233,1394,1565,3434,1926,1936,333, - 55,162,334,1409,728,3405,3687,5384,5384,186, - 2450,1247,2013,41,1463,281,96,209,220,4684, - 208,217,218,219,221,353,175,3689,1338,1045, - 1905,3663,199,533,3376,5384,174,347,1684,1555, - 350,1565,1565,1247,192,173,176,177,178,179, - 180,233,5384,854,41,783,389,5384,523,162, - 5384,680,41,783,389,5384,1611,186,2450,1247, - 2779,5384,2612,3715,3257,209,220,4684,208,217, - 218,219,221,5384,175,5384,5384,55,233,2961, - 680,3137,1463,80,174,429,1229,53,2013,41, - 1463,3139,200,173,176,177,178,179,180,2239, - 353,5384,211,220,4684,210,217,218,219,221, - 5384,5384,345,1684,1555,350,3460,336,5384,5384, - 343,5384,212,214,216,297,298,664,680,41, - 1463,3222,1188,41,783,389,5384,17,5384,213, - 215,2597,41,944,38,5384,1425,33,36,37, - 941,816,32,34,1721,31,29,56,1727,112, - 82,83,114,5384,1736,2073,278,1410,2597,41, - 944,38,1124,1425,33,36,37,941,816,32, - 34,1721,31,29,56,1727,112,82,83,114, - 15,1736,2098,2788,41,944,38,5384,4430,33, - 36,37,941,816,340,34,5384,5384,5384,2447, - 2168,2874,2168,533,2779,2779,2779,55,55,55, - 5384,4395,2972,4490,4874,5384,555,3937,5384,3084, - 5384,344,2405,233,2405,680,41,783,389,162, - 854,41,783,389,78,55,5384,5384,194,2466, - 334,321,1123,323,4559,317,1032,211,220,4684, - 210,217,218,219,221,1565,2156,2887,2085,432, - 577,2779,1128,353,55,5384,1565,212,214,216, - 297,298,664,1229,53,347,1684,1555,350,233, - 1565,5384,222,5384,213,215,855,3315,166,2488, - 503,2090,503,2779,5384,2779,2979,100,3373,5384, - 2779,196,5384,211,220,4684,210,217,218,219, - 221,344,73,344,4458,916,5384,5384,233,680, - 41,783,389,212,214,216,297,298,664,500, - 502,501,502,55,1027,55,3736,1467,222,2494, - 213,215,211,220,4684,210,217,218,219,221, - 5384,5384,5384,431,3288,5384,5384,5384,5384,5384, - 5384,5384,212,214,216,297,298,664,5384,1942, - 4458,2542,680,41,783,389,3321,222,5384,213, - 215,2597,41,944,38,5384,1425,33,36,37, - 941,816,32,34,1721,31,29,56,1727,112, - 82,83,114,5384,2156,5384,55,1565,5384,4458, - 2590,2597,41,944,38,52,1425,33,36,37, - 941,816,32,34,1721,31,29,56,1727,112, - 82,83,114,1565,2157,2597,41,944,38,72, - 1425,33,36,37,941,816,32,34,1721,31, - 29,56,1727,112,82,83,114,1699,2243,5384, - 5384,2779,3209,5384,5384,71,5384,5384,680,41, - 783,389,5384,5384,5384,5384,55,55,1409,233, - 2779,2779,5384,4009,3086,41,944,38,722,3225, - 33,36,37,941,816,340,34,1809,344,344, - 1565,2779,55,211,220,4684,210,217,218,219, - 221,1229,714,1565,680,41,783,389,1247,2405, - 5384,3490,3490,212,214,216,297,298,664,1565, - 2028,2029,70,522,5384,5384,5384,5384,17,5384, - 213,215,321,1123,323,3463,316,1032,430,5384, - 680,41,783,389,1565,593,41,783,389,5384, - 1565,3958,2597,41,944,38,612,1425,33,36, - 37,941,816,32,34,1721,31,29,56,1727, - 112,82,83,91,55,5384,61,361,5384,55, - 5384,16,60,1229,654,5384,5384,5384,1229,53, - 5384,2692,1926,1936,5384,310,313,2597,1506,944, - 1951,923,1425,33,36,37,941,816,32,34, - 1721,31,29,56,1727,112,82,83,90,2597, - 41,944,38,5384,1425,33,36,37,941,816, - 32,34,1721,31,29,56,1727,112,82,83, - 89,2597,41,944,38,5384,1425,33,36,37, - 941,816,32,34,1721,31,29,56,1727,112, - 82,83,88,2597,41,944,38,5384,1425,33, - 36,37,941,816,32,34,1721,31,29,56, - 1727,112,82,83,87,2597,41,944,38,5384, - 1425,33,36,37,941,816,32,34,1721,31, - 29,56,1727,112,82,83,86,2597,41,944, - 38,5384,1425,33,36,37,941,816,32,34, - 1721,31,29,56,1727,112,82,83,85,2597, - 41,944,38,5384,1425,33,36,37,941,816, - 32,34,1721,31,29,56,1727,112,82,83, - 84,2418,41,944,38,5384,1425,33,36,37, - 941,816,32,34,1721,31,29,56,1727,112, - 82,83,110,2597,41,944,38,5384,1425,33, - 36,37,941,816,32,34,1721,31,29,56, - 1727,112,82,83,116,2597,41,944,38,5384, - 1425,33,36,37,941,816,32,34,1721,31, - 29,56,1727,112,82,83,115,2597,41,944, - 38,5384,1425,33,36,37,941,816,32,34, - 1721,31,29,56,1727,112,82,83,113,1433, - 41,2012,38,722,3225,33,36,37,941,816, - 340,34,2597,41,944,38,5384,1425,33,36, - 37,941,816,32,34,1721,31,29,56,1727, - 112,82,83,111,5384,1565,55,5384,1446,2085, - 1128,1809,2779,1128,55,2779,2998,1565,1128,5384, - 2779,5384,2085,5384,5384,5384,1128,321,1123,323, - 233,316,1032,2405,5384,1338,162,3454,233,166, - 5384,5384,5384,5384,162,1729,5384,5384,1565,107, - 5384,1025,166,2628,211,220,4684,210,217,218, - 219,221,211,220,4684,210,217,218,219,221, - 593,41,783,389,212,214,216,297,298,664, - 3489,5384,212,214,216,297,298,664,3100,517, - 3011,213,215,4711,2779,5384,2961,518,2906,213, - 215,361,2779,1949,55,3369,5384,2267,5384,5384, - 5384,2779,233,1229,1409,3455,1926,1936,3408,5384, - 233,5384,5384,55,55,5384,2593,1128,1128,2405, - 1338,417,2020,3813,336,527,211,220,4684,210, - 217,218,219,221,211,220,4684,210,217,218, - 219,221,5384,162,162,5384,212,214,216,297, - 298,664,3760,3887,212,214,216,297,298,664, - 5384,308,3070,213,215,5384,2779,5384,5384,223, - 5384,213,215,2709,41,783,389,5384,2829,2778, - 5384,2961,5384,5384,233,5384,243,503,5384,3086, - 41,944,38,722,3225,33,36,37,941,816, - 340,34,5384,5384,5384,5384,5384,278,211,220, - 4684,210,217,218,219,221,5384,5384,3815,336, - 1028,41,783,389,5384,5384,500,502,212,214, - 216,297,298,664,237,5384,5384,5384,5384,5384, - 5384,5384,427,497,5384,213,215,321,1123,323, - 5384,316,1032,5384,55,5384,5384,5384,5384,241, - 235,236,3100,1229,53,1944,3033,4711,5384,5384, - 279,3142,2919,41,944,38,2482,4430,33,36, - 37,941,816,340,34,5384,5384,5384,248,251, - 254,257,624,593,41,783,389,5384,5384,5384, - 906,2947,41,944,38,2907,3225,33,36,37, - 941,816,340,34,1384,41,944,38,2543,3225, - 33,36,37,941,816,340,34,55,5384,334, - 321,1123,323,5384,317,1032,1229,53,5384,402, - 5384,593,41,783,389,593,41,783,389,2489, - 5384,5384,1693,41,783,389,5384,5384,5384,318, - 997,323,5384,2778,5384,5384,854,41,783,389, - 5384,5384,318,997,323,55,5384,5384,5384,55, - 593,41,783,389,1229,53,55,5384,1229,53, - 5384,593,41,783,389,1229,2921,3521,55,55, - 55,3705,533,533,5384,5384,5384,5384,2459,1229, - 3198,5384,5384,5384,55,5384,680,41,783,389, - 344,344,3602,1229,53,55,428,55,162,162, - 5384,533,5384,5384,1229,53,3799,2837,3204,5384, - 5384,55,2512,3490,3490,533,2779,3994,5384,344, - 55,5384,2836,2959,55,5384,943,162,533,1229, - 2599,55,5384,344,344,533,2837,5384,5384,943, - 5384,162,3490,55,528,55,344,2779,55,2779, - 194,3328,1128,344,162,55,4559,3490,55,2779, - 55,162,2779,194,2779,344,531,344,55,4559, - 194,2085,1128,5384,3170,1128,4559,344,162,1124, - 344,2085,344,5384,5384,1128,5384,3913,3490,55, - 3490,55,2085,1128,5384,1128,1128,2030,162,507, - 3490,166,5384,3490,5384,3490,5384,3980,5384,505, - 5384,166,3501,3502,532,5384,5384,5384,5384,162, - 5384,162,166,5384,5384,5384,3735,5384,1772,5384, - 4365,4874,5384,3746,5384,5384,5384,5384,5384,5384, - 5384,5384,5384,5384,5384,5384,5384,5384,5384,5384, - 5384,5384,5384,5384,5384,5384,5384,5384,5384,5384, - 5384,5384,5384,5384,5384,5384,5384,4034,5384,5384, - 5384,5384,5384,5384,5384,5384,5384,4040,5384,5384, - 5384,5384,5384,5384,5384,5384,5384,5384,4377,5384, - 5384,5384,5384,5384,5384,5384,5384,5384,5384,5384, - 5384,5384,5384,5384,5384,4463,5384,5384,5384,5384, - 5384,5384,5384,5384,102,5384,0,499,4368,0, - 1,234,0,45,5404,0,45,5403,0,1, - 2756,0,2152,1,0,45,1,5404,0,45, - 1,5403,0,1,2615,0,1,732,0,5623, - 246,0,5622,246,0,5723,246,0,5722,246, - 0,5650,246,0,5649,246,0,5648,246,0, - 5647,246,0,5646,246,0,5645,246,0,5644, - 246,0,5643,246,0,5661,246,0,5660,246, - 0,5659,246,0,5658,246,0,5657,246,0, - 5656,246,0,5655,246,0,5654,246,0,5653, - 246,0,5652,246,0,5651,246,0,45,246, - 5404,0,45,246,5403,0,5428,246,0,1594, - 388,0,5404,54,0,5403,54,0,1,5715, - 0,1,1719,0,44,732,0,44,5404,0, - 44,5403,0,452,1762,0,438,1805,0,1594, - 35,0,5396,1,0,1848,320,0,1,442, - 0,456,1419,0,455,1600,0,41,39,0, - 53,43,0,234,225,0,499,1547,0,5428, - 1,234,0,45,1,234,0,234,415,0, - 5404,43,0,5403,43,0,49,5426,0,49, - 43,0,1,2608,0,1,5661,0,1,5660, - 0,1,5659,0,1,5658,0,1,5657,0, - 1,5656,0,1,5655,0,1,5654,0,1, - 5653,0,1,5652,0,1,5651,0,5396,384, - 0,5395,384,0,1,3037,0,1,3042,0, - 234,224,0,5394,404,0,5393,404,0,234, - 414,0,2693,132,0,5392,1,0,5715,443, - 0,1719,443,0,5426,51,0,43,51,0, - 5390,1,0,5389,1,0,2106,97,0,38, - 40,0,45,732,0,1,234,2691,0,5393, - 234,0,2715,234,0,5428,1,0,45,1, - 0,242,3738,0,389,38,0,388,35,0, - 2693,134,0,2693,133,0,2952,234,0,10, - 12,0,1,98,0,8,10,12,0,5404, - 2,43,0,5403,2,43,0,5404,42,0, - 5403,42,0,3183,384,0,5715,101,0,1719, - 101,0,41,79,0,8,12,0,283,4871, - 0,191,3431,0 + 17,136,136,136,114,114,18,18,18,18, + 18,18,18,18,18,18,18,18,18,19, + 19,170,170,171,171,172,139,139,140,140, + 137,137,141,138,138,20,20,21,21,23, + 23,23,24,24,24,24,25,25,25,26, + 26,26,27,27,27,27,27,28,28,28, + 29,29,31,31,33,33,35,35,36,36, + 37,37,42,42,41,41,41,41,41,41, + 41,41,41,41,41,41,41,39,30,142, + 142,96,96,173,173,91,193,193,67,67, + 67,67,67,67,67,67,67,68,68,68, + 65,65,55,55,174,174,69,69,69,103, + 103,175,175,70,70,70,176,176,71,71, + 71,71,71,72,72,83,83,83,83,83, + 83,83,83,49,49,49,49,49,104,104, + 102,102,50,177,22,22,22,22,22,48, + 48,86,86,86,86,86,149,149,144,144, + 144,144,144,145,145,145,146,146,146,147, + 147,147,148,148,148,87,87,87,87,87, + 88,88,88,13,13,13,13,13,13,13, + 13,13,13,13,97,118,118,118,118,118, + 118,116,116,116,117,117,151,151,150,150, + 120,120,105,76,76,77,78,52,47,152, + 152,53,51,85,85,153,153,143,143,121, + 122,122,81,81,154,154,62,62,62,59, + 59,58,63,63,79,79,57,57,57,89, + 89,99,98,98,61,61,60,60,54,54, + 45,100,100,100,92,92,92,93,93,94, + 94,94,95,95,106,106,106,108,108,107, + 107,194,194,90,90,179,179,179,179,179, + 124,46,46,156,178,178,125,125,125,125, + 126,158,180,180,34,34,115,127,127,127, + 127,109,109,119,119,119,159,160,160,160, + 160,160,160,160,160,160,160,160,183,183, + 181,181,182,182,161,161,161,161,162,184, + 111,110,110,185,185,163,163,163,163,101, + 101,101,186,186,8,8,9,187,187,188, + 164,155,155,165,165,166,167,167,7,7, + 10,189,189,189,189,189,189,189,189,189, + 189,189,189,189,189,189,189,189,189,189, + 189,189,189,189,189,189,189,189,189,189, + 189,189,189,189,189,189,189,189,189,189, + 189,189,189,74,80,80,168,168,129,129, + 130,130,130,130,130,130,3,131,131,128, + 128,112,112,84,75,73,157,157,113,113, + 190,190,190,132,132,123,123,191,191,1132, + 36,1844,1826,1248,4773,28,31,32,660,657, + 27,29,1819,26,24,51,1543,107,77,78, + 109,158,1553,1560,1559,1568,1561,1604,1603,2225, + 1639,1404,1611,274,1645,1646,144,682,36,283, + 159,145,1487,36,663,33,3392,2839,28,31, + 32,660,657,336,29,1534,3248,36,663,33, + 233,3753,28,31,32,660,657,27,29,1525, + 26,24,51,1543,107,77,78,109,66,1553, + 1560,1559,1568,1561,1938,236,231,232,1586,36, + 914,1465,1934,3823,1551,856,275,4736,1232,1351, + 317,1064,319,4309,312,844,682,36,654,385, + 682,1235,1107,35,243,246,249,252,618,2245, + 244,349,50,520,506,3472,669,767,1027,1381, + 1115,899,728,1388,341,1439,1431,346,1508,1231, + 446,1740,521,2984,2698,2929,3066,3120,4510,2403, + 36,663,33,2775,3753,28,31,32,660,657, + 27,29,1525,26,24,51,1543,107,77,78, + 109,340,1553,1560,1559,1568,1561,1604,1603,1335, + 1639,1031,1611,1343,1645,1646,144,2393,36,278, + 511,145,1243,2865,2638,1770,3225,1426,682,36, + 2062,1981,849,512,2403,36,663,33,2775,3753, + 28,31,32,660,657,27,29,1525,26,24, + 51,1543,107,77,78,109,340,1553,1560,1559, + 1568,1561,1604,1603,680,1639,378,1611,625,1645, + 1646,144,70,36,280,511,145,1257,286,2638, + 2805,3654,1726,43,1379,424,2149,2334,512,441, + 2697,507,1578,36,663,33,1465,4781,28,31, + 32,660,657,58,29,682,1381,1424,2162,1414, + 1647,2321,2403,36,663,33,2775,3753,28,31, + 32,660,657,27,29,1525,26,24,51,1543, + 107,77,78,109,340,1553,1560,1559,1568,1561, + 1604,1603,59,1639,1338,1611,507,1645,1646,144, + 1118,2874,183,511,145,321,1344,2638,1981,36, + 281,3476,1689,856,525,1647,512,2682,36,663, + 33,2775,3753,28,31,32,660,657,27,29, + 1525,26,24,51,1543,107,77,78,109,340, + 1553,1560,1559,1568,1561,1604,1603,42,1639,588, + 1611,1075,1645,1646,144,682,36,292,511,145, + 437,1116,2638,330,245,682,36,654,385,1254, + 1118,512,2443,322,507,287,1444,2580,62,1739, + 36,663,33,1645,1031,42,31,32,660,657, + 1690,682,3784,1647,1231,2751,36,663,33,425, + 3753,28,31,32,660,657,27,29,1525,26, + 24,51,1543,107,77,78,109,75,1553,1560, + 1559,1568,1561,1604,1603,2070,1639,1743,1611,508, + 1645,1646,144,2710,1895,2149,376,145,2473,36, + 663,33,296,3753,28,31,32,660,657,27, + 29,1525,26,24,51,1543,107,77,78,109, + 1998,1553,1560,1559,1568,1561,1604,1603,3009,1639, + 432,1611,1955,1645,1646,144,4347,441,2149,376, + 145,244,2546,36,663,33,3690,3753,28,31, + 32,660,657,27,29,1525,26,24,51,1543, + 107,77,78,109,2837,1553,1560,1559,1568,1561, + 1604,1603,1852,1639,1190,1611,849,1645,1646,144, + 382,2198,2149,376,145,2994,36,663,33,2056, + 3753,28,31,32,660,657,27,29,1525,26, + 24,51,1543,107,77,78,109,71,1553,1560, + 1559,1568,1561,1604,1603,3068,1639,1883,1611,2444, + 1645,1646,144,383,2198,2041,159,145,682,36, + 2492,3248,36,663,33,2692,3753,28,31,32, + 660,657,27,29,1525,26,24,51,1543,107, + 77,78,109,323,1553,1560,1559,1568,1561,1604, + 1603,2232,1639,222,1611,1075,1983,374,2198,2994, + 36,663,33,1936,3753,28,31,32,660,657, + 27,29,1525,26,24,51,1543,107,77,78, + 109,161,1553,1560,1559,1568,1561,1604,1603,353, + 1639,1373,1611,42,1645,1646,144,3667,525,1444, + 370,145,1767,36,663,33,682,2390,2026,31, + 32,660,657,2994,36,663,33,1740,3753,28, + 31,32,660,657,27,29,1525,26,24,51, + 1543,107,77,78,109,1448,1553,1560,1559,1568, + 1561,1604,1603,1194,1639,492,1611,3385,1645,1646, + 144,418,36,280,370,145,3839,682,36,654, + 385,2994,36,663,33,386,3753,28,31,32, + 660,657,27,29,1525,26,24,51,1543,107, + 77,78,109,369,1553,1560,1559,1568,1561,1604, + 1603,50,1639,415,1611,1622,1645,1646,144,3366, + 899,2567,370,145,244,2818,36,663,33,4711, + 3753,28,31,32,660,657,27,29,1525,26, + 24,51,1543,107,77,78,109,1896,1553,1560, + 1559,1568,1561,1604,1603,42,1639,368,1611,4569, + 1645,1688,165,682,36,654,385,2613,36,663, + 33,1231,3753,28,31,32,660,657,27,29, + 1525,26,24,51,1543,107,77,78,109,311, + 1553,1560,1559,1568,1561,1604,1603,50,1639,1110, + 1611,407,1645,1646,144,366,47,325,143,145, + 2139,2111,2994,36,663,33,2830,3753,28,31, + 32,660,657,27,29,1525,26,24,51,1543, + 107,77,78,109,771,1553,1560,1559,1568,1561, + 1604,1603,1904,1639,2322,1611,42,1645,1646,144, + 2287,2504,2114,156,145,2994,36,663,33,2155, + 3753,28,31,32,660,657,27,29,1525,26, + 24,51,1543,107,77,78,109,1862,1553,1560, + 1559,1568,1561,1604,1603,762,1639,94,1611,2630, + 1645,1646,144,2527,1984,2071,155,145,2994,36, + 663,33,2710,3753,28,31,32,660,657,27, + 29,1525,26,24,51,1543,107,77,78,109, + 2156,1553,1560,1559,1568,1561,1604,1603,42,1639, + 350,1611,658,1645,1646,144,2621,2320,351,154, + 145,2994,36,663,33,1866,3753,28,31,32, + 660,657,27,29,1525,26,24,51,1543,107, + 77,78,109,2778,1553,1560,1559,1568,1561,1604, + 1603,42,1639,331,1611,679,1645,1646,144,1599, + 240,2064,153,145,2994,36,663,33,1282,3753, + 28,31,32,660,657,27,29,1525,26,24, + 51,1543,107,77,78,109,517,1553,1560,1559, + 1568,1561,1604,1603,42,1639,72,1611,863,1645, + 1646,144,4701,1242,1532,152,145,2994,36,663, + 33,1393,3753,28,31,32,660,657,27,29, + 1525,26,24,51,1543,107,77,78,109,517, + 1553,1560,1559,1568,1561,1604,1603,42,1639,1751, + 1611,2928,1645,1646,144,1238,1270,2219,151,145, + 2994,36,663,33,2248,3753,28,31,32,660, + 657,27,29,1525,26,24,51,1543,107,77, + 78,109,1942,1553,1560,1559,1568,1561,1604,1603, + 42,1639,1265,1611,734,1645,1646,144,1253,2373, + 2396,150,145,2994,36,663,33,414,3753,28, + 31,32,660,657,27,29,1525,26,24,51, + 1543,107,77,78,109,2397,1553,1560,1559,1568, + 1561,1604,1603,42,1639,1280,1611,812,1645,1646, + 144,2411,2463,1567,149,145,2994,36,663,33, + 2464,3753,28,31,32,660,657,27,29,1525, + 26,24,51,1543,107,77,78,109,668,1553, + 1560,1559,1568,1561,1604,1603,42,1639,1016,1611, + 2992,1645,1646,144,2233,2437,1790,148,145,2994, + 36,663,33,1504,3753,28,31,32,660,657, + 27,29,1525,26,24,51,1543,107,77,78, + 109,2518,1553,1560,1559,1568,1561,1604,1603,42, + 1639,2531,1611,3097,1645,1646,144,2537,2538,2227, + 147,145,2994,36,663,33,3545,3753,28,31, + 32,660,657,27,29,1525,26,24,51,1543, + 107,77,78,109,3470,1553,1560,1559,1568,1561, + 1604,1603,42,1639,501,1611,3726,1645,1646,144, + 675,1671,1857,146,145,2994,36,663,33,1953, + 3753,28,31,32,660,657,27,29,1525,26, + 24,51,1543,107,77,78,109,1935,1553,1560, + 1559,1568,1561,1604,1603,42,1639,2065,1611,3785, + 1645,1646,144,2120,2041,2150,160,145,2994,36, + 663,33,2296,3753,28,31,32,660,657,27, + 29,1525,26,24,51,1543,107,77,78,109, + 2461,1553,1560,1559,1568,1561,1604,1603,2204,1639, + 2141,1611,302,1645,1646,144,2148,2512,2316,141, + 145,3124,36,663,33,1471,3753,28,31,32, + 660,657,27,29,1525,26,24,51,1543,107, + 77,78,109,2384,1553,1560,1559,1568,1561,1604, + 1603,42,1639,1354,1611,2901,1645,1646,144,2467, + 2495,88,190,145,3248,36,663,33,2041,3753, + 28,31,32,660,657,27,29,1525,26,24, + 51,1543,107,77,78,109,2541,1553,1560,1559, + 1568,1561,1604,1603,42,1639,2041,1611,1075,1645, + 1688,165,3248,36,663,33,301,3753,28,31, + 32,660,657,27,29,1525,26,24,51,1543, + 107,77,78,109,3652,1553,1560,1559,1568,1561, + 1604,1603,1893,1639,298,1611,3151,1645,1688,165, + 1767,36,663,33,2570,2118,41,31,32,660, + 657,3248,36,663,33,291,3753,28,31,32, + 660,657,27,29,1525,26,24,51,1543,107, + 77,78,109,2041,1553,1560,1559,1568,1561,1604, + 1603,42,1639,399,1611,2760,1645,1688,165,3248, + 36,663,33,417,3753,28,31,32,660,657, + 27,29,1525,26,24,51,1543,107,77,78, + 109,297,1553,1560,1559,1568,1561,1604,1603,42, + 1639,2572,1611,2555,1645,1688,165,1767,36,663, + 33,2574,1444,3491,31,32,660,657,3248,36, + 663,33,2277,3753,28,31,32,660,657,27, + 29,1525,26,24,51,1543,107,77,78,109, + 2635,1553,1560,1559,1568,1561,1604,1603,1231,1639, + 2636,1611,2637,1645,1688,165,3308,36,663,33, + 416,3753,28,31,32,660,657,27,29,1525, + 26,24,51,1543,107,77,78,109,284,1553, + 1560,1559,1568,1561,1604,1603,42,1639,3040,1611, + 3234,1645,1688,165,682,36,1107,277,2641,2642, + 175,682,36,654,385,3248,36,663,33,419, + 3753,28,31,32,660,657,27,29,1525,26, + 24,51,1543,107,77,78,109,2585,1553,1560, + 1559,1568,1561,1604,1603,428,1639,1119,1955,682, + 36,654,385,3248,36,663,33,3452,3753,28, + 31,32,660,657,27,29,1525,26,24,51, + 1543,107,77,78,109,2139,1553,1560,1559,1568, + 1561,1604,1603,427,1947,3248,36,663,33,2576, + 3753,28,31,32,660,657,27,29,1525,26, + 24,51,1543,107,77,78,109,320,1553,1560, + 1559,1568,1561,1604,1948,1272,36,663,33,3392, + 2839,28,31,32,660,657,336,29,3248,36, + 663,33,1444,3753,28,31,32,660,657,27, + 29,1525,26,24,51,1543,107,77,78,109, + 2604,1553,1560,1559,1568,1940,1601,387,421,1730, + 36,663,33,2139,4781,28,31,32,660,657, + 57,29,42,317,1064,319,3574,312,844,1459, + 36,663,33,2675,4237,28,31,32,660,657, + 27,29,244,505,349,491,1768,3812,303,682, + 36,654,385,682,36,1107,282,341,1439,1431, + 346,3248,36,663,33,1758,3753,28,31,32, + 660,657,27,29,1525,26,24,51,1543,107, + 77,78,109,274,1553,1560,1559,1568,1946,1507, + 36,663,33,2810,2839,28,31,32,660,657, + 336,29,2704,1444,1753,36,663,33,3171,4373, + 28,31,32,660,657,336,29,3248,36,663, + 33,348,3753,28,31,32,660,657,27,29, + 1525,26,24,51,1543,107,77,78,109,2643, + 1553,1560,1559,1887,363,61,276,317,1064,319, + 1444,312,844,682,36,654,385,682,36,654, + 385,329,317,1064,319,1444,312,844,349,295, + 2315,682,36,1107,279,2705,1979,1981,36,278, + 2775,341,1439,1431,346,1191,2667,274,2543,3103, + 2139,426,2139,4551,3248,36,663,33,340,3753, + 28,31,32,660,657,27,29,1525,26,24, + 51,1543,107,77,78,109,285,1553,1560,1559, + 1897,4255,375,2671,3168,305,309,1259,36,663, + 33,379,4237,28,31,32,660,657,60,29, + 1119,2561,2533,2709,2061,842,292,1115,1961,2673, + 337,2709,3331,3248,36,663,33,967,3753,28, + 31,32,660,657,27,29,1525,26,24,51, + 1543,107,77,78,109,2110,1553,1560,1559,1903, + 3248,36,663,33,1193,3753,28,31,32,660, + 657,27,29,1525,26,24,51,1543,107,77, + 78,109,1957,1553,1560,1559,1905,262,1262,2713, + 2309,529,1259,36,663,33,2711,4237,28,31, + 32,660,657,59,29,2633,2743,349,2613,229, + 70,36,447,2200,42,4715,1936,157,1075,2070, + 341,1439,1431,346,2305,181,3242,786,339,944, + 388,421,2610,204,216,4672,203,213,214,215, + 217,1,170,2315,157,529,4314,1075,608,233, + 1027,1381,169,3343,184,168,171,172,173,174, + 175,89,397,229,103,3368,36,654,385,90, + 2825,157,103,157,245,231,232,2157,238,181, + 3242,786,163,682,36,292,1936,204,216,4672, + 203,213,214,215,217,1231,170,2051,454,274, + 2051,2775,3476,2742,2775,3476,169,182,185,168, + 171,172,173,174,175,508,36,654,385,2355, + 1936,5466,2355,70,36,447,233,66,4715,508, + 36,654,385,2200,5466,786,1496,36,1776,33, + 3171,4373,28,31,32,660,657,336,29,50, + 373,236,231,232,329,1531,5466,329,899,933, + 4762,2751,275,50,682,36,1107,2423,453,5466, + 286,2439,899,911,1934,440,1654,1672,5466,4736, + 243,246,249,252,618,2543,2986,357,2103,3602, + 357,1119,669,329,317,1064,319,2070,312,844, + 2540,1414,324,3518,1697,1715,3518,1697,1715,2984, + 2698,2929,3066,3120,4510,244,4405,1109,2044,1368, + 4787,3248,36,663,33,4551,3753,28,31,32, + 660,657,27,29,1525,26,24,51,1543,107, + 77,78,109,5466,1553,1560,1912,3248,36,663, + 33,371,3753,28,31,32,660,657,27,29, + 1525,26,24,51,1543,107,77,78,109,5466, + 1553,1560,1930,349,1765,2865,1524,529,5466,3125, + 233,3476,1859,2139,849,377,2775,240,444,1654, + 1672,1845,36,1107,277,229,5466,412,1783,1231, + 2139,390,421,157,2355,248,231,232,2061,36, + 292,181,3242,786,5466,4180,326,332,2734,204, + 216,4672,203,213,214,215,217,436,170,5466, + 42,529,25,330,945,233,5466,423,169,786, + 2329,168,171,172,173,174,175,5466,1193,229, + 853,36,654,385,373,349,1584,157,244,1732, + 241,231,232,4798,5466,181,3242,786,343,1439, + 1431,346,357,204,216,4672,203,213,214,215, + 217,523,170,5466,274,529,5466,2287,2582,1697, + 1715,2775,169,2139,179,168,171,172,173,174, + 175,2288,679,229,2287,2775,2775,352,2775,2355, + 1620,157,5466,944,5466,2044,525,233,2876,181, + 3242,786,2775,2355,2355,347,2355,204,216,4672, + 203,213,214,215,217,610,170,5466,2543,529, + 340,1119,251,231,232,2385,169,2529,177,168, + 171,172,173,174,175,2412,42,229,42,5466, + 2775,153,3342,722,73,157,3476,1365,36,391, + 5466,233,5466,181,3242,786,3125,499,340,5466, + 2139,204,216,4672,203,213,214,215,217,697, + 170,499,358,529,499,42,254,231,232,3111, + 169,2638,178,168,171,172,173,174,175,2070, + 1801,229,70,331,332,153,496,498,329,157, + 3476,1365,36,391,2044,5466,5466,181,3242,786, + 496,498,2041,497,498,204,216,4672,203,213, + 214,215,217,784,170,5466,5466,529,5466,2299, + 4576,389,421,1075,169,1725,188,168,171,172, + 173,174,175,42,42,229,5466,4367,2775,2396, + 180,1936,329,157,2139,2641,1774,2292,2613,157, + 42,181,3242,786,2775,3125,340,201,3791,204, + 216,4672,203,213,214,215,217,871,170,2232, + 5466,529,340,1075,856,436,69,450,169,2638, + 2742,168,171,172,173,174,175,5466,1811,229, + 2041,153,328,332,42,2638,3476,157,1075,161, + 1775,1231,2044,1936,1817,181,3242,786,42,2041, + 5466,1343,2775,204,216,4672,203,213,214,215, + 217,958,170,4215,157,529,153,5466,199,5466, + 340,3476,169,1973,193,168,171,172,173,174, + 175,786,42,229,1723,2139,2775,198,329,5466, + 5466,157,153,2638,2232,1231,3728,3476,1075,181, + 3242,786,1818,3125,340,3439,2139,204,216,4672, + 203,213,214,215,217,1045,170,54,5466,529, + 2986,45,1379,3678,161,52,169,2638,187,168, + 171,172,173,174,175,786,503,229,88,2139, + 3782,332,42,5466,1936,157,2578,1688,2070,329, + 519,2775,1936,181,3242,786,682,2632,1107,75, + 2139,204,216,4672,203,213,214,215,217,229, + 170,53,940,36,654,385,682,36,654,385, + 169,3602,195,168,171,172,173,174,175,5466, + 3460,2041,445,206,216,4672,205,213,214,215, + 217,682,36,654,385,95,50,42,42,42, + 50,1075,1075,1075,5466,899,48,5466,2139,899, + 1682,207,209,211,293,294,98,561,905,401, + 218,208,210,5466,99,50,5466,157,157,157, + 1845,36,1107,2639,899,2723,3853,3880,4219,13, + 3790,4253,3248,36,663,33,5466,3753,28,31, + 32,660,657,27,29,1525,26,24,51,1543, + 107,77,78,109,216,1553,1854,3248,36,663, + 33,5466,3753,28,31,32,660,657,27,29, + 1525,26,24,51,1543,107,77,78,109,5466, + 1553,1860,1875,36,663,33,5466,4373,28,31, + 32,660,657,336,29,5466,533,2498,36,663, + 33,3171,2839,28,31,32,660,657,336,29, + 3248,36,663,33,5466,3753,28,31,32,660, + 657,27,29,1525,26,24,51,1543,107,77, + 78,109,2139,1861,682,36,1107,2716,5466,330, + 317,1064,319,5466,313,844,2044,1898,2044,5466, + 216,2775,1365,36,391,317,1064,319,1852,312, + 844,349,42,3476,91,1231,1075,516,5466,229, + 943,36,654,385,343,1439,1431,346,1191,1593, + 36,663,33,3171,2839,28,31,32,660,657, + 336,29,157,206,216,4672,205,213,214,215, + 217,4252,5466,5466,50,786,1986,3125,42,3125, + 2775,1473,3670,899,48,3678,2139,5466,305,309, + 518,207,209,211,293,294,1202,561,229,5466, + 218,208,210,1966,36,654,385,317,1064,319, + 4269,312,844,2139,4268,332,4368,332,3850,926, + 967,4253,206,216,4672,205,213,214,215,217, + 1191,2813,42,516,2041,2074,732,50,2232,2775, + 42,2041,1075,5466,3666,3874,899,2843,5466,5466, + 207,209,211,293,294,5466,561,229,5466,218, + 208,210,682,36,654,385,2139,97,161,5466, + 306,309,202,943,36,654,385,1516,2372,200, + 4253,206,216,4672,205,213,214,215,217,682, + 36,654,385,2139,2139,42,50,42,3199,3617, + 42,1075,5466,2139,3668,899,787,50,5466,207, + 209,211,293,294,5466,561,899,48,218,208, + 210,5466,5466,50,42,3253,3307,157,3148,858, + 2139,5466,899,717,4322,68,3444,2493,5466,4253, + 3248,36,663,33,5466,3753,28,31,32,660, + 657,27,29,1525,26,24,51,1543,107,77, + 78,109,67,1862,3248,36,663,33,5466,3753, + 28,31,32,660,657,27,29,1525,26,24, + 51,1543,107,77,78,109,5466,1869,3248,36, + 663,33,5466,3753,28,31,32,660,657,27, + 29,1525,26,24,51,1543,107,77,78,86, + 3248,1235,663,1733,5466,3753,28,31,32,660, + 657,27,29,1525,26,24,51,1543,107,77, + 78,85,3248,36,663,33,5466,3753,28,31, + 32,660,657,27,29,1525,26,24,51,1543, + 107,77,78,84,3248,36,663,33,5466,3753, + 28,31,32,660,657,27,29,1525,26,24, + 51,1543,107,77,78,83,3248,36,663,33, + 5466,3753,28,31,32,660,657,27,29,1525, + 26,24,51,1543,107,77,78,82,3248,36, + 663,33,5466,3753,28,31,32,660,657,27, + 29,1525,26,24,51,1543,107,77,78,81, + 3248,36,663,33,5466,3753,28,31,32,660, + 657,27,29,1525,26,24,51,1543,107,77, + 78,80,3248,36,663,33,5466,3753,28,31, + 32,660,657,27,29,1525,26,24,51,1543, + 107,77,78,79,3058,36,663,33,5466,3753, + 28,31,32,660,657,27,29,1525,26,24, + 51,1543,107,77,78,105,3248,36,663,33, + 5466,3753,28,31,32,660,657,27,29,1525, + 26,24,51,1543,107,77,78,111,3248,36, + 663,33,5466,3753,28,31,32,660,657,27, + 29,1525,26,24,51,1543,107,77,78,110, + 3248,36,663,33,5466,3753,28,31,32,660, + 657,27,29,1525,26,24,51,1543,107,77, + 78,108,1800,36,1776,33,3171,2839,28,31, + 32,660,657,336,29,3248,36,663,33,2139, + 3753,28,31,32,660,657,27,29,1525,26, + 24,51,1543,107,77,78,106,682,36,654, + 385,1810,5466,42,2232,2775,2232,1075,1075,5466, + 1075,66,2139,1408,2139,2234,5466,2775,2041,572, + 317,1064,319,229,312,844,2137,5466,42,2041, + 2807,50,1066,157,161,229,161,5466,5466,5466, + 899,2843,4348,1109,65,5466,3395,206,216,4672, + 205,213,214,215,217,5466,2753,5466,348,206, + 216,4672,205,213,214,215,217,223,5466,508, + 36,654,385,5466,2139,207,209,211,293,294, + 5466,561,2139,2139,513,208,210,207,209,211, + 293,294,5466,561,5466,2162,219,208,210,2775, + 4323,2041,4370,50,5466,349,3685,2250,2139,5466, + 5466,2775,899,48,56,55,5466,229,341,1439, + 1431,346,5466,413,1783,567,3103,1859,42,229, + 2139,2775,2994,508,36,654,385,5466,5466,194, + 4341,206,216,4672,205,213,214,215,217,2355, + 5466,5466,5466,206,216,4672,205,213,214,215, + 217,5466,102,5466,5466,2139,5466,50,5466,207, + 209,211,293,294,5466,561,899,2665,514,208, + 210,207,209,211,293,294,5466,561,5466,2543, + 304,208,210,3188,36,663,33,3415,3753,28, + 31,32,660,657,27,29,1525,26,24,51, + 1543,87,77,78,2338,5466,5466,357,2775,1593, + 36,663,33,3171,2839,28,31,32,660,657, + 336,29,5466,3736,1697,1715,229,2144,5466,5466, + 5466,5466,5466,1593,36,663,33,3171,2839,28, + 31,32,660,657,336,29,5466,5466,5466,5466, + 206,216,4672,205,213,214,215,217,5466,523, + 3415,36,654,385,5466,2825,5466,317,1064,319, + 5466,312,844,239,5466,5466,5466,5466,207,209, + 211,293,294,5466,561,5466,5466,493,208,210, + 2315,317,1064,319,274,312,844,5466,5466,5466, + 5466,1885,36,663,33,5466,4373,28,31,32, + 660,657,336,29,2699,5466,5466,5466,5466,1196, + 5466,233,5466,2775,3501,5466,1971,36,663,33, + 5466,4373,28,31,32,660,657,336,29,5466, + 5466,229,5466,5466,5466,5466,237,231,232,5466, + 5466,5466,5466,5466,5466,5466,5466,275,330,317, + 1064,319,5466,315,844,2075,402,4650,1302,5466, + 5466,5466,2775,3501,5466,244,247,250,253,618, + 5466,5466,5466,330,317,1064,319,669,313,844, + 229,5466,5466,403,404,405,293,294,5466,561, + 2428,36,663,33,2846,2839,28,31,32,660, + 657,336,29,5466,2075,402,4650,5466,5466,5466, + 1243,5466,1474,36,663,33,2494,2839,28,31, + 32,660,657,336,29,5466,5466,5466,398,5466, + 5466,5466,403,404,405,293,294,5466,561,5466, + 5466,2228,42,2299,5466,2775,2775,529,314,725, + 319,1030,36,654,385,508,36,654,385,1243, + 5466,5466,5466,340,340,3845,5466,5466,406,408, + 314,725,319,157,5466,5466,508,36,654,385, + 5466,181,3242,5466,5466,50,1295,2638,5466,50, + 1199,5466,4618,5466,899,48,501,5466,899,48, + 5466,5466,508,36,654,385,5466,2793,196,5466, + 50,636,5466,2130,36,654,385,406,409,899, + 48,943,36,654,385,5466,5466,508,36,654, + 385,5466,915,5466,5466,5466,50,5466,508,36, + 654,385,5466,5466,764,899,48,50,5466,5466, + 5466,5466,5466,5466,5466,50,899,3155,2251,5466, + 5466,50,5466,2571,899,3384,764,529,5466,2439, + 899,48,50,5466,5466,5466,42,3060,5466,5466, + 529,899,48,2289,5466,340,5466,42,42,5466, + 5466,529,529,157,2547,5466,5466,5466,340,5466, + 5466,42,189,5466,5466,529,157,5466,4483,340, + 340,5466,3442,5466,5466,3010,5466,157,157,4823, + 197,2638,5466,340,5466,42,3284,3010,5466,529, + 2993,157,2638,2638,42,5466,5466,5466,2775,42, + 189,3190,3406,529,5466,2374,4483,340,5466,2775, + 5466,5466,5466,42,5466,157,340,2775,5466,5466, + 5466,340,5466,5466,189,5466,191,340,5466,157, + 4483,5466,5466,5466,5466,340,5466,524,189,2638, + 5466,5466,5466,5466,4483,5466,5466,5466,3763,5466, + 2638,5466,5466,5466,5466,5466,5466,5466,2638,527, + 5466,5466,5466,5466,3816,5466,5466,528,5466,5466, + 5466,5466,5466,5466,5466,5466,5466,5466,5466,5466, + 5466,5466,5466,5466,5466,5466,5466,5466,3843,5466, + 5466,5466,5466,5466,5466,5466,5466,5466,4258,5466, + 5466,5466,3844,5466,5466,5466,5466,5466,5466,5466, + 5466,5466,5466,5466,5466,5466,5466,5466,5466,5466, + 5466,5466,5466,5466,5466,5466,5466,5466,5466,5466, + 5466,5466,5466,5466,5466,5466,5466,5466,5466,5466, + 5466,5466,5466,5466,5466,5466,5466,5466,5466,5466, + 5466,5466,5466,5466,5466,5466,5466,5466,5466,5466, + 5466,5466,5466,5466,5466,5466,5466,5466,5466,5466, + 5466,5466,5466,5466,5466,5466,5466,5466,5466,5466, + 5466,5466,5466,5466,5466,5466,5466,5466,5466,5466, + 5466,5466,5466,5466,5466,5466,4477,5466,0,495, + 4241,0,1,230,0,40,5481,0,40,5480, + 0,1,4459,0,929,1,0,40,1,5481, + 0,40,1,5480,0,1,3128,0,1,640, + 0,230,220,0,5701,242,0,5700,242,0, + 5801,242,0,5800,242,0,5728,242,0,5727, + 242,0,5726,242,0,5725,242,0,5724,242, + 0,5723,242,0,5722,242,0,5721,242,0, + 5739,242,0,5738,242,0,5737,242,0,5736, + 242,0,5735,242,0,5734,242,0,5733,242, + 0,5732,242,0,5731,242,0,5730,242,0, + 5729,242,0,40,242,5481,0,40,242,5480, + 0,5505,242,0,1551,384,0,5481,49,0, + 5480,49,0,1,5793,0,1,1637,0,39, + 640,0,39,5481,0,39,5480,0,448,1680, + 0,434,1723,0,1551,30,0,5478,1,0, + 1766,316,0,1,438,0,452,2726,0,451, + 2796,0,36,34,0,48,38,0,230,221, + 0,495,1327,0,5505,1,230,0,40,1, + 230,0,230,411,0,5481,38,0,5480,38, + 0,44,5503,0,44,38,0,1,2432,0, + 1,5739,0,1,5738,0,1,5737,0,1, + 5736,0,1,5735,0,1,5734,0,1,5733, + 0,1,5732,0,1,5731,0,1,5730,0, + 1,5729,0,5478,380,0,5477,380,0,1, + 3177,0,1,3231,0,5476,400,0,5475,400, + 0,230,410,0,2643,127,0,5474,1,0, + 5793,439,0,1637,439,0,5503,46,0,38, + 46,0,5472,1,0,5471,1,0,2024,92, + 0,33,35,0,40,640,0,1,230,1990, + 0,5475,230,0,1991,230,0,5505,1,0, + 40,1,0,238,1151,0,385,33,0,384, + 30,0,2643,129,0,2643,128,0,2250,230, + 0,10,12,0,1,93,0,8,10,12, + 0,5481,2,38,0,5480,2,38,0,5481, + 37,0,5480,37,0,2700,380,0,5793,96, + 0,1637,96,0,36,74,0,8,12,0, + 279,3788,0,186,3361,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1098,334 +1114,371 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public final static byte termCheck[] = {0, 0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,28,0, + 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,0,55,56,57,58,59, - 60,0,62,63,64,65,66,67,0,69, - 0,0,72,3,3,75,76,77,78,79, + 40,0,42,43,44,45,46,47,48,49, + 50,51,52,53,54,55,56,57,0,59, + 60,61,62,63,64,0,66,67,68,0, + 1,2,72,4,0,75,76,77,78,79, 80,81,82,83,84,85,86,0,1,2, 3,4,5,6,7,8,9,10,11,12, 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,28,0,30,31,32, - 33,34,35,36,37,38,39,40,41,42, + 23,24,25,26,27,28,29,30,31,32, + 33,34,35,36,37,38,39,40,70,42, 43,44,45,46,47,48,49,50,51,52, - 53,70,55,56,57,58,59,60,119,62, - 63,64,65,66,67,0,69,0,90,72, - 92,4,75,76,77,78,79,80,81,82, + 53,54,55,56,57,71,59,60,61,62, + 63,64,0,66,67,68,4,0,6,72, + 3,9,75,76,77,78,79,80,81,82, 83,84,85,86,0,1,2,3,4,5, 6,7,8,9,10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25, - 26,27,28,0,30,31,32,33,34,35, - 36,37,38,39,40,41,42,43,44,45, - 46,47,48,49,50,51,52,53,0,55, - 56,57,58,59,60,119,62,63,64,65, - 66,67,0,69,0,90,72,92,4,75, + 26,27,28,29,30,31,32,33,34,35, + 36,37,38,39,40,0,42,43,44,45, + 46,47,48,49,50,51,52,53,54,55, + 56,57,0,59,60,61,62,63,64,0, + 66,67,68,0,0,6,72,4,4,75, 76,77,78,79,80,81,82,83,84,85, 86,0,1,2,3,4,5,6,7,8, 9,10,11,12,13,14,15,16,17,18, 19,20,21,22,23,24,25,26,27,28, - 0,30,31,32,33,34,35,36,37,38, - 39,40,41,42,43,44,45,46,47,48, - 49,50,51,52,53,0,55,56,57,58, - 59,60,0,62,63,64,65,66,67,0, - 69,0,1,2,0,4,75,76,77,78, + 29,30,31,32,33,34,35,36,37,38, + 39,40,58,42,43,44,45,46,47,48, + 49,50,51,52,53,54,55,56,57,0, + 59,60,61,62,63,64,0,66,67,68, + 0,0,93,94,119,4,75,76,77,78, 79,80,81,82,83,84,85,86,0,1, 2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,28,0,30,31, - 32,33,34,35,36,37,38,39,40,41, + 22,23,24,25,26,27,28,29,30,31, + 32,33,34,35,36,37,38,39,40,58, 42,43,44,45,46,47,48,49,50,51, - 52,53,73,55,56,57,58,59,60,75, - 62,63,64,65,66,67,0,69,103,104, - 105,0,100,75,76,77,78,79,80,81, + 52,53,54,55,56,57,0,59,60,61, + 62,63,64,0,66,67,68,0,1,2, + 90,4,92,75,76,77,78,79,80,81, 82,83,84,85,86,0,1,2,3,4, 5,6,7,8,9,10,11,12,13,14, 15,16,17,18,19,20,21,22,23,24, - 25,26,27,28,0,30,31,32,33,34, - 35,36,37,38,39,40,41,42,43,44, - 45,46,47,48,49,50,51,52,53,68, - 55,56,57,58,59,60,0,62,63,64, - 65,66,67,0,69,0,1,2,0,4, + 25,26,27,28,29,30,31,32,33,34, + 35,36,37,38,39,40,70,42,43,44, + 45,46,47,48,49,50,51,52,53,54, + 55,56,57,0,59,60,61,62,63,64, + 0,66,67,68,91,0,6,0,1,2, 75,76,77,78,79,80,81,82,83,84, 85,86,0,1,2,3,4,5,6,7, 8,9,10,11,12,13,14,15,16,17, 18,19,20,21,22,23,24,25,26,27, - 28,0,30,31,32,33,34,35,36,37, - 38,39,40,41,42,43,44,45,46,47, - 48,49,50,51,52,53,73,55,56,57, - 58,59,60,119,62,63,64,65,66,67, - 0,69,0,1,2,99,0,75,76,77, + 28,29,30,31,32,33,34,35,36,37, + 38,39,40,58,42,43,44,45,46,47, + 48,49,50,51,52,53,54,55,56,57, + 0,59,60,61,62,63,64,0,66,67, + 68,4,0,93,94,0,4,75,76,77, 78,79,80,81,82,83,84,85,86,0, 1,2,3,4,5,6,7,8,9,10, 11,12,13,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,0,30, + 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,73,55,56,57,58,59,60, - 0,62,63,64,65,66,67,0,69,0, - 1,2,0,6,75,76,77,78,79,80, + 58,42,43,44,45,46,47,48,49,50, + 51,52,53,54,55,56,57,0,59,60, + 61,62,63,64,0,66,67,68,0,0, + 6,0,1,2,75,76,77,78,79,80, 81,82,83,84,85,86,0,1,2,3, 4,5,6,7,8,9,10,11,12,13, 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,0,30,31,32,33, - 34,35,36,37,38,39,40,41,42,43, + 24,25,26,27,28,29,30,31,32,33, + 34,35,36,37,38,39,40,70,42,43, 44,45,46,47,48,49,50,51,52,53, - 68,55,56,57,58,59,60,0,62,63, - 64,65,66,67,0,69,0,1,2,99, + 54,55,56,57,75,59,60,61,62,63, + 64,0,66,67,68,4,0,93,94,91, 0,75,76,77,78,79,80,81,82,83, 84,85,86,0,1,2,3,4,5,6, 7,8,9,10,11,12,13,14,15,16, 17,18,19,20,21,22,23,24,25,26, - 27,28,0,30,31,32,33,34,35,36, - 37,38,39,40,41,42,43,44,45,46, - 47,48,49,50,51,52,53,0,55,56, - 57,58,59,60,0,62,63,64,65,66, - 67,0,69,0,1,2,0,100,75,76, + 27,28,29,30,31,32,33,34,35,36, + 37,38,39,40,58,42,43,44,45,46, + 47,48,49,50,51,52,53,54,55,56, + 57,71,59,60,61,62,63,64,0,66, + 67,68,0,1,2,0,0,5,75,76, 77,78,79,80,81,82,83,84,85,86, 0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,28,0, + 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,68,55,56,57,58,59, - 60,0,62,63,64,65,66,67,101,69, - 0,1,2,0,0,75,76,77,78,79, + 40,63,42,43,44,45,46,47,48,49, + 50,51,52,53,54,55,56,57,73,59, + 60,61,62,63,64,0,66,67,68,0, + 1,2,0,1,2,75,76,77,78,79, 80,81,82,83,84,85,86,0,1,2, 3,4,5,6,7,8,9,10,11,12, 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,28,0,30,31,32, - 33,34,35,36,37,38,39,40,41,42, + 23,24,25,26,27,28,29,30,31,32, + 33,34,35,36,37,38,39,40,0,42, 43,44,45,46,47,48,49,50,51,52, - 53,68,55,56,57,58,59,60,0,62, - 63,64,65,66,67,0,69,0,1,2, - 0,0,75,76,77,78,79,80,81,82, + 53,54,55,56,57,0,59,60,61,62, + 63,64,0,66,67,68,0,1,2,0, + 1,2,75,76,77,78,79,80,81,82, 83,84,85,86,0,1,2,3,4,5, 6,7,8,9,10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25, - 26,27,28,0,30,31,32,33,34,35, - 36,37,38,39,40,41,42,43,44,45, - 46,47,48,49,50,51,52,53,73,55, - 56,57,58,59,60,0,62,63,64,65, - 66,67,0,69,0,97,98,3,0,75, + 26,27,28,29,30,31,32,33,34,35, + 36,37,38,39,40,70,42,43,44,45, + 46,47,48,49,50,51,52,53,54,55, + 56,57,0,59,60,61,62,63,64,0, + 66,67,68,4,0,0,1,2,0,75, 76,77,78,79,80,81,82,83,84,85, 86,0,1,2,3,4,5,6,7,0, - 9,10,0,12,13,14,15,16,17,18, + 9,10,11,12,13,14,15,16,17,18, + 19,20,21,22,23,24,41,26,27,28, + 29,30,31,32,33,34,35,36,37,38, + 39,40,58,42,43,44,45,46,47,48, + 49,50,51,52,53,54,55,56,57,0, + 59,73,3,0,63,0,1,2,3,4, + 5,6,7,8,9,10,11,12,13,14, + 15,16,17,18,19,20,21,22,23,24, + 25,26,27,28,29,30,31,32,33,34, + 0,0,1,2,39,4,41,0,8,8, + 45,0,0,1,2,50,4,0,6,54, + 9,9,0,0,65,60,61,62,0,1, + 2,0,4,5,0,7,73,72,73,0, + 6,0,1,2,3,4,5,6,7,0, + 9,0,87,22,23,24,0,26,27,28, + 29,30,31,32,33,34,66,66,103,104, + 105,0,1,2,3,4,5,6,7,8, + 9,10,11,12,13,14,15,16,17,18, 19,20,21,22,23,24,25,26,27,28, - 0,30,31,32,33,34,35,36,37,38, - 39,40,41,42,43,44,45,46,47,48, - 49,50,51,52,53,73,55,0,1,2, - 59,60,5,62,63,64,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 0,0,0,3,0,29,30,31,32,8, - 34,71,11,37,0,39,40,41,42,97, - 98,45,0,1,2,49,26,27,6,0, - 1,2,56,57,5,59,7,0,62,63, - 64,4,0,1,2,69,4,0,72,73, - 8,29,0,0,1,2,3,4,5,6, - 7,61,9,87,0,1,2,3,4,5, - 6,7,71,9,70,61,0,1,2,103, - 104,105,0,1,2,3,4,5,6,7, - 8,9,10,11,12,13,14,15,16,17, - 18,19,20,21,22,23,106,65,0,1, - 2,29,30,31,32,68,34,0,71,37, - 120,39,40,41,42,61,73,45,0,1, - 2,49,4,5,70,7,0,29,56,57, - 4,59,66,67,62,63,64,0,31,32, - 0,69,0,3,72,73,6,29,8,9, - 0,11,10,0,1,2,3,4,5,87, - 7,0,12,0,24,25,26,27,0,1, - 2,8,4,0,11,103,104,105,0,0, - 30,31,32,4,34,6,8,37,9,39, - 40,41,42,0,54,45,0,29,56,49, - 0,61,0,1,2,3,4,5,68,7, - 70,71,72,73,74,0,1,2,3,4, - 5,6,7,8,9,29,11,12,88,89, - 90,91,92,93,94,95,96,97,98,99, - 100,101,102,65,29,0,106,107,108,109, - 110,111,112,113,114,115,116,117,118,0, - 120,68,3,0,71,6,0,8,9,54, - 11,56,57,58,8,73,0,0,1,2, - 0,4,121,24,25,26,27,10,8,12, + 29,30,31,32,33,34,65,0,101,70, + 39,70,41,0,1,2,45,4,69,6, + 71,50,9,0,102,54,103,104,105,107, + 0,60,61,62,0,1,2,0,121,88, + 89,102,0,72,73,3,107,108,109,110, + 111,112,113,114,115,116,117,0,87,22, + 23,24,0,26,27,28,29,30,31,32, + 33,34,65,0,103,104,105,0,1,2, + 3,4,5,6,7,8,9,10,11,12, 13,14,15,16,17,18,19,20,21,22, - 23,0,87,0,3,29,61,30,31,32, - 0,34,9,54,37,0,39,40,41,42, - 61,0,45,8,61,0,49,68,3,70, - 71,72,73,74,0,0,59,71,72,62, - 63,64,8,0,0,65,0,88,89,90, - 91,92,93,94,95,96,97,98,99,100, - 101,102,61,28,54,106,107,108,109,110, - 111,112,113,114,115,116,117,118,68,120, + 23,24,25,26,27,28,29,30,31,32, + 33,34,70,0,41,58,39,0,41,0, + 3,8,45,6,101,8,9,50,0,1, + 2,54,4,5,0,7,0,60,61,62, + 0,64,25,0,1,2,3,4,5,72, + 7,0,35,36,37,38,0,1,2,3, + 4,5,100,7,87,0,1,2,3,4, + 5,6,7,0,9,58,0,1,2,3, + 4,5,65,7,8,72,69,70,71,72, + 73,74,58,0,1,2,3,4,121,6, + 0,0,9,0,4,88,89,90,91,92, + 93,94,95,96,97,98,99,100,101,102, + 0,65,22,106,107,108,109,110,111,112, + 113,114,115,116,117,118,0,120,73,3, + 100,65,6,40,8,9,73,0,1,2, + 74,4,5,0,7,0,1,2,65,4, + 40,25,0,1,2,3,4,5,0,7, + 0,35,36,37,38,22,23,24,0,26, + 27,28,29,30,31,32,33,34,41,0, + 0,0,1,2,58,4,41,6,97,98, + 9,65,0,35,36,69,70,71,72,73, + 74,22,23,24,0,26,27,28,29,30, + 31,32,33,34,88,89,90,91,92,93, + 94,95,96,97,98,99,100,101,102,69, + 0,71,106,107,108,109,110,111,112,113, + 114,115,116,117,118,41,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,0,1,2,0,39,5,41,0, + 1,2,45,4,5,10,7,50,0,1, + 2,54,0,5,0,7,0,60,61,62, + 0,64,0,1,2,3,4,5,6,7, + 90,9,92,41,0,0,0,1,2,0, + 41,5,3,7,87,11,12,13,14,15, + 16,17,18,19,20,21,22,23,24,0, + 26,27,28,29,30,31,32,33,34,0, + 1,2,3,4,5,40,7,65,121,0, + 1,2,3,4,5,6,7,8,9,10, + 11,12,13,14,15,16,17,18,19,20, + 21,22,23,24,25,26,27,28,29,30, + 31,32,33,34,0,1,2,58,39,99, + 41,0,1,2,45,4,0,6,0,50, + 9,0,73,54,3,0,8,58,3,60, + 61,62,73,64,0,1,2,3,4,5, + 6,7,0,9,0,1,2,3,4,5, + 6,7,0,9,0,0,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,74,0,0,0,39,4,41,65, + 58,0,45,8,3,0,90,50,92,91, + 58,54,0,58,0,22,0,60,61,62, + 0,64,8,3,8,0,1,2,8,72, + 0,1,2,3,4,5,6,7,0,9, + 0,1,2,0,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, + 66,41,88,89,39,65,41,71,72,69, + 45,71,67,68,74,50,103,104,105,54, + 0,58,90,0,92,60,61,62,8,64, + 0,1,2,118,4,0,6,72,8,9, + 0,1,2,0,0,25,23,24,8,91, + 0,0,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,0,0, + 1,2,39,0,41,6,3,0,45,0, + 65,58,0,50,74,8,66,54,58,0, + 1,2,69,60,61,62,0,64,0,3, + 0,91,25,0,8,72,8,0,0,0, + 41,8,88,89,0,0,8,3,95,96, + 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,67,68,58,0, + 39,65,41,0,0,58,45,88,89,69, + 74,50,74,58,71,54,69,74,0,65, + 72,60,61,62,0,64,0,0,0,3, + 3,0,0,0,10,95,96,88,89,8, + 41,8,95,96,0,1,2,0,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,60,41,0,0,39,71, + 41,0,1,2,45,0,10,10,0,50, + 97,98,70,54,0,74,8,74,0,60, + 61,62,8,64,0,0,8,0,71,0, + 0,0,8,25,9,39,39,41,41,25, + 35,36,41,0,1,2,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,0,0,41,71,39,58,41,0, + 72,8,45,0,0,1,2,50,74,69, + 69,54,0,1,2,0,0,60,61,62, + 0,64,0,1,2,3,4,5,6,7, + 0,9,10,11,12,13,14,15,16,17, + 18,19,20,21,87,41,0,0,1,2, + 3,4,5,41,7,8,0,35,36,37, + 38,69,40,0,42,43,44,74,46,47, + 48,49,25,51,52,53,73,55,56,57, + 0,59,0,0,69,63,0,71,58,67, + 68,69,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,0,35,36,0,1,2, + 3,4,5,0,7,8,70,35,36,37, + 38,0,40,70,42,43,44,0,46,47, + 48,49,25,51,52,53,0,55,56,57, + 0,59,0,71,71,63,0,0,66,73, + 0,0,0,3,72,0,1,2,3,4, + 5,6,7,8,9,10,11,12,13,14, + 15,16,17,18,19,20,21,73,65,0, + 0,0,3,0,3,0,3,0,8,0, + 35,36,37,38,0,40,69,42,43,44, + 58,46,47,48,49,25,51,52,53,69, + 55,56,57,0,59,69,69,65,63,0, + 99,66,0,1,2,3,4,5,6,7, + 0,9,10,11,12,13,14,15,16,17, + 18,19,20,21,0,0,0,3,3,3, + 0,0,0,3,3,119,4,35,36,37, + 38,76,40,0,42,43,44,73,46,47, + 48,49,0,51,52,53,0,55,56,57, + 0,59,0,70,0,63,4,3,0,67, + 68,0,1,2,3,4,5,6,7,0, + 9,10,11,12,13,14,15,16,17,18, + 19,20,21,0,0,39,3,3,0,0, + 0,3,0,3,5,0,35,36,37,38, + 58,40,0,42,43,44,0,46,47,48, + 49,122,51,52,53,65,55,56,57,119, + 59,0,0,0,63,3,0,0,67,68, 0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16,17,18,19, - 20,21,22,23,0,95,96,3,74,29, - 30,31,32,70,34,0,0,37,0,39, - 40,41,42,0,6,45,0,1,2,49, - 4,8,6,118,0,9,56,57,58,59, - 24,25,62,63,64,102,0,1,2,69, - 107,108,109,110,111,112,113,114,115,116, - 117,0,0,1,2,61,5,87,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,13,14,15,16,17,18,19,20,21, - 22,23,0,1,2,72,0,29,30,31, - 32,121,34,88,89,37,10,39,40,41, - 42,93,94,45,0,1,2,49,4,0, - 6,29,3,9,56,57,58,59,66,67, - 62,63,64,0,0,1,2,69,4,0, - 6,0,8,9,0,1,2,3,4,5, - 6,7,0,9,10,87,4,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,28,0,0,1,2,33,0,35, - 36,8,38,0,11,0,8,43,44,121, - 46,47,48,54,50,51,52,53,0,55, - 0,1,2,29,60,5,54,7,74,0, - 66,67,68,0,1,2,3,4,5,6, - 7,8,9,10,91,91,13,14,15,16, - 17,18,19,20,21,22,23,24,25,26, - 27,28,0,1,2,0,33,5,35,36, - 0,38,74,0,4,70,43,44,0,46, - 47,48,0,50,51,52,53,0,55,91, - 0,29,0,60,0,0,6,3,65,0, - 30,28,8,8,0,72,0,1,2,3, - 4,5,6,7,8,9,10,88,89,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,0,1,2,0,33, - 0,35,36,3,38,0,8,0,8,43, - 44,0,46,47,48,61,50,51,52,53, - 68,55,68,0,29,71,60,72,74,91, - 71,65,0,1,2,3,4,5,6,7, - 0,9,10,93,94,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 28,61,0,1,2,33,102,35,36,71, - 38,107,74,0,74,43,44,70,46,47, - 48,8,50,51,52,53,0,55,0,0, - 1,2,60,4,5,90,7,92,66,67, - 0,1,2,3,4,5,6,7,0,9, - 10,88,89,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,28,0, - 90,0,92,33,0,35,36,6,38,0, - 54,0,8,43,44,72,46,47,48,61, - 50,51,52,53,0,55,0,0,1,2, - 60,4,5,0,7,0,66,67,0,1, - 2,3,4,5,6,7,8,9,10,71, - 0,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,28,0,1,2, - 71,33,61,35,36,0,38,0,74,29, - 54,43,44,8,46,47,48,0,50,51, - 52,53,68,55,93,94,29,10,60,73, - 91,68,0,65,0,1,2,3,4,5, - 6,7,8,9,10,0,29,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,28,0,1,2,0,33,0,35, - 36,8,38,0,0,9,59,43,44,74, - 46,47,48,0,50,51,52,53,0,55, - 0,3,0,5,6,88,89,9,0,0, - 1,2,3,4,5,6,7,8,9,0, - 11,12,24,25,26,27,0,0,0,1, - 2,33,4,5,0,7,10,54,65,30, - 31,32,8,34,0,11,37,3,39,40, - 41,42,54,0,45,29,54,29,49,61, - 76,61,118,54,66,67,68,0,70,71, - 61,0,1,2,3,4,5,6,7,71, - 9,88,89,74,0,59,88,89,90,0, - 71,93,94,95,96,97,98,99,100,101, - 102,0,0,0,106,4,108,109,110,111, - 112,113,114,115,116,117,0,1,2,3, - 4,5,6,7,71,9,10,24,25,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,0,1,2,0,33, - 0,35,36,0,38,54,0,1,2,43, - 44,0,46,47,48,0,50,51,52,53, - 68,55,24,25,29,0,60,0,1,2, - 3,4,5,6,7,29,9,10,0,122, + 20,21,0,0,0,0,0,0,0,0, + 3,0,70,0,0,35,36,37,38,0, + 40,0,42,43,44,0,46,47,48,49, + 0,51,52,53,0,55,56,57,0,59, + 0,70,0,63,37,38,66,0,1,2, + 3,4,5,6,7,8,9,10,11,12, + 13,14,15,16,17,18,19,20,21,0, + 0,0,65,0,0,0,0,0,0,0, + 0,0,35,36,37,38,0,40,0,42, + 43,44,0,46,47,48,49,0,51,52, + 53,0,55,56,57,0,59,0,3,0, + 5,6,0,106,9,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, + 35,36,37,38,0,0,0,42,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,58,0,118,0,0,0,0, + 65,0,67,68,69,70,71,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,88,89,90,0,0,93,94, + 95,96,97,98,99,100,101,102,0,0, + 0,106,0,108,109,110,111,112,113,114, + 115,116,117,0,1,2,3,4,5,6, + 7,0,9,10,11,12,13,14,15,16, + 17,18,19,20,21,0,0,0,0,0, + 0,0,0,0,0,0,0,0,35,36, + 37,38,0,40,0,42,43,44,0,46, + 47,48,49,0,51,52,53,0,55,56, + 57,0,59,0,0,0,63,0,1,2, + 3,4,5,6,7,0,9,10,11,12, + 13,14,15,16,17,18,19,20,21,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,35,36,37,38,0,40,0,42, + 43,44,0,46,47,48,49,0,51,52, + 53,0,55,56,57,0,59,0,0,0, + 0,0,65,0,1,2,3,4,5,6, + 7,0,9,10,11,12,13,14,15,16, + 17,18,19,20,21,0,0,0,0,0, + 0,0,0,0,0,0,0,0,35,36, + 37,38,0,40,0,42,43,44,0,46, + 47,48,49,0,51,52,53,0,55,56, + 57,0,59,0,0,0,63,0,1,2, + 3,4,5,6,7,0,9,10,11,12, + 13,14,15,16,17,18,19,20,21,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,35,36,37,38,0,40,0,42, + 43,44,0,46,47,48,49,0,51,52, + 53,0,55,56,57,0,59,0,1,2, + 3,4,5,6,7,0,9,10,11,12, + 13,14,15,16,17,18,19,20,21,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,35,36,37,38,0,40,0,42, + 43,44,0,46,47,48,49,0,51,52, + 53,0,55,56,57,0,59,0,1,2, + 3,4,5,6,7,0,9,10,11,12, + 13,14,15,16,17,18,19,20,21,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,35,36,37,38,0,40,0,42, + 43,44,0,46,47,48,49,0,51,52, + 53,0,55,56,57,0,59,0,1,2, + 0,4,0,0,0,0,0,10,11,12, 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,28,0,54,0,0, - 33,3,35,36,8,38,0,11,0,54, - 43,44,4,46,47,48,0,50,51,52, - 53,70,55,0,0,0,3,0,61,0, - 1,2,3,4,5,6,7,0,9,10, - 3,101,13,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,0,60, - 54,0,33,0,35,36,8,38,0,8, - 54,0,43,44,68,46,47,48,54,50, - 51,52,53,0,55,0,3,0,0,60, - 0,1,2,3,4,5,6,7,73,9, - 10,95,96,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,28,0, - 0,0,54,33,0,35,36,0,38,0, - 0,0,74,43,44,74,46,47,48,54, - 50,51,52,53,73,55,0,1,2,3, - 4,5,6,7,0,9,10,70,70,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,54,0,0,54,33, - 3,35,36,54,38,54,59,0,0,43, - 44,4,46,47,48,0,50,51,52,53, - 70,55,0,1,2,3,4,5,6,7, - 0,9,10,3,0,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 28,0,0,0,3,33,3,35,36,0, - 38,54,54,4,0,43,44,3,46,47, - 48,0,50,51,52,53,68,55,0,1, - 2,0,4,0,3,70,3,0,10,0, - 12,13,14,15,16,17,18,19,20,21, - 22,23,0,95,96,3,0,73,30,31, - 32,0,34,0,3,37,3,39,40,41, - 42,0,0,45,3,3,0,49,0,1, - 2,3,4,5,0,7,8,59,0,0, - 62,63,64,0,1,2,3,4,5,6, - 7,8,9,0,11,12,3,0,1,2, - 3,4,5,6,7,0,9,0,3,0, - 0,0,0,30,31,32,70,34,0,0, - 37,0,39,40,41,42,0,0,45,61, - 0,0,49,0,0,1,2,3,4,5, - 6,7,74,9,61,12,13,14,15,16, - 17,18,19,20,21,22,23,74,61,28, - 0,0,0,30,31,32,54,34,0,0, - 37,0,39,40,41,42,0,70,45,0, - 0,0,49,0,1,2,3,4,5,6, - 7,8,9,0,11,12,0,1,2,3, - 4,5,6,7,8,9,0,11,12,0, - 0,0,29,0,0,0,1,2,3,4, - 5,6,7,8,9,29,11,12,0,1, - 2,3,4,5,6,7,0,9,0,56, - 57,58,0,0,29,0,0,0,0,0, - 0,0,56,57,58,72,0,1,2,3, - 4,5,0,7,8,0,0,11,72,0, - 87,56,57,58,0,1,2,3,4,5, - 0,7,8,87,0,11,0,72,0,1, - 2,3,4,5,6,7,8,9,0,11, - 12,0,87,0,0,0,0,0,1,2, - 3,4,5,6,7,8,9,29,11,12, - 0,1,2,3,4,5,6,7,8,9, - 0,11,12,0,1,2,29,4,0,6, - 0,0,9,0,56,57,58,0,0,29, - 0,1,2,3,4,0,6,0,0,9, - 72,0,0,56,57,58,0,1,2,3, - 4,5,0,7,0,87,56,57,58,0, + 23,24,0,26,27,28,29,30,31,32, + 33,34,0,0,0,0,39,0,0,0, + 0,0,45,0,0,1,2,50,4,0, + 0,54,0,0,10,11,12,13,14,15, + 16,17,18,19,20,21,22,23,24,0, + 26,27,28,29,30,31,32,33,34,0, + 0,0,0,39,0,0,0,0,0,45, + 0,0,0,0,50,0,0,0,54,0, 1,2,3,4,5,6,7,8,9,0, - 11,12,0,0,87,0,1,2,3,4, - 5,12,7,0,0,0,0,87,29,0, - 0,61,0,4,0,0,0,0,0,30, - 31,32,12,34,0,0,37,61,39,40, - 41,42,0,0,45,56,57,58,49,30, - 30,31,32,0,34,12,0,37,0,39, - 40,41,42,0,0,45,0,0,0,49, - 0,0,0,30,31,32,87,34,0,0, - 37,0,39,40,41,42,0,0,45,0, - 1,2,49,4,0,6,0,0,9,0, + 0,0,0,0,0,0,0,0,0,0, + 0,22,23,24,25,26,27,28,29,30, + 31,32,33,34,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,0,0,65,0,0,0,0,0, + 0,0,0,74,0,1,2,3,4,5, + 6,7,8,9,0,0,0,0,0,0, + 0,0,0,0,0,0,22,23,24,25, + 26,27,28,29,30,31,32,33,34,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,103,104,105,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,65, + 0,0,0,0,0,0,0,0,74,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,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; @@ -1433,327 +1486,368 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface TermAction { public final static char termAction[] = {0, - 5384,5305,5020,5020,5020,5020,5020,5020,5336,5020, - 1,5309,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5384, + 5466,5387,5102,5102,5102,5102,5102,5102,5418,5102, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5391,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,785,563,653,1, - 1,385,1,1,1,5395,1,1,117,5565, - 5384,314,5391,777,769,3057,2810,3147,2163,2770, - 2689,3025,2791,622,2750,2803,2748,10,5339,5339, - 5339,5339,5339,5339,5339,5339,5339,5339,5339,5339, - 5339,5339,5339,5339,5339,5339,5339,5339,5339,5339, - 5339,5339,5339,5339,5339,5339,376,5339,5339,5339, - 5339,5339,5339,5339,5339,5339,5339,5339,5339,5339, - 5339,5339,5339,5339,5339,5339,5339,5339,5339,5339, - 5339,1080,5339,5339,5339,5339,5339,5339,2934,5339, - 5339,5339,5339,5339,5339,120,5339,45,4263,5339, - 4285,5428,5339,5339,5339,5339,5339,5339,5339,5339, - 5339,5339,5339,5339,8,5345,5345,5345,5345,5345, - 5345,5345,5345,5345,5345,5345,5345,5345,5345,5345, - 5345,5345,5345,5345,5345,5345,5345,5345,5345,5345, - 5345,5345,5345,5384,5345,5345,5345,5345,5345,5345, - 5345,5345,5345,5345,5345,5345,5345,5345,5345,5345, - 5345,5345,5345,5345,5345,5345,5345,5345,5384,5345, - 5345,5345,5345,5345,5345,2934,5345,5345,5345,5345, - 5345,5345,5384,5345,5384,4263,5345,4285,1250,5345, - 5345,5345,5345,5345,5345,5345,5345,5345,5345,5345, - 5345,5384,5305,5020,5020,5020,5020,5020,5020,5312, - 5020,1,5309,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,36,1, + 1206,559,5642,1,551,381,5477,1,1,5466, + 5108,5105,5473,5505,307,3341,2161,3349,2081,3330, + 1989,2983,2151,941,2074,3259,2016,10,5421,5421, + 5421,5421,5421,5421,5421,5421,5421,5421,5421,5421, + 5421,5421,5421,5421,5421,5421,5421,5421,5421,5421, + 5421,5421,5421,5421,5421,5421,5421,5421,5421,5421, + 5421,5421,5421,5421,5421,5421,5421,5421,1304,5421, + 5421,5421,5421,5421,5421,5421,5421,5421,5421,5421, + 5421,5421,5421,5421,5421,3699,5421,5421,5421,5421, + 5421,5421,40,5421,5421,5421,5505,5466,1637,5421, + 624,5793,5421,5421,5421,5421,5421,5421,5421,5421, + 5421,5421,5421,5421,8,5427,5427,5427,5427,5427, + 5427,5427,5427,5427,5427,5427,5427,5427,5427,5427, + 5427,5427,5427,5427,5427,5427,5427,5427,5427,5427, + 5427,5427,5427,5427,5427,5427,5427,5427,5427,5427, + 5427,5427,5427,5427,5427,5466,5427,5427,5427,5427, + 5427,5427,5427,5427,5427,5427,5427,5427,5427,5427, + 5427,5427,5466,5427,5427,5427,5427,5427,5427,116, + 5427,5427,5427,40,391,3914,5427,5505,384,5427, + 5427,5427,5427,5427,5427,5427,5427,5427,5427,5427, + 5427,5466,5387,5102,5102,5102,5102,5102,5102,5394, + 5102,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,5391,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5384,1,1,1,1,1,1,1,1,1, + 1,1,1551,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5466, + 1,1206,559,5642,1,551,5466,5477,1,1, + 112,49,3890,3630,2249,5481,3341,2161,3349,2081, + 3330,1989,2983,2151,941,2074,3259,2016,5466,5387, + 5102,5102,5102,5102,5102,5102,5394,5102,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,437,1,785,563,653, - 1,1,141,1,1,1,5395,1,1,446, - 5565,5384,5026,5023,1,5428,3057,2810,3147,2163, - 2770,2689,3025,2791,622,2750,2803,2748,5384,5305, - 5020,5020,5020,5020,5020,5020,5312,5020,1,5309, + 1,1,1,5391,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5481, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5384,1,1, + 1,1,1,1,1,1,290,1,1206,559, + 5642,1,551,355,5477,1,1,5466,5108,5105, + 4136,5505,4158,3341,2161,3349,2081,3330,1989,2983, + 2151,941,2074,3259,2016,5466,5387,5102,5102,5102, + 5102,5102,5102,5394,5102,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 5391,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1994,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,642,1,785,563,653,1,1,1637, - 1,1,1,5395,1,1,5384,5565,5817,5818, - 5819,5384,1043,3057,2810,3147,2163,2770,2689,3025, - 2791,622,2750,2803,2748,5384,5305,5020,5020,5020, - 5020,5020,5020,5312,5020,1,5309,1,1,1, + 1,1,1,5466,1,1206,559,5642,1,551, + 118,5477,1,1,5820,384,3914,5466,5220,5217, + 3341,2161,3349,2081,3330,1989,2983,2151,941,2074, + 3259,2016,5466,5387,5102,5102,5102,5102,5102,5102, + 5394,5102,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5391,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,519,1,1,1,1,1, + 1,1,1,5214,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,4376, - 1,785,563,653,1,1,139,1,1,1, - 5395,1,1,426,5565,5384,5026,5023,5384,5428, - 3057,2810,3147,2163,2770,2689,3025,2791,622,2750, - 2803,2748,5384,5305,5020,5020,5020,5020,5020,5020, - 5312,5020,1,5309,1,1,1,1,1,1, + 5466,1,1206,559,5642,1,551,5466,5477,1, + 1,649,49,3890,3630,5466,5480,3341,2161,3349, + 2081,3330,1989,2983,2151,941,2074,3259,2016,5466, + 5387,5102,5102,5102,5102,5102,5102,5394,5102,1, 1,1,1,1,1,1,1,1,1,1, - 1,5384,1,1,1,1,1,1,1,1, + 1,1,1,1,5391,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,4448,1,785,563, - 653,1,1,2934,1,1,1,5395,1,1, - 5384,5565,5384,5135,5132,2375,5384,3057,2810,3147, - 2163,2770,2689,3025,2791,622,2750,2803,2748,5384, - 5305,5020,5020,5020,5020,5020,5020,5312,5020,1, - 5309,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5384,1, + 5480,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,367,1,1206, + 559,5642,1,551,117,5477,1,1,1,1, + 3914,5466,5480,5481,3341,2161,3349,2081,3330,1989, + 2983,2151,941,2074,3259,2016,5466,5387,5102,5102, + 5102,5102,5102,5102,5394,5102,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,5391,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1213,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5784,1,785,563,653,1,1, - 140,1,1,1,5395,1,1,5384,5565,5384, - 5403,5404,5384,2369,3057,2810,3147,2163,2770,2689, - 3025,2791,622,2750,2803,2748,5384,5305,5020,5020, - 5020,5020,5020,5020,5312,5020,1,5309,1,1, + 1,1,1,1,1594,1,1206,559,5642,1, + 551,1,5477,1,1,385,448,3890,3630,5822, + 288,3341,2161,3349,2081,3330,1989,2983,2151,941, + 2074,3259,2016,5466,5387,5102,5102,5102,5102,5102, + 5102,5394,5102,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5391,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5384,1,1,1,1, + 1,1,1,1,5238,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,805,1,1206,559,5642,1,551,526,5477, + 1,1,5466,5480,5481,442,5466,3456,3341,2161, + 3349,2081,3330,1989,2983,2151,941,2074,3259,2016, + 5466,5387,5102,5102,5102,5102,5102,5102,5394,5102, 1,1,1,1,1,1,1,1,1,1, - 5894,1,785,563,653,1,1,142,1,1, - 1,5395,1,1,5384,5565,5384,8554,8258,2375, - 5384,3057,2810,3147,2163,2770,2689,3025,2791,622, - 2750,2803,2748,5384,5305,5020,5020,5020,5020,5020, - 5020,5312,5020,1,5309,1,1,1,1,1, + 1,1,1,1,1,5391,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,5384,1,1,1,1,1,1,1, + 1,2706,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,2720,1, + 1206,559,5642,1,551,5466,5477,1,1,5466, + 6587,6326,49,5220,5217,3341,2161,3349,2081,3330, + 1989,2983,2151,941,2074,3259,2016,5466,5387,5102, + 5102,5102,5102,5102,5102,5394,5102,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,143,1,785, - 563,653,1,1,5384,1,1,1,5395,1, - 1,5384,5565,54,5135,5132,5384,1043,3057,2810, - 3147,2163,2770,2689,3025,2791,622,2750,2803,2748, - 5384,5305,5020,5020,5020,5020,5020,5020,5312,5020, - 1,5309,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5384, + 1,1,5391,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5466,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,365,1,1206,559,5642, + 1,551,5466,5477,1,1,289,5480,5481,5466, + 6587,6326,3341,2161,3349,2081,3330,1989,2983,2151, + 941,2074,3259,2016,5466,5387,5102,5102,5102,5102, + 5102,5102,5394,5102,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5391, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5837,1,785,563,653,1, - 1,5384,1,1,1,5395,1,1,1171,5565, - 293,5403,5404,5384,5384,3057,2810,3147,2163,2770, - 2689,3025,2791,622,2750,2803,2748,5384,5305,5020, - 5020,5020,5020,5020,5020,5312,5020,1,5309,1, + 1,1,1,1,1,1261,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5384,1,1,1, + 1,1,5466,1,1206,559,5642,1,551,5466, + 5477,1,1,3287,434,38,5265,5265,422,3341, + 2161,3349,2081,3330,1989,2983,2151,941,2074,3259, + 2016,40,5108,5105,4836,929,3960,4026,3128,5466, + 4048,1251,5731,5729,5738,5737,5733,5734,5732,5735, + 5736,5739,5730,5727,5800,5801,5503,5721,5728,5724, + 5700,5726,5725,5722,5723,5701,4004,3982,4092,4070, + 5859,5486,5241,3938,1474,1517,628,5488,1475,4433, + 1500,5860,5489,5487,1457,5861,5482,5484,5485,316, + 5483,2884,5250,5466,1347,5466,5278,5278,230,5274, + 230,230,230,5282,230,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 230,1,1,1,1,1,1,1,1,1, + 5466,5466,5108,5105,1,5505,5271,138,5478,5478, + 1,132,438,1,1,1,1,5466,5253,1, + 586,5253,140,433,1305,3018,782,5873,5466,5108, + 5105,225,929,640,5466,3128,5862,411,230,140, + 2236,364,5121,5117,2479,5114,640,1,3128,5466, + 1,122,5960,5727,5800,5801,5466,5721,5728,5724, + 5700,5726,5725,5722,5723,5701,5477,5477,5895,5896, + 5897,5466,5278,5278,230,5274,230,230,230,5351, + 230,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,230,1,1,1, + 1,1,1,1,1,1,1305,318,2255,1822, + 1,1159,5271,439,40,40,1,5505,4454,5363, + 3114,1,5360,139,1121,1,5895,5896,5897,3334, + 5466,3018,782,5873,392,5480,5481,226,5098,2931, + 2957,1121,310,410,230,897,3334,1779,1736,1693, + 1650,1607,1564,1521,1478,1435,1392,30,5960,5727, + 5800,5801,136,5721,5728,5724,5700,5726,5725,5722, + 5723,5701,1305,5466,5895,5896,5897,5466,5102,5102, + 230,5102,230,230,230,5131,230,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5823,1,785,563,653,1,1,135,1, - 1,1,5395,1,1,5384,5565,5384,8554,8258, - 5384,5384,3057,2810,3147,2163,2770,2689,3025,2791, - 622,2750,2803,2748,5384,5305,5020,5020,5020,5020, - 5020,5020,5312,5020,1,5309,1,1,1,1, + 1,1,230,1,1,7760,1,1,1,1, + 1,1,1032,5466,796,5244,1,34,5099,5466, + 5262,5474,1,5262,2255,5262,5262,1,5466,5108, + 5105,1,929,640,5466,3128,5466,2634,559,5678, + 137,551,5262,1,5121,5117,5111,5114,5128,220, + 5125,5466,5262,5262,5262,5262,1,5121,5117,2479, + 5114,640,2293,3128,5960,5466,5121,5117,4459,5114, + 640,5226,3128,5466,5223,5262,1,5121,5117,2479, + 5114,640,5262,3128,5372,5473,5262,5262,5262,5262, + 5262,5262,1809,342,40,40,4266,5505,220,1637, + 40,130,5793,5466,5505,5262,5262,5262,5262,5262, + 5262,5262,5262,5262,5262,5262,5262,5262,5262,5262, + 5466,1305,2925,5262,5262,5262,5262,5262,5262,5262, + 5262,5262,5262,5262,5262,5262,5466,5262,2032,5381, + 2293,1305,5381,1022,5381,5381,2119,5466,5108,5105, + 5375,929,5384,227,3128,392,5108,5105,1305,5505, + 1390,5381,1,5121,5117,4459,5114,640,119,3128, + 5466,5381,5381,5381,5381,5727,5800,5801,5466,5721, + 5728,5724,5700,5726,5725,5722,5723,5701,2617,228, + 5466,93,1,1,5381,1,40,5424,2451,2368, + 5424,5381,5466,3577,3552,5381,5381,5381,5381,5381, + 5381,5727,5800,5801,48,5721,5728,5724,5700,5726, + 5725,5722,5723,5701,5381,5381,5381,5381,5381,5381, + 5381,5381,5381,5381,5381,5381,5381,5381,5381,2576, + 115,3114,5381,5381,5381,5381,5381,5381,5381,5381, + 5381,5381,5381,5381,5381,2244,5381,5466,5102,5102, + 230,5102,230,230,230,230,230,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5384,1,1,1,1,1,1, + 1,1,230,1,1,7760,1,1,1,1, + 1,1,38,5265,5265,300,1,5265,5099,5466, + 5108,5105,1,929,5384,5765,3128,1,39,5235, + 5232,1,452,5229,5466,3128,5466,2634,559,5678, + 134,551,308,5121,5117,4459,5114,640,5226,3128, + 4136,5223,4158,3540,224,1,5466,5480,5481,5466, + 2702,640,1766,3128,5960,5731,5729,5738,5737,5733, + 5734,5732,5735,5736,5739,5730,5727,5800,5801,30, + 5721,5728,5724,5700,5726,5725,5722,5723,5701,1, + 5121,5117,4459,5114,640,585,3128,5256,221,5466, + 5102,5102,230,5102,230,230,230,230,230,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,2201,1, - 785,563,653,1,1,5384,1,1,1,5395, - 1,1,5384,5565,5384,2501,2418,1848,5384,3057, - 2810,3147,2163,2770,2689,3025,2791,622,2750,2803, - 2748,45,5026,5023,4768,2152,4087,4153,2615,5384, - 4175,910,136,5646,5653,5651,5660,5659,5655,5656, - 5654,5657,5658,5661,5652,4131,4109,4219,4197,5409, - 311,5649,5722,5723,4042,5643,1676,1711,5650,5411, - 5622,5648,5647,5644,1678,2666,5645,1693,5412,5410, - 5623,1625,5405,5407,5408,1990,5406,5384,5403,5404, - 5781,1429,3550,864,5782,5783,5384,5193,5193,234, - 5189,234,234,234,5197,234,1,234,1,1, + 1,1,1,1,230,1,1,7760,1,1, + 1,1,1,1,37,5442,5439,1551,1,2325, + 5099,96,40,40,1,5505,114,5451,1,1, + 5448,5466,418,1,4847,5466,360,811,1151,2634, + 559,5678,2032,551,342,5108,5105,2479,929,640, + 1637,3128,5466,5793,5466,5108,5105,4459,929,640, + 1637,3128,1,5793,5466,5466,5960,5466,5102,5102, + 230,5102,230,230,230,5268,230,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 81,5384,5384,4369,41,5186,1,1,1,5394, - 1,3964,5393,1,322,1,1,1,1,2501, - 2418,1,43,5180,5180,1,5452,5453,2369,44, - 5150,5147,2788,1359,5144,1,2615,1,1,1, - 1,389,5384,5026,5023,5795,5428,5384,415,234, - 5396,5426,5384,5384,5039,5035,2756,5032,732,5141, - 2615,4366,5138,5882,368,5039,5035,2529,5032,732, - 1,2615,4329,1,1370,1387,5384,5403,5404,5817, - 5818,5819,5384,5193,5193,234,5189,234,234,234, - 5269,234,1,234,1,1,1,1,1,1, - 1,1,1,1,1,1,795,5395,43,5180, - 5180,5186,1,1,1,4532,1,337,3682,1, - 1371,1,1,1,1,1387,2114,1,5384,5026, - 5023,1,2152,5302,1207,2615,5384,5426,2788,1359, - 3120,1,4241,730,1,1,1,5384,5722,5723, - 39,5795,304,5177,414,234,5177,2446,5177,5177, - 229,5177,5687,1,5039,5035,5029,5032,5046,5882, - 5043,5384,5646,5384,5177,5177,5177,5177,396,5026, - 5023,5394,5428,5384,5393,5817,5818,5819,5384,45, - 5649,5722,5723,5428,5643,1719,5396,5650,5715,5622, - 5648,5647,5644,5384,5177,5645,5384,45,661,5623, - 5384,5177,1,5039,5035,2756,5032,732,5177,2615, - 5177,5177,5177,5177,5177,1,5020,5020,234,5020, - 234,234,234,234,234,1047,234,8738,5177,5177, - 5177,5177,5177,5177,5177,5177,5177,5177,5177,5177, - 5177,5177,5177,5395,5017,456,5177,5177,5177,5177, - 5177,5177,5177,5177,5177,5177,5177,5177,5177,5384, - 5177,3125,5299,455,3682,5299,5384,5299,5299,1084, - 5299,2771,563,653,5392,2114,53,5384,5026,5023, - 1,5428,5016,5299,5299,5299,5299,571,5162,5646, - 5653,5651,5660,5659,5655,5656,5654,5657,5658,5661, - 5652,320,5882,137,5165,1036,5171,5649,5722,5723, - 132,5643,590,5299,5650,5384,5622,5648,5647,5644, - 5299,5384,5645,5388,5174,5384,5623,5299,4769,5299, - 5299,5299,5299,5299,5384,5384,5781,993,5391,864, - 5782,5783,5390,145,5384,5395,5384,5299,5299,5299, - 5299,5299,5299,5299,5299,5299,5299,5299,5299,5299, - 5299,5299,1387,1110,2720,5299,5299,5299,5299,5299, - 5299,5299,5299,5299,5299,5299,5299,5299,5272,5299, - 5384,5020,5020,234,5020,234,234,234,234,234, - 1,234,8738,1,1,1,1,1,1,1, - 1,1,1,1,348,2633,2557,3178,5389,5017, - 1,1,1,1904,1,127,124,1,121,1, - 1,1,1,5384,3915,1,442,1,1,1, - 1,5392,5168,5387,5384,5168,2771,563,653,1, - 3638,3611,1,1,1,2337,396,5403,5404,5402, - 4374,1861,1818,1775,1732,1689,1646,1603,1560,1517, - 1474,5384,5384,5135,5132,1387,3550,5882,5384,5020, - 5020,234,5020,234,234,234,234,234,1,234, - 8738,1,1,1,1,1,1,1,1,1, - 1,1,5384,5203,5200,5391,304,5017,1,1, - 1,14,1,2930,2992,1,5687,1,1,1, - 1,3891,3861,1,443,45,45,1,5428,5384, - 5281,5426,3738,5278,2771,563,653,1,4241,730, - 1,1,1,359,1,5318,5318,5402,5315,388, - 1719,5384,364,5715,1,5039,5035,4768,5032,4087, - 4153,2615,395,4175,5212,5882,388,5239,5245,5218, - 5221,5233,5230,5236,5227,5224,5215,5242,4131,4109, - 4219,4197,5409,404,49,5209,5209,4042,1,1676, - 1711,5263,5411,5384,5266,294,364,1678,2666,13, - 1693,5412,5410,5129,1625,5405,5407,5408,5384,5406, - 5384,5403,5404,5206,1429,732,1594,2615,364,131, - 45,45,514,45,5026,5023,4768,2152,4087,4153, - 2615,5363,4175,2608,5742,364,5653,5651,5660,5659, - 5655,5656,5654,5657,5658,5661,5652,4131,4109,4219, - 4197,5409,43,5180,5180,5384,4042,5180,1676,1711, - 45,5411,364,5384,5428,2076,1678,2666,1,1693, - 5412,5410,5384,1625,5405,5407,5408,5384,5406,364, - 123,3558,5384,1429,1,1,3915,2956,5251,292, - 2834,641,342,5275,145,5391,45,5026,5023,4768, - 2152,4087,4153,2615,5248,4175,2608,2930,2992,5653, - 5651,5660,5659,5655,5656,5654,5657,5658,5661,5652, - 4131,4109,4219,4197,5409,51,5287,5287,5384,4042, - 1,1676,1711,2956,5411,119,5390,371,5290,1678, - 2666,5384,1693,5412,5410,1387,1625,5405,5407,5408, - 2817,5406,342,130,5284,342,1429,5391,342,5744, - 1513,5251,147,5026,5023,4768,2152,4087,4153,2615, - 118,4175,2608,3891,3861,5653,5651,5660,5659,5655, - 5656,5654,5657,5658,5661,5652,4131,4109,4219,4197, - 5409,1387,42,5360,5357,4042,2337,1676,1711,4860, - 5411,4374,5389,8,5293,1678,2666,1267,1693,5412, - 5410,5375,1625,5405,5407,5408,452,5406,349,5384, - 5026,5023,1429,2152,732,4263,2615,4285,45,45, - 1,5039,5035,4768,5032,4087,4153,2615,513,4175, - 5212,2930,2992,5239,5245,5218,5221,5233,5230,5236, - 5227,5224,5215,5242,4131,4109,4219,4197,5409,447, - 4263,122,4285,4042,1,1676,1711,3915,5411,1, - 5153,106,167,1678,2666,5375,1693,5412,5410,1387, - 1625,5405,5407,5408,5384,5406,35,5384,5026,5023, - 1429,2152,732,5384,2615,5384,45,45,45,5026, - 5023,4768,2152,4087,4153,2615,5248,4175,2608,872, - 43,5653,5651,5660,5659,5655,5656,5654,5657,5658, - 5661,5652,4131,4109,4219,4197,5409,5384,8719,8719, - 2900,4042,4889,1676,1711,1,5411,129,167,5426, - 1594,1678,2666,526,1693,5412,5410,1,1625,5405, - 5407,5408,2864,5406,3891,3861,5426,5254,1429,422, - 3993,2892,5384,5251,45,5026,5023,4768,2152,4087, - 4153,2615,5388,4175,2608,5384,1943,5653,5651,5660, - 5659,5655,5656,5654,5657,5658,5661,5652,4131,4109, - 4219,4197,5409,5384,5403,5404,138,4042,5384,1676, - 1711,5396,5411,438,5384,590,5257,1678,2666,526, - 1693,5412,5410,128,1625,5405,5407,5408,1,5406, - 105,1317,35,5851,5845,2930,2992,5849,363,35, - 388,388,5327,388,388,5327,388,5327,5327,424, - 5327,388,5843,5844,5874,5875,1,5384,5384,5026, - 5023,5852,2152,5302,1,2615,5254,5156,5395,388, - 388,388,5394,388,5384,5393,388,4382,388,388, - 388,388,5854,163,388,1943,5159,2469,388,638, - 3086,2288,5387,5159,1307,1461,5855,191,5853,5876, - 5327,312,5039,5035,2756,5032,732,5141,2615,3024, - 5138,2930,2992,5327,5384,5257,5865,5864,5877,5384, - 4632,5846,5847,5870,5871,5868,5869,5848,5850,5872, - 5873,54,5384,126,5878,5404,5858,5859,5860,5856, - 5857,5866,5867,5862,5861,5863,45,5026,5023,4768, - 2152,4087,4153,2615,1947,4175,2608,3638,3611,5653, - 5651,5660,5659,5655,5656,5654,5657,5658,5661,5652, - 4131,4109,4219,4197,5409,43,5180,5180,125,4042, - 144,1676,1711,5384,5411,5404,5384,5353,5349,1678, - 2666,369,1693,5412,5410,5384,1625,5405,5407,5408, - 2904,5406,3638,3611,3472,5384,1429,45,5026,5023, - 4768,2152,4087,4153,2615,5426,4175,2608,5384,5381, - 5653,5651,5660,5659,5655,5656,5654,5657,5658,5661, - 5652,4131,4109,4219,4197,5409,1,1891,97,530, - 4042,5296,1676,1711,197,5411,134,197,5384,1594, - 1678,2666,1193,1693,5412,5410,1,1625,5405,5407, - 5408,1327,5406,242,5384,5384,5321,5384,1686,45, - 5026,5023,4768,2152,4087,4153,2615,1,4175,2608, - 4858,1171,5653,5651,5660,5659,5655,5656,5654,5657, - 5658,5661,5652,4131,4109,4219,4197,5409,1,3195, - 2720,1,4042,5384,1676,1711,169,5411,5384,5390, - 1594,5384,1678,2666,5330,1693,5412,5410,1084,1625, - 5405,5407,5408,5384,5406,5384,4811,506,504,1429, - 45,5026,5023,4797,2152,4087,4153,2615,3083,4175, - 2608,2633,2557,5653,5651,5660,5659,5655,5656,5654, - 5657,5658,5661,5652,4131,4109,4219,4197,5409,5384, - 5384,5384,3382,4042,5384,1676,1711,5384,5411,5384, - 418,79,169,1678,2666,5389,1693,5412,5410,3956, - 1625,5405,5407,5408,3141,5406,45,5026,5023,4768, - 2152,4087,4153,2615,5384,4175,2608,4845,4855,5653, - 5651,5660,5659,5655,5656,5654,5657,5658,5661,5652, - 4131,4109,4219,4197,5409,3957,5384,5384,4843,4042, - 4824,1676,1711,2899,5411,5372,3117,54,133,1678, - 2666,5403,1693,5412,5410,5384,1625,5405,5407,5408, - 2250,5406,45,5026,5023,4768,2152,4087,4153,2615, - 5384,4175,2608,3023,5384,5653,5651,5660,5659,5655, - 5656,5654,5657,5658,5661,5652,4131,4109,4219,4197, - 5409,5384,5384,5384,4831,4042,4483,1676,1711,5384, - 5411,5403,2720,1556,5384,1678,2666,4484,1693,5412, - 5410,5384,1625,5405,5407,5408,5333,5406,246,5122, - 5118,5384,5126,5384,4848,1370,4868,5384,571,5384, - 5073,5109,5115,5088,5091,5103,5100,5106,5097,5094, - 5085,5112,5384,2633,2557,3771,5384,3199,5064,5058, - 5055,5384,5082,5384,4871,5061,4881,5052,5067,5070, - 5079,5384,109,5076,4891,4892,5384,5049,1,5039, - 5035,2529,5032,732,5384,2615,5290,5781,5384,5384, - 864,5782,5783,38,389,389,5324,389,389,5324, - 389,5324,5324,5384,5324,389,4812,346,5026,5023, - 2529,2152,732,1719,2615,283,5715,508,5378,5384, - 5384,5384,2,389,389,389,2033,389,5384,5384, - 389,5384,389,389,389,389,5384,5384,389,1387, - 5384,1,389,228,5384,5026,5023,2756,2152,732, - 1719,2615,5293,5715,5324,5646,5653,5651,5660,5659, - 5655,5656,5654,5657,5658,5661,5652,5324,1387,771, - 5384,5384,5384,5649,5722,5723,43,5643,5384,5384, - 5650,5384,5622,5648,5647,5644,5384,928,5645,5384, - 5384,5384,5623,1,5020,5020,234,5020,234,234, - 234,5183,234,5384,234,8738,1,5020,5020,234, - 5020,234,234,234,5183,234,5384,234,8738,5384, - 5384,5384,5017,5384,5384,1,5020,5020,234,5020, - 234,234,234,5260,234,5017,234,8738,5384,5026, - 5023,2756,2152,732,1719,2615,5384,5715,5384,2771, - 563,653,5384,5384,5017,5384,5384,5384,5384,5384, - 5384,5384,2771,563,653,225,1,5039,5035,5029, - 5032,5046,5384,5043,5394,5384,5384,5393,225,5384, - 5882,2771,563,653,1,5039,5035,2756,5032,732, - 5384,2615,312,5882,5384,312,5384,224,1,5020, - 5020,234,5020,234,234,234,5183,234,5384,234, - 8738,5384,5882,5384,5384,5384,5384,1,5020,5020, - 234,5020,234,234,234,234,234,5017,234,8738, - 1,5020,5020,234,5020,234,234,234,234,234, - 5384,234,8738,98,1,1,5017,1,5384,5342, - 5384,5384,5342,5384,2771,563,653,5384,5384,5017, - 346,45,45,2956,5428,5384,1719,5384,5384,5715, - 225,5384,5384,2771,563,653,1,5039,5035,2529, - 5032,732,5384,2615,5384,5882,2771,563,653,1, - 5020,5020,234,5020,234,234,234,234,234,230, - 234,8738,5384,5384,5882,1,5039,5035,2756,5032, - 732,5646,2615,5384,5384,5384,5384,5882,5017,45, - 231,1387,5384,5428,5384,5384,5384,5384,5384,5649, - 5722,5723,5646,5643,5384,5384,5650,1387,5622,5648, - 5647,5644,5384,232,5645,2771,563,653,5623,972, - 5649,5722,5723,5384,5643,5646,5384,5650,5384,5622, - 5648,5647,5644,5384,5384,5645,5384,5384,5384,5623, - 5384,5384,5384,5649,5722,5723,5882,5643,5384,5384, - 5650,5384,5622,5648,5647,5644,5384,5384,5645,101, - 45,45,5623,5428,5384,5369,5384,5384,5366,5384, - 5384,5384,5384,5384,5384,5384,5384,5384,5384,5384, - 5384,5384,5384,5384,5384,5384,5384,5384,5384,5384, - 5384,5384,5817,5818,5819 + 1,1,230,1,1,7760,1,1,1,1, + 1,1,360,40,126,5466,1,5505,5099,1305, + 1551,5466,1,5470,3394,5466,4136,1,4158,360, + 1551,1,113,811,1,919,5466,2634,559,5678, + 1,551,5247,4266,5474,5466,5480,5481,338,221, + 5466,5108,5105,4459,929,640,1637,3128,1,5793, + 5466,5288,5285,5466,5960,5466,5102,5102,230,5102, + 230,230,230,5268,230,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 230,1,1,7760,1,1,1,1,1,1, + 5477,5503,2931,2957,1,1305,5099,988,5473,338, + 1,338,4114,1432,338,1,5895,5896,5897,1, + 5466,3166,4136,333,4158,2634,559,5678,5476,551, + 1,5400,5400,5469,5397,451,1637,221,360,5793, + 5466,5480,5481,127,125,5475,5800,5801,5478,4254, + 5466,5466,5960,5466,5102,5102,230,5102,230,230, + 230,5268,230,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,230,1, + 1,7760,1,1,1,1,1,1,5466,38, + 5265,5265,1,92,5099,2236,5378,400,1,124, + 5259,2670,5466,1,360,5345,5477,1,3274,5466, + 5220,5217,5354,2634,559,5678,1,551,5466,4266, + 129,360,5348,5466,5372,221,5472,128,1,123, + 5503,5472,2931,2957,344,5466,5357,3273,2584,2507, + 5960,5466,5102,5102,230,5102,230,230,230,230, + 230,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,230,1,1,7760, + 1,1,1,1,1,1,4114,1432,2670,38, + 1,1305,5099,131,5466,2670,1,2931,2957,5412, + 5375,1,5471,3290,4913,1,5415,5471,509,1305, + 5473,2634,559,5678,300,551,238,1,5466,5403, + 4894,1,502,1,5765,2584,2507,2931,2957,162, + 5503,522,2584,2507,44,5294,5294,443,5960,5466, + 5102,5102,230,5102,230,230,230,230,230,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,230,1,1,7760,1,1, + 1,1,1,1,650,5291,1,1,1,867, + 5099,46,5369,5369,1,121,5339,5339,1,1, + 2451,2368,3382,1,5466,162,5476,522,8,2634, + 559,5678,5476,551,1,133,5457,5466,2833,5466, + 5466,5466,164,5475,586,5342,5342,1731,1731,5475, + 3577,3552,5366,5466,8657,8657,5960,5466,5102,5102, + 230,5102,230,230,230,230,230,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,230,1,1,7760,1,1,1,1, + 1,1,5466,1,5503,4202,1,3348,5099,5466, + 5457,5472,1,5466,38,5265,5265,1,164,4335, + 5972,1,5466,5435,5431,5466,359,2634,559,5678, + 5466,551,1,5121,5117,4836,5114,3960,4026,3128, + 5466,4048,5297,5324,5330,5303,5306,5318,5315,5321, + 5312,5309,5300,5327,5960,3001,5466,1,5121,5117, + 5111,5114,5128,5503,5125,5476,500,4004,3982,4092, + 4070,5915,5486,414,3938,1474,1517,5471,5488,1475, + 4433,1500,5475,5489,5487,1457,1908,5482,5484,5485, + 120,5483,420,158,5901,1347,5466,3112,3205,40, + 40,510,40,5108,5105,4836,929,3960,4026,3128, + 5445,4048,2432,5731,5729,5738,5737,5733,5734,5732, + 5735,5736,5739,5730,5466,3577,3552,1,5121,5117, + 4459,5114,640,345,3128,308,4702,4004,3982,4092, + 4070,135,5486,2168,3938,1474,1517,5466,5488,1475, + 4433,1500,308,5489,5487,1457,372,5482,5484,5485, + 5466,5483,74,622,1865,1347,5466,5466,5336,3037, + 5466,5466,101,4861,5473,40,5108,5105,4836,929, + 3960,4026,3128,5333,4048,2432,5731,5729,5738,5737, + 5733,5734,5732,5735,5736,5739,5730,3091,1305,5466, + 1,5466,4885,5466,4703,5466,4899,5466,192,5466, + 4004,3982,4092,4070,5466,5486,2190,3938,1474,1517, + 5454,5488,1475,4433,1500,192,5489,5487,1457,2200, + 5482,5484,5485,5466,5483,2202,2248,3847,1347,186, + 2325,5336,142,5108,5105,4836,929,3960,4026,3128, + 515,4048,2432,5731,5729,5738,5737,5733,5734,5732, + 5735,5736,5739,5730,5466,5466,5466,3507,3508,3509, + 5466,5466,5466,3682,2566,2249,983,4004,3982,4092, + 4070,2565,5486,5466,3938,1474,1517,3145,5488,1475, + 4433,1500,2,5489,5487,1457,5466,5482,5484,5485, + 100,5483,5466,1304,5466,1347,1482,3788,5466,40, + 40,1,5121,5117,4836,5114,3960,4026,3128,5466, + 4048,5297,5324,5330,5303,5306,5318,5315,5321,5312, + 5309,5300,5327,5466,5466,3672,4244,4243,104,5466, + 5466,4246,5466,4905,3456,5466,4004,3982,4092,4070, + 38,5486,5466,3938,1474,1517,5466,5488,1475,4433, + 1500,5463,5489,5487,1457,2206,5482,5484,5485,2249, + 5483,504,279,5466,1347,5460,5466,5466,40,40, + 40,5108,5105,4836,929,3960,4026,3128,5333,4048, + 2432,5731,5729,5738,5737,5733,5734,5732,5735,5736, + 5739,5730,5466,5466,5466,5466,5466,76,5466,5466, + 3309,5466,1951,5466,5466,4004,3982,4092,4070,5466, + 5486,5466,3938,1474,1517,5466,5488,1475,4433,1500, + 5466,5489,5487,1457,5466,5482,5484,5485,5466,5483, + 5466,2419,5466,1347,5529,5530,5336,40,5108,5105, + 4836,929,3960,4026,3128,5470,4048,2432,5731,5729, + 5738,5737,5733,5734,5732,5735,5736,5739,5730,5466, + 5466,5466,2724,5466,5466,5466,5466,5466,5466,5466, + 5466,5466,4004,3982,4092,4070,5466,5486,5466,3938, + 1474,1517,5466,5488,1475,4433,1500,5466,5489,5487, + 1457,5466,5482,5484,5485,1,5483,5466,2403,5466, + 5929,5923,5466,792,5927,5466,5466,5466,5466,5466, + 5466,5466,5466,5466,5466,5466,5466,2399,5466,5466, + 5466,5466,5466,5466,5466,5466,5466,5466,5466,5466, + 5921,5922,5952,5953,5466,5466,5466,5930,5466,5466, + 5466,5466,5466,5466,5466,5466,5466,5466,5466,5466, + 5466,5466,5466,5932,5466,5469,5466,5466,5466,5466, + 1163,5466,977,1079,5933,5931,5954,5466,5466,5466, + 5466,5466,5466,5466,5466,5466,5466,5466,5466,5466, + 5466,5466,5466,5943,5942,5955,5466,5466,5924,5925, + 5948,5949,5946,5947,5926,5928,5950,5951,5466,5466, + 5466,5956,5466,5936,5937,5938,5934,5935,5944,5945, + 5940,5939,5941,40,5108,5105,4836,929,3960,4026, + 3128,5466,4048,2432,5731,5729,5738,5737,5733,5734, + 5732,5735,5736,5739,5730,5466,5466,5466,5466,5466, + 5466,5466,5466,5466,5466,5466,5466,5466,4004,3982, + 4092,4070,5466,5486,5466,3938,1474,1517,5466,5488, + 1475,4433,1500,5466,5489,5487,1457,5466,5482,5484, + 5485,5466,5483,5466,5466,5466,1347,40,5108,5105, + 4836,929,3960,4026,3128,5466,4048,2432,5731,5729, + 5738,5737,5733,5734,5732,5735,5736,5739,5730,5466, + 5466,5466,5466,5466,5466,5466,5466,5466,5466,5466, + 5466,5466,4004,3982,4092,4070,5466,5486,5466,3938, + 1474,1517,5466,5488,1475,4433,1500,5466,5489,5487, + 1457,5466,5482,5484,5485,5466,5483,5466,5466,5466, + 5466,5466,3281,40,5108,5105,4836,929,3960,4026, + 3128,5466,4048,2432,5731,5729,5738,5737,5733,5734, + 5732,5735,5736,5739,5730,5466,5466,5466,5466,5466, + 5466,5466,5466,5466,5466,5466,5466,5466,4004,3982, + 4092,4070,5466,5486,5466,3938,1474,1517,5466,5488, + 1475,4433,1500,5466,5489,5487,1457,5466,5482,5484, + 5485,5466,5483,5466,5466,5466,1347,40,5108,5105, + 4848,929,3960,4026,3128,5466,4048,2432,5731,5729, + 5738,5737,5733,5734,5732,5735,5736,5739,5730,5466, + 5466,5466,5466,5466,5466,5466,5466,5466,5466,5466, + 5466,5466,4004,3982,4092,4070,5466,5486,5466,3938, + 1474,1517,5466,5488,1475,4433,1500,5466,5489,5487, + 1457,5466,5482,5484,5485,5466,5483,40,5108,5105, + 4836,929,3960,4026,3128,5466,4048,2432,5731,5729, + 5738,5737,5733,5734,5732,5735,5736,5739,5730,5466, + 5466,5466,5466,5466,5466,5466,5466,5466,5466,5466, + 5466,5466,4004,3982,4092,4070,5466,5486,5466,3938, + 1474,1517,5466,5488,1475,4433,1500,5466,5489,5487, + 1457,5466,5482,5484,5485,5466,5483,40,5108,5105, + 4836,929,3960,4026,3128,5466,4048,2432,5731,5729, + 5738,5737,5733,5734,5732,5735,5736,5739,5730,5466, + 5466,5466,5466,5466,5466,5466,5466,5466,5466,5466, + 5466,5466,4004,3982,4092,4070,5466,5486,5466,3938, + 1474,1517,5466,5488,1475,4433,1500,5466,5489,5487, + 1457,5466,5482,5484,5485,5466,5483,5466,5108,5105, + 5466,5505,5466,5466,5466,5466,5466,772,5731,5729, + 5738,5737,5733,5734,5732,5735,5736,5739,5730,5727, + 5800,5801,5466,5721,5728,5724,5700,5726,5725,5722, + 5723,5701,5466,5466,5466,5466,5859,5466,5466,5466, + 5466,5466,628,5466,242,5207,5203,5860,5211,5466, + 5466,5861,5466,5466,772,5194,5200,5173,5176,5188, + 5185,5191,5182,5179,5170,5197,5149,5143,5140,5466, + 5167,5146,5158,5137,5152,5155,5164,5161,5134,5466, + 5466,5466,5466,5859,5466,5466,5466,5466,5466,628, + 5466,5466,5466,5466,5860,5466,5466,5466,5861,30, + 384,384,5409,384,384,5409,384,5409,5409,5466, + 5466,5466,5466,5466,5466,5466,5466,5466,5466,5466, + 5466,384,384,384,5409,384,384,384,384,384, + 384,384,384,384,5466,5466,5466,5466,5466,5466, + 5466,5466,5466,5466,5466,5466,5466,5466,5466,5466, + 5466,5466,5466,5466,5466,5466,5466,5244,5466,5466, + 5466,5466,5466,5466,5409,5466,5466,5466,5466,5466, + 5466,5466,5466,5409,33,385,385,5406,385,385, + 5406,385,5406,5406,5466,5466,5466,5466,5466,5466, + 5466,5466,5466,5466,5466,5466,385,385,385,5406, + 385,385,385,385,385,385,385,385,385,5466, + 5466,5466,5466,5466,5466,5466,5466,5466,5466,5466, + 5466,5466,5466,5466,5466,5466,5466,5466,5466,5466, + 5466,5466,5466,5466,5466,5466,5466,5466,5466,5406, + 5466,5466,5466,5466,5466,5466,5466,5466,5406 }; }; public final static char termAction[] = TermAction.termAction; @@ -1761,59 +1855,59 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface Asb { public final static char asb[] = {0, - 829,1,867,583,684,365,262,973,971,6, - 829,460,1102,971,1031,1042,8,1042,3,1042, - 5,1042,1026,1042,460,461,11,365,455,100, - 739,739,644,461,739,461,583,547,729,170, - 16,8,166,461,1103,150,215,461,266,260, - 714,270,264,8,319,461,469,461,461,260, - 266,266,373,458,153,153,160,162,455,461, - 732,150,469,469,736,316,150,739,739,547, - 739,461,55,607,231,831,831,16,16,16, - 460,461,1103,373,215,266,265,266,260,208, - 266,319,319,461,469,260,461,266,8,460, - 455,461,275,421,62,455,208,732,469,469, - 458,316,316,1103,607,231,16,785,16,16, - 461,373,373,785,461,215,1118,6,547,522, - 1108,215,266,266,1018,461,714,461,319,785, - 464,784,729,141,583,547,547,547,547,460, - 583,405,102,422,422,422,422,422,422,422, - 422,422,741,747,752,749,756,754,761,759, - 763,762,764,324,765,728,461,8,385,529, - 461,583,928,316,779,150,421,785,8,732, - 731,729,729,736,150,597,585,596,728,547, - 823,823,785,785,461,55,1110,529,711,1019, - 461,208,785,422,461,458,603,593,592,405, - 684,684,684,684,461,885,150,150,405,930, - 683,55,405,741,54,54,885,421,422,422, - 422,422,422,422,422,422,422,422,422,422, - 422,422,422,422,422,422,422,421,421,421, - 421,421,421,421,421,421,421,421,421,422, - 405,642,386,460,461,885,533,785,62,732, - 716,421,594,594,601,458,790,231,831,231, - 727,727,373,1103,162,540,422,1118,161,1018, - 461,460,460,461,141,150,605,607,150,150, - 729,729,729,729,260,150,422,549,1048,1048, - 460,102,316,683,421,150,1102,1104,1102,150, - 316,749,749,747,747,747,754,754,754,754, - 752,752,759,756,756,762,761,763,1118,764, - 642,385,1118,422,1118,373,384,583,583,583, - 386,583,461,331,373,373,461,8,150,421, - 62,716,421,421,605,585,231,684,684,373, - 1110,422,422,461,461,461,150,607,583,583, - 583,583,461,461,461,55,422,684,745,107, - 150,461,1104,55,421,376,583,376,386,1118, - 386,405,405,403,788,405,373,373,883,642, - 784,718,728,461,461,875,150,421,421,421, - 421,583,583,260,1103,150,745,458,714,461, - 1103,790,386,150,455,150,403,365,583,150, - 642,783,61,718,1016,875,875,150,150,150, - 150,885,885,461,745,746,745,421,107,1106, - 741,714,150,150,1096,386,883,386,373,365, - 421,386,383,783,783,583,823,723,875,150, - 150,1083,745,885,422,316,1106,8,8,1098, - 421,384,885,373,150,608,727,723,723,746, - 150,316,386,150,373,149,1102,723,386,684 + 838,1,1022,935,785,356,313,937,174,6, + 983,461,1106,174,1035,1046,8,1046,3,1046, + 5,1046,1030,1046,461,462,11,356,456,78, + 696,696,745,462,696,462,935,548,830,85, + 984,8,16,462,1107,219,266,462,35,311, + 815,372,33,8,465,462,470,462,462,311, + 35,35,364,459,20,20,27,29,456,462, + 689,219,470,470,693,263,219,696,696,548, + 696,462,125,612,282,985,985,984,984,984, + 461,462,1107,364,266,35,34,35,311,976, + 35,465,465,462,470,311,462,35,8,461, + 456,462,222,422,40,456,976,689,470,470, + 459,263,263,1107,612,282,984,742,984,462, + 364,364,742,462,266,1122,6,548,523,1112, + 266,35,35,647,462,815,462,465,742,367, + 741,830,210,935,548,548,548,548,461,935, + 406,80,423,423,423,423,423,423,423,423, + 423,698,704,709,706,713,711,718,716,720, + 719,721,315,722,829,462,8,386,530,462, + 935,981,263,736,219,422,742,8,689,688, + 830,830,693,219,600,588,599,829,548,832, + 832,742,742,462,125,1114,530,812,648,462, + 976,742,423,462,459,608,596,595,406,785, + 785,785,785,462,131,219,219,406,894,784, + 125,406,698,124,124,131,422,423,423,423, + 423,423,423,423,423,423,423,423,423,423, + 423,423,423,423,423,423,422,422,422,422, + 422,422,422,422,422,422,422,422,423,406, + 604,387,461,462,131,534,742,40,689,817, + 422,597,597,606,459,655,282,985,282,828, + 828,364,1107,29,541,423,1122,28,647,462, + 461,461,462,210,219,610,612,219,219,830, + 830,830,830,311,219,423,550,1052,1052,461, + 80,263,784,422,219,1106,1108,1106,219,263, + 706,706,704,704,704,711,711,711,711,709, + 709,716,713,713,719,718,720,1122,721,604, + 386,1122,423,1122,364,385,935,935,935,387, + 935,462,322,364,364,462,8,219,422,40, + 817,422,422,610,588,282,785,785,364,1114, + 423,423,462,462,462,219,612,935,935,935, + 935,462,462,462,125,423,785,702,176,219, + 462,1108,125,422,377,935,377,387,1122,387, + 406,406,404,586,406,364,364,892,604,741, + 819,829,462,462,884,219,422,422,422,422, + 935,935,311,1107,219,702,459,815,462,1107, + 655,387,219,456,219,404,356,935,219,604, + 740,39,819,882,884,884,219,219,219,219, + 131,131,462,702,703,702,422,176,1110,698, + 815,219,219,1100,387,892,387,364,356,422, + 387,384,740,740,935,832,824,884,219,219, + 1087,702,131,423,263,1110,8,8,1102,422, + 385,131,364,219,613,828,824,824,703,219, + 263,387,219,364,218,1106,824,387,785 }; }; public final static char asb[] = Asb.asb; @@ -1821,118 +1915,119 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface Asr { public final static byte asr[] = {0, - 121,0,29,73,4,1,2,65,8,0, - 8,73,65,75,0,58,34,13,14,59, - 31,15,62,37,87,12,16,39,40,17, - 18,41,56,42,19,20,45,63,49,10, - 64,21,57,30,22,32,23,8,3,9, - 6,72,11,4,7,5,29,1,2,0, - 72,60,26,27,9,6,24,25,33,44, - 3,4,51,55,52,53,28,48,38,47, - 14,23,13,19,17,18,20,21,16,15, - 22,10,36,46,43,35,50,65,8,7, - 5,1,2,67,66,0,92,90,24,25, - 93,94,88,89,54,95,96,97,98,99, - 100,101,102,107,73,91,70,108,109,110, - 111,112,113,114,115,116,117,118,72,11, - 68,1,2,9,6,4,3,61,71,74, - 8,0,75,68,73,91,74,65,61,3, - 70,8,11,71,0,8,65,70,0,58, - 34,13,14,59,31,15,62,37,87,12, - 16,39,40,17,18,41,56,42,19,20, - 45,63,49,10,64,21,57,30,22,32, - 23,3,9,4,11,65,8,7,6,5, - 1,2,29,0,87,56,7,103,104,105, - 57,8,3,9,6,5,73,72,11,69, - 34,13,14,59,31,15,62,37,12,16, - 39,40,17,18,41,42,19,20,45,63, - 49,10,64,21,30,22,32,23,4,1, - 2,29,0,4,54,8,73,65,0,4, - 8,73,65,0,66,67,3,10,36,46, - 43,35,50,14,23,13,19,17,18,20, - 21,16,15,22,51,55,52,53,28,48, - 38,47,5,7,4,26,27,9,6,24, - 25,33,44,1,2,118,8,0,1,2, - 8,72,0,68,73,91,71,118,74,72, - 13,14,35,66,15,36,38,16,17,18, - 67,43,19,20,44,46,47,60,48,50, - 10,21,22,23,51,52,53,28,26,27, - 24,25,33,55,9,6,5,7,1,2, - 4,3,11,8,0,87,103,104,105,29, - 73,121,119,122,72,69,75,57,56,58, - 77,79,85,83,76,81,82,84,86,65, - 78,80,11,8,34,59,31,62,37,12, - 39,40,41,42,45,63,49,64,30,32, - 60,66,67,10,36,46,43,35,50,14, - 23,13,19,17,18,20,21,16,15,22, - 51,55,52,53,28,48,38,47,26,27, - 24,25,33,44,5,7,3,6,9,4, - 1,2,0,8,71,72,70,0,34,13, - 14,59,31,35,66,15,36,62,37,12, - 38,16,39,40,17,18,41,67,42,43, - 19,20,44,45,46,63,47,60,48,49, - 50,64,21,30,22,32,23,51,52,53, - 28,3,26,27,9,6,24,25,33,68, - 55,7,1,2,5,4,10,0,8,65, - 71,0,8,73,118,74,11,71,0,73, - 8,61,3,70,71,11,54,0,34,13, - 14,31,15,37,12,16,39,40,17,18, - 41,7,42,19,20,45,49,21,30,22, - 32,23,1,2,8,61,9,6,5,4, - 74,11,3,0,9,6,7,5,4,1, - 2,3,61,68,70,71,8,74,91,0, - 5,7,3,61,6,9,91,34,13,14, - 59,31,15,62,37,12,16,39,40,17, - 18,41,42,19,20,45,63,49,10,64, - 21,30,22,32,23,1,2,4,74,8, - 0,119,0,67,66,24,25,6,93,94, - 99,9,100,5,33,70,54,68,111,112, - 108,109,110,116,115,117,89,88,113,114, - 97,98,95,96,101,102,26,27,71,90, - 106,61,3,10,62,59,63,64,14,23, - 13,19,17,18,20,21,16,15,22,34, - 42,45,12,41,40,37,31,32,39,49, - 1,2,30,4,0,31,32,75,3,73, - 11,65,60,8,91,74,70,71,68,0, - 60,31,7,32,5,1,2,4,75,65, - 120,106,26,27,61,3,92,90,6,93, - 94,24,25,89,88,54,95,96,97,98, - 9,99,100,101,68,91,74,70,108,109, - 110,111,112,113,114,115,116,117,73,118, - 102,107,11,71,72,8,0,76,0,34, - 13,14,59,31,15,62,37,12,16,39, - 40,17,18,41,42,19,20,45,63,49, - 10,64,21,30,22,32,23,1,2,4, - 91,0,68,70,71,1,2,0,121,69, - 59,31,15,62,37,16,39,40,17,18, - 41,42,19,20,45,63,49,64,21,30, - 22,32,23,14,13,34,8,3,9,6, - 11,57,58,87,12,29,7,1,2,5, - 4,10,56,0,31,60,32,8,68,91, - 71,74,70,0,8,74,13,14,35,66, - 15,36,38,16,17,18,67,7,43,19, - 20,44,46,47,60,48,50,10,21,22, - 23,51,52,53,28,1,2,3,26,27, - 9,24,25,5,33,4,55,6,0,66, - 67,26,27,9,6,24,25,5,33,44, - 3,4,7,51,55,52,53,48,38,47, - 14,23,13,19,17,18,20,21,16,15, - 22,10,36,46,43,35,50,61,1,2, - 28,0,31,15,62,37,16,39,40,17, - 18,41,42,19,20,45,63,49,10,64, - 21,30,22,32,23,14,13,34,7,8, - 3,9,6,5,11,57,56,58,87,12, - 54,1,2,4,29,59,0,30,1,2, - 4,103,104,105,0,10,62,59,63,64, - 14,23,13,19,17,18,20,21,16,15, - 22,75,73,91,118,72,65,120,92,106, - 90,26,27,24,25,93,94,88,89,54, - 68,95,96,97,98,99,100,101,102,107, - 70,108,109,110,111,112,113,114,115,116, - 117,71,34,31,37,12,39,40,41,42, - 45,49,30,32,11,8,74,9,6,3, - 61,4,7,1,2,5,0,11,8,5, - 7,3,1,2,4,6,9,73,0 + 121,0,41,73,4,1,2,66,8,0, + 8,73,66,75,0,8,66,70,0,75, + 69,73,91,74,66,65,3,70,8,25, + 71,0,4,58,8,73,66,0,72,63, + 37,38,9,6,35,36,42,48,3,4, + 55,59,56,57,40,52,46,51,12,21, + 11,17,15,16,18,19,14,13,20,10, + 44,49,47,43,53,66,8,7,5,1, + 2,68,67,0,64,26,11,12,39,23, + 13,45,27,87,28,14,29,30,15,16, + 31,60,32,17,18,33,50,34,10,54, + 19,61,22,20,24,21,3,9,6,25, + 62,66,8,4,7,5,41,1,2,0, + 8,74,11,12,43,67,13,44,46,14, + 15,16,68,7,47,17,18,48,49,51, + 63,52,53,10,19,20,21,55,56,57, + 1,2,3,37,38,9,6,35,36,5, + 42,4,59,40,0,92,90,35,36,93, + 94,88,89,58,95,96,97,98,99,100, + 101,102,107,73,91,70,108,109,110,111, + 112,113,114,115,116,117,118,72,25,69, + 1,2,9,6,4,3,65,71,74,8, + 0,67,68,3,10,44,49,47,43,53, + 12,21,11,17,15,16,18,19,14,13, + 20,55,59,56,57,40,52,46,51,5, + 7,4,37,38,9,6,35,36,42,48, + 1,2,118,8,0,87,60,7,103,104, + 105,61,8,3,9,6,5,73,72,25, + 62,26,11,12,39,23,13,45,27,28, + 14,29,30,15,16,31,32,17,18,33, + 50,34,10,54,19,22,20,24,21,4, + 1,2,41,0,69,73,91,71,118,74, + 72,11,12,43,67,13,44,46,14,15, + 16,68,47,17,18,48,49,51,63,52, + 53,10,19,20,21,55,56,57,40,37, + 38,35,36,42,59,9,6,5,7,1, + 2,4,3,25,8,0,8,71,72,70, + 0,4,8,73,66,0,87,103,104,105, + 41,73,121,119,122,72,62,75,61,60, + 64,77,79,85,83,76,81,82,84,86, + 66,78,80,25,8,26,39,23,45,27, + 28,29,30,31,32,33,50,34,54,22, + 24,63,67,68,10,44,49,47,43,53, + 12,21,11,17,15,16,18,19,14,13, + 20,55,59,56,57,40,52,46,51,37, + 38,35,36,42,48,5,7,3,6,9, + 4,1,2,0,1,2,8,72,0,26, + 11,12,39,23,43,67,13,44,45,27, + 28,46,14,29,30,15,16,31,68,32, + 47,17,18,48,33,49,50,51,63,52, + 34,53,54,19,22,20,24,21,55,56, + 57,40,3,37,38,9,6,35,36,42, + 69,59,7,1,2,5,4,10,0,8, + 66,71,0,8,73,118,74,25,71,0, + 73,8,65,3,70,71,25,58,0,26, + 11,12,23,13,27,28,14,29,30,15, + 16,31,7,32,17,18,33,34,19,22, + 20,24,21,1,2,8,65,9,6,5, + 4,74,25,3,0,76,0,9,6,7, + 5,4,1,2,3,65,69,70,71,8, + 74,91,0,119,0,5,7,3,65,6, + 9,91,26,11,12,39,23,13,45,27, + 28,14,29,30,15,16,31,32,17,18, + 33,50,34,10,54,19,22,20,24,21, + 1,2,4,74,8,0,22,1,2,4, + 103,104,105,0,26,11,12,39,23,13, + 45,27,28,14,29,30,15,16,31,32, + 17,18,33,50,34,10,54,19,22,20, + 24,21,1,2,4,91,0,63,23,7, + 24,5,1,2,4,75,66,120,106,37, + 38,65,3,92,90,6,93,94,35,36, + 89,88,58,95,96,97,98,9,99,100, + 101,69,91,74,70,108,109,110,111,112, + 113,114,115,116,117,73,118,102,107,25, + 71,72,8,0,68,67,35,36,6,93, + 94,99,9,100,5,42,70,58,69,111, + 112,108,109,110,116,115,117,89,88,113, + 114,97,98,95,96,101,102,37,38,71, + 90,106,65,3,10,45,39,50,54,12, + 21,11,17,15,16,18,19,14,13,20, + 26,32,33,28,31,30,27,23,24,29, + 34,1,2,22,4,0,23,24,75,3, + 73,25,66,63,8,91,74,70,71,69, + 0,69,70,71,1,2,0,8,3,9, + 6,5,7,25,26,11,12,23,13,45, + 27,14,29,30,15,16,31,32,17,18, + 33,50,34,10,54,19,22,20,24,21, + 121,62,60,28,87,64,61,1,2,4, + 41,39,0,23,63,24,8,69,91,71, + 74,70,0,67,68,37,38,9,6,35, + 36,5,42,48,4,7,55,59,56,57, + 40,52,46,51,12,21,11,17,15,16, + 18,19,14,13,20,10,44,49,47,43, + 53,65,1,2,3,0,39,23,13,45, + 27,14,29,30,15,16,31,32,17,18, + 33,50,34,10,54,19,22,20,24,21, + 12,11,26,8,3,9,25,61,60,64, + 87,28,62,58,4,7,5,1,2,41, + 6,0,121,72,39,23,13,45,27,14, + 29,30,15,16,31,32,17,18,33,50, + 34,54,19,22,20,24,21,12,11,26, + 8,3,9,6,25,62,28,87,64,61, + 41,7,1,2,5,4,10,60,0,10, + 45,39,50,54,12,21,11,17,15,16, + 18,19,14,13,20,75,73,91,118,72, + 66,120,92,106,90,37,38,35,36,93, + 94,88,89,58,69,95,96,97,98,99, + 100,101,102,107,70,108,109,110,111,112, + 113,114,115,116,117,71,26,23,27,28, + 29,30,31,32,33,34,22,24,25,8, + 74,9,6,3,65,4,7,1,2,5, + 0,25,8,5,7,3,1,2,4,6, + 9,73,0 }; }; public final static byte asr[] = Asr.asr; @@ -1940,59 +2035,59 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface Nasb { public final static char nasb[] = {0, - 195,12,15,12,5,259,12,236,12,59, - 224,71,71,12,251,252,131,252,21,252, - 58,252,245,12,10,147,264,115,108,111, - 12,12,123,233,12,147,12,12,12,130, - 264,131,12,182,182,276,264,23,264,182, - 12,264,12,131,264,182,264,147,11,12, - 264,103,138,120,78,78,19,12,205,147, - 264,276,264,264,87,95,276,12,12,12, - 12,11,32,264,264,236,236,264,216,264, - 71,134,111,138,175,264,264,13,55,83, - 13,264,234,11,34,55,23,103,157,26, - 205,147,90,46,65,108,32,150,34,34, - 120,95,95,111,162,162,216,81,236,216, - 182,138,138,81,147,138,12,133,12,15, - 258,175,13,13,241,23,12,11,234,81, - 12,12,12,153,12,12,12,12,12,71, - 12,266,147,67,67,229,67,67,67,67, - 67,67,12,12,12,12,12,12,12,12, - 12,12,12,67,12,12,23,157,80,12, - 182,12,12,95,12,276,67,264,131,264, - 150,12,12,209,276,12,106,12,12,12, - 165,165,81,81,134,32,115,12,71,62, - 182,83,81,67,234,120,152,78,78,266, - 39,39,39,39,147,221,276,276,1,67, - 44,32,266,12,49,49,221,144,67,67, - 67,67,67,67,67,67,67,67,67,67, - 67,67,67,67,67,67,67,67,67,67, - 67,67,67,67,67,67,67,67,144,67, - 34,264,127,26,11,221,12,81,264,150, - 264,67,12,12,105,120,162,162,236,264, - 12,12,138,111,138,12,67,12,73,254, - 182,71,71,11,190,276,185,264,276,276, - 12,12,12,12,31,276,67,12,12,12, - 10,147,95,39,46,276,110,147,110,276, - 95,12,12,12,12,12,12,12,12,12, + 187,12,13,12,5,240,12,213,12,29, + 213,79,79,12,229,230,130,230,17,230, + 28,230,223,12,10,154,245,114,107,110, + 12,12,174,210,12,154,12,12,12,129, + 245,130,12,192,192,266,245,19,245,192, + 12,245,12,130,245,192,245,154,11,12, + 245,26,182,119,62,62,86,12,199,154, + 245,266,245,245,48,96,266,12,12,12, + 12,11,46,245,245,213,213,245,187,245, + 79,169,110,182,232,245,245,102,64,32, + 102,245,211,11,36,64,19,26,146,132, + 199,154,91,67,73,107,46,161,36,36, + 119,96,96,110,249,249,187,54,187,192, + 182,182,54,154,182,12,168,12,13,239, + 232,102,102,157,19,12,11,211,54,12, + 12,12,219,12,12,12,12,12,79,12, + 256,154,75,75,206,75,75,75,75,75, + 75,12,12,12,12,12,12,12,12,12, + 12,12,75,12,12,19,146,53,12,192, + 12,12,96,12,266,75,245,130,245,161, + 12,12,203,266,12,105,12,12,12,178, + 178,54,54,169,46,114,12,79,70,192, + 32,54,75,211,119,218,62,62,256,41, + 41,41,41,154,83,266,266,1,75,98, + 46,256,12,56,56,83,140,75,75,75, + 75,75,75,75,75,75,75,75,75,75, + 75,75,75,75,75,75,75,75,75,75, + 75,75,75,75,75,75,75,140,75,36, + 245,126,132,11,83,12,54,245,161,245, + 75,12,12,104,119,249,249,213,245,12, + 12,182,110,182,12,75,12,81,22,192, + 79,79,11,163,266,149,245,266,266,12, + 12,12,12,45,266,75,12,12,12,10, + 154,96,41,67,266,109,154,109,266,96, 12,12,12,12,12,12,12,12,12,12, - 99,140,12,67,12,138,12,12,12,12, - 141,12,234,136,138,138,234,167,276,67, - 65,150,67,67,185,203,162,39,39,138, - 108,67,67,11,182,182,276,162,12,12, - 12,12,23,11,147,32,67,39,264,75, - 276,147,200,32,67,97,12,12,141,12, - 141,270,270,160,12,270,138,138,12,264, - 81,264,12,11,11,264,276,144,144,144, - 144,12,12,30,23,276,101,209,12,233, - 23,39,141,276,108,276,212,264,12,276, - 99,17,64,42,12,150,264,276,276,276, - 276,221,221,23,264,170,12,144,209,201, - 12,12,276,276,264,141,12,141,138,108, - 144,141,97,17,12,12,165,264,150,276, - 276,12,101,221,67,95,201,167,167,106, - 67,12,172,138,276,274,12,42,264,170, - 276,95,141,276,138,276,110,42,141,39 + 12,12,12,12,12,12,12,12,12,195, + 136,12,75,12,182,12,12,12,12,137, + 12,211,180,182,182,211,184,266,75,73, + 161,75,75,149,197,249,41,41,182,107, + 75,75,11,192,192,266,249,12,12,12, + 12,19,11,154,46,75,41,245,88,266, + 154,171,46,75,100,12,12,137,12,137, + 260,260,247,12,260,182,182,12,245,54, + 245,12,11,11,245,266,140,140,140,140, + 12,12,44,19,266,122,203,12,210,19, + 41,137,266,107,266,252,245,12,266,195, + 15,72,51,12,161,245,266,266,266,266, + 83,83,19,245,124,12,140,203,172,12, + 12,266,266,245,137,12,137,182,107,140, + 137,100,15,12,12,178,245,161,266,266, + 12,122,83,75,96,172,184,184,105,75, + 12,143,182,266,264,12,51,245,124,266, + 96,137,266,182,266,109,51,137,41 }; }; public final static char nasb[] = Nasb.nasb; @@ -2000,34 +2095,33 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface Nasr { public final static char nasr[] = {0, - 3,13,10,9,150,148,119,147,146,5, - 2,0,108,0,153,0,159,0,180,0, - 5,44,2,3,0,168,5,167,0,2, - 133,64,0,5,10,9,2,13,4,45, - 0,123,0,172,0,4,30,0,5,2, - 9,10,137,0,2,64,0,5,1,40, - 0,188,0,72,126,40,13,2,9,10, - 5,0,186,0,4,174,0,80,0,4, - 72,0,64,136,135,0,4,190,0,13, - 2,9,10,5,85,0,111,0,158,0, - 141,0,156,0,32,94,93,63,4,5, - 10,9,2,0,63,2,9,10,4,5, - 89,0,4,45,191,0,48,39,176,4, - 40,0,40,103,0,4,39,38,0,72, - 40,48,73,4,39,0,2,44,0,61, - 0,32,93,94,4,0,40,157,0,39, - 178,22,4,0,107,0,40,55,0,139, - 0,4,175,0,4,48,71,101,46,5, - 0,2,56,0,22,4,5,89,0,94, - 93,5,57,0,171,71,48,4,0,2, - 112,0,94,93,10,9,2,63,5,57, - 0,45,4,177,0,113,4,48,71,0, - 4,96,0,71,48,4,134,0,5,10, - 9,13,3,1,0,4,48,71,81,0, - 5,101,187,0,2,5,119,115,116,117, - 13,86,0,5,101,164,0,38,5,2, - 9,10,155,4,0,4,45,39,0,4, - 45,102,0,45,4,32,0 + 3,13,10,9,149,147,119,146,145,5, + 2,0,152,0,158,0,5,44,2,3, + 0,5,101,163,0,155,0,5,1,40, + 0,64,135,134,0,5,10,9,2,13, + 4,45,0,2,133,64,0,4,188,0, + 123,0,4,66,0,5,2,9,10,136, + 0,79,0,2,64,0,4,30,0,186, + 0,66,126,40,13,2,9,10,5,0, + 184,0,4,96,0,178,0,4,172,0, + 13,2,9,10,5,82,0,170,0,113, + 0,110,0,32,94,93,63,4,5,10, + 9,2,0,63,2,9,10,4,5,89, + 0,140,0,138,0,48,39,174,4,40, + 0,167,5,166,0,66,40,48,67,4, + 39,0,4,173,0,40,156,0,22,4, + 5,89,0,2,44,0,5,101,185,0, + 61,0,94,93,5,57,0,40,105,0, + 2,114,0,4,45,189,0,109,0,4, + 39,38,0,40,55,0,104,80,48,4, + 0,2,56,0,157,0,94,93,10,9, + 2,63,5,57,0,5,10,9,13,3, + 1,0,4,48,80,83,0,32,93,94, + 4,0,2,5,119,115,116,117,13,86, + 0,4,48,80,101,46,5,0,38,5, + 2,9,10,154,4,0,39,176,22,4, + 0,45,4,175,0,4,45,39,0,4, + 45,103,0,45,4,32,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -2036,12 +2130,12 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface TerminalIndex { public final static char terminalIndex[] = {0, 113,114,2,31,13,10,79,115,9,100, - 120,66,48,52,60,68,74,75,86,87, - 102,105,107,11,12,7,8,112,93,104, - 54,106,14,47,55,61,64,67,70,73, - 76,83,84,88,89,90,94,97,98,99, - 109,110,111,19,123,77,103,46,53,95, - 1,63,91,101,121,58,78,20,122,33, + 48,52,60,68,74,75,86,87,102,105, + 107,104,54,106,120,47,64,66,70,73, + 76,83,89,98,11,12,7,8,53,112, + 93,14,55,61,63,67,84,88,90,91, + 94,97,99,101,109,110,111,19,123,77, + 103,122,95,46,1,121,58,78,20,33, 44,119,30,118,96,108,49,50,56,57, 59,69,71,72,85,92,65,17,18,6, 32,4,15,16,21,22,23,24,25,26, @@ -2055,26 +2149,26 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, - 133,138,139,0,0,137,0,0,230,236, - 136,0,146,135,0,0,145,151,0,0, - 152,182,161,162,163,164,165,166,167,154, - 168,126,169,144,170,171,0,128,134,129, - 172,0,141,140,155,180,0,0,0,0, - 0,0,0,148,175,0,158,0,205,0, - 189,202,206,0,0,0,0,0,0,0, - 0,127,174,0,0,0,0,0,0,207, - 132,178,0,0,125,188,0,0,203,213, - 160,209,210,211,0,0,149,0,0,208, - 221,177,198,0,0,212,0,0,0,241, - 242,150,181,0,191,192,193,194,195,197, - 200,0,0,215,218,0,220,0,239,0, - 240,0,0,131,142,143,147,0,0,157, - 159,0,173,0,183,184,185,186,187,190, - 0,196,0,199,204,0,216,217,0,0, - 222,225,227,229,0,233,234,235,238,0, - 130,0,153,156,0,176,0,179,0,201, - 214,219,0,223,224,226,228,0,231,232, - 237,243,244,0,0,0 + 130,135,136,0,0,134,0,0,228,234, + 133,0,143,132,0,0,142,148,0,0, + 149,180,158,159,160,161,162,163,164,151, + 165,126,166,141,167,168,0,128,131,129, + 169,0,138,137,152,177,0,0,0,0, + 0,0,0,145,172,0,155,0,203,0, + 187,200,204,0,0,127,171,0,0,0, + 0,0,0,0,0,0,0,0,205,0, + 175,125,178,0,0,186,0,0,201,211, + 157,207,208,209,0,0,146,0,0,206, + 219,0,174,179,196,0,0,210,0,0, + 0,239,240,147,189,190,191,192,193,195, + 198,0,0,213,216,0,218,0,237,0, + 238,0,0,139,140,144,0,0,154,156, + 0,170,0,181,182,183,184,185,188,0, + 194,0,197,202,0,214,215,0,0,220, + 223,225,227,0,231,232,233,236,0,0, + 150,153,0,173,0,176,0,199,212,217, + 0,221,222,224,226,0,229,230,235,241, + 242,0,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -2120,18 +2214,18 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopeLhs { public final static char scopeLhs[] = { - 46,17,17,17,17,17,17,76,84,47, - 69,117,66,52,76,75,46,17,19,3, - 7,8,164,164,161,115,46,70,117,116, - 118,125,53,47,137,130,125,76,17,17, - 130,95,58,132,79,167,164,161,116,116, - 118,179,50,55,141,18,17,17,17,17, - 17,12,111,161,76,75,75,37,137,75, - 17,17,17,17,95,19,168,164,180,93, - 100,60,80,59,155,82,118,77,142,141, - 172,137,16,161,118,102,74,21,127,127, - 57,137,137,76,46,161,65,135,44,135, - 44,167,102,115,46,46,58 + 46,17,17,17,17,17,17,70,85,47, + 77,117,74,52,70,69,46,17,19,3, + 7,8,163,163,160,115,46,78,117,116, + 118,125,53,47,136,130,125,70,17,17, + 130,95,58,132,73,166,163,160,116,116, + 118,177,50,55,140,18,17,17,17,17, + 17,12,113,160,70,69,69,37,136,69, + 17,17,17,17,95,19,167,163,178,93, + 100,60,79,59,154,81,118,71,141,140, + 170,136,16,160,118,103,68,21,127,127, + 57,136,136,70,46,160,65,134,44,134, + 44,166,103,115,46,46,58 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -2139,18 +2233,18 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopeLa { public final static byte scopeLa[] = { - 119,74,74,74,74,74,74,74,72,11, - 72,72,68,1,74,122,65,3,74,68, - 68,68,1,1,11,72,65,72,72,1, - 1,72,1,1,4,68,71,11,1,1, - 68,74,74,74,119,74,1,11,1,1, - 1,11,11,72,118,74,74,74,74,74, + 119,74,74,74,74,74,74,74,72,25, + 72,72,69,1,74,122,66,3,74,69, + 69,69,1,1,25,72,66,72,72,1, + 1,72,1,1,4,69,71,25,1,1, + 69,74,74,74,119,74,1,25,1,1, + 1,25,25,72,118,74,74,74,74,74, 118,1,74,1,74,74,74,73,4,74, - 68,68,68,68,74,3,1,1,74,74, - 3,1,118,74,1,1,1,11,74,118, - 74,5,74,1,29,70,73,74,1,1, - 6,1,29,76,75,11,11,4,4,4, - 4,3,1,65,1,1,3 + 69,69,69,69,74,3,1,1,74,74, + 3,1,118,74,1,1,1,25,74,118, + 74,5,74,1,41,70,73,74,1,1, + 6,1,41,76,75,25,25,4,4,4, + 4,3,1,66,1,1,3 }; }; public final static byte scopeLa[] = ScopeLa.scopeLa; @@ -2158,17 +2252,17 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopeStateSet { public final static char scopeStateSet[] = { - 284,213,213,213,213,213,213,296,310,284, - 308,280,308,286,296,296,284,213,213,145, - 189,189,39,39,69,280,284,308,280,280, - 280,276,286,284,34,42,276,296,213,213, - 42,78,126,4,296,46,39,69,280,280, + 284,213,213,213,213,213,213,295,309,284, + 307,280,307,286,295,295,284,213,213,145, + 189,189,39,39,69,280,284,307,280,280, + 280,276,286,284,34,42,276,295,213,213, + 42,78,126,4,295,46,39,69,280,280, 280,32,286,49,8,213,213,213,213,213, - 213,193,16,69,296,296,296,245,34,296, + 213,193,16,69,295,295,295,245,34,295, 213,213,213,213,78,213,46,39,72,78, - 80,126,74,126,142,131,280,296,1,8, - 37,34,213,69,280,11,296,214,280,280, - 86,34,34,296,284,69,21,66,102,66, + 80,126,74,126,142,131,280,295,1,8, + 37,34,213,69,280,11,295,214,280,280, + 86,34,34,295,284,69,21,66,102,66, 102,46,11,280,284,284,126 }; }; @@ -2177,69 +2271,69 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopeRhs { public final static char scopeRhs[] = {0, - 316,3,60,0,126,0,315,3,119,0, - 126,175,0,127,178,75,0,217,0,251, - 127,54,125,0,20,0,292,127,54,29, - 0,20,53,0,33,135,0,20,53,0, - 0,292,127,54,29,194,0,20,132,0, - 251,127,54,133,0,179,128,0,144,0, - 219,3,291,0,291,0,2,0,126,0, - 251,127,54,132,0,179,128,224,0,179, - 128,30,224,0,179,128,311,30,0,129, + 314,3,63,0,126,0,313,3,119,0, + 126,172,0,127,178,75,0,215,0,251, + 127,58,125,0,20,0,291,127,58,41, + 0,20,53,0,33,132,0,20,53,0, + 0,291,127,58,41,203,0,20,178,0, + 251,127,58,133,0,179,128,0,141,0, + 219,3,290,0,290,0,2,0,126,0, + 251,127,58,132,0,179,128,224,0,179, + 128,22,224,0,179,128,309,22,0,129, 187,167,128,0,128,0,187,167,128,0, - 137,128,0,171,0,307,127,171,0,127, - 171,0,223,128,0,167,242,0,139,0, - 0,0,138,0,0,0,306,127,163,250, + 134,128,0,171,0,305,127,171,0,127, + 171,0,221,128,0,167,242,0,136,0, + 0,0,135,0,0,0,304,127,163,250, 0,127,0,250,0,129,0,0,127,0, - 305,127,163,249,0,127,0,0,44,127, - 0,0,153,3,0,127,280,279,127,75, - 278,171,0,279,127,75,278,171,0,216, - 0,217,0,278,171,0,96,0,0,216, - 0,217,0,204,96,0,0,216,0,217, - 0,279,127,278,171,0,216,0,204,0, - 0,216,0,227,127,3,0,126,0,0, - 0,0,0,227,127,3,216,0,223,3, - 0,212,127,0,209,0,149,0,167,128, - 0,10,0,0,0,214,61,0,125,0, - 227,127,3,182,0,182,0,2,0,0, - 126,0,0,0,0,0,205,3,0,202, - 0,237,127,163,28,12,0,179,128,56, - 57,0,198,128,0,129,179,128,276,57, - 0,179,128,276,57,0,179,128,70,124, - 56,0,237,127,163,56,0,237,127,163, - 226,56,0,274,127,163,124,62,0,274, - 127,163,62,0,179,128,62,0,138,0, - 187,179,128,242,0,139,0,179,128,242, + 303,127,163,249,0,127,0,0,44,127, + 0,0,153,3,0,127,279,278,127,75, + 277,171,0,278,127,75,277,171,0,214, + 0,215,0,277,171,0,96,0,0,214, + 0,215,0,202,96,0,0,214,0,215, + 0,278,127,277,171,0,214,0,202,0, + 0,214,0,229,127,3,0,126,0,0, + 0,0,0,229,127,3,216,0,223,3, + 0,212,127,0,207,0,146,0,167,128, + 0,10,0,0,0,214,65,0,125,0, + 229,127,3,182,0,182,0,2,0,0, + 126,0,0,0,0,0,204,3,0,200, + 0,225,127,163,40,28,0,179,128,60, + 61,0,196,128,0,129,179,128,275,61, + 0,179,128,275,61,0,179,128,70,124, + 60,0,225,127,163,60,0,225,127,163, + 228,60,0,273,127,163,124,45,0,273, + 127,163,45,0,179,128,45,0,135,0, + 187,179,128,242,0,136,0,179,128,242, 0,187,167,128,10,0,167,128,10,0, - 93,139,0,267,127,145,0,267,127,171, - 0,162,85,0,298,161,300,301,3,82, - 0,126,174,0,300,301,3,82,0,128, - 0,126,174,0,162,3,76,196,81,0, - 126,128,0,196,81,0,108,2,134,126, - 128,0,225,3,76,0,205,168,0,33, - 172,0,168,0,178,33,172,0,225,3, - 86,0,196,155,225,3,84,0,62,174, - 0,225,3,84,0,126,174,62,174,0, - 299,127,163,0,162,0,214,78,0,30, - 174,0,162,107,159,0,30,172,0,177, - 3,0,126,152,0,219,3,0,214,61, - 264,0,162,61,0,177,3,295,67,128, - 0,126,0,0,0,0,295,67,128,0, - 2,148,126,0,0,0,0,177,3,44, - 0,150,0,126,29,167,128,0,31,150, - 0,93,139,31,150,0,220,179,128,0, - 149,31,150,0,177,3,50,0,162,3, - 50,0,162,3,68,177,54,35,0,177, - 54,35,0,20,2,134,126,0,162,3, - 68,177,54,43,0,177,54,43,0,162, - 3,68,177,54,46,0,177,54,46,0, - 162,3,68,177,54,36,0,177,54,36, + 93,136,0,266,127,145,0,266,127,171, + 0,162,85,0,296,161,298,299,3,82, + 0,126,171,0,298,299,3,82,0,128, + 0,126,171,0,162,3,76,190,81,0, + 126,128,0,190,81,0,108,2,131,126, + 128,0,226,3,76,0,204,168,0,33, + 169,0,168,0,175,33,169,0,226,3, + 86,0,190,155,226,3,84,0,62,171, + 0,226,3,84,0,126,171,62,171,0, + 297,127,163,0,162,0,214,78,0,30, + 171,0,162,107,159,0,30,169,0,177, + 3,0,126,149,0,219,3,0,214,65, + 263,0,162,65,0,177,3,293,68,128, + 0,126,0,0,0,0,293,68,128,0, + 2,145,126,0,0,0,0,177,3,48, + 0,147,0,126,41,167,128,0,31,147, + 0,93,136,31,147,0,220,179,128,0, + 146,31,147,0,177,3,53,0,162,3, + 53,0,162,3,69,177,58,43,0,177, + 58,43,0,20,2,131,126,0,162,3, + 69,177,58,47,0,177,58,47,0,162, + 3,69,177,58,49,0,177,58,49,0, + 162,3,69,177,58,44,0,177,58,44, 0,219,3,126,187,167,128,10,0,126, - 187,167,128,10,0,139,2,0,126,0, + 187,167,128,10,0,136,2,0,126,0, 219,3,125,256,167,128,10,0,256,167, - 128,10,0,138,2,0,126,0,219,3, - 136,0,219,3,140,0,162,61,140,0, - 259,0,31,0,31,142,0,166,0,137, + 128,10,0,135,2,0,126,0,219,3, + 136,0,219,3,140,0,162,65,140,0, + 258,0,31,0,31,139,0,166,0,134, 0,162,3,0 }; }; @@ -2248,38 +2342,38 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopeState { public final static char scopeState[] = {0, - 3290,3058,0,2494,1467,728,0,2466,2233,0, - 3679,4831,4824,4811,0,1539,2473,1496,2037,0, - 3489,3431,3373,3315,3257,3199,3141,3083,3025,2805, - 2747,3023,0,1371,795,0,730,0,4632,4448, - 0,4467,3682,3680,0,2900,642,0,3489,3431, - 3958,3463,3373,3315,3257,3199,3141,3083,3057,3025, - 2805,2747,3375,2986,0,3120,1250,0,3164,3106, - 0,612,0,1684,1555,1123,1032,3663,3405,577, - 2529,2956,2405,3490,0,4874,3637,3663,3352,3294, - 3405,3402,3376,2907,861,2963,4642,1253,722,2543, - 0,4786,4030,4761,4750,4736,4722,4715,3948,4711, - 4663,1425,1323,4590,1124,4430,631,4035,3710,3513, - 3283,3225,2829,624,0,3663,4671,4642,1253,4684, - 577,2972,4559,4329,2529,2907,2405,3964,2756,2543, - 0,4671,4684,0,3598,3558,3550,3472,3994,3799, - 3602,4786,4030,3240,4761,4750,3705,4736,4722,3521, - 4715,2489,3948,4711,4663,2846,1425,3852,2752,1323, - 4590,1124,1036,2593,4430,2459,631,4035,3710,788, - 3513,3283,3225,732,2829,4543,624,2779,3340,2326, - 2239,2152,928,577,2972,4559,4329,3663,2469,2446, - 2529,1371,795,2907,2405,4671,3964,4642,1253,2756, - 2543,4684,2666,4342,4307,2337,1171,2375,1043,2501, - 2418,590,2992,2930,2720,2693,2633,2557,3915,3891, - 3861,3638,3611,4285,4263,4241,4219,4197,4175,4153, - 4131,4109,4087,4042,2033,2288,1990,2250,2201,1327, - 1267,1947,2163,2114,1207,872,1904,1861,1818,1775, - 1732,1689,1646,1603,1560,1517,1474,533,2076,1128, - 1429,817,739,1387,684,993,950,1080,0,533, - 4543,2779,0,3164,3106,4532,3776,4458,3737,3681, - 4450,4376,3937,4368,3526,3489,3431,3373,3315,3257, - 3199,3141,3083,3025,2805,2747,0,3164,3106,4532, - 3776,4458,3737,3681,4450,4376,3937,4368,3526,0 + 2641,2633,0,2994,1066,732,0,3148,2578,0, + 4823,4899,4885,4861,0,1516,3670,1473,3574,0, + 3415,3361,3307,3253,3199,3145,3091,3037,2983,2751, + 2697,4703,0,2399,792,0,1432,0,622,2884, + 0,3111,3114,3097,0,2833,2720,0,3415,3361, + 3685,3395,3307,3253,3199,3145,3091,3037,3341,2983, + 2751,2697,3009,2805,0,3287,649,0,4618,4569, + 0,1191,0,1439,1431,1064,844,3602,2986,572, + 2479,4266,2355,2638,0,3678,3366,3602,2810,2807, + 2986,3392,3331,2846,856,3225,4576,4551,3171,2494, + 0,4237,3839,4798,4787,4781,4773,4762,3812,4736, + 4715,3753,3501,4711,3476,4373,1257,4309,3823,3690, + 3472,2839,2825,618,0,3602,4650,4576,4551,4672, + 572,3617,4483,4202,2479,2846,2355,3699,4459,2494, + 0,4650,4672,0,3654,3540,3456,3001,2547,2289, + 3060,4237,3839,2874,4798,4787,2251,4781,4773,915, + 4762,636,3812,4736,4715,2561,3753,1343,2443,3501, + 4711,3476,2244,2543,4373,2439,1257,4309,3823,728, + 3690,3472,2839,640,2825,4510,618,2775,2157,2070, + 1202,929,2419,572,3617,4483,4202,3602,2702,2617, + 2479,2399,792,2846,2355,4650,3699,4576,4551,4459, + 2494,4672,4433,4215,4180,1121,2255,2325,2293,2451, + 2368,586,2957,2931,2670,2643,2584,2507,3914,3890, + 3630,3577,3552,4158,4136,4114,4092,4070,4048,4026, + 4004,3982,3960,3938,1951,2206,1908,2168,2119,1261, + 1213,1865,2081,2032,1159,867,1822,1779,1736,1693, + 1650,1607,1564,1521,1478,1435,1392,529,1994,1075, + 1347,812,734,1305,679,988,945,1032,0,529, + 4510,2775,0,4618,4569,4454,3785,3726,3667,4347, + 4335,4253,4241,3447,3415,3361,3307,3253,3199,3145, + 3091,3037,2983,2751,2697,0,4618,4569,4454,3785, + 3726,3667,4347,4335,4253,4241,3447,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2287,59 +2381,59 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface InSymb { public final static char inSymb[] = {0, - 0,293,57,58,127,171,194,29,12,56, - 294,56,276,3,268,269,250,270,242,271, - 62,272,273,125,10,128,278,127,3,4, - 133,132,7,5,125,128,182,29,54,28, - 163,226,124,128,128,28,163,167,230,128, - 166,126,125,124,163,128,54,128,179,167, - 75,127,267,127,186,182,205,277,212,128, - 6,205,54,54,168,61,3,66,67,125, - 124,179,167,3,54,68,127,163,127,163, + 0,292,61,64,127,171,203,41,28,60, + 227,60,275,3,267,268,250,269,242,270, + 45,271,272,125,10,128,277,127,3,4, + 133,132,7,5,125,128,182,41,58,40, + 163,228,124,128,128,40,163,167,232,128, + 166,126,125,124,163,128,58,128,179,167, + 75,127,266,127,186,182,204,276,212,128, + 6,204,58,58,168,65,3,67,68,125, + 124,179,167,3,58,69,127,163,127,163, 70,179,179,155,127,126,125,127,179,4, - 127,163,127,179,127,167,29,127,279,73, - 212,128,61,3,70,71,167,127,127,127, - 127,61,61,187,127,127,127,237,236,127, - 128,226,129,306,128,169,224,56,29,57, - 171,308,127,127,73,187,259,187,127,274, - 124,275,251,168,50,35,43,46,36,10, - 136,3,128,44,33,5,25,24,6,9, - 27,26,140,146,148,147,150,149,152,151, - 156,154,158,60,159,254,187,279,163,290, - 128,291,167,214,159,153,127,163,249,6, - 184,251,251,212,227,228,145,229,292,29, - 10,59,237,237,179,167,127,310,224,30, - 128,4,274,70,71,127,3,217,216,3, - 54,54,54,54,128,3,177,162,127,66, - 67,167,3,126,106,120,3,61,90,92, - 25,24,94,93,6,96,95,68,54,88, - 89,9,98,97,100,99,101,117,116,115, - 114,113,112,111,110,109,108,70,107,102, - 71,280,127,71,179,3,266,127,163,127, - 155,70,223,205,3,127,71,71,68,54, - 230,230,226,187,307,125,73,286,205,71, - 128,30,311,179,212,223,127,3,177,162, - 177,177,177,177,167,219,155,136,126,125, - 10,128,61,295,3,177,29,128,29,219, - 162,147,147,146,146,146,149,149,149,149, - 148,148,151,150,150,154,152,156,162,158, - 127,299,80,78,1,162,8,86,84,82, - 81,76,83,85,79,77,56,75,219,71, - 127,127,70,70,127,212,127,70,70,129, - 71,73,70,179,128,128,227,127,68,68, - 68,68,187,256,128,167,208,3,296,168, - 153,128,179,167,73,281,119,8,73,214, - 73,3,3,3,196,3,124,162,124,178, - 305,221,292,179,179,155,227,3,3,3, - 3,126,125,167,29,177,127,127,220,5, - 29,3,73,225,168,225,301,145,76,225, - 127,195,71,127,68,127,155,162,162,162, - 162,3,3,187,155,261,264,61,180,4, - 124,126,91,315,168,155,205,155,300,127, - 3,155,281,195,8,60,59,221,127,219, - 219,126,127,3,61,162,4,155,155,127, - 70,196,161,267,162,3,230,127,221,261, - 219,214,122,298,155,316,70,127,155,71 + 127,163,127,179,127,167,41,127,278,73, + 212,128,65,3,70,71,167,127,127,127, + 127,65,65,187,127,127,127,225,127,128, + 228,129,304,128,169,224,60,41,61,171, + 306,127,127,73,187,258,187,127,273,124, + 274,251,168,53,43,47,49,44,10,136, + 3,128,48,42,5,36,35,6,9,38, + 37,140,146,148,147,150,149,152,151,156, + 154,158,63,159,254,187,278,163,289,128, + 290,167,214,159,153,127,163,249,6,184, + 251,251,212,229,230,145,231,291,41,10, + 39,225,225,179,167,127,308,224,22,128, + 4,273,70,71,127,3,217,216,3,58, + 58,58,58,128,3,177,162,127,67,68, + 167,3,126,106,120,3,65,90,92,36, + 35,94,93,6,96,95,69,58,88,89, + 9,98,97,100,99,101,117,116,115,114, + 113,112,111,110,109,108,70,107,102,71, + 279,127,71,179,3,265,127,163,127,155, + 70,223,204,3,127,71,71,69,58,232, + 232,228,187,305,125,73,285,204,71,128, + 22,309,179,212,223,127,3,177,162,177, + 177,177,177,167,219,155,136,126,125,10, + 128,65,293,3,177,41,128,41,219,162, + 147,147,146,146,146,149,149,149,149,148, + 148,151,150,150,154,152,156,162,158,127, + 297,80,78,1,162,8,86,84,82,81, + 76,83,85,79,77,60,75,219,71,127, + 127,70,70,127,212,127,70,70,129,71, + 73,70,179,128,128,229,127,69,69,69, + 69,187,256,128,167,205,3,294,168,153, + 128,179,167,73,280,119,8,73,214,73, + 3,3,3,190,3,124,162,124,178,303, + 221,291,179,179,155,229,3,3,3,3, + 126,125,167,41,177,127,127,220,5,41, + 3,73,226,168,226,299,145,76,226,127, + 189,71,127,69,127,155,162,162,162,162, + 3,3,187,155,260,263,65,180,4,124, + 126,91,313,168,155,204,155,298,127,3, + 155,280,189,8,63,39,221,127,219,219, + 126,127,3,65,162,4,155,155,127,70, + 190,161,266,162,3,232,127,221,260,219, + 214,122,296,155,314,70,127,155,71 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2477,9 +2571,6 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym "}", ";", "{", - "external_declaration_list", - "external_declaration", - "declaration", "identifier_token", "expression", "id_expression", @@ -2530,6 +2621,7 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym "declarator", "for_init_statement", "function_definition", + "declaration", "declaration_seq", "declaration_specifiers", "simple_declaration_specifiers", @@ -2604,7 +2696,7 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public final String name(int index) { return name[index]; } public final static int - ERROR_SYMBOL = 69, + ERROR_SYMBOL = 62, SCOPE_UBOUND = 116, SCOPE_SIZE = 117, MAX_NAME_LENGTH = 37; @@ -2615,20 +2707,20 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 530, + NUM_STATES = 529, NT_OFFSET = 123, - LA_STATE_OFFSET = 5916, + LA_STATE_OFFSET = 5994, MAX_LA = 2147483647, - NUM_RULES = 532, - NUM_NONTERMINALS = 196, - NUM_SYMBOLS = 319, + NUM_RULES = 528, + NUM_NONTERMINALS = 194, + NUM_SYMBOLS = 317, SEGMENT_SIZE = 8192, - START_STATE = 3526, + START_STATE = 3447, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 121, EOLT_SYMBOL = 121, - ACCEPT_ACTION = 5016, - ERROR_ACTION = 5384; + ACCEPT_ACTION = 5098, + ERROR_ACTION = 5466; 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 4f8e54b2e6c..4f08a353b74 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,97 +15,97 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp; public interface CPPParsersym { public final static int - TK_asm = 58, - TK_auto = 34, - TK_bool = 13, + TK_asm = 64, + TK_auto = 26, + TK_bool = 11, TK_break = 77, TK_case = 78, TK_catch = 119, - TK_char = 14, - TK_class = 59, - TK_const = 31, - TK_const_cast = 35, + TK_char = 12, + TK_class = 39, + TK_const = 23, + TK_const_cast = 43, TK_continue = 79, TK_default = 80, - TK_delete = 66, + TK_delete = 67, TK_do = 81, - TK_double = 15, - TK_dynamic_cast = 36, + TK_double = 13, + TK_dynamic_cast = 44, TK_else = 122, - TK_enum = 62, - TK_explicit = 37, + TK_enum = 45, + TK_explicit = 27, TK_export = 87, - TK_extern = 12, - TK_false = 38, - TK_float = 16, + TK_extern = 28, + TK_false = 46, + TK_float = 14, TK_for = 82, - TK_friend = 39, + TK_friend = 29, TK_goto = 83, TK_if = 84, - TK_inline = 40, - TK_int = 17, - TK_long = 18, - TK_mutable = 41, - TK_namespace = 56, - TK_new = 67, + TK_inline = 30, + TK_int = 15, + TK_long = 16, + TK_mutable = 31, + TK_namespace = 60, + TK_new = 68, TK_operator = 7, TK_private = 103, TK_protected = 104, TK_public = 105, - TK_register = 42, - TK_reinterpret_cast = 43, + TK_register = 32, + TK_reinterpret_cast = 47, TK_return = 85, - TK_short = 19, - TK_signed = 20, - TK_sizeof = 44, - TK_static = 45, - TK_static_cast = 46, - TK_struct = 63, + TK_short = 17, + TK_signed = 18, + TK_sizeof = 48, + TK_static = 33, + TK_static_cast = 49, + TK_struct = 50, TK_switch = 86, - TK_template = 29, - TK_this = 47, - TK_throw = 60, + TK_template = 41, + TK_this = 51, + TK_throw = 63, TK_try = 75, - TK_true = 48, - TK_typedef = 49, - TK_typeid = 50, + TK_true = 52, + TK_typedef = 34, + TK_typeid = 53, TK_typename = 10, - TK_union = 64, - TK_unsigned = 21, - TK_using = 57, - TK_virtual = 30, - TK_void = 22, - TK_volatile = 32, - TK_wchar_t = 23, + TK_union = 54, + TK_unsigned = 19, + TK_using = 61, + TK_virtual = 22, + TK_void = 20, + TK_volatile = 24, + TK_wchar_t = 21, TK_while = 76, - TK_integer = 51, - TK_floating = 52, - TK_charconst = 53, - TK_stringlit = 28, + TK_integer = 55, + TK_floating = 56, + TK_charconst = 57, + TK_stringlit = 40, TK_identifier = 1, TK_Completion = 2, TK_EndOfCompletion = 8, TK_Invalid = 123, - TK_LeftBracket = 61, + TK_LeftBracket = 65, TK_LeftParen = 3, TK_Dot = 120, TK_DotStar = 92, TK_Arrow = 106, TK_ArrowStar = 90, - TK_PlusPlus = 26, - TK_MinusMinus = 27, + TK_PlusPlus = 37, + TK_MinusMinus = 38, TK_And = 9, TK_Star = 6, - TK_Plus = 24, - TK_Minus = 25, + TK_Plus = 35, + TK_Minus = 36, TK_Tilde = 5, - TK_Bang = 33, + TK_Bang = 42, TK_Slash = 93, TK_Percent = 94, TK_RightShift = 88, TK_LeftShift = 89, - TK_LT = 54, - TK_GT = 68, + TK_LT = 58, + TK_GT = 69, TK_LE = 95, TK_GE = 96, TK_EQ = 97, @@ -133,10 +133,10 @@ public interface CPPParsersym { TK_RightBracket = 118, TK_RightParen = 74, TK_RightBrace = 72, - TK_SemiColon = 11, - TK_LeftBrace = 65, - TK_ERROR_TOKEN = 69, - TK_0 = 55, + TK_SemiColon = 25, + TK_LeftBrace = 66, + TK_ERROR_TOKEN = 62, + TK_0 = 59, TK_EOF_TOKEN = 121; public final static String orderedTerminalSymbols[] = { @@ -151,8 +151,6 @@ public interface CPPParsersym { "EndOfCompletion", "And", "typename", - "SemiColon", - "extern", "bool", "char", "double", @@ -164,33 +162,39 @@ public interface CPPParsersym { "unsigned", "void", "wchar_t", - "Plus", - "Minus", - "PlusPlus", - "MinusMinus", - "stringlit", - "template", "virtual", "const", "volatile", - "Bang", + "SemiColon", "auto", - "const_cast", - "dynamic_cast", "explicit", - "false", + "extern", "friend", "inline", "mutable", "register", + "static", + "typedef", + "Plus", + "Minus", + "PlusPlus", + "MinusMinus", + "class", + "stringlit", + "template", + "Bang", + "const_cast", + "dynamic_cast", + "enum", + "false", "reinterpret_cast", "sizeof", - "static", "static_cast", + "struct", "this", "true", - "typedef", "typeid", + "union", "integer", "floating", "charconst", @@ -198,18 +202,14 @@ public interface CPPParsersym { "0", "namespace", "using", - "asm", - "class", + "ERROR_TOKEN", "throw", + "asm", "LeftBracket", - "enum", - "struct", - "union", "LeftBrace", "delete", "new", "GT", - "ERROR_TOKEN", "Assign", "Comma", "RightBrace", 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 1e9754fb5c0..995dd396130 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 @@ -269,1997 +269,1990 @@ public CPPSizeofExpressionParser(String[] mapFrom) { // constructor } // - // Rule 13: translation_unit ::= external_declaration_list + // Rule 13: translation_unit ::= declaration_seq_opt // case 13: { action.builder. consumeTranslationUnit(); break; } // - // Rule 14: translation_unit ::= $Empty + // Rule 16: literal ::= integer // - case 14: { action.builder. - consumeTranslationUnit(); break; + case 16: { action.builder. + consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; } // - // Rule 18: external_declaration ::= ERROR_TOKEN + // Rule 17: literal ::= 0 + // + case 17: { action.builder. + consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; + } + + // + // Rule 18: literal ::= floating // case 18: { action.builder. - consumeDeclarationProblem(); break; - } - - // - // Rule 21: literal ::= integer - // - case 21: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; - } - - // - // Rule 22: literal ::= 0 - // - case 22: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; - } - - // - // Rule 23: literal ::= floating - // - case 23: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_float_constant); break; } // - // Rule 24: literal ::= charconst + // Rule 19: literal ::= charconst // - case 24: { action.builder. + case 19: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_char_constant); break; } // - // Rule 25: literal ::= stringlit + // Rule 20: literal ::= stringlit // - case 25: { action.builder. + case 20: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_string_literal); break; } // - // Rule 26: literal ::= true + // Rule 21: literal ::= true // - case 26: { action.builder. + case 21: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_true); break; } // - // Rule 27: literal ::= false + // Rule 22: literal ::= false // - case 27: { action.builder. + case 22: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_false); break; } // - // Rule 28: literal ::= this + // Rule 23: literal ::= this // - case 28: { action.builder. + case 23: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_this); break; } // - // Rule 30: primary_expression ::= ( expression ) + // Rule 25: primary_expression ::= ( expression ) // - case 30: { action.builder. + case 25: { action.builder. consumeExpressionBracketed(); break; } // - // Rule 32: id_expression ::= qualified_or_unqualified_name + // Rule 27: id_expression ::= qualified_or_unqualified_name // - case 32: { action.builder. + case 27: { action.builder. consumeExpressionName(); break; } // - // Rule 39: unqualified_id_name ::= ~ identifier_token + // Rule 34: unqualified_id_name ::= ~ identifier_token // - case 39: { action.builder. + case 34: { action.builder. consumeDestructorName(); break; } // - // Rule 40: unqualified_id_name ::= ~ template_id_name + // Rule 35: unqualified_id_name ::= ~ template_id_name // - case 40: { action.builder. + case 35: { action.builder. consumeDestructorNameTemplateId(); break; } // - // Rule 41: identifier_name ::= identifier_token + // Rule 36: identifier_name ::= identifier_token // - case 41: { action.builder. + case 36: { action.builder. consumeIdentifierName(); break; } // - // Rule 42: template_opt ::= template + // Rule 37: template_opt ::= template // - case 42: { action.builder. + case 37: { action.builder. consumePlaceHolder(); break; } // - // Rule 43: template_opt ::= $Empty + // Rule 38: template_opt ::= $Empty // - case 43: { action.builder. + case 38: { action.builder. consumeEmpty(); break; } // - // Rule 44: dcolon_opt ::= :: + // Rule 39: dcolon_opt ::= :: // - case 44: { action.builder. + case 39: { action.builder. consumeToken(); break; } // - // Rule 45: dcolon_opt ::= $Empty + // Rule 40: dcolon_opt ::= $Empty // - case 45: { action.builder. + case 40: { action.builder. consumeEmpty(); break; } // - // Rule 46: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name + // Rule 41: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name // - case 46: { action.builder. + case 41: { action.builder. consumeQualifiedId(true); break; } // - // Rule 47: qualified_id_name ::= :: unqualified_id_name + // Rule 42: qualified_id_name ::= :: unqualified_id_name // - case 47: { action.builder. + case 42: { action.builder. consumeGlobalQualifiedId(); break; } // - // Rule 48: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template + // Rule 43: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template // - case 48: { action.builder. + case 43: { action.builder. consumeNestedNameSpecifier(true); break; } // - // Rule 49: nested_name_specifier ::= class_or_namespace_name :: + // Rule 44: nested_name_specifier ::= class_or_namespace_name :: // - case 49: { action.builder. + case 44: { action.builder. consumeNestedNameSpecifier(false); break; } // - // Rule 50: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template + // Rule 45: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template // - case 50: { action.builder. + case 45: { action.builder. consumeNestedNameSpecifier(true); break; } // - // Rule 51: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: + // Rule 46: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: // - case 51: { action.builder. + case 46: { action.builder. consumeNestedNameSpecifier(false); break; } // - // Rule 52: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name + // Rule 47: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name // - case 52: { action.builder. + case 47: { action.builder. consumeNameWithTemplateKeyword(); break; } // - // Rule 54: nested_name_specifier_opt ::= $Empty + // Rule 49: nested_name_specifier_opt ::= $Empty // - case 54: { action.builder. + case 49: { action.builder. consumeNestedNameSpecifierEmpty(); break; } // - // Rule 57: postfix_expression ::= postfix_expression [ expression ] + // Rule 52: postfix_expression ::= postfix_expression [ expression ] // - case 57: { action.builder. + case 52: { action.builder. consumeExpressionArraySubscript(); break; } // - // Rule 58: postfix_expression ::= postfix_expression ( expression_list_opt ) + // Rule 53: postfix_expression ::= postfix_expression ( expression_list_opt ) // - case 58: { action.builder. + case 53: { action.builder. consumeExpressionFunctionCall(); break; } // - // Rule 59: postfix_expression ::= simple_type_specifier ( expression_list_opt ) + // Rule 54: postfix_expression ::= simple_type_specifier ( expression_list_opt ) // - case 59: { action.builder. + case 54: { action.builder. consumeExpressionSimpleTypeConstructor(); break; } // - // Rule 60: postfix_expression ::= typename dcolon_opt nested_name_specifier identifier_name ( expression_list_opt ) + // Rule 55: postfix_expression ::= typename dcolon_opt nested_name_specifier identifier_name ( expression_list_opt ) // - case 60: { action.builder. + case 55: { action.builder. consumeExpressionTypeName(); break; } // - // Rule 61: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) + // Rule 56: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) // - case 61: { action.builder. + case 56: { action.builder. consumeExpressionTypeName(); break; } // - // Rule 62: postfix_expression ::= postfix_expression . qualified_or_unqualified_name + // Rule 57: postfix_expression ::= postfix_expression . qualified_or_unqualified_name // - case 62: { action.builder. + case 57: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 63: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name + // Rule 58: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name // - case 63: { action.builder. + case 58: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 64: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name + // Rule 59: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name // - case 64: { action.builder. + case 59: { action.builder. consumeExpressionFieldReference(false, true); break; } // - // Rule 65: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name + // Rule 60: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name // - case 65: { action.builder. + case 60: { action.builder. consumeExpressionFieldReference(true, true); break; } // - // Rule 66: postfix_expression ::= postfix_expression . pseudo_destructor_name + // Rule 61: postfix_expression ::= postfix_expression . pseudo_destructor_name // - case 66: { action.builder. + case 61: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 67: postfix_expression ::= postfix_expression -> pseudo_destructor_name + // Rule 62: postfix_expression ::= postfix_expression -> pseudo_destructor_name // - case 67: { action.builder. + case 62: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 68: postfix_expression ::= postfix_expression ++ + // Rule 63: postfix_expression ::= postfix_expression ++ // - case 68: { action.builder. + case 63: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; } // - // Rule 69: postfix_expression ::= postfix_expression -- + // Rule 64: postfix_expression ::= postfix_expression -- // - case 69: { action.builder. + case 64: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; } // - // Rule 70: postfix_expression ::= dynamic_cast < type_id > ( expression ) + // Rule 65: postfix_expression ::= dynamic_cast < type_id > ( expression ) // - case 70: { action.builder. + case 65: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); break; } // - // Rule 71: postfix_expression ::= static_cast < type_id > ( expression ) + // Rule 66: postfix_expression ::= static_cast < type_id > ( expression ) // - case 71: { action.builder. + case 66: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_static_cast); break; } // - // Rule 72: postfix_expression ::= reinterpret_cast < type_id > ( expression ) + // Rule 67: postfix_expression ::= reinterpret_cast < type_id > ( expression ) // - case 72: { action.builder. + case 67: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); break; } // - // Rule 73: postfix_expression ::= const_cast < type_id > ( expression ) + // Rule 68: postfix_expression ::= const_cast < type_id > ( expression ) // - case 73: { action.builder. + case 68: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_const_cast); break; } // - // Rule 74: postfix_expression ::= typeid ( expression ) + // Rule 69: postfix_expression ::= typeid ( expression ) // - case 74: { action.builder. + case 69: { action.builder. consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break; } // - // Rule 75: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name + // Rule 70: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name // - case 75: { action.builder. + case 70: { action.builder. consumePsudoDestructorName(true); break; } // - // Rule 76: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name + // Rule 71: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name // - case 76: { action.builder. + case 71: { action.builder. consumePsudoDestructorName(true); break; } // - // Rule 77: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name + // Rule 72: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name // - case 77: { action.builder. + case 72: { action.builder. consumePsudoDestructorName(false); break; } // - // Rule 78: destructor_type_name ::= ~ identifier_token + // Rule 73: destructor_type_name ::= ~ identifier_token // - case 78: { action.builder. + case 73: { action.builder. consumeDestructorName(); break; } // - // Rule 79: destructor_type_name ::= ~ template_id_name + // Rule 74: destructor_type_name ::= ~ template_id_name // - case 79: { action.builder. + case 74: { action.builder. consumeDestructorNameTemplateId(); break; } // - // Rule 83: unary_expression ::= ++ cast_expression + // Rule 78: unary_expression ::= ++ cast_expression // - case 83: { action.builder. + case 78: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; } // - // Rule 84: unary_expression ::= -- cast_expression + // Rule 79: unary_expression ::= -- cast_expression // - case 84: { action.builder. + case 79: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; } // - // Rule 85: unary_expression ::= & cast_expression + // Rule 80: unary_expression ::= & cast_expression // - case 85: { action.builder. + case 80: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; } // - // Rule 86: unary_expression ::= * cast_expression + // Rule 81: unary_expression ::= * cast_expression // - case 86: { action.builder. + case 81: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; } // - // Rule 87: unary_expression ::= + cast_expression + // Rule 82: unary_expression ::= + cast_expression // - case 87: { action.builder. + case 82: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; } // - // Rule 88: unary_expression ::= - cast_expression + // Rule 83: unary_expression ::= - cast_expression // - case 88: { action.builder. + case 83: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; } // - // Rule 89: unary_expression ::= ~ cast_expression + // Rule 84: unary_expression ::= ~ cast_expression // - case 89: { action.builder. + case 84: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; } // - // Rule 90: unary_expression ::= ! cast_expression + // Rule 85: unary_expression ::= ! cast_expression // - case 90: { action.builder. + case 85: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; } // - // Rule 91: unary_expression ::= sizeof unary_expression + // Rule 86: unary_expression ::= sizeof unary_expression // - case 91: { action.builder. + case 86: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; } // - // Rule 92: new_expression ::= dcolon_opt new new_placement_opt new_type_id new_array_expressions_opt new_initializer_opt + // Rule 87: new_expression ::= dcolon_opt new new_placement_opt new_type_id new_array_expressions_opt new_initializer_opt // - case 92: { action.builder. + case 87: { action.builder. consumeExpressionNew(true); break; } // - // Rule 93: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_array_expressions_opt new_initializer_opt + // Rule 88: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_array_expressions_opt new_initializer_opt // - case 93: { action.builder. + case 88: { action.builder. consumeExpressionNew(false); break; } // - // Rule 95: new_placement_opt ::= $Empty + // Rule 90: new_placement_opt ::= $Empty // - case 95: { action.builder. + case 90: { action.builder. consumeEmpty(); break; } // - // Rule 96: new_type_id ::= type_specifier_seq + // Rule 91: new_type_id ::= type_specifier_seq // - case 96: { action.builder. + case 91: { action.builder. consumeTypeId(false); break; } // - // Rule 97: new_type_id ::= type_specifier_seq new_declarator + // Rule 92: new_type_id ::= type_specifier_seq new_declarator // - case 97: { action.builder. + case 92: { action.builder. consumeTypeId(true); break; } // - // Rule 98: new_declarator ::= new_pointer_operators + // Rule 93: new_declarator ::= new_pointer_operators // - case 98: { action.builder. + case 93: { action.builder. consumeNewDeclarator(); break; } // - // Rule 107: new_initializer_opt ::= $Empty + // Rule 102: new_initializer_opt ::= $Empty // - case 107: { action.builder. + case 102: { action.builder. consumeEmpty(); break; } // - // Rule 108: delete_expression ::= dcolon_opt delete cast_expression + // Rule 103: delete_expression ::= dcolon_opt delete cast_expression // - case 108: { action.builder. + case 103: { action.builder. consumeExpressionDelete(false); break; } // - // Rule 109: delete_expression ::= dcolon_opt delete [ ] cast_expression + // Rule 104: delete_expression ::= dcolon_opt delete [ ] cast_expression // - case 109: { action.builder. + case 104: { action.builder. consumeExpressionDelete(true); break; } // - // Rule 111: cast_expression ::= ( type_id ) cast_expression + // Rule 106: cast_expression ::= ( type_id ) cast_expression // - case 111: { action.builder. + case 106: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_cast); break; } // - // Rule 113: pm_expression ::= pm_expression .* cast_expression + // Rule 108: pm_expression ::= pm_expression .* cast_expression // - case 113: { action.builder. + case 108: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot); break; } // - // Rule 114: pm_expression ::= pm_expression ->* cast_expression + // Rule 109: pm_expression ::= pm_expression ->* cast_expression // - case 114: { action.builder. + case 109: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow); break; } // - // Rule 116: multiplicative_expression ::= multiplicative_expression * pm_expression + // Rule 111: multiplicative_expression ::= multiplicative_expression * pm_expression // - case 116: { action.builder. + case 111: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply); break; } // - // Rule 117: multiplicative_expression ::= multiplicative_expression / pm_expression + // Rule 112: multiplicative_expression ::= multiplicative_expression / pm_expression // - case 117: { action.builder. + case 112: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide); break; } // - // Rule 118: multiplicative_expression ::= multiplicative_expression % pm_expression + // Rule 113: multiplicative_expression ::= multiplicative_expression % pm_expression // - case 118: { action.builder. + case 113: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo); break; } // - // Rule 120: additive_expression ::= additive_expression + multiplicative_expression + // Rule 115: additive_expression ::= additive_expression + multiplicative_expression // - case 120: { action.builder. + case 115: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus); break; } // - // Rule 121: additive_expression ::= additive_expression - multiplicative_expression + // Rule 116: additive_expression ::= additive_expression - multiplicative_expression // - case 121: { action.builder. + case 116: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus); break; } // - // Rule 123: shift_expression ::= shift_expression << additive_expression + // Rule 118: shift_expression ::= shift_expression << additive_expression // - case 123: { action.builder. + case 118: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft); break; } // - // Rule 124: shift_expression ::= shift_expression >> additive_expression + // Rule 119: shift_expression ::= shift_expression >> additive_expression // - case 124: { action.builder. + case 119: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight); break; } // - // Rule 126: relational_expression ::= relational_expression < shift_expression + // Rule 121: relational_expression ::= relational_expression < shift_expression // - case 126: { action.builder. + case 121: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; } // - // Rule 127: relational_expression ::= relational_expression > shift_expression + // Rule 122: relational_expression ::= relational_expression > shift_expression // - case 127: { action.builder. + case 122: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; } // - // Rule 128: relational_expression ::= relational_expression <= shift_expression + // Rule 123: relational_expression ::= relational_expression <= shift_expression // - case 128: { action.builder. + case 123: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; } // - // Rule 129: relational_expression ::= relational_expression >= shift_expression + // Rule 124: relational_expression ::= relational_expression >= shift_expression // - case 129: { action.builder. + case 124: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; } // - // Rule 131: equality_expression ::= equality_expression == relational_expression + // Rule 126: equality_expression ::= equality_expression == relational_expression // - case 131: { action.builder. + case 126: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; } // - // Rule 132: equality_expression ::= equality_expression != relational_expression + // Rule 127: equality_expression ::= equality_expression != relational_expression // - case 132: { action.builder. + case 127: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; } // - // Rule 134: and_expression ::= and_expression & equality_expression + // Rule 129: and_expression ::= and_expression & equality_expression // - case 134: { action.builder. + case 129: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; } // - // Rule 136: exclusive_or_expression ::= exclusive_or_expression ^ and_expression + // Rule 131: exclusive_or_expression ::= exclusive_or_expression ^ and_expression // - case 136: { action.builder. + case 131: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; } // - // Rule 138: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression + // Rule 133: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression // - case 138: { action.builder. + case 133: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; } // - // Rule 140: logical_and_expression ::= logical_and_expression && inclusive_or_expression + // Rule 135: logical_and_expression ::= logical_and_expression && inclusive_or_expression // - case 140: { action.builder. + case 135: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; } // - // Rule 142: logical_or_expression ::= logical_or_expression || logical_and_expression + // Rule 137: logical_or_expression ::= logical_or_expression || logical_and_expression // - case 142: { action.builder. + case 137: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; } // - // Rule 144: conditional_expression ::= logical_or_expression ? expression : assignment_expression + // Rule 139: conditional_expression ::= logical_or_expression ? expression : assignment_expression // - case 144: { action.builder. + case 139: { action.builder. consumeExpressionConditional(); break; } // - // Rule 145: throw_expression ::= throw + // Rule 140: throw_expression ::= throw // - case 145: { action.builder. + case 140: { action.builder. consumeExpressionThrow(false); break; } // - // Rule 146: throw_expression ::= throw assignment_expression + // Rule 141: throw_expression ::= throw assignment_expression // - case 146: { action.builder. + case 141: { action.builder. consumeExpressionThrow(true); break; } // - // Rule 149: assignment_expression ::= logical_or_expression = assignment_expression + // Rule 144: assignment_expression ::= logical_or_expression = assignment_expression // - case 149: { action.builder. + case 144: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; } // - // Rule 150: assignment_expression ::= logical_or_expression *= assignment_expression + // Rule 145: assignment_expression ::= logical_or_expression *= assignment_expression // - case 150: { action.builder. + case 145: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 151: assignment_expression ::= logical_or_expression /= assignment_expression + // Rule 146: assignment_expression ::= logical_or_expression /= assignment_expression // - case 151: { action.builder. + case 146: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; } // - // Rule 152: assignment_expression ::= logical_or_expression %= assignment_expression + // Rule 147: assignment_expression ::= logical_or_expression %= assignment_expression // - case 152: { action.builder. + case 147: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; } // - // Rule 153: assignment_expression ::= logical_or_expression += assignment_expression + // Rule 148: assignment_expression ::= logical_or_expression += assignment_expression // - case 153: { action.builder. + case 148: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; } // - // Rule 154: assignment_expression ::= logical_or_expression -= assignment_expression + // Rule 149: assignment_expression ::= logical_or_expression -= assignment_expression // - case 154: { action.builder. + case 149: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; } // - // Rule 155: assignment_expression ::= logical_or_expression >>= assignment_expression + // Rule 150: assignment_expression ::= logical_or_expression >>= assignment_expression // - case 155: { action.builder. + case 150: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 156: assignment_expression ::= logical_or_expression <<= assignment_expression + // Rule 151: assignment_expression ::= logical_or_expression <<= assignment_expression // - case 156: { action.builder. + case 151: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 157: assignment_expression ::= logical_or_expression &= assignment_expression + // Rule 152: assignment_expression ::= logical_or_expression &= assignment_expression // - case 157: { action.builder. + case 152: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 158: assignment_expression ::= logical_or_expression ^= assignment_expression + // Rule 153: assignment_expression ::= logical_or_expression ^= assignment_expression // - case 158: { action.builder. + case 153: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 159: assignment_expression ::= logical_or_expression |= assignment_expression + // Rule 154: assignment_expression ::= logical_or_expression |= assignment_expression // - case 159: { action.builder. + case 154: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 161: expression_list ::= expression_list_actual + // Rule 156: expression_list ::= expression_list_actual // - case 161: { action.builder. + case 156: { action.builder. consumeExpressionList(); break; } // - // Rule 165: expression_list_opt ::= $Empty + // Rule 160: expression_list_opt ::= $Empty + // + case 160: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 162: expression_opt ::= $Empty + // + case 162: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 165: constant_expression_opt ::= $Empty // case 165: { action.builder. consumeEmpty(); break; } // - // Rule 167: expression_opt ::= $Empty + // Rule 174: statement ::= ERROR_TOKEN // - case 167: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 170: constant_expression_opt ::= $Empty - // - case 170: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 179: statement ::= ERROR_TOKEN - // - case 179: { action.builder. + case 174: { action.builder. consumeStatementProblem(); break; } // - // Rule 180: labeled_statement ::= identifier : statement + // Rule 175: labeled_statement ::= identifier : statement // - case 180: { action.builder. + case 175: { action.builder. consumeStatementLabeled(); break; } // - // Rule 181: labeled_statement ::= case constant_expression : statement + // Rule 176: labeled_statement ::= case constant_expression : statement // - case 181: { action.builder. + case 176: { action.builder. consumeStatementCase(); break; } // - // Rule 182: labeled_statement ::= default : statement + // Rule 177: labeled_statement ::= default : statement // - case 182: { action.builder. + case 177: { action.builder. consumeStatementDefault(); break; } // - // Rule 183: expression_statement ::= expression ; + // Rule 178: expression_statement ::= expression ; // - case 183: { action.builder. + case 178: { action.builder. consumeStatementExpression(); break; } // - // Rule 184: expression_statement ::= ; + // Rule 179: expression_statement ::= ; // - case 184: { action.builder. + case 179: { action.builder. consumeStatementNull(); break; } // - // Rule 185: compound_statement ::= { statement_seq } + // Rule 180: compound_statement ::= { statement_seq } // - case 185: { action.builder. + case 180: { action.builder. consumeStatementCompoundStatement(true); break; } // - // Rule 186: compound_statement ::= { } + // Rule 181: compound_statement ::= { } // - case 186: { action.builder. + case 181: { action.builder. consumeStatementCompoundStatement(false); break; } // - // Rule 189: selection_statement ::= if ( condition ) statement + // Rule 184: selection_statement ::= if ( condition ) statement // - case 189: { action.builder. + case 184: { action.builder. consumeStatementIf(false); break; } // - // Rule 190: selection_statement ::= if ( condition ) statement else statement + // Rule 185: selection_statement ::= if ( condition ) statement else statement // - case 190: { action.builder. + case 185: { action.builder. consumeStatementIf(true); break; } // - // Rule 191: selection_statement ::= switch ( condition ) statement + // Rule 186: selection_statement ::= switch ( condition ) statement // - case 191: { action.builder. + case 186: { action.builder. consumeStatementSwitch(); break; } // - // Rule 193: condition ::= type_specifier_seq declarator = assignment_expression + // Rule 188: condition ::= type_specifier_seq declarator = assignment_expression // - case 193: { action.builder. + case 188: { action.builder. consumeConditionDeclaration(); break; } // - // Rule 195: condition_opt ::= $Empty + // Rule 190: condition_opt ::= $Empty // - case 195: { action.builder. + case 190: { action.builder. consumeEmpty(); break; } // - // Rule 196: iteration_statement ::= while ( condition ) statement + // Rule 191: iteration_statement ::= while ( condition ) statement // - case 196: { action.builder. + case 191: { action.builder. consumeStatementWhileLoop(); break; } // - // Rule 197: iteration_statement ::= do statement while ( expression ) ; + // Rule 192: iteration_statement ::= do statement while ( expression ) ; // - case 197: { action.builder. + case 192: { action.builder. consumeStatementDoLoop(); break; } // - // Rule 198: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement + // Rule 193: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement // - case 198: { action.builder. + case 193: { action.builder. consumeStatementForLoop(); break; } // - // Rule 200: for_init_statement ::= simple_declaration_with_declspec + // Rule 195: for_init_statement ::= simple_declaration_with_declspec // - case 200: { action.builder. + case 195: { action.builder. consumeStatementDeclaration(); break; } // - // Rule 201: jump_statement ::= break ; + // Rule 196: jump_statement ::= break ; // - case 201: { action.builder. + case 196: { action.builder. consumeStatementBreak(); break; } // - // Rule 202: jump_statement ::= continue ; + // Rule 197: jump_statement ::= continue ; // - case 202: { action.builder. + case 197: { action.builder. consumeStatementContinue(); break; } // - // Rule 203: jump_statement ::= return expression ; + // Rule 198: jump_statement ::= return expression ; // - case 203: { action.builder. + case 198: { action.builder. consumeStatementReturn(true); break; } // - // Rule 204: jump_statement ::= return ; + // Rule 199: jump_statement ::= return ; // - case 204: { action.builder. + case 199: { action.builder. consumeStatementReturn(false); break; } // - // Rule 205: jump_statement ::= goto identifier_token ; + // Rule 200: jump_statement ::= goto identifier_token ; // - case 205: { action.builder. + case 200: { action.builder. consumeStatementGoto(); break; } // - // Rule 206: declaration_statement ::= block_declaration + // Rule 201: declaration_statement ::= block_declaration // - case 206: { action.builder. + case 201: { action.builder. consumeStatementDeclarationWithDisambiguation(); break; } // - // Rule 207: declaration_statement ::= function_definition + // Rule 202: declaration_statement ::= function_definition // - case 207: { action.builder. + case 202: { action.builder. consumeStatementDeclaration(); break; } // - // Rule 224: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; + // Rule 210: declaration ::= ERROR_TOKEN // - case 224: { action.builder. + case 210: { action.builder. + consumeDeclarationProblem(); break; + } + + // + // Rule 220: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; + // + case 220: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 225: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; + // Rule 221: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; // - case 225: { action.builder. + case 221: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 226: declaration_specifiers ::= simple_declaration_specifiers + // Rule 222: declaration_specifiers ::= simple_declaration_specifiers // - case 226: { action.builder. + case 222: { action.builder. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 227: declaration_specifiers ::= class_declaration_specifiers + // Rule 223: declaration_specifiers ::= class_declaration_specifiers // - case 227: { action.builder. + case 223: { action.builder. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 228: declaration_specifiers ::= elaborated_declaration_specifiers + // Rule 224: declaration_specifiers ::= elaborated_declaration_specifiers // - case 228: { action.builder. + case 224: { action.builder. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 229: declaration_specifiers ::= enum_declaration_specifiers + // Rule 225: declaration_specifiers ::= enum_declaration_specifiers // - case 229: { action.builder. + case 225: { action.builder. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 230: declaration_specifiers ::= type_name_declaration_specifiers + // Rule 226: declaration_specifiers ::= type_name_declaration_specifiers // - case 230: { action.builder. + case 226: { action.builder. consumeDeclarationSpecifiersTypeName(); break; } // - // Rule 232: declaration_specifiers_opt ::= $Empty + // Rule 228: declaration_specifiers_opt ::= $Empty // - case 232: { action.builder. + case 228: { action.builder. consumeEmpty(); break; } // - // Rule 236: no_type_declaration_specifier ::= friend + // Rule 232: no_type_declaration_specifier ::= friend // - case 236: { action.builder. + case 232: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 237: no_type_declaration_specifier ::= typedef + // Rule 233: no_type_declaration_specifier ::= typedef // - case 237: { action.builder. + case 233: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 257: storage_class_specifier ::= auto + // Rule 253: storage_class_specifier ::= auto + // + case 253: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 254: storage_class_specifier ::= register + // + case 254: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 255: storage_class_specifier ::= static + // + case 255: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 256: storage_class_specifier ::= extern + // + case 256: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 257: storage_class_specifier ::= mutable // case 257: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 258: storage_class_specifier ::= register + // Rule 258: function_specifier ::= inline // case 258: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 259: storage_class_specifier ::= static + // Rule 259: function_specifier ::= virtual // case 259: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 260: storage_class_specifier ::= extern + // Rule 260: function_specifier ::= explicit // case 260: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 261: storage_class_specifier ::= mutable + // Rule 261: simple_type_specifier ::= char // case 261: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 262: function_specifier ::= inline + // Rule 262: simple_type_specifier ::= wchar_t // case 262: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 263: function_specifier ::= virtual + // Rule 263: simple_type_specifier ::= bool // case 263: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 264: function_specifier ::= explicit + // Rule 264: simple_type_specifier ::= short // case 264: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 265: simple_type_specifier ::= char + // Rule 265: simple_type_specifier ::= int // case 265: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 266: simple_type_specifier ::= wchar_t + // Rule 266: simple_type_specifier ::= long // case 266: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 267: simple_type_specifier ::= bool + // Rule 267: simple_type_specifier ::= signed // case 267: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 268: simple_type_specifier ::= short + // Rule 268: simple_type_specifier ::= unsigned // case 268: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 269: simple_type_specifier ::= int + // Rule 269: simple_type_specifier ::= float // case 269: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 270: simple_type_specifier ::= long + // Rule 270: simple_type_specifier ::= double // case 270: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 271: simple_type_specifier ::= signed + // Rule 271: simple_type_specifier ::= void // case 271: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 272: simple_type_specifier ::= unsigned - // - case 272: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 273: simple_type_specifier ::= float - // - case 273: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 274: simple_type_specifier ::= double + // Rule 274: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name // case 274: { action.builder. - consumeDeclSpecToken(); break; + consumeQualifiedId(false); break; } // - // Rule 275: simple_type_specifier ::= void + // Rule 275: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name // case 275: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 278: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name - // - case 278: { action.builder. consumeQualifiedId(false); break; } // - // Rule 279: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name + // Rule 276: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name // - case 279: { action.builder. + case 276: { action.builder. consumeQualifiedId(false); break; } // - // Rule 280: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name + // Rule 277: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name // - case 280: { action.builder. - consumeQualifiedId(false); break; - } - - // - // Rule 281: 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 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 286: enum_specifier ::= enum { enumerator_list_opt } + // Rule 282: enum_specifier ::= enum { enumerator_list_opt } // - case 286: { action.builder. + case 282: { action.builder. consumeTypeSpecifierEnumeration(false); break; } // - // Rule 287: enum_specifier ::= enum identifier_token { enumerator_list_opt } + // Rule 283: enum_specifier ::= enum identifier_token { enumerator_list_opt } // - case 287: { action.builder. + case 283: { action.builder. consumeTypeSpecifierEnumeration(true); break; } // - // Rule 292: enumerator_definition ::= identifier_token + // Rule 288: enumerator_definition ::= identifier_token // - case 292: { action.builder. + case 288: { action.builder. consumeEnumerator(false); break; } // - // Rule 293: enumerator_definition ::= identifier_token = constant_expression + // Rule 289: enumerator_definition ::= identifier_token = constant_expression // - case 293: { action.builder. + case 289: { action.builder. consumeEnumerator(true); break; } // - // Rule 297: named_namespace_definition ::= namespace namespace_name { declaration_seq_opt } + // Rule 293: named_namespace_definition ::= namespace namespace_name { declaration_seq_opt } // - case 297: { action.builder. + case 293: { action.builder. consumeNamespaceDefinition(true); break; } // - // Rule 298: unnamed_namespace_definition ::= namespace { declaration_seq_opt } + // Rule 294: unnamed_namespace_definition ::= namespace { declaration_seq_opt } // - case 298: { action.builder. + case 294: { action.builder. consumeNamespaceDefinition(false); break; } // - // Rule 299: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 295: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; // - case 299: { action.builder. + case 295: { action.builder. consumeNamespaceAliasDefinition(); break; } // - // Rule 300: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; + // Rule 296: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; // - case 300: { action.builder. + case 296: { action.builder. consumeUsingDeclaration(); break; } // - // Rule 301: typename_opt ::= typename + // Rule 297: typename_opt ::= typename // - case 301: { action.builder. + case 297: { action.builder. consumePlaceHolder(); break; } // - // Rule 302: typename_opt ::= $Empty + // Rule 298: typename_opt ::= $Empty // - case 302: { action.builder. + case 298: { action.builder. consumeEmpty(); break; } // - // Rule 303: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 299: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; // - case 303: { action.builder. + case 299: { action.builder. consumeUsingDirective(); break; } // - // Rule 304: asm_definition ::= asm ( stringlit ) ; + // Rule 300: asm_definition ::= asm ( stringlit ) ; // - case 304: { action.builder. + case 300: { action.builder. consumeDeclarationASM(); break; } // - // Rule 305: linkage_specification ::= extern stringlit { declaration_seq_opt } + // Rule 301: linkage_specification ::= extern stringlit { declaration_seq_opt } // - case 305: { action.builder. + case 301: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 306: linkage_specification ::= extern stringlit declaration + // Rule 302: linkage_specification ::= extern stringlit declaration // - case 306: { action.builder. + case 302: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 311: init_declarator_complete ::= init_declarator + // Rule 307: init_declarator_complete ::= init_declarator // - case 311: { action.builder. + case 307: { action.builder. consumeInitDeclaratorComplete(); break; } // - // Rule 313: init_declarator ::= declarator initializer + // Rule 309: init_declarator ::= declarator initializer // - case 313: { action.builder. + case 309: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 315: declarator ::= ptr_operator_seq direct_declarator + // Rule 311: declarator ::= ptr_operator_seq direct_declarator // - case 315: { action.builder. + case 311: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 317: function_declarator ::= ptr_operator_seq direct_declarator + // Rule 313: function_declarator ::= ptr_operator_seq direct_declarator + // + case 313: { action.builder. + consumeDeclaratorWithPointer(true); break; + } + + // + // Rule 317: basic_direct_declarator ::= declarator_id_name // case 317: { action.builder. - consumeDeclaratorWithPointer(true); break; - } - - // - // Rule 321: basic_direct_declarator ::= declarator_id_name - // - case 321: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 322: basic_direct_declarator ::= ( declarator ) + // Rule 318: basic_direct_declarator ::= ( declarator ) // - case 322: { action.builder. + case 318: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 323: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 319: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 323: { action.builder. + case 319: { action.builder. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 324: array_direct_declarator ::= array_direct_declarator array_modifier + // Rule 320: array_direct_declarator ::= array_direct_declarator array_modifier // - case 324: { action.builder. + case 320: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 325: array_direct_declarator ::= basic_direct_declarator array_modifier + // Rule 321: array_direct_declarator ::= basic_direct_declarator array_modifier // - case 325: { action.builder. + case 321: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 326: array_modifier ::= [ constant_expression ] + // Rule 322: array_modifier ::= [ constant_expression ] // - case 326: { action.builder. + case 322: { action.builder. consumeDirectDeclaratorArrayModifier(true); break; } // - // Rule 327: array_modifier ::= [ ] + // Rule 323: array_modifier ::= [ ] // - case 327: { action.builder. + case 323: { action.builder. consumeDirectDeclaratorArrayModifier(false); break; } // - // Rule 328: ptr_operator ::= * cv_qualifier_seq_opt + // Rule 324: ptr_operator ::= * cv_qualifier_seq_opt // - case 328: { action.builder. + case 324: { action.builder. consumePointer(); break; } // - // Rule 329: ptr_operator ::= & + // Rule 325: ptr_operator ::= & // - case 329: { action.builder. + case 325: { action.builder. consumeReferenceOperator(); break; } // - // Rule 330: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt + // Rule 326: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt // - case 330: { action.builder. + case 326: { action.builder. consumePointerToMember(); break; } // - // Rule 336: cv_qualifier ::= const + // Rule 332: cv_qualifier ::= const // - case 336: { action.builder. + case 332: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 337: cv_qualifier ::= volatile + // Rule 333: cv_qualifier ::= volatile // - case 337: { action.builder. + case 333: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 339: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name + // Rule 335: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name // - case 339: { action.builder. + case 335: { action.builder. consumeQualifiedId(false); break; } // - // Rule 340: type_id ::= type_specifier_seq + // Rule 336: type_id ::= type_specifier_seq // - case 340: { action.builder. + case 336: { action.builder. consumeTypeId(false); break; } // - // Rule 341: type_id ::= type_specifier_seq abstract_declarator + // Rule 337: type_id ::= type_specifier_seq abstract_declarator // - case 341: { action.builder. + case 337: { action.builder. consumeTypeId(true); break; } // - // Rule 344: abstract_declarator ::= ptr_operator_seq + // Rule 340: abstract_declarator ::= ptr_operator_seq // - case 344: { action.builder. + case 340: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 345: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator + // Rule 341: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator // - case 345: { action.builder. + case 341: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 349: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 345: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - case 349: { action.builder. + case 345: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 350: basic_direct_abstract_declarator ::= ( ) + // Rule 346: basic_direct_abstract_declarator ::= ( ) // - case 350: { action.builder. + case 346: { action.builder. consumeAbstractDeclaratorEmpty(); break; } // - // Rule 351: array_direct_abstract_declarator ::= array_modifier + // Rule 347: array_direct_abstract_declarator ::= array_modifier // - case 351: { action.builder. + case 347: { action.builder. consumeDirectDeclaratorArrayDeclarator(false); break; } // - // Rule 352: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // Rule 348: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier // - case 352: { action.builder. + case 348: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 353: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier + // Rule 349: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier // - case 353: { action.builder. + case 349: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 354: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 350: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 354: { action.builder. + case 350: { action.builder. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 355: 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 355: { action.builder. + case 351: { action.builder. consumeDirectDeclaratorFunctionDeclarator(false); break; } // - // Rule 356: parameter_declaration_clause ::= parameter_declaration_list_opt ... + // Rule 352: parameter_declaration_clause ::= parameter_declaration_list_opt ... // - case 356: { action.builder. + case 352: { action.builder. consumePlaceHolder(); break; } // - // Rule 357: parameter_declaration_clause ::= parameter_declaration_list_opt + // Rule 353: parameter_declaration_clause ::= parameter_declaration_list_opt // - case 357: { action.builder. + case 353: { action.builder. consumeEmpty(); break; } // - // Rule 358: parameter_declaration_clause ::= parameter_declaration_list , ... + // Rule 354: parameter_declaration_clause ::= parameter_declaration_list , ... // - case 358: { action.builder. + case 354: { action.builder. consumePlaceHolder(); break; } // - // Rule 364: abstract_declarator_opt ::= $Empty + // Rule 360: abstract_declarator_opt ::= $Empty // - case 364: { action.builder. + case 360: { action.builder. consumeEmpty(); break; } // - // Rule 365: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // Rule 361: parameter_declaration ::= declaration_specifiers parameter_init_declarator // - case 365: { action.builder. + case 361: { action.builder. consumeParameterDeclaration(); break; } // - // Rule 366: parameter_declaration ::= declaration_specifiers + // Rule 362: parameter_declaration ::= declaration_specifiers // - case 366: { action.builder. + case 362: { action.builder. consumeParameterDeclarationWithoutDeclarator(); break; } // - // Rule 368: parameter_init_declarator ::= declarator = parameter_initializer + // Rule 364: parameter_init_declarator ::= declarator = parameter_initializer // - case 368: { action.builder. + case 364: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 370: parameter_init_declarator ::= abstract_declarator = parameter_initializer + // Rule 366: parameter_init_declarator ::= abstract_declarator = parameter_initializer // - case 370: { action.builder. + case 366: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 371: parameter_init_declarator ::= = parameter_initializer + // Rule 367: parameter_init_declarator ::= = parameter_initializer // - case 371: { action.builder. + case 367: { action.builder. consumeDeclaratorWithInitializer(false); break; } // - // Rule 372: parameter_initializer ::= assignment_expression + // Rule 368: parameter_initializer ::= assignment_expression // - case 372: { action.builder. + case 368: { action.builder. consumeInitializer(); break; } // - // Rule 373: 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 373: { action.builder. + case 369: { action.builder. consumeFunctionDefinition(false); break; } // - // Rule 374: 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 374: { action.builder. + case 370: { action.builder. consumeFunctionDefinition(true); break; } // - // Rule 377: initializer ::= ( expression_list ) + // Rule 373: initializer ::= ( expression_list ) // - case 377: { action.builder. + case 373: { action.builder. consumeInitializerConstructor(); break; } // - // Rule 378: initializer_clause ::= assignment_expression + // Rule 374: initializer_clause ::= assignment_expression // - case 378: { action.builder. + case 374: { action.builder. consumeInitializer(); break; } // - // Rule 379: initializer_clause ::= start_initializer_list { initializer_list , } end_initializer_list + // Rule 375: initializer_clause ::= start_initializer_list { initializer_list , } end_initializer_list // - case 379: { action.builder. + case 375: { action.builder. consumeInitializerList(); break; } // - // Rule 380: initializer_clause ::= start_initializer_list { initializer_list } end_initializer_list + // Rule 376: initializer_clause ::= start_initializer_list { initializer_list } end_initializer_list // - case 380: { action.builder. + case 376: { action.builder. consumeInitializerList(); break; } // - // Rule 381: initializer_clause ::= { } + // Rule 377: initializer_clause ::= { } // - case 381: { action.builder. + case 377: { action.builder. consumeInitializerList(); break; } // - // Rule 382: start_initializer_list ::= $Empty + // Rule 378: start_initializer_list ::= $Empty // - case 382: { action.builder. + case 378: { action.builder. initializerListStart(); break; } // - // Rule 383: end_initializer_list ::= $Empty + // Rule 379: end_initializer_list ::= $Empty // - case 383: { action.builder. + case 379: { action.builder. initializerListEnd(); break; } // - // Rule 388: class_specifier ::= class_head { member_declaration_list_opt } + // Rule 384: class_specifier ::= class_head { member_declaration_list_opt } // - case 388: { action.builder. + case 384: { action.builder. consumeClassSpecifier(); break; } // - // Rule 389: class_head ::= class_keyword identifier_name_opt base_clause_opt + // Rule 385: class_head ::= class_keyword identifier_name_opt base_clause_opt // - case 389: { action.builder. + case 385: { action.builder. consumeClassHead(false); break; } // - // Rule 390: class_head ::= class_keyword template_id_name base_clause_opt + // Rule 386: class_head ::= class_keyword template_id_name base_clause_opt + // + case 386: { action.builder. + consumeClassHead(false); break; + } + + // + // Rule 387: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt + // + case 387: { action.builder. + consumeClassHead(true); break; + } + + // + // Rule 388: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt + // + case 388: { action.builder. + consumeClassHead(true); break; + } + + // + // Rule 390: identifier_name_opt ::= $Empty // case 390: { action.builder. - consumeClassHead(false); break; - } - - // - // Rule 391: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt - // - case 391: { action.builder. - consumeClassHead(true); break; - } - - // - // Rule 392: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt - // - case 392: { action.builder. - consumeClassHead(true); break; - } - - // - // Rule 394: identifier_name_opt ::= $Empty - // - case 394: { action.builder. consumeEmpty(); break; } // - // Rule 398: visibility_label ::= access_specifier_keyword : + // Rule 394: visibility_label ::= access_specifier_keyword : // - case 398: { action.builder. + case 394: { action.builder. consumeVisibilityLabel(); break; } // - // Rule 399: member_declaration ::= declaration_specifiers_opt member_declarator_list ; + // Rule 395: member_declaration ::= declaration_specifiers_opt member_declarator_list ; // - case 399: { action.builder. + case 395: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 400: member_declaration ::= declaration_specifiers_opt ; + // Rule 396: member_declaration ::= declaration_specifiers_opt ; // - case 400: { action.builder. + case 396: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 403: 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 403: { action.builder. + case 399: { action.builder. consumeMemberDeclarationQualifiedId(); break; } // - // Rule 409: member_declaration ::= ERROR_TOKEN + // Rule 405: member_declaration ::= ERROR_TOKEN // - case 409: { action.builder. + case 405: { action.builder. consumeDeclarationProblem(); break; } // - // Rule 417: member_declarator ::= declarator constant_initializer + // Rule 413: member_declarator ::= declarator constant_initializer // - case 417: { action.builder. + case 413: { action.builder. consumeMemberDeclaratorWithInitializer(); break; } // - // Rule 418: member_declarator ::= bit_field_declarator : constant_expression + // Rule 414: member_declarator ::= bit_field_declarator : constant_expression // - case 418: { action.builder. + case 414: { action.builder. consumeBitField(true); break; } // - // Rule 419: member_declarator ::= : constant_expression + // Rule 415: member_declarator ::= : constant_expression // - case 419: { action.builder. + case 415: { action.builder. consumeBitField(false); break; } // - // Rule 420: bit_field_declarator ::= identifier_name + // Rule 416: bit_field_declarator ::= identifier_name // - case 420: { action.builder. + case 416: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 421: constant_initializer ::= = constant_expression + // Rule 417: constant_initializer ::= = constant_expression // - case 421: { action.builder. + case 417: { action.builder. consumeInitializer(); break; } // - // Rule 427: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 423: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 427: { action.builder. + case 423: { action.builder. consumeBaseSpecifier(false, false); break; } // - // Rule 428: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name + // Rule 424: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name // - case 428: { action.builder. + case 424: { action.builder. consumeBaseSpecifier(true, true); break; } // - // Rule 429: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name + // Rule 425: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name // - case 429: { action.builder. + case 425: { action.builder. consumeBaseSpecifier(true, true); break; } // - // Rule 430: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name + // Rule 426: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name // - case 430: { action.builder. + case 426: { action.builder. consumeBaseSpecifier(true, false); break; } // - // Rule 431: access_specifier_keyword ::= private + // Rule 427: access_specifier_keyword ::= private + // + case 427: { action.builder. + consumeAccessKeywordToken(); break; + } + + // + // Rule 428: access_specifier_keyword ::= protected + // + case 428: { action.builder. + consumeAccessKeywordToken(); break; + } + + // + // Rule 429: access_specifier_keyword ::= public + // + case 429: { action.builder. + consumeAccessKeywordToken(); break; + } + + // + // Rule 431: access_specifier_keyword_opt ::= $Empty // case 431: { action.builder. - consumeAccessKeywordToken(); break; - } - - // - // Rule 432: access_specifier_keyword ::= protected - // - case 432: { action.builder. - consumeAccessKeywordToken(); break; - } - - // - // Rule 433: access_specifier_keyword ::= public - // - case 433: { action.builder. - consumeAccessKeywordToken(); break; - } - - // - // Rule 435: access_specifier_keyword_opt ::= $Empty - // - case 435: { action.builder. consumeEmpty(); break; } // - // Rule 437: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > + // Rule 433: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > // - case 437: { action.builder. + case 433: { action.builder. consumeTemplateId(); break; } // - // Rule 438: conversion_function_id ::= operator conversion_type_id + // Rule 434: conversion_function_id ::= operator conversion_type_id // - case 438: { action.builder. + case 434: { action.builder. consumeConversionName(); break; } // - // Rule 439: conversion_type_id ::= type_specifier_seq conversion_declarator + // Rule 435: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 439: { action.builder. + case 435: { action.builder. consumeTypeId(true); break; } // - // Rule 440: conversion_type_id ::= type_specifier_seq + // Rule 436: conversion_type_id ::= type_specifier_seq // - case 440: { action.builder. + case 436: { action.builder. consumeTypeId(false); break; } // - // Rule 441: conversion_declarator ::= ptr_operator_seq + // Rule 437: conversion_declarator ::= ptr_operator_seq // - case 441: { action.builder. + case 437: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 447: mem_initializer ::= mem_initializer_name ( expression_list_opt ) + // Rule 443: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 447: { action.builder. + case 443: { action.builder. consumeConstructorChainInitializer(); break; } // - // Rule 448: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 444: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name // - case 448: { action.builder. + case 444: { action.builder. consumeQualifiedId(false); break; } // - // Rule 451: operator_function_id_name ::= operator_id_name < template_argument_list_opt > + // Rule 447: operator_function_id_name ::= operator_id_name < template_argument_list_opt > // - case 451: { action.builder. + case 447: { action.builder. consumeTemplateId(); break; } // - // Rule 452: operator_id_name ::= operator overloadable_operator + // Rule 448: operator_id_name ::= operator overloadable_operator // - case 452: { action.builder. + case 448: { action.builder. consumeOperatorName(); break; } // - // Rule 495: template_declaration ::= export_opt template < template_parameter_list > declaration + // Rule 491: template_declaration ::= export_opt template < template_parameter_list > declaration // - case 495: { action.builder. + case 491: { action.builder. consumeTemplateDeclaration(); break; } // - // Rule 496: export_opt ::= export + // Rule 492: export_opt ::= export // - case 496: { action.builder. + case 492: { action.builder. consumePlaceHolder(); break; } // - // Rule 497: export_opt ::= $Empty + // Rule 493: export_opt ::= $Empty // - case 497: { action.builder. + case 493: { action.builder. consumeEmpty(); break; } // - // Rule 501: template_parameter ::= parameter_declaration + // Rule 497: template_parameter ::= parameter_declaration // - case 501: { action.builder. + case 497: { action.builder. consumeTemplateParamterDeclaration(); break; } // - // Rule 502: type_parameter ::= class identifier_name_opt + // Rule 498: type_parameter ::= class identifier_name_opt + // + case 498: { action.builder. + consumeSimpleTypeTemplateParameter(false); break; + } + + // + // Rule 499: type_parameter ::= class identifier_name_opt = type_id + // + case 499: { action.builder. + consumeSimpleTypeTemplateParameter(true); break; + } + + // + // Rule 500: type_parameter ::= typename identifier_name_opt + // + case 500: { action.builder. + consumeSimpleTypeTemplateParameter(false); break; + } + + // + // Rule 501: type_parameter ::= typename identifier_name_opt = type_id + // + case 501: { action.builder. + consumeSimpleTypeTemplateParameter(true); break; + } + + // + // Rule 502: type_parameter ::= template < template_parameter_list > class identifier_name_opt // case 502: { action.builder. - consumeSimpleTypeTemplateParameter(false); break; - } - - // - // Rule 503: type_parameter ::= class identifier_name_opt = type_id - // - case 503: { action.builder. - consumeSimpleTypeTemplateParameter(true); break; - } - - // - // Rule 504: type_parameter ::= typename identifier_name_opt - // - case 504: { action.builder. - consumeSimpleTypeTemplateParameter(false); break; - } - - // - // Rule 505: type_parameter ::= typename identifier_name_opt = type_id - // - case 505: { action.builder. - consumeSimpleTypeTemplateParameter(true); break; - } - - // - // Rule 506: type_parameter ::= template < template_parameter_list > class identifier_name_opt - // - case 506: { action.builder. consumeTemplatedTypeTemplateParameter(false); break; } // - // Rule 507: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression + // Rule 503: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression // - case 507: { action.builder. + case 503: { action.builder. consumeTemplatedTypeTemplateParameter(true); break; } // - // Rule 508: template_id_name ::= identifier_name < template_argument_list_opt > + // Rule 504: template_id_name ::= identifier_name < template_argument_list_opt > // - case 508: { action.builder. + case 504: { action.builder. consumeTemplateId(); break; } // - // Rule 513: template_argument ::= assignment_expression + // Rule 509: template_argument ::= assignment_expression // - case 513: { action.builder. + case 509: { action.builder. consumeTemplateArgumentExpression(); break; } // - // Rule 514: template_argument ::= type_id + // Rule 510: template_argument ::= type_id // - case 514: { action.builder. + case 510: { action.builder. consumeTemplateArgumentTypeId(); break; } // - // Rule 515: explicit_instantiation ::= template declaration + // Rule 511: explicit_instantiation ::= template declaration // - case 515: { action.builder. + case 511: { action.builder. consumeTemplateExplicitInstantiation(); break; } // - // Rule 516: explicit_specialization ::= template < > declaration + // Rule 512: explicit_specialization ::= template < > declaration // - case 516: { action.builder. + case 512: { action.builder. consumeTemplateExplicitSpecialization(); break; } // - // Rule 517: try_block ::= try compound_statement handler_seq + // Rule 513: try_block ::= try compound_statement handler_seq // - case 517: { action.builder. + case 513: { action.builder. consumeStatementTryBlock(); break; } // - // Rule 520: handler ::= catch ( exception_declaration ) compound_statement + // Rule 516: handler ::= catch ( exception_declaration ) compound_statement // - case 520: { action.builder. + case 516: { action.builder. consumeStatementCatchHandler(false); break; } // - // Rule 521: handler ::= catch ( ... ) compound_statement + // Rule 517: handler ::= catch ( ... ) compound_statement // - case 521: { action.builder. + case 517: { action.builder. consumeStatementCatchHandler(true); break; } // - // Rule 522: exception_declaration ::= type_specifier_seq declarator + // Rule 518: exception_declaration ::= type_specifier_seq declarator // - case 522: { action.builder. + case 518: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 523: exception_declaration ::= type_specifier_seq abstract_declarator + // Rule 519: exception_declaration ::= type_specifier_seq abstract_declarator // - case 523: { action.builder. + case 519: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 524: exception_declaration ::= type_specifier_seq + // Rule 520: exception_declaration ::= type_specifier_seq // - case 524: { action.builder. + case 520: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 526: exception_specification ::= throw ( ) + // Rule 522: exception_specification ::= throw ( ) // - case 526: { action.builder. + case 522: { action.builder. consumePlaceHolder(); break; } // - // Rule 532: no_sizeof_type_name_start ::= ERROR_TOKEN + // Rule 528: no_sizeof_type_name_start ::= ERROR_TOKEN // - case 532: { action.builder. + case 528: { 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 5b5e716ee4a..0a90d214bf1 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 @@ -38,489 +38,487 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface BaseCheck { public final static short baseCheck[] = {0, 0,0,1,1,1,1,1,1,1,1, - 1,1,1,0,1,2,1,1,1,1, - 1,1,1,1,1,1,1,1,1,3, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,3,1,1,1,1,1, + 1,1,1,2,2,1,1,0,1,0, + 4,2,3,2,3,2,2,1,0,1, + 1,4,4,4,8,8,3,3,4,4, + 3,3,2,2,7,7,7,7,4,5, + 6,3,2,2,1,1,1,2,2,2, + 2,2,2,2,2,2,7,9,3,0, + 1,2,2,1,2,3,4,1,0,3, + 1,0,3,5,1,4,1,3,3,1, + 3,3,3,1,3,3,1,3,3,1, + 3,3,3,3,1,3,3,1,3,1, + 3,1,3,1,3,1,3,1,5,1, + 2,1,1,3,3,3,3,3,3,3, + 3,3,3,3,1,2,1,3,1,0, + 1,0,1,1,0,1,1,1,1,1, + 1,1,1,1,3,4,3,2,1,4, + 2,1,2,5,7,5,1,4,1,0, + 5,7,8,1,1,2,2,3,2,3, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,2,1,0,4, + 4,2,2,2,2,2,1,0,1,1, + 1,1,1,1,2,1,2,2,2,1, + 1,2,2,1,2,2,1,2,2,1, + 2,2,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,3,4,4,5,2,4,5, + 4,5,6,1,3,1,0,1,3,1, + 1,1,6,5,7,6,1,0,6,5, + 6,4,1,3,1,0,1,1,2,1, + 3,1,3,1,1,1,1,3,9,2, + 2,3,2,3,1,5,1,2,2,1, + 0,1,1,1,3,1,2,1,1,2, + 3,1,1,1,3,2,1,2,2,9, + 8,2,1,3,1,3,1,0,1,0, + 2,1,1,3,1,3,2,1,5,8, + 1,2,3,1,7,6,3,0,0,1, + 3,1,1,5,4,4,5,5,1,0, + 1,1,1,2,4,2,2,1,5,1, + 1,1,1,1,1,1,2,1,0,1, + 3,1,2,3,2,1,2,2,1,0, + 1,3,3,5,5,4,1,1,1,1, + 0,1,5,2,2,1,2,2,1,0, + 1,3,4,3,1,1,5,2,1,1, + 3,3,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,2,2, - 1,1,0,1,0,4,2,3,2,3, - 2,2,1,0,1,1,4,4,4,8, - 8,3,3,4,4,3,3,2,2,7, - 7,7,7,4,5,6,3,2,2,1, - 1,1,2,2,2,2,2,2,2,2, - 2,7,9,3,0,1,2,2,1,2, - 3,4,1,0,3,1,0,3,5,1, - 4,1,3,3,1,3,3,3,1,3, - 3,1,3,3,1,3,3,3,3,1, - 3,3,1,3,1,3,1,3,1,3, - 1,3,1,5,1,2,1,1,3,3, - 3,3,3,3,3,3,3,3,3,1, - 2,1,3,1,0,1,0,1,1,0, - 1,1,1,1,1,1,1,1,1,3, - 4,3,2,1,4,2,1,2,5,7, - 5,1,4,1,0,5,7,8,1,1, - 2,2,3,2,3,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 2,1,0,4,4,2,2,2,2,2, - 1,0,1,1,1,1,1,1,2,1, - 2,2,2,1,1,2,2,1,2,2, - 1,2,2,1,2,2,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,3,4,4, - 5,2,4,5,4,5,6,1,3,1, - 0,1,3,1,1,1,6,5,7,6, - 1,0,6,5,6,4,1,3,1,0, - 1,1,2,1,3,1,3,1,1,1, - 1,3,9,2,2,3,2,3,1,5, - 1,2,2,1,0,1,1,1,3,1, - 2,1,1,2,3,1,1,1,3,2, - 1,2,2,9,8,2,1,3,1,3, - 1,0,1,0,2,1,1,3,1,3, - 2,1,5,8,1,2,3,1,7,6, - 3,0,0,1,3,1,1,5,4,4, - 5,5,1,0,1,1,1,2,4,2, - 2,1,5,1,1,1,1,1,1,1, - 2,1,0,1,3,1,2,3,2,1, - 2,2,1,0,1,3,3,5,5,4, - 1,1,1,1,0,1,5,2,2,1, - 2,2,1,0,1,3,4,3,1,1, - 5,2,1,1,3,3,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,2,2,7,1,0,1,3,1, - 1,2,4,2,4,7,9,5,1,3, - 1,0,1,1,2,4,4,1,2,5, - 5,3,3,1,4,3,1,0,1,3, - 1,1,-62,0,0,0,-2,0,0,0, + 7,1,0,1,3,1,1,2,4,2, + 4,7,9,5,1,3,1,0,1,1, + 2,4,4,1,2,5,5,3,3,1, + 4,3,1,0,1,3,1,1,-62,0, + 0,0,-2,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-4,0,0,0,0, - 0,-5,0,0,0,0,0,-6,0,0, - -433,0,0,0,0,-71,0,0,0,-7, - 0,0,0,0,0,0,0,0,-112,-88, + 0,-4,0,0,0,0,0,-5,0,0, + 0,0,0,-6,0,0,-433,0,0,0, + 0,-71,0,0,0,-7,0,0,0,0, + 0,0,0,0,-112,-88,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-8,0, + 0,0,0,0,0,0,0,-353,0,0, + 0,-20,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-8,0,0,0,0,0,0,0, - 0,-353,0,0,0,-20,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-244, + 0,-72,0,0,0,0,0,0,0,0, + 0,0,0,0,-58,0,0,0,-410,0, + 0,-119,0,0,0,0,0,0,-114,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-244,0,-72,0,0,0,0, - 0,0,0,0,0,0,0,0,-58,0, - 0,0,-410,0,0,-119,0,0,0,0, - 0,0,-114,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-290,0,0,-116,0,-49,0, + 0,0,0,0,-148,0,0,0,-190,0, + 0,0,0,0,0,0,0,-9,0,-115, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-290,0,0, - -116,0,-49,0,0,0,0,0,-148,0, - 0,0,-190,0,0,0,0,0,0,0, - 0,-9,0,-115,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-11,0, - 0,-126,0,0,0,0,0,-340,0,-12, - 0,0,0,0,-232,0,-316,0,-16,0, - 0,0,-13,0,0,0,0,0,0,0, - 0,-228,-64,0,-373,-130,0,0,0,0, + 0,0,0,0,-11,0,0,-126,0,0, + 0,0,0,-340,0,-12,0,0,0,0, + -232,0,-316,0,-16,0,0,0,-13,0, + 0,0,0,0,0,0,0,-228,-64,0, + -373,-130,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-145,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-15, - 0,-136,-141,0,0,-123,0,0,0,-397, - 0,0,-28,0,0,0,-222,0,0,0, + -145,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-15,0,-136,-141,0, + 0,-123,0,0,0,-397,0,0,-294,0, + 0,0,-222,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-50,0,0, + 0,0,0,0,0,0,0,0,-28,0, + -133,0,-462,0,0,0,-357,-146,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-50,0,0,0,0,0,0,0,0, - 0,0,-29,0,-133,0,-462,0,0,0, - -357,-146,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-496,0,0, + 0,0,0,-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,-30,0,0,0, - 0,0,0,0,0,-31,0,0,0,0, - -520,0,0,0,-53,0,0,0,0,0, + 0,0,-29,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-520,0,0,0, + -53,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-32, - 0,0,0,-10,0,0,0,0,0,0, - 0,0,0,-3,0,0,0,-33,0,0, + 0,0,0,0,0,-30,0,0,0,-10, + 0,0,0,0,0,0,0,0,0,-3, + 0,0,0,-31,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-260,0, + 0,0,-312,0,0,0,0,0,0,0, + 0,0,0,-429,0,0,0,-332,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-260,0,0,0,-312,0,0,0, - 0,0,0,0,0,0,0,-429,0,0, - 0,-34,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-302,0,0,0, - -383,0,-454,0,0,0,0,0,0,0, - -394,0,0,-278,0,0,0,0,0,0, + 0,0,-302,0,0,0,-383,0,-454,0, + 0,0,0,0,0,0,-394,0,0,-278, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-342,0,-35,0, - 0,-177,0,0,0,0,0,0,-262,0, - 0,-92,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-32,0,-33,0,0,-177,0,0, + 0,0,0,0,-262,0,0,-92,0,0, 0,0,0,0,0,0,0,0,0,0, - -36,0,0,0,-318,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-34,0,0,0, + -318,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-37,0,-51, - 0,0,0,0,-38,0,0,0,-319,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-35,0,-51,0,0,0,0, + -36,0,0,0,-319,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-57,0,0, - 0,0,0,-349,0,0,-406,-1,0,0, - 0,0,-465,-39,0,0,0,-372,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-57,0,0,0,0,0,-349, + 0,0,-406,-1,0,0,0,0,-465,-39, + 0,0,0,-372,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-360,0,0,0,0,0,0,0, - 0,-54,-208,-40,0,0,0,-41,0,0, - 0,-55,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-342,0, + 0,0,0,0,0,0,0,-54,-208,-37, + 0,0,0,-41,0,0,0,-38,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -56,0,0,0,0,-233,0,0,0,0, - -94,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-40,0,0,0, + 0,-233,0,0,0,0,-94,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-128,0,-481,0,0,0,-129, - -66,0,0,-95,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-128, + 0,-481,0,0,0,-129,-55,0,0,-95, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-137,0, - 0,0,-143,-294,0,0,-96,0,0,0, - -59,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-67, - 0,0,0,0,0,0,0,0,0,-152, - 0,0,0,0,0,0,-332,0,0,-97, - 0,0,0,-60,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-137,0,0,0,-143,-56, + 0,0,-96,0,0,0,-59,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-69,0,0,0,0,0,0,-70, - 0,0,-98,0,0,0,-107,0,0,0, + 0,0,0,0,0,-66,0,0,0,0, + 0,0,0,0,0,-152,0,0,0,0, + 0,0,-67,0,0,-97,0,0,0,-60, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-305,0,-281,0,0, - 0,0,-108,0,0,-99,0,0,0,-113, + 0,0,0,0,0,0,0,0,-69,0, + 0,0,0,0,0,-70,0,0,-98,0, + 0,0,-107,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-348,0,0,0,0,0,0,0,0, + 0,-305,0,-281,0,0,0,0,-108,0, + 0,-99,0,0,0,-113,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-183,0,0,0,0,0, - -282,0,0,-109,0,-110,0,0,-100,0, - 0,0,-151,0,0,0,0,0,0,0, + 0,0,0,0,-109,0,0,0,0,0, + -183,0,0,0,0,0,-282,0,0,-110, + 0,-111,0,0,-100,0,0,0,-151,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-184,0,0, - 0,0,0,-311,0,0,-111,0,0,0, - 0,-101,0,0,0,-131,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-184,0,0,0,0,0,-311, + 0,0,-131,0,0,0,0,-101,0,0, + 0,-138,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -186,0,0,0,0,0,-188,0,0,-138, - 0,-139,0,0,-102,0,0,0,-140,0, + 0,0,0,0,0,0,-186,0,0,0, + 0,0,-188,0,0,-139,0,-140,0,0, + -102,0,0,0,-153,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-348,0,0, - 0,0,0,-191,0,0,0,0,0,-351, - 0,0,-153,-198,0,0,0,-103,0,0, - 0,-200,0,0,0,0,0,0,0,0, + 0,0,0,-154,0,0,0,0,0,-191, + 0,0,0,0,0,0,0,0,-155,-198, + -156,0,0,-103,0,0,0,-200,0,0, 0,0,0,0,0,0,0,0,0,0, - -154,0,0,0,0,0,-202,0,0,0, - 0,0,-352,0,0,-519,0,0,0,0, - -104,0,0,0,-209,0,0,0,0,0, + 0,0,0,0,0,0,-157,0,0,0, + 0,0,-202,0,0,0,0,0,-351,0, + 0,-519,0,0,0,0,-104,0,0,0, + -209,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-158, + 0,0,0,0,0,-207,0,0,0,0, + 0,0,0,0,-461,0,-65,0,0,-134, + 0,0,0,-360,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-155,0,0,0,0,0,-207, - 0,0,0,0,0,0,0,0,-461,0, - -65,0,0,-134,0,0,0,-396,0,0, + 0,0,-159,0,0,0,0,0,-226,0, + 0,0,0,0,0,0,0,-215,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-156,0,0,0, - 0,0,-226,0,0,0,0,0,0,0, - 0,-215,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-227,0,0,0, + 0,0,-231,0,0,-352,0,-160,0,0, + 0,0,-18,0,0,0,-514,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -227,0,0,0,0,0,-231,0,0,-390, - 0,0,0,0,0,0,-18,0,0,0, - -514,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-161, + 0,-162,0,0,-258,0,0,0,0,-315, + 0,0,0,-396,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-157,0,-158,0,0,-258,0, - 0,0,0,-315,0,0,0,-409,0,0, + 0,0,-163,0,0,0,0,0,-256,0, + 0,0,0,0,-409,0,0,-330,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-159,0,0,0, - 0,0,-256,0,0,0,0,0,-431,0, - 0,-330,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-277,0,0,0, + 0,0,0,0,0,-333,0,0,0,-164, + -236,0,0,0,0,0,-346,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -277,0,0,0,0,0,0,0,0,-333, - 0,0,0,-160,-236,0,0,0,0,0, - -346,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-328, + 0,0,0,0,0,0,0,0,0,-165, + 0,-431,0,0,-378,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-328,0,0,0,0,0,0, - 0,0,0,-161,0,-442,0,0,-378,0, + 0,0,0,0,0,0,0,-230,0,0, + 0,0,0,-289,0,0,0,0,0,0, + 0,0,-371,0,0,0,-166,-243,0,0, + 0,0,0,-379,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-442,0,0,0, + 0,0,0,0,0,0,-167,0,-168,0, + 0,-440,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-230,0,0,0,0,0,-289,0,0, - 0,0,0,0,0,0,-371,0,0,0, - -162,-243,0,0,0,0,0,-379,0,0, 0,0,0,0,0,0,0,0,0,0, + -301,0,0,0,0,0,0,0,0,0, + -211,0,0,0,-250,0,0,-366,0,0, + -106,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -451,0,0,0,0,0,0,0,0,0, - -163,0,-164,0,0,-440,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-449,0,0,-93,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-301,0,0,0,0,0, - 0,0,0,0,-211,0,0,0,-250,0, - 0,-366,0,0,-106,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-508,0,0,0,0,0,-265,0,0, + 0,-91,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,-449, - 0,0,-93,0,0,0,0,0,0,0, + 0,0,0,0,-170,0,0,0,0,0, + 0,0,0,-89,0,0,0,-171,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-508,0,0,0,0, - 0,-265,0,0,0,-91,0,0,0,-165, + 0,0,0,0,0,0,-147,0,0,0, + 0,-90,0,0,0,-437,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-166,0, - 0,0,0,0,0,0,0,-89,0,0, - 0,-167,0,0,0,0,0,0,0,0, + 0,0,0,0,-268,0,0,0,0,-238, 0,0,0,0,0,0,0,0,0,0, - -147,0,0,0,0,-90,0,0,0,-437, + 0,0,0,-284,0,0,0,0,0,0, + 0,0,0,0,0,0,-21,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-268,0, - 0,0,0,-238,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-284,0,0, + 0,0,0,0,0,0,0,0,0,-172, + -511,-173,-47,0,0,0,0,0,0,0, + -451,0,0,-269,-380,0,0,0,-453,0, + 0,0,0,0,0,0,0,-176,0,0, + 0,-185,0,0,0,0,0,0,0,-367, 0,0,0,0,0,0,0,0,0,0, - -21,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,-168,-511,-169,-47,0,0,0, - 0,0,0,0,-452,0,0,-269,-380,0, - 0,0,-453,0,0,0,0,0,0,0, - 0,-176,0,0,0,-185,0,0,0,0, - 0,0,0,-367,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-82,0,0,0,0,0,0, + 0,0,0,0,0,0,-83,0,0,0, + -174,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-306, + 0,0,0,0,-213,0,0,0,-374,0, + 0,0,0,0,-84,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -83,0,0,0,-170,0,0,0,0,0, + 0,-85,0,0,0,-175,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-306,0,0,0,0,-194,0, - 0,0,-374,0,0,0,0,0,-84,0, + 0,0,0,0,-452,0,0,0,-387,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-463,-266,0,0,0,0,0,0, + 0,0,0,0,0,0,-286,-273,-204,-421, + 0,0,0,0,-521,0,0,0,-178,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-85,0,0,0,-171, + 0,0,0,-214,0,0,0,0,0,-300, + 0,0,-43,-229,0,0,0,0,0,0, + 0,0,0,0,-179,0,0,0,0,0, + 0,0,0,0,-314,0,-525,0,-127,0, + 0,0,0,0,0,-251,0,0,0,0, + 0,0,0,0,0,0,-438,0,-386,-181, + 0,-415,0,-390,0,0,0,0,0,0, + 0,0,0,0,-144,-180,-189,0,0,0, + 0,0,0,-252,0,0,-398,-422,0,0, + 0,0,0,0,0,0,0,0,0,-195, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-463,0, - 0,0,-387,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-251,-266,0,0, + 0,-194,0,0,0,0,-320,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -286,-273,-204,-421,0,0,0,0,-521,0, - 0,0,-172,0,0,0,0,0,0,0, - 0,0,0,0,-173,0,0,-214,0,0, - 0,0,0,-300,0,0,-43,-229,0,0, - 0,0,0,0,0,0,0,0,-174,0, - 0,0,0,0,0,0,0,0,-314,0, - -525,0,-127,0,0,0,0,0,0,-252, + -513,0,0,0,0,0,0,0,0,0, + 0,0,0,-196,0,-52,0,0,0,-199, + 0,0,0,0,-325,0,0,0,0,0, + 0,0,0,0,0,0,0,-253,-321,0, + 0,0,-287,-210,-150,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -438,0,-386,-181,0,-415,0,-413,0,0, - 0,0,0,0,0,0,0,0,-144,-175, - -178,0,0,0,0,0,0,-253,0,0, - -398,-422,0,0,0,0,0,0,0,0, - 0,0,0,-179,0,0,0,0,0,0, - 0,0,0,0,0,-321,0,0,0,0, - -320,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-513,0,0,0,0,0, - 0,0,0,0,0,0,0,-180,0,-52, - 0,0,0,-189,0,0,0,0,-325,0, + 0,0,0,0,0,-322,-142,0,0,0, + -361,0,0,-297,0,0,0,0,0,-298, + 0,0,0,0,-220,-323,0,0,-235,0, + 0,0,0,0,0,0,-221,-223,0,0, + 0,0,0,0,-237,-241,0,0,0,0, + 0,-239,0,-331,0,0,0,0,0,0, + 0,0,0,0,0,-242,0,0,0,0, + 0,0,0,0,0,0,0,-247,-19,0, 0,0,0,0,0,0,0,0,0,0, - 0,-402,0,0,0,-195,-287,-196,-150,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-322, - -142,0,0,0,0,-234,0,0,0,0, - 0,0,0,-297,0,0,0,0,-199,-298, - 0,0,-235,0,0,0,0,0,0,0, - -210,-220,0,0,0,0,0,0,-326,-241, - 0,0,0,0,0,-221,0,-331,0,0, - 0,0,0,0,0,0,0,0,0,-242, + 0,0,0,0,0,-86,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -223,-237,-19,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-359,0, + 0,-87,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-86, + 0,0,0,0,-246,0,0,-307,0,0, 0,0,0,0,0,0,0,0,0,0, + -224,-476,-358,-402,0,0,0,-261,0,-121, + 0,0,0,-377,0,-14,-272,0,-447,0, + -263,-264,0,-364,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-359,0,0,-87,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-246,0, - 0,-307,0,0,0,0,0,0,0,0, - 0,0,0,0,-224,-239,-323,-403,0,0, - 0,-247,0,-121,0,0,0,-377,0,-14, - -272,0,-447,0,-261,-263,0,-364,0,0, + 0,-391,0,0,-274,-468,0,0,0,0, + 0,0,0,-275,0,0,0,0,0,0, + 0,0,0,-234,0,0,0,0,0,-279, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-358,0,0,0,0,0,0, - 0,0,0,0,0,-361,0,0,-264,-468, - 0,0,0,0,0,0,0,-274,0,0, - 0,0,0,0,0,0,0,-257,0,-335, + 0,0,-470,0,0,0,0,-280,0,0, + -384,0,0,0,0,0,0,0,0,0, + -248,0,0,0,-512,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-44, + 0,0,0,0,-477,0,0,0,0,0, + 0,0,0,0,0,0,0,-487,0,0, + -291,0,0,-197,0,-412,-295,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-470,0,0,0, - 0,-275,0,0,-384,0,0,0,0,0, - 0,0,0,0,-248,0,0,0,-512,0, + 0,-326,0,-484,0,0,0,0,-117,-249, + 0,0,0,-296,-501,0,0,0,0,0, + 0,0,-303,0,0,0,0,0,0,0, + 0,0,0,-413,0,-504,-335,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-44,0,0,0,0,0,0, - 0,-391,0,0,0,0,0,0,0,0, - 0,-487,0,0,-279,0,0,-197,0,-412, - -280,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-455,0,-291, - 0,0,-117,-249,0,0,0,-295,-501,0, - 0,0,0,0,0,0,-296,0,0,0, - 0,0,0,0,0,0,0,0,0,-303, - -337,0,0,0,0,-304,0,0,0,0, - 0,0,0,0,0,-503,0,0,0,0, - -309,0,-456,-310,0,0,0,0,0,0, - 0,0,0,0,-271,0,0,0,0,0, + 0,-503,0,0,0,0,-304,0,-455,-309, 0,0,0,0,0,0,0,0,0,0, - 0,0,-507,0,0,0,0,0,0,0, + -257,-310,-517,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,-271,0,0,0, + 0,0,-403,0,0,0,0,0,0,0, + 0,0,0,0,0,-522,0,0,0,0, + -327,0,-456,-458,0,0,0,0,0,0, + 0,0,0,-337,-345,0,-459,0,0,-423, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-527,0,0,0,0,0,0,0, + -347,0,0,0,0,0,0,0,0,0, + -45,0,0,-524,0,0,-276,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -276,0,0,0,-327,0,-423,0,0,0, - 0,0,0,0,0,0,0,0,0,-522, 0,0,0,0,-288,0,0,0,0,0, - 0,0,0,0,0,0,0,-339,-345,0, - -354,0,0,-347,0,-458,-482,0,0,0, - 0,0,0,0,0,0,-527,0,0,0, - 0,-476,-477,-459,-362,0,0,0,0,0, - 0,0,0,0,-45,-365,-385,-405,0,0, - 0,0,-484,-388,0,0,0,0,0,0, - 0,0,0,-509,0,0,0,0,0,0, - 0,-389,0,0,0,0,0,0,0,0, - 0,0,0,-408,-395,0,0,0,-417,0, + 0,0,0,0,0,0,0,-395,0,0, + -362,0,-497,0,0,0,-365,0,-388,0, + 0,0,0,0,0,0,-77,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,-482, + 0,-78,0,0,0,-389,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-392,0,-78,0,0,0,0, + 0,0,0,0,-392,0,-505,0,0,0, + 0,0,0,0,0,0,0,0,0,-79, + 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,-504,0, - -505,0,0,0,0,0,0,0,0,0, - 0,0,0,-79,0,0,0,-495,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-213,0,0, - 0,0,-201,-393,-420,-457,0,0,0,0, - -399,-401,-404,-497,0,0,-299,0,0,0, - -411,-418,0,0,-61,0,-419,-439,0,-441, - 0,-80,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-81,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-443,-334, - -460,0,0,0,0,-444,-479,-488,0,-369, - 0,0,0,0,0,-483,-445,-492,0,0, - -427,0,0,0,0,-517,0,0,0,0, - -118,-446,0,0,0,0,0,0,0,0, - 0,-120,0,0,0,0,0,0,0,0, - 0,0,0,-448,0,0,0,0,0,0, - 0,0,0,0,-464,-466,0,0,0,0, - 0,0,0,0,-490,0,0,0,0,0, - 0,-524,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-494,0,0,0,0, - 0,0,0,0,0,0,-467,-500,-469,0, - -428,0,0,0,0,-474,0,0,0,0, - -478,-485,0,0,-493,-502,-498,0,0,0, - 0,-510,-515,0,0,-22,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-23,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-24, - 0,0,0,-526,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-25,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-26,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-27,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-63,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-75, + 0,0,-399,-401,0,0,-48,-73,-201,0, + 0,0,0,0,-339,-354,-385,-405,0,0, + 0,0,-299,0,0,0,-404,-411,0,0, + -61,0,-418,-419,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,-76,0,0,0,0,0,0,0,0, + -81,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-132,0,0,0,0,0,0, + 0,0,0,0,-439,-334,-441,0,0,0, + -495,-488,-408,-490,-443,-369,0,0,0,0, + -444,-417,0,0,0,0,-427,-445,0,0, + 0,-450,0,0,0,0,-118,-446,0,0, + 0,0,0,0,0,0,0,-120,0,0, + 0,0,0,0,0,0,0,0,0,-509, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-205,0,0,0,0, + 0,-448,0,0,0,0,0,0,0,0, + -494,0,0,0,0,0,0,-464,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-375,0,0, + 0,-498,0,0,0,0,0,0,0,0, + 0,0,-466,-467,-420,0,-428,0,0,0, + 0,0,0,0,0,0,-457,0,-460,0, + 0,-469,0,0,0,0,0,-474,0,-478, + 0,-22,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-430,0,0,0,0,0,0,0,0, - 0,0,0,0,-42,0,0,0,0,-336, - -499,0,0,0,0,0,-518,0,-46,0, - -317,-363,0,0,-370,0,-285,0,0,-523, + 0,0,0,-23,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-135,0,0,0,0,0,0,0, + 0,0,0,0,0,-24,0,0,0,-485, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-25,0,0, + 0,-493,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-26, + 0,0,0,-502,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-27,0,0,0,-510,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-63,0,0,0,-515,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-75,0,0,0,-526, + 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,-132, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-205,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-375,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-430,0,0, + 0,0,0,0,0,0,0,0,0,0, + -42,0,-479,-483,0,-336,0,0,-492,0, + 0,-500,0,0,-46,0,-317,-363,0,0, + -370,0,-285,0,0,-499,-518,0,0,0, + 0,0,0,0,0,0,0,0,-135,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,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,-356,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-149,0,0, - 0,0,0,0,0,0,0,0,0,0, - -407,0,0,-426,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-182,0,0,0,0,0, + 0,0,-523,0,0,0,-368,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-270,0,0,0,-416, - 0,0,0,0,0,0,-122,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-308,0, + 0,0,0,-149,0,0,0,0,0,0, + 0,0,0,0,0,0,-407,0,0,-356, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-489,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-125,0, + -182,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-225,0,0,0,0, - 0,0,0,0,-187,0,0,0,0,-240, - 0,0,0,0,-245,0,0,0,0,0, - 0,-17,-206,-473,0,0,0,0,0,0, - 0,0,0,0,-435,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-48, + 0,-270,0,0,0,-416,0,0,0,0, + 0,0,-122,0,0,0,-245,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-308,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-489, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-125,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-225,0,-293,0,0,0,0,0,0, + -187,0,0,0,0,-240,0,0,0,0, + 0,0,0,0,0,0,0,-17,-206,-473, + 0,0,0,0,0,0,0,0,0,0, + -435,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-267,0,0,0,0,0,0, - -341,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-193,0,0, - 0,0,0,-376,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-267, + 0,0,0,0,0,0,-341,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-324,0,-436,0,0,0,0,-124, + 0,0,0,-193,0,0,0,0,-426,-376, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-324,0, + -436,0,0,0,0,-124,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-192,0,0,0, + 0,0,0,0,0,0,0,-254,0,0, + 0,0,-283,0,0,0,0,-313,0,0, 0,0,0,0,0,0,0,0,0,0, - -192,0,0,0,0,0,0,0,0,0, - 0,-73,0,0,0,0,-283,0,0,0, - 0,-313,0,0,0,0,0,0,0,0, - 0,0,0,0,-338,0,0,0,0,0, + -338,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-344,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -344,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-293,0, - -343,0,0,0,0,0,0,0,0,-350, - 0,0,0,0,-381,0,0,0,-486,0, - 0,0,0,0,0,0,0,-382,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-400,0,0,0,0,-414,0, - 0,0,0,0,0,-491,0,0,0,0, - 0,0,-355,0,0,0,0,0,0,0, - 0,0,-432,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-343,0,0,0, + 0,0,0,0,0,-350,0,0,0,0, + -381,0,0,0,-486,0,0,0,0,0, + 0,0,0,-382,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-400, + 0,0,0,0,-414,0,0,0,0,0, + 0,-491,0,0,0,0,0,0,-355,0, + 0,0,0,0,0,0,0,0,-432,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-203,0,0,0, - -212,0,0,0,0,0,0,0,-259,0, - 0,0,-434,0,-425,0,0,0,0,0, - 0,0,-480,0,-450,0,0,0,0,0, - 0,0,-471,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-472,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -475,0,0,0,0,0,0,0,-516,0, - 0,0,0,0,0,0,0,0,0,0, - -68,0,0,0,0,0,-74,0,-105,0, - 0,0,0,0,0,0,0,0,0,0, - -216,0,0,0,0,0,-217,0,-218,0, - 0,0,0,0,-219,0,0,0,0,0, - 0,0,-254,0,0,0,0,0,-255,0, - 0,0,0,0,0,0,-292,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -329,0,-424,0,0,-506,0,0,0,0, + 0,0,-203,0,0,0,-212,0,0,0, + 0,0,0,0,-259,0,0,0,-434,0, + -425,0,0,0,0,0,0,0,-480,0, + -516,0,0,0,0,0,0,0,-471,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-472,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-475,0,0,0, + 0,0,0,0,-68,0,0,0,0,0, + 0,0,0,0,0,0,-74,0,0,0, + 0,0,-105,0,-216,0,0,0,0,0, + 0,0,0,0,0,0,-217,0,0,0, + 0,0,-218,0,-219,0,0,0,0,0, + -255,0,0,0,0,0,0,0,-292,0, + -329,0,0,0,0,0,0,0,0,0, + 0,0,-424,0,0,0,0,0,0,0, + 0,0,-506,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, @@ -539,534 +537,532 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface BaseAction { public final static char baseAction[] = { 169,4,133,82,82,35,35,66,66,38, - 38,40,40,193,193,194,194,195,195,1, - 1,15,15,15,15,15,15,15,15,16, - 16,16,14,11,11,6,6,6,6,6, - 6,2,64,64,5,5,12,12,44,44, - 134,134,135,55,55,43,17,17,17,17, + 38,40,40,193,1,1,15,15,15,15, + 15,15,15,15,16,16,16,14,11,11, + 6,6,6,6,6,6,2,64,64,5, + 5,12,12,44,44,134,134,135,55,55, + 43,17,17,17,17,17,17,17,17,17, 17,17,17,17,17,17,17,17,17,17, - 17,17,17,17,17,136,136,136,112,112, - 18,18,18,18,18,18,18,18,18,18, - 18,18,19,19,170,170,171,171,172,139, - 139,140,140,137,137,141,138,138,20,20, - 21,21,22,22,22,24,24,24,24,25, - 25,25,26,26,26,27,27,27,27,27, - 28,28,28,30,30,31,31,32,32,34, - 34,36,36,37,37,42,42,41,41,41, - 41,41,41,41,41,41,41,41,41,41, - 39,29,142,142,96,96,173,173,91,196, - 196,67,67,67,67,67,67,67,67,67, - 68,68,68,65,65,54,54,174,174,69, - 69,69,102,102,175,175,70,70,70,176, - 176,71,71,71,71,71,72,72,83,83, - 83,83,83,83,83,49,49,49,49,49, - 113,113,114,114,50,177,23,23,23,23, - 23,48,48,86,86,86,86,86,149,149, - 144,144,144,144,144,145,145,145,146,146, - 146,147,147,147,148,148,148,87,87,87, - 87,87,88,88,88,13,13,13,13,13, - 13,13,13,13,13,13,97,118,118,118, - 118,118,118,116,116,116,117,117,151,151, - 150,150,120,120,103,78,78,79,80,52, - 47,152,152,53,51,85,85,153,153,143, - 143,121,122,122,75,75,154,154,62,62, - 62,58,58,57,63,63,74,74,56,56, - 56,89,89,99,98,98,61,61,59,59, - 60,60,45,100,100,100,92,92,92,93, - 93,94,94,94,95,95,104,104,104,106, - 106,105,105,197,197,90,90,179,179,179, - 179,179,124,46,46,156,178,178,125,125, - 125,125,126,158,180,180,33,33,115,127, - 127,127,127,107,107,119,119,119,159,160, - 160,160,160,160,160,160,160,160,160,160, - 183,183,181,181,182,182,161,161,161,161, - 162,184,109,108,108,185,185,163,163,163, - 163,101,101,101,186,186,8,8,9,187, - 187,188,164,155,155,165,165,166,167,167, - 7,7,10,189,189,189,189,189,189,189, + 136,136,136,113,113,18,18,18,18,18, + 18,18,18,18,18,18,18,19,19,170, + 170,171,171,172,139,139,140,140,137,137, + 141,138,138,20,20,21,21,22,22,22, + 24,24,24,24,25,25,25,26,26,26, + 27,27,27,27,27,28,28,28,30,30, + 31,31,32,32,34,34,36,36,37,37, + 42,42,41,41,41,41,41,41,41,41, + 41,41,41,41,41,39,29,142,142,96, + 96,173,173,91,194,194,67,67,67,67, + 67,67,67,67,67,68,68,68,65,65, + 54,54,174,174,69,69,69,102,102,175, + 175,70,70,70,176,176,71,71,71,71, + 71,72,72,83,83,83,83,83,83,83, + 83,49,49,49,49,49,114,114,112,112, + 50,177,23,23,23,23,23,48,48,86, + 86,86,86,86,149,149,144,144,144,144, + 144,145,145,145,146,146,146,147,147,147, + 148,148,148,87,87,87,87,87,88,88, + 88,13,13,13,13,13,13,13,13,13, + 13,13,97,118,118,118,118,118,118,116, + 116,116,117,117,151,151,150,150,120,120, + 103,78,78,79,80,52,47,152,152,53, + 51,85,85,153,153,143,143,121,122,122, + 75,75,154,154,62,62,62,58,58,57, + 63,63,74,74,56,56,56,89,89,99, + 98,98,61,61,59,59,60,60,45,100, + 100,100,92,92,92,93,93,94,94,94, + 95,95,104,104,104,106,106,105,105,195, + 195,90,90,179,179,179,179,179,124,46, + 46,156,178,178,125,125,125,125,126,158, + 180,180,33,33,115,127,127,127,127,107, + 107,119,119,119,159,160,160,160,160,160, + 160,160,160,160,160,160,183,183,181,181, + 182,182,161,161,161,161,162,184,109,108, + 108,185,185,163,163,163,163,101,101,101, + 186,186,8,8,9,187,187,188,164,155, + 155,165,165,166,167,167,7,7,10,189, 189,189,189,189,189,189,189,189,189,189, 189,189,189,189,189,189,189,189,189,189, 189,189,189,189,189,189,189,189,189,189, - 189,189,189,189,189,76,81,81,168,168, - 129,129,130,130,130,130,130,130,3,131, - 131,128,128,110,110,84,77,73,157,157, - 111,111,190,190,190,132,132,123,123,191, - 191,169,169,1132,41,1729,1722,1090,2881,33, - 36,37,803,860,32,34,1720,31,29,56, - 873,110,81,82,112,923,1269,986,977,1038, - 1020,1159,1332,1082,1238,1201,276,1245,1212,1334, - 147,504,41,294,162,148,2508,41,790,38, - 2011,4128,33,36,37,803,860,63,34,1343, - 2396,41,790,38,235,1937,33,36,37,803, - 860,32,34,779,31,29,56,873,110,81, - 82,112,923,2493,986,977,1038,1020,2193,238, - 233,234,504,41,1490,387,2396,41,790,38, - 277,1937,33,36,37,803,860,32,34,779, - 31,29,56,873,110,81,82,90,245,248, - 251,254,3054,2482,1499,427,2659,41,790,38, - 676,4128,33,36,37,803,860,62,34,504, - 1543,1686,40,1427,2629,556,1980,3223,3651,3662, - 4207,4450,4269,1660,41,790,38,2830,1937,33, - 36,37,803,860,32,34,779,31,29,56, - 873,110,81,82,112,923,342,986,977,1038, - 1020,1159,67,1082,1238,1201,1668,1245,2765,1334, - 147,2149,1162,44,513,148,4165,683,3565,1650, - 41,790,38,1980,4671,33,36,37,803,860, - 65,34,2578,514,1660,41,790,38,2830,1937, - 33,36,37,803,860,32,34,779,31,29, - 56,873,110,81,82,112,923,342,986,977, - 1038,1020,1159,1927,1082,1238,1201,331,1245,1396, - 1334,147,331,41,282,513,148,4418,2828,3565, - 2622,718,66,509,3220,1113,3108,504,3108,1773, - 41,790,38,2624,514,47,36,37,803,860, - 2744,2761,756,1508,2784,1980,1660,41,790,38, - 2830,1937,33,36,37,803,860,32,34,779, - 31,29,56,873,110,81,82,112,923,342, - 986,977,1038,1020,1159,44,1082,1238,1201,1034, - 1245,313,1334,147,509,2771,92,513,148,106, - 2686,3565,683,331,41,282,1983,733,4667,375, - 1980,4491,2828,2577,1815,2784,514,1865,41,790, - 38,2830,1937,33,36,37,803,860,32,34, - 779,31,29,56,873,110,81,82,112,923, - 342,986,977,1038,1020,1159,1754,1082,1238,1201, - 2771,1245,44,1334,147,288,744,289,513,148, - 389,423,3565,417,375,2149,509,504,41,294, - 4165,2765,1790,41,790,38,352,514,46,36, - 37,803,860,815,2858,2662,3142,2784,1994,41, - 790,38,443,1937,33,36,37,803,860,32, - 34,779,31,29,56,873,110,81,82,112, - 923,373,986,977,1038,1020,1159,582,1082,1238, - 1201,331,1245,2759,1334,147,2488,510,3621,378, - 148,1729,41,790,38,2519,1937,33,36,37, - 803,860,32,34,779,31,29,56,873,110, - 81,82,112,923,3198,986,977,1038,1020,1159, - 1814,1082,1238,1201,592,1245,3545,1334,147,2457, - 3403,3621,378,148,2102,41,790,38,156,1937, - 33,36,37,803,860,32,34,779,31,29, - 56,873,110,81,82,112,923,2721,986,977, - 1038,1020,1159,1913,1082,1238,1201,2203,1245,93, - 1334,147,106,384,1849,162,148,494,1929,41, - 790,38,234,1937,33,36,37,803,860,32, - 34,779,31,29,56,873,110,81,82,112, - 923,401,986,977,1038,1020,1159,1980,1082,1238, - 1201,1088,1245,1980,1334,147,385,1849,3621,378, - 148,2216,41,393,2102,41,790,38,3414,1937, - 33,36,37,803,860,32,34,779,31,29, - 56,873,110,81,82,112,923,3120,986,977, - 1038,1020,1159,2771,1082,1238,1201,2717,1245,60, - 1334,147,504,41,2926,372,148,3627,434,1718, - 41,294,2396,41,790,38,556,1937,33,36, - 37,803,860,32,34,779,31,29,56,873, - 110,81,82,112,923,399,986,977,1038,1020, - 1159,1259,2454,376,1849,2102,41,790,38,2225, - 1937,33,36,37,803,860,32,34,779,31, - 29,56,873,110,81,82,112,923,3562,986, - 977,1038,1020,1159,355,1082,1238,1201,1140,1245, - 1236,1334,147,527,721,46,372,148,371,2102, - 41,790,38,1803,1937,33,36,37,803,860, - 32,34,779,31,29,56,873,110,81,82, - 112,923,1107,986,977,1038,1020,1159,44,1082, - 1238,1201,816,1245,1316,1334,147,1088,1596,4512, - 372,148,1034,2885,1801,41,790,38,2828,1937, - 33,36,37,803,860,32,34,779,31,29, - 56,873,110,81,82,112,923,160,986,977, - 1038,1020,1159,2847,1082,1238,1201,531,1245,370, - 1334,147,1260,2037,1415,146,148,4315,2102,41, - 790,38,161,1937,33,36,37,803,860,32, - 34,779,31,29,56,873,110,81,82,112, - 923,403,986,977,1038,1020,1159,493,1082,1238, - 1201,248,1245,368,1334,147,504,41,285,163, - 148,2102,41,790,38,1674,1937,33,36,37, - 803,860,32,34,779,31,29,56,873,110, - 81,82,112,923,519,986,977,1038,1020,1159, - 354,1082,1238,1201,2519,1245,1088,1334,147,527, - 2519,853,159,148,2102,41,790,38,439,1937, - 33,36,37,803,860,32,34,779,31,29, - 56,873,110,81,82,112,923,426,986,977, - 1038,1020,1159,870,1082,1238,1201,537,1245,681, - 1334,147,443,2519,2825,158,148,2102,41,790, - 38,1260,1937,33,36,37,803,860,32,34, - 779,31,29,56,873,110,81,82,112,923, - 2738,986,977,1038,1020,1159,456,1082,1238,1201, - 2519,1245,455,1334,147,97,3954,2825,157,148, - 2102,41,790,38,1260,1937,33,36,37,803, - 860,32,34,779,31,29,56,873,110,81, - 82,112,923,353,986,977,1038,1020,1159,323, - 1082,1238,1201,1355,1245,3976,1334,147,527,30, - 1474,156,148,2102,41,790,38,1260,1937,33, - 36,37,803,860,32,34,779,31,29,56, - 873,110,81,82,112,923,75,986,977,1038, - 1020,1159,57,1082,1238,1201,592,1245,2146,1334, - 147,4525,74,1317,155,148,2102,41,790,38, - 1260,1937,33,36,37,803,860,32,34,779, - 31,29,56,873,110,81,82,112,923,76, - 986,977,1038,1020,1159,44,1082,1238,1201,3045, - 1245,768,1334,147,1413,59,1708,154,148,2102, - 41,790,38,1260,1937,33,36,37,803,860, - 32,34,779,31,29,56,873,110,81,82, - 112,923,324,986,977,1038,1020,1159,44,1082, - 1238,1201,4296,1245,1270,1334,147,1788,58,4570, - 153,148,2102,41,790,38,2812,1937,33,36, - 37,803,860,32,34,779,31,29,56,873, - 110,81,82,112,923,325,986,977,1038,1020, - 1159,44,1082,1238,1201,812,1245,941,1334,147, - 1546,2132,2626,152,148,2102,41,790,38,2566, - 1937,33,36,37,803,860,32,34,779,31, - 29,56,873,110,81,82,112,923,2905,986, - 977,1038,1020,1159,44,1082,1238,1201,795,1245, - 592,1334,147,2596,2519,4575,151,148,2102,41, - 790,38,1260,1937,33,36,37,803,860,32, - 34,779,31,29,56,873,110,81,82,112, - 923,2698,986,977,1038,1020,1159,44,1082,1238, - 1201,4310,1245,592,1334,147,75,349,4588,150, - 148,2102,41,790,38,1260,1937,33,36,37, - 803,860,32,34,779,31,29,56,873,110, - 81,82,112,923,852,986,977,1038,1020,1159, - 44,1082,1238,1201,654,1245,326,1334,147,1980, - 94,1613,149,148,2059,41,790,38,2847,1937, - 33,36,37,803,860,32,34,779,31,29, - 56,873,110,81,82,112,923,939,986,977, - 1038,1020,1159,44,1082,1238,1201,2399,1245,3636, - 2899,168,2102,41,790,38,300,1937,33,36, - 37,803,860,32,34,779,31,29,56,873, - 110,81,82,112,923,932,986,977,1038,1020, - 1159,2896,1082,1238,1201,2468,1245,44,1334,147, - 592,3061,417,144,148,4609,327,1416,41,1490, - 387,2309,41,790,38,1764,1937,33,36,37, - 803,860,32,34,779,31,29,56,873,110, - 81,82,112,923,380,986,977,1038,1020,1159, - 55,1082,1238,1201,1026,1245,1175,1334,147,1911, - 1421,1851,193,148,2396,41,790,38,2847,1937, - 33,36,37,803,860,32,34,779,31,29, - 56,873,110,81,82,112,923,1710,986,977, - 1038,1020,1159,44,1082,1238,1201,3557,1245,2847, - 2899,168,2396,41,790,38,224,1937,33,36, - 37,803,860,32,34,779,31,29,56,873, - 110,81,82,112,923,388,986,977,1038,1020, - 1159,44,1082,1238,1201,4041,1245,304,2899,168, - 1790,41,790,38,2520,1260,1323,36,37,803, - 860,2396,41,790,38,293,1937,33,36,37, - 803,860,32,34,779,31,29,56,873,110, - 81,82,112,923,1499,986,977,1038,1020,1159, - 2051,1082,1238,1201,2718,1245,2847,2899,168,2396, - 41,790,38,3003,1937,33,36,37,803,860, - 32,34,779,31,29,56,873,110,81,82, - 112,923,756,986,977,1038,1020,1159,44,1082, - 1238,1201,2094,1245,183,2899,168,1790,41,790, - 38,843,1260,1858,36,37,803,860,2396,41, - 790,38,419,1937,33,36,37,803,860,32, - 34,779,31,29,56,873,110,81,82,112, - 923,2847,986,977,1038,1020,1159,2138,1082,1238, - 1201,2173,1245,930,2899,168,2439,41,790,38, - 418,1937,33,36,37,803,860,32,34,779, - 31,29,56,873,110,81,82,112,923,202, - 986,977,1038,1020,1159,44,1082,1238,1201,3620, - 1245,931,2899,168,3220,504,41,1490,387,1260, - 390,423,1718,3422,294,2396,41,790,38,421, - 1937,33,36,37,803,860,32,34,779,31, - 29,56,873,110,81,82,112,923,55,986, - 977,1038,1020,1159,73,1082,1238,1201,52,2610, - 504,3382,2225,2396,41,790,38,3729,1937,33, - 36,37,803,860,32,34,779,31,29,56, - 873,110,81,82,112,923,2988,986,977,1038, - 1020,1159,1715,1082,1238,2456,2396,41,790,38, - 2115,1937,33,36,37,803,860,32,34,779, - 31,29,56,873,110,81,82,112,923,2597, - 986,977,1038,1020,1159,1107,1082,2352,2396,41, - 790,38,1809,1937,33,36,37,803,860,32, - 34,779,31,29,56,873,110,81,82,112, - 923,2598,986,977,1038,2320,2396,41,790,38, - 2152,1937,33,36,37,803,860,32,34,779, - 31,29,56,873,110,81,82,112,923,756, - 986,977,1038,2339,1306,41,790,38,4047,4507, - 33,36,37,803,860,338,34,519,1227,41, - 790,38,4443,4507,33,36,37,803,860,338, - 34,2396,1543,790,1550,2235,1937,33,36,37, - 803,860,32,34,779,31,29,56,873,110, - 81,82,89,350,321,1980,1398,504,41,1490, - 387,319,1631,321,1586,2847,314,1588,756,504, - 41,1490,387,504,3741,319,1631,321,351,3201, - 314,1588,504,41,1686,2912,504,41,1921,1883, - 55,518,351,3047,2844,2771,343,1459,862,348, - 1421,589,430,201,3195,48,2911,392,423,521, - 343,1459,862,348,2396,41,790,38,1772,1937, - 33,36,37,803,860,32,34,779,31,29, - 56,873,110,81,82,112,923,1293,986,977, - 1976,2396,41,790,38,408,1937,33,36,37, - 803,860,32,34,779,31,29,56,873,110, - 81,82,112,923,1302,986,977,2007,788,504, - 41,1490,387,331,41,449,391,423,4604,2396, - 41,790,38,365,1937,33,36,37,803,860, - 32,34,779,31,29,56,873,110,81,82, - 112,923,276,986,977,2064,2396,41,790,38, - 394,1937,33,36,37,803,860,32,34,779, - 31,29,56,873,110,81,82,112,923,2847, - 986,977,2104,1639,41,790,38,4561,4541,33, - 36,37,803,860,338,34,1586,1260,1502,41, - 790,38,3032,4507,33,36,37,803,860,338, - 34,2404,1911,2727,262,2830,278,303,533,2161, - 41,790,38,1989,4671,33,36,37,803,860, - 32,34,72,507,2404,2167,400,231,2694,331, - 319,1631,321,160,1613,314,1588,44,2753,41, - 283,2830,184,2106,2771,316,3271,321,673,2176, - 207,218,3068,206,215,216,217,219,173,1911, - 342,75,4401,678,41,1490,387,932,286,172, - 1260,187,171,174,175,176,177,178,442,3551, - 3552,1,3565,2212,1512,533,2724,4141,592,4165, - 2830,360,932,4633,307,311,55,1593,2060,1724, - 2206,1878,3285,2830,231,71,1421,2856,1260,2404, - 160,2514,418,41,449,2664,1988,4604,2569,184, - 2106,2771,342,3434,1972,287,3561,207,218,3068, - 206,215,216,217,219,173,504,41,1490,387, - 332,44,2564,70,1333,4623,172,185,188,171, - 174,175,176,177,178,1534,41,790,38,4047, - 4507,33,36,37,803,860,338,34,2180,276, - 2482,41,1490,387,2757,2723,501,186,2741,1550, - 41,790,38,240,4541,33,36,37,803,860, - 338,34,504,41,1490,387,1746,1260,2456,1650, - 41,790,38,276,4671,33,36,37,803,860, - 64,34,319,1631,321,499,500,314,1588,379, - 2850,2187,41,1490,387,429,2753,41,280,351, - 522,235,2919,339,1260,332,319,1631,321,1677, - 1260,315,1588,504,41,1686,279,343,1459,862, - 348,2072,2668,351,55,523,238,233,234,44, - 2758,41,280,4112,1421,2663,2684,277,2519,61, - 1840,345,1459,862,348,60,2569,446,3551,3552, - 1458,41,1686,279,932,245,248,251,254,3054, - 3321,591,1104,2353,41,790,38,676,1937,33, - 36,37,803,860,32,34,779,31,29,56, - 873,91,81,82,3223,3651,3662,4207,4450,4269, - 2396,41,790,38,3345,1937,33,36,37,803, - 860,32,34,779,31,29,56,873,110,81, - 82,112,923,2519,986,2151,2396,41,790,38, - 101,1937,33,36,37,803,860,32,34,779, - 31,29,56,873,110,81,82,112,923,2803, - 986,2191,1488,41,3359,38,4561,4541,33,36, - 37,803,860,338,34,1337,2040,1260,504,41, - 1490,387,2232,1162,1190,41,2834,1717,2720,4305, - 2145,1113,3108,349,2830,2452,2918,533,1974,41, - 790,38,2633,4507,33,36,37,803,860,338, - 34,428,322,342,1260,102,231,55,331,319, - 1631,321,160,2235,314,1588,1911,1421,2486,1818, - 436,184,2106,2771,533,1240,3118,1748,1604,207, - 218,3068,206,215,216,217,219,173,1337,105, - 44,4401,932,231,3630,316,3271,321,172,160, - 3736,171,174,175,176,177,178,523,184,2106, - 2771,533,2789,328,334,1260,207,218,3068,206, - 215,216,217,219,173,504,3228,1686,79,1980, - 231,1711,298,50,2911,172,160,182,171,174, - 175,176,177,178,44,184,2106,2771,2830,3118, - 3398,288,1911,207,218,3068,206,215,216,217, - 219,173,610,414,3364,1873,533,342,1914,2771, - 1260,2794,172,4165,180,171,174,175,176,177, - 178,2719,3142,520,1157,231,333,334,1260,3565, - 2487,160,2564,1387,1458,41,1686,3237,2937,697, - 184,2106,2771,533,1634,2019,242,2409,207,218, - 3068,206,215,216,217,219,173,438,297,452, - 2485,44,231,447,332,4045,2945,172,160,181, - 171,174,175,176,177,178,784,184,2106,2771, - 533,2880,351,2876,2895,207,218,3068,206,215, - 216,217,219,173,235,504,41,1686,284,231, - 345,1459,862,348,172,160,191,171,174,175, - 176,177,178,871,184,2106,2771,533,525,243, - 233,234,207,218,3068,206,215,216,217,219, - 173,504,41,1686,281,2949,231,504,41,1490, - 387,172,160,3753,171,174,175,176,177,178, - 958,184,2106,2771,533,504,41,1686,3325,207, - 218,3068,206,215,216,217,219,173,44,2736, - 448,44,1298,231,2899,1111,1911,1911,172,160, - 196,171,174,175,176,177,178,1045,184,2106, - 2771,533,2847,2847,1260,1714,207,218,3068,206, - 215,216,217,219,173,44,2964,44,44,2830, - 231,1287,4144,2847,2511,172,160,190,171,174, - 175,176,177,178,1854,184,2106,2771,342,377, - 205,203,2947,207,218,3068,206,215,216,217, - 219,173,305,381,44,2216,41,393,3641,44, - 3565,299,172,4683,198,171,174,175,176,177, - 178,2396,41,790,38,1636,1937,33,36,37, - 803,860,32,34,779,31,29,56,873,110, - 81,82,112,923,1579,1763,2396,41,790,38, - 1806,1937,33,36,37,803,860,32,34,779, - 31,29,56,873,110,81,82,112,923,2847, - 1791,1844,41,790,38,4561,4507,33,36,37, - 803,860,338,34,2396,41,790,38,2152,1937, - 33,36,37,803,860,32,34,779,31,29, - 56,873,110,81,82,112,1834,4739,69,41, - 1490,387,3567,1703,2973,44,44,2830,4165,2380, - 1416,2921,2975,2976,2216,41,393,1337,319,1631, - 321,2969,2977,314,1588,1713,2404,2980,2971,925, - 2984,276,2396,41,790,38,673,1937,33,36, - 37,803,860,32,34,779,31,29,56,873, - 110,81,82,112,1877,2396,41,790,38,331, - 1937,33,36,37,803,860,32,34,779,31, - 29,56,873,110,81,82,112,1974,3118,88, - 2645,44,307,311,2830,3367,2986,44,1260,518, - 2771,3518,3198,359,2830,3052,44,2992,44,351, - 948,2832,3501,231,3646,2830,2847,2065,2952,3046, - 77,2147,2994,231,3561,330,334,343,1459,862, - 348,3752,2175,3229,231,341,209,218,3068,208, - 215,216,217,219,2998,2306,209,218,3068,208, - 215,216,217,219,225,1785,2999,209,218,3068, - 208,215,216,217,219,1260,210,212,214,295, - 296,3099,2847,220,211,213,210,212,214,295, - 296,3099,235,220,211,213,1260,210,212,214, - 295,296,3099,235,220,211,213,175,2936,2987, - 3266,44,2815,4101,3096,1034,2447,247,233,234, - 197,2993,940,4101,3182,3000,3005,1260,250,233, - 234,3303,3007,1119,4101,3366,2396,41,790,38, - 3384,1937,33,36,37,803,860,32,34,779, - 31,29,56,873,110,81,82,88,2396,41, - 790,38,2455,1937,33,36,37,803,860,32, - 34,779,31,29,56,873,110,81,82,87, - 2396,41,790,38,2935,1937,33,36,37,803, - 860,32,34,779,31,29,56,873,110,81, - 82,86,2396,41,790,38,5289,1937,33,36, - 37,803,860,32,34,779,31,29,56,873, - 110,81,82,85,2396,41,790,38,5289,1937, - 33,36,37,803,860,32,34,779,31,29, - 56,873,110,81,82,84,2396,41,790,38, - 5289,1937,33,36,37,803,860,32,34,779, - 31,29,56,873,110,81,82,83,2263,41, - 790,38,5289,1937,33,36,37,803,860,32, - 34,779,31,29,56,873,110,81,82,108, - 2396,41,790,38,5289,1937,33,36,37,803, - 860,32,34,779,31,29,56,873,110,81, - 82,114,2396,41,790,38,5289,1937,33,36, - 37,803,860,32,34,779,31,29,56,873, - 110,81,82,113,2396,41,790,38,5289,1937, - 33,36,37,803,860,32,34,779,31,29, - 56,873,110,81,82,111,2396,41,790,38, - 5289,1937,33,36,37,803,860,32,34,779, - 31,29,56,873,110,81,82,109,1349,41, - 3359,38,4561,4507,33,36,37,803,860,338, - 34,5289,1369,41,790,38,4561,4507,33,36, - 37,803,860,338,34,44,5289,5289,5289,1034, - 2864,1260,5289,5289,2830,5289,5289,1260,5289,44, - 5289,1337,2706,2830,5289,2724,2830,2149,5289,2830, - 1260,5289,4165,231,160,319,1631,321,5289,5289, - 314,1588,342,2178,1557,231,3159,3543,2404,319, - 1631,321,3702,1748,314,1588,209,218,3068,208, - 215,216,217,219,3565,3377,5289,673,209,218, - 3068,208,215,216,217,219,5289,5289,350,1677, - 5289,2739,3118,331,5289,2830,210,212,214,295, - 296,3099,1337,516,211,213,5289,5289,210,212, - 214,295,296,3099,231,515,211,213,765,41, - 1490,387,5289,308,311,501,2839,351,5289,3361, - 334,2925,5289,5289,1337,2830,5289,209,218,3068, - 208,215,216,217,219,343,1459,862,348,415, - 3364,55,5289,1772,231,504,41,1490,387,5289, - 5289,1421,2688,3118,498,500,5289,210,212,214, - 295,296,3099,3538,221,211,213,209,218,3068, - 208,215,216,217,219,5289,1316,5289,55,5289, - 2953,4512,5289,5289,2830,3118,5289,2769,1421,2951, - 3397,334,5289,3474,5289,5289,5289,210,212,214, - 295,296,3099,231,306,211,213,5289,5289,1369, - 41,790,38,4561,4507,33,36,37,803,860, - 338,34,3546,334,5289,5289,209,218,3068,208, - 215,216,217,219,1369,41,790,38,4561,4507, - 33,36,37,803,860,338,34,5289,235,2540, - 41,1490,387,5289,2723,5289,210,212,214,295, - 296,3099,241,495,211,213,319,1631,321,5289, - 5289,314,1588,253,233,234,1200,1674,5289,5289, - 2830,4679,276,5289,3047,765,41,1490,387,5289, - 2800,319,1631,321,2830,2149,314,1588,5289,231, - 4165,5289,44,44,2848,5289,533,2830,533,3746, - 235,5289,5289,2404,5289,44,5289,5289,55,2830, - 5289,5289,1063,404,2648,342,342,3638,1421,53, - 1188,160,5289,160,1034,239,233,234,342,425, - 2698,1514,184,2106,5289,5289,277,3565,3565,5289, - 5289,4559,405,406,407,295,296,3099,5289,164, - 3565,3274,1471,2152,246,249,252,255,3054,199, - 5289,5289,5289,5289,1275,505,676,3065,2830,4679, - 359,1388,41,790,38,5289,4541,33,36,37, - 803,860,338,34,2857,2952,3046,231,504,41, - 1490,387,5289,5289,1388,41,790,38,5289,4541, - 33,36,37,803,860,338,34,5289,5289,5289, - 1063,404,2648,1703,5289,44,1600,2830,4165,2830, - 2862,55,5289,5289,98,408,410,332,319,1631, - 321,1421,2886,317,1588,5289,2404,5289,342,5289, - 405,406,407,295,296,3099,5289,1979,5289,4394, - 332,319,1631,321,5289,5289,315,1588,5289,5289, - 3565,678,41,1490,387,3065,5289,5289,5289,331, - 4616,200,1188,5289,5289,503,1034,678,41,1490, - 387,235,678,41,1490,387,5289,5289,5289,5289, - 5289,5289,5289,5289,55,765,41,1490,387,5289, - 5289,164,2839,359,1421,53,256,233,234,5289, - 55,678,41,1490,387,55,1376,2065,2952,3046, - 1421,2880,5289,408,411,1421,53,5289,55,2048, - 5289,2149,2796,5289,4165,5289,4165,622,1421,53, - 678,41,1490,387,55,678,41,1490,387,2644, - 2147,5289,5289,2830,1421,3058,5289,5289,678,41, - 1490,387,5289,5289,5289,5289,2796,5289,1643,5289, - 5289,5289,342,55,678,41,1490,387,55,2489, - 41,1490,387,1421,53,4559,2889,331,1421,53, - 533,55,5289,2800,3728,2469,5289,2830,5289,5289, - 2852,1421,53,2516,41,1490,387,55,5289,342, - 5289,5289,55,3048,5289,160,2404,1421,53,5289, - 4424,5289,1421,53,5289,192,5289,5289,5289,3327, - 5289,4254,5289,5289,571,5289,55,504,41,1490, - 387,504,41,1490,387,5289,1421,53,5289,504, - 41,1490,387,2843,5289,2045,5289,2830,927,2830, - 5289,5289,5289,44,5289,2848,5289,2830,100,1034, - 55,5289,5289,44,55,5289,2404,533,342,5289, - 1421,2920,55,359,1421,1851,342,44,194,5289, - 526,533,1421,2694,160,5289,342,3145,2952,3046, - 3565,44,160,204,3383,533,5289,5289,3565,2940, - 342,5289,192,1034,5289,529,160,5289,4254,5289, - 5289,44,5289,530,342,1034,192,44,5289,44, - 160,1034,4254,1034,5289,5289,5289,5289,160,4031, - 192,44,5289,501,5289,1034,4254,44,166,44, - 160,1034,5289,1034,5289,44,160,5289,160,1034, - 1514,3499,5289,1188,5289,5289,1500,1034,2545,1188, - 160,5289,5289,1034,5289,3628,160,44,160,5289, - 2239,1034,498,500,160,5289,2647,5289,2730,3695, - 5289,1188,164,1188,2768,1034,44,1034,164,5289, - 1034,5289,5289,3716,5289,5289,160,5289,5289,5289, - 5289,5289,5289,5289,5289,5289,2928,5289,5289,5289, - 164,3685,164,5289,5289,160,5289,5289,5289,5289, - 5289,5289,5289,5289,5289,4037,5289,5289,5289,5289, - 5289,5289,5289,5289,5289,5289,3273,5289,5289,5289, - 5289,5289,5289,5289,5289,5289,5289,5289,5289,2894, - 5289,5289,5289,5289,5289,2900,5289,5289,5289,5289, - 5289,5289,5289,5289,5289,5289,5289,5289,5289,5289, - 5289,5289,4050,5289,5289,5289,5289,3084,5289,3218, - 5289,0,45,5309,0,45,5308,0,723,35, - 0,436,912,0,450,1278,0,44,669,0, - 44,5309,0,44,5308,0,2579,130,0,1, - 440,0,454,1414,0,453,1420,0,845,95, - 0,723,386,0,41,39,0,38,40,0, - 45,669,0,1,1024,0,1,5564,0,1, - 5563,0,1,5562,0,1,5561,0,1,5560, - 0,1,5559,0,1,5558,0,1,5557,0, - 1,5556,0,1,5555,0,1,5554,0,45, - 1,5309,0,45,1,5308,0,799,1,0, - 5526,244,0,5525,244,0,5626,244,0,5625, - 244,0,5553,244,0,5552,244,0,5551,244, - 0,5550,244,0,5549,244,0,5548,244,0, - 5547,244,0,5546,244,0,5564,244,0,5563, - 244,0,5562,244,0,5561,244,0,5560,244, - 0,5559,244,0,5558,244,0,5557,244,0, - 5556,244,0,5555,244,0,5554,244,0,45, - 5309,244,0,45,5308,244,0,5333,244,0, - 5309,54,0,5308,54,0,5295,1,0,5294, - 1,0,4350,240,0,38,387,0,35,386, - 0,49,5331,0,49,43,0,2579,132,0, - 2579,131,0,5618,441,0,1625,441,0,5333, - 1,0,45,1,0,53,43,0,1,96, - 0,497,3066,0,5333,1,232,0,45,1, - 232,0,232,413,0,5309,43,0,5308,43, - 0,5309,2,43,0,5308,2,43,0,5309, - 42,0,5308,42,0,5331,51,0,43,51, - 0,5299,402,0,5298,402,0,1,4229,0, - 1,3060,0,1,669,0,232,412,0,2801, - 318,0,5618,99,0,1625,99,0,41,78, - 0,1,5618,0,1,1625,0,4793,281,0, - 497,4042,0,1,232,0,232,223,0,232, - 222,0,1,1121,0,1,3435,0,5301,1, - 0,5297,1,0,1,232,3570,0,5298,232, - 0,3619,232,0,5301,382,0,5300,382,0, - 3727,232,0,10,12,0,8,10,12,0, - 189,3340,0,3804,382,0,8,12,0 + 189,189,189,189,189,189,189,189,189,189, + 189,76,81,81,168,168,129,129,130,130, + 130,130,130,130,3,131,131,128,128,110, + 110,84,77,73,157,157,111,111,190,190, + 190,132,132,123,123,191,191,169,169,1132, + 36,1718,1716,1118,2877,28,31,32,799,856, + 27,29,1682,26,24,51,919,105,76,77, + 107,973,72,1034,1016,1155,1153,1234,941,1197, + 1330,1241,272,1338,1524,1367,142,508,36,290, + 157,143,2093,36,786,33,1654,4124,28,31, + 32,799,856,58,29,1352,3168,36,786,33, + 231,1933,28,31,32,799,856,27,29,775, + 26,24,51,919,105,76,77,107,973,1668, + 1034,1016,1155,1153,2060,234,229,230,508,36, + 1503,383,3168,36,786,33,273,1933,28,31, + 32,799,856,27,29,775,26,24,51,919, + 105,76,77,85,241,244,247,250,3050,2478, + 2311,423,2101,36,786,33,672,4124,28,31, + 32,799,856,57,29,508,1539,1673,35,2266, + 2643,552,2069,3219,3647,3658,4203,4446,4265,2346, + 36,786,33,2826,1933,28,31,32,799,856, + 27,29,775,26,24,51,919,105,76,77, + 107,973,338,1034,1016,1155,1153,1234,62,1197, + 1330,1241,1664,1338,2479,1367,142,2062,1158,56, + 509,143,4161,679,3561,1231,36,786,33,2069, + 4667,28,31,32,799,856,60,29,1669,510, + 2346,36,786,33,2826,1933,28,31,32,799, + 856,27,29,775,26,24,51,919,105,76, + 77,107,973,338,1034,1016,1155,1153,1234,1923, + 1197,1330,1241,327,1338,942,1367,142,244,36, + 278,509,143,4414,2544,3561,1917,714,61,505, + 3191,1114,3095,508,3095,1521,36,786,33,2048, + 510,42,31,32,799,856,2740,2669,1564,1490, + 2705,2069,2346,36,786,33,2826,1933,28,31, + 32,799,856,27,29,775,26,24,51,919, + 105,76,77,107,973,338,1034,1016,1155,1153, + 1234,56,1197,1330,1241,1030,1338,309,1367,142, + 505,2767,87,509,143,101,2197,3561,2089,244, + 36,278,2157,729,4663,371,2069,4487,2756,2511, + 1811,2705,510,2557,36,786,33,2826,1933,28, + 31,32,799,856,27,29,775,26,24,51, + 919,105,76,77,107,973,338,1034,1016,1155, + 1153,1234,1750,1197,1330,1241,2767,1338,56,1367, + 142,284,740,285,509,143,385,419,3561,3316, + 371,2062,505,508,36,290,4161,2479,1737,36, + 786,33,348,510,41,31,32,799,856,811, + 2824,2658,3104,2705,2694,36,786,33,439,1933, + 28,31,32,799,856,27,29,775,26,24, + 51,919,105,76,77,107,973,369,1034,1016, + 1155,1153,1234,331,1197,1330,1241,327,1338,2755, + 1367,142,70,506,3739,374,143,2416,36,786, + 33,1022,1933,28,31,32,799,856,27,29, + 775,26,24,51,919,105,76,77,107,973, + 3194,1034,1016,1155,1153,1234,1356,1197,1330,1241, + 70,1338,3725,1367,142,2453,3214,3739,374,143, + 2818,36,786,33,65,1933,28,31,32,799, + 856,27,29,775,26,24,51,919,105,76, + 77,107,973,2717,1034,1016,1155,1153,1234,2155, + 1197,1330,1241,230,1338,88,1367,142,101,380, + 1845,157,143,490,2625,36,786,33,2511,1933, + 28,31,32,799,856,27,29,775,26,24, + 51,919,105,76,77,107,973,397,1034,1016, + 1155,1153,1234,2069,1197,1330,1241,2485,1338,2069, + 1367,142,381,1845,3739,374,143,2275,36,389, + 2818,36,786,33,3670,1933,28,31,32,799, + 856,27,29,775,26,24,51,919,105,76, + 77,107,973,3247,1034,1016,1155,1153,1234,2767, + 1197,1330,1241,2313,1338,507,1367,142,508,36, + 2907,368,143,4023,430,2187,36,290,3168,36, + 786,33,552,1933,28,31,32,799,856,27, + 29,775,26,24,51,919,105,76,77,107, + 973,71,1034,1016,1155,1153,1234,152,2189,372, + 1845,2818,36,786,33,2221,1933,28,31,32, + 799,856,27,29,775,26,24,51,919,105, + 76,77,107,973,3563,1034,1016,1155,1153,1234, + 351,1197,1330,1241,1280,1338,1337,1367,142,523, + 717,57,368,143,367,2818,36,786,33,1926, + 1933,28,31,32,799,856,27,29,775,26, + 24,51,919,105,76,77,107,973,1103,1034, + 1016,1155,1153,1234,56,1197,1330,1241,812,1338, + 2087,1367,142,2485,2278,4508,368,143,1030,1784, + 2489,36,786,33,2544,1933,28,31,32,799, + 856,27,29,775,26,24,51,919,105,76, + 77,107,973,155,1034,1016,1155,1153,1234,2241, + 1197,1330,1241,527,1338,366,1367,142,1913,2177, + 1159,141,143,4207,2818,36,786,33,317,1933, + 28,31,32,799,856,27,29,775,26,24, + 51,919,105,76,77,107,973,395,1034,1016, + 1155,1153,1234,489,1197,1330,1241,1639,1338,364, + 1367,142,508,36,281,158,143,2818,36,786, + 33,1670,1933,28,31,32,799,856,27,29, + 775,26,24,51,919,105,76,77,107,973, + 515,1034,1016,1155,1153,1234,350,1197,1330,1241, + 1022,1338,2485,1367,142,523,1022,1344,154,143, + 2818,36,786,33,435,1933,28,31,32,799, + 856,27,29,775,26,24,51,919,105,76, + 77,107,973,422,1034,1016,1155,1153,1234,866, + 1197,1330,1241,533,1338,1644,1367,142,439,1022, + 1427,153,143,2818,36,786,33,1913,1933,28, + 31,32,799,856,27,29,775,26,24,51, + 919,105,76,77,107,973,1188,1034,1016,1155, + 1153,1234,452,1197,1330,1241,1022,1338,451,1367, + 142,92,3950,2354,152,143,2818,36,786,33, + 1913,1933,28,31,32,799,856,27,29,775, + 26,24,51,919,105,76,77,107,973,349, + 1034,1016,1155,1153,1234,319,1197,1330,1241,1342, + 1338,3972,1367,142,523,25,1461,151,143,2818, + 36,786,33,1913,1933,28,31,32,799,856, + 27,29,775,26,24,51,919,105,76,77, + 107,973,2520,1034,1016,1155,1153,1234,52,1197, + 1330,1241,70,1338,2414,1367,142,4521,69,75, + 150,143,2818,36,786,33,1913,1933,28,31, + 32,799,856,27,29,775,26,24,51,919, + 105,76,77,107,973,162,1034,1016,1155,1153, + 1234,56,1197,1330,1241,3041,1338,1820,1367,142, + 249,54,336,149,143,2818,36,786,33,1913, + 1933,28,31,32,799,856,27,29,775,26, + 24,51,919,105,76,77,107,973,320,1034, + 1016,1155,1153,1234,56,1197,1330,1241,4292,1338, + 2661,1367,142,2497,53,4566,148,143,2818,36, + 786,33,1842,1933,28,31,32,799,856,27, + 29,775,26,24,51,919,105,76,77,107, + 973,321,1034,1016,1155,1153,1234,56,1197,1330, + 1241,808,1338,2150,1367,142,3369,2128,1473,147, + 143,2818,36,786,33,326,1933,28,31,32, + 799,856,27,29,775,26,24,51,919,105, + 76,77,107,973,500,1034,1016,1155,1153,1234, + 56,1197,1330,1241,791,1338,413,1367,142,1027, + 1022,1402,146,143,2818,36,786,33,1913,1933, + 28,31,32,799,856,27,29,775,26,24, + 51,919,105,76,77,107,973,1653,1034,1016, + 1155,1153,1234,56,1197,1330,1241,4306,1338,70, + 1367,142,239,345,4571,145,143,2818,36,786, + 33,1913,1933,28,31,32,799,856,27,29, + 775,26,24,51,919,105,76,77,107,973, + 940,1034,1016,1155,1153,1234,56,1197,1330,1241, + 650,1338,322,1367,142,2069,89,1927,144,143, + 2763,36,786,33,2167,1933,28,31,32,799, + 856,27,29,775,26,24,51,919,105,76, + 77,107,973,943,1034,1016,1155,1153,1234,56, + 1197,1330,1241,2395,1338,4024,2830,163,2818,36, + 786,33,399,1933,28,31,32,799,856,27, + 29,775,26,24,51,919,105,76,77,107, + 973,928,1034,1016,1155,1153,1234,2523,1197,1330, + 1241,2464,1338,56,1367,142,70,3057,1282,139, + 143,4584,323,1259,36,1503,383,3051,36,786, + 33,1760,1933,28,31,32,799,856,27,29, + 775,26,24,51,919,105,76,77,107,973, + 376,1034,1016,1155,1153,1234,50,1197,1330,1241, + 1520,1338,1446,1367,142,1888,1486,1847,188,143, + 3168,36,786,33,2167,1933,28,31,32,799, + 856,27,29,775,26,24,51,919,105,76, + 77,107,973,1697,1034,1016,1155,1153,1234,56, + 1197,1330,1241,3553,1338,2167,2830,163,3168,36, + 786,33,296,1933,28,31,32,799,856,27, + 29,775,26,24,51,919,105,76,77,107, + 973,384,1034,1016,1155,1153,1234,56,1197,1330, + 1241,4037,1338,220,2830,163,1737,36,786,33, + 1468,1913,1854,31,32,799,856,3168,36,786, + 33,289,1933,28,31,32,799,856,27,29, + 775,26,24,51,919,105,76,77,107,973, + 2311,1034,1016,1155,1153,1234,2047,1197,1330,1241, + 2456,1338,2167,2830,163,3168,36,786,33,2999, + 1933,28,31,32,799,856,27,29,775,26, + 24,51,919,105,76,77,107,973,1564,1034, + 1016,1155,1153,1234,56,1197,1330,1241,2090,1338, + 300,2830,163,1737,36,786,33,2524,1913,1984, + 31,32,799,856,3168,36,786,33,415,1933, + 28,31,32,799,856,27,29,775,26,24, + 51,919,105,76,77,107,973,2167,1034,1016, + 1155,1153,1234,2134,1197,1330,1241,1386,1338,404, + 2830,163,3223,36,786,33,414,1933,28,31, + 32,799,856,27,29,775,26,24,51,919, + 105,76,77,107,973,178,1034,1016,1155,1153, + 1234,56,1197,1330,1241,3616,1338,927,2830,163, + 3191,508,36,1503,383,1913,386,419,2187,3476, + 290,3168,36,786,33,417,1933,28,31,32, + 799,856,27,29,775,26,24,51,919,105, + 76,77,107,973,50,1034,1016,1155,1153,1234, + 68,1197,1330,1241,47,2348,508,3042,2221,3168, + 36,786,33,3742,1933,28,31,32,799,856, + 27,29,775,26,24,51,919,105,76,77, + 107,973,2728,1034,1016,1155,1153,1234,761,1197, + 1330,2316,3168,36,786,33,492,1933,28,31, + 32,799,856,27,29,775,26,24,51,919, + 105,76,77,107,973,505,1034,1016,1155,1153, + 1234,1103,1197,2187,3168,36,786,33,1409,1933, + 28,31,32,799,856,27,29,775,26,24, + 51,919,105,76,77,107,973,1374,1034,1016, + 1155,2100,3168,36,786,33,1100,1933,28,31, + 32,799,856,27,29,775,26,24,51,919, + 105,76,77,107,973,1564,1034,1016,1155,2147, + 1419,36,786,33,4043,4503,28,31,32,799, + 856,334,29,515,1825,36,786,33,4439,4503, + 28,31,32,799,856,334,29,3168,1539,786, + 1546,2231,1933,28,31,32,799,856,27,29, + 775,26,24,51,919,105,76,77,84,346, + 2013,2069,2061,508,36,1503,383,315,1627,317, + 1582,2167,310,1584,1564,508,36,1503,383,508, + 3750,315,1627,317,347,3138,310,1584,508,36, + 1673,2895,508,36,1917,1879,50,514,347,2896, + 1901,2767,339,1455,858,344,1486,585,426,197, + 3120,43,2854,388,419,517,339,1455,858,344, + 3168,36,786,33,1768,1933,28,31,32,799, + 856,27,29,775,26,24,51,919,105,76, + 77,107,973,1289,1034,1016,1830,3168,36,786, + 33,2096,1933,28,31,32,799,856,27,29, + 775,26,24,51,919,105,76,77,107,973, + 1220,1034,1016,1873,784,679,36,1503,383,244, + 36,445,387,419,4600,3168,36,786,33,361, + 1933,28,31,32,799,856,27,29,775,26, + 24,51,919,105,76,77,107,973,272,1034, + 1016,1928,3168,36,786,33,2335,1933,28,31, + 32,799,856,27,29,775,26,24,51,919, + 105,76,77,107,973,2167,1034,1016,1970,1539, + 36,786,33,4557,4537,28,31,32,799,856, + 334,29,1582,2167,1511,36,786,33,3028,4503, + 28,31,32,799,856,334,29,2521,1888,1665, + 262,2826,2948,196,529,1620,36,786,33,422, + 4667,28,31,32,799,856,27,29,72,503, + 2400,299,396,227,2246,327,315,1627,317,155, + 1927,310,1584,56,2018,36,279,2826,179,2177, + 2767,312,3270,317,669,682,202,214,3064,201, + 211,212,213,215,168,1888,338,239,4397,853, + 36,1503,383,928,282,167,1913,182,166,169, + 170,171,172,173,438,3533,3534,1,3561,2084, + 1924,529,2913,4137,70,4161,2826,356,928,4605, + 303,307,50,1589,2056,1986,597,2314,3317,2826, + 227,67,1486,2780,1913,2400,155,2302,766,36, + 445,2660,2015,4600,2792,179,2177,2767,338,3623, + 2021,283,3558,202,214,3064,201,211,212,213, + 215,168,508,36,1503,383,328,56,2560,66, + 1329,4619,167,180,183,166,169,170,171,172, + 173,1808,36,786,33,4043,4503,28,31,32, + 799,856,334,29,683,272,3278,36,1503,383, + 1972,2719,497,181,2737,1834,36,786,33,236, + 4537,28,31,32,799,856,334,29,1913,508, + 36,1503,383,1913,2160,1231,36,786,33,272, + 4667,28,31,32,799,856,59,29,315,1627, + 317,495,496,310,1584,375,2793,1399,36,1503, + 383,1888,272,65,1913,347,518,231,3212,274, + 1913,328,315,1627,317,2401,1913,311,1584,508, + 36,1673,275,339,1455,858,344,2403,2439,347, + 50,519,234,229,230,1445,2785,36,276,56, + 1486,2659,769,273,1022,55,1836,341,1455,858, + 344,318,2792,442,3533,3534,1364,36,1673,275, + 928,241,244,247,250,3050,335,294,2446,3113, + 36,786,33,672,1933,28,31,32,799,856, + 27,29,775,26,24,51,919,86,76,77, + 3219,3647,3658,4203,4446,4265,3168,36,786,33, + 3415,1933,28,31,32,799,856,27,29,775, + 26,24,51,919,105,76,77,107,973,1022, + 1034,1972,3168,36,786,33,96,1933,28,31, + 32,799,856,27,29,775,26,24,51,919, + 105,76,77,107,973,2790,1034,2003,1712,36, + 3355,33,4557,4537,28,31,32,799,856,334, + 29,2250,2167,1913,508,36,1503,383,2260,1158, + 1292,36,2757,1713,2474,4301,2877,1114,3095,349, + 2826,2565,2107,529,1890,36,786,33,2629,4503, + 28,31,32,799,856,334,29,425,100,338, + 200,97,227,50,327,315,1627,317,155,2231, + 310,1584,1888,1486,2482,1626,436,179,2177,2767, + 529,1236,3281,1572,2309,202,214,3064,201,211, + 212,213,215,168,2018,36,276,4397,928,227, + 1931,312,3270,317,167,155,3748,166,169,170, + 171,172,173,523,179,2177,2767,529,2402,324, + 330,1913,202,214,3064,201,211,212,213,215, + 168,508,3197,1673,74,2069,227,1707,293,45, + 2854,167,155,177,166,169,170,171,172,173, + 56,179,2177,2767,2826,2167,3548,284,3397,202, + 214,3064,201,211,212,213,215,168,610,410, + 3381,2449,529,338,2008,2767,1913,2591,167,4161, + 175,166,169,170,171,172,173,2715,3104,516, + 1319,227,56,198,2167,3561,4140,155,2560,2876, + 1364,36,1673,3224,2483,697,179,2177,2767,529, + 1615,2102,238,2006,202,214,3064,201,211,212, + 213,215,168,434,70,448,2167,56,227,4629, + 328,3626,295,167,155,176,166,169,170,171, + 172,173,784,179,2177,2767,529,2592,347,1913, + 2519,202,214,3064,201,211,212,213,215,168, + 231,2250,2518,2167,4691,227,341,1455,858,344, + 167,155,186,166,169,170,171,172,173,871, + 179,2177,2767,529,443,239,229,230,202,214, + 3064,201,211,212,213,215,168,508,36,1673, + 280,221,227,508,36,1503,383,167,155,3888, + 166,169,170,171,172,173,958,179,2177,2767, + 529,2545,3281,2263,1888,202,214,3064,201,211, + 212,213,215,168,56,1929,424,1913,4041,227, + 508,36,1503,383,167,155,191,166,169,170, + 171,172,173,1045,179,2177,2767,529,521,329, + 330,2549,202,214,3064,201,211,212,213,215, + 168,56,373,444,2167,2826,227,508,36,1673, + 277,167,155,185,166,169,170,171,172,173, + 301,179,2177,2767,338,508,36,1673,3341,202, + 214,3064,201,211,212,213,215,168,2275,36, + 389,1349,192,2275,36,389,3561,2581,167,2185, + 193,166,169,170,171,172,173,3168,36,786, + 33,1630,1933,28,31,32,799,856,27,29, + 775,26,24,51,919,105,76,77,107,973, + 1888,1725,3168,36,786,33,2585,1933,28,31, + 32,799,856,27,29,775,26,24,51,919, + 105,76,77,107,973,2196,1744,1976,36,786, + 33,4557,4503,28,31,32,799,856,334,29, + 3168,36,786,33,2597,1933,28,31,32,799, + 856,27,29,775,26,24,51,919,105,76, + 77,107,1759,2586,2613,3564,377,1410,1410,1914, + 3866,1030,1030,2826,4161,56,56,56,56,1294, + 1107,1283,4419,2250,315,1627,317,2649,2587,310, + 1584,1996,2400,2614,2615,921,159,159,3168,36, + 786,33,669,1933,28,31,32,799,856,27, + 29,775,26,24,51,919,105,76,77,107, + 1761,3168,36,786,33,327,1933,28,31,32, + 799,856,27,29,775,26,24,51,919,105, + 76,77,107,1787,3281,2654,1583,2656,303,307, + 2826,1100,1913,56,1913,88,1847,3637,3194,355, + 2826,2687,56,1596,1639,347,4679,1935,2688,227, + 3283,2826,2378,2061,2915,2922,1030,1240,2689,227, + 3558,326,330,339,1455,858,344,3225,1255,3262, + 227,337,204,214,3064,203,211,212,213,215, + 2172,155,204,214,3064,203,211,212,213,215, + 199,3175,2718,204,214,3064,203,211,212,213, + 215,1913,205,207,209,291,292,3062,2308,216, + 206,208,205,207,209,291,292,3062,231,216, + 206,208,1913,205,207,209,291,292,3062,231, + 216,206,208,2722,175,56,3299,56,2881,2376, + 4097,1030,514,243,229,230,1802,56,3092,56, + 4097,1412,2680,3470,246,229,230,2451,2681,3344, + 2660,4097,3168,36,786,33,3357,1933,28,31, + 32,799,856,27,29,775,26,24,51,919, + 105,76,77,83,3168,36,786,33,2302,1933, + 28,31,32,799,856,27,29,775,26,24, + 51,919,105,76,77,82,3168,36,786,33, + 1757,1933,28,31,32,799,856,27,29,775, + 26,24,51,919,105,76,77,81,3168,36, + 786,33,2723,1933,28,31,32,799,856,27, + 29,775,26,24,51,919,105,76,77,80, + 3168,36,786,33,2682,1933,28,31,32,799, + 856,27,29,775,26,24,51,919,105,76, + 77,79,3168,36,786,33,2756,1933,28,31, + 32,799,856,27,29,775,26,24,51,919, + 105,76,77,78,2995,36,786,33,1527,1933, + 28,31,32,799,856,27,29,775,26,24, + 51,919,105,76,77,103,3168,36,786,33, + 2368,1933,28,31,32,799,856,27,29,775, + 26,24,51,919,105,76,77,109,3168,36, + 786,33,5269,1933,28,31,32,799,856,27, + 29,775,26,24,51,919,105,76,77,108, + 3168,36,786,33,5269,1933,28,31,32,799, + 856,27,29,775,26,24,51,919,105,76, + 77,106,3168,36,786,33,5269,1933,28,31, + 32,799,856,27,29,775,26,24,51,919, + 105,76,77,104,1800,36,3355,33,4557,4503, + 28,31,32,799,856,334,29,5269,1629,36, + 786,33,4557,4503,28,31,32,799,856,334, + 29,56,5269,56,56,1030,2023,3621,944,56, + 2826,5269,2443,3497,5269,56,2811,2250,1671,2826, + 5269,2913,2826,2062,5269,2826,1913,1913,4161,227, + 155,315,1627,317,5269,5269,310,1584,338,1732, + 1553,227,5269,3539,2400,315,1627,317,5269,1572, + 310,1584,204,214,3064,203,211,212,213,215, + 3561,3155,3394,669,204,214,3064,203,211,212, + 213,215,5269,1913,346,1632,5269,1759,3281,327, + 5269,2826,205,207,209,291,292,3062,5269,512, + 206,208,5269,5269,205,207,209,291,292,3062, + 227,511,206,208,856,36,1503,383,3373,304, + 307,497,2835,347,5269,3546,330,2111,5269,5269, + 2250,2826,5269,204,214,3064,203,211,212,213, + 215,339,1455,858,344,411,3381,50,5269,1768, + 227,508,36,1503,383,5269,5269,1486,2684,5269, + 494,496,5269,205,207,209,291,292,3062,2565, + 217,206,208,204,214,3064,203,211,212,213, + 215,5269,2087,5269,50,5269,2199,4508,5269,5269, + 2826,3281,5269,1361,1486,2908,5269,2062,5269,3495, + 5269,5269,4161,205,207,209,291,292,3062,227, + 302,206,208,5269,5269,1629,36,786,33,4557, + 4503,28,31,32,799,856,334,29,3547,330, + 5269,5269,204,214,3064,203,211,212,213,215, + 1629,36,786,33,4557,4503,28,31,32,799, + 856,334,29,4294,231,3328,36,1503,383,5269, + 2719,5269,205,207,209,291,292,3062,237,491, + 206,208,315,1627,317,5269,5269,310,1584,249, + 229,230,1194,1670,2236,5269,2826,4675,272,4161, + 2896,856,36,1503,383,5269,1900,315,1627,317, + 2826,5269,310,1584,5269,227,5269,5269,56,56, + 2378,5269,529,2826,529,3844,231,5269,5269,2400, + 5269,56,5269,5269,50,2826,5269,5269,1059,400, + 2644,338,338,4029,1486,48,93,155,5269,155, + 4294,235,229,230,338,421,2694,1510,179,2177, + 5269,5269,273,3561,3561,5269,5269,5269,401,402, + 403,291,292,3062,5269,5269,3561,3282,1467,2148, + 242,245,248,251,3050,194,5269,5269,5269,5269, + 1300,501,672,3048,2826,4675,355,1241,36,786, + 33,5269,4537,28,31,32,799,856,334,29, + 2853,2915,2922,227,508,36,1503,383,5269,2250, + 1241,36,786,33,5269,4537,28,31,32,799, + 856,334,29,95,5269,5269,1059,400,2644,1914, + 5269,56,5269,2826,4161,2826,1628,50,5269,5269, + 5269,404,406,328,315,1627,317,1486,3114,313, + 1584,5269,2400,5269,338,5269,401,402,403,291, + 292,3062,5269,1975,5269,4390,328,315,1627,317, + 3281,5269,311,1584,5269,5269,3561,853,36,1503, + 383,3048,5269,5269,5269,327,4612,195,1410,5269, + 5269,499,1030,853,36,1503,383,231,853,36, + 1503,383,5269,5269,5269,5269,5269,3737,330,5269, + 50,856,36,1503,383,5269,5269,159,2835,355, + 1486,48,252,229,230,5269,50,853,36,1503, + 383,50,1372,2061,2915,2922,1486,2876,5269,404, + 407,1486,48,5269,50,5269,5269,2062,2849,5269, + 5269,5269,4161,618,1486,48,853,36,1503,383, + 50,853,36,1503,383,2659,2143,5269,5269,2826, + 1486,3054,5269,5269,853,36,1503,383,5269,5269, + 5269,5269,2849,5269,2884,5269,5269,5269,338,50, + 853,36,1503,383,50,2305,36,1503,383,1486, + 48,5269,2444,327,1486,48,529,50,5269,1900, + 4032,2465,5269,2826,5269,5269,3044,1486,48,2341, + 36,1503,383,50,5269,338,5269,5269,50,3323, + 5269,155,2400,1486,48,5269,4420,5269,1486,48, + 5269,187,5269,5269,5269,3360,5269,4250,5269,5269, + 567,5269,50,508,36,1503,383,508,36,1503, + 383,5269,1486,48,5269,508,36,1503,383,2929, + 5269,2373,5269,2826,923,2826,5269,5269,5269,56, + 5269,2473,5269,2826,5269,1030,50,5269,5269,56, + 50,5269,2400,529,338,5269,1486,2916,50,355, + 1486,1847,338,56,189,5269,522,529,1486,2690, + 155,5269,338,3141,2915,2922,3561,56,155,5269, + 161,529,5269,5269,3561,56,338,5269,187,1030, + 5269,525,155,5269,4250,5269,5269,56,5269,526, + 338,1030,187,56,5269,56,155,1030,4250,1030, + 5269,5269,5269,5269,155,4046,187,56,5269,497, + 5269,1030,4250,56,1510,56,155,1030,5269,1030, + 5269,1410,155,5269,155,1030,1496,3246,5269,56, + 5269,1410,2335,1030,2235,1030,155,5269,5269,5269, + 5269,3622,155,1410,155,5269,2726,1030,494,496, + 159,5269,2764,56,2848,3624,5269,1030,155,5269, + 159,5269,5269,5269,5269,5269,5269,5269,2924,3691, + 5269,5269,159,5269,5269,5269,5269,5269,5269,5269, + 5269,5269,155,5269,5269,5269,5269,3698,5269,5269, + 5269,5269,4047,5269,5269,5269,5269,5269,5269,5269, + 5269,5269,5269,5269,4093,5269,5269,5269,5269,5269, + 5269,5269,3343,5269,5269,5269,5269,2890,5269,5269, + 5269,5269,5269,5269,5269,5269,5269,3043,5269,5269, + 5269,5269,5269,5269,5269,5269,5269,5269,5269,3269, + 5269,0,40,5284,0,40,5283,0,719,30, + 0,432,908,0,446,1274,0,39,665,0, + 39,5284,0,39,5283,0,2575,125,0,1, + 436,0,450,1410,0,449,1416,0,841,90, + 0,719,382,0,36,34,0,33,35,0, + 40,665,0,1,1020,0,1,5540,0,1, + 5539,0,1,5538,0,1,5537,0,1,5536, + 0,1,5535,0,1,5534,0,1,5533,0, + 1,5532,0,1,5531,0,1,5530,0,40, + 1,5284,0,40,1,5283,0,795,1,0, + 5502,240,0,5501,240,0,5602,240,0,5601, + 240,0,5529,240,0,5528,240,0,5527,240, + 0,5526,240,0,5525,240,0,5524,240,0, + 5523,240,0,5522,240,0,5540,240,0,5539, + 240,0,5538,240,0,5537,240,0,5536,240, + 0,5535,240,0,5534,240,0,5533,240,0, + 5532,240,0,5531,240,0,5530,240,0,40, + 5284,240,0,40,5283,240,0,5308,240,0, + 5284,49,0,5283,49,0,5275,1,0,5274, + 1,0,3537,236,0,33,383,0,30,382, + 0,44,5306,0,44,38,0,2575,127,0, + 2575,126,0,5594,437,0,1621,437,0,5308, + 1,0,40,1,0,48,38,0,1,91, + 0,493,3061,0,5308,1,228,0,40,1, + 228,0,228,409,0,5284,38,0,5283,38, + 0,5284,2,38,0,5283,2,38,0,5284, + 37,0,5283,37,0,5306,46,0,38,46, + 0,5279,398,0,5278,398,0,1,4225,0, + 1,3056,0,1,665,0,228,408,0,2797, + 314,0,5594,94,0,1621,94,0,36,73, + 0,1,5594,0,1,1621,0,4498,277,0, + 493,4038,0,1,228,0,228,219,0,228, + 218,0,1,1117,0,1,3428,0,5281,1, + 0,5277,1,0,1,228,3617,0,5278,228, + 0,3625,228,0,5281,378,0,5280,378,0, + 3724,228,0,10,12,0,8,10,12,0, + 184,3336,0,3910,378,0,8,12,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1080,316 +1076,352 @@ 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,0,44,0,46,47,48,49, - 50,51,52,53,54,55,56,57,58,0, - 60,61,62,63,64,65,66,67,0,1, - 2,71,72,5,0,75,76,77,78,79, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,54,0,0,57,58,59, + 60,61,62,63,0,65,66,67,68,0, + 6,0,72,4,0,75,76,77,78,79, 80,81,82,83,84,85,86,0,1,2, 3,4,5,6,7,8,9,10,11,12, 13,14,15,16,17,18,19,20,21,22, 23,24,25,26,27,28,29,30,31,32, 33,34,35,36,37,38,39,40,41,42, - 0,44,0,46,47,48,49,50,51,52, - 53,54,55,56,57,58,101,60,61,62, - 63,64,65,66,67,0,97,98,71,72, - 0,0,75,76,77,78,79,80,81,82, + 43,44,45,46,47,48,49,50,51,52, + 53,54,71,69,57,58,59,60,61,62, + 63,0,65,66,67,68,100,93,94,72, + 9,0,75,76,77,78,79,80,81,82, 83,84,85,86,0,1,2,3,4,5, 6,7,8,9,10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25, 26,27,28,29,30,31,32,33,34,35, - 36,37,38,39,40,41,42,0,44,59, - 46,47,48,49,50,51,52,53,54,55, - 56,57,58,0,60,61,62,63,64,65, - 66,67,9,88,89,71,72,0,0,75, + 36,37,38,39,40,41,42,43,44,45, + 46,47,48,49,50,51,52,53,54,0, + 69,57,58,59,60,61,62,63,0,65, + 66,67,68,0,1,2,72,4,0,75, 76,77,78,79,80,81,82,83,84,85, 86,0,1,2,3,4,5,6,7,8, 9,10,11,12,13,14,15,16,17,18, 19,20,21,22,23,24,25,26,27,28, 29,30,31,32,33,34,35,36,37,38, - 39,40,41,42,0,44,59,46,47,48, - 49,50,51,52,53,54,55,56,57,58, - 0,60,61,62,63,64,65,66,67,9, - 0,1,2,72,4,0,75,76,77,78, + 39,40,41,42,43,44,45,46,47,48, + 49,50,51,52,53,54,0,69,57,58, + 59,60,61,62,63,0,65,66,67,68, + 0,6,103,104,105,0,75,76,77,78, 79,80,81,82,83,84,85,86,0,1, 2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19,20,21, 22,23,24,25,26,27,28,29,30,31, 32,33,34,35,36,37,38,39,40,41, - 42,0,44,0,46,47,48,49,50,51, - 52,53,54,55,56,57,58,0,60,61, - 62,63,64,65,66,67,0,0,1,2, - 72,4,0,75,76,77,78,79,80,81, + 42,43,44,45,46,47,48,49,50,51, + 52,53,54,0,69,57,58,59,60,61, + 62,63,9,65,66,67,68,101,93,94, + 90,0,92,75,76,77,78,79,80,81, 82,83,84,85,86,0,1,2,3,4, 5,6,7,8,9,10,11,12,13,14, 15,16,17,18,19,20,21,22,23,24, 25,26,27,28,29,30,31,32,33,34, - 35,36,37,38,39,40,41,42,0,44, - 73,46,47,48,49,50,51,52,53,54, - 55,56,57,58,101,60,61,62,63,64, - 65,66,67,0,1,2,90,72,92,0, + 35,36,37,38,39,40,41,42,43,44, + 45,46,47,48,49,50,51,52,53,54, + 69,0,57,58,59,60,61,62,63,0, + 65,66,67,68,0,6,0,0,1,2, 75,76,77,78,79,80,81,82,83,84, 85,86,0,1,2,3,4,5,6,7, 8,9,10,11,12,13,14,15,16,17, 18,19,20,21,22,23,24,25,26,27, 28,29,30,31,32,33,34,35,36,37, - 38,39,40,41,42,0,44,0,46,47, - 48,49,50,51,52,53,54,55,56,57, - 58,0,60,61,62,63,64,65,66,67, - 0,0,11,12,72,4,6,75,76,77, + 38,39,40,41,42,43,44,45,46,47, + 48,49,50,51,52,53,54,73,0,57, + 58,59,60,61,62,63,0,65,66,67, + 68,100,93,94,88,89,0,75,76,77, 78,79,80,81,82,83,84,85,86,0, 1,2,3,4,5,6,7,8,9,10, 11,12,13,14,15,16,17,18,19,20, 21,22,23,24,25,26,27,28,29,30, 31,32,33,34,35,36,37,38,39,40, - 41,42,0,44,0,46,47,48,49,50, - 51,52,53,54,55,56,57,58,0,60, - 61,62,63,64,65,66,67,0,1,2, - 0,72,0,3,75,76,77,78,79,80, + 41,42,43,44,45,46,47,48,49,50, + 51,52,53,54,0,69,57,58,59,60, + 61,62,63,0,65,66,67,68,0,1, + 2,0,0,5,75,76,77,78,79,80, 81,82,83,84,85,86,0,1,2,3, 4,5,6,7,8,9,10,11,12,13, 14,15,16,17,18,19,20,21,22,23, 24,25,26,27,28,29,30,31,32,33, - 34,35,36,37,38,39,40,41,42,59, - 44,59,46,47,48,49,50,51,52,53, - 54,55,56,57,58,0,60,61,62,63, - 64,65,66,67,0,1,2,0,72,0, - 3,75,76,77,78,79,80,81,82,83, + 34,35,36,37,38,39,40,41,42,43, + 44,45,46,47,48,49,50,51,52,53, + 54,69,71,57,58,59,60,61,62,63, + 0,65,66,67,68,0,1,2,0,4, + 10,75,76,77,78,79,80,81,82,83, 84,85,86,0,1,2,3,4,5,6, 7,8,9,10,11,12,13,14,15,16, 17,18,19,20,21,22,23,24,25,26, 27,28,29,30,31,32,33,34,35,36, - 37,38,39,40,41,42,59,44,73,46, - 47,48,49,50,51,52,53,54,55,56, - 57,58,0,60,61,62,63,64,65,66, - 67,0,0,11,12,72,4,0,75,76, + 37,38,39,40,41,42,43,44,45,46, + 47,48,49,50,51,52,53,54,0,71, + 57,58,59,60,61,62,63,0,65,66, + 67,68,0,1,2,0,1,2,75,76, 77,78,79,80,81,82,83,84,85,86, 0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,28,29, 30,31,32,33,34,35,36,37,38,39, - 40,41,42,0,44,0,46,47,48,49, - 50,51,52,53,54,55,56,57,58,0, - 60,61,62,63,64,65,66,67,0,0, - 0,90,72,92,4,75,76,77,78,79, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,54,0,0,57,58,59, + 60,61,62,63,0,65,66,67,68,0, + 0,0,0,3,3,75,76,77,78,79, 80,81,82,83,84,85,86,0,1,2, 3,4,5,6,7,8,9,10,11,12, 13,14,15,16,17,18,19,20,21,22, 23,24,25,26,27,28,29,30,31,32, 33,34,35,36,37,38,39,40,41,42, - 61,44,0,46,47,48,49,50,51,52, - 53,54,55,56,57,58,0,60,61,62, - 63,64,65,66,67,0,97,98,90,72, - 92,0,75,76,77,78,79,80,81,82, + 43,44,45,46,47,48,49,50,51,52, + 53,54,0,0,57,58,59,60,61,62, + 63,0,65,66,67,68,0,88,89,8, + 88,89,75,76,77,78,79,80,81,82, 83,84,85,86,0,1,2,3,4,5, 6,7,8,9,10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25, 26,27,28,29,30,31,32,33,34,35, - 36,37,38,39,40,41,42,0,44,0, - 46,47,48,49,50,51,52,53,54,55, - 56,57,58,0,60,61,62,63,64,65, - 66,67,0,1,2,90,72,92,0,75, + 36,37,38,39,40,41,42,43,44,45, + 46,47,48,49,50,51,52,53,54,0, + 0,57,58,59,60,61,62,63,0,65, + 66,67,68,0,1,2,90,0,92,75, 76,77,78,79,80,81,82,83,84,85, - 86,0,1,2,3,4,5,6,7,0, - 9,10,11,12,57,14,15,16,17,18, - 19,20,21,22,23,24,25,26,27,28, + 86,0,1,2,3,4,5,6,7,118, + 9,10,11,12,13,14,15,16,17,18, + 19,20,21,22,23,24,25,26,0,28, 29,30,31,32,33,34,35,36,37,38, - 39,40,41,42,0,44,0,46,47,48, - 49,50,51,52,53,54,55,0,57,0, - 1,2,61,4,91,8,65,66,67,0, - 1,2,3,4,5,6,7,8,9,10, - 121,0,13,14,15,16,17,18,19,20, - 21,22,23,24,25,0,0,1,2,3, - 4,5,43,7,8,0,1,2,99,4, - 122,6,43,44,9,46,47,48,49,50, - 51,52,53,54,55,56,45,58,0,0, - 61,74,88,89,65,66,67,8,0,0, - 71,72,73,4,0,1,2,3,4,5, - 6,7,8,9,10,59,87,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 74,0,103,104,105,0,1,2,3,4, - 5,6,7,44,9,0,0,43,44,4, - 46,47,48,49,50,51,52,53,54,55, - 56,0,58,74,3,61,0,0,70,65, - 66,67,0,1,2,71,72,73,0,1, - 2,3,4,5,0,7,0,3,100,44, - 6,87,8,9,59,11,12,13,0,1, - 2,3,4,5,69,7,75,103,104,105, - 26,27,46,47,68,43,0,0,1,2, - 3,4,5,6,7,0,9,0,3,45, - 14,15,16,17,18,19,20,21,22,23, - 24,25,0,59,0,0,1,2,103,104, - 105,73,68,69,70,71,0,73,74,3, - 44,0,46,47,48,49,50,51,52,53, - 54,55,88,89,90,91,92,93,94,95, - 96,97,98,99,100,101,102,0,1,2, - 106,107,108,109,110,111,112,113,114,115, - 116,117,118,0,120,121,3,62,63,6, - 68,8,9,69,11,12,13,0,1,2, - 3,4,5,6,7,69,9,100,0,26, - 27,0,1,2,3,4,5,0,7,8, - 3,0,1,2,13,4,102,6,45,0, - 9,107,108,109,110,111,112,113,114,115, - 116,117,59,0,1,2,3,4,5,0, - 7,68,69,70,71,0,73,74,3,0, - 1,2,3,4,5,6,7,59,9,0, - 73,88,89,90,91,92,93,94,95,96, - 97,98,99,100,101,102,0,0,0,106, - 107,108,109,110,111,112,113,114,115,116, - 117,118,59,120,121,0,1,2,3,4, - 5,6,7,0,9,10,11,12,59,14, - 15,16,0,18,19,20,21,22,23,24, - 25,26,27,28,29,30,31,32,33,34, - 35,36,37,38,39,40,41,42,0,1, - 2,3,4,5,6,7,68,9,70,0, - 1,2,57,4,5,43,7,62,63,0, - 1,2,3,4,5,6,7,72,9,10, - 11,12,69,14,15,16,0,18,19,20, - 21,22,23,24,25,26,27,28,29,30, - 31,32,33,34,35,36,37,38,39,40, - 41,42,0,1,2,0,4,0,6,0, - 8,9,0,0,0,3,57,0,1,2, - 8,62,63,0,10,8,3,68,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,28,14,15,16,0,18,19,20,21, - 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,36,37,38,39,40,41, - 42,59,0,1,2,68,74,5,102,7, - 68,64,70,107,0,57,74,0,43,0, - 1,2,64,91,5,0,7,88,89,71, - 0,1,2,3,4,5,6,7,0,9, - 10,11,12,0,14,15,16,0,18,19, - 20,21,22,23,24,25,26,27,28,29, - 30,31,32,33,34,35,36,37,38,39, - 40,41,42,0,1,2,3,4,5,0, - 7,8,68,0,70,68,13,57,45,0, - 43,8,62,63,0,1,2,3,4,5, - 6,7,0,9,10,11,12,0,14,15, - 16,68,18,19,20,21,22,23,24,25, - 26,27,28,29,30,31,32,33,34,35, - 36,37,38,39,40,41,42,99,95,96, - 0,0,0,0,1,2,3,4,8,6, - 8,57,9,70,71,13,62,63,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,69,14,15,16,68,18,19,20,21, - 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,36,37,38,39,40,41, - 42,0,59,0,1,2,3,4,5,0, - 7,71,0,1,2,57,4,8,0,0, - 8,3,64,0,1,2,3,4,5,6, - 7,8,9,10,11,12,0,14,15,16, - 0,18,19,20,21,22,23,24,25,26, + 39,40,41,42,43,44,45,46,47,48, + 49,50,51,52,53,54,0,0,57,58, + 59,4,61,0,1,2,3,4,5,6, + 7,8,9,10,11,12,13,14,15,16, + 17,18,19,20,21,22,23,24,119,0, 27,28,29,30,31,32,33,34,35,36, - 37,38,39,40,41,42,0,1,2,0, - 4,70,6,64,0,9,64,0,1,2, - 57,4,8,6,0,45,9,64,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,0,14,15,16,4,18,19,20,21, - 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,36,37,38,39,40,41, - 42,0,1,2,3,4,5,6,7,70, - 9,10,11,12,0,14,15,16,74,18, - 19,20,21,22,23,24,25,26,27,28, - 29,30,31,32,33,34,35,36,37,38, - 39,40,41,42,0,0,0,3,0,5, - 6,0,4,9,6,11,12,9,57,45, - 0,1,2,17,4,5,0,7,0,3, - 26,27,0,29,0,0,118,0,3,0, - 3,0,68,11,12,8,0,1,2,45, - 44,17,46,47,48,49,50,51,52,53, - 54,55,0,59,59,0,62,63,3,95, - 96,0,68,69,70,0,1,2,44,8, - 46,47,48,49,50,51,52,53,54,55, - 0,0,88,89,90,4,59,93,94,95, - 96,97,98,99,100,101,102,68,62,63, - 106,74,108,109,110,111,112,113,114,115, - 116,117,0,1,2,3,4,5,6,7, - 119,9,10,11,12,64,14,15,16,0, - 18,19,20,21,22,23,24,25,26,27, - 28,29,30,31,32,33,34,35,36,37, - 38,39,40,41,42,103,104,105,0,1, - 2,3,4,5,6,7,0,9,10,11, - 12,59,14,15,16,0,18,19,20,21, - 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,36,37,38,39,40,41, - 42,0,0,1,2,3,4,5,6,7, - 0,9,10,11,12,57,14,15,16,0, - 18,19,20,21,22,23,24,25,26,27, - 28,29,30,31,32,33,34,35,36,37, - 38,39,40,41,42,0,1,2,3,4, - 5,6,7,0,9,10,11,12,0,14, - 15,16,4,18,19,20,21,22,23,24, - 25,26,27,28,29,30,31,32,33,34, - 35,36,37,38,39,40,41,42,0,1, - 2,3,4,5,6,7,0,9,10,11, - 12,0,14,15,16,0,18,19,20,21, - 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,36,37,38,39,40,41, - 42,0,1,2,0,4,0,0,0,1, - 2,10,0,6,91,14,15,16,17,18, - 19,20,21,22,23,24,25,0,1,2, - 0,4,5,0,7,0,1,2,0,0, - 0,8,76,68,73,44,8,46,47,48, - 49,50,51,52,53,54,55,45,28,0, - 1,2,61,4,0,59,65,66,67,10, - 43,0,68,14,15,16,17,18,19,20, - 21,22,23,24,25,0,1,2,3,4, - 5,6,7,8,9,0,0,0,13,3, - 93,94,17,44,71,46,47,48,49,50, - 51,52,53,54,55,0,0,0,1,2, - 61,6,26,27,65,66,67,88,89,44, - 45,46,47,48,49,50,51,52,53,54, - 55,0,45,0,59,0,1,2,3,4, - 5,6,7,8,9,59,118,0,13,74, - 43,45,17,0,0,1,2,3,4,5, - 6,7,8,9,0,0,0,13,0,1, - 2,17,4,5,68,7,45,0,45,44, - 3,46,47,48,49,50,51,52,53,54, - 55,0,106,0,59,0,3,43,93,94, - 0,95,96,0,1,2,120,0,5,74, - 56,43,58,6,60,0,1,2,3,4, - 5,6,7,8,9,71,0,0,13,0, - 1,2,17,0,8,6,0,1,2,13, - 45,87,0,10,91,0,43,0,0,1, - 2,3,4,5,6,7,8,9,43,0, - 45,13,0,1,2,17,0,0,1,2, - 4,56,43,58,0,60,43,3,0,43, + 0,1,2,40,4,5,0,7,121,0, + 0,1,2,3,4,5,6,7,55,9, + 57,58,59,60,0,62,63,99,0,1, + 2,22,23,24,0,72,73,28,29,30, + 31,32,33,34,35,36,22,23,24,0, + 87,0,28,29,30,31,32,33,34,35, + 36,0,1,2,75,4,103,104,105,0, + 1,2,3,4,5,6,7,8,9,10, + 11,12,13,14,15,16,17,18,19,20, + 21,22,23,24,66,67,27,28,29,30, + 31,32,33,34,35,36,0,1,2,40, + 4,0,6,0,3,9,55,6,0,8, + 9,0,1,2,55,0,57,58,59,60, + 0,62,63,0,1,2,25,26,27,88, + 89,72,73,0,1,2,97,98,37,38, + 25,26,22,23,24,0,87,39,28,29, + 30,31,32,33,34,35,36,56,0,1, + 2,0,103,104,105,64,55,64,0,0, + 69,70,71,72,73,74,0,8,0,1, + 2,3,4,5,6,7,0,9,55,88, + 89,90,91,92,93,94,95,96,97,98, + 99,100,101,102,0,0,0,106,107,108, + 109,110,111,112,113,114,115,116,117,118, + 0,120,121,3,66,67,6,0,8,9, + 25,26,0,1,2,3,4,5,6,7, + 8,9,64,74,99,25,26,27,70,0, + 64,90,3,92,22,23,24,37,38,27, + 28,29,30,31,32,33,34,35,36,101, + 0,1,2,3,4,5,56,7,8,0, + 0,1,2,0,64,5,0,7,56,69, + 70,71,72,73,74,91,64,27,0,1, + 2,3,4,5,6,7,74,9,88,89, + 90,91,92,93,94,95,96,97,98,99, + 100,101,102,0,97,98,106,107,108,109, + 110,111,112,113,114,115,116,117,118,56, + 120,121,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,22,23,24,88,89,27, + 28,29,30,31,32,33,34,35,36,0, + 1,2,40,4,5,0,7,0,0,1, + 2,3,4,5,0,7,73,55,0,57, + 58,59,60,0,62,63,3,65,122,22, + 23,24,0,0,72,28,29,30,31,32, + 33,34,35,36,0,1,2,0,0,87, 0,1,2,3,4,5,6,7,8,9, - 45,43,45,13,61,17,70,17,0,0, - 93,94,87,0,56,43,58,0,60,0, - 43,45,0,1,2,88,89,8,73,71, - 0,0,44,43,46,47,48,49,50,51, - 52,53,54,55,0,87,56,0,58,5, - 60,0,1,2,3,4,5,6,7,8, - 9,71,0,0,13,43,0,0,17,0, - 1,2,10,10,8,8,45,87,70,13, - 13,0,69,0,1,2,3,4,5,6, - 7,8,9,74,43,0,13,0,17,0, - 17,4,3,8,0,43,0,56,0,58, - 91,60,43,0,0,0,8,4,0,56, - 73,13,71,61,0,44,43,46,47,48, - 49,50,51,52,53,54,55,0,87,56, - 0,58,45,60,0,1,2,3,4,5, - 6,7,8,9,0,0,0,13,45,0, - 45,17,8,8,0,70,0,8,0,74, - 87,3,0,1,2,3,4,5,6,7, - 8,9,45,0,70,13,3,43,0,17, - 0,73,0,69,0,0,0,3,3,0, - 56,45,58,0,60,0,0,0,3,45, - 70,0,0,0,3,43,3,0,0,0, - 3,3,3,119,0,71,0,0,56,74, - 58,87,60,74,0,69,0,45,0,0, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,70,0,27,28,29, + 30,31,32,33,34,35,36,64,70,56, + 40,0,1,2,3,4,5,6,7,55, + 9,25,26,56,56,55,56,57,58,59, + 60,0,62,63,3,65,0,1,2,8, + 102,5,90,7,92,107,108,109,110,111, + 112,113,114,115,116,117,0,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,0,73,27,28,29,30,31, + 32,33,34,35,36,64,40,0,40,0, + 1,2,3,4,5,74,7,0,1,2, + 3,4,5,55,7,57,58,59,60,0, + 62,63,3,65,0,1,2,3,4,5, + 72,7,8,0,1,2,3,4,5,6, + 7,0,9,0,3,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,64,73,27,28,29,30,31,32,33, + 34,35,36,64,0,0,40,0,64,0, + 1,2,3,4,5,8,7,64,74,0, + 0,55,119,57,58,59,60,8,62,63, + 10,65,0,0,1,2,0,4,72,6, + 8,8,9,0,1,2,0,4,0,6, + 0,0,9,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,72, + 60,27,28,29,30,31,32,33,34,35, + 36,0,56,74,40,0,1,2,3,4, + 5,55,7,8,56,0,74,74,3,55, + 91,57,58,59,60,0,62,63,3,65, + 70,73,27,8,91,0,72,0,1,2, + 3,4,0,6,0,3,9,0,1,2, + 0,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,0,0,27, + 28,29,30,31,32,33,34,35,36,64, + 0,0,40,3,69,4,71,6,0,74, + 9,64,55,102,69,55,8,55,107,57, + 58,59,60,0,62,63,0,65,0,0, + 4,8,0,1,2,0,4,5,3,7, + 0,1,2,56,4,5,0,7,22,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,0,68,27,28,29, + 30,31,32,33,34,35,36,55,0,0, + 40,68,64,4,0,55,0,1,2,0, + 4,55,8,4,8,55,0,57,58,59, + 60,0,62,63,8,65,0,1,2,8, + 4,27,6,0,0,9,0,1,2,103, + 104,105,0,27,8,0,0,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,39,68,27,28,29,30,31, + 32,33,34,35,36,0,1,2,40,4, + 0,6,71,72,9,0,1,2,8,0, + 5,0,56,55,68,57,58,59,60,0, + 62,63,0,65,69,0,71,27,3,0, + 8,0,23,24,0,1,2,0,1,2, + 3,4,5,6,7,87,9,10,11,12, + 13,14,15,16,17,18,19,20,21,0, + 55,0,25,26,0,1,2,0,0,8, + 0,71,0,0,37,38,39,4,41,42, + 43,44,45,46,47,48,49,50,51,52, + 53,54,73,71,0,70,74,3,61,62, + 0,1,2,66,67,0,1,2,3,4, + 5,6,7,0,9,10,11,12,13,14, + 15,16,17,18,19,20,21,0,56,56, + 25,26,0,72,64,8,69,0,71,71, + 8,69,37,38,39,8,41,42,43,44, + 45,46,47,48,49,50,51,52,53,54, + 0,0,0,3,27,3,61,95,96,56, + 0,66,67,0,69,0,1,2,3,4, + 5,6,7,8,9,10,11,12,13,14, + 15,16,17,18,19,20,21,0,0,72, + 25,26,0,0,6,0,74,0,0,4, + 8,8,37,38,39,0,41,42,43,44, + 45,46,47,48,49,50,51,52,53,54, + 27,70,0,0,1,2,61,64,0,6, + 8,3,0,68,0,0,4,72,0,1, + 2,3,4,5,6,7,0,9,10,11, + 12,13,14,15,16,17,18,19,20,21, + 0,56,64,25,26,5,74,0,0,0, + 0,3,0,0,69,37,38,39,55,41, + 42,43,44,45,46,47,48,49,50,51, + 52,53,54,0,0,61,74,3,0,61, + 95,96,56,0,66,67,0,1,2,3, + 4,5,6,7,0,9,10,11,12,13, + 14,15,16,17,18,19,20,21,56,56, + 0,25,26,3,0,0,0,0,71,70, + 0,0,69,37,38,39,0,41,42,43, + 44,45,46,47,48,49,50,51,52,53, + 54,91,0,0,0,3,73,61,95,96, + 56,73,66,67,0,1,2,3,4,5, + 6,7,8,9,10,11,12,13,14,15, + 16,17,18,19,20,21,56,56,0,25, + 26,3,56,0,70,0,71,71,0,0, + 0,37,38,39,4,41,42,43,44,45, + 46,47,48,49,50,51,52,53,54,0, + 0,0,22,70,70,61,0,0,0,3, + 3,3,68,0,1,2,3,4,5,6, + 7,8,9,10,11,12,13,14,15,16, + 17,18,19,20,21,0,0,0,25,26, + 3,0,0,0,3,3,73,0,73,70, + 37,38,39,0,41,42,43,44,45,46, + 47,48,49,50,51,52,53,54,0,91, + 0,70,73,0,61,0,76,0,0,0, + 0,68,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,25,26,0, + 1,2,0,1,2,0,39,0,0,37, + 38,39,0,41,42,43,44,45,46,47, + 48,49,50,51,52,53,54,0,1,2, + 3,4,5,6,7,70,9,10,11,12, + 13,14,15,16,17,18,19,20,21,55, + 0,0,25,26,55,0,119,55,0,0, + 0,56,0,0,37,38,39,0,41,42, + 43,44,45,46,47,48,49,50,51,52, + 53,54,0,0,0,0,0,4,61,3, + 118,5,6,0,0,9,11,12,13,14, + 15,16,17,18,19,20,21,22,23,24, + 0,25,26,28,29,30,31,32,33,34, + 35,36,0,37,38,0,0,41,0,0, + 0,0,10,0,0,0,0,4,0,56, + 0,0,56,0,0,0,0,0,10,0, + 64,0,66,67,0,69,70,71,0,0, + 0,0,40,0,0,0,0,0,0,0, + 0,0,0,0,88,89,90,55,40,93, + 94,95,96,97,98,99,100,101,102,56, + 0,0,106,55,108,109,110,111,112,113, + 114,115,116,117,0,1,2,3,4,5, + 6,7,0,9,10,11,12,13,14,15, + 16,17,18,19,20,21,0,0,0,25, + 26,0,0,0,0,0,0,0,0,0, + 0,37,38,39,0,41,42,43,44,45, + 46,47,48,49,50,51,52,53,54,0, + 0,1,2,3,4,5,6,7,64,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,0,0,0,25,26,0,0,0, + 0,0,0,0,0,0,0,37,38,39, + 0,41,42,43,44,45,46,47,48,49, + 50,51,52,53,54,0,0,0,0,0, + 0,61,0,1,2,3,4,5,6,7, + 0,9,10,11,12,13,14,15,16,17, + 18,19,20,21,0,0,0,25,26,0, + 0,0,0,0,0,0,0,0,0,37, + 38,39,0,41,42,43,44,45,46,47, + 48,49,50,51,52,53,54,0,1,2, + 3,4,5,6,7,0,9,10,11,12, + 13,14,15,16,17,18,19,20,21,0, + 0,0,25,26,0,0,0,0,0,0, + 0,0,0,0,37,38,39,0,41,42, + 43,44,45,46,47,48,49,50,51,52, + 53,54,0,1,2,3,4,5,6,7, + 0,9,10,11,12,13,14,15,16,17, + 18,19,20,21,0,0,0,25,26,0, + 0,0,0,0,0,0,0,0,0,37, + 38,39,0,41,42,43,44,45,46,47, + 48,49,50,51,52,53,54,0,1,2, + 0,4,0,0,0,0,0,10,11,12, + 13,14,15,16,17,18,19,20,21,22, + 23,24,0,0,0,28,29,30,31,32, + 33,34,35,36,0,0,0,40,3,0, + 0,0,0,0,0,0,0,0,1,2, + 0,4,0,0,57,58,59,10,11,12, + 13,14,15,16,17,18,19,20,21,22, + 23,24,37,38,0,28,29,30,31,32, + 33,34,35,36,0,0,0,40,0,1, + 2,3,4,5,6,7,8,9,0,64, + 0,0,0,0,57,58,59,0,0,0, + 22,23,24,0,0,27,28,29,30,31, + 32,33,34,35,36,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,70,87, - 0,0,28,73,0,69,0,0,69,0, - 0,0,45,0,0,0,73,0,0,73, - 0,69,0,0,0,0,0,0,0,0, - 0,0,0,69,0,69,0,0,0,0, + 0,106,0,0,0,0,0,0,0,0, + 0,0,64,0,0,120,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,119,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0 + 0,0 }; }; public final static byte termCheck[] = TermCheck.termCheck; @@ -1397,317 +1429,351 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TermAction { public final static char termAction[] = {0, - 5289,5254,5233,5233,5233,5233,5233,5233,5270,5233, - 1,1,1,5258,1,1,1,1,1,1, + 5269,5234,5213,5213,5213,5213,5213,5213,5250,5213, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5238,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,141,1,1,1,1, - 1,1,1,1,1,1,2473,1,2494,133, - 3396,1,1,1,5300,1,1,1,5289,5308, - 5309,5296,5468,3155,383,1113,3674,2465,2196,2181, - 3568,3063,3652,2280,3637,4695,3626,10,5273,5273, - 5273,5273,5273,5273,5273,5273,5273,5273,5273,5273, - 5273,5273,5273,5273,5273,5273,5273,5273,5273,5273, - 5273,5273,5273,5273,5273,5273,5273,5273,5273,5273, - 5273,5273,5273,5273,5273,5273,5273,5273,5273,5273, - 5289,5273,5289,5273,5273,5273,5273,5273,5273,5273, - 5273,5273,5273,5273,5273,5273,2283,5273,5273,5273, - 5273,5273,5273,5273,5273,125,2376,2348,5273,5273, - 454,5289,5273,5273,5273,5273,5273,5273,5273,5273, - 5273,5273,5273,5273,8,5276,5276,5276,5276,5276, - 5276,5276,5276,5276,5276,5276,5276,5276,5276,5276, - 5276,5276,5276,5276,5276,5276,5276,5276,5276,5276, - 5276,5276,5276,5276,5276,5276,5276,5276,5276,5276, - 5276,5276,5276,5276,5276,5276,5276,5289,5276,4952, - 5276,5276,5276,5276,5276,5276,5276,5276,5276,5276, - 5276,5276,5276,135,5276,5276,5276,5276,5276,5276, - 5276,5276,590,2980,3006,5276,5276,453,5289,5276, - 5276,5276,5276,5276,5276,5276,5276,5276,5276,5276, - 5276,5289,5254,5233,5233,5233,5233,5233,5233,5261, - 5233,1,1,1,5258,1,1,1,1,1, + 1,1,1,1,1,1,134,1,1,1, + 2469,1,5443,2490,114,3437,1,1,5280,40, + 3591,156,5276,5308,5269,1109,3682,2625,2192,2461, + 3615,3059,3648,2276,3638,3642,3631,10,5253,5253, + 5253,5253,5253,5253,5253,5253,5253,5253,5253,5253, + 5253,5253,5253,5253,5253,5253,5253,5253,5253,5253, + 5253,5253,5253,5253,5253,5253,5253,5253,5253,5253, + 5253,5253,5253,5253,5253,5253,5253,5253,5253,5253, + 5253,5253,5253,5253,5253,5253,5253,5253,5253,5253, + 5253,5253,1334,2450,5253,5253,5253,5253,5253,5253, + 5253,130,5253,5253,5253,5253,2312,3568,3510,5253, + 586,5269,5253,5253,5253,5253,5253,5253,5253,5253, + 5253,5253,5253,5253,8,5256,5256,5256,5256,5256, + 5256,5256,5256,5256,5256,5256,5256,5256,5256,5256, + 5256,5256,5256,5256,5256,5256,5256,5256,5256,5256, + 5256,5256,5256,5256,5256,5256,5256,5256,5256,5256, + 5256,5256,5256,5256,5256,5256,5256,5256,5256,5256, + 5256,5256,5256,5256,5256,5256,5256,5256,5256,431, + 2452,5256,5256,5256,5256,5256,5256,5256,379,5256, + 5256,5256,5256,5269,4905,4902,5256,5308,5269,5256, + 5256,5256,5256,5256,5256,5256,5256,5256,5256,5256, + 5256,5269,5234,5213,5213,5213,5213,5213,5213,5241, + 5213,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5238,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5289,1,4955,1,1,1, - 1,1,1,1,1,1,1,2473,1,2494, - 136,3396,1,1,1,5300,1,1,1,590, - 5289,4925,4922,5468,5333,5289,1113,3674,2465,2196, - 2181,3568,3063,3652,2280,3637,4695,3626,5289,5254, - 5233,5233,5233,5233,5233,5233,5261,5233,1,1, - 1,5258,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,136,2541,1,1, + 1,2469,1,5443,2490,116,3437,1,1,5280, + 110,3591,5696,5697,5698,5269,1109,3682,2625,2192, + 2461,3615,3059,3648,2276,3638,3642,3631,5269,5234, + 5213,5213,5213,5213,5213,5213,5241,5213,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5238,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5289,1,142,1,1,1,1,1,1, - 1,1,1,1,2473,1,2494,5289,3396,1, - 1,1,5300,1,1,1,115,5289,4925,4922, - 5468,5333,5289,1113,3674,2465,2196,2181,3568,3063, - 3652,2280,3637,4695,3626,5289,5254,5233,5233,5233, - 5233,5233,5233,5261,5233,1,1,1,5258,1, + 1,1,1,131,2606,1,1,1,2469,1, + 5443,2490,586,3437,1,1,5280,2279,3568,3510, + 3906,5269,3928,1109,3682,2625,2192,2461,3615,3059, + 3648,2276,3638,3642,3631,5269,5234,5213,5213,5213, + 5213,5213,5213,5241,5213,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,5238,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5289,1, - 1892,1,1,1,1,1,1,1,1,1, - 1,2473,1,2494,2283,3396,1,1,1,5300, - 1,1,1,5289,5308,5309,3910,5468,3932,5289, - 1113,3674,2465,2196,2181,3568,3063,3652,2280,3637, - 4695,3626,5289,5254,5233,5233,5233,5233,5233,5233, - 5261,5233,1,1,1,5258,1,1,1,1, + 5773,135,1,1,1,2469,1,5443,2490,115, + 3437,1,1,5280,5269,3591,120,5269,5283,5284, + 1109,3682,2625,2192,2461,3615,3059,3648,2276,3638, + 3642,3631,5269,5234,5213,5213,5213,5213,5213,5213, + 5241,5213,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5238, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5289,1,5289,1,1, - 1,1,1,1,1,1,1,1,2473,1, - 2494,122,3396,1,1,1,5300,1,1,1, - 5289,45,3476,3451,5468,5333,2013,1113,3674,2465, - 2196,2181,3568,3063,3652,2280,3637,4695,3626,5289, - 5254,5233,5233,5233,5233,5233,5233,5261,5233,1, - 1,1,5258,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1888,5269,1, + 1,1,2469,1,5443,2490,5269,3437,1,1, + 5280,2312,3568,3510,2976,3002,5269,1109,3682,2625, + 2192,2461,3615,3059,3648,2276,3638,3642,3631,5269, + 5234,5213,5213,5213,5213,5213,5213,5241,5213,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,5238,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,5289,1,5289,1,1,1,1,1, - 1,1,1,1,1,2473,1,2494,5289,3396, - 1,1,1,5300,1,1,1,5289,5103,5100, - 346,5468,347,1797,1113,3674,2465,2196,2181,3568, - 3063,3652,2280,3637,4695,3626,5289,5254,5233,5233, - 5233,5233,5233,5233,5261,5233,1,1,1,5258, + 1,1,1,1,5269,5702,1,1,1,2469, + 1,5443,2490,5269,3437,1,1,5280,5269,5283, + 5284,507,5269,3151,1109,3682,2625,2192,2461,3615, + 3059,3648,2276,3638,3642,3631,5269,5234,5213,5213, + 5213,5213,5213,5213,5241,5213,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,5238,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1854, - 1,1854,1,1,1,1,1,1,1,1, - 1,1,2473,1,2494,424,3396,1,1,1, - 5300,1,1,1,54,5103,5100,318,5468,5289, - 5209,1113,3674,2465,2196,2181,3568,3063,3652,2280, - 3637,4695,3626,5289,5254,5233,5233,5233,5233,5233, - 5233,5261,5233,1,1,1,5258,1,1,1, + 1,5716,873,1,1,1,2469,1,5443,2490, + 298,3437,1,1,5280,5269,4905,4902,357,5308, + 5566,1109,3682,2625,2192,2461,3615,3059,3648,2276, + 3638,3642,3631,5269,5234,5213,5213,5213,5213,5213, + 5213,5241,5213,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 5238,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5269,2657, + 1,1,1,2469,1,5443,2490,5269,3437,1, + 1,5280,5269,5083,5080,49,5083,5080,1109,3682, + 2625,2192,2461,3615,3059,3648,2276,3638,3642,3631, + 5269,5234,5213,5213,5213,5213,5213,5213,5241,5213, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5238,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1854,1,4196,1, - 1,1,1,1,1,1,1,1,1,2473, - 1,2494,124,3396,1,1,1,5300,1,1, - 1,118,5289,3476,3451,5468,2371,5289,1113,3674, - 2465,2196,2181,3568,3063,3652,2280,3637,4695,3626, - 5289,5254,5233,5233,5233,5233,5233,5233,5261,5233, - 1,1,1,5258,1,1,1,1,1,1, + 1,1,1,1,1,5269,5269,1,1,1, + 2469,1,5443,2490,5269,3437,1,1,5280,124, + 5269,5269,123,4021,3537,1109,3682,2625,2192,2461, + 3615,3059,3648,2276,3638,3642,3631,5269,5234,5213, + 5213,5213,5213,5213,5213,5241,5213,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,5238,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5289,1,5289,1,1,1,1, - 1,1,1,1,1,1,2473,1,2494,134, - 3396,1,1,1,5300,1,1,1,117,5289, - 1,3910,5468,3932,387,1113,3674,2465,2196,2181, - 3568,3063,3652,2280,3637,4695,3626,5289,5254,5233, - 5233,5233,5233,5233,5233,5261,5233,1,1,1, - 5258,1,1,1,1,1,1,1,1,1, + 1,1,5269,5269,1,1,1,2469,1,5443, + 2490,5269,3437,1,1,5280,113,2976,3002,5273, + 2976,3002,1109,3682,2625,2192,2461,3615,3059,3648, + 2276,3638,3642,3631,5269,3617,1,1,1,1, + 1,1,3625,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,5278,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 3554,1,5289,1,1,1,1,1,1,1, - 1,1,1,2473,1,2494,5289,3396,1,1, - 1,5300,1,1,1,116,2376,2348,3910,5468, - 3932,5289,1113,3674,2465,2196,2181,3568,3063,3652, - 2280,3637,4695,3626,5289,3570,1,1,1,1, - 1,1,3619,1,1,1,1,5298,1,1, + 1,1,1,1,1,1,1,1,1,5269, + 5269,1,1,1,2469,1,5443,2490,5269,3437, + 1,1,5280,287,5283,5284,3906,5269,3928,1109, + 3682,2625,2192,2461,3615,3059,3648,2276,3638,3642, + 3631,40,4905,4902,4318,795,2427,3796,3056,5272, + 3818,859,5532,5530,5539,5538,5534,5535,5533,5536, + 5537,5540,5531,5528,5601,5602,3774,3752,132,5522, + 5529,5525,5501,5527,5526,5523,5524,5502,3862,3840, + 5289,5660,622,564,738,5291,576,2949,609,5292, + 5290,558,5285,5287,5288,5286,5269,5269,862,5661, + 5662,2367,1290,5269,5138,5138,228,5134,228,228, + 228,5142,228,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,3723,1, + 228,1,1,1,1,1,1,1,1,1, + 5269,4905,4902,1,795,665,5269,3056,4901,223, + 5269,4905,4902,4225,795,665,1621,3056,5131,5594, + 1,1,1,1165,224,5674,2308,1168,5269,5283, + 5284,5528,5601,5602,5269,409,228,5522,5529,5525, + 5501,5527,5526,5523,5524,5502,5528,5601,5602,128, + 5761,122,5522,5529,5525,5501,5527,5526,5523,5524, + 5502,390,4905,4902,3545,5308,5696,5697,5698,5269, + 5138,5138,228,5134,228,228,228,5186,228,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,3884,809,228,1,1,1, + 1,1,1,1,1,1,436,1,1,1, + 1,34,4929,450,4944,4929,40,4944,5269,4944, + 4944,5269,8593,8593,5131,117,1,1,1,1165, + 225,5674,2308,37,5162,5159,4944,4944,4944,2976, + 3002,408,228,44,5104,5104,2372,2344,4944,4944, + 3472,3447,5528,5601,5602,133,5761,2739,5522,5529, + 5525,5501,5527,5526,5523,5524,5502,4944,5269,5083, + 5080,112,5696,5697,5698,4944,5306,4932,137,1, + 4944,4944,4944,4944,4944,4944,5269,160,362,4993, + 4989,2414,4997,665,1,3056,449,1,5101,4944, + 4944,4944,4944,4944,4944,4944,4944,4944,4944,4944, + 4944,4944,4944,4944,353,119,5269,4944,4944,4944, + 4944,4944,4944,4944,4944,4944,4944,4944,4944,4944, + 5269,4944,4944,4947,3884,809,4947,129,4947,4947, + 3472,3447,30,382,382,5098,382,382,5098,382, + 5098,5098,1850,160,1168,4947,4947,4947,1120,90, + 4935,3906,4938,3928,382,382,382,4947,4947,5098, + 382,382,382,382,382,382,382,382,382,2279, + 1,4993,4989,5177,4997,5183,4947,5180,5279,121, + 39,4923,4920,5269,4947,4917,184,3056,4908,4947, + 4947,4947,4947,4947,4947,5621,5098,5278,306,4993, + 4989,4225,4997,665,5204,3056,5098,5201,4947,4947, + 4947,4947,4947,4947,4947,4947,4947,4947,4947,4947, + 4947,4947,4947,420,2372,2344,4947,4947,4947,4947, + 4947,4947,4947,4947,4947,4947,4947,4947,4947,2693, + 4947,4947,5269,5213,5213,228,5213,228,228,228, + 5216,228,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,2976,3002,228, + 1,1,8555,1,1,1,1,1,1,5269, + 4905,4902,1,795,665,288,3056,226,1,4993, + 4989,4225,4997,665,5269,3056,4192,5210,138,1, + 1,1,2238,342,5479,2490,1793,3437,5260,5528, + 5601,5602,111,5269,219,5522,5529,5525,5501,5527, + 5526,5523,5524,5502,38,5125,5125,5269,5269,5761, + 5269,5213,5213,228,5213,228,228,228,228,228, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,528,1,5289, + 1,1,1,1,1,1980,118,228,1,1, + 8555,1,1,1,1,1,1,1850,1807,3170, + 1,5269,4993,4989,4225,4997,665,5204,3056,2936, + 5201,3472,3447,3391,4035,5210,3233,1,1,1, + 2238,1,5479,2490,4059,3437,5269,5283,5284,5086, + 2241,665,3906,3056,3928,4753,1764,1721,1678,1635, + 1592,1549,1506,1463,1420,1377,5269,5761,5269,5213, + 5213,228,5213,228,228,228,5219,228,1,1, 1,1,1,1,1,1,1,1,1,1, - 2473,1,2494,357,3396,1,1,1,5300,1, - 1,1,291,5308,5309,3910,5468,3932,189,1113, - 3674,2465,2196,2181,3568,3063,3652,2280,3637,4695, - 3626,45,4925,4922,4322,799,2431,3800,3060,137, - 3822,863,3778,3756,3553,5556,5554,5563,5549,5562, - 5558,5559,5557,5560,5561,5564,5555,3866,3844,5314, - 626,568,742,5316,580,2953,613,5317,5315,562, - 5310,5312,5313,5311,129,5552,5289,5625,5626,5546, - 5553,5525,5551,5550,5547,5548,5526,1,1294,394, - 4925,4922,5684,5333,5645,165,866,5685,5686,5289, - 5158,5158,232,5154,232,232,232,5162,232,1, - 4921,5289,232,1,1,1,1,1,1,1, - 1,1,1,1,1,5289,1,5013,5009,2418, - 5017,669,45,3060,5106,440,1,1,1172,1, - 5280,4949,5151,1,4949,1,1,1,1,1, - 1,1,1,1,1,1169,2697,2312,139,5289, - 1,165,2980,3006,1,1,1,5295,161,45, - 413,5698,232,5333,5289,5158,5158,232,5154,232, - 232,232,5206,232,1,1854,5785,232,1,1, + 1,1,1,370,2067,228,1,1,8555,1, + 1,1,1,1,1,1850,3433,5269,1,1, + 4993,4989,4225,4997,665,5089,3056,1,4993,4989, + 2414,4997,665,5210,3056,1,1,1,2238,314, + 5479,2490,5189,3437,1,4993,4989,2414,4997,665, + 218,3056,5086,340,4905,4902,2414,795,665,1621, + 3056,236,5594,5269,5092,5761,5269,5213,5213,228, + 5213,228,228,228,5216,228,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5109,1,5720,5721,5722,366,5013,5009,2418,5017, - 669,1,3060,1760,1,45,5289,5151,1,5333, + 1,1850,2067,228,1,1,8555,1,1,1, + 1,1,1,1850,5269,5269,1,5269,1850,1, + 4993,4989,5177,4997,5183,5277,5180,1850,5089,1, + 298,5210,3723,1,1,1,2238,358,5479,2490, + 5566,3437,5269,1,5122,5122,30,5119,219,1621, + 5275,358,5594,437,40,40,38,5308,30,5116, + 365,5269,5113,5761,5269,5213,5213,228,5213,228, + 228,228,5216,228,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5276, + 2744,228,1,1,8555,1,1,1,1,1, + 1,138,4908,358,1,1,4993,4989,4225,4997, + 665,5306,3056,306,719,1,5274,358,4319,5210, + 358,1,1,1,2238,1,5479,2490,4059,3437, + 1201,416,306,336,358,5269,219,340,40,40, + 4059,5308,5269,1621,5269,4755,5594,5269,5148,5145, + 48,5761,5269,5213,5213,228,5213,228,228,228, + 228,228,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,432,5269,228, + 1,1,8555,1,1,1,1,1,1,1850, + 5269,40,1,4767,336,5308,336,1621,5269,336, + 5594,1850,5306,2241,4026,2899,5281,5210,4753,1, + 1,1,2238,1,5479,2490,40,3437,343,5269, + 5308,5228,5269,4905,4902,5269,795,4950,4773,3056, + 5269,4905,4902,4911,795,4950,5269,3056,1063,5761, + 5269,5213,5213,228,5213,228,228,228,228,228, 1,1,1,1,1,1,1,1,1,1, - 1169,5289,2312,5294,4025,1,335,5289,1338,1, - 1,1,5289,8829,8829,412,5698,232,1,5013, - 5009,4229,5017,669,39,3060,5289,4964,2316,1067, - 4964,5785,4964,4964,1854,4964,4964,4964,1,5013, - 5009,4229,5017,669,1124,3060,3358,5720,5721,5722, - 4964,4964,5625,5626,2673,5331,226,5289,4925,4922, - 4229,799,669,1625,3060,5289,5618,140,4350,4964, - 5556,5554,5563,5549,5562,5558,5559,5557,5560,5561, - 5564,5555,5289,4964,143,5289,5308,5309,5720,5721, - 5722,2071,4964,4964,4964,4964,312,4964,4964,3731, - 5552,5289,5625,5626,5546,5553,5525,5551,5550,5547, - 5548,5526,4964,4964,4964,4964,4964,4964,4964,4964, - 4964,4964,4964,4964,4964,4964,4964,42,5182,5179, - 4964,4964,4964,4964,4964,4964,4964,4964,4964,4964, - 4964,4964,4964,5289,4964,4964,4967,3888,813,4967, - 2685,4967,4967,1811,4967,4967,4967,5289,5013,5009, - 4229,5017,669,5224,3060,1078,5221,2316,104,4967, - 4967,1,5013,5009,5197,5017,5203,95,5200,5299, - 4958,441,45,45,5298,5333,2245,5136,4967,5289, - 5133,4759,1768,1725,1682,1639,1596,1553,1510,1467, - 1424,1381,4967,1,5013,5009,2418,5017,669,5289, - 3060,4967,4967,4967,4967,240,4967,4967,5112,344, - 4925,4922,2418,799,669,1625,3060,4807,5618,5289, - 2071,4967,4967,4967,4967,4967,4967,4967,4967,4967, - 4967,4967,4967,4967,4967,4967,5289,5289,5289,4967, - 4967,4967,4967,4967,4967,4967,4967,4967,4967,4967, - 4967,4967,1854,4967,4967,5289,1,1,1,1, - 1,1,1,292,1,1,1,1,1854,1, - 1,1,43,1,1,1,1,1,1,1, + 1,1,1,1,1,5269,5280,228,1,1, + 8555,1,1,1,1,1,1,725,5269,1, + 1,5280,1850,383,398,2855,5269,4905,4902,5269, + 5308,3267,5171,3025,5281,5210,5269,1,1,1, + 2238,5269,5479,2490,5279,3437,91,1,1,5277, + 1,5174,5128,5269,5269,5128,5269,5283,5284,5696, + 5697,5698,5269,5278,5281,5269,446,5761,5269,5213, + 5213,228,5213,228,228,228,228,228,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,310,5013, - 5009,4229,5017,669,5224,3060,4200,5221,2746,5289, - 4925,4922,1,799,669,5331,3060,1,1,1, - 5013,5009,4322,5017,2431,3800,3060,5821,3822,4973, - 3778,3756,1984,5000,5006,4979,143,4982,4994,4991, - 4997,4988,4985,4976,5003,3866,3844,5314,626,568, - 742,5316,580,2953,613,5317,5315,562,5310,5312, - 5313,5311,1,5142,5142,5289,5139,5289,1625,128, - 362,5618,1,5289,302,4063,1294,5289,5308,5309, - 340,45,45,1,5590,5301,4323,512,45,4925, - 4922,4322,799,2431,3800,3060,5283,3822,1024,3778, - 3756,2743,5556,5554,5563,53,5562,5558,5559,5557, - 5560,5561,5564,5555,3866,3844,5314,626,568,742, - 5316,580,2953,613,5317,5315,562,5310,5312,5313, - 5311,1854,44,4943,4940,2709,362,4937,2245,3060, - 340,5300,340,4759,5289,1294,340,5289,2903,5289, - 5308,5309,5267,362,669,5289,3060,2980,3006,5296, - 145,4925,4922,4322,799,2431,3800,3060,138,3822, - 1024,3778,3756,130,5556,5554,5563,5289,5562,5558, - 5559,5557,5560,5561,5564,5555,3866,3844,5314,626, - 568,742,5316,580,2953,613,5317,5315,562,5310, - 5312,5313,5311,1,5013,5009,4229,5017,669,5289, - 3060,310,3742,5289,2746,2760,310,1294,2606,5289, - 3256,5297,45,45,1,5013,5009,4322,5017,2431, - 3800,3060,369,3822,4973,3778,3756,5289,5000,5006, - 4979,4946,4982,4994,4991,4997,4988,4985,4976,5003, - 3866,3844,5314,626,568,742,5316,580,2953,613, - 5317,5315,562,5310,5312,5313,5311,1172,2541,2514, - 5289,5289,402,344,45,45,4063,5333,5297,1625, - 5191,1294,5618,991,5296,5194,45,45,45,4925, - 4922,4322,799,2431,3800,3060,5264,3822,1024,3778, - 3756,1205,5556,5554,5563,5797,5562,5558,5559,5557, - 5560,5561,5564,5555,3866,3844,5314,626,568,742, - 5316,580,2953,613,5317,5315,562,5310,5312,5313, - 5311,511,1854,1,5013,5009,5197,5017,5203,5289, - 5200,5296,5289,4925,4922,1294,5333,5301,5289,5289, - 5301,4771,5267,45,4925,4922,4322,799,2431,3800, - 3060,5264,3822,1024,3778,3756,5289,5556,5554,5563, - 5289,5562,5558,5559,5557,5560,5561,5564,5555,3866, - 3844,5314,626,568,742,5316,580,2953,613,5317, - 5315,562,5310,5312,5313,5311,96,1,1,361, - 1,877,5148,5300,1,5148,5300,99,45,45, - 1294,5333,5295,5215,5289,3174,5212,5267,45,4925, - 4922,4322,799,2431,3800,3060,5293,3822,1024,3778, - 3756,5289,5556,5554,5563,3029,5562,5558,5559,5557, - 5560,5561,5564,5555,3866,3844,5314,626,568,742, - 5316,580,2953,613,5317,5315,562,5310,5312,5313, - 5311,45,4925,4922,4322,799,2431,3800,3060,2661, - 3822,1024,3778,3756,132,5556,5554,5563,5294,5562, - 5558,5559,5557,5560,5561,5564,5555,3866,3844,5314, - 626,568,742,5316,580,2953,613,5317,5315,562, - 5310,5312,5313,5311,1,320,227,1332,45,5754, - 5748,5289,5333,5752,1625,5746,5747,5618,1294,2606, - 5289,4925,4922,5549,799,669,5289,3060,5289,4777, - 5777,5778,123,5755,228,5289,5292,1,4779,5289, - 4063,5289,5127,3476,3451,5106,5289,5103,5100,5757, - 5552,5549,5625,5626,5546,5553,5525,5551,5550,5547, - 5548,5526,435,995,1854,5289,1342,1371,4785,2541, - 2514,1,5758,5756,5779,394,5308,5309,5552,5248, - 5625,5626,5546,5553,5525,5551,5550,5547,5548,5526, - 5289,5289,5768,5767,5780,1464,1854,5749,5750,5773, - 5774,5771,5772,5751,5753,5775,5776,5726,3888,813, - 5781,5109,5761,5762,5763,5759,5760,5769,5770,5765, - 5764,5766,45,4925,4922,4322,799,2431,3800,3060, - 3686,3822,1024,3778,3756,5300,5556,5554,5563,5289, - 5562,5558,5559,5557,5560,5561,5564,5555,3866,3844, - 5314,626,568,742,5316,580,2953,613,5317,5315, - 562,5310,5312,5313,5311,5720,5721,5722,45,4925, - 4922,4322,799,2431,3800,3060,5289,3822,1024,3778, - 3756,1463,5556,5554,5563,5289,5562,5558,5559,5557, - 5560,5561,5564,5555,3866,3844,5314,626,568,742, - 5316,580,2953,613,5317,5315,562,5310,5312,5313, - 5311,5289,45,4925,4922,4751,799,2431,3800,3060, - 5289,3822,1024,3778,3756,1294,5556,5554,5563,5289, - 5562,5558,5559,5557,5560,5561,5564,5555,3866,3844, - 5314,626,568,742,5316,580,2953,613,5317,5315, - 562,5310,5312,5313,5311,45,4925,4922,4322,799, - 2431,3800,3060,1,3822,1024,3778,3756,5289,5556, - 5554,5563,1507,5562,5558,5559,5557,5560,5561,5564, - 5555,3866,3844,5314,626,568,742,5316,580,2953, - 613,5317,5315,562,5310,5312,5313,5311,45,4925, - 4922,4322,799,2431,3800,3060,5289,3822,1024,3778, - 3756,5289,5556,5554,5563,5289,5562,5558,5559,5557, - 5560,5561,5564,5555,3866,3844,5314,626,568,742, - 5316,580,2953,613,5317,5315,562,5310,5312,5313, - 5311,5289,4925,4922,5289,5333,103,119,5289,8715, - 8699,782,5289,3595,5647,5556,5554,5563,5549,5562, - 5558,5559,5557,5560,5561,5564,5555,5289,4925,4922, - 5289,799,4970,1,3060,5289,8715,8699,5289,127, - 5289,5251,3745,5740,5687,5552,5293,5625,5626,5546, - 5553,5525,5551,5550,5547,5548,5526,3395,3200,244, - 5093,5089,5684,5097,5289,2022,866,5685,5686,782, - 729,5289,4030,5080,5086,5059,5044,5062,5074,5071, - 5077,5068,5065,5056,5083,35,386,386,5118,386, - 386,5118,386,5118,5118,5289,80,5289,5118,4502, - 3572,3514,386,5035,5296,5029,5026,5053,5032,5023, - 5038,5041,5050,5047,5020,121,131,49,5124,5124, - 5684,3595,5357,5358,866,5685,5686,2980,3006,386, - 4928,386,386,386,386,386,386,386,386,386, - 386,35,4039,436,5118,38,387,387,5115,387, - 387,5115,387,5115,5115,4757,5292,5289,5115,5118, - 5121,2606,387,1,1,5233,5233,232,5233,232, - 232,232,5236,232,5289,5289,5289,232,5289,4925, - 4922,8836,799,4970,5130,3060,4928,5289,4931,387, - 4793,387,387,387,387,387,387,387,387,387, - 387,5289,576,5289,5115,450,4799,5230,3572,3514, - 5289,2541,2514,43,5145,5145,656,120,5145,5115, - 2242,2859,2494,3595,3396,1,5233,5233,232,5233, - 232,232,232,232,232,223,5289,126,232,43, - 5145,5145,8836,1,5299,2013,43,5145,5145,5298, - 4934,5785,5289,5242,3747,35,3224,386,1,5233, - 5233,232,5233,232,232,232,5239,232,5230,5289, - 3250,232,5289,5168,5165,8836,393,5289,5175,5171, - 386,2242,5331,2494,107,3396,3544,4821,229,2940, - 1,5233,5233,232,5233,232,232,232,5236,232, - 723,5230,4961,232,5245,5549,3998,8836,290,5289, - 3572,3514,5785,367,2242,5331,2494,5289,3396,1, - 5331,723,51,5188,5188,2980,3006,362,420,222, - 5289,5289,5552,5230,5625,5626,5546,5553,5525,5551, - 5550,5547,5548,5526,5289,5785,2242,444,2494,3155, - 3396,1,5233,5233,232,5233,232,232,232,5236, - 232,223,1,302,232,5185,5289,1,8836,43, - 5145,5145,5242,5590,5299,5299,723,5785,797,5298, - 5298,230,1249,1,5233,5233,232,5233,232,232, - 232,232,232,362,5230,5289,232,54,5549,5289, - 8836,5309,2801,5295,374,3544,5289,2242,1,2494, - 362,3396,5331,54,422,1,195,5308,5289,1930, - 2573,195,223,5245,416,5552,5230,5625,5626,5546, - 5553,5525,5551,5550,5547,5548,5526,5289,5785,2242, - 445,2494,5309,3396,1,5233,5233,232,5233,232, - 232,232,232,232,8,1,78,232,5308,1, - 723,8836,5286,524,5289,4693,41,167,281,5294, - 5785,5227,1,5233,5233,232,5233,232,232,232, - 232,232,3250,5289,1284,232,3404,5230,309,8836, - 5289,2109,5289,2158,5289,5289,504,4823,4685,502, - 2242,5218,2494,5289,3396,5289,5289,517,4703,3251, - 2772,5289,5289,5289,4717,5230,4324,5289,5289,5289, - 4731,4579,4826,3686,5289,5286,506,2,2242,524, - 2494,5785,3396,167,1,2748,5289,3439,5289,5289, - 5289,5289,5289,5289,5289,5289,5289,5289,5289,5289, - 5289,5289,5289,5289,5289,5289,5289,5289,4012,5785, - 5289,5289,3385,3100,5289,4335,5289,5289,4445,5289, - 5289,5289,43,5289,5289,5289,3137,5289,5289,3192, - 5289,2748,5289,5289,5289,5289,5289,5289,5289,5289, - 5289,5289,5289,1941,5289,2669,5289,5289,5289,5289, - 5289,5289,5289,5289,5289,5289,5289,5289,5289,5289, - 5289,5289,5289,5289,5289,5289,5289,5289,5289,5289, - 5289,5289,5289,5289,5289,5289,3686 + 1,1,1,3196,5280,228,1,1,8555,1, + 1,1,1,1,1,94,40,40,1,5308, + 5269,5195,987,5276,5192,38,5125,5125,5279,331, + 5125,5269,4914,5210,5280,1,1,1,2238,5269, + 5479,2490,5269,3437,4196,308,2742,5278,3727,5269, + 5275,5269,5601,5602,390,5283,5284,5269,1,1, + 1,1,1,1,1,5761,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5269, + 3220,1,1,1,5269,8721,8671,5269,286,5231, + 99,3994,125,389,1,1,1,382,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,5663,4689,5269,1074,5274,4775,1,5797, + 5269,8721,8671,1,1,1,4993,4989,4318,4997, + 2427,3796,3056,382,3818,4953,4980,4986,4959,4962, + 4974,4971,4977,4968,4965,4956,4983,8,2602,719, + 3774,3752,1,5276,4789,5266,3800,1,2742,793, + 5275,4926,3862,3840,5289,5279,622,564,738,5291, + 576,2949,609,5292,5290,558,5285,5287,5288,5286, + 5269,363,5269,4498,5278,4781,1290,2537,2510,4941, + 5269,40,40,316,508,40,4905,4902,4318,795, + 2427,3796,3056,5263,3818,1020,5532,5530,5539,5538, + 5534,5535,5533,5536,5537,5540,5531,5269,5269,5266, + 3774,3752,1,1,2009,5269,5274,5269,98,869, + 520,190,3862,3840,5289,127,622,564,738,5291, + 576,2949,609,5292,5290,558,5285,5287,5288,5286, + 190,1245,1,38,5125,5125,1290,1850,102,2009, + 162,4791,5269,5247,524,5269,1078,5276,140,4905, + 4902,4318,795,2427,3796,3056,5269,3818,1020,5532, + 5530,5539,5538,5534,5535,5533,5536,5537,5540,5531, + 5269,2602,2018,3774,3752,3151,520,418,5269,412, + 1,2797,1,126,5107,3862,3840,5289,5306,622, + 564,738,5291,576,2949,609,5292,5290,558,5285, + 5287,5288,5286,440,277,3557,162,5207,5269,1290, + 2537,2510,719,5269,40,40,1,4993,4989,4318, + 4997,2427,3796,3056,5269,3818,4953,4980,4986,4959, + 4962,4974,4971,4977,4968,4965,4956,4983,719,2602, + 5269,3774,3752,3439,36,441,305,5269,1280,2154, + 73,5269,5110,3862,3840,5289,5269,622,564,738, + 5291,576,2949,609,5292,5290,558,5285,5287,5288, + 5286,5623,5269,500,498,4803,2569,1290,2537,2510, + 3233,2105,40,40,40,4905,4902,4318,795,2427, + 3796,3056,5244,3818,1020,5532,5530,5539,5538,5534, + 5535,5533,5536,5537,5540,5531,5198,3354,5269,3774, + 3752,4681,3632,5269,3244,5269,2768,4008,1,5269, + 40,3862,3840,5289,5308,622,564,738,5291,576, + 2949,609,5292,5290,558,5285,5287,5288,5286,5269, + 5269,5269,1799,4331,4441,1290,5269,5269,5269,4699, + 4713,4320,5247,40,4905,4902,4318,795,2427,3796, + 3056,5244,3818,1020,5532,5530,5539,5538,5534,5535, + 5533,5536,5537,5540,5531,5269,5269,5269,3774,3752, + 4727,5269,5269,5269,4575,4813,3096,513,3133,3244, + 3862,3840,5289,5269,622,564,738,5291,576,2949, + 609,5292,5290,558,5285,5287,5288,5286,5269,3712, + 5269,1937,3188,5269,1290,502,3822,1,5269,5269, + 5269,5247,40,4905,4902,4318,795,2427,3796,3056, + 5273,3818,1020,5532,5530,5539,5538,5534,5535,5533, + 5536,5537,5540,5531,5269,5155,5151,3774,3752,46, + 5168,5168,38,5125,5125,2,3431,5269,5269,3862, + 3840,5289,5269,622,564,738,5291,576,2949,609, + 5292,5290,558,5285,5287,5288,5286,40,4905,4902, + 4318,795,2427,3796,3056,2665,3818,1020,5532,5530, + 5539,5538,5534,5535,5533,5536,5537,5540,5531,5306, + 5269,5269,3774,3752,5165,5269,3723,5306,5269,5269, + 5269,38,5269,5269,3862,3840,5289,5269,622,564, + 738,5291,576,2949,609,5292,5290,558,5285,5287, + 5288,5286,5269,49,5269,222,1,5284,1290,1328, + 5272,5730,5724,5269,5269,5728,5532,5530,5539,5538, + 5534,5535,5533,5536,5537,5540,5531,5528,5601,5602, + 5269,5722,5723,5522,5529,5525,5501,5527,5526,5523, + 5524,5502,1,5753,5754,5269,5269,5731,5269,5269, + 5269,5269,5222,49,5269,5269,5269,5283,1,5284, + 5269,5269,5733,5269,5269,5269,5269,5269,5222,5269, + 991,5269,1417,1460,5269,5734,5732,5755,5269,5269, + 5269,5269,5225,5269,5269,5269,5269,5269,5269,5269, + 5269,5269,5269,5269,5744,5743,5756,3514,5225,5725, + 5726,5749,5750,5747,5748,5727,5729,5751,5752,5283, + 5269,5269,5757,3514,5737,5738,5739,5735,5736,5745, + 5746,5741,5740,5742,40,4905,4902,4318,795,2427, + 3796,3056,5269,3818,1020,5532,5530,5539,5538,5534, + 5535,5533,5536,5537,5540,5531,5269,5269,5269,3774, + 3752,5269,5269,5269,5269,5269,5269,5269,5269,5269, + 5269,3862,3840,5289,5269,622,564,738,5291,576, + 2949,609,5292,5290,558,5285,5287,5288,5286,5269, + 40,4905,4902,4318,795,2427,3796,3056,1459,3818, + 1020,5532,5530,5539,5538,5534,5535,5533,5536,5537, + 5540,5531,5269,5269,5269,3774,3752,5269,5269,5269, + 5269,5269,5269,5269,5269,5269,5269,3862,3840,5289, + 5269,622,564,738,5291,576,2949,609,5292,5290, + 558,5285,5287,5288,5286,5269,5269,5269,5269,5269, + 5269,1290,40,4905,4902,4735,795,2427,3796,3056, + 5269,3818,1020,5532,5530,5539,5538,5534,5535,5533, + 5536,5537,5540,5531,5269,5269,5269,3774,3752,5269, + 5269,5269,5269,5269,5269,5269,5269,5269,5269,3862, + 3840,5289,5269,622,564,738,5291,576,2949,609, + 5292,5290,558,5285,5287,5288,5286,40,4905,4902, + 4318,795,2427,3796,3056,5269,3818,1020,5532,5530, + 5539,5538,5534,5535,5533,5536,5537,5540,5531,5269, + 5269,5269,3774,3752,5269,5269,5269,5269,5269,5269, + 5269,5269,5269,5269,3862,3840,5289,5269,622,564, + 738,5291,576,2949,609,5292,5290,558,5285,5287, + 5288,5286,40,4905,4902,4318,795,2427,3796,3056, + 5269,3818,1020,5532,5530,5539,5538,5534,5535,5533, + 5536,5537,5540,5531,5269,5269,5269,3774,3752,5269, + 5269,5269,5269,5269,5269,5269,5269,5269,5269,3862, + 3840,5289,5269,622,564,738,5291,576,2949,609, + 5292,5290,558,5285,5287,5288,5286,5269,4905,4902, + 5269,5308,5269,5269,5269,5269,5269,778,5532,5530, + 5539,5538,5534,5535,5533,5536,5537,5540,5531,5528, + 5601,5602,5269,5269,5269,5522,5529,5525,5501,5527, + 5526,5523,5524,5502,5269,75,5269,5660,3538,5269, + 5269,5269,5269,5269,5269,5269,5269,240,5073,5069, + 5269,5077,5269,5269,862,5661,5662,778,5060,5066, + 5039,5042,5054,5051,5057,5048,5045,5036,5063,5015, + 5009,5006,5332,5333,5269,5033,5012,5024,5003,5018, + 5021,5030,5027,5000,5269,5269,5269,5660,33,383, + 383,5095,383,383,5095,383,5095,5095,5269,4747, + 5269,5269,5269,5269,862,5661,5662,5269,5269,5269, + 383,383,383,5269,5269,5095,383,383,383,383, + 383,383,383,383,383,5269,5269,5269,5269,5269, + 5269,5269,5269,5269,5269,5269,5269,5269,5269,5269, + 5269,572,5269,5269,5269,5269,5269,5269,5269,5269, + 5269,5269,5095,5269,5269,652,5269,5269,5269,5269, + 5269,5269,5095 }; }; public final static char termAction[] = TermAction.termAction; @@ -1715,59 +1781,59 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asb { public final static char asb[] = {0, - 121,7,209,1,163,871,871,871,871,1071, - 163,810,810,725,810,108,193,110,210,210, - 210,210,210,210,210,210,210,812,818,823, - 820,827,825,832,830,834,833,835,252,836, - 209,209,765,765,765,765,249,1075,9,9, - 807,765,501,349,810,810,9,249,349,349, - 340,193,896,764,978,1073,1008,209,810,812, - 552,552,1075,209,210,210,210,210,210,210, + 121,7,209,1,163,873,873,873,873,1119, + 163,812,812,727,812,108,193,110,210,210, + 210,210,210,210,210,210,210,814,820,825, + 822,829,827,834,832,836,835,837,252,838, + 209,209,767,767,767,767,249,879,9,9, + 809,767,501,349,812,812,9,249,349,349, + 340,193,943,766,1026,1121,1056,209,812,814, + 553,553,879,209,210,210,210,210,210,210, 210,210,210,210,210,210,210,210,210,210, 210,210,210,209,209,209,209,209,209,209, - 209,209,209,209,209,210,349,886,886,886, - 886,410,349,9,9,1069,997,1008,722,1008, - 717,1008,719,1008,992,1071,249,501,501,9, - 871,210,1069,460,577,567,566,419,1015,1015, - 1071,110,501,764,209,247,977,246,248,246, - 349,501,820,820,818,818,818,825,825,825, - 825,823,823,830,827,827,833,832,834,631, - 835,163,163,163,163,249,249,886,885,886, - 807,249,803,365,249,713,410,414,711,722, - 455,249,249,249,410,886,340,501,851,349, - 579,581,249,978,210,765,816,305,349,1073, - 249,249,248,978,209,209,209,209,209,163, - 163,193,303,803,365,713,712,713,410,713, - 455,455,249,410,249,349,571,559,570,581, - 410,247,349,816,1069,977,1073,249,247,349, - 349,349,349,1075,1075,803,802,799,249,365, - 631,720,871,412,62,621,365,713,713,984, - 249,455,799,797,798,249,504,209,568,568, - 352,352,249,575,1069,633,349,249,816,817, - 816,209,305,67,812,1073,349,349,803,978, - 514,722,886,871,246,616,623,243,163,860, - 792,985,249,799,210,249,504,209,209,581, - 249,978,349,579,559,504,1050,816,1075,210, - 501,67,247,514,514,667,381,247,713,713, - 243,856,1069,249,864,210,631,360,984,249, - 1071,1071,249,880,581,504,817,349,501,857, - 799,1118,939,294,163,720,703,514,514,381, - 247,713,722,1071,623,243,977,210,210,249, - 249,249,880,349,880,666,294,1118,888,1071, - 799,885,871,115,115,857,722,173,860,249, - 163,249,249,163,873,880,667,514,857,359, - 856,349,1071,249,381,667,381,884,884,892, - 174,1071,249,1075,582,873,514,209,70,243, - 857,249,249,381,765,765,892,173,631,210, - 631,857,172,163,163,163,174,163,249,260, - 857,857,249,722,349,348,875,799,349,799, - 722,249,857,885,165,163,165,174,631,174, - 193,193,191,894,193,857,857,363,892,765, - 875,799,70,857,614,633,174,349,243,349, - 191,294,163,349,892,70,115,349,349,1063, - 174,363,174,857,294,209,174,171,798,884, - 722,722,1065,209,172,1075,857,349,855,69, - 246,174,349,857,855,855,174 + 209,209,209,209,209,210,349,937,937,937, + 937,410,349,9,9,1117,1045,1056,724,1056, + 719,1056,721,1056,1040,1119,249,501,501,9, + 873,210,1117,460,578,568,567,414,1063,1063, + 1119,110,501,766,209,247,1025,246,248,246, + 349,501,822,822,820,820,820,827,827,827, + 827,825,825,832,829,829,835,834,836,632, + 837,163,163,163,163,249,249,937,936,937, + 809,249,805,365,249,715,410,450,713,724, + 455,249,249,249,410,937,340,501,853,349, + 580,582,249,1026,210,767,818,305,349,1121, + 249,249,248,1026,209,209,209,209,209,163, + 163,193,303,805,365,715,714,715,410,715, + 455,455,249,410,249,349,572,560,571,582, + 410,247,349,818,1117,1025,1121,249,247,349, + 349,349,349,879,879,805,804,801,249,365, + 632,722,873,412,62,622,365,715,715,1032, + 249,455,801,799,800,249,504,209,569,569, + 352,352,249,576,1117,634,349,249,818,819, + 818,209,305,67,814,1121,349,349,805,1026, + 514,724,937,873,246,617,624,243,163,862, + 794,1033,249,801,210,249,504,209,209,582, + 249,1026,349,580,560,504,1098,818,879,210, + 501,67,247,514,514,668,381,247,715,715, + 243,858,1117,249,866,210,632,360,1032,249, + 1119,1119,249,931,582,504,819,349,501,859, + 801,922,986,294,163,722,705,514,514,381, + 247,715,724,1119,624,243,1025,210,210,249, + 249,249,931,349,931,667,294,922,875,1119, + 801,936,873,115,115,859,724,173,862,249, + 163,249,249,163,924,931,668,514,859,359, + 858,349,1119,249,381,668,381,935,935,939, + 174,1119,249,879,583,924,514,209,70,243, + 859,249,249,381,767,767,939,173,632,210, + 632,859,172,163,163,163,174,163,249,260, + 859,859,249,724,349,348,926,801,349,801, + 724,249,859,936,165,163,165,174,632,174, + 193,193,191,941,193,859,859,363,939,767, + 926,801,70,859,615,634,174,349,243,349, + 191,294,163,349,939,70,115,349,349,1111, + 174,363,174,859,294,209,174,171,800,935, + 724,724,1113,209,172,879,859,349,857,69, + 246,174,349,859,857,857,174 }; }; public final static char asb[] = Asb.asb; @@ -1775,118 +1841,119 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asr { public final static byte asr[] = {0, - 8,73,118,74,13,70,121,0,48,14, - 15,61,46,30,62,16,31,65,49,17, - 32,18,50,51,19,20,52,63,53,33, - 21,22,34,54,35,66,36,57,37,55, - 38,67,23,44,24,47,25,39,40,41, - 28,3,26,27,9,6,11,12,29,68, - 42,7,1,2,4,10,5,0,71,57, - 26,27,9,6,11,12,29,34,3,4, - 39,42,40,41,28,37,32,36,15,25, - 14,21,19,20,22,23,18,16,24,10, - 31,35,33,30,38,64,8,7,5,1, - 2,63,62,0,68,69,70,1,2,0, - 14,15,30,62,16,31,32,18,19,20, - 63,7,33,21,22,34,35,36,57,37, - 38,10,23,24,25,39,40,41,28,1, - 2,26,27,9,6,11,12,5,29,4, - 42,72,3,0,87,103,104,105,43,73, - 119,122,71,72,75,58,56,60,77,79, - 85,83,76,81,82,84,86,64,78,80, - 13,8,48,61,46,65,49,17,50,51, - 52,53,54,66,55,67,44,47,57,62, - 63,10,31,35,33,30,38,15,25,14, - 21,19,20,22,23,18,16,24,39,42, - 40,41,28,37,32,36,26,27,11,12, - 29,34,9,6,3,4,7,5,1,2, - 0,68,73,91,70,118,74,71,121,14, - 15,30,62,16,31,32,18,19,20,63, - 33,21,22,34,35,36,57,37,38,10, - 23,24,25,39,40,41,28,26,27,11, - 12,29,42,8,9,13,5,7,1,2, - 4,3,6,0,92,90,11,12,93,94, - 88,89,45,95,96,97,98,99,100,101, - 102,107,73,91,69,108,109,110,111,112, - 113,114,115,116,117,118,71,13,121,68, - 1,2,9,6,4,3,59,70,74,8, - 0,75,68,73,91,74,64,59,3,8, - 70,13,69,0,87,56,7,103,104,105, - 58,8,3,9,6,5,73,71,13,72, - 48,14,15,61,46,16,65,49,17,18, - 50,51,19,20,52,53,21,22,54,66, - 55,10,67,23,44,24,47,25,4,1, - 2,43,0,4,8,73,64,0,48,14, - 15,46,16,49,17,18,50,51,19,20, - 52,7,53,21,22,54,55,23,44,24, - 47,25,1,2,8,59,9,6,5,4, - 74,13,3,0,1,2,8,71,0,62, - 63,3,10,31,35,33,30,38,15,25, - 14,21,19,20,22,23,18,16,24,39, - 42,40,41,28,37,32,36,5,7,4, - 26,27,9,6,11,12,29,34,1,2, - 118,8,0,46,57,47,8,68,91,69, - 70,74,0,60,48,14,15,61,46,16, - 65,49,87,17,18,50,51,19,20,52, - 56,53,21,22,54,66,55,10,67,23, - 58,44,24,47,25,8,3,9,6,71, - 13,7,4,43,5,1,2,0,9,6, - 7,5,4,1,2,3,59,68,69,70, - 8,74,91,0,5,7,3,59,6,9, - 91,48,14,15,46,16,65,49,17,18, - 50,51,19,20,52,53,21,22,54,66, - 55,10,67,23,44,24,47,25,1,2, - 4,74,8,61,0,8,73,64,75,0, - 13,8,5,7,3,1,2,4,6,9, - 73,0,48,14,15,61,46,16,65,49, - 17,18,50,51,19,20,52,53,21,22, - 54,66,55,10,67,23,44,24,47,25, - 1,2,4,91,0,64,61,46,16,65, - 49,18,50,51,19,20,52,53,21,22, - 54,66,55,67,23,44,24,47,25,15, - 14,48,8,3,9,6,13,58,60,87, - 17,43,7,1,2,5,4,10,56,0, - 4,45,8,73,64,0,43,73,4,1, - 2,64,8,0,63,62,11,12,6,93, - 94,99,9,100,5,29,69,45,68,111, - 112,108,109,110,116,115,117,89,88,113, - 114,97,98,95,96,101,102,26,27,70, - 90,106,59,3,48,14,15,61,46,16, - 65,49,17,18,50,51,19,20,52,53, - 21,22,54,66,55,10,67,23,24,47, - 25,1,2,4,44,0,69,70,71,8, - 0,57,46,7,47,5,1,2,4,75, - 64,120,106,26,27,59,3,92,90,6, - 93,94,11,12,89,88,45,95,96,97, - 98,9,99,100,101,68,91,74,121,69, - 108,109,110,111,112,113,114,115,116,117, - 73,118,102,107,71,70,13,8,0,8, - 64,70,0,73,8,59,3,69,70,13, - 45,0,46,47,75,3,73,13,64,57, - 8,91,74,69,70,68,0,8,64,69, - 0,119,0,76,0,62,63,26,27,9, - 6,11,12,5,29,34,3,4,7,39, - 42,40,41,28,37,32,36,15,25,14, - 21,19,20,22,23,18,16,24,10,31, - 35,33,30,38,59,1,2,0,61,46, - 16,65,49,18,50,51,19,20,52,53, - 21,22,54,66,55,10,67,23,44,24, - 47,25,15,14,48,8,3,9,13,58, - 56,60,87,17,45,4,6,7,1,2, - 5,43,0,44,1,2,4,103,104,105, - 0,10,65,61,66,67,15,25,14,21, - 19,20,22,23,18,16,24,75,73,91, - 118,71,64,121,120,92,106,90,26,27, - 11,12,93,94,88,89,45,68,95,96, - 97,98,99,100,101,102,107,69,108,109, - 110,111,112,113,114,115,116,117,70,48, - 46,49,17,50,51,52,53,54,55,44, - 47,13,8,74,3,59,5,7,6,9, - 1,2,4,0,8,74,14,15,30,62, - 16,31,32,18,19,20,63,7,33,21, - 22,34,35,36,57,37,38,10,23,24, - 25,39,40,41,1,2,3,26,27,9, - 6,11,12,5,29,4,42,28,0 + 8,73,118,74,27,71,121,0,28,11, + 12,40,23,42,66,13,43,57,29,30, + 44,14,31,32,15,16,33,67,34,45, + 17,18,46,35,47,58,48,61,49,36, + 50,59,19,22,20,24,21,51,52,53, + 39,3,37,38,9,6,25,26,41,69, + 54,7,1,2,4,10,5,0,72,61, + 37,38,9,6,25,26,41,46,3,4, + 51,54,52,53,39,49,44,48,12,21, + 11,17,15,16,18,19,14,13,20,10, + 43,47,45,42,50,68,8,7,5,1, + 2,67,66,0,69,70,71,1,2,0, + 11,12,42,66,13,43,44,14,15,16, + 67,7,45,17,18,46,47,48,61,49, + 50,10,19,20,21,51,52,53,39,1, + 2,37,38,9,6,25,26,5,41,4, + 54,62,3,0,87,103,104,105,55,73, + 119,122,72,62,75,63,60,65,77,79, + 85,83,76,81,82,84,86,68,78,80, + 27,8,28,40,23,57,29,30,31,32, + 33,34,35,58,36,59,22,24,61,66, + 67,10,43,47,45,42,50,12,21,11, + 17,15,16,18,19,14,13,20,51,54, + 52,53,39,49,44,48,37,38,25,26, + 41,46,9,6,3,4,7,5,1,2, + 0,69,73,91,71,118,74,72,121,11, + 12,42,66,13,43,44,14,15,16,67, + 45,17,18,46,47,48,61,49,50,10, + 19,20,21,51,52,53,39,37,38,25, + 26,41,54,8,9,27,5,7,1,2, + 4,3,6,0,92,90,25,26,93,94, + 88,89,56,95,96,97,98,99,100,101, + 102,107,73,91,70,108,109,110,111,112, + 113,114,115,116,117,118,72,27,121,69, + 1,2,9,6,4,3,64,71,74,8, + 0,75,69,73,91,74,68,64,3,8, + 71,27,70,0,87,60,7,103,104,105, + 63,8,3,9,6,5,73,72,27,62, + 28,11,12,40,23,13,57,29,30,14, + 31,32,15,16,33,34,17,18,35,58, + 36,10,59,19,22,20,24,21,4,1, + 2,55,0,28,11,12,23,13,29,30, + 14,31,32,15,16,33,7,34,17,18, + 35,36,19,22,20,24,21,1,2,8, + 64,9,6,5,4,74,27,3,0,4, + 8,73,68,0,1,2,8,72,0,66, + 67,3,10,43,47,45,42,50,12,21, + 11,17,15,16,18,19,14,13,20,51, + 54,52,53,39,49,44,48,5,7,4, + 37,38,9,6,25,26,41,46,1,2, + 118,8,0,23,61,24,8,69,91,70, + 71,74,0,65,28,11,12,40,23,13, + 57,29,87,30,14,31,32,15,16,33, + 60,34,17,18,35,58,36,10,59,19, + 63,22,20,24,21,8,3,9,6,72, + 27,62,7,4,55,5,1,2,0,9, + 6,7,5,4,1,2,3,64,69,70, + 71,8,74,91,0,5,7,3,64,6, + 9,91,28,11,12,23,13,57,29,30, + 14,31,32,15,16,33,34,17,18,35, + 58,36,10,59,19,22,20,24,21,1, + 2,4,74,8,40,0,8,73,68,75, + 0,27,8,5,7,3,1,2,4,6, + 9,73,0,28,11,12,40,23,13,57, + 29,30,14,31,32,15,16,33,34,17, + 18,35,58,36,10,59,19,22,20,24, + 21,1,2,4,91,0,68,40,23,13, + 57,29,14,31,32,15,16,33,34,17, + 18,35,58,36,59,19,22,20,24,21, + 12,11,28,8,3,9,6,27,63,65, + 87,30,62,55,7,1,2,5,4,10, + 60,0,4,56,8,73,68,0,55,73, + 4,1,2,68,8,0,67,66,25,26, + 6,93,94,99,9,100,5,41,70,56, + 69,111,112,108,109,110,116,115,117,89, + 88,113,114,97,98,95,96,101,102,37, + 38,71,90,106,64,3,28,11,12,40, + 23,13,57,29,30,14,31,32,15,16, + 33,34,17,18,35,58,36,10,59,19, + 20,24,21,1,2,4,22,0,70,71, + 72,8,0,61,23,7,24,5,1,2, + 4,75,68,120,106,37,38,64,3,92, + 90,6,93,94,25,26,89,88,56,95, + 96,97,98,9,99,100,101,69,91,74, + 121,70,108,109,110,111,112,113,114,115, + 116,117,73,118,102,107,72,71,27,8, + 0,8,68,71,0,73,8,64,3,70, + 71,27,56,0,8,68,70,0,8,74, + 11,12,42,66,13,43,44,14,15,16, + 67,7,45,17,18,46,47,48,61,49, + 50,10,19,20,21,51,52,53,1,2, + 3,37,38,9,6,25,26,5,41,4, + 54,39,0,23,24,75,3,73,27,68, + 61,8,91,74,70,71,69,0,119,0, + 76,0,66,67,37,38,9,6,25,26, + 5,41,46,3,4,7,51,54,52,53, + 39,49,44,48,12,21,11,17,15,16, + 18,19,14,13,20,10,43,47,45,42, + 50,64,1,2,0,40,23,13,57,29, + 14,31,32,15,16,33,34,17,18,35, + 58,36,10,59,19,22,20,24,21,12, + 11,28,8,3,9,27,63,60,65,87, + 30,62,56,4,6,7,1,2,5,55, + 0,22,1,2,4,103,104,105,0,10, + 57,40,58,59,12,21,11,17,15,16, + 18,19,14,13,20,75,73,91,118,72, + 68,121,120,92,106,90,37,38,25,26, + 93,94,88,89,56,69,95,96,97,98, + 99,100,101,102,107,70,108,109,110,111, + 112,113,114,115,116,117,71,28,23,29, + 30,31,32,33,34,35,36,22,24,27, + 8,74,3,64,5,7,6,9,1,2, + 4,0 }; }; public final static byte asr[] = Asr.asr; @@ -1895,58 +1962,58 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasb { public final static char nasb[] = {0, 82,12,57,12,12,12,12,12,12,61, - 12,12,12,185,12,118,240,101,57,57, + 12,12,12,188,12,118,247,101,57,57, 122,57,57,57,57,57,57,12,12,12, 12,12,12,12,12,12,12,12,57,12, - 57,144,31,31,31,31,101,249,139,139, - 75,5,99,258,12,12,139,126,258,258, - 213,1,57,40,168,12,12,144,12,12, - 13,13,249,144,57,57,57,57,57,57, + 57,147,31,31,31,31,101,197,142,142, + 75,5,99,262,12,12,142,126,262,262, + 220,1,57,40,171,12,12,147,12,12, + 13,13,197,147,57,57,57,57,57,57, 57,57,57,57,57,57,57,57,57,57, 57,57,57,57,57,57,57,57,57,57, - 57,57,57,57,144,57,258,12,12,12, - 12,19,258,26,26,175,227,228,152,228, - 180,228,50,228,221,10,101,99,99,26, - 12,57,175,94,212,48,48,12,12,12, + 57,57,57,57,147,57,262,12,12,12, + 12,19,262,26,26,178,234,235,155,235, + 183,235,50,235,228,10,101,99,99,26, + 12,57,178,94,219,48,48,12,12,12, 10,101,99,31,45,118,106,117,101,117, - 258,99,12,12,12,12,12,12,12,12, + 262,99,12,12,12,12,12,12,12,12, 12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,182,11,12,12,12, - 163,101,139,139,182,139,237,139,12,152, - 139,237,101,11,12,12,189,99,12,258, - 197,139,101,168,57,31,139,87,258,12, - 11,101,194,168,57,144,144,144,144,12, - 12,26,12,178,230,139,139,38,167,38, - 139,127,11,167,182,258,12,113,12,246, - 166,182,258,22,163,106,12,126,182,258, - 258,258,258,249,249,139,178,155,101,262, - 12,72,12,12,104,133,230,38,38,217, - 182,127,155,12,12,182,139,57,12,12, - 48,48,101,112,175,246,258,182,139,34, - 12,144,163,195,12,12,258,258,178,168, - 139,152,12,12,61,139,170,115,12,12, - 61,63,237,155,57,127,178,57,57,139, - 11,168,258,197,157,139,12,22,249,57, - 99,195,118,202,139,207,139,237,139,36, - 159,262,175,101,12,57,12,90,78,237, - 61,61,11,139,246,178,34,258,99,262, - 155,12,207,134,12,51,104,207,202,246, - 118,36,42,129,115,159,168,57,57,11, - 237,237,65,258,139,151,170,12,12,61, - 155,12,12,70,70,262,42,154,12,237, - 12,11,11,12,139,65,207,139,262,24, - 12,258,61,237,246,207,139,12,12,139, - 141,129,11,249,256,178,202,45,55,115, - 262,237,73,246,31,31,110,147,12,57, - 12,262,12,12,12,12,148,12,127,260, - 262,262,127,67,258,258,139,155,258,139, - 152,73,262,12,85,12,12,148,12,148, - 264,264,244,12,264,262,262,12,139,31, - 65,155,139,262,12,31,148,258,115,258, - 252,139,12,258,110,55,70,258,258,139, - 148,12,148,262,115,144,148,85,155,12, - 67,67,113,57,12,268,262,258,92,54, - 117,148,258,262,92,12,148 + 12,12,12,12,12,185,11,12,12,12, + 166,101,142,142,185,142,244,142,12,155, + 142,244,101,11,12,12,192,99,12,262, + 200,142,101,171,57,31,142,87,262,12, + 11,101,129,171,57,147,147,147,147,12, + 12,26,12,181,237,142,142,38,170,38, + 142,127,11,170,185,262,12,113,12,253, + 169,185,262,22,166,106,12,126,185,262, + 262,262,262,197,197,142,181,158,101,212, + 12,72,12,12,104,136,237,38,38,224, + 185,127,158,12,12,185,142,57,12,12, + 48,48,101,112,178,253,262,185,142,34, + 12,147,166,130,12,12,262,262,181,171, + 142,155,12,12,61,142,173,115,12,12, + 61,63,244,158,57,127,181,57,57,142, + 11,171,262,200,160,142,12,22,197,57, + 99,130,118,205,142,214,142,244,142,36, + 162,212,178,101,12,57,12,90,78,244, + 61,61,11,142,253,181,34,262,99,212, + 158,12,214,137,12,51,104,214,205,253, + 118,36,42,132,115,162,171,57,57,11, + 244,244,65,262,142,154,173,12,12,61, + 158,12,12,70,70,212,42,157,12,244, + 12,11,11,12,142,65,214,142,212,24, + 12,262,61,244,253,214,142,12,12,142, + 144,132,11,197,260,181,205,45,55,115, + 212,244,73,253,31,31,110,150,12,57, + 12,212,12,12,12,12,151,12,127,210, + 212,212,127,67,262,262,142,158,262,142, + 155,73,212,12,85,12,12,151,12,151, + 267,267,251,12,267,212,212,12,142,31, + 65,158,142,212,12,31,151,262,115,262, + 256,142,12,262,110,55,70,262,262,142, + 151,12,151,212,115,147,151,85,158,12, + 67,67,113,57,12,264,212,262,92,54, + 117,151,262,212,92,12,151 }; }; public final static char nasb[] = Nasb.nasb; @@ -1966,21 +2033,21 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 0,158,0,13,2,9,10,5,82,0, 2,44,0,152,0,64,135,134,0,157, 0,35,94,93,63,4,5,10,9,2, - 0,5,10,9,13,3,1,0,167,5, - 166,0,38,5,2,9,10,154,4,0, - 48,40,174,4,39,0,66,39,48,67, - 4,40,0,4,66,0,94,93,10,9, - 2,63,5,56,0,133,2,64,0,2, - 63,9,10,4,5,89,0,61,0,5, - 44,2,3,0,4,45,189,0,94,93, - 5,56,0,2,112,0,23,4,5,89, - 0,113,4,48,81,0,4,48,81,83, - 0,35,93,94,4,0,5,101,185,0, - 2,5,119,115,116,117,13,86,0,4, - 48,81,101,46,5,0,2,55,0,4, - 45,39,0,39,176,23,4,0,4,96, - 0,45,4,175,0,45,4,35,0,4, - 39,38,0,4,45,102,0,4,173,0 + 0,5,10,9,13,3,1,0,2,113, + 0,167,5,166,0,38,5,2,9,10, + 154,4,0,48,40,174,4,39,0,66, + 39,48,67,4,40,0,4,66,0,94, + 93,10,9,2,63,5,56,0,133,2, + 64,0,2,63,9,10,4,5,89,0, + 61,0,5,44,2,3,0,4,45,189, + 0,94,93,5,56,0,4,96,0,23, + 4,5,89,0,114,4,48,81,0,4, + 39,38,0,4,48,81,83,0,35,93, + 94,4,0,5,101,185,0,2,5,119, + 115,116,117,13,86,0,4,48,81,101, + 46,5,0,2,55,0,4,45,39,0, + 39,176,23,4,0,45,4,175,0,45, + 4,35,0,4,173,0,4,45,102,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -1989,13 +2056,13 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TerminalIndex { public final static char terminalIndex[] = {0, 113,114,2,31,13,10,79,115,9,100, - 11,12,120,48,52,60,66,68,74,75, - 86,87,102,105,107,7,8,112,14,55, - 61,67,84,88,90,94,97,99,109,110, - 111,123,93,104,19,54,106,47,64,70, - 73,76,83,89,98,77,95,103,1,46, - 53,58,78,121,63,91,101,20,33,44, - 119,122,30,118,96,108,49,50,56,57, + 48,52,60,68,74,75,86,87,102,105, + 107,104,54,106,11,12,120,47,64,66, + 70,73,76,83,89,98,7,8,112,53, + 14,55,61,67,84,88,90,94,97,99, + 109,110,111,123,93,19,63,91,101,77, + 95,122,103,1,46,58,78,121,20,33, + 44,119,30,118,96,108,49,50,56,57, 59,69,71,72,85,92,65,17,18,6, 32,4,15,16,21,22,23,24,25,26, 27,28,80,81,82,5,29,34,35,36, @@ -2008,26 +2075,26 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, - 132,137,138,0,0,136,0,0,229,235, - 135,0,145,134,0,0,144,150,0,0, - 151,160,181,161,162,163,164,165,153,166, - 167,168,143,169,127,170,0,129,133,130, - 171,0,140,139,154,179,0,0,0,0, - 0,0,0,174,0,157,0,204,0,147, - 188,201,205,0,0,128,173,0,0,0, - 0,0,0,206,177,0,0,0,0,0, - 0,126,131,0,0,187,0,0,202,212, - 159,208,209,210,0,0,148,0,0,207, - 220,176,197,0,0,211,0,0,0,240, - 241,149,180,0,190,191,192,193,194,196, + 131,136,137,0,0,135,0,0,229,235, + 134,0,144,133,0,0,143,149,0,0, + 150,159,181,160,161,162,163,164,152,165, + 166,167,142,168,127,169,0,129,132,130, + 170,0,139,138,153,178,0,0,0,0, + 0,0,0,173,0,156,0,204,0,146, + 188,201,205,0,0,128,172,0,0,0, + 0,0,0,206,176,0,0,0,0,0, + 0,126,179,0,0,187,0,0,202,212, + 158,208,209,210,0,0,147,0,0,207, + 220,175,197,0,0,211,0,0,0,240, + 241,0,148,180,190,191,192,193,194,196, 199,0,0,214,217,0,219,0,238,0, - 239,0,0,141,142,146,0,0,156,158, - 0,172,0,182,183,184,185,186,189,0, + 239,0,0,140,141,145,0,0,155,157, + 0,171,0,182,183,184,185,186,189,0, 195,0,198,203,0,215,216,0,0,221, 224,226,228,0,232,233,234,237,125,0, - 152,155,0,175,0,178,0,200,213,218, + 151,154,0,174,0,177,0,200,213,218, 0,222,223,225,227,0,230,231,236,242, - 243,0,0,0,0,0,0 + 243,0,0,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -2092,18 +2159,18 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeLa { public final static byte scopeLa[] = { - 119,74,74,74,74,74,74,74,71,13, - 71,71,68,1,74,122,64,3,74,68, - 68,68,1,1,13,71,64,71,71,1, - 1,71,1,1,4,68,70,13,1,1, - 68,74,74,74,119,74,1,13,1,1, - 1,13,13,71,118,74,74,74,118,1, - 74,1,74,74,74,73,4,74,68,68, - 68,68,74,3,1,1,74,74,3,1, - 118,74,1,1,1,13,74,118,74,5, - 74,1,43,69,73,74,1,1,6,1, - 43,76,75,13,13,4,4,4,4,3, - 1,64,1,1,3 + 119,74,74,74,74,74,74,74,72,27, + 72,72,69,1,74,122,68,3,74,69, + 69,69,1,1,27,72,68,72,72,1, + 1,72,1,1,4,69,71,27,1,1, + 69,74,74,74,119,74,1,27,1,1, + 1,27,27,72,118,74,74,74,118,1, + 74,1,74,74,74,73,4,74,69,69, + 69,69,74,3,1,1,74,74,3,1, + 118,74,1,1,1,27,74,118,74,5, + 74,1,55,70,73,74,1,1,6,1, + 55,76,75,27,27,4,4,4,4,3, + 1,68,1,1,3 }; }; public final static byte scopeLa[] = ScopeLa.scopeLa; @@ -2130,19 +2197,19 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeRhs { public final static char scopeRhs[] = {0, - 314,3,57,0,127,0,313,3,119,0, - 127,174,0,127,177,75,0,216,0,251, - 127,45,125,0,20,0,291,127,45,43, - 0,20,53,0,33,134,0,20,53,0, - 0,291,127,45,43,204,0,20,131,0, - 251,127,45,133,0,178,128,0,143,0, + 314,3,61,0,127,0,313,3,119,0, + 127,173,0,127,177,75,0,216,0,251, + 127,56,125,0,20,0,291,127,56,55, + 0,20,53,0,33,133,0,20,53,0, + 0,291,127,56,55,204,0,20,179,0, + 251,127,56,133,0,178,128,0,142,0, 219,3,290,0,290,0,2,0,127,0, - 251,127,45,132,0,178,128,224,0,178, - 128,44,224,0,178,128,309,44,0,129, + 251,127,56,132,0,178,128,224,0,178, + 128,22,224,0,178,128,309,22,0,129, 187,167,128,0,129,0,187,167,128,0, - 136,129,0,171,0,305,127,171,0,127, - 171,0,222,129,0,167,242,0,138,0, - 0,0,137,0,0,0,304,127,163,250, + 135,129,0,171,0,305,127,171,0,127, + 171,0,222,129,0,167,242,0,137,0, + 0,0,136,0,0,0,304,127,163,250, 0,128,0,250,0,130,0,0,128,0, 303,127,163,249,0,128,0,0,44,128, 0,0,152,3,0,127,279,278,127,75, @@ -2152,47 +2219,47 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 0,278,127,277,171,0,215,0,203,0, 0,215,0,227,127,3,0,127,0,0, 0,0,0,227,127,3,216,0,223,3, - 0,212,127,0,208,0,148,0,167,128, - 0,10,0,0,0,214,59,0,126,0, + 0,212,127,0,208,0,147,0,167,128, + 0,10,0,0,0,214,64,0,126,0, 227,127,3,181,0,181,0,2,0,0, 127,0,0,0,0,0,198,3,0,201, - 0,237,127,163,28,17,0,178,128,56, - 58,0,197,129,0,129,178,128,275,58, - 0,178,128,275,58,0,178,128,69,124, - 56,0,237,127,163,56,0,237,127,163, - 226,56,0,273,127,163,124,65,0,273, - 127,163,65,0,178,128,65,0,137,0, - 187,178,128,242,0,138,0,178,128,242, + 0,235,127,163,39,30,0,178,128,60, + 63,0,197,129,0,129,178,128,275,63, + 0,178,128,275,63,0,178,128,70,124, + 60,0,235,127,163,60,0,235,127,163, + 226,60,0,273,127,163,124,57,0,273, + 127,163,57,0,178,128,57,0,136,0, + 187,178,128,242,0,137,0,178,128,242, 0,187,167,128,10,0,167,128,10,0, - 93,138,0,266,127,146,0,266,127,171, + 93,137,0,266,127,146,0,266,127,171, 0,162,85,0,296,161,298,299,3,82, - 0,127,173,0,298,299,3,82,0,129, - 0,127,173,0,162,3,76,190,81,0, - 127,129,0,190,81,0,108,2,133,127, + 0,127,172,0,298,299,3,82,0,129, + 0,127,172,0,162,3,76,190,81,0, + 127,129,0,190,81,0,108,2,132,127, 129,0,225,3,76,0,198,168,0,33, - 171,0,168,0,177,33,171,0,225,3, - 86,0,190,158,225,3,84,0,62,173, - 0,225,3,84,0,127,173,62,173,0, + 170,0,168,0,176,33,170,0,225,3, + 86,0,190,158,225,3,84,0,62,172, + 0,225,3,84,0,127,172,62,172,0, 297,127,163,0,162,0,214,78,0,30, - 173,0,162,107,159,0,30,171,0,183, - 3,0,127,151,0,219,3,0,214,59, - 263,0,162,59,0,183,3,293,63,128, - 0,127,0,0,0,0,293,63,128,0, - 2,147,127,0,0,0,0,149,0,126, - 43,167,128,0,31,149,0,93,138,31, - 149,0,220,178,128,0,148,31,149,0, - 162,3,38,0,162,3,68,183,45,30, - 0,183,45,30,0,20,2,133,127,0, - 162,3,68,183,45,33,0,183,45,33, - 0,162,3,68,183,45,35,0,183,45, - 35,0,162,3,68,183,45,31,0,183, - 45,31,0,219,3,126,187,167,128,10, - 0,126,187,167,128,10,0,138,2,0, + 172,0,162,107,159,0,30,170,0,183, + 3,0,127,150,0,219,3,0,214,64, + 263,0,162,64,0,183,3,293,67,128, + 0,127,0,0,0,0,293,67,128,0, + 2,146,127,0,0,0,0,148,0,126, + 55,167,128,0,31,148,0,93,137,31, + 148,0,220,178,128,0,147,31,148,0, + 162,3,50,0,162,3,69,183,56,42, + 0,183,56,42,0,20,2,132,127,0, + 162,3,69,183,56,45,0,183,56,45, + 0,162,3,69,183,56,47,0,183,56, + 47,0,162,3,69,183,56,43,0,183, + 56,43,0,219,3,126,187,167,128,10, + 0,126,187,167,128,10,0,137,2,0, 127,0,219,3,125,256,167,128,10,0, - 256,167,128,10,0,137,2,0,127,0, - 219,3,136,0,219,3,140,0,162,59, - 140,0,258,0,31,0,31,141,0,166, - 0,136,0,162,3,0 + 256,167,128,10,0,136,2,0,127,0, + 219,3,136,0,219,3,140,0,162,64, + 140,0,258,0,31,0,31,140,0,166, + 0,135,0,162,3,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -2200,38 +2267,38 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeState { public final static char scopeState[] = {0, - 4616,4731,4717,4703,0,2306,3518,1293,2380,0, - 3377,3340,3303,3266,3229,3192,3137,3100,3063,2741, - 2664,4324,0,673,0,1416,1287,1111,0,2772, - 2573,0,3377,3340,3159,2455,3303,3266,3229,3192, - 3137,3100,1113,3063,2741,2664,870,815,0,4683, - 2746,4045,0,931,718,0,1284,4196,0,3068, - 2648,0,2094,654,0,4424,3068,4401,2839,2648, - 2815,3501,4254,4012,2633,3998,4229,3032,2418,2404, - 0,4394,4296,0,4394,4296,3641,4200,4141,3630, - 4101,4042,4030,3620,0,4394,4296,3641,4200,4141, - 3630,4101,4042,4030,3620,3377,3340,3303,3266,3229, - 3192,3137,3100,3063,2741,2664,0,3029,2371,0, - 2633,4424,4561,4401,2839,4443,3032,4559,4047,4315, - 3543,3198,2744,925,721,0,656,576,0,813, - 0,1631,1588,1459,862,2839,3198,2815,2418,2404, - 4063,3565,0,4269,533,2830,0,4633,4609,4604, - 4588,4575,4570,4541,4525,4512,4507,4679,4671,4667, - 4418,4491,4305,4165,4128,2881,2723,3054,2457,1937, - 0,4633,3327,4609,3048,2852,4604,4588,4575,2469, - 622,4570,4541,4525,2796,4512,3345,4507,3321,3285, - 4679,3224,3155,2940,2903,3538,4671,2235,4667,2569, - 4418,4491,4305,2486,4165,2482,4128,2881,2723,4269, - 3054,669,2830,2457,1937,2147,2060,932,799,2669, - 2815,3501,4254,4012,2633,4424,3998,3068,4401,2839, - 4229,3032,2418,2648,2404,2859,729,656,576,2953, - 3976,3954,2245,2283,1172,2316,2376,2348,590,3006, - 2980,2606,2579,2541,2514,3595,3572,3514,3476,3451, - 3932,3910,3888,3866,3844,3822,3800,3778,3756,2431, - 626,1941,2196,2158,2109,2071,2022,1249,1205,1984, - 1124,877,1892,1854,816,744,683,1811,1768,1725, - 1682,1639,1596,1553,1510,1467,1424,1381,533,1338, - 1294,1034,991,948,1078,0 + 4612,4727,4713,4699,0,2302,3621,1289,2376,0, + 3373,3336,3299,3262,3225,3188,3133,3096,3059,2737, + 2660,4320,0,669,0,1412,1283,1107,0,2768, + 2569,0,3373,3336,3155,2451,3299,3262,3225,3188, + 3133,3096,1109,3059,2737,2660,866,811,0,4679, + 2742,4041,0,927,714,0,1280,4192,0,3064, + 2644,0,2090,650,0,4420,3064,4397,2835,2644, + 2811,3497,4250,4008,2629,3994,4225,3028,2414,2400, + 0,4390,4292,0,4390,4292,3637,4196,4137,3626, + 4097,4038,4026,3616,0,4390,4292,3637,4196,4137, + 3626,4097,4038,4026,3616,3373,3336,3299,3262,3225, + 3188,3133,3096,3059,2737,2660,0,3025,2367,0, + 2629,4420,4557,4397,2835,4439,3028,4294,4043,4207, + 3539,3194,2740,921,717,0,652,572,0,809, + 0,1627,1584,1455,858,2835,3194,2811,2414,2400, + 4059,3561,0,4265,529,2826,0,4629,4605,4600, + 4584,4571,4566,4537,4521,4508,4503,4675,4667,4663, + 4414,4487,4301,4161,4124,2877,2719,3050,2453,1933, + 0,4629,3360,4605,3323,3044,4600,4584,4571,2465, + 618,4566,4537,4521,2849,4508,3415,4503,3397,3317, + 4675,3220,3151,2936,2899,2565,4667,2231,4663,2792, + 4414,4487,4301,2482,4161,2478,4124,2877,2719,4265, + 3050,665,2826,2453,1933,2143,2056,928,795,2665, + 2811,3497,4250,4008,2629,4420,3994,3064,4397,2835, + 4225,3028,2414,2644,2400,2855,725,652,572,2949, + 3972,3950,2241,2279,1168,2312,2372,2344,586,3002, + 2976,2602,2575,2537,2510,3591,3568,3510,3472,3447, + 3928,3906,3884,3862,3840,3818,3796,3774,3752,2427, + 622,1937,2192,2154,2105,2067,2018,1245,1201,1980, + 1120,873,1888,1850,812,740,679,1807,1764,1721, + 1678,1635,1592,1549,1506,1463,1420,1377,529,1334, + 1290,1030,987,944,1074,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2239,59 +2306,59 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface InSymb { public final static char inSymb[] = {0, - 0,292,127,265,38,30,33,35,31,10, - 136,125,132,7,133,4,3,128,34,29, - 5,12,11,6,9,27,26,140,145,148, - 147,150,149,153,151,155,154,157,57,159, - 70,3,45,45,45,45,128,3,45,45, - 168,127,59,3,62,63,45,5,183,162, - 168,127,62,63,167,166,125,3,124,126, - 106,120,3,59,90,92,12,11,94,93, - 6,96,95,68,45,88,89,9,98,97, + 0,292,127,265,50,42,45,47,43,10, + 136,125,132,7,133,4,3,128,46,41, + 5,26,25,6,9,38,37,140,145,148, + 147,150,149,153,151,155,154,157,61,159, + 71,3,56,56,56,56,128,3,56,56, + 168,127,64,3,66,67,56,5,183,162, + 168,127,66,67,167,166,125,3,124,126, + 106,120,3,64,90,92,26,25,94,93, + 6,96,95,69,56,88,89,9,98,97, 100,99,101,117,116,115,114,113,112,111, - 110,109,108,69,107,102,162,183,183,183, + 110,109,108,70,107,102,162,183,183,183, 183,167,219,127,127,127,267,268,250,269, - 242,270,65,271,272,10,128,59,59,127, - 125,158,127,59,3,217,216,136,126,125, - 10,128,59,293,3,187,4,43,128,43, + 242,270,57,271,272,10,128,64,64,127, + 125,158,127,64,3,217,216,136,126,125, + 10,128,64,293,3,187,4,55,128,55, 219,162,147,147,145,145,145,149,149,149, 149,148,148,151,150,150,154,153,155,162, - 157,68,68,68,68,187,256,251,254,251, + 157,69,69,69,69,187,256,251,254,251, 212,128,6,163,167,230,128,126,125,124, 163,128,128,178,167,251,212,214,159,223, 127,3,128,167,205,3,294,168,152,258, 187,128,178,167,73,3,3,3,3,126, - 125,70,167,127,127,126,125,127,178,127, - 163,127,178,167,43,227,228,146,229,127, - 167,43,183,127,127,4,220,5,43,162, + 125,71,167,127,127,126,125,127,178,127, + 163,127,178,167,55,227,228,146,229,127, + 167,55,183,127,127,4,220,5,55,162, 162,162,162,3,3,6,184,304,128,169, - 224,56,43,204,58,171,306,127,127,73, - 187,127,273,124,274,187,158,69,223,198, - 186,181,128,3,127,70,227,187,158,260, - 263,59,179,4,124,126,219,219,127,167, - 163,226,45,43,275,277,127,3,181,308, - 224,44,128,273,69,70,127,69,69,3, - 178,167,198,127,212,158,126,127,3,59, - 162,4,187,127,163,68,45,128,75,127, - 212,305,127,128,125,73,285,198,70,128, - 44,309,178,221,127,127,260,219,214,129, - 237,17,43,171,60,56,58,236,127,127, - 178,127,278,73,70,212,167,73,69,178, - 128,128,127,227,221,28,127,3,124,56, - 237,291,43,10,61,129,278,163,289,128, - 290,178,178,57,158,127,127,163,266,198, - 276,28,69,128,70,68,45,230,230,279, - 127,70,178,3,3,127,127,3,69,70, - 158,128,178,127,69,69,127,297,80,78, + 224,60,55,204,63,171,306,127,127,73, + 187,127,273,124,274,187,158,70,223,198, + 186,181,128,3,127,71,227,187,158,260, + 263,64,179,4,124,126,219,219,127,167, + 163,226,56,55,275,277,127,3,181,308, + 224,22,128,273,70,71,127,70,70,3, + 178,167,198,127,212,158,126,127,3,64, + 162,4,187,127,163,69,56,128,75,127, + 212,305,127,128,125,73,285,198,71,128, + 22,309,178,221,127,127,260,219,214,129, + 235,30,55,171,65,60,63,237,127,127, + 178,127,278,73,71,212,167,73,70,178, + 128,128,127,227,221,39,127,3,124,60, + 235,291,55,10,40,129,278,163,289,128, + 290,178,178,61,158,127,127,163,266,198, + 276,39,70,128,71,69,56,230,230,279, + 127,71,178,3,3,127,127,3,70,71, + 158,128,178,127,70,70,127,297,80,78, 1,162,8,86,84,82,81,76,83,85, - 79,77,56,75,219,314,221,237,152,163, + 79,77,60,75,219,314,221,235,152,163, 249,178,226,291,280,119,8,73,214,73, - 3,3,3,190,3,124,162,124,177,70, - 127,127,163,226,68,3,73,225,168,225, - 299,146,76,225,127,127,61,91,313,168, + 3,3,3,190,3,124,162,124,177,71, + 127,127,163,226,69,3,73,225,168,225, + 299,146,76,225,127,127,40,91,313,168, 158,198,158,298,127,3,158,280,303,230, - 158,158,127,69,190,161,266,162,189,70, - 69,122,296,158,189,8,158 + 158,158,127,70,190,161,266,162,189,71, + 70,122,296,158,189,8,158 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2430,7 +2497,6 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab "}", ";", "{", - "declaration", "identifier_token", "expression", "id_expression", @@ -2481,6 +2547,7 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab "declarator", "for_init_statement", "function_definition", + "declaration", "declaration_seq", "declaration_specifiers", "simple_declaration_specifiers", @@ -2555,7 +2622,7 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final String name(int index) { return name[index]; } public final static int - ERROR_SYMBOL = 72, + ERROR_SYMBOL = 62, SCOPE_UBOUND = 114, SCOPE_SIZE = 115, MAX_NAME_LENGTH = 37; @@ -2568,18 +2635,18 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final static int NUM_STATES = 527, NT_OFFSET = 123, - LA_STATE_OFFSET = 5821, + LA_STATE_OFFSET = 5797, MAX_LA = 2147483647, - NUM_RULES = 532, - NUM_NONTERMINALS = 197, - NUM_SYMBOLS = 320, + NUM_RULES = 528, + NUM_NONTERMINALS = 195, + NUM_SYMBOLS = 318, SEGMENT_SIZE = 8192, - START_STATE = 1288, + START_STATE = 1284, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 121, EOLT_SYMBOL = 121, - ACCEPT_ACTION = 4921, - ERROR_ACTION = 5289; + ACCEPT_ACTION = 4901, + ERROR_ACTION = 5269; 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 da0467e7037..c3b57d1ead2 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 @@ -15,97 +15,97 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp; public interface CPPSizeofExpressionParsersym { public final static int - TK_asm = 60, - TK_auto = 48, - TK_bool = 14, + TK_asm = 65, + TK_auto = 28, + TK_bool = 11, TK_break = 77, TK_case = 78, TK_catch = 119, - TK_char = 15, - TK_class = 61, - TK_const = 46, - TK_const_cast = 30, + TK_char = 12, + TK_class = 40, + TK_const = 23, + TK_const_cast = 42, TK_continue = 79, TK_default = 80, - TK_delete = 62, + TK_delete = 66, TK_do = 81, - TK_double = 16, - TK_dynamic_cast = 31, + TK_double = 13, + TK_dynamic_cast = 43, TK_else = 122, - TK_enum = 65, - TK_explicit = 49, + TK_enum = 57, + TK_explicit = 29, TK_export = 87, - TK_extern = 17, - TK_false = 32, - TK_float = 18, + TK_extern = 30, + TK_false = 44, + TK_float = 14, TK_for = 82, - TK_friend = 50, + TK_friend = 31, TK_goto = 83, TK_if = 84, - TK_inline = 51, - TK_int = 19, - TK_long = 20, - TK_mutable = 52, - TK_namespace = 56, - TK_new = 63, + TK_inline = 32, + TK_int = 15, + TK_long = 16, + TK_mutable = 33, + TK_namespace = 60, + TK_new = 67, TK_operator = 7, TK_private = 103, TK_protected = 104, TK_public = 105, - TK_register = 53, - TK_reinterpret_cast = 33, + TK_register = 34, + TK_reinterpret_cast = 45, TK_return = 85, - TK_short = 21, - TK_signed = 22, - TK_sizeof = 34, - TK_static = 54, - TK_static_cast = 35, - TK_struct = 66, + TK_short = 17, + TK_signed = 18, + TK_sizeof = 46, + TK_static = 35, + TK_static_cast = 47, + TK_struct = 58, TK_switch = 86, - TK_template = 43, - TK_this = 36, - TK_throw = 57, + TK_template = 55, + TK_this = 48, + TK_throw = 61, TK_try = 75, - TK_true = 37, - TK_typedef = 55, - TK_typeid = 38, + TK_true = 49, + TK_typedef = 36, + TK_typeid = 50, TK_typename = 10, - TK_union = 67, - TK_unsigned = 23, - TK_using = 58, - TK_virtual = 44, - TK_void = 24, - TK_volatile = 47, - TK_wchar_t = 25, + TK_union = 59, + TK_unsigned = 19, + TK_using = 63, + TK_virtual = 22, + TK_void = 20, + TK_volatile = 24, + TK_wchar_t = 21, TK_while = 76, - TK_integer = 39, - TK_floating = 40, - TK_charconst = 41, - TK_stringlit = 28, + TK_integer = 51, + TK_floating = 52, + TK_charconst = 53, + TK_stringlit = 39, TK_identifier = 1, TK_Completion = 2, TK_EndOfCompletion = 8, TK_Invalid = 123, - TK_LeftBracket = 59, + TK_LeftBracket = 64, TK_LeftParen = 3, TK_Dot = 120, TK_DotStar = 92, TK_Arrow = 106, TK_ArrowStar = 90, - TK_PlusPlus = 26, - TK_MinusMinus = 27, + TK_PlusPlus = 37, + TK_MinusMinus = 38, TK_And = 9, TK_Star = 6, - TK_Plus = 11, - TK_Minus = 12, + TK_Plus = 25, + TK_Minus = 26, TK_Tilde = 5, - TK_Bang = 29, + TK_Bang = 41, TK_Slash = 93, TK_Percent = 94, TK_RightShift = 88, TK_LeftShift = 89, - TK_LT = 45, - TK_GT = 68, + TK_LT = 56, + TK_GT = 69, TK_LE = 95, TK_GE = 96, TK_EQ = 97, @@ -118,7 +118,7 @@ public interface CPPSizeofExpressionParsersym { TK_Colon = 73, TK_ColonColon = 4, TK_DotDotDot = 91, - TK_Assign = 69, + TK_Assign = 70, TK_StarAssign = 108, TK_SlashAssign = 109, TK_PercentAssign = 110, @@ -129,14 +129,14 @@ public interface CPPSizeofExpressionParsersym { TK_AndAssign = 115, TK_CaretAssign = 116, TK_OrAssign = 117, - TK_Comma = 70, + TK_Comma = 71, TK_RightBracket = 118, TK_RightParen = 74, - TK_RightBrace = 71, - TK_SemiColon = 13, - TK_LeftBrace = 64, - TK_ERROR_TOKEN = 72, - TK_0 = 42, + TK_RightBrace = 72, + TK_SemiColon = 27, + TK_LeftBrace = 68, + TK_ERROR_TOKEN = 62, + TK_0 = 54, TK_EOF_TOKEN = 121; public final static String orderedTerminalSymbols[] = { @@ -151,13 +151,9 @@ public interface CPPSizeofExpressionParsersym { "EndOfCompletion", "And", "typename", - "Plus", - "Minus", - "SemiColon", "bool", "char", "double", - "extern", "float", "int", "long", @@ -166,9 +162,25 @@ public interface CPPSizeofExpressionParsersym { "unsigned", "void", "wchar_t", + "virtual", + "const", + "volatile", + "Plus", + "Minus", + "SemiColon", + "auto", + "explicit", + "extern", + "friend", + "inline", + "mutable", + "register", + "static", + "typedef", "PlusPlus", "MinusMinus", "stringlit", + "class", "Bang", "const_cast", "dynamic_cast", @@ -184,35 +196,23 @@ public interface CPPSizeofExpressionParsersym { "charconst", "0", "template", - "virtual", "LT", - "const", - "volatile", - "auto", - "explicit", - "friend", - "inline", - "mutable", - "register", - "static", - "typedef", - "namespace", - "throw", - "using", - "LeftBracket", - "asm", - "class", - "delete", - "new", - "LeftBrace", "enum", "struct", "union", + "namespace", + "throw", + "ERROR_TOKEN", + "using", + "LeftBracket", + "asm", + "delete", + "new", + "LeftBrace", "GT", "Assign", "Comma", "RightBrace", - "ERROR_TOKEN", "Colon", "RightParen", "try", diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParser.java index fb6e01f37b9..47575c94d19 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParser.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParser.java @@ -269,2011 +269,2004 @@ public CPPTemplateTypeParameterParser(String[] mapFrom) { // constructor } // - // Rule 13: translation_unit ::= external_declaration_list + // Rule 13: translation_unit ::= declaration_seq_opt // case 13: { action.builder. consumeTranslationUnit(); break; } // - // Rule 14: translation_unit ::= $Empty + // Rule 16: literal ::= integer // - case 14: { action.builder. - consumeTranslationUnit(); break; + case 16: { action.builder. + consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; } // - // Rule 18: external_declaration ::= ERROR_TOKEN + // Rule 17: literal ::= 0 + // + case 17: { action.builder. + consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; + } + + // + // Rule 18: literal ::= floating // case 18: { action.builder. - consumeDeclarationProblem(); break; - } - - // - // Rule 21: literal ::= integer - // - case 21: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; - } - - // - // Rule 22: literal ::= 0 - // - case 22: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; - } - - // - // Rule 23: literal ::= floating - // - case 23: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_float_constant); break; } // - // Rule 24: literal ::= charconst + // Rule 19: literal ::= charconst // - case 24: { action.builder. + case 19: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_char_constant); break; } // - // Rule 25: literal ::= stringlit + // Rule 20: literal ::= stringlit // - case 25: { action.builder. + case 20: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_string_literal); break; } // - // Rule 26: literal ::= true + // Rule 21: literal ::= true // - case 26: { action.builder. + case 21: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_true); break; } // - // Rule 27: literal ::= false + // Rule 22: literal ::= false // - case 27: { action.builder. + case 22: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_false); break; } // - // Rule 28: literal ::= this + // Rule 23: literal ::= this // - case 28: { action.builder. + case 23: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_this); break; } // - // Rule 30: primary_expression ::= ( expression ) + // Rule 25: primary_expression ::= ( expression ) // - case 30: { action.builder. + case 25: { action.builder. consumeExpressionBracketed(); break; } // - // Rule 32: id_expression ::= qualified_or_unqualified_name + // Rule 27: id_expression ::= qualified_or_unqualified_name // - case 32: { action.builder. + case 27: { action.builder. consumeExpressionName(); break; } // - // Rule 39: unqualified_id_name ::= ~ identifier_token + // Rule 34: unqualified_id_name ::= ~ identifier_token // - case 39: { action.builder. + case 34: { action.builder. consumeDestructorName(); break; } // - // Rule 40: unqualified_id_name ::= ~ template_id_name + // Rule 35: unqualified_id_name ::= ~ template_id_name // - case 40: { action.builder. + case 35: { action.builder. consumeDestructorNameTemplateId(); break; } // - // Rule 41: identifier_name ::= identifier_token + // Rule 36: identifier_name ::= identifier_token // - case 41: { action.builder. + case 36: { action.builder. consumeIdentifierName(); break; } // - // Rule 42: template_opt ::= template + // Rule 37: template_opt ::= template // - case 42: { action.builder. + case 37: { action.builder. consumePlaceHolder(); break; } // - // Rule 43: template_opt ::= $Empty + // Rule 38: template_opt ::= $Empty // - case 43: { action.builder. + case 38: { action.builder. consumeEmpty(); break; } // - // Rule 44: dcolon_opt ::= :: + // Rule 39: dcolon_opt ::= :: // - case 44: { action.builder. + case 39: { action.builder. consumeToken(); break; } // - // Rule 45: dcolon_opt ::= $Empty + // Rule 40: dcolon_opt ::= $Empty // - case 45: { action.builder. + case 40: { action.builder. consumeEmpty(); break; } // - // Rule 46: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name + // Rule 41: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name // - case 46: { action.builder. + case 41: { action.builder. consumeQualifiedId(true); break; } // - // Rule 47: qualified_id_name ::= :: unqualified_id_name + // Rule 42: qualified_id_name ::= :: unqualified_id_name // - case 47: { action.builder. + case 42: { action.builder. consumeGlobalQualifiedId(); break; } // - // Rule 48: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template + // Rule 43: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template // - case 48: { action.builder. + case 43: { action.builder. consumeNestedNameSpecifier(true); break; } // - // Rule 49: nested_name_specifier ::= class_or_namespace_name :: + // Rule 44: nested_name_specifier ::= class_or_namespace_name :: // - case 49: { action.builder. + case 44: { action.builder. consumeNestedNameSpecifier(false); break; } // - // Rule 50: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template + // Rule 45: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template // - case 50: { action.builder. + case 45: { action.builder. consumeNestedNameSpecifier(true); break; } // - // Rule 51: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: + // Rule 46: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: // - case 51: { action.builder. + case 46: { action.builder. consumeNestedNameSpecifier(false); break; } // - // Rule 52: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name + // Rule 47: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name // - case 52: { action.builder. + case 47: { action.builder. consumeNameWithTemplateKeyword(); break; } // - // Rule 54: nested_name_specifier_opt ::= $Empty + // Rule 49: nested_name_specifier_opt ::= $Empty // - case 54: { action.builder. + case 49: { action.builder. consumeNestedNameSpecifierEmpty(); break; } // - // Rule 57: postfix_expression ::= postfix_expression [ expression ] + // Rule 52: postfix_expression ::= postfix_expression [ expression ] // - case 57: { action.builder. + case 52: { action.builder. consumeExpressionArraySubscript(); break; } // - // Rule 58: postfix_expression ::= postfix_expression ( expression_list_opt ) + // Rule 53: postfix_expression ::= postfix_expression ( expression_list_opt ) // - case 58: { action.builder. + case 53: { action.builder. consumeExpressionFunctionCall(); break; } // - // Rule 59: postfix_expression ::= simple_type_specifier ( expression_list_opt ) + // Rule 54: postfix_expression ::= simple_type_specifier ( expression_list_opt ) // - case 59: { action.builder. + case 54: { action.builder. consumeExpressionSimpleTypeConstructor(); break; } // - // Rule 60: postfix_expression ::= typename dcolon_opt nested_name_specifier identifier_name ( expression_list_opt ) + // Rule 55: postfix_expression ::= typename dcolon_opt nested_name_specifier identifier_name ( expression_list_opt ) // - case 60: { action.builder. + case 55: { action.builder. consumeExpressionTypeName(); break; } // - // Rule 61: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) + // Rule 56: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) // - case 61: { action.builder. + case 56: { action.builder. consumeExpressionTypeName(); break; } // - // Rule 62: postfix_expression ::= postfix_expression . qualified_or_unqualified_name + // Rule 57: postfix_expression ::= postfix_expression . qualified_or_unqualified_name // - case 62: { action.builder. + case 57: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 63: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name + // Rule 58: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name // - case 63: { action.builder. + case 58: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 64: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name + // Rule 59: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name // - case 64: { action.builder. + case 59: { action.builder. consumeExpressionFieldReference(false, true); break; } // - // Rule 65: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name + // Rule 60: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name // - case 65: { action.builder. + case 60: { action.builder. consumeExpressionFieldReference(true, true); break; } // - // Rule 66: postfix_expression ::= postfix_expression . pseudo_destructor_name + // Rule 61: postfix_expression ::= postfix_expression . pseudo_destructor_name // - case 66: { action.builder. + case 61: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 67: postfix_expression ::= postfix_expression -> pseudo_destructor_name + // Rule 62: postfix_expression ::= postfix_expression -> pseudo_destructor_name // - case 67: { action.builder. + case 62: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 68: postfix_expression ::= postfix_expression ++ + // Rule 63: postfix_expression ::= postfix_expression ++ // - case 68: { action.builder. + case 63: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; } // - // Rule 69: postfix_expression ::= postfix_expression -- + // Rule 64: postfix_expression ::= postfix_expression -- // - case 69: { action.builder. + case 64: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; } // - // Rule 70: postfix_expression ::= dynamic_cast < type_id > ( expression ) + // Rule 65: postfix_expression ::= dynamic_cast < type_id > ( expression ) // - case 70: { action.builder. + case 65: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); break; } // - // Rule 71: postfix_expression ::= static_cast < type_id > ( expression ) + // Rule 66: postfix_expression ::= static_cast < type_id > ( expression ) // - case 71: { action.builder. + case 66: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_static_cast); break; } // - // Rule 72: postfix_expression ::= reinterpret_cast < type_id > ( expression ) + // Rule 67: postfix_expression ::= reinterpret_cast < type_id > ( expression ) // - case 72: { action.builder. + case 67: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); break; } // - // Rule 73: postfix_expression ::= const_cast < type_id > ( expression ) + // Rule 68: postfix_expression ::= const_cast < type_id > ( expression ) // - case 73: { action.builder. + case 68: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_const_cast); break; } // - // Rule 74: postfix_expression ::= typeid ( expression ) + // Rule 69: postfix_expression ::= typeid ( expression ) // - case 74: { action.builder. + case 69: { action.builder. consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break; } // - // Rule 75: postfix_expression ::= typeid ( type_id ) + // Rule 70: postfix_expression ::= typeid ( type_id ) // - case 75: { action.builder. + case 70: { action.builder. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid); break; } // - // Rule 76: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name + // Rule 71: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name // - case 76: { action.builder. + case 71: { action.builder. consumePsudoDestructorName(true); break; } // - // Rule 77: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name + // Rule 72: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name // - case 77: { action.builder. + case 72: { action.builder. consumePsudoDestructorName(true); break; } // - // Rule 78: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name + // Rule 73: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name // - case 78: { action.builder. + case 73: { action.builder. consumePsudoDestructorName(false); break; } // - // Rule 79: destructor_type_name ::= ~ identifier_token + // Rule 74: destructor_type_name ::= ~ identifier_token // - case 79: { action.builder. + case 74: { action.builder. consumeDestructorName(); break; } // - // Rule 80: destructor_type_name ::= ~ template_id_name + // Rule 75: destructor_type_name ::= ~ template_id_name // - case 80: { action.builder. + case 75: { action.builder. consumeDestructorNameTemplateId(); break; } // - // Rule 84: unary_expression ::= ++ cast_expression + // Rule 79: unary_expression ::= ++ cast_expression // - case 84: { action.builder. + case 79: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; } // - // Rule 85: unary_expression ::= -- cast_expression + // Rule 80: unary_expression ::= -- cast_expression // - case 85: { action.builder. + case 80: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; } // - // Rule 86: unary_expression ::= & cast_expression + // Rule 81: unary_expression ::= & cast_expression // - case 86: { action.builder. + case 81: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; } // - // Rule 87: unary_expression ::= * cast_expression + // Rule 82: unary_expression ::= * cast_expression // - case 87: { action.builder. + case 82: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; } // - // Rule 88: unary_expression ::= + cast_expression + // Rule 83: unary_expression ::= + cast_expression // - case 88: { action.builder. + case 83: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; } // - // Rule 89: unary_expression ::= - cast_expression + // Rule 84: unary_expression ::= - cast_expression // - case 89: { action.builder. + case 84: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; } // - // Rule 90: unary_expression ::= ~ cast_expression + // Rule 85: unary_expression ::= ~ cast_expression // - case 90: { action.builder. + case 85: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; } // - // Rule 91: unary_expression ::= ! cast_expression + // Rule 86: unary_expression ::= ! cast_expression // - case 91: { action.builder. + case 86: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; } // - // Rule 92: unary_expression ::= sizeof unary_expression + // Rule 87: unary_expression ::= sizeof unary_expression // - case 92: { action.builder. + case 87: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; } // - // Rule 93: unary_expression ::= sizeof ( type_id ) + // Rule 88: unary_expression ::= sizeof ( type_id ) // - case 93: { action.builder. + case 88: { action.builder. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_sizeof); break; } // - // Rule 94: new_expression ::= dcolon_opt new new_placement_opt new_type_id new_array_expressions_opt new_initializer_opt + // Rule 89: new_expression ::= dcolon_opt new new_placement_opt new_type_id new_array_expressions_opt new_initializer_opt // - case 94: { action.builder. + case 89: { action.builder. consumeExpressionNew(true); break; } // - // Rule 95: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_array_expressions_opt new_initializer_opt + // Rule 90: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_array_expressions_opt new_initializer_opt // - case 95: { action.builder. + case 90: { action.builder. consumeExpressionNew(false); break; } // - // Rule 97: new_placement_opt ::= $Empty + // Rule 92: new_placement_opt ::= $Empty // - case 97: { action.builder. + case 92: { action.builder. consumeEmpty(); break; } // - // Rule 98: new_type_id ::= type_specifier_seq + // Rule 93: new_type_id ::= type_specifier_seq // - case 98: { action.builder. + case 93: { action.builder. consumeTypeId(false); break; } // - // Rule 99: new_type_id ::= type_specifier_seq new_declarator + // Rule 94: new_type_id ::= type_specifier_seq new_declarator // - case 99: { action.builder. + case 94: { action.builder. consumeTypeId(true); break; } // - // Rule 100: new_declarator ::= new_pointer_operators + // Rule 95: new_declarator ::= new_pointer_operators // - case 100: { action.builder. + case 95: { action.builder. consumeNewDeclarator(); break; } // - // Rule 109: new_initializer_opt ::= $Empty + // Rule 104: new_initializer_opt ::= $Empty // - case 109: { action.builder. + case 104: { action.builder. consumeEmpty(); break; } // - // Rule 110: delete_expression ::= dcolon_opt delete cast_expression + // Rule 105: delete_expression ::= dcolon_opt delete cast_expression // - case 110: { action.builder. + case 105: { action.builder. consumeExpressionDelete(false); break; } // - // Rule 111: delete_expression ::= dcolon_opt delete [ ] cast_expression + // Rule 106: delete_expression ::= dcolon_opt delete [ ] cast_expression // - case 111: { action.builder. + case 106: { action.builder. consumeExpressionDelete(true); break; } // - // Rule 113: cast_expression ::= ( type_id ) cast_expression + // Rule 108: cast_expression ::= ( type_id ) cast_expression // - case 113: { action.builder. + case 108: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_cast); break; } // - // Rule 115: pm_expression ::= pm_expression .* cast_expression + // Rule 110: pm_expression ::= pm_expression .* cast_expression // - case 115: { action.builder. + case 110: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot); break; } // - // Rule 116: pm_expression ::= pm_expression ->* cast_expression + // Rule 111: pm_expression ::= pm_expression ->* cast_expression // - case 116: { action.builder. + case 111: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow); break; } // - // Rule 118: multiplicative_expression ::= multiplicative_expression * pm_expression + // Rule 113: multiplicative_expression ::= multiplicative_expression * pm_expression // - case 118: { action.builder. + case 113: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply); break; } // - // Rule 119: multiplicative_expression ::= multiplicative_expression / pm_expression + // Rule 114: multiplicative_expression ::= multiplicative_expression / pm_expression // - case 119: { action.builder. + case 114: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide); break; } // - // Rule 120: multiplicative_expression ::= multiplicative_expression % pm_expression + // Rule 115: multiplicative_expression ::= multiplicative_expression % pm_expression // - case 120: { action.builder. + case 115: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo); break; } // - // Rule 122: additive_expression ::= additive_expression + multiplicative_expression + // Rule 117: additive_expression ::= additive_expression + multiplicative_expression // - case 122: { action.builder. + case 117: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus); break; } // - // Rule 123: additive_expression ::= additive_expression - multiplicative_expression + // Rule 118: additive_expression ::= additive_expression - multiplicative_expression // - case 123: { action.builder. + case 118: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus); break; } // - // Rule 125: shift_expression ::= shift_expression << additive_expression + // Rule 120: shift_expression ::= shift_expression << additive_expression // - case 125: { action.builder. + case 120: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft); break; } // - // Rule 126: shift_expression ::= shift_expression >> additive_expression + // Rule 121: shift_expression ::= shift_expression >> additive_expression // - case 126: { action.builder. + case 121: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight); break; } // - // Rule 128: relational_expression ::= relational_expression < shift_expression + // Rule 123: relational_expression ::= relational_expression < shift_expression // - case 128: { action.builder. + case 123: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; } // - // Rule 129: relational_expression ::= relational_expression > shift_expression + // Rule 124: relational_expression ::= relational_expression > shift_expression // - case 129: { action.builder. + case 124: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; } // - // Rule 130: relational_expression ::= relational_expression <= shift_expression + // Rule 125: relational_expression ::= relational_expression <= shift_expression // - case 130: { action.builder. + case 125: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; } // - // Rule 131: relational_expression ::= relational_expression >= shift_expression + // Rule 126: relational_expression ::= relational_expression >= shift_expression // - case 131: { action.builder. + case 126: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; } // - // Rule 133: equality_expression ::= equality_expression == relational_expression + // Rule 128: equality_expression ::= equality_expression == relational_expression // - case 133: { action.builder. + case 128: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; } // - // Rule 134: equality_expression ::= equality_expression != relational_expression + // Rule 129: equality_expression ::= equality_expression != relational_expression // - case 134: { action.builder. + case 129: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; } // - // Rule 136: and_expression ::= and_expression & equality_expression + // Rule 131: and_expression ::= and_expression & equality_expression // - case 136: { action.builder. + case 131: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; } // - // Rule 138: exclusive_or_expression ::= exclusive_or_expression ^ and_expression + // Rule 133: exclusive_or_expression ::= exclusive_or_expression ^ and_expression // - case 138: { action.builder. + case 133: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; } // - // Rule 140: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression + // Rule 135: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression // - case 140: { action.builder. + case 135: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; } // - // Rule 142: logical_and_expression ::= logical_and_expression && inclusive_or_expression + // Rule 137: logical_and_expression ::= logical_and_expression && inclusive_or_expression // - case 142: { action.builder. + case 137: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; } // - // Rule 144: logical_or_expression ::= logical_or_expression || logical_and_expression + // Rule 139: logical_or_expression ::= logical_or_expression || logical_and_expression // - case 144: { action.builder. + case 139: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; } // - // Rule 146: conditional_expression ::= logical_or_expression ? expression : assignment_expression + // Rule 141: conditional_expression ::= logical_or_expression ? expression : assignment_expression // - case 146: { action.builder. + case 141: { action.builder. consumeExpressionConditional(); break; } // - // Rule 147: throw_expression ::= throw + // Rule 142: throw_expression ::= throw // - case 147: { action.builder. + case 142: { action.builder. consumeExpressionThrow(false); break; } // - // Rule 148: throw_expression ::= throw assignment_expression + // Rule 143: throw_expression ::= throw assignment_expression // - case 148: { action.builder. + case 143: { action.builder. consumeExpressionThrow(true); break; } // - // Rule 151: assignment_expression ::= logical_or_expression = assignment_expression + // Rule 146: assignment_expression ::= logical_or_expression = assignment_expression // - case 151: { action.builder. + case 146: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; } // - // Rule 152: assignment_expression ::= logical_or_expression *= assignment_expression + // Rule 147: assignment_expression ::= logical_or_expression *= assignment_expression // - case 152: { action.builder. + case 147: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 153: assignment_expression ::= logical_or_expression /= assignment_expression + // Rule 148: assignment_expression ::= logical_or_expression /= assignment_expression // - case 153: { action.builder. + case 148: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; } // - // Rule 154: assignment_expression ::= logical_or_expression %= assignment_expression + // Rule 149: assignment_expression ::= logical_or_expression %= assignment_expression // - case 154: { action.builder. + case 149: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; } // - // Rule 155: assignment_expression ::= logical_or_expression += assignment_expression + // Rule 150: assignment_expression ::= logical_or_expression += assignment_expression // - case 155: { action.builder. + case 150: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; } // - // Rule 156: assignment_expression ::= logical_or_expression -= assignment_expression + // Rule 151: assignment_expression ::= logical_or_expression -= assignment_expression // - case 156: { action.builder. + case 151: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; } // - // Rule 157: assignment_expression ::= logical_or_expression >>= assignment_expression + // Rule 152: assignment_expression ::= logical_or_expression >>= assignment_expression // - case 157: { action.builder. + case 152: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 158: assignment_expression ::= logical_or_expression <<= assignment_expression + // Rule 153: assignment_expression ::= logical_or_expression <<= assignment_expression // - case 158: { action.builder. + case 153: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 159: assignment_expression ::= logical_or_expression &= assignment_expression + // Rule 154: assignment_expression ::= logical_or_expression &= assignment_expression // - case 159: { action.builder. + case 154: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 160: assignment_expression ::= logical_or_expression ^= assignment_expression + // Rule 155: assignment_expression ::= logical_or_expression ^= assignment_expression // - case 160: { action.builder. + case 155: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 161: assignment_expression ::= logical_or_expression |= assignment_expression + // Rule 156: assignment_expression ::= logical_or_expression |= assignment_expression // - case 161: { action.builder. + case 156: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 163: expression_list ::= expression_list_actual + // Rule 158: expression_list ::= expression_list_actual // - case 163: { action.builder. + case 158: { action.builder. consumeExpressionList(); break; } // - // Rule 167: expression_list_opt ::= $Empty + // Rule 162: expression_list_opt ::= $Empty + // + case 162: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 164: expression_opt ::= $Empty + // + case 164: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 167: constant_expression_opt ::= $Empty // case 167: { action.builder. consumeEmpty(); break; } // - // Rule 169: expression_opt ::= $Empty + // Rule 176: statement ::= ERROR_TOKEN // - case 169: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 172: constant_expression_opt ::= $Empty - // - case 172: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 181: statement ::= ERROR_TOKEN - // - case 181: { action.builder. + case 176: { action.builder. consumeStatementProblem(); break; } // - // Rule 182: labeled_statement ::= identifier : statement + // Rule 177: labeled_statement ::= identifier : statement // - case 182: { action.builder. + case 177: { action.builder. consumeStatementLabeled(); break; } // - // Rule 183: labeled_statement ::= case constant_expression : statement + // Rule 178: labeled_statement ::= case constant_expression : statement // - case 183: { action.builder. + case 178: { action.builder. consumeStatementCase(); break; } // - // Rule 184: labeled_statement ::= default : statement + // Rule 179: labeled_statement ::= default : statement // - case 184: { action.builder. + case 179: { action.builder. consumeStatementDefault(); break; } // - // Rule 185: expression_statement ::= expression ; + // Rule 180: expression_statement ::= expression ; // - case 185: { action.builder. + case 180: { action.builder. consumeStatementExpression(); break; } // - // Rule 186: expression_statement ::= ; + // Rule 181: expression_statement ::= ; // - case 186: { action.builder. + case 181: { action.builder. consumeStatementNull(); break; } // - // Rule 187: compound_statement ::= { statement_seq } + // Rule 182: compound_statement ::= { statement_seq } // - case 187: { action.builder. + case 182: { action.builder. consumeStatementCompoundStatement(true); break; } // - // Rule 188: compound_statement ::= { } + // Rule 183: compound_statement ::= { } // - case 188: { action.builder. + case 183: { action.builder. consumeStatementCompoundStatement(false); break; } // - // Rule 191: selection_statement ::= if ( condition ) statement + // Rule 186: selection_statement ::= if ( condition ) statement // - case 191: { action.builder. + case 186: { action.builder. consumeStatementIf(false); break; } // - // Rule 192: selection_statement ::= if ( condition ) statement else statement + // Rule 187: selection_statement ::= if ( condition ) statement else statement // - case 192: { action.builder. + case 187: { action.builder. consumeStatementIf(true); break; } // - // Rule 193: selection_statement ::= switch ( condition ) statement + // Rule 188: selection_statement ::= switch ( condition ) statement // - case 193: { action.builder. + case 188: { action.builder. consumeStatementSwitch(); break; } // - // Rule 195: condition ::= type_specifier_seq declarator = assignment_expression + // Rule 190: condition ::= type_specifier_seq declarator = assignment_expression // - case 195: { action.builder. + case 190: { action.builder. consumeConditionDeclaration(); break; } // - // Rule 197: condition_opt ::= $Empty + // Rule 192: condition_opt ::= $Empty // - case 197: { action.builder. + case 192: { action.builder. consumeEmpty(); break; } // - // Rule 198: iteration_statement ::= while ( condition ) statement + // Rule 193: iteration_statement ::= while ( condition ) statement // - case 198: { action.builder. + case 193: { action.builder. consumeStatementWhileLoop(); break; } // - // Rule 199: iteration_statement ::= do statement while ( expression ) ; + // Rule 194: iteration_statement ::= do statement while ( expression ) ; // - case 199: { action.builder. + case 194: { action.builder. consumeStatementDoLoop(); break; } // - // Rule 200: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement + // Rule 195: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement // - case 200: { action.builder. + case 195: { action.builder. consumeStatementForLoop(); break; } // - // Rule 202: for_init_statement ::= simple_declaration_with_declspec + // Rule 197: for_init_statement ::= simple_declaration_with_declspec // - case 202: { action.builder. + case 197: { action.builder. consumeStatementDeclaration(); break; } // - // Rule 203: jump_statement ::= break ; + // Rule 198: jump_statement ::= break ; // - case 203: { action.builder. + case 198: { action.builder. consumeStatementBreak(); break; } // - // Rule 204: jump_statement ::= continue ; + // Rule 199: jump_statement ::= continue ; // - case 204: { action.builder. + case 199: { action.builder. consumeStatementContinue(); break; } // - // Rule 205: jump_statement ::= return expression ; + // Rule 200: jump_statement ::= return expression ; // - case 205: { action.builder. + case 200: { action.builder. consumeStatementReturn(true); break; } // - // Rule 206: jump_statement ::= return ; + // Rule 201: jump_statement ::= return ; // - case 206: { action.builder. + case 201: { action.builder. consumeStatementReturn(false); break; } // - // Rule 207: jump_statement ::= goto identifier_token ; + // Rule 202: jump_statement ::= goto identifier_token ; // - case 207: { action.builder. + case 202: { action.builder. consumeStatementGoto(); break; } // - // Rule 208: declaration_statement ::= block_declaration + // Rule 203: declaration_statement ::= block_declaration // - case 208: { action.builder. + case 203: { action.builder. consumeStatementDeclarationWithDisambiguation(); break; } // - // Rule 209: declaration_statement ::= function_definition + // Rule 204: declaration_statement ::= function_definition // - case 209: { action.builder. + case 204: { action.builder. consumeStatementDeclaration(); break; } // - // Rule 226: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; + // Rule 212: declaration ::= ERROR_TOKEN // - case 226: { action.builder. + case 212: { action.builder. + consumeDeclarationProblem(); break; + } + + // + // Rule 222: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; + // + case 222: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 227: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; + // Rule 223: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; // - case 227: { action.builder. + case 223: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 228: declaration_specifiers ::= simple_declaration_specifiers + // Rule 224: declaration_specifiers ::= simple_declaration_specifiers // - case 228: { action.builder. + case 224: { action.builder. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 229: declaration_specifiers ::= class_declaration_specifiers + // Rule 225: declaration_specifiers ::= class_declaration_specifiers // - case 229: { action.builder. + case 225: { action.builder. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 230: declaration_specifiers ::= elaborated_declaration_specifiers + // Rule 226: declaration_specifiers ::= elaborated_declaration_specifiers // - case 230: { action.builder. + case 226: { action.builder. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 231: declaration_specifiers ::= enum_declaration_specifiers + // Rule 227: declaration_specifiers ::= enum_declaration_specifiers // - case 231: { action.builder. + case 227: { action.builder. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 232: declaration_specifiers ::= type_name_declaration_specifiers + // Rule 228: declaration_specifiers ::= type_name_declaration_specifiers // - case 232: { action.builder. + case 228: { action.builder. consumeDeclarationSpecifiersTypeName(); break; } // - // Rule 234: declaration_specifiers_opt ::= $Empty + // Rule 230: declaration_specifiers_opt ::= $Empty // - case 234: { action.builder. + case 230: { action.builder. consumeEmpty(); break; } // - // Rule 238: no_type_declaration_specifier ::= friend + // Rule 234: no_type_declaration_specifier ::= friend // - case 238: { action.builder. + case 234: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 239: no_type_declaration_specifier ::= typedef + // Rule 235: no_type_declaration_specifier ::= typedef // - case 239: { action.builder. + case 235: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 259: storage_class_specifier ::= auto + // Rule 255: storage_class_specifier ::= auto + // + case 255: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 256: storage_class_specifier ::= register + // + case 256: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 257: storage_class_specifier ::= static + // + case 257: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 258: storage_class_specifier ::= extern + // + case 258: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 259: storage_class_specifier ::= mutable // case 259: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 260: storage_class_specifier ::= register + // Rule 260: function_specifier ::= inline // case 260: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 261: storage_class_specifier ::= static + // Rule 261: function_specifier ::= virtual // case 261: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 262: storage_class_specifier ::= extern + // Rule 262: function_specifier ::= explicit // case 262: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 263: storage_class_specifier ::= mutable + // Rule 263: simple_type_specifier ::= char // case 263: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 264: function_specifier ::= inline + // Rule 264: simple_type_specifier ::= wchar_t // case 264: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 265: function_specifier ::= virtual + // Rule 265: simple_type_specifier ::= bool // case 265: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 266: function_specifier ::= explicit + // Rule 266: simple_type_specifier ::= short // case 266: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 267: simple_type_specifier ::= char + // Rule 267: simple_type_specifier ::= int // case 267: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 268: simple_type_specifier ::= wchar_t + // Rule 268: simple_type_specifier ::= long // case 268: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 269: simple_type_specifier ::= bool + // Rule 269: simple_type_specifier ::= signed // case 269: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 270: simple_type_specifier ::= short + // Rule 270: simple_type_specifier ::= unsigned // case 270: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 271: simple_type_specifier ::= int + // Rule 271: simple_type_specifier ::= float // case 271: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 272: simple_type_specifier ::= long + // Rule 272: simple_type_specifier ::= double // case 272: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 273: simple_type_specifier ::= signed + // Rule 273: simple_type_specifier ::= void // case 273: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 274: simple_type_specifier ::= unsigned - // - case 274: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 275: simple_type_specifier ::= float - // - case 275: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 276: simple_type_specifier ::= double + // Rule 276: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name // case 276: { action.builder. - consumeDeclSpecToken(); break; + consumeQualifiedId(false); break; } // - // Rule 277: simple_type_specifier ::= void + // Rule 277: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name // case 277: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 280: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name - // - case 280: { action.builder. consumeQualifiedId(false); break; } // - // Rule 281: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name + // Rule 278: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name // - case 281: { action.builder. + case 278: { action.builder. consumeQualifiedId(false); break; } // - // Rule 282: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name + // Rule 279: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name // - case 282: { action.builder. - consumeQualifiedId(false); break; - } - - // - // Rule 283: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name - // - case 283: { action.builder. + case 279: { action.builder. consumeQualifiedId(true); break; } // - // Rule 285: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name + // Rule 281: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name // - case 285: { action.builder. + case 281: { action.builder. consumeTypeSpecifierElaborated(false); break; } // - // Rule 286: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name + // Rule 282: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name // - case 286: { action.builder. + case 282: { action.builder. consumeTypeSpecifierElaborated(true); break; } // - // Rule 287: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name + // Rule 283: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name // - case 287: { action.builder. + case 283: { action.builder. consumeTypeSpecifierElaborated(false); break; } // - // Rule 288: enum_specifier ::= enum { enumerator_list_opt } + // Rule 284: enum_specifier ::= enum { enumerator_list_opt } // - case 288: { action.builder. + case 284: { action.builder. consumeTypeSpecifierEnumeration(false); break; } // - // Rule 289: enum_specifier ::= enum identifier_token { enumerator_list_opt } + // Rule 285: enum_specifier ::= enum identifier_token { enumerator_list_opt } // - case 289: { action.builder. + case 285: { action.builder. consumeTypeSpecifierEnumeration(true); break; } // - // Rule 294: enumerator_definition ::= identifier_token + // Rule 290: enumerator_definition ::= identifier_token // - case 294: { action.builder. + case 290: { action.builder. consumeEnumerator(false); break; } // - // Rule 295: enumerator_definition ::= identifier_token = constant_expression + // Rule 291: enumerator_definition ::= identifier_token = constant_expression // - case 295: { action.builder. + case 291: { action.builder. consumeEnumerator(true); break; } // - // Rule 299: named_namespace_definition ::= namespace namespace_name { declaration_seq_opt } + // Rule 295: named_namespace_definition ::= namespace namespace_name { declaration_seq_opt } // - case 299: { action.builder. + case 295: { action.builder. consumeNamespaceDefinition(true); break; } // - // Rule 300: unnamed_namespace_definition ::= namespace { declaration_seq_opt } + // Rule 296: unnamed_namespace_definition ::= namespace { declaration_seq_opt } // - case 300: { action.builder. + case 296: { action.builder. consumeNamespaceDefinition(false); break; } // - // Rule 301: 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 301: { action.builder. + case 297: { action.builder. consumeNamespaceAliasDefinition(); break; } // - // Rule 302: 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 302: { action.builder. + case 298: { action.builder. consumeUsingDeclaration(); break; } // - // Rule 303: typename_opt ::= typename + // Rule 299: typename_opt ::= typename // - case 303: { action.builder. + case 299: { action.builder. consumePlaceHolder(); break; } // - // Rule 304: typename_opt ::= $Empty + // Rule 300: typename_opt ::= $Empty // - case 304: { action.builder. + case 300: { action.builder. consumeEmpty(); break; } // - // Rule 305: 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 305: { action.builder. + case 301: { action.builder. consumeUsingDirective(); break; } // - // Rule 306: asm_definition ::= asm ( stringlit ) ; + // Rule 302: asm_definition ::= asm ( stringlit ) ; // - case 306: { action.builder. + case 302: { action.builder. consumeDeclarationASM(); break; } // - // Rule 307: linkage_specification ::= extern stringlit { declaration_seq_opt } + // Rule 303: linkage_specification ::= extern stringlit { declaration_seq_opt } // - case 307: { action.builder. + case 303: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 308: linkage_specification ::= extern stringlit declaration + // Rule 304: linkage_specification ::= extern stringlit declaration // - case 308: { action.builder. + case 304: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 313: init_declarator_complete ::= init_declarator + // Rule 309: init_declarator_complete ::= init_declarator // - case 313: { action.builder. + case 309: { action.builder. consumeInitDeclaratorComplete(); break; } // - // Rule 315: init_declarator ::= declarator initializer + // Rule 311: init_declarator ::= declarator initializer // - case 315: { action.builder. + case 311: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 317: declarator ::= ptr_operator_seq direct_declarator + // Rule 313: declarator ::= ptr_operator_seq direct_declarator // - case 317: { action.builder. + case 313: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 319: function_declarator ::= ptr_operator_seq direct_declarator + // Rule 315: function_declarator ::= ptr_operator_seq direct_declarator + // + case 315: { action.builder. + consumeDeclaratorWithPointer(true); break; + } + + // + // Rule 319: basic_direct_declarator ::= declarator_id_name // case 319: { action.builder. - consumeDeclaratorWithPointer(true); break; - } - - // - // Rule 323: basic_direct_declarator ::= declarator_id_name - // - case 323: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 324: basic_direct_declarator ::= ( declarator ) + // Rule 320: basic_direct_declarator ::= ( declarator ) // - case 324: { action.builder. + case 320: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 325: 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 325: { action.builder. + case 321: { action.builder. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 326: array_direct_declarator ::= array_direct_declarator array_modifier + // Rule 322: array_direct_declarator ::= array_direct_declarator array_modifier // - case 326: { action.builder. + case 322: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 327: array_direct_declarator ::= basic_direct_declarator array_modifier + // Rule 323: array_direct_declarator ::= basic_direct_declarator array_modifier // - case 327: { action.builder. + case 323: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 328: array_modifier ::= [ constant_expression ] + // Rule 324: array_modifier ::= [ constant_expression ] // - case 328: { action.builder. + case 324: { action.builder. consumeDirectDeclaratorArrayModifier(true); break; } // - // Rule 329: array_modifier ::= [ ] + // Rule 325: array_modifier ::= [ ] // - case 329: { action.builder. + case 325: { action.builder. consumeDirectDeclaratorArrayModifier(false); break; } // - // Rule 330: ptr_operator ::= * cv_qualifier_seq_opt + // Rule 326: ptr_operator ::= * cv_qualifier_seq_opt // - case 330: { action.builder. + case 326: { action.builder. consumePointer(); break; } // - // Rule 331: ptr_operator ::= & + // Rule 327: ptr_operator ::= & // - case 331: { action.builder. + case 327: { action.builder. consumeReferenceOperator(); break; } // - // Rule 332: 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 332: { action.builder. + case 328: { action.builder. consumePointerToMember(); break; } // - // Rule 338: cv_qualifier ::= const + // Rule 334: cv_qualifier ::= const // - case 338: { action.builder. + case 334: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 339: cv_qualifier ::= volatile + // Rule 335: cv_qualifier ::= volatile // - case 339: { action.builder. + case 335: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 341: 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 341: { action.builder. + case 337: { action.builder. consumeQualifiedId(false); break; } // - // Rule 342: type_id ::= type_specifier_seq + // Rule 338: type_id ::= type_specifier_seq // - case 342: { action.builder. + case 338: { action.builder. consumeTypeId(false); break; } // - // Rule 343: type_id ::= type_specifier_seq abstract_declarator + // Rule 339: type_id ::= type_specifier_seq abstract_declarator // - case 343: { action.builder. + case 339: { action.builder. consumeTypeId(true); break; } // - // Rule 346: abstract_declarator ::= ptr_operator_seq + // Rule 342: abstract_declarator ::= ptr_operator_seq // - case 346: { action.builder. + case 342: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 347: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator + // Rule 343: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator // - case 347: { action.builder. + case 343: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 351: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 347: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - case 351: { action.builder. + case 347: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 352: basic_direct_abstract_declarator ::= ( ) + // Rule 348: basic_direct_abstract_declarator ::= ( ) // - case 352: { action.builder. + case 348: { action.builder. consumeAbstractDeclaratorEmpty(); break; } // - // Rule 353: array_direct_abstract_declarator ::= array_modifier + // Rule 349: array_direct_abstract_declarator ::= array_modifier // - case 353: { action.builder. + case 349: { action.builder. consumeDirectDeclaratorArrayDeclarator(false); break; } // - // Rule 354: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // Rule 350: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier // - case 354: { action.builder. + case 350: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 355: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier + // Rule 351: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier // - case 355: { action.builder. + case 351: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 356: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 352: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 356: { action.builder. + case 352: { action.builder. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 357: 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 357: { action.builder. + case 353: { action.builder. consumeDirectDeclaratorFunctionDeclarator(false); break; } // - // Rule 358: parameter_declaration_clause ::= parameter_declaration_list_opt ... + // Rule 354: parameter_declaration_clause ::= parameter_declaration_list_opt ... // - case 358: { action.builder. + case 354: { action.builder. consumePlaceHolder(); break; } // - // Rule 359: parameter_declaration_clause ::= parameter_declaration_list_opt + // Rule 355: parameter_declaration_clause ::= parameter_declaration_list_opt // - case 359: { action.builder. + case 355: { action.builder. consumeEmpty(); break; } // - // Rule 360: parameter_declaration_clause ::= parameter_declaration_list , ... + // Rule 356: parameter_declaration_clause ::= parameter_declaration_list , ... // - case 360: { action.builder. + case 356: { action.builder. consumePlaceHolder(); break; } // - // Rule 366: abstract_declarator_opt ::= $Empty + // Rule 362: abstract_declarator_opt ::= $Empty // - case 366: { action.builder. + case 362: { action.builder. consumeEmpty(); break; } // - // Rule 367: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // Rule 363: parameter_declaration ::= declaration_specifiers parameter_init_declarator // - case 367: { action.builder. + case 363: { action.builder. consumeParameterDeclaration(); break; } // - // Rule 368: parameter_declaration ::= declaration_specifiers + // Rule 364: parameter_declaration ::= declaration_specifiers // - case 368: { action.builder. + case 364: { action.builder. consumeParameterDeclarationWithoutDeclarator(); break; } // - // Rule 370: parameter_init_declarator ::= declarator = parameter_initializer + // Rule 366: parameter_init_declarator ::= declarator = parameter_initializer // - case 370: { action.builder. + case 366: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 372: parameter_init_declarator ::= abstract_declarator = parameter_initializer + // Rule 368: parameter_init_declarator ::= abstract_declarator = parameter_initializer // - case 372: { action.builder. + case 368: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 373: parameter_init_declarator ::= = parameter_initializer + // Rule 369: parameter_init_declarator ::= = parameter_initializer // - case 373: { action.builder. + case 369: { action.builder. consumeDeclaratorWithInitializer(false); break; } // - // Rule 374: parameter_initializer ::= assignment_expression + // Rule 370: parameter_initializer ::= assignment_expression // - case 374: { action.builder. + case 370: { action.builder. consumeInitializer(); break; } // - // Rule 375: 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 375: { action.builder. + case 371: { action.builder. consumeFunctionDefinition(false); break; } // - // Rule 376: 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 376: { action.builder. + case 372: { action.builder. consumeFunctionDefinition(true); break; } // - // Rule 379: initializer ::= ( expression_list ) + // Rule 375: initializer ::= ( expression_list ) // - case 379: { action.builder. + case 375: { action.builder. consumeInitializerConstructor(); break; } // - // Rule 380: initializer_clause ::= assignment_expression + // Rule 376: initializer_clause ::= assignment_expression // - case 380: { action.builder. + case 376: { action.builder. consumeInitializer(); break; } // - // Rule 381: initializer_clause ::= start_initializer_list { initializer_list , } end_initializer_list + // Rule 377: initializer_clause ::= start_initializer_list { initializer_list , } end_initializer_list // - case 381: { action.builder. + case 377: { action.builder. consumeInitializerList(); break; } // - // Rule 382: initializer_clause ::= start_initializer_list { initializer_list } end_initializer_list + // Rule 378: initializer_clause ::= start_initializer_list { initializer_list } end_initializer_list // - case 382: { action.builder. + case 378: { action.builder. consumeInitializerList(); break; } // - // Rule 383: initializer_clause ::= { } + // Rule 379: initializer_clause ::= { } // - case 383: { action.builder. + case 379: { action.builder. consumeInitializerList(); break; } // - // Rule 384: start_initializer_list ::= $Empty + // Rule 380: start_initializer_list ::= $Empty // - case 384: { action.builder. + case 380: { action.builder. initializerListStart(); break; } // - // Rule 385: end_initializer_list ::= $Empty + // Rule 381: end_initializer_list ::= $Empty // - case 385: { action.builder. + case 381: { action.builder. initializerListEnd(); break; } // - // Rule 390: class_specifier ::= class_head { member_declaration_list_opt } + // Rule 386: class_specifier ::= class_head { member_declaration_list_opt } // - case 390: { action.builder. + case 386: { action.builder. consumeClassSpecifier(); break; } // - // Rule 391: class_head ::= class_keyword identifier_name_opt base_clause_opt + // Rule 387: class_head ::= class_keyword identifier_name_opt base_clause_opt // - case 391: { action.builder. + case 387: { action.builder. consumeClassHead(false); break; } // - // Rule 392: class_head ::= class_keyword template_id_name base_clause_opt + // Rule 388: class_head ::= class_keyword template_id_name base_clause_opt + // + case 388: { action.builder. + consumeClassHead(false); break; + } + + // + // Rule 389: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt + // + case 389: { action.builder. + consumeClassHead(true); break; + } + + // + // Rule 390: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt + // + case 390: { action.builder. + consumeClassHead(true); break; + } + + // + // Rule 392: identifier_name_opt ::= $Empty // case 392: { action.builder. - consumeClassHead(false); break; - } - - // - // Rule 393: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt - // - case 393: { action.builder. - consumeClassHead(true); break; - } - - // - // Rule 394: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt - // - case 394: { action.builder. - consumeClassHead(true); break; - } - - // - // Rule 396: identifier_name_opt ::= $Empty - // - case 396: { action.builder. consumeEmpty(); break; } // - // Rule 400: visibility_label ::= access_specifier_keyword : + // Rule 396: visibility_label ::= access_specifier_keyword : // - case 400: { action.builder. + case 396: { action.builder. consumeVisibilityLabel(); break; } // - // Rule 401: member_declaration ::= declaration_specifiers_opt member_declarator_list ; + // Rule 397: member_declaration ::= declaration_specifiers_opt member_declarator_list ; // - case 401: { action.builder. + case 397: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 402: member_declaration ::= declaration_specifiers_opt ; + // Rule 398: member_declaration ::= declaration_specifiers_opt ; // - case 402: { action.builder. + case 398: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 405: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; + // Rule 401: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; // - case 405: { action.builder. + case 401: { action.builder. consumeMemberDeclarationQualifiedId(); break; } // - // Rule 411: member_declaration ::= ERROR_TOKEN + // Rule 407: member_declaration ::= ERROR_TOKEN // - case 411: { action.builder. + case 407: { action.builder. consumeDeclarationProblem(); break; } // - // Rule 419: member_declarator ::= declarator constant_initializer + // Rule 415: member_declarator ::= declarator constant_initializer // - case 419: { action.builder. + case 415: { action.builder. consumeMemberDeclaratorWithInitializer(); break; } // - // Rule 420: member_declarator ::= bit_field_declarator : constant_expression + // Rule 416: member_declarator ::= bit_field_declarator : constant_expression // - case 420: { action.builder. + case 416: { action.builder. consumeBitField(true); break; } // - // Rule 421: member_declarator ::= : constant_expression + // Rule 417: member_declarator ::= : constant_expression // - case 421: { action.builder. + case 417: { action.builder. consumeBitField(false); break; } // - // Rule 422: bit_field_declarator ::= identifier_name + // Rule 418: bit_field_declarator ::= identifier_name // - case 422: { action.builder. + case 418: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 423: constant_initializer ::= = constant_expression + // Rule 419: constant_initializer ::= = constant_expression // - case 423: { action.builder. + case 419: { action.builder. consumeInitializer(); break; } // - // Rule 429: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 425: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 429: { action.builder. + case 425: { action.builder. consumeBaseSpecifier(false, false); break; } // - // Rule 430: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name + // Rule 426: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name // - case 430: { action.builder. + case 426: { action.builder. consumeBaseSpecifier(true, true); break; } // - // Rule 431: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name + // Rule 427: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name // - case 431: { action.builder. + case 427: { action.builder. consumeBaseSpecifier(true, true); break; } // - // Rule 432: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name + // Rule 428: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name // - case 432: { action.builder. + case 428: { action.builder. consumeBaseSpecifier(true, false); break; } // - // Rule 433: access_specifier_keyword ::= private + // Rule 429: access_specifier_keyword ::= private + // + case 429: { action.builder. + consumeAccessKeywordToken(); break; + } + + // + // Rule 430: access_specifier_keyword ::= protected + // + case 430: { action.builder. + consumeAccessKeywordToken(); break; + } + + // + // Rule 431: access_specifier_keyword ::= public + // + case 431: { action.builder. + consumeAccessKeywordToken(); break; + } + + // + // Rule 433: access_specifier_keyword_opt ::= $Empty // case 433: { action.builder. - consumeAccessKeywordToken(); break; - } - - // - // Rule 434: access_specifier_keyword ::= protected - // - case 434: { action.builder. - consumeAccessKeywordToken(); break; - } - - // - // Rule 435: access_specifier_keyword ::= public - // - case 435: { action.builder. - consumeAccessKeywordToken(); break; - } - - // - // Rule 437: access_specifier_keyword_opt ::= $Empty - // - case 437: { action.builder. consumeEmpty(); break; } // - // Rule 439: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > + // Rule 435: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > // - case 439: { action.builder. + case 435: { action.builder. consumeTemplateId(); break; } // - // Rule 440: conversion_function_id ::= operator conversion_type_id + // Rule 436: conversion_function_id ::= operator conversion_type_id // - case 440: { action.builder. + case 436: { action.builder. consumeConversionName(); break; } // - // Rule 441: conversion_type_id ::= type_specifier_seq conversion_declarator + // Rule 437: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 441: { action.builder. + case 437: { action.builder. consumeTypeId(true); break; } // - // Rule 442: conversion_type_id ::= type_specifier_seq + // Rule 438: conversion_type_id ::= type_specifier_seq // - case 442: { action.builder. + case 438: { action.builder. consumeTypeId(false); break; } // - // Rule 443: conversion_declarator ::= ptr_operator_seq + // Rule 439: conversion_declarator ::= ptr_operator_seq // - case 443: { action.builder. + case 439: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 449: mem_initializer ::= mem_initializer_name ( expression_list_opt ) + // Rule 445: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 449: { action.builder. + case 445: { action.builder. consumeConstructorChainInitializer(); break; } // - // Rule 450: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 446: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name // - case 450: { action.builder. + case 446: { action.builder. consumeQualifiedId(false); break; } // - // Rule 453: operator_function_id_name ::= operator_id_name < template_argument_list_opt > + // Rule 449: operator_function_id_name ::= operator_id_name < template_argument_list_opt > // - case 453: { action.builder. + case 449: { action.builder. consumeTemplateId(); break; } // - // Rule 454: operator_id_name ::= operator overloadable_operator + // Rule 450: operator_id_name ::= operator overloadable_operator // - case 454: { action.builder. + case 450: { action.builder. consumeOperatorName(); break; } // - // Rule 497: template_declaration ::= export_opt template < template_parameter_list > declaration + // Rule 493: template_declaration ::= export_opt template < template_parameter_list > declaration // - case 497: { action.builder. + case 493: { action.builder. consumeTemplateDeclaration(); break; } // - // Rule 498: export_opt ::= export + // Rule 494: export_opt ::= export // - case 498: { action.builder. + case 494: { action.builder. consumePlaceHolder(); break; } // - // Rule 499: export_opt ::= $Empty + // Rule 495: export_opt ::= $Empty // - case 499: { action.builder. + case 495: { action.builder. consumeEmpty(); break; } // - // Rule 503: template_parameter ::= parameter_declaration + // Rule 499: template_parameter ::= parameter_declaration // - case 503: { action.builder. + case 499: { action.builder. consumeTemplateParamterDeclaration(); break; } // - // Rule 504: type_parameter ::= class identifier_name_opt + // Rule 500: type_parameter ::= class identifier_name_opt + // + case 500: { action.builder. + consumeSimpleTypeTemplateParameter(false); break; + } + + // + // Rule 501: type_parameter ::= class identifier_name_opt = type_id + // + case 501: { action.builder. + consumeSimpleTypeTemplateParameter(true); break; + } + + // + // Rule 502: type_parameter ::= typename identifier_name_opt + // + case 502: { action.builder. + consumeSimpleTypeTemplateParameter(false); break; + } + + // + // Rule 503: type_parameter ::= typename identifier_name_opt = type_id + // + case 503: { action.builder. + consumeSimpleTypeTemplateParameter(true); break; + } + + // + // Rule 504: type_parameter ::= template < template_parameter_list > class identifier_name_opt // case 504: { action.builder. - consumeSimpleTypeTemplateParameter(false); break; - } - - // - // Rule 505: type_parameter ::= class identifier_name_opt = type_id - // - case 505: { action.builder. - consumeSimpleTypeTemplateParameter(true); break; - } - - // - // Rule 506: type_parameter ::= typename identifier_name_opt - // - case 506: { action.builder. - consumeSimpleTypeTemplateParameter(false); break; - } - - // - // Rule 507: type_parameter ::= typename identifier_name_opt = type_id - // - case 507: { action.builder. - consumeSimpleTypeTemplateParameter(true); break; - } - - // - // Rule 508: type_parameter ::= template < template_parameter_list > class identifier_name_opt - // - case 508: { action.builder. consumeTemplatedTypeTemplateParameter(false); break; } // - // Rule 509: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression + // Rule 505: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression // - case 509: { action.builder. + case 505: { action.builder. consumeTemplatedTypeTemplateParameter(true); break; } // - // Rule 510: template_id_name ::= identifier_name < template_argument_list_opt > + // Rule 506: template_id_name ::= identifier_name < template_argument_list_opt > // - case 510: { action.builder. + case 506: { action.builder. consumeTemplateId(); break; } // - // Rule 515: template_argument ::= assignment_expression + // Rule 511: template_argument ::= assignment_expression // - case 515: { action.builder. + case 511: { action.builder. consumeTemplateArgumentExpression(); break; } // - // Rule 516: template_argument ::= type_id + // Rule 512: template_argument ::= type_id // - case 516: { action.builder. + case 512: { action.builder. consumeTemplateArgumentTypeId(); break; } // - // Rule 517: explicit_instantiation ::= template declaration + // Rule 513: explicit_instantiation ::= template declaration // - case 517: { action.builder. + case 513: { action.builder. consumeTemplateExplicitInstantiation(); break; } // - // Rule 518: explicit_specialization ::= template < > declaration + // Rule 514: explicit_specialization ::= template < > declaration // - case 518: { action.builder. + case 514: { action.builder. consumeTemplateExplicitSpecialization(); break; } // - // Rule 519: try_block ::= try compound_statement handler_seq + // Rule 515: try_block ::= try compound_statement handler_seq // - case 519: { action.builder. + case 515: { action.builder. consumeStatementTryBlock(); break; } // - // Rule 522: handler ::= catch ( exception_declaration ) compound_statement + // Rule 518: handler ::= catch ( exception_declaration ) compound_statement // - case 522: { action.builder. + case 518: { action.builder. consumeStatementCatchHandler(false); break; } // - // Rule 523: handler ::= catch ( ... ) compound_statement + // Rule 519: handler ::= catch ( ... ) compound_statement // - case 523: { action.builder. + case 519: { action.builder. consumeStatementCatchHandler(true); break; } // - // Rule 524: exception_declaration ::= type_specifier_seq declarator + // Rule 520: exception_declaration ::= type_specifier_seq declarator // - case 524: { action.builder. + case 520: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 525: exception_declaration ::= type_specifier_seq abstract_declarator + // Rule 521: exception_declaration ::= type_specifier_seq abstract_declarator // - case 525: { action.builder. + case 521: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 526: exception_declaration ::= type_specifier_seq + // Rule 522: exception_declaration ::= type_specifier_seq // - case 526: { action.builder. + case 522: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 528: exception_specification ::= throw ( ) + // Rule 524: exception_specification ::= throw ( ) // - case 528: { action.builder. + case 524: { action.builder. consumePlaceHolder(); break; } // - // Rule 534: type_parameter_start ::= ERROR_TOKEN + // Rule 530: type_parameter_start ::= ERROR_TOKEN // - case 534: { action.builder. + case 530: { action.builder. consumeDeclarationProblem(); break; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParserprs.java index 4621b625d8b..864933421b9 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParserprs.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParserprs.java @@ -38,492 +38,496 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface BaseCheck { public final static short baseCheck[] = {0, 0,0,1,1,1,1,1,1,1,1, - 1,1,1,0,1,2,1,1,1,1, - 1,1,1,1,1,1,1,1,1,3, - 1,1,1,1,1,1,1,1,2,2, - 1,1,0,1,0,4,2,3,2,3, - 2,2,1,0,1,1,4,4,4,8, - 8,3,3,4,4,3,3,2,2,7, - 7,7,7,4,4,5,6,3,2,2, - 1,1,1,2,2,2,2,2,2,2, - 2,2,4,7,9,3,0,1,2,2, - 1,2,3,4,1,0,3,1,0,3, - 5,1,4,1,3,3,1,3,3,3, - 1,3,3,1,3,3,1,3,3,3, - 3,1,3,3,1,3,1,3,1,3, - 1,3,1,3,1,5,1,2,1,1, - 3,3,3,3,3,3,3,3,3,3, - 3,1,2,1,3,1,0,1,0,1, - 1,0,1,1,1,1,1,1,1,1, - 1,3,4,3,2,1,4,2,1,2, - 5,7,5,1,4,1,0,5,7,8, - 1,1,2,2,3,2,3,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,2,1,0,4,4,2,2,2, - 2,2,1,0,1,1,1,1,1,1, - 2,1,2,2,2,1,1,2,2,1, - 2,2,1,2,2,1,2,2,1,1, + 1,1,1,1,3,1,1,1,1,1, + 1,1,1,2,2,1,1,0,1,0, + 4,2,3,2,3,2,2,1,0,1, + 1,4,4,4,8,8,3,3,4,4, + 3,3,2,2,7,7,7,7,4,4, + 5,6,3,2,2,1,1,1,2,2, + 2,2,2,2,2,2,2,4,7,9, + 3,0,1,2,2,1,2,3,4,1, + 0,3,1,0,3,5,1,4,1,3, + 3,1,3,3,3,1,3,3,1,3, + 3,1,3,3,3,3,1,3,3,1, + 3,1,3,1,3,1,3,1,3,1, + 5,1,2,1,1,3,3,3,3,3, + 3,3,3,3,3,3,1,2,1,3, + 1,0,1,0,1,1,0,1,1,1, + 1,1,1,1,1,1,3,4,3,2, + 1,4,2,1,2,5,7,5,1,4, + 1,0,5,7,8,1,1,2,2,3, + 2,3,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,2,1, + 0,4,4,2,2,2,2,2,1,0, + 1,1,1,1,1,1,2,1,2,2, + 2,1,1,2,2,1,2,2,1,2, + 2,1,2,2,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,3, - 4,4,5,2,4,5,4,5,6,1, - 3,1,0,1,3,1,1,1,6,5, - 7,6,1,0,6,5,6,4,1,3, - 1,0,1,1,2,1,3,1,3,1, - 1,1,1,3,9,2,2,3,2,3, - 1,5,1,2,2,1,0,1,1,1, - 3,1,2,1,1,2,3,1,1,1, - 3,2,1,2,2,9,8,2,1,3, - 1,3,1,0,1,0,2,1,1,3, - 1,3,2,1,5,8,1,2,3,1, - 7,6,3,0,0,1,3,1,1,5, - 4,4,5,5,1,0,1,1,1,2, - 4,2,2,1,5,1,1,1,1,1, - 1,1,2,1,0,1,3,1,2,3, - 2,1,2,2,1,0,1,3,3,5, - 5,4,1,1,1,1,0,1,5,2, - 2,1,2,2,1,0,1,3,4,3, - 1,1,5,2,1,1,3,3,1,1, + 1,1,1,1,1,3,4,4,5,2, + 4,5,4,5,6,1,3,1,0,1, + 3,1,1,1,6,5,7,6,1,0, + 6,5,6,4,1,3,1,0,1,1, + 2,1,3,1,3,1,1,1,1,3, + 9,2,2,3,2,3,1,5,1,2, + 2,1,0,1,1,1,3,1,2,1, + 1,2,3,1,1,1,3,2,1,2, + 2,9,8,2,1,3,1,3,1,0, + 1,0,2,1,1,3,1,3,2,1, + 5,8,1,2,3,1,7,6,3,0, + 0,1,3,1,1,5,4,4,5,5, + 1,0,1,1,1,2,4,2,2,1, + 5,1,1,1,1,1,1,1,2,1, + 0,1,3,1,2,3,2,1,2,2, + 1,0,1,3,3,5,5,4,1,1, + 1,1,0,1,5,2,2,1,2,2, + 1,0,1,3,4,3,1,1,5,2, + 1,1,3,3,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,2,2,7,1,0,1, - 3,1,1,2,4,2,4,7,9,5, - 1,3,1,0,1,1,2,4,4,1, - 2,5,5,3,3,1,4,3,1,0, - 1,3,1,1,-130,0,0,0,-2,0, + 2,2,7,1,0,1,3,1,1,2, + 4,2,4,7,9,5,1,3,1,0, + 1,1,2,4,4,1,2,5,5,3, + 3,1,4,3,1,0,1,3,1,1, + -130,0,0,0,-2,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-3,0,0,0, - 0,0,0,0,-265,0,-191,0,0,0, - 0,0,-45,0,0,0,0,0,-136,0, - 0,0,-22,0,0,0,0,0,0,0, - 0,-153,0,0,0,0,0,0,0,0, + 0,0,-3,0,0,0,0,0,0,0, + -265,0,-191,0,0,0,0,0,-45,0, + 0,0,0,0,-136,0,0,0,-22,0, + 0,0,0,0,0,0,0,-153,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-1,0,0,0,0,0,0, - 0,0,0,-354,0,0,0,-60,0,0, + 0,0,0,0,0,0,0,0,0,-1, + 0,0,0,0,0,0,0,0,0,-354, + 0,0,0,-60,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-7, - 0,0,0,0,0,-8,0,0,-137,0, + 0,0,0,0,0,-7,0,0,0,0, + 0,-8,0,0,-137,0,0,0,0,0, + 0,0,0,0,0,0,0,-4,0,0, + 0,0,0,-193,0,0,0,0,0,0, + -174,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-4,0,0,0,0,0,-193,0,0, - 0,0,0,0,-174,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-83,0,0,0,-34,0, + -372,0,0,0,-206,0,-26,0,0,0, + -107,0,0,0,0,-175,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-83,0, - 0,0,-34,0,-372,0,0,0,-206,0, - -26,0,0,0,-107,0,0,0,0,-175, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-406,0,-12,0,0, + 0,0,0,-16,0,0,0,0,0,-23, + 0,0,0,-218,-324,0,0,0,0,0, + 0,0,-199,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-6,0, + -19,0,0,0,-179,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-406, - 0,-12,0,0,0,0,0,-16,0,0, - 0,0,0,-23,0,0,0,-218,-324,0, - 0,0,0,0,0,0,-199,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-6,0,-19,0,0,0,-179,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-35,0,0,0,-20,0, + -27,-5,0,0,0,-24,0,0,0,-297, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-35,0, - 0,0,-20,0,-27,-5,0,0,0,-24, - 0,0,0,-297,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-290, + 0,-28,0,0,0,0,0,-214,0,0, + 0,0,0,-55,0,0,-30,0,0,-249, + -192,0,0,0,0,0,-220,0,0,0, + -44,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-50,0,-501,0,0,0, + -51,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-349,0, + 0,0,0,0,0,-367,0,0,0,-523, + 0,0,0,-402,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-290,0,-28,0,0,0,0, - 0,-214,0,0,0,0,0,-55,0,0, - -30,0,0,-249,-192,0,0,0,0,0, - -220,0,0,0,-44,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-50,0, - -501,0,0,0,-51,0,0,0,0,0, + 0,-52,0,0,0,0,0,0,0,-53, + 0,-54,0,-37,0,0,0,-41,0,0, + 0,0,0,-18,0,0,0,-25,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-349,0,0,0,0,0,0,-52, - 0,0,0,-523,0,0,0,-53,0,0, + 0,0,0,0,0,-132,0,0,0,0, + 0,0,0,0,0,0,-306,-442,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-54,0,0,0,0, - 0,0,0,-367,0,-56,0,-37,0,0, - 0,-41,0,0,0,0,0,-18,0,0, - 0,-25,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-132, + 0,0,0,0,0,0,0,0,0,-56, 0,0,0,0,0,0,0,0,0,0, - -306,-442,0,0,0,0,0,0,0,0, + -464,-85,-387,0,0,0,0,0,-81,0, + 0,0,-68,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-68,0,0,0,0,0,0, - 0,-69,0,-70,0,0,0,0,0,0, - 0,0,0,0,-464,-85,-387,0,0,0, - 0,0,-81,0,0,0,0,0,0,0, + -69,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-196,0,0,0, + 0,-156,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-71,0,0,0,0,0, + 0,0,0,-70,0,0,0,0,0,0, + 0,-71,0,0,0,-82,0,0,0,-72, 0,0,0,0,0,0,0,0,0,0, - -196,0,0,0,0,-156,0,0,0,0, + 0,0,0,0,0,0,0,-73,0,0, + 0,0,0,0,0,0,0,-74,0,-91, + 0,0,0,0,-317,0,0,0,-258,-208, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-72,0,0, - 0,0,0,0,0,-73,0,0,0,-82, - 0,0,0,-74,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-75,0,0,0,0,0,0,0,0, - 0,-76,0,-91,0,0,0,0,-317,0, - 0,0,-258,-208,0,0,0,0,0,0, + 0,-92,0,0,0,0,0,0,0,-86, + 0,-177,0,0,0,0,0,0,0,0, + 0,0,-21,0,0,0,-75,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-92,0,0,0,0, - 0,0,0,-86,0,-177,0,0,0,0, - 0,0,0,0,0,0,-21,0,0,0, - -77,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-89,0,-78,0, - 0,0,0,0,0,-79,0,0,0,-428, + 0,0,-89,0,-76,0,0,0,0,0, + 0,-79,0,0,0,-428,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-268,0,0,0,0, - 0,0,0,-283,0,0,0,0,0,-392, - 0,0,0,-198,0,0,0,0,-80,-112, - -178,-159,0,0,0,0,0,0,0,0, + 0,-268,0,0,0,0,0,0,0,-283, + 0,0,0,0,0,-392,0,0,0,-198, + 0,0,0,0,-77,-112,-178,-159,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-90,0,-84,0,0,0,0,0,0, - -473,0,0,0,-160,0,0,0,-342,0, + 0,0,0,0,0,0,0,-90,0,-78, + 0,0,0,0,0,0,-473,0,0,0, + -160,0,0,0,-342,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-87,0,0,0, - 0,0,0,0,-96,0,-88,0,0,0, - 0,0,0,0,0,0,0,-161,0,0, - 0,-385,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-94, - 0,0,0,0,0,0,0,-105,0,-95, - 0,0,0,0,0,-402,-98,0,0,0, - -162,0,0,0,-111,0,0,0,0,0, + 0,0,-80,0,0,0,0,0,0,0, + -96,0,-84,0,0,0,0,0,0,0, + 0,0,0,-161,0,0,0,-385,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-87,0,0,0,0, + 0,0,0,-105,0,-88,0,0,0,0, + 0,-459,0,0,0,0,-162,0,0,0, + -94,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -106,0,-117,0,0,0,0,0,-459,0, - -120,0,0,-163,0,0,0,-447,0,0, + 0,0,0,0,0,0,-106,0,-95,0, + 0,0,0,0,-463,0,-98,0,0,-163, + 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,-135,0,0,0,0, - 0,0,0,0,0,-183,0,-108,0,0, - 0,0,0,-184,0,0,-164,0,0,0, - -500,0,0,0,0,0,0,0,0,0, + 0,-111,0,0,0,0,0,0,0,0, + 0,-117,0,-108,0,0,0,0,0,-120, + 0,0,-164,0,0,0,-500,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-186,0, - -110,0,0,0,0,0,-202,0,0,-165, - 0,0,0,-203,0,0,0,0,0,0, + 0,0,0,0,-135,0,0,0,0,0, + 0,0,0,0,-183,0,-110,0,0,0, + 0,0,-184,0,0,-165,0,0,0,-186, 0,0,0,0,0,0,0,0,0,0, - 0,-204,0,0,0,0,0,0,0,0, - 0,-205,0,-113,0,0,0,0,-463,0, - 0,0,-166,0,0,0,-210,0,0,0, + 0,0,0,0,0,0,0,-202,0,0, + 0,0,0,0,0,0,0,-203,0,-113, + 0,0,0,0,-512,-204,0,0,-166,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,-211,0,0,0,0,0, - 0,0,0,0,0,0,-189,0,0,0, - 0,-512,-212,0,0,-167,0,0,0,-213, + -210,0,0,0,0,0,0,0,0,0, + 0,0,-189,0,0,0,0,-211,-212,0, + 0,-167,0,0,0,-213,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-225,0,0, - 0,0,0,0,0,-190,0,0,0,0, - 0,0,0,-216,-226,-227,0,0,-168,0, - 0,0,-228,0,0,0,0,0,0,0, + 0,0,0,-225,0,0,0,0,0,0, + 0,-190,0,0,0,0,0,0,0,-216, + -226,-227,0,0,-168,0,0,0,-228,0, 0,0,0,0,0,0,0,0,0,0, - -229,0,0,0,0,0,0,0,-194,0, - -230,0,0,0,0,0,-224,-231,-232,0, - 0,-169,0,0,0,-233,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-194,0,-229,0,0,0, + 0,0,-224,-230,-231,0,0,-169,0,0, + 0,-232,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-233, + 0,0,0,0,0,0,0,-234,0,-235, + 0,0,0,0,0,-236,-237,-238,0,0, + -284,0,0,0,-239,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-234,0,-235,0,0,0,0,0,-236, - -237,-238,0,0,-284,0,0,0,-239,0, + 0,0,-240,0,0,0,0,0,0,0, + -241,0,-242,0,0,0,0,0,-243,-403, + -246,0,0,-294,0,0,0,-247,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-240,0,0,0, - 0,0,0,0,-241,0,-242,0,0,0, - 0,0,-243,-403,-246,0,0,-294,0,0, - 0,-247,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-404, - 0,0,0,0,0,0,0,-253,0,-248, - 0,0,0,0,0,-250,-251,-261,0,0, - -517,0,0,0,-263,0,0,0,0,0, + 0,0,0,0,0,-404,0,0,0,0, + 0,0,0,-253,0,-248,0,0,0,0, + 0,-250,-251,-261,0,0,-517,0,0,0, + -263,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-264,0, + 0,0,0,0,0,0,-256,0,-274,0, + 0,0,0,0,-275,-278,-279,0,0,-316, + 0,0,0,-280,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-264,0,0,0,0,0,0,0, - -256,0,-274,0,0,0,0,0,-275,-278, - -279,0,0,-316,0,0,0,-280,0,0, + 0,-281,0,0,0,0,0,0,0,-304, + 0,-260,0,0,0,0,0,-347,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-281,0,0,0,0, - 0,0,0,-304,0,-260,0,0,0,0, - 0,-347,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-305,0,0,0,-32, - 0,0,0,-310,-344,0,0,0,0,0, - -390,0,0,0,0,0,0,0,0,0, + 0,-305,0,0,0,-32,0,0,0,-310, + -344,0,0,0,0,0,-390,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-311,0,0,0,0,0,0,0, - -441,0,0,0,0,0,0,0,-391,0, + 0,0,0,0,0,0,0,0,-311,0, + 0,0,0,0,0,0,-441,0,0,0, + 0,0,0,0,-391,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-289,0, - -363,0,0,0,0,0,-181,0,0,0, - -322,-273,0,0,0,0,0,-400,0,0, + 0,0,0,0,-289,0,-363,0,0,0, + 0,0,-181,0,0,0,-322,-273,0,0, + 0,0,0,-400,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-323, - 0,0,0,0,0,0,0,-295,0,-373, - 0,0,0,0,0,-450,0,0,0,0, + 0,0,0,0,0,-323,0,0,0,0, + 0,0,0,-295,0,-373,0,0,0,0, + 0,-450,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-296,0,0,0,0, - 0,0,0,-335,0,0,0,-329,-315,0, - 0,0,0,0,-171,0,0,0,0,0, + 0,-296,0,0,0,0,0,0,0,-335, + 0,0,0,-329,-315,0,0,0,0,0, + -171,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-346,0,0,0, - 0,0,0,0,-99,0,-348,0,0,0, - -93,0,-158,0,0,0,0,0,0,0, + 0,0,-346,0,0,0,0,0,0,0, + -99,0,-348,0,0,0,-93,0,-158,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-401,0,-157,0,0,0, - -423,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-13,0,0,0, - 0,0,0,0,0,0,0,0,0,-15, - -133,-303,-36,0,-252,0,0,0,-33,0, + -401,0,-157,0,0,0,-423,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-222,0,0,0,-100,0,0,0,0, - 0,0,0,0,-255,-139,0,-101,0,0, - 0,0,0,-128,0,0,0,0,0,0, - -364,-368,-129,-39,0,0,0,0,0,-369, - 0,0,-286,0,0,0,0,0,0,0, - 0,0,-293,0,0,0,-375,-378,0,0, - 0,0,0,0,0,-397,0,0,0,0, - 0,0,0,0,0,-405,0,0,0,0, - 0,0,0,0,-154,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-13,0,0,0,0,0,0,0, + 0,0,0,0,0,-15,-133,-303,-36,0, + -252,0,0,0,-33,0,0,0,0,0, + 0,0,0,0,0,0,0,-222,0,0, + 0,-100,0,0,0,0,0,0,0,0, + -255,-139,0,-101,0,0,0,0,0,-128, + 0,0,0,0,0,0,-364,-368,-129,-39, + 0,0,0,0,0,-369,0,0,-286,0, + 0,0,0,0,0,0,0,0,-293,0, + 0,0,-375,-378,0,0,0,0,0,0, + 0,-397,0,0,0,0,0,0,0,0, + 0,-405,0,0,0,0,0,0,0,0, + -154,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-155,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-155,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-413,0,0,0,0,0, - 0,-147,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-408,0,0,0,0,-148,0, + -413,0,0,0,0,0,0,-147,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-408, + 0,0,0,0,-148,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -409,0,0,0,0,-149,0,0,0,-412, + 0,0,0,0,0,0,-409,0,0,0, + 0,-149,0,0,0,-412,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-38,0,0, - 0,0,-150,0,0,0,-301,0,0,0, + 0,0,0,-38,0,0,0,0,-150,0, + 0,0,-301,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-416,0,0,0,0,-407, + -416,0,0,0,0,-407,0,0,0,0, + 0,0,0,0,0,0,0,0,-427,-266, 0,0,0,0,0,0,0,0,0,0, - 0,0,-427,-266,0,0,0,0,0,0, - 0,0,0,0,0,0,-40,-102,0,-327, - -435,0,0,-418,0,-384,0,0,0,-429, - 0,0,0,0,0,0,-262,0,0,0, + 0,0,-40,-102,0,-327,-435,0,0,-418, + 0,-384,0,0,0,-429,0,0,0,0, + 0,0,-262,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-49, + 0,0,-380,-449,0,0,0,0,0,0, + 0,-514,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-451,-453,-58,0,0, + 0,0,-454,0,0,0,0,0,0,0, + -254,-29,-217,-448,0,0,0,0,0,0, + 0,0,0,0,-455,-302,-421,0,0,0, + -456,0,0,0,0,0,0,0,0,0, + 0,0,-312,0,-197,0,0,0,0,-458, + -307,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-474,0,-436, + 0,0,0,0,0,0,0,-182,0,0, + 0,0,0,0,0,0,0,-516,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-49,0,0,-380,-449,0,0, - 0,0,0,0,0,-514,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-451, - -453,-58,0,0,0,0,-454,0,0,0, - 0,0,0,0,-254,-29,-217,-448,0,0, - 0,0,0,0,0,0,0,0,-455,-302, - -421,0,0,0,-456,0,0,0,0,0, - 0,0,0,0,0,0,-312,0,-197,0, - 0,0,0,-458,-307,0,0,0,0,0, + 0,-352,-14,0,0,0,0,0,0,0, + 0,-103,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-475,-379,0,0,-271, + 0,0,0,-48,-119,-328,0,0,0,0, + 0,-419,0,0,0,0,0,0,-477,0, + 0,-482,-31,0,0,0,0,-276,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-474,0,-436,0,0,0,0,0,0, - 0,-182,0,0,0,0,0,0,0,0, - 0,-516,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-352,-14,0,0,0, - 0,0,0,0,0,-103,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-475, - -379,0,0,-271,0,0,0,-48,-119,-328, - 0,0,0,0,0,-419,0,0,0,0, - 0,0,-477,0,0,-482,-31,0,0,0, - 0,-276,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-481,0,0,0, - 0,-515,-522,0,0,0,0,0,-486,0, - 0,0,0,0,0,0,0,-334,0,0, - 0,0,0,0,0,-498,0,0,0,0, - 0,0,0,-506,0,0,-282,0,0,0, - -398,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-527,0,0,0,0, - 0,0,0,0,0,-325,0,0,0,-518, - 0,0,0,0,0,0,-151,0,0,0, - -187,0,0,0,0,0,0,0,0,0, + 0,0,-481,0,0,0,0,-515,-522,0, + 0,0,0,0,-486,0,0,0,0,0, + 0,0,0,-334,0,0,0,0,0,0, + 0,-498,0,0,0,0,0,0,0,-506, + 0,0,-282,0,0,0,-398,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-152,0,0,0,-528,0,0,0, + 0,-518,0,0,0,0,0,0,0,0, + 0,-325,0,0,0,-528,0,0,0,0, + 0,0,-151,0,0,0,-187,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-308,0, + 0,0,0,0,0,0,0,0,-152,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-377,0,0,0,0,0,0,0, - 0,0,0,0,0,-330,0,0,0,-457, - 0,-337,-9,0,-118,0,0,-374,-411,0, - -172,-10,0,0,0,0,0,0,0,0, - 0,0,-444,-470,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-452,0,0,0,0,0, - 0,0,0,0,0,-476,0,0,-339,0, + 0,0,0,0,-308,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-377,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-47,0,0,-200, - -415,0,0,0,0,0,-269,-292,0,0, - 0,-313,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-478, - 0,0,0,0,0,0,0,0,0,-180, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-201,0,0,-42,0,0, - -176,-97,0,0,0,0,0,0,0,0, - 0,0,-195,0,0,0,0,0,0,0, - 0,0,0,-492,0,0,0,0,-17,-383, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-116,0,0,0, - 0,0,0,0,0,0,-467,0,0,0, - 0,0,0,0,-341,-207,-272,0,0,0, - 0,0,0,0,0,0,0,-505,0,0, - 0,0,-460,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -420,0,0,0,0,0,0,0,-331,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-507,0,0,0,0,-170,0,0,0, + 0,-330,0,0,0,-457,0,-337,-9,0, + -118,0,0,-374,-411,0,-172,-10,0,0, + 0,0,0,0,0,0,0,0,-444,-470, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -452,0,0,0,0,0,0,0,0,-461, + 0,-476,0,0,-339,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-47,0,0,-200,-415,0,0,0, + 0,0,-269,-97,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-478,0,0,0,0, + 0,0,0,-467,-313,-201,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -207,0,0,-42,0,0,-176,-116,0,0, + 0,0,0,0,0,0,0,0,-195,0, + 0,0,0,0,0,0,0,0,0,-492, + 0,0,0,0,-17,-383,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-292,0,0,0,0,0,-341,0, + 0,0,0,0,0,0,-11,0,0,0, + 0,-219,-272,0,-462,0,0,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,-420,0,0,0, + -527,0,0,0,-331,0,0,0,0,-472, + 0,0,0,0,0,0,-223,0,0,0, + 0,0,0,0,0,0,0,-507,0,0, + 0,0,-460,-170,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -437,0,0,0,0,0,0,0,0,0, + 0,-180,0,0,-122,0,0,0,0,-244, + 0,0,0,0,0,0,0,0,0,0, + 0,-511,0,0,0,0,0,-361,0,0, 0,-298,0,0,0,0,0,0,0,0, - 0,0,-488,0,-437,0,0,0,0,0, - -353,0,0,0,0,0,0,0,-11,0, - 0,0,0,-461,-386,0,-219,0,0,0, - 0,0,0,0,0,-511,0,0,0,0, - 0,-361,0,0,0,-223,0,0,0,0, - 0,0,0,0,0,0,-122,0,0,-244, - 0,0,-245,0,0,0,0,0,0,0, - -257,0,0,0,0,0,-123,0,0,0, - 0,0,0,0,0,0,0,0,0,-524, - 0,0,-127,0,0,-173,0,-513,0,0, - 0,0,0,0,0,0,0,0,0,-410, - 0,0,-462,-345,0,-472,-318,0,0,0, + 0,0,-123,0,-488,-245,0,0,-291,0, + -353,0,0,0,0,0,-257,0,0,0, + 0,0,-124,-484,0,0,0,0,0,0, + 0,0,0,0,0,-524,0,0,-127,0, + 0,-173,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-345, + 0,0,-318,0,0,0,0,0,0,0, + 0,-485,0,0,0,0,0,0,-326,0, + -355,0,0,0,0,0,0,0,0,-529, + 0,-356,0,0,-319,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-291,0,-326,0,0,0,0,0, - 0,0,0,-529,0,-319,0,0,-320,0, + 0,0,0,-320,0,0,0,0,-357,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,-321,0,0, - 0,0,-355,0,-431,0,0,-356,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,-142,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-357,0,0, - 0,0,0,0,0,0,0,-142,0,0, + 0,0,0,0,0,0,0,0,-143,0, + 0,0,-490,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-509,0,0,0,0,0,0, + 0,0,0,0,0,0,-144,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-143,0,0,0,-484,0,0,0, + 0,0,0,0,0,0,0,0,-395,0, + -59,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-509,0,0, + 0,0,0,0,-270,0,0,0,0,0, + 0,-446,0,0,-145,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -144,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-299,0,-146,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-358,0,-59,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-270,0, - 0,0,0,0,0,-446,0,0,-145,0, + -336,0,-396,-370,0,0,0,0,-371,-422, + -382,-410,0,-138,0,-426,0,0,-431,0, + -440,-300,0,0,0,-321,0,-434,0,0, + 0,0,0,0,0,-359,0,0,0,0, + -469,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -299,0,-146,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-336,0,0,-485,0,0, - 0,-471,0,0,-382,-362,-370,-138,0,0, - 0,0,0,-371,-440,-300,0,0,0,-359, - 0,-426,0,0,0,0,0,0,-360,-399, - 0,0,0,0,-434,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-430,0,0,0,0,0,0,0, + 0,0,-439,0,0,0,0,0,-487,0, + -360,0,0,0,0,0,0,-489,-497,0, + 0,0,0,0,0,0,0,0,-504,0, + -465,0,0,0,0,0,-61,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-62,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -63,0,0,0,-513,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-469,0,0,0, - 0,0,-395,0,0,0,-487,-489,0,0, - 0,0,-497,0,0,0,0,-504,0,0, + 0,0,-64,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -61,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-65,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-62,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-66,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-63,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-67,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,-65,0, + -131,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,0,0,0,0,0, - -66,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-141,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-67,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-209,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-131,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-287,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-140,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-141,0, + -388,0,0,0,0,0,0,0,0,0, + 0,0,0,-386,-443,0,0,0,0,0, + 0,0,0,0,0,0,0,-104,0,0, + 0,-508,-338,0,0,-399,0,-438,-350,0, + 0,0,-491,0,-376,0,0,0,0,0, + -471,0,0,0,0,0,-468,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -209,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-493,0,0,0, + 0,0,0,0,0,0,0,0,-332,0, + -46,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-495,0,0,0,0,-520, + 0,0,0,0,0,0,-381,0,0,0, + 0,0,-499,0,0,-502,0,0,-425,0, + 0,-365,0,0,0,0,0,0,0,-115, 0,0,0,0,0,0,0,0,0,0, - 0,0,-287,0,0,0,0,0,0,0, + 0,0,0,-503,0,0,-521,0,-525,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-388,0,0,0,0,0, - 0,0,0,0,0,0,0,-414,-443,0, + 0,0,-526,0,0,0,0,0,0,0, + 0,0,0,0,-366,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-433,0, 0,0,0,0,0,0,0,0,0,0, - 0,-104,0,0,0,0,-338,0,0,-438, - 0,-396,-350,0,0,0,-491,0,-376,0, + 0,0,0,0,0,0,0,0,0,-333, + 0,0,0,0,0,0,-309,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -422,0,0,0,0,0,0,0,0,0, - 0,-430,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -439,0,0,0,0,0,0,0,0,0, - 0,0,-332,0,-46,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-465,0, - 0,0,0,-490,0,0,0,0,0,0, - -381,0,0,0,0,0,-468,-493,0,-495, - 0,0,-425,0,0,-365,0,0,0,0, - 0,0,0,-115,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-499,0,0, - -502,0,-503,0,0,0,0,0,0,0, - 0,0,0,0,0,-521,-508,0,0,0, - 0,0,0,0,0,0,0,0,-366,0, + 0,0,-494,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-510,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-433,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, - -309,0,0,0,0,0,0,0,0,0, - 0,0,0,-525,0,0,0,0,0,0, - 0,0,0,0,0,0,-494,0,0,0, + -43,0,0,0,-188,0,0,0,0,0, + 0,0,0,0,-57,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -510,0,-520,-526,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-414, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-43,0,0,0,-188,0, - 0,0,0,0,0,0,0,0,-57,0, + 0,0,0,0,0,-109,0,0,0,0, + 0,0,0,0,-343,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-109, - 0,0,0,0,0,0,0,0,-343,0, + 0,0,0,-267,0,0,0,0,0,0, + 0,0,-114,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-389,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-185,0, + 0,0,0,0,0,0,0,0,0,-215, + 0,0,0,-221,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-267,0,0, - 0,0,0,0,0,0,-114,0,0,0, + 0,0,0,0,0,0,-314,0,0,0, + 0,0,0,0,0,0,-496,0,0,0, + 0,-519,0,0,0,0,0,0,0,0, + 0,-340,0,0,0,0,0,0,0,0, + 0,0,-351,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-393,0,0,0, + 0,0,0,0,0,0,0,-394,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-389,0,0,0,0, + 0,-417,0,0,0,0,0,0,0,0, + 0,0,-432,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-445,0,0,0, + 0,0,0,0,0,0,-121,0,0,0, + 0,0,0,0,0,0,0,0,0,-126, 0,0,0,0,0,0,0,0,0,0, + 0,-259,0,0,0,0,0,-134,0,0, + 0,0,0,0,0,0,-277,0,0,0, + 0,0,0,0,-285,0,0,0,0,0, + 0,0,0,0,-424,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-185,0,0,0,0,0,0,0, - 0,0,0,-215,0,0,0,-221,0,0, + 0,0,0,-479,0,0,0,0,0,0, + 0,0,0,0,0,-480,0,0,0,0, + 0,0,-483,0,-125,0,0,-288,0,0, + 0,0,0,0,0,-466,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -314,0,0,0,0,0,0,0,0,0, - -496,0,0,0,0,-519,0,0,0,0, - 0,0,0,0,0,-340,0,0,0,0, - 0,0,0,0,0,0,-351,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -393,0,0,0,0,0,0,0,0,0, - 0,-394,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-417,0,0,0,0, - 0,0,0,0,0,0,-432,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -445,0,0,0,0,0,0,0,0,0, - -121,0,0,0,0,0,0,0,0,0, - 0,0,0,-126,0,0,0,0,0,0, - 0,0,0,0,0,-259,0,0,0,0, - 0,-134,0,0,0,0,0,0,0,0, - -277,0,0,0,0,0,0,0,-285,0, - 0,0,0,0,0,0,0,0,-424,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-479,0,0, - 0,0,0,0,0,0,0,0,0,-480, - 0,0,0,0,0,0,-483,0,-124,0, - 0,-125,0,0,0,0,0,0,0,-288, - 0,0,0,0,0,0,0,-466,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, @@ -532,12 +536,7 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,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; @@ -548,542 +547,542 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface BaseAction { public final static char baseAction[] = { 169,4,133,82,82,32,32,66,66,38, - 38,40,40,193,193,194,194,195,195,1, - 1,15,15,15,15,15,15,15,15,16, - 16,16,14,11,11,6,6,6,6,6, - 6,2,64,64,5,5,12,12,44,44, - 134,134,135,56,56,43,17,17,17,17, + 38,40,40,193,1,1,15,15,15,15, + 15,15,15,15,16,16,16,14,11,11, + 6,6,6,6,6,6,2,64,64,5, + 5,12,12,44,44,134,134,135,56,56, + 43,17,17,17,17,17,17,17,17,17, 17,17,17,17,17,17,17,17,17,17, - 17,17,17,17,17,17,136,136,136,113, - 113,18,18,18,18,18,18,18,18,18, - 18,18,18,18,19,19,170,170,171,171, - 172,139,139,140,140,137,137,141,138,138, - 20,20,21,21,23,23,23,24,24,24, - 24,25,25,25,26,26,26,27,27,27, - 27,27,28,28,28,29,29,31,31,33, - 33,35,35,36,36,37,37,42,42,41, - 41,41,41,41,41,41,41,41,41,41, - 41,41,39,30,142,142,96,96,173,173, - 91,196,196,67,67,67,67,67,67,67, - 67,67,68,68,68,65,65,55,55,174, - 174,69,69,69,102,102,175,175,70,70, - 70,176,176,71,71,71,71,71,72,72, - 83,83,83,83,83,83,83,49,49,49, - 49,49,114,114,115,115,50,177,22,22, - 22,22,22,48,48,86,86,86,86,86, - 149,149,144,144,144,144,144,145,145,145, - 146,146,146,147,147,147,148,148,148,87, - 87,87,87,87,88,88,88,13,13,13, - 13,13,13,13,13,13,13,13,97,119, - 119,119,119,119,119,117,117,117,118,118, - 151,151,150,150,121,121,103,78,78,79, - 80,52,47,152,152,53,51,85,85,153, - 153,143,143,122,123,123,75,75,154,154, - 62,62,62,59,59,58,63,63,74,74, - 57,57,57,89,89,99,98,98,61,61, - 60,60,54,54,45,100,100,100,92,92, - 92,93,93,94,94,94,95,95,104,104, - 104,106,106,105,105,197,197,90,90,179, - 179,179,179,179,125,46,46,156,178,178, - 126,126,126,126,127,158,180,180,34,34, - 116,128,128,128,128,107,107,120,120,120, - 159,160,160,160,160,160,160,160,160,160, - 160,160,183,183,181,181,182,182,161,161, - 161,161,162,184,109,108,108,185,185,163, - 163,163,163,101,101,101,186,186,8,8, - 9,187,187,188,164,155,155,165,165,166, - 167,167,7,7,10,189,189,189,189,189, + 17,136,136,136,114,114,18,18,18,18, + 18,18,18,18,18,18,18,18,18,19, + 19,170,170,171,171,172,139,139,140,140, + 137,137,141,138,138,20,20,21,21,23, + 23,23,24,24,24,24,25,25,25,26, + 26,26,27,27,27,27,27,28,28,28, + 29,29,31,31,33,33,35,35,36,36, + 37,37,42,42,41,41,41,41,41,41, + 41,41,41,41,41,41,41,39,30,142, + 142,96,96,173,173,91,194,194,67,67, + 67,67,67,67,67,67,67,68,68,68, + 65,65,55,55,174,174,69,69,69,102, + 102,175,175,70,70,70,176,176,71,71, + 71,71,71,72,72,83,83,83,83,83, + 83,83,83,49,49,49,49,49,115,115, + 113,113,50,177,22,22,22,22,22,48, + 48,86,86,86,86,86,149,149,144,144, + 144,144,144,145,145,145,146,146,146,147, + 147,147,148,148,148,87,87,87,87,87, + 88,88,88,13,13,13,13,13,13,13, + 13,13,13,13,97,119,119,119,119,119, + 119,117,117,117,118,118,151,151,150,150, + 121,121,103,78,78,79,80,52,47,152, + 152,53,51,85,85,153,153,143,143,122, + 123,123,75,75,154,154,62,62,62,59, + 59,58,63,63,74,74,57,57,57,89, + 89,99,98,98,61,61,60,60,54,54, + 45,100,100,100,92,92,92,93,93,94, + 94,94,95,95,104,104,104,106,106,105, + 105,195,195,90,90,179,179,179,179,179, + 125,46,46,156,178,178,126,126,126,126, + 127,158,180,180,34,34,116,128,128,128, + 128,107,107,120,120,120,159,160,160,160, + 160,160,160,160,160,160,160,160,183,183, + 181,181,182,182,161,161,161,161,162,184, + 109,108,108,185,185,163,163,163,163,101, + 101,101,186,186,8,8,9,187,187,188, + 164,155,155,165,165,166,167,167,7,7, + 10,189,189,189,189,189,189,189,189,189, 189,189,189,189,189,189,189,189,189,189, 189,189,189,189,189,189,189,189,189,189, 189,189,189,189,189,189,189,189,189,189, - 189,189,189,189,189,189,189,76,81,81, - 168,168,130,130,110,110,110,110,110,110, - 3,131,131,129,129,111,111,84,77,73, - 157,157,112,112,190,190,190,132,132,124, - 124,191,191,169,169,1132,41,1740,1733,1018, - 4614,33,36,37,906,921,32,34,1715,31, - 29,56,1104,112,82,83,114,465,1112,1155, - 1114,1206,1198,1232,1214,2711,1301,1628,1242,278, - 1329,1389,149,331,41,284,164,150,4294,1993, - 41,865,38,507,4618,33,36,37,906,921, - 63,34,2361,41,865,38,237,2732,33,36, - 37,906,921,32,34,1026,31,29,56,1104, - 112,82,83,114,2791,1112,1155,1114,1206,1198, - 1860,240,235,236,243,41,935,389,2361,41, - 865,38,279,2732,33,36,37,906,921,32, - 34,1026,31,29,56,1104,112,82,83,91, - 1119,247,250,253,256,2424,1176,355,429,2119, - 41,865,38,1028,4618,33,36,37,906,921, - 62,34,156,41,395,391,425,1697,1628,859, - 2373,2608,2667,3208,4445,1621,41,865,38,2837, - 2732,33,36,37,906,921,32,34,1026,31, - 29,56,1104,112,82,83,114,344,1112,1155, - 1114,1206,1198,1232,1214,67,1301,1081,1242,1268, - 1329,1389,149,1376,533,75,515,150,4172,2573, - 2370,243,1467,1457,40,243,41,1766,1727,516, - 1621,41,865,38,2837,2732,33,36,37,906, - 921,32,34,1026,31,29,56,1104,112,82, - 83,114,344,1112,1155,1114,1206,1198,1232,1214, - 1938,1301,1232,1242,4283,1329,1389,149,1443,650, - 333,515,150,539,768,2370,392,425,30,2884, - 41,282,1254,2947,516,66,511,2160,41,865, - 38,328,4791,33,36,37,906,921,32,34, - 3772,509,2846,30,1905,1564,1912,3073,3493,1621, - 41,865,38,2837,2732,33,36,37,906,921, - 32,34,1026,31,29,56,1104,112,82,83, - 114,344,1112,1155,1114,1206,1198,1232,1214,357, - 1301,511,1242,3402,1329,1389,149,529,354,2604, - 515,150,1374,1650,2370,552,156,41,395,1940, - 1679,1912,244,516,1819,41,865,38,2837,2732, - 33,36,37,906,921,32,34,1026,31,29, - 56,1104,112,82,83,114,344,1112,1155,1114, - 1206,1198,1232,1214,2695,1301,726,1242,2870,1329, - 1389,149,331,41,284,515,150,4799,680,2370, - 237,987,1374,4764,2605,2540,41,285,516,4172, - 511,2160,41,865,38,1298,4791,33,36,37, - 906,921,65,34,326,245,235,236,1946,1029, - 1912,1947,41,865,38,1484,2732,33,36,37, - 906,921,32,34,1026,31,29,56,1104,112, - 82,83,114,656,1112,1155,1114,1206,1198,1232, - 1214,334,1301,2729,1242,512,1329,1389,149,2864, - 1543,3847,380,150,1690,41,865,38,1896,2732, - 33,36,37,906,921,32,34,1026,31,29, - 56,1104,112,82,83,114,1943,1112,1155,1114, - 1206,1198,1232,1214,2900,1301,2102,1242,1257,1329, - 1389,149,1742,1390,3847,380,150,4557,2056,41, - 865,38,594,2732,33,36,37,906,921,32, - 34,1026,31,29,56,1104,112,82,83,114, - 2966,1112,1155,1114,1206,1198,1232,1214,1551,1301, - 2265,1242,1684,1329,1389,149,99,386,3094,374, - 150,680,1884,41,865,38,4666,2732,33,36, - 37,906,921,32,34,1026,31,29,56,1104, - 112,82,83,114,2464,1112,1155,1114,1206,1198, - 1232,1214,591,1301,148,1242,327,1329,1389,149, - 387,3094,3847,380,150,1257,30,331,41,451, - 3081,3458,4716,2056,41,865,38,76,2732,33, - 36,37,906,921,32,34,1026,31,29,56, - 1104,112,82,83,114,2488,1112,1155,1114,1206, - 1198,1232,1214,373,1301,3151,1242,419,1329,1389, - 149,243,41,287,374,150,2361,41,865,38, - 3857,2732,33,36,37,906,921,32,34,1026, - 31,29,56,1104,112,82,83,114,2063,1112, - 1155,1114,1206,1198,1232,1214,678,1869,378,3094, - 2056,41,865,38,670,2732,33,36,37,906, - 921,32,34,1026,31,29,56,1104,112,82, - 83,114,757,1112,1155,1114,1206,1198,1232,1214, - 2747,1301,1113,1242,1801,1329,1389,149,3211,243, - 1983,374,150,1809,2056,41,865,38,372,2732, - 33,36,37,906,921,32,34,1026,31,29, - 56,1104,112,82,83,114,1268,1112,1155,1114, - 1206,1198,1232,1214,30,1301,1268,1242,3456,1329, - 1389,149,444,2635,2674,164,150,2010,41,865, - 38,1349,2732,33,36,37,906,921,32,34, - 1026,31,29,56,1104,112,82,83,114,390, - 1112,1155,1114,1206,1198,1232,1214,30,1301,322, - 1242,685,1329,1424,170,370,1754,41,865,38, - 1563,2732,33,36,37,906,921,32,34,1026, - 31,29,56,1104,112,82,83,114,496,1112, - 1155,1114,1206,1198,1232,1214,1628,1301,458,1242, - 291,1329,1389,149,243,41,2190,148,150,329, - 243,41,935,389,243,41,1457,281,719,1320, - 1257,1268,2056,41,865,38,1697,2732,33,36, - 37,906,921,32,34,1026,31,29,56,1104, - 112,82,83,114,432,1112,1155,1114,1206,1198, - 1232,1214,30,1301,1243,1242,740,1329,1389,149, - 1809,2891,441,161,150,2056,41,865,38,2576, - 2732,33,36,37,906,921,32,34,1026,31, - 29,56,1104,112,82,83,114,1958,1112,1155, - 1114,1206,1198,1232,1214,30,1301,1381,1242,819, - 1329,1389,149,457,394,425,160,150,2056,41, - 865,38,2576,2732,33,36,37,906,921,32, - 34,1026,31,29,56,1104,112,82,83,114, - 1766,1112,1155,1114,1206,1198,1232,1214,30,1301, - 2008,1242,2991,1329,1389,149,2900,1515,315,159, - 150,2056,41,865,38,1419,2732,33,36,37, - 906,921,32,34,1026,31,29,56,1104,112, - 82,83,114,521,1112,1155,1114,1206,1198,1232, - 1214,30,1301,1161,1242,4449,1329,1389,149,243, - 3607,1794,158,150,2056,41,865,38,2887,2732, - 33,36,37,906,921,32,34,1026,31,29, - 56,1104,112,82,83,114,1500,1112,1155,1114, - 1206,1198,1232,1214,3385,1301,1105,1242,30,1329, - 1389,149,567,445,1730,157,150,2056,41,865, - 38,2887,2732,33,36,37,906,921,32,34, - 1026,31,29,56,1104,112,82,83,114,77, - 1112,1155,1114,1206,1198,1232,1214,4158,1301,330, - 1242,1877,1329,1389,149,678,445,1195,156,150, - 2056,41,865,38,1233,2732,33,36,37,906, - 921,32,34,1026,31,29,56,1104,112,82, - 83,114,1504,1112,1155,1114,1206,1198,1232,1214, - 520,1301,1928,1242,30,1329,1389,149,3223,243, - 2919,155,150,2056,41,865,38,2100,2732,33, - 36,37,906,921,32,34,1026,31,29,56, - 1104,112,82,83,114,2456,1112,1155,1114,1206, - 1198,1232,1214,520,1301,1431,1242,30,1329,1389, - 149,1366,2893,2543,154,150,2056,41,865,38, - 2134,2732,33,36,37,906,921,32,34,1026, - 31,29,56,1104,112,82,83,114,2720,1112, - 1155,1114,1206,1198,1232,1214,2006,1301,1732,1242, - 3157,1329,1389,149,1268,2740,852,153,150,2056, - 41,865,38,1334,2732,33,36,37,906,921, - 32,34,1026,31,29,56,1104,112,82,83, - 114,1661,1112,1155,1114,1206,1198,1232,1214,30, - 1301,1286,1242,3277,1329,1389,149,1268,2144,2557, - 152,150,2056,41,865,38,2808,2732,33,36, - 37,906,921,32,34,1026,31,29,56,1104, - 112,82,83,114,521,1112,1155,1114,1206,1198, - 1232,1214,235,1301,844,1242,4123,1329,1389,149, - 1370,2111,2734,151,150,2056,41,865,38,2096, - 2732,33,36,37,906,921,32,34,1026,31, - 29,56,1104,112,82,83,114,2267,1112,1155, - 1114,1206,1198,1232,1214,1366,1301,2526,1242,57, - 1329,1389,149,1682,75,2322,165,150,2056,41, - 865,38,2210,2732,33,36,37,906,921,32, - 34,1026,31,29,56,1104,112,82,83,114, - 75,1112,1155,1114,1206,1198,1232,1214,30,1301, - 2368,1242,3721,1329,1389,149,2630,2110,2527,146, - 150,2269,41,865,38,2125,2732,33,36,37, - 906,921,32,34,1026,31,29,56,1104,112, - 82,83,114,1736,1112,1155,1114,1206,1198,1232, - 1214,30,1301,2647,1242,3766,1329,1389,149,2228, - 2610,2615,195,150,2361,41,865,38,2688,2732, - 33,36,37,906,921,32,34,1026,31,29, - 56,1104,112,82,83,114,2733,1112,1155,1114, - 1206,1198,1232,1214,2641,1301,1510,1242,356,1329, - 1424,170,2361,41,865,38,529,2732,33,36, - 37,906,921,32,34,1026,31,29,56,1104, - 112,82,83,114,325,1112,1155,1114,1206,1198, - 1232,1214,529,1301,403,1242,2799,1329,1424,170, - 1226,41,865,38,2738,2601,47,36,37,906, - 921,2361,41,865,38,295,2732,33,36,37, - 906,921,32,34,1026,31,29,56,1104,112, - 82,83,114,2451,1112,1155,1114,1206,1198,1232, - 1214,30,1301,401,1242,1254,1329,1424,170,2361, - 41,865,38,421,2732,33,36,37,906,921, - 32,34,1026,31,29,56,1104,112,82,83, - 114,4277,1112,1155,1114,1206,1198,1232,1214,30, - 1301,2846,1242,2670,1329,1424,170,2723,41,865, - 38,2739,1809,46,36,37,906,921,2361,41, - 865,38,420,2732,33,36,37,906,921,32, - 34,1026,31,29,56,1104,112,82,83,114, - 2747,1112,1155,1114,1206,1198,1232,1214,30,1301, - 2115,1242,4243,1329,1424,170,2407,41,865,38, - 423,2732,33,36,37,906,921,32,34,1026, - 31,29,56,1104,112,82,83,114,288,1112, - 1155,1114,1206,1198,1232,1214,30,1301,405,1242, - 4374,1329,1424,170,2723,41,865,38,2309,1809, - 2200,36,37,906,921,2361,41,865,38,2331, - 2732,33,36,37,906,921,32,34,1026,31, - 29,56,1104,112,82,83,114,1869,1112,1155, - 1114,1206,1198,1232,1214,1367,1301,2806,1242,94, - 1903,1446,108,2361,41,865,38,2883,2732,33, - 36,37,906,921,32,34,1026,31,29,56, - 1104,112,82,83,114,289,1112,1155,1114,1206, - 1198,1232,1214,495,1301,1268,1895,2361,41,865, - 38,1268,2732,33,36,37,906,921,32,34, - 1026,31,29,56,1104,112,82,83,114,2157, - 1112,1155,1114,1206,1198,1232,1887,1456,41,865, - 38,723,2887,33,36,37,906,921,340,34, - 1738,1673,1257,1230,3147,243,41,935,389,1545, - 41,865,38,2668,2887,33,36,37,906,921, - 340,34,2479,41,865,38,1446,4791,33,36, - 37,906,921,64,34,2460,30,103,1446,55, - 1254,352,3072,104,1446,321,1042,323,52,316, - 870,2588,2845,1446,1114,41,1525,1641,351,4500, - 2355,353,863,2803,237,2157,162,321,1042,323, - 324,316,870,2795,353,1817,4101,2104,2916,345, - 583,784,350,353,2408,30,2917,815,55,249, - 235,236,345,583,784,350,2918,1517,735,2157, - 343,345,583,784,350,2361,41,865,38,2396, - 2732,33,36,37,906,921,32,34,1026,31, - 29,56,1104,112,82,83,114,2157,1112,1155, - 1114,1206,1861,2361,41,865,38,2157,2732,33, - 36,37,906,921,32,34,1026,31,29,56, - 1104,112,82,83,114,2115,1112,1155,1114,1206, - 1862,1598,2361,41,865,38,367,2732,33,36, - 37,906,921,32,34,1026,31,29,56,1104, - 112,82,83,114,2373,1112,1155,1114,1811,2361, - 41,865,38,302,2732,33,36,37,906,921, - 32,34,1026,31,29,56,1104,112,82,83, - 114,2835,1112,1155,1114,1818,2361,41,865,38, - 1937,2732,33,36,37,906,921,32,34,1026, - 31,29,56,1104,112,82,83,114,1351,1112, - 1155,1114,1819,2361,41,865,38,1673,2732,33, - 36,37,906,921,32,34,1026,31,29,56, - 1104,112,82,83,114,2866,1112,1155,1114,1826, - 1575,41,865,38,3474,4603,33,36,37,906, - 921,340,34,2115,1336,41,865,38,3039,2887, - 33,36,37,906,921,340,34,2895,1438,237, - 2190,262,2837,4172,2923,535,2723,41,865,38, - 2867,2244,2525,36,37,906,921,2509,41,296, - 2357,226,402,233,252,235,236,333,321,1042, - 323,162,316,870,156,41,395,583,2903,186, - 3115,3151,318,2074,323,1340,1257,209,220,3053, - 208,217,218,219,221,333,175,2760,237,4509, - 2910,88,1522,41,935,389,174,2928,189,173, - 176,177,178,179,180,1976,2103,2495,1,2837, - 2837,2837,535,255,235,236,3151,2846,361,2929, - 30,2846,309,313,3745,2951,55,2357,344,344, - 233,523,2812,1596,1604,1517,2371,1999,162,2540, - 41,282,4677,2653,2968,2344,186,3115,3151,1439, - 2372,1244,904,2680,209,220,3053,208,217,218, - 219,221,2969,175,418,41,451,2151,2785,4716, - 2421,1561,1446,174,187,190,173,176,177,178, - 179,180,1870,41,865,38,723,2887,33,36, - 37,906,921,340,34,362,680,2453,41,935, - 389,4691,4245,2892,1938,2748,1288,41,865,38, - 242,4603,33,36,37,906,921,340,34,1081, - 175,2509,2581,296,243,41,1457,286,1674,1438, - 1376,278,2869,2837,4172,4172,243,41,935,389, - 321,1042,323,2922,316,870,1848,504,41,935, - 389,2357,243,41,1457,283,353,524,237,95, - 352,2760,108,334,321,1042,323,2840,317,870, - 431,535,1257,45,345,583,784,350,2149,2933, - 353,55,525,240,235,236,333,4339,30,3863, - 1517,2285,725,440,279,454,2974,162,347,583, - 784,350,353,3212,2934,186,3115,243,41,1457, - 2161,2190,3151,247,250,253,256,2424,3075,361, - 345,583,784,350,2372,1028,45,522,2396,448, - 2635,2674,201,2812,1596,1604,1686,41,1457,281, - 1383,859,2373,2608,2667,3208,4445,2361,41,865, - 38,1214,2732,33,36,37,906,921,32,34, - 1026,31,29,56,1104,112,82,83,114,100, - 1112,1155,1852,2361,41,865,38,2693,2732,33, - 36,37,906,921,32,34,1026,31,29,56, - 1104,112,82,83,114,5370,1112,1155,1854,1412, - 41,2277,38,3474,4603,33,36,37,906,921, - 340,34,3431,2149,41,865,38,2640,2887,33, - 36,37,906,921,340,34,243,2422,1457,80, - 349,382,30,1508,535,1235,3755,2837,1809,1809, - 4172,2737,30,4651,202,2837,2837,5370,2761,330, - 336,2421,233,2115,1257,2357,333,321,1042,323, - 162,316,870,2357,344,5370,5370,5370,186,3115, - 3151,318,2074,323,983,2115,209,220,3053,208, - 217,218,219,221,381,175,436,2370,4509,30, - 535,306,334,3240,3858,174,507,2886,173,176, - 177,178,179,180,300,299,5370,1376,233,353, - 1446,2485,4172,185,5370,2671,162,1628,69,41, - 935,389,1089,503,186,3115,3151,347,583,784, - 350,361,209,220,3053,208,217,218,219,221, - 523,175,75,502,535,3420,1596,1604,5370,5370, - 1866,174,278,184,173,176,177,178,179,180, - 416,2287,233,500,333,1446,5370,2785,2912,5370, - 162,1376,243,41,935,389,4172,188,186,3115, - 3151,2075,5370,1026,1983,5370,209,220,3053,208, - 217,218,219,221,610,175,3075,74,535,1508, - 2684,772,5370,2837,2837,174,278,182,173,176, - 177,178,179,180,2375,2248,233,243,41,935, - 389,2357,2357,436,162,393,425,1809,333,237, - 5370,78,186,3115,3151,30,1446,1026,1983,1482, - 209,220,3053,208,217,218,219,221,697,175, - 5370,278,535,2840,258,235,236,1254,5370,174, - 924,183,173,176,177,178,179,180,59,341, - 233,243,41,935,389,5370,5370,5370,162,1686, - 41,1457,2430,162,48,1947,186,3115,3151,503, - 503,206,3748,307,209,220,3053,208,217,218, - 219,221,784,175,290,430,535,30,3371,502, - 502,1254,2815,174,280,193,173,176,177,178, - 179,180,5370,1809,233,243,41,935,389,501, - 500,680,162,2162,1989,5370,4702,162,5370,30, - 186,3115,3151,2837,2115,1257,1897,1446,209,220, - 3053,208,217,218,219,221,871,175,290,450, - 535,344,243,41,1457,2456,1446,174,2590,2980, - 173,176,177,178,179,180,2375,30,233,93, - 1446,2837,204,1446,2370,3151,162,2249,1989,383, - 5370,1214,5370,505,186,3115,3151,30,58,344, - 377,2837,209,220,3053,208,217,218,219,221, - 958,175,2198,1676,535,2236,2737,1254,1262,344, - 2837,174,2370,198,173,176,177,178,179,180, - 680,1647,233,2115,1376,4727,2115,30,2357,4172, - 162,1254,2370,166,5370,5370,50,1947,186,3115, - 3151,1654,3431,1446,5370,1446,209,220,3053,208, - 217,218,219,221,1045,175,30,162,535,30, - 1254,203,5370,1254,305,174,3533,192,173,176, - 177,178,179,180,2913,96,233,3756,30,335, - 336,333,1254,1446,162,680,162,5370,1446,162, - 4741,375,186,3115,3151,3538,361,5370,3568,3276, - 209,220,3053,208,217,218,219,221,162,175, - 3423,1596,1604,4576,5370,73,5370,3663,1446,174, - 72,200,173,176,177,178,179,180,2361,41, - 865,38,5370,2732,33,36,37,906,921,32, - 34,1026,31,29,56,1104,112,82,83,114, - 71,1112,1758,2361,41,865,38,2115,2732,33, - 36,37,906,921,32,34,1026,31,29,56, - 1104,112,82,83,114,5370,1112,1775,1554,41, - 865,38,3474,2887,33,36,37,906,921,340, - 34,2361,41,865,38,207,2732,33,36,37, - 906,921,32,34,1026,31,29,56,1104,112, - 82,83,114,1446,1776,2315,41,865,38,5370, - 2732,33,36,37,906,921,32,34,1026,31, - 29,56,1104,92,82,83,321,1042,323,2482, - 316,870,5370,5370,4641,70,243,41,296,2361, - 41,865,38,1340,2732,33,36,37,906,921, - 32,34,1026,31,29,56,1104,112,82,83, - 114,1214,1783,2361,41,865,38,5370,2732,33, - 36,37,906,921,32,34,1026,31,29,56, - 1104,112,82,83,114,2631,1801,5370,2115,2837, - 309,313,243,41,296,2751,30,30,1676,2837, - 2951,1904,1254,5370,30,2765,1214,233,1930,2837, - 1676,4423,30,5370,1254,5370,3765,233,5370,1676, - 1676,2680,3431,1254,1254,30,205,233,166,1568, - 2777,211,220,3053,210,217,218,219,221,3476, - 166,211,220,3053,210,217,218,219,221,166, - 166,211,220,3053,210,217,218,219,221,2928, - 336,212,214,216,297,298,1973,3431,222,213, - 215,212,214,216,297,298,1973,5370,222,213, - 215,212,214,216,297,298,1973,30,222,213, - 215,3363,427,1446,3406,4264,5370,30,30,4271, - 3078,1611,951,30,332,336,3853,3628,2899,4271, - 3079,5370,2822,5370,2103,4182,4201,5370,5370,4271, - 3267,2361,1467,865,1586,61,2732,33,36,37, - 906,921,32,34,1026,31,29,56,1104,112, - 82,83,90,2361,41,865,38,5370,2732,33, - 36,37,906,921,32,34,1026,31,29,56, - 1104,112,82,83,89,2361,41,865,38,5370, - 2732,33,36,37,906,921,32,34,1026,31, - 29,56,1104,112,82,83,88,2361,41,865, - 38,5370,2732,33,36,37,906,921,32,34, - 1026,31,29,56,1104,112,82,83,87,2361, - 41,865,38,5370,2732,33,36,37,906,921, - 32,34,1026,31,29,56,1104,112,82,83, - 86,2361,41,865,38,5370,2732,33,36,37, - 906,921,32,34,1026,31,29,56,1104,112, - 82,83,85,2361,41,865,38,5370,2732,33, - 36,37,906,921,32,34,1026,31,29,56, - 1104,112,82,83,84,2221,41,865,38,5370, - 2732,33,36,37,906,921,32,34,1026,31, - 29,56,1104,112,82,83,110,2361,41,865, - 38,5370,2732,33,36,37,906,921,32,34, - 1026,31,29,56,1104,112,82,83,116,2361, - 41,865,38,5370,2732,33,36,37,906,921, - 32,34,1026,31,29,56,1104,112,82,83, - 115,2361,41,865,38,5370,2732,33,36,37, - 906,921,32,34,1026,31,29,56,1104,112, - 82,83,113,2361,41,865,38,5370,2732,33, - 36,37,906,921,32,34,1026,31,29,56, - 1104,112,82,83,111,1667,41,2277,38,3474, - 2887,33,36,37,906,921,340,34,1257,1931, - 41,865,38,3474,2887,33,36,37,906,921, - 340,34,243,41,935,389,5370,2781,5370,5370, - 1676,2837,1446,2482,1254,5370,5370,2405,4641,2661, - 5370,2837,5370,2837,5370,5370,5370,5370,3151,233, - 5370,1446,5370,321,1042,323,55,316,870,344, - 166,233,1446,377,60,1517,1639,321,1042,323, - 983,316,870,211,220,3053,210,217,218,219, - 221,2818,3868,107,1340,211,220,3053,210,217, - 218,219,221,1214,3093,504,41,935,389,5370, - 5370,5370,5370,212,214,216,297,298,1973,1446, - 518,213,215,527,2115,212,214,216,297,298, - 1973,2674,517,213,215,2837,4259,1446,1446,55, - 1446,310,313,2853,2777,5370,30,2837,1517,1553, - 1254,449,5370,233,243,41,935,389,5370,5370, - 5370,3257,301,5370,3431,233,417,2287,1446,379, - 3288,1446,3342,1446,3785,5370,162,211,220,3053, - 210,217,218,219,221,2325,1446,2115,55,211, - 220,3053,210,217,218,219,221,1517,2779,2706, - 3396,3757,336,2716,4172,2912,428,212,214,216, - 297,298,1973,2869,223,213,215,2837,4424,212, - 214,216,297,298,1973,4656,308,213,215,5370, - 5370,5370,5370,5370,1214,233,5370,4313,5370,5370, - 5370,1931,41,865,38,3474,2887,33,36,37, - 906,921,340,34,1446,5370,4339,5370,5370,211, - 220,3053,210,217,218,219,221,1931,41,865, - 38,3474,2887,33,36,37,906,921,340,34, - 5370,30,5370,2115,2115,1254,3504,5370,5370,212, - 214,216,297,298,1973,3431,497,213,215,321, - 1042,323,5370,316,870,2513,41,935,389,1200, - 4245,162,5370,2837,4776,5370,2408,5370,243,30, - 4326,227,199,535,5370,321,1042,323,5370,316, - 870,233,3764,336,5370,5370,5370,5370,102,278, - 5370,344,2944,5370,5370,5370,5370,5370,5370,162, - 5370,5370,5370,5370,5370,2026,406,2654,2423,5370, - 939,41,935,389,2370,5370,237,5370,5370,1530, - 41,865,38,2414,4603,33,36,37,906,921, - 340,34,5370,5370,5370,407,408,409,297,298, - 1973,241,235,236,55,5370,5370,5370,5370,5370, - 5370,5370,279,1517,53,5370,5370,5370,1306,5370, - 1948,5370,2837,4776,5370,5370,925,504,41,935, - 389,248,251,254,257,2424,334,321,1042,323, - 233,319,870,1028,5370,5370,1530,41,865,38, - 5370,4603,33,36,37,906,921,340,34,5370, - 5370,55,5370,5370,2026,406,2654,5370,5370,5370, - 1517,53,5370,504,41,935,389,5370,410,412, - 5370,5370,5370,1171,1540,41,935,389,939,41, - 935,389,5370,5370,407,408,409,297,298,1973, - 1253,5370,4548,334,321,1042,323,55,317,870, - 5370,504,41,935,389,5370,1517,2405,55,1948, - 5370,2883,55,5370,5370,535,2901,1517,2433,3212, - 1254,1517,2443,5370,5370,5370,939,41,935,389, - 3257,5370,5370,344,3158,55,5370,504,41,935, - 389,162,5370,5370,1517,53,162,5370,5370,5370, - 194,504,41,935,389,168,4407,624,5370,5370, - 55,5370,504,41,935,389,5370,410,413,1517, - 53,55,5370,5370,5370,5370,504,41,935,389, - 1517,53,2676,5370,5370,55,5370,1813,41,935, - 389,5370,5370,1380,1517,53,55,5370,5370,5370, - 5370,2175,41,935,389,1517,53,2876,5370,5370, - 55,30,5370,196,5370,535,5370,5370,3311,1517, - 53,55,5370,5370,243,41,935,389,5370,5370, - 1517,53,3365,344,5370,55,243,41,935,389, - 5370,162,30,3696,1517,53,535,5370,5370,5370, - 3205,243,41,935,389,5370,2370,3752,55,243, - 41,935,389,5370,344,3150,5370,1517,729,2841, - 55,5370,162,2837,5370,5370,5370,5370,5370,1517, - 2617,2423,5370,5370,5370,55,4327,2370,30,4394, - 5370,344,535,55,1517,2371,3387,5370,5370,5370, - 30,528,1517,789,535,5370,5370,30,5370,30, - 344,535,30,2837,2370,5370,2837,5370,162,5370, - 30,5370,344,531,2837,5370,5370,194,30,344, - 162,344,2837,4407,344,5370,5370,162,5370,194, - 5370,5370,344,5370,5370,4407,194,5370,5370,5370, - 344,5370,4407,5370,2370,5370,5370,2370,5370,5370, - 5370,5370,5370,1672,5370,2370,1682,5370,5370,5370, - 5370,5370,5370,2370,3495,5370,5370,5370,5370,5370, - 5370,5370,532,5370,5370,5370,5370,5370,5370,5370, - 4278,5370,5370,5370,5370,5370,5370,5370,5370,5370, - 5370,5370,4280,5370,5370,5370,5370,5370,5370,4308, - 5370,5370,5370,5370,5370,5370,5370,5370,5370,5370, - 5370,5370,5370,5370,5370,5370,5370,5370,5370,5370, - 5370,5370,5370,5370,5370,5370,5370,5370,5370,5370, - 5370,5370,5370,5370,5370,5370,5370,5370,5370,5370, - 5370,5370,5370,5370,5370,5370,5370,5370,5370,5370, - 4231,5370,0,672,1,0,866,1,0,45, - 1,5390,0,45,1,5389,0,2070,1,0, - 45,5390,0,45,5389,0,1284,320,0,1327, - 35,0,438,1422,0,452,1465,0,5390,54, - 0,5389,54,0,44,731,0,44,5390,0, - 44,5389,0,5376,1,0,5375,1,0,5609, - 246,0,5608,246,0,5709,246,0,5708,246, - 0,5636,246,0,5635,246,0,5634,246,0, - 5633,246,0,5632,246,0,5631,246,0,5630, - 246,0,5629,246,0,5647,246,0,5646,246, - 0,5645,246,0,5644,246,0,5643,246,0, - 5642,246,0,5641,246,0,5640,246,0,5639, - 246,0,5638,246,0,5637,246,0,45,246, - 5390,0,45,246,5389,0,5414,246,0,1327, - 388,0,2586,132,0,41,39,0,1,442, - 0,456,1286,0,455,1391,0,53,43,0, - 5414,1,0,45,1,0,788,97,0,38, - 40,0,45,731,0,1,918,0,1,5647, - 0,1,5646,0,1,5645,0,1,5644,0, - 1,5643,0,1,5642,0,1,5641,0,1, - 5640,0,1,5639,0,1,5638,0,1,5637, - 0,49,5412,0,49,43,0,499,1955,0, - 5414,1,234,0,45,1,234,0,234,415, - 0,5390,43,0,5389,43,0,242,3453,0, - 389,38,0,388,35,0,2586,134,0,2586, - 133,0,5701,443,0,1508,443,0,5380,404, - 0,5379,404,0,1,4381,0,1,2746,0, - 1,731,0,234,414,0,1,98,0,5412, - 51,0,43,51,0,1,5701,0,1,1508, - 0,2,5390,43,0,2,5389,43,0,5390, - 42,0,5389,42,0,499,4189,0,1,234, - 0,234,225,0,5701,101,0,1508,101,0, - 41,79,0,234,224,0,283,3770,0,5382, - 1,0,5378,1,0,1,234,2730,0,5379, - 234,0,2731,234,0,5382,384,0,5381,384, - 0,2860,234,0,10,12,0,8,10,12, - 0,191,3450,0,3017,384,0,8,12,0 + 189,189,189,76,81,81,168,168,130,130, + 110,110,110,110,110,110,3,131,131,129, + 129,111,111,84,77,73,157,157,112,112, + 190,190,190,132,132,124,124,191,191,169, + 169,1132,36,1736,1729,1139,4610,28,31,32, + 902,917,27,29,1728,26,24,51,1133,107, + 77,78,109,161,1151,1202,1194,1228,1210,1297, + 1238,1989,1385,317,1325,274,1420,1453,144,70, + 36,280,159,145,4290,1714,36,861,33,1345, + 4614,28,31,32,902,917,58,29,3068,36, + 861,33,233,2728,28,31,32,902,917,27, + 29,1110,26,24,51,1133,107,77,78,109, + 2775,1151,1202,1194,1228,1210,1856,236,231,232, + 507,36,931,385,3068,36,861,33,275,2728, + 28,31,32,902,917,27,29,1110,26,24, + 51,1133,107,77,78,86,682,243,246,249, + 252,2420,1173,351,425,1802,36,861,33,1024, + 4614,28,31,32,902,917,57,29,421,36, + 391,387,421,1711,317,855,2369,2604,2663,3204, + 4441,2279,36,861,33,2833,2728,28,31,32, + 902,917,27,29,1110,26,24,51,1133,107, + 77,78,109,340,1151,1202,1194,1228,1210,1297, + 1238,62,1385,1077,1325,1365,1420,1453,144,2334, + 529,1825,511,145,4168,1929,2366,507,1506,1496, + 35,507,36,1762,1723,512,2279,36,861,33, + 2833,2728,28,31,32,902,917,27,29,1110, + 26,24,51,1133,107,77,78,109,340,1151, + 1202,1194,1228,1210,1297,1238,2383,1385,1286,1325, + 4279,1420,1453,144,1257,646,329,511,145,535, + 65,2366,388,421,75,2378,36,278,1250,2943, + 512,61,507,2065,36,861,33,324,4787,28, + 31,32,902,917,27,29,3756,505,2842,75, + 1901,1193,1908,3069,3419,2279,36,861,33,2833, + 2728,28,31,32,902,917,27,29,1110,26, + 24,51,1133,107,77,78,109,340,1151,1202, + 1194,1228,1210,1297,1238,353,1385,507,1325,3398, + 1420,1453,144,525,350,3337,511,145,1370,1297, + 2366,683,421,36,391,1936,239,1908,240,512, + 2491,36,861,33,2833,2728,28,31,32,902, + 917,27,29,1110,26,24,51,1133,107,77, + 78,109,340,1151,1202,1194,1228,1210,1297,1238, + 2147,1385,944,1325,2866,1420,1453,144,70,36, + 280,511,145,4795,244,2366,233,1336,1370,4760, + 2098,1667,36,281,512,4168,507,2065,36,861, + 33,1393,4787,28,31,32,902,917,60,29, + 322,241,231,232,1942,159,1908,2627,36,861, + 33,1654,2728,28,31,32,902,917,27,29, + 1110,26,24,51,1133,107,77,78,109,652, + 1151,1202,1194,1228,1210,1297,1238,330,1385,2548, + 1325,508,1420,1453,144,2860,331,3781,376,145, + 2349,36,861,33,331,2728,28,31,32,902, + 917,27,29,1110,26,24,51,1133,107,77, + 78,109,2186,1151,1202,1194,1228,1210,1297,1238, + 2187,1385,2254,1325,2013,1420,1453,144,1337,1386, + 3781,376,145,4553,2751,36,861,33,1647,2728, + 28,31,32,902,917,27,29,1110,26,24, + 51,1133,107,77,78,109,3311,1151,1202,1194, + 1228,1210,1297,1238,1547,1385,1632,1325,1680,1420, + 1453,144,94,382,3090,370,145,244,2560,36, + 861,33,4662,2728,28,31,32,902,917,27, + 29,1110,26,24,51,1133,107,77,78,109, + 71,1151,1202,1194,1228,1210,1297,1238,72,1385, + 1408,1325,323,1420,1453,144,383,3090,3781,376, + 145,2013,75,70,36,447,3077,3925,4712,2751, + 36,861,33,3283,2728,28,31,32,902,917, + 27,29,1110,26,24,51,1133,107,77,78, + 109,853,1151,1202,1194,1228,1210,1297,1238,369, + 1385,3147,1325,415,1420,1453,144,507,36,283, + 370,145,3068,36,861,33,3849,2728,28,31, + 32,902,917,27,29,1110,26,24,51,1133, + 107,77,78,109,1230,1151,1202,1194,1228,1210, + 1297,1238,152,1865,374,3090,2751,36,861,33, + 1651,2728,28,31,32,902,917,27,29,1110, + 26,24,51,1133,107,77,78,109,769,1151, + 1202,1194,1228,1210,1297,1238,2743,1385,404,1325, + 2010,1420,1453,144,3207,507,1979,370,145,1911, + 2751,36,861,33,368,2728,28,31,32,902, + 917,27,29,1110,26,24,51,1133,107,77, + 78,109,1365,1151,1202,1194,1228,1210,1297,1238, + 75,1385,1365,1325,3452,1420,1453,144,440,2631, + 2670,159,145,2694,36,861,33,1805,2728,28, + 31,32,902,917,27,29,1110,26,24,51, + 1133,107,77,78,109,386,1151,1202,1194,1228, + 1210,1297,1238,75,1385,1251,1325,681,1420,1463, + 165,366,2422,36,861,33,1988,2728,28,31, + 32,902,917,27,29,1110,26,24,51,1133, + 107,77,78,109,492,1151,1202,1194,1228,1210, + 1297,1238,317,1385,454,1325,287,1420,1453,144, + 507,36,2186,143,145,325,507,36,931,385, + 507,36,1496,277,715,1264,2013,1365,2751,36, + 861,33,1711,2728,28,31,32,902,917,27, + 29,1110,26,24,51,1133,107,77,78,109, + 428,1151,1202,1194,1228,1210,1297,1238,75,1385, + 42,1325,736,1420,1453,144,1805,2184,437,156, + 145,2751,36,861,33,1013,2728,28,31,32, + 902,917,27,29,1110,26,24,51,1133,107, + 77,78,109,1394,1151,1202,1194,1228,1210,1297, + 1238,75,1385,1516,1325,815,1420,1453,144,453, + 390,421,155,145,2751,36,861,33,1013,2728, + 28,31,32,902,917,27,29,1110,26,24, + 51,1133,107,77,78,109,2255,1151,1202,1194, + 1228,1210,1297,1238,75,1385,1343,1325,2987,1420, + 1453,144,507,3434,311,154,145,2751,36,861, + 33,587,2728,28,31,32,902,917,27,29, + 1110,26,24,51,1133,107,77,78,109,517, + 1151,1202,1194,1228,1210,1297,1238,75,1385,761, + 1325,4445,1420,1453,144,507,2915,1115,153,145, + 2751,36,861,33,1814,2728,28,31,32,902, + 917,27,29,1110,26,24,51,1133,107,77, + 78,109,2017,1151,1202,1194,1228,1210,1297,1238, + 4154,1385,1932,1325,75,1420,1453,144,563,441, + 1743,152,145,2751,36,861,33,1814,2728,28, + 31,32,902,917,27,29,1110,26,24,51, + 1133,107,77,78,109,1462,1151,1202,1194,1228, + 1210,1297,1238,4480,1385,1794,1325,1491,1420,1453, + 144,674,441,1842,151,145,2751,36,861,33, + 1512,2728,28,31,32,902,917,27,29,1110, + 26,24,51,1133,107,77,78,109,2077,1151, + 1202,1194,1228,1210,1297,1238,516,1385,2429,1325, + 75,1420,1453,144,3219,2404,2448,150,145,2751, + 36,861,33,2450,2728,28,31,32,902,917, + 27,29,1110,26,24,51,1133,107,77,78, + 109,1845,1151,1202,1194,1228,1210,1297,1238,516, + 1385,1427,1325,75,1420,1453,144,1362,1809,2244, + 149,145,2751,36,861,33,3272,2728,28,31, + 32,902,917,27,29,1110,26,24,51,1133, + 107,77,78,109,326,1151,1202,1194,1228,1210, + 1297,1238,2265,1385,1685,1325,3153,1420,1453,144, + 1365,500,1402,148,145,2751,36,861,33,1475, + 2728,28,31,32,902,917,27,29,1110,26, + 24,51,1133,107,77,78,109,517,1151,1202, + 1194,1228,1210,1297,1238,75,1385,1707,1325,3273, + 1420,1453,144,1365,1636,1795,147,145,2751,36, + 861,33,1898,2728,28,31,32,902,917,27, + 29,1110,26,24,51,1133,107,77,78,109, + 1971,1151,1202,1194,1228,1210,1297,1238,2382,1385, + 2410,1325,4119,1420,1453,144,1829,2461,2877,146, + 145,2751,36,861,33,1796,2728,28,31,32, + 902,917,27,29,1110,26,24,51,1133,107, + 77,78,109,665,1151,1202,1194,1228,1210,1297, + 1238,2092,1385,418,1325,52,1420,1453,144,56, + 1825,2453,160,145,2751,36,861,33,2406,2728, + 28,31,32,902,917,27,29,1110,26,24, + 51,1133,107,77,78,109,1825,1151,1202,1194, + 1228,1210,1297,1238,75,1385,2482,1325,3717,1420, + 1453,144,2483,2071,505,141,145,2948,36,861, + 33,2661,2728,28,31,32,902,917,27,29, + 1110,26,24,51,1133,107,77,78,109,2263, + 1151,1202,1194,1228,1210,1297,1238,75,1385,2095, + 1325,3762,1420,1453,144,2515,2103,2336,190,145, + 3068,36,861,33,2342,2728,28,31,32,902, + 917,27,29,1110,26,24,51,1133,107,77, + 78,109,2485,1151,1202,1194,1228,1210,1297,1238, + 2486,1385,2456,1325,352,1420,1463,165,3068,36, + 861,33,525,2728,28,31,32,902,917,27, + 29,1110,26,24,51,1133,107,77,78,109, + 321,1151,1202,1194,1228,1210,1297,1238,525,1385, + 399,1325,2666,1420,1463,165,2180,36,861,33, + 2546,1990,42,31,32,902,917,3068,36,861, + 33,291,2728,28,31,32,902,917,27,29, + 1110,26,24,51,1133,107,77,78,109,2583, + 1151,1202,1194,1228,1210,1297,1238,75,1385,397, + 1325,1250,1420,1463,165,3068,36,861,33,417, + 2728,28,31,32,902,917,27,29,1110,26, + 24,51,1133,107,77,78,109,4197,1151,1202, + 1194,1228,1210,1297,1238,75,1385,2620,1325,2666, + 1420,1463,165,2189,36,861,33,2584,1911,41, + 31,32,902,917,3068,36,861,33,416,2728, + 28,31,32,902,917,27,29,1110,26,24, + 51,1133,107,77,78,109,2588,1151,1202,1194, + 1228,1210,1297,1238,75,1385,2525,1325,4239,1420, + 1463,165,3125,36,861,33,419,2728,28,31, + 32,902,917,27,29,1110,26,24,51,1133, + 107,77,78,109,284,1151,1202,1194,1228,1210, + 1297,1238,75,1385,401,1325,4370,1420,1463,165, + 2189,36,861,33,2589,1911,2196,31,32,902, + 917,3068,36,861,33,2327,2728,28,31,32, + 902,917,27,29,1110,26,24,51,1133,107, + 77,78,109,1566,1151,1202,1194,1228,1210,1297, + 1238,1116,1385,1114,1325,89,1899,1347,103,3068, + 36,861,33,2879,2728,28,31,32,902,917, + 27,29,1110,26,24,51,1133,107,77,78, + 109,285,1151,1202,1194,1228,1210,1297,1238,491, + 1385,1365,1891,3068,36,861,33,1365,2728,28, + 31,32,902,917,27,29,1110,26,24,51, + 1133,107,77,78,109,2153,1151,1202,1194,1228, + 1210,1297,1883,1657,36,861,33,719,2883,28, + 31,32,902,917,336,29,2653,2155,2013,1247, + 3143,507,36,931,385,1737,36,861,33,2664, + 2883,28,31,32,902,917,336,29,2089,36, + 861,33,1347,4787,28,31,32,902,917,59, + 29,1369,75,98,1347,50,1250,348,3068,99, + 1347,317,1038,319,47,312,866,1382,2668,1347, + 1231,36,1582,1637,347,4496,2621,349,859,2372, + 233,2153,157,317,1038,319,320,312,866,1488, + 349,1813,4097,2615,2649,341,579,780,346,349, + 2404,25,2682,811,50,245,231,232,341,579, + 780,346,2684,1557,731,2153,339,341,579,780, + 346,3068,36,861,33,2392,2728,28,31,32, + 902,917,27,29,1110,26,24,51,1133,107, + 77,78,109,2153,1151,1202,1194,1228,1857,3068, + 36,861,33,2153,2728,28,31,32,902,917, + 27,29,1110,26,24,51,1133,107,77,78, + 109,2525,1151,1202,1194,1228,1858,1594,3068,36, + 861,33,363,2728,28,31,32,902,917,27, + 29,1110,26,24,51,1133,107,77,78,109, + 2650,1151,1202,1194,1814,3068,36,861,33,298, + 2728,28,31,32,902,917,27,29,1110,26, + 24,51,1133,107,77,78,109,2658,1151,1202, + 1194,1815,3068,36,861,33,1664,2728,28,31, + 32,902,917,27,29,1110,26,24,51,1133, + 107,77,78,109,1261,1151,1202,1194,1822,3068, + 36,861,33,2155,2728,28,31,32,902,917, + 27,29,1110,26,24,51,1133,107,77,78, + 109,2719,1151,1202,1194,1840,1625,36,861,33, + 3470,4599,28,31,32,902,917,336,29,2525, + 1237,36,861,33,3035,2883,28,31,32,902, + 917,336,29,1396,1826,233,848,262,2833,4168, + 2688,531,2189,36,861,33,2735,2240,2521,31, + 32,902,917,2305,36,292,2353,222,398,229, + 248,231,232,329,317,1038,319,157,312,866, + 421,36,391,2008,2749,181,3111,3147,314,2070, + 319,1336,2013,204,216,3049,203,213,214,215, + 217,329,170,2756,233,4505,2758,88,1399,36, + 931,385,169,2780,184,168,171,172,173,174, + 175,2076,2773,1972,1,2833,2833,2833,531,251, + 231,232,3147,2842,357,2817,75,2620,305,309, + 3741,2818,50,2353,340,340,229,519,2808,1635, + 1643,1557,2367,2239,157,1667,36,278,4673,2649, + 2823,2087,181,3111,3147,1435,2368,1240,900,2676, + 204,216,3049,203,213,214,215,217,2824,170, + 766,36,447,2147,2781,4712,2417,1600,1347,169, + 182,185,168,171,172,173,174,175,1920,36, + 861,33,719,2883,28,31,32,902,917,336, + 29,358,244,3182,36,931,385,4687,4241,2888, + 1934,2744,1476,36,861,33,238,4599,28,31, + 32,902,917,336,29,1077,175,2305,2577,292, + 507,36,1496,282,1649,1826,2334,274,2865,2833, + 4168,4168,507,36,931,385,317,1038,319,2784, + 312,866,2237,595,36,931,385,2353,507,36, + 1496,279,349,520,233,90,348,2756,103,330, + 317,1038,319,2592,313,866,427,531,2013,249, + 341,579,780,346,2145,2845,349,50,521,236, + 231,232,329,4335,75,3859,1557,2281,721,436, + 275,450,2830,157,343,579,780,346,349,3154, + 2847,181,3111,507,36,1496,2157,848,3147,243, + 246,249,252,2420,3071,357,341,579,780,346, + 2368,1024,2726,518,2392,444,2631,2670,196,2808, + 1635,1643,1027,36,1496,277,2513,855,2369,2604, + 2663,3204,4441,3068,36,861,33,1353,2728,28, + 31,32,902,917,27,29,1110,26,24,51, + 1133,107,77,78,109,95,1151,1202,1848,3068, + 36,861,33,5366,2728,28,31,32,902,917, + 27,29,1110,26,24,51,1133,107,77,78, + 109,5366,1151,1202,1850,1748,36,2273,33,3470, + 4599,28,31,32,902,917,336,29,3427,2001, + 36,861,33,2636,2883,28,31,32,902,917, + 336,29,507,2418,1496,75,349,378,75,1356, + 531,1383,3751,2833,1911,1911,4168,1808,75,4647, + 197,2833,2833,5366,2757,326,332,2417,229,2525, + 2013,2353,329,317,1038,319,157,312,866,2353, + 340,5366,5366,5366,181,3111,3147,314,2070,319, + 979,2525,204,216,3049,203,213,214,215,217, + 2525,170,436,2366,4505,75,531,302,330,3236, + 3858,169,503,2882,168,171,172,173,174,175, + 296,295,5366,2334,229,349,1347,2407,4168,180, + 5366,2667,157,317,507,36,931,385,199,499, + 181,3111,3147,343,579,780,346,357,204,216, + 3049,203,213,214,215,217,523,170,70,498, + 531,3380,1635,1643,1911,230,1347,169,274,179, + 168,171,172,173,174,175,412,2283,229,496, + 329,1347,5366,2781,1515,5366,157,2334,507,36, + 931,385,4168,183,181,3111,3147,2071,69,940, + 1979,5366,204,216,3049,203,213,214,215,217, + 610,170,3071,54,531,1356,2154,768,5366,2833, + 2833,169,274,177,168,171,172,173,174,175, + 303,337,229,679,36,931,385,2353,2353,75, + 157,389,421,1478,329,233,5366,75,181,3111, + 3147,2833,1347,940,1979,2525,204,216,3049,203, + 213,214,215,217,697,170,432,274,531,340, + 254,231,232,5366,5366,169,920,178,168,171, + 172,173,174,175,88,276,229,507,36,931, + 385,249,2366,198,157,1027,36,1496,2426,5366, + 2525,501,181,3111,3147,499,499,1347,5366,5366, + 204,216,3049,203,213,214,215,217,784,170, + 286,426,531,2592,75,498,498,1250,1250,169, + 2244,188,168,171,172,173,174,175,301,53, + 229,507,36,931,385,497,496,73,157,2158, + 1985,3421,1472,157,157,75,181,3111,3147,2833, + 1347,201,3482,1893,204,216,3049,203,213,214, + 215,217,871,170,286,446,531,340,507,36, + 1496,2452,2375,169,2586,2962,168,171,172,173, + 174,175,2194,75,229,1911,1347,2833,5366,1347, + 2366,244,157,2245,1985,5366,4698,1353,5366,1668, + 181,3111,3147,75,2525,340,2371,2833,204,216, + 3049,203,213,214,215,217,958,170,2232,2101, + 531,91,1808,1250,5366,340,2833,169,2366,193, + 168,171,172,173,174,175,2371,1678,229,377, + 2334,5366,202,75,2353,4168,157,1250,2366,161, + 5366,379,2525,5366,181,3111,3147,1686,3427,1347, + 5366,1347,204,216,3049,203,213,214,215,217, + 1045,170,1347,157,531,75,43,1943,5366,1250, + 5366,169,3491,187,168,171,172,173,174,175, + 200,3562,229,68,75,331,332,329,1250,1347, + 157,5366,1347,5366,67,157,45,1943,181,3111, + 3147,5366,357,5366,3502,3201,204,216,3049,203, + 213,214,215,217,157,170,3416,1635,1643,4572, + 5366,66,75,3529,65,169,2947,195,168,171, + 172,173,174,175,3068,36,861,33,5366,2728, + 28,31,32,902,917,27,29,1110,26,24, + 51,1133,107,77,78,109,5366,1151,1754,3068, + 36,861,33,2525,2728,28,31,32,902,917, + 27,29,1110,26,24,51,1133,107,77,78, + 109,5366,1151,1771,1889,36,861,33,3470,2883, + 28,31,32,902,917,336,29,3068,36,861, + 33,297,2728,28,31,32,902,917,27,29, + 1110,26,24,51,1133,107,77,78,109,1347, + 1772,3011,36,861,33,5366,2728,28,31,32, + 902,917,27,29,1110,26,24,51,1133,87, + 77,78,317,1038,319,2074,312,866,5366,5366, + 4637,56,507,36,292,3068,36,861,33,1336, + 2728,28,31,32,902,917,27,29,1110,26, + 24,51,1133,107,77,78,109,1353,1779,3068, + 36,861,33,5366,2728,28,31,32,902,917, + 27,29,1110,26,24,51,1133,107,77,78, + 109,1583,1807,1347,75,2833,305,309,1900,75, + 1347,1847,244,1926,2101,2833,75,4723,1250,244, + 3761,1935,1353,229,4737,2833,75,4260,75,5366, + 1250,5366,1564,229,5366,55,2101,2676,3427,5366, + 1250,75,102,229,161,3415,2773,206,216,3049, + 205,213,214,215,217,3320,157,206,216,3049, + 205,213,214,215,217,3532,161,206,216,3049, + 205,213,214,215,217,2924,332,207,209,211, + 293,294,1969,3427,218,208,210,207,209,211, + 293,294,1969,1347,218,208,210,207,209,211, + 293,294,1969,2381,218,208,210,5366,423,75, + 3327,2101,5366,1607,3074,1250,4267,5366,75,75, + 328,332,947,3624,3075,3089,4267,5366,5366,2447, + 2099,1347,3659,2818,3184,523,4267,3068,1506,861, + 1625,161,2728,28,31,32,902,917,27,29, + 1110,26,24,51,1133,107,77,78,85,3068, + 36,861,33,445,2728,28,31,32,902,917, + 27,29,1110,26,24,51,1133,107,77,78, + 84,3068,36,861,33,2337,2728,28,31,32, + 902,917,27,29,1110,26,24,51,1133,107, + 77,78,83,3068,36,861,33,3743,2728,28, + 31,32,902,917,27,29,1110,26,24,51, + 1133,107,77,78,82,3068,36,861,33,5366, + 2728,28,31,32,902,917,27,29,1110,26, + 24,51,1133,107,77,78,81,3068,36,861, + 33,2909,2728,28,31,32,902,917,27,29, + 1110,26,24,51,1133,107,77,78,80,3068, + 36,861,33,5366,2728,28,31,32,902,917, + 27,29,1110,26,24,51,1133,107,77,78, + 79,2891,36,861,33,5366,2728,28,31,32, + 902,917,27,29,1110,26,24,51,1133,107, + 77,78,105,3068,36,861,33,5366,2728,28, + 31,32,902,917,27,29,1110,26,24,51, + 1133,107,77,78,111,3068,36,861,33,5366, + 2728,28,31,32,902,917,27,29,1110,26, + 24,51,1133,107,77,78,110,3068,36,861, + 33,5366,2728,28,31,32,902,917,27,29, + 1110,26,24,51,1133,107,77,78,108,3068, + 36,861,33,5366,2728,28,31,32,902,917, + 27,29,1110,26,24,51,1133,107,77,78, + 106,1836,36,2273,33,3470,2883,28,31,32, + 902,917,336,29,2013,1977,36,861,33,3470, + 2883,28,31,32,902,917,336,29,507,36, + 931,385,2525,2023,5366,5366,2101,2833,2101,2074, + 1250,5366,1250,2825,4637,1671,5366,2833,5366,2833, + 5366,507,36,292,3147,229,5366,1347,5366,317, + 1038,319,50,312,866,340,161,229,161,373, + 4652,1557,1650,317,1038,319,979,312,866,206, + 216,3049,205,213,214,215,217,1347,3869,375, + 1336,206,216,3049,205,213,214,215,217,1353, + 5366,595,36,931,385,5366,5366,5366,5366,207, + 209,211,293,294,1969,1347,514,208,210,3284, + 2525,207,209,211,293,294,1969,1759,513,208, + 210,2833,3750,1347,3871,50,1347,306,309,2111, + 2773,5366,75,2833,1557,1592,1250,3338,5366,229, + 507,36,931,385,3603,5366,5366,3208,223,5366, + 3427,229,413,2283,1347,3392,5366,1347,2712,1347, + 371,5366,157,206,216,3049,205,213,214,215, + 217,2321,5366,2525,50,206,216,3049,205,213, + 214,215,217,1557,2775,2157,2908,3744,332,4323, + 4168,3500,424,207,209,211,293,294,1969,2199, + 219,208,210,2833,5366,207,209,211,293,294, + 1969,194,304,208,210,5366,5366,5366,5366,5366, + 1353,229,5366,4304,5366,5366,5366,1977,36,861, + 33,3470,2883,28,31,32,902,917,336,29, + 5366,5366,4335,5366,5366,206,216,3049,205,213, + 214,215,217,1977,36,861,33,3470,2883,28, + 31,32,902,917,336,29,5366,75,5366,5366, + 5366,1250,5366,5366,5366,207,209,211,293,294, + 1969,3427,493,208,210,317,1038,319,5366,312, + 866,3232,36,931,385,1195,4241,157,5366,2833, + 4772,5366,2404,5366,239,75,4307,5366,5366,531, + 5366,317,1038,319,5366,312,866,229,3749,332, + 5366,5366,5366,5366,97,274,5366,340,2940,5366, + 2013,5366,5366,5366,5366,157,5366,5366,5366,5366, + 5366,2022,402,2650,2419,5366,854,36,931,385, + 2366,5366,233,5366,5366,1519,36,861,33,2410, + 4599,28,31,32,902,917,336,29,5366,5366, + 3147,403,404,405,293,294,1969,237,231,232, + 50,5366,5366,5366,5366,373,5366,5366,275,1557, + 48,5366,5366,5366,1301,5366,1944,5366,2833,4772, + 5366,5366,921,595,36,931,385,244,247,250, + 253,2420,330,317,1038,319,229,315,866,1024, + 5366,5366,1519,36,861,33,5366,4599,28,31, + 32,902,917,336,29,5366,5366,50,5366,5366, + 2022,402,2650,5366,5366,5366,1557,48,5366,595, + 36,931,385,5366,406,408,5366,5366,5366,1167, + 2234,36,931,385,854,36,931,385,5366,5366, + 403,404,405,293,294,1969,1249,5366,4544,330, + 317,1038,319,50,313,866,3768,595,36,931, + 385,5366,1557,2401,50,1944,5366,2594,50,5366, + 5366,531,2480,1557,2429,3154,1250,1557,2439,5366, + 5366,5366,854,36,931,385,3208,5366,5366,340, + 3253,50,5366,595,36,931,385,157,5366,5366, + 1557,48,157,5366,5366,5366,189,595,36,931, + 385,163,4403,620,5366,5366,50,5366,595,36, + 931,385,5366,406,409,1557,48,50,5366,5366, + 5366,5366,595,36,931,385,1557,48,2672,5366, + 5366,50,5366,1030,36,931,385,5366,5366,1376, + 1557,48,50,5366,5366,5366,5366,1248,36,931, + 385,1557,48,2872,5366,5366,50,75,5366,191, + 5366,531,5366,5366,3307,1557,48,50,5366,5366, + 507,36,931,385,5366,5366,1557,48,3361,340, + 5366,50,507,36,931,385,5366,157,75,3692, + 1557,48,531,5366,5366,5366,3186,507,36,931, + 385,5366,2366,4191,50,507,36,931,385,5366, + 340,3146,5366,1557,725,2444,50,5366,157,2833, + 5366,5366,5366,5366,5366,1557,2613,2419,5366,5366, + 5366,50,4172,2366,75,4309,5366,340,531,50, + 1557,2367,3272,5366,5366,5366,75,524,1557,785, + 531,5366,5366,75,5366,75,340,531,75,2833, + 2366,5366,2833,5366,157,5366,75,5366,340,527, + 2833,5366,5366,189,5366,340,157,340,5366,4403, + 340,5366,5366,157,5366,189,5366,5366,340,5366, + 5366,4403,189,5366,5366,5366,5366,5366,4403,5366, + 2366,5366,5366,2366,5366,5366,5366,5366,5366,1693, + 5366,2366,3489,5366,5366,5366,5366,5366,5366,5366, + 528,5366,5366,5366,5366,5366,5366,5366,5366,5366, + 5366,5366,5366,5366,5366,5366,4227,5366,5366,5366, + 5366,5366,5366,5366,5366,5366,5366,5366,4255,5366, + 5366,5366,5366,5366,5366,4273,5366,5366,5366,5366, + 5366,5366,5366,5366,5366,5366,5366,5366,5366,5366, + 5366,5366,5366,5366,5366,5366,5366,5366,5366,5366, + 5366,5366,5366,5366,5366,5366,5366,5366,5366,5366, + 5366,5366,5366,5366,5366,5366,5366,5366,5366,5366, + 5366,5366,5366,5366,5366,5366,3843,5366,0,668, + 1,0,862,1,0,40,1,5381,0,40, + 1,5380,0,2066,1,0,40,5381,0,40, + 5380,0,1280,316,0,1323,30,0,434,1418, + 0,448,1461,0,5381,49,0,5380,49,0, + 39,727,0,39,5381,0,39,5380,0,5372, + 1,0,5371,1,0,5601,242,0,5600,242, + 0,5701,242,0,5700,242,0,5628,242,0, + 5627,242,0,5626,242,0,5625,242,0,5624, + 242,0,5623,242,0,5622,242,0,5621,242, + 0,5639,242,0,5638,242,0,5637,242,0, + 5636,242,0,5635,242,0,5634,242,0,5633, + 242,0,5632,242,0,5631,242,0,5630,242, + 0,5629,242,0,40,242,5381,0,40,242, + 5380,0,5405,242,0,1323,384,0,2582,127, + 0,36,34,0,1,438,0,452,1282,0, + 451,1387,0,48,38,0,5405,1,0,40, + 1,0,784,92,0,33,35,0,40,727, + 0,1,914,0,1,5639,0,1,5638,0, + 1,5637,0,1,5636,0,1,5635,0,1, + 5634,0,1,5633,0,1,5632,0,1,5631, + 0,1,5630,0,1,5629,0,44,5403,0, + 44,38,0,495,1951,0,5405,1,230,0, + 40,1,230,0,230,411,0,5381,38,0, + 5380,38,0,238,3449,0,385,33,0,384, + 30,0,2582,129,0,2582,128,0,5693,439, + 0,1504,439,0,5376,400,0,5375,400,0, + 1,4377,0,1,2742,0,1,727,0,230, + 410,0,1,93,0,5403,46,0,38,46, + 0,1,5693,0,1,1504,0,2,5381,38, + 0,2,5380,38,0,5381,37,0,5380,37, + 0,495,4185,0,1,230,0,230,221,0, + 5693,96,0,1504,96,0,36,74,0,230, + 220,0,279,3776,0,5378,1,0,5374,1, + 0,1,230,2726,0,5375,230,0,2727,230, + 0,5378,380,0,5377,380,0,2856,230,0, + 10,12,0,8,10,12,0,186,3446,0, + 2976,380,0,8,12,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1095,314 +1094,350 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public final static byte termCheck[] = {0, 0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,28,0, + 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,47,48,49, - 50,51,52,53,54,55,56,57,58,59, - 0,61,62,63,64,65,66,67,0,1, - 2,71,72,5,0,75,76,77,78,79, + 40,0,42,43,44,45,46,47,48,49, + 50,51,52,53,54,0,56,57,58,59, + 60,61,62,63,0,65,66,67,68,0, + 1,2,72,4,0,75,76,77,78,79, 80,81,82,83,84,85,86,0,1,2, 3,4,5,6,7,8,9,10,11,12, 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,28,0,30,31,32, - 33,34,35,36,37,38,39,40,41,42, - 43,57,45,46,47,48,49,50,51,52, - 53,54,55,56,57,58,59,0,61,62, - 63,64,65,66,67,0,1,2,71,72, - 13,14,75,76,77,78,79,80,81,82, + 23,24,25,26,27,28,29,30,31,32, + 33,34,35,36,37,38,39,40,64,42, + 43,44,45,46,47,48,49,50,51,52, + 53,54,101,56,57,58,59,60,61,62, + 63,0,65,66,67,68,101,6,0,72, + 0,3,75,76,77,78,79,80,81,82, 83,84,85,86,0,1,2,3,4,5, 6,7,8,9,10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25, - 26,27,28,0,30,31,32,33,34,35, - 36,37,38,39,40,41,42,43,0,45, - 46,47,48,49,50,51,52,53,54,55, - 56,57,58,59,0,61,62,63,64,65, - 66,67,0,1,2,71,72,13,14,75, + 26,27,28,29,30,31,32,33,34,35, + 36,37,38,39,40,55,42,43,44,45, + 46,47,48,49,50,51,52,53,54,0, + 56,57,58,59,60,61,62,63,0,65, + 66,67,68,0,93,94,72,4,0,75, 76,77,78,79,80,81,82,83,84,85, 86,0,1,2,3,4,5,6,7,8, 9,10,11,12,13,14,15,16,17,18, 19,20,21,22,23,24,25,26,27,28, - 0,30,31,32,33,34,35,36,37,38, - 39,40,41,42,43,0,45,46,47,48, - 49,50,51,52,53,54,55,56,57,58, - 59,0,61,62,63,64,65,66,67,0, - 0,1,2,72,4,6,75,76,77,78, + 29,30,31,32,33,34,35,36,37,38, + 39,40,64,42,43,44,45,46,47,48, + 49,50,51,52,53,54,0,56,57,58, + 59,60,61,62,63,0,65,66,67,68, + 0,6,103,104,105,5,75,76,77,78, 79,80,81,82,83,84,85,86,0,1, 2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,28,0,30,31, - 32,33,34,35,36,37,38,39,40,41, - 42,43,0,45,46,47,48,49,50,51, - 52,53,54,55,56,57,58,59,0,61, - 62,63,64,65,66,67,0,0,1,2, - 72,4,101,75,76,77,78,79,80,81, + 22,23,24,25,26,27,28,29,30,31, + 32,33,34,35,36,37,38,39,40,73, + 42,43,44,45,46,47,48,49,50,51, + 52,53,54,0,56,57,58,59,60,61, + 62,63,9,65,66,67,68,0,93,94, + 0,1,2,75,76,77,78,79,80,81, 82,83,84,85,86,0,1,2,3,4, 5,6,7,8,9,10,11,12,13,14, 15,16,17,18,19,20,21,22,23,24, - 25,26,27,28,0,30,31,32,33,34, - 35,36,37,38,39,40,41,42,43,0, + 25,26,27,28,29,30,31,32,33,34, + 35,36,37,38,39,40,0,42,43,44, 45,46,47,48,49,50,51,52,53,54, - 55,56,57,58,59,0,61,62,63,64, - 65,66,67,0,1,2,0,72,44,3, + 73,56,57,58,59,60,61,62,63,0, + 65,66,67,68,0,6,0,1,2,0, 75,76,77,78,79,80,81,82,83,84, 85,86,0,1,2,3,4,5,6,7, 8,9,10,11,12,13,14,15,16,17, 18,19,20,21,22,23,24,25,26,27, - 28,0,30,31,32,33,34,35,36,37, - 38,39,40,41,42,43,60,45,46,47, - 48,49,50,51,52,53,54,55,56,57, - 58,59,0,61,62,63,64,65,66,67, - 0,0,10,0,72,44,3,75,76,77, + 28,29,30,31,32,33,34,35,36,37, + 38,39,40,0,42,43,44,45,46,47, + 48,49,50,51,52,53,54,73,56,57, + 58,59,60,61,62,63,0,65,66,67, + 68,0,93,94,0,1,2,75,76,77, 78,79,80,81,82,83,84,85,86,0, 1,2,3,4,5,6,7,8,9,10, 11,12,13,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,56,30, + 21,22,23,24,25,26,27,28,29,30, 31,32,33,34,35,36,37,38,39,40, - 41,42,43,60,45,46,47,48,49,50, - 51,52,53,54,55,56,57,58,59,0, - 61,62,63,64,65,66,67,0,9,0, - 90,72,92,4,75,76,77,78,79,80, + 64,42,43,44,45,46,47,48,49,50, + 51,52,53,54,0,56,57,58,59,60, + 61,62,63,9,65,66,67,68,0,1, + 2,0,0,5,75,76,77,78,79,80, 81,82,83,84,85,86,0,1,2,3, 4,5,6,7,8,9,10,11,12,13, 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,0,30,31,32,33, - 34,35,36,37,38,39,40,41,42,43, - 0,45,46,47,48,49,50,51,52,53, - 54,55,56,57,58,59,0,61,62,63, - 64,65,66,67,0,88,89,0,72,44, + 24,25,26,27,28,29,30,31,32,33, + 34,35,36,37,38,39,40,55,42,43, + 44,45,46,47,48,49,50,51,52,53, + 54,70,56,57,58,59,60,61,62,63, + 0,65,66,67,68,0,1,2,0,4, 0,75,76,77,78,79,80,81,82,83, 84,85,86,0,1,2,3,4,5,6, 7,8,9,10,11,12,13,14,15,16, 17,18,19,20,21,22,23,24,25,26, - 27,28,0,30,31,32,33,34,35,36, - 37,38,39,40,41,42,43,60,45,46, - 47,48,49,50,51,52,53,54,55,56, - 57,58,59,0,61,62,63,64,65,66, - 67,0,0,97,98,72,13,14,75,76, + 27,28,29,30,31,32,33,34,35,36, + 37,38,39,40,64,42,43,44,45,46, + 47,48,49,50,51,52,53,54,0,56, + 57,58,59,60,61,62,63,0,65,66, + 67,68,0,0,1,2,88,89,75,76, 77,78,79,80,81,82,83,84,85,86, 0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,28,0, + 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,47,48,49, - 50,51,52,53,54,55,56,57,58,59, - 0,61,62,63,64,65,66,67,0,1, - 2,90,72,92,0,75,76,77,78,79, + 40,64,42,43,44,45,46,47,48,49, + 50,51,52,53,54,0,56,57,58,59, + 60,61,62,63,0,65,66,67,68,0, + 1,2,90,0,92,75,76,77,78,79, 80,81,82,83,84,85,86,0,1,2, 3,4,5,6,7,8,9,10,11,12, 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,28,0,30,31,32, - 33,34,35,36,37,38,39,40,41,42, - 43,0,45,46,47,48,49,50,51,52, - 53,54,55,56,57,58,59,0,61,62, - 63,64,65,66,67,0,1,2,0,72, - 44,3,75,76,77,78,79,80,81,82, + 23,24,25,26,27,28,29,30,31,32, + 33,34,35,36,37,38,39,40,55,42, + 43,44,45,46,47,48,49,50,51,52, + 53,54,0,56,57,58,59,60,61,62, + 63,0,65,66,67,68,0,1,2,0, + 1,2,75,76,77,78,79,80,81,82, 83,84,85,86,0,1,2,3,4,5, 6,7,8,9,10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25, - 26,27,28,0,30,31,32,33,34,35, - 36,37,38,39,40,41,42,43,0,45, - 46,47,48,49,50,51,52,53,54,55, - 56,57,58,59,0,61,62,63,64,65, - 66,67,0,0,1,2,72,4,0,75, + 26,27,28,29,30,31,32,33,34,35, + 36,37,38,39,40,73,42,43,44,45, + 46,47,48,49,50,51,52,53,54,0, + 56,57,58,59,60,61,62,63,0,65, + 66,67,68,0,0,0,1,2,4,75, 76,77,78,79,80,81,82,83,84,85, - 86,0,1,2,3,4,5,6,121,8, - 9,10,29,12,13,14,15,16,17,18, - 19,20,21,22,23,24,25,26,27,28, - 0,30,31,32,33,34,35,36,37,38, - 39,40,41,42,43,0,45,46,47,48, - 49,50,51,52,53,54,55,69,57,29, - 59,103,104,105,0,91,65,66,67,0, - 1,2,3,4,5,6,7,8,9,10, - 11,12,100,0,15,16,17,18,19,20, - 21,22,23,24,25,0,1,2,29,0, - 5,0,0,8,0,1,2,3,4,40, - 6,12,0,9,69,46,47,48,49,50, - 51,52,53,54,55,56,0,58,59,46, - 47,0,68,7,65,66,67,0,7,40, - 71,72,73,0,7,46,47,48,49,50, - 51,52,53,54,55,0,87,0,1,2, - 3,4,5,6,60,8,9,0,0,68, - 68,70,103,104,105,0,1,2,3,4, - 5,6,7,8,9,10,11,12,62,0, - 15,16,17,18,19,20,21,22,23,24, - 25,70,71,0,29,0,1,2,3,4, - 5,44,7,8,102,40,11,60,0,107, - 0,46,47,48,49,50,51,52,53,54, - 55,56,12,58,59,0,0,1,2,0, - 65,66,67,88,89,0,71,72,73,4, - 0,6,0,3,9,118,6,7,69,9, - 40,11,87,13,14,29,46,47,48,49, - 50,51,52,53,54,55,26,27,103,104, - 105,0,1,2,3,4,5,6,0,8, - 9,102,4,90,44,92,107,108,109,110, - 111,112,113,114,115,116,117,0,1,2, - 60,4,0,6,7,0,9,99,68,69, - 70,71,7,73,74,0,1,2,3,4, - 5,6,44,8,9,100,97,98,88,89, - 90,91,92,93,94,95,96,97,98,99, - 100,101,102,0,73,0,106,107,108,109, - 110,111,112,113,114,115,116,117,118,0, - 120,59,3,0,122,6,7,0,9,0, - 11,74,13,14,0,60,7,10,4,74, - 11,0,1,2,69,26,27,44,91,0, - 1,2,3,4,5,6,29,8,9,0, - 1,2,0,44,0,1,2,3,4,5, - 0,7,8,0,1,2,3,4,5,60, - 7,8,0,0,11,3,59,68,69,70, - 71,68,73,74,0,1,2,3,4,5, - 6,0,8,9,63,64,44,88,89,90, - 91,92,93,94,95,96,97,98,99,100, - 101,102,63,64,60,106,107,108,109,110, - 111,112,113,114,115,116,117,118,74,120, - 0,1,2,3,4,5,6,0,8,9, - 10,69,69,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,28,0, - 30,31,32,33,34,35,36,37,38,39, - 0,41,42,43,0,45,0,1,2,3, - 4,5,0,0,8,0,3,57,0,0, - 7,0,7,63,64,0,1,2,68,0, - 1,2,3,4,5,6,7,8,9,10, - 73,29,13,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,69,30, - 31,32,33,34,35,36,37,38,39,0, - 41,42,43,60,45,0,0,0,60,73, - 3,0,1,2,7,4,57,74,7,74, - 90,62,92,0,1,2,3,4,5,6, - 71,8,9,10,29,0,13,14,15,16, - 17,18,19,20,21,22,23,24,25,26, - 27,28,101,30,31,32,33,34,35,36, - 37,38,39,0,41,42,43,60,45,70, - 0,1,2,62,4,68,6,70,0,9, - 57,74,0,1,2,7,63,64,0,1, - 2,3,4,5,6,60,8,9,10,0, - 0,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,28,0,30,31, - 32,33,34,35,36,37,38,39,121,41, - 42,43,69,45,0,0,1,2,0,0, - 1,2,3,4,5,57,0,8,0,71, - 4,63,64,0,1,2,3,4,5,6, - 7,8,9,10,29,0,13,14,15,16, - 17,18,19,20,21,22,23,24,25,26, - 27,28,44,30,31,32,33,34,35,36, - 37,38,39,76,41,42,43,0,45,60, - 0,1,2,3,4,5,0,0,8,44, - 57,73,0,0,7,62,0,1,2,3, - 4,5,6,7,8,9,10,0,0,13, + 86,0,1,2,3,4,5,6,0,8, + 9,10,11,12,13,14,15,16,17,18, + 19,20,21,22,23,24,41,26,27,28, + 29,30,31,32,33,34,35,36,37,38, + 39,40,0,42,43,44,45,46,47,48, + 49,50,51,52,53,54,73,56,57,58, + 59,0,0,62,0,1,2,3,4,5, + 6,7,8,9,10,11,12,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,28,29,30,31,32,33,34,0, + 0,1,2,39,4,41,0,1,2,3, + 4,5,70,7,8,0,0,0,1,2, + 0,57,58,59,60,61,0,63,0,121, + 0,25,70,0,35,36,72,73,22,23, + 24,41,26,27,28,29,30,31,32,33, + 34,87,22,23,24,0,26,27,28,29, + 30,31,32,33,34,39,0,103,104,105, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,32,33,34,0,0,1,2,39, + 4,41,0,7,0,3,0,3,6,7, + 100,9,0,7,69,0,71,57,58,59, + 60,61,99,63,0,10,70,25,0,1, + 2,7,72,73,6,23,24,35,36,37, + 38,0,0,1,2,3,4,87,6,0, + 55,9,0,0,39,0,41,55,0,1, + 2,0,66,103,104,105,64,0,64,41, + 3,69,70,71,72,73,74,22,23,24, + 74,26,27,28,29,30,31,32,33,34, + 88,89,90,91,92,93,94,95,96,97, + 98,99,100,101,102,64,64,55,106,107, + 108,109,110,111,112,113,114,115,116,117, + 118,0,120,70,3,67,68,6,7,0, + 9,0,1,2,0,0,1,2,3,4, + 5,6,118,8,9,0,25,0,1,2, + 0,90,5,92,4,102,35,36,37,38, + 107,108,109,110,111,112,113,114,115,116, + 117,0,41,0,0,0,55,6,0,1, + 2,3,4,5,6,64,8,9,41,0, + 69,70,71,72,73,74,22,23,24,64, + 26,27,28,29,30,31,32,33,34,88, + 89,90,91,92,93,94,95,96,97,98, + 99,100,101,102,90,0,92,106,107,108, + 109,110,111,112,113,114,115,116,117,118, + 0,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,102,0,0, + 55,39,107,41,0,1,2,3,4,5, + 6,0,8,9,3,0,0,0,73,57, + 58,59,60,61,0,63,0,65,0,3, + 0,3,0,0,72,7,0,1,2,3, + 4,5,6,0,8,9,0,1,2,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,55,0,41,55,39, + 64,41,64,0,1,2,0,4,5,69, + 64,8,74,88,89,55,70,57,58,59, + 60,61,69,63,71,65,0,1,2,3, + 4,5,0,7,8,95,96,0,1,2, + 3,4,5,6,41,8,9,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,0,0,0,90,39,92,41, + 64,0,1,2,0,4,5,0,0,8, + 74,3,70,0,7,57,58,59,60,61, + 73,63,0,65,0,0,1,2,0,4, + 72,6,7,0,9,0,1,2,3,4, + 5,0,41,8,0,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,0,30,31,32,33, - 34,35,36,37,38,39,44,41,42,43, - 0,45,0,1,2,68,4,5,0,62, - 8,44,4,57,68,0,70,0,62,0, + 24,25,26,27,28,29,30,31,32,33, + 34,74,88,89,91,39,62,41,0,1, + 2,3,4,5,99,7,8,0,91,74, + 0,97,98,57,58,59,60,61,73,63, + 0,65,71,25,0,71,91,7,72,0, + 1,2,3,4,5,97,98,8,0,1, + 2,0,119,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,41, + 0,0,41,39,3,41,0,1,2,3, + 4,5,72,64,8,88,89,0,0,0, + 3,57,58,59,60,61,7,63,10,65, + 0,1,2,3,4,5,72,0,8,0, + 1,2,0,4,25,6,0,10,9,7, + 4,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,70,88,89, + 71,39,0,41,0,1,2,60,4,5, + 0,55,8,0,4,0,0,4,66,57, + 58,59,60,61,0,63,0,65,0,1, + 2,0,4,5,0,22,8,0,1,2, + 0,4,0,6,0,3,9,7,4,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,69,0,1,2,39, + 4,41,6,0,0,9,0,1,2,55, + 4,75,6,10,70,9,91,57,58,59, + 60,61,0,63,74,65,103,104,105,0, + 1,2,0,0,5,0,0,8,0,1, + 2,100,39,5,41,41,8,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,0,1,2,0,39,0,41, + 55,55,4,0,1,2,3,4,5,6, + 7,8,9,0,0,57,58,59,60,61, + 22,63,0,65,0,22,23,24,25,26, + 27,28,29,30,31,32,33,34,0,1, + 2,3,4,5,6,87,8,9,10,11, + 12,13,14,15,16,17,18,19,20,21, + 67,68,119,41,0,1,2,64,55,55, + 0,7,76,35,36,37,38,74,40,55, + 42,43,44,45,46,47,48,49,50,51, + 52,53,54,0,56,0,0,4,3,6, + 62,0,9,7,3,67,68,69,0,1, + 2,3,4,5,6,7,8,9,10,11, + 12,13,14,15,16,17,18,19,20,21, + 66,0,1,2,0,1,2,0,1,2, + 0,0,0,35,36,37,38,7,40,7, + 42,43,44,45,46,47,48,49,50,51, + 52,53,54,0,56,0,0,71,72,0, + 62,0,41,7,66,41,35,36,41,0, + 72,0,1,2,3,4,5,6,0,8, + 9,10,11,12,13,14,15,16,17,18, + 19,20,21,0,35,36,0,0,66,0, + 7,71,0,7,74,0,35,36,37,38, + 0,40,7,42,43,44,45,46,47,48, + 49,50,51,52,53,54,71,56,72,0, + 25,0,0,62,0,0,7,3,67,68, + 0,1,2,3,4,5,6,69,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,0,0,0,55,69,74,69,7, + 74,69,119,0,0,35,36,37,38,69, + 40,7,42,43,44,45,46,47,48,49, + 50,51,52,53,54,0,56,0,3,25, + 69,69,62,74,69,95,96,67,68,0, 1,2,3,4,5,6,7,8,9,10, - 0,29,13,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,40,30, - 31,32,33,34,35,36,37,38,39,44, - 41,42,43,0,45,0,1,2,3,4, - 5,6,0,8,9,10,91,60,13,14, - 15,16,17,18,19,20,21,22,23,24, - 25,26,27,28,0,30,31,32,33,34, - 35,36,37,38,39,0,41,42,43,0, - 45,0,0,0,3,3,44,5,6,0, - 0,9,57,4,0,13,14,0,0,1, - 2,7,4,5,0,11,8,118,26,27, - 68,28,30,0,1,2,3,4,5,6, - 7,8,9,0,11,12,44,29,0,1, - 2,3,4,5,44,0,8,95,96,0, - 1,2,60,4,5,63,64,8,44,70, - 68,69,70,40,0,1,2,44,68,46, - 47,48,49,50,51,52,53,54,55,0, - 88,89,90,60,99,93,94,95,96,97, - 98,99,100,101,102,95,96,74,106,0, + 11,12,13,14,15,16,17,18,19,20, + 21,0,0,0,72,71,3,0,0,0, + 3,0,4,0,35,36,37,38,7,40, + 7,42,43,44,45,46,47,48,49,50, + 51,52,53,54,0,56,25,70,25,0, + 0,62,3,0,4,66,0,1,2,3, + 4,5,6,7,8,9,10,11,12,13, + 14,15,16,17,18,19,20,21,0,0, + 0,3,0,71,40,3,0,0,0,7, + 0,35,36,37,38,0,40,0,42,43, + 44,45,46,47,48,49,50,51,52,53, + 54,0,56,0,3,0,3,0,62,40, + 3,0,66,0,1,2,3,4,5,6, + 7,8,9,10,11,12,13,14,15,16, + 17,18,19,20,21,55,64,0,0,0, + 55,69,55,71,0,0,74,70,35,36, + 37,38,0,40,0,42,43,44,45,46, + 47,48,49,50,51,52,53,54,0,56, + 0,1,2,3,4,5,6,0,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,0,121,0,3,0,5,6,0, + 4,9,3,0,10,35,36,37,38,71, + 40,0,42,43,44,45,46,47,48,49, + 50,51,52,53,54,71,56,35,36,37, + 38,118,62,39,42,41,0,0,0,3, + 3,73,0,0,0,3,3,55,0,0, + 73,55,3,0,0,61,64,0,0,67, + 68,69,70,71,0,0,0,122,0,0, + 0,0,0,0,0,0,73,0,40,0, + 88,89,90,0,0,93,94,95,96,97, + 98,99,100,101,102,0,0,0,106,0, 108,109,110,111,112,113,114,115,116,117, 0,1,2,3,4,5,6,0,8,9, - 10,88,89,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,28,60, - 30,31,32,33,34,35,36,37,38,39, - 0,41,42,43,0,45,0,3,0,1, - 2,3,4,5,6,9,8,9,10,70, - 60,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,28,70,30,31, - 32,33,34,35,36,37,38,39,0,41, - 42,43,4,45,0,1,2,3,4,5, - 6,0,8,9,10,57,0,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,28,0,30,31,32,33,34,35, - 36,37,38,39,0,41,42,43,4,45, + 10,11,12,13,14,15,16,17,18,19, + 20,21,55,0,70,91,70,0,0,0, + 0,0,0,0,0,35,36,37,38,0, + 40,55,42,43,44,45,46,47,48,49, + 50,51,52,53,54,69,56,0,1,2, + 3,4,5,6,64,8,9,10,11,12, + 13,14,15,16,17,18,19,20,21,0, + 0,95,96,0,0,0,0,0,0,0, + 0,0,35,36,37,38,0,40,0,42, + 43,44,45,46,47,48,49,50,51,52, + 53,54,0,56,0,0,0,0,0,62, 0,1,2,3,4,5,6,0,8,9, - 10,0,0,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,28,68, - 30,31,32,33,34,35,36,37,38,39, - 28,41,42,43,0,45,0,1,2,3, - 4,5,6,0,8,9,10,4,75,13, + 10,11,12,13,14,15,16,17,18,19, + 20,21,0,0,0,0,0,0,0,0, + 0,0,0,0,0,35,36,37,38,0, + 40,0,42,43,44,45,46,47,48,49, + 50,51,52,53,54,0,56,0,1,2, + 3,4,5,6,0,8,9,10,11,12, + 13,14,15,16,17,18,19,20,21,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,35,36,37,38,0,40,0,42, + 43,44,45,46,47,48,49,50,51,52, + 53,54,0,56,0,1,2,3,4,5, + 6,0,8,9,10,11,12,13,14,15, + 16,17,18,19,20,21,0,0,0,0, + 0,0,0,0,0,0,0,0,0,35, + 36,37,38,0,40,0,42,43,44,45, + 46,47,48,49,50,51,52,53,54,0, + 56,0,1,2,0,4,0,0,0,0, + 0,10,11,12,13,14,15,16,17,18, + 19,20,21,22,23,24,0,26,27,28, + 29,30,31,32,33,34,0,0,0,0, + 39,0,0,0,0,0,0,0,0,0, + 0,0,1,2,0,4,0,0,57,58, + 59,10,11,12,13,14,15,16,17,18, + 19,20,21,22,23,24,0,26,27,28, + 29,30,31,32,33,34,0,0,0,0, + 39,0,1,2,3,4,5,6,7,8, + 9,0,0,0,0,3,0,0,57,58, + 59,0,0,22,23,24,25,26,27,28, + 29,30,31,32,33,34,0,0,0,0, + 0,0,0,0,0,0,0,0,0,37, + 38,0,0,0,0,0,55,0,0,0, + 0,0,0,0,0,64,0,0,0,0, + 0,0,0,0,0,74,64,11,12,13, 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,68,30,31,32,33, - 34,35,36,37,38,39,0,41,42,43, - 0,45,0,1,2,0,4,44,3,0, - 1,2,10,0,12,6,3,15,16,17, - 18,19,20,21,22,23,24,25,0,1, - 2,0,4,5,0,4,8,0,29,26, - 27,7,40,6,0,91,0,3,46,47, - 48,49,50,51,52,53,54,55,0,1, - 2,59,0,1,2,7,4,65,66,67, - 70,40,10,60,12,0,0,15,16,17, - 18,19,20,21,22,23,24,25,0,0, - 1,2,0,1,2,3,4,5,6,7, - 8,9,40,11,12,71,0,0,46,47, - 48,49,50,51,52,53,54,55,29,106, - 62,59,0,1,2,0,0,65,66,67, - 93,94,40,120,103,104,105,0,46,47, - 48,49,50,51,52,53,54,55,73,73, - 0,29,60,0,0,1,2,7,4,0, - 6,11,3,9,0,12,74,3,15,16, - 17,18,19,20,21,22,23,24,25,0, - 0,1,2,3,4,5,6,7,8,9, - 0,11,12,40,88,89,0,60,73,46, - 47,48,49,50,51,52,53,54,55,29, - 0,1,2,3,4,5,6,7,8,9, - 70,11,12,0,1,2,3,4,5,6, - 7,8,9,0,11,12,56,0,58,29, - 3,61,0,10,0,1,2,68,4,7, - 6,71,29,9,44,0,1,2,68,4, - 0,6,29,0,9,69,56,87,58,0, - 10,61,0,1,2,6,0,5,0,56, - 8,58,0,0,61,3,0,0,0,0, - 3,3,59,7,71,6,0,87,0,3, - 0,1,2,3,4,5,6,7,8,9, - 87,11,12,71,0,1,2,3,4,5, - 6,7,8,9,0,11,12,44,4,29, - 0,1,2,3,4,5,6,7,8,9, - 0,11,12,29,0,1,2,69,0,5, - 10,68,0,1,2,0,56,0,58,29, - 74,61,93,94,0,1,2,0,44,29, - 56,71,58,29,7,61,0,91,95,96, - 0,29,93,94,0,71,56,87,58,0, - 0,61,44,29,0,0,7,7,3,59, - 11,87,0,1,2,3,4,5,6,7, - 8,9,72,11,12,0,0,87,0,1, - 2,3,4,5,6,7,8,9,73,11, - 12,29,0,0,1,2,0,70,44,7, - 0,74,0,11,0,88,89,29,0,0, - 0,0,0,69,5,7,12,7,56,0, - 58,0,29,61,74,0,0,0,3,3, - 3,0,0,12,56,3,58,0,0,61, - 3,3,0,0,40,70,70,0,0,87, - 46,47,48,49,50,51,52,53,54,55, - 0,40,0,3,0,87,0,46,47,48, - 49,50,51,52,53,54,55,0,0,0, - 3,3,74,0,74,73,3,0,0,0, - 28,44,73,0,0,0,0,0,0,0, - 0,0,0,0,73,0,0,0,0,0, - 0,69,69,0,0,119,0,0,0,119, - 0,119,0,0,0,0,0,0,0,0, + 24,0,26,27,28,29,30,31,32,33, + 34,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,106,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,120,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,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; @@ -1410,308 +1445,347 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface TermAction { public final static char termAction[] = {0, - 5370,5335,5308,5308,5308,5308,5308,5351,5308,5308, - 1,5339,1,1,1,1,1,1,1,1, + 5366,5331,5304,5304,5304,5304,5304,5347,5304,5304, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5335,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,385,1,1,1,1,1, - 1,1,1,1,1,1,1689,1,2707,1, - 5370,2448,5381,1,1,1,1,1,5370,5389, - 5390,5377,5551,3066,530,1125,2784,3473,2206,3384, - 2708,3070,2765,1559,2759,3293,2737,10,5354,5354, - 5354,5354,5354,5354,5354,5354,5354,5354,5354,5354, - 5354,5354,5354,5354,5354,5354,5354,5354,5354,5354, - 5354,5354,5354,5354,5354,5354,5370,5354,5354,5354, - 5354,5354,5354,5354,5354,5354,5354,5354,5354,5354, - 5354,2466,5354,5354,5354,5354,5354,5354,5354,5354, - 5354,5354,5354,5354,5354,5354,5354,124,5354,5354, - 5354,5354,5354,5354,5354,396,5389,5390,5354,5354, - 3603,3578,5354,5354,5354,5354,5354,5354,5354,5354, - 5354,5354,5354,5354,8,5357,5357,5357,5357,5357, - 5357,5357,5357,5357,5357,5357,5357,5357,5357,5357, - 5357,5357,5357,5357,5357,5357,5357,5357,5357,5357, - 5357,5357,5357,5370,5357,5357,5357,5357,5357,5357, - 5357,5357,5357,5357,5357,5357,5357,5357,5370,5357, - 5357,5357,5357,5357,5357,5357,5357,5357,5357,5357, - 5357,5357,5357,5357,126,5357,5357,5357,5357,5357, - 5357,5357,5370,5389,5390,5357,5357,3603,3578,5357, - 5357,5357,5357,5357,5357,5357,5357,5357,5357,5357, - 5357,5370,5335,5308,5308,5308,5308,5308,5342,5308, - 5308,1,5339,1,1,1,1,1,1,1, + 1,138,1,1,1,1,1,1,1,1, + 1,1,1,1,1,139,1,1,1,1, + 1555,5542,1,2703,345,2444,5377,1,1,5366, + 5019,5016,5373,5405,1,1121,2780,3275,2202,3120, + 2704,3066,2761,1512,2755,3343,2733,10,5350,5350, + 5350,5350,5350,5350,5350,5350,5350,5350,5350,5350, + 5350,5350,5350,5350,5350,5350,5350,5350,5350,5350, + 5350,5350,5350,5350,5350,5350,5350,5350,5350,5350, + 5350,5350,5350,5350,5350,5350,5350,5350,1293,5350, + 5350,5350,5350,5350,5350,5350,5350,5350,5350,5350, + 5350,5350,2289,5350,5350,5350,5350,5350,5350,5350, + 5350,116,5350,5350,5350,5350,2289,3719,5366,5350, + 5366,4747,5350,5350,5350,5350,5350,5350,5350,5350, + 5350,5350,5350,5350,8,5353,5353,5353,5353,5353, + 5353,5353,5353,5353,5353,5353,5353,5353,5353,5353, + 5353,5353,5353,5353,5353,5353,5353,5353,5353,5353, + 5353,5353,5353,5353,5353,5353,5353,5353,5353,5353, + 5353,5353,5353,5353,5353,809,5353,5353,5353,5353, + 5353,5353,5353,5353,5353,5353,5353,5353,5353,433, + 5353,5353,5353,5353,5353,5353,5353,5353,318,5353, + 5353,5353,5353,40,3695,3637,5353,5405,381,5353, + 5353,5353,5353,5353,5353,5353,5353,5353,5353,5353, + 5353,5366,5331,5304,5304,5304,5304,5304,5338,5304, + 5304,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,5335,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,5370,1,1,1,1, - 1,1,1,1,1,1,1,1689,1,2707, - 1,143,2448,5381,1,1,1,1,1,5370, - 5370,5023,5020,5551,5414,1981,1125,2784,3473,2206, - 3384,2708,3070,2765,1559,2759,3293,2737,5370,5335, - 5308,5308,5308,5308,5308,5342,5308,5308,1,5339, + 1,1,1293,1,1,1,1,1,1,1, + 1,1,1,1,1,1,422,1,1,1, + 1,1555,5542,1,2703,118,2444,5377,1,1, + 5366,3719,5795,5796,5797,3062,1121,2780,3275,2202, + 3120,2704,3066,2761,1512,2755,3343,2733,5366,5331, + 5304,5304,5304,5304,5304,5338,5304,5304,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,5335,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,3685, 1,1,1,1,1,1,1,1,1,1, - 1,1,5370,1,1,1,1,1,1,1, - 1,1,1,1,1689,1,2707,1,5370,2448, - 5381,1,1,1,1,1,5370,5370,5023,5020, - 5551,5414,2293,1125,2784,3473,2206,3384,2708,3070, - 2765,1559,2759,3293,2737,5370,5335,5308,5308,5308, - 5308,5308,5342,5308,5308,1,5339,1,1,1, + 1,1,1,132,1,1,1,1,1555,5542, + 1,2703,588,2444,5377,1,1,5366,3695,3637, + 392,5380,5381,1121,2780,3275,2202,3120,2704,3066, + 2761,1512,2755,3343,2733,5366,5331,5304,5304,5304, + 5304,5304,5338,5304,5304,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,5370, + 5335,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,5366,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1689,1,2707,1,5370,2448,5381,1,1, - 1,1,1,5370,5041,5038,348,5551,813,1126, - 1125,2784,3473,2206,3384,2708,3070,2765,1559,2759, - 3293,2737,5370,5335,5308,5308,5308,5308,5308,5342, - 5308,5308,1,5339,1,1,1,1,1,1, + 1904,1,1,1,1,1555,5542,1,2703,117, + 2444,5377,1,1,5366,3719,5366,5380,5381,5366, + 1121,2780,3275,2202,3120,2704,3066,2761,1512,2755, + 3343,2733,5366,5331,5304,5304,5304,5304,5304,5338, + 5304,5304,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5335,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,35,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1297,1,1,1, - 1,1,1,1,1,1,1,1,1689,1, - 2707,1,304,2448,5381,1,1,1,1,1, - 117,5370,5673,320,5551,5029,5026,1125,2784,3473, - 2206,3384,2708,3070,2765,1559,2759,3293,2737,5370, - 5335,5308,5308,5308,5308,5308,5342,5308,5308,1, - 5339,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,3470,1, + 1,1,1,5366,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5762,1,1, + 1,1,1555,5542,1,2703,452,2444,5377,1, + 1,5366,3695,3637,5366,5037,5034,1121,2780,3275, + 2202,3120,2704,3066,2761,1512,2755,3343,2733,5366, + 5331,5304,5304,5304,5304,5304,5338,5304,5304,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1297,1,1,1,1,1,1, - 1,1,1,1,1,1689,1,2707,1,137, - 2448,5381,1,1,1,1,1,127,592,45, - 4057,5551,4079,5414,1125,2784,3473,2206,3384,2708, - 3070,2765,1559,2759,3293,2737,5370,5335,5308,5308, - 5308,5308,5308,5342,5308,5308,1,5339,1,1, + 1,1,1,1,5335,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,438,1,1,1,1, + 5147,1,1,1,1,1,1,1,1,1, + 1,1,1,1,133,1,1,1,1,1555, + 5542,1,2703,588,2444,5377,1,1,5366,5380, + 5381,502,30,3062,1121,2780,3275,2202,3120,2704, + 3066,2761,1512,2755,3343,2733,5366,5331,5304,5304, + 5304,5304,5304,5338,5304,5304,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5370,1,1,1,1,1,1,1,1,1, - 1,1,1689,1,2707,1,135,2448,5381,1, - 1,1,1,1,5370,2987,3013,349,5551,5032, - 5370,1125,2784,3473,2206,3384,2708,3070,2765,1559, - 2759,3293,2737,5370,5335,5308,5308,5308,5308,5308, - 5342,5308,5308,1,5339,1,1,1,1,1, + 1,5335,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5025,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,1297,1,1, - 1,1,1,1,1,1,1,1,1,1689, - 1,2707,1,125,2448,5381,1,1,1,1, - 1,120,5370,2503,2475,5551,3603,3578,1125,2784, - 3473,2206,3384,2708,3070,2765,1559,2759,3293,2737, - 5370,5335,5308,5308,5308,5308,5308,5342,5308,5308, - 1,5339,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5370, + 1,3078,1,1,1,1,1555,5542,1,2703, + 451,2444,5377,1,1,5366,5019,5016,122,5405, + 5366,1121,2780,3275,2202,3120,2704,3066,2761,1512, + 2755,3343,2733,5366,5331,5304,5304,5304,5304,5304, + 5338,5304,5304,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5335,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,1689,1,2707,1, - 5370,2448,5381,1,1,1,1,1,54,5041, - 5038,4057,5551,4079,5370,1125,2784,3473,2206,3384, - 2708,3070,2765,1559,2759,3293,2737,5370,5335,5308, - 5308,5308,5308,5308,5342,5308,5308,1,5339,1, + 1,1,1,1,5150,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5366,1, + 1,1,1,1555,5542,1,2703,101,2444,5377, + 1,1,112,49,5037,5034,2983,3009,1121,2780, + 3275,2202,3120,2704,3066,2761,1512,2755,3343,2733, + 5366,5331,5304,5304,5304,5304,5304,5338,5304,5304, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,452,1,1,1, + 1,1,1,1,1,5335,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,1689,1,2707,1,5370,2448,5381, - 1,1,1,1,1,293,5389,5390,5370,5551, - 5035,4751,1125,2784,3473,2206,3384,2708,3070,2765, - 1559,2759,3293,2737,5370,2730,1,1,1,1, - 1,2731,1,1,1,5379,1,1,1,1, + 1,4282,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5366,1,1,1,1, + 1555,5542,1,2703,5366,2444,5377,1,1,289, + 5380,5381,4053,434,4075,1121,2780,3275,2202,3120, + 2704,3066,2761,1512,2755,3343,2733,5366,5331,5304, + 5304,5304,5304,5304,5338,5304,5304,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5370,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,437,1, + 1,1,5335,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5028,1, 1,1,1,1,1,1,1,1,1,1, - 1689,1,2707,1,359,2448,5381,1,1,1, - 1,1,141,396,5023,5020,5551,5414,506,1125, - 2784,3473,2206,3384,2708,3070,2765,1559,2759,3293, - 2737,45,5023,5020,4459,2070,3881,3947,5002,2746, - 3969,912,45,5632,3925,3903,5639,5637,5646,5645, - 5641,5642,5640,5643,5644,5647,5638,4013,3991,5395, - 53,628,955,1016,5397,990,3665,998,5398,5396, - 949,5635,5391,5393,5394,504,5392,5708,5709,5629, - 5636,5608,5634,5633,5630,5631,5609,3082,1336,1384, - 5767,5803,5804,5805,5370,5728,1032,5768,5769,5370, - 5224,5224,234,5220,234,234,5228,234,234,1, - 234,1,1176,337,1,1,1,1,1,1, - 1,1,1,1,1,44,5050,5047,5217,229, - 5044,5370,5370,2746,346,45,45,2868,5414,1, - 1508,5632,145,5701,3379,1,1,1,1,1, - 1,1,1,1,1,2687,5370,565,1,5708, - 5709,5370,1990,5382,1,1,1,5370,5378,5635, - 415,5781,234,5370,5374,5708,5709,5629,5636,5608, - 5634,5633,5630,5631,5609,131,5868,346,5023,5020, - 2379,2070,731,1508,1297,2746,5701,388,5370,778, - 1991,3239,5803,5804,5805,5370,5224,5224,234,5220, - 234,234,5273,234,234,1,234,1,5381,145, + 1,1,442,1,1,1,1,1555,5542,1, + 2703,5366,2444,5377,1,1,37,5298,5295,5366, + 8673,8001,1121,2780,3275,2202,3120,2704,3066,2761, + 1512,2755,3343,2733,5366,2726,1,1,1,1, + 1,2727,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5375, 1,1,1,1,1,1,1,1,1,1, - 1,994,5377,119,5217,1,5013,5009,5264,5017, - 5270,5139,5380,5267,2255,1,5379,1297,139,3347, - 230,1,1,1,1,1,1,1,1,1, - 1,2687,5632,565,1,142,43,5157,5157,136, - 1,1,1,2987,3013,45,414,5781,234,5414, - 39,1508,191,5145,5701,5373,5145,5145,1822,5145, - 5635,5145,5868,5145,5145,5412,5708,5709,5629,5636, - 5608,5634,5633,5630,5631,5609,5145,5145,5803,5804, - 5805,5370,5013,5009,4381,5017,731,5288,395,2746, - 5285,2255,388,4057,5145,4079,3347,1779,1736,1693, - 1650,1607,1564,1521,1478,1435,1392,1,5163,5163, - 5145,5160,5370,1508,364,5370,5701,2327,5145,5145, - 5145,5145,5376,5145,5145,368,5013,5009,2379,5017, - 731,1,1327,2746,1,1176,2503,2475,5145,5145, - 5145,5145,5145,5145,5145,5145,5145,5145,5145,5145, - 5145,5145,5145,5370,2032,5370,5145,5145,5145,5145, - 5145,5145,5145,5145,5145,5145,5145,5145,5145,5370, - 5145,2704,5169,5370,5361,5169,5169,1,5169,404, - 5169,364,5169,5169,5370,1297,5258,5003,3190,5375, - 5261,5370,5389,5390,1038,5169,5169,3417,364,5370, - 5023,5020,4381,2070,731,1508,557,2746,5701,5370, - 5041,5038,5370,5169,1,5013,5009,2379,5017,731, - 5370,5053,2746,1,5013,5009,4381,5017,731,5169, - 312,2746,314,371,312,2111,5006,5169,5169,5169, - 5169,1998,5169,5169,312,5013,5009,4381,5017,731, - 5288,5370,2746,5285,4035,1070,3437,5169,5169,5169, - 5169,5169,5169,5169,5169,5169,5169,5169,5169,5169, - 5169,5169,4035,1070,1297,5169,5169,5169,5169,5169, - 5169,5169,5169,5169,5169,5169,5169,5169,5056,5169, - 1,5013,5009,4459,5017,3881,3947,426,2746,3969, - 5175,1082,1133,3925,3903,5202,5208,5181,5184,5196, - 5193,5199,5190,5187,5178,5205,4013,3991,5395,369, - 628,955,1016,5397,990,3665,998,5398,5396,949, - 118,5391,5393,5394,5370,5392,1,5013,5009,4381, - 5017,731,43,1,2746,1,2868,1336,322,5370, - 5053,144,167,45,45,42,5302,5299,514,45, - 5023,5020,4459,2070,3881,3947,5364,2746,3969,918, - 3689,5412,3925,3903,5639,5637,5646,5645,5641,5642, - 5640,5643,5644,5647,5638,4013,3991,5395,1210,628, - 955,1016,5397,990,3665,998,5398,5396,949,363, - 5391,5393,5394,1297,5392,5370,5370,1,1297,2032, - 2868,5370,5023,5020,342,5414,1336,5056,5382,167, - 4057,5348,4079,147,5023,5020,4459,2070,3881,3947, - 5377,2746,3969,918,2066,456,3925,3903,5639,5637, - 5646,5645,5641,5642,5640,5643,5644,5647,5638,4013, - 3991,5395,2293,628,955,1016,5397,990,3665,998, - 5398,5396,949,508,5391,5393,5394,1297,5392,2745, - 442,1,1,5381,1,342,5148,342,5370,5148, - 1336,342,5370,8679,8318,5378,45,45,1,5013, - 5009,4459,5017,3881,3947,5151,2746,3969,5175,5370, - 5370,3925,3903,5202,5208,5181,5184,5196,5193,5199, - 5190,5187,5178,5205,4013,3991,5395,5370,628,955, - 1016,5397,990,3665,998,5398,5396,949,342,5391, - 5393,5394,797,5392,5370,49,5214,5214,35,1, - 5013,5009,2379,5017,731,1336,1,2746,5370,5377, - 389,45,45,45,5023,5020,4459,2070,3881,3947, - 5345,2746,3969,918,5211,5370,3925,3903,5639,5637, - 5646,5645,5641,5642,5640,5643,5644,5647,5638,4013, - 3991,5395,1327,628,955,1016,5397,990,3665,998, - 5398,5396,949,2936,5391,5393,5394,5370,5392,1297, - 1,5013,5009,4381,5017,731,5370,1,2746,4849, - 1336,422,5370,5370,5329,5348,45,5023,5020,4459, - 2070,3881,3947,5345,2746,3969,918,5370,5370,3925, - 3903,5639,5637,5646,5645,5641,5642,5640,5643,5644, - 5647,5638,4013,3991,5395,1,628,955,1016,5397, - 990,3665,998,5398,5396,949,4852,5391,5393,5394, - 5370,5392,5370,5023,5020,2016,2070,5172,45,5381, - 2746,1327,5414,1336,4353,1,3239,455,5348,45, - 5023,5020,4459,2070,3881,3947,5374,2746,3969,918, - 5370,931,3925,3903,5639,5637,5646,5645,5641,5642, - 5640,5643,5644,5647,5638,4013,3991,5395,2836,628, - 955,1016,5397,990,3665,998,5398,5396,949,1327, - 5391,5393,5394,5370,5392,45,5023,5020,4459,2070, - 3881,3947,132,2746,3969,918,5730,5154,3925,3903, - 5639,5637,5646,5645,5641,5642,5640,5643,5644,5647, - 5638,4013,3991,5395,5370,628,955,1016,5397,990, - 3665,998,5398,5396,949,140,5391,5393,5394,163, - 5392,5370,1,5370,3453,2291,2613,5837,5831,5370, - 134,5835,1336,3352,5370,5829,5830,5370,5370,5023, - 5020,5380,2070,5172,5370,5379,2746,5373,5860,5861, - 5142,770,5838,35,388,388,5243,388,388,5243, - 5243,388,5243,130,5243,388,5840,2392,1,5013, - 5009,5264,5017,5270,2613,5370,5267,2559,2532,5370, - 5023,5020,1276,2070,731,1500,1510,2746,2024,1865, - 5841,5839,5862,388,5370,8679,8318,5029,5246,388, - 388,388,388,388,388,388,388,388,388,106, - 5851,5850,5863,5243,2327,5832,5833,5856,5857,5854, - 5855,5834,5836,5858,5859,2559,2532,5243,5864,513, - 5844,5845,5846,5842,5843,5852,5853,5848,5847,5849, - 45,5023,5020,4459,2070,3881,3947,292,2746,3969, - 918,2987,3013,3925,3903,5639,5637,5646,5645,5641, - 5642,5640,5643,5644,5647,5638,4013,3991,5395,4286, - 628,955,1016,5397,990,3665,998,5398,5396,949, - 5370,5391,5393,5394,97,5392,138,5166,45,5023, - 5020,4459,2070,3881,3947,592,2746,3969,918,874, - 1774,3925,3903,5639,5637,5646,5645,5641,5642,5640, - 5643,5644,5647,5638,4013,3991,5395,1249,628,955, - 1016,5397,990,3665,998,5398,5396,949,5370,5391, - 5393,5394,1024,5392,45,5023,5020,4782,2070,3881, - 3947,5370,2746,3969,918,1336,5370,3925,3903,5639, - 5637,5646,5645,5641,5642,5640,5643,5644,5647,5638, - 4013,3991,5395,1,628,955,1016,5397,990,3665, - 998,5398,5396,949,5370,5391,5393,5394,1516,5392, - 45,5023,5020,4459,2070,3881,3947,5370,2746,3969, - 918,5370,5370,3925,3903,5639,5637,5646,5645,5641, - 5642,5640,5643,5644,5647,5638,4013,3991,5395,5880, - 628,955,1016,5397,990,3665,998,5398,5396,949, - 4212,5391,5393,5394,1,5392,45,5023,5020,4459, - 2070,3881,3947,54,2746,3969,918,5390,3275,3925, - 3903,5639,5637,5646,5645,5641,5642,5640,5643,5644, - 5647,5638,4013,3991,5395,5809,628,955,1016,5397, - 990,3665,998,5398,5396,949,5370,5391,5393,5394, - 424,5392,5370,5023,5020,242,5414,5390,5237,43, - 5157,5157,573,81,5632,1981,3758,5639,5637,5646, - 5645,5641,5642,5640,5643,5644,5647,5638,5370,5023, - 5020,45,2070,731,1,5414,2746,121,5412,5438, - 5439,5332,5635,3723,1,4311,5370,4860,5708,5709, - 5629,5636,5608,5634,5633,5630,5631,5609,5370,5389, - 5390,5767,246,5132,5128,5382,5136,1032,5768,5769, - 4183,3162,573,2406,5083,5370,5370,5119,5125,5098, - 5101,5113,5110,5116,5107,5104,5095,5122,5370,5370, - 5234,5231,38,389,389,5240,389,389,5240,5240, - 389,5240,5074,5240,389,5377,129,5370,5068,5065, - 5092,5071,5062,5077,5080,5089,5086,5059,5412,579, - 5381,5767,5370,8842,8842,446,5370,1032,5768,5769, - 3699,3641,389,659,5803,5804,5805,105,389,389, - 389,389,389,389,389,389,389,389,1908,5770, - 5370,5412,5240,228,443,45,45,5380,5414,5370, - 5255,5379,3477,5252,5370,5632,5240,3506,5639,5637, - 5646,5645,5641,5642,5640,5643,5644,5647,5638,5370, - 1,5308,5308,234,5308,234,234,5311,234,234, - 5370,234,8857,5635,2987,3013,294,2168,1127,5708, - 5709,5629,5636,5608,5634,5633,5630,5631,5609,5305, - 1,5308,5308,234,5308,234,234,234,234,234, - 4145,234,8857,1,5308,5308,234,5308,234,234, - 5323,234,234,1,234,8857,2861,5370,2707,5305, - 3509,2448,8,5003,98,1,1,5823,1,5367, - 5276,225,5305,5276,2024,101,45,45,4177,5414, - 304,5317,557,5370,5314,1994,2861,5868,2707,123, - 5673,2448,5370,5389,5390,3723,5370,731,418,2861, - 2746,2707,5370,133,2448,3528,1,5370,5370,122, - 1284,3770,5006,364,224,3723,5370,5868,5370,3779, - 1,5308,5308,234,5308,234,234,5311,234,234, - 5868,234,8857,5367,1,5308,5308,234,5308,234, - 234,5311,234,234,54,234,8857,2613,5389,5305, - 1,5308,5308,234,5308,234,234,234,234,234, - 5370,234,8857,5305,43,5157,5157,2119,5370,5157, - 672,5249,43,5157,5157,5370,2861,128,2707,5305, - 364,2448,3699,3641,51,5282,5282,5370,5389,557, - 2861,225,2707,3319,5376,2448,5370,364,2559,2532, - 5370,2976,3699,3641,41,225,2861,5868,2707,1, - 1,2448,3129,5279,79,109,5380,5376,3780,866, - 5379,5868,1,5308,5308,234,5308,234,234,234, - 234,234,5904,234,8857,447,311,5868,1,5308, - 5308,234,5308,234,234,234,234,234,2081,234, - 8857,5305,1,5370,5295,5291,5370,4868,5320,197, - 376,5375,519,197,231,2987,3013,5305,1,5370, - 1,5370,5370,3535,3066,526,5632,169,2861,5370, - 2707,232,5412,2448,5375,5370,283,5370,2554,5326, - 4809,5370,5370,5632,2861,4180,2707,5370,5370,2448, - 4828,4840,5370,5370,5635,2804,4159,2,5370,5868, - 5708,5709,5629,5636,5608,5634,5633,5630,5631,5609, - 5370,5635,1,2907,5370,5868,5370,5708,5709,5629, - 5636,5608,5634,5633,5630,5631,5609,5370,5370,5370, - 4847,4187,526,5370,169,3126,4421,5370,5370,5370, - 2447,43,3180,5370,5370,5370,5370,5370,5370,5370, - 5370,5370,5370,5370,3234,5370,5370,5370,5370,5370, - 5370,3535,1951,5370,5370,2802,5370,5370,5370,2802, - 5370,2802 + 1,1,1,1,1,1123,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5366, + 1,1,1,1,1555,5542,1,2703,5366,2444, + 5377,1,1,5366,5366,38,5153,5153,3372,1121, + 2780,3275,2202,3120,2704,3066,2761,1512,2755,3343, + 2733,40,5019,5016,4455,2066,3877,3943,5366,2742, + 3965,908,5631,5629,5638,5637,5633,5634,5632,5635, + 5636,5639,5630,5627,5700,5701,5403,5621,5628,5624, + 5600,5626,5625,5622,5623,5601,3921,3899,4009,3987, + 5759,5386,500,624,951,1022,5388,1012,3661,1020, + 5389,5387,945,5382,5384,5385,2077,5383,1028,5760, + 5761,5366,367,1332,5366,5220,5220,230,5216,230, + 230,5224,230,230,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,230, + 1,1,1,1,1,1,1,1,1,119, + 392,5019,5016,1,5405,5213,1,5009,5005,5260, + 5013,5266,3267,5376,5263,5366,225,5366,8673,8001, + 136,1,1,1,2683,5773,5366,561,5366,4998, + 226,5375,1129,134,3599,3574,411,230,5627,5700, + 5701,40,5621,5628,5624,5600,5626,5625,5622,5623, + 5601,5860,5627,5700,5701,5366,5621,5628,5624,5600, + 5626,5625,5622,5623,5601,2700,365,5795,5796,5797, + 5366,5220,5220,230,5216,230,230,5269,230,230, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,230,1,1,1,1, + 1,1,1,1,1,448,5366,5019,5016,1, + 5405,5213,34,5378,344,5141,5366,1122,5141,5141, + 1172,5141,333,5372,774,1,3235,1,1,1, + 2683,5773,2323,561,5366,4999,1206,5141,38,5153, + 5153,5370,410,230,1977,5700,5701,5141,5141,5141, + 5141,100,342,40,40,2864,5405,5860,1504,5366, + 5031,5693,384,140,5002,227,553,5141,5366,5380, + 5381,115,5377,5795,5796,5797,5141,5366,1293,5403, + 3449,5141,5141,5141,5141,5141,5141,5627,5700,5701, + 5371,5621,5628,5624,5600,5626,5625,5622,5623,5601, + 5141,5141,5141,5141,5141,5141,5141,5141,5141,5141, + 5141,5141,5141,5141,5141,2164,1293,5135,5141,5141, + 5141,5141,5141,5141,5141,5141,5141,5141,5141,5141, + 5141,5366,5141,1818,5165,4031,1066,5165,5165,5366, + 5165,44,5210,5210,114,342,5019,5016,2375,2066, + 727,1504,5369,2742,5693,5366,5165,38,5153,5153, + 1,4053,5153,4075,385,2251,5165,5165,5165,5165, + 3344,1775,1732,1689,1646,1603,1560,1517,1474,1431, + 1388,5366,5207,5366,228,140,5165,1977,5366,5019, + 5016,4377,2066,727,1504,5165,2742,5693,3315,5366, + 5165,5165,5165,5165,5165,5165,5627,5700,5701,1293, + 5621,5628,5624,5600,5626,5625,5622,5623,5601,5165, + 5165,5165,5165,5165,5165,5165,5165,5165,5165,5165, + 5165,5165,5165,5165,4053,30,4075,5165,5165,5165, + 5165,5165,5165,5165,5165,5165,5165,5165,5165,5165, + 5366,5165,5366,5304,5304,230,5304,230,230,5307, + 230,230,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,230,1,1, + 8715,1,1,1,1,1,1,2251,5366,5366, + 1323,1,3344,5301,308,5009,5005,4377,5013,727, + 5284,92,2742,5281,5162,126,5366,5366,418,1, + 1,1,2857,5578,5366,2703,316,2444,1,5022, + 127,2864,5366,5366,221,5049,364,5009,5005,2375, + 5013,727,1,5366,2742,1,5366,5230,5227,5860, + 5366,5304,5304,230,5304,230,230,230,230,230, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,230,1,1,8715,1, + 1,1,1,1,1,2609,113,5403,3375,1, + 1293,5301,1293,5366,5019,5016,5366,2066,5168,5138, + 1293,2742,5052,2983,3009,2020,1034,1,1,1, + 2857,5578,4349,2703,3235,2444,1,5009,5005,2375, + 5013,727,504,5049,2742,2555,2528,5366,5009,5005, + 4377,5013,727,5284,927,2742,5281,5860,5366,5304, + 5304,230,5304,230,230,5319,230,230,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,230,1,1,8715,1,1,1, + 1,1,1,355,125,135,4053,1,4075,5301, + 1293,5366,5019,5016,130,2066,5168,1,238,2742, + 5052,5233,793,5366,360,1,1,1,2857,5578, + 2028,2703,5366,2444,526,1,5159,5159,131,5156, + 220,1504,360,5366,5693,1,5009,5005,4377,5013, + 727,359,2388,2742,158,5860,5366,5304,5304,230, + 5304,230,230,5307,230,230,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,230,1,1,8715,1,1,1,1,1, + 1,360,2983,3009,5720,1,2462,5301,1,5009, + 5005,4377,5013,727,2323,308,2742,124,360,360, + 5366,2499,2471,1,1,1,2857,5578,2028,2703, + 5366,2444,2741,308,5366,1861,360,5374,221,1, + 5009,5005,2375,5013,727,2499,2471,2742,5366,8754, + 8754,48,2798,5860,5366,5304,5304,230,5304,230, + 230,5307,230,230,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,230, + 1,1,8715,1,1,1,1,1,1,5403, + 123,1,1380,1,4848,5301,1,5009,5005,4377, + 5013,727,5373,1293,2742,2983,3009,310,300,5366, + 2107,1,1,1,2857,5578,5376,2703,5665,2444, + 1,5009,5005,5260,5013,5266,221,300,5263,438, + 1,1,5366,1,5375,5144,391,5665,5144,5378, + 384,5860,5366,5304,5304,230,5304,230,230,230, + 230,230,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,230,1,1, + 8715,1,1,1,1,1,1,1078,2983,3009, + 4141,1,5366,5301,5366,5019,5016,3752,2066,727, + 5366,1323,2742,40,3402,1,5366,5405,5377,1, + 1,1,2857,5578,5366,2703,1,2444,5366,5019, + 5016,137,2066,727,290,3185,2742,439,40,40, + 1,5405,5366,5251,49,3473,5248,162,5381,5860, + 5366,5304,5304,230,5304,230,230,230,230,230, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,230,1,1,8715,1, + 1,1,1,1,1,1986,93,1,1,1, + 1,5301,5272,1,38,5272,96,40,40,5381, + 5405,3259,5313,4999,1990,5310,5722,1,1,1, + 2857,5578,5366,2703,162,2444,5795,5796,5797,39, + 5046,5043,5366,372,5040,5366,5366,2742,5366,5380, + 5381,1172,5002,727,553,5403,2742,5860,5366,5304, + 5304,230,5304,230,230,230,230,230,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,230,1,1,8715,1,1,1, + 1,1,1,5366,5037,5034,5366,1,40,5301, + 3413,3433,5405,33,385,385,5236,385,385,5236, + 5236,385,5236,5366,5366,1,1,1,2857,5578, + 2832,2703,5366,2444,1,385,385,385,5236,385, + 385,385,385,385,385,385,385,385,1,5009, + 5005,4455,5013,3877,3943,5860,2742,3965,5171,5198, + 5204,5177,5180,5192,5189,5195,5186,5183,5174,5201, + 4031,1066,2798,2062,5366,5380,5381,5236,4845,1323, + 5366,5378,2932,3921,3899,4009,3987,5236,5386,1323, + 624,951,1022,5388,1012,3661,1020,5389,5387,945, + 5382,5384,5385,40,5383,5366,5366,5405,3505,1504, + 1332,5366,5693,5374,3524,40,40,510,40,5019, + 5016,4455,2066,3877,3943,5360,2742,3965,914,5631, + 5629,5638,5637,5633,5634,5632,5635,5636,5639,5630, + 5377,38,5153,5153,46,5278,5278,5366,5291,5287, + 5366,121,1,3921,3899,4009,3987,5372,5386,5325, + 624,951,1022,5388,1012,3661,1020,5389,5387,945, + 5382,5384,5385,515,5383,509,1,990,5373,120, + 1332,5366,2972,5328,5344,5275,3599,3574,5403,5366, + 5373,142,5019,5016,4455,2066,3877,3943,5366,2742, + 3965,914,5631,5629,5638,5637,5633,5634,5632,5635, + 5636,5639,5630,1,3599,3574,1,5366,5377,5366, + 5372,4856,5366,522,5371,400,3921,3899,4009,3987, + 129,5386,5254,624,951,1022,5388,1012,3661,1020, + 5389,5387,945,5382,5384,5385,870,5383,5373,1, + 5257,5366,5366,1332,5366,5366,164,3766,40,40, + 1,5009,5005,4455,5013,3877,3943,1987,2742,3965, + 5171,5198,5204,5177,5180,5192,5189,5195,5186,5183, + 5174,5201,8,5366,288,2609,1994,5371,2012,5363, + 522,5872,2798,5366,5366,3921,3899,4009,3987,5242, + 5386,5376,624,951,1022,5388,1012,3661,1020,5389, + 5387,945,5382,5384,5385,5366,5383,414,1280,5375, + 5801,5815,1332,164,4173,2555,2528,40,40,40, + 5019,5016,4455,2066,3877,3943,5341,2742,3965,914, + 5631,5629,5638,5637,5633,5634,5632,5635,5636,5639, + 5630,5366,420,5366,5363,1245,3776,5366,5366,5366, + 3851,1,986,1,3921,3899,4009,3987,5376,5386, + 192,624,951,1022,5388,1012,3661,1020,5389,5387, + 945,5382,5384,5385,5366,5383,5375,2115,192,104, + 5366,1332,4176,5366,994,5344,40,5019,5016,4455, + 2066,3877,3943,5341,2742,3965,914,5631,5629,5638, + 5637,5633,5634,5632,5635,5636,5639,5630,5366,5366, + 5366,2550,1,4179,766,2864,5366,36,5366,338, + 5366,3921,3899,4009,3987,5366,5386,74,624,951, + 1022,5388,1012,3661,1020,5389,5387,945,5382,5384, + 5385,279,5383,5366,5322,5366,4805,5366,1332,3833, + 4178,5366,5344,40,5019,5016,4455,2066,3877,3943, + 5370,2742,3965,914,5631,5629,5638,5637,5633,5634, + 5632,5635,5636,5639,5630,2020,1293,5366,443,5366, + 3125,338,5316,338,5366,186,338,3759,3921,3899, + 4009,3987,5366,5386,307,624,951,1022,5388,1012, + 3661,1020,5389,5387,945,5382,5384,5385,5366,5383, + 40,5019,5016,4455,2066,3877,3943,5366,2742,3965, + 914,5631,5629,5638,5637,5633,5634,5632,5635,5636, + 5639,5630,1,338,5366,2287,49,5829,5823,5366, + 5380,5827,4824,5366,668,3921,3899,4009,3987,2800, + 5386,5366,624,951,1022,5388,1012,3661,1020,5389, + 5387,945,5382,5384,5385,4155,5383,5821,5822,5852, + 5853,5369,1332,862,5830,553,5366,5366,1,4836, + 2903,3122,5366,5366,1,4843,4183,5832,5366,5366, + 3176,5380,4417,5366,5366,5896,1272,5366,5366,1521, + 1549,5833,5831,5854,5366,5366,5366,5357,5366,5366, + 5366,5366,5366,5366,5366,5366,3230,2,2443,5366, + 5843,5842,5855,5366,5366,5824,5825,5848,5849,5846, + 5847,5826,5828,5850,5851,5366,128,5366,5856,5366, + 5836,5837,5838,5834,5835,5844,5845,5840,5839,5841, + 40,5019,5016,4455,2066,3877,3943,5366,2742,3965, + 914,5631,5629,5638,5637,5633,5634,5632,5635,5636, + 5639,5630,38,5366,3759,4276,1947,5366,5366,5366, + 5366,5366,5366,5366,5366,3921,3899,4009,3987,5366, + 5386,2609,624,951,1022,5388,1012,3661,1020,5389, + 5387,945,5382,5384,5385,5245,5383,40,5019,5016, + 4455,2066,3877,3943,1770,2742,3965,914,5631,5629, + 5638,5637,5633,5634,5632,5635,5636,5639,5630,5366, + 5366,2555,2528,5366,5366,5366,5366,5366,5366,5366, + 5366,5366,3921,3899,4009,3987,5366,5386,5366,624, + 951,1022,5388,1012,3661,1020,5389,5387,945,5382, + 5384,5385,5366,5383,5366,5366,5366,5366,5366,1332, + 40,5019,5016,4778,2066,3877,3943,5366,2742,3965, + 914,5631,5629,5638,5637,5633,5634,5632,5635,5636, + 5639,5630,5366,5366,5366,5366,5366,5366,5366,5366, + 5366,5366,5366,5366,5366,3921,3899,4009,3987,5366, + 5386,5366,624,951,1022,5388,1012,3661,1020,5389, + 5387,945,5382,5384,5385,5366,5383,40,5019,5016, + 4455,2066,3877,3943,5366,2742,3965,914,5631,5629, + 5638,5637,5633,5634,5632,5635,5636,5639,5630,5366, + 5366,5366,5366,5366,5366,5366,5366,5366,5366,5366, + 5366,5366,3921,3899,4009,3987,5366,5386,5366,624, + 951,1022,5388,1012,3661,1020,5389,5387,945,5382, + 5384,5385,5366,5383,40,5019,5016,4455,2066,3877, + 3943,5366,2742,3965,914,5631,5629,5638,5637,5633, + 5634,5632,5635,5636,5639,5630,5366,5366,5366,5366, + 5366,5366,5366,5366,5366,5366,5366,5366,5366,3921, + 3899,4009,3987,5366,5386,5366,624,951,1022,5388, + 1012,3661,1020,5389,5387,945,5382,5384,5385,5366, + 5383,5366,5019,5016,5366,5405,5366,5366,5366,5366, + 5366,569,5631,5629,5638,5637,5633,5634,5632,5635, + 5636,5639,5630,5627,5700,5701,5366,5621,5628,5624, + 5600,5626,5625,5622,5623,5601,5366,5366,5366,5366, + 5759,5366,5366,5366,5366,5366,5366,5366,5366,5366, + 5366,242,5128,5124,5366,5132,5366,5366,1028,5760, + 5761,569,5115,5121,5094,5097,5109,5106,5112,5103, + 5100,5091,5118,5070,5064,5061,5366,5088,5067,5079, + 5058,5073,5076,5085,5082,5055,5366,5366,5366,5366, + 5759,30,384,384,5239,384,384,5239,5239,384, + 5239,5366,76,5366,5366,3754,5366,5366,1028,5760, + 5761,5366,5366,384,384,384,5239,384,384,384, + 384,384,384,384,384,384,5366,5366,5366,5366, + 5366,5366,5366,5366,5366,5366,5366,5366,5366,5429, + 5430,5366,5366,5366,5366,5366,5025,5366,5366,5366, + 5366,5366,5366,5366,5366,5239,224,5366,5366,5366, + 5366,5366,5366,5366,5366,5239,2402,5631,5629,5638, + 5637,5633,5634,5632,5635,5636,5639,5630,5627,5700, + 5701,5366,5621,5628,5624,5600,5626,5625,5622,5623, + 5601,5366,5366,5366,5366,5366,5366,5366,5366,5366, + 5366,5366,5366,5366,5366,5366,5366,5366,575,5366, + 5366,5366,5366,5366,5366,5366,5366,5366,5366,5366, + 5366,5366,655 }; }; public final static char termAction[] = TermAction.termAction; @@ -1719,59 +1793,59 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface Asb { public final static char asb[] = {0, - 11,533,420,16,16,438,530,530,438,722, - 722,585,559,722,575,627,438,373,568,568, - 173,1,2,68,68,413,809,809,682,809, - 413,166,588,1079,1007,1018,556,1018,629,1018, - 631,1018,1002,1018,1081,413,1079,590,16,522, - 420,420,420,420,1081,522,357,168,374,374, - 374,374,374,374,374,374,374,812,818,823, - 820,827,825,832,830,834,833,835,277,836, - 373,373,214,850,594,594,420,809,217,217, - 806,214,901,809,809,217,413,1083,996,901, - 901,592,559,413,802,422,413,555,467,471, - 416,556,476,413,413,413,467,575,592,530, - 357,722,722,722,722,413,859,901,901,357, - 914,721,996,357,812,792,792,859,373,374, + 11,534,470,16,16,433,531,531,433,723, + 723,586,560,723,576,628,433,374,569,569, + 174,1,2,69,69,414,811,811,683,811, + 414,167,589,1082,1010,1021,557,1021,630,1021, + 632,1021,1005,1021,1084,414,1082,591,16,523, + 470,470,470,470,1084,523,358,169,375,375, + 375,375,375,375,375,375,375,814,820,825, + 822,829,827,834,832,836,835,837,278,838, + 374,374,215,852,595,595,470,811,218,218, + 808,215,903,811,811,218,414,1086,999,903, + 903,593,560,414,804,417,414,556,462,472, + 466,557,477,414,414,414,462,576,593,531, + 358,723,723,723,723,414,861,903,903,358, + 916,722,999,358,814,794,794,861,374,375, + 375,375,375,375,375,375,375,375,375,375, + 375,375,375,375,375,375,375,375,374,374, 374,374,374,374,374,374,374,374,374,374, - 374,374,374,374,374,374,374,374,373,373, - 373,373,373,373,373,373,373,373,373,373, - 374,594,594,217,217,1079,214,214,217,995, - 411,901,7,570,413,327,802,422,555,417, - 555,467,555,476,476,413,467,413,410,901, - 901,586,586,586,586,467,901,373,374,481, - 488,1025,1025,1081,168,214,721,373,901,410, - 412,410,901,214,820,820,818,818,818,825, - 825,825,825,823,823,830,827,827,833,832, - 834,647,835,901,901,586,585,586,806,586, - 1083,413,524,649,995,802,801,537,413,422, - 647,632,420,469,270,637,422,555,555,904, - 413,476,537,535,536,413,413,522,522,522, - 522,413,413,373,413,996,374,722,816,81, - 901,412,996,373,524,544,357,995,524,802, - 996,754,556,586,420,410,554,639,407,522, - 540,749,905,413,537,374,413,373,373,373, - 373,522,522,467,411,901,816,1079,1083,413, - 411,524,544,526,411,754,754,24,438,411, - 555,555,407,855,1079,118,374,647,122,904, - 413,1081,1081,413,901,901,901,901,859,859, - 413,816,817,816,373,81,275,812,1083,526, - 546,526,856,537,955,957,318,522,632,60, - 754,754,438,411,555,556,1081,639,407,374, - 374,413,413,413,901,901,1060,816,859,374, - 214,275,526,546,522,23,318,955,77,1081, - 537,585,856,556,337,540,413,522,413,413, - 817,901,214,595,24,754,856,121,855,901, - 1081,413,24,912,338,1081,413,859,571,754, - 373,128,407,856,413,413,912,337,647,374, - 647,856,336,522,522,522,338,522,413,284, - 856,856,413,556,901,722,537,901,537,556, - 413,856,329,522,329,338,647,338,357,357, - 355,799,357,856,856,125,912,537,128,856, - 649,338,901,407,901,355,318,522,901,912, - 128,901,901,1073,338,125,338,856,318,373, - 338,335,536,556,556,1075,373,336,859,856, - 901,854,127,338,901,856,854,854,338 + 375,595,595,218,218,1082,215,215,218,998, + 412,903,7,571,414,328,804,417,556,467, + 556,462,556,477,477,414,462,414,411,903, + 903,587,587,587,587,462,903,374,375,482, + 489,1028,1028,1084,169,215,722,374,903,411, + 413,411,903,215,822,822,820,820,820,827, + 827,827,827,825,825,832,829,829,835,834, + 836,648,837,903,903,587,586,587,808,587, + 1086,414,525,650,998,804,803,538,414,417, + 648,633,470,464,271,638,417,556,556,906, + 414,477,538,536,537,414,414,523,523,523, + 523,414,414,374,414,999,375,723,818,82, + 903,413,999,374,525,545,358,998,525,804, + 999,755,557,587,470,411,555,640,408,523, + 541,750,907,414,538,375,414,374,374,374, + 374,523,523,462,412,903,818,1082,1086,414, + 412,525,545,527,412,755,755,24,433,412, + 556,556,408,857,1082,119,375,648,123,906, + 414,1084,1084,414,903,903,903,903,861,861, + 414,818,819,818,374,82,276,814,1086,527, + 547,527,858,538,957,959,319,523,633,61, + 755,755,433,412,556,557,1084,640,408,375, + 375,414,414,414,903,903,1063,818,861,375, + 215,276,527,547,523,23,319,957,78,1084, + 538,586,858,557,338,541,414,523,414,414, + 819,903,215,596,24,755,858,122,857,903, + 1084,414,24,914,339,1084,414,861,572,755, + 374,129,408,858,414,414,914,338,648,375, + 648,858,337,523,523,523,339,523,414,285, + 858,858,414,557,903,723,538,903,538,557, + 414,858,330,523,330,339,648,339,358,358, + 356,801,358,858,858,126,914,538,129,858, + 650,339,903,408,903,356,319,523,903,914, + 129,903,903,1076,339,126,339,858,319,374, + 339,336,537,557,557,1078,374,337,861,858, + 903,856,128,339,903,858,856,856,339 }; }; public final static char asb[] = Asb.asb; @@ -1779,115 +1853,115 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface Asr { public final static byte asr[] = {0, - 3,68,69,70,121,60,7,74,91,0, - 59,10,29,72,0,68,69,70,121,1, - 2,0,62,59,46,17,65,49,18,50, - 51,19,20,52,53,21,22,54,66,55, - 67,23,40,24,47,25,16,15,48,7, - 3,9,6,11,58,61,87,12,29,8, - 1,2,5,4,10,56,0,75,3,68, - 73,91,70,74,11,60,7,62,69,0, - 92,90,13,14,93,94,88,89,68,95, - 96,97,98,99,100,101,102,107,91,108, - 109,110,111,112,113,114,115,116,117,118, - 74,71,1,2,4,9,6,73,60,44, - 3,7,70,11,69,0,71,57,26,27, - 9,6,13,14,30,35,3,4,41,45, - 42,43,28,38,33,37,16,25,15,21, - 19,20,22,23,18,17,24,10,32,36, - 34,31,39,62,7,8,5,1,2,64, - 63,0,63,64,3,10,32,36,34,31, - 39,16,25,15,21,19,20,22,23,18, - 17,24,41,45,42,43,28,38,33,37, - 5,8,4,26,27,9,6,13,14,30, - 35,1,2,118,7,0,48,15,16,59, - 46,31,63,17,32,65,49,12,33,18, - 50,51,19,20,52,64,53,34,21,22, - 35,54,36,66,37,57,38,55,39,67, - 23,40,24,47,25,41,42,43,28,3, - 26,27,9,6,13,14,30,68,45,8, - 1,2,4,10,5,0,68,73,91,70, - 118,74,71,15,16,31,63,17,32,33, - 18,19,20,64,34,21,22,35,36,37, - 57,38,39,10,23,24,25,41,42,43, - 28,26,27,13,14,30,45,7,9,11, - 5,8,1,2,4,3,6,0,87,103, - 104,105,29,73,119,122,71,72,75,58, - 56,61,77,79,85,83,76,81,82,84, - 86,62,78,80,11,7,48,59,46,65, - 49,12,50,51,52,53,54,66,55,67, - 40,47,57,63,64,10,32,36,34,31, - 39,16,25,15,21,19,20,22,23,18, - 17,24,41,45,42,43,28,38,33,37, - 26,27,13,14,30,35,9,6,3,4, - 8,5,1,2,0,4,7,73,62,44, - 0,87,56,8,103,104,105,58,7,3, - 9,6,5,73,71,11,72,48,15,16, - 59,46,17,65,49,12,18,50,51,19, - 20,52,53,21,22,54,66,55,10,67, - 23,40,24,47,25,4,1,2,29,0, - 4,7,73,62,0,1,2,7,71,0, - 7,73,118,74,11,70,0,48,15,16, - 46,17,49,12,18,50,51,19,20,52, - 8,53,21,22,54,55,23,40,24,47, - 25,1,2,7,60,9,6,5,4,74, - 11,3,0,46,47,57,7,91,74,68, - 70,69,121,0,69,70,71,7,0,7, - 62,70,0,46,47,57,3,68,91,69, - 70,74,11,75,73,62,7,0,9,6, - 3,8,5,60,4,1,2,68,69,91, - 74,7,70,0,7,74,121,1,2,9, - 6,4,3,60,70,68,0,5,8,3, - 60,6,9,91,48,15,16,46,17,65, - 49,12,18,50,51,19,20,52,53,21, - 22,54,66,55,10,67,23,40,24,47, - 25,1,2,4,74,7,59,0,29,73, - 4,62,7,1,2,0,11,7,5,8, - 3,1,2,4,6,9,73,0,48,15, - 16,59,46,17,65,49,12,18,50,51, - 19,20,52,53,21,22,54,66,55,10, - 67,23,40,24,47,25,1,2,4,91, - 0,64,63,13,14,6,93,94,99,9, - 100,5,30,69,44,68,111,112,108,109, - 110,116,115,117,89,88,113,114,97,98, - 95,96,101,102,26,27,70,90,106,60, - 3,48,15,16,59,46,17,65,49,12, - 18,50,51,19,20,52,53,21,22,54, - 66,55,10,67,23,24,47,25,1,2, - 4,40,0,61,48,15,16,59,46,17, - 65,49,87,12,18,50,51,19,20,52, - 56,53,21,22,54,66,55,10,67,23, - 58,40,24,47,25,7,3,9,6,71, - 11,8,4,29,5,1,2,0,76,0, - 57,46,8,47,5,1,2,4,75,62, - 121,120,106,26,27,60,3,92,90,6, - 93,94,13,14,89,88,44,95,96,97, - 98,9,99,100,101,68,91,74,69,108, - 109,110,111,112,113,114,115,116,117,73, - 118,102,107,71,70,11,7,0,15,16, - 31,63,17,32,33,18,19,20,64,8, - 34,21,22,35,36,37,57,38,39,10, - 23,24,25,41,42,43,28,1,2,3, - 26,27,9,6,13,14,5,30,4,45, - 74,7,0,40,1,2,4,103,104,105, - 0,119,0,63,64,26,27,9,6,13, - 14,5,30,35,3,4,8,41,45,42, - 43,38,33,37,16,25,15,21,19,20, - 22,23,18,17,24,10,32,36,34,31, - 39,60,1,2,28,0,59,46,17,65, - 49,18,50,51,19,20,52,53,21,22, - 54,66,55,10,67,23,40,24,47,25, - 16,15,48,7,3,9,11,58,56,61, - 87,12,44,4,6,8,5,29,1,2, - 0,10,65,59,66,67,16,25,15,21, - 19,20,22,23,18,17,24,75,73,91, - 118,71,62,121,120,92,106,90,26,27, - 13,14,93,94,88,89,44,68,95,96, - 97,98,99,100,101,102,107,69,108,109, - 110,111,112,113,114,115,116,117,70,48, - 46,49,12,50,51,52,53,54,55,40, - 47,11,7,74,3,60,5,8,6,9, - 1,2,4,0 + 3,69,70,71,121,64,7,74,91,0, + 39,10,41,61,0,69,70,71,121,1, + 2,0,66,39,23,13,57,27,14,29, + 30,15,16,31,32,17,18,33,58,34, + 59,19,22,20,24,21,12,11,26,7, + 3,9,6,25,63,65,87,28,61,41, + 8,1,2,5,4,10,60,0,75,3, + 69,73,91,71,74,25,64,7,66,70, + 0,92,90,35,36,93,94,88,89,69, + 95,96,97,98,99,100,101,102,107,91, + 108,109,110,111,112,113,114,115,116,117, + 118,74,72,1,2,4,9,6,73,64, + 55,3,7,71,25,70,0,72,62,37, + 38,9,6,35,36,42,47,3,4,52, + 56,53,54,40,50,45,49,12,21,11, + 17,15,16,18,19,14,13,20,10,44, + 48,46,43,51,66,7,8,5,1,2, + 68,67,0,67,68,3,10,44,48,46, + 43,51,12,21,11,17,15,16,18,19, + 14,13,20,52,56,53,54,40,50,45, + 49,5,8,4,37,38,9,6,35,36, + 42,47,1,2,118,7,0,26,11,12, + 39,23,43,67,13,44,57,27,28,45, + 14,29,30,15,16,31,68,32,46,17, + 18,47,33,48,58,49,62,50,34,51, + 59,19,22,20,24,21,52,53,54,40, + 3,37,38,9,6,35,36,42,69,56, + 8,1,2,4,10,5,0,69,73,91, + 71,118,74,72,11,12,43,67,13,44, + 45,14,15,16,68,46,17,18,47,48, + 49,62,50,51,10,19,20,21,52,53, + 54,40,37,38,35,36,42,56,7,9, + 25,5,8,1,2,4,3,6,0,87, + 103,104,105,41,73,119,122,72,61,75, + 63,60,65,77,79,85,83,76,81,82, + 84,86,66,78,80,25,7,26,39,23, + 57,27,28,29,30,31,32,33,58,34, + 59,22,24,62,67,68,10,44,48,46, + 43,51,12,21,11,17,15,16,18,19, + 14,13,20,52,56,53,54,40,50,45, + 49,37,38,35,36,42,47,9,6,3, + 4,8,5,1,2,0,87,60,8,103, + 104,105,63,7,3,9,6,5,73,72, + 25,61,26,11,12,39,23,13,57,27, + 28,14,29,30,15,16,31,32,17,18, + 33,58,34,10,59,19,22,20,24,21, + 4,1,2,41,0,4,7,73,66,55, + 0,4,7,73,66,0,1,2,7,72, + 0,7,73,118,74,25,71,0,26,11, + 12,23,13,27,28,14,29,30,15,16, + 31,8,32,17,18,33,34,19,22,20, + 24,21,1,2,7,64,9,6,5,4, + 74,25,3,0,23,24,62,7,91,74, + 69,71,70,121,0,70,71,72,7,0, + 7,66,71,0,23,24,62,3,69,91, + 70,71,74,25,75,73,66,7,0,9, + 6,3,8,5,64,4,1,2,69,70, + 91,74,7,71,0,7,74,121,1,2, + 9,6,4,3,64,71,69,0,5,8, + 3,64,6,9,91,26,11,12,23,13, + 57,27,28,14,29,30,15,16,31,32, + 17,18,33,58,34,10,59,19,22,20, + 24,21,1,2,4,74,7,39,0,41, + 73,4,66,7,1,2,0,25,7,5, + 8,3,1,2,4,6,9,73,0,26, + 11,12,39,23,13,57,27,28,14,29, + 30,15,16,31,32,17,18,33,58,34, + 10,59,19,22,20,24,21,1,2,4, + 91,0,68,67,35,36,6,93,94,99, + 9,100,5,42,70,55,69,111,112,108, + 109,110,116,115,117,89,88,113,114,97, + 98,95,96,101,102,37,38,71,90,106, + 64,3,26,11,12,39,23,13,57,27, + 28,14,29,30,15,16,31,32,17,18, + 33,58,34,10,59,19,20,24,21,1, + 2,4,22,0,65,26,11,12,39,23, + 13,57,27,87,28,14,29,30,15,16, + 31,60,32,17,18,33,58,34,10,59, + 19,63,22,20,24,21,7,3,9,6, + 72,25,61,8,4,41,5,1,2,0, + 76,0,62,23,8,24,5,1,2,4, + 75,66,121,120,106,37,38,64,3,92, + 90,6,93,94,35,36,89,88,55,95, + 96,97,98,9,99,100,101,69,91,74, + 70,108,109,110,111,112,113,114,115,116, + 117,73,118,102,107,72,71,25,7,0, + 11,12,43,67,13,44,45,14,15,16, + 68,8,46,17,18,47,48,49,62,50, + 51,10,19,20,21,52,53,54,40,1, + 2,3,37,38,9,6,35,36,5,42, + 4,56,74,7,0,22,1,2,4,103, + 104,105,0,119,0,67,68,37,38,9, + 6,35,36,5,42,47,3,4,8,52, + 56,53,54,50,45,49,12,21,11,17, + 15,16,18,19,14,13,20,10,44,48, + 46,43,51,64,1,2,40,0,39,23, + 13,57,27,14,29,30,15,16,31,32, + 17,18,33,58,34,10,59,19,22,20, + 24,21,12,11,26,7,3,9,25,63, + 60,65,87,28,61,55,4,6,8,5, + 41,1,2,0,10,57,39,58,59,12, + 21,11,17,15,16,18,19,14,13,20, + 75,73,91,118,72,66,121,120,92,106, + 90,37,38,35,36,93,94,88,89,55, + 69,95,96,97,98,99,100,101,102,107, + 70,108,109,110,111,112,113,114,115,116, + 117,71,26,23,27,28,29,30,31,32, + 33,34,22,24,25,7,74,3,64,5, + 8,6,9,1,2,4,0 }; }; public final static byte asr[] = Asr.asr; @@ -1897,57 +1971,57 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public final static char nasb[] = {0, 25,12,12,27,27,117,12,12,165,34, 34,12,97,5,156,12,165,57,12,12, - 79,23,23,23,23,220,12,12,135,12, + 79,23,23,23,23,217,12,12,135,12, 160,102,96,177,238,239,144,239,106,239, 63,239,232,12,10,160,177,155,27,12, 12,12,12,12,61,12,248,160,57,57, - 216,57,57,57,57,57,57,12,12,12, + 213,57,57,57,57,57,57,12,12,12, 12,12,12,12,12,12,12,12,57,12, 57,57,84,12,117,117,12,12,117,117, 76,84,264,12,12,117,11,12,44,264, 264,119,146,160,117,117,108,117,252,117, 12,144,117,252,160,11,12,180,119,12, - 248,34,34,34,34,160,204,264,264,1, - 57,67,44,248,12,17,17,204,129,57, + 248,34,34,34,34,160,201,264,264,1, + 57,67,44,248,12,17,17,201,129,57, 57,57,57,57,57,57,57,57,57,57, 57,57,57,57,57,57,57,57,57,57, 57,57,57,57,57,57,57,57,57,129, - 57,165,165,29,29,177,84,84,29,193, + 57,165,165,29,29,177,84,84,29,197, 102,264,12,12,160,12,170,241,117,117, - 15,49,15,117,221,11,49,108,101,264, + 15,49,15,117,218,11,49,108,101,264, 264,12,12,12,12,43,264,57,57,12, 12,12,12,10,160,84,34,39,264,101, 160,101,264,84,12,12,12,12,12,12, 12,12,12,12,12,12,12,12,12,12, 12,12,12,264,264,12,12,12,152,12, - 12,11,117,165,44,117,170,186,160,199, - 12,132,12,12,13,111,241,15,15,207, - 108,221,186,12,12,108,160,12,12,12, + 12,11,117,165,44,117,170,186,160,195, + 12,132,12,12,13,111,241,15,15,204, + 108,218,186,12,12,108,160,12,12,12, 12,108,11,57,160,44,57,34,117,46, - 264,188,44,57,117,117,29,193,170,170, + 264,190,44,57,117,117,29,197,170,170, 44,117,144,12,12,61,117,172,99,12, - 12,61,191,252,186,57,221,129,129,129, - 129,12,12,42,108,264,124,152,12,220, - 108,170,170,117,102,211,117,223,117,252, - 117,90,148,199,177,12,57,12,52,228, - 252,61,61,11,264,264,264,264,204,204, - 108,117,94,12,129,152,189,12,12,117, - 117,37,199,186,12,223,112,12,64,13, - 223,211,165,102,90,201,72,99,148,57, - 57,11,252,252,264,264,12,124,204,57, - 84,189,37,37,12,143,172,12,12,61, - 186,12,199,201,185,12,252,12,11,11, - 94,264,84,262,223,117,199,86,12,264, - 61,252,223,117,126,72,11,204,264,211, - 39,55,99,199,252,133,92,139,12,57, - 12,199,12,12,12,12,140,12,221,197, - 199,199,221,69,264,34,186,264,117,144, - 133,199,88,12,12,140,12,140,266,266, - 163,12,266,199,199,12,117,186,117,199, + 12,61,188,252,186,57,218,129,129,129, + 129,12,12,42,108,264,124,152,12,217, + 108,170,170,117,102,208,117,223,117,252, + 117,90,148,195,177,12,57,12,52,228, + 252,61,61,11,264,264,264,264,201,201, + 108,117,94,12,129,152,191,12,12,117, + 117,37,195,186,12,223,112,12,64,13, + 223,208,165,102,90,220,72,99,148,57, + 57,11,252,252,264,264,12,124,201,57, + 84,191,37,37,12,143,172,12,12,61, + 186,12,195,220,185,12,252,12,11,11, + 94,264,84,262,223,117,195,86,12,264, + 61,252,223,117,126,72,11,201,264,208, + 39,55,99,195,252,133,92,139,12,57, + 12,195,12,12,12,12,140,12,218,193, + 195,195,218,69,264,34,186,264,117,144, + 133,195,88,12,12,140,12,140,266,266, + 163,12,266,195,195,12,117,186,117,195, 34,140,264,99,264,255,117,12,264,92, - 55,264,264,117,140,12,140,199,99,129, - 140,88,186,69,69,97,57,12,259,199, - 264,168,54,140,264,199,168,12,140 + 55,264,264,117,140,12,140,195,99,129, + 140,88,186,69,69,97,57,12,259,195, + 264,168,54,140,264,195,168,12,140 }; }; public final static char nasb[] = Nasb.nasb; @@ -1973,11 +2047,11 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par 63,5,57,0,32,93,94,4,0,44, 2,0,39,176,4,22,0,158,0,61, 0,2,63,9,10,4,5,89,0,94, - 93,5,57,0,4,66,0,2,113,0, - 186,0,64,135,134,0,4,39,38,0, - 40,156,0,4,96,0,5,101,185,0, - 114,4,48,81,0,5,10,9,13,3, - 1,0,4,48,81,83,0,5,101,163, + 93,5,57,0,4,66,0,186,0,2, + 114,0,4,39,38,0,64,135,134,0, + 4,96,0,5,101,185,0,115,4,48, + 81,0,5,10,9,13,3,1,0,40, + 156,0,4,48,81,83,0,5,101,163, 0,2,5,120,116,117,118,13,86,0, 4,48,81,101,46,5,0,4,45,39, 0,2,56,0,45,4,175,0,4,173, @@ -1990,13 +2064,13 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface TerminalIndex { public final static char terminalIndex[] = {0, 113,114,2,31,13,10,115,79,9,100, - 120,66,11,12,48,52,60,68,74,75, - 86,87,102,105,107,7,8,112,93,14, - 55,61,67,84,88,90,94,97,99,104, - 109,110,111,19,123,54,106,47,64,70, - 73,76,83,89,98,77,95,103,53,1, - 46,121,58,78,63,91,101,20,33,44, - 119,122,30,118,96,108,49,50,56,57, + 48,52,60,68,74,75,86,87,102,105, + 107,104,54,106,120,47,64,66,70,73, + 76,83,89,98,11,12,7,8,53,112, + 93,14,55,61,67,84,88,90,94,97, + 99,109,110,111,19,123,63,91,101,77, + 122,95,103,1,46,121,58,78,20,33, + 44,119,30,118,96,108,49,50,56,57, 59,69,71,72,85,92,65,17,18,6, 32,4,15,16,21,22,23,24,25,26, 27,28,80,81,82,5,29,34,35,36, @@ -2009,26 +2083,26 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, - 132,137,138,0,0,136,0,0,229,235, - 135,0,145,134,0,0,144,150,0,0, - 151,181,160,161,162,163,164,165,166,153, - 167,127,168,143,169,170,0,129,133,130, - 171,0,140,139,154,179,0,0,0,0, - 0,0,0,147,174,0,157,0,204,0, - 188,201,205,0,0,128,173,0,0,0, - 0,0,0,206,177,0,0,0,0,0, - 0,126,131,0,0,187,0,0,202,212, - 159,208,209,210,0,0,148,0,0,207, - 220,176,197,0,0,211,0,0,0,0, - 240,241,149,180,0,190,191,192,193,194, + 131,136,137,0,0,135,0,0,229,235, + 134,0,144,133,0,0,143,149,0,0, + 150,181,159,160,161,162,163,164,165,152, + 166,127,167,142,168,169,0,129,132,130, + 170,0,139,138,153,178,0,0,0,0, + 0,0,0,146,173,0,156,0,204,0, + 188,201,205,0,0,128,172,0,0,0, + 0,0,0,206,176,0,0,0,0,0, + 0,126,179,0,0,187,0,0,202,212, + 158,208,209,210,0,0,147,0,0,207, + 220,175,197,0,0,211,0,0,0,0, + 240,241,0,148,180,190,191,192,193,194, 196,199,0,0,214,217,0,219,0,238, - 239,0,0,141,142,146,0,0,156,158, - 0,172,0,182,183,184,185,186,189,0, + 239,0,0,140,141,145,0,0,155,157, + 0,171,0,182,183,184,185,186,189,0, 195,0,198,203,0,215,216,0,0,221, 224,226,228,0,232,233,234,237,125,0, - 152,155,0,175,0,178,0,200,213,218, + 151,154,0,174,0,177,0,200,213,218, 0,222,223,225,227,0,230,231,236,242, - 243,0,0,0,0,0,0 + 243,0,0,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -2093,18 +2167,18 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface ScopeLa { public final static byte scopeLa[] = { - 119,74,74,74,74,74,74,74,71,11, - 71,71,68,1,74,122,62,3,74,68, - 68,68,1,1,11,71,62,71,71,1, - 1,71,1,1,4,68,70,11,1,1, - 68,74,74,74,119,74,1,11,1,1, - 1,11,11,71,118,74,74,74,74,74, + 119,74,74,74,74,74,74,74,72,25, + 72,72,69,1,74,122,66,3,74,69, + 69,69,1,1,25,72,66,72,72,1, + 1,72,1,1,4,69,71,25,1,1, + 69,74,74,74,119,74,1,25,1,1, + 1,25,25,72,118,74,74,74,74,74, 118,1,74,1,74,74,74,73,4,74, - 68,68,68,68,74,3,1,1,74,74, - 3,1,118,74,1,1,1,11,74,118, - 74,5,74,1,29,69,73,74,1,1, - 6,1,29,76,75,11,11,4,4,4, - 4,3,1,62,1,1,3 + 69,69,69,69,74,3,1,1,74,74, + 3,1,118,74,1,1,1,25,74,118, + 74,5,74,1,41,70,73,74,1,1, + 6,1,41,76,75,25,25,4,4,4, + 4,3,1,66,1,1,3 }; }; public final static byte scopeLa[] = ScopeLa.scopeLa; @@ -2131,19 +2205,19 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface ScopeRhs { public final static char scopeRhs[] = {0, - 314,3,57,0,127,0,313,3,119,0, - 127,174,0,127,178,75,0,216,0,252, - 127,44,125,0,20,0,291,127,44,29, - 0,20,53,0,33,134,0,20,53,0, - 0,291,127,44,29,204,0,20,131,0, - 252,127,44,133,0,179,128,0,143,0, + 314,3,62,0,127,0,313,3,119,0, + 127,173,0,127,178,75,0,216,0,252, + 127,55,125,0,20,0,291,127,55,41, + 0,20,53,0,33,133,0,20,53,0, + 0,291,127,55,41,204,0,20,179,0, + 252,127,55,133,0,179,128,0,142,0, 219,3,290,0,290,0,2,0,127,0, - 252,127,44,132,0,179,128,224,0,179, - 128,40,224,0,179,128,309,40,0,129, + 252,127,55,132,0,179,128,224,0,179, + 128,22,224,0,179,128,309,22,0,129, 187,167,128,0,129,0,187,167,128,0, - 136,129,0,171,0,305,127,171,0,127, - 171,0,222,129,0,167,243,0,138,0, - 0,0,137,0,0,0,304,127,163,251, + 135,129,0,171,0,305,127,171,0,127, + 171,0,222,129,0,167,243,0,137,0, + 0,0,136,0,0,0,304,127,163,251, 0,128,0,251,0,130,0,0,128,0, 303,127,163,250,0,128,0,0,44,128, 0,0,153,3,0,127,279,278,127,75, @@ -2153,47 +2227,47 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par 0,278,127,277,171,0,215,0,203,0, 0,215,0,227,127,3,0,127,0,0, 0,0,0,227,127,3,216,0,223,3, - 0,212,127,0,208,0,148,0,167,128, - 0,10,0,0,0,214,60,0,126,0, + 0,212,127,0,208,0,147,0,167,128, + 0,10,0,0,0,214,64,0,126,0, 227,127,3,182,0,182,0,2,0,0, 127,0,0,0,0,0,198,3,0,201, - 0,238,127,163,28,12,0,179,128,56, - 58,0,197,129,0,129,179,128,275,58, - 0,179,128,275,58,0,179,128,69,124, - 56,0,238,127,163,56,0,238,127,163, - 226,56,0,273,127,163,124,65,0,273, - 127,163,65,0,179,128,65,0,137,0, - 187,179,128,243,0,138,0,179,128,243, + 0,236,127,163,40,28,0,179,128,60, + 63,0,197,129,0,129,179,128,275,63, + 0,179,128,275,63,0,179,128,70,124, + 60,0,236,127,163,60,0,236,127,163, + 226,60,0,273,127,163,124,57,0,273, + 127,163,57,0,179,128,57,0,136,0, + 187,179,128,243,0,137,0,179,128,243, 0,187,167,128,10,0,167,128,10,0, - 93,138,0,266,127,145,0,266,127,171, + 93,137,0,266,127,145,0,266,127,171, 0,162,85,0,296,161,298,299,3,82, - 0,127,173,0,298,299,3,82,0,129, - 0,127,173,0,162,3,76,190,81,0, - 127,129,0,190,81,0,108,2,133,127, + 0,127,172,0,298,299,3,82,0,129, + 0,127,172,0,162,3,76,190,81,0, + 127,129,0,190,81,0,108,2,132,127, 129,0,225,3,76,0,198,168,0,33, - 171,0,168,0,177,33,171,0,225,3, - 86,0,190,155,225,3,84,0,62,173, - 0,225,3,84,0,127,173,62,173,0, + 170,0,168,0,176,33,170,0,225,3, + 86,0,190,155,225,3,84,0,62,172, + 0,225,3,84,0,127,172,62,172,0, 297,127,163,0,162,0,214,78,0,30, - 173,0,162,107,159,0,30,171,0,177, - 3,0,127,151,0,219,3,0,214,60, - 263,0,162,60,0,177,3,293,64,128, - 0,127,0,0,0,0,293,64,128,0, - 2,147,127,0,0,0,0,177,3,35, - 0,149,0,126,29,167,128,0,31,149, - 0,93,138,31,149,0,220,179,128,0, - 148,31,149,0,177,3,39,0,162,3, - 39,0,162,3,68,177,44,31,0,177, - 44,31,0,20,2,133,127,0,162,3, - 68,177,44,34,0,177,44,34,0,162, - 3,68,177,44,36,0,177,44,36,0, - 162,3,68,177,44,32,0,177,44,32, + 172,0,162,107,159,0,30,170,0,177, + 3,0,127,150,0,219,3,0,214,64, + 263,0,162,64,0,177,3,293,68,128, + 0,127,0,0,0,0,293,68,128,0, + 2,146,127,0,0,0,0,177,3,47, + 0,148,0,126,41,167,128,0,31,148, + 0,93,137,31,148,0,220,179,128,0, + 147,31,148,0,177,3,51,0,162,3, + 51,0,162,3,69,177,55,43,0,177, + 55,43,0,20,2,132,127,0,162,3, + 69,177,55,46,0,177,55,46,0,162, + 3,69,177,55,48,0,177,55,48,0, + 162,3,69,177,55,44,0,177,55,44, 0,219,3,126,187,167,128,10,0,126, - 187,167,128,10,0,138,2,0,127,0, + 187,167,128,10,0,137,2,0,127,0, 219,3,125,256,167,128,10,0,256,167, - 128,10,0,137,2,0,127,0,219,3, - 136,0,219,3,140,0,162,60,140,0, - 258,0,31,0,31,141,0,166,0,136, + 128,10,0,136,2,0,127,0,219,3, + 136,0,219,3,140,0,162,64,140,0, + 258,0,31,0,31,140,0,166,0,135, 0,162,3,0 }; }; @@ -2202,38 +2276,38 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface ScopeState { public final static char scopeState[] = {0, - 4651,4847,4840,4828,0,1732,1611,1431,1568,0, - 3504,3450,3396,3342,3288,3234,3180,3126,3070,2748, - 2671,2907,0,1340,0,2804,1127,0,3504,3450, - 2912,2716,3396,3342,3288,3234,3180,3126,1125,3070, - 2748,2671,4158,3385,0,1930,1904,725,0,2761, - 2151,0,2951,2670,0,4183,3689,0,3053,2654, - 0,4548,4449,0,4548,4449,3765,4353,4283,3755, - 4271,4189,4177,3745,0,4548,4449,3765,4353,4283, - 3755,4271,4189,4177,3745,3504,3450,3396,3342,3288, - 3234,3180,3126,3070,2748,2671,0,3352,3190,0, - 659,579,0,1070,0,2640,4576,4339,3474,4509, - 2870,3039,924,3211,2869,3075,2846,2668,3147,723, - 0,4741,4727,4716,4702,4691,4677,4666,4641,4799, - 4791,4776,4618,4614,4603,4764,4294,4557,4500,4172, - 2732,4245,2424,2887,0,535,4445,2837,0,4576, - 3053,4509,2654,2846,2822,3628,4407,4159,2640,4145, - 4381,3039,2379,2357,0,4741,3365,4727,3311,2876, - 4716,4702,4691,1380,3402,624,4677,4666,3319,3066, - 2976,4641,3158,4799,2947,4791,2892,2864,4776,2375, - 4618,4614,1384,4603,4764,3257,4294,4557,4500,735, - 4172,3212,2732,4245,4445,2424,2887,731,2837,2676, - 2244,2157,2070,2822,3628,4407,4159,2640,4576,4145, - 3053,4509,4381,3039,2654,2392,931,797,659,579, - 2846,2379,2357,3665,4123,4101,2255,2293,2327,1176, - 2503,2475,592,3013,2987,2613,2586,2559,2532,3723, - 3699,3641,3603,3578,4079,4057,4035,4013,3991,3969, - 3947,3925,3903,3881,628,1951,2206,2168,2119,2081, - 2032,1994,874,1908,1865,1254,819,740,685,1822, - 1779,1736,1693,1650,1607,1564,1521,1478,1435,1392, - 535,1210,1133,1336,1297,1038,994,951,1082,0, - 1042,870,784,583,3075,2846,2822,2868,2379,2370, - 2357,0,3240,3239,3073,614,0 + 4647,4843,4836,4824,0,1685,1607,1427,1564,0, + 3500,3446,3392,3338,3284,3230,3176,3122,3066,2744, + 2667,2903,0,1336,0,2800,1123,0,3500,3446, + 2908,2712,3392,3338,3284,3230,3176,3122,1121,3066, + 2744,2667,4480,4154,0,1926,1900,721,0,2757, + 2147,0,2947,2666,0,4179,3685,0,3049,2650, + 0,4544,4445,0,4544,4445,3761,4349,4279,3751, + 4267,4185,4173,3741,0,4544,4445,3761,4349,4279, + 3751,4267,4185,4173,3741,3500,3446,3392,3338,3284, + 3230,3176,3122,3066,2744,2667,0,3402,3372,0, + 655,575,0,1066,0,2636,4572,4335,3470,4505, + 2866,3035,920,3207,2865,3071,2842,2664,3143,719, + 0,4737,4723,4712,4698,4687,4673,4662,4637,4795, + 4787,4772,4614,4610,4599,4760,4290,4553,4496,4168, + 2728,4241,2420,2883,0,531,4441,2833,0,4572, + 3049,4505,2650,2842,2818,3624,4403,4155,2636,4141, + 4377,3035,2375,2353,0,4737,3361,4723,3307,2872, + 4712,4698,4687,1376,3398,620,4673,4662,3315,3062, + 2972,4637,3253,4795,2943,4787,2888,2860,4772,2371, + 4614,4610,1380,4599,4760,3208,4290,4553,4496,731, + 4168,3154,2728,4241,4441,2420,2883,727,2833,2672, + 2240,2153,2066,2818,3624,4403,4155,2636,4572,4141, + 3049,4505,4377,3035,2650,2388,927,793,655,575, + 2842,2375,2353,3661,4119,4097,2251,2289,2323,1172, + 2499,2471,588,3009,2983,2609,2582,2555,2528,3719, + 3695,3637,3599,3574,4075,4053,4031,4009,3987,3965, + 3943,3921,3899,3877,624,1947,2202,2164,2115,2077, + 2028,1990,870,1904,1861,1250,815,736,681,1818, + 1775,1732,1689,1646,1603,1560,1517,1474,1431,1388, + 531,1206,1129,1332,1293,1034,990,947,1078,0, + 1038,866,780,579,3071,2842,2818,2864,2375,2366, + 2353,0,3236,3235,3069,610,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2241,59 +2315,59 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface InSymb { public final static char inSymb[] = {0, - 0,292,29,10,59,44,230,230,127,69, - 69,291,145,127,168,68,70,69,223,198, - 60,216,217,186,182,5,125,132,8,133, + 0,292,41,10,39,55,230,230,127,70, + 70,291,145,127,168,69,71,70,223,198, + 64,216,217,186,182,5,125,132,8,133, 128,4,3,127,267,268,251,269,243,270, - 65,271,272,125,10,128,127,3,59,39, - 31,34,36,32,10,136,3,128,35,30, - 5,14,13,6,9,27,26,140,146,148, - 147,150,149,152,151,156,154,158,57,159, - 69,69,214,159,3,3,125,124,44,44, - 168,60,3,63,64,44,179,166,167,223, + 57,271,272,125,10,128,127,3,39,51, + 43,46,48,44,10,136,3,128,47,42, + 5,36,35,6,9,38,37,140,146,148, + 147,150,149,152,151,156,154,158,62,159, + 70,70,214,159,3,3,125,124,55,55, + 168,64,3,67,68,55,179,166,167,223, 198,127,212,128,6,163,167,230,128,126, 125,124,163,128,128,179,167,212,127,230, - 3,44,44,44,44,128,3,177,162,127, - 63,64,167,3,126,106,120,3,60,90, - 92,14,13,94,93,6,96,95,68,44, + 3,55,55,55,55,128,3,177,162,127, + 67,68,167,3,126,106,120,3,64,90, + 92,36,35,94,93,6,96,95,69,55, 88,89,9,98,97,100,99,101,117,116, - 115,114,113,112,111,110,109,108,69,107, - 102,127,127,127,127,127,60,60,127,4, + 115,114,113,112,111,110,109,108,70,107, + 102,127,127,127,127,127,64,64,127,4, 187,227,228,229,128,167,127,127,126,125, - 127,179,127,163,127,179,167,29,69,177, + 127,179,127,163,127,179,167,41,70,177, 162,177,177,177,177,167,219,127,155,265, - 136,126,125,10,128,60,293,3,177,29, - 128,29,219,162,147,147,146,146,146,149, + 136,126,125,10,128,64,293,3,177,41, + 128,41,219,162,147,147,146,146,146,149, 149,149,149,148,148,151,150,150,154,152, 156,162,158,227,227,252,254,252,212,252, - 258,187,155,70,167,6,184,304,128,169, - 224,56,29,204,58,171,306,127,127,73, - 187,127,273,124,274,187,128,68,68,68, - 68,187,256,70,128,167,205,3,294,168, - 153,179,167,73,155,155,70,4,127,127, - 167,163,226,44,29,275,277,127,3,182, - 308,224,40,128,273,69,70,3,3,3, - 3,126,125,167,29,177,127,127,220,5, - 29,127,127,221,187,127,163,68,44,128, - 75,127,212,305,127,125,73,285,198,70, - 128,40,309,179,162,162,162,162,3,3, - 187,155,260,263,60,180,4,124,126,221, - 221,127,129,238,12,29,171,61,56,58, - 237,127,127,179,127,278,73,70,212,73, - 69,179,128,128,219,219,126,127,3,60, - 162,4,127,127,57,28,127,3,124,56, - 238,291,129,278,163,289,128,290,179,179, - 260,219,214,3,127,163,266,198,276,28, - 69,128,68,279,127,70,179,3,314,127, - 3,69,70,155,128,179,127,297,80,78, + 258,187,155,71,167,6,184,304,128,169, + 224,60,41,204,63,171,306,127,127,73, + 187,127,273,124,274,187,128,69,69,69, + 69,187,256,71,128,167,205,3,294,168, + 153,179,167,73,155,155,71,4,127,127, + 167,163,226,55,41,275,277,127,3,182, + 308,224,22,128,273,70,71,3,3,3, + 3,126,125,167,41,177,127,127,220,5, + 41,127,127,221,187,127,163,69,55,128, + 75,127,212,305,127,125,73,285,198,71, + 128,22,309,179,162,162,162,162,3,3, + 187,155,260,263,64,180,4,124,126,221, + 221,127,129,236,28,41,171,65,60,63, + 238,127,127,179,127,278,73,71,212,73, + 70,179,128,128,219,219,126,127,3,64, + 162,4,127,127,62,40,127,3,124,60, + 236,291,129,278,163,289,128,290,179,179, + 260,219,214,3,127,163,266,198,276,40, + 70,128,69,279,127,71,179,3,314,127, + 3,70,71,155,128,179,127,297,80,78, 1,162,7,86,84,82,81,76,83,85, - 79,77,56,75,219,70,238,153,163,250, + 79,77,60,75,219,71,236,153,163,250, 179,226,280,119,7,73,214,73,3,3, 3,190,3,124,162,124,178,127,163,226, 3,73,225,168,225,299,145,76,225,127, 127,91,313,168,155,198,155,298,127,3, - 155,280,303,155,155,127,69,190,161,266, - 162,189,70,122,296,155,189,7,155 + 155,280,303,155,155,127,70,190,161,266, + 162,189,71,122,296,155,189,7,155 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2432,7 +2506,6 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par "}", ";", "{", - "declaration", "identifier_token", "expression", "id_expression", @@ -2483,6 +2556,7 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par "declarator", "for_init_statement", "function_definition", + "declaration", "declaration_seq", "declaration_specifiers", "simple_declaration_specifiers", @@ -2557,7 +2631,7 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public final String name(int index) { return name[index]; } public final static int - ERROR_SYMBOL = 72, + ERROR_SYMBOL = 61, SCOPE_UBOUND = 116, SCOPE_SIZE = 117, MAX_NAME_LENGTH = 37; @@ -2570,18 +2644,18 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public final static int NUM_STATES = 529, NT_OFFSET = 123, - LA_STATE_OFFSET = 5904, + LA_STATE_OFFSET = 5896, MAX_LA = 2147483647, - NUM_RULES = 534, - NUM_NONTERMINALS = 197, - NUM_SYMBOLS = 320, + NUM_RULES = 530, + NUM_NONTERMINALS = 195, + NUM_SYMBOLS = 318, SEGMENT_SIZE = 8192, - START_STATE = 614, + START_STATE = 610, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 121, EOLT_SYMBOL = 121, - ACCEPT_ACTION = 5002, - ERROR_ACTION = 5370; + ACCEPT_ACTION = 4998, + ERROR_ACTION = 5366; public final static boolean BACKTRACK = true; diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParsersym.java index 2c6b6b2295d..14172379c65 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParsersym.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParsersym.java @@ -15,97 +15,97 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp; public interface CPPTemplateTypeParameterParsersym { public final static int - TK_asm = 61, - TK_auto = 48, - TK_bool = 15, + TK_asm = 65, + TK_auto = 26, + TK_bool = 11, TK_break = 77, TK_case = 78, TK_catch = 119, - TK_char = 16, - TK_class = 59, - TK_const = 46, - TK_const_cast = 31, + TK_char = 12, + TK_class = 39, + TK_const = 23, + TK_const_cast = 43, TK_continue = 79, TK_default = 80, - TK_delete = 63, + TK_delete = 67, TK_do = 81, - TK_double = 17, - TK_dynamic_cast = 32, + TK_double = 13, + TK_dynamic_cast = 44, TK_else = 122, - TK_enum = 65, - TK_explicit = 49, + TK_enum = 57, + TK_explicit = 27, TK_export = 87, - TK_extern = 12, - TK_false = 33, - TK_float = 18, + TK_extern = 28, + TK_false = 45, + TK_float = 14, TK_for = 82, - TK_friend = 50, + TK_friend = 29, TK_goto = 83, TK_if = 84, - TK_inline = 51, - TK_int = 19, - TK_long = 20, - TK_mutable = 52, - TK_namespace = 56, - TK_new = 64, + TK_inline = 30, + TK_int = 15, + TK_long = 16, + TK_mutable = 31, + TK_namespace = 60, + TK_new = 68, TK_operator = 8, TK_private = 103, TK_protected = 104, TK_public = 105, - TK_register = 53, - TK_reinterpret_cast = 34, + TK_register = 32, + TK_reinterpret_cast = 46, TK_return = 85, - TK_short = 21, - TK_signed = 22, - TK_sizeof = 35, - TK_static = 54, - TK_static_cast = 36, - TK_struct = 66, + TK_short = 17, + TK_signed = 18, + TK_sizeof = 47, + TK_static = 33, + TK_static_cast = 48, + TK_struct = 58, TK_switch = 86, - TK_template = 29, - TK_this = 37, - TK_throw = 57, + TK_template = 41, + TK_this = 49, + TK_throw = 62, TK_try = 75, - TK_true = 38, - TK_typedef = 55, - TK_typeid = 39, + TK_true = 50, + TK_typedef = 34, + TK_typeid = 51, TK_typename = 10, - TK_union = 67, - TK_unsigned = 23, - TK_using = 58, - TK_virtual = 40, - TK_void = 24, - TK_volatile = 47, - TK_wchar_t = 25, + TK_union = 59, + TK_unsigned = 19, + TK_using = 63, + TK_virtual = 22, + TK_void = 20, + TK_volatile = 24, + TK_wchar_t = 21, TK_while = 76, - TK_integer = 41, - TK_floating = 42, - TK_charconst = 43, - TK_stringlit = 28, + TK_integer = 52, + TK_floating = 53, + TK_charconst = 54, + TK_stringlit = 40, TK_identifier = 1, TK_Completion = 2, TK_EndOfCompletion = 7, TK_Invalid = 123, - TK_LeftBracket = 60, + TK_LeftBracket = 64, TK_LeftParen = 3, TK_Dot = 120, TK_DotStar = 92, TK_Arrow = 106, TK_ArrowStar = 90, - TK_PlusPlus = 26, - TK_MinusMinus = 27, + TK_PlusPlus = 37, + TK_MinusMinus = 38, TK_And = 9, TK_Star = 6, - TK_Plus = 13, - TK_Minus = 14, + TK_Plus = 35, + TK_Minus = 36, TK_Tilde = 5, - TK_Bang = 30, + TK_Bang = 42, TK_Slash = 93, TK_Percent = 94, TK_RightShift = 88, TK_LeftShift = 89, - TK_LT = 44, - TK_GT = 68, + TK_LT = 55, + TK_GT = 69, TK_LE = 95, TK_GE = 96, TK_EQ = 97, @@ -118,7 +118,7 @@ public interface CPPTemplateTypeParameterParsersym { TK_Colon = 73, TK_ColonColon = 4, TK_DotDotDot = 91, - TK_Assign = 69, + TK_Assign = 70, TK_StarAssign = 108, TK_SlashAssign = 109, TK_PercentAssign = 110, @@ -129,14 +129,14 @@ public interface CPPTemplateTypeParameterParsersym { TK_AndAssign = 115, TK_CaretAssign = 116, TK_OrAssign = 117, - TK_Comma = 70, + TK_Comma = 71, TK_RightBracket = 118, TK_RightParen = 74, - TK_RightBrace = 71, - TK_SemiColon = 11, - TK_LeftBrace = 62, - TK_ERROR_TOKEN = 72, - TK_0 = 45, + TK_RightBrace = 72, + TK_SemiColon = 25, + TK_LeftBrace = 66, + TK_ERROR_TOKEN = 61, + TK_0 = 56, TK_EOF_TOKEN = 121; public final static String orderedTerminalSymbols[] = { @@ -151,10 +151,6 @@ public interface CPPTemplateTypeParameterParsersym { "operator", "And", "typename", - "SemiColon", - "extern", - "Plus", - "Minus", "bool", "char", "double", @@ -166,8 +162,24 @@ public interface CPPTemplateTypeParameterParsersym { "unsigned", "void", "wchar_t", + "virtual", + "const", + "volatile", + "SemiColon", + "auto", + "explicit", + "extern", + "friend", + "inline", + "mutable", + "register", + "static", + "typedef", + "Plus", + "Minus", "PlusPlus", "MinusMinus", + "class", "stringlit", "template", "Bang", @@ -180,39 +192,27 @@ public interface CPPTemplateTypeParameterParsersym { "this", "true", "typeid", - "virtual", "integer", "floating", "charconst", "LT", "0", - "const", - "volatile", - "auto", - "explicit", - "friend", - "inline", - "mutable", - "register", - "static", - "typedef", + "enum", + "struct", + "union", "namespace", + "ERROR_TOKEN", "throw", "using", - "class", "LeftBracket", "asm", "LeftBrace", "delete", "new", - "enum", - "struct", - "union", "GT", "Assign", "Comma", "RightBrace", - "ERROR_TOKEN", "Colon", "RightParen", "try",