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 f36a36d8263..e00df4ffae1 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPGrammar.g +++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPGrammar.g @@ -54,7 +54,7 @@ $Terminals -- Special tokens used in content assist Completion - EndOfCompletion ::= 'EOC' + EndOfCompletion -- Unrecognized token, not actually used anywhere in the grammar, always leads to syntax error @@ -64,7 +64,6 @@ $Terminals LeftBracket ::= '[' LeftParen ::= '(' - LeftBrace ::= '{' Dot ::= '.' DotStar ::= '.*' Arrow ::= '->' @@ -112,6 +111,7 @@ $Terminals RightParen RightBrace SemiColon + LeftBrace $End @@ -306,6 +306,8 @@ $Rules ';' ::=? 'SemiColon' | 'EndOfCompletion' +'{' ::=? 'LeftBrace' + | 'EndOfCompletion' @@ -1476,11 +1478,8 @@ class_name class_specifier ::= class_head '{' member_declaration_list_opt '}' /. $Build consumeClassSpecifier(); $EndBuild ./ - -- need this for content assist to work properly for base specifiers - | class_head 'EOC' member_declaration_list_opt '}' - /. $Build consumeClassSpecifier(); $EndBuild ./ - - + + class_head ::= class_keyword identifier_name_opt base_clause_opt /. $Build consumeClassHead(false); $EndBuild ./ diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/BaseExtensibleLanguage.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/BaseExtensibleLanguage.java index 59c019ab938..9c5c50f614c 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/BaseExtensibleLanguage.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/BaseExtensibleLanguage.java @@ -27,6 +27,8 @@ import org.eclipse.cdt.core.parser.IScanner; import org.eclipse.cdt.core.parser.IScannerInfo; import org.eclipse.cdt.core.parser.ParserLanguage; import org.eclipse.cdt.core.parser.util.ASTPrinter; +import org.eclipse.cdt.core.parser.util.DebugUtil; +import org.eclipse.cdt.internal.core.dom.parser.ASTNode; import org.eclipse.cdt.internal.core.parser.scanner.CPreprocessor; import org.eclipse.cdt.internal.core.pdom.dom.IPDOMLinkageFactory; import org.eclipse.cdt.internal.core.pdom.dom.c.PDOMCLinkageFactory; @@ -44,7 +46,7 @@ public abstract class BaseExtensibleLanguage extends AbstractLanguage implements private static final boolean DEBUG_PRINT_GCC_AST = false; - private static final boolean DEBUG_PRINT_AST = false; + private static final boolean DEBUG_PRINT_AST = false; private ICLanguageKeywords keywords = null; @@ -169,14 +171,13 @@ public abstract class BaseExtensibleLanguage extends AbstractLanguage implements if(DEBUG_PRINT_GCC_AST) { - ILanguage gppLanguage = GPPLanguage.getDefault(); + ILanguage gppLanguage = GCCLanguage.getDefault(); IASTCompletionNode cn = gppLanguage.getCompletionNode(reader, scanInfo, fileCreator, index, log, offset); System.out.println(); System.out.println("********************************************************"); System.out.println("GPP AST:"); - ASTPrinter.print(cn.getTranslationUnit()); - System.out.println(); + printCompletionNode(cn); } // TODO temporary @@ -196,15 +197,31 @@ public abstract class BaseExtensibleLanguage extends AbstractLanguage implements if(DEBUG_PRINT_AST) { System.out.println("Base Extensible Language AST:"); - ASTPrinter.print(tu); - System.out.println(); - System.out.println("Completion Node: " + completionNode); + printCompletionNode(completionNode); } return completionNode; } + /* + * For debugging. + */ + @SuppressWarnings("nls") + private static void printCompletionNode(IASTCompletionNode cn) { + ASTPrinter.print(cn.getTranslationUnit()); + for(IASTName name : cn.getNames()) { + ASTNode context = (ASTNode)name.getCompletionContext(); + System.out.printf("Name: %s, Context: %s, At: %d", + name, DebugUtil.safeClassName(context), context == null ? null : context.getOffset()); + if(name.getTranslationUnit() == null) // some name nodes are not hooked up to the AST + System.out.print(", not hooked up"); + System.out.println(); + } + System.out.println(); + } + + public IASTName[] getSelectedNames(IASTTranslationUnit ast, int start, int length) { return GCCLanguage.getDefault().getSelectedNames(ast, start, length); } 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 415d3b03355..afd3352e9f1 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 @@ -267,2004 +267,1997 @@ public CPPExpressionParser(String[] mapFrom) { // constructor } // - // Rule 11: translation_unit ::= external_declaration_list + // Rule 13: translation_unit ::= external_declaration_list // - case 11: { action.builder. + case 13: { action.builder. consumeTranslationUnit(); break; } // - // Rule 12: translation_unit ::= $Empty + // Rule 14: translation_unit ::= $Empty // - case 12: { action.builder. + case 14: { action.builder. consumeTranslationUnit(); break; } // - // Rule 16: external_declaration ::= ERROR_TOKEN + // Rule 18: external_declaration ::= ERROR_TOKEN // - case 16: { action.builder. + case 18: { action.builder. consumeDeclarationProblem(); break; } // - // Rule 19: literal ::= integer - // - case 19: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; - } - - // - // Rule 20: literal ::= 0 - // - case 20: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; - } - - // - // Rule 21: literal ::= floating + // 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 22: literal ::= charconst + // Rule 24: literal ::= charconst // - case 22: { action.builder. + case 24: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_char_constant); break; } // - // Rule 23: literal ::= stringlit + // Rule 25: literal ::= stringlit // - case 23: { action.builder. + case 25: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_string_literal); break; } // - // Rule 24: literal ::= true + // Rule 26: literal ::= true // - case 24: { action.builder. + case 26: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_true); break; } // - // Rule 25: literal ::= false + // Rule 27: literal ::= false // - case 25: { action.builder. + case 27: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_false); break; } // - // Rule 26: literal ::= this + // Rule 28: literal ::= this // - case 26: { action.builder. + case 28: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_this); break; } // - // Rule 28: primary_expression ::= ( expression ) + // Rule 30: primary_expression ::= ( expression ) // - case 28: { action.builder. + case 30: { action.builder. consumeExpressionBracketed(); break; } // - // Rule 30: id_expression ::= qualified_or_unqualified_name + // Rule 32: id_expression ::= qualified_or_unqualified_name // - case 30: { action.builder. + case 32: { action.builder. consumeExpressionName(); break; } // - // Rule 37: unqualified_id_name ::= ~ identifier_token + // Rule 39: unqualified_id_name ::= ~ identifier_token // - case 37: { action.builder. + case 39: { action.builder. consumeDestructorName(); break; } // - // Rule 38: unqualified_id_name ::= ~ template_id_name + // Rule 40: unqualified_id_name ::= ~ template_id_name // - case 38: { action.builder. + case 40: { action.builder. consumeDestructorNameTemplateId(); break; } // - // Rule 39: identifier_name ::= identifier_token + // Rule 41: identifier_name ::= identifier_token // - case 39: { action.builder. + case 41: { action.builder. consumeIdentifierName(); break; } // - // Rule 40: template_opt ::= template + // Rule 42: template_opt ::= template // - case 40: { action.builder. + case 42: { action.builder. consumePlaceHolder(); break; } // - // Rule 41: template_opt ::= $Empty - // - case 41: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 42: dcolon_opt ::= :: - // - case 42: { action.builder. - consumeToken(); break; - } - - // - // Rule 43: dcolon_opt ::= $Empty + // Rule 43: template_opt ::= $Empty // case 43: { action.builder. consumeEmpty(); break; } // - // Rule 44: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name + // Rule 44: dcolon_opt ::= :: // case 44: { action.builder. + consumeToken(); break; + } + + // + // Rule 45: dcolon_opt ::= $Empty + // + case 45: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 46: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name + // + case 46: { action.builder. consumeQualifiedId(true); break; } // - // Rule 45: qualified_id_name ::= :: identifier_name - // - case 45: { action.builder. - consumeGlobalQualifiedId(); break; - } - - // - // Rule 46: qualified_id_name ::= :: operator_function_id_name - // - case 46: { action.builder. - consumeGlobalQualifiedId(); break; - } - - // - // Rule 47: qualified_id_name ::= :: template_id_name + // Rule 47: qualified_id_name ::= :: identifier_name // case 47: { action.builder. consumeGlobalQualifiedId(); break; } // - // Rule 48: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template + // Rule 48: qualified_id_name ::= :: operator_function_id_name // case 48: { action.builder. - consumeNestedNameSpecifier(true); break; + consumeGlobalQualifiedId(); break; } // - // Rule 49: nested_name_specifier ::= class_or_namespace_name :: + // Rule 49: qualified_id_name ::= :: template_id_name // case 49: { action.builder. - consumeNestedNameSpecifier(false); break; + consumeGlobalQualifiedId(); break; } // - // Rule 50: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template + // Rule 50: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template // case 50: { action.builder. consumeNestedNameSpecifier(true); break; } // - // Rule 51: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: + // Rule 51: nested_name_specifier ::= class_or_namespace_name :: // case 51: { action.builder. consumeNestedNameSpecifier(false); break; } // - // Rule 52: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name + // Rule 52: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template // case 52: { action.builder. + consumeNestedNameSpecifier(true); break; + } + + // + // Rule 53: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: + // + case 53: { action.builder. + consumeNestedNameSpecifier(false); break; + } + + // + // Rule 54: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name + // + case 54: { action.builder. consumeNameWithTemplateKeyword(); break; } // - // Rule 54: nested_name_specifier_opt ::= $Empty + // Rule 56: nested_name_specifier_opt ::= $Empty // - case 54: { action.builder. + case 56: { action.builder. consumeNestedNameSpecifierEmpty(); break; } // - // Rule 57: postfix_expression ::= postfix_expression [ expression ] + // Rule 59: postfix_expression ::= postfix_expression [ expression ] // - case 57: { action.builder. + case 59: { action.builder. consumeExpressionArraySubscript(); break; } // - // Rule 58: postfix_expression ::= postfix_expression ( expression_list_opt ) + // Rule 60: postfix_expression ::= postfix_expression ( expression_list_opt ) // - case 58: { action.builder. + case 60: { action.builder. consumeExpressionFunctionCall(); break; } // - // Rule 59: postfix_expression ::= simple_type_specifier ( expression_list_opt ) + // Rule 61: postfix_expression ::= simple_type_specifier ( expression_list_opt ) // - case 59: { action.builder. + case 61: { action.builder. consumeExpressionSimpleTypeConstructor(); break; } // - // Rule 60: postfix_expression ::= typename dcolon_opt nested_name_specifier identifier_name ( expression_list_opt ) - // - case 60: { action.builder. - consumeExpressionTypeName(); break; - } - - // - // Rule 61: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) - // - case 61: { action.builder. - consumeExpressionTypeName(); break; - } - - // - // Rule 62: postfix_expression ::= postfix_expression . qualified_or_unqualified_name + // Rule 62: postfix_expression ::= typename dcolon_opt nested_name_specifier identifier_name ( expression_list_opt ) // case 62: { action.builder. + consumeExpressionTypeName(); break; + } + + // + // Rule 63: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) + // + case 63: { action.builder. + consumeExpressionTypeName(); break; + } + + // + // Rule 64: postfix_expression ::= postfix_expression . qualified_or_unqualified_name + // + case 64: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 63: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name + // Rule 65: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name // - case 63: { action.builder. + case 65: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 64: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name + // Rule 66: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name // - case 64: { action.builder. + case 66: { action.builder. consumeExpressionFieldReference(false, true); break; } // - // Rule 65: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name + // Rule 67: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name // - case 65: { action.builder. + case 67: { action.builder. consumeExpressionFieldReference(true, true); break; } // - // Rule 66: postfix_expression ::= postfix_expression . pseudo_destructor_name + // Rule 68: postfix_expression ::= postfix_expression . pseudo_destructor_name // - case 66: { action.builder. + case 68: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 67: postfix_expression ::= postfix_expression -> pseudo_destructor_name + // Rule 69: postfix_expression ::= postfix_expression -> pseudo_destructor_name // - case 67: { action.builder. + case 69: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 68: postfix_expression ::= postfix_expression ++ + // Rule 70: postfix_expression ::= postfix_expression ++ // - case 68: { action.builder. + case 70: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; } // - // Rule 69: postfix_expression ::= postfix_expression -- + // Rule 71: postfix_expression ::= postfix_expression -- // - case 69: { action.builder. + case 71: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; } // - // Rule 70: postfix_expression ::= dynamic_cast < type_id > ( expression ) + // Rule 72: postfix_expression ::= dynamic_cast < type_id > ( expression ) // - case 70: { action.builder. + case 72: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); break; } // - // Rule 71: postfix_expression ::= static_cast < type_id > ( expression ) + // Rule 73: postfix_expression ::= static_cast < type_id > ( expression ) // - case 71: { action.builder. + case 73: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_static_cast); break; } // - // Rule 72: postfix_expression ::= reinterpret_cast < type_id > ( expression ) + // Rule 74: postfix_expression ::= reinterpret_cast < type_id > ( expression ) // - case 72: { action.builder. + case 74: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); break; } // - // Rule 73: postfix_expression ::= const_cast < type_id > ( expression ) + // Rule 75: postfix_expression ::= const_cast < type_id > ( expression ) // - case 73: { action.builder. + case 75: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_const_cast); break; } // - // Rule 74: postfix_expression ::= typeid ( expression ) + // Rule 76: postfix_expression ::= typeid ( expression ) // - case 74: { action.builder. + case 76: { action.builder. consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break; } // - // Rule 75: postfix_expression ::= typeid ( type_id ) + // Rule 77: postfix_expression ::= typeid ( type_id ) // - case 75: { action.builder. + case 77: { action.builder. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid); break; } // - // Rule 76: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name - // - case 76: { action.builder. - consumePsudoDestructorName(true); break; - } - - // - // Rule 77: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name - // - case 77: { action.builder. - consumePsudoDestructorName(true); break; - } - - // - // Rule 78: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name + // Rule 78: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name // case 78: { action.builder. + consumePsudoDestructorName(true); break; + } + + // + // Rule 79: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name + // + case 79: { action.builder. + consumePsudoDestructorName(true); break; + } + + // + // Rule 80: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name + // + case 80: { action.builder. consumePsudoDestructorName(false); break; } // - // Rule 79: destructor_type_name ::= ~ identifier_token + // Rule 81: destructor_type_name ::= ~ identifier_token // - case 79: { action.builder. + case 81: { action.builder. consumeDestructorName(); break; } // - // Rule 80: destructor_type_name ::= ~ template_id_name + // Rule 82: destructor_type_name ::= ~ template_id_name // - case 80: { action.builder. + case 82: { action.builder. consumeDestructorNameTemplateId(); break; } // - // Rule 84: unary_expression ::= ++ cast_expression + // Rule 86: unary_expression ::= ++ cast_expression // - case 84: { action.builder. + case 86: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; } // - // Rule 85: unary_expression ::= -- cast_expression + // Rule 87: unary_expression ::= -- cast_expression // - case 85: { action.builder. + case 87: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; } // - // Rule 86: unary_expression ::= & cast_expression + // Rule 88: unary_expression ::= & cast_expression // - case 86: { action.builder. + case 88: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; } // - // Rule 87: unary_expression ::= * cast_expression + // Rule 89: unary_expression ::= * cast_expression // - case 87: { action.builder. + case 89: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; } // - // Rule 88: unary_expression ::= + cast_expression + // Rule 90: unary_expression ::= + cast_expression // - case 88: { action.builder. + case 90: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; } // - // Rule 89: unary_expression ::= - cast_expression + // Rule 91: unary_expression ::= - cast_expression // - case 89: { action.builder. + case 91: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; } // - // Rule 90: unary_expression ::= ~ cast_expression + // Rule 92: unary_expression ::= ~ cast_expression // - case 90: { action.builder. + case 92: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; } // - // Rule 91: unary_expression ::= ! cast_expression + // Rule 93: unary_expression ::= ! cast_expression // - case 91: { action.builder. + case 93: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; } // - // Rule 92: unary_expression ::= sizeof unary_expression + // Rule 94: unary_expression ::= sizeof unary_expression // - case 92: { action.builder. + case 94: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; } // - // Rule 93: unary_expression ::= sizeof ( type_id ) + // Rule 95: unary_expression ::= sizeof ( type_id ) // - case 93: { action.builder. + case 95: { 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 96: new_expression ::= dcolon_opt new new_placement_opt new_type_id new_array_expressions_opt new_initializer_opt // - case 94: { action.builder. + case 96: { 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 97: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_array_expressions_opt new_initializer_opt // - case 95: { action.builder. + case 97: { action.builder. consumeExpressionNew(false); break; } // - // Rule 97: new_placement_opt ::= $Empty + // Rule 99: new_placement_opt ::= $Empty // - case 97: { action.builder. + case 99: { action.builder. consumeEmpty(); break; } // - // Rule 98: new_type_id ::= type_specifier_seq + // Rule 100: new_type_id ::= type_specifier_seq // - case 98: { action.builder. + case 100: { action.builder. consumeTypeId(false); break; } // - // Rule 99: new_type_id ::= type_specifier_seq new_declarator + // Rule 101: new_type_id ::= type_specifier_seq new_declarator // - case 99: { action.builder. + case 101: { action.builder. consumeTypeId(true); break; } // - // Rule 100: new_declarator ::= new_pointer_operators + // Rule 102: new_declarator ::= new_pointer_operators // - case 100: { action.builder. + case 102: { action.builder. consumeNewDeclarator(); break; } // - // Rule 109: new_initializer_opt ::= $Empty + // Rule 111: new_initializer_opt ::= $Empty // - case 109: { action.builder. + case 111: { action.builder. consumeEmpty(); break; } // - // Rule 110: delete_expression ::= dcolon_opt delete cast_expression + // Rule 112: delete_expression ::= dcolon_opt delete cast_expression // - case 110: { action.builder. + case 112: { action.builder. consumeExpressionDelete(false); break; } // - // Rule 111: delete_expression ::= dcolon_opt delete [ ] cast_expression + // Rule 113: delete_expression ::= dcolon_opt delete [ ] cast_expression // - case 111: { action.builder. + case 113: { action.builder. consumeExpressionDelete(true); break; } // - // Rule 113: cast_expression ::= ( type_id ) cast_expression + // Rule 115: cast_expression ::= ( type_id ) cast_expression // - case 113: { action.builder. + case 115: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_cast); break; } // - // Rule 115: pm_expression ::= pm_expression .* cast_expression + // Rule 117: pm_expression ::= pm_expression .* cast_expression // - case 115: { action.builder. + case 117: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot); break; } // - // Rule 116: pm_expression ::= pm_expression ->* cast_expression + // Rule 118: pm_expression ::= pm_expression ->* cast_expression // - case 116: { action.builder. + case 118: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow); break; } // - // Rule 118: multiplicative_expression ::= multiplicative_expression * pm_expression + // Rule 120: multiplicative_expression ::= multiplicative_expression * pm_expression // - case 118: { action.builder. + case 120: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply); break; } // - // Rule 119: multiplicative_expression ::= multiplicative_expression / pm_expression + // Rule 121: multiplicative_expression ::= multiplicative_expression / pm_expression // - case 119: { action.builder. + case 121: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide); break; } // - // Rule 120: multiplicative_expression ::= multiplicative_expression % pm_expression + // Rule 122: multiplicative_expression ::= multiplicative_expression % pm_expression // - case 120: { action.builder. + case 122: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo); break; } // - // Rule 122: additive_expression ::= additive_expression + multiplicative_expression + // Rule 124: additive_expression ::= additive_expression + multiplicative_expression // - case 122: { action.builder. + case 124: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus); break; } // - // Rule 123: additive_expression ::= additive_expression - multiplicative_expression + // Rule 125: additive_expression ::= additive_expression - multiplicative_expression // - case 123: { action.builder. + case 125: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus); break; } // - // Rule 125: shift_expression ::= shift_expression << additive_expression + // Rule 127: shift_expression ::= shift_expression << additive_expression // - case 125: { action.builder. + case 127: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft); break; } // - // Rule 126: shift_expression ::= shift_expression >> additive_expression + // Rule 128: shift_expression ::= shift_expression >> additive_expression // - case 126: { action.builder. + case 128: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight); break; } // - // Rule 128: relational_expression ::= relational_expression < shift_expression + // Rule 130: relational_expression ::= relational_expression < shift_expression // - case 128: { action.builder. + case 130: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; } // - // Rule 129: relational_expression ::= relational_expression > shift_expression + // Rule 131: relational_expression ::= relational_expression > shift_expression // - case 129: { action.builder. + case 131: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; } // - // Rule 130: relational_expression ::= relational_expression <= shift_expression + // Rule 132: relational_expression ::= relational_expression <= shift_expression // - case 130: { action.builder. + case 132: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; } // - // Rule 131: relational_expression ::= relational_expression >= shift_expression + // Rule 133: relational_expression ::= relational_expression >= shift_expression // - case 131: { action.builder. + case 133: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; } // - // Rule 133: equality_expression ::= equality_expression == relational_expression + // Rule 135: equality_expression ::= equality_expression == relational_expression // - case 133: { action.builder. + case 135: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; } // - // Rule 134: equality_expression ::= equality_expression != relational_expression + // Rule 136: equality_expression ::= equality_expression != relational_expression // - case 134: { action.builder. + case 136: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; } // - // Rule 136: and_expression ::= and_expression & equality_expression + // Rule 138: and_expression ::= and_expression & equality_expression // - case 136: { action.builder. + case 138: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; } // - // Rule 138: exclusive_or_expression ::= exclusive_or_expression ^ and_expression + // Rule 140: exclusive_or_expression ::= exclusive_or_expression ^ and_expression // - case 138: { action.builder. + case 140: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; } // - // Rule 140: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression + // Rule 142: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression // - case 140: { action.builder. + case 142: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; } // - // Rule 142: logical_and_expression ::= logical_and_expression && inclusive_or_expression + // Rule 144: logical_and_expression ::= logical_and_expression && inclusive_or_expression // - case 142: { action.builder. + case 144: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; } // - // Rule 144: logical_or_expression ::= logical_or_expression || logical_and_expression + // Rule 146: logical_or_expression ::= logical_or_expression || logical_and_expression // - case 144: { action.builder. + case 146: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; } // - // Rule 146: conditional_expression ::= logical_or_expression ? expression : assignment_expression + // Rule 148: conditional_expression ::= logical_or_expression ? expression : assignment_expression // - case 146: { action.builder. + case 148: { action.builder. consumeExpressionConditional(); break; } // - // Rule 147: throw_expression ::= throw + // Rule 149: throw_expression ::= throw // - case 147: { action.builder. + case 149: { action.builder. consumeExpressionThrow(false); break; } // - // Rule 148: throw_expression ::= throw assignment_expression + // Rule 150: throw_expression ::= throw assignment_expression // - case 148: { action.builder. + case 150: { action.builder. consumeExpressionThrow(true); break; } // - // Rule 151: assignment_expression ::= logical_or_expression = assignment_expression + // Rule 153: assignment_expression ::= logical_or_expression = assignment_expression // - case 151: { action.builder. + case 153: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; } // - // Rule 152: assignment_expression ::= logical_or_expression *= assignment_expression + // Rule 154: assignment_expression ::= logical_or_expression *= assignment_expression // - case 152: { action.builder. + case 154: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 153: assignment_expression ::= logical_or_expression /= assignment_expression + // Rule 155: assignment_expression ::= logical_or_expression /= assignment_expression // - case 153: { action.builder. + case 155: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; } // - // Rule 154: assignment_expression ::= logical_or_expression %= assignment_expression + // Rule 156: assignment_expression ::= logical_or_expression %= assignment_expression // - case 154: { action.builder. + case 156: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; } // - // Rule 155: assignment_expression ::= logical_or_expression += assignment_expression + // Rule 157: assignment_expression ::= logical_or_expression += assignment_expression // - case 155: { action.builder. + case 157: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; } // - // Rule 156: assignment_expression ::= logical_or_expression -= assignment_expression + // Rule 158: assignment_expression ::= logical_or_expression -= assignment_expression // - case 156: { action.builder. + case 158: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; } // - // Rule 157: assignment_expression ::= logical_or_expression >>= assignment_expression + // Rule 159: assignment_expression ::= logical_or_expression >>= assignment_expression // - case 157: { action.builder. + case 159: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 158: assignment_expression ::= logical_or_expression <<= assignment_expression + // Rule 160: assignment_expression ::= logical_or_expression <<= assignment_expression // - case 158: { action.builder. + case 160: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 159: assignment_expression ::= logical_or_expression &= assignment_expression + // Rule 161: assignment_expression ::= logical_or_expression &= assignment_expression // - case 159: { action.builder. + case 161: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 160: assignment_expression ::= logical_or_expression ^= assignment_expression + // Rule 162: assignment_expression ::= logical_or_expression ^= assignment_expression // - case 160: { action.builder. + case 162: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 161: assignment_expression ::= logical_or_expression |= assignment_expression + // Rule 163: assignment_expression ::= logical_or_expression |= assignment_expression // - case 161: { action.builder. + case 163: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 163: expression_list ::= expression_list_actual + // Rule 165: expression_list ::= expression_list_actual // - case 163: { action.builder. + case 165: { action.builder. consumeExpressionList(); break; } // - // Rule 167: expression_list_opt ::= $Empty - // - case 167: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 169: expression_opt ::= $Empty + // Rule 169: expression_list_opt ::= $Empty // case 169: { action.builder. consumeEmpty(); break; } // - // Rule 172: constant_expression_opt ::= $Empty + // Rule 171: expression_opt ::= $Empty // - case 172: { action.builder. + case 171: { action.builder. consumeEmpty(); break; } // - // Rule 181: statement ::= ERROR_TOKEN + // Rule 174: constant_expression_opt ::= $Empty // - case 181: { action.builder. + case 174: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 183: statement ::= ERROR_TOKEN + // + case 183: { action.builder. consumeStatementProblem(); break; } // - // Rule 182: labeled_statement ::= identifier : statement + // Rule 184: labeled_statement ::= identifier : statement // - case 182: { action.builder. + case 184: { action.builder. consumeStatementLabeled(); break; } // - // Rule 183: labeled_statement ::= case constant_expression : + // Rule 185: labeled_statement ::= case constant_expression : // - case 183: { action.builder. + case 185: { action.builder. consumeStatementCase(); break; } // - // Rule 184: labeled_statement ::= default : + // Rule 186: labeled_statement ::= default : // - case 184: { action.builder. + case 186: { action.builder. consumeStatementDefault(); break; } // - // Rule 185: expression_statement ::= expression ; + // Rule 187: expression_statement ::= expression ; // - case 185: { action.builder. + case 187: { action.builder. consumeStatementExpression(); break; } // - // Rule 186: expression_statement ::= ; + // Rule 188: expression_statement ::= ; // - case 186: { action.builder. + case 188: { action.builder. consumeStatementNull(); break; } // - // Rule 187: compound_statement ::= { statement_seq } + // Rule 189: compound_statement ::= { statement_seq } // - case 187: { action.builder. + case 189: { action.builder. consumeStatementCompoundStatement(true); break; } // - // Rule 188: compound_statement ::= { } + // Rule 190: compound_statement ::= { } // - case 188: { action.builder. + case 190: { action.builder. consumeStatementCompoundStatement(false); break; } // - // Rule 191: selection_statement ::= if ( condition ) statement + // Rule 193: selection_statement ::= if ( condition ) statement // - case 191: { action.builder. + case 193: { action.builder. consumeStatementIf(false); break; } // - // Rule 192: selection_statement ::= if ( condition ) statement else statement + // Rule 194: selection_statement ::= if ( condition ) statement else statement // - case 192: { action.builder. + case 194: { action.builder. consumeStatementIf(true); break; } // - // Rule 193: selection_statement ::= switch ( condition ) statement + // Rule 195: selection_statement ::= switch ( condition ) statement // - case 193: { action.builder. + case 195: { action.builder. consumeStatementSwitch(); break; } // - // Rule 195: condition ::= type_specifier_seq declarator = assignment_expression + // Rule 197: condition ::= type_specifier_seq declarator = assignment_expression // - case 195: { action.builder. + case 197: { action.builder. consumeConditionDeclaration(); break; } // - // Rule 197: condition_opt ::= $Empty + // Rule 199: condition_opt ::= $Empty // - case 197: { action.builder. + case 199: { action.builder. consumeEmpty(); break; } // - // Rule 198: iteration_statement ::= while ( condition ) statement + // Rule 200: iteration_statement ::= while ( condition ) statement // - case 198: { action.builder. + case 200: { action.builder. consumeStatementWhileLoop(); break; } // - // Rule 199: iteration_statement ::= do statement while ( expression ) ; + // Rule 201: iteration_statement ::= do statement while ( expression ) ; // - case 199: { action.builder. + case 201: { action.builder. consumeStatementDoLoop(); break; } // - // Rule 200: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement + // Rule 202: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement // - case 200: { action.builder. + case 202: { action.builder. consumeStatementForLoop(); break; } // - // Rule 202: for_init_statement ::= simple_declaration_with_declspec + // Rule 204: for_init_statement ::= simple_declaration_with_declspec // - case 202: { action.builder. + case 204: { action.builder. consumeStatementDeclaration(); break; } // - // Rule 203: jump_statement ::= break ; + // Rule 205: jump_statement ::= break ; // - case 203: { action.builder. + case 205: { action.builder. consumeStatementBreak(); break; } // - // Rule 204: jump_statement ::= continue ; + // Rule 206: jump_statement ::= continue ; // - case 204: { action.builder. + case 206: { action.builder. consumeStatementContinue(); break; } // - // Rule 205: jump_statement ::= return expression ; + // Rule 207: jump_statement ::= return expression ; // - case 205: { action.builder. + case 207: { action.builder. consumeStatementReturn(true); break; } // - // Rule 206: jump_statement ::= return ; + // Rule 208: jump_statement ::= return ; // - case 206: { action.builder. + case 208: { action.builder. consumeStatementReturn(false); break; } // - // Rule 207: jump_statement ::= goto identifier_token ; + // Rule 209: jump_statement ::= goto identifier_token ; // - case 207: { action.builder. + case 209: { action.builder. consumeStatementGoto(); break; } // - // Rule 208: declaration_statement ::= block_declaration + // Rule 210: declaration_statement ::= block_declaration // - case 208: { action.builder. + case 210: { action.builder. consumeStatementDeclarationWithDisambiguation(); break; } // - // Rule 209: declaration_statement ::= function_definition + // Rule 211: declaration_statement ::= function_definition // - case 209: { action.builder. + case 211: { action.builder. consumeStatementDeclaration(); break; } // - // Rule 226: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; - // - case 226: { action.builder. - consumeDeclarationSimple(true); break; - } - - // - // Rule 227: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; - // - case 227: { action.builder. - consumeDeclarationSimple(true); break; - } - - // - // Rule 228: declaration_specifiers ::= simple_declaration_specifiers + // Rule 228: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; // case 228: { action.builder. + consumeDeclarationSimple(true); break; + } + + // + // Rule 229: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; + // + case 229: { action.builder. + consumeDeclarationSimple(true); break; + } + + // + // Rule 230: declaration_specifiers ::= simple_declaration_specifiers + // + case 230: { action.builder. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 229: declaration_specifiers ::= class_declaration_specifiers - // - case 229: { action.builder. - consumeDeclarationSpecifiersComposite(); break; - } - - // - // Rule 230: declaration_specifiers ::= elaborated_declaration_specifiers - // - case 230: { action.builder. - consumeDeclarationSpecifiersComposite(); break; - } - - // - // Rule 231: declaration_specifiers ::= enum_declaration_specifiers + // Rule 231: declaration_specifiers ::= class_declaration_specifiers // case 231: { action.builder. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 232: declaration_specifiers ::= type_name_declaration_specifiers + // Rule 232: declaration_specifiers ::= elaborated_declaration_specifiers // case 232: { action.builder. + consumeDeclarationSpecifiersComposite(); break; + } + + // + // Rule 233: declaration_specifiers ::= enum_declaration_specifiers + // + case 233: { action.builder. + consumeDeclarationSpecifiersComposite(); break; + } + + // + // Rule 234: declaration_specifiers ::= type_name_declaration_specifiers + // + case 234: { action.builder. consumeDeclarationSpecifiersTypeName(); break; } // - // Rule 233: declaration_specifiers_opt ::= $Empty + // Rule 235: declaration_specifiers_opt ::= $Empty // - case 233: { action.builder. + case 235: { action.builder. consumeEmpty(); break; } // - // Rule 238: no_type_declaration_specifier ::= friend + // Rule 240: no_type_declaration_specifier ::= friend // - case 238: { action.builder. + case 240: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 239: no_type_declaration_specifier ::= typedef + // Rule 241: no_type_declaration_specifier ::= typedef // - case 239: { action.builder. + case 241: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 259: storage_class_specifier ::= auto - // - case 259: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 260: storage_class_specifier ::= register - // - case 260: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 261: storage_class_specifier ::= static + // Rule 261: storage_class_specifier ::= auto // case 261: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 262: storage_class_specifier ::= extern + // Rule 262: storage_class_specifier ::= register // case 262: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 263: storage_class_specifier ::= mutable + // Rule 263: storage_class_specifier ::= static // case 263: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 264: function_specifier ::= inline + // Rule 264: storage_class_specifier ::= extern // case 264: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 265: function_specifier ::= virtual + // Rule 265: storage_class_specifier ::= mutable // case 265: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 266: function_specifier ::= explicit + // Rule 266: function_specifier ::= inline // case 266: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 267: simple_type_specifier ::= char + // Rule 267: function_specifier ::= virtual // case 267: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 268: simple_type_specifier ::= wchar_t + // Rule 268: function_specifier ::= explicit // case 268: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 269: simple_type_specifier ::= bool + // Rule 269: simple_type_specifier ::= char // case 269: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 270: simple_type_specifier ::= short + // Rule 270: simple_type_specifier ::= wchar_t // case 270: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 271: simple_type_specifier ::= int + // Rule 271: simple_type_specifier ::= bool // case 271: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 272: simple_type_specifier ::= long + // Rule 272: simple_type_specifier ::= short // case 272: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 273: simple_type_specifier ::= signed + // Rule 273: simple_type_specifier ::= int // case 273: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 274: simple_type_specifier ::= unsigned + // Rule 274: simple_type_specifier ::= long // case 274: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 275: simple_type_specifier ::= float + // Rule 275: simple_type_specifier ::= signed // case 275: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 276: simple_type_specifier ::= double + // Rule 276: simple_type_specifier ::= unsigned // case 276: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 277: simple_type_specifier ::= void + // Rule 277: simple_type_specifier ::= float // case 277: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 280: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name + // Rule 278: simple_type_specifier ::= double // - case 280: { action.builder. - consumeQualifiedId(false); break; + case 278: { action.builder. + consumeDeclSpecToken(); break; } // - // Rule 281: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name + // Rule 279: simple_type_specifier ::= void // - case 281: { action.builder. - consumeQualifiedId(false); break; + case 279: { action.builder. + consumeDeclSpecToken(); break; } // - // Rule 282: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name + // Rule 282: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name // case 282: { action.builder. consumeQualifiedId(false); break; } // - // Rule 283: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name + // Rule 283: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name // case 283: { action.builder. + consumeQualifiedId(false); break; + } + + // + // Rule 284: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name + // + case 284: { action.builder. + consumeQualifiedId(false); break; + } + + // + // Rule 285: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name + // + case 285: { action.builder. consumeQualifiedId(true); break; } // - // Rule 285: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name - // - case 285: { action.builder. - consumeTypeSpecifierElaborated(false); break; - } - - // - // Rule 286: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name - // - case 286: { action.builder. - consumeTypeSpecifierElaborated(true); break; - } - - // - // Rule 287: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name + // Rule 287: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name // case 287: { action.builder. consumeTypeSpecifierElaborated(false); break; } // - // Rule 288: enum_specifier ::= enum { enumerator_list_opt } + // Rule 288: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name // case 288: { action.builder. + consumeTypeSpecifierElaborated(true); break; + } + + // + // Rule 289: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name + // + case 289: { action.builder. + consumeTypeSpecifierElaborated(false); break; + } + + // + // Rule 290: enum_specifier ::= enum { enumerator_list_opt } + // + case 290: { action.builder. consumeTypeSpecifierEnumeration(false); break; } // - // Rule 289: enum_specifier ::= enum identifier_token { enumerator_list_opt } + // Rule 291: enum_specifier ::= enum identifier_token { enumerator_list_opt } // - case 289: { action.builder. + case 291: { action.builder. consumeTypeSpecifierEnumeration(true); break; } // - // Rule 294: enumerator_definition ::= identifier_token + // Rule 296: enumerator_definition ::= identifier_token // - case 294: { action.builder. + case 296: { action.builder. consumeEnumerator(false); break; } // - // Rule 295: enumerator_definition ::= identifier_token = constant_expression + // Rule 297: enumerator_definition ::= identifier_token = constant_expression // - case 295: { action.builder. + case 297: { action.builder. consumeEnumerator(true); break; } // - // Rule 299: named_namespace_definition ::= namespace namespace_name { declaration_seq_opt } + // Rule 301: named_namespace_definition ::= namespace namespace_name { declaration_seq_opt } // - case 299: { action.builder. + case 301: { action.builder. consumeNamespaceDefinition(true); break; } // - // Rule 300: unnamed_namespace_definition ::= namespace { declaration_seq_opt } + // Rule 302: unnamed_namespace_definition ::= namespace { declaration_seq_opt } // - case 300: { action.builder. + case 302: { action.builder. consumeNamespaceDefinition(false); break; } // - // Rule 301: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 303: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; // - case 301: { action.builder. + case 303: { action.builder. consumeNamespaceAliasDefinition(); break; } // - // Rule 302: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; + // Rule 304: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; // - case 302: { action.builder. + case 304: { action.builder. consumeUsingDeclaration(); break; } // - // Rule 303: typename_opt ::= typename + // Rule 305: typename_opt ::= typename // - case 303: { action.builder. + case 305: { action.builder. consumePlaceHolder(); break; } // - // Rule 304: typename_opt ::= $Empty + // Rule 306: typename_opt ::= $Empty // - case 304: { action.builder. + case 306: { action.builder. consumeEmpty(); break; } // - // Rule 305: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 307: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; // - case 305: { action.builder. + case 307: { action.builder. consumeUsingDirective(); break; } // - // Rule 306: asm_definition ::= asm ( stringlit ) ; + // Rule 308: asm_definition ::= asm ( stringlit ) ; // - case 306: { action.builder. + case 308: { action.builder. consumeDeclarationASM(); break; } // - // Rule 307: linkage_specification ::= extern stringlit { declaration_seq_opt } + // Rule 309: linkage_specification ::= extern stringlit { declaration_seq_opt } // - case 307: { action.builder. + case 309: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 308: linkage_specification ::= extern stringlit declaration + // Rule 310: linkage_specification ::= extern stringlit declaration // - case 308: { action.builder. + case 310: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 313: init_declarator_complete ::= init_declarator + // Rule 315: init_declarator_complete ::= init_declarator // - case 313: { action.builder. + case 315: { action.builder. consumeInitDeclaratorComplete(); break; } // - // Rule 315: init_declarator ::= declarator initializer + // Rule 317: init_declarator ::= declarator initializer // - case 315: { action.builder. + case 317: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 317: declarator ::= ptr_operator_seq direct_declarator - // - case 317: { action.builder. - consumeDeclaratorWithPointer(true); break; - } - - // - // Rule 319: function_declarator ::= ptr_operator_seq direct_declarator + // Rule 319: declarator ::= ptr_operator_seq direct_declarator // case 319: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 323: basic_direct_declarator ::= declarator_id_name + // Rule 321: function_declarator ::= ptr_operator_seq direct_declarator // - case 323: { action.builder. - consumeDirectDeclaratorIdentifier(); break; - } - - // - // Rule 324: basic_direct_declarator ::= ( declarator ) - // - case 324: { action.builder. - consumeDirectDeclaratorBracketed(); break; - } - - // - // Rule 325: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt - // - case 325: { action.builder. - consumeDirectDeclaratorFunctionDeclarator(true); break; - } - - // - // Rule 326: array_direct_declarator ::= array_direct_declarator array_modifier - // - case 326: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 327: array_direct_declarator ::= basic_direct_declarator array_modifier - // - case 327: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 328: array_modifier ::= [ constant_expression ] - // - case 328: { action.builder. - consumeDirectDeclaratorArrayModifier(true); break; - } - - // - // Rule 329: array_modifier ::= [ ] - // - case 329: { action.builder. - consumeDirectDeclaratorArrayModifier(false); break; - } - - // - // Rule 330: ptr_operator ::= * cv_qualifier_seq_opt - // - case 330: { action.builder. - consumePointer(); break; - } - - // - // Rule 331: ptr_operator ::= & - // - case 331: { action.builder. - consumeReferenceOperator(); break; - } - - // - // Rule 332: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt - // - case 332: { action.builder. - consumePointerToMember(); break; - } - - // - // Rule 338: cv_qualifier ::= const - // - case 338: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 339: cv_qualifier ::= volatile - // - case 339: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 341: declarator_id_name ::= nested_name_specifier template_opt unqualified_id_name - // - case 341: { action.builder. - consumeQualifiedId(true); break; - } - - // - // Rule 342: type_id ::= type_specifier_seq - // - case 342: { action.builder. - consumeTypeId(false); break; - } - - // - // Rule 343: type_id ::= type_specifier_seq abstract_declarator - // - case 343: { action.builder. - consumeTypeId(true); break; - } - - // - // Rule 346: abstract_declarator ::= ptr_operator_seq - // - case 346: { action.builder. - consumeDeclaratorWithPointer(false); break; - } - - // - // Rule 347: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator - // - case 347: { action.builder. + case 321: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 351: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 325: basic_direct_declarator ::= declarator_id_name // - case 351: { action.builder. + case 325: { action.builder. + consumeDirectDeclaratorIdentifier(); break; + } + + // + // Rule 326: basic_direct_declarator ::= ( declarator ) + // + case 326: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 352: basic_direct_abstract_declarator ::= ( ) + // Rule 327: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 352: { action.builder. - consumeAbstractDeclaratorEmpty(); break; - } - - // - // Rule 353: array_direct_abstract_declarator ::= array_modifier - // - case 353: { action.builder. - consumeDirectDeclaratorArrayDeclarator(false); break; - } - - // - // Rule 354: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier - // - case 354: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 355: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier - // - case 355: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 356: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt - // - case 356: { action.builder. + case 327: { action.builder. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 357: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 328: array_direct_declarator ::= array_direct_declarator array_modifier + // + case 328: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 329: array_direct_declarator ::= basic_direct_declarator array_modifier + // + case 329: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 330: array_modifier ::= [ constant_expression ] + // + case 330: { action.builder. + consumeDirectDeclaratorArrayModifier(true); break; + } + + // + // Rule 331: array_modifier ::= [ ] + // + case 331: { action.builder. + consumeDirectDeclaratorArrayModifier(false); break; + } + + // + // Rule 332: ptr_operator ::= * cv_qualifier_seq_opt + // + case 332: { action.builder. + consumePointer(); break; + } + + // + // Rule 333: ptr_operator ::= & + // + case 333: { action.builder. + consumeReferenceOperator(); break; + } + + // + // Rule 334: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt + // + case 334: { action.builder. + consumePointerToMember(); break; + } + + // + // Rule 340: cv_qualifier ::= const + // + case 340: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 341: cv_qualifier ::= volatile + // + case 341: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 343: declarator_id_name ::= nested_name_specifier template_opt unqualified_id_name + // + case 343: { action.builder. + consumeQualifiedId(true); break; + } + + // + // Rule 344: type_id ::= type_specifier_seq + // + case 344: { action.builder. + consumeTypeId(false); break; + } + + // + // Rule 345: type_id ::= type_specifier_seq abstract_declarator + // + case 345: { action.builder. + consumeTypeId(true); break; + } + + // + // Rule 348: abstract_declarator ::= ptr_operator_seq + // + case 348: { action.builder. + consumeDeclaratorWithPointer(false); break; + } + + // + // Rule 349: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator + // + case 349: { action.builder. + consumeDeclaratorWithPointer(true); break; + } + + // + // Rule 353: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // + case 353: { action.builder. + consumeDirectDeclaratorBracketed(); break; + } + + // + // Rule 354: basic_direct_abstract_declarator ::= ( ) + // + case 354: { action.builder. + consumeAbstractDeclaratorEmpty(); break; + } + + // + // Rule 355: array_direct_abstract_declarator ::= array_modifier + // + case 355: { action.builder. + consumeDirectDeclaratorArrayDeclarator(false); break; + } + + // + // Rule 356: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // + case 356: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 357: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier // case 357: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 358: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // + case 358: { action.builder. + consumeDirectDeclaratorFunctionDeclarator(true); break; + } + + // + // Rule 359: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // + case 359: { action.builder. consumeDirectDeclaratorFunctionDeclarator(false); break; } // - // Rule 358: parameter_declaration_clause ::= parameter_declaration_list_opt ... - // - case 358: { action.builder. - consumePlaceHolder(); break; - } - - // - // Rule 359: parameter_declaration_clause ::= parameter_declaration_list_opt - // - case 359: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 360: parameter_declaration_clause ::= parameter_declaration_list , ... + // Rule 360: parameter_declaration_clause ::= parameter_declaration_list_opt ... // case 360: { action.builder. consumePlaceHolder(); break; } // - // Rule 366: abstract_declarator_opt ::= $Empty + // Rule 361: parameter_declaration_clause ::= parameter_declaration_list_opt // - case 366: { action.builder. + case 361: { action.builder. consumeEmpty(); break; } // - // Rule 367: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // Rule 362: parameter_declaration_clause ::= parameter_declaration_list , ... // - case 367: { action.builder. + case 362: { action.builder. + consumePlaceHolder(); break; + } + + // + // Rule 368: abstract_declarator_opt ::= $Empty + // + case 368: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 369: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // + case 369: { action.builder. consumeParameterDeclaration(); break; } // - // Rule 368: parameter_declaration ::= declaration_specifiers + // Rule 370: parameter_declaration ::= declaration_specifiers // - case 368: { action.builder. + case 370: { action.builder. consumeParameterDeclarationWithoutDeclarator(); break; } // - // Rule 370: parameter_init_declarator ::= declarator = parameter_initializer - // - case 370: { action.builder. - consumeDeclaratorWithInitializer(true); break; - } - - // - // Rule 372: parameter_init_declarator ::= abstract_declarator = parameter_initializer + // Rule 372: parameter_init_declarator ::= declarator = parameter_initializer // case 372: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 373: parameter_init_declarator ::= = parameter_initializer + // Rule 374: parameter_init_declarator ::= abstract_declarator = parameter_initializer // - case 373: { action.builder. + case 374: { action.builder. + consumeDeclaratorWithInitializer(true); break; + } + + // + // Rule 375: parameter_init_declarator ::= = parameter_initializer + // + case 375: { action.builder. consumeDeclaratorWithInitializer(false); break; } // - // Rule 374: parameter_initializer ::= assignment_expression + // Rule 376: parameter_initializer ::= assignment_expression // - case 374: { action.builder. + case 376: { action.builder. consumeInitializer(); break; } // - // Rule 375: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body + // Rule 377: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body // - case 375: { action.builder. + case 377: { action.builder. consumeFunctionDefinition(false); break; } // - // Rule 376: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq + // Rule 378: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq // - case 376: { action.builder. + case 378: { action.builder. consumeFunctionDefinition(true); break; } // - // Rule 379: initializer ::= ( expression_list ) + // Rule 381: initializer ::= ( expression_list ) // - case 379: { action.builder. + case 381: { action.builder. consumeInitializerConstructor(); break; } // - // Rule 380: initializer_clause ::= assignment_expression + // Rule 382: initializer_clause ::= assignment_expression // - case 380: { action.builder. + case 382: { action.builder. consumeInitializer(); break; } // - // Rule 381: initializer_clause ::= { initializer_list , } - // - case 381: { action.builder. - consumeInitializerList(); break; - } - - // - // Rule 382: initializer_clause ::= { initializer_list } - // - case 382: { action.builder. - consumeInitializerList(); break; - } - - // - // Rule 383: initializer_clause ::= { } + // Rule 383: initializer_clause ::= { initializer_list , } // case 383: { action.builder. consumeInitializerList(); break; } // - // Rule 388: class_specifier ::= class_head { member_declaration_list_opt } + // Rule 384: initializer_clause ::= { initializer_list } // - case 388: { action.builder. - consumeClassSpecifier(); break; + case 384: { action.builder. + consumeInitializerList(); break; } // - // Rule 389: class_specifier ::= class_head EOC member_declaration_list_opt } + // Rule 385: initializer_clause ::= { } // - case 389: { action.builder. - consumeClassSpecifier(); break; + case 385: { action.builder. + consumeInitializerList(); break; } // - // Rule 390: class_head ::= class_keyword identifier_name_opt base_clause_opt + // Rule 390: class_specifier ::= class_head { member_declaration_list_opt } // case 390: { action.builder. - consumeClassHead(false); break; + consumeClassSpecifier(); break; } // - // Rule 391: class_head ::= class_keyword template_id_name base_clause_opt + // Rule 391: class_head ::= class_keyword identifier_name_opt base_clause_opt // case 391: { action.builder. consumeClassHead(false); break; } // - // Rule 392: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt + // Rule 392: class_head ::= class_keyword template_id_name base_clause_opt // case 392: { action.builder. - consumeClassHead(true); break; + consumeClassHead(false); break; } // - // Rule 393: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt + // Rule 393: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt // case 393: { action.builder. consumeClassHead(true); break; } // - // Rule 395: identifier_name_opt ::= $Empty + // Rule 394: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt // - case 395: { action.builder. + case 394: { action.builder. + consumeClassHead(true); break; + } + + // + // Rule 396: identifier_name_opt ::= $Empty + // + case 396: { action.builder. consumeEmpty(); break; } // - // Rule 399: visibility_label ::= access_specifier_keyword : + // Rule 400: visibility_label ::= access_specifier_keyword : // - case 399: { action.builder. + case 400: { action.builder. consumeVisibilityLabel(); break; } // - // Rule 400: member_declaration ::= declaration_specifiers_opt member_declarator_list ; + // Rule 401: member_declaration ::= declaration_specifiers_opt member_declarator_list ; // - case 400: { action.builder. + case 401: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 401: member_declaration ::= declaration_specifiers_opt ; + // Rule 402: member_declaration ::= declaration_specifiers_opt ; // - case 401: { action.builder. + case 402: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 404: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; + // Rule 405: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; // - case 404: { action.builder. + case 405: { action.builder. consumeMemberDeclarationQualifiedId(); break; } // - // Rule 410: member_declaration ::= ERROR_TOKEN + // Rule 411: member_declaration ::= ERROR_TOKEN // - case 410: { action.builder. + case 411: { action.builder. consumeDeclarationProblem(); break; } // - // Rule 418: member_declarator ::= declarator constant_initializer + // Rule 419: member_declarator ::= declarator constant_initializer // - case 418: { action.builder. + case 419: { action.builder. consumeMemberDeclaratorWithInitializer(); break; } // - // Rule 419: member_declarator ::= bit_field_declarator : constant_expression + // Rule 420: member_declarator ::= bit_field_declarator : constant_expression // - case 419: { action.builder. + case 420: { action.builder. consumeBitField(true); break; } // - // Rule 420: member_declarator ::= : constant_expression + // Rule 421: member_declarator ::= : constant_expression // - case 420: { action.builder. + case 421: { action.builder. consumeBitField(false); break; } // - // Rule 421: bit_field_declarator ::= identifier_name + // Rule 422: bit_field_declarator ::= identifier_name // - case 421: { action.builder. + case 422: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 422: constant_initializer ::= = constant_expression + // Rule 423: constant_initializer ::= = constant_expression // - case 422: { action.builder. + case 423: { action.builder. consumeInitializer(); break; } // - // Rule 428: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 429: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 428: { action.builder. + case 429: { action.builder. consumeBaseSpecifier(false, false); break; } // - // Rule 429: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name - // - case 429: { action.builder. - consumeBaseSpecifier(true, true); break; - } - - // - // Rule 430: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name + // Rule 430: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name // case 430: { action.builder. consumeBaseSpecifier(true, true); break; } // - // Rule 431: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name + // Rule 431: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name // case 431: { action.builder. + consumeBaseSpecifier(true, true); break; + } + + // + // Rule 432: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name + // + case 432: { action.builder. consumeBaseSpecifier(true, false); break; } // - // Rule 432: access_specifier_keyword ::= private - // - case 432: { action.builder. - consumeAccessKeywordToken(); break; - } - - // - // Rule 433: access_specifier_keyword ::= protected + // Rule 433: access_specifier_keyword ::= private // case 433: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 434: access_specifier_keyword ::= public + // Rule 434: access_specifier_keyword ::= protected // case 434: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 436: access_specifier_keyword_opt ::= $Empty + // Rule 435: access_specifier_keyword ::= public // - case 436: { action.builder. + case 435: { action.builder. + consumeAccessKeywordToken(); break; + } + + // + // Rule 437: access_specifier_keyword_opt ::= $Empty + // + case 437: { action.builder. consumeEmpty(); break; } // - // Rule 438: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > + // Rule 439: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > // - case 438: { action.builder. + case 439: { action.builder. consumeTemplateId(); break; } // - // Rule 439: conversion_function_id ::= operator conversion_type_id + // Rule 440: conversion_function_id ::= operator conversion_type_id // - case 439: { action.builder. + case 440: { action.builder. consumeConversionName(); break; } // - // Rule 440: conversion_type_id ::= type_specifier_seq conversion_declarator + // Rule 441: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 440: { action.builder. + case 441: { action.builder. consumeTypeId(true); break; } // - // Rule 441: conversion_type_id ::= type_specifier_seq + // Rule 442: conversion_type_id ::= type_specifier_seq // - case 441: { action.builder. + case 442: { action.builder. consumeTypeId(false); break; } // - // Rule 442: conversion_declarator ::= ptr_operator_seq + // Rule 443: conversion_declarator ::= ptr_operator_seq // - case 442: { action.builder. + case 443: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 448: mem_initializer ::= mem_initializer_name ( expression_list_opt ) + // Rule 449: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 448: { action.builder. + case 449: { action.builder. consumeConstructorChainInitializer(); break; } // - // Rule 449: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 450: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name // - case 449: { action.builder. + case 450: { action.builder. consumeQualifiedId(false); break; } // - // Rule 452: operator_function_id_name ::= operator_id_name < template_argument_list_opt > + // Rule 453: operator_function_id_name ::= operator_id_name < template_argument_list_opt > // - case 452: { action.builder. + case 453: { action.builder. consumeTemplateId(); break; } // - // Rule 453: operator_id_name ::= operator overloadable_operator + // Rule 454: operator_id_name ::= operator overloadable_operator // - case 453: { action.builder. + case 454: { action.builder. consumeOperatorName(); break; } // - // Rule 496: template_declaration ::= export_opt template < template_parameter_list > declaration + // Rule 497: template_declaration ::= export_opt template < template_parameter_list > declaration // - case 496: { action.builder. + case 497: { action.builder. consumeTemplateDeclaration(); break; } // - // Rule 497: export_opt ::= export + // Rule 498: export_opt ::= export // - case 497: { action.builder. + case 498: { action.builder. consumePlaceHolder(); break; } // - // Rule 498: export_opt ::= $Empty + // Rule 499: export_opt ::= $Empty // - case 498: { action.builder. + case 499: { action.builder. consumeEmpty(); break; } // - // Rule 502: template_parameter ::= parameter_declaration + // Rule 503: template_parameter ::= parameter_declaration // - case 502: { action.builder. + case 503: { action.builder. consumeTemplateParamterDeclaration(); break; } // - // Rule 503: type_parameter ::= class identifier_name_opt - // - case 503: { action.builder. - consumeSimpleTypeTemplateParameter(false); break; - } - - // - // Rule 504: type_parameter ::= class identifier_name_opt = type_id + // Rule 504: type_parameter ::= class identifier_name_opt // 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 + // Rule 505: type_parameter ::= class identifier_name_opt = type_id // - case 506: { action.builder. + case 505: { action.builder. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 507: type_parameter ::= template < template_parameter_list > class identifier_name_opt + // 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 508: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression + // Rule 509: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression // - case 508: { action.builder. + case 509: { action.builder. consumeTemplatedTypeTemplateParameter(true); break; } // - // Rule 509: template_id_name ::= identifier_name < template_argument_list_opt > + // Rule 510: template_id_name ::= identifier_name < template_argument_list_opt > // - case 509: { action.builder. + case 510: { action.builder. consumeTemplateId(); break; } // - // Rule 515: template_argument ::= type_id + // Rule 516: template_argument ::= type_id // - case 515: { action.builder. + case 516: { action.builder. consumeTemplateArgumentTypeId(); break; } // - // Rule 516: explicit_instantiation ::= template declaration + // Rule 517: explicit_instantiation ::= template declaration // - case 516: { action.builder. + case 517: { action.builder. consumeTemplateExplicitInstantiation(); break; } // - // Rule 517: explicit_specialization ::= template < > declaration + // Rule 518: explicit_specialization ::= template < > declaration // - case 517: { action.builder. + case 518: { action.builder. consumeTemplateExplicitSpecialization(); break; } // - // Rule 518: try_block ::= try compound_statement handler_seq + // Rule 519: try_block ::= try compound_statement handler_seq // - case 518: { action.builder. + case 519: { action.builder. consumeStatementTryBlock(); break; } // - // Rule 521: handler ::= catch ( exception_declaration ) compound_statement + // Rule 522: handler ::= catch ( exception_declaration ) compound_statement // - case 521: { action.builder. + case 522: { action.builder. consumeStatementCatchHandler(false); break; } // - // Rule 522: handler ::= catch ( ... ) compound_statement + // Rule 523: handler ::= catch ( ... ) compound_statement // - case 522: { action.builder. + case 523: { action.builder. consumeStatementCatchHandler(true); break; } // - // Rule 523: exception_declaration ::= type_specifier_seq declarator - // - case 523: { action.builder. - consumeDeclarationSimple(true); break; - } - - // - // Rule 524: exception_declaration ::= type_specifier_seq abstract_declarator + // Rule 524: exception_declaration ::= type_specifier_seq declarator // case 524: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 525: exception_declaration ::= type_specifier_seq + // Rule 525: exception_declaration ::= type_specifier_seq abstract_declarator // case 525: { action.builder. + consumeDeclarationSimple(true); break; + } + + // + // Rule 526: exception_declaration ::= type_specifier_seq + // + case 526: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 533: expression_parser_start ::= ERROR_TOKEN + // Rule 534: expression_parser_start ::= ERROR_TOKEN // - case 533: { action.builder. + case 534: { action.builder. consumeExpressionProblem(); break; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParserprs.java index da9ba090d47..6bbcb7d49df 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,481 +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,0,1,2,1,1,1,1,1,1, - 1,1,1,1,1,1,1,3,1,1, - 1,1,1,1,1,1,2,2,1,1, - 0,1,0,4,2,2,2,3,2,3, - 2,2,1,0,1,1,4,4,4,8, - 8,3,3,4,4,3,3,2,2,7, - 7,7,7,4,4,5,6,3,2,2, - 1,1,1,2,2,2,2,2,2,2, - 2,2,4,7,9,3,0,1,2,2, - 1,2,3,4,1,0,3,1,0,3, - 5,1,4,1,3,3,1,3,3,3, - 1,3,3,1,3,3,1,3,3,3, - 3,1,3,3,1,3,1,3,1,3, - 1,3,1,3,1,5,1,2,1,1, - 3,3,3,3,3,3,3,3,3,3, - 3,1,2,1,3,1,0,1,0,1, - 1,0,1,1,1,1,1,1,1,1, - 1,3,3,2,2,1,4,2,1,2, - 5,7,5,1,4,1,0,5,7,8, - 1,1,2,2,3,2,3,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,2,1,0,4,4,2,2,2, - 2,2,0,1,1,1,1,1,1,1, - 2,1,2,2,2,1,1,2,2,1, - 2,2,1,2,2,1,2,2,1,1, - 1,1,1,1,1,1,1,1,1,1, + 1,1,1,0,1,2,1,1,1,1, 1,1,1,1,1,1,1,1,1,3, - 4,4,5,2,4,5,4,5,6,1, - 3,1,0,1,3,1,1,1,6,5, - 7,6,1,0,6,5,6,4,1,3, - 1,0,1,1,2,1,3,1,3,1, - 1,1,1,3,9,2,2,3,2,3, - 1,5,1,2,2,1,0,1,1,1, - 4,1,2,1,1,2,3,1,1,1, - 3,2,1,2,2,9,8,2,1,3, - 1,3,1,0,1,0,2,1,1,3, - 1,3,2,1,5,8,1,2,3,1, - 5,4,3,1,3,1,1,5,5,4, - 4,5,5,1,0,1,1,1,2,4, - 2,2,1,5,1,1,1,1,1,1, - 1,2,1,0,1,3,1,2,3,2, - 1,2,2,1,0,1,3,3,5,5, - 4,1,1,1,1,0,1,5,2,2, - 1,2,2,1,0,1,3,4,3,1, - 1,5,2,1,1,3,3,1,1,1, + 1,1,1,1,1,1,1,1,2,2, + 1,1,0,1,0,4,2,2,2,3, + 2,3,2,2,1,0,1,1,4,4, + 4,8,8,3,3,4,4,3,3,2, + 2,7,7,7,7,4,4,5,6,3, + 2,2,1,1,1,2,2,2,2,2, + 2,2,2,2,4,7,9,3,0,1, + 2,2,1,2,3,4,1,0,3,1, + 0,3,5,1,4,1,3,3,1,3, + 3,3,1,3,3,1,3,3,1,3, + 3,3,3,1,3,3,1,3,1,3, + 1,3,1,3,1,3,1,5,1,2, + 1,1,3,3,3,3,3,3,3,3, + 3,3,3,1,2,1,3,1,0,1, + 0,1,1,0,1,1,1,1,1,1, + 1,1,1,3,3,2,2,1,4,2, + 1,2,5,7,5,1,4,1,0,5, + 7,8,1,1,2,2,3,2,3,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,2,1,0,4,4,2, + 2,2,2,2,0,1,1,1,1,1, + 1,1,2,1,2,2,2,1,1,2, + 2,1,2,2,1,2,2,1,2,2, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,3,4,4,5,2,4,5,4,5, + 6,1,3,1,0,1,3,1,1,1, + 6,5,7,6,1,0,6,5,6,4, + 1,3,1,0,1,1,2,1,3,1, + 3,1,1,1,1,3,9,2,2,3, + 2,3,1,5,1,2,2,1,0,1, + 1,1,4,1,2,1,1,2,3,1, + 1,1,3,2,1,2,2,9,8,2, + 1,3,1,3,1,0,1,0,2,1, + 1,3,1,3,2,1,5,8,1,2, + 3,1,5,4,3,1,3,1,1,5, + 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,2,2,7,1,0,1,3, - 1,1,2,4,2,4,7,9,5,1, - 3,1,0,1,1,2,4,4,1,2, - 5,5,3,3,1,4,3,1,0,1, - 3,1,1,-63,0,0,0,-53,0,0, + 1,1,1,1,2,2,7,1,0,1, + 3,1,1,2,4,2,4,7,9,5, + 1,3,1,0,1,1,2,4,4,1, + 2,5,5,3,3,1,4,3,1,0, + 1,3,1,1,-63,0,0,0,-264,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-137,0,0,0, - 0,0,0,0,-453,0,0,0,0,0, - 0,-125,0,0,0,-2,0,-66,-370,0, - 0,0,0,-138,0,0,0,0,0,-93, + 0,0,0,0,0,0,0,-65,0,0, + 0,0,0,0,0,-451,0,0,0,0, + 0,0,-125,0,0,0,0,0,-312,0, + 0,0,0,-120,0,0,0,0,0,-66, + -207,-93,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-377,0,0,0,-2,0, + -151,0,0,0,0,0,0,0,-128,0, + 0,0,0,0,0,-49,-58,0,-218,0, + 0,0,0,0,0,0,0,-72,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-147,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-339,0,0, - 0,-4,0,0,0,0,0,0,0,0, - 0,0,0,-5,0,-72,0,0,0,0, - 0,0,0,0,0,0,0,0,-128,0, - 0,-6,-403,0,-7,0,0,0,0,0, + 0,0,0,-350,-248,0,-232,0,0,0, 0,0,0,-116,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-8,-201,0,0,0,0, - 0,-49,-9,0,0,0,0,-16,0,0, - 0,-212,0,0,0,0,0,0,-117,0, + 0,0,0,0,0,-53,0,0,0,0, + -142,0,0,0,0,0,0,0,-262,-122, + -179,0,0,0,-129,0,0,0,0,-130, + -117,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-415, - 0,0,0,0,0,-142,0,0,0,0, - 0,0,-151,0,0,0,0,-130,-11,-148, - -12,0,0,0,-73,0,0,0,-13,0, + 0,0,-4,0,0,0,0,0,-417,0, + 0,0,0,-137,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,-354,0,-15,-58,0,0,-132,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,0,0,0,0,0,0,0,0,-319, - 0,0,0,0,0,-51,-114,0,0,0, - 0,-184,0,-247,0,0,0,0,-28,-131, - 0,0,-227,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-51,-62,0, + 0,0,0,0,-188,0,0,0,0,0, + -385,0,-320,0,0,-412,-226,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-10, - 0,0,0,0,0,0,0,-358,0,0, - 0,0,-29,0,0,-50,0,0,0,0, - 0,-519,0,0,0,-30,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -484,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-180,0,0,0,0,-54,-138, + 0,-16,0,0,0,0,-148,0,0,-5, + 0,0,0,-10,-518,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-180,0,0, - 0,0,-150,0,0,0,-31,0,0,0, - 0,0,0,0,0,-18,0,0,0,-288, - -509,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-482,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-6,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-32,0, - 0,0,-20,0,0,0,-33,0,0,0, + 0,0,0,0,0,0,0,0,-20,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-3,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-346, - 0,0,0,0,0,0,0,-323,0,0, - 0,0,0,-268,0,0,0,0,-361,0, - 0,0,-353,-54,0,0,0,0,0,-144, - 0,-285,0,0,0,0,0,0,0,0, + 0,-508,0,0,0,-7,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-457,0,0,0,0,0,-239,0, - 0,0,0,-325,0,0,0,-468,0,0, + 0,0,0,-285,0,0,0,0,-8,0, + 0,0,0,0,-239,0,0,0,-455,0, + -367,0,0,0,0,-9,0,0,0,0, + 0,0,-431,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-264,0,0,0, - 0,0,0,0,0,-274,0,0,0,0, - -34,-57,-65,0,0,0,0,-388,0,-179, - 0,0,0,-326,0,0,0,0,0,0, + 0,0,0,0,0,-131,0,0,0,0, + 0,0,0,-144,-11,0,0,0,0,0, + 0,-50,0,0,0,0,-408,0,0,0, + -150,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,-35,0,0,0, + 0,0,0,0,0,0,-12,0,0,0, + 0,0,0,0,-466,-118,0,0,0,0, + 0,0,-121,0,0,-282,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-378,0,0,0,-434,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-234,-114,0,0, + 0,0,-376,0,0,0,0,-322,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-36,0,0,0, - 0,0,-37,-186,0,0,0,0,-39,0, - 0,0,-38,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-40,0,0,0,0,0,0,0,-55, - 0,0,0,0,0,-56,-59,0,0,0, - 0,-41,0,0,0,-155,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-277, + 0,0,0,0,0,0,0,0,0,-153, + 0,0,0,-13,0,0,0,0,0,0, + 0,0,0,0,0,-155,0,-323,0,0, + 0,-193,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-252,0,0,0,0,0, - 0,0,0,-202,0,0,0,0,-67,-68, - 0,0,0,-95,0,0,0,-70,0,0, + 0,0,0,0,0,0,0,0,-306,-15, + 0,0,0,0,0,0,0,0,0,-39, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-71,0,0,0,0, - 0,-110,-271,0,0,-96,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-28,-211,-343,0, + 0,0,-304,-41,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-111,-312,0,0, - 0,0,0,-112,-113,0,0,-97,0,0, - 0,-301,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-29,0,0,0, + 0,0,0,0,-201,-134,0,0,0,0, + 0,-30,0,0,0,-95,0,0,0,-31, 0,0,0,0,0,0,0,0,0,0, - -208,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-121,-139,-140,0,0,-98, - 0,0,0,-337,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-219,0,0,0,0,0,0,0, - -141,-318,0,0,0,0,0,-156,-157,0, - 0,-99,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-32,-289,0,0, + 0,0,0,-33,-34,0,0,-96,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-158,0,0,0,0,0,0,-159, - -160,0,0,-100,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-35,-346, + 0,0,0,0,0,0,-334,0,0,-97, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-307,0,0,0, - 0,0,0,0,-161,-365,0,0,0,0, - -338,-162,-163,0,0,-101,0,0,0,-508, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-328,0, - 0,0,0,0,0,0,-164,-356,0,0, - 0,0,0,-165,-373,0,0,-102,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-184,0,0,0,0,0,0,0,0, + 0,-98,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-166,-357, - 0,0,0,0,0,-167,-168,0,0,-103, + 0,0,0,0,-318,0,0,0,0,0, + 0,0,0,-36,0,0,0,0,-375,0, + -362,0,0,-99,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-364,0,0,0, + 0,0,0,0,-37,-38,0,0,0,0, + -237,0,0,0,0,-100,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-393,0, + 0,0,0,0,0,0,0,-309,0,0, + 0,0,0,-40,-55,0,0,-101,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-395,0,0,0,0,0,-442,-169,0, - 0,-104,0,0,0,-170,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-250,0,0,0,0,0, - 0,0,-171,-418,0,0,0,0,0,-172, - -173,0,0,-105,0,0,0,-174,0,0, + -460,0,0,0,0,0,0,0,-56,-315, + 0,0,0,0,0,-59,-67,0,0,-102, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-175,-176,0,0,0,0, - -235,0,0,0,0,-135,0,0,0,-280, 0,0,0,0,0,0,0,0,0,0, + 0,-353,0,0,0,0,0,-68,-70,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,-177,-178,0,0, - 0,0,-220,0,0,0,-495,0,0,0, + 0,0,0,0,-494,0,0,0,0,0, + 0,0,-71,-354,0,0,0,0,0,-110, + -111,0,0,-104,0,0,0,-112,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-113,0,0,0, + 0,0,0,0,-298,-249,0,0,0,0, + 0,-139,-335,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,-411, - 0,0,0,0,0,-266,-181,-47,0,0, - 0,-182,-514,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-456,0, + 0,0,0,0,0,0,-140,-392,0,0, + 0,0,0,-141,-156,0,0,-135,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-183,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -321,0,0,0,-322,0,0,0,-193,0, + 0,0,0,0,0,0,0,0,-345,-316, + 0,0,0,0,-219,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-194,-199,0,0,0, - 0,-336,0,0,0,-200,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-157,-57,0,0,0,0,-158,-159,-123, + 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,-153,0, + 0,0,0,0,0,0,0,0,-510,0, + 0,0,0,0,0,0,0,-160,0,0, + 0,0,0,-161,0,0,0,-319,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-351,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-203,0,0,0,0,0, - 0,0,-348,-483,0,0,0,0,-383,0, + 0,0,0,0,0,0,0,0,-363,-162, + 0,0,0,0,-333,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-458,0,0,0,0,0,0,0,-297, - 0,0,0,0,0,-377,0,0,0,-214, - -60,0,0,0,0,0,-289,-217,-384,0, + 0,0,0,0,0,-163,0,0,0,0, + 0,-147,0,0,0,-164,-165,0,0,0, + 0,0,-269,-166,0,-348,0,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,0,0,0,-398,-167,0,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,0,-225, - 0,0,0,0,0,-445,0,0,0,0, + 0,0,0,0,0,-168,0,0,0,0, + 0,0,0,-169,0,0,0,0,0,-336, + 0,0,0,-170,-171,0,0,0,0,0, + -172,-173,-507,-381,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-226,0, + 0,0,0,0,0,0,-174,0,0,0, + 0,0,0,0,-411,-175,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,-189,0,0,0,0,-61,-228,-218, - 0,0,0,-366,-243,-107,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-176,0,0,0,0,0,-358,0,0, + 0,-177,-178,0,0,0,0,0,-181,0, + -182,-107,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-94,0,0,0,0,0,0,0, + 0,0,-186,-187,0,0,0,0,-94,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-245,0,0,0,0, - 0,0,0,-253,-267,0,-92,0,0,0, - -269,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-89,0,0, + 0,-183,0,0,0,0,0,0,0,-286, + -192,0,-92,0,0,0,-60,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,-89,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 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,-198,0,0,0,0, + -91,0,0,0,-199,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-202,0,0,0,0,-83,0, + 0,0,-272,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-213,0,0,0,-84,0,0,0,-216, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-224,0, + 0,0,-85,0,0,0,-225,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-227,0,0,0,-86, + 0,0,0,-241,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-423,0,0,0,0,-374,0,0, + 0,0,0,0,0,0,0,0,-243,-251, + -355,0,0,0,-325,0,-266,0,0,-143, + 0,0,0,-433,0,-265,-217,0,0,0, + 0,0,-189,-267,0,-268,0,-388,0,0, + 0,0,0,0,0,0,0,0,-278,-424, + 0,0,0,-440,0,-473,0,0,0,0, + 0,0,0,0,0,-214,0,0,0,0, + 0,0,0,0,0,0,0,-415,0,0, + 0,0,0,-236,0,0,-481,0,-108,-279, + -283,0,0,0,0,0,-369,0,0,0, + 0,0,0,0,0,0,0,0,0,-52, + 0,0,0,0,0,-284,-295,-299,0,0, + 0,0,0,0,-300,-307,0,-396,0,0, + 0,0,0,0,0,0,0,-48,0,0, + -308,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,-109,0, + 0,-78,0,0,0,-313,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,-124,-330,-347,0,-18,0,0,0,0, + 0,-444,0,0,0,-233,0,0,0,-238, + 0,0,-349,-228,-365,0,0,0,0,0, + 0,0,0,0,0,0,0,-242,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-273,0,0,0,0,0,0,-88,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-191,0,0, + 0,0,-368,-390,0,0,0,-397,0,0, + 0,0,-453,-194,0,-391,0,0,-288,0, + 0,0,0,-115,0,0,0,0,0,-489, + -471,0,0,0,0,-47,0,0,0,-394, + 0,0,0,0,-246,0,0,0,0,0, + 0,-146,0,0,0,0,-339,-435,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,-294,0,-331,0,-389,0, + 0,0,0,0,0,0,0,0,0,-395, + 0,-290,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-449,-1,-74,0, + 0,0,0,-401,0,0,0,0,0,0, + 0,0,0,0,-205,-403,-406,0,0,0, + 0,0,0,-413,0,0,0,0,0,0, + 0,0,0,-420,0,0,0,0,0,-421, + -441,0,0,0,0,-126,0,0,0,0, + 0,-185,0,0,0,-430,0,-443,0,0, + -445,-470,-210,-200,0,0,0,-446,0,-245, + 0,0,0,0,0,0,0,0,0,0, + -360,-297,-447,0,0,-136,0,0,0,0, + 0,0,-448,0,0,0,0,-276,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-450,0,0, + 0,0,-500,-472,-230,-465,0,0,0,0, + 0,-467,0,0,0,0,-468,0,0,0, + 0,0,0,0,0,0,0,-250,-152,0, + 0,0,0,-469,0,0,0,0,0,0, + 0,0,0,-149,0,0,-474,0,0,0, + 0,-454,0,0,0,0,0,-154,0,0, + 0,0,0,-502,-17,0,0,0,0,-261, + 0,0,-478,0,0,-190,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-203,-484,0,-119,0,0,0,0,0, + 0,0,0,0,-491,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-464,0,0,-506,-42,0,0,0,0, + 0,0,-231,-495,-212,-14,0,0,-501,0, + 0,0,0,0,0,0,0,0,0,-509, + -195,0,0,0,-514,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-476,0,0,0,0,0,0, + 0,0,0,0,0,-519,-69,0,-477,0, + 0,0,0,0,0,0,0,-317,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-252,0,0,0,0,0,-197, + 0,0,0,0,0,0,0,0,0,-511, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-75,0,-522,-43,0,-483, + 0,0,0,0,-439,0,0,-400,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-341,0,0,0,0,-240,0,-404, + 0,0,0,0,0,0,-258,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-235,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, + -79,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-311,0,0,0,0, + 0,0,0,0,0,0,0,0,-512,0, + 0,0,0,0,0,0,0,0,0,-80, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-247,-254,0,-196,0,0,0,-255, + 0,0,0,0,0,-256,-145,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,-493,0,0,0,0,0,0, + 0,-275,0,0,0,-405,0,0,0,-303, + 0,0,0,0,0,-81,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-82,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-257,0,0,-328,0,0,0, + 0,0,0,0,0,0,0,0,-259,0, + -260,-373,0,-427,0,0,0,0,0,-352, + 0,0,0,-337,0,-281,-515,0,-44,0, + 0,0,0,0,0,0,0,0,0,-293, + 0,0,-503,0,0,0,0,-425,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-516,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-372,0, + 0,0,0,0,0,-280,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -305,0,0,-291,0,0,0,0,0,0, + -344,0,0,0,0,0,0,0,0,0, + 0,0,-521,-310,0,0,0,0,0,0, + 0,0,0,0,0,-429,0,0,0,0, + 0,0,-292,0,0,0,-301,0,0,0, + 0,0,0,0,-383,0,0,0,0,0, + 0,0,0,0,0,-302,0,0,0,0, + -326,-45,-106,0,0,0,0,0,0,0, + -332,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-324,-329,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,-338,0,0,0,0,0, + 0,-22,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-23,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-24,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-25,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-26, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-27,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-64,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-76,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-77,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-133, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-208,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-504,0,0,0,0,0,0, + 0,0,0,0,-19,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-366,-475,-340,0,0, + 0,0,-204,0,-342,-356,0,0,0,0, + 0,0,0,-361,-384,0,0,0,0,0, + 0,0,0,0,-386,0,0,0,0,-274, + -414,-457,0,-46,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -371,0,0,-458,0,0,0,0,0,0, + -387,0,0,0,0,0,0,0,0,0, + 0,-407,-321,0,-410,0,0,0,0,0, + 0,0,0,-485,0,0,0,0,0,0, + -419,-409,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -402,0,0,0,0,0,0,0,-461,0, + 0,0,0,0,0,0,-426,0,-220,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-418,0,-422,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-378,0, + 0,0,0,-486,0,0,0,0,0,0, + 0,-459,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,-463,0,0,0,0,-209, + 0,0,0,0,-351,0,0,0,-488,0, + 0,0,0,-127,0,0,0,0,0,-327, + 0,-462,0,0,0,0,0,-452,0,0, + 0,0,-221,-479,0,0,0,0,-492,0, + 0,0,0,0,-229,0,-497,-436,0,0, + 0,0,-490,-499,0,0,0,0,-498,0, + -416,0,0,0,0,0,0,0,-517,0, + 0,0,-222,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,0,0,0, + 0,0,-520,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-487,0,0, 0,0,0,0,0,0,0,0,0,0, - -401,0,0,0,0,0,-90,0,0,0, -270,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-367, - 0,0,0,0,-91,0,0,0,0,0, + 0,0,0,0,-271,-359,0,0,0,0, + -244,-428,0,0,0,0,0,0,-434,0, + 0,0,-206,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-281,0,0, - 0,0,-83,0,0,0,-282,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-286,0,0,0,-84, + 0,0,0,0,0,0,0,0,-223,0, + -296,0,0,0,0,0,0,0,-215,0, 0,0,0,0,0,0,0,0,0,0, + 0,-263,0,0,0,-287,0,0,0,-357, + 0,-437,0,0,-399,0,-438,0,-480,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-396,0,0,0,-85,0,0,0, - -287,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-414, - 0,0,0,-86,0,0,0,-298,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-302,0,0,0, - -52,0,0,0,-146,0,0,0,0,-87, + 0,0,0,0,0,-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,-303,0,0,-309,0,0,-241,0, - 0,0,-385,0,0,0,-310,-123,0,0, - 0,-108,0,-372,0,0,-88,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-109,0,-311,0,0,0,0, - -136,0,-238,0,0,-244,0,0,0,0, - 0,0,0,0,0,0,-234,-187,-277,-279, - 0,0,-236,0,0,0,0,0,0,0, - -316,0,-19,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -115,0,0,0,0,-188,0,0,0,0, - -48,0,-317,-17,0,-511,0,0,-275,0, - -291,0,0,0,0,-436,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-246,-149,0,0,0,-512,-475, - -190,0,0,0,0,-462,0,0,-240,0, - 0,-333,0,0,0,0,0,0,0,-62, 0,0,0,0,0,0,0,0,0,0, - -154,0,0,0,-350,-430,-74,0,0,0, - 0,0,0,0,0,-392,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-352,0,0, - 0,0,0,0,0,-120,0,0,0,-129, - 0,0,0,0,-368,-143,0,0,0,0, - 0,0,-426,0,-204,-213,0,0,0,0, - 0,0,0,0,-371,-205,-393,0,0,0, - 0,0,0,0,0,0,0,-276,-229,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-242,0,0,-394,0,0,0, - 0,0,0,0,0,0,0,-152,0,0, - 0,0,-192,-433,-443,-195,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-397, - -191,0,0,0,0,0,0,-398,0,0, - -334,0,0,0,0,0,-404,-249,0,0, - 0,0,-406,0,0,0,0,0,0,0, - 0,0,-409,0,-416,0,0,0,0,-399, - 0,0,0,0,0,0,0,0,0,-256, - 0,0,0,0,0,0,0,-78,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-79,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-423,0,-314,0,0, - 0,0,0,0,0,0,0,0,-80,0, - 0,0,-263,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-196,0,0,0,-119,0,0,-451,-330, - 0,-424,0,0,0,0,-293,-206,0,-444, - 0,0,0,0,0,0,-446,-448,-449,0, - 0,0,0,-496,-320,0,0,0,0,0, - 0,0,0,0,-257,0,0,0,-248,0, - 0,0,-258,0,0,0,0,0,0,0, - 0,0,0,-259,0,0,-211,0,-1,-450, - 0,0,0,-472,-452,0,0,0,0,0, - 0,0,-467,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-344,0,0,0,0,0,0,-469,-470, - -294,0,0,0,0,0,-304,-360,0,0, - 0,0,0,0,0,0,0,0,0,-380, - 0,0,0,-501,0,-232,-471,0,0,0, - 0,0,-476,0,-480,0,0,0,0,0, - 0,0,0,0,0,0,0,-355,0,0, - 0,-486,0,-493,-502,0,-215,0,0,0, - -510,0,0,-254,0,0,0,-233,0,0, - 0,0,0,0,0,0,0,-255,0,0, - 0,-237,0,-503,0,0,-305,0,-262,0, - -251,0,0,0,-515,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-42,0,-454,0,0,0, - 0,0,0,-278,0,0,0,0,0,0, - 0,-447,0,0,0,0,0,0,-363,-427, - 0,0,0,-507,0,0,0,0,0,-198, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -513,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-284,0,0, - 0,0,0,0,0,0,0,-407,0,0, - 0,0,0,-283,0,0,0,-520,-473,0, - 0,0,0,-438,0,0,0,-329,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-400,0,0,-491,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-455,0,0,0,0, - 0,0,0,0,0,0,0,0,-523,-69, - 0,0,0,0,-296,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-386,0,0,0,-75,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-308,0,-313,-327,0,0,0,0, - 0,0,-295,0,0,0,0,0,0,-332, - 0,0,0,0,0,0,0,0,0,0, - 0,-81,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-82,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-331,0,0, - 0,-364,0,0,0,0,0,0,-381,0, - 0,0,0,0,0,0,0,0,0,-145, - -341,-343,0,0,0,0,-14,-340,-300,0, - 0,0,0,0,0,-465,0,0,-408,0, - 0,0,0,-345,-43,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-379,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-375,0,0,-359,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -387,0,0,0,0,-389,-428,0,0,0, - 0,0,0,0,-417,-315,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-459, - 0,0,0,0,0,-432,0,0,0,0, - 0,0,0,0,0,0,-306,0,0,0, - 0,0,-460,0,-405,0,0,0,0,-456, - 0,0,-466,0,0,0,0,0,0,0, - -390,0,0,0,0,-391,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-410,-413, - -422,0,0,0,0,0,-463,0,0,0, - 0,-21,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-488,0,0,0,0, - -22,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-23,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-24,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-25,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-26,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -27,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-64,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-76,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-77,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-133,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -209,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-505,0,0,0,0,0,0,0, - 0,0,0,-474,-106,-221,-425,0,0,0, - 0,-342,-122,-516,-461,0,-487,0,0,-464, - 0,0,-490,0,0,-402,0,-481,-44,-478, - -479,0,0,0,0,0,0,0,-485,0, - 0,0,0,0,0,0,0,-504,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-260,0,0,0,0, - -369,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-494,0,-419, - 0,0,0,0,0,0,0,0,0,0, - 0,-347,0,0,0,0,0,0,0,0, - 0,0,-498,0,0,0,0,0,0,0, - 0,0,0,0,-374,-45,0,-517,0,0, - -261,0,0,0,0,0,0,0,0,0, - 0,-499,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-522,0,0,0, - 0,0,0,0,0,0,0,0,-412,0, - -492,0,0,-420,0,-500,0,0,0,0, - 0,0,0,0,0,0,0,-437,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-518,-435,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-421,-222,0,-118,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-521, - 0,-127,0,0,0,0,0,0,0,-124, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-134,0,-477, - 0,0,0,0,-497,0,0,0,0,0, - 0,0,0,0,0,0,-185,0,0,0, - 0,0,0,0,0,0,0,0,-230,0, - 0,0,0,0,0,0,-231,0,0,-324, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-362,0,0,0,0,0, - 0,0,-382,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-223,0,0,0,0,-197, - 0,0,0,-126,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -489,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-273,0,0,0,0,0,-272,0,0, - 0,0,0,0,0,0,0,0,-376,0, - 0,0,0,0,0,0,0,0,0,-335, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-207, - 0,0,0,0,0,0,0,-216,0,0, - 0,0,-439,0,0,0,0,0,0,0, - 0,0,-431,0,-265,0,0,0,-290,0, - 0,0,0,-46,-210,0,0,0,0,0, - -292,0,-224,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -440,0,0,-441,0,0,0,0,0,-482, - 0,0,0,0,0,0,0,0,0,0, - -349,0,0,0,0,0,0,0,0,-299, - -429,0,0,0,0,0,0,0,0,0, - -506,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0 + 0 }; }; public final static short baseCheck[] = BaseCheck.baseCheck; @@ -522,521 +527,527 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface BaseAction { public final static char baseAction[] = { - 169,4,48,75,75,31,31,64,64,38, - 38,190,190,191,191,192,192,1,1,15, - 15,15,15,15,15,15,15,16,16,16, - 14,11,11,8,8,8,8,8,8,2, - 65,65,5,5,12,12,12,12,44,44, - 134,134,135,61,61,42,17,17,17,17, + 168,4,49,76,76,31,31,65,65,38, + 38,42,42,191,191,192,192,193,193,1, + 1,15,15,15,15,15,15,15,15,16, + 16,16,14,11,11,8,8,8,8,8, + 8,2,66,66,5,5,12,12,12,12, + 45,45,133,133,134,62,62,43,17,17, 17,17,17,17,17,17,17,17,17,17, - 17,17,17,17,17,17,136,136,136,112, - 112,18,18,18,18,18,18,18,18,18, - 18,18,18,18,19,19,170,170,171,171, - 172,139,139,140,140,137,137,141,138,138, - 20,20,21,21,22,22,22,24,24,24, - 24,25,25,25,26,26,26,27,27,27, - 27,27,28,28,28,29,29,30,30,33, - 33,34,34,35,35,36,36,41,41,40, - 40,40,40,40,40,40,40,40,40,40, - 40,40,39,32,142,142,96,96,173,173, - 91,193,193,76,76,76,76,76,76,76, - 76,76,77,77,77,73,73,59,59,174, - 174,78,78,78,102,102,175,175,79,79, - 79,176,176,80,80,80,80,80,81,81, - 83,83,83,83,83,83,83,49,49,49, - 49,49,113,113,114,114,50,177,23,23, - 23,23,23,47,47,86,86,86,86,86, - 149,149,144,144,144,144,144,145,145,145, - 146,146,146,147,147,147,148,148,148,87, - 87,87,87,87,88,88,88,13,13,13, - 13,13,13,13,13,13,13,13,100,118, - 118,118,118,118,118,116,116,116,117,117, - 151,151,150,150,120,120,103,68,68,69, - 70,52,46,152,152,53,51,85,85,153, - 153,143,143,121,122,122,74,74,154,154, - 62,62,62,57,57,56,63,63,71,71, - 55,55,55,89,89,98,97,97,60,60, - 58,58,54,54,43,101,101,101,92,92, - 92,93,93,94,94,94,95,95,104,104, - 104,106,106,105,105,194,194,90,90,179, - 179,179,179,179,124,45,45,156,178,178, - 125,125,125,125,180,180,37,37,115,115, - 126,126,126,126,107,107,119,119,119,127, - 128,128,128,128,128,128,128,128,128,128, - 128,159,159,158,158,181,181,160,160,160, - 160,161,182,109,108,108,183,183,162,162, - 162,162,99,99,99,184,184,9,9,10, - 185,185,186,163,155,155,164,164,165,166, - 166,6,6,7,167,167,167,167,167,167, - 167,167,167,167,167,167,167,167,167,167, - 167,167,167,167,167,167,167,167,167,167, - 167,167,167,167,167,167,167,167,167,167, - 167,167,167,167,167,167,66,72,72,168, - 168,130,130,131,131,131,131,131,131,3, - 132,132,129,129,110,110,84,67,82,157, - 157,111,111,187,187,187,133,133,123,123, - 188,188,169,169,881,39,1551,1517,1356,2826, - 34,814,31,35,799,30,32,1516,29,27, - 56,869,112,82,83,114,923,1693,997,936, - 1057,1049,1247,1211,1303,600,4100,1297,1313,1332, - 149,278,2146,2016,164,150,963,3062,296,2034, - 39,791,36,2786,1090,34,814,340,35,799, - 2360,39,791,36,237,1006,34,814,31,35, - 799,30,32,789,29,27,56,869,112,82, - 83,114,923,495,997,936,1057,1049,1247,1803, - 240,235,236,2052,39,791,36,4599,354,34, - 814,44,35,799,279,318,2661,323,2052,39, - 791,36,1115,623,34,814,2244,35,799,247, - 250,253,256,2588,29,355,1809,39,791,36, - 1515,2888,34,814,31,35,799,63,32,248, - 39,284,117,2080,4450,293,642,2833,3066,2816, - 4083,4330,4454,4322,1493,39,791,36,2541,1006, - 34,814,31,35,799,30,32,789,29,27, - 56,869,112,82,83,114,923,344,997,936, - 1057,1049,1247,1211,1303,381,1544,1297,1313,1332, - 149,4377,57,469,514,150,684,2760,2006,39, - 1347,47,1678,3495,46,814,3261,188,515,1493, - 39,791,36,2541,1006,34,814,31,35,799, - 30,32,789,29,27,56,869,112,82,83, - 114,923,344,997,936,1057,1049,1247,1211,1303, - 1660,334,1297,1313,1332,149,248,39,284,514, - 150,4570,2760,600,1398,2158,38,353,1356,205, - 994,557,67,515,510,1922,39,791,36,645, - 2888,34,814,31,35,799,62,32,347,584, - 557,350,2554,1937,733,2101,1942,3095,1493,39, - 791,36,2541,1006,34,814,31,35,799,30, - 32,789,29,27,56,869,112,82,83,114, - 923,344,997,936,1057,1049,1247,1211,1303,510, - 233,1297,1313,1332,149,3227,1353,979,514,150, - 4306,2760,1614,457,2124,39,282,4377,1966,1999, - 1356,1942,515,1761,39,791,36,2541,1006,34, - 814,31,35,799,30,32,789,29,27,56, - 869,112,82,83,114,923,344,997,936,1057, - 1049,1247,1211,1303,99,988,1297,1313,1332,149, - 890,1552,988,514,150,1938,2760,334,600,39, - 1390,387,1220,1091,48,2150,57,515,510,3503, - 739,66,2116,39,791,36,1251,4578,34,814, - 31,35,799,30,32,456,508,2026,315,435, - 1942,1559,39,791,36,428,1006,34,814,31, - 35,799,30,32,789,29,27,56,869,112, - 82,83,114,923,427,997,936,1057,1049,1247, - 1211,1303,453,511,1297,1313,1332,149,600,39, - 2219,380,150,1605,39,791,36,849,4578,34, - 814,31,35,799,65,32,1478,39,1390,387, - 2391,1632,39,791,36,383,1006,34,814,31, - 35,799,30,32,789,29,27,56,869,112, - 82,83,114,923,1720,997,936,1057,1049,1247, - 1211,1303,440,55,1297,1313,1332,149,1389,2457, - 578,380,150,2360,39,791,36,67,1006,34, - 814,31,35,799,30,32,789,29,27,56, - 869,112,82,83,91,381,384,1936,39,791, - 36,326,1006,34,814,31,35,799,30,32, - 789,29,27,56,869,112,82,83,114,923, - 2423,997,936,1057,1049,1247,1211,1303,600,2428, - 1297,1313,1332,149,1280,39,296,164,150,2052, - 39,791,36,2639,2038,34,814,341,35,799, - 1356,3094,1936,39,791,36,385,1006,34,814, - 31,35,799,30,32,789,29,27,56,869, - 112,82,83,114,923,494,997,936,1057,1049, - 1247,1211,1303,600,3205,1297,1313,1332,149,600, - 39,287,374,150,1936,39,791,36,2633,1006, - 34,814,31,35,799,30,32,789,29,27, - 56,869,112,82,83,114,923,1160,997,936, - 1057,1049,1247,1211,1303,4041,1160,1297,1313,1332, - 149,596,57,821,374,150,818,2576,2596,642, - 600,39,2158,2190,1936,39,791,36,291,1006, - 34,814,31,35,799,30,32,789,29,27, - 56,869,112,82,83,114,923,415,997,936, - 1057,1049,1247,1211,1303,3632,373,1297,1313,1332, - 149,389,2423,444,374,150,1873,39,791,36, - 388,1006,34,814,31,35,799,30,32,789, - 29,27,56,869,112,82,83,114,923,520, - 997,936,1057,1049,1247,1211,1303,912,372,1297, - 1313,1332,149,63,57,418,380,150,2859,1695, - 39,791,36,239,1006,34,814,31,35,799, - 30,32,789,29,27,56,869,112,82,83, - 114,923,1234,997,936,1057,1049,1247,1211,1303, - 1245,357,1297,1313,1332,149,1627,1134,370,148, - 150,528,1936,39,791,36,1356,1006,34,814, - 31,35,799,30,32,789,29,27,56,869, - 112,82,83,114,923,2311,997,936,1057,1049, - 1247,1211,1303,3590,1356,1297,1313,1332,149,978, - 1191,378,165,150,1936,39,791,36,1177,1006, - 34,814,31,35,799,30,32,789,29,27, - 56,869,112,82,83,114,923,4096,997,936, - 1057,1049,1247,1211,1303,444,1296,1297,1313,1332, - 149,57,1184,2144,161,150,1936,39,791,36, - 3227,1006,34,814,31,35,799,30,32,789, - 29,27,56,869,112,82,83,114,923,328, - 997,936,1057,1049,1247,1211,1303,1314,890,1297, - 1313,1332,149,3162,1316,1318,160,150,1936,39, - 791,36,1817,1006,34,814,31,35,799,30, - 32,789,29,27,56,869,112,82,83,114, - 923,1070,997,936,1057,1049,1247,1211,1303,50, - 2150,1297,1313,1332,149,937,1521,2132,159,150, - 1936,39,791,36,1356,1006,34,814,31,35, - 799,30,32,789,29,27,56,869,112,82, - 83,114,923,2458,997,936,1057,1049,1247,1211, - 1303,2015,1054,1297,1313,1332,149,3218,2517,2630, - 158,150,1936,39,791,36,623,1006,34,814, - 31,35,799,30,32,789,29,27,56,869, - 112,82,83,114,923,1468,997,936,1057,1049, - 1247,1211,1303,1241,76,1297,1313,1332,149,103, - 1712,1824,157,150,1936,39,791,36,623,1006, - 34,814,31,35,799,30,32,789,29,27, - 56,869,112,82,83,114,923,296,997,936, - 1057,1049,1247,1211,1303,243,1356,1297,1313,1332, - 149,1817,419,595,156,150,1936,39,791,36, - 2680,1006,34,814,31,35,799,30,32,789, - 29,27,56,869,112,82,83,114,923,296, - 997,936,1057,1049,1247,1211,1303,771,890,1297, - 1313,1332,149,3465,2103,2249,155,150,1936,39, - 791,36,638,1006,34,814,31,35,799,30, - 32,789,29,27,56,869,112,82,83,114, - 923,104,997,936,1057,1049,1247,1211,1303,2158, - 890,1297,1313,1332,149,3671,767,2552,154,150, - 1936,39,791,36,1119,1006,34,814,31,35, - 799,30,32,789,29,27,56,869,112,82, - 83,114,923,77,997,936,1057,1049,1247,1211, - 1303,520,890,1297,1313,1332,149,4160,2611,2578, - 153,150,1936,39,791,36,909,1006,34,814, - 31,35,799,30,32,789,29,27,56,869, - 112,82,83,114,923,1935,997,936,1057,1049, - 1247,1211,1303,772,890,1297,1313,1332,149,4268, - 1335,1736,152,150,1936,39,791,36,591,1006, - 34,814,31,35,799,30,32,789,29,27, - 56,869,112,82,83,114,923,1468,997,936, - 1057,1049,1247,1211,1303,1608,1789,1297,1313,1332, - 149,1370,39,285,151,150,1827,39,791,36, - 1160,1006,34,814,31,35,799,30,32,789, - 29,27,56,869,112,82,83,114,923,519, - 997,936,1057,1049,1247,1211,1303,1855,1901,1297, - 1313,2095,170,1936,39,791,36,2611,1006,34, - 814,31,35,799,30,32,789,29,27,56, - 869,112,82,83,114,923,3294,997,936,1057, - 1049,1247,1211,1303,288,1178,1297,1313,1332,149, - 2596,329,2140,146,150,2518,151,1629,600,39, - 1390,387,1360,2265,39,791,36,1384,1006,34, - 814,31,35,799,30,32,789,29,27,56, - 869,112,82,83,114,923,1689,997,936,1057, - 1049,1247,1211,1303,402,55,1297,1313,1332,149, - 1389,1160,857,195,150,2360,39,791,36,1088, - 1006,34,814,31,35,799,30,32,789,29, - 27,56,869,112,82,83,114,923,519,997, - 936,1057,1049,1247,1211,1303,1339,472,1297,1313, - 2095,170,2360,39,791,36,1708,1006,34,814, - 31,35,799,30,32,789,29,27,56,869, - 112,82,83,114,923,289,997,936,1057,1049, - 1247,1211,1303,356,1650,1297,1313,2095,170,1605, - 39,791,36,528,4578,34,814,31,35,799, - 64,32,2360,39,791,36,295,1006,34,814, - 31,35,799,30,32,789,29,27,56,869, - 112,82,83,114,923,1470,997,936,1057,1049, - 1247,1211,1303,1919,2596,1297,1313,2095,170,2360, - 39,791,36,1636,1006,34,814,31,35,799, - 30,32,789,29,27,56,869,112,82,83, - 114,923,2496,997,936,1057,1049,1247,1211,1303, - 2042,400,1297,1313,2095,170,2052,39,791,36, - 1882,2038,34,814,2371,35,799,2434,1949,2360, - 39,791,36,420,1006,34,814,31,35,799, - 30,32,789,29,27,56,869,112,82,83, - 114,923,4019,997,936,1057,1049,1247,1211,1303, - 1964,4098,1297,1313,2095,170,2406,39,791,36, - 419,1006,34,814,31,35,799,30,32,789, - 29,27,56,869,112,82,83,114,923,1982, - 997,936,1057,1049,1247,1211,1303,325,327,1297, - 1313,2095,170,600,39,3238,3196,528,2038,1164, - 943,39,1390,387,1320,2027,2360,39,791,36, - 422,1006,34,814,31,35,799,30,32,789, - 29,27,56,869,112,82,83,114,923,28, - 997,936,1057,1049,1247,1211,1303,278,94,1297, - 1818,108,404,2360,39,791,36,3197,1006,34, - 814,31,35,799,30,32,789,29,27,56, - 869,112,82,83,114,923,1823,997,936,1057, - 1049,1247,1211,1303,1997,2175,1810,2360,39,791, - 36,2345,1006,34,814,31,35,799,30,32, - 789,29,27,56,869,112,82,83,114,923, - 2314,997,936,1057,1049,1247,1211,1776,2360,39, - 791,36,78,1006,34,814,31,35,799,30, - 32,789,29,27,56,869,112,82,83,114, - 923,1320,997,936,1057,1049,1726,2360,39,791, - 36,648,1006,34,814,31,35,799,30,32, - 789,29,27,56,869,112,82,83,114,923, - 1160,997,936,1057,1727,2360,39,791,36,302, - 1006,34,814,31,35,799,30,32,789,29, - 27,56,869,112,82,83,114,923,1475,997, - 936,1057,1769,2360,39,791,36,2164,1006,34, - 814,31,35,799,30,32,789,29,27,56, - 869,112,82,83,114,923,1621,997,936,1635, - 2360,39,791,36,300,1006,34,814,31,35, - 799,30,32,789,29,27,56,869,112,82, - 83,114,923,1160,997,936,1642,2360,39,791, - 36,1778,1006,34,814,31,35,799,30,32, - 789,29,27,56,869,112,82,83,114,923, - 1320,997,936,1643,2360,39,791,36,2455,1006, - 34,814,31,35,799,30,32,789,29,27, - 56,869,112,82,83,114,923,2484,997,936, - 1677,2452,39,1390,387,57,2820,299,226,1077, - 2360,39,791,36,242,1006,34,814,31,35, - 799,30,32,789,29,27,56,869,112,82, - 83,114,923,2415,997,1684,2401,2836,278,600, - 39,2158,281,600,39,1390,387,2464,2029,39, - 1989,2893,2038,2921,1280,2877,296,2360,39,791, - 36,237,1006,34,814,31,35,799,30,32, - 789,29,27,56,869,112,82,83,114,923, - 431,997,1719,75,2038,55,2497,240,235,236, - 1389,2676,2233,1017,2428,2846,1136,39,791,36, - 4611,279,34,814,340,35,799,2156,57,2554, - 1017,2428,4389,2156,3095,74,247,250,253,256, - 2588,2480,352,2314,39,791,36,1515,1006,34, - 814,31,35,799,30,32,789,29,27,56, - 869,92,82,83,4599,3066,2816,4083,4330,4454, - 4322,2038,321,2157,323,2741,57,2576,316,1010, - 4397,1925,353,2197,57,1077,2496,353,534,2156, - 2491,1310,39,791,36,3070,1320,34,814,340, - 35,799,59,345,584,557,350,344,345,584, - 557,350,2835,166,1481,2038,162,2456,2541,2496, - 2478,57,352,2238,534,2647,1160,2760,1552,1370, - 39,282,2574,290,306,390,424,2636,2151,4599, - 1685,391,424,4251,4358,522,93,321,2157,323, - 290,2038,162,316,1010,1431,2162,1925,186,3302, - 2541,1077,353,1860,2437,3388,1210,39,791,36, - 4651,4377,34,814,340,35,799,2691,521,344, - 1981,2437,58,345,584,557,350,527,2576,166, - 307,426,2835,201,3374,367,2806,393,424,2760, - 688,39,1390,387,361,2058,2508,39,1390,387, - 530,353,2703,177,4599,2038,2038,534,3171,2245, - 2306,333,321,2157,323,2601,1373,2079,316,1010, - 2541,4377,345,584,557,350,234,55,2156,1774, - 770,343,1389,55,2017,162,351,96,1389,2636, - 1501,186,3302,2771,2038,4172,237,2650,209,220, - 579,3320,208,217,218,219,221,3320,776,39, - 1390,387,175,1506,57,1,57,2653,1077,534, - 2633,333,249,235,236,3358,174,309,313,189, - 173,176,177,178,179,180,3409,202,234,3043, - 1472,1014,39,1390,387,55,3787,162,2600,2510, - 1389,1935,1543,186,3302,716,361,2617,2038,2955, - 209,220,579,2607,208,217,218,219,221,2240, - 2874,2245,2306,2629,175,2652,330,336,55,187, - 1755,39,394,1389,3723,53,392,424,174,3445, - 2038,190,173,176,177,178,179,180,2360,39, - 791,36,1851,1006,34,814,31,35,799,30, - 32,789,29,27,56,869,112,82,83,114, - 923,73,1558,2360,39,791,36,2895,1006,34, - 814,31,35,799,30,32,789,29,27,56, - 869,112,82,83,114,923,2651,1559,1193,39, - 2775,36,4651,4377,34,814,340,35,799,2360, - 39,791,36,1774,1006,34,814,31,35,799, - 30,32,789,29,27,56,869,112,82,83, - 114,1593,688,39,1390,387,1206,3026,3309,265, - 1373,2518,2682,534,2541,4377,4599,2282,57,244, - 2637,2541,2734,333,321,2157,323,2638,2653,2686, - 316,1010,234,2636,1921,1166,39,1390,387,55, - 2636,162,1123,3043,1389,2038,53,186,3302,1147, - 39,2158,281,2038,209,220,579,4172,208,217, - 218,219,221,1169,2038,333,237,57,175,1418, - 2688,1795,55,1077,353,2710,72,1389,534,53, - 335,336,174,2110,71,3203,173,176,177,178, - 179,180,245,235,236,70,918,234,382,3568, - 361,162,776,39,1390,387,162,362,532,2712, - 89,2038,186,3302,2874,2245,2306,2038,1481,209, - 220,579,2541,208,217,218,219,221,415,2808, - 248,39,450,175,441,3725,57,2655,534,55, - 2709,2636,3510,1094,1389,2714,53,174,61,2103, - 182,173,176,177,178,179,180,234,1166,39, - 1390,387,1303,2146,2728,2723,162,600,39,1390, - 387,2727,186,3302,600,2537,2158,80,2102,209, - 220,579,2858,208,217,218,219,221,1147,39, - 2158,2573,57,175,529,55,2650,2038,534,57, - 1389,68,53,3717,55,964,4377,174,361,52, - 193,173,176,177,178,179,180,234,5149,2583, - 5149,5149,3676,2245,2306,57,162,2478,60,534, - 5149,1077,186,3302,600,39,2158,286,576,209, - 220,579,1320,208,217,218,219,221,344,2042, - 424,39,450,175,617,3725,3599,162,534,162, - 600,39,1390,387,2624,206,4101,174,2760,5149, - 3265,173,176,177,178,179,180,234,5149,2592, - 185,1484,39,791,36,4611,162,34,814,340, - 35,799,186,3302,443,2937,2943,278,57,209, - 220,579,4400,208,217,218,219,221,600,39, - 1390,387,5149,175,600,39,2158,283,705,57, - 5149,5149,534,534,600,39,296,174,2038,4599, - 198,173,176,177,178,179,180,321,2157,323, - 100,234,344,316,1010,430,1755,39,394,2479, - 162,162,353,534,5149,523,186,3302,194,324, - 280,5149,4501,209,220,579,1320,208,217,218, - 219,221,344,345,584,557,350,175,5149,793, - 57,162,524,534,534,57,5149,95,194,2931, - 108,174,4501,5149,192,173,176,177,178,179, - 180,5149,234,344,204,1166,39,1390,387,57, - 5149,162,162,1077,447,2937,2943,186,3302,2238, - 5149,3816,5149,2760,209,220,579,3733,208,217, - 218,219,221,57,2735,2293,57,3598,175,1100, - 3178,162,55,600,39,2158,2752,1389,1356,53, - 57,196,174,3072,4415,200,173,176,177,178, - 179,180,2360,39,791,36,3368,1006,34,814, - 31,35,799,30,32,789,29,27,56,869, - 112,82,83,114,1600,2360,39,791,36,5149, - 1006,34,814,31,35,799,30,32,789,29, - 27,56,869,112,82,83,114,1601,984,39, - 791,36,2038,4377,34,814,340,35,799,1235, - 39,2775,36,4651,4118,34,814,340,35,799, - 1553,57,57,5149,2541,3652,4539,1984,2540,1742, - 5149,2541,2541,107,4377,5149,600,39,296,600, - 39,1390,387,344,57,57,4599,5149,1262,2541, - 344,234,5149,334,321,2157,323,4599,5149,5149, - 317,1010,2496,732,5149,321,2157,323,344,353, - 856,316,1010,211,220,579,429,210,217,218, - 219,221,2661,1123,3599,57,2541,5149,2760,1218, - 347,584,557,350,212,214,216,297,298,1432, - 2381,1166,39,1390,387,234,2038,600,39,1390, - 387,222,213,215,5149,2038,1623,39,791,36, - 4651,377,34,814,340,35,799,211,220,579, - 2038,210,217,218,219,221,2694,3779,55,4109, - 2541,4195,2400,1389,449,53,2716,1774,212,214, - 216,297,298,1745,2381,1166,39,1390,387,234, - 1320,448,3609,1320,4599,222,213,215,102,416, - 2808,57,321,2157,323,1930,2581,5149,316,1010, - 4249,211,220,579,526,210,217,218,219,221, - 3388,3127,55,5149,453,4195,2483,1389,203,53, - 5149,305,212,214,216,297,298,3043,2381,57, - 57,57,439,4593,3706,4583,3677,2038,375,222, - 213,215,2360,1398,791,1426,5149,1006,34,814, - 31,35,799,30,32,789,29,27,56,869, - 112,82,83,90,332,336,2038,5149,379,4195, - 2746,2360,39,791,36,5149,1006,34,814,31, - 35,799,30,32,789,29,27,56,869,112, - 82,83,89,2360,39,791,36,3194,1006,34, - 814,31,35,799,30,32,789,29,27,56, - 869,112,82,83,88,2360,39,791,36,5149, - 1006,34,814,31,35,799,30,32,789,29, - 27,56,869,112,82,83,87,2360,39,791, - 36,5149,1006,34,814,31,35,799,30,32, - 789,29,27,56,869,112,82,83,86,2360, - 39,791,36,5149,1006,34,814,31,35,799, - 30,32,789,29,27,56,869,112,82,83, - 85,2360,39,791,36,5149,1006,34,814,31, - 35,799,30,32,789,29,27,56,869,112, - 82,83,84,2218,39,791,36,5149,1006,34, - 814,31,35,799,30,32,789,29,27,56, - 869,112,82,83,110,2360,39,791,36,5149, - 1006,34,814,31,35,799,30,32,789,29, - 27,56,869,112,82,83,116,2360,39,791, - 36,5149,1006,34,814,31,35,799,30,32, - 789,29,27,56,869,112,82,83,115,2360, - 39,791,36,5149,1006,34,814,31,35,799, - 30,32,789,29,27,56,869,112,82,83, - 113,2360,39,791,36,5149,1006,34,814,31, - 35,799,30,32,789,29,27,56,869,112, - 82,83,111,1464,39,791,36,4651,5149,34, - 814,340,35,799,57,57,57,57,534,1077, - 1077,1768,2737,2832,2570,57,2541,2634,1077,2104, - 57,2541,5149,2038,951,5149,2496,344,57,57, - 1320,1320,1897,2541,5149,234,162,162,162,1320, - 344,4599,5149,194,1811,2970,162,4501,1320,321, - 2157,323,344,168,3254,316,1010,211,220,579, - 4256,210,217,218,219,221,1925,770,207,205, - 1077,2585,2760,237,5149,2541,5149,301,212,214, - 216,297,298,1467,2381,377,4084,5149,2038,5149, - 2003,39,1390,387,234,517,213,215,166,252, - 235,236,1060,39,791,36,4093,4377,34,814, - 340,35,799,2038,309,313,211,220,579,3314, - 210,217,218,219,221,2618,57,55,1320,2541, - 2541,1925,1389,5149,53,1077,4198,212,214,216, - 297,298,2038,2381,2706,5149,2955,5149,234,344, - 4599,3384,5149,5149,516,213,215,334,321,2157, - 323,5149,3177,166,319,1010,227,1320,5149,2760, - 211,220,579,2739,210,217,218,219,221,2770, - 1474,57,4077,2541,2143,4063,2486,4320,2541,5149, - 3341,212,214,216,297,298,5149,2381,2159,39, - 1390,387,234,5149,4212,199,5149,2636,223,213, - 215,5149,2038,1623,39,791,36,4651,5149,34, - 814,340,35,799,211,220,579,3257,210,217, - 218,219,221,2813,57,55,68,2541,1077,5149, - 1389,4377,53,4237,5149,212,214,216,297,298, - 2038,2381,2514,39,1390,387,234,2820,5149,3606, - 2848,4599,308,213,215,243,162,5149,5149,321, - 2157,323,5149,3105,502,316,1010,5149,211,220, - 579,3439,210,217,218,219,221,770,68,278, - 57,333,5149,4377,534,1755,39,394,5149,212, - 214,216,297,298,5149,2381,5149,600,39,1390, - 387,5149,237,344,500,501,496,213,215,952, - 237,5149,162,2541,4595,862,5149,1028,5149,194, - 1774,2541,4595,4501,310,313,5149,5149,241,235, - 236,5149,234,333,55,1774,255,235,236,1389, - 234,2239,279,1060,39,791,36,5149,4377,34, - 814,340,35,799,1936,405,4528,248,251,254, - 257,2588,1936,405,4528,57,5149,716,1515,1077, - 600,39,1390,387,2874,406,407,408,297,298, - 3043,2381,4158,406,407,408,297,298,5149,2381, - 5149,4599,3231,5149,5149,3043,5149,162,334,321, - 2157,323,5149,5149,3113,317,1010,55,2315,5149, - 5149,5149,1389,5149,2749,5149,2315,3655,336,5149, - 5149,1623,39,791,36,4651,5149,34,814,340, - 35,799,3741,336,237,5149,409,411,5149,5149, - 5149,5149,1104,5149,409,411,2541,4595,1325,39, - 791,36,3028,5149,34,814,340,35,799,2143, - 258,235,236,2541,5149,234,5149,1197,4522,4599, - 1925,5149,5149,5149,1077,1206,4522,321,2157,323, - 5149,5149,2636,316,1010,5149,401,1936,405,4528, - 600,39,1390,387,5149,3225,4599,5149,600,39, - 1390,387,166,2673,318,2661,323,2541,406,407, - 408,297,298,1774,2381,600,39,1390,387,600, - 39,1390,387,5149,57,57,2636,55,2541,2541, - 5149,68,1389,57,864,55,4377,1077,5149,5149, - 1389,2315,578,5149,5149,5149,5149,344,344,502, - 5149,57,55,5149,57,2541,55,1389,2541,1627, - 57,1389,5149,1669,2541,162,3572,2760,2760,409, - 412,68,3124,3043,344,5149,4377,344,1475,2938, - 57,1925,5149,344,1077,1077,333,5149,5149,499, - 501,57,5149,502,2760,1077,5149,2760,5149,5149, - 5149,5149,3495,2760,5149,506,5149,5149,504,5149, - 4085,336,162,166,531,5149,5149,5149,5149,1524, - 3568,5149,5149,162,5149,5149,333,2920,5149,5149, - 4282,5149,5149,499,501,5149,5149,5149,5149,5149, - 5149,5149,5149,5149,5149,5149,5149,5149,5149,5149, - 5149,5149,5149,5149,5149,5149,5149,5149,5149,5149, - 4423,5149,5149,5149,5149,5149,5149,5149,5149,5149, - 5149,3143,5149,5149,5149,5149,5149,3700,5149,0, - 43,5167,0,43,5166,0,722,33,0,437, - 926,0,451,1212,0,42,5167,0,42,5166, - 0,2487,132,0,1,441,0,455,788,0, - 454,870,0,722,45,0,2545,97,0,722, - 386,0,39,37,0,36,38,0,43,783, - 0,1,910,0,1,5426,0,1,5425,0, - 1,5424,0,1,5423,0,1,5422,0,1, - 5421,0,1,5420,0,1,5419,0,1,5418, - 0,1,5417,0,1,5416,0,43,1,5167, - 0,43,1,5166,0,728,1,0,5388,246, - 0,5387,246,0,5488,246,0,5487,246,0, - 5415,246,0,5414,246,0,5413,246,0,5412, - 246,0,5411,246,0,5410,246,0,5409,246, - 0,5408,246,0,5426,246,0,5425,246,0, - 5424,246,0,5423,246,0,5422,246,0,5421, - 246,0,5420,246,0,5419,246,0,5418,246, - 0,5417,246,0,5416,246,0,43,246,5167, - 0,43,246,5166,0,5191,246,0,54,5167, - 0,54,5166,0,5155,1,0,5154,1,0, - 242,2701,0,387,36,0,36,387,0,386, - 33,0,33,386,0,49,5189,0,49,41, - 0,5167,54,0,5166,54,0,2487,134,0, - 2487,133,0,5480,442,0,1304,442,0,5191, - 1,0,43,1,0,53,41,0,1,98, - 0,41,53,0,498,2321,0,5191,233,1, - 0,43,233,1,0,233,414,0,41,5167, - 0,41,5166,0,1,5167,2,0,1,5166, - 2,0,41,5167,2,0,41,5166,2,0, - 5167,40,0,5166,40,0,5189,51,0,51, - 41,0,5159,403,0,5158,403,0,1,3686, - 0,1,783,0,1,3597,0,233,413,0, - 3496,320,0,5480,101,0,1304,101,0,39, - 79,0,1,5480,0,1,1304,0,43,1, - 5167,2,0,43,1,5166,2,0,43,5167, - 2,0,43,5166,2,0,283,4136,0,498, - 4141,0,233,1,0,233,225,0,233,224, - 0,1,2960,0,1,3406,0,5157,1,0, - 233,1,3087,0,5159,233,0,5158,233,0, - 3170,233,0,8,10,0,191,3378,0 + 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,169,169, + 170,170,171,138,138,139,139,136,136,140, + 137,137,20,20,21,21,22,22,22,24, + 24,24,24,25,25,25,26,26,26,27, + 27,27,27,27,28,28,28,29,29,30, + 30,33,33,34,34,35,35,36,36,41, + 41,40,40,40,40,40,40,40,40,40, + 40,40,40,40,39,32,141,141,97,97, + 172,172,92,194,194,77,77,77,77,77, + 77,77,77,77,78,78,78,68,68,60, + 60,173,173,79,79,79,103,103,174,174, + 80,80,80,175,175,81,81,81,81,81, + 82,82,84,84,84,84,84,84,84,50, + 50,50,50,50,114,114,115,115,51,176, + 23,23,23,23,23,48,48,87,87,87, + 87,87,148,148,143,143,143,143,143,144, + 144,144,145,145,145,146,146,146,147,147, + 147,88,88,88,88,88,89,89,89,13, + 13,13,13,13,13,13,13,13,13,13, + 100,119,119,119,119,119,119,117,117,117, + 118,118,150,150,149,149,121,121,104,72, + 72,73,74,53,47,151,151,54,52,86, + 86,152,152,142,142,122,123,123,69,69, + 153,153,63,63,63,58,58,57,64,64, + 67,67,56,56,56,90,90,99,98,98, + 61,61,59,59,55,55,44,101,101,101, + 93,93,93,94,94,95,95,95,96,96, + 105,105,105,107,107,106,106,195,195,91, + 91,178,178,178,178,178,125,46,46,155, + 177,177,126,126,126,126,179,179,37,37, + 116,127,127,127,127,108,108,120,120,120, + 157,158,158,158,158,158,158,158,158,158, + 158,158,182,182,180,180,181,181,159,159, + 159,159,160,183,110,109,109,184,184,161, + 161,161,161,102,102,102,185,185,9,9, + 10,186,186,187,162,154,154,163,163,164, + 165,165,6,6,7,166,166,166,166,166, + 166,166,166,166,166,166,166,166,166,166, + 166,166,166,166,166,166,166,166,166,166, + 166,166,166,166,166,166,166,166,166,166, + 166,166,166,166,166,166,166,70,75,75, + 167,167,129,129,130,130,130,130,130,130, + 3,131,131,128,128,111,111,85,71,83, + 156,156,112,112,188,188,188,132,132,124, + 124,189,189,168,168,958,41,1874,1867,1468, + 2590,36,1320,33,37,1274,32,34,1832,31, + 29,58,1367,114,84,85,116,1397,849,1420, + 1412,1454,1447,1489,1455,1615,1020,3274,1574,1616, + 1664,151,280,1664,1292,166,152,403,3251,2042, + 41,1167,38,1490,1086,36,1320,342,37,1274, + 73,2171,2339,41,1167,38,239,2776,36,1320, + 33,37,1274,32,34,1115,31,29,58,1367, + 114,84,85,116,1397,2874,1420,1412,1454,1447, + 1489,2175,242,237,238,1092,41,451,4636,935, + 4261,1020,1749,2490,40,281,323,2340,325,1092, + 41,286,318,1054,3506,239,30,2088,3791,2140, + 684,249,252,255,258,1960,2082,2082,1798,41, + 1167,38,1183,3129,36,1320,33,37,1274,65, + 34,251,237,238,2778,2070,773,480,3195,584, + 730,2772,3026,4394,1482,41,1167,38,2680,2776, + 36,1320,33,37,1274,32,34,1115,31,29, + 58,1367,114,84,85,116,1397,346,1420,1412, + 1454,1447,1489,1455,1615,2082,848,1574,1616,1664, + 151,1092,41,286,515,152,4573,3517,859,2652, + 1148,1020,41,2490,2509,1408,41,1748,389,516, + 848,1482,41,1167,38,2680,2776,36,1320,33, + 37,1274,32,34,1115,31,29,58,1367,114, + 84,85,116,1397,346,1420,1412,1454,1447,1489, + 1455,1615,57,1264,1574,1616,1664,151,1707,1601, + 2426,515,152,2680,1897,859,391,425,444,2984, + 2996,239,496,69,390,511,516,3320,1968,41, + 1167,38,2808,3129,36,1320,33,37,1274,64, + 34,2945,2269,454,2687,2271,458,254,237,238, + 1482,41,1167,38,2680,2776,36,1320,33,37, + 1274,32,34,1115,31,29,58,1367,114,84, + 85,116,1397,346,1420,1412,1454,1447,1489,1455, + 1615,356,511,1574,1616,1664,151,419,1235,1801, + 515,152,1176,1406,859,1020,41,3233,3105,2332, + 503,2294,2271,1020,2619,516,761,1749,41,1167, + 38,2680,2776,36,1320,33,37,1274,32,34, + 1115,31,29,58,1367,114,84,85,116,1397, + 346,1420,1412,1454,1447,1489,1455,1615,501,502, + 1574,1616,1664,151,1020,41,2517,515,152,2158, + 1014,859,2136,41,1706,49,355,1334,48,1320, + 414,511,516,68,500,2027,41,1167,38,2896, + 4619,36,1320,33,37,1274,32,34,2435,509, + 495,2271,347,920,784,352,1547,41,1167,38, + 345,2776,36,1320,33,37,1274,32,34,1115, + 31,29,58,1367,114,84,85,116,1397,741, + 1420,1412,1454,1447,1489,1455,1615,357,512,1574, + 1616,1664,151,2636,293,359,382,152,4402,2339, + 41,1167,38,529,2776,36,1320,33,37,1274, + 32,34,1115,31,29,58,1367,114,84,85, + 93,385,1616,41,1167,38,1293,2776,36,1320, + 33,37,1274,32,34,1115,31,29,58,1367, + 114,84,85,116,1397,441,1420,1412,1454,1447, + 1489,1455,1615,317,2312,1574,1616,1664,151,1535, + 50,2482,382,152,4402,1020,41,2490,283,1020, + 3173,2122,41,1167,38,2949,1797,36,1320,342, + 37,1274,386,1813,41,1167,38,383,2776,36, + 1320,33,37,1274,32,34,1115,31,29,58, + 1367,114,84,85,116,1397,848,1420,1412,1454, + 1447,1489,1455,1615,848,762,1574,1616,1664,151, + 4636,328,30,382,152,4402,741,2294,320,2746, + 325,1868,41,1167,38,1775,4619,36,1320,33, + 37,1274,67,34,1924,41,1167,38,387,2776, + 36,1320,33,37,1274,32,34,1115,31,29, + 58,1367,114,84,85,116,1397,2455,1420,1412, + 1454,1447,1489,1455,1615,2483,1163,1574,1616,1664, + 151,3032,457,66,166,152,1924,41,1167,38, + 4092,2776,36,1320,33,37,1274,32,34,1115, + 31,29,58,1367,114,84,85,116,1397,380, + 1420,1412,1454,1447,1489,1455,1615,480,1024,1574, + 1616,1664,151,66,3744,2304,376,152,1924,41, + 1167,38,335,2776,36,1320,33,37,1274,32, + 34,1115,31,29,58,1367,114,84,85,116, + 1397,358,1420,1412,1454,1447,1489,1455,1615,529, + 2652,1574,1616,1664,151,3358,1532,914,376,152, + 1868,41,1167,38,2464,4619,36,1320,33,37, + 1274,66,34,379,731,773,848,521,1924,41, + 1167,38,66,2776,36,1320,33,37,1274,32, + 34,1115,31,29,58,1367,114,84,85,116, + 1397,375,1420,1412,1454,1447,1489,1455,1615,66, + 2524,1574,1616,1664,151,290,392,425,376,152, + 1685,41,1167,38,3404,2776,36,1320,33,37, + 1274,32,34,1115,31,29,58,1367,114,84, + 85,116,1397,374,1420,1412,1454,1447,1489,1455, + 1615,3865,59,1574,1616,1664,151,2523,1858,2705, + 150,152,1826,73,1924,41,1167,38,377,2776, + 36,1320,33,37,1274,32,34,1115,31,29, + 58,1367,114,84,85,116,1397,65,1420,1412, + 1454,1447,1489,1455,1615,848,1163,1574,1616,1664, + 151,3032,318,372,167,152,1924,41,1167,38, + 2453,2776,36,1320,33,37,1274,32,34,1115, + 31,29,58,1367,114,84,85,116,1397,2170, + 1420,1412,1454,1447,1489,1455,1615,2069,1163,1574, + 1616,1664,151,3032,2007,144,163,152,1924,41, + 1167,38,335,2776,36,1320,33,37,1274,32, + 34,1115,31,29,58,1367,114,84,85,116, + 1397,330,1420,1412,1454,1447,1489,1455,1615,944, + 1163,1574,1616,1664,151,3032,3044,848,162,152, + 1924,41,1167,38,335,2776,36,1320,33,37, + 1274,32,34,1115,31,29,58,1367,114,84, + 85,116,1397,1223,1420,1412,1454,1447,1489,1455, + 1615,445,1351,1574,1616,1664,151,3032,3617,101, + 161,152,1924,41,1167,38,335,2776,36,1320, + 33,37,1274,32,34,1115,31,29,58,1367, + 114,84,85,116,1397,2652,1420,1412,1454,1447, + 1489,1455,1615,105,1560,1574,1616,1664,151,2705, + 4459,848,160,152,1924,41,1167,38,336,2776, + 36,1320,33,37,1274,32,34,1115,31,29, + 58,1367,114,84,85,116,1397,2652,1420,1412, + 1454,1447,1489,1455,1615,393,971,1574,1616,1664, + 151,1020,41,289,159,152,1924,41,1167,38, + 291,2776,36,1320,33,37,1274,32,34,1115, + 31,29,58,1367,114,84,85,116,1397,2652, + 1420,1412,1454,1447,1489,1455,1615,106,500,1574, + 1616,1664,151,3373,1909,1161,158,152,1924,41, + 1167,38,302,2776,36,1320,33,37,1274,32, + 34,1115,31,29,58,1367,114,84,85,116, + 1397,2652,1420,1412,1454,1447,1489,1455,1615,1424, + 1143,1574,1616,1664,151,3640,2601,1495,157,152, + 1924,41,1167,38,301,2776,36,1320,33,37, + 1274,32,34,1115,31,29,58,1367,114,84, + 85,116,1397,4645,1420,1412,1454,1447,1489,1455, + 1615,445,500,1574,1616,1664,151,3775,2680,1178, + 156,152,1924,41,1167,38,309,2776,36,1320, + 33,37,1274,32,34,1115,31,29,58,1367, + 114,84,85,116,1397,2648,1420,1412,1454,1447, + 1489,1455,1615,1294,500,1574,1616,1664,151,4165, + 851,938,155,152,1924,41,1167,38,1142,2776, + 36,1320,33,37,1274,32,34,1115,31,29, + 58,1367,114,84,85,116,1397,1240,1420,1412, + 1454,1447,1489,1455,1615,1090,1163,1574,1616,1664, + 151,3032,936,1090,154,152,1924,41,1167,38, + 384,2776,36,1320,33,37,1274,32,34,1115, + 31,29,58,1367,114,84,85,116,1397,66, + 1420,1412,1454,1447,1489,1455,1615,2569,500,1574, + 1616,1664,151,4441,2512,2456,153,152,1880,41, + 1167,38,3062,2776,36,1320,33,37,1274,32, + 34,1115,31,29,58,1367,114,84,85,116, + 1397,3358,1420,1412,1454,1447,1489,1455,1615,1364, + 943,1574,1616,2454,172,1924,41,1167,38,4414, + 2776,36,1320,33,37,1274,32,34,1115,31, + 29,58,1367,114,84,85,116,1397,78,1420, + 1412,1454,1447,1489,1455,1615,79,401,1574,1616, + 1664,151,2657,30,331,148,152,820,152,326, + 2130,41,2341,2858,102,3176,2250,41,1167,38, + 1405,2776,36,1320,33,37,1274,32,34,1115, + 31,29,58,1367,114,84,85,116,1397,66, + 1420,1412,1454,1447,1489,1455,1615,57,413,1574, + 1616,1664,151,1707,2159,865,197,152,2339,41, + 1167,38,436,2776,36,1320,33,37,1274,32, + 34,1115,31,29,58,1367,114,84,85,116, + 1397,3358,1420,1412,1454,1447,1489,1455,1615,1984, + 2347,1574,1616,2454,172,2339,41,1167,38,523, + 2776,36,1320,33,37,1274,32,34,1115,31, + 29,58,1367,114,84,85,116,1397,2603,1420, + 1412,1454,1447,1489,1455,1615,2454,405,1574,1616, + 2454,172,1536,41,1167,38,2463,579,36,1320, + 46,37,1274,1736,666,1784,2339,41,1167,38, + 297,2776,36,1320,33,37,1274,32,34,1115, + 31,29,58,1367,114,84,85,116,1397,1308, + 1420,1412,1454,1447,1489,1455,1615,1984,1073,1574, + 1616,2454,172,2339,41,1167,38,1581,2776,36, + 1320,33,37,1274,32,34,1115,31,29,58, + 1367,114,84,85,116,1397,2650,1420,1412,1454, + 1447,1489,1455,1615,2653,304,1574,1616,2454,172, + 1536,41,1167,38,1530,231,36,1320,2039,37, + 1274,1990,219,2757,2339,41,1167,38,421,2776, + 36,1320,33,37,1274,32,34,1115,31,29, + 58,1367,114,84,85,116,1397,1332,1420,1412, + 1454,1447,1489,1455,1615,1984,1999,1574,1616,2454, + 172,2383,41,1167,38,420,2776,36,1320,33, + 37,1274,32,34,1115,31,29,58,1367,114, + 84,85,116,1397,1658,1420,1412,1454,1447,1489, + 1455,1615,2089,228,1574,1616,2454,172,1536,41, + 1167,38,2109,2167,36,1320,343,37,1274,1349, + 1658,1511,2339,41,1167,38,423,2776,36,1320, + 33,37,1274,32,34,1115,31,29,58,1367, + 114,84,85,116,1397,521,1420,1412,1454,1447, + 1489,1455,1615,30,30,1574,2207,2794,4425,2339, + 41,1167,38,3134,2776,36,1320,33,37,1274, + 32,34,1115,31,29,58,1367,114,84,85, + 116,1397,1702,1420,1412,1454,1447,1489,1455,1615, + 1182,1669,2181,2339,41,1167,38,2158,2776,36, + 1320,33,37,1274,32,34,1115,31,29,58, + 1367,114,84,85,116,1397,2158,1420,1412,1454, + 1447,1489,1455,2174,2339,41,1167,38,4070,2776, + 36,1320,33,37,1274,32,34,1115,31,29, + 58,1367,114,84,85,116,1397,30,1420,1412, + 1454,1447,2128,2339,41,1167,38,329,2776,36, + 1320,33,37,1274,32,34,1115,31,29,58, + 1367,114,84,85,116,1397,160,1420,1412,1454, + 2156,2339,41,1167,38,1971,2776,36,1320,33, + 37,1274,32,34,1115,31,29,58,1367,114, + 84,85,116,1397,1893,1420,1412,1454,2164,2339, + 41,1167,38,480,2776,36,1320,33,37,1274, + 32,34,1115,31,29,58,1367,114,84,85, + 116,1397,1937,1420,1412,2004,2339,41,1167,38, + 2707,2776,36,1320,33,37,1274,32,34,1115, + 31,29,58,1367,114,84,85,116,1397,2246, + 1420,1412,2040,2339,41,1167,38,2580,2776,36, + 1320,33,37,1274,32,34,1115,31,29,58, + 1367,114,84,85,116,1397,1348,1420,1412,2076, + 2339,41,1167,38,239,2776,36,1320,33,37, + 1274,32,34,1115,31,29,58,1367,114,84, + 85,116,1397,262,1420,1412,2086,535,1536,41, + 1167,38,394,425,36,1320,2127,37,1274,1729, + 2161,1020,41,1748,389,73,236,1595,41,298, + 2465,41,1748,389,1984,164,567,1247,41,1748, + 389,188,2782,30,2745,3358,421,677,588,211, + 222,1071,4242,210,219,220,221,223,429,1741, + 1608,41,451,177,1,4261,2156,57,535,3721, + 535,176,308,1707,280,591,1020,41,1748,389, + 191,175,178,179,180,181,182,236,500,4433, + 4225,2258,3320,4569,2147,2619,164,2294,164,2158, + 1981,2116,188,2782,188,2782,3358,1595,2876,298, + 211,222,1071,57,210,219,220,221,223,54, + 2427,41,1748,389,177,735,2324,2356,2773,189, + 77,1319,176,244,203,2263,2111,2580,2468,41, + 395,192,175,178,179,180,181,182,2146,3721, + 80,2797,1144,2339,41,1167,38,280,2776,36, + 1320,33,37,1274,32,34,1115,31,29,58, + 1367,114,84,85,116,1397,2624,1420,2087,2158, + 168,239,2339,41,1167,38,2603,2776,36,1320, + 33,37,1274,32,34,1115,31,29,58,1367, + 114,84,85,116,1397,2457,1875,242,237,238, + 76,1319,1292,2722,306,292,1733,41,1748,389, + 281,327,1984,448,2984,2996,2607,41,287,529, + 2607,41,284,2756,1978,1778,249,252,255,258, + 1960,2890,204,1260,2660,2884,3014,1183,2101,41, + 1167,38,1448,57,36,1320,342,37,1274,1707, + 187,590,480,3195,584,730,2772,3026,4394,2339, + 41,1167,38,239,2776,36,1320,33,37,1274, + 32,34,1115,31,29,58,1367,114,84,85, + 116,1397,3552,1420,2094,3170,3706,4636,1663,257, + 237,238,1217,2739,2430,323,2340,325,2468,41, + 395,318,1054,1984,30,355,2796,2686,2654,1737, + 41,1167,38,4400,2158,36,1320,342,37,1274, + 2675,30,332,338,535,535,1020,41,1748,389, + 2396,347,920,784,352,2432,41,2490,283,2661, + 354,206,30,346,346,61,1144,2781,1020,41, + 298,2680,164,164,1020,41,1748,389,4636,196, + 196,393,425,57,4528,4528,323,2340,325,1707, + 236,1218,318,1054,3235,2581,355,2070,3791,1310, + 41,1167,38,1490,3032,36,1320,342,37,1274, + 2800,432,587,213,222,1071,2680,212,219,220, + 221,223,347,920,784,352,3020,349,1416,2146, + 3192,535,1144,1144,2805,2808,369,214,216,218, + 299,300,2606,198,4334,30,2801,2831,4636,4561, + 236,518,215,217,2817,335,323,2340,325,164, + 164,168,318,1054,2818,188,2782,533,876,3358, + 2823,2827,3222,211,222,1071,2006,210,219,220, + 221,223,1020,41,1748,389,30,177,2832,3731, + 1144,88,436,30,1324,176,535,675,2833,3032, + 2610,41,284,364,3147,175,178,179,180,181, + 182,2581,1987,2839,3663,236,1015,3032,4269,57, + 4153,311,315,2843,164,1707,3158,2536,2147,2619, + 188,2782,96,3061,3358,110,2687,239,211,222, + 1071,2215,210,219,220,221,223,354,2844,914, + 336,3004,177,523,30,30,2690,535,535,2463, + 176,355,2871,260,237,238,3763,175,3062,184, + 175,178,179,180,181,182,236,346,2684,1591, + 41,1748,389,355,2835,164,164,349,920,784, + 352,188,2782,196,2158,3358,629,1932,4528,211, + 222,1071,1984,210,219,220,221,223,2158,347, + 920,784,352,177,610,30,57,3192,535,535, + 1978,176,1707,2848,649,95,1876,41,1748,389, + 195,175,178,179,180,181,182,236,346,60, + 205,2597,2158,1614,2636,1208,164,164,97,292, + 104,110,188,2782,2366,2872,3358,4389,246,859, + 211,222,1071,57,210,219,220,221,223,1707, + 2347,55,1984,353,177,697,30,1565,2660,535, + 535,3170,176,2731,2727,2158,1974,2822,2786,2850, + 2680,3255,175,178,179,180,181,182,236,346, + 2862,1408,41,1748,389,2715,239,164,164,346, + 307,52,2482,188,2782,2739,98,3358,337,338, + 859,211,222,1071,1984,210,219,220,221,223, + 858,2659,247,237,238,177,784,30,57,1984, + 535,535,5202,176,1707,5202,55,5202,2438,41, + 1748,389,200,175,178,179,180,181,182,236, + 346,5202,209,1621,1020,2688,2490,82,164,164, + 1020,41,1748,389,188,2782,2366,207,3358,5202, + 66,859,211,222,1071,57,210,219,220,221, + 223,1707,3144,55,5202,30,177,871,30,1144, + 1984,535,2680,5202,176,2160,5202,280,2704,5202, + 2581,5202,2563,194,175,178,179,180,181,182, + 236,346,3358,1591,41,1748,389,164,2158,164, + 1020,41,1748,389,1286,188,2782,2146,303,3358, + 522,1144,859,211,222,1071,5202,210,219,220, + 221,223,454,1790,30,5202,5202,177,3078,3646, + 57,2432,41,2490,2695,176,1707,431,55,168, + 282,5202,440,190,202,175,178,179,180,181, + 182,2339,41,1167,38,2568,2776,36,1320,33, + 37,1274,32,34,1115,31,29,58,1367,114, + 84,85,116,1397,5202,1952,1460,41,2774,38, + 1490,3032,36,1320,342,37,1274,520,5202,1676, + 41,1167,38,1448,5202,36,1320,342,37,1274, + 2339,41,1167,38,3767,2776,36,1320,33,37, + 1274,32,34,1115,31,29,58,1367,114,84, + 85,116,1958,2158,2158,4636,1020,41,1748,389, + 2158,1175,335,323,2340,325,2158,1180,4636,318, + 1054,2680,2468,41,395,674,323,2340,325,5202, + 5202,5202,318,1054,3660,75,355,5202,524,5202, + 346,74,5202,57,2160,5202,3731,73,5202,1707, + 5202,2790,1020,41,2490,288,1020,41,1748,389, + 1978,1368,347,920,784,352,2339,41,1167,38, + 525,2776,36,1320,33,37,1274,32,34,1115, + 31,29,58,1367,114,84,85,116,1959,2339, + 41,1167,38,430,2776,36,1320,33,37,1274, + 32,34,1115,31,29,58,1367,114,84,85, + 116,1998,5202,5202,2158,416,2793,1060,41,1167, + 38,3170,3032,36,1320,342,37,1274,5202,2146, + 3250,30,1601,1144,2605,3560,2680,1909,2680,5202, + 2438,41,1748,389,2587,72,30,2730,2680,30, + 4223,1144,5202,2680,5202,2808,520,346,334,338, + 30,168,5202,1984,2947,528,4636,236,1020,41, + 1748,389,346,336,323,2340,325,57,859,164, + 319,1054,1984,1707,355,55,170,3043,5202,531, + 213,222,1071,859,212,219,220,221,223,2693, + 2183,3647,2924,2680,1791,450,1020,41,2490,285, + 349,920,784,352,214,216,218,299,300,2606, + 229,30,236,503,2158,3644,3786,5202,224,215, + 217,1209,41,1167,38,5202,3032,36,1320,342, + 37,1274,5202,1984,2718,213,222,1071,1369,212, + 219,220,221,223,5202,3835,2762,5202,4201,1607, + 2680,500,502,1020,41,2490,2773,2158,5202,214, + 216,218,299,300,2606,2438,41,1748,389,236, + 4636,201,5202,224,215,217,2158,336,323,2340, + 325,2158,30,30,321,1054,2680,1144,63,2900, + 5202,2146,213,222,1071,1144,212,219,220,221, + 223,5202,57,4201,1649,346,5202,62,1707,4493, + 55,5202,326,4204,5202,164,214,216,218,299, + 300,2606,2182,168,30,30,859,3380,4640,4556, + 224,215,217,2339,1749,1167,1783,1798,2776,36, + 1320,33,37,1274,32,34,1115,31,29,58, + 1367,114,84,85,92,30,5202,5202,5202,3699, + 4201,1691,2339,41,1167,38,5202,2776,36,1320, + 33,37,1274,32,34,1115,31,29,58,1367, + 114,84,85,91,2339,41,1167,38,4164,2776, + 36,1320,33,37,1274,32,34,1115,31,29, + 58,1367,114,84,85,90,2339,41,1167,38, + 5202,2776,36,1320,33,37,1274,32,34,1115, + 31,29,58,1367,114,84,85,89,2339,41, + 1167,38,5202,2776,36,1320,33,37,1274,32, + 34,1115,31,29,58,1367,114,84,85,88, + 2339,41,1167,38,5202,2776,36,1320,33,37, + 1274,32,34,1115,31,29,58,1367,114,84, + 85,87,2339,41,1167,38,5202,2776,36,1320, + 33,37,1274,32,34,1115,31,29,58,1367, + 114,84,85,86,2202,41,1167,38,5202,2776, + 36,1320,33,37,1274,32,34,1115,31,29, + 58,1367,114,84,85,112,2339,41,1167,38, + 5202,2776,36,1320,33,37,1274,32,34,1115, + 31,29,58,1367,114,84,85,118,2339,41, + 1167,38,5202,2776,36,1320,33,37,1274,32, + 34,1115,31,29,58,1367,114,84,85,117, + 2339,41,1167,38,5202,2776,36,1320,33,37, + 1274,32,34,1115,31,29,58,1367,114,84, + 85,115,2339,41,1167,38,5202,2776,36,1320, + 33,37,1274,32,34,1115,31,29,58,1367, + 114,84,85,113,1526,41,1167,38,1490,5202, + 36,1320,342,37,1274,2295,41,1167,38,5202, + 2776,36,1320,33,37,1274,32,34,1115,31, + 29,58,1367,94,84,85,2632,30,30,5202, + 2680,535,3632,1598,5202,30,30,2680,3032,1579, + 871,5202,5202,4636,2158,2438,41,1748,389,236, + 346,323,2340,325,5202,2158,2808,318,1054,164, + 2005,2158,2158,876,30,3298,196,5202,2680,5202, + 5202,4528,213,222,1071,109,212,219,220,221, + 223,2664,57,5202,2726,2680,4222,346,1707,335, + 55,30,2594,449,5202,1127,214,216,218,299, + 300,2606,30,1978,236,30,4562,3556,859,3756, + 517,215,217,5202,674,527,311,315,2680,1817, + 5202,30,2807,3044,363,4428,2680,213,222,1071, + 4419,212,219,220,221,223,3682,346,3378,2544, + 2579,2438,41,1748,389,236,3004,5202,5202,2158, + 5202,214,216,218,299,300,2606,2146,4434,30, + 5202,1144,1700,1144,3170,225,215,217,213,222, + 1071,5202,212,219,220,221,223,2852,57,30, + 381,2680,5202,3355,1707,5202,55,5202,5202,168, + 5202,164,214,216,218,299,300,2606,3504,5202, + 236,4156,338,3668,5202,5202,310,215,217,1470, + 41,2774,38,1490,2158,36,1320,342,37,1274, + 5202,427,30,213,222,1071,2657,212,219,220, + 221,223,2042,41,1167,38,1490,5202,36,1320, + 342,37,1274,5202,2765,3103,5202,214,216,218, + 299,300,2606,5202,4182,1020,41,298,4636,5202, + 30,497,215,217,2680,2005,323,2340,325,2158, + 3298,5202,318,1054,2485,41,1748,389,674,735, + 1598,4636,30,346,2680,3032,956,245,2156,323, + 2340,325,1144,30,30,318,1054,1144,3544,2158, + 3164,876,4439,2808,859,1030,5202,2158,1670,2680, + 4632,280,2680,30,2703,3503,5202,4114,3469,2158, + 164,2490,41,1748,389,164,208,3289,236,2158, + 3225,2808,3510,30,5202,239,335,1144,1989,1209, + 41,1167,38,5202,3032,36,1320,342,37,1274, + 3330,539,406,4541,312,315,5202,5202,57,3350, + 3743,243,237,238,1707,164,55,1700,417,2793, + 3617,363,3516,2158,281,407,408,409,299,300, + 2606,5202,5202,2918,5202,3378,2544,2579,4636,5202, + 250,253,256,259,1960,336,323,2340,325,503, + 5202,1183,319,1054,3347,5202,5202,2596,2042,41, + 1167,38,1490,5202,36,1320,342,37,1274,5202, + 5202,1368,41,1167,38,3456,428,36,1320,342, + 37,1274,5202,5202,5202,1105,1978,500,502,2680, + 4632,2040,1978,5202,5202,2680,5202,5202,5202,2597, + 41,1748,389,1020,41,1748,389,4636,236,402, + 5202,5202,410,412,2808,323,2340,325,5202,5202, + 4636,318,1054,5202,5202,3106,5202,3239,320,2746, + 325,539,406,4541,5202,729,57,4555,5202,30, + 57,30,1707,1144,55,1144,1707,3170,3050,1020, + 41,1748,389,3170,5202,407,408,409,299,300, + 2606,4375,1020,41,1748,389,1020,41,1748,389, + 2040,164,30,164,2680,66,2680,30,3614,30, + 1497,2680,363,2680,4211,338,57,2596,5202,5202, + 4342,338,1707,2808,590,346,3724,2544,2579,57, + 346,5202,346,57,5202,1707,30,1373,5202,1707, + 1144,2585,5202,5202,5202,5202,859,3358,5202,5202, + 5202,859,5202,859,3744,5202,5202,507,5202,5202, + 5202,5202,505,5202,532,379,5202,5202,164,5202, + 5202,5202,410,413,5202,4449,5202,5202,5202,5202, + 5202,5202,5202,5202,5202,5202,5202,5202,5202,5202, + 5202,363,5202,5202,5202,5202,5202,5202,5202,5202, + 5202,5202,5202,5202,5202,4175,2544,2579,5202,5202, + 5202,5202,5202,5202,5202,5202,5202,5202,5202,5202, + 5202,5202,5202,5202,5202,5202,5202,5202,5202,5202, + 5202,5202,5202,5202,5202,5202,5202,5202,5202,5202, + 5202,5202,5202,5202,5202,5202,5202,5202,5202,5202, + 5202,5202,5202,5202,5202,5202,5202,5202,5202,5202, + 4299,5202,0,45,5222,0,45,5221,0,646, + 35,0,438,1122,0,452,1953,0,44,5222, + 0,44,5221,0,2513,134,0,1,442,0, + 456,740,0,455,1106,0,646,47,0,2912, + 99,0,646,388,0,41,39,0,38,40, + 0,45,631,0,1,934,0,1,5481,0, + 1,5480,0,1,5479,0,1,5478,0,1, + 5477,0,1,5476,0,1,5475,0,1,5474, + 0,1,5473,0,1,5472,0,1,5471,0, + 45,1,5222,0,45,1,5221,0,922,1, + 0,5443,248,0,5442,248,0,5543,248,0, + 5542,248,0,5470,248,0,5469,248,0,5468, + 248,0,5467,248,0,5466,248,0,5465,248, + 0,5464,248,0,5463,248,0,5481,248,0, + 5480,248,0,5479,248,0,5478,248,0,5477, + 248,0,5476,248,0,5475,248,0,5474,248, + 0,5473,248,0,5472,248,0,5471,248,0, + 45,248,5222,0,45,248,5221,0,5246,248, + 0,56,5222,0,56,5221,0,5208,1,0, + 5207,1,0,244,2708,0,389,38,0,38, + 389,0,388,35,0,35,388,0,51,5244, + 0,51,43,0,5222,56,0,5221,56,0, + 2513,136,0,2513,135,0,5535,443,0,2303, + 443,0,5246,1,0,45,1,0,55,43, + 0,1,100,0,43,55,0,499,2604,0, + 5246,235,1,0,45,235,1,0,235,415, + 0,43,5222,0,43,5221,0,1,5222,2, + 0,1,5221,2,0,43,5222,2,0,43, + 5221,2,0,5222,42,0,5221,42,0,5244, + 53,0,53,43,0,5212,404,0,5211,404, + 0,1,579,0,1,631,0,1,3236,0, + 235,414,0,3834,322,0,5535,103,0,2303, + 103,0,41,81,0,1,5535,0,1,2303, + 0,45,1,5222,2,0,45,1,5221,2, + 0,45,5222,2,0,45,5221,2,0,285, + 3387,0,499,4146,0,235,1,0,235,227, + 0,235,226,0,1,2698,0,1,2868,0, + 5214,1,0,5210,1,0,235,1,3038,0, + 5211,235,0,3041,235,0,3117,235,0,10, + 12,0,8,10,12,0,8,12,0,193, + 3286,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1048,304 +1059,304 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public final static byte termCheck[] = {0, 0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,0,29, - 30,3,32,33,34,35,36,37,38,39, - 40,41,42,43,44,45,46,47,48,49, + 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,0,57,58,59, - 60,61,0,63,64,65,0,0,68,69, - 70,4,72,6,74,8,76,77,78,79, - 80,81,82,83,84,85,86,87,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,0,29,30,0, - 32,33,34,35,36,37,38,39,40,41, - 42,43,44,45,46,47,48,49,50,51, - 52,53,54,55,28,57,58,59,60,61, - 0,63,64,65,88,89,68,69,70,9, - 72,99,74,13,76,77,78,79,80,81, - 82,83,84,85,86,87,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,0,29,30,3,32,33, - 34,35,36,37,38,39,40,41,42,43, - 44,45,46,47,48,49,50,51,52,53, - 54,55,0,57,58,59,60,61,0,63, - 64,65,0,0,68,69,70,0,1,2, - 74,4,76,77,78,79,80,81,82,83, - 84,85,86,87,0,1,2,3,4,5, + 60,61,62,63,0,0,66,0,68,69, + 70,71,0,8,74,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,44,30,31,32, + 33,34,35,36,37,38,39,40,41,42, + 43,66,45,46,47,48,49,50,51,52, + 53,54,55,0,57,58,59,60,61,62, + 63,0,9,66,90,68,69,70,71,0, + 96,74,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,0,29,30,0,32,33,34,35, - 36,37,38,39,40,41,42,43,44,45, + 26,27,28,44,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, - 28,57,58,59,60,61,31,63,64,65, - 88,89,68,69,70,103,104,105,74,101, + 0,57,58,59,60,61,62,63,0,9, + 66,90,68,69,70,71,0,96,74,75, 76,77,78,79,80,81,82,83,84,85, - 86,87,0,1,2,3,4,5,6,7, + 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, + 72,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,0,57,58, + 59,60,61,62,63,0,0,66,11,12, + 69,70,71,95,29,74,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,72,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,0,57,58,59,60,61, + 62,63,0,0,66,90,3,69,70,71, + 0,96,74,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,44,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,99,57,58,59,60,61,62,63,0, + 0,66,90,4,69,70,71,0,96,74, + 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, - 0,29,30,0,32,33,34,35,36,37, - 38,39,40,41,42,43,44,45,46,47, - 48,49,50,51,52,53,54,55,28,57, - 58,59,60,61,0,63,64,65,0,0, - 68,69,70,0,1,2,74,4,76,77, - 78,79,80,81,82,83,84,85,86,87, + 28,72,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,0,57, + 58,59,60,61,62,63,0,0,66,11, + 12,69,70,71,0,8,74,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,72,30, + 31,32,33,34,35,36,37,38,39,40, + 41,42,43,66,45,46,47,48,49,50, + 51,52,53,54,55,0,57,58,59,60, + 61,62,63,0,0,66,11,12,69,70, + 71,95,0,74,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,0,57,58,59,60,61,62,63, + 0,0,66,3,3,69,70,71,95,29, + 74,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,67,45,46, + 47,48,49,50,51,52,53,54,55,0, + 57,58,59,60,61,62,63,0,0,66, + 0,3,69,70,71,8,0,74,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,0,29, - 30,0,32,33,34,35,36,37,38,39, - 40,41,42,43,44,45,46,47,48,49, - 50,51,52,53,54,55,28,57,58,59, - 60,61,31,63,64,65,88,89,68,69, - 70,97,98,0,74,0,76,77,78,79, - 80,81,82,83,84,85,86,87,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,0,29,30,0, - 32,33,34,35,36,37,38,39,40,41, - 42,43,44,45,46,47,48,49,50,51, - 52,53,54,55,28,57,58,59,60,61, - 0,63,64,65,0,0,68,69,70,0, - 1,2,74,8,76,77,78,79,80,81, - 82,83,84,85,86,87,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,0,29,30,0,32,33, - 34,35,36,37,38,39,40,41,42,43, - 44,45,46,47,48,49,50,51,52,53, - 54,55,28,57,58,59,60,61,31,63, - 64,65,88,89,68,69,70,0,1,2, - 74,101,76,77,78,79,80,81,82,83, - 84,85,86,87,0,1,2,3,4,5, - 6,7,8,9,10,11,12,13,14,15, + 20,21,22,23,24,25,26,27,28,0, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,43,64,45,46,47,48,49, + 50,51,52,53,54,55,0,57,58,59, + 60,61,62,63,0,0,66,0,3,69, + 70,71,0,0,74,75,76,77,78,79, + 80,81,82,83,84,85,86,0,1,2, + 3,4,5,6,7,118,9,10,11,12, + 0,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,64,45,46,47,48,49,50,51,52, + 53,54,55,0,0,58,3,3,61,0, + 1,2,8,0,1,2,69,70,71,0, + 1,2,3,4,5,6,7,8,9,10, + 97,98,13,14,15,16,17,18,19,20, + 21,22,23,24,25,121,114,115,116,0, + 1,2,3,4,5,6,7,44,9,56, + 56,101,0,44,45,46,47,48,49,50, + 51,52,53,54,55,0,57,73,59,0, + 61,0,1,2,5,4,0,68,69,70, + 71,72,17,74,0,1,2,3,4,5, + 6,7,8,9,10,56,87,13,14,15, 16,17,18,19,20,21,22,23,24,25, - 26,27,0,29,30,0,32,33,34,35, - 36,37,38,39,40,41,42,43,44,45, + 45,46,47,48,49,50,51,52,53,54, + 55,0,0,114,115,116,4,0,44,45, 46,47,48,49,50,51,52,53,54,55, - 28,57,58,59,60,61,0,63,64,65, - 0,0,68,69,70,0,1,2,74,8, - 76,77,78,79,80,81,82,83,84,85, - 86,87,0,1,2,3,4,5,6,7, - 8,9,10,11,12,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 0,29,30,3,32,33,34,35,36,37, - 38,39,40,41,42,43,44,45,46,47, - 48,49,50,51,52,53,54,55,0,57, - 58,59,60,61,6,63,64,65,88,89, - 68,69,70,97,98,0,74,0,76,77, - 78,79,80,81,82,83,84,85,86,87, - 0,1,2,3,4,5,6,7,8,0, - 10,11,12,4,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,0,29, - 30,0,32,33,34,35,36,37,38,39, - 40,41,42,43,44,45,46,47,48,49, - 50,51,52,53,54,55,0,0,58,91, - 92,61,0,1,2,9,0,5,68,69, - 70,0,1,2,3,4,5,6,7,8, - 9,10,0,0,13,14,15,16,17,18, - 19,20,21,22,23,24,25,0,0,1, - 2,4,31,0,1,2,3,4,5,6, - 7,8,41,0,1,2,60,46,47,48, - 49,50,51,52,53,54,55,99,57,31, - 59,100,61,0,1,2,0,1,2,68, - 69,70,71,72,31,74,75,0,1,2, - 3,4,5,6,7,8,9,10,0,56, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,0,103,104,105,4,31,0, - 1,2,3,4,5,6,7,8,41,0, - 1,2,0,46,47,48,49,50,51,52, - 53,54,55,121,57,122,59,0,61,0, - 0,4,3,0,41,68,69,70,71,72, - 31,74,75,0,1,2,3,4,5,6, - 7,8,9,10,0,28,13,14,15,16, - 17,18,19,20,21,22,23,24,25,0, - 103,104,105,0,31,0,1,2,3,4, - 5,6,7,8,41,56,0,1,2,46, - 47,48,49,50,51,52,53,54,55,0, - 57,28,59,0,61,0,1,2,9,6, - 77,68,69,70,71,72,0,74,75,3, - 90,67,6,0,8,9,96,11,12,13, - 0,56,0,1,2,3,4,5,6,7, - 8,66,26,27,28,0,103,104,105,0, - 1,2,3,4,5,6,7,8,28,14, - 15,16,17,18,19,20,21,22,23,24, - 25,72,56,0,0,1,2,3,62,5, - 0,7,66,67,0,62,41,71,72,73, - 0,46,47,48,49,50,51,52,53,54, - 55,11,12,71,88,89,90,91,92,93, - 94,95,96,97,98,99,100,101,102,0, - 1,2,106,107,108,109,110,111,112,113, - 114,115,116,117,118,0,120,121,3,66, - 56,6,0,8,9,71,11,12,13,0, - 1,2,3,0,5,0,7,0,9,0, - 0,26,27,28,0,1,2,3,9,5, - 90,7,13,9,0,102,96,13,0,60, - 107,108,109,110,111,112,113,114,115,116, - 117,56,0,1,2,0,4,62,6,0, - 8,66,67,61,9,56,71,72,73,0, - 1,2,0,1,2,62,4,62,6,62, - 8,9,73,88,89,90,91,92,93,94, - 95,96,97,98,99,100,101,102,60,0, - 31,106,107,108,109,110,111,112,113,114, - 115,116,117,118,0,120,121,0,1,2, - 3,4,5,6,7,8,67,10,11,12, - 0,14,15,16,100,18,19,20,21,22, - 23,24,25,26,27,73,29,30,0,32, - 33,34,35,36,37,38,39,40,28,42, - 43,44,45,0,1,2,3,95,5,0, - 7,0,9,118,0,58,13,0,1,2, - 0,64,65,0,1,2,3,0,5,9, - 7,74,0,1,2,3,4,5,6,7, - 8,71,10,11,12,0,14,15,16,4, - 18,19,20,21,22,23,24,25,26,27, - 0,29,30,3,32,33,34,35,36,37, - 38,39,40,62,42,43,44,45,67,56, - 66,64,65,0,1,2,3,4,0,6, - 58,8,0,73,62,3,64,65,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,102,14,15,16,95,18,19,20,21, - 22,23,24,25,26,27,117,29,30,0, - 32,33,34,35,36,37,38,39,40,56, - 42,43,44,45,0,1,2,0,4,5, - 3,7,0,0,1,2,58,4,60,6, - 0,8,0,1,2,3,0,5,0,7, - 72,0,1,2,3,4,5,6,7,8, + 0,57,0,59,17,61,4,0,6,97, + 98,9,68,69,70,71,72,0,74,0, + 3,0,3,6,3,8,9,45,11,12, + 13,87,45,46,47,48,49,50,51,52, + 53,54,55,26,27,64,29,0,0,1, + 2,3,4,5,6,7,56,9,114,115, + 116,14,15,16,17,18,19,20,21,22, + 23,24,25,56,0,1,2,56,4,0, + 6,64,65,9,67,68,0,1,2,72, + 73,5,45,46,47,48,49,50,51,52, + 53,54,55,0,0,88,89,90,91,92, + 93,94,95,96,97,98,99,100,101,102, + 103,104,105,106,107,108,109,110,111,112, + 113,0,0,0,117,118,3,120,121,6, + 0,8,9,64,11,12,13,0,17,0, + 1,2,3,4,5,6,7,10,9,26, + 27,29,29,0,1,2,3,4,65,6, + 0,0,9,0,1,2,45,46,47,48, + 49,50,51,52,53,54,55,0,0,56, + 0,1,2,6,4,0,6,64,65,9, + 67,68,0,0,57,72,73,0,1,2, + 3,8,5,0,7,8,13,44,0,56, + 13,88,89,90,91,92,93,94,95,96, + 97,98,99,100,101,102,103,104,105,106, + 107,108,109,110,111,112,113,0,1,2, + 117,118,64,120,121,0,1,2,3,4, + 5,6,7,0,9,10,11,12,65,14, + 15,16,101,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, + 1,2,3,4,5,6,7,0,9,0, + 1,2,3,58,5,8,7,62,63,56, + 13,0,1,2,3,4,5,6,7,74, 9,10,11,12,0,14,15,16,4,18, - 19,20,21,22,23,24,25,26,27,0, - 29,30,3,32,33,34,35,36,37,38, - 39,40,28,42,43,44,45,0,1,2, - 0,4,56,6,0,8,66,3,0,58, - 62,60,0,9,0,1,2,3,4,5, - 6,7,8,72,10,11,12,0,14,15, - 16,0,18,19,20,21,22,23,24,25, - 26,27,0,29,30,66,32,33,34,35, - 36,37,38,39,40,0,42,43,44,45, - 56,0,1,2,0,4,62,6,56,8, - 62,67,58,9,0,1,2,73,64,65, - 0,1,2,3,4,5,6,7,8,62, - 10,11,12,0,14,15,16,0,18,19, - 20,21,22,23,24,25,26,27,0,29, - 30,3,32,33,34,35,36,37,38,39, - 40,90,42,43,44,45,71,96,0,1, - 2,67,4,5,0,7,0,73,58,46, - 47,5,0,0,64,65,0,1,2,3, - 4,5,6,7,8,9,10,11,12,31, - 14,15,16,66,18,19,20,21,22,23, - 24,25,26,27,0,29,30,3,32,33, - 34,35,36,37,38,39,40,0,42,43, - 44,45,0,1,2,3,4,5,6,7, - 8,0,10,11,12,4,14,15,16,67, - 18,19,20,21,22,23,24,25,26,27, - 0,29,30,3,32,33,34,35,36,37, - 38,39,40,90,42,43,44,45,0,96, - 0,0,1,2,0,4,5,9,7,9, - 58,13,60,9,0,0,1,2,3,4, - 5,6,7,8,118,10,11,12,0,14, - 15,16,31,18,19,20,21,22,23,24, - 25,26,27,0,29,30,3,32,33,34, - 35,36,37,38,39,40,28,42,43,44, - 45,0,0,0,3,67,3,67,5,6, - 56,8,72,58,11,12,0,73,0,0, - 4,3,0,1,2,0,1,2,0,26, - 27,28,7,30,0,1,2,3,4,5, - 6,7,8,9,26,27,0,13,0,1, - 2,17,4,0,1,2,3,0,5,56, - 7,0,28,0,3,62,9,64,65,66, - 67,0,1,2,56,41,5,0,7,31, - 46,47,48,49,50,51,52,53,54,55, - 56,88,89,90,91,92,93,94,0,0, - 97,98,99,100,101,102,29,73,9,106, - 107,108,109,110,111,112,113,114,115,116, - 0,0,0,3,106,5,6,29,8,0, - 73,11,12,11,12,0,1,2,120,4, - 5,95,7,0,1,2,26,27,28,28, - 30,0,1,2,3,4,5,6,7,8, - 9,0,0,0,13,0,1,2,17,4, - 0,72,10,10,31,0,56,0,0,1, - 2,0,62,0,64,65,66,67,11,12, - 9,62,41,31,0,0,67,46,47,48, - 49,50,51,52,53,54,55,56,88,89, - 90,91,92,93,94,0,0,97,98,99, - 100,101,102,61,73,60,106,107,108,109, - 110,111,112,113,114,115,116,0,1,2, - 3,4,5,6,7,8,71,10,11,12, - 67,14,15,16,73,18,19,20,21,22, - 23,24,25,26,27,71,29,30,0,32, - 33,34,35,36,37,38,39,40,10,42, - 43,44,45,67,0,1,2,3,4,5, - 6,7,8,56,10,11,12,0,14,15, - 16,0,18,19,20,21,22,23,24,25, - 26,27,0,29,30,0,32,33,34,35, - 36,37,38,39,40,57,42,43,44,45, - 0,1,2,0,1,2,3,4,5,6, - 7,8,58,10,11,12,0,14,15,16, - 4,18,19,20,21,22,23,24,25,26, - 27,31,29,30,0,32,33,34,35,36, - 37,38,39,40,28,42,43,44,45,0, - 1,2,3,4,5,6,7,8,76,10, - 11,12,28,14,15,16,95,18,19,20, - 21,22,23,24,25,26,27,0,29,30, - 0,32,33,34,35,36,37,38,39,40, - 0,42,43,44,45,0,1,2,3,4, - 5,6,7,8,0,10,11,12,4,14, + 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,1,2,3,0, + 5,72,7,8,0,0,1,2,13,58, + 5,72,7,62,63,64,0,1,2,3, + 4,5,6,7,8,9,10,11,12,0, + 14,15,16,29,18,19,20,21,22,23, + 24,25,26,27,28,65,30,31,32,33, + 34,35,36,37,38,39,40,41,42,43, + 0,1,2,0,0,1,2,0,1,2, + 0,4,8,6,58,8,9,0,1,2, + 10,4,66,0,68,0,1,2,3,4, + 5,6,7,8,9,10,11,12,99,14, 15,16,0,18,19,20,21,22,23,24, - 25,26,27,0,29,30,3,32,33,34, - 35,36,37,38,39,40,56,42,43,44, - 45,0,1,2,0,4,0,0,1,2, - 60,10,5,0,0,14,15,16,17,18, - 19,20,21,22,23,24,25,0,0,0, - 0,0,3,0,28,0,9,9,31,56, - 13,13,41,71,9,0,0,46,47,48, - 49,50,51,52,53,54,55,0,1,2, - 56,28,61,0,1,2,0,4,62,68, - 69,70,6,10,28,62,0,14,15,16, - 17,18,19,20,21,22,23,24,25,0, - 1,2,3,4,5,6,7,8,9,93, - 94,0,13,0,41,60,17,4,73,46, - 47,48,49,50,51,52,53,54,55,0, - 31,64,65,0,61,0,3,0,9,28, - 0,68,69,70,0,1,2,3,4,5, - 6,7,8,9,41,0,57,13,59,0, - 0,17,63,3,0,28,0,91,92,3, - 0,72,28,62,75,31,0,0,1,2, - 3,4,5,6,7,8,9,28,0,0, - 13,3,0,0,17,6,0,0,0,62, - 60,57,73,59,93,94,71,63,31,0, - 0,0,0,58,0,3,103,104,105,75, + 25,26,27,28,44,30,31,32,33,34, + 35,36,37,38,39,40,41,42,43,100, + 66,61,0,0,1,2,4,4,0,0, + 73,8,4,58,61,0,1,2,3,10, + 5,66,7,68,0,1,2,3,4,5, + 6,7,95,9,10,11,12,29,14,15, + 16,0,18,19,20,21,22,23,24,25, + 26,27,28,44,30,31,32,33,34,35, + 36,37,38,39,40,41,42,43,0,66, + 61,56,0,1,2,0,0,1,2,3, + 0,5,58,7,8,10,62,63,0,1, + 2,3,4,5,6,7,0,9,10,11, + 12,0,14,15,16,64,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,56,65,62,63,0,0,1,2, + 0,4,5,3,7,28,58,67,8,73, + 62,63,0,1,2,3,4,5,6,7, + 8,9,10,11,12,29,14,15,16,0, + 18,19,20,21,22,23,24,25,26,27, + 28,44,30,31,32,33,34,35,36,37, + 38,39,40,41,42,43,56,0,1,2, + 0,4,0,6,64,65,9,0,1,2, + 58,4,5,73,7,0,1,2,66,0, + 1,2,3,4,5,6,7,8,9,10, + 11,12,0,14,15,16,0,18,19,20, + 21,22,23,24,25,26,27,28,0,30, + 31,32,33,34,35,36,37,38,39,40, + 41,42,43,0,1,2,3,4,5,6, + 7,0,9,10,11,12,0,14,15,16, + 4,18,19,20,21,22,23,24,25,26, + 27,28,56,30,31,32,33,34,35,36, + 37,38,39,40,41,42,43,0,1,2, + 0,4,5,0,7,67,3,0,5,6, + 0,58,9,0,11,12,0,1,2,0, + 4,8,6,0,102,9,13,118,0,26, + 27,3,29,30,0,0,0,76,4,117, + 102,44,104,105,106,107,108,109,110,111, + 112,113,17,46,47,117,0,1,2,56, + 4,5,0,7,64,62,63,64,65,0, + 67,0,1,2,3,65,5,8,7,45, + 45,46,47,48,49,50,51,52,53,54, + 55,88,89,90,91,92,93,94,0,0, + 97,98,99,100,101,102,103,104,105,106, + 107,108,109,110,111,112,113,0,0,100, + 3,3,5,6,88,89,9,29,11,12, + 0,1,2,3,4,5,6,7,0,9, + 0,3,73,26,27,0,29,30,114,115, + 116,0,1,2,3,56,5,0,7,0, + 1,2,64,4,95,0,1,2,0,0, + 1,2,7,56,5,0,0,1,2,62, + 63,64,65,8,67,0,56,0,0,0, + 0,93,94,8,4,8,0,67,13,3, + 0,1,2,44,64,88,89,90,91,92, + 93,94,67,44,97,98,99,100,101,102, + 103,104,105,106,107,108,109,110,111,112, + 113,0,1,2,3,4,5,6,7,0, + 9,10,11,12,44,14,15,16,73,18, + 19,20,21,22,23,24,25,26,27,28, + 73,30,31,32,33,34,35,36,37,38, + 39,40,41,42,43,0,88,89,3,0, + 1,2,3,4,5,6,7,56,9,10, + 11,12,0,14,15,16,4,18,19,20, + 21,22,23,24,25,26,27,28,119,30, + 31,32,33,34,35,36,37,38,39,40, + 41,42,43,0,0,1,2,3,4,5, + 6,7,0,9,10,11,12,58,14,15, + 16,0,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,1, + 2,3,4,5,6,7,0,9,10,11, + 12,58,14,15,16,0,18,19,20,21, + 22,23,24,25,26,27,28,56,30,31, + 32,33,34,35,36,37,38,39,40,41, + 42,43,0,1,2,3,4,5,6,7, + 67,9,10,11,12,0,14,15,16,0, + 18,19,20,21,22,23,24,25,26,27, + 28,56,30,31,32,33,34,35,36,37, + 38,39,40,41,42,43,0,1,2,0, + 4,0,1,2,88,89,10,0,1,2, + 14,15,16,17,18,19,20,21,22,23, + 24,25,0,0,0,0,0,28,6,64, + 65,6,0,0,0,1,2,0,1,2, + 0,45,46,47,48,49,50,51,52,53, + 54,55,0,29,0,1,2,61,4,0, + 1,2,29,0,10,69,70,71,14,15, + 16,17,18,19,20,21,22,23,24,25, + 0,0,1,2,3,4,5,6,7,8, + 9,65,0,0,13,3,62,63,17,45, + 46,47,48,49,50,51,52,53,54,55, + 29,88,89,91,92,61,91,92,26,27, + 88,89,29,69,70,71,45,46,47,48, + 49,50,51,52,53,54,55,56,0,1, + 2,3,4,5,6,7,8,9,56,0, + 0,13,3,3,73,17,0,1,2,3, + 4,5,6,7,8,9,0,1,2,13, + 0,119,0,17,0,3,0,1,2,0, + 1,2,8,45,46,47,48,49,50,51, + 52,53,54,55,56,103,0,0,0,29, + 44,0,1,2,3,4,5,6,7,8, + 9,73,120,57,13,59,60,0,17,0, + 44,0,0,44,68,8,0,0,0,8, + 29,4,6,0,1,2,3,4,5,6, + 7,8,9,87,0,44,13,73,29,0, + 17,29,8,0,1,2,29,13,57,0, + 59,60,0,1,2,3,4,5,6,7, + 8,9,0,0,0,13,0,44,29,17, + 8,8,65,64,0,68,64,0,87,68, + 57,0,59,60,3,0,0,44,0,0, + 0,68,4,8,8,29,44,8,0,13, + 0,3,93,94,0,93,94,91,92,57, + 87,59,60,64,65,0,0,29,0,29, + 68,0,1,2,3,4,5,6,7,8, + 9,68,0,29,13,73,72,0,17,87, 0,1,2,3,4,5,6,7,8,9, - 93,94,0,13,57,0,59,17,3,0, - 63,0,10,67,9,0,0,0,3,72, - 3,31,75,0,1,2,3,4,5,6, - 7,8,9,31,66,0,13,71,71,0, - 17,0,3,0,3,66,66,57,67,59, - 91,92,0,63,31,71,0,0,95,119, - 3,56,72,61,0,75,0,1,2,3, - 4,5,6,7,8,9,0,66,73,13, - 57,119,59,17,0,0,63,0,0,0, - 0,0,28,0,0,72,0,31,75,0, - 1,2,3,4,5,6,7,8,9,66, - 0,0,13,29,0,0,17,0,66,0, - 0,0,66,57,0,59,0,0,119,63, - 31,0,0,0,0,0,0,0,0,0, - 0,75,0,1,2,3,4,5,6,7, - 8,9,17,0,0,13,57,0,59,17, - 0,0,63,0,0,0,0,0,0,0, - 0,0,0,31,75,0,41,0,17,0, - 0,46,47,48,49,50,51,52,53,54, - 55,0,0,0,17,0,0,0,0,57, - 0,59,41,0,0,63,0,46,47,48, - 49,50,51,52,53,54,55,75,41,0, - 17,0,0,46,47,48,49,50,51,52, - 53,54,55,0,0,0,0,0,0,0, - 0,0,0,0,41,0,0,0,0,46, - 47,48,49,50,51,52,53,54,55,0, + 65,65,75,13,68,0,0,17,73,0, + 0,29,73,3,0,44,0,1,2,3, + 4,5,6,7,8,9,0,0,57,13, + 59,60,0,17,44,29,0,72,29,68, + 0,0,0,3,0,3,122,57,0,59, + 60,3,0,0,67,3,3,0,87,0, + 44,0,1,2,3,4,5,6,7,8, + 9,0,67,57,13,59,60,87,17,65, + 0,0,0,3,3,119,0,0,0,0, + 0,65,0,0,67,0,0,0,0,67, + 0,0,0,87,0,44,0,0,72,0, + 0,29,0,72,28,0,72,0,57,0, + 59,60,0,0,67,0,67,0,0,0, + 0,0,0,0,0,0,0,0,67,0, + 0,0,0,0,0,0,0,0,87,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,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; @@ -1353,299 +1364,300 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface TermAction { public final static char termAction[] = {0, - 5149,5130,5112,5112,5112,5112,5112,5112,5112,5140, - 1,1,1,5137,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5149,1, - 1,3285,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1163,1,1685, - 673,1,139,2845,1,1,127,43,1,1, - 1,5191,5156,1304,5330,5480,2132,3135,3730,2196, - 3426,3080,3069,3130,565,3089,3287,3088,8,5143, - 5143,5143,5143,5143,5143,5143,5143,5143,5143,5143, - 5143,5143,5143,5143,5143,5143,5143,5143,5143,5143, - 5143,5143,5143,5143,5143,5143,5149,5143,5143,5149, - 5143,5143,5143,5143,5143,5143,5143,5143,5143,5143, - 5143,5143,5143,5143,5143,5143,5143,5143,5143,5143, - 5143,5143,5143,5143,3615,5143,5143,5143,5143,5143, - 403,5143,5143,5143,2550,2597,5143,5143,5143,5052, - 5143,590,5143,5055,5143,5143,5143,5143,5143,5143, - 5143,5143,5143,5143,5143,5143,5149,5130,5112,5112, - 5112,5112,5112,5112,5112,5134,1,1,1,5137, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5149,1,1,2701,1,1, + 5202,5176,5155,5155,5155,5155,5155,5155,5186,5155, + 1,1,1,5180,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,436,1163,1,1685,673,1,143,2845, - 1,1,131,5149,1,1,1,5149,4763,4760, - 5330,5191,2132,3135,3730,2196,3426,3080,3069,3130, - 565,3089,3287,3088,5149,5130,5112,5112,5112,5112, - 5112,5112,5112,5134,1,1,1,5137,1,1, + 1,1,1,1,5202,1,1,1,1,1, + 1,1,1,1,1,1,5202,1069,1,2119, + 2863,1,1,1,119,5202,5213,5202,5209,1, + 1,1,43,5214,5385,1859,3098,3152,2221,2873, + 3021,2977,3073,566,3063,4408,3048,10,5189,5189, + 5189,5189,5189,5189,5189,5189,5189,5189,5189,5189, + 5189,5189,5189,5189,5189,5189,5189,5189,5189,5189, + 5189,5189,5189,5189,5189,5189,5244,5189,5189,5189, + 5189,5189,5189,5189,5189,5189,5189,5189,5189,5189, + 5189,5213,5189,5189,5189,5189,5189,5189,5189,5189, + 5189,5189,5189,139,5189,5189,5189,5189,5189,5189, + 5189,122,2374,5189,4026,5189,5189,5189,5189,55, + 4048,5189,5189,5189,5189,5189,5189,5189,5189,5189, + 5189,5189,5189,5189,8,5192,5192,5192,5192,5192, + 5192,5192,5192,5192,5192,5192,5192,5192,5192,5192, + 5192,5192,5192,5192,5192,5192,5192,5192,5192,5192, + 5192,5192,5192,1065,5192,5192,5192,5192,5192,5192, + 5192,5192,5192,5192,5192,5192,5192,5192,5202,5192, + 5192,5192,5192,5192,5192,5192,5192,5192,5192,5192, + 140,5192,5192,5192,5192,5192,5192,5192,361,2374, + 5192,4026,5192,5192,5192,5192,5202,4048,5192,5192, + 5192,5192,5192,5192,5192,5192,5192,5192,5192,5192, + 5192,5202,5176,5155,5155,5155,5155,5155,5155,5183, + 5155,1,1,1,5180,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,5149,1,1,41,1,1,1,1, + 1915,1,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,126,1069,1, + 2119,2863,1,1,1,121,5202,5213,3431,2742, + 1,1,1,5562,646,5385,1859,3098,3152,2221, + 2873,3021,2977,3073,566,3063,4408,3048,5202,5176, + 5155,5155,5155,5155,5155,5155,5183,5155,1,1, + 1,5180,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,422,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,1,5202,1069,1,2119,2863,1, + 1,1,120,5202,5213,4026,3226,1,1,1, + 5202,4048,5385,1859,3098,3152,2221,2873,3021,2977, + 3073,566,3063,4408,3048,5202,5176,5155,5155,5155, + 5155,5155,5155,5183,5155,1,1,1,5180,1, 1,1,1,1,1,1,1,1,1,1, - 4099,1163,1,1685,673,1,5189,2845,1,1, - 2550,2597,1,1,1,5581,5582,5583,5330,2283, - 2132,3135,3730,2196,3426,3080,3069,3130,565,3089, - 3287,3088,5149,5130,5112,5112,5112,5112,5112,5112, - 5112,5134,1,1,1,5137,1,1,1,1, + 1,1,1,1,2711,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,426, 1,1,1,1,1,1,1,1,1,1, - 5149,1,1,5149,1,1,1,1,1,1, + 1,592,1069,1,2119,2863,1,1,1,45, + 5202,5213,4026,5246,1,1,1,5202,4048,5385, + 1859,3098,3152,2221,2873,3021,2977,3073,566,3063, + 4408,3048,5202,5176,5155,5155,5155,5155,5155,5155, + 5183,5155,1,1,1,5180,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,4196,1163, - 1,1685,673,1,135,2845,1,1,130,5149, - 1,1,1,5149,4763,4760,5330,5191,2132,3135, - 3730,2196,3426,3080,3069,3130,565,3089,3287,3088, - 5149,5130,5112,5112,5112,5112,5112,5112,5112,5134, - 1,1,1,5137,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5149,1, - 1,53,1,1,1,1,1,1,1,1, + 1,4180,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,5202,1,1,1, + 1,1,1,1,1,1,1,1,128,1069, + 1,2119,2863,1,1,1,1,1,5213,3431, + 2742,1,1,1,5202,5170,5385,1859,3098,3152, + 2221,2873,3021,2977,3073,566,3063,4408,3048,5202, + 5176,5155,5155,5155,5155,5155,5155,5183,5155,1, + 1,1,5180,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5602,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,4604,1163,1,1685, - 673,1,2579,2845,1,1,2550,2597,1,1, - 1,2405,2377,5149,5330,5149,2132,3135,3730,2196, - 3426,3080,3069,3130,565,3089,3287,3088,5149,5130, - 5112,5112,5112,5112,5112,5112,5112,5134,1,1, - 1,5137,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,33,1,1,5149, + 1,1,1,5213,1,1,1,1,1,1, + 1,1,1,1,1,127,1069,1,2119,2863, + 1,1,1,1,5202,5213,3431,2742,1,1, + 1,5564,5202,5385,1859,3098,3152,2221,2873,3021, + 2977,3073,566,3063,4408,3048,5202,5176,5155,5155, + 5155,5155,5155,5155,5183,5155,1,1,1,5180, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5202,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,4766,1163,1,1685,673,1, - 144,2845,1,1,129,137,1,1,1,5149, - 5166,5167,5330,2348,2132,3135,3730,2196,3426,3080, - 3069,3130,565,3089,3287,3088,5149,5130,5112,5112, - 5112,5112,5112,5112,5112,5134,1,1,1,5137, + 5202,1,1,1,1,1,1,1,1,1, + 1,1,5202,1069,1,2119,2863,1,1,1, + 316,5202,5213,3036,2708,1,1,1,4427,3348, + 5385,1859,3098,3152,2221,2873,3021,2977,3073,566, + 3063,4408,3048,5202,5176,5155,5155,5155,5155,5155, + 5155,5183,5155,1,1,1,5180,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,437,1,1,5149,1,1, + 1,1,5202,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1083,1,1, + 1,1,1,1,1,1,1,1,1,5202, + 1069,1,2119,2863,1,1,1,5202,99,5213, + 5202,4839,1,1,1,5206,5202,5385,1859,3098, + 3152,2221,2873,3021,2977,3073,566,3063,4408,3048, + 5202,3038,1,1,1,1,1,1,3041,1, + 1,1,1,5211,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5202, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,2216,1,1,1,1,1, + 1,1,1,1,1,1,5202,1069,1,2119, + 2863,1,1,1,5202,244,5213,5202,4993,1, + 1,1,437,137,5385,1859,3098,3152,2221,2873, + 3021,2977,3073,566,3063,4408,3048,45,4806,4803, + 3165,922,3843,3916,3236,5205,3938,721,3894,3872, + 145,5473,5471,5480,5466,5479,5475,5476,5474,5477, + 5478,5481,5472,3982,3960,5227,5202,999,979,1076, + 5229,1026,4125,1059,5230,5228,930,5223,5225,5226, + 5224,2252,5469,5542,5543,5463,5470,5442,5468,5467, + 5464,5465,5443,350,1,1330,2995,3066,5599,5202, + 5221,5222,4987,5202,8609,8609,573,5600,5601,5202, + 5054,5054,235,5050,235,235,235,5058,235,1, + 2431,2403,235,1,1,1,1,1,1,1, + 1,1,1,1,1,4802,5635,5636,5637,348, + 5145,5141,2879,5246,631,2303,3236,5244,5535,1878, + 1878,2309,138,5047,1,1,1,1,1,1, + 1,1,1,1,1,231,2587,4990,2093,5202, + 1,5202,4806,4803,3314,5246,5202,415,1,1, + 1,235,5466,5613,5202,5054,5054,235,5050,235, + 235,235,5110,235,1,1878,5700,235,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,4769,1163,1,1685,673,1,2626,2845, - 1,1,2550,2597,1,1,1,5149,4941,4938, - 5330,2283,2132,3135,3730,2196,3426,3080,3069,3130, - 565,3089,3287,3088,5149,5130,5112,5112,5112,5112, - 5112,5112,5112,5134,1,1,1,5137,1,1, + 5469,5542,5543,5463,5470,5442,5468,5467,5464,5465, + 5443,5202,45,5635,5636,5637,5246,232,5047,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,451,1,1,5149,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 4772,1163,1,1685,673,1,136,2845,1,1, - 128,138,1,1,1,54,4974,4971,5330,2348, - 2132,3135,3730,2196,3426,3080,3069,3130,565,3089, - 3287,3088,5149,3087,1,1,1,1,1,1, - 1,5159,1,1,1,5158,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 97,1,1,4796,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,121,1163, - 1,1685,673,1,3545,2845,1,1,2550,2597, - 1,1,1,2405,2377,5149,5330,5149,2132,3135, - 3730,2196,3426,3080,3069,3130,565,3089,3287,3088, - 43,4763,4760,2704,728,3792,3865,3597,3887,43, - 776,3843,3821,5191,5418,5416,5425,5411,5424,5420, - 5421,5419,5422,5423,5426,5417,3931,3909,140,5172, - 1053,141,672,723,5174,675,2663,715,5175,5173, - 654,5414,5168,5170,5171,5169,5487,5488,5408,5415, - 5387,5413,5412,5409,5410,5388,5149,5149,1309,3522, - 3039,5545,5149,5166,5167,2648,5149,3234,572,5546, - 5547,5149,5011,5011,233,5007,233,233,233,233, - 5015,1,5149,191,233,1,1,1,1,1, - 1,1,1,1,1,1,1,5149,5149,8417, - 8417,790,5004,346,5102,5098,2711,5191,783,1304, - 3597,5480,1,49,4968,4968,2696,1,1,1, - 1,1,1,1,1,1,1,590,1114,5189, - 1433,2317,1,54,4941,4938,293,5166,5167,1, - 1,1,233,414,4965,5559,5646,5149,5011,5011, - 233,5007,233,233,233,233,5015,1,5149,1856, - 233,1,1,1,1,1,1,1,1,1, - 1,1,1,43,5581,5582,5583,5191,5004,5149, - 5102,5098,3686,5191,783,1304,3597,5480,1,41, - 4995,4995,5149,1,1,1,1,1,1,1, - 1,1,1,4759,1114,5146,1433,394,1,348, - 117,386,3078,5149,1678,1,1,1,233,414, - 3109,5559,5646,5149,5011,5011,233,5007,233,233, - 233,233,5067,1,163,722,233,1,1,1, - 1,1,1,1,1,1,1,1,1,5149, - 5581,5582,5583,45,5004,368,5028,5024,2711,1, - 783,1,3597,1,1,1856,40,5043,5040,1, - 1,1,1,1,1,1,1,1,1,5149, - 1114,4793,1433,5149,1,5149,4974,4971,5157,3259, - 3224,1,1,1,233,413,37,5559,5646,4802, - 3975,1352,4802,5149,4802,4802,3997,4802,4802,4802, - 386,1856,5149,5093,5088,3686,4989,783,5085,3597, - 5082,1132,4802,4802,4802,228,5581,5582,5583,312, - 5093,5088,3686,4989,783,5085,3597,5082,4799,5418, - 5416,5425,5411,5424,5420,5421,5419,5422,5423,5426, - 5417,5156,4802,145,1,5028,5024,3686,4802,783, - 120,3597,4802,4802,455,1845,5414,4802,4802,4802, - 124,5487,5488,5408,5415,5387,5413,5412,5409,5410, - 5388,3003,2978,2072,4802,4802,4802,4802,4802,4802, - 4802,4802,4802,4802,4802,4802,4802,4802,4802,5149, - 5166,5167,4802,4802,4802,4802,4802,4802,4802,4802, - 4802,4802,4802,4802,4802,5149,4802,4802,4805,1814, - 4787,4805,5149,4805,4805,2072,4805,4805,4805,1, - 5028,5024,2711,5149,783,5149,3597,5149,4944,5149, - 5149,4805,4805,4805,1,5028,5024,5058,5159,5061, - 3975,5064,5158,5159,142,2246,3997,5158,5149,3493, - 1772,1730,1688,1646,1604,1562,1520,1478,1436,1394, - 4075,4805,441,1,1,5149,1,4805,4784,512, - 4784,4805,4805,4365,5153,1856,4805,4805,4805,5149, - 5021,5018,1,4992,4992,1846,4989,1887,1304,1888, - 5480,364,4947,4805,4805,4805,4805,4805,4805,4805, - 4805,4805,4805,4805,4805,4805,4805,4805,3252,5149, - 5189,4805,4805,4805,4805,4805,4805,4805,4805,4805, - 4805,4805,4805,4805,5149,4805,4805,5149,1,1, - 1,1,1,1,1,1,873,1,1,1, - 33,1,1,1,2317,1,1,1,1,1, - 1,1,1,1,1,364,1,1,5149,1, - 1,1,1,1,1,1,1,1,722,1, - 1,1,1,1,5028,5024,3686,364,783,145, - 3597,5149,312,5152,294,1,312,5149,5166,5167, - 1,1,1,1,5028,5024,2711,5149,783,364, - 3597,5682,1,4851,4847,2704,4855,3792,3865,3597, - 3887,421,4811,3843,3821,1,4838,4844,4817,387, - 4820,4832,4829,4835,4826,4823,4814,4841,3931,3909, - 242,5172,1053,4950,672,723,5174,675,2663,715, - 5175,5173,654,4303,5168,5170,5171,5169,4254,1856, - 1985,3953,1213,346,43,43,2631,5191,5149,1304, - 1309,5480,1,364,513,4605,43,43,43,4763, - 4760,2704,728,3792,3865,3597,3887,5157,910,3843, - 3821,2246,5418,5416,5425,364,5424,5420,5421,5419, - 5422,5423,5426,5417,3931,3909,4075,5172,1053,5149, - 672,723,5174,675,2663,715,5175,5173,654,1856, - 5168,5170,5171,5169,5149,4763,4760,5149,728,783, - 4076,3597,5149,442,43,43,1309,5191,4090,4986, - 371,4983,1,5028,5024,3686,454,783,5149,3597, - 5156,43,4763,4760,2704,728,3792,3865,3597,3887, - 5157,910,3843,3821,54,5418,5416,5425,5167,5424, - 5420,5421,5419,5422,5423,5426,5417,3931,3909,314, - 5172,1053,2894,672,723,5174,675,2663,715,5175, - 5173,654,5167,5168,5170,5171,5169,98,1,1, - 5149,1,4790,4998,1,4998,1174,2631,5149,1309, - 5658,4090,349,342,147,4763,4760,2704,728,3792, - 3865,3597,3887,5156,910,3843,3821,5149,5418,5416, - 5425,119,5424,5420,5421,5419,5422,5423,5426,5417, - 3931,3909,5149,5172,1053,1266,672,723,5174,675, - 2663,715,5175,5173,654,5149,5168,5170,5171,5169, - 1856,101,43,43,5149,5191,342,5076,1856,5073, - 5587,342,1309,5155,395,5166,5167,342,43,43, - 1,4851,4847,2704,4855,3792,3865,3597,3887,5601, - 4811,3843,3821,337,4838,4844,4817,369,4820,4832, - 4829,4835,4826,4823,4814,4841,3931,3909,5149,5172, - 1053,4304,672,723,5174,675,2663,715,5175,5173, - 654,3975,5168,5170,5171,5169,1893,3997,5149,4763, - 4760,4640,728,4808,5149,3597,5149,5154,1309,5487, - 5488,3234,363,118,43,43,43,4763,4760,2704, - 728,3792,3865,3597,3887,5153,910,3843,3821,993, - 5418,5416,5425,1224,5424,5420,5421,5419,5422,5423, - 5426,5417,3931,3909,5149,5172,1053,4445,672,723, - 5174,675,2663,715,5175,5173,654,5149,5168,5170, - 5171,5169,43,4763,4760,2704,728,3792,3865,3597, - 3887,5149,910,3843,3821,1375,5418,5416,5425,3077, - 5424,5420,5421,5419,5422,5423,5426,5417,3931,3909, - 5149,5172,1053,4613,672,723,5174,675,2663,715, - 5175,5173,654,3975,5168,5170,5171,5169,5149,3997, - 5149,5149,4763,4760,1,728,4808,5159,3597,5157, - 1309,5158,4090,167,106,43,4763,4760,2704,728, - 3792,3865,3597,3887,5152,910,3843,3821,5149,5418, - 5416,5425,2059,5424,5420,5421,5419,5422,5423,5426, - 5417,3931,3909,5149,5172,1053,4136,672,723,5174, - 675,2663,715,5175,5173,654,722,5168,5170,5171, - 5169,5149,5149,1,4201,3579,1124,1011,5615,5609, - 4660,5613,5156,1309,5607,5608,5149,167,81,5149, - 1482,2777,5149,8009,7327,42,4778,4775,5149,5638, - 5639,5618,815,5616,33,386,386,4959,386,386, - 4959,386,4959,4962,5217,5218,359,4959,395,4763, - 4760,386,5191,1,5028,5024,5058,5149,5061,538, - 5064,109,4766,5149,4550,5619,5155,1340,1346,5617, - 5640,5149,5166,5167,3469,386,783,5149,3597,43, - 386,386,386,386,386,386,386,386,386,386, - 4962,5629,5628,5641,5610,5611,5634,5635,5149,1, - 5632,5633,5612,5614,5636,5637,3746,4962,5127,5642, - 5622,5623,5624,5620,5621,5630,5631,5626,5625,5627, - 5149,1,126,1124,656,5615,5609,3685,5613,5149, - 5154,5607,5608,3003,2978,5149,4763,4760,795,728, - 783,5507,3597,5149,5036,5032,5638,5639,5618,722, - 5616,36,387,387,4953,387,387,4953,387,4953, - 4956,5149,1,304,4953,5149,4763,4760,387,5191, - 5149,5156,5121,5452,5189,425,538,125,5149,8009, - 7327,1,5619,292,1340,1346,5617,5640,3003,2978, - 5155,3222,387,2928,5149,5149,4254,387,387,387, - 387,387,387,387,387,387,387,4956,5629,5628, - 5641,5610,5611,5634,5635,5149,423,5632,5633,5612, - 5614,5636,5637,5124,4956,2896,5642,5622,5623,5624, - 5620,5621,5630,5631,5626,5625,5627,43,4763,4760, - 2704,728,3792,3865,3597,3887,2649,910,3843,3821, - 1108,5418,5416,5425,5154,5424,5420,5421,5419,5422, - 5423,5426,5417,3931,3909,5548,5172,1053,304,672, - 723,5174,675,2663,715,5175,5173,654,5452,5168, - 5170,5171,5169,812,43,4763,4760,2704,728,3792, - 3865,3597,3887,1130,910,3843,3821,5149,5418,5416, - 5425,1,5424,5420,5421,5419,5422,5423,5426,5417, - 3931,3909,1,5172,1053,5149,672,723,5174,675, - 2663,715,5175,5173,654,1762,5168,5170,5171,5169, - 51,5049,5049,43,4763,4760,3440,728,3792,3865, - 3597,3887,1309,910,3843,3821,54,5418,5416,5425, - 5166,5424,5420,5421,5419,5422,5423,5426,5417,3931, - 3909,5046,5172,1053,5149,672,723,5174,675,2663, - 715,5175,5173,654,5166,5168,5170,5171,5169,43, - 4763,4760,2704,728,3792,3865,3597,3887,3614,910, - 3843,3821,2587,5418,5416,5425,5509,5424,5420,5421, - 5419,5422,5423,5426,5417,3931,3909,5149,5172,1053, - 322,672,723,5174,675,2663,715,5175,5173,654, - 5149,5168,5170,5171,5169,43,4763,4760,2704,728, - 3792,3865,3597,3887,5149,910,3843,3821,1641,5418, - 5416,5425,445,5424,5420,5421,5419,5422,5423,5426, - 5417,3931,3909,320,5172,1053,5070,672,723,5174, - 675,2663,715,5175,5173,654,1856,5168,5170,5171, - 5169,5149,4763,4760,105,5191,132,41,5001,5001, - 3591,669,5001,5149,5149,5418,5416,5425,5411,5424, - 5420,5421,5419,5422,5423,5426,5417,1,1,5149, - 5149,5149,3496,79,2514,1,5159,197,3248,1856, - 5158,197,5414,3190,525,5149,5149,5487,5488,5408, - 5415,5387,5413,5412,5409,5410,5388,5149,4941,4938, - 2022,5079,5545,246,4931,4927,123,4935,4781,572, - 5546,5547,3545,669,3592,4082,5149,4918,4924,4897, - 4882,4900,4912,4909,4915,4906,4903,4894,4921,1, - 5112,5112,233,5112,233,233,233,233,5115,2460, - 2433,134,233,43,4873,673,8437,5191,525,4867, - 4864,4891,4870,4861,4876,4879,4888,4885,4858,1, - 5109,3953,1213,283,5545,5149,5106,133,169,2514, - 1,572,5546,5547,1,5112,5112,233,5112,233, - 233,233,233,233,850,529,2594,233,1685,5149, - 5149,8437,2845,2847,5149,2514,5149,3522,3039,4661, - 5149,225,2587,4977,5646,5109,446,1,5112,5112, - 233,5112,233,233,233,233,5118,3781,5149,122, - 233,2776,376,1,8437,3545,5149,5149,417,4980, - 3780,2594,169,1685,2460,2433,2109,2845,5109,39, - 505,311,5149,2953,5149,3379,5581,5582,5583,5646, - 1,5112,5112,233,5112,233,233,233,233,5115, - 2460,2433,1,233,2594,1,1685,8437,2631,518, - 2845,503,5121,3310,4944,5149,5149,5149,4074,224, - 2740,5109,5646,1,5112,5112,233,5112,233,233, - 233,233,5115,2928,2159,5149,233,5333,3134,5149, - 8437,5149,4360,5149,4087,1804,4631,2594,4283,1685, - 3522,3039,5149,2845,5109,5332,507,5149,4183,3169, - 4671,1856,225,5124,2,5646,1,5112,5112,233, - 5112,233,233,233,233,233,5149,4634,4947,233, - 2594,3169,1685,8437,1,5149,2845,5149,5149,5149, - 5149,5149,41,5149,5149,225,5149,5109,5646,1, - 5112,5112,233,5112,233,233,233,233,233,1804, - 5149,5149,233,2825,5149,5149,8437,5149,1943,5149, - 5149,5149,932,2594,5149,1685,5149,5149,3169,2845, - 5109,5149,5149,5149,5149,229,5149,5149,5149,5149, - 5149,5646,1,5112,5112,233,5112,233,233,233, - 233,233,5411,5149,5149,233,2594,5149,1685,8437, - 5149,230,2845,5149,5149,5149,5149,5149,5149,5149, - 5149,5149,5149,5109,5646,5149,5414,231,5411,5149, - 5149,5487,5488,5408,5415,5387,5413,5412,5409,5410, - 5388,5149,5149,5149,5411,5149,5149,5149,5149,2594, - 5149,1685,5414,232,5149,2845,5149,5487,5488,5408, - 5415,5387,5413,5412,5409,5410,5388,5646,5414,5149, - 5411,5149,5149,5487,5488,5408,5415,5387,5413,5412, - 5409,5410,5388,5149,5149,5149,5149,5149,5149,5149, - 5149,5149,5149,5149,5414,5149,5149,5149,5149,5487, - 5488,5408,5415,5387,5413,5412,5409,5410,5388 + 456,2587,45,2093,5466,1,5246,5202,2303,2431, + 2403,5535,414,1,1,1,235,39,5613,1, + 4845,322,4380,4845,5113,4845,4845,1742,4845,4845, + 4845,5700,5469,5542,5543,5463,5470,5442,5468,5467, + 5464,5465,5443,4845,4845,2262,4845,230,5202,5145, + 5141,579,5246,631,2303,3236,4830,5535,5635,5636, + 5637,5473,5471,5480,5466,5479,5475,5476,5474,5477, + 5478,5481,5472,4845,442,1,1,1878,1,5202, + 4827,4845,4845,4827,4845,4845,5202,5221,5222,4845, + 4845,3314,5469,5542,5543,5463,5470,5442,5468,5467, + 5464,5465,5443,165,5202,4845,4845,4845,4845,4845, + 4845,4845,4845,4845,4845,4845,4845,4845,4845,4845, + 4845,4845,4845,4845,4845,4845,4845,4845,4845,4845, + 4845,233,5202,5202,4845,4845,4848,4845,4845,4848, + 5202,4848,4848,2263,4848,4848,4848,306,5466,314, + 5136,5131,579,5032,631,5128,3236,5507,5125,4848, + 4848,3649,4848,348,45,45,3066,5246,1374,2303, + 5202,146,5535,51,5011,5011,5469,5542,5543,5463, + 5470,5442,5468,5467,5464,5465,5443,5202,5202,4848, + 443,45,45,3631,5246,5202,5029,4848,4848,5026, + 4848,4848,5202,5202,1868,4848,4848,1,5071,5067, + 5101,5212,5104,5202,5107,5212,5211,5008,5202,1878, + 5211,4848,4848,4848,4848,4848,4848,4848,4848,4848, + 4848,4848,4848,4848,4848,4848,4848,4848,4848,4848, + 4848,4848,4848,4848,4848,4848,4848,5202,4984,4981, + 4848,4848,5712,4848,4848,5202,1,1,1,1, + 1,1,1,455,1,1,1,1,4329,1, + 1,1,2309,1,1,1,1,1,1,1, + 1,1,1,1,5202,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5202, + 5136,5131,579,5032,631,5128,3236,404,5125,1, + 5071,5067,579,1,631,5095,3236,1,1,4833, + 5098,1,4894,4890,3165,4898,3843,3916,3236,5736, + 3938,4854,3894,3872,5202,4881,4887,4860,927,4863, + 4875,4872,4878,4869,4866,4857,4884,3982,3960,5227, + 513,999,979,1076,5229,1026,4125,1059,5230,5228, + 930,5223,5225,5226,5224,1,5071,5067,579,142, + 631,2096,3236,314,5202,5202,5221,5222,314,1330, + 631,2096,3236,45,45,514,45,4806,4803,3165, + 922,3843,3916,3236,3234,3938,934,3894,3872,143, + 5473,5471,5480,3792,5479,5475,5476,5474,5477,5478, + 5481,5472,3982,3960,5227,877,999,979,1076,5229, + 1026,4125,1059,5230,5228,930,5223,5225,5226,5224, + 56,5017,5014,5202,5202,5221,5222,1,5035,5035, + 1,5032,5214,2303,1330,366,5535,5202,4806,4803, + 5164,5246,5213,5202,5209,45,4806,4803,3165,922, + 3843,3916,3236,3234,3938,934,3894,3872,592,5473, + 5471,5480,5202,5479,5475,5476,5474,5477,5478,5481, + 5472,3982,3960,5227,2960,999,979,1076,5229,1026, + 4125,1059,5230,5228,930,5223,5225,5226,5224,2343, + 5213,5167,1,5202,4806,4803,389,5246,395,1, + 366,5214,388,1330,3522,1,5071,5067,2879,5164, + 631,5213,3236,5209,149,4806,4803,3165,922,3843, + 3916,3236,366,3938,934,3894,3872,646,5473,5471, + 5480,5202,5479,5475,5476,5474,5477,5478,5481,5472, + 3982,3960,5227,2960,999,979,1076,5229,1026,4125, + 1059,5230,5228,930,5223,5225,5226,5224,365,5213, + 5167,1878,5202,5221,5222,306,1,5071,5067,2879, + 296,631,1330,3236,4987,5507,45,45,1,4894, + 4890,3165,4898,3843,3916,3236,5202,3938,4854,3894, + 3872,5202,4881,4887,4860,5641,4863,4875,4872,4878, + 4869,4866,4857,4884,3982,3960,5227,5202,999,979, + 1076,5229,1026,4125,1059,5230,5228,930,5223,5225, + 5226,5224,1878,2962,4004,558,5202,5202,4806,4803, + 1,922,4851,3066,3236,2608,1330,2008,344,4990, + 45,45,45,4806,4803,3165,922,3843,3916,3236, + 5214,3938,934,3894,3872,4184,5473,5471,5480,5202, + 5479,5475,5476,5474,5477,5478,5481,5472,3982,3960, + 5227,1131,999,979,1076,5229,1026,4125,1059,5230, + 5228,930,5223,5225,5226,5224,1878,100,1,1, + 5202,1,5202,5041,344,344,5041,5202,4806,4803, + 1330,922,631,344,3236,56,4984,4981,5213,45, + 4806,4803,3165,922,3843,3916,3236,5206,3938,934, + 3894,3872,147,5473,5471,5480,351,5479,5475,5476, + 5474,5477,5478,5481,5472,3982,3960,5227,147,999, + 979,1076,5229,1026,4125,1059,5230,5228,930,5223, + 5225,5226,5224,45,4806,4803,3165,922,3843,3916, + 3236,5202,3938,934,3894,3872,5202,5473,5471,5480, + 3128,5479,5475,5476,5474,5477,5478,5481,5472,3982, + 3960,5227,1878,999,979,1076,5229,1026,4125,1059, + 5230,5228,930,5223,5225,5226,5224,5202,4806,4803, + 5202,922,4851,1,3236,1836,919,339,5669,5663, + 294,1330,5667,5202,5661,5662,103,45,45,144, + 5246,5212,5119,5202,2272,5116,5211,5205,5202,5692, + 5693,4279,5672,5670,45,234,129,3205,5246,3793, + 2272,1270,1794,1752,1710,1668,1626,1584,1542,1500, + 1458,1416,5466,5542,5543,3793,5202,4806,4803,716, + 922,631,5202,3236,5655,1665,1699,5673,5694,1, + 5671,1,5071,5067,579,873,631,366,3236,1910, + 5469,5542,5543,5463,5470,5442,5468,5467,5464,5465, + 5443,5683,5682,5695,5664,5665,5688,5689,134,108, + 5686,5687,5666,5668,5690,5691,5696,5676,5677,5678, + 5674,5675,5684,5685,5680,5679,5681,5202,5202,2343, + 919,4413,5669,5663,2713,2829,5667,2540,5661,5662, + 370,5071,5067,2879,1,631,1,3236,5202,1, + 5202,4453,366,5692,5693,373,5672,5670,5635,5636, + 5637,1,5071,5067,5101,4611,5104,5202,5107,396, + 4806,4803,4824,5246,366,44,4821,4818,5202,43, + 5044,5044,647,716,5044,1,295,5221,5222,1665, + 1699,5673,5694,169,5671,1,1878,5202,133,5202, + 5202,2486,2459,5212,1825,5208,5202,1186,5211,4609, + 43,5038,5038,45,2917,5683,5682,5695,5664,5665, + 5688,5689,1228,3411,5686,5687,5666,5668,5690,5691, + 5696,5676,5677,5678,5674,5675,5684,5685,5680,5679, + 5681,45,4806,4803,3165,922,3843,3916,3236,5202, + 3938,934,3894,3872,2905,5473,5471,5480,169,5479, + 5475,5476,5474,5477,5478,5481,5472,3982,3960,5227, + 5207,999,979,1076,5229,1026,4125,1059,5230,5228, + 930,5223,5225,5226,5224,5202,2713,2829,3387,45, + 4806,4803,3165,922,3843,3916,3236,1114,3938,934, + 3894,3872,5202,5473,5471,5480,1833,5479,5475,5476, + 5474,5477,5478,5481,5472,3982,3960,5227,3112,999, + 979,1076,5229,1026,4125,1059,5230,5228,930,5223, + 5225,5226,5224,530,45,4806,4803,3287,922,3843, + 3916,3236,5202,3938,934,3894,3872,1330,5473,5471, + 5480,324,5479,5475,5476,5474,5477,5478,5481,5472, + 3982,3960,5227,371,999,979,1076,5229,1026,4125, + 1059,5230,5228,930,5223,5225,5226,5224,45,4806, + 4803,3165,922,3843,3916,3236,132,3938,934,3894, + 3872,2997,5473,5471,5480,107,5479,5475,5476,5474, + 5477,5478,5481,5472,3982,3960,5227,1878,999,979, + 1076,5229,1026,4125,1059,5230,5228,930,5223,5225, + 5226,5224,45,4806,4803,3165,922,3843,3916,3236, + 1288,3938,934,3894,3872,5202,5473,5471,5480,5202, + 5479,5475,5476,5474,5477,5478,5481,5472,3982,3960, + 5227,2045,999,979,1076,5229,1026,4125,1059,5230, + 5228,930,5223,5225,5226,5224,5202,4806,4803,5202, + 5246,42,5086,5083,2713,2829,639,5202,5017,5014, + 5473,5471,5480,5466,5479,5475,5476,5474,5477,5478, + 5481,5472,123,131,35,125,424,4181,3589,4297, + 779,3589,130,438,5202,4984,4981,396,5221,5222, + 5202,5469,5542,5543,5463,5470,5442,5468,5467,5464, + 5465,5443,378,4809,248,4974,4970,5599,4978,5202, + 8465,8394,4812,5202,639,573,5600,5601,4961,4967, + 4940,4925,4943,4955,4952,4958,4949,4946,4937,4964, + 5202,35,388,388,5002,388,388,5002,388,5005, + 5002,4385,83,452,5002,2979,4004,558,388,4916, + 4910,4907,4934,4913,4904,4919,4922,4931,4928,4901, + 4809,2713,2829,3566,3480,5599,3566,3480,5272,5273, + 2713,2829,4815,573,5600,5601,388,388,388,388, + 388,388,388,388,388,388,388,5005,38,389, + 389,4996,389,389,4996,389,4999,4996,3345,5202, + 111,4996,3629,3801,5005,389,1,5155,5155,235, + 5155,235,235,235,5158,235,5202,8465,8394,235, + 47,3112,5202,8613,1,3834,5202,5064,5061,5202, + 5079,5075,5208,389,389,389,389,389,389,389, + 389,389,389,389,4999,658,5202,5202,5202,4836, + 5152,1,5155,5155,235,5155,235,235,235,235, + 235,4999,798,2667,235,2119,2863,5202,8613,136, + 5244,5202,135,5244,227,5210,124,56,5202,5210, + 2696,5222,3589,1,5155,5155,235,5155,235,235, + 235,5161,235,5700,1,5152,235,5207,2540,388, + 8613,2540,199,53,5092,5092,5222,199,2667,5202, + 2119,2863,1,5155,5155,235,5155,235,235,235, + 5158,235,1,1,446,235,5202,5152,4842,8613, + 526,5173,1022,5020,193,5209,5023,1,5700,5209, + 2667,285,2119,2863,5149,5202,12,5089,56,1, + 1,226,5221,5208,5196,646,5152,171,5202,8, + 5202,2864,2486,2459,5202,2486,2459,3566,3480,2667, + 5700,2119,2863,3193,779,5202,519,5221,5202,646, + 227,1,5155,5155,235,5155,235,235,235,5158, + 235,5209,81,2696,235,526,625,418,8613,5700, + 1,5155,5155,235,5155,235,235,235,235,235, + 4649,8,4155,235,5196,41,5202,8613,5207,5202, + 5202,5122,171,4277,447,5152,1,5155,5155,235, + 5155,235,235,235,235,235,313,506,2667,235, + 2119,2863,504,8613,5152,4148,5202,2133,4241,227, + 5202,5202,5202,3634,5202,2891,5199,2667,5202,2119, + 2863,3104,5202,5202,2184,2626,4147,5202,5700,5202, + 5152,1,5155,5155,235,5155,235,235,235,235, + 235,508,2648,2667,235,2119,2863,5700,8613,2620, + 5202,5202,2,4234,4676,3112,1,5202,5202,5202, + 5202,4352,5202,5202,4642,5202,5202,5202,5202,4647, + 5202,5202,5202,5700,5202,5152,5202,5202,5388,5202, + 5202,43,5202,3042,2795,5202,5387,5202,2667,5202, + 2119,2863,5202,5202,2648,5202,1966,5202,5202,5202, + 5202,5202,5202,5202,5202,5202,5202,5202,935,5202, + 5202,5202,5202,5202,5202,5202,5202,5202,5700 }; }; public final static char termAction[] = TermAction.termAction; @@ -1653,59 +1665,59 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface Asb { public final static char asb[] = {0, - 650,12,178,6,308,543,543,543,543,1102, - 308,567,567,755,567,484,162,486,179,179, - 179,179,179,179,179,179,179,569,575,580, - 577,584,582,589,587,591,590,592,221,593, - 178,162,42,42,42,42,218,446,14,14, - 564,42,351,118,567,567,14,786,569,118, - 118,109,162,887,41,1017,1104,1039,162,567, - 569,744,744,446,178,179,179,179,179,179, - 179,179,179,179,179,179,179,179,179,179, - 179,179,179,179,178,178,178,178,178,178, - 178,178,178,178,178,178,179,118,118,825, - 825,825,825,434,118,14,14,1100,1028,1039, - 357,1039,365,1039,1,1039,1023,1102,218,351, - 351,14,179,1100,310,497,381,380,274,1046, - 1046,1102,486,351,41,178,216,1016,118,215, - 218,217,215,118,351,577,577,575,575,575, - 582,582,582,582,580,580,587,584,584,590, - 589,591,1116,592,308,308,308,308,218,218, - 825,824,825,564,218,560,389,389,218,369, - 434,368,354,371,548,218,218,218,434,825, - 109,351,608,118,499,501,218,1017,179,42, - 573,74,118,1104,218,218,543,217,1017,178, - 178,178,178,178,308,308,162,928,560,389, - 389,369,355,369,434,369,548,548,218,434, - 218,118,385,373,384,501,434,216,118,573, - 1100,1016,1104,218,216,118,118,118,118,446, - 446,560,559,362,218,389,1116,2,543,436, - 971,1106,389,362,369,369,438,218,548,362, - 360,361,218,696,178,382,382,121,121,218, - 495,1100,617,118,218,573,574,573,178,74, - 272,569,1104,118,118,560,1017,706,371,825, - 543,215,751,1108,212,308,491,69,439,218, - 362,179,218,696,178,178,501,1017,118,499, - 373,696,1081,573,446,179,351,272,216,706, - 706,828,405,216,370,370,212,613,1100,536, - 179,1116,129,438,218,1102,1102,218,879,501, - 216,696,574,118,351,614,362,692,978,263, - 308,2,864,706,706,405,216,370,371,1102, - 1108,212,179,179,218,218,218,879,118,879, - 827,263,692,545,1102,362,824,543,553,553, - 614,371,142,492,218,308,218,218,308,872, - 879,828,706,614,128,613,118,1102,218,405, - 828,405,823,823,930,143,1102,218,446,502, - 872,706,178,934,212,614,218,218,405,42, - 42,930,142,1116,179,1116,614,308,308,308, - 143,308,218,229,614,614,218,371,118,117, - 874,362,118,932,218,614,824,134,308,134, - 1116,143,162,162,160,694,162,614,614,885, - 930,42,874,932,614,534,617,118,212,118, - 160,263,308,118,930,361,553,118,118,1094, - 143,885,143,614,263,178,143,140,932,823, - 371,371,1096,178,141,446,614,118,215,143, - 118,614,143 + 630,67,126,61,303,524,524,524,524,1106, + 303,684,684,782,684,506,110,508,127,127, + 127,127,127,127,127,127,127,686,692,697, + 694,701,699,706,704,708,707,709,169,710, + 126,110,29,29,29,29,166,468,1,1, + 681,29,346,266,684,684,1,813,686,266, + 266,257,110,914,28,996,1108,1043,110,684, + 686,902,902,468,126,127,127,127,127,127, + 127,127,127,127,127,127,127,127,127,127, + 127,127,127,127,126,126,126,126,126,126, + 126,126,126,126,126,126,127,266,266,852, + 852,852,852,402,266,1,1,1104,1032,1043, + 354,1043,349,1043,351,1043,1027,1106,166,346, + 346,1,127,1104,305,558,534,533,269,1050, + 1050,1106,508,346,28,126,164,995,266,163, + 166,165,163,266,346,694,694,692,692,692, + 699,699,699,699,697,697,704,701,701,707, + 706,708,1120,709,303,303,303,303,166,166, + 852,851,852,681,166,677,357,166,408,402, + 542,406,354,547,166,166,166,402,852,257, + 346,725,266,560,562,166,996,127,29,690, + 222,266,1108,166,166,524,165,996,126,126, + 126,126,126,303,303,110,955,677,357,408, + 407,408,402,408,547,547,166,402,166,266, + 538,526,537,562,402,164,266,690,1104,995, + 1108,166,164,266,266,266,266,468,468,677, + 676,459,166,357,1120,352,524,404,775,1110, + 357,408,408,1002,166,547,459,457,458,166, + 854,126,535,535,69,69,166,556,1104,597, + 266,166,690,691,690,126,222,220,686,1108, + 266,266,677,996,864,354,852,524,163,909, + 1112,160,303,513,56,1003,166,459,127,166, + 854,126,126,562,996,266,560,526,854,1085, + 690,468,127,346,220,164,864,864,413,373, + 164,408,408,160,730,1104,517,127,1120,77, + 1002,166,1106,1106,166,1017,562,164,854,691, + 266,346,731,459,672,957,211,303,352,449, + 864,864,373,164,408,354,1106,1112,160,127, + 127,166,166,166,1017,266,1017,412,211,672, + 552,1106,459,851,524,462,462,731,354,90, + 513,166,303,166,166,303,1010,1017,413,864, + 731,76,730,266,1106,166,373,413,373,850, + 850,1025,91,1106,166,468,563,1010,864,126, + 737,160,731,166,166,373,29,29,1025,90, + 1120,127,1120,731,89,303,303,303,91,303, + 166,177,731,731,166,354,266,265,1012,459, + 266,736,166,731,851,82,303,82,1120,91, + 110,110,108,674,110,731,731,1023,1025,29, + 1012,736,731,595,597,266,160,266,108,211, + 303,266,1025,458,734,462,266,266,1098,91, + 1023,91,731,211,126,91,88,736,850,354, + 354,1100,126,89,468,731,266,163,91,266, + 731,91 }; }; public final static char asb[] = Asb.asb; @@ -1713,118 +1725,119 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface Asr { public final static byte asr[] = {0, - 4,1,2,60,0,9,71,118,73,13, - 67,121,0,32,64,33,34,65,7,35, - 36,37,38,58,39,40,42,43,44,29, - 26,27,8,6,11,12,5,30,62,45, - 3,48,14,15,61,46,16,68,49,17, + 31,62,32,33,63,7,34,35,36,37, + 58,38,39,40,41,42,28,26,27,9, + 6,11,12,5,30,64,43,3,48,14, + 15,61,46,16,69,49,17,18,50,51, + 19,20,52,53,21,22,54,70,55,10, + 71,23,24,47,25,1,2,4,45,0, + 8,72,118,73,13,65,121,0,75,64, + 72,95,73,66,56,3,8,65,13,67, + 0,87,114,115,116,44,72,119,122,68, + 74,75,59,57,60,77,79,85,83,76, + 81,82,84,86,66,78,80,13,8,48, + 61,46,69,49,17,50,51,52,53,54, + 70,55,71,45,47,58,62,63,10,32, + 36,34,31,39,15,25,14,21,19,20, + 22,23,18,16,24,40,43,41,42,28, + 38,33,37,26,27,11,12,30,35,9, + 6,3,4,7,5,1,2,0,64,72, + 95,65,118,73,68,121,14,15,31,62, + 16,32,33,18,19,20,63,34,21,22, + 35,36,37,58,38,39,10,23,24,25, + 40,41,42,28,26,27,11,12,30,43, + 8,9,6,4,13,1,2,7,3,5, + 0,96,90,11,12,91,92,88,89,29, + 93,94,97,98,99,100,101,102,117,72, + 95,67,104,105,106,107,108,109,110,111, + 112,113,118,68,13,121,64,1,2,9, + 6,4,3,56,65,73,8,0,48,14, + 15,46,16,49,17,18,50,51,19,20, + 52,7,53,21,22,54,55,23,45,24, + 47,25,1,2,8,56,9,6,5,4, + 73,13,3,0,62,63,3,10,32,36, + 34,31,39,15,25,14,21,19,20,22, + 23,18,16,24,40,43,41,42,28,38, + 33,37,5,7,4,26,27,9,6,11, + 12,30,35,1,2,118,8,0,44,72, + 4,1,2,66,8,0,87,57,7,114, + 115,116,59,8,3,9,6,5,72,68, + 13,74,48,14,15,61,46,16,69,49, + 17,18,50,51,19,20,52,53,21,22, + 54,70,55,10,71,23,45,24,47,25, + 4,1,2,44,0,4,29,8,72,66, + 0,66,61,46,16,69,49,18,50,51, + 19,20,52,53,21,22,54,70,55,71, + 23,45,24,47,25,15,14,48,8,3, + 9,6,13,59,60,87,17,44,7,1, + 2,5,4,10,57,0,67,65,68,8, + 0,64,67,65,1,2,0,8,73,14, + 15,31,16,32,33,18,19,20,34,21, + 22,35,36,37,58,38,39,10,23,24, + 25,40,41,42,28,3,26,27,9,6, + 11,12,30,4,43,5,7,1,2,63, + 62,0,8,66,65,0,72,8,56,3, + 67,65,13,29,0,9,6,4,5,7, + 1,2,3,56,64,67,65,8,73,95, + 0,4,8,72,66,0,1,2,8,68, + 0,8,66,67,0,7,5,3,56,6, + 9,95,48,14,15,46,16,69,49,17, 18,50,51,19,20,52,53,21,22,54, - 69,55,10,70,23,24,47,25,1,2, - 4,41,0,96,90,11,12,91,92,88, - 89,28,93,94,97,98,99,100,101,102, - 117,71,95,66,107,108,109,110,111,112, - 113,114,115,116,118,72,13,121,62,1, - 2,8,6,4,3,56,67,73,9,0, - 76,60,62,71,95,73,56,3,9,67, - 13,66,0,75,103,104,105,31,71,119, - 122,72,74,76,59,57,63,78,80,86, - 84,77,82,83,85,87,60,79,81,13, - 9,48,61,46,68,49,17,50,51,52, - 53,54,69,55,70,41,47,58,64,65, - 10,33,37,35,32,40,15,25,14,21, - 19,20,22,23,18,16,24,42,45,43, - 44,29,39,34,38,26,27,11,12,30, - 36,8,6,3,4,7,5,1,2,0, - 62,71,95,67,118,73,72,121,14,15, - 32,64,16,33,34,18,19,20,65,35, - 21,22,36,37,38,58,39,40,10,23, - 24,25,42,43,44,29,26,27,11,12, - 30,45,9,8,6,4,13,1,2,7, - 3,5,0,48,14,15,46,16,49,17, - 18,50,51,19,20,52,7,53,21,22, - 54,55,23,41,24,47,25,1,2,9, - 56,8,6,5,4,73,13,3,0,64, - 65,3,10,33,37,35,32,40,15,25, - 14,21,19,20,22,23,18,16,24,42, - 45,43,44,29,39,34,38,5,7,4, - 26,27,8,6,11,12,30,36,1,2, - 118,9,0,4,71,28,60,9,0,66, - 67,72,9,0,31,1,2,4,9,71, - 60,0,8,6,4,5,7,1,2,3, - 56,62,66,67,9,73,95,0,75,57, - 7,103,104,105,59,9,3,8,6,5, - 71,72,13,74,48,14,15,61,46,16, - 68,49,17,18,50,51,19,20,52,53, - 21,22,54,69,55,10,70,23,41,24, - 47,25,4,1,2,31,0,41,1,2, - 4,103,104,105,0,9,73,14,15,32, - 16,33,34,18,19,20,35,21,22,36, - 37,38,58,39,40,10,23,24,25,42, - 43,44,29,3,26,27,8,6,11,12, - 30,4,45,5,7,1,2,65,64,0, - 9,60,67,0,7,5,3,56,6,8, - 95,48,14,15,46,16,68,49,17,18, - 50,51,19,20,52,53,21,22,54,69, - 55,10,70,23,41,24,47,25,1,2, - 4,73,9,61,0,71,9,56,3,66, - 67,13,28,0,60,66,0,1,2,9, - 72,0,62,66,67,1,2,0,58,46, - 7,47,5,1,2,4,76,60,120,106, - 26,27,56,3,96,90,6,91,92,11, - 12,89,88,28,93,94,97,98,8,99, - 100,101,62,95,73,121,66,107,108,109, - 110,111,112,113,114,115,116,71,118,72, - 102,117,67,13,9,0,48,14,15,61, - 46,16,68,49,17,18,50,51,19,20, - 52,53,21,22,54,69,55,10,70,23, - 41,24,47,25,1,2,4,95,0,14, - 15,32,64,16,33,34,18,19,20,65, - 7,35,21,22,36,37,38,58,39,40, - 10,23,24,25,42,43,44,1,2,3, - 26,27,8,6,11,12,5,30,4,45, - 74,29,0,77,0,46,58,47,9,62, - 95,66,67,73,0,63,48,14,15,61, - 46,16,68,49,75,17,18,50,51,19, - 20,52,57,53,21,22,54,69,55,10, - 70,23,59,41,24,47,25,9,3,8, - 6,72,13,7,4,31,5,1,2,0, - 60,71,76,0,48,14,15,61,46,16, - 68,49,17,18,50,51,19,20,52,53, - 21,22,54,69,55,10,70,23,41,24, - 47,25,1,2,4,65,64,11,12,6, - 91,92,99,8,100,5,30,28,110,111, - 107,108,109,115,114,116,89,88,112,113, - 97,98,93,94,101,102,26,27,90,106, - 3,56,66,67,62,0,60,61,46,16, - 68,49,18,50,51,19,20,52,53,21, - 22,54,69,55,70,23,41,24,47,25, - 15,14,48,9,3,8,6,13,59,63, - 75,17,31,7,1,2,5,4,10,57, - 0,46,47,76,3,60,71,13,58,9, - 62,95,67,73,66,0,64,65,26,27, - 8,11,12,5,30,36,3,4,7,42, - 45,43,44,29,39,34,38,15,25,14, - 21,19,20,22,23,18,16,24,10,33, - 37,35,32,40,56,1,2,6,0,119, - 0,9,72,64,65,58,26,27,8,6, - 11,12,30,36,3,42,45,43,44,29, - 39,34,38,15,25,14,21,19,20,22, - 23,18,16,24,33,37,35,32,40,60, - 7,1,2,5,4,10,0,61,46,16, - 68,49,18,50,51,19,20,52,53,21, - 22,54,69,55,10,70,23,41,24,47, - 25,15,14,48,9,3,8,13,59,57, - 63,75,17,28,4,6,7,1,2,5, - 31,0,10,68,61,69,70,15,25,14, - 21,19,20,22,23,18,16,24,76,60, - 71,95,118,72,121,120,96,106,90,26, - 27,11,12,91,92,88,89,28,62,93, - 94,97,98,99,100,101,102,117,66,107, - 108,109,110,111,112,113,114,115,116,67, - 48,46,49,17,50,51,52,53,54,55, - 41,47,13,9,73,3,56,7,5,6, - 8,1,2,4,0,13,9,7,5,3, - 1,2,6,8,4,71,0 + 70,55,10,71,23,45,24,47,25,1, + 2,4,73,8,61,0,48,14,15,61, + 46,16,69,49,17,18,50,51,19,20, + 52,53,21,22,54,70,55,10,71,23, + 45,24,47,25,1,2,4,95,0,14, + 15,31,62,16,32,33,18,19,20,63, + 7,34,21,22,35,36,37,58,38,39, + 10,23,24,25,40,41,42,1,2,3, + 26,27,9,6,11,12,5,30,4,43, + 74,28,0,76,0,58,46,7,47,5, + 1,2,4,75,66,120,103,26,27,56, + 3,96,90,6,91,92,11,12,89,88, + 29,93,94,97,98,9,99,100,101,64, + 95,73,121,67,104,105,106,107,108,109, + 110,111,112,113,72,118,68,102,117,65, + 13,8,0,65,13,68,62,63,58,26, + 27,9,6,11,12,30,35,3,40,43, + 41,42,28,38,33,37,15,25,14,21, + 19,20,22,23,18,16,24,32,36,34, + 31,39,66,8,7,1,2,5,4,10, + 0,48,14,15,61,46,16,69,49,17, + 18,50,51,19,20,52,53,21,22,54, + 70,55,10,71,23,45,24,47,25,1, + 2,4,63,62,11,12,6,91,92,99, + 9,100,5,30,29,107,108,104,105,106, + 112,111,113,89,88,109,110,97,98,93, + 94,101,102,26,27,90,103,3,56,67, + 65,64,0,46,58,47,8,64,95,67, + 65,73,0,60,48,14,15,61,46,16, + 69,49,87,17,18,50,51,19,20,52, + 57,53,21,22,54,70,55,10,71,23, + 59,45,24,47,25,8,3,9,6,68, + 13,7,4,44,5,1,2,0,8,72, + 66,75,0,62,63,26,27,9,11,12, + 5,30,35,3,4,7,40,43,41,42, + 28,38,33,37,15,25,14,21,19,20, + 22,23,18,16,24,10,32,36,34,31, + 39,56,1,2,6,0,61,46,16,69, + 49,18,50,51,19,20,52,53,21,22, + 54,70,55,10,71,23,45,24,47,25, + 15,14,48,8,3,9,13,59,57,60, + 87,17,29,4,6,7,1,2,5,44, + 0,45,1,2,4,114,115,116,0,46, + 47,75,3,72,13,66,58,8,64,95, + 65,73,67,0,119,0,10,69,61,70, + 71,15,25,14,21,19,20,22,23,18, + 16,24,75,72,95,118,68,66,121,120, + 96,103,90,26,27,11,12,91,92,88, + 89,29,64,93,94,97,98,99,100,101, + 102,117,67,104,105,106,107,108,109,110, + 111,112,113,65,48,46,49,17,50,51, + 52,53,54,55,45,47,13,8,73,3, + 56,7,5,6,9,1,2,4,0,13, + 8,7,5,3,1,2,6,9,4,72, + 0 }; }; public final static byte asr[] = Asr.asr; @@ -1832,59 +1845,59 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface Nasb { public final static char nasb[] = {0, - 188,12,29,12,12,12,12,12,12,186, - 12,12,12,217,12,40,133,76,29,29, - 228,29,29,29,29,29,29,12,12,12, - 12,12,12,12,12,12,12,12,29,12, - 29,133,204,204,204,204,76,130,145,145, - 59,5,102,154,12,12,145,219,12,154, - 154,120,1,29,87,67,12,12,133,12, - 12,18,18,130,171,29,29,29,29,29, - 29,29,29,29,29,29,29,29,29,29, - 29,29,29,29,29,29,29,29,29,29, - 29,29,29,29,29,171,29,154,154,12, - 12,12,12,62,154,27,27,185,249,250, - 12,250,114,250,15,250,243,10,76,102, - 102,27,29,185,97,119,13,13,12,12, - 12,10,76,102,204,111,213,49,154,212, - 232,76,212,154,102,12,12,12,12,12, + 162,12,62,12,12,12,12,12,12,202, + 12,12,12,186,12,52,179,129,62,62, + 226,62,62,62,62,62,62,12,12,12, + 12,12,12,12,12,12,12,12,62,12, + 62,179,40,40,40,40,129,126,142,142, + 45,5,89,216,12,12,142,188,12,216, + 216,175,1,62,13,172,12,12,179,12, + 12,23,23,126,103,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,103,62,216,216,12, + 12,12,12,70,216,35,35,201,252,253, + 117,253,93,253,15,253,246,10,129,89, + 89,35,62,201,84,174,43,43,12,12, + 12,10,129,89,40,152,210,56,216,209, + 230,129,209,216,89,12,12,12,12,12, 12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,116,11, - 12,12,12,37,76,145,145,145,116,145, - 174,145,12,12,145,174,76,11,12,12, - 35,102,12,154,161,145,76,67,29,204, - 145,44,154,12,11,76,12,108,67,29, - 171,171,171,171,12,12,27,12,166,252, - 252,145,145,124,66,124,145,233,11,66, - 116,154,12,138,12,149,65,116,154,95, - 37,49,12,232,116,154,154,154,154,130, - 130,145,166,74,76,197,12,81,12,12, - 91,259,252,74,124,124,126,116,233,74, - 12,12,116,145,29,12,12,13,13,76, - 137,185,149,154,116,145,106,12,171,37, - 109,12,12,154,154,166,67,145,12,12, - 12,186,145,179,140,12,12,186,57,174, - 74,29,233,166,29,29,145,67,154,161, - 207,145,12,95,130,29,102,109,213,221, - 145,235,145,174,145,79,209,197,185,12, - 29,12,83,53,174,186,186,11,145,149, - 213,166,106,154,102,197,74,12,235,260, - 12,233,91,235,221,149,213,79,226,191, - 140,209,29,29,11,174,174,89,154,145, - 145,179,12,12,186,74,12,12,177,177, - 197,226,24,12,174,12,11,11,12,145, - 89,235,145,197,47,12,154,186,174,149, - 235,145,12,12,145,156,191,11,130,152, - 166,221,111,29,140,197,174,81,149,204, - 204,93,168,12,29,12,197,12,12,12, - 169,12,233,195,197,197,233,104,154,154, - 145,74,154,145,81,197,12,85,12,12, - 12,169,199,199,147,12,199,197,197,12, - 145,204,89,69,197,12,204,154,140,154, - 203,145,12,154,93,74,177,154,154,145, - 169,12,169,197,140,171,169,85,69,12, - 104,104,138,29,12,240,197,154,212,169, - 154,197,169 + 12,12,12,12,12,12,12,12,95,11, + 12,12,12,167,129,142,142,95,142,183, + 142,12,117,142,183,129,11,12,12,165, + 89,12,216,233,142,129,172,62,40,142, + 76,216,12,11,129,12,109,172,62,103, + 103,103,103,12,12,35,12,132,259,142, + 142,33,171,33,142,231,11,171,95,216, + 12,135,12,121,170,95,216,31,167,56, + 12,230,95,216,216,216,216,126,126,142, + 132,193,129,257,12,106,12,12,98,266, + 259,33,33,238,95,231,193,12,12,95, + 142,62,12,12,43,43,129,134,201,121, + 216,95,142,160,12,103,167,110,12,12, + 216,216,132,172,142,117,12,12,202,142, + 195,137,12,12,202,91,183,193,62,231, + 132,62,62,142,172,216,233,204,142,12, + 31,126,62,89,110,210,218,142,155,142, + 183,142,79,206,257,201,12,62,12,29, + 242,183,202,202,11,142,121,210,132,160, + 216,89,257,193,12,155,267,12,16,98, + 155,218,121,210,79,73,19,137,206,62, + 62,11,183,183,48,216,142,116,195,12, + 12,202,193,12,12,124,124,257,73,192, + 12,183,12,11,11,12,142,48,155,142, + 257,50,12,216,202,183,121,155,142,12, + 12,142,100,19,11,126,214,132,218,152, + 61,137,257,183,107,121,40,40,190,112, + 12,62,12,257,12,12,12,12,113,12, + 231,255,257,257,231,81,216,216,142,193, + 216,142,107,257,12,68,12,12,12,113, + 148,148,119,12,148,257,257,12,142,40, + 48,60,257,12,40,216,137,216,144,142, + 12,216,190,193,12,124,216,216,142,113, + 12,113,257,137,103,113,68,60,12,81, + 81,135,62,12,223,257,216,209,113,216, + 257,113 }; }; public final static char nasb[] = Nasb.nasb; @@ -1892,33 +1905,34 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface Nasr { public final static char nasr[] = {0, - 3,13,7,10,149,147,119,146,145,5, - 2,0,71,0,5,1,0,5,2,10, - 7,136,0,4,64,0,43,4,5,7, - 10,2,13,0,94,93,5,55,0,2, - 7,3,0,4,172,0,178,0,65,135, - 134,0,5,99,162,0,184,0,4,186, - 0,48,65,0,48,2,65,0,13,2, - 10,7,5,64,0,2,44,0,155,0, - 103,0,182,0,111,0,170,0,123,0, - 152,0,157,0,140,0,13,2,10,7, - 5,75,0,59,0,138,0,2,112,0, - 4,32,0,5,44,2,3,0,31,93, - 94,4,0,108,0,5,99,183,0,4, - 96,0,4,43,39,0,31,94,93,63, - 48,7,10,2,4,0,39,176,23,4, - 0,43,4,31,0,4,47,39,174,0, - 23,4,5,89,0,60,0,64,47,76, - 4,39,0,2,61,0,107,0,2,63, - 48,7,10,4,89,5,0,4,169,0, - 166,5,165,0,4,39,38,0,4,43, - 102,0,175,4,43,0,94,93,48,63, - 55,5,7,10,2,0,4,43,167,0, - 113,4,47,72,0,156,0,5,7,10, - 13,3,1,0,4,47,72,83,0,4, - 173,0,2,5,119,115,116,117,13,86, - 0,4,47,72,99,45,5,0,38,48, - 7,10,2,4,154,0 + 3,13,7,10,148,146,120,145,144,5, + 2,0,169,0,5,1,42,0,165,5, + 164,0,5,2,10,7,135,0,183,0, + 139,0,109,0,5,7,10,2,13,4, + 44,0,67,0,4,187,0,124,0,177, + 0,2,7,3,0,66,134,133,0,65, + 42,5,7,10,2,13,0,112,0,49, + 66,0,42,155,0,4,171,0,154,0, + 42,60,0,13,2,10,7,5,76,0, + 185,0,5,45,2,3,0,151,0,48, + 42,173,4,39,0,42,104,0,2,113, + 0,65,39,48,77,4,42,0,39,175, + 23,4,0,108,0,4,97,0,2,45, + 0,61,0,31,95,94,64,49,7,10, + 2,4,0,44,4,174,0,4,44,103, + 0,4,32,0,4,48,75,84,0,137, + 0,4,168,0,95,94,5,56,0,49, + 2,66,0,31,94,95,4,0,4,44, + 39,0,2,62,0,4,44,166,0,156, + 0,4,65,0,2,64,49,7,10,4, + 90,5,0,95,94,49,64,56,5,7, + 10,2,0,44,4,31,0,114,4,48, + 75,0,4,172,0,5,7,10,13,3, + 1,0,23,4,5,90,0,5,102,184, + 0,5,102,161,0,2,5,120,116,117, + 118,13,87,0,4,39,38,0,4,48, + 75,102,46,5,0,38,49,7,10,2, + 4,153,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -1926,19 +1940,19 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface TerminalIndex { public final static char terminalIndex[] = {0, - 115,116,3,33,15,12,81,11,1,102, - 13,14,121,50,54,62,68,70,76,77, - 88,89,104,107,109,9,10,21,114,16, - 95,57,63,69,86,90,92,96,99,101, - 106,111,112,113,123,56,108,49,66,72, - 75,78,85,91,100,2,79,97,105,4, - 55,22,48,60,80,35,46,65,93,103, - 32,120,119,122,67,98,110,51,52,58, - 59,61,71,73,74,87,94,19,20,8, - 17,18,23,24,34,6,25,26,27,28, - 29,30,82,83,84,7,36,37,38,39, - 40,41,42,43,44,45,31,118,53,5, - 124,64,117 + 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,19,14, + 55,61,67,84,88,90,94,97,99,109, + 110,111,123,93,104,54,106,47,64,70, + 73,76,83,89,98,1,77,95,103,46, + 53,58,78,20,44,121,33,119,63,91, + 101,30,118,122,96,108,49,50,56,57, + 59,69,71,72,85,92,65,17,18,6, + 15,16,21,22,32,4,23,24,25,26, + 27,28,5,34,35,36,37,38,39,40, + 41,42,43,80,81,82,29,117,51,3, + 124,62,116 }; }; public final static char terminalIndex[] = TerminalIndex.terminalIndex; @@ -1946,26 +1960,26 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, - 131,136,138,0,0,137,235,135,0,229, - 134,0,145,133,0,0,144,150,0,0, - 151,160,181,161,162,163,164,165,166,167, - 127,153,168,169,170,0,143,129,132,171, - 0,140,154,139,179,0,0,0,0,0, - 0,0,0,147,157,0,204,0,174,188, - 0,201,205,128,0,0,0,0,0,0, - 206,0,0,177,126,173,0,0,0,0, - 0,0,130,0,0,187,0,0,202,212, - 159,208,209,210,0,0,0,0,220,148, - 207,176,197,0,0,211,0,0,0,240, - 241,149,180,0,190,191,192,193,194,196, - 199,0,0,214,217,219,0,221,0,238, - 0,239,0,141,142,146,0,0,156,158, - 0,172,0,182,183,184,185,186,189,0, - 195,0,198,203,0,215,216,0,223,224, - 226,228,0,232,233,234,236,237,125,0, - 152,155,0,175,0,178,0,200,213,218, - 222,225,227,0,230,231,242,243,0,0, - 0,0,0,0 + 132,137,139,0,0,138,236,136,0,230, + 135,0,146,134,0,0,145,151,0,0, + 152,161,182,162,163,164,165,166,167,168, + 127,154,169,170,171,0,144,129,133,172, + 0,130,141,155,140,180,0,0,0,0, + 0,0,0,0,148,158,0,205,0,175, + 189,0,202,206,128,0,207,0,178,0, + 0,0,0,0,0,126,174,0,0,0, + 0,0,0,131,0,0,188,0,0,203, + 213,160,209,210,211,0,0,0,0,149, + 208,221,177,198,0,0,212,0,0,0, + 241,242,150,181,0,191,192,193,194,195, + 197,200,0,0,215,218,220,0,239,0, + 240,0,142,143,147,0,0,157,159,0, + 173,0,183,184,185,186,187,190,0,196, + 0,199,204,0,216,217,0,222,225,227, + 229,0,233,234,235,237,238,125,0,153, + 156,0,176,0,179,0,201,214,219,0, + 223,224,226,228,0,231,232,243,244,0, + 0,0,0,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -1973,18 +1987,18 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface ScopePrefix { public final static char scopePrefix[] = { - 161,582,601,533,549,560,571,366,271,285, - 307,313,42,296,386,424,169,590,476,20, - 51,71,80,85,90,127,141,197,302,319, - 330,341,277,291,504,27,376,341,609,27, - 219,250,1,14,61,76,106,151,232,324, - 337,346,355,359,442,469,498,525,529,619, - 623,627,97,7,97,151,404,420,433,453, - 517,433,540,556,567,578,209,487,56,56, - 158,224,227,245,266,227,227,56,363,448, - 466,473,158,56,640,110,238,408,460,116, - 116,238,56,238,395,179,104,446,631,638, - 631,638,65,414,134,134,104,104,255 + 151,572,591,523,539,550,561,356,261,275, + 297,303,42,286,376,414,159,580,466,20, + 51,71,80,85,90,127,187,292,309,320, + 331,267,281,494,27,366,331,599,27,209, + 240,1,14,61,76,106,141,222,314,327, + 336,345,349,432,459,488,515,519,609,613, + 617,97,7,97,141,394,410,423,443,507, + 423,530,546,557,568,199,477,56,56,148, + 214,217,235,256,217,217,56,353,438,456, + 463,148,56,630,110,228,398,450,116,116, + 228,56,228,385,169,104,436,621,628,621, + 628,65,404,134,104,104,245 }; }; public final static char scopePrefix[] = ScopePrefix.scopePrefix; @@ -1992,18 +2006,18 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface ScopeSuffix { public final static char scopeSuffix[] = { - 18,5,5,5,5,5,5,373,132,95, - 132,132,48,282,392,430,175,67,482,25, - 25,25,59,59,95,132,132,202,132,132, - 335,335,282,101,509,38,381,596,614,32, - 213,213,5,18,5,59,95,132,236,328, - 328,328,95,95,132,248,5,5,5,5, - 5,248,236,11,101,155,373,373,373,457, - 509,437,544,544,544,544,213,491,59,59, - 5,5,230,248,5,269,269,353,95,451, - 5,248,5,502,5,113,350,411,463,119, - 123,241,521,512,398,182,95,95,633,633, - 635,635,67,416,136,146,204,189,257 + 18,5,5,5,5,5,5,363,132,95, + 132,132,48,272,382,420,165,67,472,25, + 25,25,59,59,95,132,192,132,132,325, + 325,272,101,499,38,371,586,604,32,203, + 203,5,18,5,59,95,132,226,318,318, + 318,95,95,132,238,5,5,5,5,5, + 238,226,11,101,145,363,363,363,447,499, + 427,534,534,534,534,203,481,59,59,5, + 5,220,238,5,259,259,343,95,441,5, + 238,5,492,5,113,340,401,453,119,123, + 231,511,502,388,172,95,95,623,623,625, + 625,67,406,136,194,179,247 }; }; public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; @@ -2011,18 +2025,18 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface ScopeLhs { public final static char scopeLhs[] = { - 45,17,17,17,17,17,17,79,85,46, - 69,117,66,52,79,78,45,17,19,3, - 6,9,162,162,128,115,115,45,70,117, - 116,118,53,46,136,131,79,17,17,131, - 95,56,133,82,165,162,128,125,58,116, - 116,118,177,50,59,140,18,17,17,17, - 17,17,12,111,128,125,79,78,78,36, - 136,78,17,17,17,17,95,19,166,162, - 178,93,101,71,57,154,74,118,80,77, - 141,140,170,136,16,128,118,102,21,126, - 126,55,136,136,79,45,128,73,134,44, - 134,44,165,102,115,115,45,45,56 + 46,17,17,17,17,17,17,80,86,47, + 73,118,70,53,80,79,46,17,19,3, + 6,9,161,161,158,116,46,74,118,117, + 119,54,47,135,130,80,17,17,130,96, + 57,132,83,164,161,158,126,59,117,117, + 119,176,51,60,139,18,17,17,17,17, + 17,12,112,158,126,80,79,79,36,135, + 79,17,17,17,17,96,19,165,161,177, + 94,101,67,58,153,69,119,81,78,140, + 139,169,135,16,158,119,103,21,127,127, + 56,135,135,80,46,158,68,133,45,133, + 45,164,103,116,46,46,57 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -2030,18 +2044,18 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface ScopeLa { public final static byte scopeLa[] = { - 119,73,73,73,73,73,73,73,72,13, - 72,72,62,1,73,122,60,3,73,62, - 62,62,1,1,13,72,72,60,72,72, - 1,1,1,1,4,62,13,1,1,62, - 73,73,73,119,73,1,13,72,1,1, - 1,1,13,13,72,118,73,73,73,73, - 73,118,1,73,1,67,73,73,73,71, - 4,73,62,62,62,62,73,3,1,1, - 73,73,3,118,73,1,1,1,13,71, - 73,118,73,5,73,1,31,66,73,1, - 1,6,1,31,77,76,13,13,4,4, - 4,4,3,1,9,60,1,1,3 + 119,73,73,73,73,73,73,73,68,13, + 68,68,64,1,73,122,66,3,73,64, + 64,64,1,1,13,68,66,68,68,1, + 1,1,1,4,64,13,1,1,64,73, + 73,73,119,73,1,13,68,1,1,1, + 1,13,13,68,118,73,73,73,73,73, + 118,1,73,1,65,73,73,73,72,4, + 73,64,64,64,64,73,3,1,1,73, + 73,3,118,73,1,1,1,13,72,73, + 118,73,5,73,1,44,67,73,1,1, + 6,1,44,76,75,13,13,4,4,4, + 4,3,1,66,1,1,3 }; }; public final static byte scopeLa[] = ScopeLa.scopeLa; @@ -2049,18 +2063,18 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface ScopeStateSet { public final static char scopeStateSet[] = { - 94,245,245,245,245,245,245,105,85,94, - 82,151,82,97,105,105,94,245,245,178, - 220,221,53,53,78,151,151,94,82,151, - 151,151,97,94,134,46,105,245,245,46, - 143,62,24,105,28,53,78,308,62,151, - 151,151,20,97,31,59,245,245,245,245, - 245,245,240,6,78,308,105,105,105,277, - 134,105,245,245,245,245,143,245,28,53, - 22,143,145,139,62,56,67,151,105,105, - 50,59,137,134,245,78,151,1,246,151, - 151,118,134,134,105,94,78,11,115,155, - 115,155,28,1,151,151,94,94,62 + 92,242,242,242,242,242,242,102,83,92, + 81,148,81,94,102,102,92,242,242,175, + 217,218,53,53,78,148,92,81,148,148, + 148,94,92,131,46,102,242,242,46,140, + 62,24,102,28,53,78,305,62,148,148, + 148,20,94,31,59,242,242,242,242,242, + 242,237,6,78,305,102,102,102,274,131, + 102,242,242,242,242,140,242,28,53,22, + 140,142,136,62,56,67,148,102,102,50, + 59,134,131,242,78,148,1,243,148,148, + 115,131,131,102,92,78,11,112,152,112, + 152,28,1,148,92,92,62 }; }; public final static char scopeStateSet[] = ScopeStateSet.scopeStateSet; @@ -2068,70 +2082,69 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface ScopeRhs { public final static char scopeRhs[] = {0, - 311,3,58,0,127,0,310,3,119,0, - 127,174,0,127,182,76,0,216,0,252, - 127,28,125,0,22,0,291,127,28,31, - 0,22,55,0,35,133,0,22,55,0, - 0,291,127,28,31,195,0,22,130,0, - 252,127,28,130,0,184,128,0,143,0, - 219,3,289,0,289,0,3,0,127,0, - 252,127,28,133,0,184,128,222,0,184, - 128,41,222,0,184,128,307,41,0,131, - 188,167,128,0,129,0,188,167,128,0, - 135,129,0,170,0,304,127,170,0,127, - 170,0,222,129,0,167,242,0,138,0, - 0,0,136,0,0,0,281,127,9,249, - 0,128,0,249,0,1,0,0,128,0, - 281,127,60,249,0,4,0,0,128,0, - 303,127,60,0,46,128,0,155,3,0, - 127,279,278,127,76,277,170,0,278,127, - 76,277,170,0,215,0,216,0,277,170, - 0,98,0,0,215,0,216,0,203,98, - 0,0,215,0,216,0,278,127,277,170, - 0,215,0,203,0,0,215,0,227,127, - 3,0,127,0,0,0,0,0,227,127, - 3,216,0,224,3,0,212,127,0,208, - 0,188,167,171,0,135,0,167,128,0, - 12,0,0,0,214,56,0,126,0,227, - 127,3,180,0,180,0,3,0,0,127, - 0,0,0,0,0,197,3,0,201,0, - 237,127,60,29,17,0,184,128,57,59, - 0,197,129,0,131,184,128,275,59,0, - 184,128,275,59,0,184,128,66,124,57, - 0,237,127,60,57,0,237,127,60,226, - 57,0,273,127,60,124,68,0,273,127, - 60,68,0,184,128,68,0,136,0,188, - 184,128,242,0,138,0,184,128,242,0, - 188,167,128,10,0,167,128,10,0,95, - 138,0,148,0,266,127,146,0,266,127, - 170,0,162,86,0,296,161,298,299,3, - 83,0,127,173,0,298,299,3,83,0, - 129,0,127,173,0,162,3,77,199,82, - 0,127,129,0,199,82,0,110,3,132, - 127,129,0,225,3,77,0,197,166,0, - 35,171,0,166,0,177,35,171,0,225, - 3,87,0,199,154,225,3,85,0,64, - 173,0,225,3,85,0,127,173,64,173, - 0,297,127,60,0,162,0,214,79,0, - 32,0,162,117,158,0,32,171,0,177, - 3,0,127,151,0,219,3,0,214,56, - 263,0,162,56,0,177,3,293,65,128, - 0,127,0,0,0,0,293,65,128,0, - 3,147,127,0,0,0,0,177,3,36, - 0,149,0,126,31,167,128,0,33,149, - 0,95,138,33,149,0,223,184,128,0, - 148,33,149,0,177,3,40,0,162,3, - 40,0,162,3,62,177,28,32,0,177, - 28,32,0,22,3,132,127,0,162,3, - 62,177,28,35,0,177,28,35,0,162, - 3,62,177,28,37,0,177,28,37,0, - 162,3,62,177,28,33,0,177,28,33, - 0,219,3,126,188,167,128,10,0,126, - 188,167,128,10,0,138,3,0,127,0, - 219,3,125,171,167,128,10,0,171,167, - 128,10,0,136,3,0,127,0,219,3, - 136,0,219,3,140,0,162,56,140,0, - 258,0,33,0,33,141,0,165,0,162, + 312,3,58,0,127,0,311,3,119,0, + 127,175,0,127,183,75,0,217,0,251, + 127,29,125,0,20,0,290,127,29,44, + 0,20,53,0,33,134,0,20,53,0, + 0,290,127,29,44,198,0,20,131,0, + 251,127,29,130,0,185,128,0,144,0, + 220,3,288,0,288,0,2,0,127,0, + 251,127,29,133,0,185,128,225,0,185, + 128,45,225,0,185,128,308,45,0,131, + 189,168,128,0,129,0,189,168,128,0, + 136,129,0,171,0,304,127,171,0,127, + 171,0,223,129,0,168,243,0,139,0, + 0,0,137,0,0,0,303,127,165,250, + 0,128,0,250,0,130,0,0,128,0, + 302,127,165,0,44,128,0,155,3,0, + 127,278,277,127,75,276,171,0,277,127, + 75,276,171,0,216,0,217,0,276,171, + 0,96,0,0,216,0,217,0,204,96, + 0,0,216,0,217,0,277,127,276,171, + 0,216,0,204,0,0,216,0,228,127, + 3,0,127,0,0,0,0,0,228,127, + 3,217,0,224,3,0,213,127,0,209, + 0,189,168,172,0,136,0,168,128,0, + 10,0,0,0,215,56,0,126,0,228, + 127,3,181,0,181,0,2,0,0,127, + 0,0,0,0,0,192,3,0,202,0, + 238,127,165,28,17,0,185,128,57,59, + 0,198,129,0,131,185,128,274,59,0, + 185,128,274,59,0,185,128,67,124,57, + 0,238,127,165,57,0,238,127,165,227, + 57,0,272,127,165,124,69,0,272,127, + 165,69,0,185,128,69,0,137,0,189, + 185,128,243,0,139,0,185,128,243,0, + 189,168,128,10,0,168,128,10,0,93, + 139,0,149,0,265,127,146,0,265,127, + 171,0,162,85,0,295,161,297,298,3, + 82,0,127,174,0,297,298,3,82,0, + 129,0,127,174,0,162,3,76,200,81, + 0,127,129,0,200,81,0,108,2,133, + 127,129,0,226,3,76,0,192,167,0, + 33,172,0,167,0,178,33,172,0,226, + 3,86,0,200,154,226,3,84,0,62, + 174,0,226,3,84,0,127,174,62,174, + 0,296,127,165,0,162,0,215,78,0, + 30,0,162,117,158,0,30,172,0,178, + 3,0,127,152,0,220,3,0,215,56, + 262,0,162,56,0,178,3,292,63,128, + 0,127,0,0,0,0,292,63,128,0, + 2,148,127,0,0,0,0,178,3,35, + 0,150,0,126,44,168,128,0,31,150, + 0,93,139,31,150,0,223,185,128,0, + 149,31,150,0,178,3,39,0,162,3, + 39,0,162,3,64,178,29,31,0,178, + 29,31,0,20,2,133,127,0,162,3, + 64,178,29,34,0,178,29,34,0,162, + 3,64,178,29,36,0,178,29,36,0, + 162,3,64,178,29,32,0,178,29,32, + 0,220,3,126,189,168,128,10,0,126, + 189,168,128,10,0,139,2,0,127,0, + 220,3,125,172,168,128,10,0,172,168, + 128,10,0,137,2,0,127,0,220,3, + 136,0,220,3,140,0,162,56,140,0, + 257,0,31,0,31,142,0,166,0,162, 3,0 }; }; @@ -2140,38 +2153,37 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface ScopeState { public final static char scopeState[] = {0, - 3409,4360,4074,3379,0,1650,1897,1178,1768,0, - 3439,3378,3314,3254,3194,3134,3069,2895,2833,2740, - 0,770,0,2104,1930,1218,0,3310,3190,0, - 3439,3378,2739,2706,3314,3254,3194,3134,2132,3069, - 2895,2833,4096,3632,0,4583,4254,4539,0,3309, - 2140,0,812,2649,0,579,4528,0,2931,1795, - 0,4423,579,4172,3568,4528,3341,4063,4501,4283, - 2786,3579,3686,3028,2711,2636,0,4522,4397,4389, - 0,4522,4397,4389,3706,4303,4249,3652,4195,4141, - 4082,3598,0,4522,4397,4389,3706,4303,4249,3652, - 4195,4141,4082,3598,3439,3378,3314,3254,3194,3134, - 3069,2895,2833,0,1375,790,0,2786,4423,4651, - 4172,3568,3070,3028,3599,4611,3261,2846,716,862, - 4358,4306,0,795,656,0,1213,0,2157,1010, - 584,557,3568,716,3341,2711,2636,2631,2760,0, - 4322,534,2541,0,4268,4160,3725,3671,3465,3218, - 3162,3095,4599,4595,4578,4570,4450,3062,2921,4377, - 2888,2826,2820,2588,1938,1006,0,4268,3677,4160, - 3609,3368,3725,3671,3465,2583,918,3218,3162,3095, - 3503,4599,3374,3294,4595,3248,3234,3109,2579,2240, - 4578,3227,4570,3320,4450,3062,2921,2233,4377,1220, - 2888,783,2826,2820,4322,2588,2541,1938,1006,728, - 3341,4063,4501,4283,2786,4423,3579,2146,579,1119, - 4172,638,3568,3686,3028,2711,4528,2636,623,932, - 2059,993,795,656,2663,4041,4019,2246,2283,590, - 2317,2405,2377,2348,2597,2550,2514,2487,2460,2433, - 3545,3522,3039,3003,2978,3997,3975,3953,3931,3909, - 3887,3865,3843,3821,3792,1053,1943,2196,2159,2109, - 2072,2022,1224,1174,1985,1132,873,1893,1856,818, - 739,684,1814,1772,1730,1688,1646,1604,1562,1520, - 1478,1436,1394,534,1352,1309,1077,1011,951,1266, - 0 + 2890,4147,3104,2891,0,2183,3544,1175,3355,0, + 3347,3286,3225,3164,3103,3042,2977,2624,2563,2626, + 0,876,0,2657,1127,871,0,2620,625,0, + 3347,3286,3330,1989,3225,3164,3103,3042,1859,2977, + 2624,2563,4645,1223,0,4428,779,3632,0,3061, + 2945,0,4385,4180,0,1071,4541,0,2947,675, + 0,4459,1071,3731,3617,4541,3469,4114,4528,4352, + 2949,4329,579,3456,2879,2808,0,4555,4425,0, + 4555,4425,3756,4297,4242,3699,4201,4146,2917,3644, + 0,4555,4425,3756,4297,4242,3699,4201,4146,2917, + 3644,3347,3286,3225,3164,3103,3042,2977,2624,2563, + 0,3128,927,0,2949,4459,1490,3731,3617,4400, + 3456,3062,1448,1826,4153,3044,1532,1406,1176,0, + 798,658,0,558,0,2340,1054,920,784,3617, + 3044,3469,2879,2808,3066,859,0,4394,535,2680, + 0,4569,4441,4261,4165,3775,3640,3373,3298,4636, + 4632,4619,4573,3506,3251,3176,3032,3129,2590,735, + 1960,2896,2776,0,4569,3668,4441,3556,3380,4261, + 4165,3775,2924,2581,3640,3373,3298,3763,4636,3706, + 3552,4632,3411,3314,2905,1065,2597,4619,2636,4573, + 3320,3506,3251,3176,865,3032,731,3129,631,2590, + 735,4394,1960,2680,2896,2776,922,3469,4114,4528, + 4352,2949,4459,4329,2568,1071,2258,3731,2170,3617, + 579,3456,2879,4541,2808,2082,935,1270,1131,798, + 658,4125,4092,4070,2272,2309,592,2343,2431,2403, + 2374,2829,2713,2540,2513,2486,2459,3589,3566,3480, + 3431,2742,4048,4026,4004,3982,3960,3938,3916,3894, + 3872,3843,999,1966,2221,2184,2133,2096,2045,1288, + 1228,2008,1186,877,1915,1878,820,741,684,1836, + 1794,1752,1710,1668,1626,1584,1542,1500,1458,1416, + 535,1374,1330,1144,1022,956,1083,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2179,59 +2191,59 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface InSymb { public final static char inSymb[] = {0, - 0,292,127,265,40,32,35,37,33,10, - 136,125,133,7,130,4,3,128,36,30, - 5,12,11,6,8,27,26,140,145,148, + 0,291,127,264,39,31,34,36,32,10, + 136,125,133,7,130,4,3,128,35,30, + 5,12,11,6,9,27,26,140,145,148, 147,150,149,152,151,156,153,157,58,158, - 67,3,28,28,28,28,128,3,28,28, - 166,127,56,3,64,65,28,7,125,177, - 162,166,127,64,65,167,165,125,3,124, - 126,106,120,3,56,90,96,12,11,92, - 91,6,94,93,62,28,88,89,8,98, - 97,100,99,101,116,115,114,113,112,111, - 110,109,108,107,66,117,102,177,162,177, - 177,177,177,167,219,127,127,127,267,268, - 249,269,242,270,68,271,272,10,128,56, - 56,127,154,127,56,3,217,216,136,126, - 125,10,128,56,293,3,188,4,177,31, - 5,128,31,219,162,147,147,145,145,145, + 65,3,29,29,29,29,128,3,29,29, + 167,127,56,3,62,63,29,7,125,178, + 162,167,127,62,63,168,166,125,3,124, + 126,103,120,3,56,90,96,12,11,92, + 91,6,94,93,64,29,88,89,9,98, + 97,100,99,101,113,112,111,110,109,108, + 107,106,105,104,67,117,102,178,162,178, + 178,178,178,168,220,127,127,127,266,267, + 250,268,243,269,69,270,271,10,128,56, + 56,127,154,127,56,3,218,217,136,126, + 125,10,128,56,292,3,189,4,178,44, + 5,128,44,220,162,147,147,145,145,145, 149,149,149,149,148,148,151,150,150,153, - 152,156,162,157,62,62,62,62,188,171, - 252,255,252,212,128,6,9,60,167,230, - 128,126,125,124,60,128,128,184,167,252, - 212,214,158,224,127,3,128,167,198,3, - 294,166,155,258,188,128,125,184,167,71, - 3,3,3,3,126,125,67,167,127,127, - 127,126,125,127,184,127,60,127,184,167, - 31,227,228,146,229,127,167,31,177,127, - 127,4,223,5,31,162,162,162,162,3, - 3,6,183,281,128,168,222,57,31,195, - 59,170,282,281,127,127,71,188,127,273, - 124,274,188,154,66,224,197,186,180,171, - 3,127,67,227,188,154,260,263,56,178, - 4,124,126,219,219,127,167,60,226,28, - 31,275,277,127,3,180,306,222,41,128, - 273,66,67,127,66,66,3,167,197,127, - 212,154,126,127,3,56,162,4,188,127, - 60,62,28,128,76,127,212,304,127,125, - 71,284,197,67,128,41,307,184,220,127, - 188,127,260,219,214,131,237,17,31,170, - 63,57,59,236,127,127,184,127,278,71, - 67,212,71,66,184,128,128,127,227,220, - 29,127,3,124,57,237,291,31,10,61, - 131,278,60,288,128,289,184,184,58,154, - 127,127,60,266,197,276,29,66,128,67, - 62,28,230,230,279,127,67,184,3,3, - 127,127,3,66,67,154,128,184,127,66, - 66,127,297,81,79,1,162,87,85,83, - 82,77,84,86,80,78,57,76,219,311, - 220,237,155,60,184,226,291,280,119,9, - 214,71,3,3,3,199,3,124,162,124, - 182,67,127,127,226,62,3,225,166,225, - 299,146,77,225,127,303,61,95,310,166, - 154,197,154,298,127,3,154,280,67,230, - 154,154,127,66,199,161,266,162,66,122, - 296,154,154 + 152,156,162,157,64,64,64,64,189,172, + 251,254,251,213,128,6,165,168,231,128, + 126,125,124,165,128,128,185,168,251,213, + 215,158,224,127,3,128,168,199,3,293, + 167,155,257,189,128,125,185,168,72,3, + 3,3,3,126,125,65,168,127,127,126, + 125,127,185,127,165,127,185,168,44,228, + 229,146,230,127,168,44,178,127,127,4, + 223,5,44,162,162,162,162,3,3,6, + 184,303,128,169,225,57,44,198,59,171, + 305,127,127,72,189,127,272,124,273,189, + 154,67,224,192,187,181,172,3,127,65, + 228,189,154,259,262,56,179,4,124,126, + 220,220,127,168,165,227,29,44,274,276, + 127,3,181,307,225,45,128,272,67,65, + 127,67,67,3,168,192,127,213,154,126, + 127,3,56,162,4,189,127,165,64,29, + 128,75,127,213,304,127,125,72,283,192, + 65,128,45,308,185,221,127,189,127,259, + 220,215,131,238,17,44,171,60,57,59, + 237,127,127,185,127,277,72,65,213,72, + 67,185,128,128,127,228,221,28,127,3, + 124,57,238,290,44,10,61,131,277,165, + 287,128,288,185,185,58,154,127,127,165, + 265,192,275,28,67,128,65,64,29,231, + 231,278,127,65,185,3,3,127,127,3, + 67,65,154,128,185,127,67,67,127,296, + 80,78,1,162,8,86,84,82,81,76, + 83,85,79,77,57,75,220,312,221,238, + 155,165,185,227,290,279,119,8,215,72, + 3,3,3,200,3,124,162,124,183,65, + 127,127,227,64,3,226,167,226,298,146, + 76,226,127,302,8,61,95,311,167,154, + 192,154,297,127,3,154,279,65,231,154, + 154,127,67,200,161,265,162,67,122,295, + 154,154 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2240,10 +2252,8 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface Name { public final static String name[] = { "", - "EOC", "[", "(", - "{", ".", ".*", "->", @@ -2356,11 +2366,13 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP "stringlit", "identifier", "Completion", + "EndOfCompletion", "Invalid", "RightBracket", "RightParen", "RightBrace", "SemiColon", + "LeftBrace", "ERROR_TOKEN", "0", "EOF_TOKEN", @@ -2369,6 +2381,7 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP ")", "}", ";", + "{", "declaration", "identifier_token", "expression", @@ -2496,8 +2509,8 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public final static int ERROR_SYMBOL = 74, - SCOPE_UBOUND = 118, - SCOPE_SIZE = 119, + SCOPE_UBOUND = 116, + SCOPE_SIZE = 117, MAX_NAME_LENGTH = 37; public final int getErrorSymbol() { return ERROR_SYMBOL; } @@ -2506,20 +2519,20 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 523, + NUM_STATES = 522, NT_OFFSET = 123, - LA_STATE_OFFSET = 5682, + LA_STATE_OFFSET = 5736, MAX_LA = 2147483647, - NUM_RULES = 533, - NUM_NONTERMINALS = 194, - NUM_SYMBOLS = 317, + NUM_RULES = 534, + NUM_NONTERMINALS = 195, + NUM_SYMBOLS = 318, SEGMENT_SIZE = 8192, - START_STATE = 3129, + START_STATE = 2978, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 121, EOLT_SYMBOL = 121, - ACCEPT_ACTION = 4759, - ERROR_ACTION = 5149; + ACCEPT_ACTION = 4802, + ERROR_ACTION = 5202; 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 6432761ae0f..7c49267b8ec 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,87 +15,86 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp; public interface CPPExpressionParsersym { public final static int - TK_asm = 63, + TK_asm = 60, TK_auto = 48, TK_bool = 14, - TK_break = 78, - TK_case = 79, + TK_break = 77, + TK_case = 78, TK_catch = 119, TK_char = 15, TK_class = 61, TK_const = 46, - TK_const_cast = 32, - TK_continue = 80, - TK_default = 81, - TK_delete = 64, - TK_do = 82, + TK_const_cast = 31, + TK_continue = 79, + TK_default = 80, + TK_delete = 62, + TK_do = 81, TK_double = 16, - TK_dynamic_cast = 33, + TK_dynamic_cast = 32, TK_else = 122, - TK_enum = 68, + TK_enum = 69, TK_explicit = 49, - TK_export = 75, + TK_export = 87, TK_extern = 17, - TK_false = 34, + TK_false = 33, TK_float = 18, - TK_for = 83, + TK_for = 82, TK_friend = 50, - TK_goto = 84, - TK_if = 85, + TK_goto = 83, + TK_if = 84, TK_inline = 51, TK_int = 19, TK_long = 20, TK_mutable = 52, TK_namespace = 57, - TK_new = 65, + TK_new = 63, TK_operator = 7, - TK_private = 103, - TK_protected = 104, - TK_public = 105, + TK_private = 114, + TK_protected = 115, + TK_public = 116, TK_register = 53, - TK_reinterpret_cast = 35, - TK_return = 86, + TK_reinterpret_cast = 34, + TK_return = 85, TK_short = 21, TK_signed = 22, - TK_sizeof = 36, + TK_sizeof = 35, TK_static = 54, - TK_static_cast = 37, - TK_struct = 69, - TK_switch = 87, - TK_template = 31, - TK_this = 38, + TK_static_cast = 36, + TK_struct = 70, + TK_switch = 86, + TK_template = 44, + TK_this = 37, TK_throw = 58, - TK_try = 76, - TK_true = 39, + TK_try = 75, + TK_true = 38, TK_typedef = 55, - TK_typeid = 40, + TK_typeid = 39, TK_typename = 10, - TK_union = 70, + TK_union = 71, TK_unsigned = 23, TK_using = 59, - TK_virtual = 41, + TK_virtual = 45, TK_void = 24, TK_volatile = 47, TK_wchar_t = 25, - TK_while = 77, - TK_integer = 42, - TK_floating = 43, - TK_charconst = 44, - TK_stringlit = 29, + TK_while = 76, + TK_integer = 40, + TK_floating = 41, + TK_charconst = 42, + TK_stringlit = 28, TK_identifier = 1, TK_Completion = 2, - TK_EndOfCompletion = 9, + TK_EndOfCompletion = 8, TK_Invalid = 123, TK_LeftBracket = 56, TK_LeftParen = 3, - TK_LeftBrace = 60, TK_Dot = 120, TK_DotStar = 96, - TK_Arrow = 106, + TK_Arrow = 103, TK_ArrowStar = 90, TK_PlusPlus = 26, TK_MinusMinus = 27, - TK_And = 8, + TK_And = 9, TK_Star = 6, TK_Plus = 11, TK_Minus = 12, @@ -105,8 +104,8 @@ public interface CPPExpressionParsersym { TK_Percent = 92, TK_RightShift = 88, TK_LeftShift = 89, - TK_LT = 28, - TK_GT = 62, + TK_LT = 29, + TK_GT = 64, TK_LE = 93, TK_GE = 94, TK_EQ = 97, @@ -116,27 +115,28 @@ public interface CPPExpressionParsersym { TK_AndAnd = 101, TK_OrOr = 102, TK_Question = 117, - TK_Colon = 71, + TK_Colon = 72, TK_ColonColon = 4, TK_DotDotDot = 95, - TK_Assign = 66, - TK_StarAssign = 107, - TK_SlashAssign = 108, - TK_PercentAssign = 109, - TK_PlusAssign = 110, - TK_MinusAssign = 111, - TK_RightShiftAssign = 112, - TK_LeftShiftAssign = 113, - TK_AndAssign = 114, - TK_CaretAssign = 115, - TK_OrAssign = 116, - TK_Comma = 67, + TK_Assign = 67, + TK_StarAssign = 104, + TK_SlashAssign = 105, + TK_PercentAssign = 106, + TK_PlusAssign = 107, + TK_MinusAssign = 108, + TK_RightShiftAssign = 109, + TK_LeftShiftAssign = 110, + TK_AndAssign = 111, + TK_CaretAssign = 112, + TK_OrAssign = 113, + TK_Comma = 65, TK_RightBracket = 118, TK_RightParen = 73, - TK_RightBrace = 72, + TK_RightBrace = 68, TK_SemiColon = 13, + TK_LeftBrace = 66, TK_ERROR_TOKEN = 74, - TK_0 = 45, + TK_0 = 43, TK_EOF_TOKEN = 121; public final static String orderedTerminalSymbols[] = { @@ -148,8 +148,8 @@ public interface CPPExpressionParsersym { "Tilde", "Star", "operator", - "And", "EndOfCompletion", + "And", "typename", "Plus", "Minus", @@ -168,10 +168,9 @@ public interface CPPExpressionParsersym { "wchar_t", "PlusPlus", "MinusMinus", - "LT", "stringlit", + "LT", "Bang", - "template", "const_cast", "dynamic_cast", "false", @@ -181,11 +180,12 @@ public interface CPPExpressionParsersym { "this", "true", "typeid", - "virtual", "integer", "floating", "charconst", "0", + "template", + "virtual", "const", "volatile", "auto", @@ -200,22 +200,21 @@ public interface CPPExpressionParsersym { "namespace", "throw", "using", - "LeftBrace", - "class", - "GT", "asm", + "class", "delete", "new", - "Assign", + "GT", "Comma", + "LeftBrace", + "Assign", + "RightBrace", "enum", "struct", "union", "Colon", - "RightBrace", "RightParen", "ERROR_TOKEN", - "export", "try", "while", "break", @@ -228,6 +227,7 @@ public interface CPPExpressionParsersym { "if", "return", "switch", + "export", "RightShift", "LeftShift", "ArrowStar", @@ -243,9 +243,6 @@ public interface CPPExpressionParsersym { "Or", "AndAnd", "OrOr", - "private", - "protected", - "public", "Arrow", "StarAssign", "SlashAssign", @@ -257,6 +254,9 @@ public interface CPPExpressionParsersym { "AndAssign", "CaretAssign", "OrAssign", + "private", + "protected", + "public", "Question", "RightBracket", "catch", 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 d7922ea9cfd..ee731b6e27b 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 @@ -267,1997 +267,1990 @@ public CPPNoCastExpressionParser(String[] mapFrom) { // constructor } // - // Rule 11: translation_unit ::= external_declaration_list + // Rule 13: translation_unit ::= external_declaration_list // - case 11: { action.builder. + case 13: { action.builder. consumeTranslationUnit(); break; } // - // Rule 12: translation_unit ::= $Empty + // Rule 14: translation_unit ::= $Empty // - case 12: { action.builder. + case 14: { action.builder. consumeTranslationUnit(); break; } // - // Rule 16: external_declaration ::= ERROR_TOKEN + // Rule 18: external_declaration ::= ERROR_TOKEN // - case 16: { action.builder. + case 18: { action.builder. consumeDeclarationProblem(); break; } // - // Rule 19: literal ::= integer - // - case 19: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; - } - - // - // Rule 20: literal ::= 0 - // - case 20: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; - } - - // - // Rule 21: literal ::= floating + // 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 22: literal ::= charconst + // Rule 24: literal ::= charconst // - case 22: { action.builder. + case 24: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_char_constant); break; } // - // Rule 23: literal ::= stringlit + // Rule 25: literal ::= stringlit // - case 23: { action.builder. + case 25: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_string_literal); break; } // - // Rule 24: literal ::= true + // Rule 26: literal ::= true // - case 24: { action.builder. + case 26: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_true); break; } // - // Rule 25: literal ::= false + // Rule 27: literal ::= false // - case 25: { action.builder. + case 27: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_false); break; } // - // Rule 26: literal ::= this + // Rule 28: literal ::= this // - case 26: { action.builder. + case 28: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_this); break; } // - // Rule 28: primary_expression ::= ( expression ) + // Rule 30: primary_expression ::= ( expression ) // - case 28: { action.builder. + case 30: { action.builder. consumeExpressionBracketed(); break; } // - // Rule 30: id_expression ::= qualified_or_unqualified_name + // Rule 32: id_expression ::= qualified_or_unqualified_name // - case 30: { action.builder. + case 32: { action.builder. consumeExpressionName(); break; } // - // Rule 37: unqualified_id_name ::= ~ identifier_token + // Rule 39: unqualified_id_name ::= ~ identifier_token // - case 37: { action.builder. + case 39: { action.builder. consumeDestructorName(); break; } // - // Rule 38: unqualified_id_name ::= ~ template_id_name + // Rule 40: unqualified_id_name ::= ~ template_id_name // - case 38: { action.builder. + case 40: { action.builder. consumeDestructorNameTemplateId(); break; } // - // Rule 39: identifier_name ::= identifier_token + // Rule 41: identifier_name ::= identifier_token // - case 39: { action.builder. + case 41: { action.builder. consumeIdentifierName(); break; } // - // Rule 40: template_opt ::= template + // Rule 42: template_opt ::= template // - case 40: { action.builder. + case 42: { action.builder. consumePlaceHolder(); break; } // - // Rule 41: template_opt ::= $Empty - // - case 41: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 42: dcolon_opt ::= :: - // - case 42: { action.builder. - consumeToken(); break; - } - - // - // Rule 43: dcolon_opt ::= $Empty + // Rule 43: template_opt ::= $Empty // case 43: { action.builder. consumeEmpty(); break; } // - // Rule 44: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name + // Rule 44: dcolon_opt ::= :: // case 44: { action.builder. + consumeToken(); break; + } + + // + // Rule 45: dcolon_opt ::= $Empty + // + case 45: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 46: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name + // + case 46: { action.builder. consumeQualifiedId(true); break; } // - // Rule 45: qualified_id_name ::= :: identifier_name - // - case 45: { action.builder. - consumeGlobalQualifiedId(); break; - } - - // - // Rule 46: qualified_id_name ::= :: operator_function_id_name - // - case 46: { action.builder. - consumeGlobalQualifiedId(); break; - } - - // - // Rule 47: qualified_id_name ::= :: template_id_name + // Rule 47: qualified_id_name ::= :: identifier_name // case 47: { action.builder. consumeGlobalQualifiedId(); break; } // - // Rule 48: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template + // Rule 48: qualified_id_name ::= :: operator_function_id_name // case 48: { action.builder. - consumeNestedNameSpecifier(true); break; + consumeGlobalQualifiedId(); break; } // - // Rule 49: nested_name_specifier ::= class_or_namespace_name :: + // Rule 49: qualified_id_name ::= :: template_id_name // case 49: { action.builder. - consumeNestedNameSpecifier(false); break; + consumeGlobalQualifiedId(); break; } // - // Rule 50: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template + // Rule 50: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template // case 50: { action.builder. consumeNestedNameSpecifier(true); break; } // - // Rule 51: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: + // Rule 51: nested_name_specifier ::= class_or_namespace_name :: // case 51: { action.builder. consumeNestedNameSpecifier(false); break; } // - // Rule 52: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name + // Rule 52: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template // case 52: { action.builder. + consumeNestedNameSpecifier(true); break; + } + + // + // Rule 53: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: + // + case 53: { action.builder. + consumeNestedNameSpecifier(false); break; + } + + // + // Rule 54: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name + // + case 54: { action.builder. consumeNameWithTemplateKeyword(); break; } // - // Rule 54: nested_name_specifier_opt ::= $Empty + // Rule 56: nested_name_specifier_opt ::= $Empty // - case 54: { action.builder. + case 56: { action.builder. consumeNestedNameSpecifierEmpty(); break; } // - // Rule 57: postfix_expression ::= postfix_expression [ expression ] + // Rule 59: postfix_expression ::= postfix_expression [ expression ] // - case 57: { action.builder. + case 59: { action.builder. consumeExpressionArraySubscript(); break; } // - // Rule 58: postfix_expression ::= postfix_expression ( expression_list_opt ) + // Rule 60: postfix_expression ::= postfix_expression ( expression_list_opt ) // - case 58: { action.builder. + case 60: { action.builder. consumeExpressionFunctionCall(); break; } // - // Rule 59: postfix_expression ::= simple_type_specifier ( expression_list_opt ) + // Rule 61: postfix_expression ::= simple_type_specifier ( expression_list_opt ) // - case 59: { action.builder. + case 61: { action.builder. consumeExpressionSimpleTypeConstructor(); break; } // - // Rule 60: postfix_expression ::= typename dcolon_opt nested_name_specifier identifier_name ( expression_list_opt ) - // - case 60: { action.builder. - consumeExpressionTypeName(); break; - } - - // - // Rule 61: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) - // - case 61: { action.builder. - consumeExpressionTypeName(); break; - } - - // - // Rule 62: postfix_expression ::= postfix_expression . qualified_or_unqualified_name + // Rule 62: postfix_expression ::= typename dcolon_opt nested_name_specifier identifier_name ( expression_list_opt ) // case 62: { action.builder. + consumeExpressionTypeName(); break; + } + + // + // Rule 63: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) + // + case 63: { action.builder. + consumeExpressionTypeName(); break; + } + + // + // Rule 64: postfix_expression ::= postfix_expression . qualified_or_unqualified_name + // + case 64: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 63: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name + // Rule 65: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name // - case 63: { action.builder. + case 65: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 64: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name + // Rule 66: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name // - case 64: { action.builder. + case 66: { action.builder. consumeExpressionFieldReference(false, true); break; } // - // Rule 65: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name + // Rule 67: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name // - case 65: { action.builder. + case 67: { action.builder. consumeExpressionFieldReference(true, true); break; } // - // Rule 66: postfix_expression ::= postfix_expression . pseudo_destructor_name + // Rule 68: postfix_expression ::= postfix_expression . pseudo_destructor_name // - case 66: { action.builder. + case 68: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 67: postfix_expression ::= postfix_expression -> pseudo_destructor_name + // Rule 69: postfix_expression ::= postfix_expression -> pseudo_destructor_name // - case 67: { action.builder. + case 69: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 68: postfix_expression ::= postfix_expression ++ + // Rule 70: postfix_expression ::= postfix_expression ++ // - case 68: { action.builder. + case 70: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; } // - // Rule 69: postfix_expression ::= postfix_expression -- + // Rule 71: postfix_expression ::= postfix_expression -- // - case 69: { action.builder. + case 71: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; } // - // Rule 70: postfix_expression ::= dynamic_cast < type_id > ( expression ) + // Rule 72: postfix_expression ::= dynamic_cast < type_id > ( expression ) // - case 70: { action.builder. + case 72: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); break; } // - // Rule 71: postfix_expression ::= static_cast < type_id > ( expression ) + // Rule 73: postfix_expression ::= static_cast < type_id > ( expression ) // - case 71: { action.builder. + case 73: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_static_cast); break; } // - // Rule 72: postfix_expression ::= reinterpret_cast < type_id > ( expression ) + // Rule 74: postfix_expression ::= reinterpret_cast < type_id > ( expression ) // - case 72: { action.builder. + case 74: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); break; } // - // Rule 73: postfix_expression ::= const_cast < type_id > ( expression ) + // Rule 75: postfix_expression ::= const_cast < type_id > ( expression ) // - case 73: { action.builder. + case 75: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_const_cast); break; } // - // Rule 74: postfix_expression ::= typeid ( expression ) + // Rule 76: postfix_expression ::= typeid ( expression ) // - case 74: { action.builder. + case 76: { action.builder. consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break; } // - // Rule 75: postfix_expression ::= typeid ( type_id ) + // Rule 77: postfix_expression ::= typeid ( type_id ) // - case 75: { action.builder. + case 77: { action.builder. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid); break; } // - // Rule 76: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name - // - case 76: { action.builder. - consumePsudoDestructorName(true); break; - } - - // - // Rule 77: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name - // - case 77: { action.builder. - consumePsudoDestructorName(true); break; - } - - // - // Rule 78: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name + // Rule 78: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name // case 78: { action.builder. + consumePsudoDestructorName(true); break; + } + + // + // Rule 79: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name + // + case 79: { action.builder. + consumePsudoDestructorName(true); break; + } + + // + // Rule 80: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name + // + case 80: { action.builder. consumePsudoDestructorName(false); break; } // - // Rule 79: destructor_type_name ::= ~ identifier_token + // Rule 81: destructor_type_name ::= ~ identifier_token // - case 79: { action.builder. + case 81: { action.builder. consumeDestructorName(); break; } // - // Rule 80: destructor_type_name ::= ~ template_id_name + // Rule 82: destructor_type_name ::= ~ template_id_name // - case 80: { action.builder. + case 82: { action.builder. consumeDestructorNameTemplateId(); break; } // - // Rule 84: unary_expression ::= ++ cast_expression + // Rule 86: unary_expression ::= ++ cast_expression // - case 84: { action.builder. + case 86: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; } // - // Rule 85: unary_expression ::= -- cast_expression + // Rule 87: unary_expression ::= -- cast_expression // - case 85: { action.builder. + case 87: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; } // - // Rule 86: unary_expression ::= & cast_expression + // Rule 88: unary_expression ::= & cast_expression // - case 86: { action.builder. + case 88: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; } // - // Rule 87: unary_expression ::= * cast_expression + // Rule 89: unary_expression ::= * cast_expression // - case 87: { action.builder. + case 89: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; } // - // Rule 88: unary_expression ::= + cast_expression + // Rule 90: unary_expression ::= + cast_expression // - case 88: { action.builder. + case 90: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; } // - // Rule 89: unary_expression ::= - cast_expression + // Rule 91: unary_expression ::= - cast_expression // - case 89: { action.builder. + case 91: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; } // - // Rule 90: unary_expression ::= ~ cast_expression + // Rule 92: unary_expression ::= ~ cast_expression // - case 90: { action.builder. + case 92: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; } // - // Rule 91: unary_expression ::= ! cast_expression + // Rule 93: unary_expression ::= ! cast_expression // - case 91: { action.builder. + case 93: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; } // - // Rule 92: unary_expression ::= sizeof unary_expression + // Rule 94: unary_expression ::= sizeof unary_expression // - case 92: { action.builder. + case 94: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; } // - // Rule 93: unary_expression ::= sizeof ( type_id ) + // Rule 95: unary_expression ::= sizeof ( type_id ) // - case 93: { action.builder. + case 95: { 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 96: new_expression ::= dcolon_opt new new_placement_opt new_type_id new_array_expressions_opt new_initializer_opt // - case 94: { action.builder. + case 96: { 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 97: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_array_expressions_opt new_initializer_opt // - case 95: { action.builder. + case 97: { action.builder. consumeExpressionNew(false); break; } // - // Rule 97: new_placement_opt ::= $Empty + // Rule 99: new_placement_opt ::= $Empty // - case 97: { action.builder. + case 99: { action.builder. consumeEmpty(); break; } // - // Rule 98: new_type_id ::= type_specifier_seq + // Rule 100: new_type_id ::= type_specifier_seq // - case 98: { action.builder. + case 100: { action.builder. consumeTypeId(false); break; } // - // Rule 99: new_type_id ::= type_specifier_seq new_declarator + // Rule 101: new_type_id ::= type_specifier_seq new_declarator // - case 99: { action.builder. + case 101: { action.builder. consumeTypeId(true); break; } // - // Rule 100: new_declarator ::= new_pointer_operators + // Rule 102: new_declarator ::= new_pointer_operators // - case 100: { action.builder. + case 102: { action.builder. consumeNewDeclarator(); break; } // - // Rule 109: new_initializer_opt ::= $Empty + // Rule 111: new_initializer_opt ::= $Empty // - case 109: { action.builder. + case 111: { action.builder. consumeEmpty(); break; } // - // Rule 110: delete_expression ::= dcolon_opt delete cast_expression + // Rule 112: delete_expression ::= dcolon_opt delete cast_expression // - case 110: { action.builder. + case 112: { action.builder. consumeExpressionDelete(false); break; } // - // Rule 111: delete_expression ::= dcolon_opt delete [ ] cast_expression + // Rule 113: delete_expression ::= dcolon_opt delete [ ] cast_expression // - case 111: { action.builder. + case 113: { action.builder. consumeExpressionDelete(true); break; } // - // Rule 114: pm_expression ::= pm_expression .* cast_expression + // Rule 116: pm_expression ::= pm_expression .* cast_expression // - case 114: { action.builder. + case 116: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot); break; } // - // Rule 115: pm_expression ::= pm_expression ->* cast_expression + // Rule 117: pm_expression ::= pm_expression ->* cast_expression // - case 115: { action.builder. + case 117: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow); break; } // - // Rule 117: multiplicative_expression ::= multiplicative_expression * pm_expression + // Rule 119: multiplicative_expression ::= multiplicative_expression * pm_expression // - case 117: { action.builder. + case 119: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply); break; } // - // Rule 118: multiplicative_expression ::= multiplicative_expression / pm_expression + // Rule 120: multiplicative_expression ::= multiplicative_expression / pm_expression // - case 118: { action.builder. + case 120: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide); break; } // - // Rule 119: multiplicative_expression ::= multiplicative_expression % pm_expression + // Rule 121: multiplicative_expression ::= multiplicative_expression % pm_expression // - case 119: { action.builder. + case 121: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo); break; } // - // Rule 121: additive_expression ::= additive_expression + multiplicative_expression + // Rule 123: additive_expression ::= additive_expression + multiplicative_expression // - case 121: { action.builder. + case 123: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus); break; } // - // Rule 122: additive_expression ::= additive_expression - multiplicative_expression + // Rule 124: additive_expression ::= additive_expression - multiplicative_expression // - case 122: { action.builder. + case 124: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus); break; } // - // Rule 124: shift_expression ::= shift_expression << additive_expression + // Rule 126: shift_expression ::= shift_expression << additive_expression // - case 124: { action.builder. + case 126: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft); break; } // - // Rule 125: shift_expression ::= shift_expression >> additive_expression + // Rule 127: shift_expression ::= shift_expression >> additive_expression // - case 125: { action.builder. + case 127: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight); break; } // - // Rule 127: relational_expression ::= relational_expression < shift_expression + // Rule 129: relational_expression ::= relational_expression < shift_expression // - case 127: { action.builder. + case 129: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; } // - // Rule 128: relational_expression ::= relational_expression > shift_expression + // Rule 130: relational_expression ::= relational_expression > shift_expression // - case 128: { action.builder. + case 130: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; } // - // Rule 129: relational_expression ::= relational_expression <= shift_expression + // Rule 131: relational_expression ::= relational_expression <= shift_expression // - case 129: { action.builder. + case 131: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; } // - // Rule 130: relational_expression ::= relational_expression >= shift_expression + // Rule 132: relational_expression ::= relational_expression >= shift_expression // - case 130: { action.builder. + case 132: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; } // - // Rule 132: equality_expression ::= equality_expression == relational_expression + // Rule 134: equality_expression ::= equality_expression == relational_expression // - case 132: { action.builder. + case 134: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; } // - // Rule 133: equality_expression ::= equality_expression != relational_expression + // Rule 135: equality_expression ::= equality_expression != relational_expression // - case 133: { action.builder. + case 135: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; } // - // Rule 135: and_expression ::= and_expression & equality_expression + // Rule 137: and_expression ::= and_expression & equality_expression // - case 135: { action.builder. + case 137: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; } // - // Rule 137: exclusive_or_expression ::= exclusive_or_expression ^ and_expression + // Rule 139: exclusive_or_expression ::= exclusive_or_expression ^ and_expression // - case 137: { action.builder. + case 139: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; } // - // Rule 139: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression + // Rule 141: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression // - case 139: { action.builder. + case 141: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; } // - // Rule 141: logical_and_expression ::= logical_and_expression && inclusive_or_expression + // Rule 143: logical_and_expression ::= logical_and_expression && inclusive_or_expression // - case 141: { action.builder. + case 143: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; } // - // Rule 143: logical_or_expression ::= logical_or_expression || logical_and_expression + // Rule 145: logical_or_expression ::= logical_or_expression || logical_and_expression // - case 143: { action.builder. + case 145: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; } // - // Rule 145: conditional_expression ::= logical_or_expression ? expression : assignment_expression + // Rule 147: conditional_expression ::= logical_or_expression ? expression : assignment_expression // - case 145: { action.builder. + case 147: { action.builder. consumeExpressionConditional(); break; } // - // Rule 146: throw_expression ::= throw + // Rule 148: throw_expression ::= throw // - case 146: { action.builder. + case 148: { action.builder. consumeExpressionThrow(false); break; } // - // Rule 147: throw_expression ::= throw assignment_expression + // Rule 149: throw_expression ::= throw assignment_expression // - case 147: { action.builder. + case 149: { action.builder. consumeExpressionThrow(true); break; } // - // Rule 150: assignment_expression ::= logical_or_expression = assignment_expression + // Rule 152: assignment_expression ::= logical_or_expression = assignment_expression // - case 150: { action.builder. + case 152: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; } // - // Rule 151: assignment_expression ::= logical_or_expression *= assignment_expression + // Rule 153: assignment_expression ::= logical_or_expression *= assignment_expression // - case 151: { action.builder. + case 153: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 152: assignment_expression ::= logical_or_expression /= assignment_expression + // Rule 154: assignment_expression ::= logical_or_expression /= assignment_expression // - case 152: { action.builder. + case 154: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; } // - // Rule 153: assignment_expression ::= logical_or_expression %= assignment_expression + // Rule 155: assignment_expression ::= logical_or_expression %= assignment_expression // - case 153: { action.builder. + case 155: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; } // - // Rule 154: assignment_expression ::= logical_or_expression += assignment_expression + // Rule 156: assignment_expression ::= logical_or_expression += assignment_expression // - case 154: { action.builder. + case 156: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; } // - // Rule 155: assignment_expression ::= logical_or_expression -= assignment_expression + // Rule 157: assignment_expression ::= logical_or_expression -= assignment_expression // - case 155: { action.builder. + case 157: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; } // - // Rule 156: assignment_expression ::= logical_or_expression >>= assignment_expression + // Rule 158: assignment_expression ::= logical_or_expression >>= assignment_expression // - case 156: { action.builder. + case 158: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 157: assignment_expression ::= logical_or_expression <<= assignment_expression + // Rule 159: assignment_expression ::= logical_or_expression <<= assignment_expression // - case 157: { action.builder. + case 159: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 158: assignment_expression ::= logical_or_expression &= assignment_expression + // Rule 160: assignment_expression ::= logical_or_expression &= assignment_expression // - case 158: { action.builder. + case 160: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 159: assignment_expression ::= logical_or_expression ^= assignment_expression + // Rule 161: assignment_expression ::= logical_or_expression ^= assignment_expression // - case 159: { action.builder. + case 161: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 160: assignment_expression ::= logical_or_expression |= assignment_expression + // Rule 162: assignment_expression ::= logical_or_expression |= assignment_expression // - case 160: { action.builder. + case 162: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 162: expression_list ::= expression_list_actual + // Rule 164: expression_list ::= expression_list_actual // - case 162: { action.builder. + case 164: { action.builder. consumeExpressionList(); break; } // - // Rule 166: expression_list_opt ::= $Empty - // - case 166: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 168: expression_opt ::= $Empty + // Rule 168: expression_list_opt ::= $Empty // case 168: { action.builder. consumeEmpty(); break; } // - // Rule 171: constant_expression_opt ::= $Empty + // Rule 170: expression_opt ::= $Empty // - case 171: { action.builder. + case 170: { action.builder. consumeEmpty(); break; } // - // Rule 180: statement ::= ERROR_TOKEN + // Rule 173: constant_expression_opt ::= $Empty // - case 180: { action.builder. + case 173: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 182: statement ::= ERROR_TOKEN + // + case 182: { action.builder. consumeStatementProblem(); break; } // - // Rule 181: labeled_statement ::= identifier : statement + // Rule 183: labeled_statement ::= identifier : statement // - case 181: { action.builder. + case 183: { action.builder. consumeStatementLabeled(); break; } // - // Rule 182: labeled_statement ::= case constant_expression : + // Rule 184: labeled_statement ::= case constant_expression : // - case 182: { action.builder. + case 184: { action.builder. consumeStatementCase(); break; } // - // Rule 183: labeled_statement ::= default : + // Rule 185: labeled_statement ::= default : // - case 183: { action.builder. + case 185: { action.builder. consumeStatementDefault(); break; } // - // Rule 184: expression_statement ::= expression ; + // Rule 186: expression_statement ::= expression ; // - case 184: { action.builder. + case 186: { action.builder. consumeStatementExpression(); break; } // - // Rule 185: expression_statement ::= ; + // Rule 187: expression_statement ::= ; // - case 185: { action.builder. + case 187: { action.builder. consumeStatementNull(); break; } // - // Rule 186: compound_statement ::= { statement_seq } + // Rule 188: compound_statement ::= { statement_seq } // - case 186: { action.builder. + case 188: { action.builder. consumeStatementCompoundStatement(true); break; } // - // Rule 187: compound_statement ::= { } + // Rule 189: compound_statement ::= { } // - case 187: { action.builder. + case 189: { action.builder. consumeStatementCompoundStatement(false); break; } // - // Rule 190: selection_statement ::= if ( condition ) statement + // Rule 192: selection_statement ::= if ( condition ) statement // - case 190: { action.builder. + case 192: { action.builder. consumeStatementIf(false); break; } // - // Rule 191: selection_statement ::= if ( condition ) statement else statement + // Rule 193: selection_statement ::= if ( condition ) statement else statement // - case 191: { action.builder. + case 193: { action.builder. consumeStatementIf(true); break; } // - // Rule 192: selection_statement ::= switch ( condition ) statement + // Rule 194: selection_statement ::= switch ( condition ) statement // - case 192: { action.builder. + case 194: { action.builder. consumeStatementSwitch(); break; } // - // Rule 194: condition ::= type_specifier_seq declarator = assignment_expression + // Rule 196: condition ::= type_specifier_seq declarator = assignment_expression // - case 194: { action.builder. + case 196: { action.builder. consumeConditionDeclaration(); break; } // - // Rule 196: condition_opt ::= $Empty + // Rule 198: condition_opt ::= $Empty // - case 196: { action.builder. + case 198: { action.builder. consumeEmpty(); break; } // - // Rule 197: iteration_statement ::= while ( condition ) statement + // Rule 199: iteration_statement ::= while ( condition ) statement // - case 197: { action.builder. + case 199: { action.builder. consumeStatementWhileLoop(); break; } // - // Rule 198: iteration_statement ::= do statement while ( expression ) ; + // Rule 200: iteration_statement ::= do statement while ( expression ) ; // - case 198: { action.builder. + case 200: { action.builder. consumeStatementDoLoop(); break; } // - // Rule 199: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement + // Rule 201: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement // - case 199: { action.builder. + case 201: { action.builder. consumeStatementForLoop(); break; } // - // Rule 201: for_init_statement ::= simple_declaration_with_declspec + // Rule 203: for_init_statement ::= simple_declaration_with_declspec // - case 201: { action.builder. + case 203: { action.builder. consumeStatementDeclaration(); break; } // - // Rule 202: jump_statement ::= break ; + // Rule 204: jump_statement ::= break ; // - case 202: { action.builder. + case 204: { action.builder. consumeStatementBreak(); break; } // - // Rule 203: jump_statement ::= continue ; + // Rule 205: jump_statement ::= continue ; // - case 203: { action.builder. + case 205: { action.builder. consumeStatementContinue(); break; } // - // Rule 204: jump_statement ::= return expression ; + // Rule 206: jump_statement ::= return expression ; // - case 204: { action.builder. + case 206: { action.builder. consumeStatementReturn(true); break; } // - // Rule 205: jump_statement ::= return ; + // Rule 207: jump_statement ::= return ; // - case 205: { action.builder. + case 207: { action.builder. consumeStatementReturn(false); break; } // - // Rule 206: jump_statement ::= goto identifier_token ; + // Rule 208: jump_statement ::= goto identifier_token ; // - case 206: { action.builder. + case 208: { action.builder. consumeStatementGoto(); break; } // - // Rule 207: declaration_statement ::= block_declaration + // Rule 209: declaration_statement ::= block_declaration // - case 207: { action.builder. + case 209: { action.builder. consumeStatementDeclarationWithDisambiguation(); break; } // - // Rule 208: declaration_statement ::= function_definition + // Rule 210: declaration_statement ::= function_definition // - case 208: { action.builder. + case 210: { action.builder. consumeStatementDeclaration(); break; } // - // Rule 225: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; - // - case 225: { action.builder. - consumeDeclarationSimple(true); break; - } - - // - // Rule 226: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; - // - case 226: { action.builder. - consumeDeclarationSimple(true); break; - } - - // - // Rule 227: declaration_specifiers ::= simple_declaration_specifiers + // Rule 227: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; // case 227: { action.builder. + consumeDeclarationSimple(true); break; + } + + // + // Rule 228: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; + // + case 228: { action.builder. + consumeDeclarationSimple(true); break; + } + + // + // Rule 229: declaration_specifiers ::= simple_declaration_specifiers + // + case 229: { action.builder. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 228: declaration_specifiers ::= class_declaration_specifiers - // - case 228: { action.builder. - consumeDeclarationSpecifiersComposite(); break; - } - - // - // Rule 229: declaration_specifiers ::= elaborated_declaration_specifiers - // - case 229: { action.builder. - consumeDeclarationSpecifiersComposite(); break; - } - - // - // Rule 230: declaration_specifiers ::= enum_declaration_specifiers + // Rule 230: declaration_specifiers ::= class_declaration_specifiers // case 230: { action.builder. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 231: declaration_specifiers ::= type_name_declaration_specifiers + // Rule 231: declaration_specifiers ::= elaborated_declaration_specifiers // case 231: { action.builder. + consumeDeclarationSpecifiersComposite(); break; + } + + // + // Rule 232: declaration_specifiers ::= enum_declaration_specifiers + // + case 232: { action.builder. + consumeDeclarationSpecifiersComposite(); break; + } + + // + // Rule 233: declaration_specifiers ::= type_name_declaration_specifiers + // + case 233: { action.builder. consumeDeclarationSpecifiersTypeName(); break; } // - // Rule 232: declaration_specifiers_opt ::= $Empty + // Rule 234: declaration_specifiers_opt ::= $Empty // - case 232: { action.builder. + case 234: { action.builder. consumeEmpty(); break; } // - // Rule 237: no_type_declaration_specifier ::= friend + // Rule 239: no_type_declaration_specifier ::= friend // - case 237: { action.builder. + case 239: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 238: no_type_declaration_specifier ::= typedef + // Rule 240: no_type_declaration_specifier ::= typedef // - case 238: { action.builder. + case 240: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 258: storage_class_specifier ::= auto - // - case 258: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 259: storage_class_specifier ::= register - // - case 259: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 260: storage_class_specifier ::= static + // Rule 260: storage_class_specifier ::= auto // case 260: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 261: storage_class_specifier ::= extern + // Rule 261: storage_class_specifier ::= register // case 261: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 262: storage_class_specifier ::= mutable + // Rule 262: storage_class_specifier ::= static // case 262: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 263: function_specifier ::= inline + // Rule 263: storage_class_specifier ::= extern // case 263: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 264: function_specifier ::= virtual + // Rule 264: storage_class_specifier ::= mutable // case 264: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 265: function_specifier ::= explicit + // Rule 265: function_specifier ::= inline // case 265: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 266: simple_type_specifier ::= char + // Rule 266: function_specifier ::= virtual // case 266: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 267: simple_type_specifier ::= wchar_t + // Rule 267: function_specifier ::= explicit // case 267: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 268: simple_type_specifier ::= bool + // Rule 268: simple_type_specifier ::= char // case 268: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 269: simple_type_specifier ::= short + // Rule 269: simple_type_specifier ::= wchar_t // case 269: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 270: simple_type_specifier ::= int + // Rule 270: simple_type_specifier ::= bool // case 270: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 271: simple_type_specifier ::= long + // Rule 271: simple_type_specifier ::= short // case 271: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 272: simple_type_specifier ::= signed + // Rule 272: simple_type_specifier ::= int // case 272: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 273: simple_type_specifier ::= unsigned + // Rule 273: simple_type_specifier ::= long // case 273: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 274: simple_type_specifier ::= float + // Rule 274: simple_type_specifier ::= signed // case 274: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 275: simple_type_specifier ::= double + // Rule 275: simple_type_specifier ::= unsigned // case 275: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 276: simple_type_specifier ::= void + // Rule 276: simple_type_specifier ::= float // case 276: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 279: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name + // Rule 277: simple_type_specifier ::= double // - case 279: { action.builder. - consumeQualifiedId(false); break; + case 277: { action.builder. + consumeDeclSpecToken(); break; } // - // Rule 280: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name + // Rule 278: simple_type_specifier ::= void // - case 280: { action.builder. - consumeQualifiedId(false); break; + case 278: { action.builder. + consumeDeclSpecToken(); break; } // - // Rule 281: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name + // Rule 281: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name // case 281: { action.builder. consumeQualifiedId(false); break; } // - // Rule 282: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name + // Rule 282: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name // case 282: { action.builder. + consumeQualifiedId(false); break; + } + + // + // Rule 283: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name + // + case 283: { action.builder. + consumeQualifiedId(false); break; + } + + // + // Rule 284: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name + // + case 284: { action.builder. consumeQualifiedId(true); break; } // - // Rule 284: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name - // - case 284: { action.builder. - consumeTypeSpecifierElaborated(false); break; - } - - // - // Rule 285: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name - // - case 285: { action.builder. - consumeTypeSpecifierElaborated(true); break; - } - - // - // Rule 286: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name + // Rule 286: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name // case 286: { action.builder. consumeTypeSpecifierElaborated(false); break; } // - // Rule 287: enum_specifier ::= enum { enumerator_list_opt } + // Rule 287: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name // case 287: { action.builder. + consumeTypeSpecifierElaborated(true); break; + } + + // + // Rule 288: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name + // + case 288: { action.builder. + consumeTypeSpecifierElaborated(false); break; + } + + // + // Rule 289: enum_specifier ::= enum { enumerator_list_opt } + // + case 289: { action.builder. consumeTypeSpecifierEnumeration(false); break; } // - // Rule 288: enum_specifier ::= enum identifier_token { enumerator_list_opt } + // Rule 290: enum_specifier ::= enum identifier_token { enumerator_list_opt } // - case 288: { action.builder. + case 290: { action.builder. consumeTypeSpecifierEnumeration(true); break; } // - // Rule 293: enumerator_definition ::= identifier_token + // Rule 295: enumerator_definition ::= identifier_token // - case 293: { action.builder. + case 295: { action.builder. consumeEnumerator(false); break; } // - // Rule 294: enumerator_definition ::= identifier_token = constant_expression + // Rule 296: enumerator_definition ::= identifier_token = constant_expression // - case 294: { action.builder. + case 296: { action.builder. consumeEnumerator(true); break; } // - // Rule 298: named_namespace_definition ::= namespace namespace_name { declaration_seq_opt } + // Rule 300: named_namespace_definition ::= namespace namespace_name { declaration_seq_opt } // - case 298: { action.builder. + case 300: { action.builder. consumeNamespaceDefinition(true); break; } // - // Rule 299: unnamed_namespace_definition ::= namespace { declaration_seq_opt } + // Rule 301: unnamed_namespace_definition ::= namespace { declaration_seq_opt } // - case 299: { action.builder. + case 301: { action.builder. consumeNamespaceDefinition(false); break; } // - // Rule 300: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 302: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; // - case 300: { action.builder. + case 302: { action.builder. consumeNamespaceAliasDefinition(); break; } // - // Rule 301: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; + // Rule 303: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; // - case 301: { action.builder. + case 303: { action.builder. consumeUsingDeclaration(); break; } // - // Rule 302: typename_opt ::= typename + // Rule 304: typename_opt ::= typename // - case 302: { action.builder. + case 304: { action.builder. consumePlaceHolder(); break; } // - // Rule 303: typename_opt ::= $Empty + // Rule 305: typename_opt ::= $Empty // - case 303: { action.builder. + case 305: { action.builder. consumeEmpty(); break; } // - // Rule 304: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 306: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; // - case 304: { action.builder. + case 306: { action.builder. consumeUsingDirective(); break; } // - // Rule 305: asm_definition ::= asm ( stringlit ) ; + // Rule 307: asm_definition ::= asm ( stringlit ) ; // - case 305: { action.builder. + case 307: { action.builder. consumeDeclarationASM(); break; } // - // Rule 306: linkage_specification ::= extern stringlit { declaration_seq_opt } + // Rule 308: linkage_specification ::= extern stringlit { declaration_seq_opt } // - case 306: { action.builder. + case 308: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 307: linkage_specification ::= extern stringlit declaration + // Rule 309: linkage_specification ::= extern stringlit declaration // - case 307: { action.builder. + case 309: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 312: init_declarator_complete ::= init_declarator + // Rule 314: init_declarator_complete ::= init_declarator // - case 312: { action.builder. + case 314: { action.builder. consumeInitDeclaratorComplete(); break; } // - // Rule 314: init_declarator ::= declarator initializer + // Rule 316: init_declarator ::= declarator initializer // - case 314: { action.builder. + case 316: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 316: declarator ::= ptr_operator_seq direct_declarator - // - case 316: { action.builder. - consumeDeclaratorWithPointer(true); break; - } - - // - // Rule 318: function_declarator ::= ptr_operator_seq direct_declarator + // Rule 318: declarator ::= ptr_operator_seq direct_declarator // case 318: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 322: basic_direct_declarator ::= declarator_id_name + // Rule 320: function_declarator ::= ptr_operator_seq direct_declarator // - case 322: { action.builder. - consumeDirectDeclaratorIdentifier(); break; - } - - // - // Rule 323: basic_direct_declarator ::= ( declarator ) - // - case 323: { action.builder. - consumeDirectDeclaratorBracketed(); break; - } - - // - // Rule 324: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt - // - case 324: { action.builder. - consumeDirectDeclaratorFunctionDeclarator(true); break; - } - - // - // Rule 325: array_direct_declarator ::= array_direct_declarator array_modifier - // - case 325: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 326: array_direct_declarator ::= basic_direct_declarator array_modifier - // - case 326: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 327: array_modifier ::= [ constant_expression ] - // - case 327: { action.builder. - consumeDirectDeclaratorArrayModifier(true); break; - } - - // - // Rule 328: array_modifier ::= [ ] - // - case 328: { action.builder. - consumeDirectDeclaratorArrayModifier(false); break; - } - - // - // Rule 329: ptr_operator ::= * cv_qualifier_seq_opt - // - case 329: { action.builder. - consumePointer(); break; - } - - // - // Rule 330: ptr_operator ::= & - // - case 330: { action.builder. - consumeReferenceOperator(); break; - } - - // - // Rule 331: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt - // - case 331: { action.builder. - consumePointerToMember(); break; - } - - // - // Rule 337: cv_qualifier ::= const - // - case 337: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 338: cv_qualifier ::= volatile - // - case 338: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 340: declarator_id_name ::= nested_name_specifier template_opt unqualified_id_name - // - case 340: { action.builder. - consumeQualifiedId(true); break; - } - - // - // Rule 341: type_id ::= type_specifier_seq - // - case 341: { action.builder. - consumeTypeId(false); break; - } - - // - // Rule 342: type_id ::= type_specifier_seq abstract_declarator - // - case 342: { action.builder. - consumeTypeId(true); break; - } - - // - // Rule 345: abstract_declarator ::= ptr_operator_seq - // - case 345: { action.builder. - consumeDeclaratorWithPointer(false); break; - } - - // - // Rule 346: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator - // - case 346: { action.builder. + case 320: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 350: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 324: basic_direct_declarator ::= declarator_id_name // - case 350: { action.builder. + case 324: { action.builder. + consumeDirectDeclaratorIdentifier(); break; + } + + // + // Rule 325: basic_direct_declarator ::= ( declarator ) + // + case 325: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 351: basic_direct_abstract_declarator ::= ( ) + // Rule 326: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 351: { action.builder. - consumeAbstractDeclaratorEmpty(); break; - } - - // - // Rule 352: array_direct_abstract_declarator ::= array_modifier - // - case 352: { action.builder. - consumeDirectDeclaratorArrayDeclarator(false); break; - } - - // - // Rule 353: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier - // - case 353: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 354: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier - // - case 354: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 355: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt - // - case 355: { action.builder. + case 326: { action.builder. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 356: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 327: array_direct_declarator ::= array_direct_declarator array_modifier + // + case 327: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 328: array_direct_declarator ::= basic_direct_declarator array_modifier + // + case 328: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 329: array_modifier ::= [ constant_expression ] + // + case 329: { action.builder. + consumeDirectDeclaratorArrayModifier(true); break; + } + + // + // Rule 330: array_modifier ::= [ ] + // + case 330: { action.builder. + consumeDirectDeclaratorArrayModifier(false); break; + } + + // + // Rule 331: ptr_operator ::= * cv_qualifier_seq_opt + // + case 331: { action.builder. + consumePointer(); break; + } + + // + // Rule 332: ptr_operator ::= & + // + case 332: { action.builder. + consumeReferenceOperator(); break; + } + + // + // Rule 333: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt + // + case 333: { action.builder. + consumePointerToMember(); break; + } + + // + // Rule 339: cv_qualifier ::= const + // + case 339: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 340: cv_qualifier ::= volatile + // + case 340: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 342: declarator_id_name ::= nested_name_specifier template_opt unqualified_id_name + // + case 342: { action.builder. + consumeQualifiedId(true); break; + } + + // + // Rule 343: type_id ::= type_specifier_seq + // + case 343: { action.builder. + consumeTypeId(false); break; + } + + // + // Rule 344: type_id ::= type_specifier_seq abstract_declarator + // + case 344: { action.builder. + consumeTypeId(true); break; + } + + // + // Rule 347: abstract_declarator ::= ptr_operator_seq + // + case 347: { action.builder. + consumeDeclaratorWithPointer(false); break; + } + + // + // Rule 348: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator + // + case 348: { action.builder. + consumeDeclaratorWithPointer(true); break; + } + + // + // Rule 352: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // + case 352: { action.builder. + consumeDirectDeclaratorBracketed(); break; + } + + // + // Rule 353: basic_direct_abstract_declarator ::= ( ) + // + case 353: { action.builder. + consumeAbstractDeclaratorEmpty(); break; + } + + // + // Rule 354: array_direct_abstract_declarator ::= array_modifier + // + case 354: { action.builder. + consumeDirectDeclaratorArrayDeclarator(false); break; + } + + // + // Rule 355: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // + case 355: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 356: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier // case 356: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 357: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // + case 357: { action.builder. + consumeDirectDeclaratorFunctionDeclarator(true); break; + } + + // + // Rule 358: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // + case 358: { action.builder. consumeDirectDeclaratorFunctionDeclarator(false); break; } // - // Rule 357: parameter_declaration_clause ::= parameter_declaration_list_opt ... - // - case 357: { action.builder. - consumePlaceHolder(); break; - } - - // - // Rule 358: parameter_declaration_clause ::= parameter_declaration_list_opt - // - case 358: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 359: parameter_declaration_clause ::= parameter_declaration_list , ... + // Rule 359: parameter_declaration_clause ::= parameter_declaration_list_opt ... // case 359: { action.builder. consumePlaceHolder(); break; } // - // Rule 365: abstract_declarator_opt ::= $Empty + // Rule 360: parameter_declaration_clause ::= parameter_declaration_list_opt // - case 365: { action.builder. + case 360: { action.builder. consumeEmpty(); break; } // - // Rule 366: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // Rule 361: parameter_declaration_clause ::= parameter_declaration_list , ... // - case 366: { action.builder. + case 361: { action.builder. + consumePlaceHolder(); break; + } + + // + // Rule 367: abstract_declarator_opt ::= $Empty + // + case 367: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 368: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // + case 368: { action.builder. consumeParameterDeclaration(); break; } // - // Rule 367: parameter_declaration ::= declaration_specifiers + // Rule 369: parameter_declaration ::= declaration_specifiers // - case 367: { action.builder. + case 369: { action.builder. consumeParameterDeclarationWithoutDeclarator(); break; } // - // Rule 369: parameter_init_declarator ::= declarator = parameter_initializer - // - case 369: { action.builder. - consumeDeclaratorWithInitializer(true); break; - } - - // - // Rule 371: parameter_init_declarator ::= abstract_declarator = parameter_initializer + // Rule 371: parameter_init_declarator ::= declarator = parameter_initializer // case 371: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 372: parameter_init_declarator ::= = parameter_initializer + // Rule 373: parameter_init_declarator ::= abstract_declarator = parameter_initializer // - case 372: { action.builder. + case 373: { action.builder. + consumeDeclaratorWithInitializer(true); break; + } + + // + // Rule 374: parameter_init_declarator ::= = parameter_initializer + // + case 374: { action.builder. consumeDeclaratorWithInitializer(false); break; } // - // Rule 373: parameter_initializer ::= assignment_expression + // Rule 375: parameter_initializer ::= assignment_expression // - case 373: { action.builder. + case 375: { action.builder. consumeInitializer(); break; } // - // Rule 374: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body + // Rule 376: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body // - case 374: { action.builder. + case 376: { action.builder. consumeFunctionDefinition(false); break; } // - // Rule 375: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq + // Rule 377: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq // - case 375: { action.builder. + case 377: { action.builder. consumeFunctionDefinition(true); break; } // - // Rule 378: initializer ::= ( expression_list ) + // Rule 380: initializer ::= ( expression_list ) // - case 378: { action.builder. + case 380: { action.builder. consumeInitializerConstructor(); break; } // - // Rule 379: initializer_clause ::= assignment_expression + // Rule 381: initializer_clause ::= assignment_expression // - case 379: { action.builder. + case 381: { action.builder. consumeInitializer(); break; } // - // Rule 380: initializer_clause ::= { initializer_list , } - // - case 380: { action.builder. - consumeInitializerList(); break; - } - - // - // Rule 381: initializer_clause ::= { initializer_list } - // - case 381: { action.builder. - consumeInitializerList(); break; - } - - // - // Rule 382: initializer_clause ::= { } + // Rule 382: initializer_clause ::= { initializer_list , } // case 382: { action.builder. consumeInitializerList(); break; } // - // Rule 387: class_specifier ::= class_head { member_declaration_list_opt } + // Rule 383: initializer_clause ::= { initializer_list } // - case 387: { action.builder. - consumeClassSpecifier(); break; + case 383: { action.builder. + consumeInitializerList(); break; } // - // Rule 388: class_specifier ::= class_head EOC member_declaration_list_opt } + // Rule 384: initializer_clause ::= { } // - case 388: { action.builder. - consumeClassSpecifier(); break; + case 384: { action.builder. + consumeInitializerList(); break; } // - // Rule 389: class_head ::= class_keyword identifier_name_opt base_clause_opt + // Rule 389: class_specifier ::= class_head { member_declaration_list_opt } // case 389: { action.builder. - consumeClassHead(false); break; + consumeClassSpecifier(); break; } // - // Rule 390: class_head ::= class_keyword template_id_name base_clause_opt + // Rule 390: class_head ::= class_keyword identifier_name_opt base_clause_opt // case 390: { action.builder. consumeClassHead(false); break; } // - // Rule 391: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt + // Rule 391: class_head ::= class_keyword template_id_name base_clause_opt // case 391: { action.builder. - consumeClassHead(true); break; + consumeClassHead(false); break; } // - // Rule 392: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt + // Rule 392: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt // case 392: { action.builder. consumeClassHead(true); break; } // - // Rule 394: identifier_name_opt ::= $Empty + // Rule 393: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt // - case 394: { action.builder. + case 393: { action.builder. + consumeClassHead(true); break; + } + + // + // Rule 395: identifier_name_opt ::= $Empty + // + case 395: { action.builder. consumeEmpty(); break; } // - // Rule 398: visibility_label ::= access_specifier_keyword : + // Rule 399: visibility_label ::= access_specifier_keyword : // - case 398: { action.builder. + case 399: { action.builder. consumeVisibilityLabel(); break; } // - // Rule 399: member_declaration ::= declaration_specifiers_opt member_declarator_list ; + // Rule 400: member_declaration ::= declaration_specifiers_opt member_declarator_list ; // - case 399: { action.builder. + case 400: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 400: member_declaration ::= declaration_specifiers_opt ; + // Rule 401: member_declaration ::= declaration_specifiers_opt ; // - case 400: { action.builder. + case 401: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 403: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; + // Rule 404: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; // - case 403: { action.builder. + case 404: { action.builder. consumeMemberDeclarationQualifiedId(); break; } // - // Rule 409: member_declaration ::= ERROR_TOKEN + // Rule 410: member_declaration ::= ERROR_TOKEN // - case 409: { action.builder. + case 410: { action.builder. consumeDeclarationProblem(); break; } // - // Rule 417: member_declarator ::= declarator constant_initializer + // Rule 418: member_declarator ::= declarator constant_initializer // - case 417: { action.builder. + case 418: { action.builder. consumeMemberDeclaratorWithInitializer(); break; } // - // Rule 418: member_declarator ::= bit_field_declarator : constant_expression + // Rule 419: member_declarator ::= bit_field_declarator : constant_expression // - case 418: { action.builder. + case 419: { action.builder. consumeBitField(true); break; } // - // Rule 419: member_declarator ::= : constant_expression + // Rule 420: member_declarator ::= : constant_expression // - case 419: { action.builder. + case 420: { action.builder. consumeBitField(false); break; } // - // Rule 420: bit_field_declarator ::= identifier_name + // Rule 421: bit_field_declarator ::= identifier_name // - case 420: { action.builder. + case 421: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 421: constant_initializer ::= = constant_expression + // Rule 422: constant_initializer ::= = constant_expression // - case 421: { action.builder. + case 422: { action.builder. consumeInitializer(); break; } // - // Rule 427: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 428: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 427: { action.builder. + case 428: { action.builder. consumeBaseSpecifier(false, false); break; } // - // Rule 428: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name - // - case 428: { action.builder. - consumeBaseSpecifier(true, true); break; - } - - // - // Rule 429: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name + // Rule 429: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name // case 429: { action.builder. consumeBaseSpecifier(true, true); break; } // - // Rule 430: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name + // Rule 430: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name // case 430: { action.builder. + consumeBaseSpecifier(true, true); break; + } + + // + // Rule 431: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name + // + case 431: { action.builder. consumeBaseSpecifier(true, false); break; } // - // Rule 431: access_specifier_keyword ::= private - // - case 431: { action.builder. - consumeAccessKeywordToken(); break; - } - - // - // Rule 432: access_specifier_keyword ::= protected + // Rule 432: access_specifier_keyword ::= private // case 432: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 433: access_specifier_keyword ::= public + // Rule 433: access_specifier_keyword ::= protected // case 433: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 435: access_specifier_keyword_opt ::= $Empty + // Rule 434: access_specifier_keyword ::= public // - case 435: { action.builder. + case 434: { action.builder. + consumeAccessKeywordToken(); break; + } + + // + // Rule 436: access_specifier_keyword_opt ::= $Empty + // + case 436: { action.builder. consumeEmpty(); break; } // - // Rule 437: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > + // Rule 438: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > // - case 437: { action.builder. + case 438: { action.builder. consumeTemplateId(); break; } // - // Rule 438: conversion_function_id ::= operator conversion_type_id + // Rule 439: conversion_function_id ::= operator conversion_type_id // - case 438: { action.builder. + case 439: { action.builder. consumeConversionName(); break; } // - // Rule 439: conversion_type_id ::= type_specifier_seq conversion_declarator + // Rule 440: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 439: { action.builder. + case 440: { action.builder. consumeTypeId(true); break; } // - // Rule 440: conversion_type_id ::= type_specifier_seq + // Rule 441: conversion_type_id ::= type_specifier_seq // - case 440: { action.builder. + case 441: { action.builder. consumeTypeId(false); break; } // - // Rule 441: conversion_declarator ::= ptr_operator_seq + // Rule 442: conversion_declarator ::= ptr_operator_seq // - case 441: { action.builder. + case 442: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 447: mem_initializer ::= mem_initializer_name ( expression_list_opt ) + // Rule 448: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 447: { action.builder. + case 448: { action.builder. consumeConstructorChainInitializer(); break; } // - // Rule 448: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 449: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name // - case 448: { action.builder. + case 449: { action.builder. consumeQualifiedId(false); break; } // - // Rule 451: operator_function_id_name ::= operator_id_name < template_argument_list_opt > + // Rule 452: operator_function_id_name ::= operator_id_name < template_argument_list_opt > // - case 451: { action.builder. + case 452: { action.builder. consumeTemplateId(); break; } // - // Rule 452: operator_id_name ::= operator overloadable_operator + // Rule 453: operator_id_name ::= operator overloadable_operator // - case 452: { action.builder. + case 453: { action.builder. consumeOperatorName(); break; } // - // Rule 495: template_declaration ::= export_opt template < template_parameter_list > declaration + // Rule 496: template_declaration ::= export_opt template < template_parameter_list > declaration // - case 495: { action.builder. + case 496: { action.builder. consumeTemplateDeclaration(); break; } // - // Rule 496: export_opt ::= export + // Rule 497: export_opt ::= export // - case 496: { action.builder. + case 497: { action.builder. consumePlaceHolder(); break; } // - // Rule 497: export_opt ::= $Empty + // Rule 498: export_opt ::= $Empty // - case 497: { action.builder. + case 498: { action.builder. consumeEmpty(); break; } // - // Rule 501: template_parameter ::= parameter_declaration + // Rule 502: template_parameter ::= parameter_declaration // - case 501: { action.builder. + case 502: { action.builder. consumeTemplateParamterDeclaration(); break; } // - // Rule 502: type_parameter ::= class identifier_name_opt - // - case 502: { action.builder. - consumeSimpleTypeTemplateParameter(false); break; - } - - // - // Rule 503: type_parameter ::= class identifier_name_opt = type_id + // Rule 503: type_parameter ::= class identifier_name_opt // 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 + // Rule 504: type_parameter ::= class identifier_name_opt = type_id // - case 505: { action.builder. + case 504: { action.builder. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 506: type_parameter ::= template < template_parameter_list > class identifier_name_opt + // 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 507: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression + // Rule 508: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression // - case 507: { action.builder. + case 508: { action.builder. consumeTemplatedTypeTemplateParameter(true); break; } // - // Rule 508: template_id_name ::= identifier_name < template_argument_list_opt > + // Rule 509: template_id_name ::= identifier_name < template_argument_list_opt > // - case 508: { action.builder. + case 509: { action.builder. consumeTemplateId(); break; } // - // Rule 514: template_argument ::= type_id + // Rule 515: template_argument ::= type_id // - case 514: { action.builder. + case 515: { action.builder. consumeTemplateArgumentTypeId(); break; } // - // Rule 515: explicit_instantiation ::= template declaration + // Rule 516: explicit_instantiation ::= template declaration // - case 515: { action.builder. + case 516: { action.builder. consumeTemplateExplicitInstantiation(); break; } // - // Rule 516: explicit_specialization ::= template < > declaration + // Rule 517: explicit_specialization ::= template < > declaration // - case 516: { action.builder. + case 517: { action.builder. consumeTemplateExplicitSpecialization(); break; } // - // Rule 517: try_block ::= try compound_statement handler_seq + // Rule 518: try_block ::= try compound_statement handler_seq // - case 517: { action.builder. + case 518: { action.builder. consumeStatementTryBlock(); break; } // - // Rule 520: handler ::= catch ( exception_declaration ) compound_statement + // Rule 521: handler ::= catch ( exception_declaration ) compound_statement // - case 520: { action.builder. + case 521: { action.builder. consumeStatementCatchHandler(false); break; } // - // Rule 521: handler ::= catch ( ... ) compound_statement + // Rule 522: handler ::= catch ( ... ) compound_statement // - case 521: { action.builder. + case 522: { action.builder. consumeStatementCatchHandler(true); break; } // - // Rule 522: exception_declaration ::= type_specifier_seq declarator - // - case 522: { action.builder. - consumeDeclarationSimple(true); break; - } - - // - // Rule 523: exception_declaration ::= type_specifier_seq abstract_declarator + // Rule 523: exception_declaration ::= type_specifier_seq declarator // case 523: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 524: exception_declaration ::= type_specifier_seq + // Rule 524: exception_declaration ::= type_specifier_seq abstract_declarator // case 524: { action.builder. + consumeDeclarationSimple(true); break; + } + + // + // Rule 525: exception_declaration ::= type_specifier_seq + // + case 525: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 532: no_cast_start ::= ERROR_TOKEN + // Rule 533: no_cast_start ::= ERROR_TOKEN // - case 532: { action.builder. + case 533: { action.builder. consumeExpressionProblem(); break; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParserprs.java index d871bdab7a9..893d4c33162 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,468 +38,471 @@ 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,0,1,2,1,1,1,1,1,1, - 1,1,1,1,1,1,1,3,1,1, - 1,1,1,1,1,1,2,2,1,1, - 0,1,0,4,2,2,2,3,2,3, - 2,2,1,0,1,1,4,4,4,8, - 8,3,3,4,4,3,3,2,2,7, - 7,7,7,4,4,5,6,3,2,2, - 1,1,1,2,2,2,2,2,2,2, - 2,2,4,7,9,3,0,1,2,2, - 1,2,3,4,1,0,3,1,0,3, - 5,1,1,3,3,1,3,3,3,1, - 3,3,1,3,3,1,3,3,3,3, - 1,3,3,1,3,1,3,1,3,1, - 3,1,3,1,5,1,2,1,1,3, - 3,3,3,3,3,3,3,3,3,3, - 1,2,1,3,1,0,1,0,1,1, - 0,1,1,1,1,1,1,1,1,1, - 3,3,2,2,1,4,2,1,2,5, - 7,5,1,4,1,0,5,7,8,1, - 1,2,2,3,2,3,1,1,1,1, + 1,1,1,0,1,2,1,1,1,1, + 1,1,1,1,1,1,1,1,1,3, + 1,1,1,1,1,1,1,1,2,2, + 1,1,0,1,0,4,2,2,2,3, + 2,3,2,2,1,0,1,1,4,4, + 4,8,8,3,3,4,4,3,3,2, + 2,7,7,7,7,4,4,5,6,3, + 2,2,1,1,1,2,2,2,2,2, + 2,2,2,2,4,7,9,3,0,1, + 2,2,1,2,3,4,1,0,3,1, + 0,3,5,1,1,3,3,1,3,3, + 3,1,3,3,1,3,3,1,3,3, + 3,3,1,3,3,1,3,1,3,1, + 3,1,3,1,3,1,5,1,2,1, + 1,3,3,3,3,3,3,3,3,3, + 3,3,1,2,1,3,1,0,1,0, + 1,1,0,1,1,1,1,1,1,1, + 1,1,3,3,2,2,1,4,2,1, + 2,5,7,5,1,4,1,0,5,7, + 8,1,1,2,2,3,2,3,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,2,1,0,4,4,2,2,2,2, - 2,0,1,1,1,1,1,1,1,2, - 1,2,2,2,1,1,2,2,1,2, - 2,1,2,2,1,2,2,1,1,1, + 1,1,1,2,1,0,4,4,2,2, + 2,2,2,0,1,1,1,1,1,1, + 1,2,1,2,2,2,1,1,2,2, + 1,2,2,1,2,2,1,2,2,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,3,4, - 4,5,2,4,5,4,5,6,1,3, - 1,0,1,3,1,1,1,6,5,7, - 6,1,0,6,5,6,4,1,3,1, - 0,1,1,2,1,3,1,3,1,1, - 1,1,3,9,2,2,3,2,3,1, - 5,1,2,2,1,0,1,1,1,4, - 1,2,1,1,2,3,1,1,1,3, - 2,1,2,2,9,8,2,1,3,1, - 3,1,0,1,0,2,1,1,3,1, - 3,2,1,5,8,1,2,3,1,5, - 4,3,1,3,1,1,5,5,4,4, - 5,5,1,0,1,1,1,2,4,2, - 2,1,5,1,1,1,1,1,1,1, - 2,1,0,1,3,1,2,3,2,1, - 2,2,1,0,1,3,3,5,5,4, - 1,1,1,1,0,1,5,2,2,1, - 2,2,1,0,1,3,4,3,1,1, - 5,2,1,1,3,3,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 3,4,4,5,2,4,5,4,5,6, + 1,3,1,0,1,3,1,1,1,6, + 5,7,6,1,0,6,5,6,4,1, + 3,1,0,1,1,2,1,3,1,3, + 1,1,1,1,3,9,2,2,3,2, + 3,1,5,1,2,2,1,0,1,1, + 1,4,1,2,1,1,2,3,1,1, + 1,3,2,1,2,2,9,8,2,1, + 3,1,3,1,0,1,0,2,1,1, + 3,1,3,2,1,5,8,1,2,3, + 1,5,4,3,1,3,1,1,5,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,2,2,7,1,0,1,3,1, - 1,2,4,2,4,7,9,5,1,3, - 1,0,1,1,2,4,4,1,2,5, - 5,3,3,1,4,3,1,0,1,3, - 1,1,-108,0,0,0,-53,0,0,0, + 1,1,1,2,2,7,1,0,1,3, + 1,1,2,4,2,4,7,9,5,1, + 3,1,0,1,1,2,4,4,1,2, + 5,5,3,3,1,4,3,1,0,1, + 3,1,1,-108,0,0,0,-262,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-166,0,0,0,0, - 0,0,0,-2,0,-4,0,0,0,0, - -124,0,0,0,-5,0,-63,-368,0,0, - 0,0,-167,0,0,0,0,0,-90,0, + 0,0,0,0,0,0,-54,0,0,0, + 0,0,0,0,-2,0,-4,0,0,0, + 0,-124,0,0,0,0,0,-310,0,0, + 0,0,-119,0,0,0,0,0,-5,0, + -90,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-135,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-337,0,0,0, - -54,0,0,0,0,0,0,0,0,0, - 0,0,-6,0,-69,0,0,0,0,0, + 0,0,0,-48,-249,-6,0,0,0,-139, 0,0,0,0,0,0,0,-127,0,0, - -182,-7,0,0,0,0,0,0,0,0, + 0,0,0,0,-134,-7,0,0,0,0, + 0,0,0,0,0,-136,-69,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-239,-319,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,-8,0,-211,0,0,0,-10, - 0,-9,0,0,0,0,0,-16,0,0, - 0,0,-113,0,0,-386,0,-116,0,0, + 0,0,0,-260,0,0,0,0,0,-63, + 0,0,0,0,-231,0,0,0,-49,0, + 0,0,0,-18,0,0,0,0,-62,-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,-413,0, - 0,0,0,0,-171,0,0,0,0,0, - 0,0,-139,0,0,0,0,-11,-136,-12, - 0,0,0,-70,0,0,0,0,0,0, - 0,0,0,0,0,0,-58,0,0,0, - 0,0,-13,-62,0,-15,-131,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-53,0,0,0,0,0,0,0, + 0,-171,0,0,0,0,0,-10,0,0, + 0,0,0,0,0,-70,0,0,0,-8, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-377, - 0,0,0,0,-117,-28,0,0,0,0, - 0,-51,-252,0,0,0,0,-29,0,0, - 0,-225,0,0,0,0,0,0,0,0, + 0,0,0,0,-264,0,0,-131,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-30,0,-269,0,0,0,0,0, - 0,0,0,-321,0,0,-60,-356,0,0, - 0,-129,0,0,-49,0,0,0,0,0, - -517,0,0,0,-31,0,0,0,0,0, - 0,0,0,0,0,0,0,-32,0,0, - -482,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-318,0,0,0,0,-398, + -117,-163,0,0,-51,0,0,0,0,-50, + 0,-267,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,-178,0,0, - 0,0,-138,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-18,0,0,0, - -507,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-9,0,0,0,0, + 0,-178,0,0,0,0,0,0,0,0, + -16,0,0,0,0,-11,0,0,0,0, + 0,-12,-516,0,0,0,-58,0,0,0, + 0,0,0,0,0,0,0,-230,0,-13, + 0,0,-480,0,0,0,-232,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-344,0,0,0,0,0,0,0,0, - 0,0,-20,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-3,0,0,0, - -241,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-294, - 0,0,0,0,0,0,0,-33,0,-456, - 0,0,0,-266,0,0,0,0,-362,0, - 0,0,-317,-34,0,0,0,0,0,-105, - 0,-291,0,0,0,0,0,0,0,0, + 0,0,0,-208,0,0,0,0,0,-236, + 0,0,0,0,0,-20,0,0,0,-120, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-35,0,0,0,0,0, - 0,0,0,0,-163,0,0,0,0,0, - 0,0,0,-328,0,0,0,-106,0,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,-242,0,0,0, - 0,0,-114,0,0,-36,0,0,0,0, - 0,0,-329,0,0,0,-137,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-177,0,0,0,0,0,-365,0,0, + 0,0,-15,0,0,0,0,0,0,-429, 0,0,0,0,0,0,0,0,0,0, - -376,0,0,0,-432,0,0,0,-37,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-38,0,0, - 0,0,0,0,0,-40,0,0,0,0, - 0,-237,0,0,0,0,0,-39,0,0, - 0,-264,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -55,0,0,0,0,0,0,0,-56,0, - -50,0,0,0,0,0,0,0,0,0, - -41,0,0,0,-130,0,0,0,0,0, + -129,0,-28,0,0,0,0,-240,-307,0, + 0,0,0,0,0,0,0,-138,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-351,0,0,0,0,0,0, - 0,-59,0,-286,0,0,0,-287,0,0, - 0,0,-92,0,0,0,-466,0,0,0, + -3,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-29,0,0,0,0,0,0, + 0,-464,0,0,0,0,0,-235,0,0, + 0,0,-288,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-298,0,0,0,0, - 0,-371,0,0,-93,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-64,0,0, - 0,0,0,0,0,-65,0,-202,0,0, - 0,0,-451,0,0,0,-94,0,0,0, + 0,0,0,-270,0,-191,0,0,0,-374, + 0,-304,0,0,-325,0,0,0,-454,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-60,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-57, - 0,0,0,0,0,-67,0,0,-95,0, + 0,0,-30,0,0,0,-141,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-105,0,-326,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-68,0,0,0,0,0,0,0,-109, - 0,-347,0,0,0,0,0,-110,0,0, - -96,0,0,0,-142,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-386,0,0, + 0,0,0,0,0,0,-39,0,0,0, + -106,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-111,0,-310,0,0,0,0,0,-112, - 0,0,-97,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-410,0,0, + 0,0,0,0,-201,-341,0,0,0,-217, + -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,-120,0,0,0,0, - 0,0,0,-144,0,-145,0,0,0,0, - 0,-146,0,0,-98,0,0,0,-132,0, + 0,0,0,-348,0,0,0,0,0,0, + 0,-130,0,-313,0,0,0,-373,0,0, + 0,0,-92,0,0,0,-132,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,-147,0,-184,0,0, - 0,0,-455,0,0,0,-99,0,0,0, - -143,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-218, - 0,0,0,0,0,0,0,-148,0,-316, - 0,0,0,0,0,-149,0,0,-100,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-31,0,-57,0,0,0,0, + -449,0,0,0,-93,0,0,0,-114,0, 0,0,0,0,0,0,0,0,0,0, - 0,-150,0,0,0,0,0,0,0,-151, - 0,-354,0,0,0,0,0,-152,0,0, - -101,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-153,0,0,0,0,0,0, - 0,-154,0,-185,0,0,0,0,-155,-156, - 0,0,-102,0,0,0,-295,0,0,0, + 0,0,0,0,0,-32,0,-383,0,0, + 0,0,0,-33,0,0,-94,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,-157,0,0,0,0, - 0,0,0,-158,0,-159,0,0,0,-233, - 0,0,0,0,-164,0,0,0,-262,0, + 0,0,0,0,0,0,0,0,0,-406, + 0,0,0,0,0,0,0,0,-95,0, + 0,0,-142,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-160,0,0, - 0,0,0,0,0,-161,0,0,0,0, - 0,-210,0,0,0,-506,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-479,0,0,0,0,0,-34,0,0, + -96,0,0,0,-143,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-162,0,0,0,-409,0, - -168,0,0,-177,0,0,0,-47,0,0, - 0,-512,0,0,0,0,0,0,0,0, + 0,0,0,-275,0,0,0,0,0,0, + 0,0,0,-184,0,0,0,0,-35,0, + 0,0,-97,0,0,0,-211,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-169,0,0,0,0,0, - 0,0,-170,0,0,0,0,0,-212,0, - 0,0,0,-320,0,0,0,-173,0,0, + 0,0,0,0,0,-316,0,0,0,0, + 0,0,0,0,0,-185,0,0,0,0, + 0,0,0,0,-98,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-36,0,0, + 0,0,0,0,0,0,0,-187,0,0, + 0,0,0,0,0,0,-99,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-174,0,-175,0,0,0, - -324,0,0,0,-176,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-37, + 0,0,0,0,0,0,0,-322,0,-189, + 0,0,0,0,-38,-356,0,0,-100,0, + 0,0,-284,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-179,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-141,0,0, + 0,-40,0,0,0,0,0,0,0,-55, + 0,-192,0,0,0,0,-453,0,0,0, + -101,0,0,0,-323,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -349,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-180,0,0,0,0,0,0, - 0,-181,0,-191,0,0,0,-381,0,0, + 0,0,0,-200,0,0,0,0,-56,-59, + 0,0,-102,0,0,0,-202,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-508,0,0,0,0, + 0,0,0,-64,0,0,0,0,0,0, + -65,-67,0,0,-164,0,0,0,-68,0, 0,0,0,0,0,0,0,0,0,0, - -326,0,0,0,0,0,0,0,-192,0, - -197,0,0,0,-375,0,0,0,-198,-204, - 0,0,0,0,0,-203,-207,-382,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-109,0,0,0,0, + 0,-209,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -213,0,0,0,0,0,0,0,0,0, - -223,0,0,0,-443,0,0,0,0,0, + 0,0,0,0,-166,0,0,0,0,0, + 0,0,-302,0,-215,0,0,0,0,-228, + 0,0,0,0,-110,-351,-122,0,0,0, + 0,0,-511,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-224,0,0, - 0,0,0,0,0,-226,0,-244,0,0, - 0,-187,0,0,0,-248,-250,-265,-205,0, - 0,0,0,-325,-104,0,0,0,0,0, + 0,0,0,0,0,-509,0,0,0,0, + 0,0,0,0,0,-111,0,0,0,0, + 0,0,0,0,-317,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,-268,0,-214, - 0,-91,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-240,0,0,0,0,0, - 0,0,0,0,-89,0,0,0,0,0, + 0,0,0,0,0,-112,0,-144,0,0, + 0,-321,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-86,0,0,0,-279, + 0,0,-145,0,-146,0,0,0,-135,0, + 0,0,-213,-147,0,0,0,0,0,-368, + -238,-148,-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,-346,0, - 0,0,0,0,-87,0,0,0,-359,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-272,0,0, - 0,0,-88,0,0,0,0,0,0,0, + 0,0,0,0,0,-149,0,0,0,-378, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-280,0,0,0,0, - -80,0,0,0,-284,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-81,0,0, + 0,0,-150,0,0,0,0,0,0,0, + -151,0,-152,0,0,0,-334,0,0,0, + -245,-153,0,0,0,0,0,-154,-252,-155, + -379,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -278,0,0,0,-82,0,0,0,-288,0, + 0,0,0,-156,0,0,0,-440,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-364,0,0, - 0,-83,0,0,0,-289,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-292,0,0,0,-52,0, - 0,0,-134,0,0,0,0,-84,0,0, + 0,0,0,0,0,0,0,0,-157,0, + -158,0,0,0,-359,0,0,0,-253,-159, + 0,0,0,0,0,-394,0,0,-104,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,0,-239,0,0,0, - -383,0,0,0,-355,-122,0,0,0,0, - 0,-397,0,0,-85,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -399,-412,0,-305,0,0,0,0,0,-238, - 0,0,-293,-249,0,0,0,0,0,0, - 0,0,0,0,-232,-481,-275,-245,0,0, - 0,0,-307,0,0,0,0,0,0,0, - -19,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-431,0,0,0,0,0,-227, - -128,0,0,0,0,-247,-308,0,-297,0, - 0,0,0,-234,0,0,0,0,0,-273, - -208,0,0,0,0,0,0,0,0,-331, - -183,0,0,0,0,-274,-309,0,0,-400, - -401,0,0,0,0,0,-251,-236,0,-393, - 0,-43,0,0,0,0,0,0,-215,0, - -314,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-283,-473,-315,0,0, - 0,0,0,-390,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-48,0,0,0, - 0,-336,0,0,0,0,-246,0,0,0, - 0,0,0,-140,0,0,0,0,0,0, - -424,0,0,-434,0,-445,0,0,0,0, - 0,0,-509,0,0,0,0,0,0,0, - 0,0,0,0,-165,-471,-348,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -44,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-416,0,0,-254,0, - 0,-510,-441,0,0,0,0,0,0,0, - -350,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-195,0,0, - 0,0,-366,0,0,0,0,-369,-453,-440, - 0,0,-253,0,0,0,0,0,0,0, - -391,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-322,0, - 0,-405,0,0,0,0,0,-493,0,0, - 0,0,0,0,0,-75,0,0,0,-392, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -76,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-395,0,-312,0,0,0,0, - 0,0,0,0,0,0,-77,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-172, - 0,0,0,-370,0,0,-449,-333,-396,-402, - 0,0,0,0,-319,-188,-255,-119,0,0, - 0,0,0,0,-404,-365,0,0,0,0, - 0,-189,0,0,0,0,0,0,0,0, - -407,0,0,-418,0,0,-45,0,-256,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-357,0,-107,0,0,0,0,0,0, - -414,-470,-190,0,0,0,0,0,0,0, - -118,0,0,0,0,0,0,0,0,0, - 0,-193,0,0,0,0,0,0,-243,-121, - 0,-421,0,0,0,0,0,-422,-394,0, - 0,0,0,0,-442,-374,0,0,0,0, - 0,0,0,0,0,0,0,-378,0,0, - 0,-499,0,0,0,0,-277,0,0,-201, - 0,-216,-444,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -446,-123,0,0,0,-257,0,0,0,0, - 0,-14,0,0,0,0,0,0,0,-447, - 0,0,0,0,0,0,0,0,-230,-17, - 0,-501,0,0,0,0,-1,-261,0,0, - 0,-300,0,-448,0,0,-302,0,0,0, - 0,0,0,0,0,0,-194,0,0,0, - 0,0,0,-318,0,0,0,0,0,0, - 0,-450,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-505,-303,0,-465,0,0,0,0,0, - 0,-436,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-231,-228,0,-467,0, - 0,0,0,0,0,0,0,0,-454,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-511,0,0,0,0, - 0,0,0,0,0,0,-332,-342,0,0, - 0,0,0,0,0,-468,0,0,0,0, - 0,0,0,0,-469,-518,-235,-260,0,0, - 0,0,0,0,0,0,0,-282,0,0, - -125,0,-474,0,0,-464,0,-476,0,0, - 0,0,0,0,0,0,0,0,0,-276, - 0,0,0,0,0,0,0,-478,0,0, - 0,0,0,-484,0,0,0,0,0,-406, - 0,0,0,0,0,0,-491,0,0,0, - 0,-521,-500,0,0,0,0,-477,0,-508, - 0,0,0,0,0,0,0,0,-42,-46, - -483,-200,0,0,0,0,0,-353,0,0, - 0,-513,0,-358,0,0,0,0,0,0, - 0,0,0,-387,0,0,0,0,0,0, - 0,0,0,0,0,-290,0,0,0,0, - 0,0,0,0,0,0,0,-306,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-78,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 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, - -334,0,0,0,0,0,0,0,0,0, - 0,-379,0,0,0,0,-415,0,0,0, - 0,0,0,-206,0,0,0,-299,-311,-330, - -338,0,0,0,0,0,-335,-425,0,0, - 0,0,0,-281,0,0,0,-66,0,0, - 0,0,-460,0,-457,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-502,0,0,0,0,0,0,0, - 0,0,0,0,-373,0,0,0,0,0, - -458,0,0,0,0,0,0,0,0,0, - 0,0,0,-384,0,0,0,0,-72,0, - 0,-515,0,0,0,0,0,0,-313,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-461,0,0,0,0,0,-430,0, - 0,-520,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-385,0,0, - 0,0,-486,-488,0,0,0,0,0,0, - 0,0,0,-339,0,0,0,0,-452,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-494,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-426,0,0,0,-341,0,0,0,0, - 0,0,0,0,-21,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-343,0,0,0, - 0,0,0,-22,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-23,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-24,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-25, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-26,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-27,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-61,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-73,0,0, - 0,0,0,0,0,0,0,0,0,0, - 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,-199,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-503,0,0,0,0,0,0, - 0,0,0,0,-492,-403,0,0,0,0, - 0,-360,-340,-514,-103,0,0,0,0,-301, - 0,0,0,-71,-398,0,0,0,0,-304, - 0,-417,0,0,0,0,-388,0,0,-258, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -496,0,0,0,0,0,0,0,0,0, - 0,-367,-389,0,0,0,0,0,0,0, - 0,0,0,-361,0,0,-408,0,0,0, - 0,0,0,0,0,0,0,0,0,-495, - 0,0,-345,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-372,0,0,-411,0, - -420,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-327,0,-423,0,-459, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-497,0,0,-196,0,0,0, - 0,0,0,0,0,0,0,0,0,-410, - -462,-259,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-435,0, - 0,0,0,0,0,0,0,-479,0,0, - 0,0,0,-433,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-516,0,0, - 0,0,0,-419,-490,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-126,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-463,0,0,0,0,0,0,0, - 0,-519,0,0,0,0,0,0,0,0, - -217,0,0,0,-263,0,0,0,0,0, - 0,0,0,0,-498,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,-229, + 0,-160,0,0,-343,-91,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,-328,0,-89,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-219,0,-220,0,0,0,0,-380,0, - 0,0,0,0,0,0,0,0,0,-221, + 0,0,0,0,0,0,0,0,0,-86, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-361,0,0,0,0,0,-87,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,-88,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-162, + 0,0,0,0,-80,0,0,0,-271,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-168,0,0, + 0,-81,0,0,0,-169,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-170,0,0,0,-82,0, + 0,0,-505,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-173,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,-421,0, + 0,0,0,-372,0,0,0,0,0,0, + 0,0,0,0,-175,-176,-471,-375,0,0, + 0,0,0,-179,-255,-47,0,0,0,0, + -128,0,0,0,-396,-226,0,0,-43,0, + 0,-180,0,-118,0,0,0,0,0,0, + 0,0,0,-167,0,0,0,0,0,-438, + -241,0,0,0,0,-181,0,0,0,0, + -297,-190,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-196,-52,0,0,0, + 0,0,0,0,-197,-299,0,0,0,0, + -203,0,-300,0,0,0,0,0,-121,0, + 0,0,0,0,-233,-206,-210,-352,0,0, + 0,0,0,0,0,-258,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-84,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-279,0,0,0, + 0,0,0,0,0,0,-186,0,0,0, + 0,0,0,0,-415,-296,0,-212,0,0, + -222,0,0,0,0,0,0,0,-237,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-247,0,0,0,0,-397, + 0,0,0,0,0,-183,0,0,0,0, + 0,0,0,0,0,-85,0,0,0,-362, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-223,0, + 0,0,0,0,-329,-225,-14,-242,0,0, + 0,0,0,0,-391,0,0,0,0,0, + -246,0,-291,0,-294,0,0,0,0,0, + 0,0,0,0,0,-42,-513,0,-227,0, + 0,-71,0,0,0,0,-123,0,0,0, + 0,0,-287,0,0,0,0,0,0,-248, + -263,0,-243,0,0,0,0,0,-207,0, + 0,0,0,0,0,0,-234,0,-265,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-292,0,-387,0,0,0,0,0, + 0,0,0,0,0,0,-355,0,0,0, + 0,0,0,0,0,-266,-384,0,0,0, + 0,-276,-277,-447,-214,0,-182,0,0,0, + -281,0,0,0,0,0,-285,-330,0,0, + 0,0,0,0,-44,-113,0,0,0,0, + 0,0,0,0,0,-437,-286,0,0,0, + 0,0,0,0,-289,0,-290,0,0,0, + 0,0,0,0,0,0,0,0,-305,-306, + 0,0,0,0,0,-295,-250,0,0,0, + 0,0,0,0,0,0,0,0,-311,0, + 0,0,0,0,0,0,0,-390,0,-468, + -312,0,0,0,0,0,0,0,0,-333, + 0,-140,0,0,0,0,0,0,0,0, + 0,0,0,-165,-303,0,0,0,0,-345, + 0,0,0,0,0,-17,0,0,0,0, + -347,0,0,-363,-125,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-409,0, + -498,-367,0,0,0,0,0,0,-244,0, + 0,0,-366,0,0,-388,0,0,0,0, + 0,0,0,0,-107,-395,0,0,0,-431, + 0,0,-172,0,0,0,0,-389,0,0, + -45,0,0,0,0,0,0,0,0,-392, + 0,0,0,0,0,-393,0,0,0,0, + 0,-500,-72,0,0,0,0,0,0,0, + -308,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-399,-188,0,0, + 0,0,0,0,0,0,-401,-404,-411,0, + 0,0,-280,0,-418,0,-419,0,0,0, + -354,0,0,0,0,0,-314,0,0,0, + 0,0,-504,-344,0,0,0,-439,0,0, + 0,0,-412,0,-193,0,0,0,0,0, + 0,0,0,0,0,0,-422,0,0,0, + -458,0,-441,0,-315,0,0,0,-492,-443, + 0,0,-425,-358,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -327,-444,0,-517,0,0,0,0,-450,-1, + 0,0,0,0,-442,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-445,-339, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-446,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-448,0, + -455,-103,0,0,-520,0,0,0,0,-451, + 0,0,0,0,0,-463,-350,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-465,0,-194,0,0,0, + 0,-332,0,0,-336,0,0,0,0,-466, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-467,-472,0,-251,0,0,0,0, + 0,0,0,0,-273,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-75,0, + 0,0,-476,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-76,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-482,0,-309,0, + 0,0,0,0,0,0,0,0,0,-489, + -493,-510,0,0,0,0,-499,0,0,0, + 0,0,-77,0,0,0,-456,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-218,-219,0,-66,0, + 0,-507,0,-413,0,0,0,0,0,0, + 0,0,0,-195,0,0,0,0,0,0, + 0,0,-512,0,0,0,0,0,0,0, + 0,-494,0,0,0,0,0,0,0,-278, + 0,0,0,0,-298,0,0,0,-338,0, + 0,0,0,0,0,0,0,0,-78,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-79,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-459,-484,0,0,0,-331, + 0,0,0,0,0,0,0,0,0,0, + -205,0,0,0,-452,0,-46,-340,-491,0, + 0,0,-204,0,0,0,-335,0,0,0, + 0,-353,0,0,0,0,-220,-133,0,0, + 0,0,-433,0,0,-272,-462,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-474,0,0,0,0,0, + -486,0,0,0,0,0,0,0,0,0, + 0,-370,0,0,0,0,0,-380,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-381,0,0,0, + 0,0,0,-342,0,0,0,0,0,0, + 0,0,0,0,0,-475,-481,0,0,0, + 0,0,0,0,0,0,0,0,-427,0, + 0,0,0,0,-221,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,0,0,0,0,0,0,0,-402,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-357,0,0,0,0,-385,-405, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-408,0,-428,-417,0,0, + 0,0,0,0,0,-21,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-22,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-23,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-24,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -25,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-26,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-27,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-61,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-73,0, + 0,0,0,0,0,0,0,0,0,0, + 0,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,-198,0,0,0,-490,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-502,0,0,0,0,0, + 0,0,0,0,0,-19,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-337,-420,0,-495, + 0,0,-403,0,0,0,0,-457,-199,-274, + 0,0,0,0,0,-400,0,0,0,0, + -460,0,0,0,0,-477,0,0,0,0, + -256,0,0,0,0,-216,0,0,0,0, + -496,-488,0,0,0,0,0,0,0,0, + 0,-364,0,0,0,0,-501,-514,0,0, + -257,0,-519,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-515,0,0,0, + 0,0,0,0,-518,-283,0,0,-259,-282, + 0,0,-369,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-301,0, + -324,-414,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-261,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-407,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,-423, + 0,0,0,0,-349,0,0,0,-416,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-360,0,0,0,0, + 0,0,-461,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-432,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-376,0,0,0,0,0,0, + 0,0,0,0,-293,0,0,0,0,0, + 0,0,0,0,0,-371,0,0,0,0, + 0,0,0,0,0,-430,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -487,0,0,0,0,-497,0,0,0,0, + 0,0,0,0,0,-435,0,0,0,0, + -320,0,0,0,0,-426,0,-126,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-434,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-377,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-469,0,0, + 0,0,-485,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-296, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-487,0,0,0,0,0,0, - 0,0,0,0,-270,0,0,0,0,0, - 0,0,0,0,0,-489,0,0,0,0, - 0,0,0,0,-271,0,0,0,0,0, - -428,0,0,0,0,-352,0,0,0,0, + 0,0,0,0,-269,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-437,0,0,0,0,0, - 0,0,-472,0,0,-475,0,-133,-438,0, - 0,0,0,0,0,-439,-363,0,-429,0, + 0,0,-268,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-470, + 0,0,0,0,0,0,0,0,0,-436, + 0,0,-473,0,-478,0,0,-424,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,0, - -485,0,0,0,0,0,-222,0,0,0, - 0,-285,0,0,0,0,-504,-323,-427,0, + 0,0,-483,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, @@ -516,7 +519,9 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0 + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0 }; }; public final static short baseCheck[] = BaseCheck.baseCheck; @@ -526,525 +531,531 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface BaseAction { public final static char baseAction[] = { - 169,4,48,75,75,33,33,64,64,38, - 38,190,190,191,191,192,192,1,1,15, - 15,15,15,15,15,15,15,16,16,16, - 14,11,11,8,8,8,8,8,8,2, - 65,65,5,5,12,12,12,12,43,43, - 134,134,135,61,61,42,17,17,17,17, + 168,4,49,76,76,33,33,65,65,38, + 38,42,42,191,191,192,192,193,193,1, + 1,15,15,15,15,15,15,15,15,16, + 16,16,14,11,11,8,8,8,8,8, + 8,2,66,66,5,5,12,12,12,12, + 44,44,133,133,134,62,62,43,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,29,29,30,30,32,32, - 34,34,35,35,36,36,41,41,40,40, + 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,169,169, + 170,170,171,138,138,139,139,136,136,140, + 137,137,20,20,21,22,22,22,24,24, + 24,24,25,25,25,26,26,26,27,27, + 27,27,27,28,28,28,29,29,30,30, + 32,32,34,34,35,35,36,36,41,41, 40,40,40,40,40,40,40,40,40,40, - 40,39,31,142,142,96,96,173,173,91, - 193,193,76,76,76,76,76,76,76,76, - 76,77,77,77,73,73,59,59,174,174, - 78,78,78,102,102,175,175,79,79,79, - 176,176,80,80,80,80,80,81,81,83, - 83,83,83,83,83,83,49,49,49,49, - 49,113,113,114,114,50,177,23,23,23, - 23,23,47,47,86,86,86,86,86,149, - 149,144,144,144,144,144,145,145,145,146, - 146,146,147,147,147,148,148,148,87,87, - 87,87,87,88,88,88,13,13,13,13, - 13,13,13,13,13,13,13,100,118,118, - 118,118,118,118,116,116,116,117,117,151, - 151,150,150,120,120,103,68,68,69,70, - 52,46,152,152,53,51,85,85,153,153, - 143,143,121,122,122,74,74,154,154,62, - 62,62,57,57,56,63,63,71,71,55, - 55,55,89,89,98,97,97,60,60,58, - 58,54,54,44,101,101,101,92,92,92, - 93,93,94,94,94,95,95,104,104,104, - 106,106,105,105,194,194,90,90,179,179, - 179,179,179,124,45,45,156,178,178,125, - 125,125,125,180,180,37,37,115,115,126, - 126,126,126,107,107,119,119,119,127,128, - 128,128,128,128,128,128,128,128,128,128, - 159,159,158,158,181,181,160,160,160,160, - 161,182,109,108,108,183,183,162,162,162, - 162,99,99,99,184,184,9,9,10,185, - 185,186,163,155,155,164,164,165,166,166, - 6,6,7,167,167,167,167,167,167,167, - 167,167,167,167,167,167,167,167,167,167, - 167,167,167,167,167,167,167,167,167,167, - 167,167,167,167,167,167,167,167,167,167, - 167,167,167,167,167,66,72,72,168,168, - 130,130,131,131,131,131,131,131,3,132, - 132,129,129,110,110,84,67,82,157,157, - 111,111,187,187,187,133,133,123,123,188, - 188,169,169,881,39,1973,1965,1356,3060,34, - 816,31,35,813,30,32,1931,29,27,56, - 856,112,82,83,113,868,1929,935,903,1108, - 948,1155,1124,1269,963,1216,1115,1288,1296,148, - 277,1754,2139,163,149,29,3277,296,2034,39, - 790,36,2784,1090,34,816,339,35,813,2360, - 39,790,36,236,1007,34,816,31,35,813, - 30,32,788,29,27,56,856,112,82,83, - 113,868,494,935,903,1108,948,1155,1846,239, - 234,235,2052,39,790,36,4470,353,34,816, - 44,35,813,278,317,2761,322,2052,39,790, - 36,2162,622,34,816,2508,35,813,246,249, - 252,255,2586,117,354,1681,39,790,36,1626, - 2824,34,816,31,35,813,63,32,248,39, - 283,1614,293,2918,493,566,2731,3141,3078,3160, - 3222,3411,4323,1493,39,790,36,2539,1007,34, - 816,31,35,813,30,32,788,29,27,56, - 856,112,82,83,113,868,343,935,903,1108, - 948,1155,1124,1269,381,1216,1544,1288,1296,148, - 890,2731,469,513,149,1938,333,3124,2006,39, - 1382,47,3619,979,46,816,1694,514,1493,39, - 790,36,2539,1007,34,816,31,35,813,30, - 32,788,29,27,56,856,112,82,83,113, - 868,343,935,903,1108,948,1155,1124,1269,1789, - 1216,333,1288,1296,148,248,39,283,513,149, - 4361,988,3124,600,1516,2157,38,352,205,994, - 557,67,514,509,1743,39,790,36,1934,2824, - 34,816,31,35,813,62,32,2101,346,583, - 556,349,2044,645,821,2094,733,1493,39,790, - 36,2539,1007,34,816,31,35,813,30,32, - 788,29,27,56,856,112,82,83,113,868, - 343,935,903,1108,948,1155,1124,1269,509,1216, - 2437,1288,1296,148,2239,68,1999,513,149,356, - 2731,3124,1353,2311,39,281,855,2102,1091,527, - 2094,514,1761,39,790,36,2539,1007,34,816, - 31,35,813,30,32,788,29,27,56,856, - 112,82,83,113,868,343,935,903,1108,948, - 1155,1124,1269,1251,1216,1993,1288,1296,148,376, - 332,988,513,149,600,2350,3124,2162,600,39, - 1466,386,1356,48,2150,57,514,509,4090,683, - 66,2116,39,790,36,849,3614,34,816,31, - 35,813,30,32,671,507,2149,314,2457,2094, - 28,1559,39,790,36,427,1007,34,816,31, - 35,813,30,32,788,29,27,56,856,112, - 82,83,113,868,452,935,903,1108,948,1155, - 1124,1269,510,1216,4568,1288,1296,148,600,39, - 2218,379,149,1605,39,790,36,456,3614,34, - 816,31,35,813,65,32,374,1478,39,1466, - 386,1632,39,790,36,382,1007,34,816,31, - 35,813,30,32,788,29,27,56,856,112, - 82,83,113,868,290,935,903,1108,948,1155, - 1124,1269,2455,1216,55,1288,1296,148,439,1458, - 577,379,149,2360,39,790,36,1594,1007,34, - 816,31,35,813,30,32,788,29,27,56, - 856,112,82,83,91,380,383,1936,39,790, - 36,1953,1007,34,816,31,35,813,30,32, - 788,29,27,56,856,112,82,83,113,868, - 2345,935,903,1108,948,1155,1124,1269,67,1216, - 2437,1288,1296,148,1280,39,295,163,149,2052, - 39,790,36,233,596,34,816,340,35,813, - 2162,3784,1936,39,790,36,384,1007,34,816, - 31,35,813,30,32,788,29,27,56,856, - 112,82,83,113,868,415,935,903,1108,948, - 1155,1124,1269,75,1216,68,1288,1296,148,4278, - 2731,325,373,149,1936,39,790,36,2162,1007, - 34,816,31,35,813,30,32,788,29,27, - 56,856,112,82,83,113,868,850,935,903, - 1108,948,1155,1124,1269,443,1216,68,1288,1296, - 148,74,2731,2162,373,149,912,2653,2776,566, - 332,2435,434,1936,39,790,36,2162,1007,34, - 816,31,35,813,30,32,788,29,27,56, - 856,112,82,83,113,868,59,935,903,1108, - 948,1155,1124,1269,716,1216,372,1288,1296,148, - 93,2455,1384,373,149,1873,39,790,36,63, - 1007,34,816,31,35,813,30,32,788,29, - 27,56,856,112,82,83,113,868,239,935, - 903,1108,948,1155,1124,1269,1234,1216,371,1288, - 1296,148,600,39,286,379,149,2585,1695,39, - 790,36,151,1007,34,816,31,35,813,30, - 32,788,29,27,56,856,112,82,83,113, - 868,1245,935,903,1108,948,1155,1124,1269,1927, - 1216,57,1288,1296,148,738,100,369,147,149, - 401,1936,39,790,36,1356,1007,34,816,31, - 35,813,30,32,788,29,27,56,856,112, - 82,83,113,868,2461,935,903,1108,948,1155, - 1124,1269,1134,1216,1924,1288,1296,148,2110,2731, - 377,164,149,1936,39,790,36,2595,1007,34, - 816,31,35,813,30,32,788,29,27,56, - 856,112,82,83,113,868,2740,935,903,1108, - 948,1155,1124,1269,443,1216,68,1288,1296,148, - 455,2731,1679,160,149,1936,39,790,36,1384, - 1007,34,816,31,35,813,30,32,788,29, - 27,56,856,112,82,83,113,868,978,935, - 903,1108,948,1155,1124,1269,1191,1216,1807,1288, - 1296,148,1207,600,3418,159,149,1936,39,790, - 36,332,1007,34,816,31,35,813,30,32, - 788,29,27,56,856,112,82,83,113,868, - 76,935,903,1108,948,1155,1124,1269,519,1216, - 57,1288,1296,148,817,3591,1177,158,149,1936, - 39,790,36,102,1007,34,816,31,35,813, - 30,32,788,29,27,56,856,112,82,83, - 113,868,1296,935,903,1108,948,1155,1124,1269, - 1184,1216,68,1288,1296,148,417,2731,1314,157, - 149,1936,39,790,36,2162,1007,34,816,31, - 35,813,30,32,788,29,27,56,856,112, - 82,83,113,868,1594,935,903,1108,948,1155, - 1124,1269,1316,1216,890,1288,1296,148,58,3378, - 1318,156,149,1936,39,790,36,332,1007,34, - 816,31,35,813,30,32,788,29,27,56, - 856,112,82,83,113,868,937,935,903,1108, - 948,1155,1124,1269,2481,1216,2517,1288,1296,148, - 99,4419,1241,155,149,1936,39,790,36,1356, - 1007,34,816,31,35,813,30,32,788,29, - 27,56,856,112,82,83,113,868,2146,935, - 903,1108,948,1155,1124,1269,1726,1216,57,1288, - 1296,148,2700,600,3438,154,149,1936,39,790, - 36,1356,1007,34,816,31,35,813,30,32, - 788,29,27,56,856,112,82,83,113,868, - 1070,935,903,1108,948,1155,1124,1269,2079,1216, - 1054,1288,1296,148,4042,3488,243,153,149,1936, - 39,790,36,622,1007,34,816,31,35,813, - 30,32,788,29,27,56,856,112,82,83, - 113,868,419,935,903,1108,948,1155,1124,1269, - 595,1216,890,1288,1296,148,57,3694,771,152, - 149,1936,39,790,36,622,1007,34,816,31, - 35,813,30,32,788,29,27,56,856,112, - 82,83,113,868,1812,935,903,1108,948,1155, - 1124,1269,1923,1216,57,1288,1296,148,3337,767, - 2552,151,149,1936,39,790,36,1746,1007,34, - 816,31,35,813,30,32,788,29,27,56, - 856,112,82,83,113,868,2578,935,903,1108, - 948,1155,1124,1269,909,1216,772,1288,1296,148, - 1370,39,284,150,149,1827,39,790,36,1160, - 1007,34,816,31,35,813,30,32,788,29, - 27,56,856,112,82,83,113,868,1335,935, - 903,1108,948,1155,1124,1269,1556,1216,326,1288, - 2181,169,1936,39,790,36,2607,1007,34,816, - 31,35,813,30,32,788,29,27,56,856, - 112,82,83,113,868,3430,935,903,1108,948, - 1155,1124,1269,388,1216,591,1288,1296,148,1694, - 328,1608,145,149,600,39,2157,2191,600,39, - 1466,386,2265,39,790,36,1979,1007,34,816, - 31,35,813,30,32,788,29,27,56,856, - 112,82,83,113,868,2132,935,903,1108,948, - 1155,1124,1269,2015,1216,55,1288,1296,148,1356, - 1458,733,194,149,2360,39,790,36,1660,1007, - 34,816,31,35,813,30,32,788,29,27, - 56,856,112,82,83,113,868,519,935,903, - 1108,948,1155,1124,1269,1901,1216,1964,1288,2181, - 169,2360,39,790,36,2161,1007,34,816,31, - 35,813,30,32,788,29,27,56,856,112, - 82,83,113,868,1680,935,903,1108,948,1155, - 1124,1269,355,1216,327,1288,2181,169,1605,39, - 790,36,527,3614,34,816,31,35,813,64, - 32,2360,39,790,36,294,1007,34,816,31, - 35,813,30,32,788,29,27,56,856,112, - 82,83,113,868,1360,935,903,1108,948,1155, - 1124,1269,1708,1216,1088,1288,2181,169,2360,39, - 790,36,2379,1007,34,816,31,35,813,30, - 32,788,29,27,56,856,112,82,83,113, - 868,2110,935,903,1108,948,1155,1124,1269,1339, - 1216,472,1288,2181,169,2052,39,790,36,1820, - 1549,34,816,2621,35,813,2162,1886,2360,39, - 790,36,419,1007,34,816,31,35,813,30, - 32,788,29,27,56,856,112,82,83,113, - 868,1470,935,903,1108,948,1155,1124,1269,96, - 1216,2246,1288,2181,169,2406,39,790,36,418, - 1007,34,816,31,35,813,30,32,788,29, - 27,56,856,112,82,83,113,868,2293,935, - 903,1108,948,1155,1124,1269,1164,1216,1982,1288, - 2181,169,600,39,3336,3249,1723,2087,2306,600, - 39,1466,386,77,1356,2360,39,790,36,421, - 1007,34,816,31,35,813,30,32,788,29, - 27,56,856,112,82,83,113,868,2102,935, - 903,1108,948,1155,1124,1269,55,1216,648,1925, - 2162,52,2360,39,790,36,3395,1007,34,816, - 31,35,813,30,32,788,29,27,56,856, - 112,82,83,113,868,2162,935,903,1108,948, - 1155,1124,1269,350,1878,2360,39,790,36,103, - 1007,34,816,31,35,813,30,32,788,29, - 27,56,856,112,82,83,113,868,3408,935, - 903,1108,948,1155,1124,1844,2360,39,790,36, - 1475,1007,34,816,31,35,813,30,32,788, - 29,27,56,856,112,82,83,113,868,1991, - 935,903,1108,948,1809,2360,39,790,36,1356, - 1007,34,816,31,35,813,30,32,788,29, - 27,56,856,112,82,83,113,868,1160,935, - 903,1108,1810,2360,39,790,36,399,1007,34, - 816,31,35,813,30,32,788,29,27,56, - 856,112,82,83,113,868,2103,935,903,1108, - 1836,2360,39,790,36,2150,1007,34,816,31, - 35,813,30,32,788,29,27,56,856,112, - 82,83,113,868,104,935,903,1726,2360,39, - 790,36,387,1007,34,816,31,35,813,30, - 32,788,29,27,56,856,112,82,83,113, - 868,1160,935,903,1752,2360,39,790,36,2114, - 1007,34,816,31,35,813,30,32,788,29, - 27,56,856,112,82,83,113,868,1320,935, - 903,1760,2360,39,790,36,2172,1007,34,816, - 31,35,813,30,32,788,29,27,56,856, - 112,82,83,113,868,2042,935,903,1768,2452, - 39,1466,386,57,2701,287,403,1077,2360,39, - 790,36,241,1007,34,816,31,35,813,30, - 32,788,29,27,56,856,112,82,83,113, - 868,57,935,1794,2156,4390,277,600,39,2157, - 280,600,39,1466,386,890,2029,39,2104,3133, - 3748,3092,2158,39,393,2360,39,790,36,236, - 1007,34,816,31,35,813,30,32,788,29, - 27,56,856,112,82,83,113,868,430,935, - 1802,1320,1320,55,296,239,234,235,1458,2232, - 1370,39,281,2423,1136,39,790,36,1426,278, - 34,816,339,35,813,2156,1694,1817,600,2489, - 2157,80,3284,2355,246,249,252,255,2586,301, - 225,2314,39,790,36,1626,1007,34,816,31, - 35,813,30,32,788,29,27,56,856,92, - 82,83,4470,3141,3078,3160,3222,3411,4323,637, - 320,1817,322,3076,57,3634,315,1100,1077,3162, - 1998,688,39,1466,386,352,2162,2447,2633,1310, - 39,790,36,3068,2156,34,816,339,35,813, - 2156,943,39,1466,386,3723,344,583,556,349, - 296,600,39,1466,386,2535,2156,2480,55,3516, - 2437,2080,351,1458,2141,2831,1720,1481,1017,2350, - 890,2539,57,389,423,4102,2539,4470,277,1373, - 3258,2479,4237,2539,2731,320,1817,322,55,324, - 2634,315,1100,1458,2226,343,2388,1678,2419,527, - 352,533,2634,3377,1210,39,790,36,1552,2731, - 34,816,339,35,813,1119,3124,329,335,376, - 4305,344,583,556,349,187,1550,2038,161,425, - 2280,1077,2488,366,332,185,2836,1147,39,2157, - 2516,2228,390,423,776,39,1466,386,392,423, - 2778,177,4470,78,1320,533,1320,360,165,332, - 320,1817,322,2437,391,423,315,1100,716,360, - 200,3262,2236,2237,233,2676,57,1431,769,2759, - 533,55,161,2706,2236,2237,1458,1668,289,185, - 2836,57,305,4173,184,2539,208,219,578,343, - 207,216,217,218,220,2721,890,161,351,2162, - 174,4269,2437,1,343,193,4218,533,2481,2426, - 4484,2525,521,1213,173,308,312,188,172,175, - 176,177,178,179,94,3124,233,108,600,39, - 1466,386,73,1890,161,1558,352,2622,2574,1320, - 2511,185,2836,1147,39,2157,280,3131,208,219, - 578,2581,207,216,217,218,220,344,583,556, - 349,520,174,4506,201,55,2280,186,3753,1953, - 1458,2630,600,39,1466,386,173,203,2511,189, - 172,175,176,177,178,179,2360,39,790,36, - 2655,1007,34,816,31,35,813,30,32,788, - 29,27,56,856,112,82,83,113,868,429, - 1634,2360,39,790,36,2893,1007,34,816,31, - 35,813,30,32,788,29,27,56,856,112, - 82,83,113,868,1472,1636,1193,39,2857,36, - 1552,2731,34,816,339,35,813,2360,39,790, - 36,518,1007,34,816,31,35,813,30,32, - 788,29,27,56,856,112,82,83,113,1642, - 2494,39,1466,386,1280,2980,295,265,1373,2484, - 2617,533,2539,2731,4470,1160,57,2162,2806,518, - 2645,332,320,1817,322,2601,1160,1397,315,1100, - 233,2634,1014,39,1466,386,3122,55,161,2435, - 1374,2629,1458,1710,2143,185,2836,57,2539,2162, - 72,2539,208,219,578,4173,207,216,217,218, - 220,4237,2388,332,2650,1896,174,2634,1165,55, - 343,2641,353,1506,1458,53,533,2714,236,288, - 173,1206,71,3413,172,175,176,177,178,179, - 299,3124,57,1850,243,233,2748,3591,360,2124, - 2832,1592,2656,161,248,234,235,2653,2686,1160, - 185,2836,2706,2236,2237,2657,2143,208,219,578, - 2539,207,216,217,218,220,414,2901,248,39, - 449,174,441,4076,501,352,533,1017,2350,2634, - 57,236,57,2658,1081,173,2747,2369,181,172, - 175,176,177,178,179,233,344,583,556,349, - 236,2634,2848,161,2239,342,2162,244,234,235, - 185,2836,1984,298,499,500,2539,208,219,578, - 2651,207,216,217,218,220,251,234,235,57, - 57,174,529,2720,1077,343,533,1418,1998,70, - 95,1077,2162,108,2713,173,501,2162,192,172, - 175,176,177,178,179,233,862,688,39,1466, - 386,161,236,161,1166,39,1466,386,161,917, - 185,2836,2727,50,2150,3627,531,208,219,578, - 61,207,216,217,218,220,498,500,254,234, - 235,174,617,2162,55,2197,533,289,3258,1458, - 53,55,600,39,295,173,1458,53,3492,172, - 175,176,177,178,179,233,1949,952,1302,2756, - 2736,2539,4365,161,3024,918,60,3075,2426,1320, - 185,2836,442,3070,3085,334,335,208,219,578, - 233,207,216,217,218,220,1484,39,790,36, - 1426,174,34,816,339,35,813,2162,776,39, - 1466,386,1312,404,4495,173,89,202,197,172, - 175,176,177,178,179,2687,705,57,57,452, - 533,3197,4100,405,406,407,296,297,57,2278, - 323,2874,2959,1094,4470,55,1320,438,1320,233, - 1458,53,320,1817,322,3416,564,161,315,1100, - 600,39,2157,285,185,2836,2238,352,2715,2145, - 522,208,219,578,1303,207,216,217,218,220, - 600,39,1466,386,304,174,206,2760,344,583, - 556,349,793,2719,408,410,533,523,1320,173, - 2731,236,191,172,175,176,177,178,179,57, - 57,1320,57,533,2539,233,2539,428,1166,39, - 1466,386,964,161,2162,1859,4515,257,234,235, - 185,2836,343,343,2162,343,204,208,219,578, - 161,207,216,217,218,220,57,5190,1178,300, - 4216,174,5190,3124,3124,55,3124,107,57,5190, - 1458,53,3621,1130,1600,173,2305,4157,199,172, - 175,176,177,178,179,2360,39,790,36,2581, - 1007,34,816,31,35,813,30,32,788,29, - 27,56,856,112,82,83,113,1676,2360,39, - 790,36,5190,1007,34,816,31,35,813,30, - 32,788,29,27,56,856,112,82,83,113, - 1718,984,39,790,36,5190,2731,34,816,339, - 35,813,1235,39,2857,36,1552,2162,34,816, - 339,35,813,5190,600,39,1466,386,2027,2434, - 57,2540,2539,1042,4154,2539,5190,57,424,39, - 449,4577,5190,4076,600,39,2157,282,57,4470, - 2834,2634,533,1160,233,2162,333,320,1817,322, - 4470,55,5190,316,1100,5190,1458,577,320,1817, - 322,343,352,1320,315,1100,210,219,578,161, - 209,216,217,218,220,2661,1374,917,447,2539, - 5190,1684,3124,346,583,556,349,211,213,215, - 296,297,1227,2278,1166,39,1466,386,233,57, - 5190,4084,1320,1077,221,212,214,306,361,1623, - 39,790,36,1552,525,34,816,339,35,813, - 210,219,578,2162,209,216,217,218,220,2694, - 161,55,1320,2539,4196,3086,1458,53,1691,5190, - 226,211,213,215,296,297,5190,2278,1166,39, - 1466,386,233,2162,2162,2962,378,4470,221,212, - 214,5190,415,2901,57,320,1817,322,3675,1678, - 198,315,1100,1077,210,219,578,5190,209,216, - 217,218,220,3377,2638,55,3192,3252,4196,3169, - 1458,53,446,3070,3085,211,213,215,296,297, - 161,2278,600,39,1466,386,57,205,3468,3450, - 3176,5190,221,212,214,2360,1516,790,1542,5190, - 1007,34,816,31,35,813,30,32,788,29, - 27,56,856,112,82,83,90,57,5190,448, - 5190,1261,4196,3643,2360,39,790,36,381,1007, - 34,816,31,35,813,30,32,788,29,27, - 56,856,112,82,83,89,2360,39,790,36, - 5190,1007,34,816,31,35,813,30,32,788, - 29,27,56,856,112,82,83,88,2360,39, - 790,36,5190,1007,34,816,31,35,813,30, - 32,788,29,27,56,856,112,82,83,87, - 2360,39,790,36,5190,1007,34,816,31,35, - 813,30,32,788,29,27,56,856,112,82, - 83,86,2360,39,790,36,5190,1007,34,816, - 31,35,813,30,32,788,29,27,56,856, - 112,82,83,85,2360,39,790,36,5190,1007, - 34,816,31,35,813,30,32,788,29,27, - 56,856,112,82,83,84,2218,39,790,36, - 5190,1007,34,816,31,35,813,30,32,788, - 29,27,56,856,112,82,83,110,2360,39, - 790,36,5190,1007,34,816,31,35,813,30, - 32,788,29,27,56,856,112,82,83,115, - 2360,39,790,36,5190,1007,34,816,31,35, - 813,30,32,788,29,27,56,856,112,82, - 83,114,2360,39,790,36,5190,1007,34,816, - 31,35,813,30,32,788,29,27,56,856, - 112,82,83,111,1464,39,790,36,1552,5190, - 34,816,339,35,813,2162,1166,39,1466,386, - 5190,5190,57,2737,2682,57,736,2539,1077,1077, - 600,39,2157,2812,2038,2158,39,393,1077,5190, - 1998,5190,2458,39,1466,386,233,57,3312,5190, - 2038,1929,4470,55,1077,161,161,5190,1458,53, - 320,1817,322,167,1886,165,315,1100,210,219, - 578,2162,209,216,217,218,220,3802,769,55, - 5190,165,2585,2576,1458,53,2539,4250,5190,211, - 213,215,296,297,1481,2278,5190,57,2539,5190, - 3258,4579,5190,3322,2843,233,516,212,214,5190, - 2158,39,393,1060,39,790,36,2634,2731,34, - 816,339,35,813,5190,308,312,210,219,578, - 1565,209,216,217,218,220,2618,331,335,57, - 2539,57,3168,3729,5190,4555,3267,3702,211,213, - 215,296,297,5190,2278,5190,1998,3131,57,233, - 57,4470,2930,5190,2646,515,212,214,333,320, - 1817,322,5190,5190,2162,318,1100,600,39,1466, - 386,210,219,578,360,209,216,217,218,220, - 2770,57,2038,5190,2539,951,1077,4352,3504,2236, - 2237,5190,211,213,215,296,297,2892,2278,2463, - 39,1466,386,233,277,5190,3258,3470,57,222, - 212,214,2968,165,1623,39,790,36,1552,5190, - 34,816,339,35,813,210,219,578,2162,209, - 216,217,218,220,2813,57,55,5190,2539,4064, - 5190,1458,53,4082,335,5190,211,213,215,296, - 297,5190,2278,2514,39,1466,386,233,2701,5190, - 4343,3732,4470,307,212,214,242,279,5190,5190, - 320,1817,322,600,39,295,315,1100,3313,210, - 219,578,2162,209,216,217,218,220,769,5190, - 277,600,39,1466,386,600,39,1466,386,5190, - 211,213,215,296,297,2570,2278,5190,5190,3366, - 5190,5190,5190,236,5190,3462,5190,495,212,214, - 1028,5190,5190,5190,2539,4365,5190,5190,55,5190, - 5190,5190,55,1458,863,309,312,1458,2624,240, - 234,235,57,233,57,5190,1077,5190,1077,1060, - 39,790,36,278,2731,34,816,339,35,813, - 57,5190,5190,5190,1077,1312,404,4495,247,250, - 253,256,2586,161,5190,161,3481,5190,5190,1626, - 5190,2889,5190,3077,5190,5190,405,406,407,296, - 297,161,2278,5190,5190,5190,5190,4470,5190,3109, - 600,39,1466,386,333,320,1817,322,5190,5190, - 5190,316,1100,5190,1623,39,790,36,1552,2238, - 34,816,339,35,813,1325,39,790,36,3026, - 5190,34,816,339,35,813,1988,55,5190,5190, - 533,5190,1458,2730,5190,1104,5190,408,410,2539, - 4365,2483,5190,5190,5190,2539,1817,5190,5190,343, - 5190,3284,4470,400,5190,5190,5190,161,233,5190, - 320,1817,322,4470,343,193,315,1100,2398,4515, - 4484,317,2761,322,526,2673,5190,5190,3463,2539, - 1312,404,4495,57,5190,3124,57,533,1521,57, - 533,5190,2539,2539,5190,529,57,1998,2634,1998, - 2539,405,406,407,296,297,343,2278,5190,343, - 5190,343,343,5190,161,5190,57,161,5190,343, - 2539,5190,193,5190,5190,193,5190,4484,195,5190, - 4484,2278,1468,3124,2238,2539,5190,57,5190,343, - 3124,1077,57,505,5190,1720,1077,57,2038,2038, - 503,1077,1077,1077,343,5190,5190,3258,5190,3258, - 3124,5190,408,411,5190,501,5190,5190,161,3619, - 530,5190,5190,161,5190,4375,3226,5190,161,165, - 165,2244,5190,5190,5190,3754,4298,5190,4075,5190, - 5190,5190,5190,5190,4107,335,4220,335,5190,5190, - 5190,3663,5190,5190,5190,498,500,5190,426,5190, - 5190,5190,5190,5190,5190,5190,5190,5190,5190,5190, - 5190,5190,5190,5190,5190,5190,5190,5190,5190,3681, - 5190,5190,5190,5190,5190,5190,5190,5190,5190,5190, - 5190,5190,5190,3315,3494,3645,5190,5190,5190,5190, - 5190,5190,5190,5190,5190,5190,5190,5190,5190,3200, - 5190,5190,5190,5190,5190,5190,5190,5190,5190,5190, - 5190,5190,5190,5190,5190,5190,5190,5190,5190,5190, - 5190,5190,5190,5190,5190,5190,5190,5190,5190,5190, - 5190,5190,5190,5190,5190,5190,5190,5190,5190,5190, - 5190,5190,5190,5190,5190,5190,5190,5190,5190,5190, - 5190,5190,5190,5190,5190,5190,5190,5190,4234,5190, - 0,43,5208,0,43,5207,0,925,33,0, - 436,1341,0,450,1510,0,42,5208,0,42, - 5207,0,2485,131,0,1,440,0,454,922, - 0,453,1355,0,925,45,0,2543,97,0, - 925,385,0,39,37,0,36,38,0,43, - 783,0,1,720,0,1,5466,0,1,5465, - 0,1,5464,0,1,5463,0,1,5462,0, - 1,5461,0,1,5460,0,1,5459,0,1, - 5458,0,1,5457,0,1,5456,0,43,1, - 5208,0,43,1,5207,0,728,1,0,5428, - 245,0,5427,245,0,5528,245,0,5527,245, - 0,5455,245,0,5454,245,0,5453,245,0, - 5452,245,0,5451,245,0,5450,245,0,5449, - 245,0,5448,245,0,5466,245,0,5465,245, - 0,5464,245,0,5463,245,0,5462,245,0, - 5461,245,0,5460,245,0,5459,245,0,5458, - 245,0,5457,245,0,5456,245,0,43,245, - 5208,0,43,245,5207,0,5232,245,0,54, - 5208,0,54,5207,0,49,5230,0,49,41, - 0,5208,54,0,5207,54,0,2485,133,0, - 2485,132,0,5196,1,0,5195,1,0,241, - 2807,0,386,36,0,36,386,0,385,33, - 0,33,385,0,5520,441,0,1678,441,0, - 1,98,0,41,53,0,5232,1,0,43, - 1,0,53,41,0,497,2268,0,5232,232, - 1,0,43,232,1,0,232,413,0,41, - 5208,0,41,5207,0,5230,51,0,51,41, - 0,5208,40,0,5207,40,0,1,5208,2, - 0,1,5207,2,0,41,5208,2,0,41, - 5207,2,0,5200,402,0,5199,402,0,1, - 3709,0,1,783,0,1,3232,0,232,412, - 0,5520,101,0,1678,101,0,39,79,0, - 3620,319,0,1,5520,0,1,1678,0,43, - 1,5208,2,0,43,1,5207,2,0,43, - 5208,2,0,43,5207,2,0,282,4110,0, - 497,4142,0,232,1,0,232,224,0,232, - 223,0,1,2592,0,1,4095,0,5198,1, - 0,232,1,3203,0,5200,232,0,5199,232, - 0,3386,232,0,8,10,0,190,3396,0 + 40,40,40,39,31,141,141,97,97,172, + 172,92,194,194,77,77,77,77,77,77, + 77,77,77,78,78,78,68,68,60,60, + 173,173,79,79,79,103,103,174,174,80, + 80,80,175,175,81,81,81,81,81,82, + 82,84,84,84,84,84,84,84,50,50, + 50,50,50,114,114,115,115,51,176,23, + 23,23,23,23,48,48,87,87,87,87, + 87,148,148,143,143,143,143,143,144,144, + 144,145,145,145,146,146,146,147,147,147, + 88,88,88,88,88,89,89,89,13,13, + 13,13,13,13,13,13,13,13,13,100, + 119,119,119,119,119,119,117,117,117,118, + 118,150,150,149,149,121,121,104,72,72, + 73,74,53,47,151,151,54,52,86,86, + 152,152,142,142,122,123,123,69,69,153, + 153,63,63,63,58,58,57,64,64,67, + 67,56,56,56,90,90,99,98,98,61, + 61,59,59,55,55,45,101,101,101,93, + 93,93,94,94,95,95,95,96,96,105, + 105,105,107,107,106,106,195,195,91,91, + 178,178,178,178,178,125,46,46,155,177, + 177,126,126,126,126,179,179,37,37,116, + 127,127,127,127,108,108,120,120,120,157, + 158,158,158,158,158,158,158,158,158,158, + 158,182,182,180,180,181,181,159,159,159, + 159,160,183,110,109,109,184,184,161,161, + 161,161,102,102,102,185,185,9,9,10, + 186,186,187,162,154,154,163,163,164,165, + 165,6,6,7,166,166,166,166,166,166, + 166,166,166,166,166,166,166,166,166,166, + 166,166,166,166,166,166,166,166,166,166, + 166,166,166,166,166,166,166,166,166,166, + 166,166,166,166,166,166,70,75,75,167, + 167,129,129,130,130,130,130,130,130,3, + 131,131,128,128,111,111,85,71,83,156, + 156,112,112,188,188,188,132,132,124,124, + 189,189,168,168,958,41,2505,2486,1468,3123, + 36,1073,33,37,950,32,34,2478,31,29, + 58,1113,114,84,85,115,1164,2158,1444,1263, + 1494,1486,1619,1578,1730,935,1688,1264,1745,1772, + 150,279,1664,1216,165,151,402,3225,2042,41, + 932,38,3214,1086,36,1073,341,37,950,414, + 494,2339,41,932,38,238,734,36,1073,33, + 37,950,32,34,926,31,29,58,1113,114, + 84,85,115,1164,1782,1444,1263,1494,1486,1619, + 2260,241,236,237,2146,2040,741,4395,1141,2647, + 1020,1872,2676,40,280,322,2913,324,1092,41, + 285,317,2843,3367,238,30,1293,2825,2775,1141, + 248,251,254,257,1957,167,1334,1798,41,932, + 38,1000,3042,36,1073,33,37,950,65,34, + 250,236,237,2070,2070,567,1837,2604,583,2669, + 2867,3075,4458,1482,41,932,38,2647,734,36, + 1073,33,37,950,32,34,926,31,29,58, + 1113,114,84,85,115,1164,345,1444,1263,1494, + 1486,1619,1578,1730,2652,1688,362,1745,1772,150, + 73,1459,3653,514,151,2607,41,286,3115,30, + 2631,2841,2880,683,1733,41,1871,388,515,849, + 1482,41,932,38,2647,734,36,1073,33,37, + 950,32,34,926,31,29,58,1113,114,84, + 85,115,1164,345,1444,1263,1494,1486,1619,1578, + 1730,57,1688,848,1745,1772,150,1864,720,389, + 514,151,1092,41,285,3115,2079,4176,500,50, + 2661,3405,69,2586,510,515,1968,41,932,38, + 1535,3042,36,1073,33,37,950,64,34,3193, + 3201,2584,2951,2951,2602,1595,41,297,1482,41, + 932,38,2647,734,36,1073,33,37,950,32, + 34,926,31,29,58,1113,114,84,85,115, + 1164,345,1444,1263,1494,1486,1619,1578,1730,495, + 1688,510,1745,1772,150,1020,2942,3055,514,151, + 2704,1163,1163,3115,2559,1235,2786,2786,2626,861, + 30,2602,1736,515,740,1749,41,932,38,2647, + 734,36,1073,33,37,950,32,34,926,31, + 29,58,1113,114,84,85,115,1164,345,1444, + 1263,1494,1486,1619,1578,1730,1797,1688,3668,1745, + 1772,150,1020,41,2819,514,151,334,334,1222, + 3115,2136,41,1830,49,189,762,48,1073,510, + 515,68,2455,2027,41,932,38,2088,3641,36, + 1073,33,37,950,32,34,2655,508,480,2602, + 2464,2947,2677,1547,41,932,38,480,734,36, + 1073,33,37,950,32,34,926,31,29,58, + 1113,114,84,85,115,1164,292,1444,1263,1494, + 1486,1619,1578,1730,2140,1688,511,1745,1772,150, + 2607,41,283,381,151,4161,2339,41,932,38, + 66,734,36,1073,33,37,950,32,34,926, + 31,29,58,1113,114,84,85,93,384,1616, + 41,932,38,1119,734,36,1073,33,37,950, + 32,34,926,31,29,58,1113,114,84,85, + 115,1164,1656,1444,1263,1494,1486,1619,1578,1730, + 2079,1688,440,1745,1772,150,3560,390,424,381, + 151,4161,1020,41,2676,2751,391,424,2122,41, + 932,38,2915,2524,36,1073,341,37,950,385, + 1813,41,932,38,382,734,36,1073,33,37, + 950,32,34,926,31,29,58,1113,114,84, + 85,115,1164,453,1444,1263,1494,1486,1619,1578, + 1730,848,1688,2523,1745,1772,150,4395,1163,500, + 381,151,4161,2786,3300,319,3019,324,1868,41, + 932,38,3249,3641,36,1073,33,37,950,67, + 34,1924,41,932,38,386,734,36,1073,33, + 37,950,32,34,926,31,29,58,1113,114, + 84,85,115,1164,65,1444,1263,1494,1486,1619, + 1578,1730,2483,1688,4226,1745,1772,150,1020,41, + 288,165,151,1924,41,932,38,457,734,36, + 1073,33,37,950,32,34,926,31,29,58, + 1113,114,84,85,115,1164,379,1444,1263,1494, + 1486,1619,1578,1730,480,1688,66,1745,1772,150, + 66,3161,66,375,151,1924,41,932,38,66, + 734,36,1073,33,37,950,32,34,926,31, + 29,58,1113,114,84,85,115,1164,2158,1444, + 1263,1494,1486,1619,1578,1730,102,1688,2675,1745, + 1772,150,860,318,3375,375,151,1868,41,932, + 38,860,3641,36,1073,33,37,950,66,34, + 378,30,567,2158,520,1924,41,932,38,4166, + 734,36,1073,33,37,950,32,34,926,31, + 29,58,1113,114,84,85,115,1164,374,1444, + 1263,1494,1486,1619,1578,1730,77,1688,588,1745, + 1772,150,4288,393,424,375,151,1685,41,932, + 38,2158,734,36,1073,33,37,950,32,34, + 926,31,29,58,1113,114,84,85,115,1164, + 373,1444,1263,1494,1486,1619,1578,1730,761,1688, + 3845,1745,1772,150,76,1858,2705,149,151,1118, + 2171,1924,41,932,38,376,734,36,1073,33, + 37,950,32,34,926,31,29,58,1113,114, + 84,85,115,1164,2778,1444,1263,1494,1486,1619, + 1578,1730,848,1688,1143,1745,1772,150,2705,3347, + 371,166,151,1924,41,932,38,848,734,36, + 1073,33,37,950,32,34,926,31,29,58, + 1113,114,84,85,115,1164,2079,1444,1263,1494, + 1486,1619,1578,1730,2453,1688,30,1745,1772,150, + 818,1020,3695,162,151,1924,41,932,38,2158, + 734,36,1073,33,37,950,32,34,926,31, + 29,58,1113,114,84,85,115,1164,456,1444, + 1263,1494,1486,1619,1578,1730,2069,1688,2294,1745, + 1772,150,61,4083,2007,161,151,1924,41,932, + 38,2158,734,36,1073,33,37,950,32,34, + 926,31,29,58,1113,114,84,85,115,1164, + 1220,1444,1263,1494,1486,1619,1578,1730,444,1688, + 2294,1745,1772,150,95,316,101,160,151,1924, + 41,932,38,2158,734,36,1073,33,37,950, + 32,34,926,31,29,58,1113,114,84,85, + 115,1164,2780,1444,1263,1494,1486,1619,1578,1730, + 444,1688,2294,1745,1772,150,60,418,144,159, + 151,1924,41,932,38,848,734,36,1073,33, + 37,950,32,34,926,31,29,58,1113,114, + 84,85,115,1164,2652,1444,1263,1494,1486,1619, + 1578,1730,358,1688,30,1745,1772,150,2596,944, + 528,158,151,1924,41,932,38,848,734,36, + 1073,33,37,950,32,34,926,31,29,58, + 1113,114,84,85,115,1164,2652,1444,1263,1494, + 1486,1619,1578,1730,357,1688,30,1745,1772,150, + 2859,59,528,157,151,1924,41,932,38,289, + 734,36,1073,33,37,950,32,34,926,31, + 29,58,1113,114,84,85,115,1164,1560,1444, + 1263,1494,1486,1619,1578,1730,326,1688,30,1745, + 1772,150,948,329,528,156,151,1924,41,932, + 38,290,734,36,1073,33,37,950,32,34, + 926,31,29,58,1113,114,84,85,115,1164, + 393,1444,1263,1494,1486,1619,1578,1730,848,1688, + 1663,1745,1772,150,957,971,848,155,151,1924, + 41,932,38,1090,734,36,1073,33,37,950, + 32,34,926,31,29,58,1113,114,84,85, + 115,1164,1909,1444,1263,1494,1486,1619,1578,1730, + 1161,1688,30,1745,1772,150,2897,1020,3423,154, + 151,1924,41,932,38,1090,734,36,1073,33, + 37,950,32,34,926,31,29,58,1113,114, + 84,85,115,1164,105,1444,1263,1494,1486,1619, + 1578,1730,106,1688,30,1745,1772,150,673,1424, + 2601,153,151,1924,41,932,38,2158,734,36, + 1073,33,37,950,32,34,926,31,29,58, + 1113,114,84,85,115,1164,66,1444,1263,1494, + 1486,1619,1578,1730,1495,1688,78,1745,1772,150, + 98,2680,1178,152,151,1880,41,932,38,1294, + 734,36,1073,33,37,950,32,34,926,31, + 29,58,1113,114,84,85,115,1164,860,1444, + 1263,1494,1486,1619,1578,1730,851,1688,79,1745, + 2748,171,1924,41,932,38,522,734,36,1073, + 33,37,950,32,34,926,31,29,58,1113, + 114,84,85,115,1164,1897,1444,1263,1494,1486, + 1619,1578,1730,73,1688,30,1745,1772,150,625, + 30,330,147,151,1214,938,500,2130,41,2632, + 1740,3737,3178,2250,41,932,38,1627,734,36, + 1073,33,37,950,32,34,926,31,29,58, + 1113,114,84,85,115,1164,66,1444,1263,1494, + 1486,1619,1578,1730,57,1688,1142,1745,1772,150, + 1864,2737,355,196,151,2339,41,932,38,2167, + 734,36,1073,33,37,950,32,34,926,31, + 29,58,1113,114,84,85,115,1164,860,1444, + 1263,1494,1486,1619,1578,1730,1240,1688,2456,1745, + 2748,171,2339,41,932,38,521,734,36,1073, + 33,37,950,32,34,926,31,29,58,1113, + 114,84,85,115,1164,1698,1444,1263,1494,1486, + 1619,1578,1730,2657,1688,152,1745,2748,171,1536, + 41,932,38,2158,326,36,1073,46,37,950, + 1308,2158,413,2339,41,932,38,296,734,36, + 1073,33,37,950,32,34,926,31,29,58, + 1113,114,84,85,115,1164,352,1444,1263,1494, + 1486,1619,1578,1730,2727,1688,2159,1745,2748,171, + 2339,41,932,38,1746,734,36,1073,33,37, + 950,32,34,926,31,29,58,1113,114,84, + 85,115,1164,2347,1444,1263,1494,1486,1619,1578, + 1730,2454,1688,2463,1745,2748,171,1536,41,932, + 38,2158,579,36,1073,2393,37,950,666,2158, + 1073,2339,41,932,38,420,734,36,1073,33, + 37,950,32,34,926,31,29,58,1113,114, + 84,85,115,1164,2873,1444,1263,1494,1486,1619, + 1578,1730,75,1688,2650,1745,2748,171,2383,41, + 932,38,419,734,36,1073,33,37,950,32, + 34,926,31,29,58,1113,114,84,85,115, + 1164,1119,1444,1263,1494,1486,1619,1578,1730,2653, + 1688,1530,1745,2748,171,1536,41,932,38,2158, + 231,36,1073,342,37,950,2468,41,394,2339, + 41,932,38,422,734,36,1073,33,37,950, + 32,34,926,31,29,58,1113,114,84,85, + 115,1164,74,1444,1263,1494,1486,1619,1578,1730, + 2731,1688,1990,2450,2459,1364,2339,41,932,38, + 3393,734,36,1073,33,37,950,32,34,926, + 31,29,58,1113,114,84,85,115,1164,2158, + 1444,1263,1494,1486,1619,1578,1730,73,2302,2339, + 41,932,38,400,734,36,1073,33,37,950, + 32,34,926,31,29,58,1113,114,84,85, + 115,1164,73,1444,1263,1494,1486,1619,1578,2251, + 2339,41,932,38,3195,734,36,1073,33,37, + 950,32,34,926,31,29,58,1113,114,84, + 85,115,1164,1984,1444,1263,1494,1486,2180,2339, + 41,932,38,2255,734,36,1073,33,37,950, + 32,34,926,31,29,58,1113,114,84,85, + 115,1164,219,1444,1263,1494,2214,2339,41,932, + 38,404,734,36,1073,33,37,950,32,34, + 926,31,29,58,1113,114,84,85,115,1164, + 1332,1444,1263,1494,2249,2339,41,932,38,480, + 734,36,1073,33,37,950,32,34,926,31, + 29,58,1113,114,84,85,115,1164,1180,1444, + 1263,2126,2339,41,932,38,2569,734,36,1073, + 33,37,950,32,34,926,31,29,58,1113, + 114,84,85,115,1164,2512,1444,1263,2153,2339, + 41,932,38,2757,734,36,1073,33,37,950, + 32,34,926,31,29,58,1113,114,84,85, + 115,1164,1999,1444,1263,2161,2339,41,932,38, + 2089,734,36,1073,33,37,950,32,34,926, + 31,29,58,1113,114,84,85,115,1164,262, + 1444,1263,2163,534,1536,41,932,38,392,424, + 36,1073,2595,37,950,2109,2167,2156,1092,41, + 450,534,235,4156,1349,2158,1020,41,1871,388, + 163,1408,41,1871,388,1984,1978,187,3285,30, + 4182,860,1511,2647,1208,210,221,1068,163,209, + 218,219,220,222,1014,187,3285,245,72,176, + 1,2610,345,57,534,520,1702,175,57,1864, + 2966,2158,1669,303,1864,2646,190,174,177,178, + 179,180,181,235,3115,202,160,2427,41,1871, + 388,163,2591,3534,1906,1971,2158,4229,187,3285, + 243,1937,860,2158,3372,238,210,221,1068,1148, + 209,218,219,220,222,30,2707,1324,500,4150, + 176,356,2786,3788,279,188,30,3653,175,63, + 4249,246,236,237,331,337,62,191,174,177, + 178,179,180,181,2339,41,932,38,238,734, + 36,1073,33,37,950,32,34,926,31,29, + 58,1113,114,84,85,115,1164,30,1444,2172, + 238,674,2620,335,241,236,237,1020,41,2300, + 1950,443,3177,3187,354,1601,587,280,1893,2647, + 2647,2246,4431,203,52,2661,253,236,237,1020, + 41,2676,282,248,251,254,257,1957,2775,2775, + 348,2614,1935,351,1000,2101,41,932,38,3006, + 66,36,1073,341,37,950,1020,41,1871,388, + 2604,583,2669,2867,3075,4458,2339,41,932,38, + 2652,734,36,1073,33,37,950,32,34,926, + 31,29,58,1113,114,84,85,115,1164,2580, + 1444,2178,860,57,4395,2158,1348,1974,2161,1864, + 2826,2647,322,2913,324,2652,502,363,317,2843, + 378,239,354,2356,2987,1737,41,932,38,2958, + 345,36,1073,341,37,950,30,2730,325,1030, + 534,1141,2146,2647,4272,301,1141,1292,346,2614, + 1935,351,865,30,500,501,2985,4251,353,345, + 1729,567,235,1020,2957,2676,82,163,163,1247, + 41,1871,388,167,4395,1331,169,2147,2942,2745, + 300,3115,322,2913,324,538,405,4593,317,2843, + 327,1283,354,1182,2825,1310,41,932,38,3214, + 2786,36,1073,341,37,950,279,2158,238,406, + 407,408,298,299,2936,4138,421,2158,346,2614, + 1935,351,1741,1981,349,1598,2083,1351,534,2647, + 2786,2312,2786,368,256,236,237,2773,1598,1543, + 109,2881,2647,2786,4395,30,1024,235,2775,2647, + 3830,334,322,2913,324,163,2160,2263,317,2843, + 328,2775,187,3285,1358,2116,860,2324,345,2828, + 210,221,1068,453,209,218,219,220,222,2111, + 2797,334,80,335,176,3744,1163,2684,41,283, + 3115,2786,175,439,334,912,409,411,291,2603, + 1955,3394,174,177,178,179,180,181,500,4225, + 436,2457,1062,4252,534,2677,362,310,314,714, + 2722,4565,1591,41,1871,388,1604,2943,3630,362, + 2171,2841,2880,235,1015,30,912,3089,2945,3657, + 306,163,334,2171,2841,2880,30,3189,187,3285, + 1141,2756,860,3565,1778,2006,210,221,1068,57, + 209,218,219,220,222,1864,984,353,519,1984, + 176,523,1595,3128,297,534,3630,163,175,2432, + 41,2676,2977,2739,2889,1248,2430,183,174,177, + 178,179,180,181,235,1801,2468,41,394,862, + 1984,354,163,2465,41,1871,388,227,2796,187, + 3285,30,1172,860,3055,2647,238,210,221,1068, + 2396,209,218,219,220,222,2800,346,2614,1935, + 351,176,610,30,345,2083,534,1141,307,175, + 57,2718,259,236,237,1366,1864,1370,194,174, + 177,178,179,180,181,235,3115,2805,1876,41, + 1871,388,354,163,163,3534,1996,2801,2831,2817, + 187,3285,1585,2581,860,2818,1222,2823,210,221, + 1068,2581,209,218,219,220,222,943,346,2614, + 1935,351,176,697,1163,57,344,534,2827,2786, + 175,1864,55,2158,3197,1408,41,1871,388,3543, + 174,177,178,179,180,181,235,1608,41,450, + 725,2652,4156,2832,163,2438,41,1871,388,2648, + 88,187,3285,2605,2040,860,3120,2647,2647,210, + 221,1068,57,209,218,219,220,222,1864,55, + 334,30,2833,176,784,3254,345,2775,534,2156, + 1416,175,57,1141,1141,1984,527,1178,1864,55, + 199,174,177,178,179,180,181,235,3115,2839, + 1591,41,1871,388,4503,163,308,3662,530,435, + 163,163,187,3285,383,2843,860,207,3756,532, + 210,221,1068,186,209,218,219,220,222,2844, + 96,2158,30,110,176,871,1141,57,97,534, + 1984,110,175,1864,55,362,2690,2438,41,1871, + 388,193,174,177,178,179,180,181,235,2937, + 2841,2880,2564,163,448,2871,163,1020,41,1871, + 388,2422,30,187,3285,30,4346,860,205,3712, + 175,210,221,1068,57,209,218,219,220,222, + 1864,55,2678,2835,1932,176,2432,41,2676,282, + 447,3177,3187,175,57,1020,41,2676,287,3718, + 1864,990,201,174,177,178,179,180,181,2339, + 41,932,38,2848,734,36,1073,33,37,950, + 32,34,926,31,29,58,1113,114,84,85, + 115,1164,3497,2038,2339,41,932,38,565,734, + 36,1073,33,37,950,32,34,926,31,29, + 58,1113,114,84,85,115,1164,1614,2073,1460, + 41,3060,38,3214,2786,36,1073,341,37,950, + 2872,2727,1676,41,932,38,3006,2850,36,1073, + 341,37,950,2339,41,932,38,2726,734,36, + 1073,33,37,950,32,34,926,31,29,58, + 1113,114,84,85,115,2075,30,30,4395,30, + 1141,1141,2862,534,500,334,322,2913,324,4368, + 526,4395,317,2843,1020,41,1871,388,1394,322, + 2913,324,345,2715,5243,317,2843,163,163,354, + 163,523,2468,41,394,2179,2259,5243,1248,3744, + 1020,41,2676,284,3115,1020,41,2676,3040,30, + 5243,279,5243,4406,1501,346,2614,1935,351,2339, + 41,932,38,524,734,36,1073,33,37,950, + 32,34,926,31,29,58,1113,114,84,85, + 115,2084,2339,41,932,38,5243,734,36,1073, + 33,37,950,32,34,926,31,29,58,1113, + 114,84,85,115,2092,2158,2158,5243,415,3071, + 1060,41,932,38,281,2786,36,1073,341,37, + 950,1020,41,1871,388,1984,5243,30,30,2160, + 2305,2647,1408,1020,41,1871,388,2587,380,3091, + 3522,2647,1020,41,1871,388,5243,30,936,5243, + 345,1141,2647,1020,41,297,2005,1984,57,4395, + 235,3245,5243,204,1864,720,335,322,2913,324, + 57,345,3115,318,2843,1984,54,354,163,428, + 5243,2158,2036,212,221,1068,2329,211,218,219, + 220,222,2693,1365,5243,306,2647,5243,1020,41, + 1871,388,5243,348,2614,1935,351,213,215,217, + 298,299,2936,208,3152,235,5243,2438,41,1871, + 388,223,214,216,1209,41,932,38,5243,2786, + 36,1073,341,37,950,431,1984,1984,212,221, + 1068,519,211,218,219,220,222,5243,5243,2762, + 5243,4233,2800,2647,57,30,5243,3677,1404,1141, + 1864,55,213,215,217,298,299,2936,2438,41, + 1871,388,235,4395,206,302,223,214,216,3809, + 335,322,2913,324,5243,2513,163,320,2843,1020, + 41,1871,388,5243,2585,212,221,1068,5243,211, + 218,219,220,222,30,57,4233,2835,1488,30, + 30,1864,55,1530,4456,5243,5243,426,1824,213, + 215,217,298,299,2936,30,430,30,30,3769, + 4143,1141,4477,223,214,216,2339,1872,932,1879, + 3031,734,36,1073,33,37,950,32,34,926, + 31,29,58,1113,114,84,85,92,3625,5243, + 5243,5243,5243,4233,3241,2339,41,932,38,5243, + 734,36,1073,33,37,950,32,34,926,31, + 29,58,1113,114,84,85,91,2339,41,932, + 38,5243,734,36,1073,33,37,950,32,34, + 926,31,29,58,1113,114,84,85,90,2339, + 41,932,38,5243,734,36,1073,33,37,950, + 32,34,926,31,29,58,1113,114,84,85, + 89,2339,41,932,38,5243,734,36,1073,33, + 37,950,32,34,926,31,29,58,1113,114, + 84,85,88,2339,41,932,38,5243,734,36, + 1073,33,37,950,32,34,926,31,29,58, + 1113,114,84,85,87,2339,41,932,38,5243, + 734,36,1073,33,37,950,32,34,926,31, + 29,58,1113,114,84,85,86,2202,41,932, + 38,5243,734,36,1073,33,37,950,32,34, + 926,31,29,58,1113,114,84,85,112,2339, + 41,932,38,5243,734,36,1073,33,37,950, + 32,34,926,31,29,58,1113,114,84,85, + 117,2339,41,932,38,5243,734,36,1073,33, + 37,950,32,34,926,31,29,58,1113,114, + 84,85,116,2339,41,932,38,2158,734,36, + 1073,33,37,950,32,34,926,31,29,58, + 1113,114,84,85,113,1526,41,932,38,3214, + 5243,36,1073,341,37,950,2295,41,932,38, + 3213,734,36,1073,33,37,950,32,34,926, + 31,29,58,1113,94,84,85,2781,30,5243, + 2158,2647,2976,1020,41,1871,388,5243,30,30, + 2147,2942,1572,2647,4395,5243,2438,41,1871,388, + 235,30,322,2913,324,953,30,5243,317,2843, + 3649,2146,345,1856,1358,1141,1020,41,1871,388, + 429,2158,30,212,221,1068,4105,211,218,219, + 220,222,2632,57,3115,5243,2647,1984,1984,1864, + 55,2146,167,1984,2091,1141,5243,213,215,217, + 298,299,2936,57,1986,235,5243,2158,4320,1864, + 3007,517,214,216,5243,2158,1987,310,314,1978, + 30,2786,167,2664,1141,2857,228,2647,212,221, + 1068,200,211,218,219,220,222,4198,5243,1978, + 4203,1978,2490,41,1871,388,235,3189,3335,5243, + 5243,163,213,215,217,298,299,2936,2656,1738, + 5243,291,1020,41,1871,388,516,214,216,212, + 221,1068,4226,211,218,219,220,222,2807,57, + 4229,5243,2647,30,5243,1864,55,1141,2663,1646, + 2943,5243,5243,213,215,217,298,299,2936,57, + 4229,235,4229,5243,3673,1864,1943,224,214,216, + 1020,41,1871,388,163,2005,5243,336,337,2852, + 3245,5243,4217,2647,212,221,1068,5243,211,218, + 219,220,222,5243,5243,5243,1978,333,337,3824, + 337,5243,235,1020,41,297,5243,449,213,215, + 217,298,299,2936,104,5243,5243,5243,2597,41, + 1871,388,309,214,216,212,221,1068,5243,211, + 218,219,220,222,1470,41,3060,38,3214,5243, + 36,1073,341,37,950,1020,41,1871,388,213, + 215,217,298,299,2936,57,1601,4229,5243,5243, + 2647,1864,55,496,214,216,2042,41,932,38, + 3214,5243,36,1073,341,37,950,1404,5243,2775, + 4353,2675,57,4395,5243,534,2703,5243,1864,2337, + 3482,322,2913,324,3829,337,30,317,2843,5243, + 2647,2146,5243,1394,345,1141,1978,3757,2485,41, + 1871,388,163,2591,5243,4395,5243,5243,5243,345, + 195,244,5243,322,2913,324,4523,1670,5243,317, + 2843,2647,167,5243,5243,1358,427,5243,5243,5243, + 5243,3115,5243,5243,5243,279,5243,502,5243,5243, + 2775,506,5243,1209,41,932,38,5243,2786,36, + 1073,341,37,950,5243,5243,5243,4229,30,238, + 5243,5243,534,2042,41,932,38,3214,5243,36, + 1073,341,37,950,197,499,501,5243,311,314, + 5243,345,5243,416,3071,242,236,237,2927,163, + 5243,5243,4395,5243,4148,337,5243,195,280,335, + 322,2913,324,4523,5243,1105,318,2843,502,2647, + 4272,5243,4395,3140,249,252,255,258,1957,5243, + 322,2913,324,5243,5243,1000,317,2843,235,5243, + 5243,5243,3487,1368,41,932,38,3469,5243,36, + 1073,341,37,950,5243,4197,499,501,5243,5243, + 30,538,405,4593,534,5243,5243,5243,5243,5243, + 30,3626,5243,30,2647,30,5243,534,2146,2647, + 5243,401,1141,345,5243,406,407,408,298,299, + 2936,163,4395,345,3346,5243,345,5243,345,195, + 319,3019,324,674,163,4523,5243,2647,5243,167, + 5243,5243,195,5243,5243,3115,5243,2881,4523,5243, + 3115,5243,5243,5243,5243,504,345,5243,5243,5243, + 531,5243,5243,5243,5243,5243,5243,5243,5243,5243, + 5243,5243,5243,5243,5243,5243,5243,5243,4436,5243, + 5243,5243,5243,5243,5243,5243,5243,5243,5243,5243, + 5243,5243,5243,3701,5243,5243,5243,5243,5243,5243, + 5243,5243,409,412,5243,3331,4087,5243,5243,5243, + 5243,5243,5243,5243,5243,5243,5243,5243,5243,5243, + 5243,5243,5243,5243,5243,5243,3161,5243,5243,5243, + 5243,5243,5243,5243,5243,5243,5243,5243,5243,5243, + 5243,5243,5243,5243,5243,5243,5243,5243,5243,5243, + 5243,5243,5243,5243,5243,5243,5243,5243,5243,5243, + 5243,5243,5243,5243,5243,5243,5243,5243,5243,5243, + 5243,5243,5243,5243,5243,5243,5243,5243,5243,5243, + 5243,5243,5243,5243,5243,5243,5243,5243,5243,5243, + 5243,5243,5243,5243,5243,5243,5243,5243,5243,5243, + 5243,5243,5243,5243,5243,5243,5243,5243,5243,5243, + 5243,5243,5243,5243,5243,5243,5243,5243,5243,5243, + 5243,4181,5243,0,45,5263,0,45,5262,0, + 729,35,0,437,870,0,451,1446,0,44, + 5263,0,44,5262,0,2509,133,0,1,441, + 0,455,1111,0,454,1402,0,729,47,0, + 645,99,0,729,387,0,41,39,0,38, + 40,0,45,630,0,1,788,0,1,5521, + 0,1,5520,0,1,5519,0,1,5518,0, + 1,5517,0,1,5516,0,1,5515,0,1, + 5514,0,1,5513,0,1,5512,0,1,5511, + 0,45,1,5263,0,45,1,5262,0,921, + 1,0,5483,247,0,5482,247,0,5583,247, + 0,5582,247,0,5510,247,0,5509,247,0, + 5508,247,0,5507,247,0,5506,247,0,5505, + 247,0,5504,247,0,5503,247,0,5521,247, + 0,5520,247,0,5519,247,0,5518,247,0, + 5517,247,0,5516,247,0,5515,247,0,5514, + 247,0,5513,247,0,5512,247,0,5511,247, + 0,45,247,5263,0,45,247,5262,0,5287, + 247,0,56,5263,0,56,5262,0,51,5285, + 0,51,43,0,5263,56,0,5262,56,0, + 2509,135,0,2509,134,0,5249,1,0,5248, + 1,0,243,624,0,388,38,0,38,388, + 0,387,35,0,35,387,0,5575,442,0, + 1614,442,0,1,100,0,43,55,0,5287, + 1,0,45,1,0,55,43,0,498,2899, + 0,5287,234,1,0,45,234,1,0,234, + 414,0,43,5263,0,43,5262,0,5285,53, + 0,53,43,0,5263,42,0,5262,42,0, + 1,5263,2,0,1,5262,2,0,43,5263, + 2,0,43,5262,2,0,5253,403,0,5252, + 403,0,1,578,0,1,630,0,1,2827, + 0,234,413,0,5575,103,0,1614,103,0, + 41,81,0,3271,321,0,1,5575,0,1, + 1614,0,45,1,5263,2,0,45,1,5262, + 2,0,45,5263,2,0,45,5262,2,0, + 284,4171,0,498,4192,0,234,1,0,234, + 226,0,234,225,0,1,2266,0,1,3116, + 0,5255,1,0,5251,1,0,234,1,3243, + 0,5252,234,0,3250,234,0,3380,234,0, + 10,12,0,8,10,12,0,8,12,0, + 192,3274,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1056,304 +1067,304 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final static byte termCheck[] = {0, 0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,0,29, - 30,3,32,33,34,35,36,37,38,39, - 40,41,42,43,44,45,46,47,48,49, + 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,0,57,58,59, - 60,61,0,63,64,65,0,0,68,69, - 70,4,72,6,74,8,76,77,78,79, - 80,81,82,83,84,85,86,87,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,0,29,30,0, - 32,33,34,35,36,37,38,39,40,41, - 42,43,44,45,46,47,48,49,50,51, - 52,53,54,55,28,57,58,59,60,61, - 0,63,64,65,88,89,68,69,70,9, - 72,99,74,13,76,77,78,79,80,81, - 82,83,84,85,86,87,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,0,29,30,3,32,33, - 34,35,36,37,38,39,40,41,42,43, - 44,45,46,47,48,49,50,51,52,53, - 54,55,0,57,58,59,60,61,0,63, - 64,65,0,0,68,69,70,0,1,2, - 74,4,76,77,78,79,80,81,82,83, - 84,85,86,87,0,1,2,3,4,5, + 60,61,62,63,0,0,66,0,68,69, + 70,71,0,8,74,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,44,30,31,32, + 33,34,35,36,37,38,39,40,41,42, + 43,66,45,46,47,48,49,50,51,52, + 53,54,55,0,57,58,59,60,61,62, + 63,0,9,66,90,68,69,70,71,0, + 96,74,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,0,29,30,0,32,33,34,35, - 36,37,38,39,40,41,42,43,44,45, + 26,27,28,44,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, - 28,57,58,59,60,61,31,63,64,65, - 88,89,68,69,70,103,104,105,74,101, + 0,57,58,59,60,61,62,63,0,9, + 66,90,68,69,70,71,0,96,74,75, 76,77,78,79,80,81,82,83,84,85, - 86,87,0,1,2,3,4,5,6,7, + 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, + 72,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,0,57,58, + 59,60,61,62,63,0,0,66,11,12, + 69,70,71,95,29,74,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,72,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,0,57,58,59,60,61, + 62,63,0,0,66,90,3,69,70,71, + 0,96,74,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,44,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,99,57,58,59,60,61,62,63,0, + 0,66,90,4,69,70,71,0,96,74, + 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, - 0,29,30,0,32,33,34,35,36,37, - 38,39,40,41,42,43,44,45,46,47, - 48,49,50,51,52,53,54,55,28,57, - 58,59,60,61,0,63,64,65,0,0, - 68,69,70,0,1,2,74,4,76,77, - 78,79,80,81,82,83,84,85,86,87, + 28,72,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,0,57, + 58,59,60,61,62,63,0,0,66,11, + 12,69,70,71,0,8,74,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,72,30, + 31,32,33,34,35,36,37,38,39,40, + 41,42,43,66,45,46,47,48,49,50, + 51,52,53,54,55,0,57,58,59,60, + 61,62,63,0,0,66,11,12,69,70, + 71,95,0,74,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,0,57,58,59,60,61,62,63, + 0,0,66,3,3,69,70,71,95,29, + 74,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,67,45,46, + 47,48,49,50,51,52,53,54,55,0, + 57,58,59,60,61,62,63,0,0,66, + 0,3,69,70,71,8,0,74,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,0,29, - 30,0,32,33,34,35,36,37,38,39, - 40,41,42,43,44,45,46,47,48,49, - 50,51,52,53,54,55,28,57,58,59, - 60,61,31,63,64,65,88,89,68,69, - 70,97,98,0,74,0,76,77,78,79, - 80,81,82,83,84,85,86,87,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,0,29,30,0, - 32,33,34,35,36,37,38,39,40,41, - 42,43,44,45,46,47,48,49,50,51, - 52,53,54,55,28,57,58,59,60,61, - 0,63,64,65,0,0,68,69,70,0, - 1,2,74,8,76,77,78,79,80,81, - 82,83,84,85,86,87,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,0,29,30,0,32,33, - 34,35,36,37,38,39,40,41,42,43, - 44,45,46,47,48,49,50,51,52,53, - 54,55,28,57,58,59,60,61,31,63, - 64,65,88,89,68,69,70,0,1,2, - 74,101,76,77,78,79,80,81,82,83, - 84,85,86,87,0,1,2,3,4,5, - 6,7,8,9,10,11,12,13,14,15, + 20,21,22,23,24,25,26,27,28,0, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,43,64,45,46,47,48,49, + 50,51,52,53,54,55,0,57,58,59, + 60,61,62,63,0,0,66,0,3,69, + 70,71,0,0,74,75,76,77,78,79, + 80,81,82,83,84,85,86,0,1,2, + 3,4,5,6,7,118,9,10,11,12, + 0,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,64,45,46,47,48,49,50,51,52, + 53,54,55,0,0,58,3,3,61,0, + 1,2,8,0,1,2,69,70,71,0, + 1,2,3,4,5,6,7,8,9,10, + 97,98,13,14,15,16,17,18,19,20, + 21,22,23,24,25,121,114,115,116,0, + 1,2,3,4,5,6,7,44,9,56, + 56,101,0,44,45,46,47,48,49,50, + 51,52,53,54,55,0,57,73,59,0, + 61,0,1,2,5,4,0,68,69,70, + 71,72,17,74,0,1,2,3,4,5, + 6,7,8,9,10,56,87,13,14,15, 16,17,18,19,20,21,22,23,24,25, - 26,27,0,29,30,0,32,33,34,35, - 36,37,38,39,40,41,42,43,44,45, + 45,46,47,48,49,50,51,52,53,54, + 55,0,0,114,115,116,4,0,44,45, 46,47,48,49,50,51,52,53,54,55, - 28,57,58,59,60,61,0,63,64,65, - 0,0,68,69,70,0,1,2,74,8, - 76,77,78,79,80,81,82,83,84,85, - 86,87,0,1,2,3,4,5,6,7, - 8,9,10,11,12,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 0,29,30,3,32,33,34,35,36,37, - 38,39,40,41,42,43,44,45,46,47, - 48,49,50,51,52,53,54,55,0,57, - 58,59,60,61,6,63,64,65,88,89, - 68,69,70,97,98,0,74,0,76,77, - 78,79,80,81,82,83,84,85,86,87, - 0,1,2,3,4,5,6,7,8,0, - 10,11,12,4,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,0,29, - 30,0,32,33,34,35,36,37,38,39, - 40,41,42,43,44,45,46,47,48,49, - 50,51,52,53,54,55,0,0,58,91, - 92,61,0,1,2,9,0,5,68,69, - 70,0,1,2,3,4,5,6,7,8, - 9,10,0,0,13,14,15,16,17,18, - 19,20,21,22,23,24,25,0,0,1, - 2,4,31,0,1,2,3,4,5,6, - 7,8,41,0,1,2,60,46,47,48, - 49,50,51,52,53,54,55,99,57,31, - 59,100,61,0,1,2,0,1,2,68, - 69,70,71,72,31,74,75,0,1,2, - 3,4,5,6,7,8,9,10,0,56, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,0,103,104,105,4,31,0, - 1,2,3,4,5,6,7,8,41,0, - 1,2,0,46,47,48,49,50,51,52, - 53,54,55,121,57,122,59,0,61,0, - 0,4,3,0,41,68,69,70,71,72, - 31,74,75,0,1,2,3,4,5,6, - 7,8,9,10,0,28,13,14,15,16, - 17,18,19,20,21,22,23,24,25,0, - 103,104,105,0,31,0,1,2,3,4, - 5,6,7,8,41,56,0,1,2,46, - 47,48,49,50,51,52,53,54,55,0, - 57,28,59,0,61,0,1,2,9,6, - 77,68,69,70,71,72,0,74,75,3, - 90,67,6,0,8,9,96,11,12,13, - 0,56,0,1,2,3,4,5,6,7, - 8,66,26,27,28,0,103,104,105,0, - 1,2,3,4,5,6,7,8,28,14, - 15,16,17,18,19,20,21,22,23,24, - 25,72,56,0,0,1,2,3,62,5, - 0,7,66,67,0,62,41,71,72,73, - 0,46,47,48,49,50,51,52,53,54, - 55,11,12,71,88,89,90,91,92,93, - 94,95,96,97,98,99,100,101,102,0, - 1,2,106,107,108,109,110,111,112,113, - 114,115,116,117,118,0,120,121,3,66, - 56,6,0,8,9,71,11,12,13,0, - 1,2,3,0,5,0,7,0,9,0, - 0,26,27,28,0,1,2,3,9,5, - 90,7,13,9,0,102,96,13,0,60, - 107,108,109,110,111,112,113,114,115,116, - 117,56,0,1,2,0,4,62,6,0, - 8,66,67,61,9,56,71,72,73,0, - 1,2,0,1,2,62,4,62,6,62, - 8,9,73,88,89,90,91,92,93,94, - 95,96,97,98,99,100,101,102,60,0, - 31,106,107,108,109,110,111,112,113,114, - 115,116,117,118,0,120,121,0,1,2, - 3,4,5,6,7,8,67,10,11,12, - 0,14,15,16,100,18,19,20,21,22, - 23,24,25,26,27,73,29,30,0,32, - 33,34,35,36,37,38,39,40,28,42, - 43,44,45,0,1,2,3,95,5,0, - 7,0,9,118,0,58,13,0,1,2, - 0,64,65,0,1,2,3,0,5,9, - 7,74,0,1,2,3,4,5,6,7, - 8,71,10,11,12,0,14,15,16,4, - 18,19,20,21,22,23,24,25,26,27, - 0,29,30,3,32,33,34,35,36,37, - 38,39,40,62,42,43,44,45,67,56, - 66,64,65,0,1,2,3,4,0,6, - 58,8,4,73,62,0,64,65,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,102,14,15,16,95,18,19,20,21, - 22,23,24,25,26,27,117,29,30,0, - 32,33,34,35,36,37,38,39,40,56, - 42,43,44,45,0,1,2,0,4,5, - 3,7,0,0,1,2,58,4,60,6, - 0,8,0,1,2,3,71,5,0,7, - 72,0,1,2,3,4,5,6,7,8, + 0,57,0,59,17,61,4,0,6,97, + 98,9,68,69,70,71,72,0,74,0, + 3,0,3,6,3,8,9,45,11,12, + 13,87,45,46,47,48,49,50,51,52, + 53,54,55,26,27,64,29,0,0,1, + 2,3,4,5,6,7,56,9,114,115, + 116,14,15,16,17,18,19,20,21,22, + 23,24,25,56,0,1,2,56,4,0, + 6,64,65,9,67,68,0,1,2,72, + 73,5,45,46,47,48,49,50,51,52, + 53,54,55,0,0,88,89,90,91,92, + 93,94,95,96,97,98,99,100,101,102, + 103,104,105,106,107,108,109,110,111,112, + 113,0,0,0,117,118,3,120,121,6, + 0,8,9,64,11,12,13,0,17,0, + 1,2,3,4,5,6,7,10,9,26, + 27,29,29,0,1,2,3,4,65,6, + 0,0,9,0,1,2,45,46,47,48, + 49,50,51,52,53,54,55,0,0,56, + 0,1,2,6,4,0,6,64,65,9, + 67,68,0,0,57,72,73,0,1,2, + 3,8,5,0,7,8,13,44,0,56, + 13,88,89,90,91,92,93,94,95,96, + 97,98,99,100,101,102,103,104,105,106, + 107,108,109,110,111,112,113,0,1,2, + 117,118,64,120,121,0,1,2,3,4, + 5,6,7,0,9,10,11,12,65,14, + 15,16,101,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, + 1,2,3,4,5,6,7,0,9,0, + 1,2,3,58,5,8,7,62,63,56, + 13,0,1,2,3,4,5,6,7,74, 9,10,11,12,0,14,15,16,4,18, - 19,20,21,22,23,24,25,26,27,0, - 29,30,3,32,33,34,35,36,37,38, - 39,40,28,42,43,44,45,0,0,0, - 0,1,2,0,4,5,9,7,10,58, - 13,60,9,0,0,1,2,3,4,5, - 6,7,8,72,10,11,12,0,14,15, - 16,31,18,19,20,21,22,23,24,25, - 26,27,0,29,30,0,32,33,34,35, - 36,37,38,39,40,57,42,43,44,45, - 0,62,0,1,2,0,4,5,3,7, - 67,58,58,0,1,2,73,4,64,65, - 0,1,2,3,4,5,6,7,8,62, - 10,11,12,31,14,15,16,0,18,19, - 20,21,22,23,24,25,26,27,0,29, - 30,3,32,33,34,35,36,37,38,39, - 40,56,42,43,44,45,0,1,2,0, - 4,0,6,60,8,90,0,95,58,0, - 4,96,11,12,64,65,0,1,2,3, + 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,1,2,3,0, + 5,72,7,8,0,0,1,2,13,58, + 5,72,7,62,63,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,66,29,30,41,32,33, - 34,35,36,37,38,39,40,28,42,43, - 44,45,0,1,2,3,4,5,6,7, - 8,62,10,11,12,0,14,15,16,0, - 18,19,20,21,22,23,24,25,26,27, - 0,29,30,3,32,33,34,35,36,37, - 38,39,40,28,42,43,44,45,29,103, - 104,105,0,0,1,2,0,4,0,6, - 58,8,60,11,12,0,1,2,3,4, - 5,6,7,8,118,10,11,12,0,14, + 14,15,16,29,18,19,20,21,22,23, + 24,25,26,27,28,65,30,31,32,33, + 34,35,36,37,38,39,40,41,42,43, + 0,1,2,0,0,1,2,0,1,2, + 0,4,8,6,58,8,9,0,1,2, + 10,4,66,0,68,0,1,2,3,4, + 5,6,7,8,9,10,11,12,99,14, 15,16,0,18,19,20,21,22,23,24, - 25,26,27,0,29,30,3,32,33,34, - 35,36,37,38,39,40,28,42,43,44, - 45,0,56,0,56,4,3,0,5,6, - 0,8,0,58,11,12,9,0,0,9, - 13,3,10,13,0,0,1,2,56,26, - 27,28,7,30,0,1,2,3,4,5, - 6,7,8,9,26,27,0,13,0,1, - 2,17,4,0,1,2,3,0,5,56, - 7,0,28,46,47,62,9,64,65,66, - 67,0,1,2,56,41,5,67,7,31, - 46,47,48,49,50,51,52,53,54,55, - 56,88,89,90,91,92,93,94,0,0, - 97,98,99,100,101,102,0,73,9,106, - 107,108,109,110,111,112,113,114,115,116, - 0,0,0,3,106,5,6,66,8,0, - 73,11,12,0,5,0,1,2,120,4, - 5,95,7,0,1,2,26,27,28,28, - 30,0,1,2,3,4,5,6,7,8, - 9,28,0,0,13,0,1,2,17,0, - 5,72,10,67,31,0,56,0,1,2, - 0,0,62,3,64,65,66,67,90,67, - 9,0,41,31,96,4,31,46,47,48, - 49,50,51,52,53,54,55,56,88,89, - 90,91,92,93,94,0,0,97,98,99, - 100,101,102,61,73,56,106,107,108,109, - 110,111,112,113,114,115,116,0,1,2, - 3,4,5,6,7,8,71,10,11,12, - 0,14,15,16,73,18,19,20,21,22, - 23,24,25,26,27,0,29,30,3,32, - 33,34,35,36,37,38,39,40,62,42, - 43,44,45,67,0,1,2,3,4,5, - 6,7,8,56,10,11,12,0,14,15, + 25,26,27,28,44,30,31,32,33,34, + 35,36,37,38,39,40,41,42,43,100, + 66,61,0,0,1,2,4,4,0,0, + 73,8,4,58,61,0,1,2,3,10, + 5,66,7,68,0,1,2,3,4,5, + 6,7,95,9,10,11,12,29,14,15, 16,0,18,19,20,21,22,23,24,25, - 26,27,0,29,30,3,32,33,34,35, - 36,37,38,39,40,0,42,43,44,45, - 0,1,2,0,1,2,3,4,5,6, - 7,8,58,10,11,12,0,14,15,16, - 0,18,19,20,21,22,23,24,25,26, - 27,31,29,30,0,32,33,34,35,36, - 37,38,39,40,0,42,43,44,45,0, - 1,2,3,4,5,6,7,8,0,10, - 11,12,95,14,15,16,71,18,19,20, - 21,22,23,24,25,26,27,0,29,30, - 3,32,33,34,35,36,37,38,39,40, - 56,42,43,44,45,0,1,2,3,4, - 5,6,7,8,60,10,11,12,0,14, - 15,16,0,18,19,20,21,22,23,24, - 25,26,27,0,29,30,0,32,33,34, - 35,36,37,38,39,40,0,42,43,44, - 45,0,1,2,0,4,0,0,1,2, - 0,10,0,1,2,14,15,16,17,18, - 19,20,21,22,23,24,25,0,0,0, - 0,3,0,0,28,67,6,0,66,0, - 3,9,41,0,1,2,60,46,47,48, - 49,50,51,52,53,54,55,28,62,76, - 0,28,61,0,1,2,0,4,62,68, - 69,70,6,10,0,71,66,14,15,16, - 17,18,19,20,21,22,23,24,25,0, - 1,2,3,4,5,6,7,8,9,93, - 94,0,13,0,41,73,17,64,65,46, - 47,48,49,50,51,52,53,54,55,0, - 31,91,92,0,61,0,3,0,9,28, - 0,68,69,70,0,1,2,3,4,5, - 6,7,8,9,0,71,57,13,59,0, - 0,17,63,3,0,28,0,91,92,29, - 0,72,28,62,75,31,0,0,1,2, - 3,4,5,6,7,8,9,28,0,119, - 13,3,0,0,17,60,3,0,0,62, - 0,57,73,59,93,94,9,63,31,0, - 0,0,3,3,0,0,0,0,9,75, + 26,27,28,44,30,31,32,33,34,35, + 36,37,38,39,40,41,42,43,0,66, + 61,56,0,1,2,0,0,1,2,3, + 0,5,58,7,8,10,62,63,0,1, + 2,3,4,5,6,7,0,9,10,11, + 12,0,14,15,16,64,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,56,65,62,63,0,0,1,2, + 0,4,5,3,7,28,58,67,8,73, + 62,63,0,1,2,3,4,5,6,7, + 8,9,10,11,12,29,14,15,16,0, + 18,19,20,21,22,23,24,25,26,27, + 28,44,30,31,32,33,34,35,36,37, + 38,39,40,41,42,43,56,0,1,2, + 0,4,0,6,64,65,9,0,1,2, + 58,4,5,73,7,0,1,2,66,0, + 1,2,3,4,5,6,7,8,9,10, + 11,12,0,14,15,16,0,18,19,20, + 21,22,23,24,25,26,27,28,0,30, + 31,32,33,34,35,36,37,38,39,40, + 41,42,43,0,1,2,3,4,5,6, + 7,0,9,10,11,12,0,14,15,16, + 4,18,19,20,21,22,23,24,25,26, + 27,28,56,30,31,32,33,34,35,36, + 37,38,39,40,41,42,43,0,1,2, + 0,4,5,0,7,67,3,0,5,6, + 0,58,9,0,11,12,0,1,2,0, + 4,8,6,0,102,9,13,118,0,26, + 27,3,29,30,0,0,0,76,4,117, + 102,44,104,105,106,107,108,109,110,111, + 112,113,17,46,47,117,0,1,2,56, + 4,5,0,7,64,62,63,64,65,0, + 67,0,1,2,3,65,5,8,7,45, + 45,46,47,48,49,50,51,52,53,54, + 55,88,89,90,91,92,93,94,0,0, + 97,98,99,100,101,102,103,104,105,106, + 107,108,109,110,111,112,113,0,0,100, + 3,3,5,6,88,89,9,29,11,12, + 0,1,2,3,4,5,6,7,0,9, + 0,3,73,26,27,0,29,30,114,115, + 116,0,1,2,3,56,5,0,7,0, + 1,2,64,4,95,0,1,2,0,0, + 1,2,7,56,5,0,0,1,2,62, + 63,64,65,8,67,0,56,0,0,0, + 0,93,94,8,4,8,0,67,13,3, + 0,1,2,44,64,88,89,90,91,92, + 93,94,67,44,97,98,99,100,101,102, + 103,104,105,106,107,108,109,110,111,112, + 113,0,1,2,3,4,5,6,7,0, + 9,10,11,12,44,14,15,16,73,18, + 19,20,21,22,23,24,25,26,27,28, + 73,30,31,32,33,34,35,36,37,38, + 39,40,41,42,43,0,88,89,3,0, + 1,2,3,4,5,6,7,56,9,10, + 11,12,0,14,15,16,4,18,19,20, + 21,22,23,24,25,26,27,28,119,30, + 31,32,33,34,35,36,37,38,39,40, + 41,42,43,0,0,1,2,3,4,5, + 6,7,0,9,10,11,12,58,14,15, + 16,0,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,1, + 2,3,4,5,6,7,0,9,10,11, + 12,58,14,15,16,0,18,19,20,21, + 22,23,24,25,26,27,28,56,30,31, + 32,33,34,35,36,37,38,39,40,41, + 42,43,0,1,2,3,4,5,6,7, + 67,9,10,11,12,0,14,15,16,0, + 18,19,20,21,22,23,24,25,26,27, + 28,56,30,31,32,33,34,35,36,37, + 38,39,40,41,42,43,0,1,2,0, + 4,0,1,2,88,89,10,0,1,2, + 14,15,16,17,18,19,20,21,22,23, + 24,25,0,0,0,0,0,28,6,64, + 65,6,0,0,0,1,2,0,1,2, + 0,45,46,47,48,49,50,51,52,53, + 54,55,0,29,0,1,2,61,4,0, + 1,2,29,0,10,69,70,71,14,15, + 16,17,18,19,20,21,22,23,24,25, + 0,0,1,2,3,4,5,6,7,8, + 9,65,0,0,13,3,62,63,17,45, + 46,47,48,49,50,51,52,53,54,55, + 29,88,89,91,92,61,91,92,26,27, + 88,89,29,69,70,71,45,46,47,48, + 49,50,51,52,53,54,55,56,0,1, + 2,3,4,5,6,7,8,9,56,0, + 0,13,3,3,73,17,0,1,2,3, + 4,5,6,7,8,9,0,1,2,13, + 0,119,0,17,0,3,0,1,2,0, + 1,2,8,45,46,47,48,49,50,51, + 52,53,54,55,56,103,0,0,0,29, + 44,0,1,2,3,4,5,6,7,8, + 9,73,120,57,13,59,60,0,17,0, + 44,0,0,44,68,8,0,0,0,8, + 29,4,6,0,1,2,3,4,5,6, + 7,8,9,87,0,44,13,73,29,0, + 17,29,8,0,1,2,29,13,57,0, + 59,60,0,1,2,3,4,5,6,7, + 8,9,0,0,0,13,0,44,29,17, + 8,8,65,64,0,68,64,0,87,68, + 57,0,59,60,3,0,0,44,0,0, + 0,68,4,8,8,29,44,8,0,13, + 0,3,93,94,0,93,94,91,92,57, + 87,59,60,64,65,0,0,29,0,29, + 68,0,1,2,3,4,5,6,7,8, + 9,68,0,29,13,73,72,0,17,87, 0,1,2,3,4,5,6,7,8,9, - 93,94,0,13,57,0,59,17,3,0, - 63,0,10,67,9,0,0,0,0,72, - 9,31,75,0,1,2,3,4,5,6, - 7,8,9,31,67,56,13,67,29,72, - 17,62,0,119,0,3,67,57,0,59, - 66,66,73,63,31,119,0,71,71,3, - 0,56,72,61,0,75,0,1,2,3, - 4,5,6,7,8,9,0,0,73,13, - 57,66,59,17,73,0,63,71,3,0, - 0,0,3,0,0,72,0,31,75,0, - 1,2,3,4,5,6,7,8,9,0, - 66,0,13,0,66,0,17,0,0,0, - 0,0,0,57,0,59,66,0,0,63, - 31,0,0,0,0,0,0,0,0,0, - 0,75,0,1,2,3,4,5,6,7, - 8,9,17,0,0,13,57,0,59,17, - 0,0,63,0,0,0,0,0,0,0, - 0,0,0,31,75,0,41,0,17,0, - 0,46,47,48,49,50,51,52,53,54, - 55,0,0,0,17,0,0,0,0,57, - 0,59,41,0,0,63,0,46,47,48, - 49,50,51,52,53,54,55,75,41,0, - 17,0,0,46,47,48,49,50,51,52, - 53,54,55,0,0,0,0,0,0,0, - 0,0,0,0,41,0,0,0,0,46, - 47,48,49,50,51,52,53,54,55,0, + 65,65,75,13,68,0,0,17,73,0, + 0,29,73,3,0,44,0,1,2,3, + 4,5,6,7,8,9,0,0,57,13, + 59,60,0,17,44,29,0,72,29,68, + 0,0,0,3,0,3,122,57,0,59, + 60,3,0,0,67,3,3,0,87,0, + 44,0,1,2,3,4,5,6,7,8, + 9,0,67,57,13,59,60,87,17,65, + 0,0,0,3,3,119,0,0,0,0, + 0,65,0,0,67,0,0,0,0,67, + 0,0,0,87,0,44,0,0,72,0, + 0,29,0,72,28,0,72,0,57,0, + 59,60,0,0,67,0,67,0,0,0, + 0,0,0,0,0,0,0,0,67,0, + 0,0,0,0,0,0,0,0,87,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,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; @@ -1361,299 +1372,300 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TermAction { public final static char termAction[] = {0, - 5190,5171,5153,5153,5153,5153,5153,5153,5153,5181, - 1,1,1,5178,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5190,1, - 1,3479,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1683,1,1432, - 2741,1,138,2928,1,1,126,43,1,1, - 1,5232,5197,1678,5370,5520,1110,3292,3349,2195, - 2929,3175,3067,3264,1473,3240,3769,3221,8,5184, - 5184,5184,5184,5184,5184,5184,5184,5184,5184,5184, - 5184,5184,5184,5184,5184,5184,5184,5184,5184,5184, - 5184,5184,5184,5184,5184,5184,5190,5184,5184,5190, - 5184,5184,5184,5184,5184,5184,5184,5184,5184,5184, - 5184,5184,5184,5184,5184,5184,5184,5184,5184,5184, - 5184,5184,5184,5184,2752,5184,5184,5184,5184,5184, - 402,5184,5184,5184,2548,2595,5184,5184,5184,5093, - 5184,589,5184,5096,5184,5184,5184,5184,5184,5184, - 5184,5184,5184,5184,5184,5184,5190,5171,5153,5153, - 5153,5153,5153,5153,5153,5175,1,1,1,5178, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5190,1,1,2807,1,1, + 5243,5217,5196,5196,5196,5196,5196,5196,5227,5196, + 1,1,1,5221,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,435,1683,1,1432,2741,1,142,2928, - 1,1,130,5190,1,1,1,5190,4804,4801, - 5370,5232,1110,3292,3349,2195,2929,3175,3067,3264, - 1473,3240,3769,3221,5190,5171,5153,5153,5153,5153, - 5153,5153,5153,5175,1,1,1,5178,1,1, + 1,1,1,1,5243,1,1,1,1,1, + 1,1,1,1,1,1,5243,1787,1,2090, + 3103,1,1,1,118,5243,5254,5243,5250,1, + 1,1,43,5255,5425,1229,3329,3645,2218,3340, + 3218,2944,3315,1451,3299,3279,3272,10,5230,5230, + 5230,5230,5230,5230,5230,5230,5230,5230,5230,5230, + 5230,5230,5230,5230,5230,5230,5230,5230,5230,5230, + 5230,5230,5230,5230,5230,5230,5285,5230,5230,5230, + 5230,5230,5230,5230,5230,5230,5230,5230,5230,5230, + 5230,5254,5230,5230,5230,5230,5230,5230,5230,5230, + 5230,5230,5230,138,5230,5230,5230,5230,5230,5230, + 5230,121,2370,5230,4039,5230,5230,5230,5230,55, + 4061,5230,5230,5230,5230,5230,5230,5230,5230,5230, + 5230,5230,5230,5230,8,5233,5233,5233,5233,5233, + 5233,5233,5233,5233,5233,5233,5233,5233,5233,5233, + 5233,5233,5233,5233,5233,5233,5233,5233,5233,5233, + 5233,5233,5233,2759,5233,5233,5233,5233,5233,5233, + 5233,5233,5233,5233,5233,5233,5233,5233,5243,5233, + 5233,5233,5233,5233,5233,5233,5233,5233,5233,5233, + 139,5233,5233,5233,5233,5233,5233,5233,360,2370, + 5233,4039,5233,5233,5233,5233,5243,4061,5233,5233, + 5233,5233,5233,5233,5233,5233,5233,5233,5233,5233, + 5233,5243,5217,5196,5196,5196,5196,5196,5196,5224, + 5196,1,1,1,5221,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,5190,1,1,41,1,1,1,1, + 1912,1,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,125,1787,1, + 2090,3103,1,1,1,120,5243,5254,3444,3419, + 1,1,1,5602,729,5425,1229,3329,3645,2218, + 3340,3218,2944,3315,1451,3299,3279,3272,5243,5217, + 5196,5196,5196,5196,5196,5196,5224,5196,1,1, + 1,5221,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,421,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,140,1,1,1,1,1,1,1, + 1,1,1,1,5243,1787,1,2090,3103,1, + 1,1,119,5243,5254,4039,2856,1,1,1, + 5243,4061,5425,1229,3329,3645,2218,3340,3218,2944, + 3315,1451,3299,3279,3272,5243,5217,5196,5196,5196, + 5196,5196,5196,5224,5196,1,1,1,5221,1, 1,1,1,1,1,1,1,1,1,1, - 2871,1683,1,1432,2741,1,5230,2928,1,1, - 2548,2595,1,1,1,5621,5622,5623,5370,2282, - 1110,3292,3349,2195,2929,3175,3067,3264,1473,3240, - 3769,3221,5190,5171,5153,5153,5153,5153,5153,5153, - 5153,5175,1,1,1,5178,1,1,1,1, + 1,1,1,1,3000,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,425, 1,1,1,1,1,1,1,1,1,1, - 5190,1,1,5190,1,1,1,1,1,1, + 1,591,1787,1,2090,3103,1,1,1,45, + 5243,5254,4039,5287,1,1,1,5243,4061,5425, + 1229,3329,3645,2218,3340,3218,2944,3315,1451,3299, + 3279,3272,5243,5217,5196,5196,5196,5196,5196,5196, + 5224,5196,1,1,1,5221,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,3107,1683, - 1,1432,2741,1,134,2928,1,1,129,5190, - 1,1,1,5190,4804,4801,5370,5232,1110,3292, - 3349,2195,2929,3175,3067,3264,1473,3240,3769,3221, - 5190,5171,5153,5153,5153,5153,5153,5153,5153,5175, - 1,1,1,5178,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5190,1, - 1,53,1,1,1,1,1,1,1,1, + 1,3676,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,5243,1,1,1, + 1,1,1,1,1,1,1,1,127,1787, + 1,2090,3103,1,1,1,1,1,5254,3444, + 3419,1,1,1,5243,5211,5425,1229,3329,3645, + 2218,3340,3218,2944,3315,1451,3299,3279,3272,5243, + 5217,5196,5196,5196,5196,5196,5196,5224,5196,1, + 1,1,5221,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5642,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,3480,1683,1,1432, - 2741,1,2577,2928,1,1,2548,2595,1,1, - 1,2403,2375,5190,5370,5190,1110,3292,3349,2195, - 2929,3175,3067,3264,1473,3240,3769,3221,5190,5171, - 5153,5153,5153,5153,5153,5153,5153,5175,1,1, - 1,5178,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,33,1,1,5190, + 1,1,1,5254,1,1,1,1,1,1, + 1,1,1,1,1,126,1787,1,2090,3103, + 1,1,1,1,5243,5254,3444,3419,1,1, + 1,5604,5243,5425,1229,3329,3645,2218,3340,3218, + 2944,3315,1451,3299,3279,3272,5243,5217,5196,5196, + 5196,5196,5196,5196,5224,5196,1,1,1,5221, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5243,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,4807,1683,1,1432,2741,1, - 143,2928,1,1,128,136,1,1,1,5190, - 5207,5208,5370,2346,1110,3292,3349,2195,2929,3175, - 3067,3264,1473,3240,3769,3221,5190,5171,5153,5153, - 5153,5153,5153,5153,5153,5175,1,1,1,5178, + 5243,1,1,1,1,1,1,1,1,1, + 1,1,5243,1787,1,2090,3103,1,1,1, + 315,5243,5254,3847,624,1,1,1,4140,2599, + 5425,1229,3329,3645,2218,3340,3218,2944,3315,1451, + 3299,3279,3272,5243,5217,5196,5196,5196,5196,5196, + 5196,5224,5196,1,1,1,5221,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,436,1,1,5190,1,1, + 1,1,5243,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1080,1,1, + 1,1,1,1,1,1,1,1,1,5243, + 1787,1,2090,3103,1,1,1,5243,99,5254, + 5243,4880,1,1,1,5247,5243,5425,1229,3329, + 3645,2218,3340,3218,2944,3315,1451,3299,3279,3272, + 5243,3243,1,1,1,1,1,1,3250,1, + 1,1,1,5252,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5243, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,2532,1,1,1,1,1, + 1,1,1,1,1,1,5243,1787,1,2090, + 3103,1,1,1,5243,1,5254,5243,4149,1, + 1,1,436,136,5425,1229,3329,3645,2218,3340, + 3218,2944,3315,1451,3299,3279,3272,45,4847,4844, + 3066,921,3856,3929,2827,5246,3951,782,3907,3885, + 144,5513,5511,5520,5506,5519,5515,5516,5514,5517, + 5518,5521,5512,3995,3973,5268,5243,996,626,906, + 5270,646,4116,800,5271,5269,589,5264,5266,5267, + 5265,2540,5509,5582,5583,5503,5510,5482,5508,5507, + 5504,5505,5483,349,1,1327,1945,3054,5639,5243, + 5262,5263,5046,5243,8649,8649,572,5640,5641,5243, + 5095,5095,234,5091,234,234,234,5099,234,1, + 2427,2399,234,1,1,1,1,1,1,1, + 1,1,1,1,1,4843,5675,5676,5677,347, + 5186,5182,2845,5287,630,1614,2827,5285,5575,1875, + 1875,2306,137,5088,1,1,1,1,1,1, + 1,1,1,1,1,230,815,5049,872,5243, + 1,5243,4847,4844,2883,5287,5243,414,1,1, + 1,234,5506,5653,5243,5095,5095,234,5091,234, + 234,234,5151,234,1,1875,5740,234,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,4810,1683,1,1432,2741,1,2737,2928, - 1,1,2548,2595,1,1,1,5190,4982,4979, - 5370,2282,1110,3292,3349,2195,2929,3175,3067,3264, - 1473,3240,3769,3221,5190,5171,5153,5153,5153,5153, - 5153,5153,5153,5175,1,1,1,5178,1,1, + 5509,5582,5583,5503,5510,5482,5508,5507,5504,5505, + 5483,5243,45,5675,5676,5677,5287,231,5088,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,450,1,1,5190,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 4813,1683,1,1432,2741,1,135,2928,1,1, - 127,137,1,1,1,54,4994,4991,5370,2346, - 1110,3292,3349,2195,2929,3175,3067,3264,1473,3240, - 3769,3221,5190,3203,1,1,1,1,1,1, - 1,5200,1,1,1,5199,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 97,1,1,4837,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,120,1683, - 1,1432,2741,1,3568,2928,1,1,2548,2595, - 1,1,1,2403,2375,5190,5370,5190,1110,3292, - 3349,2195,2929,3175,3067,3264,1473,3240,3769,3221, - 43,4804,4801,3250,728,3815,3888,3232,3910,43, - 775,3866,3844,5232,5458,5456,5465,5451,5464,5460, - 5461,5459,5462,5463,5466,5457,3954,3932,139,5213, - 1053,140,653,722,5215,672,2661,714,5216,5214, - 575,5454,5209,5211,5212,5210,5527,5528,5448,5455, - 5427,5453,5452,5449,5450,5428,5190,5190,1308,3545, - 3037,5585,5190,5207,5208,1804,5190,2648,571,5586, - 5587,5190,5052,5052,232,5048,232,232,232,232, - 5056,1,5190,190,232,1,1,1,1,1, - 1,1,1,1,1,1,1,5190,5190,8322, - 8322,789,5045,345,5143,5139,2709,5232,783,1678, - 3232,5520,1,49,4988,4988,2571,1,1,1, - 1,1,1,1,1,1,1,589,1114,5230, - 905,2315,1,54,4982,4979,292,5207,5208,1, - 1,1,232,413,4985,5599,5686,5190,5052,5052, - 232,5048,232,232,232,232,5056,1,5190,1855, - 232,1,1,1,1,1,1,1,1,1, - 1,1,1,43,5621,5622,5623,5232,5045,5190, - 5143,5139,3709,5232,783,1678,3232,5520,1,41, - 5042,5042,5190,1,1,1,1,1,1,1, - 1,1,1,4800,1114,5187,905,393,1,347, - 116,385,3202,5190,1762,1,1,1,232,413, - 2933,5599,5686,5190,5052,5052,232,5048,232,232, - 232,232,5108,1,162,925,232,1,1,1, - 1,1,1,1,1,1,1,1,1,5190, - 5621,5622,5623,45,5045,367,5081,5077,2709,1, - 783,1,3232,1,1,1855,40,5074,5071,1, - 1,1,1,1,1,1,1,1,1,5190, - 1114,4834,905,5190,1,5190,4994,4991,5198,3398, - 3457,1,1,1,232,412,37,5599,5686,4843, - 3998,1351,4843,5190,4843,4843,4020,4843,4843,4843, - 385,1855,5190,5134,5129,3709,5036,783,5126,3232, - 5123,1132,4843,4843,4843,227,5621,5622,5623,311, - 5134,5129,3709,5036,783,5126,3232,5123,4840,5458, - 5456,5465,5451,5464,5460,5461,5459,5462,5463,5466, - 5457,5197,4843,144,1,5081,5077,3709,4843,783, - 119,3232,4843,4843,454,1988,5454,4843,4843,4843, - 123,5527,5528,5448,5455,5427,5453,5452,5449,5450, - 5428,3001,2976,2071,4843,4843,4843,4843,4843,4843, - 4843,4843,4843,4843,4843,4843,4843,4843,4843,5190, - 5207,5208,4843,4843,4843,4843,4843,4843,4843,4843, - 4843,4843,4843,4843,4843,5190,4843,4843,4846,1813, - 4828,4846,5190,4846,4846,2071,4846,4846,4846,1, - 5081,5077,2709,5190,783,5190,3232,5190,5003,5190, - 5190,4846,4846,4846,1,5081,5077,5099,5200,5102, - 3998,5105,5199,5200,141,2245,4020,5199,5190,3528, - 1771,1729,1687,1645,1603,1561,1519,1477,1435,1393, - 4085,4846,440,1,1,5190,1,4846,4825,511, - 4825,4846,4846,4170,5194,1855,4846,4846,4846,5190, - 5062,5059,1,5039,5039,2015,5036,2017,1678,2025, - 5520,363,5006,4846,4846,4846,4846,4846,4846,4846, - 4846,4846,4846,4846,4846,4846,4846,4846,3397,5190, - 5230,4846,4846,4846,4846,4846,4846,4846,4846,4846, - 4846,4846,4846,4846,5190,4846,4846,5190,1,1, - 1,1,1,1,1,1,872,1,1,1, - 33,1,1,1,2315,1,1,1,1,1, - 1,1,1,1,1,363,1,1,5190,1, - 1,1,1,1,1,1,1,1,925,1, - 1,1,1,1,5081,5077,3709,363,783,144, - 3232,5190,311,5193,293,1,311,5190,5207,5208, - 1,1,1,1,5081,5077,2709,5190,783,363, - 3232,5722,1,4892,4888,3250,4896,3815,3888,3232, - 3910,420,4852,3866,3844,1,4879,4885,4858,386, - 4861,4873,4870,4876,4867,4864,4855,4882,3954,3932, - 1,5213,1053,3482,653,722,5215,672,2661,714, - 5216,5214,575,4304,5209,5211,5212,5210,3104,1855, - 1984,3976,814,345,43,43,2855,5232,5190,1678, - 1308,5520,3159,363,512,5190,43,43,43,4804, - 4801,3250,728,3815,3888,3232,3910,5198,720,3866, - 3844,2245,5458,5456,5465,363,5464,5460,5461,5459, - 5462,5463,5466,5457,3954,3932,4085,5213,1053,5190, - 653,722,5215,672,2661,714,5216,5214,575,1855, - 5209,5211,5212,5210,5190,4804,4801,241,728,783, - 5009,3232,5190,441,43,43,1308,5232,4251,5027, - 5190,5024,1,5081,5077,3709,1892,783,5190,3232, - 5197,43,4804,4801,3250,728,3815,3888,3232,3910, - 5198,720,3866,3844,54,5458,5456,5465,5208,5464, - 5460,5461,5459,5462,5463,5466,5457,3954,3932,5190, - 5213,1053,4412,653,722,5215,672,2661,714,5216, - 5214,575,5208,5209,5211,5212,5210,1,303,5190, - 5190,4804,4801,5190,728,4849,5200,3232,5492,1308, - 5199,4251,5196,528,146,4804,4801,3250,728,3815, - 3888,3232,3910,5197,720,3866,3844,5190,5458,5456, - 5465,993,5464,5460,5461,5459,5462,5463,5466,5457, - 3954,3932,358,5213,1053,118,653,722,5215,672, - 2661,714,5216,5214,575,2750,5209,5211,5212,5210, - 5190,5698,5190,4804,4801,319,728,4849,5120,3232, - 4596,3101,1308,5190,4804,4801,5195,5232,43,43, - 1,4892,4888,3250,4896,3815,3888,3232,3910,5627, - 4852,3866,3844,2058,4879,4885,4858,5190,4861,4873, - 4870,4876,4867,4864,4855,4882,3954,3932,313,5213, - 1053,2694,653,722,5215,672,2661,714,5216,5214, - 575,1855,5209,5211,5212,5210,98,1,1,5190, - 1,125,5030,3152,5030,3998,43,5547,1308,5190, - 5232,4020,3001,2976,43,43,43,4804,4801,3250, - 728,3815,3888,3232,3910,5194,720,3866,3844,54, - 5458,5456,5465,5207,5464,5460,5461,5459,5462,5463, - 5466,5457,3954,3932,1265,5213,1053,1123,653,722, - 5215,672,2661,714,5216,5214,575,5207,5209,5211, - 5212,5210,43,4804,4801,3250,728,3815,3888,3232, - 3910,5641,720,3866,3844,5190,5458,5456,5465,5190, - 5464,5460,5461,5459,5462,5463,5466,5457,3954,3932, - 5190,5213,1053,4414,653,722,5215,672,2661,714, - 5216,5214,575,925,5209,5211,5212,5210,4143,5621, - 5622,5623,124,101,43,43,453,5232,348,5114, - 1308,5111,4251,3001,2976,43,4804,4801,3250,728, - 3815,3888,3232,3910,5193,720,3866,3844,1,5458, - 5456,5465,106,5464,5460,5461,5459,5462,5463,5466, - 5457,3954,3932,5190,5213,1053,4430,653,722,5215, - 672,2661,714,5216,5214,575,925,5209,5211,5212, - 5210,5190,4831,1,1855,1388,641,1,5655,5649, - 5190,5653,303,1308,5647,5648,196,336,81,5200, - 196,4094,5492,5199,5190,42,4819,4816,4622,5678, - 5679,5658,807,5656,33,385,385,5018,385,385, - 5018,385,5018,5021,5258,5259,1,5018,394,4804, - 4801,385,5232,1,5081,5077,5099,1,5102,537, - 5105,370,4807,5527,5528,5659,166,1331,1339,5657, - 5680,5190,5207,5208,3699,385,783,3602,3232,43, - 385,385,385,385,385,385,385,385,385,385, - 5021,5669,5668,5681,5650,5651,5674,5675,117,1, - 5672,5673,5652,5654,5676,5677,362,5021,5168,5682, - 5662,5663,5664,5660,5661,5670,5671,5666,5665,5667, - 5190,5190,291,641,655,5655,5649,1174,5653,5190, - 166,5647,5648,79,2648,5190,4804,4801,794,728, - 783,5549,3232,51,5068,5068,5678,5679,5658,2707, - 5656,36,386,386,5012,386,386,5012,386,5012, - 5015,5117,1,5190,5012,41,5033,5033,386,105, - 5033,5197,5162,3618,5065,424,537,394,5207,5208, - 5190,5190,5659,4617,1331,1339,5657,5680,3998,914, - 5196,5190,386,3069,4020,2131,2817,386,386,386, - 386,386,386,386,386,386,386,5015,5669,5668, - 5681,5650,5651,5674,5675,5190,5190,5672,5673,5652, - 5654,5676,5677,5165,5015,2021,5682,5662,5663,5664, - 5660,5661,5670,5671,5666,5665,5667,43,4804,4801, - 3250,728,3815,3888,3232,3910,2647,720,3866,3844, - 5190,5458,5456,5465,5195,5464,5460,5461,5459,5462, - 5463,5466,5457,3954,3932,5190,5213,1053,4110,653, - 722,5215,672,2661,714,5216,5214,575,3444,5209, - 5211,5212,5210,3104,43,4804,4801,3250,728,3815, - 3888,3232,3910,1649,720,3866,3844,1,5458,5456, - 5465,5190,5464,5460,5461,5459,5462,5463,5466,5457, - 3954,3932,5190,5213,1053,4252,653,722,5215,672, - 2661,714,5216,5214,575,5190,5209,5211,5212,5210, - 5190,5089,5085,43,4804,4801,3638,728,3815,3888, - 3232,3910,1308,720,3866,3844,5190,5458,5456,5465, - 5190,5464,5460,5461,5459,5462,5463,5466,5457,3954, - 3932,5230,5213,1053,321,653,722,5215,672,2661, - 714,5216,5214,575,5190,5209,5211,5212,5210,43, - 4804,4801,3250,728,3815,3888,3232,3910,5190,720, - 3866,3844,4131,5458,5456,5465,5588,5464,5460,5461, - 5459,5462,5463,5466,5457,3954,3932,109,5213,1053, - 4628,653,722,5215,672,2661,714,5216,5214,575, - 1855,5209,5211,5212,5210,43,4804,4801,3250,728, - 3815,3888,3232,3910,3764,720,3866,3844,422,5458, - 5456,5465,368,5464,5460,5461,5459,5462,5463,5466, - 5457,3954,3932,1,5213,1053,5190,653,722,5215, - 672,2661,714,5216,5214,575,5190,5209,5211,5212, - 5210,5190,4804,4801,444,5232,131,5190,7562,7367, - 416,668,5190,7562,7367,5458,5456,5465,5451,5464, - 5460,5461,5459,5462,5463,5466,5457,5190,5190,5190, - 122,3620,1,5190,2512,4526,3568,282,1223,5190, - 5147,5196,5454,5190,4982,4979,2741,5527,5528,5448, - 5455,5427,5453,5452,5449,5450,5428,3806,4083,3837, - 5190,4201,5585,245,4972,4968,121,4976,4822,571, - 5586,5587,3568,668,5190,3188,2158,4959,4965,4938, - 4923,4941,4953,4950,4956,4947,4944,4935,4962,1, - 5153,5153,232,5153,232,232,232,232,5156,2458, - 2431,133,232,5190,4914,5195,8402,3976,814,4908, - 4905,4932,4911,4902,4917,4920,4929,4926,4899,1, - 5150,3545,3037,5190,5585,1,2941,132,524,2512, - 5190,571,5586,5587,1,5153,5153,232,5153,232, - 232,232,232,232,375,2108,3064,232,1432,2, - 5190,8402,2928,4629,5190,2512,517,3545,3037,3607, - 5190,224,2707,4997,5686,5150,445,1,5153,5153, - 232,5153,232,232,232,232,5159,41,5190,3339, - 232,4521,5190,5190,8402,4199,2856,5190,5190,5000, - 310,3064,524,1432,2458,2431,5198,2928,5150,1, - 5190,5190,2855,4563,39,504,5190,5190,341,5686, - 1,5153,5153,232,5153,232,232,232,232,5156, - 2458,2431,1,232,3064,1,1432,8402,2855,1, - 2928,1,5162,3628,5003,502,5190,5190,5190,223, - 168,5150,5686,1,5153,5153,232,5153,232,232, - 232,232,5156,3069,1011,1855,232,4284,2923,5197, - 8402,341,5190,3339,5190,2777,341,3064,5190,1432, - 2886,4569,341,2928,5150,3339,5190,5373,3132,4566, - 506,1855,224,5165,5190,5686,1,5153,5153,232, - 5153,232,232,232,232,232,5190,5190,5006,232, - 3064,4576,1432,8402,168,5190,2928,5372,4611,5190, - 5190,5190,4627,5190,5190,224,5190,5150,5686,1, - 5153,5153,232,5153,232,232,232,232,232,5190, - 2886,5190,232,5190,1942,5190,8402,5190,5190,5190, - 5190,5190,5190,3064,5190,1432,931,5190,5190,2928, - 5150,5190,5190,5190,5190,228,5190,5190,5190,5190, - 5190,5686,1,5153,5153,232,5153,232,232,232, - 232,232,5451,5190,5190,232,3064,5190,1432,8402, - 5190,229,2928,5190,5190,5190,5190,5190,5190,5190, - 5190,5190,5190,5150,5686,5190,5454,230,5451,5190, - 5190,5527,5528,5448,5455,5427,5453,5452,5449,5450, - 5428,5190,5190,5190,5451,5190,5190,5190,5190,3064, - 5190,1432,5454,231,5190,2928,5190,5527,5528,5448, - 5455,5427,5453,5452,5449,5450,5428,5686,5454,5190, - 5451,5190,5190,5527,5528,5448,5455,5427,5453,5452, - 5449,5450,5428,5190,5190,5190,5190,5190,5190,5190, - 5190,5190,5190,5190,5454,5190,5190,5190,5190,5527, - 5528,5448,5455,5427,5453,5452,5449,5450,5428 + 455,815,45,872,5506,1,5287,5243,1614,2427, + 2399,5575,413,1,1,1,234,39,5653,243, + 4886,321,5052,4886,5163,4886,4886,1956,4886,4886, + 4886,5740,5509,5582,5583,5503,5510,5482,5508,5507, + 5504,5505,5483,4886,4886,2575,4886,229,5243,5186, + 5182,578,5287,630,1614,2827,4871,5575,5675,5676, + 5677,5513,5511,5520,5506,5519,5515,5516,5514,5517, + 5518,5521,5512,4886,441,1,1,1875,1,5243, + 4868,4886,4886,4868,4886,4886,5243,5262,5263,4886, + 4886,2883,5509,5582,5583,5503,5510,5482,5508,5507, + 5504,5505,5483,164,5243,4886,4886,4886,4886,4886, + 4886,4886,4886,4886,4886,4886,4886,4886,4886,4886, + 4886,4886,4886,4886,4886,4886,4886,4886,4886,4886, + 4886,232,5243,5243,4886,4886,4889,4886,4886,4889, + 5243,4889,4889,2576,4889,4889,4889,305,5506,313, + 5177,5172,578,5079,630,5169,2827,5547,5166,4889, + 4889,2965,4889,347,45,45,3054,5287,1371,1614, + 5243,145,5575,51,5031,5031,5509,5582,5583,5503, + 5510,5482,5508,5507,5504,5505,5483,5243,5243,4889, + 442,45,45,2686,5287,5243,5070,4889,4889,5067, + 4889,4889,5243,5243,3028,4889,4889,1,5124,5120, + 5142,5253,5145,5243,5148,5253,5252,5028,5243,1875, + 5252,4889,4889,4889,4889,4889,4889,4889,4889,4889, + 4889,4889,4889,4889,4889,4889,4889,4889,4889,4889, + 4889,4889,4889,4889,4889,4889,4889,5243,5025,5022, + 4889,4889,5752,4889,4889,5243,1,1,1,1, + 1,1,1,454,1,1,1,1,4384,1, + 1,1,2306,1,1,1,1,1,1,1, + 1,1,1,1,5243,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5243, + 5177,5172,578,5079,630,5169,2827,403,5166,1, + 5124,5120,578,1,630,5136,2827,1,1,4874, + 5139,1,4935,4931,3066,4939,3856,3929,2827,5776, + 3951,4895,3907,3885,5243,4922,4928,4901,656,4904, + 4916,4913,4919,4910,4907,4898,4925,3995,3973,5268, + 512,996,626,906,5270,646,4116,800,5271,5269, + 589,5264,5266,5267,5265,1,5124,5120,578,141, + 630,2093,2827,313,5243,5243,5262,5263,313,1327, + 630,2093,2827,45,45,513,45,4847,4844,3066, + 921,3856,3929,2827,3481,3951,788,3907,3885,142, + 5513,5511,5520,3131,5519,5515,5516,5514,5517,5518, + 5521,5512,3995,3973,5268,875,996,626,906,5270, + 646,4116,800,5271,5269,589,5264,5266,5267,5265, + 56,5037,5034,5243,5243,5262,5263,1,5082,5082, + 1,5079,5255,1614,1327,365,5575,5243,4847,4844, + 5205,5287,5254,5243,5250,45,4847,4844,3066,921, + 3856,3929,2827,3481,3951,788,3907,3885,591,5513, + 5511,5520,5243,5519,5515,5516,5514,5517,5518,5521, + 5512,3995,3973,5268,3146,996,626,906,5270,646, + 4116,800,5271,5269,589,5264,5266,5267,5265,2339, + 5254,5208,1,5243,4847,4844,388,5287,394,1, + 365,5255,387,1327,3552,1,5124,5120,2845,5205, + 630,5254,2827,5250,148,4847,4844,3066,921,3856, + 3929,2827,365,3951,788,3907,3885,729,5513,5511, + 5520,5243,5519,5515,5516,5514,5517,5518,5521,5512, + 3995,3973,5268,3146,996,626,906,5270,646,4116, + 800,5271,5269,589,5264,5266,5267,5265,364,5254, + 5208,1875,5243,5262,5263,305,1,5124,5120,2845, + 295,630,1327,2827,5046,5547,45,45,1,4935, + 4931,3066,4939,3856,3929,2827,5243,3951,4895,3907, + 3885,5243,4922,4928,4901,5681,4904,4916,4913,4919, + 4910,4907,4898,4925,3995,3973,5268,5243,996,626, + 906,5270,646,4116,800,5271,5269,589,5264,5266, + 5267,5265,1875,2746,4017,739,5243,5243,4847,4844, + 1,921,4892,3054,2827,1318,1327,2005,343,5049, + 45,45,45,4847,4844,3066,921,3856,3929,2827, + 5255,3951,788,3907,3885,3647,5513,5511,5520,5243, + 5519,5515,5516,5514,5517,5518,5521,5512,3995,3973, + 5268,1128,996,626,906,5270,646,4116,800,5271, + 5269,589,5264,5266,5267,5265,1875,100,1,1, + 5243,1,5243,5073,343,343,5073,5243,4847,4844, + 1327,921,630,343,2827,56,5025,5022,5254,45, + 4847,4844,3066,921,3856,3929,2827,5247,3951,788, + 3907,3885,146,5513,5511,5520,350,5519,5515,5516, + 5514,5517,5518,5521,5512,3995,3973,5268,146,996, + 626,906,5270,646,4116,800,5271,5269,589,5264, + 5266,5267,5265,45,4847,4844,3066,921,3856,3929, + 2827,5243,3951,788,3907,3885,5243,5513,5511,5520, + 2621,5519,5515,5516,5514,5517,5518,5521,5512,3995, + 3973,5268,1875,996,626,906,5270,646,4116,800, + 5271,5269,589,5264,5266,5267,5265,5243,4847,4844, + 5243,921,4892,1,2827,1833,557,338,5709,5703, + 293,1327,5707,5243,5701,5702,103,45,45,143, + 5287,5253,5157,5243,2269,5154,5252,5246,5243,5732, + 5733,3516,5712,5710,45,233,128,3480,5287,3332, + 2269,1267,1791,1749,1707,1665,1623,1581,1539,1497, + 1455,1413,5506,5582,5583,3332,5243,4847,4844,773, + 921,630,5243,2827,5695,1780,1829,5713,5734,1, + 5711,1,5124,5120,578,855,630,365,2827,3207, + 5509,5582,5583,5503,5510,5482,5508,5507,5504,5505, + 5483,5723,5722,5735,5704,5705,5728,5729,133,108, + 5726,5727,5706,5708,5730,5731,5736,5716,5717,5718, + 5714,5715,5724,5725,5720,5719,5721,5243,5243,2339, + 557,3517,5709,5703,2704,2796,5707,2536,5701,5702, + 369,5124,5120,2845,1,630,1,2827,5243,1, + 5243,3667,365,5732,5733,372,5712,5710,5675,5676, + 5677,1,5124,5120,5142,4230,5145,5243,5148,395, + 4847,4844,4865,5287,365,44,4862,4859,5243,43, + 5076,5076,937,773,5076,1,294,5262,5263,1780, + 1829,5713,5734,168,5711,1,1875,5243,132,5243, + 5243,2482,2455,5253,1753,5249,5243,1183,5252,3775, + 43,5085,5085,45,4137,5723,5722,5735,5704,5705, + 5728,5729,1225,3099,5726,5727,5706,5708,5730,5731, + 5736,5716,5717,5718,5714,5715,5724,5725,5720,5719, + 5721,45,4847,4844,3066,921,3856,3929,2827,5243, + 3951,788,3907,3885,3396,5513,5511,5520,168,5519, + 5515,5516,5514,5517,5518,5521,5512,3995,3973,5268, + 5248,996,626,906,5270,646,4116,800,5271,5269, + 589,5264,5266,5267,5265,5243,2704,2796,4171,45, + 4847,4844,3066,921,3856,3929,2827,1417,3951,788, + 3907,3885,5243,5513,5511,5520,1795,5519,5515,5516, + 5514,5517,5518,5521,5512,3995,3973,5268,3365,996, + 626,906,5270,646,4116,800,5271,5269,589,5264, + 5266,5267,5265,529,45,4847,4844,3519,921,3856, + 3929,2827,5243,3951,788,3907,3885,1327,5513,5511, + 5520,107,5519,5515,5516,5514,5517,5518,5521,5512, + 3995,3973,5268,370,996,626,906,5270,646,4116, + 800,5271,5269,589,5264,5266,5267,5265,45,4847, + 4844,3066,921,3856,3929,2827,131,3951,788,3907, + 3885,3188,5513,5511,5520,323,5519,5515,5516,5514, + 5517,5518,5521,5512,3995,3973,5268,2042,996,626, + 906,5270,646,4116,800,5271,5269,589,5264,5266, + 5267,5265,45,4847,4844,3066,921,3856,3929,2827, + 1285,3951,788,3907,3885,5243,5513,5511,5520,5243, + 5519,5515,5516,5514,5517,5518,5521,5512,3995,3973, + 5268,1875,996,626,906,5270,646,4116,800,5271, + 5269,589,5264,5266,5267,5265,5243,4847,4844,5243, + 5287,42,5117,5114,2704,2796,638,5243,5037,5034, + 5513,5511,5520,5506,5519,5515,5516,5514,5517,5518, + 5521,5512,122,130,35,124,423,3223,3602,4329, + 2745,3602,129,437,5243,5025,5022,395,5262,5263, + 5243,5509,5582,5583,5503,5510,5482,5508,5507,5504, + 5505,5483,377,4850,247,5015,5011,5639,5019,5243, + 8505,8434,4853,5243,638,572,5640,5641,5002,5008, + 4981,4966,4984,4996,4993,4999,4990,4987,4978,5005, + 5243,35,387,387,5061,387,387,5061,387,5064, + 5061,4325,83,451,5061,2862,4017,739,387,4957, + 4951,4948,4975,4954,4945,4960,4963,4972,4969,4942, + 4850,2704,2796,3579,3493,5639,3579,3493,5313,5314, + 2704,2796,4856,572,5640,5641,387,387,387,387, + 387,387,387,387,387,387,387,5064,38,388, + 388,5055,388,388,5055,388,5058,5055,3153,5243, + 111,5055,4201,4451,5064,388,1,5196,5196,234, + 5196,234,234,234,5199,234,5243,8505,8434,234, + 47,3365,5243,8653,1,3271,5243,5105,5102,53, + 5111,5111,5249,388,388,388,388,388,388,388, + 388,388,388,388,5058,657,5243,5243,5243,4877, + 5193,1,5196,5196,234,5196,234,234,234,234, + 234,5058,796,3092,234,2090,3103,5243,8653,135, + 5285,5243,134,5108,226,5251,123,56,5243,5251, + 2999,5263,3602,1,5196,5196,234,5196,234,234, + 234,5202,234,5740,1,5193,234,5248,2536,387, + 8653,2536,198,5243,5132,5128,5263,198,3092,5243, + 2090,3103,1,5196,5196,234,5196,234,234,234, + 5199,234,1,1,445,234,5243,5193,4883,8653, + 525,5214,1019,5040,192,5250,5043,1,5740,5250, + 3092,284,2090,3103,5190,5243,12,5285,56,1, + 1,225,5262,5249,5237,729,5193,170,5243,8, + 5243,3106,2482,2455,5243,2482,2455,3579,3493,3092, + 5740,2090,3103,3467,2745,5243,518,5262,5243,729, + 226,1,5196,5196,234,5196,234,234,234,5199, + 234,5250,81,2999,234,525,2578,417,8653,5740, + 1,5196,5196,234,5196,234,234,234,234,234, + 4625,8,3648,234,5237,41,5243,8653,5248,5243, + 5243,5160,170,4628,446,5193,1,5196,5196,234, + 5196,234,234,234,234,234,312,505,3092,234, + 2090,3103,503,8653,5193,3569,5243,2130,3848,226, + 5243,5243,5243,3253,5243,4518,5240,3092,5243,2090, + 3103,4610,5243,5243,2181,2577,4623,5243,5740,5243, + 5193,1,5196,5196,234,5196,234,234,234,234, + 234,507,3524,3092,234,2090,3103,5740,8653,3237, + 5243,5243,2,4653,4293,3365,1,5243,5243,5243, + 5243,4416,5243,5243,4446,5243,5243,5243,5243,4620, + 5243,5243,5243,5740,5243,5193,5243,5243,5428,5243, + 5243,43,5243,3030,3074,5243,5427,5243,3092,5243, + 2090,3103,5243,5243,3524,5243,1963,5243,5243,5243, + 5243,5243,5243,5243,5243,5243,5243,5243,933,5243, + 5243,5243,5243,5243,5243,5243,5243,5243,5740 }; }; public final static char termAction[] = TermAction.termAction; @@ -1661,59 +1673,58 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asb { public final static char asb[] = {0, - 631,7,184,1,401,549,549,549,549,1102, - 401,683,683,559,683,535,184,537,185,185, - 185,185,185,185,185,185,185,685,691,696, - 693,700,698,705,703,707,706,708,87,709, - 184,168,42,42,42,42,224,497,14,14, - 680,42,364,271,683,683,14,590,685,271, - 827,41,909,1104,1039,168,683,685,783,783, - 497,184,185,185,185,185,185,185,185,185, - 185,185,185,185,185,185,185,185,185,185, - 185,184,184,184,184,184,184,184,184,184, - 184,184,184,185,271,271,262,168,629,629, - 629,629,319,271,14,14,1100,1028,1039,406, - 1039,414,1039,9,1039,1023,1102,224,364,364, - 14,364,41,184,222,908,271,221,224,223, - 221,271,364,693,693,691,691,691,698,698, - 698,698,696,696,703,700,700,706,705,707, - 1116,708,1100,323,454,436,435,367,1046,1046, - 1102,537,401,401,401,401,224,224,629,628, - 629,680,224,676,274,274,224,418,319,417, - 403,420,554,224,224,224,319,629,185,42, - 689,227,271,1104,224,224,549,223,909,184, - 262,364,724,271,456,458,224,909,184,184, - 184,184,401,401,168,868,676,274,274,418, - 404,418,319,418,554,554,224,319,224,271, - 689,1100,908,1104,224,222,271,440,428,439, - 458,319,222,271,271,271,271,497,497,676, - 675,411,224,274,1116,10,549,321,1016,1106, - 274,411,418,418,444,224,554,411,409,410, - 224,689,690,689,184,227,138,685,1104,735, - 184,437,437,74,74,224,452,1100,790,271, - 224,271,271,676,909,745,420,629,549,221, - 823,1108,218,401,493,69,445,224,411,185, - 224,689,497,185,364,138,735,184,184,458, - 909,271,456,428,735,1081,222,745,745,916, - 290,222,419,419,218,729,1100,542,185,1116, - 82,444,224,1102,1102,224,690,271,364,967, - 458,222,735,730,411,673,870,129,401,10, - 952,745,745,290,222,419,420,1102,1108,218, - 185,185,224,224,224,967,271,967,915,129, - 673,551,1102,411,628,549,422,422,730,420, - 148,494,224,401,224,224,401,960,967,916, - 745,730,81,729,271,1102,224,290,916,290, - 627,627,975,149,1102,224,497,459,960,745, - 184,979,218,730,224,224,290,42,42,975, - 148,1116,185,1116,730,401,401,401,149,401, - 224,95,730,730,224,420,271,270,962,411, - 271,977,224,730,628,140,401,140,1116,149, - 168,168,166,733,168,730,730,973,975,42, - 962,977,730,491,790,271,218,271,166,129, - 401,271,975,410,422,271,271,1094,149,973, - 149,730,129,184,149,146,977,627,420,420, - 1096,184,147,497,730,271,221,149,271,730, - 149 + 762,7,158,1,497,751,751,751,751,1106, + 497,977,977,554,977,47,158,49,159,159, + 159,159,159,159,159,159,159,979,985,990, + 987,994,992,999,997,1001,1000,1002,246,1003, + 158,142,82,82,82,82,198,9,54,54, + 974,82,446,343,977,977,54,585,979,343, + 879,81,963,1108,1043,142,977,979,737,737, + 9,158,159,159,159,159,159,159,159,159, + 159,159,159,159,159,159,159,159,159,159, + 159,158,158,158,158,158,158,158,158,158, + 158,158,158,159,343,343,334,142,624,624, + 624,624,391,343,54,54,1104,1032,1043,454, + 1043,449,1043,451,1043,1027,1106,198,446,446, + 54,446,81,158,196,962,343,195,198,197, + 195,343,446,987,987,985,985,985,992,992, + 992,992,990,990,997,994,994,1000,999,1001, + 1120,1002,1104,405,641,546,545,463,1050,1050, + 1106,49,497,497,497,497,198,198,624,623, + 624,974,198,970,346,198,501,391,395,499, + 454,400,198,198,198,391,624,159,82,983, + 299,343,1108,198,198,751,197,963,158,334, + 446,1018,343,643,645,198,963,158,158,158, + 158,497,497,142,920,970,346,501,500,501, + 391,501,400,400,198,391,198,343,983,1104, + 962,1108,198,196,343,550,538,549,645,391, + 196,343,343,343,343,9,9,970,969,692, + 198,346,1120,452,751,393,849,1110,346,501, + 501,856,198,400,692,690,691,198,983,984, + 983,158,299,297,979,1108,680,158,547,547, + 626,626,198,639,1104,505,343,198,343,343, + 970,963,699,454,624,751,195,757,1112,192, + 497,695,109,857,198,692,159,198,983,9, + 159,446,297,680,158,158,645,963,343,643, + 538,680,1085,196,699,699,202,362,196,501, + 501,192,1023,1104,744,159,1120,634,856,198, + 1106,1106,198,984,343,446,871,645,196,680, + 1024,692,804,924,288,497,452,238,699,699, + 362,196,501,454,1106,1112,192,159,159,198, + 198,198,871,343,871,201,288,804,753,1106, + 692,623,751,457,457,1024,454,122,695,198, + 497,198,198,497,864,871,202,699,1024,633, + 1023,343,1106,198,362,202,362,622,622,922, + 123,1106,198,9,646,864,699,158,811,192, + 1024,198,198,362,82,82,922,122,1120,159, + 1120,1024,121,497,497,497,123,497,198,254, + 1024,1024,198,454,343,342,866,692,343,810, + 198,1024,623,114,497,114,1120,123,142,142, + 140,806,142,1024,1024,877,922,82,866,810, + 1024,678,505,343,192,343,140,288,497,343, + 922,691,808,457,343,343,1098,123,877,123, + 1024,288,158,123,120,810,622,454,454,1100, + 158,121,9,1024,343,195,123,343,1024,123 }; }; public final static char asb[] = Asb.asb; @@ -1721,118 +1732,119 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asr { public final static byte asr[] = {0, - 9,71,118,73,13,67,121,0,4,1, - 2,60,0,32,64,33,34,65,7,35, - 36,37,38,58,39,40,42,43,44,29, - 26,27,8,6,11,12,5,30,62,45, - 3,48,14,15,61,46,16,68,49,17, + 8,72,118,73,13,65,121,0,8,73, + 14,15,31,16,32,33,18,19,20,34, + 21,22,35,36,37,58,38,39,10,23, + 24,25,40,41,42,28,3,26,27,9, + 6,11,12,30,4,43,5,7,1,2, + 63,62,0,31,62,32,33,63,7,34, + 35,36,37,58,38,39,40,41,42,28, + 26,27,9,6,11,12,5,30,64,43, + 3,48,14,15,61,46,16,69,49,17, 18,50,51,19,20,52,53,21,22,54, - 69,55,10,70,23,24,47,25,1,2, - 4,41,0,76,60,62,71,95,73,56, - 3,9,67,13,66,0,62,71,95,67, - 118,73,72,121,14,15,32,64,16,33, - 34,18,19,20,65,35,21,22,36,37, - 38,58,39,40,10,23,24,25,42,43, - 44,29,26,27,11,12,30,45,9,8, - 6,4,13,1,2,7,3,5,0,75, - 103,104,105,31,71,119,122,72,74,76, - 59,57,63,78,80,86,84,77,82,83, - 85,87,60,79,81,13,9,48,61,46, - 68,49,17,50,51,52,53,54,69,55, - 70,41,47,58,64,65,10,33,37,35, - 32,40,15,25,14,21,19,20,22,23, - 18,16,24,42,45,43,44,29,39,34, - 38,26,27,11,12,30,36,8,6,3, - 4,7,5,1,2,0,96,90,11,12, - 91,92,88,89,28,93,94,97,98,99, - 100,101,102,117,71,95,66,107,108,109, - 110,111,112,113,114,115,116,118,72,13, - 121,62,1,2,8,6,4,3,56,67, - 73,9,0,75,57,7,103,104,105,59, - 9,3,8,6,5,71,72,13,74,48, - 14,15,61,46,16,68,49,17,18,50, - 51,19,20,52,53,21,22,54,69,55, - 10,70,23,41,24,47,25,4,1,2, - 31,0,64,65,10,33,37,35,32,40, + 70,55,10,71,23,24,47,25,1,2, + 4,45,0,87,114,115,116,44,72,119, + 122,68,74,75,59,57,60,77,79,85, + 83,76,81,82,84,86,66,78,80,13, + 8,48,61,46,69,49,17,50,51,52, + 53,54,70,55,71,45,47,58,62,63, + 10,32,36,34,31,39,15,25,14,21, + 19,20,22,23,18,16,24,40,43,41, + 42,28,38,33,37,26,27,11,12,30, + 35,9,6,3,4,7,5,1,2,0, + 66,61,46,16,69,49,18,50,51,19, + 20,52,53,21,22,54,70,55,71,23, + 45,24,47,25,15,14,48,8,3,9, + 6,13,59,60,87,17,44,7,1,2, + 5,4,10,57,0,64,72,95,65,118, + 73,68,121,14,15,31,62,16,32,33, + 18,19,20,63,34,21,22,35,36,37, + 58,38,39,10,23,24,25,40,41,42, + 28,26,27,11,12,30,43,8,9,6, + 4,13,1,2,7,3,5,0,96,90, + 11,12,91,92,88,89,29,93,94,97, + 98,99,100,101,102,117,72,95,67,104, + 105,106,107,108,109,110,111,112,113,118, + 68,13,121,64,1,2,9,6,4,3, + 56,65,73,8,0,87,57,7,114,115, + 116,59,8,3,9,6,5,72,68,13, + 74,48,14,15,61,46,16,69,49,17, + 18,50,51,19,20,52,53,21,22,54, + 70,55,10,71,23,45,24,47,25,4, + 1,2,44,0,4,8,72,66,0,1, + 2,8,68,0,62,63,10,32,36,34, + 31,39,15,25,14,21,19,20,22,23, + 18,16,24,40,43,41,42,28,38,33, + 37,5,7,4,3,26,27,9,6,11, + 12,30,35,1,2,118,8,0,44,72, + 4,1,2,66,8,0,64,67,65,1, + 2,0,48,14,15,46,16,49,17,18, + 50,51,19,20,52,7,53,21,22,54, + 55,23,45,24,47,25,1,2,8,56, + 9,6,5,4,73,13,3,0,4,29, + 8,72,66,0,48,14,15,61,46,16, + 69,49,17,18,50,51,19,20,52,53, + 21,22,54,70,55,10,71,23,45,24, + 47,25,1,2,4,95,0,9,6,4, + 5,7,1,2,3,56,64,67,65,8, + 73,95,0,48,14,15,61,46,16,69, + 49,17,18,50,51,19,20,52,53,21, + 22,54,70,55,10,71,23,45,24,47, + 25,1,2,4,63,62,11,12,6,91, + 92,99,9,100,5,30,29,107,108,104, + 105,106,112,111,113,89,88,109,110,97, + 98,93,94,101,102,26,27,90,103,3, + 56,67,65,64,0,75,64,72,95,73, + 66,56,3,8,65,13,67,0,7,5, + 3,56,6,9,95,48,14,15,46,16, + 69,49,17,18,50,51,19,20,52,53, + 21,22,54,70,55,10,71,23,45,24, + 47,25,1,2,4,73,8,61,0,46, + 58,47,8,64,95,67,65,73,0,67, + 65,68,8,0,8,66,65,0,60,48, + 14,15,61,46,16,69,49,87,17,18, + 50,51,19,20,52,57,53,21,22,54, + 70,55,10,71,23,59,45,24,47,25, + 8,3,9,6,68,13,7,4,44,5, + 1,2,0,72,8,56,3,67,65,13, + 29,0,8,66,67,0,8,72,66,75, + 0,14,15,31,62,16,32,33,18,19, + 20,63,7,34,21,22,35,36,37,58, + 38,39,10,23,24,25,40,41,42,1, + 2,3,26,27,9,6,11,12,5,30, + 4,43,74,28,0,76,0,65,13,68, + 62,63,58,26,27,9,6,11,12,30, + 35,3,40,43,41,42,28,38,33,37, 15,25,14,21,19,20,22,23,18,16, - 24,42,45,43,44,29,39,34,38,5, - 7,4,3,26,27,8,6,11,12,30, - 36,1,2,118,9,0,48,14,15,46, - 16,49,17,18,50,51,19,20,52,7, - 53,21,22,54,55,23,41,24,47,25, - 1,2,9,56,8,6,5,4,73,13, - 3,0,4,71,28,60,9,0,66,67, - 72,9,0,31,1,2,4,9,71,60, - 0,62,66,67,1,2,0,8,6,4, - 5,7,1,2,3,56,62,66,67,9, - 73,95,0,41,1,2,4,103,104,105, - 0,7,5,3,56,6,8,95,48,14, - 15,46,16,68,49,17,18,50,51,19, - 20,52,53,21,22,54,69,55,10,70, - 23,41,24,47,25,1,2,4,73,9, - 61,0,9,60,67,0,9,73,14,15, - 32,16,33,34,18,19,20,35,21,22, - 36,37,38,58,39,40,10,23,24,25, - 42,43,44,29,3,26,27,8,6,11, - 12,30,4,45,5,7,1,2,65,64, - 0,71,9,56,3,66,67,13,28,0, - 60,66,0,1,2,9,72,0,48,14, - 15,61,46,16,68,49,17,18,50,51, - 19,20,52,53,21,22,54,69,55,10, - 70,23,41,24,47,25,1,2,4,65, - 64,11,12,6,91,92,99,8,100,5, - 30,28,110,111,107,108,109,115,114,116, - 89,88,112,113,97,98,93,94,101,102, - 26,27,90,106,3,56,66,67,62,0, - 14,15,32,64,16,33,34,18,19,20, - 65,7,35,21,22,36,37,38,58,39, - 40,10,23,24,25,42,43,44,1,2, - 3,26,27,8,6,11,12,5,30,4, - 45,74,29,0,58,46,7,47,5,1, - 2,4,76,60,120,106,26,27,56,3, - 96,90,6,91,92,11,12,89,88,28, - 93,94,97,98,8,99,100,101,62,95, - 73,121,66,107,108,109,110,111,112,113, - 114,115,116,71,118,72,102,117,67,13, - 9,0,77,0,46,58,47,9,62,95, - 66,67,73,0,63,48,14,15,61,46, - 16,68,49,75,17,18,50,51,19,20, - 52,57,53,21,22,54,69,55,10,70, - 23,59,41,24,47,25,9,3,8,6, - 72,13,7,4,31,5,1,2,0,48, - 14,15,61,46,16,68,49,17,18,50, - 51,19,20,52,53,21,22,54,69,55, - 10,70,23,41,24,47,25,1,2,4, - 95,0,60,71,76,0,64,65,26,27, - 8,11,12,5,30,36,3,4,7,42, - 45,43,44,29,39,34,38,15,25,14, - 21,19,20,22,23,18,16,24,10,33, - 37,35,32,40,56,1,2,6,0,61, - 46,16,68,49,18,50,51,19,20,52, - 53,21,22,54,69,55,10,70,23,41, - 24,47,25,15,14,48,9,3,8,13, - 59,57,63,75,17,28,4,6,7,1, - 2,5,31,0,60,61,46,16,68,49, - 18,50,51,19,20,52,53,21,22,54, - 69,55,70,23,41,24,47,25,15,14, - 48,9,3,8,6,13,59,63,75,17, - 31,7,1,2,5,4,10,57,0,46, - 47,76,3,60,71,13,58,9,62,95, - 67,73,66,0,119,0,9,72,64,65, - 58,26,27,8,6,11,12,30,36,3, - 42,45,43,44,29,39,34,38,15,25, - 14,21,19,20,22,23,18,16,24,33, - 37,35,32,40,60,7,1,2,5,4, - 10,0,10,68,61,69,70,15,25,14, - 21,19,20,22,23,18,16,24,76,60, - 71,95,118,72,121,120,96,106,90,26, - 27,11,12,91,92,88,89,28,62,93, - 94,97,98,99,100,101,102,117,66,107, - 108,109,110,111,112,113,114,115,116,67, - 48,46,49,17,50,51,52,53,54,55, - 41,47,13,9,73,3,56,7,5,6, - 8,1,2,4,0,13,9,7,5,3, - 1,2,6,8,4,71,0 + 24,32,36,34,31,39,66,8,7,1, + 2,5,4,10,0,45,1,2,4,114, + 115,116,0,46,47,75,3,72,13,66, + 58,8,64,95,65,73,67,0,62,63, + 26,27,9,11,12,5,30,35,3,4, + 7,40,43,41,42,28,38,33,37,15, + 25,14,21,19,20,22,23,18,16,24, + 10,32,36,34,31,39,56,1,2,6, + 0,119,0,61,46,16,69,49,18,50, + 51,19,20,52,53,21,22,54,70,55, + 10,71,23,45,24,47,25,15,14,48, + 8,3,9,13,59,57,60,87,17,29, + 4,6,7,1,2,5,44,0,58,46, + 7,47,5,1,2,4,75,66,120,103, + 26,27,56,3,96,90,6,91,92,11, + 12,89,88,29,93,94,97,98,9,99, + 100,101,64,95,73,121,67,104,105,106, + 107,108,109,110,111,112,113,72,118,68, + 102,117,65,13,8,0,10,69,61,70, + 71,15,25,14,21,19,20,22,23,18, + 16,24,75,72,95,118,68,66,121,120, + 96,103,90,26,27,11,12,91,92,88, + 89,29,64,93,94,97,98,99,100,101, + 102,117,67,104,105,106,107,108,109,110, + 111,112,113,65,48,46,49,17,50,51, + 52,53,54,55,45,47,13,8,73,3, + 56,7,5,6,9,1,2,4,0,13, + 8,7,5,3,1,2,6,9,4,72, + 0 }; }; public final static byte asr[] = Asr.asr; @@ -1840,59 +1852,58 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasb { public final static char nasb[] = {0, - 190,12,26,12,12,12,12,12,12,177, - 12,12,12,186,12,37,165,72,26,26, - 223,26,26,26,26,26,26,12,12,12, - 12,12,12,12,12,12,12,12,26,12, - 26,200,256,256,256,256,72,145,125,125, - 56,5,97,261,12,12,125,188,12,261, - 26,52,61,12,12,200,12,12,18,18, - 145,165,26,26,26,26,26,26,26,26, - 26,26,26,26,26,26,26,26,26,26, - 26,26,26,26,26,26,26,26,26,26, - 26,26,165,26,261,261,154,1,12,12, - 12,12,41,261,24,24,176,244,245,12, - 245,102,245,15,245,238,10,72,97,97, - 24,97,256,99,210,48,261,209,227,72, - 209,261,97,12,12,12,12,12,12,12, + 202,12,67,12,12,12,12,12,12,212, + 12,12,12,137,12,59,111,43,67,67, + 233,67,67,67,67,67,67,12,12,12, + 12,12,12,12,12,12,12,12,67,12, + 67,151,40,40,40,40,43,17,149,149, + 54,5,97,196,12,12,149,139,12,196, + 67,46,180,12,12,151,12,12,27,27, + 17,111,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,111,67,196,196,183,1,12,12, + 12,12,173,196,35,35,211,259,260,130, + 260,101,260,13,260,253,10,43,97,97, + 35,97,40,20,220,23,196,219,237,43, + 219,196,97,12,12,12,12,12,12,12, 12,12,12,12,12,12,12,12,12,12, - 12,12,176,92,153,13,13,12,12,12, - 10,72,12,12,12,12,104,11,12,12, - 12,34,72,125,125,125,104,125,179,125, - 12,12,125,179,72,11,12,12,26,256, - 125,89,261,12,11,72,12,127,61,26, - 32,97,12,261,133,125,72,61,165,165, - 165,165,12,12,24,12,115,193,193,125, - 125,109,60,109,125,228,11,60,104,261, - 77,34,48,12,227,104,261,12,118,12, - 142,59,104,261,261,261,261,145,145,125, - 115,70,72,221,12,81,12,12,63,247, - 193,70,109,109,111,104,228,70,12,12, - 104,125,138,12,165,34,128,12,12,125, - 26,12,12,13,13,72,117,176,142,261, - 104,261,261,115,61,125,12,12,12,177, - 125,170,120,12,12,177,83,179,70,26, - 228,77,145,26,97,128,115,26,26,125, - 61,261,133,204,125,12,210,214,125,230, - 125,179,125,75,206,221,176,12,26,12, - 85,263,179,177,177,11,138,261,97,125, - 142,210,115,221,70,12,230,248,12,228, - 63,230,214,142,210,75,54,182,120,206, - 26,26,11,179,179,44,261,125,125,170, - 12,12,177,70,12,12,107,107,221,54, - 130,12,179,12,11,11,12,125,44,230, - 125,221,46,12,261,177,179,142,230,125, - 12,12,125,148,182,11,145,259,115,214, - 99,26,120,221,179,81,142,256,256,168, - 162,12,26,12,221,12,12,12,163,12, - 228,219,221,221,228,79,261,261,125,70, - 261,125,81,221,12,87,12,12,12,163, - 158,158,140,12,158,221,221,12,125,256, - 44,65,221,12,256,261,120,261,255,125, - 12,261,168,70,107,261,261,125,163,12, - 163,221,120,165,163,87,65,12,79,79, - 118,26,12,235,221,261,209,163,261,221, - 163 + 12,12,211,92,182,99,99,12,12,12, + 10,43,12,12,12,12,103,11,12,12, + 12,134,43,149,149,103,149,187,149,12, + 130,149,187,43,11,12,12,67,40,149, + 83,196,12,11,43,12,165,180,67,132, + 97,12,196,168,149,43,180,111,111,111, + 111,12,12,35,12,123,158,149,149,63, + 179,63,149,238,11,179,103,196,33,134, + 23,12,237,103,196,12,142,12,116,178, + 103,196,196,196,196,17,17,149,123,52, + 43,200,12,48,12,12,57,266,158,63, + 63,229,103,238,52,12,12,103,149,190, + 12,111,134,166,12,12,149,67,12,12, + 99,99,43,141,211,116,196,103,196,196, + 123,180,149,130,12,12,212,149,205,144, + 12,12,212,192,187,52,67,238,33,17, + 67,97,166,123,67,67,149,180,196,168, + 214,149,12,220,224,149,240,149,187,149, + 86,216,200,211,12,67,12,88,245,187, + 212,212,11,190,196,97,149,116,220,123, + 200,52,12,240,267,12,14,57,240,224, + 116,220,86,75,119,144,216,67,67,11, + 187,187,90,196,149,129,205,12,12,212, + 52,12,12,106,106,200,75,51,12,187, + 12,11,11,12,149,90,240,149,200,81, + 12,196,212,187,116,240,149,12,12,149, + 108,119,11,17,194,123,224,20,66,144, + 200,187,49,116,40,40,176,125,12,67, + 12,200,12,12,12,12,126,12,238,198, + 200,200,238,78,196,196,149,52,196,149, + 49,200,12,73,12,12,12,126,262,262, + 114,12,262,200,200,12,149,40,90,65, + 200,12,40,196,144,196,249,149,12,196, + 176,52,12,106,196,196,149,126,12,126, + 200,144,111,126,73,65,12,78,78,142, + 67,12,155,200,196,219,126,196,200,126 }; }; public final static char nasb[] = Nasb.nasb; @@ -1900,33 +1911,34 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasr { public final static char nasr[] = {0, - 3,13,7,10,149,147,119,146,145,5, - 2,0,71,0,5,1,0,5,2,10, - 7,136,0,44,4,5,7,10,2,13, - 0,94,93,5,55,0,2,7,3,0, - 48,65,0,123,0,178,0,65,135,134, - 0,170,0,156,0,4,186,0,48,2, - 65,0,152,0,13,2,10,7,5,64, - 0,2,43,0,155,0,140,0,59,0, - 103,0,184,0,182,0,111,0,4,172, - 0,13,2,10,7,5,75,0,4,31, - 0,5,43,2,3,0,107,0,108,0, - 5,99,183,0,60,0,33,94,93,63, - 48,7,10,2,4,0,2,112,0,4, - 64,0,23,4,5,89,0,138,0,39, - 176,23,4,0,4,96,0,4,47,39, - 174,0,33,93,94,4,0,4,44,102, - 0,64,47,76,4,39,0,157,0,2, - 63,48,7,10,4,89,5,0,2,61, - 0,166,5,165,0,4,44,167,0,4, - 169,0,4,47,72,99,45,5,0,4, - 44,39,0,94,93,48,63,55,5,7, - 10,2,0,113,4,47,72,0,4,39, - 38,0,5,7,10,13,3,1,0,4, - 47,72,83,0,4,173,0,2,5,119, - 115,116,117,13,86,0,38,48,7,10, - 2,4,154,0,175,4,44,0,44,4, - 33,0,5,99,162,0 + 3,13,7,10,148,146,120,145,144,5, + 2,0,5,1,42,0,4,97,0,4, + 31,0,66,134,133,0,5,2,10,7, + 135,0,139,0,5,7,10,2,13,4, + 45,0,2,44,0,169,0,42,104,0, + 4,65,0,4,187,0,151,0,2,7, + 3,0,109,0,65,42,5,7,10,2, + 13,0,112,0,42,155,0,42,60,0, + 177,0,4,171,0,154,0,183,0,124, + 0,13,2,10,7,5,76,0,67,0, + 5,44,2,3,0,108,0,48,42,173, + 4,39,0,39,175,23,4,0,165,5, + 164,0,61,0,65,39,48,77,4,42, + 0,95,94,5,56,0,4,45,166,0, + 33,95,94,64,49,7,10,2,4,0, + 4,45,39,0,4,172,0,4,48,75, + 102,46,5,0,2,113,0,23,4,5, + 90,0,49,66,0,156,0,49,2,66, + 0,33,94,95,4,0,2,62,0,137, + 0,185,0,45,4,33,0,4,39,38, + 0,4,168,0,2,64,49,7,10,4, + 90,5,0,95,94,49,64,56,5,7, + 10,2,0,114,4,48,75,0,5,102, + 184,0,5,7,10,13,3,1,0,4, + 48,75,84,0,5,102,161,0,45,4, + 174,0,2,5,120,116,117,118,13,87, + 0,4,45,103,0,38,49,7,10,2, + 4,153,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -1934,19 +1946,19 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TerminalIndex { public final static char terminalIndex[] = {0, - 115,116,3,33,15,12,81,11,1,102, - 13,14,121,50,54,62,68,70,76,77, - 88,89,104,107,109,9,10,21,114,16, - 95,57,63,69,86,90,92,96,99,101, - 106,111,112,113,123,56,108,49,66,72, - 75,78,85,91,100,2,79,97,105,4, - 55,22,48,60,80,35,46,65,93,103, - 32,120,119,122,67,98,110,51,52,58, - 59,61,71,73,74,87,94,19,20,8, - 17,18,23,24,34,6,25,26,27,28, - 29,30,82,83,84,7,36,37,38,39, - 40,41,42,43,44,45,31,118,53,5, - 124,64,117 + 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,19,14, + 55,61,67,84,88,90,94,97,99,109, + 110,111,123,93,104,54,106,47,64,70, + 73,76,83,89,98,1,77,95,103,46, + 53,58,78,20,44,121,33,119,63,91, + 101,30,118,122,96,108,49,50,56,57, + 59,69,71,72,85,92,65,17,18,6, + 15,16,21,22,32,4,23,24,25,26, + 27,28,5,34,35,36,37,38,39,40, + 41,42,43,80,81,82,29,117,51,3, + 124,62,116 }; }; public final static char terminalIndex[] = TerminalIndex.terminalIndex; @@ -1954,26 +1966,26 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, - 131,136,138,0,0,137,235,135,0,229, - 134,0,145,133,0,0,144,150,0,0, - 151,160,181,161,162,163,164,165,166,167, - 153,168,127,169,170,0,143,129,132,171, - 0,140,139,154,179,0,0,0,0,0, - 0,0,0,147,157,0,204,0,174,188, - 0,201,205,128,0,0,0,0,0,0, - 206,0,0,177,126,173,0,0,0,0, - 0,0,130,0,0,187,0,0,202,212, - 159,208,209,210,0,0,0,0,220,148, - 207,176,197,0,0,211,0,0,0,240, - 241,149,180,0,190,191,192,193,194,196, - 199,0,0,214,217,219,0,221,0,238, - 0,239,0,141,142,146,0,0,156,158, - 0,172,0,182,183,184,185,186,189,0, - 195,0,198,203,0,215,216,0,223,224, - 226,228,0,232,233,234,236,237,125,0, - 152,155,0,175,0,178,0,200,213,218, - 222,225,227,0,230,231,242,243,0,0, - 0,0,0,0 + 132,137,139,0,0,138,236,136,0,230, + 135,0,146,134,0,0,145,151,0,0, + 152,161,182,162,163,164,165,166,167,168, + 154,169,127,170,171,0,144,129,133,172, + 0,130,141,140,155,180,0,0,0,0, + 0,0,0,0,148,158,0,205,0,175, + 189,0,202,206,128,0,207,0,178,0, + 0,0,0,0,0,126,174,0,0,0, + 0,0,0,131,0,0,188,0,0,203, + 213,160,209,210,211,0,0,0,0,149, + 208,221,177,198,0,0,212,0,0,0, + 241,242,150,181,0,191,192,193,194,195, + 197,200,0,0,215,218,220,0,239,0, + 240,0,142,143,147,0,0,157,159,0, + 173,0,183,184,185,186,187,190,0,196, + 0,199,204,0,216,217,0,222,225,227, + 229,0,233,234,235,237,238,125,0,153, + 156,0,176,0,179,0,201,214,219,0, + 223,224,226,228,0,231,232,243,244,0, + 0,0,0,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -1981,18 +1993,18 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopePrefix { public final static char scopePrefix[] = { - 161,576,595,527,543,554,565,366,271,285, - 307,313,42,296,386,424,169,584,470,20, - 51,71,80,85,90,127,141,197,302,319, - 330,341,277,291,498,27,376,341,603,27, - 219,250,1,14,61,76,106,151,232,324, - 337,346,355,359,442,463,492,519,523,613, - 617,621,97,7,97,151,404,420,433,453, - 511,433,534,550,561,572,209,481,56,56, - 158,224,227,245,266,227,227,56,363,448, - 460,467,158,56,634,110,238,408,116,116, - 238,56,238,395,179,104,446,625,632,625, - 632,65,414,134,134,104,104,255 + 151,566,585,517,533,544,555,356,261,275, + 297,303,42,286,376,414,159,574,460,20, + 51,71,80,85,90,127,187,292,309,320, + 331,267,281,488,27,366,331,593,27,209, + 240,1,14,61,76,106,141,222,314,327, + 336,345,349,432,453,482,509,513,603,607, + 611,97,7,97,141,394,410,423,443,501, + 423,524,540,551,562,199,471,56,56,148, + 214,217,235,256,217,217,56,353,438,450, + 457,148,56,624,110,228,398,116,116,228, + 56,228,385,169,104,436,615,622,615,622, + 65,404,134,104,104,245 }; }; public final static char scopePrefix[] = ScopePrefix.scopePrefix; @@ -2000,18 +2012,18 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeSuffix { public final static char scopeSuffix[] = { - 18,5,5,5,5,5,5,373,132,95, - 132,132,48,282,392,430,175,67,476,25, - 25,25,59,59,95,132,132,202,132,132, - 335,335,282,101,503,38,381,590,608,32, - 213,213,5,18,5,59,95,132,236,328, - 328,328,95,95,132,248,5,5,5,5, - 5,248,236,11,101,155,373,373,373,457, - 503,437,538,538,538,538,213,485,59,59, - 5,5,230,248,5,269,269,353,95,451, - 5,248,5,496,5,113,350,411,119,123, - 241,515,506,398,182,95,95,627,627,629, - 629,67,416,136,146,204,189,257 + 18,5,5,5,5,5,5,363,132,95, + 132,132,48,272,382,420,165,67,466,25, + 25,25,59,59,95,132,192,132,132,325, + 325,272,101,493,38,371,580,598,32,203, + 203,5,18,5,59,95,132,226,318,318, + 318,95,95,132,238,5,5,5,5,5, + 238,226,11,101,145,363,363,363,447,493, + 427,528,528,528,528,203,475,59,59,5, + 5,220,238,5,259,259,343,95,441,5, + 238,5,486,5,113,340,401,119,123,231, + 505,496,388,172,95,95,617,617,619,619, + 67,406,136,194,179,247 }; }; public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; @@ -2019,18 +2031,18 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeLhs { public final static char scopeLhs[] = { - 45,17,17,17,17,17,17,79,85,46, - 69,117,66,52,79,78,45,17,19,3, - 6,9,162,162,128,115,115,45,70,117, - 116,118,53,46,136,131,79,17,17,131, - 95,56,133,82,165,162,128,125,58,116, - 116,118,177,50,59,140,18,17,17,17, - 17,17,12,111,128,125,79,78,78,36, - 136,78,17,17,17,17,95,19,166,162, - 178,93,101,71,57,154,74,118,80,77, - 141,140,170,136,16,128,118,102,126,126, - 55,136,136,79,45,128,73,134,43,134, - 43,165,102,115,115,45,45,56 + 46,17,17,17,17,17,17,80,86,47, + 73,118,70,53,80,79,46,17,19,3, + 6,9,161,161,158,116,46,74,118,117, + 119,54,47,135,130,80,17,17,130,96, + 57,132,83,164,161,158,126,59,117,117, + 119,176,51,60,139,18,17,17,17,17, + 17,12,112,158,126,80,79,79,36,135, + 79,17,17,17,17,96,19,165,161,177, + 94,101,67,58,153,69,119,81,78,140, + 139,169,135,16,158,119,103,127,127,56, + 135,135,80,46,158,68,133,44,133,44, + 164,103,116,46,46,57 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -2038,18 +2050,18 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeLa { public final static byte scopeLa[] = { - 119,73,73,73,73,73,73,73,72,13, - 72,72,62,1,73,122,60,3,73,62, - 62,62,1,1,13,72,72,60,72,72, - 1,1,1,1,4,62,13,1,1,62, - 73,73,73,119,73,1,13,72,1,1, - 1,1,13,13,72,118,73,73,73,73, - 73,118,1,73,1,67,73,73,73,71, - 4,73,62,62,62,62,73,3,1,1, - 73,73,3,118,73,1,1,1,13,71, - 73,118,73,5,73,1,31,66,1,1, - 6,1,31,77,76,13,13,4,4,4, - 4,3,1,9,60,1,1,3 + 119,73,73,73,73,73,73,73,68,13, + 68,68,64,1,73,122,66,3,73,64, + 64,64,1,1,13,68,66,68,68,1, + 1,1,1,4,64,13,1,1,64,73, + 73,73,119,73,1,13,68,1,1,1, + 1,13,13,68,118,73,73,73,73,73, + 118,1,73,1,65,73,73,73,72,4, + 73,64,64,64,64,73,3,1,1,73, + 73,3,118,73,1,1,1,13,72,73, + 118,73,5,73,1,44,67,1,1,6, + 1,44,76,75,13,13,4,4,4,4, + 3,1,66,1,1,3 }; }; public final static byte scopeLa[] = ScopeLa.scopeLa; @@ -2057,18 +2069,18 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeStateSet { public final static char scopeStateSet[] = { - 94,245,245,245,245,245,245,105,85,94, - 82,151,82,97,105,105,94,245,245,178, - 220,221,53,53,78,151,151,94,82,151, - 151,151,97,94,146,46,105,245,245,46, - 138,59,24,105,28,53,78,307,59,151, - 151,151,20,97,31,75,245,245,245,245, - 245,245,240,6,78,307,105,105,105,276, - 146,105,245,245,245,245,138,245,28,53, - 22,138,140,134,59,56,64,151,105,105, - 50,75,149,146,245,78,151,1,151,151, - 118,146,146,105,94,78,11,115,155,115, - 155,28,1,151,151,94,94,59 + 92,242,242,242,242,242,242,102,83,92, + 81,148,81,94,102,102,92,242,242,175, + 217,218,53,53,78,148,92,81,148,148, + 148,94,92,143,46,102,242,242,46,135, + 59,24,102,28,53,78,304,59,148,148, + 148,20,94,31,75,242,242,242,242,242, + 242,237,6,78,304,102,102,102,273,143, + 102,242,242,242,242,135,242,28,53,22, + 135,137,131,59,56,64,148,102,102,50, + 75,146,143,242,78,148,1,148,148,115, + 143,143,102,92,78,11,112,152,112,152, + 28,1,148,92,92,59 }; }; public final static char scopeStateSet[] = ScopeStateSet.scopeStateSet; @@ -2076,70 +2088,69 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeRhs { public final static char scopeRhs[] = {0, - 311,3,58,0,127,0,310,3,119,0, - 127,174,0,127,182,76,0,216,0,252, - 127,28,125,0,22,0,291,127,28,31, - 0,22,55,0,35,133,0,22,55,0, - 0,291,127,28,31,195,0,22,130,0, - 252,127,28,130,0,184,128,0,143,0, - 219,3,289,0,289,0,3,0,127,0, - 252,127,28,133,0,184,128,222,0,184, - 128,41,222,0,184,128,307,41,0,131, - 188,166,128,0,129,0,188,166,128,0, - 135,129,0,170,0,304,127,170,0,127, - 170,0,222,129,0,166,242,0,138,0, - 0,0,136,0,0,0,281,127,9,249, - 0,128,0,249,0,1,0,0,128,0, - 281,127,60,249,0,4,0,0,128,0, - 303,127,60,0,46,128,0,154,3,0, - 127,279,278,127,76,277,170,0,278,127, - 76,277,170,0,215,0,216,0,277,170, - 0,98,0,0,215,0,216,0,203,98, - 0,0,215,0,216,0,278,127,277,170, - 0,215,0,203,0,0,215,0,227,127, - 3,0,127,0,0,0,0,0,227,127, - 3,216,0,224,3,0,212,127,0,208, - 0,188,166,171,0,135,0,166,128,0, - 12,0,0,0,214,56,0,126,0,227, - 127,3,180,0,180,0,3,0,0,127, - 0,0,0,0,0,197,3,0,201,0, - 237,127,60,29,17,0,184,128,57,59, - 0,197,129,0,131,184,128,275,59,0, - 184,128,275,59,0,184,128,66,124,57, - 0,237,127,60,57,0,237,127,60,226, - 57,0,273,127,60,124,68,0,273,127, - 60,68,0,184,128,68,0,136,0,188, - 184,128,242,0,138,0,184,128,242,0, - 188,166,128,10,0,166,128,10,0,95, - 138,0,148,0,266,127,146,0,266,127, - 170,0,162,86,0,296,161,298,299,3, - 83,0,127,173,0,298,299,3,83,0, - 129,0,127,173,0,162,3,77,199,82, - 0,127,129,0,199,82,0,110,3,132, - 127,129,0,225,3,77,0,197,167,0, - 35,171,0,167,0,177,35,171,0,225, - 3,87,0,199,156,225,3,85,0,64, - 173,0,225,3,85,0,127,173,64,173, - 0,297,127,60,0,162,0,214,79,0, - 32,0,162,117,158,0,32,171,0,219, - 3,0,214,56,263,0,162,56,0,177, - 3,293,65,128,0,127,0,0,0,0, - 293,65,128,0,3,147,127,0,0,0, - 0,177,3,36,0,149,0,126,31,166, - 128,0,33,149,0,95,138,33,149,0, - 223,184,128,0,148,33,149,0,177,3, - 40,0,162,3,40,0,162,3,62,177, - 28,32,0,177,28,32,0,22,3,132, - 127,0,162,3,62,177,28,35,0,177, - 28,35,0,162,3,62,177,28,37,0, - 177,28,37,0,162,3,62,177,28,33, - 0,177,28,33,0,219,3,126,188,166, - 128,10,0,126,188,166,128,10,0,138, - 3,0,127,0,219,3,125,171,166,128, - 10,0,171,166,128,10,0,136,3,0, - 127,0,219,3,136,0,219,3,140,0, - 162,56,140,0,258,0,33,0,33,141, - 0,165,0,162,3,0 + 312,3,58,0,127,0,311,3,119,0, + 127,175,0,127,183,75,0,217,0,251, + 127,29,125,0,20,0,290,127,29,44, + 0,20,53,0,33,134,0,20,53,0, + 0,290,127,29,44,198,0,20,131,0, + 251,127,29,130,0,185,128,0,144,0, + 220,3,288,0,288,0,2,0,127,0, + 251,127,29,133,0,185,128,225,0,185, + 128,45,225,0,185,128,308,45,0,131, + 189,167,128,0,129,0,189,167,128,0, + 136,129,0,171,0,304,127,171,0,127, + 171,0,223,129,0,167,243,0,139,0, + 0,0,137,0,0,0,303,127,165,250, + 0,128,0,250,0,130,0,0,128,0, + 302,127,165,0,44,128,0,154,3,0, + 127,278,277,127,75,276,171,0,277,127, + 75,276,171,0,216,0,217,0,276,171, + 0,96,0,0,216,0,217,0,204,96, + 0,0,216,0,217,0,277,127,276,171, + 0,216,0,204,0,0,216,0,228,127, + 3,0,127,0,0,0,0,0,228,127, + 3,217,0,224,3,0,213,127,0,209, + 0,189,167,172,0,136,0,167,128,0, + 10,0,0,0,215,56,0,126,0,228, + 127,3,181,0,181,0,2,0,0,127, + 0,0,0,0,0,192,3,0,202,0, + 238,127,165,28,17,0,185,128,57,59, + 0,198,129,0,131,185,128,274,59,0, + 185,128,274,59,0,185,128,67,124,57, + 0,238,127,165,57,0,238,127,165,227, + 57,0,272,127,165,124,69,0,272,127, + 165,69,0,185,128,69,0,137,0,189, + 185,128,243,0,139,0,185,128,243,0, + 189,167,128,10,0,167,128,10,0,93, + 139,0,149,0,265,127,146,0,265,127, + 171,0,162,85,0,295,161,297,298,3, + 82,0,127,174,0,297,298,3,82,0, + 129,0,127,174,0,162,3,76,200,81, + 0,127,129,0,200,81,0,108,2,133, + 127,129,0,226,3,76,0,192,168,0, + 33,172,0,168,0,178,33,172,0,226, + 3,86,0,200,156,226,3,84,0,62, + 174,0,226,3,84,0,127,174,62,174, + 0,296,127,165,0,162,0,215,78,0, + 30,0,162,117,158,0,30,172,0,220, + 3,0,215,56,262,0,162,56,0,178, + 3,292,63,128,0,127,0,0,0,0, + 292,63,128,0,2,148,127,0,0,0, + 0,178,3,35,0,150,0,126,44,167, + 128,0,31,150,0,93,139,31,150,0, + 223,185,128,0,149,31,150,0,178,3, + 39,0,162,3,39,0,162,3,64,178, + 29,31,0,178,29,31,0,20,2,133, + 127,0,162,3,64,178,29,34,0,178, + 29,34,0,162,3,64,178,29,36,0, + 178,29,36,0,162,3,64,178,29,32, + 0,178,29,32,0,220,3,126,189,167, + 128,10,0,126,189,167,128,10,0,139, + 2,0,127,0,220,3,125,172,167,128, + 10,0,172,167,128,10,0,137,2,0, + 127,0,220,3,136,0,220,3,140,0, + 162,56,140,0,257,0,31,0,31,142, + 0,166,0,162,3,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -2147,37 +2158,37 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeState { public final static char scopeState[] = {0, - 4506,4566,4563,2856,0,1896,2968,1397,2930,0, - 3462,3396,3312,3252,3192,3132,3067,2893,2831,2777, - 0,769,0,2646,1929,736,0,3628,3188,0, - 3462,3396,2892,2843,3312,3252,3192,3132,1110,3067, - 2893,2831,2740,850,0,4555,3104,3176,0,3122, - 2776,0,4526,2647,0,578,4495,0,4419,578, - 4173,3591,4495,3366,4064,4484,4284,2784,3602,3709, - 3026,2709,2634,0,2959,1081,0,4515,4390,3337, - 0,4515,4390,3337,3729,4304,4250,3675,4196,4142, - 4083,3621,0,4515,4390,3337,3729,4304,4250,3675, - 4196,4142,4083,3621,3462,3396,3312,3252,3192,3132, - 3067,2893,2831,0,3159,789,0,2784,4419,1552, - 4173,3591,3068,3026,1426,1384,1207,2759,716,671, - 1165,855,0,1817,1100,583,556,3591,716,3366, - 2709,2634,2855,3124,0,794,655,0,814,0, - 4323,533,2539,0,4269,4102,4076,3748,3694,3488, - 3378,3284,4470,4365,4361,3614,2918,3277,3092,2731, - 3060,2824,2701,2586,1938,1007,0,4269,3802,4102, - 3450,2962,4076,3748,3694,2581,918,3488,3378,3284, - 4090,4470,3634,3430,4365,2933,2817,2648,2577,4361, - 2721,3614,2239,4237,2918,3277,3092,2232,2731,1934, - 3060,2824,783,2701,4323,2586,2539,1938,1007,728, - 3366,4064,4484,4284,2784,4419,3602,2145,578,1119, - 4173,637,3591,3709,3026,2709,4495,2634,622,931, - 2058,993,794,655,4042,2245,2282,589,2315,2403, - 2375,2346,2595,2548,2512,2485,2458,2431,3568,3545, - 3037,3001,2976,4020,3998,3976,3954,3932,3910,3888, - 3866,3844,3815,1053,2661,1942,2195,2158,2108,2071, - 1223,1174,2021,1984,1132,872,1892,1855,817,738, - 683,533,1813,1771,1729,1687,1645,1603,1561,1519, - 1477,1435,1393,1351,1308,1077,1011,951,1265,0 + 4431,4623,4610,4518,0,2513,3649,1172,2976,0, + 3335,3274,3213,3152,3091,3030,2944,2620,2559,2577, + 0,1358,0,1572,1530,1488,0,3237,2578,0, + 3335,3274,1986,1856,3213,3152,3091,3030,1229,2944, + 2620,2559,2780,1220,0,4477,2745,4406,0,3201, + 3193,0,4325,3676,0,1068,4593,0,4503,1068, + 3744,3630,4593,3482,4105,4523,4416,2915,4384,578, + 3469,2845,2775,0,674,673,0,4565,2859,0, + 4565,2859,3769,4329,4288,3712,4233,4192,4137,3657, + 0,4565,2859,3769,4329,4288,3712,4233,4192,4137, + 3657,3335,3274,3213,3152,3091,3030,2944,2620,2559, + 0,2621,656,0,2915,4503,3214,3744,3630,2958, + 3469,3006,4226,1118,2945,2677,2947,862,861,0, + 2913,2843,2614,1935,3630,2677,3482,2845,2775,3054, + 3115,0,796,657,0,739,0,4458,534,2647, + 0,4368,4252,4156,3788,3737,3347,3300,3245,4395, + 4272,4176,3641,3367,3225,3178,2786,3123,3042,2591, + 1957,2586,734,0,4368,4320,4252,4143,3809,4156, + 3788,3737,3718,3662,3347,3300,3245,3565,4395,3560, + 3405,4272,3396,3099,2883,2759,4176,2889,3641,3653, + 3534,3367,3225,3178,2737,2786,1062,3123,3042,630, + 2591,4458,1957,2647,2586,734,921,3482,4105,4523, + 4416,2915,4503,4384,2564,1068,2255,3744,2167,3630, + 578,3469,2845,4593,2775,2079,933,1267,1128,796, + 657,4083,2269,2306,591,2339,2427,2399,2370,2796, + 2704,2536,2509,2482,2455,3602,3579,3493,3444,3419, + 4061,4039,4017,3995,3973,3951,3929,3907,3885,3856, + 996,4116,1963,2218,2181,2130,2093,1285,1225,2042, + 2005,1183,875,1912,1875,818,740,683,534,1833, + 1791,1749,1707,1665,1623,1581,1539,1497,1455,1413, + 1371,1327,1141,1019,953,1080,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2185,59 +2196,58 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface InSymb { public final static char inSymb[] = {0, - 0,292,127,265,40,32,35,37,33,10, - 136,125,133,7,130,4,3,128,36,30, - 5,12,11,6,8,27,26,140,145,148, + 0,291,127,264,39,31,34,36,32,10, + 136,125,133,7,130,4,3,128,35,30, + 5,12,11,6,9,27,26,140,145,148, 147,150,149,152,151,155,153,157,58,158, - 67,3,28,28,28,28,128,3,28,28, - 167,127,56,3,64,65,28,7,125,162, - 64,65,166,165,125,3,124,126,106,120, + 65,3,29,29,29,29,128,3,29,29, + 168,127,56,3,62,63,29,7,125,162, + 62,63,167,166,125,3,124,126,103,120, 3,56,90,96,12,11,92,91,6,94, - 93,62,28,88,89,8,98,97,100,99, - 101,116,115,114,113,112,111,110,109,108, - 107,66,117,102,177,162,167,127,177,177, - 177,177,166,219,127,127,127,267,268,249, - 269,242,270,68,271,272,10,128,56,56, - 127,56,293,3,188,4,177,31,5,128, - 31,219,162,147,147,145,145,145,149,149, + 93,64,29,88,89,9,98,97,100,99, + 101,113,112,111,110,109,108,107,106,105, + 104,67,117,102,178,162,168,127,178,178, + 178,178,167,220,127,127,127,266,267,250, + 268,243,269,69,270,271,10,128,56,56, + 127,56,292,3,189,4,178,44,5,128, + 44,220,162,147,147,145,145,145,149,149, 149,149,148,148,151,150,150,153,152,155, - 162,157,127,56,3,217,216,136,126,125, - 10,128,62,62,62,62,188,171,252,255, - 252,212,128,6,9,60,166,230,128,126, - 125,124,60,128,128,184,166,252,198,3, - 294,167,154,258,188,128,125,184,166,71, - 212,214,158,224,127,3,128,166,3,3, - 3,3,126,125,67,166,127,127,127,126, - 125,127,184,127,60,127,184,166,31,177, - 127,127,4,223,5,31,227,228,146,229, - 127,166,31,162,162,162,162,3,3,6, - 183,281,128,168,222,57,31,195,59,170, - 282,281,127,127,71,188,127,273,124,274, - 188,156,260,263,56,178,4,124,126,156, - 66,224,197,186,180,171,3,127,67,227, - 188,219,219,127,166,60,226,28,31,275, - 277,127,3,180,306,222,41,128,273,66, - 67,127,3,56,162,4,127,66,66,3, - 166,197,127,212,156,126,188,127,60,62, - 28,128,76,127,212,304,127,125,71,284, - 197,67,128,41,307,184,260,219,214,220, - 127,188,127,131,237,17,31,170,63,57, - 59,236,127,127,184,127,278,71,67,212, - 71,66,184,128,128,127,227,220,29,127, - 3,124,57,237,291,31,10,61,131,278, - 60,288,128,289,184,184,58,156,127,127, - 60,266,197,276,29,66,128,67,62,28, - 230,230,279,127,67,184,3,3,127,127, - 3,66,67,156,128,184,127,66,66,127, - 297,81,79,1,162,87,85,83,82,77, - 84,86,80,78,57,76,219,311,220,237, - 154,60,184,226,291,280,119,9,214,71, - 3,3,3,199,3,124,162,124,182,67, - 127,127,226,62,3,225,167,225,299,146, - 77,225,127,303,61,95,310,167,156,197, - 156,298,127,3,156,280,67,230,156,156, - 127,66,199,161,266,162,66,122,296,156, - 156 + 162,157,127,56,3,218,217,136,126,125, + 10,128,64,64,64,64,189,172,251,254, + 251,213,128,6,165,167,231,128,126,125, + 124,165,128,128,185,167,251,199,3,293, + 168,154,257,189,128,125,185,167,72,213, + 215,158,224,127,3,128,167,3,3,3, + 3,126,125,65,167,127,127,126,125,127, + 185,127,165,127,185,167,44,178,127,127, + 4,223,5,44,228,229,146,230,127,167, + 44,162,162,162,162,3,3,6,184,303, + 128,169,225,57,44,198,59,171,305,127, + 127,72,189,127,272,124,273,189,156,259, + 262,56,179,4,124,126,156,67,224,192, + 187,181,172,3,127,65,228,189,220,220, + 127,167,165,227,29,44,274,276,127,3, + 181,307,225,45,128,272,67,65,127,3, + 56,162,4,127,67,67,3,167,192,127, + 213,156,126,189,127,165,64,29,128,75, + 127,213,304,127,125,72,283,192,65,128, + 45,308,185,259,220,215,221,127,189,127, + 131,238,17,44,171,60,57,59,237,127, + 127,185,127,277,72,65,213,72,67,185, + 128,128,127,228,221,28,127,3,124,57, + 238,290,44,10,61,131,277,165,287,128, + 288,185,185,58,156,127,127,165,265,192, + 275,28,67,128,65,64,29,231,231,278, + 127,65,185,3,3,127,127,3,67,65, + 156,128,185,127,67,67,127,296,80,78, + 1,162,8,86,84,82,81,76,83,85, + 79,77,57,75,220,312,221,238,154,165, + 185,227,290,279,119,8,215,72,3,3, + 3,200,3,124,162,124,183,65,127,127, + 227,64,3,226,168,226,298,146,76,226, + 127,302,8,61,95,311,168,156,192,156, + 297,127,3,156,279,65,231,156,156,127, + 67,200,161,265,162,67,122,295,156,156 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2246,10 +2256,8 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Name { public final static String name[] = { "", - "EOC", "[", "(", - "{", ".", ".*", "->", @@ -2362,11 +2370,13 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab "stringlit", "identifier", "Completion", + "EndOfCompletion", "Invalid", "RightBracket", "RightParen", "RightBrace", "SemiColon", + "LeftBrace", "ERROR_TOKEN", "0", "EOF_TOKEN", @@ -2375,6 +2385,7 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab ")", "}", ";", + "{", "declaration", "identifier_token", "expression", @@ -2502,8 +2513,8 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final static int ERROR_SYMBOL = 74, - SCOPE_UBOUND = 117, - SCOPE_SIZE = 118, + SCOPE_UBOUND = 115, + SCOPE_SIZE = 116, MAX_NAME_LENGTH = 37; public final int getErrorSymbol() { return ERROR_SYMBOL; } @@ -2512,20 +2523,20 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 521, + NUM_STATES = 520, NT_OFFSET = 123, - LA_STATE_OFFSET = 5722, + LA_STATE_OFFSET = 5776, MAX_LA = 2147483647, - NUM_RULES = 532, - NUM_NONTERMINALS = 194, - NUM_SYMBOLS = 317, + NUM_RULES = 533, + NUM_NONTERMINALS = 195, + NUM_SYMBOLS = 318, SEGMENT_SIZE = 8192, - START_STATE = 3257, + START_STATE = 3280, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 121, EOLT_SYMBOL = 121, - ACCEPT_ACTION = 4800, - ERROR_ACTION = 5190; + ACCEPT_ACTION = 4843, + ERROR_ACTION = 5243; 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 43f8e7cae3a..27c60971e14 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,87 +15,86 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp; public interface CPPNoCastExpressionParsersym { public final static int - TK_asm = 63, + TK_asm = 60, TK_auto = 48, TK_bool = 14, - TK_break = 78, - TK_case = 79, + TK_break = 77, + TK_case = 78, TK_catch = 119, TK_char = 15, TK_class = 61, TK_const = 46, - TK_const_cast = 32, - TK_continue = 80, - TK_default = 81, - TK_delete = 64, - TK_do = 82, + TK_const_cast = 31, + TK_continue = 79, + TK_default = 80, + TK_delete = 62, + TK_do = 81, TK_double = 16, - TK_dynamic_cast = 33, + TK_dynamic_cast = 32, TK_else = 122, - TK_enum = 68, + TK_enum = 69, TK_explicit = 49, - TK_export = 75, + TK_export = 87, TK_extern = 17, - TK_false = 34, + TK_false = 33, TK_float = 18, - TK_for = 83, + TK_for = 82, TK_friend = 50, - TK_goto = 84, - TK_if = 85, + TK_goto = 83, + TK_if = 84, TK_inline = 51, TK_int = 19, TK_long = 20, TK_mutable = 52, TK_namespace = 57, - TK_new = 65, + TK_new = 63, TK_operator = 7, - TK_private = 103, - TK_protected = 104, - TK_public = 105, + TK_private = 114, + TK_protected = 115, + TK_public = 116, TK_register = 53, - TK_reinterpret_cast = 35, - TK_return = 86, + TK_reinterpret_cast = 34, + TK_return = 85, TK_short = 21, TK_signed = 22, - TK_sizeof = 36, + TK_sizeof = 35, TK_static = 54, - TK_static_cast = 37, - TK_struct = 69, - TK_switch = 87, - TK_template = 31, - TK_this = 38, + TK_static_cast = 36, + TK_struct = 70, + TK_switch = 86, + TK_template = 44, + TK_this = 37, TK_throw = 58, - TK_try = 76, - TK_true = 39, + TK_try = 75, + TK_true = 38, TK_typedef = 55, - TK_typeid = 40, + TK_typeid = 39, TK_typename = 10, - TK_union = 70, + TK_union = 71, TK_unsigned = 23, TK_using = 59, - TK_virtual = 41, + TK_virtual = 45, TK_void = 24, TK_volatile = 47, TK_wchar_t = 25, - TK_while = 77, - TK_integer = 42, - TK_floating = 43, - TK_charconst = 44, - TK_stringlit = 29, + TK_while = 76, + TK_integer = 40, + TK_floating = 41, + TK_charconst = 42, + TK_stringlit = 28, TK_identifier = 1, TK_Completion = 2, - TK_EndOfCompletion = 9, + TK_EndOfCompletion = 8, TK_Invalid = 123, TK_LeftBracket = 56, TK_LeftParen = 3, - TK_LeftBrace = 60, TK_Dot = 120, TK_DotStar = 96, - TK_Arrow = 106, + TK_Arrow = 103, TK_ArrowStar = 90, TK_PlusPlus = 26, TK_MinusMinus = 27, - TK_And = 8, + TK_And = 9, TK_Star = 6, TK_Plus = 11, TK_Minus = 12, @@ -105,8 +104,8 @@ public interface CPPNoCastExpressionParsersym { TK_Percent = 92, TK_RightShift = 88, TK_LeftShift = 89, - TK_LT = 28, - TK_GT = 62, + TK_LT = 29, + TK_GT = 64, TK_LE = 93, TK_GE = 94, TK_EQ = 97, @@ -116,27 +115,28 @@ public interface CPPNoCastExpressionParsersym { TK_AndAnd = 101, TK_OrOr = 102, TK_Question = 117, - TK_Colon = 71, + TK_Colon = 72, TK_ColonColon = 4, TK_DotDotDot = 95, - TK_Assign = 66, - TK_StarAssign = 107, - TK_SlashAssign = 108, - TK_PercentAssign = 109, - TK_PlusAssign = 110, - TK_MinusAssign = 111, - TK_RightShiftAssign = 112, - TK_LeftShiftAssign = 113, - TK_AndAssign = 114, - TK_CaretAssign = 115, - TK_OrAssign = 116, - TK_Comma = 67, + TK_Assign = 67, + TK_StarAssign = 104, + TK_SlashAssign = 105, + TK_PercentAssign = 106, + TK_PlusAssign = 107, + TK_MinusAssign = 108, + TK_RightShiftAssign = 109, + TK_LeftShiftAssign = 110, + TK_AndAssign = 111, + TK_CaretAssign = 112, + TK_OrAssign = 113, + TK_Comma = 65, TK_RightBracket = 118, TK_RightParen = 73, - TK_RightBrace = 72, + TK_RightBrace = 68, TK_SemiColon = 13, + TK_LeftBrace = 66, TK_ERROR_TOKEN = 74, - TK_0 = 45, + TK_0 = 43, TK_EOF_TOKEN = 121; public final static String orderedTerminalSymbols[] = { @@ -148,8 +148,8 @@ public interface CPPNoCastExpressionParsersym { "Tilde", "Star", "operator", - "And", "EndOfCompletion", + "And", "typename", "Plus", "Minus", @@ -168,10 +168,9 @@ public interface CPPNoCastExpressionParsersym { "wchar_t", "PlusPlus", "MinusMinus", - "LT", "stringlit", + "LT", "Bang", - "template", "const_cast", "dynamic_cast", "false", @@ -181,11 +180,12 @@ public interface CPPNoCastExpressionParsersym { "this", "true", "typeid", - "virtual", "integer", "floating", "charconst", "0", + "template", + "virtual", "const", "volatile", "auto", @@ -200,22 +200,21 @@ public interface CPPNoCastExpressionParsersym { "namespace", "throw", "using", - "LeftBrace", - "class", - "GT", "asm", + "class", "delete", "new", - "Assign", + "GT", "Comma", + "LeftBrace", + "Assign", + "RightBrace", "enum", "struct", "union", "Colon", - "RightBrace", "RightParen", "ERROR_TOKEN", - "export", "try", "while", "break", @@ -228,6 +227,7 @@ public interface CPPNoCastExpressionParsersym { "if", "return", "switch", + "export", "RightShift", "LeftShift", "ArrowStar", @@ -243,9 +243,6 @@ public interface CPPNoCastExpressionParsersym { "Or", "AndAnd", "OrOr", - "private", - "protected", - "public", "Arrow", "StarAssign", "SlashAssign", @@ -257,6 +254,9 @@ public interface CPPNoCastExpressionParsersym { "AndAssign", "CaretAssign", "OrAssign", + "private", + "protected", + "public", "Question", "RightBracket", "catch", 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 571d02b67ff..256efc06acc 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 @@ -267,1997 +267,1990 @@ public CPPNoFunctionDeclaratorParser(String[] mapFrom) { // constructor } // - // Rule 11: translation_unit ::= external_declaration_list + // Rule 13: translation_unit ::= external_declaration_list // - case 11: { action.builder. + case 13: { action.builder. consumeTranslationUnit(); break; } // - // Rule 12: translation_unit ::= $Empty + // Rule 14: translation_unit ::= $Empty // - case 12: { action.builder. + case 14: { action.builder. consumeTranslationUnit(); break; } // - // Rule 16: external_declaration ::= ERROR_TOKEN + // Rule 18: external_declaration ::= ERROR_TOKEN // - case 16: { action.builder. + case 18: { action.builder. consumeDeclarationProblem(); break; } // - // Rule 19: literal ::= integer - // - case 19: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; - } - - // - // Rule 20: literal ::= 0 - // - case 20: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; - } - - // - // Rule 21: literal ::= floating + // 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 22: literal ::= charconst + // Rule 24: literal ::= charconst // - case 22: { action.builder. + case 24: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_char_constant); break; } // - // Rule 23: literal ::= stringlit + // Rule 25: literal ::= stringlit // - case 23: { action.builder. + case 25: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_string_literal); break; } // - // Rule 24: literal ::= true + // Rule 26: literal ::= true // - case 24: { action.builder. + case 26: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_true); break; } // - // Rule 25: literal ::= false + // Rule 27: literal ::= false // - case 25: { action.builder. + case 27: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_false); break; } // - // Rule 26: literal ::= this + // Rule 28: literal ::= this // - case 26: { action.builder. + case 28: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_this); break; } // - // Rule 28: primary_expression ::= ( expression ) + // Rule 30: primary_expression ::= ( expression ) // - case 28: { action.builder. + case 30: { action.builder. consumeExpressionBracketed(); break; } // - // Rule 30: id_expression ::= qualified_or_unqualified_name + // Rule 32: id_expression ::= qualified_or_unqualified_name // - case 30: { action.builder. + case 32: { action.builder. consumeExpressionName(); break; } // - // Rule 37: unqualified_id_name ::= ~ identifier_token + // Rule 39: unqualified_id_name ::= ~ identifier_token // - case 37: { action.builder. + case 39: { action.builder. consumeDestructorName(); break; } // - // Rule 38: unqualified_id_name ::= ~ template_id_name + // Rule 40: unqualified_id_name ::= ~ template_id_name // - case 38: { action.builder. + case 40: { action.builder. consumeDestructorNameTemplateId(); break; } // - // Rule 39: identifier_name ::= identifier_token + // Rule 41: identifier_name ::= identifier_token // - case 39: { action.builder. + case 41: { action.builder. consumeIdentifierName(); break; } // - // Rule 40: template_opt ::= template + // Rule 42: template_opt ::= template // - case 40: { action.builder. + case 42: { action.builder. consumePlaceHolder(); break; } // - // Rule 41: template_opt ::= $Empty - // - case 41: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 42: dcolon_opt ::= :: - // - case 42: { action.builder. - consumeToken(); break; - } - - // - // Rule 43: dcolon_opt ::= $Empty + // Rule 43: template_opt ::= $Empty // case 43: { action.builder. consumeEmpty(); break; } // - // Rule 44: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name + // Rule 44: dcolon_opt ::= :: // case 44: { action.builder. + consumeToken(); break; + } + + // + // Rule 45: dcolon_opt ::= $Empty + // + case 45: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 46: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name + // + case 46: { action.builder. consumeQualifiedId(true); break; } // - // Rule 45: qualified_id_name ::= :: identifier_name - // - case 45: { action.builder. - consumeGlobalQualifiedId(); break; - } - - // - // Rule 46: qualified_id_name ::= :: operator_function_id_name - // - case 46: { action.builder. - consumeGlobalQualifiedId(); break; - } - - // - // Rule 47: qualified_id_name ::= :: template_id_name + // Rule 47: qualified_id_name ::= :: identifier_name // case 47: { action.builder. consumeGlobalQualifiedId(); break; } // - // Rule 48: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template + // Rule 48: qualified_id_name ::= :: operator_function_id_name // case 48: { action.builder. - consumeNestedNameSpecifier(true); break; + consumeGlobalQualifiedId(); break; } // - // Rule 49: nested_name_specifier ::= class_or_namespace_name :: + // Rule 49: qualified_id_name ::= :: template_id_name // case 49: { action.builder. - consumeNestedNameSpecifier(false); break; + consumeGlobalQualifiedId(); break; } // - // Rule 50: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template + // Rule 50: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template // case 50: { action.builder. consumeNestedNameSpecifier(true); break; } // - // Rule 51: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: + // Rule 51: nested_name_specifier ::= class_or_namespace_name :: // case 51: { action.builder. consumeNestedNameSpecifier(false); break; } // - // Rule 52: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name + // Rule 52: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template // case 52: { action.builder. + consumeNestedNameSpecifier(true); break; + } + + // + // Rule 53: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: + // + case 53: { action.builder. + consumeNestedNameSpecifier(false); break; + } + + // + // Rule 54: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name + // + case 54: { action.builder. consumeNameWithTemplateKeyword(); break; } // - // Rule 54: nested_name_specifier_opt ::= $Empty + // Rule 56: nested_name_specifier_opt ::= $Empty // - case 54: { action.builder. + case 56: { action.builder. consumeNestedNameSpecifierEmpty(); break; } // - // Rule 57: postfix_expression ::= postfix_expression [ expression ] + // Rule 59: postfix_expression ::= postfix_expression [ expression ] // - case 57: { action.builder. + case 59: { action.builder. consumeExpressionArraySubscript(); break; } // - // Rule 58: postfix_expression ::= postfix_expression ( expression_list_opt ) + // Rule 60: postfix_expression ::= postfix_expression ( expression_list_opt ) // - case 58: { action.builder. + case 60: { action.builder. consumeExpressionFunctionCall(); break; } // - // Rule 59: postfix_expression ::= simple_type_specifier ( expression_list_opt ) + // Rule 61: postfix_expression ::= simple_type_specifier ( expression_list_opt ) // - case 59: { action.builder. + case 61: { action.builder. consumeExpressionSimpleTypeConstructor(); break; } // - // Rule 60: postfix_expression ::= typename dcolon_opt nested_name_specifier identifier_name ( expression_list_opt ) - // - case 60: { action.builder. - consumeExpressionTypeName(); break; - } - - // - // Rule 61: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) - // - case 61: { action.builder. - consumeExpressionTypeName(); break; - } - - // - // Rule 62: postfix_expression ::= postfix_expression . qualified_or_unqualified_name + // Rule 62: postfix_expression ::= typename dcolon_opt nested_name_specifier identifier_name ( expression_list_opt ) // case 62: { action.builder. + consumeExpressionTypeName(); break; + } + + // + // Rule 63: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) + // + case 63: { action.builder. + consumeExpressionTypeName(); break; + } + + // + // Rule 64: postfix_expression ::= postfix_expression . qualified_or_unqualified_name + // + case 64: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 63: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name + // Rule 65: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name // - case 63: { action.builder. + case 65: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 64: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name + // Rule 66: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name // - case 64: { action.builder. + case 66: { action.builder. consumeExpressionFieldReference(false, true); break; } // - // Rule 65: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name + // Rule 67: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name // - case 65: { action.builder. + case 67: { action.builder. consumeExpressionFieldReference(true, true); break; } // - // Rule 66: postfix_expression ::= postfix_expression . pseudo_destructor_name + // Rule 68: postfix_expression ::= postfix_expression . pseudo_destructor_name // - case 66: { action.builder. + case 68: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 67: postfix_expression ::= postfix_expression -> pseudo_destructor_name + // Rule 69: postfix_expression ::= postfix_expression -> pseudo_destructor_name // - case 67: { action.builder. + case 69: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 68: postfix_expression ::= postfix_expression ++ + // Rule 70: postfix_expression ::= postfix_expression ++ // - case 68: { action.builder. + case 70: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; } // - // Rule 69: postfix_expression ::= postfix_expression -- + // Rule 71: postfix_expression ::= postfix_expression -- // - case 69: { action.builder. + case 71: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; } // - // Rule 70: postfix_expression ::= dynamic_cast < type_id > ( expression ) + // Rule 72: postfix_expression ::= dynamic_cast < type_id > ( expression ) // - case 70: { action.builder. + case 72: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); break; } // - // Rule 71: postfix_expression ::= static_cast < type_id > ( expression ) + // Rule 73: postfix_expression ::= static_cast < type_id > ( expression ) // - case 71: { action.builder. + case 73: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_static_cast); break; } // - // Rule 72: postfix_expression ::= reinterpret_cast < type_id > ( expression ) + // Rule 74: postfix_expression ::= reinterpret_cast < type_id > ( expression ) // - case 72: { action.builder. + case 74: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); break; } // - // Rule 73: postfix_expression ::= const_cast < type_id > ( expression ) + // Rule 75: postfix_expression ::= const_cast < type_id > ( expression ) // - case 73: { action.builder. + case 75: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_const_cast); break; } // - // Rule 74: postfix_expression ::= typeid ( expression ) + // Rule 76: postfix_expression ::= typeid ( expression ) // - case 74: { action.builder. + case 76: { action.builder. consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break; } // - // Rule 75: postfix_expression ::= typeid ( type_id ) + // Rule 77: postfix_expression ::= typeid ( type_id ) // - case 75: { action.builder. + case 77: { action.builder. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid); break; } // - // Rule 76: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name - // - case 76: { action.builder. - consumePsudoDestructorName(true); break; - } - - // - // Rule 77: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name - // - case 77: { action.builder. - consumePsudoDestructorName(true); break; - } - - // - // Rule 78: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name + // Rule 78: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name // case 78: { action.builder. + consumePsudoDestructorName(true); break; + } + + // + // Rule 79: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name + // + case 79: { action.builder. + consumePsudoDestructorName(true); break; + } + + // + // Rule 80: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name + // + case 80: { action.builder. consumePsudoDestructorName(false); break; } // - // Rule 79: destructor_type_name ::= ~ identifier_token + // Rule 81: destructor_type_name ::= ~ identifier_token // - case 79: { action.builder. + case 81: { action.builder. consumeDestructorName(); break; } // - // Rule 80: destructor_type_name ::= ~ template_id_name + // Rule 82: destructor_type_name ::= ~ template_id_name // - case 80: { action.builder. + case 82: { action.builder. consumeDestructorNameTemplateId(); break; } // - // Rule 84: unary_expression ::= ++ cast_expression + // Rule 86: unary_expression ::= ++ cast_expression // - case 84: { action.builder. + case 86: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; } // - // Rule 85: unary_expression ::= -- cast_expression + // Rule 87: unary_expression ::= -- cast_expression // - case 85: { action.builder. + case 87: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; } // - // Rule 86: unary_expression ::= & cast_expression + // Rule 88: unary_expression ::= & cast_expression // - case 86: { action.builder. + case 88: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; } // - // Rule 87: unary_expression ::= * cast_expression + // Rule 89: unary_expression ::= * cast_expression // - case 87: { action.builder. + case 89: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; } // - // Rule 88: unary_expression ::= + cast_expression + // Rule 90: unary_expression ::= + cast_expression // - case 88: { action.builder. + case 90: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; } // - // Rule 89: unary_expression ::= - cast_expression + // Rule 91: unary_expression ::= - cast_expression // - case 89: { action.builder. + case 91: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; } // - // Rule 90: unary_expression ::= ~ cast_expression + // Rule 92: unary_expression ::= ~ cast_expression // - case 90: { action.builder. + case 92: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; } // - // Rule 91: unary_expression ::= ! cast_expression + // Rule 93: unary_expression ::= ! cast_expression // - case 91: { action.builder. + case 93: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; } // - // Rule 92: unary_expression ::= sizeof unary_expression + // Rule 94: unary_expression ::= sizeof unary_expression // - case 92: { action.builder. + case 94: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; } // - // Rule 93: unary_expression ::= sizeof ( type_id ) + // Rule 95: unary_expression ::= sizeof ( type_id ) // - case 93: { action.builder. + case 95: { 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 96: new_expression ::= dcolon_opt new new_placement_opt new_type_id new_array_expressions_opt new_initializer_opt // - case 94: { action.builder. + case 96: { 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 97: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_array_expressions_opt new_initializer_opt // - case 95: { action.builder. + case 97: { action.builder. consumeExpressionNew(false); break; } // - // Rule 97: new_placement_opt ::= $Empty + // Rule 99: new_placement_opt ::= $Empty // - case 97: { action.builder. + case 99: { action.builder. consumeEmpty(); break; } // - // Rule 98: new_type_id ::= type_specifier_seq + // Rule 100: new_type_id ::= type_specifier_seq // - case 98: { action.builder. + case 100: { action.builder. consumeTypeId(false); break; } // - // Rule 99: new_type_id ::= type_specifier_seq new_declarator + // Rule 101: new_type_id ::= type_specifier_seq new_declarator // - case 99: { action.builder. + case 101: { action.builder. consumeTypeId(true); break; } // - // Rule 100: new_declarator ::= new_pointer_operators + // Rule 102: new_declarator ::= new_pointer_operators // - case 100: { action.builder. + case 102: { action.builder. consumeNewDeclarator(); break; } // - // Rule 109: new_initializer_opt ::= $Empty + // Rule 111: new_initializer_opt ::= $Empty // - case 109: { action.builder. + case 111: { action.builder. consumeEmpty(); break; } // - // Rule 110: delete_expression ::= dcolon_opt delete cast_expression + // Rule 112: delete_expression ::= dcolon_opt delete cast_expression // - case 110: { action.builder. + case 112: { action.builder. consumeExpressionDelete(false); break; } // - // Rule 111: delete_expression ::= dcolon_opt delete [ ] cast_expression + // Rule 113: delete_expression ::= dcolon_opt delete [ ] cast_expression // - case 111: { action.builder. + case 113: { action.builder. consumeExpressionDelete(true); break; } // - // Rule 113: cast_expression ::= ( type_id ) cast_expression + // Rule 115: cast_expression ::= ( type_id ) cast_expression // - case 113: { action.builder. + case 115: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_cast); break; } // - // Rule 115: pm_expression ::= pm_expression .* cast_expression + // Rule 117: pm_expression ::= pm_expression .* cast_expression // - case 115: { action.builder. + case 117: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot); break; } // - // Rule 116: pm_expression ::= pm_expression ->* cast_expression + // Rule 118: pm_expression ::= pm_expression ->* cast_expression // - case 116: { action.builder. + case 118: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow); break; } // - // Rule 118: multiplicative_expression ::= multiplicative_expression * pm_expression + // Rule 120: multiplicative_expression ::= multiplicative_expression * pm_expression // - case 118: { action.builder. + case 120: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply); break; } // - // Rule 119: multiplicative_expression ::= multiplicative_expression / pm_expression + // Rule 121: multiplicative_expression ::= multiplicative_expression / pm_expression // - case 119: { action.builder. + case 121: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide); break; } // - // Rule 120: multiplicative_expression ::= multiplicative_expression % pm_expression + // Rule 122: multiplicative_expression ::= multiplicative_expression % pm_expression // - case 120: { action.builder. + case 122: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo); break; } // - // Rule 122: additive_expression ::= additive_expression + multiplicative_expression + // Rule 124: additive_expression ::= additive_expression + multiplicative_expression // - case 122: { action.builder. + case 124: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus); break; } // - // Rule 123: additive_expression ::= additive_expression - multiplicative_expression + // Rule 125: additive_expression ::= additive_expression - multiplicative_expression // - case 123: { action.builder. + case 125: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus); break; } // - // Rule 125: shift_expression ::= shift_expression << additive_expression + // Rule 127: shift_expression ::= shift_expression << additive_expression // - case 125: { action.builder. + case 127: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft); break; } // - // Rule 126: shift_expression ::= shift_expression >> additive_expression + // Rule 128: shift_expression ::= shift_expression >> additive_expression // - case 126: { action.builder. + case 128: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight); break; } // - // Rule 128: relational_expression ::= relational_expression < shift_expression + // Rule 130: relational_expression ::= relational_expression < shift_expression // - case 128: { action.builder. + case 130: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; } // - // Rule 129: relational_expression ::= relational_expression > shift_expression + // Rule 131: relational_expression ::= relational_expression > shift_expression // - case 129: { action.builder. + case 131: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; } // - // Rule 130: relational_expression ::= relational_expression <= shift_expression + // Rule 132: relational_expression ::= relational_expression <= shift_expression // - case 130: { action.builder. + case 132: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; } // - // Rule 131: relational_expression ::= relational_expression >= shift_expression + // Rule 133: relational_expression ::= relational_expression >= shift_expression // - case 131: { action.builder. + case 133: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; } // - // Rule 133: equality_expression ::= equality_expression == relational_expression + // Rule 135: equality_expression ::= equality_expression == relational_expression // - case 133: { action.builder. + case 135: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; } // - // Rule 134: equality_expression ::= equality_expression != relational_expression + // Rule 136: equality_expression ::= equality_expression != relational_expression // - case 134: { action.builder. + case 136: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; } // - // Rule 136: and_expression ::= and_expression & equality_expression + // Rule 138: and_expression ::= and_expression & equality_expression // - case 136: { action.builder. + case 138: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; } // - // Rule 138: exclusive_or_expression ::= exclusive_or_expression ^ and_expression + // Rule 140: exclusive_or_expression ::= exclusive_or_expression ^ and_expression // - case 138: { action.builder. + case 140: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; } // - // Rule 140: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression + // Rule 142: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression // - case 140: { action.builder. + case 142: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; } // - // Rule 142: logical_and_expression ::= logical_and_expression && inclusive_or_expression + // Rule 144: logical_and_expression ::= logical_and_expression && inclusive_or_expression // - case 142: { action.builder. + case 144: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; } // - // Rule 144: logical_or_expression ::= logical_or_expression || logical_and_expression + // Rule 146: logical_or_expression ::= logical_or_expression || logical_and_expression // - case 144: { action.builder. + case 146: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; } // - // Rule 146: conditional_expression ::= logical_or_expression ? expression : assignment_expression + // Rule 148: conditional_expression ::= logical_or_expression ? expression : assignment_expression // - case 146: { action.builder. + case 148: { action.builder. consumeExpressionConditional(); break; } // - // Rule 147: throw_expression ::= throw + // Rule 149: throw_expression ::= throw // - case 147: { action.builder. + case 149: { action.builder. consumeExpressionThrow(false); break; } // - // Rule 148: throw_expression ::= throw assignment_expression + // Rule 150: throw_expression ::= throw assignment_expression // - case 148: { action.builder. + case 150: { action.builder. consumeExpressionThrow(true); break; } // - // Rule 151: assignment_expression ::= logical_or_expression = assignment_expression + // Rule 153: assignment_expression ::= logical_or_expression = assignment_expression // - case 151: { action.builder. + case 153: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; } // - // Rule 152: assignment_expression ::= logical_or_expression *= assignment_expression + // Rule 154: assignment_expression ::= logical_or_expression *= assignment_expression // - case 152: { action.builder. + case 154: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 153: assignment_expression ::= logical_or_expression /= assignment_expression + // Rule 155: assignment_expression ::= logical_or_expression /= assignment_expression // - case 153: { action.builder. + case 155: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; } // - // Rule 154: assignment_expression ::= logical_or_expression %= assignment_expression + // Rule 156: assignment_expression ::= logical_or_expression %= assignment_expression // - case 154: { action.builder. + case 156: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; } // - // Rule 155: assignment_expression ::= logical_or_expression += assignment_expression + // Rule 157: assignment_expression ::= logical_or_expression += assignment_expression // - case 155: { action.builder. + case 157: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; } // - // Rule 156: assignment_expression ::= logical_or_expression -= assignment_expression + // Rule 158: assignment_expression ::= logical_or_expression -= assignment_expression // - case 156: { action.builder. + case 158: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; } // - // Rule 157: assignment_expression ::= logical_or_expression >>= assignment_expression + // Rule 159: assignment_expression ::= logical_or_expression >>= assignment_expression // - case 157: { action.builder. + case 159: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 158: assignment_expression ::= logical_or_expression <<= assignment_expression + // Rule 160: assignment_expression ::= logical_or_expression <<= assignment_expression // - case 158: { action.builder. + case 160: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 159: assignment_expression ::= logical_or_expression &= assignment_expression + // Rule 161: assignment_expression ::= logical_or_expression &= assignment_expression // - case 159: { action.builder. + case 161: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 160: assignment_expression ::= logical_or_expression ^= assignment_expression + // Rule 162: assignment_expression ::= logical_or_expression ^= assignment_expression // - case 160: { action.builder. + case 162: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 161: assignment_expression ::= logical_or_expression |= assignment_expression + // Rule 163: assignment_expression ::= logical_or_expression |= assignment_expression // - case 161: { action.builder. + case 163: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 163: expression_list ::= expression_list_actual + // Rule 165: expression_list ::= expression_list_actual // - case 163: { action.builder. + case 165: { action.builder. consumeExpressionList(); break; } // - // Rule 167: expression_list_opt ::= $Empty - // - case 167: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 169: expression_opt ::= $Empty + // Rule 169: expression_list_opt ::= $Empty // case 169: { action.builder. consumeEmpty(); break; } // - // Rule 172: constant_expression_opt ::= $Empty + // Rule 171: expression_opt ::= $Empty // - case 172: { action.builder. + case 171: { action.builder. consumeEmpty(); break; } // - // Rule 181: statement ::= ERROR_TOKEN + // Rule 174: constant_expression_opt ::= $Empty // - case 181: { action.builder. + case 174: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 183: statement ::= ERROR_TOKEN + // + case 183: { action.builder. consumeStatementProblem(); break; } // - // Rule 182: labeled_statement ::= identifier : statement + // Rule 184: labeled_statement ::= identifier : statement // - case 182: { action.builder. + case 184: { action.builder. consumeStatementLabeled(); break; } // - // Rule 183: labeled_statement ::= case constant_expression : + // Rule 185: labeled_statement ::= case constant_expression : // - case 183: { action.builder. + case 185: { action.builder. consumeStatementCase(); break; } // - // Rule 184: labeled_statement ::= default : + // Rule 186: labeled_statement ::= default : // - case 184: { action.builder. + case 186: { action.builder. consumeStatementDefault(); break; } // - // Rule 185: expression_statement ::= expression ; + // Rule 187: expression_statement ::= expression ; // - case 185: { action.builder. + case 187: { action.builder. consumeStatementExpression(); break; } // - // Rule 186: expression_statement ::= ; + // Rule 188: expression_statement ::= ; // - case 186: { action.builder. + case 188: { action.builder. consumeStatementNull(); break; } // - // Rule 187: compound_statement ::= { statement_seq } + // Rule 189: compound_statement ::= { statement_seq } // - case 187: { action.builder. + case 189: { action.builder. consumeStatementCompoundStatement(true); break; } // - // Rule 188: compound_statement ::= { } + // Rule 190: compound_statement ::= { } // - case 188: { action.builder. + case 190: { action.builder. consumeStatementCompoundStatement(false); break; } // - // Rule 191: selection_statement ::= if ( condition ) statement + // Rule 193: selection_statement ::= if ( condition ) statement // - case 191: { action.builder. + case 193: { action.builder. consumeStatementIf(false); break; } // - // Rule 192: selection_statement ::= if ( condition ) statement else statement + // Rule 194: selection_statement ::= if ( condition ) statement else statement // - case 192: { action.builder. + case 194: { action.builder. consumeStatementIf(true); break; } // - // Rule 193: selection_statement ::= switch ( condition ) statement + // Rule 195: selection_statement ::= switch ( condition ) statement // - case 193: { action.builder. + case 195: { action.builder. consumeStatementSwitch(); break; } // - // Rule 195: condition ::= type_specifier_seq declarator = assignment_expression + // Rule 197: condition ::= type_specifier_seq declarator = assignment_expression // - case 195: { action.builder. + case 197: { action.builder. consumeConditionDeclaration(); break; } // - // Rule 197: condition_opt ::= $Empty + // Rule 199: condition_opt ::= $Empty // - case 197: { action.builder. + case 199: { action.builder. consumeEmpty(); break; } // - // Rule 198: iteration_statement ::= while ( condition ) statement + // Rule 200: iteration_statement ::= while ( condition ) statement // - case 198: { action.builder. + case 200: { action.builder. consumeStatementWhileLoop(); break; } // - // Rule 199: iteration_statement ::= do statement while ( expression ) ; + // Rule 201: iteration_statement ::= do statement while ( expression ) ; // - case 199: { action.builder. + case 201: { action.builder. consumeStatementDoLoop(); break; } // - // Rule 200: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement + // Rule 202: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement // - case 200: { action.builder. + case 202: { action.builder. consumeStatementForLoop(); break; } // - // Rule 202: for_init_statement ::= simple_declaration_with_declspec + // Rule 204: for_init_statement ::= simple_declaration_with_declspec // - case 202: { action.builder. + case 204: { action.builder. consumeStatementDeclaration(); break; } // - // Rule 203: jump_statement ::= break ; + // Rule 205: jump_statement ::= break ; // - case 203: { action.builder. + case 205: { action.builder. consumeStatementBreak(); break; } // - // Rule 204: jump_statement ::= continue ; + // Rule 206: jump_statement ::= continue ; // - case 204: { action.builder. + case 206: { action.builder. consumeStatementContinue(); break; } // - // Rule 205: jump_statement ::= return expression ; + // Rule 207: jump_statement ::= return expression ; // - case 205: { action.builder. + case 207: { action.builder. consumeStatementReturn(true); break; } // - // Rule 206: jump_statement ::= return ; + // Rule 208: jump_statement ::= return ; // - case 206: { action.builder. + case 208: { action.builder. consumeStatementReturn(false); break; } // - // Rule 207: jump_statement ::= goto identifier_token ; + // Rule 209: jump_statement ::= goto identifier_token ; // - case 207: { action.builder. + case 209: { action.builder. consumeStatementGoto(); break; } // - // Rule 208: declaration_statement ::= block_declaration + // Rule 210: declaration_statement ::= block_declaration // - case 208: { action.builder. + case 210: { action.builder. consumeStatementDeclarationWithDisambiguation(); break; } // - // Rule 209: declaration_statement ::= function_definition + // Rule 211: declaration_statement ::= function_definition // - case 209: { action.builder. + case 211: { action.builder. consumeStatementDeclaration(); break; } // - // Rule 226: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; - // - case 226: { action.builder. - consumeDeclarationSimple(true); break; - } - - // - // Rule 227: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; - // - case 227: { action.builder. - consumeDeclarationSimple(true); break; - } - - // - // Rule 228: declaration_specifiers ::= simple_declaration_specifiers + // Rule 228: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; // case 228: { action.builder. + consumeDeclarationSimple(true); break; + } + + // + // Rule 229: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; + // + case 229: { action.builder. + consumeDeclarationSimple(true); break; + } + + // + // Rule 230: declaration_specifiers ::= simple_declaration_specifiers + // + case 230: { action.builder. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 229: declaration_specifiers ::= class_declaration_specifiers - // - case 229: { action.builder. - consumeDeclarationSpecifiersComposite(); break; - } - - // - // Rule 230: declaration_specifiers ::= elaborated_declaration_specifiers - // - case 230: { action.builder. - consumeDeclarationSpecifiersComposite(); break; - } - - // - // Rule 231: declaration_specifiers ::= enum_declaration_specifiers + // Rule 231: declaration_specifiers ::= class_declaration_specifiers // case 231: { action.builder. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 232: declaration_specifiers ::= type_name_declaration_specifiers + // Rule 232: declaration_specifiers ::= elaborated_declaration_specifiers // case 232: { action.builder. + consumeDeclarationSpecifiersComposite(); break; + } + + // + // Rule 233: declaration_specifiers ::= enum_declaration_specifiers + // + case 233: { action.builder. + consumeDeclarationSpecifiersComposite(); break; + } + + // + // Rule 234: declaration_specifiers ::= type_name_declaration_specifiers + // + case 234: { action.builder. consumeDeclarationSpecifiersTypeName(); break; } // - // Rule 233: declaration_specifiers_opt ::= $Empty + // Rule 235: declaration_specifiers_opt ::= $Empty // - case 233: { action.builder. + case 235: { action.builder. consumeEmpty(); break; } // - // Rule 238: no_type_declaration_specifier ::= friend + // Rule 240: no_type_declaration_specifier ::= friend // - case 238: { action.builder. + case 240: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 239: no_type_declaration_specifier ::= typedef + // Rule 241: no_type_declaration_specifier ::= typedef // - case 239: { action.builder. + case 241: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 259: storage_class_specifier ::= auto - // - case 259: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 260: storage_class_specifier ::= register - // - case 260: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 261: storage_class_specifier ::= static + // Rule 261: storage_class_specifier ::= auto // case 261: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 262: storage_class_specifier ::= extern + // Rule 262: storage_class_specifier ::= register // case 262: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 263: storage_class_specifier ::= mutable + // Rule 263: storage_class_specifier ::= static // case 263: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 264: function_specifier ::= inline + // Rule 264: storage_class_specifier ::= extern // case 264: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 265: function_specifier ::= virtual + // Rule 265: storage_class_specifier ::= mutable // case 265: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 266: function_specifier ::= explicit + // Rule 266: function_specifier ::= inline // case 266: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 267: simple_type_specifier ::= char + // Rule 267: function_specifier ::= virtual // case 267: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 268: simple_type_specifier ::= wchar_t + // Rule 268: function_specifier ::= explicit // case 268: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 269: simple_type_specifier ::= bool + // Rule 269: simple_type_specifier ::= char // case 269: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 270: simple_type_specifier ::= short + // Rule 270: simple_type_specifier ::= wchar_t // case 270: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 271: simple_type_specifier ::= int + // Rule 271: simple_type_specifier ::= bool // case 271: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 272: simple_type_specifier ::= long + // Rule 272: simple_type_specifier ::= short // case 272: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 273: simple_type_specifier ::= signed + // Rule 273: simple_type_specifier ::= int // case 273: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 274: simple_type_specifier ::= unsigned + // Rule 274: simple_type_specifier ::= long // case 274: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 275: simple_type_specifier ::= float + // Rule 275: simple_type_specifier ::= signed // case 275: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 276: simple_type_specifier ::= double + // Rule 276: simple_type_specifier ::= unsigned // case 276: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 277: simple_type_specifier ::= void + // Rule 277: simple_type_specifier ::= float // case 277: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 280: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name + // Rule 278: simple_type_specifier ::= double // - case 280: { action.builder. - consumeQualifiedId(false); break; + case 278: { action.builder. + consumeDeclSpecToken(); break; } // - // Rule 281: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name + // Rule 279: simple_type_specifier ::= void // - case 281: { action.builder. - consumeQualifiedId(false); break; + case 279: { action.builder. + consumeDeclSpecToken(); break; } // - // Rule 282: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name + // Rule 282: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name // case 282: { action.builder. consumeQualifiedId(false); break; } // - // Rule 283: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name + // Rule 283: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name // case 283: { action.builder. + consumeQualifiedId(false); break; + } + + // + // Rule 284: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name + // + case 284: { action.builder. + consumeQualifiedId(false); break; + } + + // + // Rule 285: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name + // + case 285: { action.builder. consumeQualifiedId(true); break; } // - // Rule 285: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name - // - case 285: { action.builder. - consumeTypeSpecifierElaborated(false); break; - } - - // - // Rule 286: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name - // - case 286: { action.builder. - consumeTypeSpecifierElaborated(true); break; - } - - // - // Rule 287: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name + // Rule 287: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name // case 287: { action.builder. consumeTypeSpecifierElaborated(false); break; } // - // Rule 288: enum_specifier ::= enum { enumerator_list_opt } + // Rule 288: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name // case 288: { action.builder. + consumeTypeSpecifierElaborated(true); break; + } + + // + // Rule 289: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name + // + case 289: { action.builder. + consumeTypeSpecifierElaborated(false); break; + } + + // + // Rule 290: enum_specifier ::= enum { enumerator_list_opt } + // + case 290: { action.builder. consumeTypeSpecifierEnumeration(false); break; } // - // Rule 289: enum_specifier ::= enum identifier_token { enumerator_list_opt } + // Rule 291: enum_specifier ::= enum identifier_token { enumerator_list_opt } // - case 289: { action.builder. + case 291: { action.builder. consumeTypeSpecifierEnumeration(true); break; } // - // Rule 294: enumerator_definition ::= identifier_token + // Rule 296: enumerator_definition ::= identifier_token // - case 294: { action.builder. + case 296: { action.builder. consumeEnumerator(false); break; } // - // Rule 295: enumerator_definition ::= identifier_token = constant_expression + // Rule 297: enumerator_definition ::= identifier_token = constant_expression // - case 295: { action.builder. + case 297: { action.builder. consumeEnumerator(true); break; } // - // Rule 299: named_namespace_definition ::= namespace namespace_name { declaration_seq_opt } + // Rule 301: named_namespace_definition ::= namespace namespace_name { declaration_seq_opt } // - case 299: { action.builder. + case 301: { action.builder. consumeNamespaceDefinition(true); break; } // - // Rule 300: unnamed_namespace_definition ::= namespace { declaration_seq_opt } + // Rule 302: unnamed_namespace_definition ::= namespace { declaration_seq_opt } // - case 300: { action.builder. + case 302: { action.builder. consumeNamespaceDefinition(false); break; } // - // Rule 301: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 303: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; // - case 301: { action.builder. + case 303: { action.builder. consumeNamespaceAliasDefinition(); break; } // - // Rule 302: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; + // Rule 304: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; // - case 302: { action.builder. + case 304: { action.builder. consumeUsingDeclaration(); break; } // - // Rule 303: typename_opt ::= typename + // Rule 305: typename_opt ::= typename // - case 303: { action.builder. + case 305: { action.builder. consumePlaceHolder(); break; } // - // Rule 304: typename_opt ::= $Empty + // Rule 306: typename_opt ::= $Empty // - case 304: { action.builder. + case 306: { action.builder. consumeEmpty(); break; } // - // Rule 305: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 307: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; // - case 305: { action.builder. + case 307: { action.builder. consumeUsingDirective(); break; } // - // Rule 306: asm_definition ::= asm ( stringlit ) ; + // Rule 308: asm_definition ::= asm ( stringlit ) ; // - case 306: { action.builder. + case 308: { action.builder. consumeDeclarationASM(); break; } // - // Rule 307: linkage_specification ::= extern stringlit { declaration_seq_opt } + // Rule 309: linkage_specification ::= extern stringlit { declaration_seq_opt } // - case 307: { action.builder. + case 309: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 308: linkage_specification ::= extern stringlit declaration + // Rule 310: linkage_specification ::= extern stringlit declaration // - case 308: { action.builder. + case 310: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 314: init_declarator ::= declarator initializer + // Rule 316: init_declarator ::= declarator initializer // - case 314: { action.builder. + case 316: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 316: declarator ::= ptr_operator_seq direct_declarator - // - case 316: { action.builder. - consumeDeclaratorWithPointer(true); break; - } - - // - // Rule 318: function_declarator ::= ptr_operator_seq direct_declarator + // Rule 318: declarator ::= ptr_operator_seq direct_declarator // case 318: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 321: basic_direct_declarator ::= declarator_id_name + // Rule 320: function_declarator ::= ptr_operator_seq direct_declarator // - case 321: { action.builder. - consumeDirectDeclaratorIdentifier(); break; - } - - // - // Rule 322: basic_direct_declarator ::= ( declarator ) - // - case 322: { action.builder. - consumeDirectDeclaratorBracketed(); break; - } - - // - // Rule 323: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt - // - case 323: { action.builder. - consumeDirectDeclaratorFunctionDeclarator(true); break; - } - - // - // Rule 324: array_direct_declarator ::= array_direct_declarator array_modifier - // - case 324: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 325: array_direct_declarator ::= basic_direct_declarator array_modifier - // - case 325: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 326: array_modifier ::= [ constant_expression ] - // - case 326: { action.builder. - consumeDirectDeclaratorArrayModifier(true); break; - } - - // - // Rule 327: array_modifier ::= [ ] - // - case 327: { action.builder. - consumeDirectDeclaratorArrayModifier(false); break; - } - - // - // Rule 328: ptr_operator ::= * cv_qualifier_seq_opt - // - case 328: { action.builder. - consumePointer(); break; - } - - // - // Rule 329: ptr_operator ::= & - // - case 329: { action.builder. - consumeReferenceOperator(); break; - } - - // - // Rule 330: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt - // - case 330: { action.builder. - consumePointerToMember(); break; - } - - // - // Rule 336: cv_qualifier ::= const - // - case 336: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 337: cv_qualifier ::= volatile - // - case 337: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 339: declarator_id_name ::= nested_name_specifier template_opt unqualified_id_name - // - case 339: { action.builder. - consumeQualifiedId(true); break; - } - - // - // Rule 340: type_id ::= type_specifier_seq - // - case 340: { action.builder. - consumeTypeId(false); break; - } - - // - // Rule 341: type_id ::= type_specifier_seq abstract_declarator - // - case 341: { action.builder. - consumeTypeId(true); break; - } - - // - // Rule 344: abstract_declarator ::= ptr_operator_seq - // - case 344: { action.builder. - consumeDeclaratorWithPointer(false); break; - } - - // - // Rule 345: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator - // - case 345: { action.builder. + case 320: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 349: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 323: basic_direct_declarator ::= declarator_id_name // - case 349: { action.builder. + case 323: { action.builder. + consumeDirectDeclaratorIdentifier(); break; + } + + // + // Rule 324: basic_direct_declarator ::= ( declarator ) + // + case 324: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 350: basic_direct_abstract_declarator ::= ( ) + // Rule 325: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 350: { action.builder. - consumeAbstractDeclaratorEmpty(); break; - } - - // - // Rule 351: array_direct_abstract_declarator ::= array_modifier - // - case 351: { action.builder. - consumeDirectDeclaratorArrayDeclarator(false); break; - } - - // - // Rule 352: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier - // - case 352: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 353: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier - // - case 353: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 354: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt - // - case 354: { action.builder. + case 325: { action.builder. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 355: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 326: array_direct_declarator ::= array_direct_declarator array_modifier + // + case 326: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 327: array_direct_declarator ::= basic_direct_declarator array_modifier + // + case 327: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 328: array_modifier ::= [ constant_expression ] + // + case 328: { action.builder. + consumeDirectDeclaratorArrayModifier(true); break; + } + + // + // Rule 329: array_modifier ::= [ ] + // + case 329: { action.builder. + consumeDirectDeclaratorArrayModifier(false); break; + } + + // + // Rule 330: ptr_operator ::= * cv_qualifier_seq_opt + // + case 330: { action.builder. + consumePointer(); break; + } + + // + // Rule 331: ptr_operator ::= & + // + case 331: { action.builder. + consumeReferenceOperator(); break; + } + + // + // Rule 332: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt + // + case 332: { action.builder. + consumePointerToMember(); break; + } + + // + // Rule 338: cv_qualifier ::= const + // + case 338: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 339: cv_qualifier ::= volatile + // + case 339: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 341: declarator_id_name ::= nested_name_specifier template_opt unqualified_id_name + // + case 341: { action.builder. + consumeQualifiedId(true); break; + } + + // + // Rule 342: type_id ::= type_specifier_seq + // + case 342: { action.builder. + consumeTypeId(false); break; + } + + // + // Rule 343: type_id ::= type_specifier_seq abstract_declarator + // + case 343: { action.builder. + consumeTypeId(true); break; + } + + // + // Rule 346: abstract_declarator ::= ptr_operator_seq + // + case 346: { action.builder. + consumeDeclaratorWithPointer(false); break; + } + + // + // Rule 347: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator + // + case 347: { action.builder. + consumeDeclaratorWithPointer(true); break; + } + + // + // Rule 351: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // + case 351: { action.builder. + consumeDirectDeclaratorBracketed(); break; + } + + // + // Rule 352: basic_direct_abstract_declarator ::= ( ) + // + case 352: { action.builder. + consumeAbstractDeclaratorEmpty(); break; + } + + // + // Rule 353: array_direct_abstract_declarator ::= array_modifier + // + case 353: { action.builder. + consumeDirectDeclaratorArrayDeclarator(false); break; + } + + // + // Rule 354: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // + case 354: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 355: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier // case 355: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 356: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // + case 356: { action.builder. + consumeDirectDeclaratorFunctionDeclarator(true); break; + } + + // + // Rule 357: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // + case 357: { action.builder. consumeDirectDeclaratorFunctionDeclarator(false); break; } // - // Rule 356: parameter_declaration_clause ::= parameter_declaration_list_opt ... - // - case 356: { action.builder. - consumePlaceHolder(); break; - } - - // - // Rule 357: parameter_declaration_clause ::= parameter_declaration_list_opt - // - case 357: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 358: parameter_declaration_clause ::= parameter_declaration_list , ... + // Rule 358: parameter_declaration_clause ::= parameter_declaration_list_opt ... // case 358: { action.builder. consumePlaceHolder(); break; } // - // Rule 364: abstract_declarator_opt ::= $Empty + // Rule 359: parameter_declaration_clause ::= parameter_declaration_list_opt // - case 364: { action.builder. + case 359: { action.builder. consumeEmpty(); break; } // - // Rule 365: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // Rule 360: parameter_declaration_clause ::= parameter_declaration_list , ... // - case 365: { action.builder. + case 360: { action.builder. + consumePlaceHolder(); break; + } + + // + // Rule 366: abstract_declarator_opt ::= $Empty + // + case 366: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 367: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // + case 367: { action.builder. consumeParameterDeclaration(); break; } // - // Rule 366: parameter_declaration ::= declaration_specifiers + // Rule 368: parameter_declaration ::= declaration_specifiers // - case 366: { action.builder. + case 368: { action.builder. consumeParameterDeclarationWithoutDeclarator(); break; } // - // Rule 368: parameter_init_declarator ::= declarator = parameter_initializer - // - case 368: { action.builder. - consumeDeclaratorWithInitializer(true); break; - } - - // - // Rule 370: parameter_init_declarator ::= abstract_declarator = parameter_initializer + // Rule 370: parameter_init_declarator ::= declarator = parameter_initializer // case 370: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 371: parameter_init_declarator ::= = parameter_initializer + // Rule 372: parameter_init_declarator ::= abstract_declarator = parameter_initializer // - case 371: { action.builder. + case 372: { action.builder. + consumeDeclaratorWithInitializer(true); break; + } + + // + // Rule 373: parameter_init_declarator ::= = parameter_initializer + // + case 373: { action.builder. consumeDeclaratorWithInitializer(false); break; } // - // Rule 372: parameter_initializer ::= assignment_expression + // Rule 374: parameter_initializer ::= assignment_expression // - case 372: { action.builder. + case 374: { action.builder. consumeInitializer(); break; } // - // Rule 373: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body + // Rule 375: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body // - case 373: { action.builder. + case 375: { action.builder. consumeFunctionDefinition(false); break; } // - // Rule 374: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq + // Rule 376: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq // - case 374: { action.builder. + case 376: { action.builder. consumeFunctionDefinition(true); break; } // - // Rule 377: initializer ::= ( expression_list ) + // Rule 379: initializer ::= ( expression_list ) // - case 377: { action.builder. + case 379: { action.builder. consumeInitializerConstructor(); break; } // - // Rule 378: initializer_clause ::= assignment_expression + // Rule 380: initializer_clause ::= assignment_expression // - case 378: { action.builder. + case 380: { action.builder. consumeInitializer(); break; } // - // Rule 379: initializer_clause ::= { initializer_list , } - // - case 379: { action.builder. - consumeInitializerList(); break; - } - - // - // Rule 380: initializer_clause ::= { initializer_list } - // - case 380: { action.builder. - consumeInitializerList(); break; - } - - // - // Rule 381: initializer_clause ::= { } + // Rule 381: initializer_clause ::= { initializer_list , } // case 381: { action.builder. consumeInitializerList(); break; } // - // Rule 386: class_specifier ::= class_head { member_declaration_list_opt } + // Rule 382: initializer_clause ::= { initializer_list } // - case 386: { action.builder. - consumeClassSpecifier(); break; + case 382: { action.builder. + consumeInitializerList(); break; } // - // Rule 387: class_specifier ::= class_head EOC member_declaration_list_opt } + // Rule 383: initializer_clause ::= { } // - case 387: { action.builder. - consumeClassSpecifier(); break; + case 383: { action.builder. + consumeInitializerList(); break; } // - // Rule 388: class_head ::= class_keyword identifier_name_opt base_clause_opt + // Rule 388: class_specifier ::= class_head { member_declaration_list_opt } // case 388: { action.builder. - consumeClassHead(false); break; + consumeClassSpecifier(); break; } // - // Rule 389: class_head ::= class_keyword template_id_name base_clause_opt + // Rule 389: class_head ::= class_keyword identifier_name_opt base_clause_opt // case 389: { action.builder. consumeClassHead(false); break; } // - // Rule 390: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt + // Rule 390: class_head ::= class_keyword template_id_name base_clause_opt // case 390: { action.builder. - consumeClassHead(true); break; + consumeClassHead(false); break; } // - // Rule 391: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt + // Rule 391: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt // case 391: { action.builder. consumeClassHead(true); break; } // - // Rule 393: identifier_name_opt ::= $Empty + // Rule 392: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt // - case 393: { action.builder. + case 392: { action.builder. + consumeClassHead(true); break; + } + + // + // Rule 394: identifier_name_opt ::= $Empty + // + case 394: { action.builder. consumeEmpty(); break; } // - // Rule 397: visibility_label ::= access_specifier_keyword : + // Rule 398: visibility_label ::= access_specifier_keyword : // - case 397: { action.builder. + case 398: { action.builder. consumeVisibilityLabel(); break; } // - // Rule 398: member_declaration ::= declaration_specifiers_opt member_declarator_list ; + // Rule 399: member_declaration ::= declaration_specifiers_opt member_declarator_list ; // - case 398: { action.builder. + case 399: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 399: member_declaration ::= declaration_specifiers_opt ; + // Rule 400: member_declaration ::= declaration_specifiers_opt ; // - case 399: { action.builder. + case 400: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 402: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; + // Rule 403: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; // - case 402: { action.builder. + case 403: { action.builder. consumeMemberDeclarationQualifiedId(); break; } // - // Rule 408: member_declaration ::= ERROR_TOKEN + // Rule 409: member_declaration ::= ERROR_TOKEN // - case 408: { action.builder. + case 409: { action.builder. consumeDeclarationProblem(); break; } // - // Rule 416: member_declarator ::= declarator constant_initializer + // Rule 417: member_declarator ::= declarator constant_initializer // - case 416: { action.builder. + case 417: { action.builder. consumeMemberDeclaratorWithInitializer(); break; } // - // Rule 417: member_declarator ::= bit_field_declarator : constant_expression + // Rule 418: member_declarator ::= bit_field_declarator : constant_expression // - case 417: { action.builder. + case 418: { action.builder. consumeBitField(true); break; } // - // Rule 418: member_declarator ::= : constant_expression + // Rule 419: member_declarator ::= : constant_expression // - case 418: { action.builder. + case 419: { action.builder. consumeBitField(false); break; } // - // Rule 419: bit_field_declarator ::= identifier_name + // Rule 420: bit_field_declarator ::= identifier_name // - case 419: { action.builder. + case 420: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 420: constant_initializer ::= = constant_expression + // Rule 421: constant_initializer ::= = constant_expression // - case 420: { action.builder. + case 421: { action.builder. consumeInitializer(); break; } // - // Rule 426: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 427: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 426: { action.builder. + case 427: { action.builder. consumeBaseSpecifier(false, false); break; } // - // Rule 427: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name - // - case 427: { action.builder. - consumeBaseSpecifier(true, true); break; - } - - // - // Rule 428: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name + // Rule 428: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name // case 428: { action.builder. consumeBaseSpecifier(true, true); break; } // - // Rule 429: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name + // Rule 429: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name // case 429: { action.builder. + consumeBaseSpecifier(true, true); break; + } + + // + // Rule 430: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name + // + case 430: { action.builder. consumeBaseSpecifier(true, false); break; } // - // Rule 430: access_specifier_keyword ::= private - // - case 430: { action.builder. - consumeAccessKeywordToken(); break; - } - - // - // Rule 431: access_specifier_keyword ::= protected + // Rule 431: access_specifier_keyword ::= private // case 431: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 432: access_specifier_keyword ::= public + // Rule 432: access_specifier_keyword ::= protected // case 432: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 434: access_specifier_keyword_opt ::= $Empty + // Rule 433: access_specifier_keyword ::= public // - case 434: { action.builder. + case 433: { action.builder. + consumeAccessKeywordToken(); break; + } + + // + // Rule 435: access_specifier_keyword_opt ::= $Empty + // + case 435: { action.builder. consumeEmpty(); break; } // - // Rule 436: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > + // Rule 437: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > // - case 436: { action.builder. + case 437: { action.builder. consumeTemplateId(); break; } // - // Rule 437: conversion_function_id ::= operator conversion_type_id + // Rule 438: conversion_function_id ::= operator conversion_type_id // - case 437: { action.builder. + case 438: { action.builder. consumeConversionName(); break; } // - // Rule 438: conversion_type_id ::= type_specifier_seq conversion_declarator + // Rule 439: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 438: { action.builder. + case 439: { action.builder. consumeTypeId(true); break; } // - // Rule 439: conversion_type_id ::= type_specifier_seq + // Rule 440: conversion_type_id ::= type_specifier_seq // - case 439: { action.builder. + case 440: { action.builder. consumeTypeId(false); break; } // - // Rule 440: conversion_declarator ::= ptr_operator_seq + // Rule 441: conversion_declarator ::= ptr_operator_seq // - case 440: { action.builder. + case 441: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 446: mem_initializer ::= mem_initializer_name ( expression_list_opt ) + // Rule 447: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 446: { action.builder. + case 447: { action.builder. consumeConstructorChainInitializer(); break; } // - // Rule 447: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 448: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name // - case 447: { action.builder. + case 448: { action.builder. consumeQualifiedId(false); break; } // - // Rule 450: operator_function_id_name ::= operator_id_name < template_argument_list_opt > + // Rule 451: operator_function_id_name ::= operator_id_name < template_argument_list_opt > // - case 450: { action.builder. + case 451: { action.builder. consumeTemplateId(); break; } // - // Rule 451: operator_id_name ::= operator overloadable_operator + // Rule 452: operator_id_name ::= operator overloadable_operator // - case 451: { action.builder. + case 452: { action.builder. consumeOperatorName(); break; } // - // Rule 494: template_declaration ::= export_opt template < template_parameter_list > declaration + // Rule 495: template_declaration ::= export_opt template < template_parameter_list > declaration // - case 494: { action.builder. + case 495: { action.builder. consumeTemplateDeclaration(); break; } // - // Rule 495: export_opt ::= export + // Rule 496: export_opt ::= export // - case 495: { action.builder. + case 496: { action.builder. consumePlaceHolder(); break; } // - // Rule 496: export_opt ::= $Empty + // Rule 497: export_opt ::= $Empty // - case 496: { action.builder. + case 497: { action.builder. consumeEmpty(); break; } // - // Rule 500: template_parameter ::= parameter_declaration + // Rule 501: template_parameter ::= parameter_declaration // - case 500: { action.builder. + case 501: { action.builder. consumeTemplateParamterDeclaration(); break; } // - // Rule 501: type_parameter ::= class identifier_name_opt - // - case 501: { action.builder. - consumeSimpleTypeTemplateParameter(false); break; - } - - // - // Rule 502: type_parameter ::= class identifier_name_opt = type_id + // Rule 502: type_parameter ::= class identifier_name_opt // case 502: { action.builder. - consumeSimpleTypeTemplateParameter(true); break; - } - - // - // Rule 503: type_parameter ::= typename identifier_name_opt - // - case 503: { action.builder. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 504: type_parameter ::= typename identifier_name_opt = type_id + // Rule 503: type_parameter ::= class identifier_name_opt = type_id // - case 504: { action.builder. + case 503: { action.builder. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 505: type_parameter ::= template < template_parameter_list > class identifier_name_opt + // 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 506: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression + // Rule 507: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression // - case 506: { action.builder. + case 507: { action.builder. consumeTemplatedTypeTemplateParameter(true); break; } // - // Rule 507: template_id_name ::= identifier_name < template_argument_list_opt > + // Rule 508: template_id_name ::= identifier_name < template_argument_list_opt > // - case 507: { action.builder. + case 508: { action.builder. consumeTemplateId(); break; } // - // Rule 513: template_argument ::= type_id + // Rule 514: template_argument ::= type_id // - case 513: { action.builder. + case 514: { action.builder. consumeTemplateArgumentTypeId(); break; } // - // Rule 514: explicit_instantiation ::= template declaration + // Rule 515: explicit_instantiation ::= template declaration // - case 514: { action.builder. + case 515: { action.builder. consumeTemplateExplicitInstantiation(); break; } // - // Rule 515: explicit_specialization ::= template < > declaration + // Rule 516: explicit_specialization ::= template < > declaration // - case 515: { action.builder. + case 516: { action.builder. consumeTemplateExplicitSpecialization(); break; } // - // Rule 516: try_block ::= try compound_statement handler_seq + // Rule 517: try_block ::= try compound_statement handler_seq // - case 516: { action.builder. + case 517: { action.builder. consumeStatementTryBlock(); break; } // - // Rule 519: handler ::= catch ( exception_declaration ) compound_statement + // Rule 520: handler ::= catch ( exception_declaration ) compound_statement // - case 519: { action.builder. + case 520: { action.builder. consumeStatementCatchHandler(false); break; } // - // Rule 520: handler ::= catch ( ... ) compound_statement + // Rule 521: handler ::= catch ( ... ) compound_statement // - case 520: { action.builder. + case 521: { action.builder. consumeStatementCatchHandler(true); break; } // - // Rule 521: exception_declaration ::= type_specifier_seq declarator - // - case 521: { action.builder. - consumeDeclarationSimple(true); break; - } - - // - // Rule 522: exception_declaration ::= type_specifier_seq abstract_declarator + // Rule 522: exception_declaration ::= type_specifier_seq declarator // case 522: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 523: exception_declaration ::= type_specifier_seq + // Rule 523: exception_declaration ::= type_specifier_seq abstract_declarator // case 523: { action.builder. + consumeDeclarationSimple(true); break; + } + + // + // Rule 524: exception_declaration ::= type_specifier_seq + // + case 524: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 531: no_function_declarator_start ::= ERROR_TOKEN + // Rule 532: no_function_declarator_start ::= ERROR_TOKEN // - case 531: { action.builder. + case 532: { action.builder. consumeDeclarationProblem(); break; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParserprs.java index 5fd8298049e..4a7d70aca98 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,494 +38,488 @@ 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,0,1,2,1,1,1,1,1,1, - 1,1,1,1,1,1,1,3,1,1, - 1,1,1,1,1,1,2,2,1,1, - 0,1,0,4,2,2,2,3,2,3, - 2,2,1,0,1,1,4,4,4,8, - 8,3,3,4,4,3,3,2,2,7, - 7,7,7,4,4,5,6,3,2,2, - 1,1,1,2,2,2,2,2,2,2, - 2,2,4,7,9,3,0,1,2,2, - 1,2,3,4,1,0,3,1,0,3, - 5,1,4,1,3,3,1,3,3,3, - 1,3,3,1,3,3,1,3,3,3, - 3,1,3,3,1,3,1,3,1,3, - 1,3,1,3,1,5,1,2,1,1, - 3,3,3,3,3,3,3,3,3,3, - 3,1,2,1,3,1,0,1,0,1, - 1,0,1,1,1,1,1,1,1,1, - 1,3,3,2,2,1,4,2,1,2, - 5,7,5,1,4,1,0,5,7,8, - 1,1,2,2,3,2,3,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,2,1,0,4,4,2,2,2, - 2,2,0,1,1,1,1,1,1,1, - 2,1,2,2,2,1,1,2,2,1, - 2,2,1,2,2,1,2,2,1,1, - 1,1,1,1,1,1,1,1,1,1, + 1,1,1,0,1,2,1,1,1,1, 1,1,1,1,1,1,1,1,1,3, - 4,4,5,2,4,5,4,5,6,1, - 3,1,0,1,3,1,1,1,6,5, - 7,6,1,0,6,5,6,4,1,3, - 1,0,1,2,1,3,1,3,1,1, - 1,3,9,2,2,3,2,3,1,5, - 1,2,2,1,0,1,1,1,4,1, - 2,1,1,2,3,1,1,1,3,2, - 1,2,2,9,8,2,1,3,1,3, - 1,0,1,0,2,1,1,3,1,3, - 2,1,5,8,1,2,3,1,5,4, - 3,1,3,1,1,5,5,4,4,5, - 5,1,0,1,1,1,2,4,2,2, - 1,5,1,1,1,1,1,1,1,2, - 1,0,1,3,1,2,3,2,1,2, - 2,1,0,1,3,3,5,5,4,1, - 1,1,1,0,1,5,2,2,1,2, - 2,1,0,1,3,4,3,1,1,5, - 2,1,1,3,3,1,1,1,1,1, + 1,1,1,1,1,1,1,1,2,2, + 1,1,0,1,0,4,2,2,2,3, + 2,3,2,2,1,0,1,1,4,4, + 4,8,8,3,3,4,4,3,3,2, + 2,7,7,7,7,4,4,5,6,3, + 2,2,1,1,1,2,2,2,2,2, + 2,2,2,2,4,7,9,3,0,1, + 2,2,1,2,3,4,1,0,3,1, + 0,3,5,1,4,1,3,3,1,3, + 3,3,1,3,3,1,3,3,1,3, + 3,3,3,1,3,3,1,3,1,3, + 1,3,1,3,1,3,1,5,1,2, + 1,1,3,3,3,3,3,3,3,3, + 3,3,3,1,2,1,3,1,0,1, + 0,1,1,0,1,1,1,1,1,1, + 1,1,1,3,3,2,2,1,4,2, + 1,2,5,7,5,1,4,1,0,5, + 7,8,1,1,2,2,3,2,3,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,2,1,0,4,4,2, + 2,2,2,2,0,1,1,1,1,1, + 1,1,2,1,2,2,2,1,1,2, + 2,1,2,2,1,2,2,1,2,2, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,3,4,4,5,2,4,5,4,5, + 6,1,3,1,0,1,3,1,1,1, + 6,5,7,6,1,0,6,5,6,4, + 1,3,1,0,1,2,1,3,1,3, + 1,1,1,3,9,2,2,3,2,3, + 1,5,1,2,2,1,0,1,1,1, + 4,1,2,1,1,2,3,1,1,1, + 3,2,1,2,2,9,8,2,1,3, + 1,3,1,0,1,0,2,1,1,3, + 1,3,2,1,5,8,1,2,3,1, + 5,4,3,1,3,1,1,5,4,4, + 5,5,1,0,1,1,1,2,4,2, + 2,1,5,1,1,1,1,1,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,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,-107,0,0,0,-2,0,0,0, + 1,1,2,2,7,1,0,1,3,1, + 1,2,4,2,4,7,9,5,1,3, + 1,0,1,1,2,4,4,1,2,5, + 5,3,3,1,4,3,1,0,1,3, + 1,1,1,-107,0,0,0,-3,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,-461,0,-43,0,0,0,0, - 0,-7,0,0,-513,0,0,0,0,-8, - 0,0,0,0,0,-456,0,-134,0,0, + 0,0,0,0,0,0,-2,0,0,0, + 0,0,0,0,-7,0,-43,0,0,0, + 0,0,-8,0,0,-196,0,0,0,-11, + 0,0,0,0,0,0,0,0,-18,-134, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -226,0,0,0,0,0,0,0,0,0, - -259,0,0,-287,-404,0,0,0,-20,0, - 0,0,0,-25,0,0,-86,0,0,0, - -11,0,-383,0,0,0,0,0,0,0, - 0,0,0,-72,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-307, - -288,0,0,0,0,0,0,0,0,0, + 0,0,-19,0,0,0,0,0,0,0, + 0,0,-381,0,0,-26,-79,0,-49,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-113,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-225, + -286,0,0,0,-305,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,-92,0,0,0,0,0, - 0,0,0,-18,0,-227,0,0,0,0, - 0,-344,0,0,0,0,-75,0,0,0, + 0,0,-27,0,0,0,0,0,-28,0, + -29,0,0,-4,-5,0,-10,0,0,0, + -326,-87,0,0,0,0,0,-75,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-324,-369,0,0,0,0, - -45,0,0,0,-460,0,0,0,-73,0, - 0,-4,0,-113,0,0,0,0,0,0, + -38,0,0,0,0,0,0,0,0,0, + 0,0,-226,0,0,0,0,0,-17,0, + 0,0,0,0,0,-518,0,0,0,-227, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-90,0,0,0,0,0, + -39,0,-156,0,0,0,-90,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-19,0,0,0,0, - 0,-292,0,0,0,0,0,0,-10,0, - 0,0,0,0,0,-179,-26,0,0,-221, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-78,-184,0,0,-22,0, + 0,-73,0,-290,0,-40,0,0,0,0, + -24,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, - -27,0,-116,0,0,0,0,-28,0,0, - 0,-77,0,0,-354,0,0,0,-231,0, - 0,0,0,0,0,0,-24,-70,0,0, - -12,0,0,0,0,0,0,0,0,0, - 0,0,0,-29,-38,0,-348,-94,0,0, + 0,0,0,-185,0,-70,0,0,0,0, + 0,-322,0,0,0,0,0,-45,0,0, + 0,0,0,0,0,-468,0,0,0,-12, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-41,0,0,-94,0,0, + 0,-42,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-264,0,0,0,0,0, - 0,0,-241,0,0,0,0,0,0,-5, - 0,0,-150,0,0,0,-235,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-88, - 0,0,0,0,0,0,0,-102,0,0, - 0,0,0,-39,0,-31,0,0,-48,0, - 0,0,-40,0,0,0,0,0,0,0, + 0,0,-258,0,0,0,-72,0,0,0, + 0,0,0,0,0,0,0,-234,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-15,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-35,0,0,0,0, - 0,0,0,0,0,-41,0,0,0,-261, - 0,0,0,0,-373,0,0,0,0,-511, - 0,0,0,0,0,-22,0,0,0,0, - 0,-36,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-382,0,0,0,0,0, - 0,0,0,0,-21,0,0,0,0,0, - 0,0,0,-319,0,0,0,0,0,0, + -406,0,0,0,0,0,-25,0,0,0, + -48,0,0,0,-110,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-15,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-17,0,0,0, - -42,0,0,0,0,-358,0,0,0,-407, + 0,0,0,0,0,0,-31,0,0,0, + 0,0,0,0,0,0,-109,0,0,0, + -439,0,0,0,0,0,-86,0,0,0, + -35,0,-6,0,0,0,0,0,-36,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-89,0, - 0,0,0,0,0,0,-512,0,-30,0, - 0,0,0,-44,-57,0,0,-157,0,0, - 0,-189,0,0,-83,0,0,0,0,0, - 0,-58,0,-359,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-59,0,0,0, - 0,0,0,0,0,-16,0,0,0,-342, + 0,-348,0,0,0,0,0,0,0,0, + -161,-150,0,0,0,-317,0,0,0,-296, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-109,0,-60,0, - 0,0,-68,0,0,0,-61,0,0,0, + 0,0,0,0,0,0,-44,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,0,0,0,0,0,0,0, - 0,0,0,-110,0,-62,0,0,0,0, - -34,-14,0,0,0,0,0,-388,0,0, - 0,-136,0,0,0,0,0,0,0,0, + -57,0,0,0,0,0,0,0,-58,0, + -59,0,0,0,-189,0,0,0,0,0, + -455,0,0,-194,0,0,0,-60,0,0, + 0,0,0,0,-340,0,-357,0,0,0, + -330,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-61,0,-62, + 0,0,0,-231,0,0,0,0,-16,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-63,0,0,0,0,0,-469,-311, - 0,0,0,-137,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-64,0,0,0, - 0,0,0,0,0,0,-251,0,0,0, - 0,-65,0,0,0,-138,0,0,0,-66, + 0,0,0,0,0,0,0,0,0,-63, + 0,-64,0,0,0,-68,0,0,0,-65, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-67,0, - 0,0,0,0,0,0,0,0,-37,0, - 0,0,0,-69,-71,0,0,-139,0,0, - 0,-79,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-91,0, - 0,0,0,0,-509,-93,-103,0,0,-140, - 0,0,0,-184,0,0,0,0,0,0, + 0,0,0,0,0,0,-246,0,-20,0, + 0,0,0,0,0,0,0,-230,0,0, + 0,-352,0,0,0,-136,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-112,0,0,0,0,0,0,0, - -149,0,-155,0,0,0,0,-151,-152,0, - 0,-141,0,0,0,-153,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-161,0,0,0,0,0, - 0,0,-162,0,0,0,0,0,0,-167, - -168,0,0,-142,0,0,0,-175,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-240,0,0,0,0,-137,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-176,0,-156,0,0,0, - 0,-177,-178,0,0,-143,0,0,0,-186, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-187,0, - 0,0,0,0,0,0,-188,0,-158,0, - 0,0,0,-201,-202,0,0,-144,0,0, - 0,-203,0,0,0,0,0,0,0,0, + -346,0,0,0,0,0,0,0,-66,0, + -102,0,0,0,-309,0,-67,0,0,-138, + 0,0,0,-69,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -204,0,0,0,0,0,0,0,-205,0, - -160,0,0,0,0,-206,-207,0,0,-145, - 0,0,0,-208,0,0,0,0,0,0, + 0,0,-254,0,0,0,0,0,0,0, + -71,0,-299,0,0,0,-379,0,-91,0, + 0,-139,0,0,0,-88,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-209,0,0,0,0,0,0,0, - -210,0,-163,0,0,0,0,-211,-212,0, - 0,-146,0,0,0,-185,0,0,0,0, + 0,0,0,0,-93,0,0,0,0,0, + 0,0,-103,0,-21,0,0,0,0,-459, + 0,0,0,-140,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-213,0,0,0,0,0, - 0,0,-214,0,-169,0,0,0,0,-215, - -216,0,0,-171,0,0,0,-381,0,0, + 0,0,0,0,0,0,-294,0,0,0, + 0,0,0,0,-112,0,0,0,0,0, + 0,-149,-151,0,0,-141,0,0,0,-89, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-217,0,0,0, - 0,0,0,0,-218,0,0,0,0,0, - -445,-219,-236,0,0,-256,0,0,0,-237, + 0,0,0,0,0,0,0,0,-152,0, + 0,0,0,0,0,0,0,0,-394,0, + 0,0,0,0,-153,0,0,-142,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-238,0, - 0,0,0,0,0,0,-239,0,-224,0, - 0,0,0,-260,-262,0,0,-514,0,0, - 0,-263,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -274,0,0,0,0,0,0,0,-275,0, - -225,0,0,0,0,-191,-172,0,0,-310, - 0,0,0,-332,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-160,-166,0,0,-143, + 0,0,0,-167,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -281,0,0,0,0,0,-346,0,0,0, + 0,0,-172,0,0,0,0,0,0,0, + -175,0,-30,0,0,0,0,-176,-177,0, + 0,-144,0,0,0,-178,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-186,0,0,0,0,0, + 0,0,-187,0,-34,0,0,0,0,-188, + -201,0,0,-145,0,0,0,-202,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-203,0,0,0, + 0,0,0,0,-204,0,-37,0,0,0, + 0,-205,-206,0,0,-146,0,0,0,-207, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-194,0,0,0,-104,-282,0, - 0,0,0,0,-284,-366,0,0,0,0, + 0,0,0,0,0,0,0,0,-208,0, + 0,0,0,0,0,0,-209,0,-155,0, + 0,0,0,-210,-211,0,0,-170,0,0, + 0,-212,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -213,0,0,0,0,0,0,0,-214,0, + -250,0,0,0,0,-215,-216,0,0,-255, + 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,-368,0, - 0,0,-385,0,0,0,0,0,0,0, + 0,0,-217,0,0,0,0,0,0,0, + -218,0,-157,0,0,0,0,-219,-235,0, + 0,-513,0,0,0,-236,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-286,0,0,0,0, - 0,0,0,-328,0,-293,0,0,0,-335, - 0,0,0,-105,-406,0,0,0,0,0, - -298,-386,0,0,0,0,0,0,0,0, + 0,0,0,0,-237,0,0,0,0,0, + 0,0,-238,0,-159,0,0,0,0,-171, + -508,0,0,-308,0,0,0,-256,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-374,0,0,0, + 0,0,0,0,-259,0,-366,0,0,0, + -344,0,0,0,-261,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-299,0,0,0,-448,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-198,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-300, - 0,-304,0,0,0,-380,0,0,0,-173, - -305,0,0,0,0,0,-320,-148,0,0, + -364,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-229,0, - 0,0,0,0,-135,0,0,0,0,0, + 0,-262,0,-272,0,0,0,-383,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-200,0,0, - 0,0,0,0,0,-321,0,-133,0,0, - 0,-174,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -180,0,0,0,0,0,0,0,-130,0, + 0,0,0,0,0,0,0,0,-273,0, + -279,0,0,0,-333,0,0,0,-280,-104, + 0,0,0,0,0,-282,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,-131,0,0, + 0,0,0,0,0,0,0,0,-284,0, + -291,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,-297,0,0, + 0,0,0,0,0,-298,0,-302,0,0, + 0,-378,0,0,0,-303,-105,0,0,0, + 0,0,-342,-318,-148,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -247,0,0,0,0,-132,0,0,0,-367, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-257,0, - 0,0,0,-124,0,0,0,-291,0,0, + 0,0,0,0,0,-162,0,-319,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,-329,0,0,0, - -125,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-327,0,0,0,0,0, + 0,0,-331,0,-133,0,0,0,-173,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-126,0,0, + 0,0,0,0,0,0,0,-174,0,0, + 0,0,0,0,0,-130,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -333,0,0,0,-127,0,0,0,-334,0, + 0,0,0,0,-131,0,0,0,-191,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-345,0,0, - 0,-23,0,0,0,-347,0,-405,0,0, - -128,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-271,0,0, + 0,0,-132,0,0,0,-332,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-363,0,-415, - -371,-285,0,0,0,0,-374,0,0,0, - 0,0,-78,-267,-195,-170,-129,0,0,0, + 0,0,0,0,0,-343,0,0,0,0, + -124,0,0,0,-443,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-13, - 0,0,-398,-80,0,0,0,0,0,0, - -408,-245,-230,0,0,0,0,0,-199,-250, - 0,0,0,0,-364,-244,0,-376,-399,0, - 0,0,0,-228,0,0,0,0,0,0, - 0,0,-166,0,0,0,0,-430,0,0, - -234,0,0,0,0,0,0,0,0,0, - -395,0,0,-402,0,0,0,0,0,0, - 0,0,0,0,-87,0,0,0,-154,0, - 0,0,0,0,-403,0,0,0,0,0, - 0,0,0,0,0,-409,0,0,0,0, - 0,-413,0,0,0,0,-446,-411,-297,0, - 0,0,0,0,0,-147,0,-193,0,0, + 0,0,0,0,0,0,0,-125,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-420,0,0, - 0,0,0,0,0,0,0,0,0,-243, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-114,0,0,0,0, + -92,0,0,0,-126,0,0,0,-200,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-119,0, - 0,0,-255,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-413,0,0, + 0,-127,0,0,0,-345,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-427,0,-233,0,0,0,-120,0,0, + 0,0,0,0,-428,0,0,0,0,-361, + 0,-369,-372,-32,0,0,0,0,0,0, + 0,0,0,0,-396,-397,-400,0,-165,0, + 0,0,-365,0,-101,-168,-169,0,0,0, + -13,-401,0,0,-407,0,0,0,0,-223, + 0,0,0,0,0,0,0,0,0,-409, + 0,-304,0,0,-444,0,0,0,0,0, + 0,0,0,-180,0,0,-158,0,0,0, + 0,0,0,0,0,0,0,0,-23,0, + 0,0,-434,0,-350,-195,0,0,0,0, + 0,0,0,0,0,-224,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -14,0,-233,0,0,0,0,0,0,0, + 0,-418,0,0,0,-33,0,0,0,0, + 0,0,0,0,0,0,0,-393,0,-119, 0,0,0,0,0,0,0,0,0,0, - -252,0,-322,0,0,0,0,-419,0,0, - 0,0,0,-106,-331,-296,0,0,-428,0, - -397,0,0,0,0,0,0,0,0,0, - 0,0,-495,0,-265,0,0,0,0,-435, - 0,0,0,0,0,0,-254,0,0,0, - 0,-232,0,0,-447,-96,-283,0,0,0, - 0,-449,0,0,-268,-273,-290,0,0,-301, - -82,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-306,0,-454,0, - 0,0,0,0,0,0,0,0,0,-498, - 0,0,0,-451,0,0,0,0,0,0, - -302,0,-357,0,0,0,-452,-85,0,0, - 0,0,0,0,0,-453,0,0,0,0, - 0,-455,-318,0,0,0,0,0,0,0, - 0,0,-468,-270,0,0,0,-473,0,-470, - -309,0,0,-312,0,0,0,0,-269,0, - -471,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-370,0,-436,-46,-516, - 0,-472,0,0,0,0,0,0,0,0, - -84,-379,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-502,0,0,0, - 0,0,0,0,0,-327,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -477,-481,0,0,0,0,0,0,0,0, - -486,0,0,-360,0,0,-496,0,0,0, - -424,0,0,0,0,0,0,0,0,0, - -414,0,0,0,0,-504,0,0,0,0, - -272,0,-493,0,-337,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-503, - -510,-220,-159,0,0,0,-313,0,0,0, - 0,-242,-314,0,0,0,0,-515,-76,0, + 0,0,0,0,0,0,0,0,0,-289, + 0,-266,0,-50,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-315,0,-508,0,0,0,0,0, - -393,0,0,0,0,-325,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-101,0,0,0, - 0,0,0,0,0,0,0,-355,0,0, + -232,0,0,0,0,0,-429,0,0,0, + 0,0,0,0,-229,0,-239,0,0,0, + 0,0,0,0,0,0,-128,0,0,0, + -425,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-495, + 0,0,-129,0,0,0,-307,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-339,0,-520,-95,0,-341,0,0,0, + 0,0,0,0,0,-453,0,0,-268,0, + -426,0,0,0,-341,0,0,0,-460,0, + 0,0,0,0,0,-260,0,0,0,-116, + -433,-243,-445,0,0,0,0,0,0,-447, + -449,-456,-228,0,0,0,0,0,-77,-450, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-81,0, - 0,0,0,0,-111,0,0,0,0,0, - 0,0,0,0,0,0,-352,0,0,0, - 0,0,0,0,0,0,0,0,0,-349, - 0,0,-523,0,-457,0,0,0,0,-353, - 0,0,0,0,0,-356,0,0,0,0, + 0,0,0,0,0,-472,0,0,0,0, + 0,0,0,0,0,0,0,0,-494,0, 0,0,0,0,0,0,0,0,0,0, - 0,-431,0,0,-362,0,0,0,0,-400, - 0,0,0,0,0,-422,0,0,0,0, - 0,0,0,0,0,0,-519,0,0,0, + -115,-358,0,0,0,0,0,-220,0,0, + 0,0,0,0,0,-451,-452,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,-121,0,0,0,0,0, + 0,0,-515,0,0,-501,0,-475,0,0, + -367,0,-454,0,0,0,0,0,0,0, + -467,0,0,0,0,0,0,0,0,0, + 0,-81,0,0,0,0,0,-469,0,-470, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-122,0,0, + -244,0,0,0,0,0,0,0,0,0, + 0,0,-471,-80,0,-503,0,-82,0,0, + -267,0,0,0,0,0,0,0,0,0, + -476,0,0,0,0,0,0,0,0,-163, + 0,0,0,-190,0,0,0,-422,0,-270, + 0,0,-193,0,0,-480,0,0,-84,0, 0,0,0,0,0,0,0,0,0,0, + 0,-179,-485,0,0,-507,0,0,-368,0, + 0,-355,0,0,0,0,0,-492,0,-362, 0,0,0,0,0,0,0,0,0,0, - -123,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-199,0,-269, + 0,0,0,0,0,-249,-399,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-303,0,0,0,0,0,0, - 0,0,0,0,-391,-115,0,-442,0,0, - -336,0,-394,-412,0,-432,0,0,0,-378, - -401,0,0,0,-271,0,0,0,-396,0, + 0,0,0,0,0,-519,0,0,0,0, + -502,0,0,0,0,0,0,-197,0,0, + 0,0,0,0,0,0,0,0,0,-306, + 0,0,0,-338,0,0,0,-76,0,-404, + -242,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,-439,-416,0,0, + 0,-464,0,-509,0,-522,0,0,0,0, + 0,0,0,0,0,-147,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-295, + -514,0,0,0,0,0,0,0,0,-274, + 0,0,0,0,0,0,0,0,0,-251, + -391,0,0,0,0,0,0,0,0,0, + -287,0,0,0,0,0,0,0,-283,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-421,0,0, + 0,0,0,0,0,0,0,0,-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,-437,0,0,0,0, - 0,0,0,0,-196,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-276, - 0,0,0,-418,0,0,0,0,0,-6, - 0,0,0,0,0,-426,0,0,-450,0, - 0,0,0,-465,0,0,0,0,0,-289, - 0,0,0,0,0,-294,0,0,0,0, - 0,0,0,0,0,0,0,0,-429,-458, - -459,0,0,0,0,0,0,0,0,0, - -49,0,0,0,-462,0,0,0,0,0, + 0,0,0,-292,0,0,0,0,-293,0, + 0,0,-83,0,0,0,-351,0,-96,0, + 0,0,0,0,0,0,-320,0,0,0, + 0,-390,0,0,0,0,0,-114,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-295,0,0,0,0,0,0,0, - 0,-50,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-300,0,0,-182, + 0,-334,0,0,0,0,-402,0,0,-386, + 0,0,0,0,-183,0,0,-275,0,0, + -154,0,0,0,0,0,-106,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,-51,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-52,0,0,0,0, + 0,0,-373,0,0,0,0,-281,0,0, + 0,0,0,0,0,0,0,-241,0,-288, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-53,0,0, + 0,0,0,0,-310,0,0,-316,0,-325, + 0,0,0,0,0,-311,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-54, + 0,0,0,0,0,0,0,-411,0,0, + 0,-47,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,-335,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-324,0,0, + 0,-122,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,-123,0,0,0,-312,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,-301,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-108,0,0,0,0, + -276,-277,-46,-192,0,0,0,0,-376,-337, + 0,-313,0,0,-264,0,0,0,0,-323, + 0,0,0,0,0,0,0,-412,0,0, + 0,0,-321,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-117,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-118, + 0,0,0,0,0,-435,-403,0,0,0, + 0,0,-253,0,0,0,0,0,0,0, + 0,0,0,-100,0,0,0,0,0,-398, + 0,0,0,0,0,-512,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -97,0,0,0,0,0,0,0,0,0, + 0,0,-353,0,0,-278,0,0,0,0, + -497,0,0,0,0,0,0,0,0,0, + -164,0,0,0,0,-354,0,0,0,0, + 0,0,0,0,0,-339,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-181,0,0,0,0,0,0,0,0, + -347,0,0,0,0,0,0,0,-360,-417, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-248,0,0,0,-467,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,-361,0,0,0,-484, - 0,0,0,0,0,0,-183,-277,-488,-278, - 0,0,-338,0,0,0,0,-198,0,0, + 0,0,0,-52,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-164,0,0,0,0,-479,0,-480,0, - 0,-434,0,0,0,0,0,-485,0,-97, + 0,0,0,0,0,-53,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -490,0,0,0,0,0,0,-372,0,0, - -494,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-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,-192,-476,0,-377,0,0, - -505,0,0,0,0,-499,0,0,0,0, - 0,-326,0,0,0,0,0,0,0,-392, - 0,-517,-522,0,0,0,0,0,0,0, - -375,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-500,0,0,0,0, - 0,-417,-482,-279,-483,0,0,0,0,0, - 0,0,-518,0,0,0,0,0,0,0, - 0,-492,0,-280,0,0,0,0,0,0, - 0,0,-521,0,0,0,0,-33,0,0, - 0,-425,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-501,0,-387,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-190,0,0,0,0, + 0,-56,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-506,0,0,0,0, + 0,0,0,-108,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-98,0,0,0, - 0,0,0,0,0,0,-1,0,0,0, + 0,0,0,0,0,-117,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-316,0,0,-222,0, - 0,0,0,0,-99,0,0,0,0,0, - 0,0,0,0,0,-197,0,0,0,-249, - 0,0,-317,0,0,-463,0,0,0,0, - 0,0,0,0,0,0,0,0,-441,0, - 0,0,0,0,0,0,-223,0,0,0, - 0,0,0,0,0,0,-330,0,0,0, + 0,0,0,0,0,0,0,-118,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,0,0, - 0,-323,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-384,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-365, - 0,0,0,0,0,0,-438,0,0,0, - 0,0,0,0,0,0,0,-474,0,0, - 0,0,0,-266,0,0,0,0,0,0, - 0,-433,0,0,0,0,0,0,0,0, + 0,-247,0,0,0,-392,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-359,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-371,0,0, + 0,0,0,0,0,0,0,0,-389,-328, + -336,0,0,0,0,-430,0,0,0,0, + 0,0,-349,0,0,0,-465,0,0,-462, + -414,-420,0,0,0,-410,0,-419,0,0, + 0,0,0,-416,0,0,0,0,0,-510, + 0,-370,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-387, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-463,-461,0,0, + 0,0,-375,0,0,0,0,0,0,0, + -483,0,0,0,0,0,0,-424,0,0, + -437,0,0,0,0,0,-487,0,0,-448, 0,0,0,0,0,0,0,0,0,0, - 0,0,-32,0,0,0,0,0,0,0, - 0,0,0,-507,0,0,0,0,0,0, - 0,0,0,0,0,0,-343,0,0,0, + 0,0,0,-415,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,-466,0,0,0,0,0,0, - 0,0,0,0,-308,0,0,0,0,0, - -340,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-489,0, + 0,-388,0,0,0,-427,0,0,0,0, + -457,0,0,0,0,0,0,-486,-98,-432, + -458,0,0,0,-423,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-481, + 0,0,0,0,0,-482,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-314, + 0,0,0,0,0,0,0,0,0,-489, + 0,0,0,0,0,0,0,0,0,-505, + 0,0,0,0,-466,0,0,0,0,0, + 0,-478,0,0,0,0,0,0,0,-479, + 0,-408,0,0,0,-484,0,0,0,0, + -1,0,0,0,0,0,0,0,0,0, + 0,-329,0,-511,0,0,0,-491,0,0, + -500,0,-493,0,0,0,0,0,0,-504, + 0,0,0,0,0,0,0,-380,-85,0, + 0,0,-222,0,0,0,0,0,-99,0, + -498,0,0,0,0,0,0,0,-405,-285, + -506,0,0,0,0,0,0,0,-516,0, + -499,0,0,0,0,0,-517,-520,0,0, + 0,0,0,0,-421,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-351,0,0,0,-389, - 0,0,0,0,0,0,0,-390,0,0, - 0,0,0,0,0,0,0,0,-410,0, - 0,0,0,0,0,0,0,-464,0,0, - -443,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-423,0,0,0,0, - 0,0,-491,0,0,0,0,0,0,0, - 0,0,0,0,-440,0,0,0,0,0, - 0,0,0,0,0,0,-47,0,0,0, + 0,0,0,0,0,0,0,0,-315,-363, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-100,0,0,0, - 0,0,-165,0,0,0,0,0,0,0, - 0,0,0,0,-246,0,0,0,0,0, - 0,0,-253,0,0,0,0,0,-258,0, - 0,0,-9,0,0,0,0,-487,0,0, - 0,0,0,0,0,-475,0,0,-478,0, - -444,0,0,0,0,0,0,0,0,0, - 0,0,0,-497,0,0,0,0,0,0, + 0,0,-382,0,0,0,0,0,0,0, + 0,0,0,0,-521,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -438,0,0,0,0,0,0,0,0,-436, 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,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,0,0, + 0,0,0,0,0,0,0,-488,0,0, + 0,0,0,0,0,0,0,0,0,-377, 0,0,0,0,0,0,0,0,0,0, + 0,0,-490,0,0,0,0,0,-245,0, + 0,0,0,0,0,0,0,-95,0,-111, + 0,0,0,0,-385,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-440,0,0,0,0, + 0,0,0,0,-252,0,0,0,-257,0, + 0,0,0,0,0,0,-9,-473,0,0, + 0,0,0,0,0,0,0,0,0,-474, + 0,-431,-441,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,-442, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-496,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0 + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 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; @@ -535,534 +529,529 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface BaseAction { public final static char baseAction[] = { - 169,4,48,74,74,31,31,63,63,38, - 38,190,190,191,191,192,192,1,1,15, - 15,15,15,15,15,15,15,16,16,16, - 14,11,11,8,8,8,8,8,8,2, - 64,64,5,5,12,12,12,12,44,44, - 133,133,134,62,62,42,17,17,17,17, + 168,4,49,75,75,31,31,64,64,38, + 38,42,42,191,191,192,192,193,193,1, + 1,15,15,15,15,15,15,15,15,16, + 16,16,14,11,11,8,8,8,8,8, + 8,2,65,65,5,5,12,12,12,12, + 45,45,132,132,133,63,63,43,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,22,22,22,24,24,24, - 24,25,25,25,26,26,26,27,27,27, - 27,27,28,28,28,29,29,30,30,32, - 32,34,34,35,35,36,36,41,41,40, - 40,40,40,40,40,40,40,40,40,40, - 40,40,39,33,141,141,95,95,173,173, - 90,193,193,75,75,75,75,75,75,75, - 75,75,76,76,76,73,73,58,58,174, - 174,77,77,77,101,101,175,175,78,78, - 78,176,176,79,79,79,79,79,80,80, - 82,82,82,82,82,82,82,49,49,49, - 49,49,114,114,115,115,50,177,23,23, - 23,23,23,47,47,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,99,119, - 119,119,119,119,119,117,117,117,118,118, - 150,150,149,149,121,121,102,68,68,69, - 70,52,46,151,151,53,51,84,84,152, - 152,142,142,104,104,65,65,153,153,60, - 60,55,55,154,61,61,71,71,57,57, - 57,88,88,97,96,96,59,59,56,56, - 54,54,43,100,100,100,91,91,91,92, - 92,93,93,93,94,94,105,105,105,107, - 107,106,106,194,194,89,89,179,179,179, - 179,179,123,45,45,156,178,178,124,124, - 124,124,180,180,37,37,116,116,125,125, - 125,125,108,108,120,120,120,126,127,127, - 127,127,127,127,127,127,127,127,127,159, - 159,158,158,181,181,160,160,160,160,161, - 182,110,109,109,183,183,162,162,162,162, - 98,98,98,184,184,9,9,10,185,185, - 186,163,155,155,164,164,165,166,166,6, - 6,7,167,167,167,167,167,167,167,167, - 167,167,167,167,167,167,167,167,167,167, - 167,167,167,167,167,167,167,167,167,167, - 167,167,167,167,167,167,167,167,167,167, - 167,167,167,167,66,72,72,168,168,129, - 129,130,130,130,130,130,130,3,131,131, - 128,128,111,111,83,67,81,157,157,112, - 112,187,187,187,132,132,122,122,188,188, - 169,169,103,881,39,1727,1719,823,4176,34, - 572,31,35,580,30,32,1700,29,27,56, - 1255,112,82,83,114,1272,1600,1349,1307,1386, - 1357,1467,1433,1490,1962,1482,1357,1509,1524,149, - 278,4657,29,164,150,1849,39,641,36,4332, - 117,34,572,338,35,580,512,3977,2269,39, - 641,36,237,4637,34,572,31,35,580,30, - 32,1254,29,27,56,1255,112,82,83,114, - 1272,2056,1349,1307,1386,1357,1467,1861,240,235, - 236,151,4103,3590,1075,2700,39,392,2542,31, - 792,321,279,682,2395,315,1000,248,39,284, - 521,293,4663,248,39,448,351,2582,4579,247, - 250,253,256,3269,2484,39,641,36,1532,400, - 34,572,339,35,580,492,343,1826,1574,348, - 233,2657,39,282,1566,522,912,2593,2624,2931, - 3051,2978,1418,39,641,36,2542,4637,34,572, - 31,35,580,30,32,1254,29,27,56,1255, - 112,82,83,114,1272,342,1349,1307,1386,1357, - 1467,1433,1490,359,1482,1182,1509,1524,149,993, - 388,422,512,150,1321,2874,2578,39,285,3196, - 2075,2136,2605,2832,314,4062,513,1418,39,641, - 36,2542,4637,34,572,31,35,580,30,32, - 1254,29,27,56,1255,112,82,83,114,1272, - 342,1349,1307,1386,1357,1467,1433,1490,433,1482, - 398,1509,1524,149,2596,2185,1857,512,150,2542, - 2874,1364,39,1567,47,512,3092,46,572,2391, - 3485,513,63,508,1138,39,641,36,2582,4266, - 34,572,31,35,580,63,32,441,2716,2728, - 1608,328,334,1609,402,1418,39,641,36,2542, - 4637,34,572,31,35,580,30,32,1254,29, - 27,56,1255,112,82,83,114,1272,342,1349, - 1307,1386,1357,1467,1433,1490,381,1482,508,1509, - 1524,149,68,1003,3310,512,150,4138,2874,512, - 944,908,38,325,360,1616,2410,327,1609,513, - 1672,39,641,36,2542,4637,34,572,31,35, - 580,30,32,1254,29,27,56,1255,112,82, - 83,114,1272,342,1349,1307,1386,1357,1467,1433, - 1490,415,1482,31,1509,1524,149,1132,469,2875, - 512,150,1859,2874,993,512,39,846,385,512, - 39,287,48,1601,513,244,508,1725,1725,67, - 3372,1594,39,641,36,2620,162,34,572,338, - 35,580,2308,1651,1177,865,1609,2406,1484,39, - 641,36,426,4637,34,572,31,35,580,30, - 32,1254,29,27,56,1255,112,82,83,114, - 1272,237,1349,1307,1386,1357,1467,1433,1490,3590, - 1482,509,1509,1524,149,1819,792,321,378,150, - 100,315,1000,512,39,2069,1046,245,235,236, - 239,493,326,512,39,846,385,1545,39,641, - 36,381,4637,34,572,31,35,580,30,32, - 1254,29,27,56,1255,112,82,83,114,1272, - 1725,1349,1307,1386,1357,1467,1433,1490,1999,1482, - 55,1509,1524,149,557,52,2395,378,150,2221, - 39,641,36,645,4637,34,572,31,35,580, - 30,32,1254,29,27,56,1255,92,82,83, - 379,324,382,1738,39,641,36,322,4637,34, - 572,31,35,580,30,32,1254,29,27,56, - 1255,112,82,83,114,1272,2395,1349,1307,1386, - 1357,1467,1433,1490,455,1482,733,1509,1524,149, - 2680,39,296,378,150,2164,39,641,36,2881, - 1962,34,572,338,35,580,937,377,1987,416, - 3169,383,1951,39,641,36,2930,4637,34,572, - 31,35,580,30,32,1254,29,27,56,1255, - 112,82,83,114,1272,1962,1349,1307,1386,1357, - 1467,1433,1490,3590,1482,31,1509,1524,149,737, - 2232,321,164,150,1951,39,641,36,520,4637, - 34,572,31,35,580,30,32,1254,29,27, - 56,1255,112,82,83,114,1272,376,1349,1307, - 1386,1357,1467,1433,1490,451,1482,1011,1509,1524, - 149,1118,2161,375,372,150,1951,39,641,36, - 1962,4637,34,572,31,35,580,30,32,1254, - 29,27,56,1255,112,82,83,114,1272,1725, - 1349,1307,1386,1357,1467,1433,1490,1962,1482,31, - 1509,1524,149,815,996,2466,372,150,512,39, - 1981,1939,248,39,284,1014,1643,4675,2971,317, - 3972,654,998,1566,1951,39,641,36,375,4637, - 34,572,31,35,580,30,32,1254,29,27, - 56,1255,112,82,83,114,1272,371,1349,1307, - 1386,1357,1467,1433,1490,519,1482,1337,1509,1524, - 149,373,438,454,372,150,1786,39,641,36, - 2328,4637,34,572,31,35,580,30,32,1254, - 29,27,56,1255,112,82,83,114,1272,370, - 1349,1307,1386,1357,1467,1433,1490,1092,1482,1838, - 1509,1525,170,1606,39,641,36,997,4637,34, - 572,31,35,580,30,32,1254,29,27,56, - 1255,112,82,83,114,1272,3629,1349,1307,1386, - 1357,1467,1433,1490,1011,1482,67,1509,1524,149, - 327,31,31,148,150,715,1132,368,512,39, - 846,385,1951,39,641,36,928,4637,34,572, - 31,35,580,30,32,1254,29,27,56,1255, - 112,82,83,114,1272,1096,1349,1307,1386,1357, - 1467,1433,1490,596,1482,429,1509,1524,149,2617, - 512,1971,161,150,1951,39,641,36,2064,4637, - 34,572,31,35,580,30,32,1254,29,27, - 56,1255,112,82,83,114,1272,503,1349,1307, - 1386,1357,1467,1433,1490,1155,1482,2075,1509,1524, - 149,852,1017,442,160,150,1951,39,641,36, - 767,4637,34,572,31,35,580,30,32,1254, - 29,27,56,1255,112,82,83,114,1272,591, - 1349,1307,1386,1357,1467,1433,1490,4045,1482,31, - 1509,1524,149,948,1144,864,159,150,1951,39, - 641,36,2688,4637,34,572,31,35,580,30, - 32,1254,29,27,56,1255,112,82,83,114, - 1272,518,1349,1307,1386,1357,1467,1433,1490,1087, - 1482,291,1509,1524,149,2694,1164,1399,158,150, - 1951,39,641,36,679,4637,34,572,31,35, - 580,30,32,1254,29,27,56,1255,112,82, - 83,114,1272,1296,1349,1307,1386,1357,1467,1433, - 1490,1446,1482,31,1509,1524,149,4249,1264,1429, - 157,150,1951,39,641,36,1479,4637,34,572, - 31,35,580,30,32,1254,29,27,56,1255, - 112,82,83,114,1272,1841,1349,1307,1386,1357, - 1467,1433,1490,1012,1482,352,1509,1524,149,99, - 1141,1495,156,150,1951,39,641,36,1516,4637, - 34,572,31,35,580,30,32,1254,29,27, - 56,1255,112,82,83,114,1272,518,1349,1307, - 1386,1357,1467,1433,1490,1602,1482,31,1509,1524, - 149,4297,1667,1835,155,150,1951,39,641,36, - 1184,4637,34,572,31,35,580,30,32,1254, - 29,27,56,1255,112,82,83,114,1272,2498, - 1349,1307,1386,1357,1467,1433,1490,1327,1482,31, - 1509,1524,149,611,2003,2373,154,150,1951,39, - 641,36,1939,4637,34,572,31,35,580,30, - 32,1254,29,27,56,1255,112,82,83,114, - 1272,1963,1349,1307,1386,1357,1467,1433,1490,2603, - 1482,1471,1509,1524,149,2654,243,419,153,150, - 1951,39,641,36,595,4637,34,572,31,35, - 580,30,32,1254,29,27,56,1255,112,82, - 83,114,1272,771,1349,1307,1386,1357,1467,1433, - 1490,1340,1482,31,1509,1524,149,2633,2001,1960, - 152,150,1951,39,641,36,1160,4637,34,572, - 31,35,580,30,32,1254,29,27,56,1255, - 112,82,83,114,1272,1073,1349,1307,1386,1357, - 1467,1433,1490,2368,1482,31,1509,1524,149,2671, - 1634,772,151,150,1951,39,641,36,2328,4637, - 34,572,31,35,580,30,32,1254,29,27, - 56,1255,112,82,83,114,1272,1301,1349,1307, - 1386,1357,1467,1433,1490,2054,1482,353,1509,1524, - 149,2082,1715,1615,165,150,1951,39,641,36, - 1681,4637,34,572,31,35,580,30,32,1254, - 29,27,56,1255,112,82,83,114,1272,1702, - 1349,1307,1386,1357,1467,1433,1490,1747,1482,31, - 1509,1524,149,2925,2182,2205,146,150,2173,39, - 641,36,1638,4637,34,572,31,35,580,30, - 32,1254,29,27,56,1255,112,82,83,114, - 1272,1527,1349,1307,1386,1357,1467,1433,1490,1836, - 1482,1888,1509,1524,149,3019,1725,2535,195,150, - 2269,39,641,36,1206,4637,34,572,31,35, - 580,30,32,1254,29,27,56,1255,112,82, - 83,114,1272,517,1349,1307,1386,1357,1467,1433, - 1490,1855,1482,1220,1509,1525,170,2269,39,641, - 36,442,4637,34,572,31,35,580,30,32, - 1254,29,27,56,1255,112,82,83,114,1272, - 380,1349,1307,1386,1357,1467,1433,1490,1439,1482, - 3914,1509,1525,170,2484,39,641,36,2395,2203, - 34,572,44,35,580,1768,2269,39,641,36, - 295,4637,34,572,31,35,580,30,32,1254, - 29,27,56,1255,112,82,83,114,1272,3892, - 1349,1307,1386,1357,1467,1433,1490,76,1482,1206, - 1509,1525,170,2269,39,641,36,418,4637,34, - 572,31,35,580,30,32,1254,29,27,56, - 1255,112,82,83,114,1272,2184,1349,1307,1386, - 1357,1467,1433,1490,2299,1482,1573,1509,1525,170, - 2484,39,641,36,2395,1857,34,572,776,35, - 580,1921,2269,39,641,36,2681,4637,34,572, - 31,35,580,30,32,1254,29,27,56,1255, - 112,82,83,114,1272,28,1349,1307,1386,1357, - 1467,1433,1490,302,1482,1938,1509,1525,170,2317, - 39,641,36,417,4637,34,572,31,35,580, - 30,32,1254,29,27,56,1255,112,82,83, - 114,1272,77,1349,1307,1386,1357,1467,1433,1490, - 2301,1482,2278,1509,1525,170,2484,39,641,36, - 2395,2230,34,572,2155,35,580,2078,2269,39, - 641,36,420,4637,34,572,31,35,580,30, - 32,1254,29,27,56,1255,112,82,83,114, - 1272,75,1349,1307,1386,1357,1467,1433,1490,31, - 1482,94,1902,3131,108,2269,39,641,36,3042, - 4637,34,572,31,35,580,30,32,1254,29, - 27,56,1255,112,82,83,114,1272,1725,1349, - 1307,1386,1357,1467,1433,1490,2080,1887,2269,39, - 641,36,2395,4637,34,572,31,35,580,30, - 32,1254,29,27,56,1255,112,82,83,114, - 1272,2395,1349,1307,1386,1357,1467,1433,1860,2269, - 39,641,36,74,4637,34,572,31,35,580, - 30,32,1254,29,27,56,1255,112,82,83, - 114,1272,59,1349,1307,1386,1357,1819,2269,39, - 641,36,57,4637,34,572,31,35,580,30, - 32,1254,29,27,56,1255,112,82,83,114, - 1272,2654,1349,1307,1386,1845,2269,39,641,36, - 1725,4637,34,572,31,35,580,30,32,1254, - 29,27,56,1255,112,82,83,114,1272,2660, - 1349,1307,1386,1853,2269,39,641,36,855,4637, - 34,572,31,35,580,30,32,1254,29,27, - 56,1255,112,82,83,114,1272,909,1349,1307, - 1776,2269,39,641,36,2064,4637,34,572,31, - 35,580,30,32,1254,29,27,56,1255,112, - 82,83,114,1272,103,1349,1307,1777,2269,39, - 641,36,387,4637,34,572,31,35,580,30, - 32,1254,29,27,56,1255,112,82,83,114, - 1272,2394,1349,1307,1784,2269,39,641,36,1657, - 4637,34,572,31,35,580,30,32,1254,29, - 27,56,1255,112,82,83,114,1272,821,1349, - 1307,1803,2365,39,846,385,2455,2695,2700,39, - 392,2269,39,641,36,242,4637,34,572,31, - 35,580,30,32,1254,29,27,56,1255,112, - 82,83,114,1272,2144,1349,1811,2457,2347,278, - 2529,2438,1532,39,641,36,4332,2471,34,572, - 338,35,580,1169,2660,2395,1182,2269,39,641, - 36,237,4637,34,572,31,35,580,30,32, - 1254,29,27,56,1255,112,82,83,114,1272, - 68,1349,1818,2545,2019,4138,93,240,235,236, - 3590,2735,31,1372,1971,2668,624,792,321,2395, - 31,279,315,1000,2438,855,1654,2316,1984,2538, - 2542,4138,237,351,2056,2596,2879,386,247,250, - 253,256,3269,512,39,846,385,1532,177,2582, - 58,1182,533,343,1826,1574,348,331,249,235, - 236,1725,2247,237,1241,912,2593,2624,2931,3051, - 2978,234,333,334,188,688,39,846,385,2032, - 278,162,355,331,4138,2582,186,3599,4443,252, - 235,236,526,209,220,1115,2458,208,217,218, - 219,221,512,39,846,385,175,1,2540,31, - 2596,533,55,3471,3162,359,31,724,31,1650, - 1132,174,1132,189,173,176,177,178,179,180, - 234,2917,2075,2136,290,104,332,2663,2576,428, - 162,365,280,389,422,186,3599,330,334,162, - 2395,2861,209,220,1115,1895,208,217,218,219, - 221,3191,2926,1979,2457,175,2016,39,641,36, - 187,4266,34,572,31,35,580,62,32,2930, - 174,349,190,173,176,177,178,179,180,2269, - 39,641,36,978,4637,34,572,31,35,580, - 30,32,1254,29,27,56,1255,112,82,83, - 114,1272,2653,1734,512,39,908,281,2269,39, - 641,36,2727,4637,34,572,31,35,580,30, - 32,1254,29,27,56,1255,112,82,83,114, - 1272,2395,1735,2400,39,641,36,3104,1857,34, - 572,338,35,580,2606,2370,1011,2064,3501,2671, - 4138,1311,39,641,36,2620,4138,34,572,338, - 35,580,96,2082,350,1467,39,641,36,3454, - 2648,34,572,338,35,580,226,2665,39,846, - 385,3590,2578,39,282,2457,31,2395,792,321, - 2542,66,2494,315,1000,2056,2660,2395,1046,3590, - 1357,2738,2875,399,351,4511,792,321,331,342, - 2150,315,1000,3590,278,351,556,1979,2993,265, - 2232,321,4556,533,343,1826,1574,348,3076,2874, - 2700,39,392,2770,2686,343,1826,1574,348,4467, - 1658,1054,234,1182,341,1320,3580,2703,2427,39, - 846,385,162,2695,309,532,2704,186,3599,288, - 237,243,2798,31,209,220,1115,2973,208,217, - 218,219,221,1704,1814,517,2146,175,353,4505, - 2799,2660,533,102,2395,278,255,235,236,2056, - 78,89,174,2868,3091,173,176,177,178,179, - 180,234,2596,2758,391,422,2660,237,2529,31, - 2795,162,2741,533,1132,73,186,3599,2971,317, - 1565,2782,1451,209,220,1115,2542,208,217,218, - 219,221,342,241,235,236,175,441,3151,3465, - 334,533,162,162,289,2582,31,279,2154,168, - 2645,174,2874,182,173,176,177,178,179,180, - 234,2249,2742,2068,248,251,254,257,3269,300, - 162,1575,2947,1532,1654,186,3599,2529,2542,4138, - 237,1451,209,220,1115,2542,208,217,218,219, - 221,512,39,846,385,175,529,2582,390,422, - 533,1372,1971,2803,2582,31,258,235,236,3480, - 174,500,193,173,176,177,178,179,180,234, - 2751,2763,2423,776,39,846,385,2395,427,162, - 354,331,1226,2395,186,3599,424,4138,1659,68, - 526,209,220,1115,4138,208,217,218,219,221, - 5274,497,499,2395,175,617,5274,2241,72,533, - 55,2299,3936,359,71,724,2395,53,5274,174, - 500,3168,173,176,177,178,179,180,234,2917, - 2075,2136,5274,4133,70,726,1003,2454,162,332, - 2684,1132,5274,186,3599,5274,331,3335,2395,323, - 209,220,1115,351,208,217,218,219,221,526, - 498,499,31,175,705,31,3052,31,533,533, - 166,1868,290,345,1826,1574,348,2699,174,61, - 198,173,176,177,178,179,180,234,342,1885, - 39,1635,1771,5274,3153,31,5274,162,162,533, - 3011,1979,186,3599,2322,50,1601,1357,2874,209, - 220,1115,4560,208,217,218,219,221,342,2240, - 31,5274,175,793,4158,2028,55,533,162,1132, - 1357,724,2341,1258,2154,4568,2395,174,2874,192, - 173,176,177,178,179,180,234,5274,95,2595, - 5274,108,424,39,448,31,162,4579,162,4070, - 1357,186,3599,206,3979,4606,1357,60,209,220, - 1115,4625,208,217,218,219,221,2532,39,641, - 36,175,4683,34,572,31,35,580,30,32, - 5274,506,512,39,908,2021,174,1729,200,173, - 176,177,178,179,180,2269,39,641,36,5274, - 4637,34,572,31,35,580,30,32,1254,29, - 27,56,1255,112,82,83,114,1742,2269,39, - 641,36,5274,4637,34,572,31,35,580,30, - 32,1254,29,27,56,1255,112,82,83,114, - 1761,2269,39,641,36,5274,4637,34,572,31, - 35,580,30,32,1254,29,27,56,1255,112, - 82,83,114,1769,1192,39,2538,36,2620,4138, - 34,572,338,35,580,31,2454,5274,1639,2580, - 1132,2512,2542,2395,2395,2542,512,39,846,385, - 2620,2660,5274,5274,2542,512,39,908,286,2508, - 5274,2582,5274,4102,234,5274,445,2716,2728,166, - 5274,68,3590,234,107,3982,4138,1857,31,792, - 321,331,3038,447,315,1000,211,220,1115,947, - 210,217,218,219,221,211,220,1115,2395,210, - 217,218,219,221,5274,5274,5274,212,214,216, - 297,298,4467,1952,299,306,212,214,216,297, - 298,5274,1952,222,213,215,2633,500,331,3507, - 2542,2639,222,213,215,2043,39,641,36,5274, - 4683,34,572,31,35,580,65,32,5274,234, - 512,39,908,283,31,4048,3036,5274,3556,3162, - 512,39,846,385,4048,3481,31,497,499,1857, - 3468,211,220,1115,2660,210,217,218,219,221, - 1893,39,908,281,413,2546,512,2511,908,80, - 5274,5274,212,214,216,297,298,55,1952,31, - 1857,1857,724,1901,1207,732,3003,185,222,213, - 215,2269,39,641,36,2395,4637,34,572,31, - 35,580,30,32,1254,29,27,56,1255,112, - 82,83,91,1893,39,908,2519,307,204,203, - 4048,3604,2269,944,641,1593,446,4637,34,572, - 31,35,580,30,32,1254,29,27,56,1255, - 112,82,83,90,2269,39,641,36,5274,4637, - 34,572,31,35,580,30,32,1254,29,27, - 56,1255,112,82,83,89,2269,39,641,36, - 5274,4637,34,572,31,35,580,30,32,1254, - 29,27,56,1255,112,82,83,88,2269,39, - 641,36,5274,4637,34,572,31,35,580,30, - 32,1254,29,27,56,1255,112,82,83,87, - 2269,39,641,36,5274,4637,34,572,31,35, - 580,30,32,1254,29,27,56,1255,112,82, - 83,86,2269,39,641,36,5274,4637,34,572, - 31,35,580,30,32,1254,29,27,56,1255, - 112,82,83,85,2269,39,641,36,5274,4637, - 34,572,31,35,580,30,32,1254,29,27, - 56,1255,112,82,83,84,2116,39,641,36, - 5274,4637,34,572,31,35,580,30,32,1254, - 29,27,56,1255,112,82,83,110,2269,39, - 641,36,5274,4637,34,572,31,35,580,30, - 32,1254,29,27,56,1255,112,82,83,116, - 2269,39,641,36,5274,4637,34,572,31,35, - 580,30,32,1254,29,27,56,1255,112,82, - 83,115,2269,39,641,36,5274,4637,34,572, - 31,35,580,30,32,1254,29,27,56,1255, - 112,82,83,113,2269,39,641,36,1857,4637, - 34,572,31,35,580,30,32,1254,29,27, - 56,1255,112,82,83,111,986,39,641,36, - 2676,4138,34,572,338,35,580,1864,31,2395, - 31,2646,1132,2709,1132,5274,305,2542,2043,39, - 641,36,5274,4683,34,572,31,35,580,64, - 32,524,688,39,846,385,234,1857,350,1857, - 3067,162,31,162,3590,5274,4276,3014,1857,3157, - 31,792,321,332,2542,5274,316,1000,211,220, - 1115,2395,210,217,218,219,221,351,2555,55, - 5274,2395,2542,342,724,207,53,205,351,212, - 214,216,297,298,5274,1952,301,345,1826,1574, - 348,234,3126,2874,919,515,213,215,343,1826, - 1574,348,3185,5274,1685,1514,2028,2770,2589,2542, - 533,1857,2542,211,220,1115,2395,210,217,218, - 219,221,512,39,908,2578,5274,5274,342,4122, - 1182,234,1857,1857,212,214,216,297,298,162, - 1952,2680,2649,296,186,3599,5274,1120,1477,3040, - 514,213,215,211,220,1115,2395,210,217,218, - 219,221,2722,31,31,31,2542,2893,1132,3107, - 227,199,5274,2395,212,214,216,297,298,201, - 1952,5274,31,5274,31,234,4196,1247,1132,2596, - 223,213,215,2395,5274,5274,5274,162,512,39, - 846,385,2753,3163,4073,5274,2542,211,220,1115, - 5274,210,217,218,219,221,2769,162,1075,5274, - 575,5274,2542,3183,3303,234,3508,334,212,214, - 216,297,298,5274,1952,55,2084,39,846,385, - 724,2582,1559,2161,308,213,215,211,220,1115, - 5274,210,217,218,219,221,1721,39,641,36, - 2620,5274,34,572,338,35,580,5274,212,214, - 216,297,298,55,1952,5274,2640,31,724,5274, - 2401,2542,4613,202,494,213,215,1341,39,641, - 36,2620,5274,34,572,338,35,580,2663,5274, - 342,5274,5274,5274,3590,5274,2454,359,5274,952, - 1132,792,321,2542,4689,31,315,1000,5274,2542, - 2874,556,5274,3474,2075,2136,946,39,846,385, - 31,1692,234,2454,2542,3590,1182,1132,342,166, - 5274,5274,792,321,5274,5274,5274,315,1000,512, - 39,296,556,342,621,403,2895,1028,2874,309, - 532,2542,4689,55,5274,5274,166,31,724,1693, - 2813,1132,5274,2874,5274,404,405,406,297,298, - 234,1952,5274,5274,2927,5274,5274,5274,2907,5274, - 530,532,68,5274,5274,2596,5274,4138,4072,5274, - 162,3228,621,403,2895,5274,2410,1944,2758,1235, - 39,2538,36,2620,5274,34,572,338,35,580, - 5274,5274,5274,404,405,406,297,298,3316,1952, - 2454,5274,4105,334,1132,407,409,1594,39,641, - 36,2620,5274,34,572,338,35,580,31,331, - 5274,3918,533,5274,1104,1944,537,3590,2542,4689, - 5274,5274,2454,166,792,321,1132,2429,4394,315, - 1000,342,5274,5274,947,5274,5274,234,5274,5274, - 3936,162,5274,407,409,3590,5274,194,5274,5274, - 5274,4529,792,321,5274,166,5274,315,1000,621, - 403,2895,556,1062,39,641,36,5274,4138,34, - 572,338,35,580,31,2594,4394,5274,1132,5274, - 404,405,406,297,298,3473,1952,1062,39,641, - 36,5274,4138,34,572,338,35,580,5274,5274, - 310,532,5274,5274,5274,1814,5274,162,5274,3949, - 4505,3590,1944,4113,512,39,296,3645,792,321, - 332,5274,5274,316,1000,2102,39,846,385,414, - 2546,946,39,846,385,3590,5274,5274,5274,5274, - 407,410,792,321,332,5274,5274,318,1000,1594, - 39,641,36,2620,5274,34,572,338,35,580, - 5274,5274,55,5274,5274,5274,5274,724,55,53, - 5274,5274,5274,724,5274,53,2102,39,846,385, - 2102,39,846,385,5274,5274,5274,915,2102,39, - 846,385,5274,2236,5274,5274,5274,3590,5274,2102, - 39,846,385,2947,792,321,5274,5274,2768,315, - 1000,31,2542,55,3150,2542,3988,55,724,5274, - 53,5274,724,5274,53,55,2745,39,846,385, - 724,342,53,2159,342,5274,55,533,1398,525, - 5274,724,2722,53,5274,2773,39,846,385,5274, - 3121,2874,5274,5274,2874,5274,342,1149,39,846, - 385,3476,528,55,5274,504,162,425,724,5274, - 53,5274,194,5274,5274,5274,4529,512,39,846, - 385,5274,55,512,39,846,385,724,4289,53, - 5274,5274,5274,5274,55,512,39,846,385,724, - 5274,1384,5274,512,39,846,385,4494,5274,512, - 39,846,385,1834,55,5274,5274,2542,2254,724, - 55,866,2542,5274,5274,724,31,2912,5274,31, - 533,31,55,533,196,2542,342,724,5274,671, - 55,342,5274,5274,31,724,55,1384,2542,342, - 5274,724,342,2876,342,5274,1126,5274,5274,162, - 5274,4156,162,5274,5274,194,5274,342,194,4529, - 5274,5274,4529,5274,2874,5274,5274,5274,5274,5274, - 5274,5274,5274,5274,5274,502,5274,2874,5274,5274, - 5274,5274,5274,5274,5274,5274,3940,5274,529,5274, - 5274,5274,5274,5274,5274,5274,5274,5274,4051,5274, - 5274,5274,5274,5274,5274,5274,5274,5274,5274,5274, - 5274,5274,5274,5274,5274,5274,5274,4001,5274,5274, - 4011,5274,5274,5274,5274,5274,5274,5274,5274,5274, - 5274,5274,5274,5274,5274,5274,5274,5274,5274,5274, - 5274,5274,5274,5274,5274,5274,5274,5274,5274,5274, - 5274,5274,5274,5274,5274,5274,5274,5274,5274,5274, - 5274,5274,5274,5274,5274,5274,5274,5274,5274,5274, - 451,5274,5274,5274,5274,5274,5274,5274,5274,5274, - 5274,5274,5274,5274,5274,5274,5274,5274,437,5274, - 5274,5274,5274,5274,5274,4096,5274,0,5292,2, - 1,0,5291,2,1,0,449,629,0,435, - 1165,0,1249,33,0,43,5292,0,43,5291, - 0,1249,384,0,1,439,0,453,1030,0, - 452,1239,0,39,37,0,43,5292,2,0, - 43,5291,2,0,42,5292,0,42,5291,0, - 2488,132,0,49,5314,0,49,41,0,1, - 566,0,1,5551,0,1,5550,0,1,5549, - 0,1,5548,0,1,5547,0,1,5546,0, - 1,5545,0,1,5544,0,1,5543,0,1, - 5542,0,1,5541,0,43,5292,1,0,43, - 5291,1,0,781,1,0,5513,246,0,5512, - 246,0,5611,246,0,5610,246,0,5540,246, - 0,5539,246,0,5538,246,0,5537,246,0, - 5536,246,0,5535,246,0,5534,246,0,5533, - 246,0,5551,246,0,5550,246,0,5549,246, - 0,5548,246,0,5547,246,0,5546,246,0, - 5545,246,0,5544,246,0,5543,246,0,5542, - 246,0,5541,246,0,43,246,5292,0,43, - 246,5291,0,5316,246,0,54,5292,0,54, - 5291,0,1249,45,0,2738,97,0,36,38, - 0,43,859,0,5603,440,0,1391,440,0, - 5280,1,0,5279,1,0,242,3217,0,385, - 36,0,36,385,0,384,33,0,33,384, - 0,5292,54,0,5291,54,0,2488,134,0, - 2488,133,0,5314,51,0,51,41,0,496, - 1945,0,5316,233,1,0,43,233,1,0, - 233,412,0,41,5292,0,41,5291,0,5316, - 1,0,43,1,0,53,41,0,1,98, - 0,41,53,0,5284,401,0,5283,401,0, - 931,1,0,859,1,0,4693,1,0,233, - 411,0,41,5292,2,0,41,5291,2,0, - 5292,40,0,5291,40,0,1,5603,0,1, - 1391,0,43,5292,2,1,0,43,5291,2, - 1,0,5603,101,0,1391,101,0,39,79, - 0,496,4008,0,233,1,0,233,225,0, - 283,4246,0,233,224,0,1,625,0,1, - 2548,0,5282,1,0,233,1,2922,0,5284, - 233,0,5283,233,0,3021,233,0,8,10, - 0,191,3244,0 + 17,17,17,17,17,17,17,17,134,134, + 134,114,114,18,18,18,18,18,18,18, + 18,18,18,18,18,18,19,19,169,169, + 170,170,171,137,137,138,138,135,135,139, + 136,136,20,20,21,21,22,22,22,24, + 24,24,24,25,25,25,26,26,26,27, + 27,27,27,27,28,28,28,29,29,30, + 30,32,32,34,34,35,35,36,36,41, + 41,40,40,40,40,40,40,40,40,40, + 40,40,40,40,39,33,140,140,96,96, + 172,172,91,194,194,76,76,76,76,76, + 76,76,76,76,77,77,77,68,68,59, + 59,173,173,78,78,78,102,102,174,174, + 79,79,79,175,175,80,80,80,80,80, + 81,81,83,83,83,83,83,83,83,50, + 50,50,50,50,115,115,116,116,51,176, + 23,23,23,23,23,48,48,86,86,86, + 86,86,147,147,142,142,142,142,142,143, + 143,143,144,144,144,145,145,145,146,146, + 146,87,87,87,87,87,88,88,88,13, + 13,13,13,13,13,13,13,13,13,13, + 99,120,120,120,120,120,120,118,118,118, + 119,119,149,149,148,148,122,122,103,71, + 71,72,73,53,47,150,150,54,52,85, + 85,151,151,141,141,105,105,66,66,152, + 152,61,61,56,56,153,62,62,67,67, + 58,58,58,89,89,98,97,97,60,60, + 57,57,55,55,44,100,100,100,92,92, + 92,93,93,94,94,94,95,95,106,106, + 106,108,108,107,107,195,195,90,90,178, + 178,178,178,178,124,46,46,155,177,177, + 125,125,125,125,179,179,37,37,117,126, + 126,126,126,109,109,121,121,121,157,158, + 158,158,158,158,158,158,158,158,158,158, + 182,182,180,180,181,181,159,159,159,159, + 160,183,111,110,110,184,184,161,161,161, + 161,101,101,101,185,185,9,9,10,186, + 186,187,162,154,154,163,163,164,165,165, + 6,6,7,166,166,166,166,166,166,166, + 166,166,166,166,166,166,166,166,166,166, + 166,166,166,166,166,166,166,166,166,166, + 166,166,166,166,166,166,166,166,166,166, + 166,166,166,166,166,69,74,74,167,167, + 128,128,129,129,129,129,129,129,3,130, + 130,127,127,112,112,84,70,82,156,156, + 113,113,188,188,188,131,131,123,123,189, + 189,168,168,104,958,41,1780,1773,1193,3034, + 36,565,33,37,573,32,34,1765,31,29, + 58,1241,114,84,85,116,1249,1064,1268,1251, + 1310,1308,1352,1350,1479,29,1360,765,1487,1494, + 151,280,3674,38,166,152,1250,41,580,38, + 116,4625,36,565,33,37,573,67,34,504, + 2295,41,580,38,239,3482,36,565,33,37, + 573,32,34,1207,31,29,58,1241,114,84, + 85,116,1249,125,1268,1251,1310,1308,1352,1907, + 242,237,238,1180,41,449,591,1817,4292,2295, + 41,580,38,281,3482,36,565,33,37,573, + 32,34,1207,31,29,58,1241,114,84,85, + 93,249,252,255,258,2972,1068,41,580,38, + 627,3138,36,565,33,37,573,65,34,1859, + 1548,2760,41,284,1555,1822,2869,855,3004,3008, + 3049,4339,1433,41,580,38,2629,3482,36,565, + 33,37,573,32,34,1207,31,29,58,1241, + 114,84,85,116,1249,344,1268,1251,1310,1308, + 1352,1350,1479,678,1360,316,1487,1494,151,290, + 1443,1191,513,152,330,417,3377,1305,721,719, + 40,2505,2073,41,613,387,3528,514,1433,41, + 580,38,2629,3482,36,565,33,37,573,32, + 34,1207,31,29,58,1241,114,84,85,116, + 1249,344,1268,1251,1310,1308,1352,1350,1479,57, + 1360,324,1487,1494,151,589,434,1697,513,152, + 389,423,3377,2655,41,287,442,2585,2600,203, + 69,327,326,514,509,2569,2087,41,580,38, + 1548,4625,36,565,33,37,573,32,34,1613, + 507,377,1639,1305,41,2646,2590,1433,41,580, + 38,2629,3482,36,565,33,37,573,32,34, + 1207,31,29,58,1241,114,84,85,116,1249, + 344,1268,1251,1310,1308,1352,1350,1479,3100,1360, + 509,1487,1494,151,997,1160,1470,513,152,1814, + 3307,3377,1161,3158,1014,1655,464,96,1639,2676, + 110,1372,514,1768,41,580,38,2629,3482,36, + 565,33,37,573,32,34,1207,31,29,58, + 1241,114,84,85,116,1249,344,1268,1251,1310, + 1308,1352,1350,1479,966,1360,1372,1487,1494,151, + 390,423,1926,513,152,239,2629,3377,2062,41, + 1563,49,4312,354,48,565,2369,1172,514,509, + 1757,41,580,38,2581,3249,36,565,340,37, + 573,251,237,238,1704,551,494,1639,1498,41, + 580,38,560,3482,36,565,33,37,573,32, + 34,1207,31,29,58,1241,114,84,85,116, + 1249,355,1268,1251,1310,1308,1352,1350,1479,1123, + 1360,328,1487,1494,151,510,724,323,380,152, + 1817,317,725,1819,50,1612,1097,2109,41,580, + 38,102,362,36,565,341,37,573,1567,41, + 580,38,383,3482,36,565,33,37,573,32, + 34,1207,31,29,58,1241,114,84,85,116, + 1249,401,1268,1251,1310,1308,1352,1350,1479,519, + 1360,2795,1487,1494,151,2545,439,1692,380,152, + 1817,2249,41,580,38,203,3482,36,565,33, + 37,573,32,34,1207,31,29,58,1241,94, + 84,85,381,384,1636,41,580,38,493,3482, + 36,565,33,37,573,32,34,1207,31,29, + 58,1241,114,84,85,116,1249,1692,1268,1251, + 1310,1308,1352,1350,1479,190,1360,498,1487,1494, + 151,1305,41,298,380,152,1817,1180,41,286, + 1264,1692,3731,1305,41,613,387,1990,324,1993, + 41,580,38,385,3482,36,565,33,37,573, + 32,34,1207,31,29,58,1241,114,84,85, + 116,1249,379,1268,1251,1310,1308,1352,1350,1479, + 57,1360,2509,1487,1494,151,589,3150,789,166, + 152,1817,1305,41,613,387,1993,41,580,38, + 1817,3482,36,565,33,37,573,32,34,1207, + 31,29,58,1241,114,84,85,116,1249,378, + 1268,1251,1310,1308,1352,1350,1479,411,1360,57, + 1487,1494,151,2863,4275,54,374,152,1993,41, + 580,38,3514,3482,36,565,33,37,573,32, + 34,1207,31,29,58,1241,114,84,85,116, + 1249,1371,1268,1251,1310,1308,1352,1350,1479,1351, + 1360,1918,1487,1494,151,1180,41,286,374,152, + 4569,1305,4282,2602,2109,41,580,38,933,1555, + 36,565,46,37,573,2191,3594,1993,41,580, + 38,329,3482,36,565,33,37,573,32,34, + 1207,31,29,58,1241,114,84,85,116,1249, + 373,1268,1251,1310,1308,1352,1350,1479,2601,1360, + 1953,1487,1494,151,2655,41,284,374,152,1833, + 41,580,38,426,3482,36,565,33,37,573, + 32,34,1207,31,29,58,1241,114,84,85, + 116,1249,372,1268,1251,1310,1308,1352,1350,1479, + 666,1360,63,1487,1521,172,1703,41,580,38, + 943,3482,36,565,33,37,573,32,34,1207, + 31,29,58,1241,114,84,85,116,1249,3220, + 1268,1251,1310,1308,1352,1350,1479,2660,1360,73, + 1487,1494,151,682,329,78,150,152,1305,41, + 289,370,1305,41,613,387,1993,41,580,38, + 906,3482,36,565,33,37,573,32,34,1207, + 31,29,58,1241,114,84,85,116,1249,4338, + 1268,1251,1310,1308,1352,1350,1479,443,1360,427, + 1487,1494,151,1305,41,2159,163,152,1993,41, + 580,38,1264,3482,36,565,33,37,573,32, + 34,1207,31,29,58,1241,114,84,85,116, + 1249,2332,1268,1251,1310,1308,1352,1350,1479,753, + 1360,2040,1487,1494,151,1305,2114,1015,162,152, + 1993,41,580,38,1248,3482,36,565,33,37, + 573,32,34,1207,31,29,58,1241,114,84, + 85,116,1249,2570,1268,1251,1310,1308,1352,1350, + 1479,986,1360,765,1487,1494,151,2191,3154,68, + 161,152,1993,41,580,38,1372,3482,36,565, + 33,37,573,32,34,1207,31,29,58,1241, + 114,84,85,116,1249,1066,1268,1251,1310,1308, + 1352,1350,1479,812,1360,73,1487,1494,151,738, + 1305,3046,160,152,1993,41,580,38,1264,3482, + 36,565,33,37,573,32,34,1207,31,29, + 58,1241,114,84,85,116,1249,203,1268,1251, + 1310,1308,1352,1350,1479,1311,1360,293,1487,1494, + 151,456,1017,237,159,152,1993,41,580,38, + 1372,3482,36,565,33,37,573,32,34,1207, + 31,29,58,1241,114,84,85,116,1249,1539, + 1268,1251,1310,1308,1352,1350,1479,452,1360,2543, + 1487,1494,151,4174,417,759,158,152,1993,41, + 580,38,2155,3482,36,565,33,37,573,32, + 34,1207,31,29,58,1241,114,84,85,116, + 1249,4359,1268,1251,1310,1308,1352,1350,1479,443, + 1360,4084,1487,1494,151,455,1086,725,157,152, + 1993,41,580,38,846,3482,36,565,33,37, + 573,32,34,1207,31,29,58,1241,114,84, + 85,116,1249,1939,1268,1251,1310,1308,1352,1350, + 1479,1431,1360,73,1487,1494,151,817,1629,1913, + 156,152,1993,41,580,38,2106,3482,36,565, + 33,37,573,32,34,1207,31,29,58,1241, + 114,84,85,116,1249,1333,1268,1251,1310,1308, + 1352,1350,1479,2533,1360,73,1487,1494,151,2491, + 2476,2611,155,152,1993,41,580,38,2643,3482, + 36,565,33,37,573,32,34,1207,31,29, + 58,1241,114,84,85,116,1249,1844,1268,1251, + 1310,1308,1352,1350,1479,2213,1360,73,1487,1494, + 151,948,2603,2112,154,152,1993,41,580,38, + 2704,3482,36,565,33,37,573,32,34,1207, + 31,29,58,1241,114,84,85,116,1249,2732, + 1268,1251,1310,1308,1352,1350,1479,2763,1360,73, + 1487,1494,151,4343,2653,2786,153,152,1993,41, + 580,38,150,3482,36,565,33,37,573,32, + 34,1207,31,29,58,1241,114,84,85,116, + 1249,2626,1268,1251,1310,1308,1352,1350,1479,2696, + 1360,1910,1487,1494,151,864,927,1176,167,152, + 1993,41,580,38,585,3482,36,565,33,37, + 573,32,34,1207,31,29,58,1241,114,84, + 85,116,1249,1387,1268,1251,1310,1308,1352,1350, + 1479,1489,1360,73,1487,1494,151,670,1512,1647, + 148,152,2202,41,580,38,1776,3482,36,565, + 33,37,573,32,34,1207,31,29,58,1241, + 114,84,85,116,1249,1900,1268,1251,1310,1308, + 1352,1350,1479,1945,1360,1093,1487,1494,151,800, + 1821,2507,197,152,2295,41,580,38,1486,3482, + 36,565,33,37,573,32,34,1207,31,29, + 58,1241,114,84,85,116,1249,1220,1268,1251, + 1310,1308,1352,1350,1479,1627,1360,329,1487,1521, + 172,2295,41,580,38,1796,3482,36,565,33, + 37,573,32,34,1207,31,29,58,1241,114, + 84,85,116,1249,382,1268,1251,1310,1308,1352, + 1350,1479,388,1360,1523,1487,1521,172,1250,41, + 580,38,101,4625,36,565,33,37,573,66, + 34,2295,41,580,38,297,3482,36,565,33, + 37,573,32,34,1207,31,29,58,1241,114, + 84,85,116,1249,519,1268,1251,1310,1308,1352, + 1350,1479,899,1360,1664,1487,1521,172,2295,41, + 580,38,419,3482,36,565,33,37,573,32, + 34,1207,31,29,58,1241,114,84,85,116, + 1249,79,1268,1251,1310,1308,1352,1350,1479,1688, + 1360,2090,1487,1521,172,2109,41,580,38,2162, + 1692,36,565,2951,37,573,849,1523,2295,41, + 580,38,2688,3482,36,565,33,37,573,32, + 34,1207,31,29,58,1241,114,84,85,116, + 1249,3980,1268,1251,1310,1308,1352,1350,1479,1744, + 1360,1261,1487,1521,172,2341,41,580,38,418, + 3482,36,565,33,37,573,32,34,1207,31, + 29,58,1241,114,84,85,116,1249,2195,1268, + 1251,1310,1308,1352,1350,1479,1887,1360,2450,1487, + 1521,172,2109,41,580,38,1782,1692,36,565, + 3160,37,573,2722,2034,2295,41,580,38,421, + 3482,36,565,33,37,573,32,34,1207,31, + 29,58,1241,114,84,85,116,1249,30,1268, + 1251,1310,1308,1352,1350,1479,73,1360,2048,1948, + 2765,399,2295,41,580,38,3003,3482,36,565, + 33,37,573,32,34,1207,31,29,58,1241, + 114,84,85,116,1249,1896,1268,1251,1310,1308, + 1352,1350,1479,2108,1933,2295,41,580,38,1692, + 3482,36,565,33,37,573,32,34,1207,31, + 29,58,1241,114,84,85,116,1249,1692,1268, + 1251,1310,1308,1352,1350,1906,2295,41,580,38, + 77,3482,36,565,33,37,573,32,34,1207, + 31,29,58,1241,114,84,85,116,1249,76, + 1268,1251,1310,1308,1872,2295,41,580,38,1372, + 3482,36,565,33,37,573,32,34,1207,31, + 29,58,1241,114,84,85,116,1249,1486,1268, + 1251,1310,1891,2295,41,580,38,2239,3482,36, + 565,33,37,573,32,34,1207,31,29,58, + 1241,114,84,85,116,1249,2473,1268,1251,1310, + 1899,2295,41,580,38,2216,3482,36,565,33, + 37,573,32,34,1207,31,29,58,1241,114, + 84,85,116,1249,4002,1268,1251,1823,2295,41, + 580,38,290,3482,36,565,33,37,573,32, + 34,1207,31,29,58,1241,114,84,85,116, + 1249,1874,1268,1251,1830,2295,41,580,38,1372, + 3482,36,565,33,37,573,32,34,1207,31, + 29,58,1241,114,84,85,116,1249,1870,1268, + 1251,1849,2295,41,580,38,2277,3482,36,565, + 33,37,573,32,34,1207,31,29,58,1241, + 114,84,85,116,1249,262,1268,1251,1857,534, + 2563,2577,1348,2740,1147,41,580,38,518,2676, + 36,565,340,37,573,1711,2552,2290,236,1305, + 41,613,387,1372,59,1755,73,1874,164,1129, + 2663,1014,2658,188,4160,2117,2676,1041,330,336, + 73,211,222,4038,2722,210,219,220,221,223, + 2838,926,1673,1123,177,1,280,4063,168,534, + 724,323,334,176,1692,318,725,2519,41,613, + 387,191,175,178,179,180,181,182,236,2387, + 41,613,387,1870,732,765,1692,2577,164,333, + 4110,357,244,188,4160,61,1550,1041,105,527, + 3011,211,222,4038,57,210,219,220,221,223, + 589,73,55,1874,177,1129,280,95,282,189, + 2554,2614,2784,176,335,336,1305,41,613,387, + 783,192,175,178,179,180,181,182,1372,239, + 2295,41,580,38,1121,3482,36,565,33,37, + 573,32,34,1207,31,29,58,1241,114,84, + 85,116,1249,57,1781,242,237,238,2605,589, + 1861,1529,1548,2577,2295,721,580,1605,281,3482, + 36,565,33,37,573,32,34,1207,31,29, + 58,1241,114,84,85,92,249,252,255,258, + 2972,1305,41,719,283,627,356,2737,41,449, + 332,336,4292,106,527,2683,2114,1305,41,719, + 2151,2869,855,3004,3008,3049,4339,2295,41,580, + 38,2701,3482,36,565,33,37,573,32,34, + 1207,31,29,58,1241,114,84,85,116,1249, + 1870,1268,1864,2295,41,580,38,1486,3482,36, + 565,33,37,573,32,34,1207,31,29,58, + 1241,114,84,85,116,1249,349,1268,1865,2509, + 534,2800,392,423,3150,1147,41,580,38,1817, + 2676,36,565,340,37,573,2510,41,298,236, + 73,2840,1622,2306,1129,731,2629,2676,2315,164, + 2382,88,2039,73,188,4160,1129,3040,1041,1221, + 2850,291,211,222,4038,3249,210,219,220,221, + 223,1041,246,164,1123,177,436,292,3210,2499, + 534,724,323,334,176,164,320,725,4230,2216, + 208,4290,3021,175,178,179,180,181,182,236, + 333,1755,1622,2408,2149,1129,2629,2676,2098,164, + 446,2585,2600,325,188,4160,2854,2855,1041,239, + 2602,527,211,222,4038,3249,210,219,220,221, + 223,3428,361,2837,168,177,523,1129,2039,1180, + 534,1890,534,2859,176,247,237,238,3418,2166, + 2199,2503,184,175,178,179,180,181,182,236, + 333,4318,2394,41,1696,1985,164,2617,2861,164, + 175,164,170,1172,188,4160,188,4160,1041,403, + 425,73,211,222,4038,4360,210,219,220,221, + 223,4024,361,2548,1908,177,610,3098,2030,57, + 534,1548,518,2246,176,589,203,813,3418,2166, + 2199,155,195,175,178,179,180,181,182,236, + 2073,41,613,387,1362,41,613,387,2390,164, + 2683,2114,2629,73,188,4160,2801,1129,1041,2072, + 52,1612,211,222,4038,1991,210,219,220,221, + 223,3249,1964,2681,239,177,697,57,239,1486, + 534,57,1874,589,176,55,3230,589,2866,1387, + 1861,1943,3211,175,178,179,180,181,182,236, + 254,237,238,1398,257,237,238,2569,1692,164, + 1305,41,719,288,188,4160,73,1486,1041,239, + 2720,1443,211,222,4038,4378,210,219,220,221, + 223,391,423,4563,204,177,784,2767,501,60, + 534,2816,2577,302,176,260,237,238,2645,41, + 613,387,200,175,178,179,180,181,182,236, + 2810,41,613,387,2645,41,613,387,1014,164, + 1890,1692,292,2676,188,4160,499,500,1041,4049, + 336,301,211,222,4038,57,210,219,220,221, + 223,589,1486,1513,2817,177,871,57,2807,2149, + 534,57,351,589,176,55,73,589,304,55, + 1129,3663,194,175,178,179,180,181,182,236, + 73,2578,5222,1402,3352,3231,333,2242,2315,164, + 1305,41,719,285,188,4160,5222,5222,1041,164, + 1692,2505,211,222,4038,1941,210,219,220,221, + 223,2807,41,719,283,177,309,3371,5222,1325, + 41,580,38,3623,176,36,565,340,37,573, + 5222,98,202,175,178,179,180,181,182,2295, + 41,580,38,5222,3482,36,565,33,37,573, + 32,34,1207,31,29,58,1241,114,84,85, + 116,1249,5222,1788,1305,2323,719,82,1123,2807, + 41,719,2417,2614,1171,724,323,765,3030,73, + 317,725,4192,2629,5222,2288,353,1388,41,580, + 38,2912,1874,36,565,340,37,573,1558,41, + 580,38,344,3138,36,565,33,37,573,64, + 34,345,904,856,350,2286,5222,2248,352,2254, + 1014,1275,2553,3377,5222,2676,2629,2813,41,393, + 1305,41,613,387,1731,1313,1123,97,73,2852, + 110,1893,1129,724,323,236,2676,2723,317,725, + 5222,3350,2577,1097,353,1340,41,580,38,2581, + 2676,36,565,340,37,573,352,430,213,222, + 4038,164,212,219,220,221,223,3445,333,345, + 904,856,350,2510,2566,298,5222,3161,1692,4071, + 336,214,216,218,299,300,2112,367,1479,334, + 1692,5222,353,2676,1123,224,215,217,5222,3428, + 5222,724,323,333,353,1692,317,725,73,3448, + 73,538,3072,5222,3080,3210,1692,345,904,856, + 350,3450,68,5222,5222,3161,2781,4133,3069,345, + 904,856,350,5222,2835,5222,75,343,1305,41, + 613,387,1094,41,613,387,334,74,5222,311, + 533,2295,41,580,38,353,3482,36,565,33, + 37,573,32,34,1207,31,29,58,1241,114, + 84,85,116,1807,73,429,1180,5222,3599,57, + 347,904,856,350,5222,589,3770,1055,1305,41, + 719,2550,2295,41,580,38,2672,3482,36,565, + 33,37,573,32,34,1207,31,29,58,1241, + 114,84,85,116,1815,2295,41,580,38,1692, + 3482,36,565,33,37,573,32,34,1207,31, + 29,58,1241,114,84,85,116,1822,1106,41, + 2436,38,2581,2676,36,565,340,37,573,5222, + 73,73,73,73,1382,1129,1129,534,2629,2630, + 73,5222,1692,2629,4550,1544,41,580,38,3578, + 1692,36,565,340,37,573,344,344,1305,41, + 613,387,236,1014,164,164,164,1123,2676,5222, + 3456,3559,2247,72,724,323,333,3377,1901,317, + 725,3769,5222,400,1471,213,222,4038,2160,212, + 219,220,221,223,1123,428,2668,2813,41,393, + 2629,2238,323,1696,41,613,387,2835,214,216, + 218,299,300,2112,1305,41,613,387,5222,236, + 765,333,224,215,217,4385,1749,41,580,38, + 3623,5222,36,565,340,37,573,5222,5222,5222, + 280,73,213,222,4038,2629,212,219,220,221, + 223,57,4024,1692,4133,3107,73,589,5222,3062, + 1129,2813,41,393,344,214,216,218,299,300, + 2112,1305,41,613,387,1123,1692,414,2526,224, + 215,217,724,323,63,3377,73,317,725,164, + 1527,5222,522,353,5222,3602,1738,3347,319,2253, + 5222,73,2201,5222,3106,4585,2831,62,57,73, + 1890,4133,3182,3322,589,5222,1314,80,345,904, + 856,350,2295,41,580,38,523,3482,36,565, + 33,37,573,32,34,1207,31,29,58,1241, + 114,84,85,91,2295,41,580,38,228,3482, + 36,565,33,37,573,32,34,1207,31,29, + 58,1241,114,84,85,90,2295,41,580,38, + 3184,3482,36,565,33,37,573,32,34,1207, + 31,29,58,1241,114,84,85,89,2295,41, + 580,38,5222,3482,36,565,33,37,573,32, + 34,1207,31,29,58,1241,114,84,85,88, + 2295,41,580,38,5222,3482,36,565,33,37, + 573,32,34,1207,31,29,58,1241,114,84, + 85,87,2295,41,580,38,5222,3482,36,565, + 33,37,573,32,34,1207,31,29,58,1241, + 114,84,85,86,2154,41,580,38,5222,3482, + 36,565,33,37,573,32,34,1207,31,29, + 58,1241,114,84,85,112,2295,41,580,38, + 5222,3482,36,565,33,37,573,32,34,1207, + 31,29,58,1241,114,84,85,118,2295,41, + 580,38,5222,3482,36,565,33,37,573,32, + 34,1207,31,29,58,1241,114,84,85,117, + 2295,41,580,38,5222,3482,36,565,33,37, + 573,32,34,1207,31,29,58,1241,114,84, + 85,115,2295,41,580,38,1692,3482,36,565, + 33,37,573,32,34,1207,31,29,58,1241, + 114,84,85,113,1222,41,580,38,5222,2676, + 36,565,340,37,573,5222,5222,109,2054,41, + 580,38,3385,5222,36,565,340,37,573,73, + 73,2707,5222,2518,1129,2629,1305,41,613,387, + 5222,5222,5222,2810,41,613,387,1305,41,298, + 1874,73,765,1123,236,2633,1692,4461,1692,5222, + 724,323,334,164,73,318,725,1123,3656,2573, + 1817,353,2415,448,2238,323,2629,213,222,4038, + 57,212,219,220,221,223,589,4210,55,4151, + 2810,41,613,387,5222,236,347,904,856,350, + 214,216,218,299,300,2112,3360,2819,1692,5222, + 2577,2629,1041,2591,516,215,217,2629,213,222, + 4038,2757,212,219,220,221,223,57,73,521, + 344,1890,4616,589,5222,55,236,1692,526,447, + 1890,214,216,218,299,300,2112,4236,336,5222, + 4296,3377,525,3478,2745,515,215,217,2629,213, + 222,4038,529,212,219,220,221,223,2946,308, + 3347,319,2810,41,613,387,73,236,187,5222, + 2445,1890,214,216,218,299,300,2112,2393,73, + 73,1890,2629,2629,4070,2769,225,215,217,2629, + 213,222,4038,5222,212,219,220,221,223,57, + 73,344,344,5222,2899,589,73,55,236,206, + 2800,5222,5222,214,216,218,299,300,2112,205, + 1755,5222,4321,3377,1129,3618,5222,310,215,217, + 1692,213,222,4038,1739,212,219,220,221,223, + 1682,41,580,38,2581,1890,36,565,340,37, + 573,5222,1890,168,214,216,218,299,300,2112, + 1890,3006,2810,41,613,387,1890,5222,495,215, + 217,1056,41,580,38,2581,5222,36,565,340, + 37,573,1923,307,1817,5222,4141,2676,73,1123, + 209,2831,4270,1692,5222,3686,724,323,207,57, + 1890,317,725,5222,303,589,538,55,1817,2445, + 41,613,387,1030,732,5222,3713,2629,4629,73, + 1123,1692,245,2629,3066,4056,1041,724,323,1817, + 2569,73,317,725,2629,1129,236,538,2943,1890, + 4312,1692,344,520,311,533,280,1692,1692,5222, + 1041,5222,4090,3249,5222,2823,41,613,387,993, + 404,3605,5222,3377,164,5222,4371,377,5222,239, + 4377,1041,4314,5222,1746,531,533,229,4445,3186, + 5222,4369,405,406,407,299,300,2112,377,1755, + 1755,2672,57,1129,1129,243,237,238,589,5222, + 55,5222,5222,1614,41,2436,38,2581,281,36, + 565,340,37,573,2025,1890,5222,5222,1111,104, + 361,5222,168,168,5222,5222,250,253,256,259, + 2972,2833,41,613,387,627,3610,2166,2199,557, + 1757,41,580,38,2581,5222,36,565,340,37, + 573,5222,1123,201,5222,5222,5222,1118,5222,724, + 323,2629,4629,375,317,725,5222,5222,57,1471, + 408,410,5222,5222,589,5222,55,73,5222,5222, + 236,2629,5222,5222,4196,3736,4006,5222,5222,1123, + 5222,5222,5222,1998,4067,4487,724,323,5222,5222, + 344,317,725,993,404,3605,538,5222,1757,41, + 580,38,2581,5222,36,565,340,37,573,5222, + 2390,3377,5222,5222,2629,5222,405,406,407,299, + 300,2112,3430,2836,5222,5222,5222,534,5222,1305, + 41,613,387,3249,312,533,5222,5222,73,5222, + 73,5222,534,5222,534,2569,344,1123,2025,2629, + 5222,5222,415,2526,724,323,164,5222,5222,317, + 725,344,196,344,3131,5222,57,4538,3249,5222, + 5222,164,589,164,671,5222,2781,2348,5222,2247, + 2629,5222,3377,5222,3377,1305,41,613,387,1305, + 41,613,387,2329,5222,2636,5222,1879,73,3249, + 501,2629,534,5222,408,411,5222,5222,5222,5222, + 73,5222,1755,73,534,5222,1129,2629,5222,5222, + 344,344,57,73,5222,198,57,534,589,5222, + 1055,164,589,344,1597,361,344,196,498,500, + 73,859,4538,164,2629,168,344,5222,5222,196, + 5222,4076,2166,2199,4538,73,164,3377,5222,2629, + 5222,5222,196,344,5222,5222,501,4538,505,5222, + 5222,5222,5222,5222,5222,5222,5222,2567,344,5222, + 5222,5222,5222,5222,3377,5222,5222,5222,5222,5222, + 5222,5222,5222,5222,5222,503,5222,4330,5222,3377, + 4157,5222,5222,5222,498,500,5222,5222,4128,5222, + 530,5222,4260,5222,5222,5222,5222,5222,5222,5222, + 5222,5222,5222,5222,5222,4323,5222,5222,5222,5222, + 5222,5222,5222,5222,5222,5222,5222,5222,5222,5222, + 5222,5222,5222,2961,5222,5222,5222,5222,5222,5222, + 5222,5222,5222,5222,5222,5222,5222,5222,5222,5222, + 5222,5222,5222,452,5222,5222,5222,5222,5222,5222, + 5222,5222,5222,5222,5222,5222,5222,5222,5222,5222, + 5222,5222,5222,438,5222,0,5242,2,1,0, + 5241,2,1,0,450,1389,0,436,1565,0, + 1733,35,0,45,5242,0,45,5241,0,1733, + 386,0,1,440,0,454,1536,0,453,1620, + 0,41,39,0,45,5242,2,0,45,5241, + 2,0,44,5242,0,44,5241,0,2495,134, + 0,51,5264,0,51,43,0,1,567,0, + 1,5501,0,1,5500,0,1,5499,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,45,5242,1,0,45,5241,1, + 0,918,1,0,5463,248,0,5462,248,0, + 5561,248,0,5560,248,0,5490,248,0,5489, + 248,0,5488,248,0,5487,248,0,5486,248, + 0,5485,248,0,5484,248,0,5483,248,0, + 5501,248,0,5500,248,0,5499,248,0,5498, + 248,0,5497,248,0,5496,248,0,5495,248, + 0,5494,248,0,5493,248,0,5492,248,0, + 5491,248,0,45,248,5242,0,45,248,5241, + 0,5266,248,0,56,5242,0,56,5241,0, + 1733,47,0,3043,99,0,38,40,0,45, + 727,0,5553,441,0,1775,441,0,8,12, + 0,5228,1,0,5227,1,0,244,2575,0, + 387,38,0,38,387,0,386,35,0,35, + 386,0,5242,56,0,5241,56,0,2495,136, + 0,2495,135,0,5264,53,0,53,43,0, + 497,2035,0,5266,235,1,0,45,235,1, + 0,235,413,0,43,5242,0,43,5241,0, + 5266,1,0,45,1,0,55,43,0,1, + 100,0,43,55,0,5232,402,0,5231,402, + 0,930,1,0,727,1,0,4637,1,0, + 235,412,0,43,5242,2,0,43,5241,2, + 0,5242,42,0,5241,42,0,1,5553,0, + 1,1775,0,45,5242,2,1,0,45,5241, + 2,1,0,5553,103,0,1775,103,0,41, + 81,0,497,4092,0,235,1,0,235,227, + 0,285,4250,0,235,226,0,1,3357,0, + 1,3657,0,5234,1,0,5230,1,0,235, + 1,2860,0,5231,235,0,2861,235,0,2980, + 235,0,10,12,0,8,10,12,0,193, + 3126,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1075,290 +1064,294 @@ 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,0,29, - 0,31,32,33,34,35,36,37,38,39, + 30,31,32,33,34,35,36,0,38,39, 40,41,42,43,44,45,46,47,48,49, 50,51,52,53,54,55,28,57,58,59, - 60,61,0,63,64,65,0,0,68,69, - 70,4,72,6,74,8,76,77,78,79, - 80,81,82,83,84,85,86,87,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,0,29,56,31, - 32,33,34,35,36,37,38,39,40,41, - 42,43,44,45,46,47,48,49,50,51, - 52,53,54,55,28,57,58,59,60,61, - 0,63,64,65,88,89,68,69,70,9, - 72,11,74,0,76,77,78,79,80,81, - 82,83,84,85,86,87,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,0,29,0,31,32,33, - 34,35,36,37,38,39,40,41,42,43, - 44,45,46,47,48,49,50,51,52,53, - 54,55,0,57,58,59,60,61,0,63, - 64,65,0,0,68,69,70,0,1,2, - 74,4,76,77,78,79,80,81,82,83, - 84,85,86,87,0,1,2,3,4,5, + 60,61,0,63,64,28,66,0,68,69, + 70,71,0,6,74,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,0,29,30,31,32, + 33,34,35,36,0,38,39,40,41,42, + 43,44,45,46,47,48,49,50,51,52, + 53,54,55,28,57,58,59,60,61,0, + 63,64,28,66,0,68,69,70,71,97, + 98,74,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,0,29,56,31,32,33,34,35, - 36,37,38,39,40,41,42,43,44,45, + 26,27,0,29,30,31,32,33,34,35, + 36,0,38,39,40,41,42,43,44,45, 46,47,48,49,50,51,52,53,54,55, - 28,57,58,59,60,61,0,63,64,65, - 88,89,68,69,70,103,104,105,74,0, + 76,57,58,59,60,61,0,63,64,37, + 66,0,68,69,70,71,97,98,74,75, 76,77,78,79,80,81,82,83,84,85, - 86,87,0,1,2,3,4,5,6,7, + 86,0,1,2,3,4,5,6,7,8, + 9,10,11,12,13,14,15,16,17,18, + 19,20,21,22,23,24,25,26,27,0, + 29,30,31,32,33,34,35,36,62,38, + 39,40,41,42,43,44,45,46,47,48, + 49,50,51,52,53,54,55,28,57,58, + 59,60,61,0,63,64,3,66,0,0, + 69,70,71,5,0,74,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,0,29,30,31, + 32,33,34,35,36,56,38,39,40,41, + 42,43,44,45,46,47,48,49,50,51, + 52,53,54,55,28,57,58,59,60,61, + 0,63,64,3,66,0,0,69,70,71, + 0,0,74,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,0,29,30,31,32,33,34, + 35,36,56,38,39,40,41,42,43,44, + 45,46,47,48,49,50,51,52,53,54, + 55,28,57,58,59,60,61,0,63,64, + 3,66,0,0,69,70,71,4,0,74, + 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, - 0,29,56,31,32,33,34,35,36,37, + 0,29,30,31,32,33,34,35,36,0, 38,39,40,41,42,43,44,45,46,47, 48,49,50,51,52,53,54,55,28,57, - 58,59,60,61,0,63,64,65,0,0, - 68,69,70,0,1,2,74,4,76,77, - 78,79,80,81,82,83,84,85,86,87, + 58,59,60,61,0,63,64,28,66,0, + 0,69,70,71,10,0,74,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,0,29,30, + 31,32,33,34,35,36,56,38,39,40, + 41,42,43,44,45,46,47,48,49,50, + 51,52,53,54,55,0,57,58,59,60, + 61,0,63,64,9,66,0,0,69,70, + 71,0,0,74,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,0,29,30,31,32,33, + 34,35,36,56,38,39,40,41,42,43, + 44,45,46,47,48,49,50,51,52,53, + 54,55,0,57,58,59,60,61,0,63, + 64,37,66,0,0,69,70,71,4,0, + 74,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,0,29,30,31,32,33,34,35,36, + 62,38,39,40,41,42,43,44,45,46, + 47,48,49,50,51,52,53,54,55,28, + 57,58,59,60,61,0,63,64,0,66, + 0,99,69,70,71,0,0,74,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,0,29, - 56,31,32,33,34,35,36,37,38,39, + 30,31,32,33,34,35,36,62,38,39, 40,41,42,43,44,45,46,47,48,49, - 50,51,52,53,54,55,28,57,58,59, - 60,61,0,63,64,65,88,89,68,69, - 70,0,1,2,74,0,76,77,78,79, - 80,81,82,83,84,85,86,87,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,0,29,0,31, - 32,33,34,35,36,37,38,39,40,41, - 42,43,44,45,46,47,48,49,50,51, - 52,53,54,55,28,57,58,59,60,61, - 0,63,64,65,0,0,68,69,70,97, - 98,0,74,8,76,77,78,79,80,81, - 82,83,84,85,86,87,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,0,29,0,31,32,33, - 34,35,36,37,38,39,40,41,42,43, - 44,45,46,47,48,49,50,51,52,53, - 54,55,28,57,58,59,60,61,0,63, - 64,65,88,89,68,69,70,0,1,2, - 74,101,76,77,78,79,80,81,82,83, - 84,85,86,87,0,1,2,3,4,5, - 6,7,8,9,10,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,0,29,56,31,32,33,34,35, - 36,37,38,39,40,41,42,43,44,45, - 46,47,48,49,50,51,52,53,54,55, - 28,57,58,59,60,61,0,63,64,65, - 0,0,68,69,70,0,1,2,74,8, - 76,77,78,79,80,81,82,83,84,85, - 86,87,0,1,2,3,4,5,6,7, - 8,9,10,11,12,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 0,29,0,31,32,33,34,35,36,37, - 38,39,40,41,42,43,44,45,46,47, - 48,49,50,51,52,53,54,55,28,57, - 58,59,60,61,0,63,64,65,88,89, - 68,69,70,0,0,99,74,3,76,77, - 78,79,80,81,82,83,84,85,86,87, - 0,1,2,3,4,5,6,7,8,0, - 10,71,12,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,0,29, - 56,31,32,33,34,35,36,37,38,39, - 40,41,42,43,44,45,46,47,48,49, - 50,51,52,53,54,55,0,1,2,59, - 4,61,6,121,8,0,1,2,68,69, - 70,0,1,2,3,4,5,6,7,8, - 9,10,11,12,56,102,15,16,17,18, - 19,20,21,22,23,24,25,0,1,2, - 117,30,5,32,33,0,1,2,3,4, - 5,6,7,8,43,0,0,0,3,48, - 49,50,51,52,53,54,55,30,57,58, - 0,0,61,0,1,2,0,4,0,68, - 69,70,71,72,28,74,75,0,1,2, - 3,4,5,6,7,8,9,10,11,12, - 30,56,15,16,17,18,19,20,21,22, - 23,24,25,0,103,104,105,30,62,32, - 33,0,1,2,3,4,5,6,7,8, - 43,60,0,60,0,48,49,50,51,52, - 53,54,55,9,57,58,0,90,61,93, - 94,0,6,96,3,68,69,70,71,72, - 28,74,75,0,1,2,3,4,5,6, - 7,8,9,10,11,12,100,0,15,16, - 17,18,19,20,21,22,23,24,25,76, - 103,104,105,30,62,32,33,0,1,2, - 0,4,5,0,7,28,43,73,0,1, - 2,48,49,50,51,52,53,54,55,0, - 57,58,3,0,61,93,94,30,0,95, - 30,68,69,70,71,72,0,74,75,3, - 12,0,6,0,8,9,3,11,0,13, - 14,0,1,2,3,4,5,6,7,8, - 32,33,26,27,28,0,103,104,105,66, - 5,43,64,65,33,56,48,49,50,51, - 52,53,54,55,43,0,1,2,3,4, - 67,6,56,8,0,1,2,3,62,5, - 0,7,66,67,0,102,0,71,72,73, - 107,108,109,110,111,112,113,114,115,116, - 117,0,71,0,88,89,90,91,92,93, - 94,95,96,97,98,99,100,101,102,0, - 0,56,106,107,108,109,110,111,112,113, - 114,115,116,117,118,0,120,121,3,0, - 0,6,62,8,9,71,11,67,13,14, - 0,1,2,3,4,5,6,7,8,0, - 0,26,27,28,4,62,0,1,2,3, - 4,5,6,7,8,9,0,11,12,0, - 0,1,2,3,4,5,6,7,8,13, - 14,56,13,14,28,0,0,62,32,33, - 4,66,67,0,1,2,71,72,73,43, - 7,0,1,2,48,49,50,51,52,53, - 54,55,56,88,89,90,91,92,93,94, - 95,96,97,98,99,100,101,102,0,73, - 100,106,107,108,109,110,111,112,113,114, - 115,116,117,118,74,120,121,0,1,2, - 3,4,5,6,7,8,28,10,0,0, + 50,51,52,53,54,55,0,57,58,59, + 60,61,0,63,64,37,66,0,6,69, + 70,71,0,95,74,75,76,77,78,79, + 80,81,82,83,84,85,86,0,1,2, + 3,4,5,6,7,0,9,10,3,12, 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,0,29,0,31,4, - 0,34,35,36,37,38,39,40,41,42, - 10,44,45,46,47,0,0,1,2,3, - 0,5,0,7,4,9,59,11,0,62, - 30,64,65,0,1,2,3,4,5,6, - 7,8,9,10,0,67,13,14,15,16, + 23,24,25,26,27,0,29,30,31,32, + 33,34,35,36,0,38,39,40,41,42, + 43,44,45,46,47,48,49,50,51,52, + 53,54,55,0,0,58,0,4,61,6, + 4,56,9,91,92,99,69,70,71,0, + 1,2,3,4,5,6,7,8,9,10, + 11,0,100,14,15,16,17,18,19,20, + 21,22,23,24,25,0,1,2,3,4, + 5,6,7,0,9,0,37,0,1,2, + 41,4,5,0,7,46,47,48,49,50, + 51,52,53,54,55,0,57,102,59,4, + 61,0,0,0,1,2,4,68,69,70, + 71,72,117,74,37,0,1,2,3,4, + 5,6,7,28,9,101,87,0,1,2, + 3,4,5,6,7,8,9,10,11,74, + 65,14,15,16,17,18,19,20,21,22, + 23,24,25,114,115,116,0,1,2,3, + 4,5,6,7,37,9,63,64,41,0, + 0,1,2,46,47,48,49,50,51,52, + 53,54,55,14,57,0,59,72,61,0, + 1,2,119,4,9,68,69,70,71,72, + 0,74,0,3,0,3,6,37,8,9, + 41,11,12,13,87,46,47,48,49,50, + 51,52,53,54,55,0,26,27,28,0, + 0,0,1,2,3,4,5,6,7,10, + 9,114,115,116,14,15,16,17,18,19, + 20,21,22,23,24,25,56,0,0,0, + 1,2,62,4,5,65,7,67,68,67, + 0,41,72,73,4,0,46,47,48,49, + 50,51,52,53,54,55,57,56,88,89, + 90,91,92,93,94,95,96,97,98,99, + 100,101,102,103,104,105,106,107,108,109, + 110,111,112,113,0,1,2,117,118,119, + 0,121,0,3,67,3,6,0,8,9, + 8,11,12,13,0,1,2,3,4,5, + 6,7,0,9,0,3,26,27,28,0, + 1,2,3,4,5,6,7,0,9,102, + 0,104,105,106,107,108,109,110,111,112, + 113,0,1,2,117,0,56,0,56,4, + 0,0,62,3,0,65,29,67,68,8, + 56,0,72,73,3,73,0,0,1,2, + 3,67,5,28,7,8,26,27,88,89, + 90,91,92,93,94,95,96,97,98,99, + 100,101,102,103,104,105,106,107,108,109, + 110,111,112,113,63,64,56,117,118,119, + 0,121,0,1,2,3,4,5,6,7, + 90,9,10,56,12,13,96,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 73,29,30,31,32,33,34,35,36,0, + 38,39,40,103,42,43,44,45,0,1, + 2,3,4,0,6,0,100,9,0,118, + 58,121,62,8,62,63,64,0,1,2, + 3,4,5,6,7,8,9,10,0,12, + 13,0,15,16,17,18,19,20,21,22, + 23,24,25,26,27,56,29,30,31,32, + 33,34,35,36,56,38,39,40,0,42, + 43,44,45,0,1,2,3,0,5,0, + 7,8,0,68,11,58,4,0,1,2, + 72,4,5,66,7,68,0,1,2,3, + 4,5,6,7,8,9,10,28,12,13, + 28,15,16,17,18,19,20,21,22,23, + 24,25,26,27,37,29,30,31,32,33, + 34,35,36,65,38,39,40,0,42,43, + 44,45,101,0,1,2,3,0,5,72, + 7,0,1,2,58,4,0,6,0,8, + 9,0,66,0,68,0,1,2,3,4, + 5,6,7,8,9,10,0,12,13,3, + 15,16,17,18,19,20,21,22,23,24, + 25,26,27,0,29,30,31,32,33,34, + 35,36,0,38,39,40,4,42,43,44, + 45,0,1,2,3,72,5,0,7,8, + 62,0,11,58,73,0,1,2,72,8, + 5,66,0,1,2,3,4,5,6,7, + 0,9,10,41,12,13,95,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 67,29,30,31,32,33,34,35,36,29, + 38,39,40,0,42,43,44,45,0,1, + 2,3,65,5,0,7,0,1,2,3, + 58,5,8,7,73,63,64,0,1,2, + 3,4,5,6,7,0,9,10,3,12, + 13,0,15,16,17,18,19,20,21,22, + 23,24,25,26,27,0,29,30,31,32, + 33,34,35,36,56,38,39,40,65,42, + 43,44,45,0,1,2,0,4,0,6, + 0,0,9,28,8,58,8,73,8,11, + 63,64,0,1,2,3,4,5,6,7, + 8,9,10,0,12,13,65,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 0,29,30,31,32,33,34,35,36,0, + 38,39,40,0,42,43,44,45,0,0, + 0,3,66,5,6,65,0,9,68,0, + 12,13,0,1,2,0,4,8,6,0, + 11,9,3,0,26,27,28,0,30,0, + 1,2,0,4,28,6,56,0,9,46, + 47,14,0,1,2,0,4,58,6,12, + 13,9,29,90,56,114,115,116,0,96, + 62,63,64,65,0,67,8,3,41,11, + 118,56,0,46,47,48,49,50,51,52, + 53,54,55,0,1,2,88,89,90,91, + 92,93,94,0,62,97,98,99,100,101, + 102,103,104,105,106,107,108,109,110,111, + 112,113,0,1,2,3,4,5,6,7, + 37,9,10,65,12,13,68,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 95,29,30,31,32,33,34,35,36,0, + 38,39,40,0,42,43,44,45,0,0, + 88,89,3,14,5,6,8,0,9,11, + 58,12,13,0,1,2,3,119,5,0, + 7,0,1,2,0,26,27,28,7,30, + 41,0,0,1,2,46,47,48,49,50, + 51,52,53,54,55,14,0,1,2,0, + 4,5,3,7,0,56,0,0,1,2, + 67,62,63,64,65,0,67,0,0,1, + 2,0,41,5,67,7,0,46,47,48, + 49,50,51,52,53,54,55,88,89,90, + 91,92,93,94,37,28,97,98,99,100, + 101,102,103,104,105,106,107,108,109,110, + 111,112,113,0,1,2,3,4,5,6, + 7,0,9,10,3,12,13,62,15,16, 17,18,19,20,21,22,23,24,25,26, - 27,61,29,0,31,0,3,34,35,36, - 37,38,39,40,41,42,0,44,45,46, - 47,0,1,2,3,4,5,6,7,8, - 62,0,59,60,0,1,2,3,4,5, - 6,7,8,9,10,72,62,13,14,15, + 27,65,29,30,31,32,33,34,35,36, + 0,38,39,40,0,42,43,44,45,88, + 89,0,1,2,3,4,5,6,7,56, + 9,10,0,12,13,0,15,16,17,18, + 19,20,21,22,23,24,25,26,27,0, + 29,30,31,32,33,34,35,36,0,38, + 39,40,4,42,43,44,45,0,0,1, + 2,3,4,5,6,7,62,9,10,58, + 12,13,72,15,16,17,18,19,20,21, + 22,23,24,25,26,27,0,29,30,31, + 32,33,34,35,36,0,38,39,40,0, + 42,43,44,45,0,1,2,3,4,5, + 6,7,90,9,10,0,12,13,96,15, 16,17,18,19,20,21,22,23,24,25, - 26,27,0,29,0,31,4,62,34,35, - 36,37,38,39,40,41,42,56,44,45, - 46,47,66,0,1,2,3,66,5,0, - 7,0,3,59,60,0,1,2,3,4, - 5,6,7,8,0,10,72,3,13,14, - 15,16,17,18,19,20,21,22,23,24, - 25,26,27,0,29,61,31,0,0,34, - 35,36,37,38,39,40,41,42,10,44, - 45,46,47,0,1,2,0,4,0,6, - 4,8,9,62,59,66,0,30,30,64, - 65,0,1,2,3,4,5,6,7,8, - 0,10,0,3,13,14,15,16,17,18, - 19,20,21,22,23,24,25,26,27,61, - 29,0,31,0,3,34,35,36,37,38, - 39,40,41,42,0,44,45,46,47,0, - 0,1,2,3,0,5,73,7,62,9, - 59,11,99,9,0,64,65,0,1,2, - 3,4,5,6,7,8,0,10,95,3, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,62,29,0,31,0, - 67,34,35,36,37,38,39,40,41,42, - 122,44,45,46,47,0,1,2,3,4, - 5,6,7,8,9,10,59,60,13,14, - 15,16,17,18,19,20,21,22,23,24, - 25,26,27,0,29,101,31,4,0,34, - 35,36,37,38,39,40,41,42,10,44, - 45,46,47,0,0,0,3,0,5,6, - 0,8,118,6,4,32,13,14,0,1, - 2,3,0,5,0,7,0,3,0,26, - 27,28,95,0,31,9,3,11,28,0, - 12,0,9,15,16,17,18,19,20,21, - 22,23,24,25,0,1,2,0,4,56, - 32,33,0,1,2,62,62,64,65,66, - 67,43,67,118,56,0,48,49,50,51, - 52,53,54,55,30,28,103,104,105,56, - 0,88,89,90,91,92,93,94,91,92, - 97,98,99,100,101,102,73,0,0,106, - 107,108,109,110,111,112,113,114,115,116, - 0,1,2,3,4,5,6,7,8,0, - 10,0,0,13,14,15,16,17,18,19, + 26,27,75,29,30,31,32,33,34,35, + 36,0,38,39,40,120,42,43,44,45, + 0,1,2,3,4,5,6,7,72,9, + 10,62,12,13,65,15,16,17,18,19, 20,21,22,23,24,25,26,27,0,29, - 60,31,4,0,34,35,36,37,38,39, - 40,41,42,10,44,45,46,47,0,62, - 0,3,0,5,6,0,8,0,6,59, - 32,13,14,13,14,0,1,2,0,4, - 5,60,7,0,26,27,28,0,90,31, - 12,0,1,2,96,4,9,6,11,8, - 57,0,0,1,2,30,4,5,0,7, - 32,33,90,0,56,0,97,98,96,0, - 62,43,64,65,66,67,48,49,50,51, - 52,53,54,55,0,1,2,0,4,0, - 6,0,8,0,1,2,88,89,90,91, - 92,93,94,91,92,97,98,99,100,101, - 102,0,1,2,106,107,108,109,110,111, - 112,113,114,115,116,0,1,2,3,4, - 5,6,7,8,71,10,71,0,13,14, - 15,16,17,18,19,20,21,22,23,24, - 25,26,27,66,29,66,31,64,65,34, - 35,36,37,38,39,40,41,42,0,44, - 45,46,47,0,1,2,3,9,5,11, - 7,56,0,1,2,3,4,5,6,7, - 8,0,10,0,0,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 119,29,0,31,0,3,34,35,36,37, - 38,39,40,41,42,0,44,45,46,47, - 0,1,2,3,4,5,6,7,8,0, - 10,59,28,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,0,29, - 67,31,71,0,34,35,36,37,38,39, - 40,41,42,0,44,45,46,47,0,1, - 2,3,4,5,6,7,8,0,10,95, - 3,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,67,29,0,31, - 0,3,34,35,36,37,38,39,40,41, - 42,0,44,45,46,47,0,1,2,3, - 4,5,6,7,8,77,10,0,28,13, + 30,31,32,33,34,35,36,72,38,39, + 40,0,42,43,44,45,0,1,2,0, + 4,0,0,0,1,2,10,4,67,10, 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,0,29,0,31,95,3, - 34,35,36,37,38,39,40,41,42,0, - 44,45,46,47,0,1,2,0,4,0, - 1,2,0,4,10,6,12,8,6,15, + 24,25,0,0,0,1,2,3,4,5, + 6,7,8,9,0,11,37,41,14,0, + 37,0,46,47,48,49,50,51,52,53, + 54,55,28,0,0,1,2,61,4,0, + 61,37,3,72,10,69,70,71,14,15, 16,17,18,19,20,21,22,23,24,25, - 0,1,2,0,0,28,32,33,71,0, - 1,2,3,9,5,0,7,43,9,0, - 1,2,48,49,50,51,52,53,54,55, - 30,28,0,1,2,61,0,1,2,62, - 4,0,68,69,70,0,10,0,12,30, - 0,15,16,17,18,19,20,21,22,23, - 24,25,30,0,0,56,0,0,32,33, - 93,94,9,91,92,0,29,73,3,43, - 0,66,73,3,48,49,50,51,52,53, - 54,55,0,0,1,2,4,61,5,0, - 7,26,27,0,68,69,70,0,1,2, - 3,4,5,6,7,8,9,0,11,12, - 28,0,1,2,3,4,5,6,7,8, - 9,56,11,12,67,71,73,71,0,32, - 33,0,1,2,0,4,5,0,7,0, - 43,30,3,9,0,48,49,50,51,52, - 53,54,55,56,0,1,2,3,4,5, - 6,7,8,9,71,11,12,60,57,58, - 73,106,0,29,63,0,0,0,1,2, - 0,0,28,72,30,120,75,59,0,1, - 2,3,4,5,6,7,8,9,0,11, - 12,67,0,66,0,0,72,30,3,28, - 0,57,58,9,9,11,0,63,30,0, - 1,2,3,4,5,6,7,8,9,75, - 11,12,0,1,2,3,4,5,6,7, - 8,9,67,11,12,57,58,0,0,30, - 3,63,0,0,1,2,0,1,2,0, - 72,56,30,75,0,1,2,62,9,5, - 0,67,67,0,0,0,57,58,73,0, - 1,2,63,30,9,0,30,0,3,57, - 58,72,90,0,75,63,9,0,96,0, - 1,2,0,0,72,3,3,75,0,1, - 2,3,4,5,6,7,8,9,66,11, - 12,0,1,2,3,4,5,6,7,8, - 9,72,11,12,0,119,66,0,30,60, - 0,0,67,9,0,1,2,60,73,12, - 0,30,0,1,2,3,4,5,6,7, - 8,9,0,11,12,57,58,0,0,32, - 33,63,0,1,2,0,9,9,57,58, - 43,0,30,75,63,48,49,50,51,52, - 53,54,55,12,0,0,75,0,0,4, - 3,3,0,9,29,3,72,66,0,57, - 58,71,119,32,33,63,66,0,0,0, - 0,0,0,28,43,0,0,75,66,48, - 49,50,51,52,53,54,55,0,0,0, - 73,73,0,0,0,28,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,73,0,0, + 0,57,0,59,60,0,1,2,3,4, + 5,6,7,8,9,41,11,95,120,14, + 46,47,48,49,50,51,52,53,54,55, + 28,87,0,28,0,61,0,3,0,0, + 1,2,4,69,70,71,41,8,0,1, + 2,46,47,48,49,50,51,52,53,54, + 55,56,0,1,2,3,4,5,6,7, + 8,9,0,11,72,0,14,0,73,41, + 8,0,0,1,2,3,4,5,6,7, + 8,9,0,11,62,3,14,65,0,0, + 1,2,0,41,5,66,8,0,46,47, + 48,49,50,51,52,53,54,55,56,37, + 0,1,2,3,4,5,6,7,8,9, + 0,11,0,0,14,73,37,0,66,57, + 0,59,60,0,1,2,6,4,67,72, + 68,8,114,115,116,0,120,37,28,0, + 1,2,3,4,5,6,7,8,9,87, + 11,73,0,14,0,1,2,57,6,59, + 60,0,0,28,0,1,2,0,68,0, + 1,2,62,95,12,13,37,0,1,2, + 3,4,5,6,7,8,9,87,11,66, + 0,14,0,1,2,28,57,62,59,60, + 0,37,90,93,94,0,37,68,96,122, + 0,91,92,0,37,0,0,1,2,3, + 4,5,6,7,8,9,87,11,93,94, + 14,0,0,28,57,3,59,60,0,8, + 8,0,11,91,92,68,0,1,2,0, + 4,61,3,37,0,1,2,3,4,5, + 6,7,8,9,87,11,0,62,14,0, + 1,2,0,57,8,59,60,67,0,1, + 2,3,4,5,6,7,8,9,56,11, + 0,37,14,0,62,0,65,65,93,94, + 10,88,89,87,0,73,37,12,13,0, + 0,57,8,59,60,37,0,1,2,0, + 1,2,0,1,2,0,0,37,0,88, + 89,65,0,1,2,57,8,59,60,73, + 0,87,0,1,2,0,0,0,8,0, + 3,61,3,8,8,0,11,0,65,0, + 88,89,3,0,0,87,3,3,0,0, + 0,3,68,3,0,0,67,67,3,0, + 0,0,0,28,0,0,0,0,0,0, + 0,0,67,67,0,0,0,0,0,0, + 0,73,0,0,0,0,0,0,0,0, + 0,0,0,73,0,0,0,0,0,73, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, @@ -1366,7 +1359,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 }; }; public final static byte termCheck[] = TermCheck.termCheck; @@ -1374,293 +1367,297 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface TermAction { public final static char termAction[] = {0, - 5274,5255,5234,5234,5234,5234,5234,5234,5234,5265, - 1,5262,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,449,1, + 5222,5199,5175,5175,5175,5175,5175,5175,5209,5175, + 1,5203,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,450,1, + 1,1,1,1,1,1,1,436,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,4834,1570,1,2017, + 2553,1,137,1,1,4837,5233,5222,5229,1, + 1,1,1,2576,5405,2839,2953,4211,2205,4201, + 2853,2826,2927,1261,2926,2862,2870,10,5212,5212, + 5212,5212,5212,5212,5212,5212,5212,5212,5212,5212, + 5212,5212,5212,5212,5212,5212,5212,5212,5212,5212, + 5212,5212,5212,5212,5212,35,5212,5212,5212,5212, + 5212,5212,5212,5212,386,5212,5212,5212,5212,5212, + 5212,5212,5212,5212,5212,5212,5212,5212,5212,5212, + 5212,5212,5212,4840,5212,5212,5212,5212,5212,138, + 5212,5212,4849,5212,5222,5212,5212,5212,5212,2413, + 2385,5212,5212,5212,5212,5212,5212,5212,5212,5212, + 5212,5212,5212,5212,8,5215,5215,5215,5215,5215, + 5215,5215,5215,5215,5215,5215,5215,5215,5215,5215, + 5215,5215,5215,5215,5215,5215,5215,5215,5215,5215, + 5215,5215,43,5215,5215,5215,5215,5215,5215,5215, + 5215,5222,5215,5215,5215,5215,5215,5215,5215,5215, + 5215,5215,5215,5215,5215,5215,5215,5215,5215,5215, + 3078,5215,5215,5215,5215,5215,5222,5215,5215,5264, + 5215,5222,5215,5215,5215,5215,2413,2385,5215,5215, + 5215,5215,5215,5215,5215,5215,5215,5215,5215,5215, + 5215,5222,5199,5175,5175,5175,5175,5175,5175,5206, + 5175,1,5203,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5222, + 1,1,1,1,1,1,1,1,5673,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,4896,785,2648,1, - 2631,1,319,2587,1,1,127,43,1,1, - 1,5316,5281,1391,5455,5603,564,2992,3631,2199, - 3630,2915,2949,2986,586,2977,3305,2964,8,5268, - 5268,5268,5268,5268,5268,5268,5268,5268,5268,5268, - 5268,5268,5268,5268,5268,5268,5268,5268,5268,5268, - 5268,5268,5268,5268,5268,5268,435,5268,1316,5268, - 5268,5268,5268,5268,5268,5268,5268,5268,5268,5268, - 5268,5268,5268,5268,5268,5268,5268,5268,5268,5268, - 5268,5268,5268,5268,4899,5268,5268,5268,5268,5268, - 401,5268,5268,5268,2551,2597,5268,5268,5268,5174, - 5268,5177,5268,5274,5268,5268,5268,5268,5268,5268, - 5268,5268,5268,5268,5268,5268,5274,5255,5234,5234, - 5234,5234,5234,5234,5234,5259,1,5262,1,1, + 1,1,1,1,1,1,1,1733,1570,1, + 2017,2553,1,5222,1,1,4578,5233,5222,321, + 1,1,1,3294,5222,5405,2839,2953,4211,2205, + 4201,2853,2826,2927,1261,2926,2862,2870,5222,5199, + 5175,5175,5175,5175,5175,5175,5206,5175,1,5203, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5274,1,5274,1,1,1, + 1,1,1,1,1,1,5222,1,1,1, + 1,1,1,1,1,1319,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,3309,1570,1,2017,2553,1, + 5222,1,1,2575,5233,5222,322,1,1,1, + 5222,5222,5405,2839,2953,4211,2205,4201,2853,2826, + 2927,1261,2926,2862,2870,5222,5199,5175,5175,5175, + 5175,5175,5175,5206,5175,1,5203,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,434,785,2648,1,2631,1,320,2587, - 1,1,131,5274,1,1,1,5274,4908,4905, - 5455,5316,564,2992,3631,2199,3630,2915,2949,2986, - 586,2977,3305,2964,5274,5255,5234,5234,5234,5234, - 5234,5234,5234,5259,1,5262,1,1,1,1, + 1,1,1,5222,1,1,1,1,1,1, + 1,1,1319,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,33,1,1316,1,1,1,1,1, + 1,3701,1570,1,2017,2553,1,99,1,1, + 5023,5233,5222,5222,1,1,1,862,5222,5405, + 2839,2953,4211,2205,4201,2853,2826,2927,1261,2926, + 2862,2870,5222,5199,5175,5175,5175,5175,5175,5175, + 5206,5175,1,5203,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 5222,1,1,1,1,1,1,1,1,5222, 1,1,1,1,1,1,1,1,1,1, - 4902,785,2648,1,2631,1,453,2587,1,1, - 2551,2597,1,1,1,5704,5705,5706,5455,5274, - 564,2992,3631,2199,3630,2915,2949,2986,586,2977, - 3305,2964,5274,5255,5234,5234,5234,5234,5234,5234, - 5234,5259,1,5262,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,4209,1570, + 1,2017,2553,1,306,1,1,4349,5233,5222, + 454,1,1,1,5527,5222,5405,2839,2953,4211, + 2205,4201,2853,2826,2927,1261,2926,2862,2870,5222, + 5199,5175,5175,5175,5175,5175,5175,5206,5175,1, + 5203,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5222,1,1, + 1,1,1,1,1,1,4855,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 384,1,4917,1,1,1,1,1,1,1, + 1,1,1,1,1,139,1570,1,2017,2553, + 1,5222,1,1,2356,5233,5222,453,1,1, + 1,5222,5222,5405,2839,2953,4211,2205,4201,2853, + 2826,2927,1261,2926,2862,2870,5222,5199,5175,5175, + 5175,5175,5175,5175,5206,5175,1,5203,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,4911,785, - 2648,1,2631,1,452,2587,1,1,130,5274, - 1,1,1,5274,4908,4905,5455,5316,564,2992, - 3631,2199,3630,2915,2949,2986,586,2977,3305,2964, - 5274,5255,5234,5234,5234,5234,5234,5234,5234,5259, - 1,5262,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5274,1, - 4920,1,1,1,1,1,1,1,1,1, + 1,1,1,1,55,1,1,1,1,1, + 1,1,1,4858,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1249,785,2648,1, - 2631,1,135,2587,1,1,2551,2597,1,1, - 1,5274,5291,5292,5455,5274,564,2992,3631,2199, - 3630,2915,2949,2986,586,2977,3305,2964,5274,5255, - 5234,5234,5234,5234,5234,5234,5234,5259,1,5262, + 1,1,141,1570,1,2017,2553,1,5222,1, + 1,2751,5233,5222,45,1,1,1,5266,5222, + 5405,2839,2953,4211,2205,4201,2853,2826,2927,1261, + 2926,2862,2870,5222,5199,5175,5175,5175,5175,5175, + 5175,5206,5175,1,5203,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5274,1,5274,1, + 1,47,1,1,1,1,1,1,1,1, + 5659,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5020, + 1570,1,2017,2553,1,5222,1,1,359,5233, + 5222,590,1,1,1,5222,5222,5405,2839,2953, + 4211,2205,4201,2853,2826,2927,1261,2926,2862,2870, + 5222,2860,1,1,1,1,1,1,2861,1, + 1,5231,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5222,1, + 1,1,1,1,1,1,1,5730,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,2916,785,2648,1,2631,1, - 143,2587,1,1,129,137,1,1,1,2406, - 2378,5274,5455,2349,564,2992,3631,2199,3630,2915, - 2949,2986,586,2977,3305,2964,5274,5255,5234,5234, - 5234,5234,5234,5234,5234,5259,1,5262,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5274,1,5274,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,3990,785,2648,1,2631,1,347,2587, - 1,1,2551,2597,1,1,1,5274,5079,5076, - 5455,2285,564,2992,3631,2199,3630,2915,2949,2986, - 586,2977,3305,2964,5274,5255,5234,5234,5234,5234, - 5234,5234,5234,5259,1,5262,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,5274,1,1316,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 4217,785,2648,1,2631,1,139,2587,1,1, - 128,138,1,1,1,54,5079,5076,5455,2349, - 564,2992,3631,2199,3630,2915,2949,2986,586,2977, - 3305,2964,5274,2922,1,1,1,1,1,1, - 1,5284,1,5283,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 33,1,5274,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1249,785, - 2648,1,2631,1,106,2587,1,1,2551,2597, - 1,1,1,145,5274,588,5455,3245,564,2992, - 3631,2199,3630,2915,2949,2986,586,2977,3305,2964, - 43,4908,4905,3039,781,3672,3738,4693,3760,5274, - 1262,419,5536,3716,3694,5543,5541,5550,5549,5545, - 5546,5544,5547,5548,5551,5542,3804,3782,105,5297, - 4307,3641,5539,5610,1044,1211,5299,1053,1049,1106, - 5300,5298,945,5611,5293,5295,5296,5294,5533,5540, - 5512,5538,5537,5534,5535,5513,439,1,1,1353, - 1,5668,4914,4887,4914,54,5124,5121,1265,5669, - 5670,5274,5146,5146,233,5142,233,233,233,233, - 5150,1,233,1,2076,2248,1,1,1,1, - 1,1,1,1,1,1,1,41,5171,5171, - 2736,5139,5171,1,1,344,4930,4926,2863,5316, - 859,1391,4693,5603,1,5274,132,117,3217,1, - 1,1,1,1,1,1,1,3663,1110,985, - 41,5274,1,5274,4908,4905,141,5316,5274,1, - 1,1,233,412,2515,5682,5769,5274,5146,5146, - 233,5142,233,233,233,233,5150,1,233,1, - 5314,1316,1,1,1,1,1,1,1,1, - 1,1,1,1,5704,5705,5706,5139,4940,1, - 1,5274,4930,4926,931,5316,859,1391,4693,5603, - 1,2279,134,1813,1,1,1,1,1,1, - 1,1,1,362,1110,985,5274,3848,1,2461, - 2434,97,1855,3870,5085,1,1,1,233,412, - 2515,5682,5769,5274,5146,5146,233,5142,233,233, - 233,233,5189,1,233,1,2318,5274,1,1, - 1,1,1,1,1,1,1,1,1,3247, - 5704,5705,5706,5139,5127,1,1,5274,4908,4905, - 53,781,5091,145,4693,4255,1,362,5274,5291, - 5292,1,1,1,1,1,1,1,1,346, - 1110,985,2632,163,1,2461,2434,3565,229,362, - 2834,1,1,1,233,411,37,5682,5769,4923, - 5536,335,4923,242,4923,4923,5106,4923,5274,4923, - 4923,5274,5217,5212,931,5159,859,5209,4693,5206, - 5539,5610,4923,4923,4923,5274,5704,5705,5706,1822, - 3616,5611,3826,1347,5610,1316,5533,5540,5512,5538, - 5537,5534,5535,5513,5611,344,43,43,3947,5316, - 1864,1391,4923,5603,1,4892,4888,931,4923,859, - 5274,4693,4923,4923,5274,2248,5274,4923,4923,4923, - 1780,1738,1696,1654,1612,1570,1528,1486,1444,1402, - 2736,5274,2027,5274,4923,4923,4923,4923,4923,4923, - 4923,4923,4923,4923,4923,4923,4923,4923,4923,5274, - 5274,1316,4923,4923,4923,4923,4923,4923,4923,4923, - 4923,4923,4923,4923,4923,5274,4923,4923,5088,5274, - 142,5088,4142,5088,5088,2027,5088,3111,5088,5088, - 312,5217,5212,931,5159,859,5209,4693,5206,5274, - 5274,5088,5088,5088,789,5724,33,384,384,5115, - 384,384,5115,384,5115,5118,124,5115,384,126, - 5274,4892,4888,931,1,859,1,4693,1,2838, - 2809,5088,2838,2809,4902,5274,43,5088,384,384, - 5316,5088,5088,42,4937,4934,5088,5088,5088,384, - 1038,293,5291,5292,384,384,384,384,384,384, - 384,384,5118,5088,5088,5088,5088,5088,5088,5088, - 5088,5088,5088,5088,5088,5088,5088,5088,45,5118, - 2318,5088,5088,5088,5088,5088,5088,5088,5088,5088, - 5088,5088,5088,5088,5805,5088,5088,1,4989,4985, - 3039,4993,3672,3738,4693,3760,5082,4949,510,5274, - 3716,3694,4976,4982,4955,4958,4970,4967,4973,4964, - 4961,4952,4979,3804,3782,5274,5297,5274,3641,3152, - 1,1044,1211,5299,1053,1049,1106,5300,5298,945, - 5246,5293,5295,5296,5294,5274,1,4892,4888,5180, - 1,5183,5274,5186,385,5284,1353,5283,5274,511, - 2705,43,43,43,4908,4905,3039,781,3672,3738, - 4693,3760,5282,566,5274,870,3716,3694,5543,5541, - 5550,5549,5545,5546,5544,5547,5548,5551,5542,3804, - 3782,5249,5297,1,3641,5274,4270,1044,1211,5299, - 1053,1049,1106,5300,5298,945,294,5293,5295,5296, - 5294,366,4892,4888,2863,1,859,1,4693,1, - 5710,5274,1353,1519,43,4908,4905,3039,781,3672, - 3738,4693,3760,5282,566,5281,5781,3716,3694,5543, - 5541,5550,5549,5545,5546,5544,5547,5548,5551,5542, - 3804,3782,5274,5297,5274,3641,1994,1903,1044,1211, - 5299,1053,1049,1106,5300,5298,945,1316,5293,5295, - 5296,5294,1990,1,4892,4888,931,1174,859,313, - 4693,5274,1392,1353,1519,147,4908,4905,3039,781, - 3672,3738,4693,3760,5274,566,5281,3948,3716,3694, - 5543,5541,5550,5549,5545,5546,5544,5547,5548,5551, - 5542,3804,3782,140,5297,2960,3641,5274,1,1044, - 1211,5299,1053,1049,1106,5300,5298,945,5246,5293, - 5295,5296,5294,1,5162,5162,5274,5159,191,1391, - 2109,5603,362,1910,1353,1073,5274,2230,2705,43, - 43,1,4989,4985,3039,4993,3672,3738,4693,3760, - 5274,4949,5274,3950,3716,3694,4976,4982,4955,4958, - 4970,4967,4973,4964,4961,4952,4979,3804,3782,5249, - 5297,5274,3641,5274,4104,1044,1211,5299,1053,1049, - 1106,5300,5298,945,144,5293,5295,5296,5294,5274, - 1,4892,4888,931,5274,859,362,4693,1929,312, - 1353,312,588,5278,5274,43,43,43,4908,4905, - 3039,781,3672,3738,4693,3760,5274,566,362,4124, - 3716,3694,5543,5541,5550,5549,5545,5546,5544,5547, - 5548,5551,5542,3804,3782,3101,5297,357,3641,5274, - 3111,1044,1211,5299,1053,1049,1106,5300,5298,945, - 5271,5293,5295,5296,5294,43,4908,4905,3039,781, - 3672,3738,4693,3760,5278,566,1353,1519,3716,3694, - 5543,5541,5550,5549,5545,5546,5544,5547,5548,5551, - 5542,3804,3782,43,5297,2285,3641,5316,304,1044, - 1211,5299,1053,1049,1106,5300,5298,945,5577,5293, - 5295,5296,5294,1,5274,292,634,121,5738,5732, - 392,5736,5277,3431,384,670,5730,5731,1,4892, - 4888,2863,5274,859,5274,4693,5274,4246,228,5761, - 5762,5741,5630,1,5739,5284,3947,5283,1249,5274, - 5536,5274,5100,5543,5541,5550,5549,5545,5546,5544, - 5547,5548,5551,5542,393,4908,4905,1,5316,927, - 5539,5610,40,5203,5200,5742,1937,867,901,5740, - 5763,5611,1440,5277,1316,5274,5533,5540,5512,5538, - 5537,5534,5535,5513,43,1249,5704,5705,5706,1316, - 5274,5752,5751,5764,5733,5734,5757,5758,3408,3385, - 5755,5756,5735,5737,5759,5760,5103,5274,120,5765, - 5745,5746,5747,5743,5744,5753,5754,5749,5748,5750, - 43,4908,4905,3039,781,3672,3738,4693,3760,136, - 566,5274,119,3716,3694,5543,5541,5550,5549,5545, - 5546,5544,5547,5548,5551,5542,3804,3782,43,5297, - 3135,3641,5316,304,1044,1211,5299,1053,1049,1106, - 5300,5298,945,5577,5293,5295,5296,5294,5274,3953, - 125,634,123,5738,5732,5274,5736,5274,3431,1353, - 3287,5730,5731,2838,2809,5274,4908,4905,230,781, - 5091,2631,4693,5274,5761,5762,5741,1,3848,5739, - 5536,440,43,43,3870,5316,5284,5097,5283,5094, - 3340,5274,5274,4908,4905,3958,781,859,5274,4693, - 5539,5610,3848,5274,927,423,2406,2378,3870,5274, - 5742,5611,867,901,5740,5763,5533,5540,5512,5538, - 5537,5534,5535,5513,98,1,1,369,1,367, - 5168,5274,5168,5274,5079,5076,5752,5751,5764,5733, - 5734,5757,5758,3408,3385,5755,5756,5735,5737,5759, - 5760,5274,5124,5121,5765,5745,5746,5747,5743,5744, - 5753,5754,5749,5748,5750,43,4908,4905,3039,781, - 3672,3738,4693,3760,1906,566,3004,5274,3716,3694, - 5543,5541,5550,5549,5545,5546,5544,5547,5548,5551, - 5542,3804,3782,1216,5297,1274,3641,3826,1347,1044, - 1211,5299,1053,1049,1106,5300,5298,945,1,5293, - 5295,5296,5294,1,4892,4888,5180,197,5183,197, - 5186,1986,43,4908,4905,3039,781,3672,3738,4693, - 3760,5274,566,361,1,3716,3694,5543,5541,5550, - 5549,5545,5546,5544,5547,5548,5551,5542,3804,3782, - 3010,5297,5274,3641,5274,4273,1044,1211,5299,1053, - 1049,1106,5300,5298,945,5274,5293,5295,5296,5294, - 43,4908,4905,3275,781,3672,3738,4693,3760,421, - 566,1353,2195,3716,3694,5543,5541,5550,5549,5545, - 5546,5544,5547,5548,5551,5542,3804,3782,5274,5297, - 775,3641,5671,1,1044,1211,5299,1053,1049,1106, - 5300,5298,945,5274,5293,5295,5296,5294,43,4908, - 4905,3039,781,3672,3738,4693,3760,5274,566,5632, - 3300,3716,3694,5543,5541,5550,5549,5545,5546,5544, - 5547,5548,5551,5542,3804,3782,4485,5297,109,3641, - 5274,4370,1044,1211,5299,1053,1049,1106,5300,5298, - 945,5274,5293,5295,5296,5294,43,4908,4905,3039, - 781,3672,3738,4693,3760,3133,566,443,3242,3716, - 3694,5543,5541,5550,5549,5545,5546,5544,5547,5548, - 5551,5542,3804,3782,5274,5297,283,3641,4056,5240, - 1044,1211,5299,1053,1049,1106,5300,5298,945,5274, - 5293,5295,5296,5294,5274,4908,4905,133,5316,101, - 43,43,122,5316,637,5225,5536,5222,3431,5543, - 5541,5550,5549,5545,5546,5544,5547,5548,5551,5542, - 49,4946,4946,79,5274,2515,5539,5610,643,1, - 4892,4888,2863,5280,859,415,4693,5611,5100,5274, - 8624,8624,5533,5540,5512,5538,5537,5534,5535,5513, - 4943,5228,51,5136,5136,5668,246,5069,5065,5130, - 5073,5274,1265,5669,5670,5274,637,5274,5020,5314, - 5274,5056,5062,5035,5038,5050,5047,5053,5044,5041, - 5032,5059,5133,1,5274,1316,5274,444,5011,5005, - 2461,2434,167,3408,3385,81,3489,5279,3466,5002, - 5274,2162,5103,2623,5029,5008,4999,5014,5017,5026, - 5023,4996,54,5274,5291,5292,5292,5668,859,5274, - 4693,5342,5343,5274,1265,5669,5670,36,385,385, - 5109,385,385,5109,385,5109,5112,1,5109,385, - 5292,1,5234,5234,233,5234,233,233,233,233, - 5237,903,233,8582,3332,2113,167,5458,527,385, - 385,5274,4908,4905,5274,781,859,39,4693,5274, - 385,5231,4402,5282,5274,385,385,385,385,385, - 385,385,385,5112,1,5234,5234,233,5234,233, - 233,233,233,233,3008,233,8582,3584,4081,2648, - 5112,794,5274,3528,2587,311,5274,5274,5156,5153, - 5274,5274,2195,225,5231,2786,5769,2900,1,5234, - 5234,233,5234,233,233,233,233,5243,5274,233, - 8582,1007,118,3346,5274,1,5281,5314,3947,3596, - 5274,4081,2648,5284,340,5283,374,2587,5231,1, - 5234,5234,233,5234,233,233,233,233,5237,5769, - 233,8582,1,5234,5234,233,5234,233,233,233, - 233,5237,4377,233,8582,4081,2648,5274,5274,5231, - 4588,2587,503,41,5165,5165,5274,5196,5192,5274, - 224,1316,5231,5769,5274,5291,5292,340,5282,3616, - 501,4349,340,5274,5274,5274,4081,2648,340,5274, - 5291,5292,2587,3610,5280,5274,5314,5274,4388,4081, - 2648,225,3848,516,5769,2587,1603,5274,3870,393, - 5291,5292,5274,5274,225,4706,4046,5769,1,5234, - 5234,233,5234,233,233,233,233,233,4591,233, - 8582,1,5234,5234,233,5234,233,233,233,233, - 233,5281,233,8582,1,3010,4711,231,5231,2729, - 5274,5274,4724,5252,5274,8602,8289,1687,5279,5536, - 5274,5231,1,5234,5234,233,5234,233,233,233, - 233,233,505,233,8582,4081,2648,1,1,5539, - 5610,2587,5274,8602,8289,1,5280,523,4081,2648, - 5611,232,5231,5769,2587,5533,5540,5512,5538,5537, - 5534,5535,5513,5536,1,54,5769,5274,5274,5291, - 4709,4698,5274,169,2581,4454,5281,3346,5274,4081, - 2648,5457,3010,5539,5610,2587,1948,2,5274,5274, - 5274,5274,5274,5291,5611,5274,5274,5769,3357,5533, - 5540,5512,5538,5537,5534,5535,5513,5274,5274,5274, - 5279,523,5274,5274,5274,41,5274,5274,5274,5274, - 5274,5274,5274,5274,5274,5274,5274,5274,5274,5274, - 5274,5274,5274,5274,5274,5274,5274,169 + 1,1,1,1,1,1,142,1570,1,2017, + 2553,1,123,1,1,2236,5233,5222,3555,1, + 1,1,143,5580,5405,2839,2953,4211,2205,4201, + 2853,2826,2927,1261,2926,2862,2870,45,4846,4843, + 3593,918,2724,3826,4637,348,3848,1255,2991,3804, + 3782,5486,5493,5491,5500,5499,5495,5496,5494,5497, + 5498,5501,5492,3892,3870,147,5247,629,811,952, + 5249,866,1051,945,5222,5250,5248,771,5489,5243, + 5245,5246,5244,5560,5561,5483,5490,5462,5488,5487, + 5484,5485,5463,45,145,1356,5222,5266,5617,1775, + 2918,1319,5553,3532,3491,590,3303,5618,5619,5222, + 5087,5087,235,5083,235,235,235,5091,235,1, + 235,5222,2325,1,1,1,1,1,1,1, + 1,1,1,1,1,5222,4830,4826,930,1, + 727,1,4637,5222,1,165,5080,5222,4846,4843, + 1,918,5029,5222,4637,1,1,1,1,1, + 1,1,1,1,1,393,2846,2255,1914,386, + 1,5222,1,5222,5241,5242,387,413,1,1, + 1,235,3196,5631,576,5222,5158,5153,930,5100, + 727,5150,4637,1733,5147,2292,5718,5222,5087,5087, + 235,5083,235,235,235,5130,235,1,235,5754, + 1868,1,1,1,1,1,1,1,1,1, + 1,1,1,5653,5654,5655,5222,4868,4864,930, + 5266,727,1775,4637,5080,5553,3914,1107,1,231, + 51,4884,4884,1,1,1,1,1,1,1, + 1,1,1,5486,2846,140,1914,2031,1,5222, + 4846,4843,4825,5266,2356,412,1,1,1,235, + 39,5631,315,4861,5222,2661,4861,4881,4861,4861, + 5489,4861,4861,4861,5718,5560,5561,5483,5490,5462, + 5488,5487,5484,5485,5463,5222,4861,4861,4861,306, + 230,346,4868,4864,3317,5266,727,1775,4637,5527, + 5553,5653,5654,5655,5486,5493,5491,5500,5499,5495, + 5496,5494,5497,5498,5501,5492,4861,147,5222,5222, + 4846,4843,4861,918,727,4861,4637,4861,4861,1074, + 5222,5489,4861,4861,1281,5222,5560,5561,5483,5490, + 5462,5488,5487,5484,5485,5463,3680,1319,4861,4861, + 4861,4861,4861,4861,4861,4861,4861,4861,4861,4861, + 4861,4861,4861,4861,4861,4861,4861,4861,4861,4861, + 4861,4861,4861,4861,5222,5241,5242,4861,4861,4861, + 5222,4861,1,5026,1826,3365,5026,5222,5026,5026, + 5041,5026,5026,5026,368,4830,4826,3317,1,727, + 1,4637,244,1,5222,5047,5026,5026,5026,314, + 5158,5153,930,5100,727,5150,4637,5222,5147,2255, + 119,1784,1742,1700,1658,1616,1574,1532,1490,1448, + 1406,5222,5017,5014,3196,56,5026,5222,1319,5242, + 83,5222,5026,2911,5222,5026,1649,5026,5026,5226, + 1319,1,5026,5026,4507,5044,144,1,4830,4826, + 3317,1176,727,5242,4637,5041,5292,5293,5026,5026, + 5026,5026,5026,5026,5026,5026,5026,5026,5026,5026, + 5026,5026,5026,5026,5026,5026,5026,5026,5026,5026, + 5026,5026,5026,5026,3914,1107,2850,5026,5026,5026, + 5222,5026,1,4927,4923,3593,4931,2724,3826,4637, + 3936,3848,4887,1319,3804,3782,3958,4914,4920,4893, + 4896,4908,4905,4911,4902,4899,4890,4917,3892,3870, + 5044,5247,629,811,952,5249,866,1051,945,349, + 5250,5248,771,656,5243,5245,5246,5244,346,45, + 45,3365,5266,5222,1775,5222,2325,5553,5222,5225, + 1356,3328,1949,5230,512,45,45,45,4846,4843, + 3593,918,2724,3826,4637,1723,3848,567,5222,3804, + 3782,146,5493,5491,5500,5499,5495,5496,5494,5497, + 5498,5501,5492,3892,3870,1319,5247,629,811,952, + 5249,866,1051,945,1319,5250,5248,771,511,5243, + 5245,5246,5244,1,4830,4826,5121,424,5124,1, + 5127,5232,56,5229,5231,1356,5241,5222,4846,4843, + 1910,918,5029,5233,4637,5229,45,4846,4843,3593, + 918,2724,3826,4637,1723,3848,567,1733,3804,3782, + 5241,5493,5491,5500,5499,5495,5496,5494,5497,5498, + 5501,5492,3892,3870,2068,5247,629,811,952,5249, + 866,1051,945,873,5250,5248,771,5222,5243,5245, + 5246,5244,2292,1,4830,4826,930,5222,727,2829, + 4637,1,5103,5103,1356,5100,5222,1775,5222,364, + 5553,5222,5233,5222,5229,45,4846,4843,3593,918, + 2724,3826,4637,5234,3848,567,5222,3804,3782,3368, + 5493,5491,5500,5499,5495,5496,5494,5497,5498,5501, + 5492,3892,3870,296,5247,629,811,952,5249,866, + 1051,945,45,5250,5248,771,5266,5243,5245,5246, + 5244,1,4830,4826,930,2031,727,294,4637,314, + 1956,5222,314,1356,364,5222,5241,5242,5620,5228, + 3294,5233,149,4846,4843,3593,918,2724,3826,4637, + 5222,3848,567,2635,3804,3782,364,5493,5491,5500, + 5499,5495,5496,5494,5497,5498,5501,5492,3892,3870, + 1994,5247,629,811,952,5249,866,1051,945,4078, + 5250,5248,771,363,5243,5245,5246,5244,1,4830, + 4826,3317,1485,727,1,4637,1,4830,4826,930, + 1356,727,169,4637,5227,45,45,1,4927,4923, + 3593,4931,2724,3826,4637,5222,3848,4887,3591,3804, + 3782,422,4914,4920,4893,4896,4908,4905,4911,4902, + 4899,4890,4917,3892,3870,5222,5247,629,811,952, + 5249,866,1051,945,1319,5250,5248,771,912,5243, + 5245,5246,5244,440,1,1,5222,1,402,4852, + 5222,435,4852,2228,5234,1356,5115,169,5230,5118, + 45,45,45,4846,4843,3593,918,2724,3826,4637, + 5226,3848,567,122,3804,3782,1162,5493,5491,5500, + 5499,5495,5496,5494,5497,5498,5501,5492,3892,3870, + 108,5247,629,811,952,5249,866,1051,945,528, + 5250,5248,771,337,5243,5245,5246,5244,1,5222, + 5222,1047,5233,5687,5681,1008,5222,5685,5229,5222, + 5679,5680,441,45,45,107,5266,5232,5035,5222, + 5231,5032,3592,1,5710,5711,5690,232,5688,100, + 1,1,5222,1,3600,5109,4050,126,5109,5560, + 5561,5486,103,45,45,1,5266,2851,5166,3269, + 2690,5163,2552,3936,871,5653,5654,5655,12,3958, + 5691,626,713,5712,5222,5689,5038,3716,5489,8, + 5225,2081,129,5560,5561,5483,5490,5462,5488,5487, + 5484,5485,5463,5222,8601,8601,5701,5700,5713,5682, + 5683,5706,5707,5222,1975,5704,5705,5684,5686,5708, + 5709,5714,5694,5695,5696,5692,5693,5702,5703,5698, + 5697,5699,45,4846,4843,3593,918,2724,3826,4637, + 5264,3848,567,8,3804,3782,5038,5493,5491,5500, + 5499,5495,5496,5494,5497,5498,5501,5492,3892,3870, + 5582,5247,629,811,952,5249,866,1051,945,233, + 5250,5248,771,371,5243,5245,5246,5244,1,5222, + 2777,2803,1047,5486,5687,5681,5232,369,5685,5231, + 1356,5679,5680,1,4830,4826,5121,8,5124,5222, + 5127,44,4875,4872,5222,5710,5711,5690,1481,5688, + 5489,234,5222,5017,5014,5560,5561,5483,5490,5462, + 5488,5487,5484,5485,5463,5486,5222,4846,4843,5222, + 918,727,4250,4637,5222,871,5222,53,5077,5077, + 1218,5691,626,713,5712,5222,5689,81,5222,5241, + 5242,133,5489,727,1277,4637,445,5560,5561,5483, + 5490,5462,5488,5487,5484,5485,5463,5701,5700,5713, + 5682,5683,5706,5707,5074,5169,5704,5705,5684,5686, + 5708,5709,5714,5694,5695,5696,5692,5693,5702,5703, + 5698,5697,5699,45,4846,4843,3593,918,2724,3826, + 4637,5222,3848,567,4419,3804,3782,1983,5493,5491, + 5500,5499,5495,5496,5494,5497,5498,5501,5492,3892, + 3870,2757,5247,629,811,952,5249,866,1051,945, + 444,5250,5248,771,5222,5243,5245,5246,5244,2777, + 2803,45,4846,4843,3593,918,2724,3826,4637,2389, + 3848,567,121,3804,3782,5222,5493,5491,5500,5499, + 5495,5496,5494,5497,5498,5501,5492,3892,3870,5222, + 5247,629,811,952,5249,866,1051,945,5222,5250, + 5248,771,2027,5243,5245,5246,5244,1,45,4846, + 4843,4580,918,2724,3826,4637,4051,3848,567,1356, + 3804,3782,623,5493,5491,5500,5499,5495,5496,5494, + 5497,5498,5501,5492,3892,3870,5222,5247,629,811, + 952,5249,866,1051,945,5222,5250,5248,771,5222, + 5243,5245,5246,5244,45,4846,4843,3593,918,2724, + 3826,4637,3936,3848,567,5222,3804,3782,3958,5493, + 5491,5500,5499,5495,5496,5494,5497,5498,5501,5492, + 3892,3870,3746,5247,629,811,952,5249,866,1051, + 945,416,5250,5248,771,2978,5243,5245,5246,5244, + 45,4846,4843,3593,918,2724,3826,4637,2118,3848, + 567,4215,3804,3782,3038,5493,5491,5500,5499,5495, + 5496,5494,5497,5498,5501,5492,3892,3870,376,5247, + 629,811,952,5249,866,1051,945,5408,5250,5248, + 771,5222,5243,5245,5246,5244,5222,4846,4843,1, + 5266,5222,1,394,4846,4843,1117,5266,2168,5187, + 5486,5493,5491,5500,5499,5495,5496,5494,5497,5498, + 5501,5492,5222,5222,1,5175,5175,235,5175,235, + 235,235,235,235,5222,235,2582,5489,7659,5222, + 45,5222,5560,5561,5483,5490,5462,5488,5487,5484, + 5485,5463,2228,5222,248,5007,5003,5617,5011,5222, + 5190,5172,3761,2886,1117,3303,5618,5619,4958,4994, + 5000,4973,4976,4988,4985,4991,4982,4979,4970,4997, + 5222,3413,35,2017,2553,35,386,386,5056,386, + 386,5056,386,5059,5056,4949,5056,4351,2978,386, + 4943,4940,4967,4946,4937,4952,4955,4964,4961,4934, + 1733,5718,5222,4840,111,5617,517,4420,45,5222, + 5241,5242,5266,3303,5618,5619,386,5234,56,5017, + 5014,386,386,386,386,386,386,386,386,386, + 386,5059,38,387,387,5050,387,387,5050,387, + 5053,5050,1,5050,420,5222,387,5222,5059,675, + 5193,41,1,5175,5175,235,5175,235,235,235, + 5178,235,285,235,3063,5181,7659,3038,1,43, + 5112,5112,5222,387,5112,5233,364,193,387,387, + 387,387,387,387,387,387,387,387,5053,5172, + 1,5175,5175,235,5175,235,235,235,5184,235, + 134,235,120,5222,7659,5053,3299,5222,5233,3413, + 125,2017,2553,5222,4846,4843,3555,5266,4072,5407, + 227,5234,5653,5654,5655,136,2978,5172,2522,1, + 5175,5175,235,5175,235,235,235,5178,235,5718, + 235,364,124,7659,56,5065,5062,3413,3555,2017, + 2553,5222,128,2522,5222,5097,5094,5222,226,43, + 5106,5106,4878,364,3269,2690,5172,1,5175,5175, + 235,5175,235,235,235,5178,235,5718,235,5233, + 5222,7659,295,5241,5242,4148,3413,5068,2017,2553, + 5222,5264,3936,2468,2441,135,3241,227,3958,5219, + 504,3532,3491,132,5172,5222,1,5175,5175,235, + 5175,235,235,235,235,235,5718,235,2468,2441, + 7659,5222,1,2522,3413,3365,2017,2553,5222,5232, + 342,131,5231,3532,3491,227,5222,4846,4843,5222, + 5266,3721,2565,5172,1,5175,5175,235,5175,235, + 235,235,235,235,5718,235,5222,5071,7659,5222, + 5137,5133,130,3413,5228,2017,2553,4653,1,5175, + 5175,235,5175,235,235,235,235,235,1319,235, + 1,5172,7659,313,342,127,4433,342,2468,2441, + 5187,2777,2803,5718,1,342,5264,3269,2690,502, + 5222,3413,5196,2017,2553,5172,42,5144,5141,5222, + 5065,5062,394,5241,5242,5222,506,2582,1,2777, + 2803,4695,5222,7308,7121,3413,5228,2017,2553,5227, + 1,5718,5222,7308,7121,1,1,5222,524,5222, + 4652,5190,4127,199,171,2,199,5222,4470,5222, + 2777,2803,4638,5222,5222,5718,4650,2948,5222,5222, + 5222,4663,5229,4208,5222,5222,4680,4072,4361,5222, + 5222,5222,5222,43,5222,5222,5222,5222,5222,5222, + 5222,5222,1952,796,5222,5222,5222,5222,5222,5222, + 5222,5227,5222,5222,5222,5222,5222,5222,5222,5222, + 5222,5222,5222,524,5222,5222,5222,5222,5222,171 }; }; public final static char termAction[] = TermAction.termAction; @@ -1668,59 +1665,59 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface Asb { public final static char asb[] = {0, - 991,1,109,102,102,302,542,542,1001,302, - 542,296,770,262,354,121,985,774,709,9, - 9,539,37,162,349,542,542,516,542,9, - 349,296,302,535,349,262,352,494,516,516, - 516,516,772,494,834,246,836,263,263,263, - 263,263,263,263,263,263,544,550,555,552, - 559,557,564,562,566,565,567,165,568,162, - 583,300,633,9,9,770,698,709,457,709, - 841,709,116,709,693,772,302,162,162,9, - 638,535,398,352,246,37,37,37,37,302, - 796,1032,544,349,349,340,246,896,36,985, - 246,544,984,984,796,262,263,263,263,263, - 263,263,263,263,263,263,263,263,263,263, - 263,263,263,263,263,262,262,262,262,262, - 262,262,262,262,262,262,262,263,774,302, - 1071,1070,1071,539,405,405,302,845,450,844, - 454,847,496,302,302,302,450,1071,535,534, - 262,502,349,349,1071,1071,1071,1071,450,349, - 263,770,642,526,525,460,716,716,772,836, - 162,36,262,300,349,299,301,299,349,162, - 552,552,550,550,550,557,557,557,557,555, - 555,562,559,559,565,564,566,691,567,633, - 246,405,405,845,455,845,450,845,496,496, - 302,450,302,535,352,494,494,494,494,302, - 302,340,349,644,646,302,985,263,37,548, - 305,349,302,301,985,262,503,302,405,691, - 117,516,452,391,681,405,503,845,845,786, - 302,496,503,501,502,302,262,262,262,262, - 494,494,349,530,518,529,646,450,300,349, - 548,770,774,302,300,985,595,847,1071,516, - 299,942,683,494,506,64,787,302,503,263, - 302,349,349,349,349,796,796,776,262,527, - 527,640,770,69,349,302,548,549,548,262, - 305,216,544,774,300,595,595,850,421,300, - 846,846,296,588,510,263,691,111,646,786, - 302,772,772,302,349,349,776,262,262,644, - 518,776,751,548,796,263,162,216,589,503, - 937,946,207,494,117,886,595,595,421,300, - 846,847,772,683,263,263,646,302,302,302, - 778,776,549,349,162,849,207,937,592,772, - 503,1070,516,3,3,589,847,226,507,302, - 494,349,302,302,778,778,850,595,589,588, - 349,772,302,421,850,421,1069,1069,894,227, - 772,302,796,939,494,778,595,296,589,302, - 302,421,37,37,894,226,691,263,691,589, - 494,494,494,227,494,302,173,589,589,302, - 847,349,939,647,503,302,589,1070,218,494, - 218,691,227,246,246,244,794,246,589,589, - 114,894,941,348,589,679,69,349,296,349, - 244,207,494,349,894,941,37,3,349,349, - 764,227,114,227,589,207,262,227,224,1069, - 847,847,766,262,225,796,589,349,299,227, - 349,589,227 + 913,1,10,3,3,134,617,617,1006,134, + 617,128,1000,94,356,137,897,1004,939,234, + 234,614,262,178,530,617,617,558,617,234, + 530,128,134,610,530,94,355,435,558,558, + 558,558,1002,435,602,78,604,95,95,95, + 95,95,95,95,95,95,619,625,630,627, + 634,632,639,637,641,640,642,181,643,178, + 658,132,723,234,234,1000,928,939,910,939, + 675,939,677,939,923,1002,134,178,178,234, + 728,610,294,355,78,262,262,262,262,134, + 564,1037,619,530,530,521,78,815,261,897, + 78,619,896,896,564,94,95,95,95,95, + 95,95,95,95,95,95,95,95,95,95, + 95,95,95,95,95,94,94,94,94,94, + 94,94,94,94,94,94,94,95,1004,134, + 1076,1075,1076,614,437,134,909,482,533,346, + 910,547,134,134,134,482,1076,610,609,94, + 539,352,530,530,1076,1076,1076,1076,482,530, + 95,1000,748,738,737,401,946,946,1002,604, + 178,261,94,132,530,131,133,131,530,178, + 627,627,625,625,625,632,632,632,632,630, + 630,637,634,634,640,639,641,813,642,723, + 78,437,909,347,909,482,909,547,547,134, + 482,134,610,355,435,435,435,435,134,134, + 521,530,750,752,134,897,95,262,623,486, + 530,134,133,897,94,540,134,437,813,678, + 558,484,394,803,437,909,909,667,134,547, + 540,538,539,134,94,94,94,94,435,435, + 530,742,730,741,752,482,132,530,623,1000, + 1004,134,132,897,685,910,1076,558,131,908, + 805,435,543,289,668,134,540,95,134,530, + 530,530,530,564,564,793,94,739,739,746, + 1000,17,530,134,623,624,623,94,486,232, + 619,1004,132,685,685,302,453,132,909,909, + 128,663,552,95,813,12,752,667,134,1002, + 1002,134,530,530,793,94,94,750,730,793, + 981,623,564,95,178,232,664,540,856,858, + 223,435,678,338,685,685,453,132,909,910, + 1002,805,95,95,752,134,134,134,795,793, + 624,530,178,301,223,856,560,1002,540,1075, + 558,787,787,664,910,58,543,134,435,530, + 134,134,795,795,302,685,664,663,530,1002, + 134,453,302,453,1074,1074,903,59,1002,134, + 564,905,435,795,685,128,664,134,134,453, + 262,262,903,58,813,95,813,664,57,435, + 435,435,59,435,134,189,664,664,134,910, + 530,905,753,540,134,664,1075,50,435,50, + 813,59,78,78,76,683,78,664,664,15, + 903,907,529,664,785,17,530,128,530,76, + 223,435,530,903,907,262,787,530,530,994, + 59,15,59,664,223,94,59,56,1074,910, + 910,996,94,57,564,664,530,131,59,530, + 664,59 }; }; public final static char asb[] = Asb.asb; @@ -1728,114 +1725,114 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface Asr { public final static byte asr[] = {0, - 121,0,62,66,67,1,2,0,34,64, - 35,36,65,7,37,38,39,40,59,41, - 42,44,45,46,29,26,27,8,6,13, - 14,5,31,62,47,3,10,68,61,69, - 70,16,25,15,21,19,20,22,23,18, - 17,24,48,53,54,12,52,51,49,33, - 43,50,55,1,2,4,32,0,48,15, - 16,61,33,17,68,49,12,18,50,51, - 19,20,52,53,21,22,54,69,55,10, - 70,23,32,24,43,25,1,2,4,95, - 0,76,60,62,71,95,73,56,121,3, - 9,67,11,66,0,4,1,2,60,0, - 64,65,3,10,35,39,37,34,42,16, - 25,15,21,19,20,22,23,18,17,24, - 44,47,45,46,29,41,36,40,5,7, - 4,26,27,8,6,13,14,31,38,1, - 2,118,9,0,62,71,95,67,118,73, - 72,121,15,16,34,64,17,35,36,18, - 19,20,65,37,21,22,38,39,40,59, - 41,42,10,23,24,25,44,45,46,29, - 26,27,13,14,31,47,9,8,6,4, - 11,1,2,7,3,5,0,75,103,104, - 105,30,71,119,122,72,74,76,58,57, - 63,78,80,86,84,77,82,83,85,87, - 60,79,81,11,9,48,61,33,68,49, - 12,50,51,52,53,54,69,55,70,32, - 43,59,64,65,10,35,39,37,34,42, - 16,25,15,21,19,20,22,23,18,17, - 24,44,47,45,46,29,41,36,40,26, - 27,13,14,31,38,8,6,3,4,7, - 5,1,2,0,96,90,13,14,91,92, - 88,89,28,93,94,97,98,99,100,101, - 102,117,71,95,66,107,108,109,110,111, - 112,113,114,115,116,118,72,11,121,62, - 1,2,8,6,4,3,56,67,73,9, - 0,9,72,64,65,59,26,27,8,6, - 13,14,31,38,3,44,47,45,46,29, - 41,36,40,16,25,15,21,19,20,22, - 23,18,17,24,35,39,37,34,42,60, - 7,1,2,5,4,10,0,9,71,118, - 73,11,67,0,75,57,7,103,104,105, - 58,9,3,8,6,5,71,72,11,74, - 48,15,16,61,33,17,68,49,12,18, - 50,51,19,20,52,53,21,22,54,69, - 55,10,70,23,32,24,43,25,4,1, - 2,30,0,4,71,28,60,9,0,48, - 15,16,33,17,49,12,18,50,51,19, - 20,52,7,53,21,22,54,55,23,32, - 24,43,25,1,2,9,56,8,6,5, - 4,73,11,3,0,1,2,9,72,0, - 66,67,72,9,0,9,60,67,0,71, - 9,56,66,67,11,28,0,8,6,4, - 5,7,1,2,3,56,62,66,67,9, - 73,95,0,59,33,7,43,5,1,2, - 4,76,60,120,106,26,27,56,3,96, - 90,6,91,92,13,14,89,88,28,93, - 94,97,98,8,99,100,101,62,95,73, - 121,66,107,108,109,110,111,112,113,114, - 115,116,71,118,72,102,117,67,11,9, - 0,60,66,0,63,48,15,16,61,33, - 17,68,49,75,12,18,50,51,19,20, - 52,57,53,21,22,54,69,55,10,70, - 23,58,32,24,43,25,9,3,8,4, - 72,11,7,5,1,2,30,6,0,7, - 5,3,56,6,8,95,48,15,16,33, - 17,68,49,12,18,50,51,19,20,52, - 53,21,22,54,69,55,10,70,23,32, - 24,43,25,1,2,4,73,9,61,0, - 11,9,7,5,3,1,2,6,8,4, - 71,0,10,68,61,69,70,16,25,15, - 21,19,20,22,23,18,17,24,76,60, - 71,95,118,72,121,120,96,106,90,26, - 27,13,14,91,92,88,89,28,62,93, - 94,97,98,99,100,101,102,117,66,107, - 108,109,110,111,112,113,114,115,116,67, - 48,33,49,12,50,51,52,53,54,55, - 32,43,11,9,73,3,56,7,5,6, - 8,1,2,4,0,33,43,59,9,62, - 95,66,67,73,0,32,1,2,4,103, - 104,105,0,77,0,9,73,15,16,34, - 17,35,36,18,19,20,37,21,22,38, - 39,40,59,41,42,10,23,24,25,44, - 45,46,29,3,26,27,8,6,13,14, - 31,4,47,5,7,1,2,65,64,0, - 30,1,2,4,9,71,60,0,60,61, - 33,17,68,49,18,50,51,19,20,52, - 53,21,22,54,69,55,70,23,32,24, - 43,25,16,15,48,9,3,8,6,11, - 58,63,75,12,30,7,1,2,5,4, - 10,57,0,119,0,64,65,26,27,8, - 6,13,14,5,31,38,3,4,7,44, - 47,45,46,41,36,40,16,25,15,21, - 19,20,22,23,18,17,24,10,35,39, - 37,34,42,56,1,2,29,0,33,43, - 59,60,71,76,0,61,33,17,68,49, + 119,0,75,62,72,95,73,66,56,119, + 3,8,65,11,67,0,48,15,16,61, + 46,17,69,49,14,18,50,51,19,20, + 52,53,21,22,54,70,55,10,71,23, + 41,24,47,25,1,2,4,95,0,87, + 114,115,116,37,72,120,122,68,74,75, + 59,57,60,77,79,85,83,76,81,82, + 84,86,66,78,80,11,8,48,61,46, + 69,49,14,50,51,52,53,54,70,55, + 71,41,47,58,63,64,10,32,36,34, + 31,40,16,25,15,21,19,20,22,23, + 18,17,24,42,45,43,44,29,39,33, + 38,26,27,12,13,30,35,9,6,3, + 4,7,5,1,2,0,63,64,3,10, + 32,36,34,31,40,16,25,15,21,19, + 20,22,23,18,17,24,42,45,43,44, + 29,39,33,38,5,7,4,26,27,9, + 6,12,13,30,35,1,2,118,8,0, + 62,72,95,65,118,73,68,119,15,16, + 31,63,17,32,33,18,19,20,64,34, + 21,22,35,36,38,58,39,40,10,23, + 24,25,42,43,44,29,26,27,12,13, + 30,45,8,9,6,4,11,1,2,7, + 3,5,0,31,63,32,33,64,7,34, + 35,36,38,58,39,40,42,43,44,29, + 26,27,9,6,12,13,5,30,62,45, + 3,10,69,61,70,71,16,25,15,21, + 19,20,22,23,18,17,24,48,53,54, + 14,52,51,49,46,47,50,55,1,2, + 4,41,0,8,72,118,73,11,65,0, + 66,61,46,17,69,49,18,50,51,19, + 20,52,53,21,22,54,70,55,71,23, + 41,24,47,25,16,15,48,8,3,9, + 6,11,59,60,87,14,37,7,1,2, + 5,4,10,57,0,4,8,72,66,28, + 0,65,11,119,68,63,64,58,26,27, + 9,6,12,13,30,35,3,42,45,43, + 44,29,39,33,38,16,25,15,21,19, + 20,22,23,18,17,24,32,36,34,31, + 40,66,8,7,1,2,5,4,10,0, + 48,15,16,46,17,49,14,18,50,51, + 19,20,52,7,53,21,22,54,55,23, + 41,24,47,25,1,2,8,56,9,6, + 5,4,73,11,3,0,87,57,7,114, + 115,116,59,8,3,9,6,5,72,68, + 11,74,48,15,16,61,46,17,69,49, + 14,18,50,51,19,20,52,53,21,22, + 54,70,55,10,71,23,41,24,47,25, + 4,1,2,37,0,96,90,12,13,91, + 92,88,89,28,93,94,97,98,99,100, + 101,102,117,72,95,67,104,105,106,107, + 108,109,110,111,112,113,118,68,11,119, + 62,1,2,9,6,4,3,56,65,73, + 8,0,4,8,72,66,0,67,65,68, + 8,0,8,66,65,0,1,2,8,68, + 0,72,8,56,67,65,11,28,0,8, + 66,67,0,8,73,15,16,31,17,32, + 33,18,19,20,34,21,22,35,36,38, + 58,39,40,10,23,24,25,42,43,44, + 29,3,26,27,9,6,12,13,30,4, + 45,5,7,1,2,64,63,0,58,46, + 7,47,5,1,2,4,75,66,121,103, + 26,27,56,3,96,90,6,91,92,12, + 13,89,88,28,93,94,97,98,9,99, + 100,101,62,95,73,119,67,104,105,106, + 107,108,109,110,111,112,113,72,118,68, + 102,117,65,11,8,0,41,1,2,4, + 114,115,116,0,37,72,4,66,8,1, + 2,0,76,0,60,48,15,16,61,46, + 17,69,49,87,14,18,50,51,19,20, + 52,57,53,21,22,54,70,55,10,71, + 23,59,41,24,47,25,8,3,9,4, + 68,11,7,5,1,2,37,6,0,9, + 6,4,5,7,1,2,3,56,62,67, + 65,8,73,95,0,7,5,3,56,6, + 9,95,48,15,16,46,17,69,49,14, 18,50,51,19,20,52,53,21,22,54, - 69,55,10,70,23,32,24,43,25,16, - 15,48,9,3,8,6,11,58,57,63, - 75,12,28,4,7,1,2,5,30,0, - 8,6,4,3,5,7,74,1,2,0, - 48,15,16,61,33,17,68,49,12,18, - 50,51,19,20,52,53,21,22,54,69, - 55,10,70,23,32,24,43,25,1,2, - 4,65,64,13,14,6,91,92,99,8, - 100,5,31,28,110,111,107,108,109,115, - 114,116,89,88,112,113,97,98,93,94, - 101,102,26,27,90,106,3,56,66,67, - 62,0 + 70,55,10,71,23,41,24,47,25,1, + 2,4,73,8,61,0,62,67,65,1, + 2,0,46,47,58,8,62,95,67,65, + 73,0,11,8,7,5,3,1,2,6, + 9,4,72,0,63,64,26,27,9,6, + 12,13,5,30,35,3,4,7,42,45, + 43,44,39,33,38,16,25,15,21,19, + 20,22,23,18,17,24,10,32,36,34, + 31,40,56,1,2,29,0,61,46,17, + 69,49,18,50,51,19,20,52,53,21, + 22,54,70,55,10,71,23,41,24,47, + 25,16,15,48,8,3,9,6,11,59, + 57,60,87,14,28,4,7,1,2,5, + 37,0,120,0,46,47,58,75,72,66, + 8,0,9,6,4,3,5,7,74,1, + 2,0,10,69,61,70,71,16,25,15, + 21,19,20,22,23,18,17,24,75,72, + 95,118,68,66,119,121,96,103,90,26, + 27,12,13,91,92,88,89,28,62,93, + 94,97,98,99,100,101,102,117,67,104, + 105,106,107,108,109,110,111,112,113,65, + 48,46,49,14,50,51,52,53,54,55, + 41,47,11,8,73,3,56,7,5,6, + 9,1,2,4,0,48,15,16,61,46, + 17,69,49,14,18,50,51,19,20,52, + 53,21,22,54,70,55,10,71,23,41, + 24,47,25,1,2,4,64,63,12,13, + 6,91,92,99,9,100,5,30,28,107, + 108,104,105,106,112,111,113,89,88,109, + 110,97,98,93,94,101,102,26,27,90, + 103,3,56,67,65,62,0 }; }; public final static byte asr[] = Asr.asr; @@ -1843,59 +1840,59 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface Nasb { public final static char nasb[] = {0, - 130,12,13,49,49,202,12,12,260,57, - 12,130,194,92,33,81,29,12,12,135, - 135,76,5,86,254,12,12,12,12,135, - 254,214,202,135,254,33,135,12,12,12, - 12,12,195,12,41,161,202,33,33,205, - 33,33,33,33,33,33,12,12,12,12, - 12,12,12,12,12,12,12,33,12,86, - 12,218,45,31,31,194,154,155,12,155, - 179,155,209,155,148,10,202,86,86,31, - 12,39,12,65,161,257,257,257,257,202, - 176,262,12,254,254,223,1,33,90,29, - 161,12,51,51,176,124,33,33,33,33, - 33,33,33,33,33,33,33,33,33,33, - 33,33,33,33,33,33,33,33,33,33, - 33,33,33,33,33,33,124,33,12,11, - 12,12,12,173,135,135,181,135,168,135, - 12,12,135,168,202,11,12,12,135,39, - 33,70,254,254,12,12,12,12,60,254, - 33,194,222,49,49,12,12,12,10,202, - 86,257,92,218,254,217,202,217,254,86, + 173,12,13,41,41,71,12,12,263,128, + 12,173,203,119,59,80,29,12,12,178, + 178,45,5,85,238,12,12,12,12,178, + 238,223,71,178,238,60,178,12,12,12, + 12,12,204,12,52,206,71,60,60,124, + 60,60,60,60,60,60,12,12,12,12, + 12,12,12,12,12,12,12,60,12,85, + 12,227,48,33,33,203,249,250,114,250, + 158,250,166,250,243,10,71,85,85,33, + 12,96,12,58,206,38,38,38,38,71, + 106,265,12,238,238,188,1,60,69,29, + 206,12,19,19,106,103,60,60,60,60, + 60,60,60,60,60,60,60,60,60,60, + 60,60,60,60,60,60,60,60,60,60, + 60,60,60,60,60,60,103,60,12,11, + 12,12,12,194,178,160,178,116,178,12, + 114,178,116,71,11,12,12,178,96,60, + 67,12,238,238,12,12,12,12,163,238, + 60,203,187,41,41,12,12,12,10,71, + 85,38,119,227,238,226,71,226,238,85, 12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,45, - 31,237,237,135,135,17,28,17,135,210, - 11,28,181,39,65,12,12,12,12,181, - 11,171,254,111,135,202,29,33,257,135, - 97,254,202,145,29,33,70,202,186,12, - 74,12,12,72,137,237,70,17,17,157, - 181,210,70,12,12,181,124,124,124,124, - 12,12,254,12,128,12,234,27,181,254, - 104,173,12,57,181,29,135,12,12,12, - 195,135,188,12,12,195,25,168,70,33, - 210,254,254,254,254,176,176,135,33,12, - 12,127,194,234,254,181,135,102,12,124, - 173,146,12,12,218,197,135,227,135,168, - 135,88,214,186,12,33,12,63,135,248, - 168,195,195,11,254,254,39,33,33,111, - 212,135,12,104,176,33,86,146,186,70, - 12,227,138,12,210,72,227,197,234,218, - 88,79,21,130,33,33,234,11,168,168, - 135,39,102,254,86,135,188,12,12,195, - 70,12,12,19,19,186,79,108,12,168, - 12,254,11,11,106,135,227,135,186,12, - 254,195,168,234,227,135,12,12,135,116, - 21,11,176,135,12,106,197,130,186,168, - 74,234,257,257,100,121,12,33,12,186, - 12,12,12,122,12,210,184,186,186,210, - 15,254,39,252,70,74,186,12,95,12, - 12,12,122,244,244,232,12,244,186,186, - 12,135,135,254,186,12,257,254,130,254, - 256,135,12,254,100,106,257,19,254,254, - 135,122,12,122,186,130,124,122,95,12, - 15,15,128,33,12,165,186,254,217,122, - 254,186,122 + 12,12,12,12,12,12,12,12,12,48, + 33,252,178,178,25,28,25,178,129,11, + 28,160,96,58,12,12,12,12,160,11, + 192,238,141,178,71,29,60,38,178,89, + 238,71,218,29,60,67,71,148,12,138, + 12,12,92,210,252,25,25,131,160,129, + 67,12,12,160,103,103,103,103,12,12, + 238,12,171,12,155,27,160,238,122,194, + 12,128,160,29,178,114,12,12,204,178, + 197,12,12,204,31,116,67,60,129,238, + 238,238,238,106,106,178,60,12,12,170, + 203,155,238,160,178,43,12,103,194,219, + 12,12,227,180,178,231,178,116,178,78, + 223,148,12,60,12,87,178,74,116,204, + 204,11,238,238,96,60,60,141,221,178, + 12,122,106,60,85,219,148,67,12,231, + 211,12,167,92,231,180,155,227,78,240, + 15,173,60,60,155,11,116,116,178,96, + 43,238,85,113,197,12,12,204,67,12, + 12,185,185,148,240,66,12,116,12,238, + 11,11,98,178,231,178,148,12,238,204, + 116,155,231,178,12,12,178,100,15,11, + 106,178,12,98,180,173,148,116,139,155, + 38,38,94,109,12,60,12,148,12,12, + 12,12,110,12,129,146,148,148,129,135, + 238,96,236,67,139,148,12,56,12,12, + 12,110,267,267,153,12,267,148,148,12, + 178,178,238,148,12,38,238,173,238,259, + 178,12,238,94,98,38,185,238,238,178, + 110,12,110,148,173,103,110,56,12,135, + 135,171,60,12,150,148,238,226,110,238, + 148,110 }; }; public final static char nasb[] = Nasb.nasb; @@ -1903,33 +1900,33 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface Nasr { public final static char nasr[] = {0, - 3,13,7,10,148,146,120,145,144,5, - 2,0,178,0,58,0,109,0,108,0, - 166,5,165,0,184,0,48,2,64,0, - 43,4,5,7,10,2,13,0,59,0, - 2,7,3,0,64,134,133,0,71,0, - 5,2,10,7,135,0,1,3,0,48, - 64,0,182,0,13,2,10,7,5,63, - 0,151,0,102,0,4,186,0,156,0, - 13,2,10,7,5,74,0,155,0,170, - 0,4,33,0,112,0,4,172,0,157, - 0,137,0,139,0,122,0,4,63,0, - 23,4,5,88,0,4,47,39,174,0, - 63,47,75,4,39,0,31,93,92,2, - 10,7,48,61,4,0,38,48,7,10, - 2,4,153,0,2,113,0,2,5,120, - 116,117,118,13,85,0,5,98,183,0, - 4,43,39,0,4,173,0,2,62,0, - 93,92,5,57,0,4,95,0,5,44, - 2,3,0,4,39,38,0,2,61,48, - 7,10,4,88,5,0,114,4,47,72, - 0,2,44,0,7,10,3,13,5,1, - 0,93,92,48,61,57,5,7,10,2, - 0,31,92,93,4,0,4,47,72,82, - 0,39,176,23,4,0,4,47,72,98, - 45,5,0,4,43,101,0,5,98,162, - 0,43,4,31,0,175,4,43,0,4, - 43,167,0 + 3,13,7,10,147,145,121,144,143,5, + 2,0,177,0,165,5,164,0,5,2, + 10,7,134,0,110,0,49,2,65,0, + 185,0,5,7,10,2,13,4,44,0, + 67,0,136,0,4,187,0,65,133,132, + 0,2,7,3,0,113,0,64,42,5, + 7,10,2,13,0,4,64,0,169,0, + 2,45,0,5,101,161,0,154,0,13, + 2,10,7,5,75,0,183,0,4,171, + 0,150,0,156,0,60,0,123,0,48, + 42,173,4,39,0,4,96,0,64,39, + 48,76,4,42,0,2,63,0,4,33, + 0,138,0,5,7,10,13,3,1,0, + 5,101,184,0,42,59,0,42,103,0, + 23,4,5,89,0,4,39,38,0,4, + 172,0,39,175,23,4,0,5,45,2, + 3,0,49,65,0,5,1,42,0,31, + 94,93,2,10,7,49,62,4,0,115, + 4,48,74,0,109,0,31,93,94,4, + 0,94,93,5,58,0,2,62,49,7, + 10,4,89,5,0,4,44,39,0,38, + 49,7,10,2,4,152,0,2,114,0, + 94,93,49,62,58,5,7,10,2,0, + 4,48,74,83,0,44,4,31,0,42, + 155,0,2,5,121,117,118,119,13,86, + 0,4,48,74,101,46,5,0,44,4, + 174,0,4,44,166,0,4,44,102,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -1937,19 +1934,19 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface TerminalIndex { public final static char terminalIndex[] = {0, - 115,116,3,33,15,12,81,11,1,102, - 121,68,13,14,50,54,62,70,76,77, - 88,89,104,107,109,9,10,21,114,95, - 16,106,56,57,63,69,86,90,92,96, - 99,101,108,111,112,113,123,49,66,72, - 75,78,85,91,100,2,79,105,97,4, - 55,22,48,60,80,35,46,65,93,103, - 32,120,119,122,67,98,110,51,52,58, - 59,61,71,73,74,87,94,19,20,8, - 17,18,23,24,34,6,25,26,27,28, - 29,30,82,83,84,7,36,37,38,39, - 40,41,42,43,44,45,31,118,53,5, - 124,64,117 + 113,114,2,31,13,10,79,115,9,100, + 120,11,12,66,48,52,60,68,74,75, + 86,87,102,105,107,7,8,19,112,14, + 55,61,67,84,88,90,93,94,97,99, + 104,109,110,111,123,54,106,47,64,70, + 73,76,83,89,98,1,77,95,103,46, + 53,20,58,78,44,121,33,119,63,91, + 101,30,118,122,96,108,49,50,56,57, + 59,69,71,72,85,92,65,17,18,6, + 15,16,21,22,32,4,23,24,25,26, + 27,28,5,34,35,36,37,38,39,40, + 41,42,43,80,81,82,29,117,124,51, + 3,62,116 }; }; public final static char terminalIndex[] = TerminalIndex.terminalIndex; @@ -1957,26 +1954,26 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, - 131,136,138,0,0,137,235,135,0,229, - 134,0,145,133,0,0,144,150,0,0, - 151,160,181,161,162,163,164,165,166,167, - 127,168,153,169,170,0,143,129,132,171, - 0,140,154,139,179,0,0,0,0,0, - 0,0,0,147,204,0,157,174,188,201, - 205,0,128,0,177,0,0,0,0,0, - 206,0,0,126,173,0,0,0,0,0, - 0,130,0,0,187,0,0,202,212,159, - 208,209,210,0,0,0,0,220,148,207, - 176,197,199,0,0,0,211,0,0,0, - 240,241,149,180,0,190,191,192,193,194, - 196,0,214,217,219,0,221,0,238,0, - 239,0,141,142,146,0,0,156,158,0, - 172,0,182,183,184,185,186,189,0,195, - 0,198,203,0,0,215,216,0,223,224, - 226,228,0,232,233,234,236,237,125,0, - 152,155,0,175,0,178,0,200,213,218, - 222,225,227,0,230,231,242,243,0,0, - 0,0,0,0 + 132,137,139,0,0,138,236,136,0,230, + 135,0,146,134,0,0,145,151,0,0, + 152,161,182,162,163,164,165,166,167,168, + 127,169,154,170,171,0,144,129,133,172, + 0,130,141,155,140,180,0,0,0,0, + 0,0,0,0,148,205,0,158,175,189, + 202,206,0,128,0,178,207,0,0,0, + 0,0,0,0,126,174,0,0,0,0, + 0,0,131,0,0,188,0,0,203,213, + 160,209,210,211,0,0,0,0,149,208, + 221,177,198,200,0,0,0,212,0,0, + 0,241,242,150,181,0,191,192,193,194, + 195,197,0,215,218,220,0,239,0,240, + 0,142,143,147,0,0,157,159,0,173, + 0,183,184,185,186,187,190,0,196,0, + 199,204,0,0,216,217,0,222,225,227, + 229,0,233,234,235,237,238,125,0,153, + 156,0,176,0,179,0,201,214,219,0, + 223,224,226,228,0,231,232,243,244,0, + 0,0,0,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -1984,18 +1981,18 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface ScopePrefix { public final static char scopePrefix[] = { - 161,582,601,533,549,560,571,366,271,285, - 307,313,42,296,386,424,169,590,476,20, - 51,71,80,85,90,127,141,197,302,319, - 330,341,277,291,504,27,376,341,609,27, - 219,250,1,14,61,76,106,151,232,324, - 337,346,355,359,442,469,498,525,529,619, - 623,627,97,7,97,151,404,420,433,453, - 517,433,540,556,567,578,209,487,56,56, - 158,224,227,245,266,227,227,56,363,448, - 466,473,158,56,640,110,238,408,460,116, - 116,238,56,238,395,179,104,446,631,638, - 631,638,65,414,134,134,104,104,255 + 151,572,591,523,539,550,561,356,261,275, + 297,303,42,286,376,414,159,580,466,20, + 51,71,80,85,90,127,187,292,309,320, + 331,267,281,494,27,366,331,599,27,209, + 240,1,14,61,76,106,141,222,314,327, + 336,345,349,432,459,488,515,519,609,613, + 617,97,7,97,141,394,410,423,443,507, + 423,530,546,557,568,199,477,56,56,148, + 214,217,235,256,217,217,56,353,438,456, + 463,148,56,630,110,228,398,450,116,116, + 228,56,228,385,169,104,436,621,628,621, + 628,65,404,134,104,104,245 }; }; public final static char scopePrefix[] = ScopePrefix.scopePrefix; @@ -2003,18 +2000,18 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface ScopeSuffix { public final static char scopeSuffix[] = { - 18,5,5,5,5,5,5,373,132,95, - 132,132,48,282,392,430,175,67,482,25, - 25,25,59,59,95,132,132,202,132,132, - 335,335,282,101,509,38,381,596,614,32, - 213,213,5,18,5,59,95,132,236,328, - 328,328,95,95,132,248,5,5,5,5, - 5,248,236,11,101,155,373,373,373,457, - 509,437,544,544,544,544,213,491,59,59, - 5,5,230,248,5,269,269,353,95,451, - 5,248,5,502,5,113,350,411,463,119, - 123,241,521,512,398,182,95,95,633,633, - 635,635,67,416,136,146,204,189,257 + 18,5,5,5,5,5,5,363,132,95, + 132,132,48,272,382,420,165,67,472,25, + 25,25,59,59,95,132,192,132,132,325, + 325,272,101,499,38,371,586,604,32,203, + 203,5,18,5,59,95,132,226,318,318, + 318,95,95,132,238,5,5,5,5,5, + 238,226,11,101,145,363,363,363,447,499, + 427,534,534,534,534,203,481,59,59,5, + 5,220,238,5,259,259,343,95,441,5, + 238,5,492,5,113,340,401,453,119,123, + 231,511,502,388,172,95,95,623,623,625, + 625,67,406,136,194,179,247 }; }; public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; @@ -2022,18 +2019,18 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface ScopeLhs { public final static char scopeLhs[] = { - 45,17,17,17,17,17,17,78,84,46, - 69,118,66,52,78,77,45,17,19,3, - 6,9,162,162,127,116,116,45,70,118, - 117,119,53,46,135,130,78,17,17,130, - 94,154,132,81,165,162,127,124,56,117, - 117,119,177,50,58,139,18,17,17,17, - 17,17,12,112,127,124,78,77,77,36, - 135,77,17,17,17,17,94,19,166,162, - 178,92,100,71,55,153,65,119,79,76, - 140,139,170,135,16,127,119,101,21,125, - 125,57,135,135,78,45,127,73,133,44, - 133,44,165,101,116,116,45,45,154 + 46,17,17,17,17,17,17,79,85,47, + 72,119,69,53,79,78,46,17,19,3, + 6,9,161,161,158,117,46,73,119,118, + 120,54,47,134,129,79,17,17,129,95, + 153,131,82,164,161,158,125,57,118,118, + 120,176,51,59,138,18,17,17,17,17, + 17,12,113,158,125,79,78,78,36,134, + 78,17,17,17,17,95,19,165,161,177, + 93,100,67,56,152,66,120,80,77,139, + 138,169,134,16,158,120,102,21,126,126, + 58,134,134,79,46,158,68,132,45,132, + 45,164,102,117,46,46,153 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -2041,18 +2038,18 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface ScopeLa { public final static byte scopeLa[] = { - 119,73,73,73,73,73,73,73,72,11, - 72,72,62,1,73,122,60,3,73,62, - 62,62,1,1,11,72,72,60,72,72, - 1,1,1,1,4,62,11,1,1,62, - 73,73,73,119,73,1,11,72,1,1, - 1,1,11,11,72,118,73,73,73,73, - 73,118,1,73,1,67,73,73,73,71, - 4,73,62,62,62,62,73,3,1,1, - 73,73,3,118,73,1,1,1,11,71, - 73,118,73,5,73,1,30,66,73,1, - 1,6,1,30,77,76,11,11,4,4, - 4,4,3,1,9,60,1,1,3 + 120,73,73,73,73,73,73,73,68,11, + 68,68,62,1,73,122,66,3,73,62, + 62,62,1,1,11,68,66,68,68,1, + 1,1,1,4,62,11,1,1,62,73, + 73,73,120,73,1,11,68,1,1,1, + 1,11,11,68,118,73,73,73,73,73, + 118,1,73,1,65,73,73,73,72,4, + 73,62,62,62,62,73,3,1,1,73, + 73,3,118,73,1,1,1,11,72,73, + 118,73,5,73,1,37,67,73,1,1, + 6,1,37,76,75,11,11,4,4,4, + 4,3,1,66,1,1,3 }; }; public final static byte scopeLa[] = ScopeLa.scopeLa; @@ -2060,18 +2057,18 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface ScopeStateSet { public final static char scopeStateSet[] = { - 76,247,247,247,247,247,247,87,67,76, - 64,105,64,79,87,87,76,247,247,179, - 221,222,54,54,60,105,105,76,64,105, - 105,105,79,76,97,44,87,247,247,44, - 152,57,22,87,26,54,60,310,162,105, - 105,105,20,79,29,51,247,247,247,247, - 247,247,242,6,60,310,87,87,87,279, - 97,87,247,247,247,247,152,247,26,54, - 160,152,154,148,162,57,167,105,87,87, - 48,51,100,97,247,60,105,1,248,105, - 105,109,97,97,87,76,60,11,102,125, - 102,125,26,1,105,105,76,76,57 + 74,244,244,244,244,244,244,84,65,74, + 63,102,63,76,84,84,74,244,244,176, + 218,219,54,54,60,102,74,63,102,102, + 102,76,74,94,44,84,244,244,44,149, + 57,22,84,26,54,60,307,159,102,102, + 102,20,76,29,51,244,244,244,244,244, + 244,239,6,60,307,84,84,84,276,94, + 84,244,244,244,244,149,244,26,54,157, + 149,151,145,159,57,164,102,84,84,48, + 51,97,94,244,60,102,1,245,102,102, + 106,94,94,84,74,60,11,99,122,99, + 122,26,1,102,74,74,57 }; }; public final static char scopeStateSet[] = ScopeStateSet.scopeStateSet; @@ -2079,70 +2076,69 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface ScopeRhs { public final static char scopeRhs[] = {0, - 311,3,59,0,127,0,310,3,119,0, - 127,174,0,127,181,76,0,216,0,251, - 127,28,125,0,22,0,291,127,28,30, - 0,22,55,0,35,133,0,22,55,0, - 0,291,127,28,30,195,0,22,130,0, - 251,127,28,130,0,185,128,0,143,0, - 218,3,289,0,289,0,3,0,127,0, - 251,127,28,133,0,185,128,221,0,185, - 128,32,221,0,185,128,307,32,0,131, - 187,167,128,0,129,0,187,167,128,0, - 135,129,0,170,0,304,127,170,0,127, - 170,0,222,129,0,167,243,0,138,0, - 0,0,136,0,0,0,281,127,9,248, - 0,128,0,248,0,1,0,0,128,0, - 281,127,60,248,0,4,0,0,128,0, - 303,127,60,0,46,128,0,156,3,0, - 127,279,278,127,76,276,170,0,278,127, - 76,276,170,0,215,0,216,0,276,170, - 0,98,0,0,215,0,216,0,203,98, - 0,0,215,0,216,0,278,127,276,170, - 0,215,0,203,0,0,215,0,228,127, - 3,0,127,0,0,0,0,0,228,127, - 3,215,0,223,3,0,211,127,0,208, - 0,187,167,171,0,135,0,167,128,0, - 12,0,0,0,213,56,0,126,0,228, - 127,3,178,0,178,0,3,0,0,127, - 0,0,0,0,0,188,3,0,201,0, - 238,127,60,29,12,0,185,128,57,58, - 0,197,129,0,131,185,128,274,58,0, - 185,128,274,58,0,185,128,66,124,57, - 0,238,127,60,57,0,238,127,60,225, - 57,0,272,127,60,124,68,0,272,127, - 60,68,0,185,128,68,0,136,0,187, - 185,128,243,0,138,0,185,128,243,0, - 187,167,128,10,0,167,128,10,0,95, - 138,0,148,0,265,127,146,0,265,127, - 170,0,162,86,0,296,161,298,299,3, - 83,0,127,173,0,298,299,3,83,0, - 129,0,127,173,0,162,3,77,198,82, - 0,127,129,0,198,82,0,110,3,132, - 127,129,0,224,3,77,0,188,166,0, - 35,171,0,166,0,177,35,171,0,224, - 3,87,0,198,154,224,3,85,0,64, - 173,0,224,3,85,0,127,173,64,173, - 0,297,127,60,0,162,0,213,79,0, - 32,0,162,117,158,0,32,171,0,177, - 3,0,127,151,0,218,3,0,213,56, - 262,0,162,56,0,177,3,293,65,128, - 0,127,0,0,0,0,293,65,128,0, - 3,147,127,0,0,0,0,177,3,38, - 0,149,0,126,30,167,128,0,33,149, - 0,95,138,33,149,0,222,185,128,0, - 148,33,149,0,177,3,42,0,162,3, - 42,0,162,3,62,177,28,34,0,177, - 28,34,0,22,3,132,127,0,162,3, - 62,177,28,37,0,177,28,37,0,162, - 3,62,177,28,39,0,177,28,39,0, - 162,3,62,177,28,35,0,177,28,35, - 0,218,3,126,187,167,128,10,0,126, - 187,167,128,10,0,138,3,0,127,0, - 218,3,125,171,167,128,10,0,171,167, - 128,10,0,136,3,0,127,0,218,3, - 136,0,218,3,140,0,162,56,140,0, - 257,0,33,0,33,141,0,165,0,162, + 312,3,58,0,127,0,311,3,120,0, + 127,175,0,127,182,75,0,217,0,250, + 127,28,125,0,20,0,290,127,28,37, + 0,20,53,0,33,134,0,20,53,0, + 0,290,127,28,37,197,0,20,131,0, + 250,127,28,130,0,186,128,0,144,0, + 219,3,288,0,288,0,2,0,127,0, + 250,127,28,133,0,186,128,224,0,186, + 128,41,224,0,186,128,308,41,0,131, + 188,168,128,0,129,0,188,168,128,0, + 136,129,0,171,0,304,127,171,0,127, + 171,0,223,129,0,168,244,0,139,0, + 0,0,137,0,0,0,303,127,165,249, + 0,128,0,249,0,130,0,0,128,0, + 302,127,165,0,44,128,0,156,3,0, + 127,278,277,127,75,275,171,0,277,127, + 75,275,171,0,216,0,217,0,275,171, + 0,96,0,0,216,0,217,0,204,96, + 0,0,216,0,217,0,277,127,275,171, + 0,216,0,204,0,0,216,0,229,127, + 3,0,127,0,0,0,0,0,229,127, + 3,216,0,223,3,0,212,127,0,209, + 0,188,168,172,0,136,0,168,128,0, + 10,0,0,0,214,56,0,126,0,229, + 127,3,179,0,179,0,2,0,0,127, + 0,0,0,0,0,189,3,0,202,0, + 239,127,165,29,14,0,186,128,57,59, + 0,198,129,0,131,186,128,273,59,0, + 186,128,273,59,0,186,128,67,124,57, + 0,239,127,165,57,0,239,127,165,226, + 57,0,271,127,165,124,69,0,271,127, + 165,69,0,186,128,69,0,137,0,188, + 186,128,244,0,139,0,186,128,244,0, + 188,168,128,10,0,168,128,10,0,93, + 139,0,149,0,264,127,146,0,264,127, + 171,0,162,85,0,295,161,297,298,3, + 82,0,127,174,0,297,298,3,82,0, + 129,0,127,174,0,162,3,76,199,81, + 0,127,129,0,199,81,0,108,2,133, + 127,129,0,225,3,76,0,189,167,0, + 33,172,0,167,0,178,33,172,0,225, + 3,86,0,199,154,225,3,84,0,62, + 174,0,225,3,84,0,127,174,62,174, + 0,296,127,165,0,162,0,214,78,0, + 30,0,162,117,158,0,30,172,0,178, + 3,0,127,152,0,219,3,0,214,56, + 261,0,162,56,0,178,3,292,64,128, + 0,127,0,0,0,0,292,64,128,0, + 2,148,127,0,0,0,0,178,3,35, + 0,150,0,126,37,168,128,0,31,150, + 0,93,139,31,150,0,222,186,128,0, + 149,31,150,0,178,3,40,0,162,3, + 40,0,162,3,62,178,28,31,0,178, + 28,31,0,20,2,133,127,0,162,3, + 62,178,28,34,0,178,28,34,0,162, + 3,62,178,28,36,0,178,28,36,0, + 162,3,62,178,28,32,0,178,28,32, + 0,219,3,126,188,168,128,10,0,126, + 188,168,128,10,0,139,2,0,127,0, + 219,3,125,172,168,128,10,0,172,168, + 128,10,0,137,2,0,127,0,219,3, + 136,0,219,3,140,0,162,56,140,0, + 256,0,31,0,31,142,0,166,0,162, 3,0 }; }; @@ -2151,38 +2147,37 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface ScopeState { public final static char scopeState[] = {0, - 4613,4709,4706,4388,0,1565,2893,1439,1901,0, - 3303,3244,3185,3126,3067,3008,2949,2727,2668,4046, - 0,3107,3038,2580,0,3332,643,0,3303,3244, - 1247,1120,3185,3126,3067,3008,564,2949,2727,2668, - 1220,1155,0,3468,3111,3052,0,3191,2144,0, - 2645,2438,0,4485,3004,0,1115,2895,0,4394, - 4297,4249,0,4394,4297,4249,3556,4142,4102,3480, - 4048,4008,3953,3471,0,4394,4297,4249,3556,4142, - 4102,3480,4048,4008,3953,3471,3303,3244,3185,3126, - 3067,3008,2949,2727,2668,0,2786,794,0,1347, - 0,3152,789,0,533,2978,2542,0,2881,3936, - 3104,4467,2875,4332,3454,852,2646,3162,3501,2699, - 3169,4443,2620,0,4625,4606,4579,4568,4560,4556, - 4511,4505,4689,4683,4675,4266,4176,4663,3972,3153, - 4657,2695,3269,4637,4138,3590,0,1826,1574,1000, - 792,3936,3162,575,2863,2582,3947,2874,0,556, - 0,1115,3936,4467,2895,4443,575,4196,4529,4377, - 2881,4349,2863,3454,2582,931,4227,0,4625,3476, - 4606,3121,2722,4579,4568,4560,1398,915,4556,4511, - 4062,4505,3663,3616,3610,3580,3485,4689,2907,4683, - 4675,3372,2834,4266,4176,2663,4663,3972,3153,1258, - 1003,4657,2695,2978,3269,4637,4138,2542,859,3590, - 781,575,4196,4529,4377,2881,4349,2236,1115,3936, - 4467,2150,2863,3454,2582,2895,2064,654,4443,931, - 4227,3357,3958,3565,2786,794,1049,3914,3892,2248, - 2285,588,2318,2406,2378,2349,2597,2551,2515,2488, - 2461,2434,3431,3408,3385,2838,2809,3870,3848,3826, - 3804,3782,3760,3738,3716,3694,3672,3641,1948,2199, - 2162,2113,2076,1274,1216,2027,1174,1990,1906,870, - 1864,1822,1780,1738,1696,1654,1612,1570,1528,1486, - 1444,1402,533,815,737,682,1353,1132,1316,1007, - 948,1073,0 + 4563,4663,4650,4638,0,1991,2899,926,2445,0, + 3186,3126,3066,3006,2946,2886,2826,2605,2545,2948, + 0,2800,2633,2518,0,2757,623,0,3186,3126, + 4314,4090,3066,3006,2946,2886,2839,2826,2605,2545, + 4359,4338,0,4616,3038,4550,0,3231,731,0, + 3080,2720,0,1162,2829,0,4038,3605,0,4487, + 4343,0,4487,4343,3656,4215,4174,3599,4133,4092, + 4051,3352,0,4487,4343,3656,4215,4174,3599,4133, + 4092,4051,3352,3186,3126,3066,3006,2946,2886,2826, + 2605,2545,0,3328,656,0,1107,0,2918,862, + 0,534,4339,2629,0,3385,4024,2912,2835,4312, + 3623,3578,864,2852,3428,3350,3371,3158,2554,2581, + 0,4461,4385,4292,4192,4110,4063,3154,3150,4629, + 4625,4569,3138,3034,3731,3030,2617,3674,732,2972, + 3482,2676,1123,0,904,856,725,724,4024,3428, + 3686,3317,3249,3365,3377,0,538,0,4038,4024, + 2835,3605,2554,3686,4270,4538,4470,3385,4433,3317, + 3578,3249,930,4301,0,4461,4056,4385,3618,3478, + 4292,4192,4110,3360,1402,4063,3154,3528,3150,3299, + 3294,3241,3220,3100,4629,3663,4625,4569,2767,2751, + 3138,3034,2569,3731,3030,2617,813,1172,3674,732, + 4339,2972,3482,2676,2629,727,1123,918,3686,4270, + 4538,4470,3385,4433,2242,4038,4024,2835,2155,3317, + 3578,3249,3605,1264,997,2554,930,4301,796,2068, + 576,3328,656,1051,4002,3980,2255,2292,590,2325, + 2413,2385,2356,2803,2777,2522,2495,2468,2441,3555, + 3532,3491,3269,2690,3958,3936,3914,3892,3870,3848, + 3826,3804,3782,2724,629,1952,2205,2168,2118,2081, + 1277,1218,2031,1176,1994,1910,873,1868,1826,1784, + 1742,1700,1658,1616,1574,1532,1490,1448,1406,534, + 817,738,682,1356,1129,1319,1008,948,1074,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2190,59 +2185,59 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface InSymb { public final static char inSymb[] = {0, - 0,292,188,178,184,171,130,133,7,5, - 125,3,127,3,66,56,167,165,125,28, - 28,166,127,56,3,64,65,125,124,28, - 188,211,128,6,156,127,60,42,34,37, - 39,35,10,136,4,3,128,38,31,5, - 14,13,6,8,27,26,140,145,148,147, - 150,149,152,151,155,153,157,59,158,213, - 158,187,4,127,127,127,266,267,248,268, - 243,269,68,270,271,10,128,56,56,127, - 167,127,264,127,3,28,28,28,28,128, - 3,7,125,177,162,166,127,64,65,167, - 3,126,106,120,3,56,90,96,14,13, - 92,91,6,94,93,62,28,88,89,8, - 98,97,100,99,101,116,115,114,113,112, - 111,110,109,108,107,66,117,102,257,187, - 251,254,251,211,9,60,167,231,128,126, - 125,124,60,128,128,185,167,251,6,182, - 67,303,177,162,177,177,177,177,167,218, - 154,127,3,216,215,136,126,125,10,128, - 56,293,3,187,177,30,128,30,218,162, + 0,291,189,179,185,172,130,133,7,5, + 125,3,127,3,67,56,168,166,125,28, + 28,167,127,56,3,63,64,125,124,28, + 189,212,128,6,156,127,165,40,31,34, + 36,32,10,136,4,3,128,35,30,5, + 13,12,6,9,27,26,140,145,148,147, + 150,149,152,151,155,153,157,58,158,214, + 158,188,4,127,127,127,265,266,249,267, + 244,268,69,269,270,10,128,56,56,127, + 168,127,263,127,3,28,28,28,28,128, + 3,7,125,178,162,167,127,63,64,168, + 3,126,103,121,3,56,90,96,13,12, + 92,91,6,94,93,62,28,88,89,9, + 98,97,100,99,101,113,112,111,110,109, + 108,107,106,105,104,67,117,102,256,188, + 250,253,250,212,165,168,232,128,126,125, + 124,165,128,128,186,168,250,6,183,65, + 302,8,178,162,178,178,178,178,168,219, + 154,127,3,217,216,136,126,125,10,128, + 56,292,3,188,178,37,128,37,219,162, 147,147,145,145,145,149,149,149,149,148, 148,151,150,150,153,152,155,162,157,4, - 67,127,127,126,125,127,185,127,60,127, - 185,167,30,127,67,62,62,62,62,187, - 171,211,223,127,3,128,167,197,3,294, - 166,156,128,185,167,71,281,128,168,221, - 57,30,195,58,170,282,281,127,127,71, - 187,127,272,124,273,187,3,3,3,3, - 126,125,228,229,146,230,127,167,30,177, - 127,127,222,5,30,167,60,225,28,30, - 274,276,127,178,306,221,32,128,272,66, - 67,162,162,162,162,3,3,154,66,223, - 188,3,127,67,228,187,154,259,262,56, - 180,4,124,126,187,127,60,62,28,128, - 76,127,211,304,125,71,284,188,3,67, - 128,32,307,185,218,218,127,66,66,127, - 211,154,126,127,3,56,162,4,131,238, - 12,30,170,63,57,58,237,127,127,185, - 127,278,71,67,71,66,127,185,128,128, - 219,127,259,218,213,29,127,3,124,57, - 238,291,30,10,61,131,278,60,288,128, - 289,228,185,185,127,219,127,60,265,275, - 29,66,128,67,62,28,231,231,279,127, - 67,185,3,154,59,127,127,67,154,128, - 185,127,66,66,127,297,81,79,1,162, - 87,85,83,82,77,84,86,80,78,57, - 76,218,127,3,238,185,225,291,280,119, - 9,213,71,3,3,3,198,3,124,162, - 124,181,219,311,225,62,3,224,166,224, - 299,146,77,224,127,127,67,61,95,310, - 166,154,188,154,298,127,3,154,280,231, - 154,154,127,66,198,161,265,162,66,122, - 296,154,154 + 65,127,126,125,127,186,127,165,127,186, + 168,37,127,65,62,62,62,62,188,172, + 212,223,127,3,128,168,198,3,293,167, + 156,128,186,168,72,303,128,169,224,57, + 37,197,59,171,305,127,127,72,188,127, + 271,124,272,188,3,3,3,3,126,125, + 229,230,146,231,127,168,37,178,127,127, + 222,5,37,168,165,226,28,37,273,275, + 127,179,307,224,41,128,271,67,65,162, + 162,162,162,3,3,154,67,223,189,3, + 127,65,229,188,154,258,261,56,181,4, + 124,126,188,127,165,62,28,128,75,127, + 212,304,125,72,283,189,3,65,128,41, + 308,186,219,219,127,67,67,127,212,154, + 126,127,3,56,162,4,131,239,14,37, + 171,60,57,59,238,127,127,186,127,277, + 72,65,72,67,127,186,128,128,220,127, + 258,219,214,29,127,3,124,57,239,290, + 37,10,61,131,277,165,287,128,288,229, + 186,186,127,220,127,165,264,274,29,67, + 128,65,62,28,232,232,278,127,65,186, + 3,154,58,127,127,65,154,128,186,127, + 67,67,127,296,80,78,1,162,8,86, + 84,82,81,76,83,85,79,77,57,75, + 219,127,3,239,186,226,290,279,120,8, + 214,72,3,3,3,199,3,124,162,124, + 182,220,312,226,62,3,225,167,225,298, + 146,76,225,127,127,65,61,95,311,167, + 154,189,154,297,127,3,154,279,232,154, + 154,127,67,199,161,264,162,67,122,295, + 154,154 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2251,10 +2246,8 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface Name { public final static String name[] = { "", - "EOC", "[", "(", - "{", ".", ".*", "->", @@ -2367,11 +2360,13 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars "stringlit", "identifier", "Completion", + "EndOfCompletion", "Invalid", "RightBracket", "RightParen", "RightBrace", "SemiColon", + "LeftBrace", "ERROR_TOKEN", "0", "EOF_TOKEN", @@ -2380,6 +2375,7 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars ")", "}", ";", + "{", "declaration", "identifier_token", "expression", @@ -2507,8 +2503,8 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public final static int ERROR_SYMBOL = 74, - SCOPE_UBOUND = 118, - SCOPE_SIZE = 119, + SCOPE_UBOUND = 116, + SCOPE_SIZE = 117, MAX_NAME_LENGTH = 37; public final int getErrorSymbol() { return ERROR_SYMBOL; } @@ -2517,20 +2513,20 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 523, + NUM_STATES = 522, NT_OFFSET = 123, - LA_STATE_OFFSET = 5806, + LA_STATE_OFFSET = 5755, MAX_LA = 2147483647, - NUM_RULES = 532, - NUM_NONTERMINALS = 194, - NUM_SYMBOLS = 317, + NUM_RULES = 533, + NUM_NONTERMINALS = 195, + NUM_SYMBOLS = 318, SEGMENT_SIZE = 8192, - START_STATE = 4227, + START_STATE = 4301, IDENTIFIER_SYMBOL = 0, - EOFT_SYMBOL = 121, - EOLT_SYMBOL = 121, - ACCEPT_ACTION = 4887, - ERROR_ACTION = 5274; + EOFT_SYMBOL = 119, + EOLT_SYMBOL = 119, + ACCEPT_ACTION = 4825, + ERROR_ACTION = 5222; 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 fe6d747c343..1bb914c4c6d 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,92 +15,91 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp; public interface CPPNoFunctionDeclaratorParsersym { public final static int - TK_asm = 63, + TK_asm = 60, TK_auto = 48, TK_bool = 15, - TK_break = 78, - TK_case = 79, - TK_catch = 119, + TK_break = 77, + TK_case = 78, + TK_catch = 120, TK_char = 16, TK_class = 61, - TK_const = 33, - TK_const_cast = 34, - TK_continue = 80, - TK_default = 81, - TK_delete = 64, - TK_do = 82, + TK_const = 46, + TK_const_cast = 31, + TK_continue = 79, + TK_default = 80, + TK_delete = 63, + TK_do = 81, TK_double = 17, - TK_dynamic_cast = 35, + TK_dynamic_cast = 32, TK_else = 122, - TK_enum = 68, + TK_enum = 69, TK_explicit = 49, - TK_export = 75, - TK_extern = 12, - TK_false = 36, + TK_export = 87, + TK_extern = 14, + TK_false = 33, TK_float = 18, - TK_for = 83, + TK_for = 82, TK_friend = 50, - TK_goto = 84, - TK_if = 85, + TK_goto = 83, + TK_if = 84, TK_inline = 51, TK_int = 19, TK_long = 20, TK_mutable = 52, TK_namespace = 57, - TK_new = 65, + TK_new = 64, TK_operator = 7, - TK_private = 103, - TK_protected = 104, - TK_public = 105, + TK_private = 114, + TK_protected = 115, + TK_public = 116, TK_register = 53, - TK_reinterpret_cast = 37, - TK_return = 86, + TK_reinterpret_cast = 34, + TK_return = 85, TK_short = 21, TK_signed = 22, - TK_sizeof = 38, + TK_sizeof = 35, TK_static = 54, - TK_static_cast = 39, - TK_struct = 69, - TK_switch = 87, - TK_template = 30, - TK_this = 40, - TK_throw = 59, - TK_try = 76, - TK_true = 41, + TK_static_cast = 36, + TK_struct = 70, + TK_switch = 86, + TK_template = 37, + TK_this = 38, + TK_throw = 58, + TK_try = 75, + TK_true = 39, TK_typedef = 55, - TK_typeid = 42, + TK_typeid = 40, TK_typename = 10, - TK_union = 70, + TK_union = 71, TK_unsigned = 23, - TK_using = 58, - TK_virtual = 32, + TK_using = 59, + TK_virtual = 41, TK_void = 24, - TK_volatile = 43, + TK_volatile = 47, TK_wchar_t = 25, - TK_while = 77, - TK_integer = 44, - TK_floating = 45, - TK_charconst = 46, + TK_while = 76, + TK_integer = 42, + TK_floating = 43, + TK_charconst = 44, TK_stringlit = 29, TK_identifier = 1, TK_Completion = 2, - TK_EndOfCompletion = 9, + TK_EndOfCompletion = 8, TK_Invalid = 123, TK_LeftBracket = 56, TK_LeftParen = 3, - TK_LeftBrace = 60, - TK_Dot = 120, + TK_Dot = 121, TK_DotStar = 96, - TK_Arrow = 106, + TK_Arrow = 103, TK_ArrowStar = 90, TK_PlusPlus = 26, TK_MinusMinus = 27, - TK_And = 8, + TK_And = 9, TK_Star = 6, - TK_Plus = 13, - TK_Minus = 14, + TK_Plus = 12, + TK_Minus = 13, TK_Tilde = 5, - TK_Bang = 31, + TK_Bang = 30, TK_Slash = 91, TK_Percent = 92, TK_RightShift = 88, @@ -116,28 +115,29 @@ public interface CPPNoFunctionDeclaratorParsersym { TK_AndAnd = 101, TK_OrOr = 102, TK_Question = 117, - TK_Colon = 71, + TK_Colon = 72, TK_ColonColon = 4, TK_DotDotDot = 95, - TK_Assign = 66, - TK_StarAssign = 107, - TK_SlashAssign = 108, - TK_PercentAssign = 109, - TK_PlusAssign = 110, - TK_MinusAssign = 111, - TK_RightShiftAssign = 112, - TK_LeftShiftAssign = 113, - TK_AndAssign = 114, - TK_CaretAssign = 115, - TK_OrAssign = 116, - TK_Comma = 67, + TK_Assign = 67, + TK_StarAssign = 104, + TK_SlashAssign = 105, + TK_PercentAssign = 106, + TK_PlusAssign = 107, + TK_MinusAssign = 108, + TK_RightShiftAssign = 109, + TK_LeftShiftAssign = 110, + TK_AndAssign = 111, + TK_CaretAssign = 112, + TK_OrAssign = 113, + TK_Comma = 65, TK_RightBracket = 118, TK_RightParen = 73, - TK_RightBrace = 72, + TK_RightBrace = 68, TK_SemiColon = 11, + TK_LeftBrace = 66, TK_ERROR_TOKEN = 74, - TK_0 = 47, - TK_EOF_TOKEN = 121; + TK_0 = 45, + TK_EOF_TOKEN = 119; public final static String orderedTerminalSymbols[] = { "", @@ -148,13 +148,13 @@ public interface CPPNoFunctionDeclaratorParsersym { "Tilde", "Star", "operator", - "And", "EndOfCompletion", + "And", "typename", "SemiColon", - "extern", "Plus", "Minus", + "extern", "bool", "char", "double", @@ -170,24 +170,24 @@ public interface CPPNoFunctionDeclaratorParsersym { "MinusMinus", "LT", "stringlit", - "template", "Bang", - "virtual", - "const", "const_cast", "dynamic_cast", "false", "reinterpret_cast", "sizeof", "static_cast", + "template", "this", "true", "typeid", - "volatile", + "virtual", "integer", "floating", "charconst", "0", + "const", + "volatile", "auto", "explicit", "friend", @@ -198,24 +198,23 @@ public interface CPPNoFunctionDeclaratorParsersym { "typedef", "LeftBracket", "namespace", - "using", "throw", - "LeftBrace", + "using", + "asm", "class", "GT", - "asm", "delete", "new", - "Assign", "Comma", + "LeftBrace", + "Assign", + "RightBrace", "enum", "struct", "union", "Colon", - "RightBrace", "RightParen", "ERROR_TOKEN", - "export", "try", "while", "break", @@ -228,6 +227,7 @@ public interface CPPNoFunctionDeclaratorParsersym { "if", "return", "switch", + "export", "RightShift", "LeftShift", "ArrowStar", @@ -243,9 +243,6 @@ public interface CPPNoFunctionDeclaratorParsersym { "Or", "AndAnd", "OrOr", - "private", - "protected", - "public", "Arrow", "StarAssign", "SlashAssign", @@ -257,11 +254,14 @@ public interface CPPNoFunctionDeclaratorParsersym { "AndAssign", "CaretAssign", "OrAssign", + "private", + "protected", + "public", "Question", "RightBracket", + "EOF_TOKEN", "catch", "Dot", - "EOF_TOKEN", "else", "Invalid" }; diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParser.java index eae00527536..804b8cba91a 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 @@ -267,1997 +267,1990 @@ public CPPParser(String[] mapFrom) { // constructor } // - // Rule 11: translation_unit ::= external_declaration_list + // Rule 13: translation_unit ::= external_declaration_list // - case 11: { action.builder. + case 13: { action.builder. consumeTranslationUnit(); break; } // - // Rule 12: translation_unit ::= $Empty + // Rule 14: translation_unit ::= $Empty // - case 12: { action.builder. + case 14: { action.builder. consumeTranslationUnit(); break; } // - // Rule 16: external_declaration ::= ERROR_TOKEN + // Rule 18: external_declaration ::= ERROR_TOKEN // - case 16: { action.builder. + case 18: { action.builder. consumeDeclarationProblem(); break; } // - // Rule 19: literal ::= integer - // - case 19: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; - } - - // - // Rule 20: literal ::= 0 - // - case 20: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; - } - - // - // Rule 21: literal ::= floating + // 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 22: literal ::= charconst + // Rule 24: literal ::= charconst // - case 22: { action.builder. + case 24: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_char_constant); break; } // - // Rule 23: literal ::= stringlit + // Rule 25: literal ::= stringlit // - case 23: { action.builder. + case 25: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_string_literal); break; } // - // Rule 24: literal ::= true + // Rule 26: literal ::= true // - case 24: { action.builder. + case 26: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_true); break; } // - // Rule 25: literal ::= false + // Rule 27: literal ::= false // - case 25: { action.builder. + case 27: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_false); break; } // - // Rule 26: literal ::= this + // Rule 28: literal ::= this // - case 26: { action.builder. + case 28: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_this); break; } // - // Rule 28: primary_expression ::= ( expression ) + // Rule 30: primary_expression ::= ( expression ) // - case 28: { action.builder. + case 30: { action.builder. consumeExpressionBracketed(); break; } // - // Rule 30: id_expression ::= qualified_or_unqualified_name + // Rule 32: id_expression ::= qualified_or_unqualified_name // - case 30: { action.builder. + case 32: { action.builder. consumeExpressionName(); break; } // - // Rule 37: unqualified_id_name ::= ~ identifier_token + // Rule 39: unqualified_id_name ::= ~ identifier_token // - case 37: { action.builder. + case 39: { action.builder. consumeDestructorName(); break; } // - // Rule 38: unqualified_id_name ::= ~ template_id_name + // Rule 40: unqualified_id_name ::= ~ template_id_name // - case 38: { action.builder. + case 40: { action.builder. consumeDestructorNameTemplateId(); break; } // - // Rule 39: identifier_name ::= identifier_token + // Rule 41: identifier_name ::= identifier_token // - case 39: { action.builder. + case 41: { action.builder. consumeIdentifierName(); break; } // - // Rule 40: template_opt ::= template + // Rule 42: template_opt ::= template // - case 40: { action.builder. + case 42: { action.builder. consumePlaceHolder(); break; } // - // Rule 41: template_opt ::= $Empty - // - case 41: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 42: dcolon_opt ::= :: - // - case 42: { action.builder. - consumeToken(); break; - } - - // - // Rule 43: dcolon_opt ::= $Empty + // Rule 43: template_opt ::= $Empty // case 43: { action.builder. consumeEmpty(); break; } // - // Rule 44: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name + // Rule 44: dcolon_opt ::= :: // case 44: { action.builder. + consumeToken(); break; + } + + // + // Rule 45: dcolon_opt ::= $Empty + // + case 45: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 46: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name + // + case 46: { action.builder. consumeQualifiedId(true); break; } // - // Rule 45: qualified_id_name ::= :: identifier_name - // - case 45: { action.builder. - consumeGlobalQualifiedId(); break; - } - - // - // Rule 46: qualified_id_name ::= :: operator_function_id_name - // - case 46: { action.builder. - consumeGlobalQualifiedId(); break; - } - - // - // Rule 47: qualified_id_name ::= :: template_id_name + // Rule 47: qualified_id_name ::= :: identifier_name // case 47: { action.builder. consumeGlobalQualifiedId(); break; } // - // Rule 48: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template + // Rule 48: qualified_id_name ::= :: operator_function_id_name // case 48: { action.builder. - consumeNestedNameSpecifier(true); break; + consumeGlobalQualifiedId(); break; } // - // Rule 49: nested_name_specifier ::= class_or_namespace_name :: + // Rule 49: qualified_id_name ::= :: template_id_name // case 49: { action.builder. - consumeNestedNameSpecifier(false); break; + consumeGlobalQualifiedId(); break; } // - // Rule 50: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template + // Rule 50: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template // case 50: { action.builder. consumeNestedNameSpecifier(true); break; } // - // Rule 51: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: + // Rule 51: nested_name_specifier ::= class_or_namespace_name :: // case 51: { action.builder. consumeNestedNameSpecifier(false); break; } // - // Rule 52: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name + // Rule 52: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template // case 52: { action.builder. + consumeNestedNameSpecifier(true); break; + } + + // + // Rule 53: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: + // + case 53: { action.builder. + consumeNestedNameSpecifier(false); break; + } + + // + // Rule 54: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name + // + case 54: { action.builder. consumeNameWithTemplateKeyword(); break; } // - // Rule 54: nested_name_specifier_opt ::= $Empty + // Rule 56: nested_name_specifier_opt ::= $Empty // - case 54: { action.builder. + case 56: { action.builder. consumeNestedNameSpecifierEmpty(); break; } // - // Rule 57: postfix_expression ::= postfix_expression [ expression ] + // Rule 59: postfix_expression ::= postfix_expression [ expression ] // - case 57: { action.builder. + case 59: { action.builder. consumeExpressionArraySubscript(); break; } // - // Rule 58: postfix_expression ::= postfix_expression ( expression_list_opt ) + // Rule 60: postfix_expression ::= postfix_expression ( expression_list_opt ) // - case 58: { action.builder. + case 60: { action.builder. consumeExpressionFunctionCall(); break; } // - // Rule 59: postfix_expression ::= simple_type_specifier ( expression_list_opt ) + // Rule 61: postfix_expression ::= simple_type_specifier ( expression_list_opt ) // - case 59: { action.builder. + case 61: { action.builder. consumeExpressionSimpleTypeConstructor(); break; } // - // Rule 60: postfix_expression ::= typename dcolon_opt nested_name_specifier identifier_name ( expression_list_opt ) - // - case 60: { action.builder. - consumeExpressionTypeName(); break; - } - - // - // Rule 61: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) - // - case 61: { action.builder. - consumeExpressionTypeName(); break; - } - - // - // Rule 62: postfix_expression ::= postfix_expression . qualified_or_unqualified_name + // Rule 62: postfix_expression ::= typename dcolon_opt nested_name_specifier identifier_name ( expression_list_opt ) // case 62: { action.builder. + consumeExpressionTypeName(); break; + } + + // + // Rule 63: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) + // + case 63: { action.builder. + consumeExpressionTypeName(); break; + } + + // + // Rule 64: postfix_expression ::= postfix_expression . qualified_or_unqualified_name + // + case 64: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 63: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name + // Rule 65: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name // - case 63: { action.builder. + case 65: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 64: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name + // Rule 66: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name // - case 64: { action.builder. + case 66: { action.builder. consumeExpressionFieldReference(false, true); break; } // - // Rule 65: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name + // Rule 67: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name // - case 65: { action.builder. + case 67: { action.builder. consumeExpressionFieldReference(true, true); break; } // - // Rule 66: postfix_expression ::= postfix_expression . pseudo_destructor_name + // Rule 68: postfix_expression ::= postfix_expression . pseudo_destructor_name // - case 66: { action.builder. + case 68: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 67: postfix_expression ::= postfix_expression -> pseudo_destructor_name + // Rule 69: postfix_expression ::= postfix_expression -> pseudo_destructor_name // - case 67: { action.builder. + case 69: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 68: postfix_expression ::= postfix_expression ++ + // Rule 70: postfix_expression ::= postfix_expression ++ // - case 68: { action.builder. + case 70: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; } // - // Rule 69: postfix_expression ::= postfix_expression -- + // Rule 71: postfix_expression ::= postfix_expression -- // - case 69: { action.builder. + case 71: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; } // - // Rule 70: postfix_expression ::= dynamic_cast < type_id > ( expression ) + // Rule 72: postfix_expression ::= dynamic_cast < type_id > ( expression ) // - case 70: { action.builder. + case 72: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); break; } // - // Rule 71: postfix_expression ::= static_cast < type_id > ( expression ) + // Rule 73: postfix_expression ::= static_cast < type_id > ( expression ) // - case 71: { action.builder. + case 73: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_static_cast); break; } // - // Rule 72: postfix_expression ::= reinterpret_cast < type_id > ( expression ) + // Rule 74: postfix_expression ::= reinterpret_cast < type_id > ( expression ) // - case 72: { action.builder. + case 74: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); break; } // - // Rule 73: postfix_expression ::= const_cast < type_id > ( expression ) + // Rule 75: postfix_expression ::= const_cast < type_id > ( expression ) // - case 73: { action.builder. + case 75: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_const_cast); break; } // - // Rule 74: postfix_expression ::= typeid ( expression ) + // Rule 76: postfix_expression ::= typeid ( expression ) // - case 74: { action.builder. + case 76: { action.builder. consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break; } // - // Rule 75: postfix_expression ::= typeid ( type_id ) + // Rule 77: postfix_expression ::= typeid ( type_id ) // - case 75: { action.builder. + case 77: { action.builder. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid); break; } // - // Rule 76: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name - // - case 76: { action.builder. - consumePsudoDestructorName(true); break; - } - - // - // Rule 77: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name - // - case 77: { action.builder. - consumePsudoDestructorName(true); break; - } - - // - // Rule 78: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name + // Rule 78: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name // case 78: { action.builder. + consumePsudoDestructorName(true); break; + } + + // + // Rule 79: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name + // + case 79: { action.builder. + consumePsudoDestructorName(true); break; + } + + // + // Rule 80: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name + // + case 80: { action.builder. consumePsudoDestructorName(false); break; } // - // Rule 79: destructor_type_name ::= ~ identifier_token + // Rule 81: destructor_type_name ::= ~ identifier_token // - case 79: { action.builder. + case 81: { action.builder. consumeDestructorName(); break; } // - // Rule 80: destructor_type_name ::= ~ template_id_name + // Rule 82: destructor_type_name ::= ~ template_id_name // - case 80: { action.builder. + case 82: { action.builder. consumeDestructorNameTemplateId(); break; } // - // Rule 84: unary_expression ::= ++ cast_expression + // Rule 86: unary_expression ::= ++ cast_expression // - case 84: { action.builder. + case 86: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; } // - // Rule 85: unary_expression ::= -- cast_expression + // Rule 87: unary_expression ::= -- cast_expression // - case 85: { action.builder. + case 87: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; } // - // Rule 86: unary_expression ::= & cast_expression + // Rule 88: unary_expression ::= & cast_expression // - case 86: { action.builder. + case 88: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; } // - // Rule 87: unary_expression ::= * cast_expression + // Rule 89: unary_expression ::= * cast_expression // - case 87: { action.builder. + case 89: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; } // - // Rule 88: unary_expression ::= + cast_expression + // Rule 90: unary_expression ::= + cast_expression // - case 88: { action.builder. + case 90: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; } // - // Rule 89: unary_expression ::= - cast_expression + // Rule 91: unary_expression ::= - cast_expression // - case 89: { action.builder. + case 91: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; } // - // Rule 90: unary_expression ::= ~ cast_expression + // Rule 92: unary_expression ::= ~ cast_expression // - case 90: { action.builder. + case 92: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; } // - // Rule 91: unary_expression ::= ! cast_expression + // Rule 93: unary_expression ::= ! cast_expression // - case 91: { action.builder. + case 93: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; } // - // Rule 92: unary_expression ::= sizeof unary_expression + // Rule 94: unary_expression ::= sizeof unary_expression // - case 92: { action.builder. + case 94: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; } // - // Rule 93: unary_expression ::= sizeof ( type_id ) + // Rule 95: unary_expression ::= sizeof ( type_id ) // - case 93: { action.builder. + case 95: { 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 96: new_expression ::= dcolon_opt new new_placement_opt new_type_id new_array_expressions_opt new_initializer_opt // - case 94: { action.builder. + case 96: { 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 97: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_array_expressions_opt new_initializer_opt // - case 95: { action.builder. + case 97: { action.builder. consumeExpressionNew(false); break; } // - // Rule 97: new_placement_opt ::= $Empty + // Rule 99: new_placement_opt ::= $Empty // - case 97: { action.builder. + case 99: { action.builder. consumeEmpty(); break; } // - // Rule 98: new_type_id ::= type_specifier_seq + // Rule 100: new_type_id ::= type_specifier_seq // - case 98: { action.builder. + case 100: { action.builder. consumeTypeId(false); break; } // - // Rule 99: new_type_id ::= type_specifier_seq new_declarator + // Rule 101: new_type_id ::= type_specifier_seq new_declarator // - case 99: { action.builder. + case 101: { action.builder. consumeTypeId(true); break; } // - // Rule 100: new_declarator ::= new_pointer_operators + // Rule 102: new_declarator ::= new_pointer_operators // - case 100: { action.builder. + case 102: { action.builder. consumeNewDeclarator(); break; } // - // Rule 109: new_initializer_opt ::= $Empty + // Rule 111: new_initializer_opt ::= $Empty // - case 109: { action.builder. + case 111: { action.builder. consumeEmpty(); break; } // - // Rule 110: delete_expression ::= dcolon_opt delete cast_expression + // Rule 112: delete_expression ::= dcolon_opt delete cast_expression // - case 110: { action.builder. + case 112: { action.builder. consumeExpressionDelete(false); break; } // - // Rule 111: delete_expression ::= dcolon_opt delete [ ] cast_expression + // Rule 113: delete_expression ::= dcolon_opt delete [ ] cast_expression // - case 111: { action.builder. + case 113: { action.builder. consumeExpressionDelete(true); break; } // - // Rule 113: cast_expression ::= ( type_id ) cast_expression + // Rule 115: cast_expression ::= ( type_id ) cast_expression // - case 113: { action.builder. + case 115: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_cast); break; } // - // Rule 115: pm_expression ::= pm_expression .* cast_expression + // Rule 117: pm_expression ::= pm_expression .* cast_expression // - case 115: { action.builder. + case 117: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot); break; } // - // Rule 116: pm_expression ::= pm_expression ->* cast_expression + // Rule 118: pm_expression ::= pm_expression ->* cast_expression // - case 116: { action.builder. + case 118: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow); break; } // - // Rule 118: multiplicative_expression ::= multiplicative_expression * pm_expression + // Rule 120: multiplicative_expression ::= multiplicative_expression * pm_expression // - case 118: { action.builder. + case 120: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply); break; } // - // Rule 119: multiplicative_expression ::= multiplicative_expression / pm_expression + // Rule 121: multiplicative_expression ::= multiplicative_expression / pm_expression // - case 119: { action.builder. + case 121: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide); break; } // - // Rule 120: multiplicative_expression ::= multiplicative_expression % pm_expression + // Rule 122: multiplicative_expression ::= multiplicative_expression % pm_expression // - case 120: { action.builder. + case 122: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo); break; } // - // Rule 122: additive_expression ::= additive_expression + multiplicative_expression + // Rule 124: additive_expression ::= additive_expression + multiplicative_expression // - case 122: { action.builder. + case 124: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus); break; } // - // Rule 123: additive_expression ::= additive_expression - multiplicative_expression + // Rule 125: additive_expression ::= additive_expression - multiplicative_expression // - case 123: { action.builder. + case 125: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus); break; } // - // Rule 125: shift_expression ::= shift_expression << additive_expression + // Rule 127: shift_expression ::= shift_expression << additive_expression // - case 125: { action.builder. + case 127: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft); break; } // - // Rule 126: shift_expression ::= shift_expression >> additive_expression + // Rule 128: shift_expression ::= shift_expression >> additive_expression // - case 126: { action.builder. + case 128: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight); break; } // - // Rule 128: relational_expression ::= relational_expression < shift_expression + // Rule 130: relational_expression ::= relational_expression < shift_expression // - case 128: { action.builder. + case 130: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; } // - // Rule 129: relational_expression ::= relational_expression > shift_expression + // Rule 131: relational_expression ::= relational_expression > shift_expression // - case 129: { action.builder. + case 131: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; } // - // Rule 130: relational_expression ::= relational_expression <= shift_expression + // Rule 132: relational_expression ::= relational_expression <= shift_expression // - case 130: { action.builder. + case 132: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; } // - // Rule 131: relational_expression ::= relational_expression >= shift_expression + // Rule 133: relational_expression ::= relational_expression >= shift_expression // - case 131: { action.builder. + case 133: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; } // - // Rule 133: equality_expression ::= equality_expression == relational_expression + // Rule 135: equality_expression ::= equality_expression == relational_expression // - case 133: { action.builder. + case 135: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; } // - // Rule 134: equality_expression ::= equality_expression != relational_expression + // Rule 136: equality_expression ::= equality_expression != relational_expression // - case 134: { action.builder. + case 136: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; } // - // Rule 136: and_expression ::= and_expression & equality_expression + // Rule 138: and_expression ::= and_expression & equality_expression // - case 136: { action.builder. + case 138: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; } // - // Rule 138: exclusive_or_expression ::= exclusive_or_expression ^ and_expression + // Rule 140: exclusive_or_expression ::= exclusive_or_expression ^ and_expression // - case 138: { action.builder. + case 140: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; } // - // Rule 140: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression + // Rule 142: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression // - case 140: { action.builder. + case 142: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; } // - // Rule 142: logical_and_expression ::= logical_and_expression && inclusive_or_expression + // Rule 144: logical_and_expression ::= logical_and_expression && inclusive_or_expression // - case 142: { action.builder. + case 144: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; } // - // Rule 144: logical_or_expression ::= logical_or_expression || logical_and_expression + // Rule 146: logical_or_expression ::= logical_or_expression || logical_and_expression // - case 144: { action.builder. + case 146: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; } // - // Rule 146: conditional_expression ::= logical_or_expression ? expression : assignment_expression + // Rule 148: conditional_expression ::= logical_or_expression ? expression : assignment_expression // - case 146: { action.builder. + case 148: { action.builder. consumeExpressionConditional(); break; } // - // Rule 147: throw_expression ::= throw + // Rule 149: throw_expression ::= throw // - case 147: { action.builder. + case 149: { action.builder. consumeExpressionThrow(false); break; } // - // Rule 148: throw_expression ::= throw assignment_expression + // Rule 150: throw_expression ::= throw assignment_expression // - case 148: { action.builder. + case 150: { action.builder. consumeExpressionThrow(true); break; } // - // Rule 151: assignment_expression ::= logical_or_expression = assignment_expression + // Rule 153: assignment_expression ::= logical_or_expression = assignment_expression // - case 151: { action.builder. + case 153: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; } // - // Rule 152: assignment_expression ::= logical_or_expression *= assignment_expression + // Rule 154: assignment_expression ::= logical_or_expression *= assignment_expression // - case 152: { action.builder. + case 154: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 153: assignment_expression ::= logical_or_expression /= assignment_expression + // Rule 155: assignment_expression ::= logical_or_expression /= assignment_expression // - case 153: { action.builder. + case 155: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; } // - // Rule 154: assignment_expression ::= logical_or_expression %= assignment_expression + // Rule 156: assignment_expression ::= logical_or_expression %= assignment_expression // - case 154: { action.builder. + case 156: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; } // - // Rule 155: assignment_expression ::= logical_or_expression += assignment_expression + // Rule 157: assignment_expression ::= logical_or_expression += assignment_expression // - case 155: { action.builder. + case 157: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; } // - // Rule 156: assignment_expression ::= logical_or_expression -= assignment_expression + // Rule 158: assignment_expression ::= logical_or_expression -= assignment_expression // - case 156: { action.builder. + case 158: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; } // - // Rule 157: assignment_expression ::= logical_or_expression >>= assignment_expression + // Rule 159: assignment_expression ::= logical_or_expression >>= assignment_expression // - case 157: { action.builder. + case 159: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 158: assignment_expression ::= logical_or_expression <<= assignment_expression + // Rule 160: assignment_expression ::= logical_or_expression <<= assignment_expression // - case 158: { action.builder. + case 160: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 159: assignment_expression ::= logical_or_expression &= assignment_expression + // Rule 161: assignment_expression ::= logical_or_expression &= assignment_expression // - case 159: { action.builder. + case 161: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 160: assignment_expression ::= logical_or_expression ^= assignment_expression + // Rule 162: assignment_expression ::= logical_or_expression ^= assignment_expression // - case 160: { action.builder. + case 162: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 161: assignment_expression ::= logical_or_expression |= assignment_expression + // Rule 163: assignment_expression ::= logical_or_expression |= assignment_expression // - case 161: { action.builder. + case 163: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 163: expression_list ::= expression_list_actual + // Rule 165: expression_list ::= expression_list_actual // - case 163: { action.builder. + case 165: { action.builder. consumeExpressionList(); break; } // - // Rule 167: expression_list_opt ::= $Empty - // - case 167: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 169: expression_opt ::= $Empty + // Rule 169: expression_list_opt ::= $Empty // case 169: { action.builder. consumeEmpty(); break; } // - // Rule 172: constant_expression_opt ::= $Empty + // Rule 171: expression_opt ::= $Empty // - case 172: { action.builder. + case 171: { action.builder. consumeEmpty(); break; } // - // Rule 181: statement ::= ERROR_TOKEN + // Rule 174: constant_expression_opt ::= $Empty // - case 181: { action.builder. + case 174: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 183: statement ::= ERROR_TOKEN + // + case 183: { action.builder. consumeStatementProblem(); break; } // - // Rule 182: labeled_statement ::= identifier : statement + // Rule 184: labeled_statement ::= identifier : statement // - case 182: { action.builder. + case 184: { action.builder. consumeStatementLabeled(); break; } // - // Rule 183: labeled_statement ::= case constant_expression : + // Rule 185: labeled_statement ::= case constant_expression : // - case 183: { action.builder. + case 185: { action.builder. consumeStatementCase(); break; } // - // Rule 184: labeled_statement ::= default : + // Rule 186: labeled_statement ::= default : // - case 184: { action.builder. + case 186: { action.builder. consumeStatementDefault(); break; } // - // Rule 185: expression_statement ::= expression ; + // Rule 187: expression_statement ::= expression ; // - case 185: { action.builder. + case 187: { action.builder. consumeStatementExpression(); break; } // - // Rule 186: expression_statement ::= ; + // Rule 188: expression_statement ::= ; // - case 186: { action.builder. + case 188: { action.builder. consumeStatementNull(); break; } // - // Rule 187: compound_statement ::= { statement_seq } + // Rule 189: compound_statement ::= { statement_seq } // - case 187: { action.builder. + case 189: { action.builder. consumeStatementCompoundStatement(true); break; } // - // Rule 188: compound_statement ::= { } + // Rule 190: compound_statement ::= { } // - case 188: { action.builder. + case 190: { action.builder. consumeStatementCompoundStatement(false); break; } // - // Rule 191: selection_statement ::= if ( condition ) statement + // Rule 193: selection_statement ::= if ( condition ) statement // - case 191: { action.builder. + case 193: { action.builder. consumeStatementIf(false); break; } // - // Rule 192: selection_statement ::= if ( condition ) statement else statement + // Rule 194: selection_statement ::= if ( condition ) statement else statement // - case 192: { action.builder. + case 194: { action.builder. consumeStatementIf(true); break; } // - // Rule 193: selection_statement ::= switch ( condition ) statement + // Rule 195: selection_statement ::= switch ( condition ) statement // - case 193: { action.builder. + case 195: { action.builder. consumeStatementSwitch(); break; } // - // Rule 195: condition ::= type_specifier_seq declarator = assignment_expression + // Rule 197: condition ::= type_specifier_seq declarator = assignment_expression // - case 195: { action.builder. + case 197: { action.builder. consumeConditionDeclaration(); break; } // - // Rule 197: condition_opt ::= $Empty + // Rule 199: condition_opt ::= $Empty // - case 197: { action.builder. + case 199: { action.builder. consumeEmpty(); break; } // - // Rule 198: iteration_statement ::= while ( condition ) statement + // Rule 200: iteration_statement ::= while ( condition ) statement // - case 198: { action.builder. + case 200: { action.builder. consumeStatementWhileLoop(); break; } // - // Rule 199: iteration_statement ::= do statement while ( expression ) ; + // Rule 201: iteration_statement ::= do statement while ( expression ) ; // - case 199: { action.builder. + case 201: { action.builder. consumeStatementDoLoop(); break; } // - // Rule 200: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement + // Rule 202: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement // - case 200: { action.builder. + case 202: { action.builder. consumeStatementForLoop(); break; } // - // Rule 202: for_init_statement ::= simple_declaration_with_declspec + // Rule 204: for_init_statement ::= simple_declaration_with_declspec // - case 202: { action.builder. + case 204: { action.builder. consumeStatementDeclaration(); break; } // - // Rule 203: jump_statement ::= break ; + // Rule 205: jump_statement ::= break ; // - case 203: { action.builder. + case 205: { action.builder. consumeStatementBreak(); break; } // - // Rule 204: jump_statement ::= continue ; + // Rule 206: jump_statement ::= continue ; // - case 204: { action.builder. + case 206: { action.builder. consumeStatementContinue(); break; } // - // Rule 205: jump_statement ::= return expression ; + // Rule 207: jump_statement ::= return expression ; // - case 205: { action.builder. + case 207: { action.builder. consumeStatementReturn(true); break; } // - // Rule 206: jump_statement ::= return ; + // Rule 208: jump_statement ::= return ; // - case 206: { action.builder. + case 208: { action.builder. consumeStatementReturn(false); break; } // - // Rule 207: jump_statement ::= goto identifier_token ; + // Rule 209: jump_statement ::= goto identifier_token ; // - case 207: { action.builder. + case 209: { action.builder. consumeStatementGoto(); break; } // - // Rule 208: declaration_statement ::= block_declaration + // Rule 210: declaration_statement ::= block_declaration // - case 208: { action.builder. + case 210: { action.builder. consumeStatementDeclarationWithDisambiguation(); break; } // - // Rule 209: declaration_statement ::= function_definition + // Rule 211: declaration_statement ::= function_definition // - case 209: { action.builder. + case 211: { action.builder. consumeStatementDeclaration(); break; } // - // Rule 226: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; - // - case 226: { action.builder. - consumeDeclarationSimple(true); break; - } - - // - // Rule 227: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; - // - case 227: { action.builder. - consumeDeclarationSimple(true); break; - } - - // - // Rule 228: declaration_specifiers ::= simple_declaration_specifiers + // Rule 228: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; // case 228: { action.builder. + consumeDeclarationSimple(true); break; + } + + // + // Rule 229: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; + // + case 229: { action.builder. + consumeDeclarationSimple(true); break; + } + + // + // Rule 230: declaration_specifiers ::= simple_declaration_specifiers + // + case 230: { action.builder. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 229: declaration_specifiers ::= class_declaration_specifiers - // - case 229: { action.builder. - consumeDeclarationSpecifiersComposite(); break; - } - - // - // Rule 230: declaration_specifiers ::= elaborated_declaration_specifiers - // - case 230: { action.builder. - consumeDeclarationSpecifiersComposite(); break; - } - - // - // Rule 231: declaration_specifiers ::= enum_declaration_specifiers + // Rule 231: declaration_specifiers ::= class_declaration_specifiers // case 231: { action.builder. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 232: declaration_specifiers ::= type_name_declaration_specifiers + // Rule 232: declaration_specifiers ::= elaborated_declaration_specifiers // case 232: { action.builder. + consumeDeclarationSpecifiersComposite(); break; + } + + // + // Rule 233: declaration_specifiers ::= enum_declaration_specifiers + // + case 233: { action.builder. + consumeDeclarationSpecifiersComposite(); break; + } + + // + // Rule 234: declaration_specifiers ::= type_name_declaration_specifiers + // + case 234: { action.builder. consumeDeclarationSpecifiersTypeName(); break; } // - // Rule 233: declaration_specifiers_opt ::= $Empty + // Rule 235: declaration_specifiers_opt ::= $Empty // - case 233: { action.builder. + case 235: { action.builder. consumeEmpty(); break; } // - // Rule 238: no_type_declaration_specifier ::= friend + // Rule 240: no_type_declaration_specifier ::= friend // - case 238: { action.builder. + case 240: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 239: no_type_declaration_specifier ::= typedef + // Rule 241: no_type_declaration_specifier ::= typedef // - case 239: { action.builder. + case 241: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 259: storage_class_specifier ::= auto - // - case 259: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 260: storage_class_specifier ::= register - // - case 260: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 261: storage_class_specifier ::= static + // Rule 261: storage_class_specifier ::= auto // case 261: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 262: storage_class_specifier ::= extern + // Rule 262: storage_class_specifier ::= register // case 262: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 263: storage_class_specifier ::= mutable + // Rule 263: storage_class_specifier ::= static // case 263: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 264: function_specifier ::= inline + // Rule 264: storage_class_specifier ::= extern // case 264: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 265: function_specifier ::= virtual + // Rule 265: storage_class_specifier ::= mutable // case 265: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 266: function_specifier ::= explicit + // Rule 266: function_specifier ::= inline // case 266: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 267: simple_type_specifier ::= char + // Rule 267: function_specifier ::= virtual // case 267: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 268: simple_type_specifier ::= wchar_t + // Rule 268: function_specifier ::= explicit // case 268: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 269: simple_type_specifier ::= bool + // Rule 269: simple_type_specifier ::= char // case 269: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 270: simple_type_specifier ::= short + // Rule 270: simple_type_specifier ::= wchar_t // case 270: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 271: simple_type_specifier ::= int + // Rule 271: simple_type_specifier ::= bool // case 271: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 272: simple_type_specifier ::= long + // Rule 272: simple_type_specifier ::= short // case 272: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 273: simple_type_specifier ::= signed + // Rule 273: simple_type_specifier ::= int // case 273: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 274: simple_type_specifier ::= unsigned + // Rule 274: simple_type_specifier ::= long // case 274: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 275: simple_type_specifier ::= float + // Rule 275: simple_type_specifier ::= signed // case 275: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 276: simple_type_specifier ::= double + // Rule 276: simple_type_specifier ::= unsigned // case 276: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 277: simple_type_specifier ::= void + // Rule 277: simple_type_specifier ::= float // case 277: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 280: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name + // Rule 278: simple_type_specifier ::= double // - case 280: { action.builder. - consumeQualifiedId(false); break; + case 278: { action.builder. + consumeDeclSpecToken(); break; } // - // Rule 281: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name + // Rule 279: simple_type_specifier ::= void // - case 281: { action.builder. - consumeQualifiedId(false); break; + case 279: { action.builder. + consumeDeclSpecToken(); break; } // - // Rule 282: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name + // Rule 282: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name // case 282: { action.builder. consumeQualifiedId(false); break; } // - // Rule 283: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name + // Rule 283: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name // case 283: { action.builder. + consumeQualifiedId(false); break; + } + + // + // Rule 284: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name + // + case 284: { action.builder. + consumeQualifiedId(false); break; + } + + // + // Rule 285: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name + // + case 285: { action.builder. consumeQualifiedId(true); break; } // - // Rule 285: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name - // - case 285: { action.builder. - consumeTypeSpecifierElaborated(false); break; - } - - // - // Rule 286: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name - // - case 286: { action.builder. - consumeTypeSpecifierElaborated(true); break; - } - - // - // Rule 287: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name + // Rule 287: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name // case 287: { action.builder. consumeTypeSpecifierElaborated(false); break; } // - // Rule 288: enum_specifier ::= enum { enumerator_list_opt } + // Rule 288: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name // case 288: { action.builder. + consumeTypeSpecifierElaborated(true); break; + } + + // + // Rule 289: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name + // + case 289: { action.builder. + consumeTypeSpecifierElaborated(false); break; + } + + // + // Rule 290: enum_specifier ::= enum { enumerator_list_opt } + // + case 290: { action.builder. consumeTypeSpecifierEnumeration(false); break; } // - // Rule 289: enum_specifier ::= enum identifier_token { enumerator_list_opt } + // Rule 291: enum_specifier ::= enum identifier_token { enumerator_list_opt } // - case 289: { action.builder. + case 291: { action.builder. consumeTypeSpecifierEnumeration(true); break; } // - // Rule 294: enumerator_definition ::= identifier_token + // Rule 296: enumerator_definition ::= identifier_token // - case 294: { action.builder. + case 296: { action.builder. consumeEnumerator(false); break; } // - // Rule 295: enumerator_definition ::= identifier_token = constant_expression + // Rule 297: enumerator_definition ::= identifier_token = constant_expression // - case 295: { action.builder. + case 297: { action.builder. consumeEnumerator(true); break; } // - // Rule 299: named_namespace_definition ::= namespace namespace_name { declaration_seq_opt } + // Rule 301: named_namespace_definition ::= namespace namespace_name { declaration_seq_opt } // - case 299: { action.builder. + case 301: { action.builder. consumeNamespaceDefinition(true); break; } // - // Rule 300: unnamed_namespace_definition ::= namespace { declaration_seq_opt } + // Rule 302: unnamed_namespace_definition ::= namespace { declaration_seq_opt } // - case 300: { action.builder. + case 302: { action.builder. consumeNamespaceDefinition(false); break; } // - // Rule 301: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 303: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; // - case 301: { action.builder. + case 303: { action.builder. consumeNamespaceAliasDefinition(); break; } // - // Rule 302: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; + // Rule 304: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; // - case 302: { action.builder. + case 304: { action.builder. consumeUsingDeclaration(); break; } // - // Rule 303: typename_opt ::= typename + // Rule 305: typename_opt ::= typename // - case 303: { action.builder. + case 305: { action.builder. consumePlaceHolder(); break; } // - // Rule 304: typename_opt ::= $Empty + // Rule 306: typename_opt ::= $Empty // - case 304: { action.builder. + case 306: { action.builder. consumeEmpty(); break; } // - // Rule 305: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 307: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; // - case 305: { action.builder. + case 307: { action.builder. consumeUsingDirective(); break; } // - // Rule 306: asm_definition ::= asm ( stringlit ) ; + // Rule 308: asm_definition ::= asm ( stringlit ) ; // - case 306: { action.builder. + case 308: { action.builder. consumeDeclarationASM(); break; } // - // Rule 307: linkage_specification ::= extern stringlit { declaration_seq_opt } + // Rule 309: linkage_specification ::= extern stringlit { declaration_seq_opt } // - case 307: { action.builder. + case 309: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 308: linkage_specification ::= extern stringlit declaration + // Rule 310: linkage_specification ::= extern stringlit declaration // - case 308: { action.builder. + case 310: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 313: init_declarator_complete ::= init_declarator + // Rule 315: init_declarator_complete ::= init_declarator // - case 313: { action.builder. + case 315: { action.builder. consumeInitDeclaratorComplete(); break; } // - // Rule 315: init_declarator ::= declarator initializer + // Rule 317: init_declarator ::= declarator initializer // - case 315: { action.builder. + case 317: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 317: declarator ::= ptr_operator_seq direct_declarator - // - case 317: { action.builder. - consumeDeclaratorWithPointer(true); break; - } - - // - // Rule 319: function_declarator ::= ptr_operator_seq direct_declarator + // Rule 319: declarator ::= ptr_operator_seq direct_declarator // case 319: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 323: basic_direct_declarator ::= declarator_id_name + // Rule 321: function_declarator ::= ptr_operator_seq direct_declarator // - case 323: { action.builder. - consumeDirectDeclaratorIdentifier(); break; - } - - // - // Rule 324: basic_direct_declarator ::= ( declarator ) - // - case 324: { action.builder. - consumeDirectDeclaratorBracketed(); break; - } - - // - // Rule 325: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt - // - case 325: { action.builder. - consumeDirectDeclaratorFunctionDeclarator(true); break; - } - - // - // Rule 326: array_direct_declarator ::= array_direct_declarator array_modifier - // - case 326: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 327: array_direct_declarator ::= basic_direct_declarator array_modifier - // - case 327: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 328: array_modifier ::= [ constant_expression ] - // - case 328: { action.builder. - consumeDirectDeclaratorArrayModifier(true); break; - } - - // - // Rule 329: array_modifier ::= [ ] - // - case 329: { action.builder. - consumeDirectDeclaratorArrayModifier(false); break; - } - - // - // Rule 330: ptr_operator ::= * cv_qualifier_seq_opt - // - case 330: { action.builder. - consumePointer(); break; - } - - // - // Rule 331: ptr_operator ::= & - // - case 331: { action.builder. - consumeReferenceOperator(); break; - } - - // - // Rule 332: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt - // - case 332: { action.builder. - consumePointerToMember(); break; - } - - // - // Rule 338: cv_qualifier ::= const - // - case 338: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 339: cv_qualifier ::= volatile - // - case 339: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 341: declarator_id_name ::= nested_name_specifier template_opt unqualified_id_name - // - case 341: { action.builder. - consumeQualifiedId(true); break; - } - - // - // Rule 342: type_id ::= type_specifier_seq - // - case 342: { action.builder. - consumeTypeId(false); break; - } - - // - // Rule 343: type_id ::= type_specifier_seq abstract_declarator - // - case 343: { action.builder. - consumeTypeId(true); break; - } - - // - // Rule 346: abstract_declarator ::= ptr_operator_seq - // - case 346: { action.builder. - consumeDeclaratorWithPointer(false); break; - } - - // - // Rule 347: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator - // - case 347: { action.builder. + case 321: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 351: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 325: basic_direct_declarator ::= declarator_id_name // - case 351: { action.builder. + case 325: { action.builder. + consumeDirectDeclaratorIdentifier(); break; + } + + // + // Rule 326: basic_direct_declarator ::= ( declarator ) + // + case 326: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 352: basic_direct_abstract_declarator ::= ( ) + // Rule 327: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 352: { action.builder. - consumeAbstractDeclaratorEmpty(); break; - } - - // - // Rule 353: array_direct_abstract_declarator ::= array_modifier - // - case 353: { action.builder. - consumeDirectDeclaratorArrayDeclarator(false); break; - } - - // - // Rule 354: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier - // - case 354: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 355: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier - // - case 355: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 356: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt - // - case 356: { action.builder. + case 327: { action.builder. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 357: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 328: array_direct_declarator ::= array_direct_declarator array_modifier + // + case 328: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 329: array_direct_declarator ::= basic_direct_declarator array_modifier + // + case 329: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 330: array_modifier ::= [ constant_expression ] + // + case 330: { action.builder. + consumeDirectDeclaratorArrayModifier(true); break; + } + + // + // Rule 331: array_modifier ::= [ ] + // + case 331: { action.builder. + consumeDirectDeclaratorArrayModifier(false); break; + } + + // + // Rule 332: ptr_operator ::= * cv_qualifier_seq_opt + // + case 332: { action.builder. + consumePointer(); break; + } + + // + // Rule 333: ptr_operator ::= & + // + case 333: { action.builder. + consumeReferenceOperator(); break; + } + + // + // Rule 334: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt + // + case 334: { action.builder. + consumePointerToMember(); break; + } + + // + // Rule 340: cv_qualifier ::= const + // + case 340: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 341: cv_qualifier ::= volatile + // + case 341: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 343: declarator_id_name ::= nested_name_specifier template_opt unqualified_id_name + // + case 343: { action.builder. + consumeQualifiedId(true); break; + } + + // + // Rule 344: type_id ::= type_specifier_seq + // + case 344: { action.builder. + consumeTypeId(false); break; + } + + // + // Rule 345: type_id ::= type_specifier_seq abstract_declarator + // + case 345: { action.builder. + consumeTypeId(true); break; + } + + // + // Rule 348: abstract_declarator ::= ptr_operator_seq + // + case 348: { action.builder. + consumeDeclaratorWithPointer(false); break; + } + + // + // Rule 349: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator + // + case 349: { action.builder. + consumeDeclaratorWithPointer(true); break; + } + + // + // Rule 353: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // + case 353: { action.builder. + consumeDirectDeclaratorBracketed(); break; + } + + // + // Rule 354: basic_direct_abstract_declarator ::= ( ) + // + case 354: { action.builder. + consumeAbstractDeclaratorEmpty(); break; + } + + // + // Rule 355: array_direct_abstract_declarator ::= array_modifier + // + case 355: { action.builder. + consumeDirectDeclaratorArrayDeclarator(false); break; + } + + // + // Rule 356: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // + case 356: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 357: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier // case 357: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 358: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // + case 358: { action.builder. + consumeDirectDeclaratorFunctionDeclarator(true); break; + } + + // + // Rule 359: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // + case 359: { action.builder. consumeDirectDeclaratorFunctionDeclarator(false); break; } // - // Rule 358: parameter_declaration_clause ::= parameter_declaration_list_opt ... - // - case 358: { action.builder. - consumePlaceHolder(); break; - } - - // - // Rule 359: parameter_declaration_clause ::= parameter_declaration_list_opt - // - case 359: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 360: parameter_declaration_clause ::= parameter_declaration_list , ... + // Rule 360: parameter_declaration_clause ::= parameter_declaration_list_opt ... // case 360: { action.builder. consumePlaceHolder(); break; } // - // Rule 366: abstract_declarator_opt ::= $Empty + // Rule 361: parameter_declaration_clause ::= parameter_declaration_list_opt // - case 366: { action.builder. + case 361: { action.builder. consumeEmpty(); break; } // - // Rule 367: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // Rule 362: parameter_declaration_clause ::= parameter_declaration_list , ... // - case 367: { action.builder. + case 362: { action.builder. + consumePlaceHolder(); break; + } + + // + // Rule 368: abstract_declarator_opt ::= $Empty + // + case 368: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 369: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // + case 369: { action.builder. consumeParameterDeclaration(); break; } // - // Rule 368: parameter_declaration ::= declaration_specifiers + // Rule 370: parameter_declaration ::= declaration_specifiers // - case 368: { action.builder. + case 370: { action.builder. consumeParameterDeclarationWithoutDeclarator(); break; } // - // Rule 370: parameter_init_declarator ::= declarator = parameter_initializer - // - case 370: { action.builder. - consumeDeclaratorWithInitializer(true); break; - } - - // - // Rule 372: parameter_init_declarator ::= abstract_declarator = parameter_initializer + // Rule 372: parameter_init_declarator ::= declarator = parameter_initializer // case 372: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 373: parameter_init_declarator ::= = parameter_initializer + // Rule 374: parameter_init_declarator ::= abstract_declarator = parameter_initializer // - case 373: { action.builder. + case 374: { action.builder. + consumeDeclaratorWithInitializer(true); break; + } + + // + // Rule 375: parameter_init_declarator ::= = parameter_initializer + // + case 375: { action.builder. consumeDeclaratorWithInitializer(false); break; } // - // Rule 374: parameter_initializer ::= assignment_expression + // Rule 376: parameter_initializer ::= assignment_expression // - case 374: { action.builder. + case 376: { action.builder. consumeInitializer(); break; } // - // Rule 375: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body + // Rule 377: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body // - case 375: { action.builder. + case 377: { action.builder. consumeFunctionDefinition(false); break; } // - // Rule 376: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq + // Rule 378: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq // - case 376: { action.builder. + case 378: { action.builder. consumeFunctionDefinition(true); break; } // - // Rule 379: initializer ::= ( expression_list ) + // Rule 381: initializer ::= ( expression_list ) // - case 379: { action.builder. + case 381: { action.builder. consumeInitializerConstructor(); break; } // - // Rule 380: initializer_clause ::= assignment_expression + // Rule 382: initializer_clause ::= assignment_expression // - case 380: { action.builder. + case 382: { action.builder. consumeInitializer(); break; } // - // Rule 381: initializer_clause ::= { initializer_list , } - // - case 381: { action.builder. - consumeInitializerList(); break; - } - - // - // Rule 382: initializer_clause ::= { initializer_list } - // - case 382: { action.builder. - consumeInitializerList(); break; - } - - // - // Rule 383: initializer_clause ::= { } + // Rule 383: initializer_clause ::= { initializer_list , } // case 383: { action.builder. consumeInitializerList(); break; } // - // Rule 388: class_specifier ::= class_head { member_declaration_list_opt } + // Rule 384: initializer_clause ::= { initializer_list } // - case 388: { action.builder. - consumeClassSpecifier(); break; + case 384: { action.builder. + consumeInitializerList(); break; } // - // Rule 389: class_specifier ::= class_head EOC member_declaration_list_opt } + // Rule 385: initializer_clause ::= { } // - case 389: { action.builder. - consumeClassSpecifier(); break; + case 385: { action.builder. + consumeInitializerList(); break; } // - // Rule 390: class_head ::= class_keyword identifier_name_opt base_clause_opt + // Rule 390: class_specifier ::= class_head { member_declaration_list_opt } // case 390: { action.builder. - consumeClassHead(false); break; + consumeClassSpecifier(); break; } // - // Rule 391: class_head ::= class_keyword template_id_name base_clause_opt + // Rule 391: class_head ::= class_keyword identifier_name_opt base_clause_opt // case 391: { action.builder. consumeClassHead(false); break; } // - // Rule 392: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt + // Rule 392: class_head ::= class_keyword template_id_name base_clause_opt // case 392: { action.builder. - consumeClassHead(true); break; + consumeClassHead(false); break; } // - // Rule 393: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt + // Rule 393: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt // case 393: { action.builder. consumeClassHead(true); break; } // - // Rule 395: identifier_name_opt ::= $Empty + // Rule 394: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt // - case 395: { action.builder. + case 394: { action.builder. + consumeClassHead(true); break; + } + + // + // Rule 396: identifier_name_opt ::= $Empty + // + case 396: { action.builder. consumeEmpty(); break; } // - // Rule 399: visibility_label ::= access_specifier_keyword : + // Rule 400: visibility_label ::= access_specifier_keyword : // - case 399: { action.builder. + case 400: { action.builder. consumeVisibilityLabel(); break; } // - // Rule 400: member_declaration ::= declaration_specifiers_opt member_declarator_list ; + // Rule 401: member_declaration ::= declaration_specifiers_opt member_declarator_list ; // - case 400: { action.builder. + case 401: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 401: member_declaration ::= declaration_specifiers_opt ; + // Rule 402: member_declaration ::= declaration_specifiers_opt ; // - case 401: { action.builder. + case 402: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 404: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; + // Rule 405: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; // - case 404: { action.builder. + case 405: { action.builder. consumeMemberDeclarationQualifiedId(); break; } // - // Rule 410: member_declaration ::= ERROR_TOKEN + // Rule 411: member_declaration ::= ERROR_TOKEN // - case 410: { action.builder. + case 411: { action.builder. consumeDeclarationProblem(); break; } // - // Rule 418: member_declarator ::= declarator constant_initializer + // Rule 419: member_declarator ::= declarator constant_initializer // - case 418: { action.builder. + case 419: { action.builder. consumeMemberDeclaratorWithInitializer(); break; } // - // Rule 419: member_declarator ::= bit_field_declarator : constant_expression + // Rule 420: member_declarator ::= bit_field_declarator : constant_expression // - case 419: { action.builder. + case 420: { action.builder. consumeBitField(true); break; } // - // Rule 420: member_declarator ::= : constant_expression + // Rule 421: member_declarator ::= : constant_expression // - case 420: { action.builder. + case 421: { action.builder. consumeBitField(false); break; } // - // Rule 421: bit_field_declarator ::= identifier_name + // Rule 422: bit_field_declarator ::= identifier_name // - case 421: { action.builder. + case 422: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 422: constant_initializer ::= = constant_expression + // Rule 423: constant_initializer ::= = constant_expression // - case 422: { action.builder. + case 423: { action.builder. consumeInitializer(); break; } // - // Rule 428: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 429: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 428: { action.builder. + case 429: { action.builder. consumeBaseSpecifier(false, false); break; } // - // Rule 429: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name - // - case 429: { action.builder. - consumeBaseSpecifier(true, true); break; - } - - // - // Rule 430: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name + // Rule 430: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name // case 430: { action.builder. consumeBaseSpecifier(true, true); break; } // - // Rule 431: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name + // Rule 431: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name // case 431: { action.builder. + consumeBaseSpecifier(true, true); break; + } + + // + // Rule 432: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name + // + case 432: { action.builder. consumeBaseSpecifier(true, false); break; } // - // Rule 432: access_specifier_keyword ::= private - // - case 432: { action.builder. - consumeAccessKeywordToken(); break; - } - - // - // Rule 433: access_specifier_keyword ::= protected + // Rule 433: access_specifier_keyword ::= private // case 433: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 434: access_specifier_keyword ::= public + // Rule 434: access_specifier_keyword ::= protected // case 434: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 436: access_specifier_keyword_opt ::= $Empty + // Rule 435: access_specifier_keyword ::= public // - case 436: { action.builder. + case 435: { action.builder. + consumeAccessKeywordToken(); break; + } + + // + // Rule 437: access_specifier_keyword_opt ::= $Empty + // + case 437: { action.builder. consumeEmpty(); break; } // - // Rule 438: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > + // Rule 439: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > // - case 438: { action.builder. + case 439: { action.builder. consumeTemplateId(); break; } // - // Rule 439: conversion_function_id ::= operator conversion_type_id + // Rule 440: conversion_function_id ::= operator conversion_type_id // - case 439: { action.builder. + case 440: { action.builder. consumeConversionName(); break; } // - // Rule 440: conversion_type_id ::= type_specifier_seq conversion_declarator + // Rule 441: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 440: { action.builder. + case 441: { action.builder. consumeTypeId(true); break; } // - // Rule 441: conversion_type_id ::= type_specifier_seq + // Rule 442: conversion_type_id ::= type_specifier_seq // - case 441: { action.builder. + case 442: { action.builder. consumeTypeId(false); break; } // - // Rule 442: conversion_declarator ::= ptr_operator_seq + // Rule 443: conversion_declarator ::= ptr_operator_seq // - case 442: { action.builder. + case 443: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 448: mem_initializer ::= mem_initializer_name ( expression_list_opt ) + // Rule 449: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 448: { action.builder. + case 449: { action.builder. consumeConstructorChainInitializer(); break; } // - // Rule 449: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 450: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name // - case 449: { action.builder. + case 450: { action.builder. consumeQualifiedId(false); break; } // - // Rule 452: operator_function_id_name ::= operator_id_name < template_argument_list_opt > + // Rule 453: operator_function_id_name ::= operator_id_name < template_argument_list_opt > // - case 452: { action.builder. + case 453: { action.builder. consumeTemplateId(); break; } // - // Rule 453: operator_id_name ::= operator overloadable_operator + // Rule 454: operator_id_name ::= operator overloadable_operator // - case 453: { action.builder. + case 454: { action.builder. consumeOperatorName(); break; } // - // Rule 496: template_declaration ::= export_opt template < template_parameter_list > declaration + // Rule 497: template_declaration ::= export_opt template < template_parameter_list > declaration // - case 496: { action.builder. + case 497: { action.builder. consumeTemplateDeclaration(); break; } // - // Rule 497: export_opt ::= export + // Rule 498: export_opt ::= export // - case 497: { action.builder. + case 498: { action.builder. consumePlaceHolder(); break; } // - // Rule 498: export_opt ::= $Empty + // Rule 499: export_opt ::= $Empty // - case 498: { action.builder. + case 499: { action.builder. consumeEmpty(); break; } // - // Rule 502: template_parameter ::= parameter_declaration + // Rule 503: template_parameter ::= parameter_declaration // - case 502: { action.builder. + case 503: { action.builder. consumeTemplateParamterDeclaration(); break; } // - // Rule 503: type_parameter ::= class identifier_name_opt - // - case 503: { action.builder. - consumeSimpleTypeTemplateParameter(false); break; - } - - // - // Rule 504: type_parameter ::= class identifier_name_opt = type_id + // Rule 504: type_parameter ::= class identifier_name_opt // 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 + // Rule 505: type_parameter ::= class identifier_name_opt = type_id // - case 506: { action.builder. + case 505: { action.builder. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 507: type_parameter ::= template < template_parameter_list > class identifier_name_opt + // 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 508: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression + // Rule 509: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression // - case 508: { action.builder. + case 509: { action.builder. consumeTemplatedTypeTemplateParameter(true); break; } // - // Rule 509: template_id_name ::= identifier_name < template_argument_list_opt > + // Rule 510: template_id_name ::= identifier_name < template_argument_list_opt > // - case 509: { action.builder. + case 510: { action.builder. consumeTemplateId(); break; } // - // Rule 515: template_argument ::= type_id + // Rule 516: template_argument ::= type_id // - case 515: { action.builder. + case 516: { action.builder. consumeTemplateArgumentTypeId(); break; } // - // Rule 516: explicit_instantiation ::= template declaration + // Rule 517: explicit_instantiation ::= template declaration // - case 516: { action.builder. + case 517: { action.builder. consumeTemplateExplicitInstantiation(); break; } // - // Rule 517: explicit_specialization ::= template < > declaration + // Rule 518: explicit_specialization ::= template < > declaration // - case 517: { action.builder. + case 518: { action.builder. consumeTemplateExplicitSpecialization(); break; } // - // Rule 518: try_block ::= try compound_statement handler_seq + // Rule 519: try_block ::= try compound_statement handler_seq // - case 518: { action.builder. + case 519: { action.builder. consumeStatementTryBlock(); break; } // - // Rule 521: handler ::= catch ( exception_declaration ) compound_statement + // Rule 522: handler ::= catch ( exception_declaration ) compound_statement // - case 521: { action.builder. + case 522: { action.builder. consumeStatementCatchHandler(false); break; } // - // Rule 522: handler ::= catch ( ... ) compound_statement + // Rule 523: handler ::= catch ( ... ) compound_statement // - case 522: { action.builder. + case 523: { action.builder. consumeStatementCatchHandler(true); break; } // - // Rule 523: exception_declaration ::= type_specifier_seq declarator - // - case 523: { action.builder. - consumeDeclarationSimple(true); break; - } - - // - // Rule 524: exception_declaration ::= type_specifier_seq abstract_declarator + // Rule 524: exception_declaration ::= type_specifier_seq declarator // case 524: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 525: exception_declaration ::= type_specifier_seq + // Rule 525: exception_declaration ::= type_specifier_seq abstract_declarator // case 525: { action.builder. + consumeDeclarationSimple(true); break; + } + + // + // Rule 526: exception_declaration ::= type_specifier_seq + // + case 526: { action.builder. consumeDeclarationSimple(false); break; } 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 0ad545abc82..8509973c4f4 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,500 +38,493 @@ 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,0,1,2,1,1,1,1,1,1, - 1,1,1,1,1,1,1,3,1,1, - 1,1,1,1,1,1,2,2,1,1, - 0,1,0,4,2,2,2,3,2,3, - 2,2,1,0,1,1,4,4,4,8, - 8,3,3,4,4,3,3,2,2,7, - 7,7,7,4,4,5,6,3,2,2, - 1,1,1,2,2,2,2,2,2,2, - 2,2,4,7,9,3,0,1,2,2, - 1,2,3,4,1,0,3,1,0,3, - 5,1,4,1,3,3,1,3,3,3, - 1,3,3,1,3,3,1,3,3,3, - 3,1,3,3,1,3,1,3,1,3, - 1,3,1,3,1,5,1,2,1,1, - 3,3,3,3,3,3,3,3,3,3, - 3,1,2,1,3,1,0,1,0,1, - 1,0,1,1,1,1,1,1,1,1, - 1,3,3,2,2,1,4,2,1,2, - 5,7,5,1,4,1,0,5,7,8, - 1,1,2,2,3,2,3,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,2,1,0,4,4,2,2,2, - 2,2,0,1,1,1,1,1,1,1, - 2,1,2,2,2,1,1,2,2,1, - 2,2,1,2,2,1,2,2,1,1, - 1,1,1,1,1,1,1,1,1,1, + 1,1,1,0,1,2,1,1,1,1, 1,1,1,1,1,1,1,1,1,3, - 4,4,5,2,4,5,4,5,6,1, - 3,1,0,1,3,1,1,1,6,5, - 7,6,1,0,6,5,6,4,1,3, - 1,0,1,1,2,1,3,1,3,1, - 1,1,1,3,9,2,2,3,2,3, - 1,5,1,2,2,1,0,1,1,1, - 4,1,2,1,1,2,3,1,1,1, - 3,2,1,2,2,9,8,2,1,3, - 1,3,1,0,1,0,2,1,1,3, - 1,3,2,1,5,8,1,2,3,1, - 5,4,3,1,3,1,1,5,5,4, - 4,5,5,1,0,1,1,1,2,4, - 2,2,1,5,1,1,1,1,1,1, - 1,2,1,0,1,3,1,2,3,2, - 1,2,2,1,0,1,3,3,5,5, - 4,1,1,1,1,0,1,5,2,2, - 1,2,2,1,0,1,3,4,3,1, - 1,5,2,1,1,3,3,1,1,1, + 1,1,1,1,1,1,1,1,2,2, + 1,1,0,1,0,4,2,2,2,3, + 2,3,2,2,1,0,1,1,4,4, + 4,8,8,3,3,4,4,3,3,2, + 2,7,7,7,7,4,4,5,6,3, + 2,2,1,1,1,2,2,2,2,2, + 2,2,2,2,4,7,9,3,0,1, + 2,2,1,2,3,4,1,0,3,1, + 0,3,5,1,4,1,3,3,1,3, + 3,3,1,3,3,1,3,3,1,3, + 3,3,3,1,3,3,1,3,1,3, + 1,3,1,3,1,3,1,5,1,2, + 1,1,3,3,3,3,3,3,3,3, + 3,3,3,1,2,1,3,1,0,1, + 0,1,1,0,1,1,1,1,1,1, + 1,1,1,3,3,2,2,1,4,2, + 1,2,5,7,5,1,4,1,0,5, + 7,8,1,1,2,2,3,2,3,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,2,1,0,4,4,2, + 2,2,2,2,0,1,1,1,1,1, + 1,1,2,1,2,2,2,1,1,2, + 2,1,2,2,1,2,2,1,2,2, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,3,4,4,5,2,4,5,4,5, + 6,1,3,1,0,1,3,1,1,1, + 6,5,7,6,1,0,6,5,6,4, + 1,3,1,0,1,1,2,1,3,1, + 3,1,1,1,1,3,9,2,2,3, + 2,3,1,5,1,2,2,1,0,1, + 1,1,4,1,2,1,1,2,3,1, + 1,1,3,2,1,2,2,9,8,2, + 1,3,1,3,1,0,1,0,2,1, + 1,3,1,3,2,1,5,8,1,2, + 3,1,5,4,3,1,3,1,1,5, + 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,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,-240,0,0,0,-63,0,0,0,0, + 1,1,1,1,2,2,7,1,0,1, + 3,1,1,2,4,2,4,7,9,5, + 1,3,1,0,1,1,2,4,4,1, + 2,5,5,3,3,1,4,3,1,0, + 1,3,-237,0,0,0,-62,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-2,0,0,0,0,0,0, - 0,0,-4,0,-7,0,0,0,0,-21, - 0,0,0,0,0,-9,-29,0,0,0, - 0,-82,0,0,0,0,0,-267,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-14, - 0,0,0,0,0,0,0,0,0,0, - -62,-98,-310,-110,0,0,-27,0,0,0, - 0,0,0,0,0,-162,0,0,0,-17, - -12,0,0,0,0,0,0,0,0,0, - 0,0,0,-165,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-93,0,0,0,0, - 0,0,-105,0,0,0,0,0,0,0, + 0,0,0,0,-76,0,0,0,0,0, + 0,0,0,-96,0,-12,0,0,0,0, + 0,-13,0,0,0,-61,0,-29,0,0, + 0,0,-81,0,0,0,0,0,-2,-264, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-315,0,0,0,-202, - 0,0,0,0,0,0,-443,0,0,0, - 0,-286,0,0,0,-77,0,-118,0,0, + 0,-66,0,0,0,0,0,0,0,0, + 0,0,-108,0,0,-3,-17,0,-10,0, + 0,0,0,0,0,0,0,-25,0,0, + 0,0,0,-30,0,0,0,-4,0,0, + 0,0,0,0,0,-243,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-475, + 0,-39,0,0,0,0,0,0,0,0, + 0,0,-103,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-27,0,0,0,0, + -98,-40,0,0,-7,0,0,-442,0,0, + 0,-9,0,-35,0,0,0,0,0,-116, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-45,0,0,0,0, - 0,-25,0,0,0,0,0,0,0,0, - 0,0,0,-246,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-24,0,0,-31,-122,0,0,0, + 0,0,-14,0,0,0,0,0,0,0, + 0,0,0,0,-137,-75,0,0,0,0, + 0,0,0,0,0,-244,0,0,0,0, + 0,0,0,0,0,0,0,0,-46,-24, + 0,-31,0,0,-102,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,-117, - 0,0,0,-331,0,0,0,0,0,0, - -30,0,0,0,-39,-242,0,-32,0,0, - 0,-282,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-32,0, + 0,0,0,0,0,0,-187,0,0,-125, + 0,0,-159,0,0,0,-89,0,0,0, + 0,0,0,-34,-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,-34,0,-40,0,0,0,0,0, - -13,0,0,-109,0,0,-36,-314,0,0, - 0,-48,0,0,0,0,0,-104,0,0, - 0,-215,-247,0,0,0,-219,0,0,0, - 0,0,0,0,0,0,0,0,0,-3, - -289,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-41,0,-53,0,0, + 0,-97,0,0,0,0,-64,-36,0,-283, + 0,0,0,-47,0,0,0,0,0,0, + 0,0,-520,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-76,0,0,0,0,-46,-47, - 0,0,0,0,-148,0,0,0,-430,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-37, - 0,0,0,0,0,0,0,0,0,0, - -264,0,0,0,-38,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-72,0,0,0,0,0,0,0, - 0,-114,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-41,0,0,0,-10,0, - 0,0,0,-59,0,0,0,-107,0,0, - 0,-131,0,0,-394,0,0,0,-197,0, + -106,-37,-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, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-64,-42,-132,0,0, - 0,0,-67,-51,-292,0,0,0,-16,0, + -221,0,0,0,0,-57,0,0,0,-38, + -65,-429,0,0,0,-239,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-145,0,0, - 0,0,0,0,0,0,-383,0,0,0, + 0,0,0,0,-157,0,0,0,0,0, + 0,0,0,0,-261,0,0,0,-42,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,-112,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,-215,0,0, + 0,0,0,0,0,0,0,-403,0,0, + -135,0,0,-69,0,0,0,0,-52,-194, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-53,0,-49, - 0,0,0,0,0,-52,0,0,-119,0, - -99,0,0,0,0,0,0,-384,0,0, + 0,-45,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-48,0,0, + 0,0,-132,0,0,0,0,-59,-289,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-71,0,0,0,0,-67,0,0,0, + -382,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-72,0,0,0,-328,0,0, + 0,0,0,-21,0,-207,0,0,0,-371, + 0,0,-383,0,0,0,-359,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-73,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-92, + -212,-118,0,0,-110,0,0,0,-78,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-79,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-182,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,-446,0,0,0,0,0, + 0,0,0,0,-104,0,0,0,-145,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,-134,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-136, + 0,0,0,0,-267,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,0,0,0,-144,0,-409,0,0, + 0,0,-375,0,0,0,-268,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-148,0,-459, + 0,0,0,0,-149,-233,0,0,-269,0, + 0,0,-501,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,-152, + 0,-511,0,0,0,-153,-154,-155,0,0, + -270,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-156,0,-521,0,0,0,-158,-171,-172, + 0,0,-271,0,0,0,-502,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,-51,0,0,0,0, + 0,0,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,0,0,0,-54,0,0, + 0,0,0,0,0,0,-273,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,0,0,0,-56, + 0,0,0,0,-176,0,0,0,-274,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,0,-179, + 0,-60,0,0,0,0,-180,-181,0,0, + -275,0,0,0,-183,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-184,0,0,0,0,0,0,0, + 0,-188,0,-70,0,0,0,0,-190,-192, + 0,0,-276,0,0,0,-198,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-200,0,0,0,0,0, + 0,0,0,-202,0,-74,0,0,0,0, + -204,-205,0,0,-378,0,0,0,-206,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-214,0,0,0, + 0,0,0,0,0,-234,0,-77,0,0, + 0,-242,-285,-290,0,0,-414,0,0,0, + -291,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-298,0,-80, + 0,0,0,0,-119,-299,0,0,-504,0, + 0,0,-191,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -330,0,0,0,0,0,0,0,0,-303, + 0,-82,0,0,0,0,-305,-131,0,0, + -220,0,0,0,-318,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-319,0,0,0,0,0,0,0, + 0,-339,0,0,0,0,0,-304,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -320,0,0,0,-335,0,0,0,-321,0, + 0,0,0,0,0,0,0,-147,-362,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-499, + 0,-325,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,-326,0,0, + 0,0,0,0,0,0,-515,0,0,0, + 0,0,-337,0,0,0,-327,0,0,0, + 0,0,0,0,0,-209,-392,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-340,0,-341, + 0,0,0,-498,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-342,0,0,0,0,0, + -91,0,0,0,-343,-193,0,0,0,0, + 0,-208,0,0,-278,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-83,0,-344,0,0, + -129,-265,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-345,0,0,0,0,0,0, + 0,0,-415,0,-263,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-201,0,0,0, + 0,0,0,0,0,-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,0,0,0,-262,0,0,0,-224,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-346,0,0,0, + 0,0,-254,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,-255, + 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,-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,-257,0,0,0,-488,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-225,0,0,0,0, + -281,-348,-130,-133,0,-121,0,0,0,-349, + -350,0,0,0,0,0,-86,-90,0,0, + 0,-314,0,-101,0,0,0,-240,-26,0, + 0,0,-99,0,-105,0,0,0,0,0, + 0,0,0,0,-216,-140,0,0,0,0, + 0,0,0,0,-360,-211,0,0,0,-210, + 0,-5,0,0,0,0,0,-63,0,-351, + -300,0,0,0,0,0,0,0,-352,-235, + 0,0,0,0,0,0,0,0,-236,0, + 0,-107,0,0,-146,0,0,-353,0,0, + 0,0,0,0,0,0,0,0,0,-450, + 0,0,0,0,0,-19,0,0,0,0, + 0,0,0,0,-354,0,0,0,0,0, + 0,0,-355,0,0,0,0,0,0,0, + 0,0,0,-246,0,-356,0,0,0,0, + 0,0,0,0,0,0,-357,0,0,0, + 0,0,-28,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-471,-162,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-143,0,0,0,0,0,-219,0,0, + 0,0,-405,0,-379,0,0,-185,0,0, + 0,0,-302,-203,0,0,0,0,0,0, + 0,0,0,0,0,0,-358,0,-258,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-161,0,0,0,-361,-412, + 0,0,0,-458,0,0,-363,0,0,-223, + 0,0,0,0,0,0,0,0,-513,0, + -122,-365,-366,-294,0,0,0,0,-151,0, + -88,0,0,-309,0,0,0,0,0,0, + 0,0,0,-367,0,0,0,0,0,0, + -259,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,-115,-292,0,0, + 0,0,0,0,0,0,0,0,-68,0, + 0,0,-364,0,0,0,0,0,0,0, + -15,0,0,0,0,0,-370,-141,0,-380, + 0,0,0,0,0,0,-369,-398,-16,-373, + 0,0,0,0,0,0,0,0,-94,0, + 0,0,0,0,0,0,0,0,0,-95, + 0,0,0,0,0,0,0,0,-186,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-399,0,0, + -111,-419,-160,-400,0,0,0,0,0,0, + 0,0,-402,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-311, + 0,0,0,0,0,0,0,0,-397,0, + 0,0,0,0,-401,-416,0,0,0,0, + 0,0,0,0,0,-481,-417,0,-418,0, + 0,0,-109,0,0,0,0,0,0,0, + 0,0,0,-423,-123,-100,0,0,0,0, + -313,0,0,0,0,0,0,0,0,-443, + 0,0,0,0,0,-422,0,0,-427,0, + -445,0,0,0,0,0,0,0,0,-483, + -331,0,-374,0,0,0,0,0,0,0, + 0,0,-431,-195,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-18,0,0,-372, + 0,0,-316,0,0,0,0,0,0,0, + 0,0,0,-487,-227,0,-440,0,0,0, + 0,-6,0,0,0,0,-441,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-448,0,0, + 0,0,0,0,0,0,-447,0,0,0, + 0,0,0,0,0,0,0,-516,-196,0, + -280,0,0,0,0,0,-310,-199,0,0, + 0,0,0,0,0,0,-389,0,0,0, + 0,-456,0,0,0,0,0,0,0,0, + 0,-449,0,0,0,0,0,-506,-332,0, + -460,0,0,0,0,0,0,0,0,0, + 0,-522,0,0,0,0,-496,0,-301,0, + 0,0,0,0,0,0,0,0,0,-425, + 0,0,0,0,-472,-476,0,0,0,0, + 0,0,0,0,0,-469,0,0,0,0, + 0,-413,-1,0,-500,-218,0,0,0,0, + 0,0,0,0,0,0,-288,0,-384,-477, + 0,0,0,0,0,-333,0,0,0,-482, + -489,0,0,0,0,0,0,-426,-495,-505, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,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,-510,0, + 0,-249,0,0,0,-317,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-297,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-117,0,0,0,0,0,-282,0, + 0,-484,0,0,-315,0,-323,-232,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,-408,0,0,0,0,0, + 0,0,0,-503,0,0,0,0,0,0, + 0,0,0,0,-251,0,0,0,-507,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-518,0,0,-245, + -334,-87,0,0,-338,0,0,0,-428,-474, + 0,-20,0,0,0,-22,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -377,0,0,-430,0,0,0,0,-312,0, + -124,-454,-434,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-127,0,0,0,0,0,0, + 0,-396,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-277,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-410, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-435, + 0,0,0,0,0,0,-252,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-284,0, + 0,0,0,-490,0,0,-197,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,-385,0,0,0,0,0,0, + 0,0,0,0,-163,0,0,0,-444,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-11,0,-451,0, + 0,-58,0,0,0,0,-453,-455,-457,0, + 0,0,0,-393,0,0,0,0,0,0, + 0,0,0,-463,-462,0,0,0,0,0, + -432,0,0,0,0,0,0,0,0,0, + -464,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,-480,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,-491, + -465,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,-238,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,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,-324,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,-466,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,0,-420,-295,0,-478, + 0,0,-222,-479,-8,-493,-494,0,0,-433, + 0,0,0,-512,-287,0,-307,0,0,0, + 0,0,-43,0,0,0,0,-436,0,0, + 0,0,0,-293,0,0,0,0,0,0, + 0,-228,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-508,0,-514,0,0,0,0,0, + 0,0,0,0,0,0,-421,0,0,-517, + 0,0,0,-84,0,0,-437,0,0,0, + 0,-519,0,0,0,0,0,0,0,0, + -44,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-381,0,0,-85,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-126,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-49,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-296,0, + 0,0,0,0,0,0,0,0,0,-461, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-113,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-390,0,0, + 0,0,0,0,0,0,0,0,-492,-23, + 0,0,0,0,0,0,-93,0,0,-438, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-439, + 0,-467,0,0,0,0,0,0,0,-229, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-231,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-404,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-473,0,0,0,0,0,0,0,0, + 0,0,0,-452,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-411,0,0,0,-138,0,0,0,0, 0,0,0,0,0,0,0,0,0,-139, 0,0,0,0,0,0,0,0,0,0, - -55,0,0,0,0,-54,0,0,0,-112, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-142,-55,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-128,0, + 0,0,0,-189,0,0,0,-217,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-57,0,0,0,0,0,-185,0, + 0,-308,0,0,0,-386,0,0,0,0, + -329,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-336,0,0,0,0,0,-33, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-60, - 0,-410,0,0,0,0,-68,0,0,0, - -190,0,0,-236,0,-73,-269,0,0,0, + 0,0,0,0,0,0,-394,0,0,0, + 0,0,0,0,0,-395,0,0,0,0, + 0,0,0,0,0,-509,0,0,0,0, + 0,-226,-241,0,0,0,0,0,0,0, + 0,0,0,0,-230,0,0,0,0,0, + 0,0,0,0,0,0,0,-424,0,-387, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-378,0, - 0,0,0,0,0,0,0,-74,0,-225, - 0,0,0,-120,0,-79,0,0,-270,0, + 0,0,0,0,0,0,0,0,-388,0, 0,0,0,0,0,0,0,0,0,0, + 0,-407,0,-523,0,0,0,0,0,0, + 0,0,0,0,0,-468,-486,-497,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-80, - 0,-296,0,0,0,-121,0,0,0,0, - -271,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-309,0,0,0,0,0,0,0, - 0,0,0,-61,0,0,0,0,0,-116, - 0,0,-272,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-502,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-194, - 0,0,0,0,-273,0,0,0,-416,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-136,0,0,0, - 0,0,0,0,0,-138,0,-78,0,0, - 0,-224,0,0,0,0,-274,0,0,0, - -147,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-196, - 0,0,0,-404,0,0,0,0,-275,0, - 0,0,-489,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-71,0,0,0,0,0,-151,0,0, - -276,0,0,0,-152,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-153,0,0,0,0,0,0,0, - 0,0,0,-75,0,0,0,0,-373,0, - 0,0,-277,0,0,0,-155,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-503,0,0,0,0,0, - 0,0,0,0,0,-81,0,0,0,0, - -377,0,0,0,-278,0,0,0,-156,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-157,0,0,0, - 0,0,0,0,0,-158,0,-83,0,0, - 0,0,-159,0,0,0,-279,0,0,0, - -161,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-174,0, - 0,0,0,0,0,0,0,-175,0,-84, - 0,0,0,0,-176,-177,0,0,-380,0, - 0,0,-178,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -179,0,0,0,0,0,0,0,0,-180, - 0,-87,0,0,0,0,-181,-182,0,0, - -415,0,0,0,-362,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-183,0,0,0,0,0,0,0, - 0,-184,0,-89,0,0,0,0,-186,-187, - 0,0,-505,0,0,0,-243,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-191,0,0,0,0,0, - 0,0,0,-127,0,-96,0,0,0,0, - -65,-476,0,0,-223,0,0,0,-193,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-195,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-307,0,0,0,-201,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-203,0,0,0,-338,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-365,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-205,0,-207,0,0,0,-392,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -208,0,0,0,0,0,0,0,0,-472, - 0,-209,0,0,0,-340,0,0,0,-204, - 0,0,0,0,0,0,0,0,-393,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-217, - 0,-237,0,0,0,-499,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-245,0,0, - 0,0,0,0,0,0,-333,0,-288,0, - 0,0,-92,0,0,0,-293,-294,0,0, - 0,0,0,-133,-301,-281,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-142,0,0, - 0,0,0,0,0,0,-97,0,0,0, - 0,0,-268,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-266,0,0,0,-238, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 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,-302,0, - 0,0,0,0,0,-265,0,0,0,-306, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-308,0,0, - 0,0,0,-257,0,0,0,-459,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-321,0,0,0,0, - -258,0,0,0,-66,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-100,0,0,0,0,-259,0,0, - 0,-322,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-323, - 0,0,0,0,-260,0,0,0,-324,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-5,0,0,0,-150,0,-90,0,-103, - 0,-328,0,0,0,-28,0,0,0,0, - 0,0,0,0,0,0,-160,-433,0,0, - 0,0,-19,0,0,0,-329,0,0,-206, - 0,0,0,0,-342,0,0,0,0,0, - -123,0,0,0,-330,0,0,0,0,0, - 0,0,-135,-226,0,-200,-15,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -334,-102,0,0,0,0,-447,0,0,0, - 0,0,0,-218,0,0,0,0,0,-33, - 0,0,0,0,0,-374,0,0,-198,0, - -101,0,0,-343,0,-344,0,0,0,0, - 0,0,0,0,-199,0,0,0,0,0, - -345,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-346,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-261,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-290,0,0, - 0,-262,0,0,0,-347,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-284,0,0,0,0,0,0, - 0,-348,-521,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-146,0,0, - 0,-106,0,0,-141,-514,0,0,0,0, - -227,0,0,0,-188,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-434,0, - 0,0,0,-295,0,0,0,0,-108,0, - 0,0,0,0,0,0,0,0,-349,0, - 0,0,0,0,0,0,0,0,0,-403, - 0,0,0,-143,0,0,0,0,0,0, - 0,-363,0,0,-228,0,-91,0,0,-285, - 0,0,0,-239,0,-350,0,-312,-212,0, - 0,0,0,0,-351,-352,-35,0,0,0, - 0,0,-298,0,0,0,0,-353,0,0, - 0,-137,0,0,0,-354,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-355, - 0,0,0,0,0,-1,-356,-313,0,0, - 0,0,0,-18,0,0,0,0,-144,0, - 0,0,0,0,0,0,0,0,0,-357, - -216,0,0,0,0,0,0,0,0,0, - 0,0,0,-297,-11,-149,0,0,0,0, - 0,0,0,0,0,0,0,0,-444,0, - 0,0,0,-406,0,0,0,0,0,0, - 0,0,0,0,0,-210,0,0,0,-500, - -316,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-213,0,0,0,0,0, - 0,0,-221,0,0,0,0,0,-189,0, - 0,0,-304,0,0,0,0,0,0,0, - 0,0,0,0,0,-252,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -336,0,0,0,-222,0,0,0,0,0, - 0,-214,0,0,0,0,0,0,0,-414, - -283,-124,0,0,0,0,-449,0,0,0, - -291,0,0,-381,0,-460,0,0,-486,0, - 0,0,0,0,0,0,0,0,0,-253, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-371,0,0,0,0,-69,0,0,0, - -358,0,0,0,0,0,0,0,0,-382, - 0,0,-359,0,0,0,0,-360,-58,0, - 0,0,-361,0,0,0,0,-20,-249,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-420,0,0,0,0,0, - 0,0,0,0,0,0,-211,0,0,-364, - 0,0,0,0,0,0,0,0,-319,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-325,0,0,-491,0,0,0,0,0, - 0,0,0,0,0,0,0,-482,-366,0, - -423,0,0,0,0,-368,0,0,-450,0, - 0,0,0,0,0,0,-300,-318,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-501,-22,0,0,0,0,-113,0,0, - -369,0,0,0,0,0,0,0,0,0, - -484,-163,0,-335,0,0,0,0,-370,-111, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-303,0,0,0,0, - 0,0,0,0,0,-305,0,-372,0,0, - 0,0,0,-512,0,0,0,0,0,0, - 0,0,0,-488,-154,0,-409,0,0,0, - 0,-399,0,0,0,0,0,0,0,0, - 0,-400,-401,0,0,0,0,0,-516,0, - 0,0,0,0,0,0,0,-470,0,0, - 0,0,0,0,-413,0,0,0,0,0, - 0,0,0,0,0,0,-367,-504,0,0, - 0,0,0,0,0,0,0,0,-280,-229, - -437,-235,0,0,0,0,0,0,0,0, - -522,0,0,0,0,0,0,0,0,-517, - -320,0,-375,0,0,-376,0,0,0,0, - -326,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-26,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-523,-244,0,-402,0,0,0,0, - 0,0,0,-429,0,-475,0,0,0,0, - 0,0,-451,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-446,0,-417, - 0,0,0,-337,0,-418,0,0,0,0, - 0,0,0,0,0,-88,-431,0,-341,0, - 0,0,-419,0,-424,0,-379,-428,-230,-462, - 0,-231,0,0,0,0,0,0,-397,-432, - -441,0,0,0,0,0,0,0,-126,0, - 0,-317,0,0,-385,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-497,0, - 0,0,-442,0,0,-448,0,0,0,0, - 0,0,0,-438,0,0,-435,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-129,-457,-439,-461,0,0,0,-411,0, - 0,0,0,0,0,0,0,0,-473,-477, - -478,0,0,0,0,0,0,0,0,0, - -483,-70,0,0,0,0,0,-490,0,0, - 0,0,0,0,0,-390,0,0,0,0, - 0,0,0,0,-496,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-426, - 0,0,-507,0,0,0,0,0,0,-254, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-506,0,-511,-456,0,0,0,0,0, - 0,0,0,-436,0,0,-255,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -256,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-386,0,0,0,0,0, - 0,0,0,0,0,-166,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-140,0,0, - 0,0,-427,0,0,0,0,0,-445,-440, - -474,0,-248,0,0,-452,0,0,0,0, - 0,0,0,-463,-471,-481,-492,0,0,0, - 0,0,0,-454,-513,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,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,-173,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-241,0,0,0,0,0, - 0,0,0,0,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,-251,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,-407,0,0,0,-485,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-8,-455,-487,0,0,0, - 0,-458,-464,-287,-493,0,0,0,0,0, - -134,0,0,0,0,-398,0,0,-468,0, - 0,0,0,0,-465,0,-232,-85,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -466,0,0,-467,0,0,0,0,0,0, - 0,-86,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-479,-480,0,0, - 0,0,0,0,-128,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-299,0, - 0,-494,0,-495,0,-509,0,0,0,0, - 0,0,0,0,0,0,0,-508,-469,-498, - 0,-519,0,0,0,-515,0,0,0,0, - 0,0,0,0,0,-518,0,0,0,-520, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-125,0,0,0,0, - 0,0,0,0,0,0,-115,0,0,0, - 0,0,0,0,0,0,0,0,0,-391, - 0,0,0,0,0,0,0,0,0,0, - -23,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-453,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-94,0, - 0,0,0,0,0,0,0,-95,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-43,0,0, - 0,0,0,0,0,-44,0,0,0,0, - 0,0,-6,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -50,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-387,0,0,0,0,0,-56, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-130, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-192,0,0,0,0,0,0,0, - 0,0,0,0,-220,0,0,0,-311,0, - 0,0,-332,0,0,0,0,0,0,0, - 0,0,0,0,-339,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-395,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-396,0,0,0,-164, - 0,0,0,0,0,0,0,-234,0,0, - 0,0,0,0,0,-405,0,0,0,0, - 0,0,0,-412,0,0,0,0,0,0, - 0,-421,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-422,0,0,0, - 0,0,0,0,-425,0,0,0,0,0, - 0,0,-233,0,0,0,0,0,0,-510, - 0,0,0,0,0,0,0,-388,0,0, - 0,0,-389,0,0,0,0,0,0,0, - 0,0,-408,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-524,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,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; @@ -541,540 +534,534 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface BaseAction { public final static char baseAction[] = { - 170,4,53,78,78,31,31,70,70,38, - 38,170,170,171,171,134,134,1,1,15, - 15,15,15,15,15,15,15,16,16,16, - 14,11,11,8,8,8,8,8,8,2, - 71,71,5,5,12,12,12,12,44,44, - 135,135,136,61,61,42,17,17,17,17, + 169,4,54,79,79,31,31,71,71,38, + 38,42,42,169,169,170,170,133,133,1, + 1,15,15,15,15,15,15,15,15,16, + 16,16,14,11,11,8,8,8,8,8, + 8,2,72,72,5,5,12,12,12,12, + 45,45,134,134,135,62,62,43,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,30,30,32, - 32,34,34,35,35,36,36,41,41,40, - 40,40,40,40,40,40,40,40,40,40, - 40,40,39,33,143,143,96,96,175,175, - 91,192,192,79,79,79,79,79,79,79, - 79,79,80,80,80,74,74,59,59,176, - 176,81,81,81,102,102,177,177,82,82, - 82,178,178,83,83,83,83,83,84,84, - 73,73,73,73,73,73,73,48,48,48, - 48,48,113,113,114,114,49,179,22,22, - 22,22,22,47,47,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,100,118, - 118,118,118,118,118,116,116,116,117,117, - 152,152,151,151,120,120,103,64,64,65, - 66,51,46,153,153,52,50,77,77,154, - 154,144,144,121,122,122,75,75,155,155, - 67,67,67,57,57,56,68,68,72,72, - 55,55,55,89,89,98,97,97,60,60, - 58,58,54,54,43,101,101,101,92,92, - 92,93,93,94,94,94,95,95,104,104, - 104,106,106,105,105,193,193,90,90,181, - 181,181,181,181,124,45,45,157,180,180, - 125,125,125,125,182,182,37,37,115,115, - 126,126,126,126,107,107,119,119,119,127, - 128,128,128,128,128,128,128,128,128,128, - 128,160,160,159,159,183,183,161,161,161, - 161,162,184,109,108,108,185,185,163,163, - 163,163,99,99,99,186,186,9,9,10, - 187,187,188,164,156,156,165,165,166,167, - 167,6,6,7,168,168,168,168,168,168, - 168,168,168,168,168,168,168,168,168,168, - 168,168,168,168,168,168,168,168,168,168, - 168,168,168,168,168,168,168,168,168,168, - 168,168,168,168,168,168,62,69,69,169, - 169,130,130,131,131,131,131,131,131,3, - 132,132,129,129,110,110,76,63,85,158, - 158,111,111,189,189,189,133,133,123,123, - 190,190,881,39,2565,2547,1283,4613,34,903, - 31,35,868,30,32,2522,29,27,56,1839, - 112,82,83,114,1006,1848,1856,1855,1881,1863, - 1897,1890,1923,159,1898,30,1932,1939,149,278, - 1356,1306,164,150,226,4560,1133,1681,39,816, - 36,1166,382,34,903,340,35,868,2482,39, - 816,36,237,4680,34,903,31,35,868,30, - 32,1821,29,27,56,1839,112,82,83,114, - 1548,1848,1856,1855,1881,1863,1897,3121,240,235, - 236,252,604,2237,70,39,450,76,4605,4593, - 2847,621,279,321,2435,323,972,39,2192,47, - 1083,686,46,903,316,1981,4498,247,250,253, - 256,2543,1063,2561,2425,39,816,36,640,4680, - 34,903,31,35,868,30,32,1821,29,27, - 56,1839,92,82,83,2229,1283,2577,1179,2894, - 3148,3253,4361,1549,39,816,36,2512,4680,34, - 903,31,35,868,30,32,1821,29,27,56, - 1839,112,82,83,114,344,1848,1856,1855,1881, - 1863,1897,1890,1923,306,1898,1520,1932,1939,149, - 2238,3632,2604,514,150,3632,3325,1859,39,282, - 390,424,423,39,813,387,1982,515,1549,39, - 816,36,2512,4680,34,903,31,35,868,30, - 32,1821,29,27,56,1839,112,82,83,114, - 344,1848,1856,1855,1881,1863,1897,1890,1923,449, - 1898,334,1932,1939,149,334,1303,914,514,150, - 1644,3325,70,39,284,444,427,3139,353,443, - 1965,1989,515,510,1646,39,816,36,3358,4625, - 34,903,31,35,868,63,32,676,347,2825, - 2761,350,1713,910,495,1940,1098,1549,39,816, - 36,2512,4680,34,903,31,35,868,30,32, - 1821,29,27,56,1839,112,82,83,114,344, - 1848,1856,1855,1881,1863,1897,1890,1923,510,1898, - 943,1932,1939,149,334,39,284,514,150,4696, - 3325,423,1428,1396,38,1921,1989,2026,1187,4192, - 1940,515,1823,39,816,36,2512,4680,34,903, - 31,35,868,30,32,1821,29,27,56,1839, - 112,82,83,114,344,1848,1856,1855,1881,1863, - 1897,1890,1923,1419,1898,64,1932,1939,149,3516, - 2576,686,514,150,2139,3325,4506,337,423,39, - 813,387,423,39,2277,1976,515,510,423,39, - 287,67,382,1719,39,816,36,1202,4625,34, - 903,31,35,868,62,32,2055,330,336,1940, - 1049,1618,39,816,36,428,4680,34,903,31, - 35,868,30,32,1821,29,27,56,1839,112, - 82,83,114,377,1848,1856,1855,1881,1863,1897, - 1890,1923,511,1898,1881,1932,1939,149,1259,64, - 64,380,150,4419,4428,423,39,813,387,1691, - 39,816,36,3003,4680,34,903,31,35,868, - 30,32,1821,29,27,56,1839,112,82,83, - 114,383,1848,1856,1855,1881,1863,1897,1890,1923, - 1467,1898,55,1932,1939,149,435,52,2591,380, - 150,2482,39,816,36,1296,4680,34,903,31, - 35,868,30,32,1821,29,27,56,1839,112, - 82,83,114,1303,1848,1856,1855,1881,2880,381, - 66,375,1950,39,816,36,384,4680,34,903, - 31,35,868,30,32,1821,29,27,56,1839, - 112,82,83,114,324,1848,1856,1855,1881,1863, - 1897,1890,1923,911,1898,1934,1932,1939,149,1008, - 1167,296,380,150,423,39,813,387,423,39, - 1396,281,1283,2888,385,423,39,813,387,2130, - 39,816,36,3074,4680,34,903,31,35,868, - 30,32,1821,29,27,56,1839,112,82,83, - 114,278,1848,1856,1855,1881,1863,1897,1890,1923, - 305,1898,431,1932,1939,149,1533,1425,1283,164, - 150,3632,440,1208,1210,2130,39,816,36,1278, - 4680,34,903,31,35,868,30,32,1821,29, - 27,56,1839,112,82,83,114,378,1848,1856, - 1855,1881,1863,1897,1890,1923,302,1898,2237,1932, - 1939,149,1105,4605,280,374,150,2130,39,816, - 36,333,4680,34,903,31,35,868,30,32, - 1821,29,27,56,1839,112,82,83,114,237, - 1848,1856,1855,1881,1863,1897,1890,1923,862,1898, - 64,1932,1939,149,622,3280,1291,374,150,1533, - 2621,1184,39,285,3632,249,235,236,2130,39, - 816,36,2229,4680,34,903,31,35,868,30, - 32,1821,29,27,56,1839,112,82,83,114, - 416,1848,1856,1855,1881,1863,1897,1890,1923,373, - 1898,64,1932,1939,149,2520,2015,2604,374,150, - 1892,39,816,36,333,4680,34,903,31,35, - 868,30,32,1821,29,27,56,1839,112,82, - 83,114,2748,1848,1856,1855,1881,1863,1897,1890, - 1923,372,1898,64,1932,2007,170,683,720,1754, - 39,816,36,315,4680,34,903,31,35,868, - 30,32,1821,29,27,56,1839,112,82,83, - 114,426,1848,1856,1855,1881,1863,1897,1890,1923, - 206,1898,2639,1932,1939,149,2597,1587,329,148, - 150,1728,370,2190,2187,2724,1514,2130,39,816, - 36,1560,4680,34,903,31,35,868,30,32, - 1821,29,27,56,1839,112,82,83,114,2139, - 1848,1856,1855,1881,1863,1897,1890,1923,1154,1898, - 1533,1932,1939,149,1982,3632,992,161,150,2130, - 39,816,36,911,4680,34,903,31,35,868, - 30,32,1821,29,27,56,1839,112,82,83, - 114,188,1848,1856,1855,1881,1863,1897,1890,1923, - 2108,1898,1533,1932,1939,149,1982,3632,3474,160, - 150,2130,39,816,36,333,4680,34,903,31, - 35,868,30,32,1821,29,27,56,1839,112, - 82,83,114,2395,1848,1856,1855,1881,1863,1897, - 1890,1923,457,1898,64,1932,1939,149,2789,716, - 1880,159,150,2130,39,816,36,333,4680,34, - 903,31,35,868,30,32,1821,29,27,56, - 1839,112,82,83,114,2139,1848,1856,1855,1881, - 1863,1897,1890,1923,456,1898,99,1932,1939,149, - 1982,3765,453,158,150,2130,39,816,36,2550, - 4680,34,903,31,35,868,30,32,1821,29, - 27,56,1839,112,82,83,114,856,1848,1856, - 1855,1881,1863,1897,1890,1923,1766,1898,1303,1932, - 1939,149,423,1688,522,157,150,2130,39,816, - 36,1543,4680,34,903,31,35,868,30,32, - 1821,29,27,56,1839,112,82,83,114,494, - 1848,1856,1855,1881,1863,1897,1890,1923,328,1898, - 1303,1932,1939,149,423,39,3573,156,150,2130, - 39,816,36,2604,4680,34,903,31,35,868, - 30,32,1821,29,27,56,1839,112,82,83, - 114,379,1848,1856,1855,1881,1863,1897,1890,1923, - 520,1898,64,1932,1939,149,850,418,1560,155, - 150,2130,39,816,36,1659,4680,34,903,31, - 35,868,30,32,1821,29,27,56,1839,112, - 82,83,114,2207,1848,1856,1855,1881,1863,1897, - 1890,1923,291,1898,64,1932,1939,149,738,423, - 3670,154,150,2130,39,816,36,1338,4680,34, - 903,31,35,868,30,32,1821,29,27,56, - 1839,112,82,83,114,2139,1848,1856,1855,1881, - 1863,1897,1890,1923,520,1898,64,1932,1939,149, - 817,423,3528,153,150,2130,39,816,36,1835, - 4680,34,903,31,35,868,30,32,1821,29, - 27,56,1839,112,82,83,114,1904,1848,1856, - 1855,1881,1863,1897,1890,1923,1933,1898,64,1932, - 1939,149,3062,2223,521,152,150,2130,39,816, - 36,1501,4680,34,903,31,35,868,30,32, - 1821,29,27,56,1839,112,82,83,114,1959, - 1848,1856,1855,1881,1863,1897,1890,1923,1834,1898, - 64,1932,1939,149,4326,1069,158,151,150,2130, - 39,816,36,993,4680,34,903,31,35,868, - 30,32,1821,29,27,56,1839,112,82,83, - 114,29,1848,1856,1855,1881,1863,1897,1890,1923, - 504,1898,64,1932,1939,149,3549,680,1585,165, - 150,2130,39,816,36,2375,4680,34,903,31, - 35,868,30,32,1821,29,27,56,1839,112, - 82,83,114,1949,1848,1856,1855,1881,1863,1897, - 1890,1923,2075,1898,64,1932,1939,149,3602,1081, - 1750,146,150,2363,39,816,36,382,4680,34, - 903,31,35,868,30,32,1821,29,27,56, - 1839,112,82,83,114,2158,1848,1856,1855,1881, - 1863,1897,1890,1923,1655,1898,64,1932,1939,149, - 2814,851,587,195,150,2482,39,816,36,1862, - 4680,34,903,31,35,868,30,32,1821,29, - 27,56,1839,112,82,83,114,1513,1848,1856, - 1855,1881,1863,1897,1890,1923,519,1898,3041,1932, - 2007,170,2482,39,816,36,2210,4680,34,903, - 31,35,868,30,32,1821,29,27,56,1839, - 112,82,83,114,300,1848,1856,1855,1881,1863, - 1897,1890,1923,326,1898,2252,1932,2007,170,1782, - 39,816,36,1569,4704,34,903,31,35,868, - 65,32,2482,39,816,36,295,4680,34,903, - 31,35,868,30,32,1821,29,27,56,1839, - 112,82,83,114,76,1848,1856,1855,1881,1863, - 1897,1890,1923,1445,1898,2222,1932,2007,170,2482, - 39,816,36,420,4680,34,903,31,35,868, - 30,32,1821,29,27,56,1839,112,82,83, - 114,941,1848,1856,1855,1881,1863,1897,1890,1923, - 2599,1898,2225,1932,2007,170,1782,39,816,36, - 1303,4704,34,903,31,35,868,64,32,2482, - 39,816,36,3523,4680,34,903,31,35,868, - 30,32,1821,29,27,56,1839,112,82,83, - 114,3071,1848,1856,1855,1881,1863,1897,1890,1923, - 2274,1898,2372,1932,2007,170,2539,39,816,36, - 419,4680,34,903,31,35,868,30,32,1821, - 29,27,56,1839,112,82,83,114,1273,1848, - 1856,1855,1881,1863,1897,1890,1923,1982,1898,2332, - 1932,2007,170,1151,39,816,36,2049,2336,34, - 903,1168,35,868,1655,2391,2482,39,816,36, - 422,4680,34,903,31,35,868,30,32,1821, - 29,27,56,1839,112,82,83,114,1655,1848, - 1856,1855,1881,1863,1897,1890,1923,1561,1898,94, - 3143,2899,108,2482,39,816,36,3349,4680,34, - 903,31,35,868,30,32,1821,29,27,56, - 1839,112,82,83,114,4103,1848,1856,1855,1881, - 1863,1897,1890,1923,389,3133,2482,39,816,36, - 1303,4680,34,903,31,35,868,30,32,1821, - 29,27,56,1839,112,82,83,114,388,1848, - 1856,1855,1881,1863,1897,1890,2910,2482,39,816, - 36,4081,4680,34,903,31,35,868,30,32, - 1821,29,27,56,1839,112,82,83,114,2393, - 1848,1856,1855,1881,1863,2866,2482,39,816,36, - 1147,4680,34,903,31,35,868,30,32,1821, - 29,27,56,1839,112,82,83,114,1101,1848, - 1856,1855,1881,2887,2482,39,816,36,2375,4680, - 34,903,31,35,868,30,32,1821,29,27, - 56,1839,112,82,83,114,2282,1848,1856,1855, - 2732,2482,39,816,36,1922,4680,34,903,31, - 35,868,30,32,1821,29,27,56,1839,112, - 82,83,114,1420,1848,1856,1855,2799,2482,39, - 816,36,2398,4680,34,903,31,35,868,30, - 32,1821,29,27,56,1839,112,82,83,114, - 2403,1848,1856,1855,2836,2482,39,816,36,2404, - 4680,34,903,31,35,868,30,32,1821,29, - 27,56,1839,112,82,83,114,327,1848,1856, - 1855,2845,2596,39,813,387,1655,3438,686,519, - 1169,1688,2168,4580,995,242,995,39,816,36, - 1166,3632,34,903,340,35,868,686,423,39, - 813,387,4688,1199,39,1248,1256,2750,4531,278, - 2982,39,816,36,1472,1982,34,903,340,35, - 868,1151,39,816,36,2706,1653,34,903,341, - 35,868,237,1678,2569,430,943,2797,3552,2847, - 55,333,321,2435,323,1174,288,922,48,1611, - 244,2268,64,316,1981,2512,2926,1533,240,235, - 236,1173,3632,2847,1584,352,321,2435,323,4609, - 2013,402,279,344,2512,3117,2035,316,1981,64, - 1129,604,353,951,422,2238,510,247,250,253, - 256,2543,344,57,1382,64,2576,237,640,2698, - 290,1938,345,2825,2761,350,353,309,313,162, - 1250,2237,3476,984,206,3803,2243,2577,1179,2894, - 3148,3253,4361,245,235,236,345,2825,2761,350, - 536,2516,1695,335,336,2961,2482,39,816,36, - 1387,4680,34,903,31,35,868,30,32,1821, - 29,27,56,1839,112,82,83,114,943,1848, - 1856,2846,2482,39,816,36,2247,4680,34,903, - 31,35,868,30,32,1821,29,27,56,1839, - 112,82,83,114,177,1848,1856,2858,532,391, - 424,367,205,1851,39,816,36,100,4704,34, - 903,31,35,868,30,32,234,508,423,39, - 1396,286,1184,39,282,1102,2599,162,2576,2512, - 4141,2334,186,3377,3327,423,39,1396,283,209, - 220,4513,208,217,218,219,221,234,453,423, - 39,813,387,175,3013,39,816,36,3555,252, - 34,903,340,35,868,332,336,439,174,381, - 2573,405,3798,189,173,176,177,178,179,180, - 423,39,1396,3541,604,352,429,406,407,408, - 297,298,1,2765,565,2162,532,423,39,296, - 70,39,450,354,1303,4593,557,2847,686,1655, - 321,2435,323,4658,234,733,1903,423,39,813, - 387,316,1981,2159,1587,162,353,2512,2043,1063, - 186,3377,1008,39,296,28,1280,209,220,4513, - 208,217,218,219,221,2550,345,2825,2761,350, - 1702,175,409,412,55,2961,1394,1979,686,1174, - 2512,582,187,4676,2020,95,174,355,108,604, - 2822,190,173,176,177,178,179,180,234,307, - 2064,1321,39,2380,36,1166,3632,34,903,340, - 35,868,393,424,2396,1470,1169,1688,2512,2512, - 1122,211,220,4513,210,217,218,219,221,1731, - 39,1396,281,502,1790,2999,2550,234,212,214, - 216,297,298,444,237,565,1461,39,394,15, - 1982,1303,213,215,2847,1105,333,321,2435,323, - 211,220,4513,210,217,218,219,221,316,1981, - 252,235,236,500,501,1655,1503,212,214,216, - 297,298,351,1496,565,447,1965,1989,15,2139, - 3117,213,215,1151,39,816,36,392,424,34, - 903,3646,35,868,362,3041,2482,39,816,36, - 13,4680,34,903,31,35,868,30,32,1821, - 29,27,56,1839,112,82,83,114,103,1848, - 2624,1151,39,816,36,1655,290,34,903,44, - 35,868,423,39,296,299,554,2925,377,14, - 863,64,1581,2245,995,1905,2512,423,3620,1396, - 80,64,415,2398,1586,3130,2463,3045,1695,2022, - 39,816,36,1166,2550,34,903,340,35,868, - 2482,39,816,36,3306,4680,34,903,31,35, - 868,30,32,1821,29,27,56,1839,112,82, - 83,114,265,1848,2626,289,532,1072,39,816, - 36,1285,3632,34,903,340,35,868,50,1611, - 943,3041,2847,2116,234,321,2435,323,1259,423, - 39,813,387,2409,382,162,316,1981,2054,64, - 186,3377,361,1129,1173,3296,3061,209,220,4513, - 208,217,218,219,221,353,2150,2103,2105,532, - 2847,175,334,321,2435,323,55,1461,39,394, - 1793,1174,162,2752,319,1981,174,234,2555,1303, - 2576,3525,173,176,177,178,179,180,162,325, - 309,313,1517,186,3377,1461,39,394,237,528, - 209,220,4513,208,217,218,219,221,441,2014, - 75,2035,532,4278,175,532,2420,3517,336,1731, - 39,1396,3621,1387,255,235,236,64,64,174, - 234,4554,4146,3705,182,173,176,177,178,179, - 180,162,587,2194,162,1644,186,3377,64,186, - 3377,2434,1129,209,220,4513,208,217,218,219, - 221,529,64,2810,64,532,532,175,1129,2454, - 1347,39,816,36,2369,3632,34,903,340,35, - 868,1640,174,234,344,201,1283,193,173,176, - 177,178,179,180,162,162,1920,3609,2455,186, - 3377,2834,3704,237,2463,3325,209,220,4513,208, - 217,218,219,221,617,1146,2320,64,532,1430, - 175,3498,2511,2847,301,334,321,2435,323,258, - 235,236,2512,2517,400,174,234,317,1981,1982, - 3702,173,176,177,178,179,180,162,423,39, - 1396,3655,186,3377,77,687,39,813,387,209, - 220,4513,208,217,218,219,221,1283,1811,39, - 816,36,1472,175,34,903,340,35,868,64, - 64,64,1978,1129,532,1129,1129,353,174,4126, - 202,2463,278,198,173,176,177,178,179,180, - 705,1303,344,1283,532,185,1283,345,2825,2761, - 350,1303,162,162,162,166,343,104,3138,3411, - 4133,2847,234,3325,321,2435,323,357,246,39, - 813,387,74,162,3189,316,1981,528,186,3377, - 353,204,59,523,203,209,220,4513,208,217, - 218,219,221,793,64,3576,2518,532,532,175, - 345,2825,2761,350,64,55,2648,78,2408,524, - 1174,3632,1380,2453,174,234,344,2512,3421,192, - 173,176,177,178,179,180,162,162,2465,1114, - 2519,186,3377,2834,1303,344,89,3325,209,220, - 4513,208,217,218,219,221,2840,64,3504,1303, - 2512,3076,175,2290,356,991,3826,1303,2551,64, - 943,3476,64,2512,528,93,2512,174,234,1303, - 1239,2568,200,173,176,177,178,179,180,2853, - 58,344,2196,2512,344,2196,2512,3632,448,2512, - 3632,211,220,4513,210,217,218,219,221,2465, - 3587,234,3325,2574,2550,3325,2026,2550,212,214, - 216,297,298,2426,64,565,2462,64,1129,222, - 2576,3530,213,215,211,220,4513,210,217,218, - 219,221,2934,2576,64,499,2512,333,1129,1303, - 333,212,214,216,297,298,102,162,565,2567, - 2575,2581,222,4155,234,213,215,3827,336,4225, - 1974,2601,423,39,813,387,2140,162,2621,3619, - 96,716,361,4181,3765,361,1283,211,220,4513, - 210,217,218,219,221,2668,3539,2103,2105,3539, - 2103,2105,4225,2839,212,214,216,297,298,55, - 1283,565,4218,2069,1174,222,1520,1129,213,215, - 2482,39,816,36,404,4680,34,903,31,35, - 868,30,32,1821,29,27,56,1839,112,82, - 83,114,1538,2641,2605,64,162,2756,207,3079, - 3619,5332,168,5332,1303,4225,2985,2482,39,816, - 36,5332,4680,34,903,31,35,868,30,32, - 1821,29,27,56,1839,112,82,83,114,5332, - 2656,2482,39,816,36,3824,4680,34,903,31, - 35,868,30,32,1821,29,27,56,1839,112, - 82,83,114,5332,2706,2258,39,816,36,5332, - 3632,34,903,340,35,868,2482,39,816,36, - 5332,4680,34,903,31,35,868,30,32,1821, - 29,27,56,1839,112,82,83,91,1441,39, - 816,36,2911,1283,34,903,340,35,868,1303, - 64,64,5332,1978,1129,1129,1303,1129,2847,5332, - 334,321,2435,323,64,64,2036,64,4135,3569, - 3378,3314,317,1981,1303,64,401,353,5332,3401, - 3825,205,5332,162,162,5332,166,3218,4296,4184, - 2960,2847,5332,5332,318,917,323,347,2825,2761, - 350,2482,1428,816,2218,3271,4680,34,903,31, - 35,868,30,32,1821,29,27,56,1839,112, - 82,83,90,2482,39,816,36,5332,4680,34, - 903,31,35,868,30,32,1821,29,27,56, - 1839,112,82,83,89,2482,39,816,36,3519, - 4680,34,903,31,35,868,30,32,1821,29, - 27,56,1839,112,82,83,88,2482,39,816, - 36,5332,4680,34,903,31,35,868,30,32, - 1821,29,27,56,1839,112,82,83,87,2482, - 39,816,36,627,4680,34,903,31,35,868, - 30,32,1821,29,27,56,1839,112,82,83, - 86,2482,39,816,36,5332,4680,34,903,31, - 35,868,30,32,1821,29,27,56,1839,112, - 82,83,85,2482,39,816,36,5332,4680,34, - 903,31,35,868,30,32,1821,29,27,56, - 1839,112,82,83,84,2304,39,816,36,5332, - 4680,34,903,31,35,868,30,32,1821,29, - 27,56,1839,112,82,83,110,2482,39,816, - 36,5332,4680,34,903,31,35,868,30,32, - 1821,29,27,56,1839,112,82,83,116,2482, - 39,816,36,5332,4680,34,903,31,35,868, - 30,32,1821,29,27,56,1839,112,82,83, - 115,2482,39,816,36,5332,4680,34,903,31, - 35,868,30,32,1821,29,27,56,1839,112, - 82,83,113,2482,39,816,36,1283,4680,34, - 903,31,35,868,30,32,1821,29,27,56, - 1839,112,82,83,111,1229,2088,64,5332,2512, - 532,1129,1303,1303,1978,943,5332,5332,1129,5332, - 5332,423,39,813,387,3673,1581,234,344,1978, - 2512,5332,5332,1129,5332,1303,5332,64,2950,162, - 162,2512,2512,3324,73,194,4266,166,2550,4378, - 211,220,4513,210,217,218,219,221,55,344, - 234,1303,166,1174,1303,932,72,212,214,216, - 297,298,2966,5332,565,2576,2512,5332,516,5332, - 3325,213,215,211,220,4513,210,217,218,219, - 221,2480,71,5332,234,70,5332,1303,1303,5332, - 212,214,216,297,298,2872,5332,565,196,2512, - 3527,517,3835,336,213,215,361,211,220,4513, - 210,217,218,219,221,4262,5332,234,1545,1755, - 3714,2103,2105,5332,212,214,216,297,298,3027, - 5332,565,1303,2512,1303,308,1303,5332,213,215, - 211,220,4513,210,217,218,219,221,1283,1978, - 1978,234,1283,1129,1129,5332,1303,212,214,216, - 297,298,5332,61,565,60,1303,4282,223,5332, - 1015,213,215,4107,211,220,4513,210,217,218, - 219,221,166,166,5332,5332,227,107,5332,5332, - 199,212,214,216,297,298,2159,3463,565,5332, - 2512,526,496,5332,5332,213,215,1681,39,816, - 36,1166,5332,34,903,340,35,868,2550,5332, - 1606,39,2380,36,1166,5332,34,903,340,35, - 868,2663,39,813,387,5332,3438,5332,5332,5332, - 5332,5332,5332,5332,243,4264,4286,5332,1681,39, - 816,36,1166,5332,34,903,340,35,868,5332, - 2847,5332,5332,321,2435,323,5332,5332,278,5332, - 5332,5332,5332,2847,316,1981,321,2435,323,5332, - 5332,5332,1173,5332,5332,5332,502,316,1981,948, - 5332,237,5332,2512,4141,1503,5332,5332,1025,5332, - 5332,2847,2512,4141,321,2435,323,5332,5332,5332, - 5332,234,5332,5332,5332,316,1981,241,235,236, - 234,5332,5332,3631,5332,5332,499,501,310,313, - 5332,279,5332,5332,2573,405,3798,5332,5332,5332, - 5332,5332,5332,2573,405,3798,248,251,254,257, - 2543,406,407,408,297,298,5332,640,565,5332, - 406,407,408,297,298,2131,5332,565,598,39, - 813,387,5332,5332,5332,5332,774,39,813,387, - 5332,416,2398,1332,39,816,36,2526,1587,34, - 903,340,35,868,5332,5332,5332,1587,5332,5332, - 5332,1016,39,813,387,55,5332,5332,5332,5332, - 1174,5332,53,55,5332,5332,409,411,1174,5332, - 53,5332,5332,5332,2160,409,411,5332,2512,2827, - 246,39,813,387,5332,5332,2847,2233,55,318, - 917,323,5332,1174,5332,53,2550,5332,2244,2755, - 1437,39,813,387,5332,5332,5332,2268,2755,5332, - 5332,5332,1261,1455,39,813,387,55,5332,5332, - 5332,5332,1174,5332,53,1455,39,813,387,1455, - 39,813,387,1464,39,813,387,55,5332,5332, - 5332,928,1174,5332,53,774,39,813,387,5332, - 55,5332,5332,5332,5332,1174,5332,53,5332,5332, - 5332,3052,55,5332,502,5332,55,1174,5332,53, - 55,1174,5332,53,732,1174,5332,2944,1455,39, - 813,387,55,5332,5332,5332,918,1174,627,3060, - 1125,5332,5332,5332,1114,5332,1455,39,813,387, - 1220,39,813,387,499,501,3365,5332,423,39, - 813,387,5332,5332,5332,55,423,39,813,387, - 1174,5332,53,5332,423,39,813,387,5332,5332, - 5332,5332,64,55,5332,5332,532,55,1174,2538, - 53,5332,1174,3540,1947,55,5332,64,5332,5332, - 1174,532,3202,55,344,64,5332,2779,1174,532, - 727,55,5332,64,5332,162,1174,2512,1947,344, - 2199,194,5332,5332,2512,4378,5332,344,64,5332, - 162,5332,2512,64,5332,344,194,2512,162,5332, - 4378,5332,344,64,194,5332,5332,2512,4378,5332, - 344,527,5332,5332,5332,344,3325,64,5332,5332, - 5332,2512,5332,3325,5332,344,5332,2489,5332,5332, - 5332,3325,5332,5332,530,5332,3325,5332,5332,344, - 5332,5332,506,5332,3816,5332,3325,504,5332,5332, - 5332,5332,5332,5332,5332,5332,5332,3809,5332,3834, - 3325,5332,5332,5332,5332,5332,5332,4132,5332,5332, - 5332,531,5332,5332,5332,5332,5332,5332,5332,5332, - 5332,5332,5332,5332,5332,5332,5332,5332,5332,5332, - 5332,5332,5332,5332,5332,5332,5332,5332,5332,5332, - 5332,5332,5332,5332,5332,5332,5332,5332,5332,5332, - 5332,5332,5332,5332,5332,5332,5332,5332,5332,5332, - 5332,5332,5332,5332,5332,5332,5332,5332,5332,5332, - 5332,5332,5332,5332,5332,5332,5332,5332,5332,5332, - 5332,5332,5332,5332,5332,5332,5332,5332,5332,5332, - 5332,5332,5332,5332,5332,5332,5332,5332,5332,5332, - 5332,5332,5332,5332,5332,5332,5332,5332,5332,5332, - 4300,5332,0,498,4125,0,233,1,0,43, - 5350,0,43,5349,0,1,577,0,1,861, - 0,1,2610,0,1,5350,2,0,1,5349, - 2,0,5571,246,0,5570,246,0,5671,246, - 0,5670,246,0,5598,246,0,5597,246,0, - 5596,246,0,5595,246,0,5594,246,0,5593, - 246,0,5592,246,0,5591,246,0,5609,246, - 0,5608,246,0,5607,246,0,5606,246,0, - 5605,246,0,5604,246,0,5603,246,0,5602, - 246,0,5601,246,0,5600,246,0,5599,246, - 0,43,246,5350,0,43,246,5349,0,5374, - 246,0,1343,386,0,54,5350,0,54,5349, - 0,43,1,5350,2,0,43,1,5349,2, - 0,5374,1,0,1,5663,0,1,1682,0, - 1343,33,0,437,1724,0,451,1766,0,5350, - 54,0,5349,54,0,1808,320,0,43,5350, - 2,0,43,5349,2,0,39,37,0,1, - 441,0,455,1434,0,454,1476,0,233,225, - 0,498,1596,0,5374,233,1,0,43,233, - 1,0,233,414,0,41,5350,0,41,5349, - 0,49,5372,0,49,41,0,1,2537,0, - 1,5609,0,1,5608,0,1,5607,0,1, - 5606,0,1,5605,0,1,5604,0,1,5603, - 0,1,5602,0,1,5601,0,1,5600,0, - 1,5599,0,43,1,5350,0,43,1,5349, - 0,636,1,0,1,2956,0,1,3177,0, - 233,224,0,5342,403,0,5341,403,0,233, - 413,0,42,5350,0,42,5349,0,2458,132, - 0,5340,1,0,5663,442,0,1682,442,0, - 5372,51,0,51,41,0,5338,1,0,5337, - 1,0,1343,45,0,3274,97,0,36,38, - 0,43,861,0,233,1,3219,0,5342,233, - 0,5341,233,0,43,1,0,242,3392,0, - 387,36,0,36,387,0,386,33,0,33, - 386,0,2458,134,0,2458,133,0,3506,233, - 0,53,41,0,1,98,0,41,53,0, - 8,10,0,41,5350,2,0,41,5349,2, - 0,5350,40,0,5349,40,0,5663,101,0, - 1682,101,0,39,79,0,283,4149,0,191, - 3410,0 + 17,17,17,17,17,17,17,17,136,136, + 136,113,113,18,18,18,18,18,18,18, + 18,18,18,18,18,18,19,19,171,171, + 172,172,173,139,139,140,140,137,137,141, + 138,138,20,20,21,21,23,23,23,24, + 24,24,24,25,25,25,26,26,26,27, + 27,27,27,27,28,28,28,29,29,30, + 30,32,32,34,34,35,35,36,36,41, + 41,40,40,40,40,40,40,40,40,40, + 40,40,40,40,39,33,142,142,97,97, + 174,174,92,193,193,80,80,80,80,80, + 80,80,80,80,81,81,81,75,75,60, + 60,175,175,82,82,82,103,103,176,176, + 83,83,83,177,177,84,84,84,84,84, + 85,85,74,74,74,74,74,74,74,49, + 49,49,49,49,114,114,115,115,50,178, + 22,22,22,22,22,48,48,87,87,87, + 87,87,149,149,144,144,144,144,144,145, + 145,145,146,146,146,147,147,147,148,148, + 148,88,88,88,88,88,89,89,89,13, + 13,13,13,13,13,13,13,13,13,13, + 100,119,119,119,119,119,119,117,117,117, + 118,118,151,151,150,150,121,121,104,67, + 67,68,69,52,47,152,152,53,51,78, + 78,153,153,143,143,122,123,123,76,76, + 154,154,63,63,63,58,58,57,64,64, + 73,73,56,56,56,90,90,99,98,98, + 61,61,59,59,55,55,44,101,101,101, + 93,93,93,94,94,95,95,95,96,96, + 105,105,105,107,107,106,106,194,194,91, + 91,180,180,180,180,180,125,46,46,156, + 179,179,126,126,126,126,181,181,37,37, + 116,127,127,127,127,108,108,120,120,120, + 158,159,159,159,159,159,159,159,159,159, + 159,159,184,184,182,182,183,183,160,160, + 160,160,161,185,110,109,109,186,186,162, + 162,162,162,102,102,102,187,187,9,9, + 10,188,188,189,163,155,155,164,164,165, + 166,166,6,6,7,167,167,167,167,167, + 167,167,167,167,167,167,167,167,167,167, + 167,167,167,167,167,167,167,167,167,167, + 167,167,167,167,167,167,167,167,167,167, + 167,167,167,167,167,167,167,65,70,70, + 168,168,129,129,130,130,130,130,130,130, + 3,131,131,128,128,111,111,77,66,86, + 157,157,112,112,190,190,190,132,132,124, + 124,191,191,969,41,2157,2138,151,4621,36, + 874,33,37,849,32,34,2112,31,29,58, + 1609,114,84,85,116,943,1610,1701,1635,1735, + 1719,1761,1743,1777,1391,1770,157,1778,1785,151, + 280,4133,157,166,152,228,1387,4211,1988,41, + 812,38,2588,1394,36,874,342,37,849,911, + 2516,41,812,38,239,2795,36,874,33,37, + 849,32,34,1608,31,29,58,1609,114,84, + 85,116,1426,1610,1701,1635,1735,1719,1761,2653, + 242,237,238,336,41,451,63,1572,4594,1026, + 1049,298,734,281,496,323,1001,325,336,41, + 286,318,917,996,687,1295,1254,40,71,249, + 252,255,258,2636,1212,2526,1359,41,812,38, + 627,4644,36,874,33,37,849,65,34,809, + 861,722,1756,391,425,1903,4228,2901,2919,3127, + 3512,3516,4390,1585,41,812,38,2582,2795,36, + 874,33,37,849,32,34,1608,31,29,58, + 1609,114,84,85,116,346,1610,1701,1635,1735, + 1719,1761,1743,1777,2537,1770,335,1778,1785,151, + 576,1532,31,515,152,29,3502,2829,2605,41, + 284,2612,1092,906,687,41,810,389,516,445, + 1585,41,812,38,2582,2795,36,874,33,37, + 849,32,34,1608,31,29,58,1609,114,84, + 85,116,346,1610,1701,1635,1735,1719,1761,1743, + 1777,57,1770,1187,1778,1785,151,1097,572,583, + 515,152,1118,78,2829,1470,2097,444,1812,1819, + 3413,317,69,1399,511,516,1554,41,812,38, + 3286,4644,36,874,33,37,849,64,34,31, + 207,1551,295,4397,1803,687,41,289,1585,41, + 812,38,2582,2795,36,874,33,37,849,32, + 34,1608,31,29,58,1609,114,84,85,116, + 346,1610,1701,1635,1735,1719,1761,1743,1777,471, + 1770,511,1778,1785,151,50,1476,1765,515,152, + 1560,2521,2829,1492,41,1896,49,157,1827,48, + 874,1803,4589,516,559,1931,41,812,38,2582, + 2795,36,874,33,37,849,32,34,1608,31, + 29,58,1609,114,84,85,116,346,1610,1701, + 1635,1735,1719,1761,1743,1777,1572,1770,1572,1778, + 1785,151,1148,41,287,515,152,1156,249,2829, + 687,41,810,389,687,41,2940,2929,190,511, + 516,302,68,1369,41,812,38,572,4522,36, + 874,33,37,849,32,34,1845,509,2831,1803, + 3056,1387,647,1651,41,812,38,450,2795,36, + 874,33,37,849,32,34,1608,31,29,58, + 1609,114,84,85,116,441,1610,1701,1635,1735, + 1719,1761,1743,1777,2732,1770,512,1778,1785,151, + 328,687,1518,382,152,3104,687,41,810,389, + 1169,1201,1723,41,812,38,2093,2795,36,874, + 33,37,849,32,34,1608,31,29,58,1609, + 114,84,85,116,385,1610,1701,1635,1735,1719, + 1761,1743,1777,57,1770,157,1778,1785,151,1097, + 4446,1395,382,152,3104,2516,41,812,38,1593, + 2795,36,874,33,37,849,32,34,1608,31, + 29,58,1609,114,84,85,116,2436,1610,1701, + 1635,1735,2599,383,329,1795,41,812,38,386, + 2795,36,874,33,37,849,32,34,1608,31, + 29,58,1609,114,84,85,116,763,1610,1701, + 1635,1735,1719,1761,1743,1777,2949,1770,1754,1778, + 1785,151,293,4612,445,382,152,3104,687,41, + 3157,1026,41,298,687,41,810,389,387,1062, + 2168,41,812,38,2745,2795,36,874,33,37, + 849,32,34,1608,31,29,58,1609,114,84, + 85,116,1753,1610,1701,1635,1735,1719,1761,1743, + 1777,57,1770,722,1778,1785,151,1097,31,1356, + 166,152,564,687,41,810,389,3091,117,2168, + 41,812,38,1310,2795,36,874,33,37,849, + 32,34,1608,31,29,58,1609,114,84,85, + 116,380,1610,1701,1635,1735,1719,1761,1743,1777, + 57,1770,1753,1778,1785,151,1097,909,1311,376, + 152,2168,41,812,38,906,2795,36,874,33, + 37,849,32,34,1608,31,29,58,1609,114, + 84,85,116,326,1610,1701,1635,1735,1719,1761, + 1743,1777,419,1770,1189,1778,1785,151,424,41, + 286,376,152,4468,1575,908,1905,41,395,4574, + 687,3270,1903,2168,41,812,38,2291,2795,36, + 874,33,37,849,32,34,1608,31,29,58, + 1609,114,84,85,116,1194,1610,1701,1635,1735, + 1719,1761,1743,1777,375,1770,1688,1778,1785,151, + 151,1394,943,376,152,1997,41,812,38,1845, + 2795,36,874,33,37,849,32,34,1608,31, + 29,58,1609,114,84,85,116,1911,1610,1701, + 1635,1735,1719,1761,1743,1777,374,1770,308,1778, + 1820,172,1865,41,812,38,327,2795,36,874, + 33,37,849,32,34,1608,31,29,58,1609, + 114,84,85,116,1938,1610,1701,1635,1735,1719, + 1761,1743,1777,3259,1770,1173,1778,1785,151,520, + 1124,458,150,152,331,1148,41,284,372,687, + 41,810,389,2168,41,812,38,1953,2795,36, + 874,33,37,849,32,34,1608,31,29,58, + 1609,114,84,85,116,1544,1610,1701,1635,1735, + 1719,1761,1743,1777,2323,1770,57,1778,1785,151, + 1691,3510,54,163,152,2168,41,812,38,1572, + 2795,36,874,33,37,849,32,34,1608,31, + 29,58,1609,114,84,85,116,2748,1610,1701, + 1635,1735,1719,1761,1743,1777,952,1770,2254,1778, + 1785,151,1385,687,3079,162,152,2168,41,812, + 38,857,2795,36,874,33,37,849,32,34, + 1608,31,29,58,1609,114,84,85,116,3509, + 1610,1701,1635,1735,1719,1761,1743,1777,1627,1770, + 2441,1778,1785,151,102,1613,2225,161,152,2168, + 41,812,38,1572,2795,36,874,33,37,849, + 32,34,1608,31,29,58,1609,114,84,85, + 116,1489,1610,1701,1635,1735,1719,1761,1743,1777, + 1276,1770,2441,1778,1785,151,1823,1959,2025,160, + 152,2168,41,812,38,857,2795,36,874,33, + 37,849,32,34,1608,31,29,58,1609,114, + 84,85,116,523,1610,1701,1635,1735,1719,1761, + 1743,1777,2074,1770,2441,1778,1785,151,1642,2783, + 1096,159,152,2168,41,812,38,1572,2795,36, + 874,33,37,849,32,34,1608,31,29,58, + 1609,114,84,85,116,1308,1610,1701,1635,1735, + 1719,1761,1743,1777,327,1770,851,1778,1785,151, + 2553,101,529,158,152,2168,41,812,38,857, + 2795,36,874,33,37,849,32,34,1608,31, + 29,58,1609,114,84,85,116,522,1610,1701, + 1635,1735,1719,1761,1743,1777,359,1770,31,1778, + 1785,151,2544,454,529,157,152,2168,41,812, + 38,1478,2795,36,874,33,37,849,32,34, + 1608,31,29,58,1609,114,84,85,116,1503, + 1610,1701,1635,1735,1719,1761,1743,1777,358,1770, + 31,1778,1785,151,683,1172,529,156,152,2168, + 41,812,38,1626,2795,36,874,33,37,849, + 32,34,1608,31,29,58,1609,114,84,85, + 116,1682,1610,1701,1635,1735,1719,1761,1743,1777, + 2032,1770,31,1778,1785,151,951,415,503,155, + 152,2168,41,812,38,1245,2795,36,874,33, + 37,849,32,34,1608,31,29,58,1609,114, + 84,85,116,2128,1610,1701,1635,1735,1719,1761, + 1743,1777,2150,1770,31,1778,1785,151,2877,1939, + 1365,154,152,2168,41,812,38,1833,2795,36, + 874,33,37,849,32,34,1608,31,29,58, + 1609,114,84,85,116,2114,1610,1701,1635,1735, + 1719,1761,1743,1777,69,1770,31,1778,1785,151, + 740,2224,1701,153,152,2168,41,812,38,2090, + 2795,36,874,33,37,849,32,34,1608,31, + 29,58,1609,114,84,85,116,2235,1610,1701, + 1635,1735,1719,1761,1743,1777,2280,1770,1753,1778, + 1785,151,1310,2301,2374,167,152,2168,41,812, + 38,2385,2795,36,874,33,37,849,32,34, + 1608,31,29,58,1609,114,84,85,116,495, + 1610,1701,1635,1735,1719,1761,1743,1777,2431,1770, + 31,1778,1785,151,818,943,2433,148,152,2398, + 41,812,38,943,2795,36,874,33,37,849, + 32,34,1608,31,29,58,1609,114,84,85, + 116,943,1610,1701,1635,1735,1719,1761,1743,1777, + 997,1770,31,1778,1785,151,2821,2275,1560,197, + 152,2516,41,812,38,2149,2795,36,874,33, + 37,849,32,34,1608,31,29,58,1609,114, + 84,85,116,2259,1610,1701,1635,1735,1719,1761, + 1743,1777,943,1770,457,1778,1820,172,2516,41, + 812,38,330,2795,36,874,33,37,849,32, + 34,1608,31,29,58,1609,114,84,85,116, + 4074,1610,1701,1635,1735,1719,1761,1743,1777,390, + 1770,2311,1778,1820,172,1084,41,812,38,2320, + 4522,36,874,33,37,849,67,34,1560,2516, + 41,812,38,297,2795,36,874,33,37,849, + 32,34,1608,31,29,58,1609,114,84,85, + 116,59,1610,1701,1635,1735,1719,1761,1743,1777, + 943,1770,2367,1778,1820,172,2516,41,812,38, + 421,2795,36,874,33,37,849,32,34,1608, + 31,29,58,1609,114,84,85,116,2757,1610, + 1701,1635,1735,1719,1761,1743,1777,943,1770,290, + 1778,1820,172,1084,41,812,38,2236,4522,36, + 874,33,37,849,66,34,1560,2516,41,812, + 38,3039,2795,36,874,33,37,849,32,34, + 1608,31,29,58,1609,114,84,85,116,105, + 1610,1701,1635,1735,1719,1761,1743,1777,1643,1770, + 2135,1778,1820,172,2572,41,812,38,420,2795, + 36,874,33,37,849,32,34,1608,31,29, + 58,1609,114,84,85,116,106,1610,1701,1635, + 1735,1719,1761,1743,1777,1965,1770,309,1778,1820, + 172,1618,41,812,38,1966,1753,36,874,2523, + 37,849,1905,41,395,2516,41,812,38,423, + 2795,36,874,33,37,849,32,34,1608,31, + 29,58,1609,114,84,85,116,381,1610,1701, + 1635,1735,1719,1761,1743,1777,31,1770,2040,2767, + 3055,151,2516,41,812,38,2147,2795,36,874, + 33,37,849,32,34,1608,31,29,58,1609, + 114,84,85,116,1367,1610,1701,1635,1735,1719, + 1761,1743,1777,2493,2666,2516,41,812,38,307, + 2795,36,874,33,37,849,32,34,1608,31, + 29,58,1609,114,84,85,116,1753,1610,1701, + 1635,1735,1719,1761,1743,2645,2516,41,812,38, + 1946,2795,36,874,33,37,849,32,34,1608, + 31,29,58,1609,114,84,85,116,3307,1610, + 1701,1635,1735,1719,2590,2516,41,812,38,2210, + 2795,36,874,33,37,849,32,34,1608,31, + 29,58,1609,114,84,85,116,1718,1610,1701, + 1635,1735,2618,2516,41,812,38,2379,2795,36, + 874,33,37,849,32,34,1608,31,29,58, + 1609,114,84,85,116,521,1610,1701,1635,2314, + 2516,41,812,38,1873,2795,36,874,33,37, + 849,32,34,1608,31,29,58,1609,114,84, + 85,116,356,1610,1701,1635,2407,2516,41,812, + 38,1118,2795,36,874,33,37,849,32,34, + 1608,31,29,58,1609,114,84,85,116,2993, + 1610,1701,1635,2444,2516,41,812,38,2557,2795, + 36,874,33,37,849,32,34,1608,31,29, + 58,1609,114,84,85,116,1835,1610,1701,1635, + 2522,265,2091,151,239,533,1618,41,812,38, + 1837,2208,36,874,343,37,849,31,687,41, + 298,3541,1384,236,1500,1518,2582,1124,1394,599, + 41,810,389,1391,164,687,41,1254,283,188, + 2893,304,403,857,2754,1578,1391,211,222,3152, + 210,219,220,221,223,1,687,41,298,533, + 1560,177,2628,41,810,389,57,2549,1173,357, + 1876,151,1097,1124,1178,244,176,236,335,1689, + 1753,191,175,178,179,180,181,182,164,1753, + 521,3752,1572,188,2893,1500,1518,857,1915,280, + 3316,211,222,3152,210,219,220,221,223,303, + 773,4052,3539,363,2582,177,1233,41,1129,1646, + 30,4282,2291,239,335,591,189,3582,1854,1861, + 176,301,346,2448,857,192,175,178,179,180, + 181,182,392,425,31,292,2306,436,1130,242, + 237,238,379,57,3819,394,425,2472,3043,1097, + 2591,924,281,1268,41,812,38,2588,1124,36, + 874,342,37,849,2078,1525,2575,164,249,252, + 255,258,2636,2022,2633,2460,41,812,38,627, + 2795,36,874,33,37,849,32,34,1608,31, + 29,58,1609,94,84,85,2901,2919,3127,3512, + 3516,4390,687,41,1254,288,292,734,1560,335, + 323,1001,325,2438,1168,1468,318,917,687,41, + 1254,285,3207,1309,1113,41,812,38,4144,612, + 36,874,342,37,849,2738,1525,679,377,2516, + 41,812,38,2889,2795,36,874,33,37,849, + 32,34,1608,31,29,58,1609,114,84,85, + 116,401,1610,1701,2530,1098,41,810,389,2490, + 511,41,810,389,2291,311,315,2494,734,291, + 1102,323,1001,325,2542,3316,384,318,917,2633, + 4114,1185,89,2488,597,2582,537,355,2582,2027, + 1911,31,57,4113,157,3574,1217,280,1097,4667, + 2548,354,96,2754,2495,110,2754,347,2516,2389, + 352,2516,41,812,38,1904,2795,36,874,33, + 37,849,32,34,1608,31,29,58,1609,114, + 84,85,116,2524,1610,1701,2531,1073,1708,41, + 812,38,3309,355,36,874,342,37,849,1322, + 41,812,38,151,1124,36,874,342,37,849, + 3187,2804,355,347,2516,2389,352,2546,1391,354, + 1475,3061,363,80,246,364,520,353,2547,3028, + 151,533,347,2516,2389,352,2347,1854,1861,31, + 345,187,734,2566,369,323,1001,325,3687,236, + 1679,318,917,734,2908,336,323,1001,325,1572, + 164,355,321,917,1212,188,2893,97,206,857, + 110,2498,239,211,222,3152,210,219,220,221, + 223,347,2516,2389,352,332,338,177,2551,3061, + 239,31,441,31,2556,1130,533,533,247,237, + 238,857,176,687,41,1254,3147,3054,175,178, + 179,180,181,182,236,346,251,237,238,379, + 687,41,810,389,2246,164,164,393,425,1185, + 188,2893,2609,2582,857,2580,2600,2829,211,222, + 3152,210,219,220,221,223,529,177,2600,2584, + 533,2754,177,1339,41,812,38,429,1124,36, + 874,342,37,849,954,2028,31,176,236,2582, + 2615,1753,184,175,178,179,180,181,182,164, + 2201,41,1254,283,188,2893,2198,2754,857,2458, + 533,2214,211,222,3152,210,219,220,221,223, + 617,2426,353,151,533,2582,177,734,3758,336, + 323,1001,325,2043,31,3201,319,917,953,164, + 363,176,236,346,188,2893,195,175,178,179, + 180,181,182,164,3650,1854,1861,3073,188,2893, + 2198,205,857,1753,1130,1478,211,222,3152,210, + 219,220,221,223,705,31,503,2610,533,2582, + 177,203,1922,41,812,38,2683,2615,36,874, + 342,37,849,164,77,176,236,346,208,3328, + 3330,175,178,179,180,181,182,164,687,3276, + 1254,82,188,2893,500,502,857,1375,239,2829, + 211,222,3152,210,219,220,221,223,793,31, + 1995,31,533,4125,177,1277,734,157,2125,320, + 918,325,4676,1124,254,237,238,151,2704,176, + 236,3275,2631,1862,200,175,178,179,180,181, + 182,164,2201,41,1254,3310,188,2893,2299,31, + 857,939,1130,1130,211,222,3152,210,219,220, + 221,223,881,3542,204,405,533,2214,177,1618, + 41,812,38,3455,336,36,874,3217,37,849, + 151,164,3630,176,236,2396,2637,170,194,175, + 178,179,180,181,182,164,687,41,1254,3329, + 188,2893,2108,1431,857,861,1684,2582,211,222, + 3152,210,219,220,221,223,716,31,209,1384, + 2262,4225,177,2582,1124,236,1618,41,812,38, + 2602,2652,36,874,46,37,849,176,151,2654, + 2500,2754,202,175,178,179,180,181,182,213, + 222,3152,212,219,220,221,223,1206,41,1980, + 38,2588,1124,36,874,342,37,849,214,216, + 218,299,300,725,3316,335,207,17,1399,2658, + 215,217,2516,41,812,38,1753,2795,36,874, + 33,37,849,32,34,1608,31,29,58,1609, + 114,84,85,116,2819,1610,2198,3275,31,3714, + 363,734,4616,335,323,1001,325,76,79,5279, + 318,917,4190,1173,3582,1854,1861,5279,1124,336, + 41,451,151,1067,4594,31,15,1753,1964,3019, + 52,1476,1130,2516,41,812,38,2889,2795,36, + 874,33,37,849,32,34,1608,31,29,58, + 1609,114,84,85,116,31,1610,2200,61,3081, + 3238,168,589,3747,2679,41,812,38,4144,335, + 36,874,342,37,849,2516,41,812,38,151, + 2795,36,874,33,37,849,32,34,1608,31, + 29,58,1609,114,84,85,116,151,2235,5279, + 1964,1753,2855,3208,1130,1753,2582,416,1987,31, + 2296,5279,3091,2804,5279,1124,3109,229,734,5279, + 5279,323,1001,325,236,3427,5279,318,917,5279, + 2753,1753,95,168,31,201,60,355,1520,2770, + 524,2868,2273,31,1124,2582,533,4310,213,222, + 3152,212,219,220,221,223,5279,347,2516,2389, + 352,5279,449,236,346,525,3510,214,216,218, + 299,300,725,239,2949,164,224,239,2582,215, + 217,196,1753,448,1812,1819,4494,213,222,3152, + 212,219,220,221,223,336,236,3505,31,257, + 237,238,1130,260,237,238,214,216,218,299, + 300,725,355,3543,5279,224,4265,860,215,217, + 213,222,3152,212,219,220,221,223,5279,5279, + 1753,164,349,2516,2389,352,5279,2677,5279,214, + 216,218,299,300,725,198,5279,5279,224,104, + 1753,215,217,5279,5279,4265,2166,2516,41,812, + 38,98,2795,36,874,33,37,849,32,34, + 1608,31,29,58,1609,114,84,85,116,1964, + 2245,3775,5279,1130,1905,41,395,1073,4265,2580, + 2516,41,812,38,5279,2795,36,874,33,37, + 849,32,34,1608,31,29,58,1609,114,84, + 85,116,168,2288,1223,41,812,38,3422,1124, + 36,874,342,37,849,2516,41,812,38,1753, + 2795,36,874,33,37,849,32,34,1608,31, + 29,58,1609,114,84,85,93,1507,3687,1753, + 5279,2582,687,41,810,389,5279,1753,31,1753, + 3802,5279,4096,5279,687,41,810,389,734,236, + 336,323,1001,325,1753,31,3531,319,917,4389, + 3036,687,41,810,389,337,338,355,3090,280, + 3144,1753,3369,213,222,3152,212,219,220,221, + 223,432,31,5279,5279,75,3257,349,2516,2389, + 352,5279,214,216,218,299,300,725,431,2031, + 5279,17,74,3464,215,217,2516,1295,812,1902, + 5279,2795,36,874,33,37,849,32,34,1608, + 31,29,58,1609,114,84,85,92,2516,41, + 812,38,282,2795,36,874,33,37,849,32, + 34,1608,31,29,58,1609,114,84,85,91, + 31,1753,5279,5279,1562,5279,2516,41,812,38, + 16,2795,36,874,33,37,849,32,34,1608, + 31,29,58,1609,114,84,85,90,2516,41, + 812,38,73,2795,36,874,33,37,849,32, + 34,1608,31,29,58,1609,114,84,85,89, + 2516,41,812,38,5279,2795,36,874,33,37, + 849,32,34,1608,31,29,58,1609,114,84, + 85,88,2516,41,812,38,5279,2795,36,874, + 33,37,849,32,34,1608,31,29,58,1609, + 114,84,85,87,2516,41,812,38,5279,2795, + 36,874,33,37,849,32,34,1608,31,29, + 58,1609,114,84,85,86,2339,41,812,38, + 5279,2795,36,874,33,37,849,32,34,1608, + 31,29,58,1609,114,84,85,112,2516,41, + 812,38,5279,2795,36,874,33,37,849,32, + 34,1608,31,29,58,1609,114,84,85,118, + 2516,41,812,38,5279,2795,36,874,33,37, + 849,32,34,1608,31,29,58,1609,114,84, + 85,117,2516,41,812,38,5279,2795,36,874, + 33,37,849,32,34,1608,31,29,58,1609, + 114,84,85,115,2516,41,812,38,1753,2795, + 36,874,33,37,849,32,34,1608,31,29, + 58,1609,114,84,85,113,1852,41,812,38, + 2588,5279,36,874,342,37,849,31,2028,72, + 1753,533,2582,1173,1753,2064,1753,1753,1124,2582, + 687,41,810,389,31,1073,5279,949,1604,346, + 2754,5279,4598,775,41,810,389,236,31,5279, + 164,1533,1130,5279,1173,1617,196,63,62,1124, + 734,4494,31,323,1001,325,2582,430,5279,318, + 917,213,222,3152,212,219,220,221,223,335, + 57,164,612,1753,346,1753,1097,3774,55,5279, + 214,216,218,299,300,725,3687,31,5279,517, + 1753,533,215,217,2966,2538,2829,31,2582,503, + 335,1130,1168,3539,3497,5279,109,2013,5279,346, + 3749,863,41,810,389,5279,236,5279,311,315, + 164,3252,5279,334,338,1073,196,5279,2980,1108, + 164,4494,2582,527,3714,5279,3791,501,502,3479, + 213,222,3152,212,219,220,221,223,57,1217, + 236,5279,5279,5279,1097,5279,55,5279,5279,214, + 216,218,299,300,725,2888,5279,5279,518,2582, + 5279,215,217,2241,213,222,3152,212,219,220, + 221,223,1242,41,810,389,3687,236,5279,428, + 3757,5279,5279,214,216,218,299,300,725,3042, + 5279,5279,310,2582,5279,215,217,5279,5279,5279, + 1073,213,222,3152,212,219,220,221,223,57, + 5279,236,5279,3534,338,1097,5279,55,5279,5279, + 214,216,218,299,300,725,5279,5279,5279,225, + 5279,5279,215,217,912,213,222,3152,212,219, + 220,221,223,1988,41,812,38,2588,5279,36, + 874,342,37,849,214,216,218,299,300,725, + 5279,3687,5279,497,5279,5279,215,217,1786,41, + 1980,38,2588,5279,36,874,342,37,849,1073, + 2689,41,810,389,5279,2549,5279,1037,5279,5279, + 31,2582,1173,245,1130,5279,5279,734,3870,338, + 323,1001,325,5279,5279,5279,318,917,5279,236, + 31,5279,1964,5279,1130,5279,1130,280,5279,612, + 31,5279,734,164,2582,323,1001,325,5279,3871, + 5279,318,917,2524,406,4526,687,41,810,389, + 3687,239,346,164,1067,168,5279,5279,5279,4078, + 5279,5279,407,408,409,299,300,725,687,41, + 810,389,5279,5279,2829,312,315,243,237,238, + 5279,5279,31,57,5279,2061,1130,4124,338,1097, + 281,2417,5279,5279,1988,41,812,38,2588,1425, + 36,874,342,37,849,57,250,253,256,259, + 2636,1097,5279,728,5279,164,5279,627,5279,4116, + 5279,2110,687,41,810,389,1246,41,812,38, + 3347,5279,36,874,342,37,849,5279,417,1987, + 1124,5279,5279,5279,2582,1173,5279,5279,734,5279, + 5279,323,1001,325,5279,410,412,318,917,57, + 5279,5279,236,5279,402,1097,5279,2548,5279,5279, + 3320,5279,5279,949,599,41,810,389,4598,1988, + 734,4540,5279,320,918,325,2524,406,4526,1828, + 41,810,389,5279,1898,41,810,389,1898,41, + 810,389,5279,5279,5279,407,408,409,299,300, + 725,57,1898,41,810,389,2077,1097,5279,55, + 2582,1395,41,810,389,5279,57,5279,5279,5279, + 5279,57,1097,5279,55,57,815,1097,2754,55, + 5279,1097,1425,55,863,41,810,389,5279,57, + 2054,2576,5279,5279,2582,1097,920,55,57,5279, + 3010,5279,5279,5279,1097,5279,2743,1898,41,810, + 389,5279,346,5279,3764,1108,1898,41,810,389, + 716,57,5279,3752,5279,5279,2304,1097,5279,3292, + 2582,5279,31,31,786,5279,533,533,410,413, + 5279,5279,5279,5279,57,31,2800,503,346,2582, + 1097,5279,55,57,346,346,5279,528,31,1097, + 31,55,533,5279,2582,164,164,346,5279,3781, + 2829,3376,2609,5279,5279,427,2829,2829,4120,31, + 346,531,346,2582,5279,500,502,3133,3501,2829, + 5279,164,31,5279,31,5279,2582,196,2582,1887, + 2069,346,4494,5279,2829,5279,1964,31,1964,5279, + 1130,1130,1130,5279,346,507,346,5279,5279,5279, + 5279,5279,5279,2829,3103,5279,5279,5279,5279,5279, + 5279,5279,5279,5279,505,5279,2829,5279,2829,168, + 164,168,5279,5279,5279,5279,4173,3729,5279,532, + 5279,5279,5279,5279,5279,5279,5279,454,5279,5279, + 5279,3759,5279,5279,5279,5279,5279,5279,5279,5279, + 5279,5279,5279,5279,5279,5279,5279,5279,440,5279, + 5279,5279,5279,5279,5279,5279,5279,5279,5279,5279, + 5279,5279,5279,5279,5279,5279,5279,5279,5279,5279, + 5279,5279,5279,4117,5279,4175,5279,5279,5279,5279, + 5279,5279,5279,5279,5279,5279,5279,4202,5279,0, + 499,4115,0,235,1,0,45,5299,0,45, + 5298,0,1,578,0,1,644,0,1,4650, + 0,1,5299,2,0,1,5298,2,0,5520, + 248,0,5519,248,0,5620,248,0,5619,248, + 0,5547,248,0,5546,248,0,5545,248,0, + 5544,248,0,5543,248,0,5542,248,0,5541, + 248,0,5540,248,0,5558,248,0,5557,248, + 0,5556,248,0,5555,248,0,5554,248,0, + 5553,248,0,5552,248,0,5551,248,0,5550, + 248,0,5549,248,0,5548,248,0,45,248, + 5299,0,45,248,5298,0,5323,248,0,1730, + 388,0,56,5299,0,56,5298,0,45,1, + 5299,2,0,45,1,5298,2,0,5323,1, + 0,1,5612,0,1,1814,0,1730,35,0, + 438,1856,0,452,1940,0,5291,1,0,5299, + 56,0,5298,56,0,1982,322,0,45,5299, + 2,0,45,5298,2,0,41,39,0,1, + 442,0,456,1312,0,455,1945,0,235,227, + 0,499,1440,0,5323,235,1,0,45,235, + 1,0,235,415,0,43,5299,0,43,5298, + 0,51,5321,0,51,43,0,1,1035,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,1,5550,0,1,5549,0, + 1,5548,0,45,1,5299,0,45,1,5298, + 0,863,1,0,1,1266,0,1,2252,0, + 235,226,0,5289,404,0,5288,404,0,235, + 414,0,44,5299,0,44,5298,0,2467,134, + 0,5287,1,0,5612,443,0,1814,443,0, + 5321,53,0,53,43,0,5285,1,0,5284, + 1,0,1730,47,0,3239,99,0,38,40, + 0,45,644,0,235,1,2807,0,5288,235, + 0,2822,235,0,45,1,0,244,3428,0, + 389,38,0,38,389,0,388,35,0,35, + 388,0,2467,136,0,2467,135,0,3037,235, + 0,10,12,0,8,12,0,55,43,0, + 1,100,0,43,55,0,8,10,12,0, + 43,5299,2,0,43,5298,2,0,5299,42, + 0,5298,42,0,5612,103,0,1814,103,0, + 41,81,0,285,4422,0,193,3198,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1086,319 +1073,328 @@ 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,0,0, - 30,31,32,33,34,35,36,37,38,39, + 20,21,22,23,24,25,26,27,0,29, + 0,31,32,33,34,35,36,37,38,39, 40,41,42,43,44,45,46,47,48,49, - 50,51,52,53,54,55,56,57,29,59, - 60,61,62,0,64,65,66,67,68,0, - 1,2,72,4,74,0,76,77,78,79, + 50,51,52,53,54,55,56,57,30,59, + 60,61,0,63,64,65,66,67,0,69, + 0,71,10,3,74,0,76,77,78,79, 80,81,82,83,84,85,86,87,0,1, 2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,88,89,30,31, + 22,23,24,25,26,27,0,29,56,31, 32,33,34,35,36,37,38,39,40,41, 42,43,44,45,46,47,48,49,50,51, - 52,53,54,55,56,57,0,59,60,61, - 62,76,64,65,66,67,68,0,0,0, - 72,3,74,6,76,77,78,79,80,81, + 52,53,54,55,56,57,30,59,60,61, + 0,63,64,65,66,67,0,69,8,71, + 4,11,74,95,76,77,78,79,80,81, 82,83,84,85,86,87,0,1,2,3, 4,5,6,7,8,9,10,11,12,13, 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,0,0,30,31,32,33, + 24,25,26,27,0,29,0,31,32,33, 34,35,36,37,38,39,40,41,42,43, 44,45,46,47,48,49,50,51,52,53, - 54,55,56,57,29,59,60,61,62,0, - 64,65,66,67,68,0,1,2,91,92, - 74,0,76,77,78,79,80,81,82,83, + 54,55,56,57,28,59,60,61,0,63, + 64,65,66,67,0,69,8,71,0,11, + 74,3,76,77,78,79,80,81,82,83, 84,85,86,87,0,1,2,3,4,5, 6,7,8,9,10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25, - 26,27,88,89,30,31,32,33,34,35, + 26,27,0,29,0,31,32,33,34,35, 36,37,38,39,40,41,42,43,44,45, 46,47,48,49,50,51,52,53,54,55, - 56,57,71,59,60,61,62,0,64,65, - 66,67,68,0,1,2,0,4,74,3, + 56,57,28,59,60,61,0,63,64,65, + 66,67,6,69,0,0,1,2,74,4, 76,77,78,79,80,81,82,83,84,85, 86,87,0,1,2,3,4,5,6,7, 8,9,10,11,12,13,14,15,16,17, 18,19,20,21,22,23,24,25,26,27, - 0,0,30,31,32,33,34,35,36,37, + 0,29,0,31,32,33,34,35,36,37, 38,39,40,41,42,43,44,45,46,47, 48,49,50,51,52,53,54,55,56,57, - 29,59,60,61,62,0,64,65,66,67, - 68,0,0,1,2,10,74,6,76,77, + 76,59,60,61,0,63,64,65,66,67, + 0,69,0,0,1,2,74,4,76,77, 78,79,80,81,82,83,84,85,86,87, 0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,88,89, - 30,31,32,33,34,35,36,37,38,39, + 20,21,22,23,24,25,26,27,0,29, + 0,31,32,33,34,35,36,37,38,39, 40,41,42,43,44,45,46,47,48,49, - 50,51,52,53,54,55,56,57,0,59, - 60,61,62,0,64,65,66,67,68,0, - 0,8,91,92,74,6,76,77,78,79, + 50,51,52,53,54,55,56,57,28,59, + 60,61,0,63,64,65,66,67,0,69, + 0,1,2,99,74,5,76,77,78,79, 80,81,82,83,84,85,86,87,0,1, 2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,0,59,30,31, + 22,23,24,25,26,27,0,29,0,31, 32,33,34,35,36,37,38,39,40,41, 42,43,44,45,46,47,48,49,50,51, - 52,53,54,55,56,57,0,59,60,61, - 62,5,64,65,66,67,68,0,1,2, - 91,92,74,0,76,77,78,79,80,81, + 52,53,54,55,56,57,28,59,60,61, + 0,63,64,65,66,67,0,69,0,1, + 2,0,74,101,76,77,78,79,80,81, 82,83,84,85,86,87,0,1,2,3, 4,5,6,7,8,9,10,11,12,13, 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,88,89,30,31,32,33, + 24,25,26,27,0,29,0,31,32,33, 34,35,36,37,38,39,40,41,42,43, 44,45,46,47,48,49,50,51,52,53, - 54,55,56,57,71,59,60,61,62,0, - 64,65,66,67,68,0,0,1,2,4, - 74,5,76,77,78,79,80,81,82,83, + 54,55,56,57,28,59,60,61,0,63, + 64,65,66,67,0,69,0,1,2,99, + 74,95,76,77,78,79,80,81,82,83, 84,85,86,87,0,1,2,3,4,5, 6,7,8,9,10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25, - 26,27,0,0,30,31,32,33,34,35, + 26,27,0,29,0,31,32,33,34,35, 36,37,38,39,40,41,42,43,44,45, 46,47,48,49,50,51,52,53,54,55, - 56,57,0,59,60,61,62,0,64,65, - 66,67,68,0,1,2,97,98,74,0, + 56,57,0,59,60,61,4,63,64,65, + 66,67,0,69,0,1,2,0,74,101, 76,77,78,79,80,81,82,83,84,85, 86,87,0,1,2,3,4,5,6,7, 8,9,10,11,12,13,14,15,16,17, 18,19,20,21,22,23,24,25,26,27, - 88,89,30,31,32,33,34,35,36,37, + 0,29,0,31,32,33,34,35,36,37, 38,39,40,41,42,43,44,45,46,47, 48,49,50,51,52,53,54,55,56,57, - 0,59,60,61,62,0,64,65,66,67, - 68,0,0,1,2,4,74,5,76,77, + 0,59,60,61,4,63,64,65,66,67, + 0,69,0,1,2,5,74,95,76,77, 78,79,80,81,82,83,84,85,86,87, - 0,1,2,3,4,5,6,7,8,28, - 10,29,12,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,58,0, - 30,31,32,33,34,35,36,37,38,39, - 40,41,42,43,44,45,71,47,48,49, - 50,51,52,53,54,55,56,28,0,59, - 0,61,0,0,64,65,66,0,1,2, - 3,4,5,6,7,8,9,10,11,12, - 13,14,15,16,17,18,19,20,21,22, - 23,0,1,2,32,33,29,30,7,32, - 33,0,35,36,37,38,39,40,41,42, - 0,0,0,46,0,1,2,3,4,5, - 6,7,8,63,57,0,59,0,1,2, - 70,64,65,66,0,0,1,2,71,72, - 28,74,75,9,0,1,2,3,4,5, - 6,7,8,9,10,11,12,13,14,15, - 16,17,18,19,20,21,22,23,0,58, - 103,104,105,29,30,63,32,33,10,35, - 36,37,38,39,40,41,42,77,0,62, - 46,0,1,2,3,4,5,6,7,8, - 0,57,0,59,70,93,94,73,64,65, - 66,9,24,25,46,71,72,0,74,75, - 0,0,1,2,3,4,5,6,7,8, - 9,10,11,12,13,14,15,16,17,18, - 19,20,21,22,23,28,121,103,104,105, - 29,30,0,32,33,0,35,36,37,38, - 39,40,41,42,62,0,0,46,3,69, - 0,1,2,0,9,5,3,7,57,6, - 59,8,9,31,11,64,65,66,0,1, - 2,71,71,72,28,74,75,24,25,26, - 27,28,102,0,1,2,0,107,108,109, - 110,111,112,113,114,115,116,117,0,1, - 2,0,4,58,103,104,105,0,63,0, - 3,58,29,4,28,70,63,71,73,0, - 1,2,69,70,71,72,73,29,0,1, - 2,3,4,5,6,7,8,9,0,11, - 12,88,89,90,91,92,93,94,95,96, - 97,98,99,100,101,102,28,29,0,106, - 107,108,109,110,111,112,113,114,115,116, - 117,118,0,120,46,3,69,0,6,0, - 8,9,0,11,0,57,67,68,60,12, - 0,9,8,11,4,0,24,25,26,27, - 28,63,0,75,103,104,105,30,70,32, - 33,9,35,36,37,38,39,40,41,42, - 0,1,2,3,4,5,6,7,8,71, - 58,0,1,2,3,63,5,0,7,0, - 3,69,70,71,72,73,0,1,2,3, - 4,5,6,7,8,0,1,2,63,4, - 88,89,90,91,92,93,94,95,96,97, - 98,99,100,101,102,73,97,98,106,107, - 108,109,110,111,112,113,114,115,116,117, - 118,71,120,0,1,2,3,4,5,6, - 7,8,9,10,11,12,13,14,15,16, - 17,18,19,20,21,22,23,62,0,0, - 1,2,29,30,0,32,33,0,35,36, - 37,38,39,40,41,42,0,1,2,46, - 0,1,2,3,0,5,28,7,29,9, - 57,11,59,60,0,1,2,64,65,66, - 0,1,2,0,1,2,0,74,75,0, - 1,2,3,4,5,6,7,8,9,10, - 11,12,13,14,15,16,17,18,19,20, - 21,22,23,69,28,0,1,2,29,30, - 0,32,33,3,35,36,37,38,39,40, - 41,42,0,0,121,46,0,1,2,0, - 1,2,3,4,29,6,57,8,59,60, - 67,68,0,64,65,66,4,0,6,95, - 8,28,0,74,75,29,4,0,0,1, - 2,3,4,5,6,7,8,0,10,0, - 0,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,0,58,31,31, - 0,0,34,0,0,0,0,4,28,9, - 121,43,44,45,9,47,48,49,50,51, - 52,53,54,55,56,0,1,2,3,61, - 5,63,7,30,102,67,68,0,1,2, - 3,4,5,6,7,8,9,10,69,117, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,0,1,2,31,4, - 5,34,7,73,0,70,70,72,0,122, - 43,44,45,9,47,48,49,50,51,52, - 53,54,55,56,29,95,71,0,61,62, - 0,1,2,3,100,5,9,7,11,72, 0,1,2,3,4,5,6,7,8,9, - 10,0,0,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,0,1, - 2,31,4,5,34,7,72,0,70,28, - 0,1,2,43,44,45,9,47,48,49, - 50,51,52,53,54,55,56,29,0,0, - 0,61,62,0,1,2,3,4,5,6, - 7,8,72,10,63,0,13,14,15,16, - 17,18,19,20,21,22,23,24,25,26, - 27,0,1,2,31,4,5,34,7,0, - 1,2,0,28,93,94,43,44,45,72, - 47,48,49,50,51,52,53,54,55,56, - 0,1,2,3,61,5,0,7,29,70, - 67,68,0,1,2,3,4,5,6,7, - 8,0,10,0,0,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 0,1,2,31,4,5,34,7,0,1, - 2,0,28,71,3,43,44,45,58,47, - 48,49,50,51,52,53,54,55,56,0, - 0,1,2,61,4,6,6,29,8,67, - 68,0,1,2,3,4,5,6,7,8, - 9,10,0,0,13,14,15,16,17,18, - 19,20,21,22,23,24,25,26,27,0, - 0,0,31,90,3,34,24,25,9,96, - 11,28,0,0,43,44,45,0,47,48, - 49,50,51,52,53,54,55,56,0,0, - 1,2,3,4,5,6,7,8,0,10, - 28,3,13,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,0,0,58, - 31,0,62,34,26,27,9,0,0,70, - 9,3,43,44,45,62,47,48,49,50, - 51,52,53,54,55,56,28,0,0,118, - 61,62,0,0,0,3,58,5,6,0, - 8,0,1,2,3,0,5,90,7,4, - 9,12,11,96,0,0,24,25,26,27, - 28,63,0,9,9,11,34,99,0,30, - 73,32,33,0,35,36,37,38,39,40, - 41,42,0,0,106,12,24,25,0,0, - 58,93,94,4,0,63,62,9,120,67, - 68,69,70,30,71,32,33,0,35,36, - 37,38,39,40,41,42,9,28,11,118, - 88,89,90,91,92,93,94,0,73,97, - 98,99,100,101,102,0,0,69,106,107, - 108,109,110,111,112,113,114,115,116,0, - 1,2,3,4,5,6,7,8,0,10, - 0,73,13,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,0,0,0, - 31,0,99,34,3,58,0,0,10,10, - 3,31,43,44,45,101,47,48,49,50, - 51,52,53,54,55,56,0,29,29,3, - 61,5,6,0,8,0,1,2,0,4, - 62,6,0,8,9,12,0,9,0,0, - 24,25,26,27,28,100,0,59,59,58, - 34,0,0,30,0,32,33,70,35,36, - 37,38,39,40,41,42,0,0,1,2, - 4,4,0,6,58,8,0,0,0,63, - 28,0,28,67,68,69,70,0,1,2, - 3,4,5,6,7,8,30,0,73,63, - 3,73,63,0,88,89,90,91,92,93, - 94,0,0,97,98,99,100,101,102,0, - 95,70,106,107,108,109,110,111,112,113, - 114,115,116,0,1,2,3,4,5,6, - 7,8,0,10,63,58,13,14,15,16, - 17,18,19,20,21,22,23,24,25,26, - 27,0,90,0,31,0,90,34,96,103, - 104,105,96,70,63,0,43,44,45,4, - 47,48,49,50,51,52,53,54,55,56, - 71,58,0,1,2,3,4,5,6,7, - 8,0,10,28,0,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 0,58,0,31,0,0,34,0,0,28, - 0,70,0,0,69,43,44,45,0,47, - 48,49,50,51,52,53,54,55,56,0, - 0,0,3,61,0,1,2,3,4,5, - 6,7,8,0,10,0,3,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,0,0,0,31,3,3,34,69, - 63,69,0,69,0,63,63,43,44,45, - 0,47,48,49,50,51,52,53,54,55, - 56,0,1,2,3,4,5,6,7,8, - 95,10,0,119,13,14,15,16,17,18, - 19,20,21,22,23,24,25,26,27,101, - 0,0,31,3,3,34,0,0,0,3, - 3,3,58,61,43,44,45,0,47,48, - 49,50,51,52,53,54,55,56,0,1, - 2,3,4,5,6,7,8,95,10,0, - 0,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,0,0,0,31, - 3,3,34,0,0,0,3,9,3,0, - 0,43,44,45,4,47,48,49,50,51, - 52,53,54,55,56,0,1,2,0,4, - 0,3,28,0,0,10,0,12,13,14, - 15,16,17,18,19,20,21,22,23,69, - 0,0,0,3,58,30,58,32,33,0, - 35,36,37,38,39,40,41,42,0,1, - 2,73,4,0,6,0,8,0,1,2, - 28,4,0,6,59,8,0,0,0,64, - 65,66,0,1,2,0,4,0,119,69, - 3,0,10,69,12,13,14,15,16,17, - 18,19,20,21,22,23,0,0,0,0, - 0,0,30,0,32,33,0,35,36,37, - 38,39,40,41,42,0,1,2,3,4, - 5,6,7,8,9,0,11,12,0,0, - 0,59,119,0,0,0,64,65,66,0, - 0,0,0,28,0,30,0,32,33,0, - 35,36,37,38,39,40,41,42,0,0, - 1,2,3,4,5,6,7,8,9,0, - 11,12,0,58,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,73,30, - 0,32,33,0,35,36,37,38,39,40, - 41,42,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,58,12,13, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,0,29, + 0,31,32,33,34,35,36,37,38,39, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,54,55,56,57,0,59, + 60,61,0,63,64,65,66,67,0,69, + 8,0,4,0,74,4,76,77,78,79, + 80,81,82,83,84,85,86,87,0,1, + 2,3,4,5,6,7,68,9,10,31, + 12,13,14,15,16,17,18,19,20,21, + 22,23,24,25,26,27,0,29,60,31, + 32,33,34,35,36,37,38,39,40,41, + 42,43,44,45,46,47,48,49,50,51, + 52,53,54,55,28,0,1,2,60,61, + 77,121,64,8,66,67,0,1,2,3, + 4,5,6,7,8,9,10,11,12,13, 14,15,16,17,18,19,20,21,22,23, - 0,0,73,0,0,0,30,0,32,33, - 0,35,36,37,38,39,40,41,42,0, + 118,0,114,115,116,4,30,31,72,33, + 34,35,0,0,38,0,40,41,42,43, + 0,0,46,0,1,2,50,4,5,28, + 7,0,56,57,69,0,60,0,1,2, + 64,0,66,67,3,33,34,71,72,8, + 74,75,0,1,2,3,4,5,6,7, + 29,9,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,0,1,2, + 114,115,116,30,31,0,33,34,35,58, + 63,38,65,40,41,42,43,0,0,46, + 58,0,0,50,73,8,4,30,6,56, + 57,9,70,60,0,90,0,64,0,66, + 67,96,8,0,71,72,3,74,75,6, + 0,8,9,3,11,0,1,2,3,4, + 5,6,7,58,9,29,28,24,25,26, + 27,28,0,1,2,3,4,5,6,7, + 62,9,0,1,2,68,4,114,115,116, + 73,0,1,2,0,0,1,2,3,0, + 5,58,7,8,0,62,11,73,58,88, + 89,68,30,70,71,72,73,0,1,2, + 3,4,5,6,7,0,9,72,3,95, + 58,88,89,90,91,92,93,94,95,96, + 97,98,99,100,101,102,103,104,105,106, + 107,108,109,110,111,112,113,0,0,0, + 117,118,3,120,70,6,8,8,9,11, + 11,0,1,2,3,4,5,6,7,0, + 9,24,25,24,25,26,27,28,0,1, + 2,3,4,5,6,7,102,9,104,105, + 106,107,108,109,110,111,112,113,0,1, + 2,117,4,5,0,7,0,58,0,1, + 2,62,4,5,0,7,68,68,4,70, + 71,72,73,0,1,2,0,4,30,6, + 0,8,9,0,0,1,2,88,89,90, + 91,92,93,94,95,96,97,98,99,100, + 101,102,103,104,105,106,107,108,109,110, + 111,112,113,30,0,0,117,118,3,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,88,89,73,63,72,65, + 30,31,72,33,34,35,102,0,38,0, + 40,41,42,43,0,8,46,0,95,10, + 50,117,8,6,0,11,56,57,0,59, + 60,0,1,2,64,70,66,67,7,0, + 1,2,0,0,74,75,0,1,2,3, + 4,5,6,7,8,9,10,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 28,0,1,2,0,68,30,31,71,33, + 34,35,68,0,38,71,40,41,42,43, + 62,121,46,0,1,2,50,4,5,0, + 7,30,56,57,62,59,60,8,91,92, + 64,0,66,67,0,1,2,0,4,8, + 74,75,8,30,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,0,29,0,72,32,0,1,2, + 36,37,5,39,7,0,0,121,44,45, + 71,47,48,49,9,51,52,53,54,55, + 69,0,0,69,3,61,62,63,6,65, + 0,1,2,3,4,5,6,7,8,9, + 10,0,70,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,0,29, + 68,0,32,0,1,2,36,37,0,39, + 0,114,115,116,44,45,70,47,48,49, + 0,51,52,53,54,55,28,0,1,2, + 3,61,5,30,7,8,28,0,28,69, + 0,71,0,1,2,3,4,5,6,7, + 8,9,10,91,92,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 62,29,0,0,32,0,0,4,36,37, + 8,39,62,8,0,58,44,45,68,47, + 48,49,8,51,52,53,54,55,97,98, + 73,93,94,61,31,0,1,2,3,0, + 5,69,7,71,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,0,29,69,73,32,0,1,2, + 36,37,0,39,0,71,0,3,44,45, + 0,47,48,49,0,51,52,53,54,55, + 28,0,1,2,3,61,5,72,7,8, + 24,25,11,69,0,1,2,3,4,5, + 6,7,0,9,10,0,0,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,58,29,62,0,32,0,1,2, + 36,37,58,39,0,1,2,0,44,45, + 0,47,48,49,0,51,52,53,54,55, + 0,0,1,2,3,61,5,63,7,65, + 0,1,2,3,4,5,6,7,0,9, + 10,3,28,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,0,29, + 88,89,32,0,0,0,36,37,58,39, + 0,8,97,98,44,45,62,47,48,49, + 0,51,52,53,54,55,28,0,1,2, + 3,61,5,63,7,65,0,1,2,3, + 4,5,6,7,8,9,10,93,94,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,0,29,0,0,32,3, + 0,0,36,37,8,39,73,10,8,0, + 44,45,0,47,48,49,0,51,52,53, + 54,55,28,0,90,90,3,30,5,6, + 96,96,9,0,1,2,3,4,5,6, + 7,8,9,0,11,12,0,24,25,26, + 27,28,0,0,58,32,10,60,62,0, + 0,28,0,30,68,3,0,1,2,73, + 4,28,6,73,62,9,30,0,1,2, + 68,58,5,0,118,62,63,28,65,56, + 57,68,59,70,0,1,2,0,4,90, + 6,100,0,9,0,96,60,30,75,0, + 6,88,89,90,91,92,93,94,0,0, + 97,98,99,100,101,102,103,104,105,106, + 107,108,109,110,111,112,113,0,1,2, + 3,4,5,6,7,62,9,10,88,89, + 13,14,15,16,17,18,19,20,21,22, + 23,24,25,26,27,68,29,0,0,32, + 0,1,2,36,37,8,39,0,11,0, + 62,44,45,0,47,48,49,68,51,52, + 53,54,55,0,0,91,92,3,61,5, + 6,24,25,9,0,0,1,2,3,4, + 5,6,7,8,9,0,11,12,24,25, + 26,27,28,0,1,2,32,4,0,6, + 0,0,9,28,4,4,31,58,33,34, + 35,58,0,38,0,40,41,42,43,0, + 8,46,58,11,0,50,62,63,28,65, + 0,68,68,58,70,0,1,2,0,4, + 0,6,68,0,9,0,8,28,73,0, + 0,8,88,89,90,91,92,93,94,0, + 62,97,98,99,100,101,102,103,104,105, + 106,107,108,109,110,111,112,113,0,1, + 2,3,4,5,6,7,72,9,10,0, + 0,13,14,15,16,17,18,19,20,21, + 22,23,24,25,26,27,0,29,68,3, + 32,73,62,0,36,37,73,39,0,1, + 2,62,44,45,0,47,48,49,0,51, + 52,53,54,55,0,0,58,0,1,2, + 3,4,5,6,7,100,9,10,30,119, + 13,14,15,16,17,18,19,20,21,22, + 23,24,25,26,27,0,29,0,3,32, + 0,4,0,36,37,0,39,0,1,2, + 0,44,45,70,47,48,49,0,51,52, + 53,54,55,58,70,28,9,0,61,0, + 1,2,3,4,5,6,7,30,9,10, + 0,0,13,14,15,16,17,18,19,20, + 21,22,23,24,25,26,27,0,29,0, + 3,32,0,0,0,36,37,3,39,0, + 70,61,70,44,45,70,47,48,49,0, + 51,52,53,54,55,0,1,2,3,4, + 5,6,7,0,9,10,3,70,13,14, + 15,16,17,18,19,20,21,22,23,24, + 25,26,27,72,29,0,0,32,3,3, + 0,36,37,3,39,0,0,0,3,44, + 45,72,47,48,49,72,51,52,53,54, + 55,0,1,2,3,4,5,6,7,0, + 9,10,3,0,13,14,15,16,17,18, + 19,20,21,22,23,24,25,26,27,0, + 29,0,3,32,0,1,2,36,37,0, + 39,119,3,0,0,44,45,3,47,48, + 49,122,51,52,53,54,55,0,1,2, + 0,4,0,3,30,3,0,10,0,12, + 13,14,15,16,17,18,19,20,21,22, + 23,0,0,0,3,72,3,0,31,0, + 33,34,35,0,28,38,0,40,41,42, + 43,70,0,46,0,119,0,50,0,1, + 2,3,0,5,0,7,0,60,0,1, + 2,64,4,66,67,29,0,0,10,0, + 12,13,14,15,16,17,18,19,20,21, + 22,23,28,0,0,0,0,0,0,31, + 0,33,34,35,0,0,38,70,40,41, + 42,43,0,0,46,0,58,0,50,0, + 0,0,0,0,0,0,0,0,60,0, + 0,0,64,0,66,67,0,1,2,3, + 4,5,6,7,8,9,0,11,12,0, + 1,2,3,4,0,6,0,0,9,0, + 0,0,0,0,0,3,0,31,0,33, + 34,35,0,0,38,0,40,41,42,43, + 0,0,46,0,0,0,50,0,26,27, + 0,0,0,0,58,12,13,14,15,16, + 17,18,19,20,21,22,23,58,0,73, + 0,0,0,0,31,0,33,34,35,0, + 58,38,0,40,41,42,43,0,0,46, + 0,0,0,50,0,1,2,3,4,5, + 6,7,8,9,0,11,12,0,1,2, + 3,4,5,6,7,8,9,0,11,12, + 0,0,0,0,30,103,0,0,1,2, + 3,4,5,6,7,8,9,30,11,12, + 0,0,120,0,0,0,0,0,0,0, + 56,57,0,59,0,0,0,30,0,0, + 0,0,0,56,57,71,59,0,0,75, + 0,0,0,0,0,0,0,0,71,0, + 0,0,75,56,57,0,59,0,0,1, + 2,3,4,5,6,7,8,9,71,11, + 12,0,75,0,0,0,1,2,3,4, + 5,6,7,8,9,0,11,12,30,0, 1,2,3,4,5,6,7,8,9,0, - 11,12,0,1,2,3,4,5,6,7, - 8,9,0,11,12,0,0,0,29,0, - 0,0,1,2,3,4,5,6,7,8, - 9,29,11,12,0,46,0,0,0,0, - 0,0,0,0,0,0,57,0,46,60, - 29,0,0,0,0,0,0,0,0,57, - 0,72,60,0,75,0,0,46,0,0, - 0,0,0,0,72,0,0,75,57,0, - 0,60,0,0,1,2,3,4,5,6, - 7,8,9,72,11,12,75,0,0,0, - 1,2,3,4,5,6,7,8,9,0, - 11,12,29,0,0,0,1,2,3,4, - 5,6,7,8,9,0,11,12,29,46, - 0,0,1,2,3,4,5,6,7,8, - 57,0,0,60,29,46,0,0,0,0, - 0,0,0,0,0,72,57,0,75,60, - 0,46,0,1,2,3,0,5,0,7, - 0,9,57,0,75,60,0,1,2,3, - 4,5,6,7,8,9,0,11,12,58, - 75,0,0,0,0,0,0,0,0,0, - 69,0,0,0,0,29,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 58,0,46,0,0,0,0,0,0,0, - 0,0,0,57,0,73,60,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,75,0,0,0,0,0,0,0,0, + 11,12,0,0,0,30,0,0,0,0, + 0,0,0,0,56,57,0,59,0,30, + 0,0,0,0,0,0,0,0,0,71, + 0,56,57,75,59,0,0,0,0,0, + 0,0,0,0,0,56,57,0,59,12, + 75,0,1,2,3,4,5,6,7,8, + 9,0,11,12,75,0,0,0,31,0, + 33,34,35,0,0,38,0,40,41,42, + 43,30,0,46,0,0,0,50,0,0, + 0,0,0,0,12,0,0,0,0,0, + 0,0,0,0,0,0,0,56,57,0, + 59,0,12,31,0,33,34,35,0,0, + 38,0,40,41,42,43,75,0,46,0, + 12,31,50,33,34,35,0,0,38,0, + 40,41,42,43,0,0,46,0,0,31, + 50,33,34,35,0,0,38,0,40,41, + 42,43,0,0,46,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,0, - 0,0,0,0,0,0,0,0,0,0 + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,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; @@ -1406,317 +1402,322 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface TermAction { public final static char termAction[] = {0, - 5332,5254,4946,4946,4946,4946,4946,4946,4946,5288, - 1,5261,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,127,5332, + 5279,5194,4883,4883,4883,4883,4883,4883,5228,4883, + 1,5198,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5279,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1771,1,1,1, - 1,1,1,1,1,1,1,950,1030,1, - 563,1,1391,1,1,1,1,1,1,5332, - 4952,4949,5339,5374,5513,1,1419,3308,3416,2072, - 3413,3180,3112,3279,1729,3261,2616,3226,8,5300, - 5300,5300,5300,5300,5300,5300,5300,5300,5300,5300, - 5300,5300,5300,5300,5300,5300,5300,5300,5300,5300, - 5300,5300,5300,5300,5300,5300,2676,2702,5300,5300, - 5300,5300,5300,5300,5300,5300,5300,5300,5300,5300, - 5300,5300,5300,5300,5300,5300,5300,5300,5300,5300, - 5300,5300,5300,5300,5300,5300,5332,5300,5300,5300, - 5300,1514,5300,5300,5300,5300,5300,121,5332,5332, - 5300,610,5300,3741,5300,5300,5300,5300,5300,5300, - 5300,5300,5300,5300,5300,5300,5332,5254,4946,4946, - 4946,4946,4946,4946,4946,5258,1,5261,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,131,53,1,1,1,1, + 1,1,1,1,1,1,1483,626,952,648, + 1,1,306,1,1,1,1,1,361,5290, + 5279,5286,5584,773,5462,5279,1449,2907,3093,2079, + 2920,2799,2917,2873,1270,2844,3130,2823,10,5231, + 5231,5231,5231,5231,5231,5231,5231,5231,5231,5231, + 5231,5231,5231,5231,5231,5231,5231,5231,5231,5231, + 5231,5231,5231,5231,5231,5231,55,5231,566,5231, + 5231,5231,5231,5231,5231,5231,5231,5231,5231,5231, + 5231,5231,5231,5231,5231,5231,5231,5231,5231,5231, + 5231,5231,5231,5231,5231,5231,2555,5231,5231,5231, + 5279,5231,5231,5231,5231,5231,45,5231,5289,5231, + 5323,5288,5231,5639,5231,5231,5231,5231,5231,5231, + 5231,5231,5231,5231,5231,5231,8,5246,5246,5246, + 5246,5246,5246,5246,5246,5246,5246,5246,5246,5246, + 5246,5246,5246,5246,5246,5246,5246,5246,5246,5246, + 5246,5246,5246,5246,5279,5246,388,5246,5246,5246, + 5246,5246,5246,5246,5246,5246,5246,5246,5246,5246, + 5246,5246,5246,5246,5246,5246,5246,5246,5246,5246, + 5246,5246,5246,5246,4989,5246,5246,5246,404,5246, + 5246,5246,5246,5246,5279,5246,5143,5246,5279,5146, + 5246,1982,5246,5246,5246,5246,5246,5246,5246,5246, + 5246,5246,5246,5246,5279,5194,4883,4883,4883,4883, + 4883,4883,5201,4883,1,5198,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1771,1,1,1,1,1,1,1, - 1,1,1,950,1118,1,563,1,1391,5332, - 1,1,1,1,1,5332,5058,5055,3717,3680, - 5513,445,1419,3308,3416,2072,3413,3180,3112,3279, - 1729,3261,2616,3226,5332,5254,4946,4946,4946,4946, - 4946,4946,4946,5258,1,5261,1,1,1,1, + 1,1,5279,1,35,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,2676,2702,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1771,1,1,1,1,1,1,1,1,1, - 1,950,624,1,563,1,1391,5332,1,1, - 1,1,1,5332,4952,4949,5332,5374,5513,1808, - 1419,3308,3416,2072,3413,3180,3112,3279,1729,3261, - 2616,3226,5332,5254,4946,4946,4946,4946,4946,4946, - 4946,5258,1,5261,1,1,1,1,1,1, + 1483,626,5017,648,1,1,5279,1,1,1, + 1,1,3199,5290,1,5279,4889,4886,5462,5323, + 1449,2907,3093,2079,2920,2799,2917,2873,1270,2844, + 3130,2823,5279,5194,4883,4883,4883,4883,4883,4883, + 5201,4883,1,5198,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 130,41,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1771,1, - 1,1,1,1,1,1,1,1,1,950, - 5372,1,563,1,1391,304,1,1,1,1, - 1,123,5332,5349,5350,5635,5513,3741,1419,3308, - 3416,2072,3413,3180,3112,3279,1729,3261,2616,3226, - 5332,5254,4946,4946,4946,4946,4946,4946,4946,5258, - 1,5261,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,2676,2702, + 5279,1,5279,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1771,1,1,1, - 1,1,1,1,1,1,1,950,5332,1, - 563,1,1391,137,1,1,1,1,1,122, - 5332,2347,3717,3680,5513,3741,1419,3308,3416,2072, - 3413,3180,3112,3279,1729,3261,2616,3226,5332,5254, - 4946,4946,4946,4946,4946,4946,4946,5258,1,5261, + 1,1,1,1,1,1,1,1,1483,626, + 1772,648,1,1,141,1,1,1,1,1, + 5279,5290,5279,5279,4889,4886,5462,5323,1449,2907, + 3093,2079,2920,2799,2917,2873,1270,2844,3130,2823, + 5279,5194,4883,4883,4883,4883,4883,4883,5201,4883, + 1,5198,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5279,1, + 438,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,129,3205,1,1, + 1,1,1,1,1,1,1483,626,5020,648, + 1,1,145,1,1,1,1,1,5279,5290, + 5279,5298,5299,590,5462,3178,1449,2907,3093,2079, + 2920,2799,2917,2873,1270,2844,3130,2823,5279,5194, + 4883,4883,4883,4883,4883,4883,5201,4883,1,5198, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1771,1,1,1,1,1, - 1,1,1,1,1,950,5332,1,563,1, - 1391,3067,1,1,1,1,1,5332,8209,7933, - 3717,3680,5513,425,1419,3308,3416,2072,3413,3180, - 3112,3279,1729,3261,2616,3226,5332,5254,4946,4946, - 4946,4946,4946,4946,4946,5258,1,5261,1,1, + 1,1,1,1,1,1,5279,1,452,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,2676,2702,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1771,1,1,1,1,1,1,1, - 1,1,1,950,1208,1,563,1,1391,135, - 1,1,1,1,1,43,5332,5349,5350,5374, - 5513,3067,1419,3308,3416,2072,3413,3180,3112,3279, - 1729,3261,2616,3226,5332,5254,4946,4946,4946,4946, - 4946,4946,4946,5258,1,5261,1,1,1,1, + 1,1,1,1,1483,626,5023,648,1,1, + 142,1,1,1,1,1,1,5290,5279,4995, + 4992,5279,5462,2292,1449,2907,3093,2079,2920,2799, + 2917,2873,1270,2844,3130,2823,5279,5194,4883,4883, + 4883,4883,4883,4883,5201,4883,1,5198,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,128,5332,1,1,1,1,1,1, + 1,1,1,1,5279,1,5279,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1771,1,1,1,1,1,1,1,1,1, - 1,950,5332,1,563,1,1391,5332,1,1, - 1,1,1,54,5092,5089,2376,1041,5513,5332, - 1419,3308,3416,2072,3413,3180,3112,3279,1729,3261, - 2616,3226,5332,5254,4946,4946,4946,4946,4946,4946, - 4946,5258,1,5261,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 2676,2702,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1771,1, - 1,1,1,1,1,1,1,1,1,950, - 322,1,563,1,1391,5332,1,1,1,1, - 1,394,41,5297,5297,386,5513,5297,1419,3308, - 3416,2072,3413,3180,3112,3279,1729,3261,2616,3226, - 43,4952,4949,3272,636,3861,3927,2610,3949,1343, - 854,3229,5594,5601,5599,5608,5607,5603,5604,5602, - 5605,5606,5609,5600,3905,3883,3993,3971,1310,386, - 5597,5355,5670,5671,3776,5591,5598,5570,5596,5595, - 5592,5593,5571,1779,1813,5357,5731,1797,654,1806, - 5358,5356,1737,5351,5353,5354,5352,5052,5332,5728, - 5332,1349,337,5332,570,5729,5730,5332,5128,5128, - 233,5124,233,233,233,233,5132,1,233,1, + 1,1,1483,626,2286,648,1,1,146,1, + 1,1,1,1,5279,5290,5279,5298,5299,590, + 5462,5641,1449,2907,3093,2079,2920,2799,2917,2873, + 1270,2844,3130,2823,5279,5194,4883,4883,4883,4883, + 4883,4883,5201,4883,1,5198,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,42,5215,5212,5670,5671,5121,1,1394,1, - 1,5332,1,1,1,1,1,1,1,1, - 5332,455,132,2862,312,5066,5061,577,5071,861, - 5077,2610,5074,4259,1290,5332,1,5332,5349,5350, - 2853,1,1,1,5332,54,5058,5055,233,414, - 2485,5742,5829,5338,5332,5128,5128,233,5124,233, - 233,233,233,5132,1,233,1,1,1,1, - 1,1,1,1,1,1,1,1,304,5112, - 5764,5765,5766,5121,1,5218,1,1,5635,1, - 1,1,1,1,1,1,1,3603,124,905, - 2862,5332,5102,5098,577,5374,861,1682,2610,5663, - 145,1290,5332,1,4787,2431,2404,5337,1,1, - 1,989,3090,3016,641,233,414,33,5742,5829, - 5332,5332,5128,5128,233,5124,233,233,233,233, - 5209,1,233,1,1,1,1,1,1,1, - 1,1,1,1,1,5080,4942,5764,5765,5766, - 5121,1,5332,1,1,5332,1,1,1,1, - 1,1,1,1,990,1,33,2862,2574,1817, - 5332,5349,5350,37,342,861,5106,2610,1290,5106, - 1,5106,5106,865,5106,1,1,1,293,5349, - 5350,2109,233,413,1343,5742,5829,5106,5106,5106, - 5106,5106,2246,5332,5138,5135,437,1775,1733,1691, - 1649,1607,1565,1523,1481,1439,1397,3389,395,4952, - 4949,436,5374,1310,5764,5765,5766,314,342,5332, - 3258,5106,5372,2453,5083,342,5106,421,342,5332, - 5349,5350,5106,5106,5106,5106,5106,43,1,4946, - 4946,233,4946,233,233,233,233,233,5332,233, - 8004,5106,5106,5106,5106,5106,5106,5106,5106,5106, - 5106,5106,5106,5106,5106,5106,1045,4943,5332,5106, - 5106,5106,5106,5106,5106,5106,5106,5106,5106,5106, - 5106,5106,5332,5106,1109,5248,1072,229,5248,136, - 5248,5248,5332,5248,138,950,4015,866,563,5594, - 1,5342,2347,5341,387,5332,5248,5248,5248,5248, - 5248,3605,5332,5829,5764,5765,5766,5597,2853,5670, - 5671,5338,5591,5598,5570,5596,5595,5592,5593,5571, - 5332,5066,5061,577,5071,861,5077,2610,5074,1901, - 5248,1,4968,4964,4955,5248,4958,5332,4961,5332, - 3390,5248,5248,5248,5248,5248,5332,5102,5098,577, - 5374,861,1682,2610,5663,5332,4952,4949,4158,5374, - 5248,5248,5248,5248,5248,5248,5248,5248,5248,5248, - 5248,5248,5248,5248,5248,5337,2376,1041,5248,5248, - 5248,5248,5248,5248,5248,5248,5248,5248,5248,5248, - 5248,2022,5248,5332,4946,4946,233,4946,233,233, - 233,233,233,1,233,8004,1,1,1,1, - 1,1,1,1,1,1,1,1301,451,49, - 5144,5144,4943,1,39,1,1,5332,1,1, - 1,1,1,1,1,1,5332,8209,7933,1109, - 1,4968,4964,4955,359,4958,5086,4961,5141,5342, - 950,5341,1,563,5332,5092,5089,1,1,1, - 395,5349,5350,5332,5058,5055,5332,5348,5829,5332, - 4946,4946,233,4946,233,233,233,233,233,1, - 233,8004,1,1,1,1,1,1,1,1, - 1,1,1,2518,1850,51,5233,5233,4943,1, - 5332,1,1,3392,1,1,1,1,1,1, - 1,1,145,5332,12,1109,5332,8486,8486,346, - 43,43,2574,5374,5230,1682,950,5663,1,563, - 4015,866,43,1,1,1,5374,191,1682,5690, - 5663,1343,5332,5348,5829,5372,2993,5332,1,5187, - 5183,3272,5191,3861,3927,2610,3949,5332,5147,294, - 1,5174,5180,5153,5156,5168,5165,5171,5162,5159, - 5150,5177,3905,3883,3993,3971,5332,1310,776,5355, - 1,5332,3776,43,141,5332,311,5374,1343,364, - 11,1779,1813,5357,5340,1797,654,1806,5358,5356, - 1737,5351,5353,5354,5352,1,4968,4964,577,1349, - 861,513,2610,2838,2246,43,43,43,4952,4949, - 3272,636,3861,3927,2610,3949,5340,2537,1985,3389, - 5601,5599,5608,5607,5603,5604,5602,5605,5606,5609, - 5600,3905,3883,3993,3971,5332,4952,4949,5355,636, - 5251,3776,2610,364,5332,999,4337,5339,292,5329, - 1779,1813,5357,5340,1797,654,1806,5358,5356,1737, - 5351,5353,5354,5352,2059,364,2022,403,1349,2619, - 1,4968,4964,577,2316,861,5203,2610,5206,5339, - 43,4952,4949,3272,636,3861,3927,2610,3949,5340, - 2537,134,5332,5601,5599,5608,5607,5603,5604,5602, - 5605,5606,5609,5600,3905,3883,3993,3971,5332,4952, - 4949,5355,636,5251,3776,2610,5339,1,1602,2485, - 40,5314,5311,1779,1813,5357,5221,1797,654,1806, - 5358,5356,1737,5351,5353,5354,5352,2146,5332,512, - 5332,1349,2619,147,4952,4949,3272,636,3861,3927, - 2610,3949,5339,2537,5282,5332,5601,5599,5608,5607, - 5603,5604,5602,5605,5606,5609,5600,3905,3883,3993, - 3971,5332,4952,4949,5355,636,861,3776,2610,41, - 5291,5291,5332,1045,2431,2404,1779,1813,5357,5339, - 1797,654,1806,5358,5356,1737,5351,5353,5354,5352, - 1,4968,4964,2784,1349,861,5332,2610,2939,872, - 43,43,1,5187,5183,3272,5191,3861,3927,2610, - 3949,5332,5147,117,5332,5174,5180,5153,5156,5168, - 5165,5171,5162,5159,5150,5177,3905,3883,3993,3971, - 5332,4952,4949,5355,636,861,3776,2610,5332,5307, - 5303,5332,3529,5516,4134,1779,1813,5357,1310,1797, - 654,1806,5358,5356,1737,5351,5353,5354,5352,5332, - 441,1,1,1349,1,2635,5109,5372,5109,43, - 43,43,4952,4949,3272,636,3861,3927,2610,3949, - 5336,2537,126,5332,5601,5599,5608,5607,5603,5604, - 5602,5605,5606,5609,5600,3905,3883,3993,3971,5332, - 1,320,5355,4037,5095,3776,3090,3016,5342,4059, - 5341,3532,5332,5332,1779,1813,5357,120,1797,654, - 1806,5358,5356,1737,5351,5353,5354,5352,139,43, - 4952,4949,3272,636,3861,3927,2610,3949,81,2537, - 4157,3813,5601,5599,5608,5607,5603,5604,5602,5605, - 5606,5609,5600,3905,3883,3993,3971,1,133,1310, - 5355,5332,1892,3776,5400,5401,167,5332,97,4350, - 5336,5245,1779,1813,5357,1934,1797,654,1806,5358, - 5356,1737,5351,5353,5354,5352,2485,5332,5332,5335, - 1349,2619,1,5332,5332,1598,3149,5798,5792,230, - 5796,1,4968,4964,577,5332,861,4037,2610,1982, - 312,5594,312,4059,1,1,5790,5791,5821,5822, - 5801,5285,125,5342,525,5341,5799,588,371,5597, - 167,5670,5671,231,5591,5598,5570,5596,5595,5592, - 5593,5571,5332,140,794,5594,3090,3016,1,54, - 736,2431,2404,5350,143,5802,2592,169,933,1436, - 1470,5800,5823,5597,3165,5670,5671,1,5591,5598, - 5570,5596,5595,5592,5593,5571,197,5350,197,5335, - 5812,5811,5824,5793,5794,5817,5818,454,525,5815, - 5816,5795,5797,5819,5820,142,5332,1217,5825,5805, - 5806,5807,5803,5804,5813,5814,5809,5808,5810,43, - 4952,4949,3272,636,3861,3927,2610,3949,5332,2537, - 1,169,5601,5599,5608,5607,5603,5604,5602,5605, - 5606,5609,5600,3905,3883,3993,3971,446,1,1, - 5355,348,588,3776,3238,5115,5332,242,5194,5194, - 5267,576,1779,1813,5357,2283,1797,654,1806,5358, - 5356,1737,5351,5353,5354,5352,5332,2142,2142,1598, - 1349,5798,5792,232,5796,1,5264,5264,1,5071, - 1391,1682,5332,5663,364,5594,5332,5338,5332,5332, - 5790,5791,5821,5822,5801,2316,5332,5197,5197,1310, - 5799,363,5332,5597,5332,5670,5671,2830,5591,5598, - 5570,5596,5595,5592,5593,5571,43,442,43,43, - 5374,5374,119,5227,736,5224,118,5332,5332,5802, - 4743,5332,3237,1436,1470,5800,5823,346,5102,5098, - 2784,5374,861,1682,2610,5663,937,1,364,5841, - 4773,5337,5770,423,5812,5811,5824,5793,5794,5817, - 5818,5332,5332,5815,5816,5795,5797,5819,5820,5332, - 364,2924,5825,5805,5806,5807,5803,5804,5813,5814, - 5809,5808,5810,43,4952,4949,3272,636,3861,3927, - 2610,3949,5332,2537,5784,1310,5601,5599,5608,5607, - 5603,5604,5602,5605,5606,5609,5600,3905,3883,3993, - 3971,163,4037,349,5355,369,4037,3776,4059,5764, - 5765,5766,4059,623,3332,54,1779,1813,5357,5349, - 1797,654,1806,5358,5356,1737,5351,5353,5354,5352, - 5515,2227,43,4952,4949,3272,636,3861,3927,2610, - 3949,45,2537,5349,5332,5601,5599,5608,5607,5603, - 5604,5602,5605,5606,5609,5600,3905,3883,3993,3971, - 505,1310,503,5355,417,1,3776,5332,5332,5242, - 5332,1859,5332,5332,1268,1779,1813,5357,144,1797, - 654,1806,5358,5356,1737,5351,5353,5354,5352,5332, - 5332,5332,4712,1349,43,4952,4949,3464,636,3861, - 3927,2610,3949,5332,2537,5332,4727,5601,5599,5608, - 5607,5603,5604,5602,5605,5606,5609,5600,3905,3883, - 3993,3971,1,5332,5332,5355,3221,4735,3776,4758, - 3342,4763,529,2159,106,3343,3466,1779,1813,5357, - 5332,1797,654,1806,5358,5356,1737,5351,5353,5354, - 5352,43,4952,4949,3272,636,3861,3927,2610,3949, - 5692,2537,5332,3500,5601,5599,5608,5607,5603,5604, - 5602,5605,5606,5609,5600,3905,3883,3993,3971,2283, - 5332,5332,5355,3391,3584,3776,5332,5332,5332,3604, - 3810,3483,3811,3638,1779,1813,5357,5332,1797,654, - 1806,5358,5356,1737,5351,5353,5354,5352,43,4952, - 4949,3272,636,3861,3927,2610,3949,4217,2537,376, - 5332,5601,5599,5608,5607,5603,5604,5602,5605,5606, - 5609,5600,3905,3883,3993,3971,105,5332,1,5355, - 4149,2574,3776,5332,79,5332,4279,5236,4127,5332, - 5332,1779,1813,5357,3252,1797,654,1806,5358,5356, - 1737,5351,5353,5354,5352,5332,4952,4949,109,5374, - 5332,4280,5323,518,507,782,5332,5594,5601,5599, - 5608,5607,5603,5604,5602,5605,5606,5609,5600,2518, - 5332,5332,2,4750,2196,5597,1310,5670,5671,5332, - 5591,5598,5570,5596,5595,5592,5593,5571,98,1, - 1,5239,1,5332,5294,5332,5294,101,43,43, - 41,5374,5332,5320,5728,5317,5332,5332,5332,570, - 5729,5730,246,5045,5041,5332,5049,283,3500,1943, - 5326,5332,782,2733,4996,5032,5038,5011,5014,5026, - 5023,5029,5020,5017,5008,5035,5332,5332,5332,5332, - 5332,5332,4987,5332,4981,4978,5332,5005,4984,4975, - 4990,4993,5002,4999,4972,33,386,386,5276,386, - 386,5276,386,5276,5279,5332,5276,386,5332,5332, - 5332,5728,3500,5332,5332,5332,570,5729,5730,5332, - 5332,5332,5332,5080,5332,386,5332,386,386,5332, - 386,386,386,386,386,386,386,386,5332,36, - 387,387,5270,387,387,5270,387,5270,5273,5332, - 5270,387,5332,5279,5332,5332,5332,5332,5332,5332, - 5332,5332,5332,5332,5332,5332,5332,5332,5279,387, - 5332,387,387,5332,387,387,387,387,387,387, - 387,387,5332,5332,5332,5332,228,5332,5332,5332, - 5332,5332,5332,5332,5332,5332,5332,5273,5594,5601, - 5599,5608,5607,5603,5604,5602,5605,5606,5609,5600, - 5332,5332,5273,5332,5332,5332,5597,5332,5670,5671, - 5332,5591,5598,5570,5596,5595,5592,5593,5571,1, - 4946,4946,233,4946,233,233,233,233,5118,5332, - 233,8004,1,4946,4946,233,4946,233,233,233, - 233,5118,5332,233,8004,5332,5332,5332,4943,5332, - 5332,1,4946,4946,233,4946,233,233,233,233, - 5200,4943,233,8004,5332,1109,5332,5332,5332,5332, - 5332,5332,5332,5332,5332,5332,950,5332,1109,563, - 4943,5332,5332,5332,5332,5332,5332,5332,5332,950, - 5332,225,563,5332,5829,5332,5332,1109,5332,5332, - 5332,5332,5332,5332,225,5332,5332,5829,950,5332, - 5332,563,5332,1,4946,4946,233,4946,233,233, - 233,233,5118,224,233,8004,5829,5332,5332,1, - 4946,4946,233,4946,233,233,233,233,233,5332, - 233,8004,4943,5332,5332,1,4946,4946,233,4946, - 233,233,233,233,233,5332,233,8004,4943,1109, - 5332,368,4968,4964,2784,1,861,1,2610,1, - 950,5332,5332,563,4943,1109,5332,5332,5332,5332, - 5332,5332,5332,5332,5332,225,950,5332,5829,563, - 5332,1109,1,4968,4964,2784,5332,861,5332,2610, - 5332,5236,950,5332,5829,563,1,4946,4946,233, - 4946,233,233,233,233,233,5332,233,8004,1310, - 5829,5332,5332,5332,5332,5332,5332,5332,5332,5332, - 1175,5332,5332,5332,5332,4943,5332,5332,5332,5332, - 5332,5332,5332,5332,5332,5332,5332,5332,5332,5332, - 1310,5332,1109,5332,5332,5332,5332,5332,5332,5332, - 5332,5332,5332,950,5332,5239,563,5332,5332,5332, - 5332,5332,5332,5332,5332,5332,5332,5332,5332,5332, - 5332,5829 + 1,1,5279,1,5279,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1483,626,5279,648,1,1,721,1,1,1, + 1,1,1,5290,5279,8239,8072,5279,5462,2292, + 1449,2907,3093,2079,2920,2799,2917,2873,1270,2844, + 3130,2823,5279,5194,4883,4883,4883,4883,4883,4883, + 5201,4883,1,5198,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 5279,1,5279,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1483,626, + 1,648,1,1,389,1,1,1,1,1, + 5279,5290,56,5032,5029,3178,5462,4110,1449,2907, + 3093,2079,2920,2799,2917,2873,1270,2844,3130,2823, + 5279,5194,4883,4883,4883,4883,4883,4883,5201,4883, + 1,5198,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,313,1, + 5279,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1483,626,5279,648, + 1,1,5279,1,1,1,1,1,45,5290, + 5283,5279,5323,5279,5462,3296,1449,2907,3093,2079, + 2920,2799,2917,2873,1270,2844,3130,2823,45,4889, + 4886,2983,863,3826,3898,4650,4353,3920,1258,2565, + 5543,5550,5548,5557,5556,5552,5553,5551,5554,5555, + 5558,5549,3876,3848,3964,3942,35,5304,3684,5546, + 3725,5619,5620,5540,1566,1602,5547,5306,5519,5545, + 5544,5541,1567,2705,5542,1568,5307,5305,5520,1560, + 5300,5302,5303,5301,1730,5279,5298,5299,5676,1352, + 3222,4879,1264,5291,5677,5678,5279,5068,5068,235, + 5064,235,235,235,5072,235,1,235,1,1, + 1,1,1,1,1,1,1,1,1,1, + 5282,395,5712,5713,5714,388,5061,1,422,1, + 1,1,339,5279,1,5279,1,1,1,1, + 5279,5279,1,5279,4889,4886,1,863,644,1730, + 4650,5279,1121,785,5290,119,1,5279,5298,5299, + 1,1,1,1,2810,5619,5620,415,235,5176, + 5690,5777,370,4905,4901,2878,1,644,1,4650, + 672,1,5279,5279,5068,5068,235,5064,235,235, + 235,5149,235,1,235,1,1,1,1,1, + 1,1,1,1,1,1,1,5279,5078,5075, + 5712,5713,5714,5061,1,324,1,1,1,1315, + 3986,1,1006,1,1,1,1,5279,5279,1, + 1315,129,45,1,5179,5285,5323,5321,1814,1121, + 785,5612,1179,1,1,4008,5279,1,5279,1, + 1,4030,366,39,414,235,5046,5690,5777,5046, + 322,5046,5046,5035,5046,5279,5003,4998,578,5008, + 644,5014,4650,1315,5011,1152,1730,5046,5046,5046, + 5046,5046,348,5042,5038,2878,5323,644,1814,4650, + 4194,5612,396,4889,4886,4754,5323,5712,5713,5714, + 5284,56,4995,4992,147,1,4905,4901,4892,5279, + 4895,5046,4898,5289,5279,5046,5288,366,1315,2769, + 2851,5046,45,5046,5046,5046,5046,314,5003,4998, + 578,5008,644,5014,4650,5279,5011,2028,4692,366, + 1315,5046,5046,5046,5046,5046,5046,5046,5046,5046, + 5046,5046,5046,5046,5046,5046,5046,5046,5046,5046, + 5046,5046,5046,5046,5046,5046,5046,126,5279,5279, + 5046,5046,5188,5046,1823,5188,5289,5188,5188,5288, + 5188,5279,5042,5038,578,5323,644,1814,4650,5279, + 5612,3433,3372,5188,5188,5188,5188,5188,5279,5042, + 5038,578,5323,644,1814,4650,2255,5612,1781,1739, + 1697,1655,1613,1571,1529,1487,1445,1403,5279,4889, + 4886,3598,863,5191,147,4650,133,5188,5279,4889, + 4886,5188,863,644,5279,4650,4378,5188,670,5188, + 5188,5188,5188,1,5204,5204,446,5008,2065,1814, + 426,366,5612,43,5279,4995,4992,5188,5188,5188, + 5188,5188,5188,5188,5188,5188,5188,5188,5188,5188, + 5188,5188,5188,5188,5188,5188,5188,5188,5188,5188, + 5188,5188,5188,5321,5279,316,5188,5188,2981,5188, + 5279,4883,4883,235,4883,235,235,235,235,235, + 1,235,8478,1,1,1,1,1,1,1, + 1,1,1,1,2769,2851,366,3986,623,1006, + 4880,1,4573,1,1,1,2255,5279,1,306, + 1,1,1,1,12,5287,1,123,366,5584, + 1,3598,5234,3690,5279,8,629,626,5279,648, + 1,44,5155,5152,1,1075,1,1,1526,295, + 5298,5299,134,5279,5297,5777,5279,4883,4883,235, + 4883,235,235,235,235,235,1,235,8478,1, + 1,1,1,1,1,1,1,1,1,1, + 2494,51,5084,5084,5279,1002,4880,1,5286,1, + 1,1,8,5279,1,5234,1,1,1,1, + 5789,14,1,5279,4889,4886,1,863,5191,5279, + 4650,5081,629,626,5158,648,1,5287,3657,3475, + 1,5279,1,1,5279,4889,4886,437,5323,5291, + 5297,5777,5291,2153,1,5127,5123,2983,5131,3826, + 3898,4650,41,3920,5087,2440,2413,5114,5120,5093, + 5096,5108,5105,5111,5102,5099,5090,5117,3876,3848, + 3964,3942,294,5304,5279,5679,3725,5279,5298,5299, + 1566,1602,644,5306,4650,139,296,13,1567,2705, + 5286,1568,5307,5305,2356,1560,5300,5302,5303,5301, + 5290,5279,125,5290,3428,1352,514,45,3690,45, + 45,4889,4886,2983,863,3826,3898,4650,2910,3920, + 1035,5279,867,5550,5548,5557,5556,5552,5553,5551, + 5554,5555,5558,5549,3876,3848,3964,3942,1,5304, + 991,137,3725,53,5173,5173,1566,1602,136,5306, + 5279,5712,5713,5714,1567,2705,1991,1568,5307,5305, + 5279,1560,5300,5302,5303,5301,1730,1,4905,4901, + 2878,1352,644,5170,4650,5176,2494,132,1000,5290, + 5279,5286,45,4889,4886,2983,863,3826,3898,4650, + 2910,3920,1035,3657,3475,5550,5548,5557,5556,5552, + 5553,5551,5554,5555,5558,5549,3876,3848,3964,3942, + 5222,5304,5279,45,3725,1,5279,5323,1566,1602, + 5285,5306,4299,5026,1,1315,1567,2705,4108,1568, + 5307,5305,5161,1560,5300,5302,5303,5301,2385,1045, + 5179,2440,2413,1352,2834,1,4905,4901,578,5279, + 644,5290,4650,5286,45,4889,4886,2983,863,3826, + 3898,4650,5291,3920,1035,2769,2851,5550,5548,5557, + 5556,5552,5553,5551,5554,5555,5558,5549,3876,3848, + 3964,3942,5279,5304,5290,5284,3725,5279,8239,8072, + 1566,1602,5279,5306,350,5286,128,3425,1567,2705, + 5279,1568,5307,5305,456,1560,5300,5302,5303,5301, + 3145,1,4905,4901,578,1352,644,2028,4650,314, + 3433,3372,314,5290,149,4889,4886,2983,863,3826, + 3898,4650,131,3920,1035,138,5279,5550,5548,5557, + 5556,5552,5553,5551,5554,5555,5558,5549,3876,3848, + 3964,3942,1315,5304,5718,5279,3725,5279,5032,5029, + 1566,1602,5052,5306,396,5298,5299,5279,1567,2705, + 455,1568,5307,5305,135,1560,5300,5302,5303,5301, + 5279,1,4905,4901,4892,1352,4895,45,4898,45, + 1,5127,5123,2983,5131,3826,3898,4650,5279,3920, + 5087,3679,2494,5114,5120,5093,5096,5108,5105,5111, + 5102,5099,5090,5117,3876,3848,3964,3942,5279,5304, + 2769,2851,3725,1,122,121,1566,1602,5055,5306, + 5279,169,2385,1045,1567,2705,5225,1568,5307,5305, + 5279,1560,5300,5302,5303,5301,4152,1,4905,4901, + 578,1352,644,45,4650,45,45,4889,4886,2983, + 863,3826,3898,4650,5283,3920,1035,2440,2413,5550, + 5548,5557,5556,5552,5553,5551,5554,5555,5558,5549, + 3876,3848,3964,3942,5279,5304,1,1,3725,2810, + 1,143,1566,1602,344,5306,169,5134,526,120, + 1567,2705,5279,1568,5307,5305,5279,1560,5300,5302, + 5303,5301,4430,1,4008,4008,1898,1869,5746,5740, + 4030,4030,5744,1,4883,4883,235,4883,235,235, + 235,235,235,5279,235,8478,1,5738,5739,5769, + 5770,5749,5279,5279,1315,5747,5134,5137,344,5279, + 130,1000,99,4880,344,5185,442,1,1,344, + 1,4705,5049,526,3241,5049,1869,43,5243,5243, + 4108,555,5243,5279,5282,5750,1319,3398,1337,629, + 626,5771,648,5748,443,45,45,513,5323,4008, + 5167,2325,5279,5164,124,4030,5137,3232,5777,5279, + 3690,5760,5759,5772,5741,5742,5765,5766,5279,447, + 5763,5764,5743,5745,5767,5768,5773,5753,5754,5755, + 5751,5752,5761,5762,5757,5756,5758,45,4889,4886, + 2983,863,3826,3898,4650,5732,3920,1035,2769,2851, + 5550,5548,5557,5556,5552,5553,5551,5554,5555,5558, + 5549,3876,3848,3964,3942,875,5304,1,5279,3725, + 42,5261,5258,1566,1602,5289,5306,127,5288,351, + 2918,1567,2705,108,1568,5307,5305,3419,1560,5300, + 5302,5303,5301,365,5279,3657,3475,1898,1352,5746, + 5740,3433,3372,5744,424,35,388,388,5216,388, + 388,5216,388,5219,5216,5279,5216,388,5738,5739, + 5769,5770,5749,100,1,1,5747,1,5279,5240, + 56,5279,5240,5017,5299,3295,388,1315,388,388, + 388,4482,1,388,5279,388,388,388,388,47, + 199,388,555,199,5279,388,5750,1319,5299,1337, + 5279,2824,5771,5219,5748,103,45,45,1,5323, + 165,5267,4127,1,5264,144,171,5182,5219,5279, + 5279,5285,5760,5759,5772,5741,5742,5765,5766,5279, + 2978,5763,5764,5743,5745,5767,5768,5773,5753,5754, + 5755,5751,5752,5761,5762,5757,5756,5758,45,4889, + 4886,2983,863,3826,3898,4650,2116,3920,1035,5279, + 5279,5550,5548,5557,5556,5552,5553,5551,5554,5555, + 5558,5549,3876,3848,3964,3942,244,5304,1865,5207, + 3725,171,2984,373,1566,1602,5284,5306,5279,8496, + 8496,3025,1567,2705,371,1568,5307,5305,5279,1560, + 5300,5302,5303,5301,5279,107,1971,45,4889,4886, + 2983,863,3826,3898,4650,2325,3920,1035,5321,3026, + 5550,5548,5557,5556,5552,5553,5551,5554,5555,5558, + 5549,3876,3848,3964,3942,1,5304,56,4752,3725, + 506,5298,504,1566,1602,418,5306,43,5237,5237, + 530,1567,2705,1221,1568,5307,5305,140,1560,5300, + 5302,5303,5301,2204,1273,5298,2356,5279,1352,45, + 4889,4886,4693,863,3826,3898,4650,3070,3920,1035, + 5279,5279,5550,5548,5557,5556,5552,5553,5551,5554, + 5555,5558,5549,3876,3848,3964,3942,5279,5304,5279, + 4107,3725,378,5279,5279,1566,1602,4187,5306,193, + 4720,3321,4739,1567,2705,2167,1568,5307,5305,5279, + 1560,5300,5302,5303,5301,45,4889,4886,2983,863, + 3826,3898,4650,5279,3920,1035,3076,867,5550,5548, + 5557,5556,5552,5553,5551,5554,5555,5558,5549,3876, + 3848,3964,3942,1907,5304,5279,5279,3725,4718,4138, + 5279,1566,1602,4197,5306,5279,519,5279,4400,1567, + 2705,5465,1568,5307,5305,2982,1560,5300,5302,5303, + 5301,45,4889,4886,2983,863,3826,3898,4650,5279, + 3920,1035,4420,5279,5550,5548,5557,5556,5552,5553, + 5551,5554,5555,5558,5549,3876,3848,3964,3942,5279, + 5304,5279,2630,3725,5279,5254,5250,1566,1602,5279, + 5306,3026,4422,5279,5279,1567,2705,4766,1568,5307, + 5305,5276,1560,5300,5302,5303,5301,5279,4889,4886, + 5279,5323,111,4767,5321,4768,81,638,5279,5543, + 5550,5548,5557,5556,5552,5553,5551,5554,5555,5558, + 5549,5279,5279,285,4686,5464,5273,508,5546,5279, + 5619,5620,5540,5279,5270,5547,1,5519,5545,5544, + 5541,1949,5279,5542,5279,3026,5279,5520,1,4905, + 4901,2878,5279,644,2,4650,5279,5676,248,4982, + 4978,1264,4986,5677,5678,732,5279,5279,638,5279, + 4933,4969,4975,4948,4951,4963,4960,4966,4957,4954, + 4945,4972,43,5279,5279,5279,5279,5279,5279,4924, + 5279,4918,4915,4942,5279,5279,4921,933,4912,4927, + 4930,4939,5279,5279,4936,5279,1315,5279,4909,5279, + 5279,5279,5279,5279,5279,5279,5279,5279,5676,5279, + 5279,5279,1264,5279,5677,5678,38,389,389,5210, + 389,389,5210,389,5213,5210,5279,5210,389,348, + 45,45,2810,5323,5279,1814,5279,5279,5612,5279, + 5279,5279,83,5279,5279,3500,5279,389,5279,389, + 389,389,5279,5279,389,5279,389,389,389,389, + 5279,5279,389,230,5279,5279,389,5279,5349,5350, + 5279,5279,5279,5279,5213,5543,5550,5548,5557,5556, + 5552,5553,5551,5554,5555,5558,5549,1315,5279,5213, + 5279,5279,5279,5279,5546,5279,5619,5620,5540,5279, + 2664,5547,5279,5519,5545,5544,5541,5279,5279,5542, + 5279,5279,5279,5520,1,4883,4883,235,4883,235, + 235,235,5058,235,5279,235,8478,1,4883,4883, + 235,4883,235,235,235,5058,235,5279,235,8478, + 5279,5279,5279,5279,4880,656,5279,1,4883,4883, + 235,4883,235,235,235,5140,235,4880,235,8478, + 5279,5279,796,5279,5279,5279,5279,5279,5279,5279, + 629,626,5279,648,5279,5279,5279,4880,5279,5279, + 5279,5279,5279,629,626,227,648,5279,5279,5777, + 5279,5279,5279,5279,5279,5279,5279,5279,227,5279, + 5279,5279,5777,629,626,5279,648,5279,1,4883, + 4883,235,4883,235,235,235,5058,235,226,235, + 8478,5279,5777,5279,5279,1,4883,4883,235,4883, + 235,235,235,235,235,5279,235,8478,4880,1, + 4883,4883,235,4883,235,235,235,235,235,5279, + 235,8478,5279,5279,5279,4880,5279,5279,5279,5279, + 5279,5279,5279,5279,629,626,5279,648,5279,4880, + 5279,5279,5279,5279,5279,5279,5279,5279,5279,227, + 5279,629,626,5777,648,5279,5279,231,5279,5279, + 5279,5279,5279,5279,5279,629,626,5279,648,5543, + 5777,1,4883,4883,235,4883,235,235,235,235, + 235,5279,235,8478,5777,5279,5279,5279,5546,5279, + 5619,5620,5540,5279,5279,5547,5279,5519,5545,5544, + 5541,4880,232,5542,5279,5279,5279,5520,5279,5279, + 5279,5279,5279,5279,5543,5279,5279,5279,5279,5279, + 233,5279,5279,5279,5279,5279,5279,629,626,5279, + 648,5279,5543,5546,5279,5619,5620,5540,234,5279, + 5547,5279,5519,5545,5544,5541,5777,5279,5542,5279, + 5543,5546,5520,5619,5620,5540,5279,5279,5547,5279, + 5519,5545,5544,5541,5279,5279,5542,5279,5279,5546, + 5520,5619,5620,5540,5279,5279,5547,5279,5519,5545, + 5544,5541,5279,5279,5542,5279,5279,5279,5520 }; }; public final static char termAction[] = TermAction.termAction; @@ -1724,59 +1725,59 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface Asb { public final static char asb[] = {0, - 777,1,815,535,245,318,149,991,989,4, - 777,459,1112,989,1041,1052,165,1052,537,1052, - 3,1052,1036,1052,459,460,8,318,454,460, - 569,569,618,569,460,535,499,688,12,57, - 543,151,460,1113,372,102,102,460,541,147, - 275,540,162,543,168,460,217,460,460,147, - 542,542,326,457,468,468,475,477,454,460, - 562,372,499,569,217,566,214,372,569,569, - 217,96,742,118,779,779,57,57,57,459, - 460,1113,326,102,102,541,163,541,147,50, - 541,168,168,460,217,147,460,542,543,459, - 454,173,420,692,454,922,562,217,457,214, - 214,217,1113,742,118,57,615,57,57,460, - 326,326,615,460,102,946,4,499,816,936, - 102,615,541,541,154,460,275,460,168,615, - 463,614,688,363,535,499,499,499,499,459, - 535,729,404,731,421,421,421,421,421,421, - 421,421,421,571,577,582,579,586,584,591, - 589,593,592,594,277,595,687,460,543,384, - 482,460,535,214,609,372,420,690,562,561, - 688,566,688,372,557,545,556,687,499,856, - 856,615,615,460,96,938,481,272,155,460, - 50,615,421,460,457,738,553,552,404,245, - 245,245,245,460,879,649,571,372,372,404, - 948,244,96,404,571,95,95,879,420,421, - 421,421,421,421,421,421,421,421,421,421, - 421,421,421,421,421,421,421,421,420,420, - 420,420,420,420,420,420,420,420,420,420, - 421,404,862,385,459,460,879,485,690,562, - 864,420,554,554,736,457,823,118,779,118, - 686,686,326,1113,477,492,421,946,476,154, - 460,459,459,460,363,372,740,742,372,372, - 688,688,688,688,147,372,421,501,1058,1058, - 459,731,214,244,420,1113,372,1112,1114,1112, - 372,214,579,579,577,577,577,584,584,584, - 584,582,582,589,586,586,592,591,593,946, - 594,862,384,946,421,946,326,535,535,535, - 385,535,460,284,326,326,460,543,372,420, - 614,864,420,420,740,545,118,245,245,326, - 938,421,421,460,460,460,372,742,535,535, - 535,535,460,460,460,96,421,245,575,329, - 372,460,1114,96,420,375,535,375,946,385, - 404,404,402,924,404,326,326,877,862,690, - 866,687,460,460,926,372,420,420,420,420, - 535,535,147,1113,372,575,457,275,460,1113, - 823,372,454,372,402,318,535,372,862,866, - 1034,926,926,372,372,372,372,879,879,460, - 575,576,575,420,329,1116,571,275,372,372, - 1106,385,877,385,326,318,420,385,382,535, - 856,871,926,372,372,1093,575,879,421,214, - 1116,543,543,1108,420,383,879,326,372,743, - 686,871,871,576,372,214,385,372,326,371, - 1112,871,385,245 + 687,1,725,447,361,261,145,903,901,540, + 687,533,1024,901,953,964,542,964,537,964, + 539,964,948,964,533,534,48,261,528,534, + 811,811,1050,811,534,447,411,1120,3,53, + 542,160,534,1025,315,98,534,166,143,391, + 323,164,542,328,534,333,534,534,143,166, + 166,269,531,147,147,154,156,528,534,804, + 315,411,811,333,808,217,315,811,811,333, + 92,600,114,689,689,53,53,53,533,534, + 1025,269,98,166,165,166,143,41,166,328, + 328,534,333,143,534,166,542,533,528,176, + 494,638,528,791,804,333,531,217,217,333, + 1025,600,114,53,857,53,53,534,269,269, + 857,534,98,1040,540,411,726,1030,98,166, + 166,1042,534,391,534,328,857,318,856,1120, + 306,447,411,411,411,411,533,447,676,478, + 678,495,495,495,495,495,495,495,495,495, + 813,819,824,821,828,826,833,831,835,834, + 836,220,837,1119,534,542,458,393,534,447, + 217,851,315,494,637,804,803,1120,808,1120, + 315,557,545,556,1119,411,170,170,857,857, + 534,92,1032,393,388,1043,534,41,857,495, + 534,531,596,553,552,478,361,361,361,361, + 534,748,1081,813,315,315,478,860,360,92, + 478,813,91,91,748,494,495,495,495,495, + 495,495,495,495,495,495,495,495,495,495, + 495,495,495,495,495,494,494,494,494,494, + 494,494,494,494,494,494,494,495,478,685, + 459,533,534,748,397,637,804,733,494,554, + 554,594,531,561,114,689,114,1118,1118,269, + 1025,156,404,495,1040,155,1042,534,533,533, + 534,306,315,598,600,315,315,1120,1120,1120, + 1120,143,315,495,413,970,970,533,678,217, + 360,494,1025,315,1024,1026,1024,315,217,821, + 821,819,819,819,826,826,826,826,824,824, + 831,828,828,834,833,835,1040,836,685,458, + 1040,495,1040,269,457,447,447,447,459,447, + 534,227,269,269,534,542,315,494,856,635, + 733,494,494,598,545,114,361,361,269,1032, + 495,495,534,534,534,315,600,447,447,447, + 447,534,534,534,92,495,361,817,272,315, + 534,1026,92,494,449,447,449,1040,459,478, + 478,476,683,478,269,269,746,685,637,735, + 1119,534,534,793,315,494,494,494,494,447, + 447,143,1025,315,817,531,391,534,1025,561, + 315,528,315,476,261,447,315,685,735,946, + 793,793,315,315,315,315,748,748,534,817, + 818,817,494,272,1028,813,391,315,315,1018, + 459,746,459,269,261,494,459,456,447,170, + 740,793,315,315,1005,817,748,495,217,1028, + 542,542,1020,494,457,748,269,315,601,1118, + 740,740,818,315,217,459,315,269,314,1024, + 740,459,361 }; }; public final static char asb[] = Asb.asb; @@ -1784,118 +1785,119 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface Asr { public final static byte asr[] = {0, - 121,0,4,1,2,62,0,62,71,76, - 0,60,35,13,14,59,32,15,64,36, - 75,12,16,37,38,17,18,39,46,40, - 19,20,41,65,42,10,66,21,57,30, - 22,33,23,9,3,8,4,11,62,7, - 6,5,1,2,29,0,60,35,13,14, - 59,32,15,64,36,75,12,16,37,38, - 17,18,39,46,40,19,20,41,65,42, - 10,66,21,57,30,22,33,23,9,3, - 8,6,72,11,4,7,1,2,5,29, - 0,75,46,7,103,104,105,57,9,3, - 8,6,5,71,72,11,74,35,13,14, - 59,32,15,64,36,12,16,37,38,17, - 18,39,40,19,20,41,65,42,10,66, - 21,30,22,33,23,4,1,2,29,0, - 62,69,0,30,1,2,4,103,104,105, - 0,4,71,28,62,9,0,1,2,9, - 72,0,67,68,3,10,44,49,47,43, - 52,14,23,13,19,17,18,20,21,16, - 15,22,53,56,54,55,31,51,45,50, - 5,7,4,26,27,8,6,24,25,34, - 48,1,2,118,9,0,43,67,44,45, - 68,7,47,48,49,50,61,51,52,53, - 54,55,31,26,27,8,6,24,25,5, - 34,63,56,3,10,64,59,65,66,14, - 23,13,19,17,18,20,21,16,15,22, - 35,40,41,12,39,38,36,32,33,37, - 42,1,2,30,4,0,63,71,95,70, - 118,73,72,13,14,43,67,15,44,45, - 16,17,18,68,47,19,20,48,49,50, - 61,51,52,10,21,22,23,53,54,55, - 31,26,27,24,25,34,56,8,6,4, - 1,2,7,5,3,11,9,0,96,90, - 24,25,91,92,88,89,28,93,94,97, - 98,99,100,101,102,117,71,95,69,107, - 108,109,110,111,112,113,114,115,116,118, - 72,11,63,1,2,8,6,4,3,58, - 70,73,9,0,75,103,104,105,29,71, - 121,119,122,72,74,76,57,46,60,78, - 80,86,84,77,82,83,85,87,62,79, - 81,11,9,35,59,32,64,36,12,37, - 38,39,40,41,65,42,66,30,33,61, - 67,68,10,44,49,47,43,52,14,23, - 13,19,17,18,20,21,16,15,22,53, - 56,54,55,31,51,45,50,26,27,24, - 25,34,48,7,5,3,6,8,4,1, - 2,0,9,70,72,69,0,76,62,63, - 71,95,73,58,3,69,9,11,70,0, - 9,62,70,0,9,71,118,73,11,70, - 0,71,9,58,3,69,70,11,28,0, - 35,13,14,32,15,36,12,16,37,38, - 17,18,39,7,40,19,20,41,42,21, - 30,22,33,23,1,2,9,58,8,6, - 5,4,73,11,3,0,29,1,2,4, - 9,71,62,0,8,6,4,5,7,1, - 2,3,58,63,69,70,9,73,95,0, - 61,32,7,33,5,1,2,4,76,62, - 120,106,26,27,58,3,96,90,6,91, - 92,24,25,89,88,28,93,94,97,98, - 8,99,100,101,63,95,73,69,107,108, - 109,110,111,112,113,114,115,116,71,118, - 11,102,117,70,72,9,0,35,13,14, - 59,32,15,64,36,12,16,37,38,17, - 18,39,40,19,20,41,65,42,10,66, - 21,30,22,33,23,1,2,4,68,67, - 24,25,6,91,92,99,8,100,5,34, - 28,110,111,107,108,109,115,114,116,89, - 88,112,113,97,98,93,94,101,102,26, - 27,90,106,3,58,69,70,63,0,9, - 72,61,26,27,8,6,24,25,34,48, - 3,4,53,56,54,55,31,51,45,50, + 121,0,59,35,13,14,60,33,15,64, + 38,75,12,16,40,41,17,18,42,56, + 43,19,20,46,66,50,10,67,21,57, + 31,22,34,23,3,9,4,11,69,8, + 7,6,5,1,2,30,0,8,72,69, + 76,0,59,35,13,14,60,33,15,64, + 38,75,12,16,40,41,17,18,42,56, + 43,19,20,46,66,50,10,67,21,57, + 31,22,34,23,8,3,9,6,71,11, + 4,7,1,2,5,30,0,75,56,7, + 114,115,116,57,8,3,9,6,5,72, + 71,11,74,35,13,14,60,33,15,64, + 38,12,16,40,41,17,18,42,43,19, + 20,46,66,50,10,67,21,31,22,34, + 23,4,1,2,30,0,76,62,72,95, + 73,69,58,3,70,8,11,68,0,8, + 69,70,0,4,28,8,72,69,0,62, + 70,68,1,2,0,63,65,3,10,37, + 47,44,36,51,14,23,13,19,17,18, + 20,21,16,15,22,52,55,53,54,29, + 49,39,48,5,7,4,26,27,9,6, + 24,25,32,45,1,2,118,8,0,62, + 72,95,68,118,73,71,13,14,36,63, + 15,37,39,16,17,18,65,44,19,20, + 45,47,48,61,49,51,10,21,22,23, + 52,53,54,29,26,27,24,25,32,55, + 9,6,4,1,2,7,5,3,11,8, + 0,96,90,24,25,91,92,88,89,28, + 93,94,97,98,99,100,101,102,117,72, + 95,70,104,105,106,107,108,109,110,111, + 112,113,118,71,11,62,1,2,9,6, + 4,3,58,68,73,8,0,8,68,71, + 70,0,4,8,72,69,0,1,2,8, + 71,0,36,63,37,39,65,7,44,45, + 47,48,61,49,51,52,53,54,29,26, + 27,9,6,24,25,5,32,62,55,3, + 10,64,60,66,67,14,23,13,19,17, + 18,20,21,16,15,22,35,43,46,12, + 42,41,38,33,34,40,50,1,2,31, + 4,0,8,69,68,0,8,72,118,73, + 11,68,0,72,8,58,3,70,68,11, + 28,0,35,13,14,33,15,38,12,16, + 40,41,17,18,42,7,43,19,20,46, + 50,21,31,22,34,23,1,2,8,58, + 9,6,5,4,73,11,3,0,75,114, + 115,116,30,72,121,119,122,71,74,76, + 57,56,59,78,80,86,84,77,82,83, + 85,87,69,79,81,11,8,35,60,33, + 64,38,12,40,41,42,43,46,66,50, + 67,31,34,61,63,65,10,37,47,44, + 36,51,14,23,13,19,17,18,20,21, + 16,15,22,52,55,53,54,29,49,39, + 48,26,27,24,25,32,45,7,5,3, + 6,9,4,1,2,0,30,72,4,1, + 2,69,8,0,9,6,4,5,7,1, + 2,3,58,62,70,68,8,73,95,0, + 35,13,14,60,33,15,64,38,12,16, + 40,41,17,18,42,43,19,20,46,66, + 50,10,67,21,31,22,34,23,1,2, + 4,95,0,7,5,3,58,6,9,95, + 35,13,14,60,33,15,64,38,12,16, + 40,41,17,18,42,43,19,20,46,66, + 50,10,67,21,31,22,34,23,1,2, + 4,73,8,0,68,11,71,61,26,27, + 9,6,24,25,32,45,3,4,52,55, + 53,54,29,49,39,48,14,23,13,19, + 17,18,20,21,16,15,22,10,37,47, + 44,36,51,69,8,5,7,1,2,65, + 63,0,77,0,119,0,121,74,60,33, + 15,64,38,16,40,41,17,18,42,43, + 19,20,46,66,50,67,21,31,22,34, + 23,14,13,35,8,3,9,6,11,57, + 59,75,12,30,56,7,1,2,5,4, + 10,0,33,34,76,3,72,11,69,61, + 8,62,95,68,73,70,0,8,73,13, + 14,36,63,15,37,39,16,17,18,65, + 7,44,19,20,45,47,48,61,49,51, + 10,21,22,23,52,53,54,29,1,2, + 3,26,27,9,24,25,5,32,4,55, + 6,0,33,61,34,8,62,95,70,68, + 73,0,61,33,7,34,5,1,2,4, + 76,69,120,103,26,27,58,3,96,90, + 6,91,92,24,25,89,88,28,93,94, + 97,98,9,99,100,101,62,95,73,70, + 104,105,106,107,108,109,110,111,112,113, + 72,118,11,102,117,68,71,8,0,63, + 65,26,27,9,6,24,25,5,32,45, + 3,4,7,52,55,53,54,49,39,48, 14,23,13,19,17,18,20,21,16,15, - 22,10,44,49,47,43,52,62,5,7, - 1,2,68,67,0,7,5,3,58,6, - 8,95,35,13,14,59,32,15,64,36, - 12,16,37,38,17,18,39,40,19,20, - 41,65,42,10,66,21,30,22,33,23, - 1,2,4,73,9,0,121,74,59,32, - 15,64,36,16,37,38,17,18,39,40, - 19,20,41,65,42,66,21,30,22,33, - 23,14,13,35,9,3,8,6,11,57, - 60,75,12,29,46,7,1,2,5,4, - 10,0,35,13,14,59,32,15,64,36, - 12,16,37,38,17,18,39,40,19,20, - 41,65,42,10,66,21,30,22,33,23, - 1,2,4,95,0,63,69,70,1,2, - 0,119,0,32,33,76,3,62,71,11, - 61,9,63,95,70,73,69,0,9,73, - 13,14,43,67,15,44,45,16,17,18, - 68,7,47,19,20,48,49,50,61,51, - 52,10,21,22,23,53,54,55,31,1, - 2,3,26,27,8,24,25,5,34,4, - 56,6,0,77,0,32,61,33,9,63, - 95,69,70,73,0,11,9,7,5,3, - 1,2,6,8,4,71,0,67,68,26, - 27,8,6,24,25,5,34,48,3,4, - 7,53,56,54,55,51,45,50,14,23, - 13,19,17,18,20,21,16,15,22,10, - 44,49,47,43,52,58,1,2,31,0, - 32,15,64,36,16,37,38,17,18,39, - 40,19,20,41,65,42,10,66,21,30, - 22,33,23,14,13,35,7,9,3,8, - 6,5,11,57,46,60,75,12,28,1, - 2,4,29,59,0,10,64,59,65,66, - 14,23,13,19,17,18,20,21,16,15, - 22,76,62,71,95,118,72,120,96,106, - 90,26,27,24,25,91,92,88,89,28, - 63,93,94,97,98,99,100,101,102,117, - 69,107,108,109,110,111,112,113,114,115, - 116,70,35,32,36,12,37,38,39,40, - 41,42,30,33,11,9,73,8,6,3, - 58,4,7,1,2,5,0 + 22,10,37,47,44,36,51,58,1,2, + 29,0,33,15,64,38,16,40,41,17, + 18,42,43,19,20,46,66,50,10,67, + 21,31,22,34,23,14,13,35,7,8, + 3,9,6,5,11,57,56,59,75,12, + 28,1,2,4,30,60,0,10,64,60, + 66,67,14,23,13,19,17,18,20,21, + 16,15,22,76,72,95,118,71,69,120, + 96,103,90,26,27,24,25,91,92,88, + 89,28,62,93,94,97,98,99,100,101, + 102,117,70,104,105,106,107,108,109,110, + 111,112,113,68,35,33,38,12,40,41, + 42,43,46,50,31,34,11,8,73,9, + 6,3,58,4,7,1,2,5,0,11, + 8,7,5,3,1,2,6,9,4,72, + 0,31,1,2,4,114,115,116,0,35, + 13,14,60,33,15,64,38,12,16,40, + 41,17,18,42,43,19,20,46,66,50, + 10,67,21,31,22,34,23,1,2,4, + 65,63,24,25,6,91,92,99,9,100, + 5,32,28,107,108,104,105,106,112,111, + 113,89,88,109,110,97,98,93,94,101, + 102,26,27,90,103,3,58,70,68,62, + 0 }; }; public final static byte asr[] = Asr.asr; @@ -1903,59 +1905,59 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface Nasb { public final static char nasb[] = {0, - 165,12,65,12,5,226,12,240,12,238, - 170,122,122,12,255,256,12,256,124,256, - 13,256,249,12,10,197,155,115,150,237, - 12,12,134,12,197,12,12,12,155,155, - 12,12,265,265,49,155,155,126,155,265, - 12,155,12,12,155,265,155,197,11,12, - 155,16,140,121,107,107,77,12,217,197, - 155,49,12,12,155,74,91,49,12,12, - 155,47,155,155,240,240,155,202,155,122, - 163,221,140,258,258,155,155,18,83,111, - 18,155,238,11,32,83,126,16,61,24, - 217,86,184,34,150,12,57,32,121,91, - 91,32,221,181,181,202,72,240,202,265, - 140,140,72,197,140,12,163,12,65,225, - 258,72,18,18,79,126,12,11,238,72, - 12,12,12,130,12,12,12,12,12,122, - 12,28,187,197,34,34,233,34,34,34, - 34,34,34,12,12,12,12,12,12,12, - 12,12,12,12,34,12,12,126,61,96, - 12,265,12,91,12,49,34,155,155,57, - 12,42,12,49,12,148,12,12,12,175, - 175,72,72,163,47,115,12,122,63,265, - 111,72,34,238,121,129,107,107,187,273, - 273,273,273,197,194,136,12,49,49,1, - 34,59,47,187,12,51,51,194,160,34, - 34,34,34,34,34,34,34,34,34,34, - 34,34,34,34,34,34,34,34,34,34, - 34,34,34,34,34,34,34,34,34,160, - 34,32,155,142,24,11,194,12,67,57, - 155,34,12,12,147,121,181,181,240,155, - 12,12,140,221,140,12,34,12,101,20, - 265,122,122,11,40,49,207,155,49,49, - 12,12,12,12,46,49,34,12,12,12, - 10,197,91,273,184,221,49,220,197,220, - 49,91,12,12,12,12,12,12,12,12, + 185,12,23,12,5,262,12,233,12,78, + 217,140,140,12,251,252,106,252,128,252, + 77,252,245,12,10,113,162,133,157,226, + 12,12,273,12,113,12,12,12,105,162, + 106,12,242,242,279,162,130,162,242,12, + 162,12,106,162,242,162,113,11,12,162, + 15,180,139,60,60,17,12,209,113,162, + 279,12,12,162,47,90,279,12,12,162, + 45,162,162,233,233,162,193,162,140,75, + 213,180,254,162,162,13,57,39,13,162, + 227,11,31,57,130,15,125,19,209,85, + 164,63,157,12,152,31,139,90,90,31, + 213,173,173,193,51,233,193,242,180,180, + 51,113,180,12,74,12,23,261,254,13, + 13,269,130,12,11,227,51,12,12,12, + 148,12,12,12,12,12,140,12,53,167, + 113,64,64,222,64,64,64,64,64,64, 12,12,12,12,12,12,12,12,12,12, - 12,105,157,12,34,12,140,12,12,12, - 158,12,238,138,140,140,238,99,49,34, - 72,57,34,34,207,215,181,273,273,140, - 150,34,34,11,265,265,49,181,12,12, - 12,12,126,11,197,47,34,273,155,93, - 49,197,191,47,34,103,12,12,12,158, - 268,268,179,12,268,140,140,12,155,67, - 155,12,11,11,155,49,160,160,160,160, - 12,12,45,126,49,200,42,12,237,126, - 273,49,150,49,245,155,12,49,105,177, - 12,57,155,49,49,49,49,194,194,126, - 155,109,12,160,42,192,12,12,49,49, - 155,158,12,158,140,150,160,158,103,12, - 175,155,57,49,49,12,200,194,34,91, - 192,99,99,148,34,12,212,140,49,272, - 12,177,155,109,49,91,158,49,140,49, - 220,177,158,273 + 12,64,12,12,130,125,50,12,242,12, + 90,12,279,64,162,162,152,12,200,12, + 279,12,155,12,12,12,81,81,51,51, + 75,45,133,12,140,116,242,39,51,64, + 227,139,147,60,60,167,36,36,36,36, + 113,190,275,12,279,279,1,64,70,45, + 167,12,25,25,190,122,64,64,64,64, + 64,64,64,64,64,64,64,64,64,64, + 64,64,64,64,64,64,64,64,64,64, + 64,64,64,64,64,64,122,64,31,162, + 102,19,11,190,12,62,152,162,64,12, + 12,154,139,173,173,233,162,12,12,180, + 213,180,12,64,12,72,238,242,140,140, + 11,198,279,108,162,279,279,12,12,12, + 12,44,279,64,12,12,12,10,113,90, + 36,164,213,279,212,113,212,279,90,12, + 12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,83,118, + 12,64,12,180,12,12,12,12,119,12, + 227,178,180,180,227,92,279,64,51,12, + 152,64,64,108,207,173,36,36,180,157, + 64,64,11,242,242,279,173,12,12,12, + 12,130,11,113,45,64,36,162,95,279, + 113,144,45,64,100,12,12,12,119,229, + 229,171,12,229,180,180,12,162,62,162, + 12,11,11,162,279,122,122,122,122,12, + 12,43,130,279,176,200,12,226,130,36, + 279,157,279,203,162,12,279,83,98,12, + 152,162,279,279,279,279,190,190,130,162, + 142,12,122,200,145,12,12,279,279,162, + 119,12,119,180,157,122,119,100,12,81, + 162,152,279,279,12,176,190,64,90,145, + 92,92,155,64,12,182,180,279,277,12, + 98,162,142,279,90,119,279,180,279,212, + 98,119,36 }; }; public final static char nasb[] = Nasb.nasb; @@ -1963,34 +1965,34 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface Nasr { public final static char nasr[] = {0, - 3,13,7,10,150,148,119,147,146,5, - 2,0,5,1,0,156,0,108,0,5, - 99,163,0,167,5,166,0,2,7,3, - 0,43,4,5,7,10,2,13,0,94, - 93,5,55,0,2,53,71,0,31,0, - 5,2,10,7,137,0,60,0,172,0, - 157,0,186,0,153,0,13,2,10,7, - 5,70,0,4,188,0,180,0,5,99, - 185,0,2,71,0,13,2,10,7,5, - 78,0,4,174,0,4,70,0,59,0, - 184,0,111,0,158,0,72,0,139,0, - 71,136,135,0,68,53,7,10,2,4, - 89,5,0,5,44,2,3,0,31,93, - 94,4,0,4,43,168,0,4,39,38, - 0,4,47,39,176,0,31,94,93,68, - 53,7,10,2,4,0,70,47,79,4, - 39,0,103,0,171,69,47,4,0,69, - 47,4,134,0,107,0,123,0,39,178, - 22,4,0,4,33,0,4,43,39,0, - 2,112,0,4,96,0,2,44,0,141, - 0,113,4,47,69,0,22,4,5,89, - 0,4,175,0,94,93,53,68,55,5, - 7,10,2,0,38,53,7,10,2,4, - 155,0,5,7,10,13,3,1,0,4, - 47,69,73,0,43,4,177,0,2,5, - 119,115,116,117,13,86,0,4,47,69, - 99,45,5,0,2,61,0,4,43,102, - 0,31,4,43,0 + 3,13,7,10,149,147,120,146,145,5, + 2,0,109,0,155,0,179,0,166,5, + 165,0,152,0,5,2,10,7,136,0, + 5,7,10,2,13,4,44,0,72,135, + 134,0,2,54,72,0,4,189,0,4, + 71,0,2,7,3,0,2,72,0,73, + 0,71,42,13,2,10,7,5,0,171, + 0,185,0,42,104,0,5,1,42,0, + 108,0,157,0,13,2,10,7,5,79, + 0,42,60,0,4,173,0,124,0,112, + 0,48,39,175,4,42,0,22,4,5, + 90,0,2,45,0,187,0,71,42,48, + 80,4,39,0,42,156,0,5,45,2, + 3,0,64,54,7,10,2,4,90,5, + 0,138,0,2,113,0,31,94,95,4, + 0,61,0,31,95,94,64,54,7,10, + 2,4,0,4,33,0,4,44,39,0, + 39,177,22,4,0,140,0,4,39,38, + 0,4,174,0,170,70,48,4,0,4, + 97,0,114,4,48,70,0,95,94,5, + 56,0,44,4,176,0,95,94,54,64, + 56,5,7,10,2,0,70,48,4,133, + 0,5,7,10,13,3,1,0,4,44, + 103,0,4,48,70,74,0,5,102,162, + 0,2,62,0,2,5,120,116,117,118, + 13,87,0,4,48,70,102,46,5,0, + 38,54,7,10,2,4,154,0,5,102, + 186,0,4,44,167,0,44,4,31,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -1998,19 +2000,19 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface TerminalIndex { public final static char terminalIndex[] = {0, - 115,116,3,33,15,12,81,11,1,102, - 121,68,50,54,62,70,76,77,88,89, - 104,107,109,13,14,9,10,21,95,106, - 114,56,108,16,49,66,72,75,78,85, - 91,100,57,63,69,79,86,90,92,96, - 99,101,111,112,113,123,105,2,55,48, - 97,4,22,65,93,103,60,80,35,46, - 32,120,119,122,67,98,110,51,52,58, - 59,61,71,73,74,87,94,19,20,8, - 17,18,23,24,34,6,25,26,27,28, - 29,30,82,83,84,7,36,37,38,39, - 40,41,42,43,44,45,31,118,53,5, - 124,64,117 + 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,19,112,93, + 104,14,54,106,47,55,61,64,67,70, + 73,76,83,84,88,89,90,94,97,98, + 99,109,110,111,123,77,103,1,46,53, + 95,20,58,63,78,91,101,44,121,33, + 119,30,118,122,65,96,108,49,50,56, + 57,59,69,71,72,85,92,17,18,6, + 15,16,21,22,32,4,23,24,25,26, + 27,28,5,34,35,36,37,38,39,40, + 41,42,43,80,81,82,29,117,51,3, + 124,62,116 }; }; public final static char terminalIndex[] = TerminalIndex.terminalIndex; @@ -2018,26 +2020,26 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, - 132,137,139,0,0,138,236,136,0,230, - 135,0,146,134,0,0,145,151,0,0, - 152,182,161,162,163,164,165,166,167,168, - 126,169,154,170,171,0,144,128,133,172, - 0,141,155,140,180,0,0,0,0,0, - 0,0,0,148,158,0,205,0,175,189, - 0,0,0,0,0,0,202,206,0,127, - 0,207,131,0,178,0,0,125,174,0, - 0,0,0,0,0,188,0,0,203,213, - 160,209,210,211,0,0,0,0,221,149, - 208,177,198,0,0,212,0,0,0,241, - 242,150,181,0,191,192,193,194,195,197, - 200,0,0,215,218,220,0,222,0,239, - 0,240,0,130,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,224, - 225,227,229,0,233,234,235,237,238,0, - 129,0,153,156,0,176,0,179,0,201, - 214,219,223,226,228,0,231,232,243,244, - 0,0,0 + 133,138,140,0,0,139,237,137,0,231, + 136,0,147,135,0,0,146,152,0,0, + 153,183,162,163,164,165,166,167,168,169, + 126,170,155,171,172,0,145,128,134,173, + 0,129,142,156,141,181,0,0,0,0, + 0,0,0,0,149,159,0,206,0,176, + 190,0,203,207,0,0,0,0,0,0, + 127,0,208,132,0,179,0,0,125,175, + 0,0,0,0,0,0,189,0,0,204, + 214,161,210,211,212,0,0,0,0,150, + 209,222,178,199,0,0,213,0,0,0, + 242,243,151,182,0,192,193,194,195,196, + 198,201,0,0,216,219,221,0,240,0, + 241,0,131,143,144,148,0,0,158,160, + 0,174,0,184,185,186,187,188,191,0, + 197,0,200,205,0,217,218,0,223,226, + 228,230,0,234,235,236,238,239,0,130, + 0,154,157,0,177,0,180,0,202,215, + 220,0,224,225,227,229,0,232,233,244, + 245,0,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -2045,18 +2047,18 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopePrefix { public final static char scopePrefix[] = { - 161,582,601,533,549,560,571,366,271,285, - 307,313,42,296,386,424,169,590,476,20, - 51,71,80,85,90,127,141,197,302,319, - 330,341,277,291,504,27,376,341,609,27, - 219,250,1,14,61,76,106,151,232,324, - 337,346,355,359,442,469,498,525,529,619, - 623,627,97,7,97,151,404,420,433,453, - 517,433,540,556,567,578,209,487,56,56, - 158,224,227,245,266,227,227,56,363,448, - 466,473,158,56,640,110,238,408,460,116, - 116,238,56,238,395,179,104,446,631,638, - 631,638,65,414,134,134,104,104,255 + 151,572,591,523,539,550,561,356,261,275, + 297,303,42,286,376,414,159,580,466,20, + 51,71,80,85,90,127,187,292,309,320, + 331,267,281,494,27,366,331,599,27,209, + 240,1,14,61,76,106,141,222,314,327, + 336,345,349,432,459,488,515,519,609,613, + 617,97,7,97,141,394,410,423,443,507, + 423,530,546,557,568,199,477,56,56,148, + 214,217,235,256,217,217,56,353,438,456, + 463,148,56,630,110,228,398,450,116,116, + 228,56,228,385,169,104,436,621,628,621, + 628,65,404,134,104,104,245 }; }; public final static char scopePrefix[] = ScopePrefix.scopePrefix; @@ -2064,18 +2066,18 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopeSuffix { public final static char scopeSuffix[] = { - 18,5,5,5,5,5,5,373,132,95, - 132,132,48,282,392,430,175,67,482,25, - 25,25,59,59,95,132,132,202,132,132, - 335,335,282,101,509,38,381,596,614,32, - 213,213,5,18,5,59,95,132,236,328, - 328,328,95,95,132,248,5,5,5,5, - 5,248,236,11,101,155,373,373,373,457, - 509,437,544,544,544,544,213,491,59,59, - 5,5,230,248,5,269,269,353,95,451, - 5,248,5,502,5,113,350,411,463,119, - 123,241,521,512,398,182,95,95,633,633, - 635,635,67,416,136,146,204,189,257 + 18,5,5,5,5,5,5,363,132,95, + 132,132,48,272,382,420,165,67,472,25, + 25,25,59,59,95,132,192,132,132,325, + 325,272,101,499,38,371,586,604,32,203, + 203,5,18,5,59,95,132,226,318,318, + 318,95,95,132,238,5,5,5,5,5, + 238,226,11,101,145,363,363,363,447,499, + 427,534,534,534,534,203,481,59,59,5, + 5,220,238,5,259,259,343,95,441,5, + 238,5,492,5,113,340,401,453,119,123, + 231,511,502,388,172,95,95,623,623,625, + 625,67,406,136,194,179,247 }; }; public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; @@ -2083,18 +2085,18 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopeLhs { public final static char scopeLhs[] = { - 45,17,17,17,17,17,17,82,77,46, - 65,117,62,51,82,81,45,17,19,3, - 6,9,163,163,128,115,115,45,66,117, - 116,118,52,46,137,131,82,17,17,131, - 95,56,133,85,166,163,128,125,58,116, - 116,118,179,49,59,141,18,17,17,17, - 17,17,12,111,128,125,82,81,81,36, - 137,81,17,17,17,17,95,19,167,163, - 180,93,101,72,57,155,75,118,83,80, - 142,141,172,137,16,128,118,102,21,126, - 126,55,137,137,82,45,128,74,135,44, - 135,44,166,102,115,115,45,45,56 + 46,17,17,17,17,17,17,83,78,47, + 68,118,65,52,83,82,46,17,19,3, + 6,9,162,162,159,116,46,69,118,117, + 119,53,47,136,130,83,17,17,130,96, + 57,132,86,165,162,159,126,59,117,117, + 119,178,50,60,140,18,17,17,17,17, + 17,12,112,159,126,83,82,82,36,136, + 82,17,17,17,17,96,19,166,162,179, + 94,101,73,58,154,76,119,84,81,141, + 140,171,136,16,159,119,103,21,127,127, + 56,136,136,83,46,159,75,134,45,134, + 45,165,103,116,46,46,57 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -2102,18 +2104,18 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopeLa { public final static byte scopeLa[] = { - 119,73,73,73,73,73,73,73,72,11, - 72,72,63,1,73,122,62,3,73,63, - 63,63,1,1,11,72,72,62,72,72, - 1,1,1,1,4,63,11,1,1,63, - 73,73,73,119,73,1,11,72,1,1, - 1,1,11,11,72,118,73,73,73,73, - 73,118,1,73,1,70,73,73,73,71, - 4,73,63,63,63,63,73,3,1,1, - 73,73,3,118,73,1,1,1,11,71, - 73,118,73,5,73,1,29,69,73,1, - 1,6,1,29,77,76,11,11,4,4, - 4,4,3,1,9,62,1,1,3 + 119,73,73,73,73,73,73,73,71,11, + 71,71,62,1,73,122,69,3,73,62, + 62,62,1,1,11,71,69,71,71,1, + 1,1,1,4,62,11,1,1,62,73, + 73,73,119,73,1,11,71,1,1,1, + 1,11,11,71,118,73,73,73,73,73, + 118,1,73,1,68,73,73,73,72,4, + 73,62,62,62,62,73,3,1,1,73, + 73,3,118,73,1,1,1,11,72,73, + 118,73,5,73,1,30,70,73,1,1, + 6,1,30,77,76,11,11,4,4,4, + 4,3,1,69,1,1,3 }; }; public final static byte scopeLa[] = ScopeLa.scopeLa; @@ -2121,18 +2123,18 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopeStateSet { public final static char scopeStateSet[] = { - 275,204,204,204,204,204,204,52,287,275, - 298,271,298,278,52,52,275,204,204,137, - 179,180,37,37,308,271,271,275,298,271, - 271,271,278,275,32,40,52,204,204,40, - 71,118,4,52,44,37,308,267,118,271, - 271,271,30,278,47,8,204,204,204,204, - 204,204,199,16,308,267,52,52,52,236, - 32,52,204,204,204,204,71,204,44,37, - 65,71,73,67,118,134,123,271,52,52, - 1,8,35,32,204,308,271,11,205,271, - 271,79,32,32,52,275,308,21,62,95, - 62,95,44,11,271,271,275,275,118 + 275,204,204,204,204,204,204,52,286,275, + 297,271,297,277,52,52,275,204,204,137, + 179,180,37,37,307,271,275,297,271,271, + 271,277,275,32,40,52,204,204,40,71, + 118,4,52,44,37,307,267,118,271,271, + 271,30,277,47,8,204,204,204,204,204, + 204,199,16,307,267,52,52,52,236,32, + 52,204,204,204,204,71,204,44,37,65, + 71,73,67,118,134,123,271,52,52,1, + 8,35,32,204,307,271,11,205,271,271, + 79,32,32,52,275,307,21,62,95,62, + 95,44,11,271,275,275,118 }; }; public final static char scopeStateSet[] = ScopeStateSet.scopeStateSet; @@ -2140,70 +2142,69 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopeRhs { public final static char scopeRhs[] = {0, - 313,3,61,0,126,0,312,3,119,0, - 126,175,0,127,182,76,0,217,0,252, - 127,28,125,0,22,0,292,127,28,29, - 0,22,55,0,35,134,0,22,55,0, - 0,292,127,28,29,192,0,22,131,0, - 252,127,28,130,0,184,128,0,144,0, - 219,3,290,0,290,0,3,0,126,0, - 252,127,28,133,0,184,128,222,0,184, - 128,30,222,0,184,128,309,30,0,131, - 194,167,128,0,128,0,194,167,128,0, - 136,128,0,170,0,306,127,170,0,127, - 170,0,223,128,0,167,242,0,139,0, - 0,0,137,0,0,0,282,127,9,249, - 0,127,0,249,0,1,0,0,127,0, - 282,127,62,249,0,4,0,0,127,0, - 305,127,62,0,46,127,0,156,3,0, - 127,280,279,127,76,278,170,0,279,127, - 76,278,170,0,216,0,217,0,278,170, - 0,98,0,0,216,0,217,0,204,98, - 0,0,216,0,217,0,279,127,278,170, - 0,216,0,204,0,0,216,0,227,127, - 3,0,126,0,0,0,0,0,227,127, - 3,216,0,224,3,0,212,127,0,209, - 0,194,167,176,0,136,0,167,128,0, - 12,0,0,0,214,58,0,125,0,227, - 127,3,180,0,180,0,3,0,0,126, - 0,0,0,0,0,198,3,0,202,0, - 237,127,62,31,12,0,184,128,46,57, - 0,198,128,0,131,184,128,276,57,0, - 184,128,276,57,0,184,128,69,124,46, - 0,237,127,62,46,0,237,127,62,226, - 46,0,274,127,62,124,64,0,274,127, - 62,64,0,184,128,64,0,137,0,194, - 184,128,242,0,139,0,184,128,242,0, - 194,167,128,10,0,167,128,10,0,95, - 139,0,149,0,267,127,145,0,267,127, - 170,0,162,86,0,298,161,300,301,3, - 83,0,126,174,0,300,301,3,83,0, - 128,0,126,174,0,162,3,77,202,82, - 0,126,128,0,202,82,0,110,3,133, - 126,128,0,225,3,77,0,198,166,0, - 35,172,0,166,0,178,35,172,0,225, - 3,87,0,202,154,225,3,85,0,64, - 174,0,225,3,85,0,126,174,64,174, - 0,299,127,62,0,162,0,214,79,0, - 32,0,162,117,158,0,32,172,0,177, - 3,0,126,152,0,219,3,0,214,58, - 264,0,162,58,0,177,3,295,68,128, - 0,126,0,0,0,0,295,68,128,0, - 3,148,126,0,0,0,0,177,3,48, - 0,150,0,126,29,167,128,0,33,150, - 0,95,139,33,150,0,223,184,128,0, - 149,33,150,0,177,3,52,0,162,3, - 52,0,162,3,63,177,28,43,0,177, - 28,43,0,22,3,133,126,0,162,3, - 63,177,28,47,0,177,28,47,0,162, - 3,63,177,28,49,0,177,28,49,0, - 162,3,63,177,28,44,0,177,28,44, - 0,219,3,126,194,167,128,10,0,126, - 194,167,128,10,0,139,3,0,126,0, - 219,3,125,176,167,128,10,0,176,167, - 128,10,0,137,3,0,126,0,219,3, - 136,0,219,3,140,0,162,58,140,0, - 259,0,33,0,33,142,0,165,0,162, + 314,3,61,0,126,0,313,3,119,0, + 126,176,0,127,183,76,0,218,0,251, + 127,28,125,0,20,0,291,127,28,30, + 0,20,53,0,33,135,0,20,53,0, + 0,291,127,28,30,193,0,20,132,0, + 251,127,28,130,0,185,128,0,145,0, + 220,3,289,0,289,0,2,0,126,0, + 251,127,28,133,0,185,128,225,0,185, + 128,31,225,0,185,128,310,31,0,131, + 195,168,128,0,128,0,195,168,128,0, + 137,128,0,171,0,306,127,171,0,127, + 171,0,224,128,0,168,243,0,140,0, + 0,0,138,0,0,0,305,127,165,250, + 0,127,0,250,0,129,0,0,127,0, + 304,127,165,0,44,127,0,156,3,0, + 127,279,278,127,76,277,171,0,278,127, + 76,277,171,0,217,0,218,0,277,171, + 0,96,0,0,217,0,218,0,205,96, + 0,0,217,0,218,0,278,127,277,171, + 0,217,0,205,0,0,217,0,228,127, + 3,0,126,0,0,0,0,0,228,127, + 3,217,0,224,3,0,213,127,0,210, + 0,195,168,177,0,137,0,168,128,0, + 10,0,0,0,215,58,0,125,0,228, + 127,3,181,0,181,0,2,0,0,126, + 0,0,0,0,0,199,3,0,203,0, + 238,127,165,29,12,0,185,128,56,57, + 0,199,128,0,131,185,128,275,57,0, + 185,128,275,57,0,185,128,70,124,56, + 0,238,127,165,56,0,238,127,165,227, + 56,0,273,127,165,124,64,0,273,127, + 165,64,0,185,128,64,0,138,0,195, + 185,128,243,0,140,0,185,128,243,0, + 195,168,128,10,0,168,128,10,0,93, + 140,0,150,0,266,127,145,0,266,127, + 171,0,162,86,0,297,161,299,300,3, + 83,0,126,175,0,299,300,3,83,0, + 128,0,126,175,0,162,3,77,203,82, + 0,126,128,0,203,82,0,108,2,134, + 126,128,0,226,3,77,0,199,167,0, + 33,173,0,167,0,179,33,173,0,226, + 3,87,0,203,154,226,3,85,0,62, + 175,0,226,3,85,0,126,175,62,175, + 0,298,127,165,0,162,0,215,79,0, + 30,0,162,117,158,0,30,173,0,178, + 3,0,126,153,0,220,3,0,215,58, + 263,0,162,58,0,178,3,294,65,128, + 0,126,0,0,0,0,294,65,128,0, + 2,149,126,0,0,0,0,178,3,45, + 0,151,0,126,30,168,128,0,31,151, + 0,93,140,31,151,0,223,185,128,0, + 150,31,151,0,178,3,51,0,162,3, + 51,0,162,3,62,178,28,36,0,178, + 28,36,0,20,2,134,126,0,162,3, + 62,178,28,44,0,178,28,44,0,162, + 3,62,178,28,47,0,178,28,47,0, + 162,3,62,178,28,37,0,178,28,37, + 0,220,3,126,195,168,128,10,0,126, + 195,168,128,10,0,140,2,0,126,0, + 220,3,125,177,168,128,10,0,177,168, + 128,10,0,138,2,0,126,0,220,3, + 136,0,220,3,140,0,162,58,140,0, + 258,0,31,0,31,143,0,166,0,162, 3,0 }; }; @@ -2212,38 +2213,37 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopeState { public final static char scopeState[] = {0, - 2756,2140,0,3401,3314,3076,0,3569,3498,0, - 4126,4735,4727,4712,0,1653,2408,1569,1905,0, - 3463,3410,3324,3271,3218,3165,3112,2822,2724,3221, - 0,933,794,0,866,0,623,1208,0,4554, - 2853,4326,0,2830,624,0,1755,1545,1419,2999, - 914,3463,3410,3324,3271,3218,3165,3112,2822,2724, - 0,2993,2453,0,1173,0,2825,2761,2435,1981, - 3765,716,3378,2784,2574,2550,3325,0,3476,2597, - 3765,3555,3552,716,1472,1430,2911,720,1259,3280, - 3117,1166,2526,0,4704,4696,4676,4658,4625,4613, - 4609,4688,4605,4593,4680,4141,4580,3632,3139,4560, - 4531,4506,4498,2847,3438,2543,0,3765,3798,3280, - 3117,4513,3378,3079,4378,4350,2784,2911,2550,4337, - 577,2526,0,3798,4513,0,3358,3229,3067,2939, - 2779,2538,3365,4704,4696,2810,4676,4658,1125,4625, - 4613,918,4609,732,4688,4605,4593,2765,4680,995, - 2748,4141,4580,1118,3632,1114,3139,4560,4531,922, - 4506,4498,2847,861,3438,4361,2543,2512,636,3378, - 3079,4378,4350,3765,3041,3003,2784,2911,2550,3798, - 2561,4337,3280,2233,3117,577,2526,4513,2733,2146, - 2059,933,794,654,4103,4081,2246,2283,588,2316, - 2376,1041,2347,2702,2676,2485,2458,2431,2404,3741, - 3717,3680,3090,3016,4059,4037,4015,3993,3971,3949, - 3927,3905,3883,3861,3776,1943,2196,1901,2159,2109, - 1268,1217,1859,2072,2022,1175,872,1817,1775,1733, - 1691,1649,1607,1565,1523,1481,1439,1397,532,1985, - 1129,1349,817,738,1310,683,999,951,1072,0, - 532,4361,2512,0,2755,4428,4419,3463,3410,3324, - 3271,3218,3165,3112,2822,2724,4259,3602,4225,3549, - 3516,4192,4158,2925,4125,2886,0,4259,3602,4225, - 3549,3516,4192,4158,2925,4125,2886,2755,4428,4419, - 0 + 2819,2704,0,1604,1562,1520,0,3257,3081,0, + 3542,4718,4187,4107,0,2498,2804,2323,1277,0, + 3252,3198,3144,3090,3036,2982,2917,2575,2521,3076, + 0,796,656,0,1006,0,4127,4573,0,4616, + 4108,3055,0,3419,623,0,1617,1533,1449,2949, + 2612,3252,3198,3144,3090,3036,2982,2917,2575,2521, + 0,3296,721,0,612,0,2516,2389,1001,917, + 3714,3539,3464,2878,2810,2754,2829,0,3510,1385, + 3714,3309,2542,3539,4144,4113,3347,3208,3413,3043, + 2889,2588,2683,0,4522,4468,4676,4667,4644,4621, + 4612,4446,4598,4594,2795,1173,4589,1124,996,4574, + 4282,4211,4133,734,2549,2636,0,3714,4526,3043, + 2889,3152,3464,4096,4494,4378,2878,3347,2754,4353, + 578,2683,0,4526,3152,0,3286,3232,3178,3070, + 4120,3781,2800,4522,4468,2993,4676,4667,3764,4644, + 4621,3010,4612,920,4446,4598,4594,2748,2795,1399, + 2732,1173,4589,2555,1124,3752,996,4574,4282,924, + 4211,4133,734,644,2549,4390,2636,2582,863,3464, + 4096,4494,4378,3714,3316,3259,2878,3347,2754,4526, + 2526,4353,3043,2241,2889,578,2683,3152,933,2153, + 2065,796,656,2705,4074,4052,2255,2292,590,2325, + 2385,1045,2356,2851,2769,2494,2467,2440,2413,3690, + 3657,3475,3433,3372,4030,4008,3986,3964,3942,3920, + 3898,3876,3848,3826,3725,1949,2204,1907,2167,2116, + 1273,1221,1865,2079,2028,1179,875,1823,1781,1739, + 1697,1655,1613,1571,1529,1487,1445,1403,533,1991, + 1130,1352,818,740,1315,683,1002,953,1075,0, + 533,4390,2582,0,4540,4397,3252,3198,3144,3090, + 3036,2982,2917,2575,2521,4299,3574,4265,3541,3502, + 4228,4194,3747,4115,3293,0,4299,3574,4265,3541, + 3502,4228,4194,3747,4115,3293,4540,4397,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2251,59 +2251,59 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface InSymb { public final static char inSymb[] = {0, - 0,293,57,60,127,170,192,29,12,46, - 294,46,276,3,268,269,249,270,242,271, - 64,272,273,125,10,128,278,127,3,5, - 125,133,7,130,176,180,29,28,31,62, - 226,124,128,128,31,9,62,167,230,128, - 165,126,125,124,62,128,28,128,184,167, - 76,127,267,127,191,180,198,277,212,128, - 6,198,125,124,28,166,58,3,67,68, - 28,167,3,28,63,127,62,127,62,69, - 184,184,154,127,127,126,125,127,184,4, - 127,62,127,184,127,167,29,127,279,71, - 212,58,3,69,70,167,127,127,127,58, - 58,127,194,127,127,127,237,236,127,128, - 226,131,282,128,168,222,46,29,57,170, - 283,282,127,127,71,194,259,194,127,274, - 124,275,252,166,52,43,47,49,44,10, - 136,4,3,128,48,34,5,25,24,6, - 8,27,26,140,146,148,147,150,149,152, - 151,155,153,157,61,158,255,194,279,62, - 289,128,290,214,158,156,127,62,6,183, - 252,212,252,227,228,145,229,292,29,10, - 59,237,237,184,167,127,308,222,30,128, - 4,274,69,70,127,3,217,216,3,28, - 28,28,28,128,3,7,125,177,162,127, - 67,68,167,3,126,106,120,3,58,90, - 96,25,24,92,91,6,94,93,63,28, - 88,89,8,98,97,100,99,101,116,115, - 114,113,112,111,110,109,108,107,69,117, - 102,70,280,127,70,184,3,266,127,127, - 154,69,224,198,3,127,70,70,63,28, - 230,230,226,194,306,125,71,285,198,70, - 128,30,309,184,212,224,127,3,177,162, - 177,177,177,177,167,219,154,136,126,125, - 10,128,58,295,3,194,177,29,128,29, - 219,162,147,147,146,146,146,149,149,149, - 149,148,148,151,150,150,153,152,155,162, - 157,127,299,81,79,1,162,87,85,83, - 82,77,84,86,80,78,46,76,219,70, - 305,127,69,69,127,212,127,69,69,131, - 70,71,69,184,128,128,227,127,63,63, - 63,63,194,176,128,167,201,3,296,166, - 156,128,184,167,71,281,119,9,214,71, - 3,3,3,202,3,124,162,124,182,70, - 220,292,184,184,154,227,3,3,3,3, - 126,125,167,29,177,127,127,223,5,29, - 3,225,166,225,301,145,77,225,127,127, - 63,127,154,162,162,162,162,3,3,194, - 154,261,264,58,178,4,124,126,95,312, - 166,154,198,154,300,127,3,154,281,61, - 59,220,127,219,219,126,127,3,58,162, - 4,154,154,127,69,202,161,267,162,3, - 230,127,220,261,219,214,122,298,154,313, - 69,127,154,70 + 0,292,57,59,127,171,193,30,12,56, + 293,56,275,3,267,268,250,269,243,270, + 64,271,272,125,10,128,277,127,3,5, + 125,133,7,130,177,181,30,28,29,165, + 227,124,128,128,29,165,168,231,128,166, + 126,125,124,165,128,28,128,185,168,76, + 127,266,127,187,181,199,276,213,128,6, + 199,125,124,28,167,58,3,63,65,28, + 168,3,28,62,127,165,127,165,70,185, + 185,154,127,126,125,127,185,4,127,165, + 127,185,127,168,30,127,278,72,213,58, + 3,70,68,168,127,127,127,58,58,127, + 195,127,127,127,238,237,127,128,227,131, + 305,128,169,225,56,30,57,171,307,127, + 127,72,195,258,195,127,273,124,274,251, + 167,51,36,44,47,37,10,136,4,3, + 128,45,32,5,25,24,6,9,27,26, + 140,146,148,147,150,149,152,151,155,153, + 157,61,158,254,195,278,165,288,128,289, + 215,158,156,127,165,6,184,251,213,251, + 228,229,145,230,291,30,10,60,238,238, + 185,168,127,309,225,31,128,4,273,70, + 68,127,3,218,217,3,28,28,28,28, + 128,3,7,125,178,162,127,63,65,168, + 3,126,103,120,3,58,90,96,25,24, + 92,91,6,94,93,62,28,88,89,9, + 98,97,100,99,101,113,112,111,110,109, + 108,107,106,105,104,70,117,102,68,279, + 127,68,185,3,265,127,127,154,70,224, + 199,3,127,68,68,62,28,231,231,227, + 195,306,125,72,284,199,68,128,31,310, + 185,213,224,127,3,178,162,178,178,178, + 178,168,220,154,136,126,125,10,128,58, + 294,3,195,178,30,128,30,220,162,147, + 147,146,146,146,149,149,149,149,148,148, + 151,150,150,153,152,155,162,157,127,298, + 81,79,1,162,8,87,85,83,82,77, + 84,86,80,78,56,76,220,68,304,8, + 127,70,70,127,213,127,70,70,131,68, + 72,70,185,128,128,228,127,62,62,62, + 62,195,177,128,168,202,3,295,167,156, + 128,185,168,72,280,119,8,215,72,3, + 3,3,203,3,124,162,124,183,68,221, + 291,185,185,154,228,3,3,3,3,126, + 125,168,30,178,127,127,223,5,30,3, + 226,167,226,300,145,77,226,127,127,62, + 127,154,162,162,162,162,3,3,195,154, + 260,263,58,179,4,124,126,95,313,167, + 154,199,154,299,127,3,154,280,61,60, + 221,127,220,220,126,127,3,58,162,4, + 154,154,127,70,203,161,266,162,3,231, + 127,221,260,220,215,122,297,154,314,70, + 127,154,68 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2312,10 +2312,8 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface Name { public final static String name[] = { "", - "EOC", "[", "(", - "{", ".", ".*", "->", @@ -2428,11 +2426,13 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym "stringlit", "identifier", "Completion", + "EndOfCompletion", "Invalid", "RightBracket", "RightParen", "RightBrace", "SemiColon", + "LeftBrace", "ERROR_TOKEN", "0", "EOF_TOKEN", @@ -2440,6 +2440,7 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym ")", "}", ";", + "{", "external_declaration_list", "external_declaration", "declaration", @@ -2569,8 +2570,8 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public final static int ERROR_SYMBOL = 74, - SCOPE_UBOUND = 118, - SCOPE_SIZE = 119, + SCOPE_UBOUND = 116, + SCOPE_SIZE = 117, MAX_NAME_LENGTH = 37; public final int getErrorSymbol() { return ERROR_SYMBOL; } @@ -2579,20 +2580,20 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 524, + NUM_STATES = 523, NT_OFFSET = 123, - LA_STATE_OFFSET = 5863, + LA_STATE_OFFSET = 5811, MAX_LA = 2147483647, - NUM_RULES = 531, - NUM_NONTERMINALS = 193, - NUM_SYMBOLS = 316, + NUM_RULES = 532, + NUM_NONTERMINALS = 194, + NUM_SYMBOLS = 317, SEGMENT_SIZE = 8192, - START_STATE = 2886, + START_STATE = 3293, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 121, EOLT_SYMBOL = 121, - ACCEPT_ACTION = 4942, - ERROR_ACTION = 5332; + ACCEPT_ACTION = 4879, + ERROR_ACTION = 5279; 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 0e90bc442f5..42c4687112e 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,98 +15,97 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp; public interface CPPParsersym { public final static int - TK_asm = 60, + TK_asm = 59, TK_auto = 35, TK_bool = 13, TK_break = 78, TK_case = 79, TK_catch = 119, TK_char = 14, - TK_class = 59, - TK_const = 32, - TK_const_cast = 43, + TK_class = 60, + TK_const = 33, + TK_const_cast = 36, TK_continue = 80, TK_default = 81, - TK_delete = 67, + TK_delete = 63, TK_do = 82, TK_double = 15, - TK_dynamic_cast = 44, + TK_dynamic_cast = 37, TK_else = 122, TK_enum = 64, - TK_explicit = 36, + TK_explicit = 38, TK_export = 75, TK_extern = 12, - TK_false = 45, + TK_false = 39, TK_float = 16, TK_for = 83, - TK_friend = 37, + TK_friend = 40, TK_goto = 84, TK_if = 85, - TK_inline = 38, + TK_inline = 41, TK_int = 17, TK_long = 18, - TK_mutable = 39, - TK_namespace = 46, - TK_new = 68, + TK_mutable = 42, + TK_namespace = 56, + TK_new = 65, TK_operator = 7, - TK_private = 103, - TK_protected = 104, - TK_public = 105, - TK_register = 40, - TK_reinterpret_cast = 47, + TK_private = 114, + TK_protected = 115, + TK_public = 116, + TK_register = 43, + TK_reinterpret_cast = 44, TK_return = 86, TK_short = 19, TK_signed = 20, - TK_sizeof = 48, - TK_static = 41, - TK_static_cast = 49, - TK_struct = 65, + TK_sizeof = 45, + TK_static = 46, + TK_static_cast = 47, + TK_struct = 66, TK_switch = 87, - TK_template = 29, - TK_this = 50, + TK_template = 30, + TK_this = 48, TK_throw = 61, TK_try = 76, - TK_true = 51, - TK_typedef = 42, - TK_typeid = 52, + TK_true = 49, + TK_typedef = 50, + TK_typeid = 51, TK_typename = 10, - TK_union = 66, + TK_union = 67, TK_unsigned = 21, TK_using = 57, - TK_virtual = 30, + TK_virtual = 31, TK_void = 22, - TK_volatile = 33, + TK_volatile = 34, TK_wchar_t = 23, TK_while = 77, - TK_integer = 53, - TK_floating = 54, - TK_charconst = 55, - TK_stringlit = 31, + TK_integer = 52, + TK_floating = 53, + TK_charconst = 54, + TK_stringlit = 29, TK_identifier = 1, TK_Completion = 2, - TK_EndOfCompletion = 9, + TK_EndOfCompletion = 8, TK_Invalid = 123, TK_LeftBracket = 58, TK_LeftParen = 3, - TK_LeftBrace = 62, TK_Dot = 120, TK_DotStar = 96, - TK_Arrow = 106, + TK_Arrow = 103, TK_ArrowStar = 90, TK_PlusPlus = 26, TK_MinusMinus = 27, - TK_And = 8, + TK_And = 9, TK_Star = 6, TK_Plus = 24, TK_Minus = 25, TK_Tilde = 5, - TK_Bang = 34, + TK_Bang = 32, TK_Slash = 91, TK_Percent = 92, TK_RightShift = 88, TK_LeftShift = 89, TK_LT = 28, - TK_GT = 63, + TK_GT = 62, TK_LE = 93, TK_GE = 94, TK_EQ = 97, @@ -116,27 +115,28 @@ public interface CPPParsersym { TK_AndAnd = 101, TK_OrOr = 102, TK_Question = 117, - TK_Colon = 71, + TK_Colon = 72, TK_ColonColon = 4, TK_DotDotDot = 95, - TK_Assign = 69, - TK_StarAssign = 107, - TK_SlashAssign = 108, - TK_PercentAssign = 109, - TK_PlusAssign = 110, - TK_MinusAssign = 111, - TK_RightShiftAssign = 112, - TK_LeftShiftAssign = 113, - TK_AndAssign = 114, - TK_CaretAssign = 115, - TK_OrAssign = 116, - TK_Comma = 70, + TK_Assign = 70, + TK_StarAssign = 104, + TK_SlashAssign = 105, + TK_PercentAssign = 106, + TK_PlusAssign = 107, + TK_MinusAssign = 108, + TK_RightShiftAssign = 109, + TK_LeftShiftAssign = 110, + TK_AndAssign = 111, + TK_CaretAssign = 112, + TK_OrAssign = 113, + TK_Comma = 68, TK_RightBracket = 118, TK_RightParen = 73, - TK_RightBrace = 72, + TK_RightBrace = 71, TK_SemiColon = 11, + TK_LeftBrace = 69, TK_ERROR_TOKEN = 74, - TK_0 = 56, + TK_0 = 55, TK_EOF_TOKEN = 121; public final static String orderedTerminalSymbols[] = { @@ -148,8 +148,8 @@ public interface CPPParsersym { "Tilde", "Star", "operator", - "And", "EndOfCompletion", + "And", "typename", "SemiColon", "extern", @@ -169,50 +169,50 @@ public interface CPPParsersym { "PlusPlus", "MinusMinus", "LT", + "stringlit", "template", "virtual", - "stringlit", + "Bang", "const", "volatile", - "Bang", "auto", + "const_cast", + "dynamic_cast", "explicit", + "false", "friend", "inline", "mutable", "register", - "static", - "typedef", - "const_cast", - "dynamic_cast", - "false", - "namespace", "reinterpret_cast", "sizeof", + "static", "static_cast", "this", "true", + "typedef", "typeid", "integer", "floating", "charconst", "0", + "namespace", "using", "LeftBracket", - "class", "asm", + "class", "throw", - "LeftBrace", "GT", + "delete", "enum", + "new", "struct", "union", - "delete", - "new", - "Assign", "Comma", - "Colon", + "LeftBrace", + "Assign", "RightBrace", + "Colon", "RightParen", "ERROR_TOKEN", "export", @@ -243,9 +243,6 @@ public interface CPPParsersym { "Or", "AndAnd", "OrOr", - "private", - "protected", - "public", "Arrow", "StarAssign", "SlashAssign", @@ -257,6 +254,9 @@ public interface CPPParsersym { "AndAssign", "CaretAssign", "OrAssign", + "private", + "protected", + "public", "Question", "RightBracket", "catch", 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 44d163d3420..469357f230b 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 @@ -267,1990 +267,1983 @@ public CPPSizeofExpressionParser(String[] mapFrom) { // constructor } // - // Rule 11: translation_unit ::= external_declaration_list + // Rule 13: translation_unit ::= external_declaration_list // - case 11: { action.builder. + case 13: { action.builder. consumeTranslationUnit(); break; } // - // Rule 12: translation_unit ::= $Empty + // Rule 14: translation_unit ::= $Empty // - case 12: { action.builder. + case 14: { action.builder. consumeTranslationUnit(); break; } // - // Rule 16: external_declaration ::= ERROR_TOKEN + // Rule 18: external_declaration ::= ERROR_TOKEN // - case 16: { action.builder. + case 18: { action.builder. consumeDeclarationProblem(); break; } // - // Rule 19: literal ::= integer - // - case 19: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; - } - - // - // Rule 20: literal ::= 0 - // - case 20: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; - } - - // - // Rule 21: literal ::= floating + // 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 22: literal ::= charconst + // Rule 24: literal ::= charconst // - case 22: { action.builder. + case 24: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_char_constant); break; } // - // Rule 23: literal ::= stringlit + // Rule 25: literal ::= stringlit // - case 23: { action.builder. + case 25: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_string_literal); break; } // - // Rule 24: literal ::= true + // Rule 26: literal ::= true // - case 24: { action.builder. + case 26: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_true); break; } // - // Rule 25: literal ::= false + // Rule 27: literal ::= false // - case 25: { action.builder. + case 27: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_false); break; } // - // Rule 26: literal ::= this + // Rule 28: literal ::= this // - case 26: { action.builder. + case 28: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_this); break; } // - // Rule 28: primary_expression ::= ( expression ) + // Rule 30: primary_expression ::= ( expression ) // - case 28: { action.builder. + case 30: { action.builder. consumeExpressionBracketed(); break; } // - // Rule 30: id_expression ::= qualified_or_unqualified_name + // Rule 32: id_expression ::= qualified_or_unqualified_name // - case 30: { action.builder. + case 32: { action.builder. consumeExpressionName(); break; } // - // Rule 37: unqualified_id_name ::= ~ identifier_token + // Rule 39: unqualified_id_name ::= ~ identifier_token // - case 37: { action.builder. + case 39: { action.builder. consumeDestructorName(); break; } // - // Rule 38: unqualified_id_name ::= ~ template_id_name + // Rule 40: unqualified_id_name ::= ~ template_id_name // - case 38: { action.builder. + case 40: { action.builder. consumeDestructorNameTemplateId(); break; } // - // Rule 39: identifier_name ::= identifier_token + // Rule 41: identifier_name ::= identifier_token // - case 39: { action.builder. + case 41: { action.builder. consumeIdentifierName(); break; } // - // Rule 40: template_opt ::= template + // Rule 42: template_opt ::= template // - case 40: { action.builder. + case 42: { action.builder. consumePlaceHolder(); break; } // - // Rule 41: template_opt ::= $Empty - // - case 41: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 42: dcolon_opt ::= :: - // - case 42: { action.builder. - consumeToken(); break; - } - - // - // Rule 43: dcolon_opt ::= $Empty + // Rule 43: template_opt ::= $Empty // case 43: { action.builder. consumeEmpty(); break; } // - // Rule 44: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name + // Rule 44: dcolon_opt ::= :: // case 44: { action.builder. + consumeToken(); break; + } + + // + // Rule 45: dcolon_opt ::= $Empty + // + case 45: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 46: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name + // + case 46: { action.builder. consumeQualifiedId(true); break; } // - // Rule 45: qualified_id_name ::= :: identifier_name - // - case 45: { action.builder. - consumeGlobalQualifiedId(); break; - } - - // - // Rule 46: qualified_id_name ::= :: operator_function_id_name - // - case 46: { action.builder. - consumeGlobalQualifiedId(); break; - } - - // - // Rule 47: qualified_id_name ::= :: template_id_name + // Rule 47: qualified_id_name ::= :: identifier_name // case 47: { action.builder. consumeGlobalQualifiedId(); break; } // - // Rule 48: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template + // Rule 48: qualified_id_name ::= :: operator_function_id_name // case 48: { action.builder. - consumeNestedNameSpecifier(true); break; + consumeGlobalQualifiedId(); break; } // - // Rule 49: nested_name_specifier ::= class_or_namespace_name :: + // Rule 49: qualified_id_name ::= :: template_id_name // case 49: { action.builder. - consumeNestedNameSpecifier(false); break; + consumeGlobalQualifiedId(); break; } // - // Rule 50: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template + // Rule 50: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template // case 50: { action.builder. consumeNestedNameSpecifier(true); break; } // - // Rule 51: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: + // Rule 51: nested_name_specifier ::= class_or_namespace_name :: // case 51: { action.builder. consumeNestedNameSpecifier(false); break; } // - // Rule 52: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name + // Rule 52: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template // case 52: { action.builder. + consumeNestedNameSpecifier(true); break; + } + + // + // Rule 53: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: + // + case 53: { action.builder. + consumeNestedNameSpecifier(false); break; + } + + // + // Rule 54: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name + // + case 54: { action.builder. consumeNameWithTemplateKeyword(); break; } // - // Rule 54: nested_name_specifier_opt ::= $Empty + // Rule 56: nested_name_specifier_opt ::= $Empty // - case 54: { action.builder. + case 56: { action.builder. consumeNestedNameSpecifierEmpty(); break; } // - // Rule 57: postfix_expression ::= postfix_expression [ expression ] + // Rule 59: postfix_expression ::= postfix_expression [ expression ] // - case 57: { action.builder. + case 59: { action.builder. consumeExpressionArraySubscript(); break; } // - // Rule 58: postfix_expression ::= postfix_expression ( expression_list_opt ) + // Rule 60: postfix_expression ::= postfix_expression ( expression_list_opt ) // - case 58: { action.builder. + case 60: { action.builder. consumeExpressionFunctionCall(); break; } // - // Rule 59: postfix_expression ::= simple_type_specifier ( expression_list_opt ) + // Rule 61: postfix_expression ::= simple_type_specifier ( expression_list_opt ) // - case 59: { action.builder. + case 61: { action.builder. consumeExpressionSimpleTypeConstructor(); break; } // - // Rule 60: postfix_expression ::= typename dcolon_opt nested_name_specifier identifier_name ( expression_list_opt ) - // - case 60: { action.builder. - consumeExpressionTypeName(); break; - } - - // - // Rule 61: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) - // - case 61: { action.builder. - consumeExpressionTypeName(); break; - } - - // - // Rule 62: postfix_expression ::= postfix_expression . qualified_or_unqualified_name + // Rule 62: postfix_expression ::= typename dcolon_opt nested_name_specifier identifier_name ( expression_list_opt ) // case 62: { action.builder. + consumeExpressionTypeName(); break; + } + + // + // Rule 63: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) + // + case 63: { action.builder. + consumeExpressionTypeName(); break; + } + + // + // Rule 64: postfix_expression ::= postfix_expression . qualified_or_unqualified_name + // + case 64: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 63: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name + // Rule 65: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name // - case 63: { action.builder. + case 65: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 64: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name + // Rule 66: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name // - case 64: { action.builder. + case 66: { action.builder. consumeExpressionFieldReference(false, true); break; } // - // Rule 65: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name + // Rule 67: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name // - case 65: { action.builder. + case 67: { action.builder. consumeExpressionFieldReference(true, true); break; } // - // Rule 66: postfix_expression ::= postfix_expression . pseudo_destructor_name + // Rule 68: postfix_expression ::= postfix_expression . pseudo_destructor_name // - case 66: { action.builder. + case 68: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 67: postfix_expression ::= postfix_expression -> pseudo_destructor_name + // Rule 69: postfix_expression ::= postfix_expression -> pseudo_destructor_name // - case 67: { action.builder. + case 69: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 68: postfix_expression ::= postfix_expression ++ + // Rule 70: postfix_expression ::= postfix_expression ++ // - case 68: { action.builder. + case 70: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; } // - // Rule 69: postfix_expression ::= postfix_expression -- + // Rule 71: postfix_expression ::= postfix_expression -- // - case 69: { action.builder. + case 71: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; } // - // Rule 70: postfix_expression ::= dynamic_cast < type_id > ( expression ) + // Rule 72: postfix_expression ::= dynamic_cast < type_id > ( expression ) // - case 70: { action.builder. + case 72: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); break; } // - // Rule 71: postfix_expression ::= static_cast < type_id > ( expression ) + // Rule 73: postfix_expression ::= static_cast < type_id > ( expression ) // - case 71: { action.builder. + case 73: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_static_cast); break; } // - // Rule 72: postfix_expression ::= reinterpret_cast < type_id > ( expression ) + // Rule 74: postfix_expression ::= reinterpret_cast < type_id > ( expression ) // - case 72: { action.builder. + case 74: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); break; } // - // Rule 73: postfix_expression ::= const_cast < type_id > ( expression ) + // Rule 75: postfix_expression ::= const_cast < type_id > ( expression ) // - case 73: { action.builder. + case 75: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_const_cast); break; } // - // Rule 74: postfix_expression ::= typeid ( expression ) + // Rule 76: postfix_expression ::= typeid ( expression ) // - case 74: { action.builder. + case 76: { action.builder. consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break; } // - // Rule 75: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name - // - case 75: { action.builder. - consumePsudoDestructorName(true); break; - } - - // - // Rule 76: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name - // - case 76: { action.builder. - consumePsudoDestructorName(true); break; - } - - // - // Rule 77: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name + // Rule 77: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name // case 77: { action.builder. + consumePsudoDestructorName(true); break; + } + + // + // Rule 78: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name + // + case 78: { action.builder. + consumePsudoDestructorName(true); break; + } + + // + // Rule 79: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name + // + case 79: { action.builder. consumePsudoDestructorName(false); break; } // - // Rule 78: destructor_type_name ::= ~ identifier_token + // Rule 80: destructor_type_name ::= ~ identifier_token // - case 78: { action.builder. + case 80: { action.builder. consumeDestructorName(); break; } // - // Rule 79: destructor_type_name ::= ~ template_id_name + // Rule 81: destructor_type_name ::= ~ template_id_name // - case 79: { action.builder. + case 81: { action.builder. consumeDestructorNameTemplateId(); break; } // - // Rule 83: unary_expression ::= ++ cast_expression + // Rule 85: unary_expression ::= ++ cast_expression // - case 83: { action.builder. + case 85: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; } // - // Rule 84: unary_expression ::= -- cast_expression + // Rule 86: unary_expression ::= -- cast_expression // - case 84: { action.builder. + case 86: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; } // - // Rule 85: unary_expression ::= & cast_expression + // Rule 87: unary_expression ::= & cast_expression // - case 85: { action.builder. + case 87: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; } // - // Rule 86: unary_expression ::= * cast_expression + // Rule 88: unary_expression ::= * cast_expression // - case 86: { action.builder. + case 88: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; } // - // Rule 87: unary_expression ::= + cast_expression + // Rule 89: unary_expression ::= + cast_expression // - case 87: { action.builder. + case 89: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; } // - // Rule 88: unary_expression ::= - cast_expression + // Rule 90: unary_expression ::= - cast_expression // - case 88: { action.builder. + case 90: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; } // - // Rule 89: unary_expression ::= ~ cast_expression + // Rule 91: unary_expression ::= ~ cast_expression // - case 89: { action.builder. + case 91: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; } // - // Rule 90: unary_expression ::= ! cast_expression + // Rule 92: unary_expression ::= ! cast_expression // - case 90: { action.builder. + case 92: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; } // - // Rule 91: unary_expression ::= sizeof unary_expression + // Rule 93: unary_expression ::= sizeof unary_expression // - case 91: { action.builder. + case 93: { 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 94: new_expression ::= dcolon_opt new new_placement_opt new_type_id new_array_expressions_opt new_initializer_opt // - case 92: { action.builder. + case 94: { 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 95: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_array_expressions_opt new_initializer_opt // - case 93: { action.builder. + case 95: { action.builder. consumeExpressionNew(false); break; } // - // Rule 95: new_placement_opt ::= $Empty + // Rule 97: new_placement_opt ::= $Empty // - case 95: { action.builder. + case 97: { action.builder. consumeEmpty(); break; } // - // Rule 96: new_type_id ::= type_specifier_seq + // Rule 98: new_type_id ::= type_specifier_seq // - case 96: { action.builder. + case 98: { action.builder. consumeTypeId(false); break; } // - // Rule 97: new_type_id ::= type_specifier_seq new_declarator + // Rule 99: new_type_id ::= type_specifier_seq new_declarator // - case 97: { action.builder. + case 99: { action.builder. consumeTypeId(true); break; } // - // Rule 98: new_declarator ::= new_pointer_operators + // Rule 100: new_declarator ::= new_pointer_operators // - case 98: { action.builder. + case 100: { action.builder. consumeNewDeclarator(); break; } // - // Rule 107: new_initializer_opt ::= $Empty + // Rule 109: new_initializer_opt ::= $Empty // - case 107: { action.builder. + case 109: { action.builder. consumeEmpty(); break; } // - // Rule 108: delete_expression ::= dcolon_opt delete cast_expression + // Rule 110: delete_expression ::= dcolon_opt delete cast_expression // - case 108: { action.builder. + case 110: { action.builder. consumeExpressionDelete(false); break; } // - // Rule 109: delete_expression ::= dcolon_opt delete [ ] cast_expression + // Rule 111: delete_expression ::= dcolon_opt delete [ ] cast_expression // - case 109: { action.builder. + case 111: { action.builder. consumeExpressionDelete(true); break; } // - // Rule 111: cast_expression ::= ( type_id ) cast_expression + // Rule 113: cast_expression ::= ( type_id ) cast_expression // - case 111: { action.builder. + case 113: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_cast); break; } // - // Rule 113: pm_expression ::= pm_expression .* cast_expression + // Rule 115: pm_expression ::= pm_expression .* cast_expression // - case 113: { action.builder. + case 115: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot); break; } // - // Rule 114: pm_expression ::= pm_expression ->* cast_expression + // Rule 116: pm_expression ::= pm_expression ->* cast_expression // - case 114: { action.builder. + case 116: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow); break; } // - // Rule 116: multiplicative_expression ::= multiplicative_expression * pm_expression + // Rule 118: multiplicative_expression ::= multiplicative_expression * pm_expression // - case 116: { action.builder. + case 118: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply); break; } // - // Rule 117: multiplicative_expression ::= multiplicative_expression / pm_expression + // Rule 119: multiplicative_expression ::= multiplicative_expression / pm_expression // - case 117: { action.builder. + case 119: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide); break; } // - // Rule 118: multiplicative_expression ::= multiplicative_expression % pm_expression + // Rule 120: multiplicative_expression ::= multiplicative_expression % pm_expression // - case 118: { action.builder. + case 120: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo); break; } // - // Rule 120: additive_expression ::= additive_expression + multiplicative_expression + // Rule 122: additive_expression ::= additive_expression + multiplicative_expression // - case 120: { action.builder. + case 122: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus); break; } // - // Rule 121: additive_expression ::= additive_expression - multiplicative_expression + // Rule 123: additive_expression ::= additive_expression - multiplicative_expression // - case 121: { action.builder. + case 123: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus); break; } // - // Rule 123: shift_expression ::= shift_expression << additive_expression + // Rule 125: shift_expression ::= shift_expression << additive_expression // - case 123: { action.builder. + case 125: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft); break; } // - // Rule 124: shift_expression ::= shift_expression >> additive_expression + // Rule 126: shift_expression ::= shift_expression >> additive_expression // - case 124: { action.builder. + case 126: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight); break; } // - // Rule 126: relational_expression ::= relational_expression < shift_expression + // Rule 128: relational_expression ::= relational_expression < shift_expression // - case 126: { action.builder. + case 128: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; } // - // Rule 127: relational_expression ::= relational_expression > shift_expression + // Rule 129: relational_expression ::= relational_expression > shift_expression // - case 127: { action.builder. + case 129: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; } // - // Rule 128: relational_expression ::= relational_expression <= shift_expression + // Rule 130: relational_expression ::= relational_expression <= shift_expression // - case 128: { action.builder. + case 130: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; } // - // Rule 129: relational_expression ::= relational_expression >= shift_expression + // Rule 131: relational_expression ::= relational_expression >= shift_expression // - case 129: { action.builder. + case 131: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; } // - // Rule 131: equality_expression ::= equality_expression == relational_expression + // Rule 133: equality_expression ::= equality_expression == relational_expression // - case 131: { action.builder. + case 133: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; } // - // Rule 132: equality_expression ::= equality_expression != relational_expression + // Rule 134: equality_expression ::= equality_expression != relational_expression // - case 132: { action.builder. + case 134: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; } // - // Rule 134: and_expression ::= and_expression & equality_expression + // Rule 136: and_expression ::= and_expression & equality_expression // - case 134: { action.builder. + case 136: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; } // - // Rule 136: exclusive_or_expression ::= exclusive_or_expression ^ and_expression + // Rule 138: exclusive_or_expression ::= exclusive_or_expression ^ and_expression // - case 136: { action.builder. + case 138: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; } // - // Rule 138: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression + // Rule 140: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression // - case 138: { action.builder. + case 140: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; } // - // Rule 140: logical_and_expression ::= logical_and_expression && inclusive_or_expression + // Rule 142: logical_and_expression ::= logical_and_expression && inclusive_or_expression // - case 140: { action.builder. + case 142: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; } // - // Rule 142: logical_or_expression ::= logical_or_expression || logical_and_expression + // Rule 144: logical_or_expression ::= logical_or_expression || logical_and_expression // - case 142: { action.builder. + case 144: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; } // - // Rule 144: conditional_expression ::= logical_or_expression ? expression : assignment_expression + // Rule 146: conditional_expression ::= logical_or_expression ? expression : assignment_expression // - case 144: { action.builder. + case 146: { action.builder. consumeExpressionConditional(); break; } // - // Rule 145: throw_expression ::= throw + // Rule 147: throw_expression ::= throw // - case 145: { action.builder. + case 147: { action.builder. consumeExpressionThrow(false); break; } // - // Rule 146: throw_expression ::= throw assignment_expression + // Rule 148: throw_expression ::= throw assignment_expression // - case 146: { action.builder. + case 148: { action.builder. consumeExpressionThrow(true); break; } // - // Rule 149: assignment_expression ::= logical_or_expression = assignment_expression + // Rule 151: assignment_expression ::= logical_or_expression = assignment_expression // - case 149: { action.builder. + case 151: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; } // - // Rule 150: assignment_expression ::= logical_or_expression *= assignment_expression + // Rule 152: assignment_expression ::= logical_or_expression *= assignment_expression // - case 150: { action.builder. + case 152: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 151: assignment_expression ::= logical_or_expression /= assignment_expression + // Rule 153: assignment_expression ::= logical_or_expression /= assignment_expression // - case 151: { action.builder. + case 153: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; } // - // Rule 152: assignment_expression ::= logical_or_expression %= assignment_expression + // Rule 154: assignment_expression ::= logical_or_expression %= assignment_expression // - case 152: { action.builder. + case 154: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; } // - // Rule 153: assignment_expression ::= logical_or_expression += assignment_expression + // Rule 155: assignment_expression ::= logical_or_expression += assignment_expression // - case 153: { action.builder. + case 155: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; } // - // Rule 154: assignment_expression ::= logical_or_expression -= assignment_expression + // Rule 156: assignment_expression ::= logical_or_expression -= assignment_expression // - case 154: { action.builder. + case 156: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; } // - // Rule 155: assignment_expression ::= logical_or_expression >>= assignment_expression + // Rule 157: assignment_expression ::= logical_or_expression >>= assignment_expression // - case 155: { action.builder. + case 157: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 156: assignment_expression ::= logical_or_expression <<= assignment_expression + // Rule 158: assignment_expression ::= logical_or_expression <<= assignment_expression // - case 156: { action.builder. + case 158: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 157: assignment_expression ::= logical_or_expression &= assignment_expression + // Rule 159: assignment_expression ::= logical_or_expression &= assignment_expression // - case 157: { action.builder. + case 159: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 158: assignment_expression ::= logical_or_expression ^= assignment_expression + // Rule 160: assignment_expression ::= logical_or_expression ^= assignment_expression // - case 158: { action.builder. + case 160: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 159: assignment_expression ::= logical_or_expression |= assignment_expression + // Rule 161: assignment_expression ::= logical_or_expression |= assignment_expression // - case 159: { action.builder. + case 161: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 161: expression_list ::= expression_list_actual + // Rule 163: expression_list ::= expression_list_actual // - case 161: { action.builder. + case 163: { action.builder. consumeExpressionList(); break; } // - // Rule 165: expression_list_opt ::= $Empty - // - case 165: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 167: expression_opt ::= $Empty + // Rule 167: expression_list_opt ::= $Empty // case 167: { action.builder. consumeEmpty(); break; } // - // Rule 170: constant_expression_opt ::= $Empty + // Rule 169: expression_opt ::= $Empty // - case 170: { action.builder. + case 169: { action.builder. consumeEmpty(); break; } // - // Rule 179: statement ::= ERROR_TOKEN + // Rule 172: constant_expression_opt ::= $Empty // - case 179: { action.builder. + case 172: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 181: statement ::= ERROR_TOKEN + // + case 181: { action.builder. consumeStatementProblem(); break; } // - // Rule 180: labeled_statement ::= identifier : statement + // Rule 182: labeled_statement ::= identifier : statement // - case 180: { action.builder. + case 182: { action.builder. consumeStatementLabeled(); break; } // - // Rule 181: labeled_statement ::= case constant_expression : + // Rule 183: labeled_statement ::= case constant_expression : // - case 181: { action.builder. + case 183: { action.builder. consumeStatementCase(); break; } // - // Rule 182: labeled_statement ::= default : + // Rule 184: labeled_statement ::= default : // - case 182: { action.builder. + case 184: { action.builder. consumeStatementDefault(); break; } // - // Rule 183: expression_statement ::= expression ; + // Rule 185: expression_statement ::= expression ; // - case 183: { action.builder. + case 185: { action.builder. consumeStatementExpression(); break; } // - // Rule 184: expression_statement ::= ; + // Rule 186: expression_statement ::= ; // - case 184: { action.builder. + case 186: { action.builder. consumeStatementNull(); break; } // - // Rule 185: compound_statement ::= { statement_seq } + // Rule 187: compound_statement ::= { statement_seq } // - case 185: { action.builder. + case 187: { action.builder. consumeStatementCompoundStatement(true); break; } // - // Rule 186: compound_statement ::= { } + // Rule 188: compound_statement ::= { } // - case 186: { action.builder. + case 188: { action.builder. consumeStatementCompoundStatement(false); break; } // - // Rule 189: selection_statement ::= if ( condition ) statement + // Rule 191: selection_statement ::= if ( condition ) statement // - case 189: { action.builder. + case 191: { action.builder. consumeStatementIf(false); break; } // - // Rule 190: selection_statement ::= if ( condition ) statement else statement + // Rule 192: selection_statement ::= if ( condition ) statement else statement // - case 190: { action.builder. + case 192: { action.builder. consumeStatementIf(true); break; } // - // Rule 191: selection_statement ::= switch ( condition ) statement + // Rule 193: selection_statement ::= switch ( condition ) statement // - case 191: { action.builder. + case 193: { action.builder. consumeStatementSwitch(); break; } // - // Rule 193: condition ::= type_specifier_seq declarator = assignment_expression + // Rule 195: condition ::= type_specifier_seq declarator = assignment_expression // - case 193: { action.builder. + case 195: { action.builder. consumeConditionDeclaration(); break; } // - // Rule 195: condition_opt ::= $Empty + // Rule 197: condition_opt ::= $Empty // - case 195: { action.builder. + case 197: { action.builder. consumeEmpty(); break; } // - // Rule 196: iteration_statement ::= while ( condition ) statement + // Rule 198: iteration_statement ::= while ( condition ) statement // - case 196: { action.builder. + case 198: { action.builder. consumeStatementWhileLoop(); break; } // - // Rule 197: iteration_statement ::= do statement while ( expression ) ; + // Rule 199: iteration_statement ::= do statement while ( expression ) ; // - case 197: { action.builder. + case 199: { action.builder. consumeStatementDoLoop(); break; } // - // Rule 198: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement + // Rule 200: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement // - case 198: { action.builder. + case 200: { action.builder. consumeStatementForLoop(); break; } // - // Rule 200: for_init_statement ::= simple_declaration_with_declspec + // Rule 202: for_init_statement ::= simple_declaration_with_declspec // - case 200: { action.builder. + case 202: { action.builder. consumeStatementDeclaration(); break; } // - // Rule 201: jump_statement ::= break ; + // Rule 203: jump_statement ::= break ; // - case 201: { action.builder. + case 203: { action.builder. consumeStatementBreak(); break; } // - // Rule 202: jump_statement ::= continue ; + // Rule 204: jump_statement ::= continue ; // - case 202: { action.builder. + case 204: { action.builder. consumeStatementContinue(); break; } // - // Rule 203: jump_statement ::= return expression ; + // Rule 205: jump_statement ::= return expression ; // - case 203: { action.builder. + case 205: { action.builder. consumeStatementReturn(true); break; } // - // Rule 204: jump_statement ::= return ; + // Rule 206: jump_statement ::= return ; // - case 204: { action.builder. + case 206: { action.builder. consumeStatementReturn(false); break; } // - // Rule 205: jump_statement ::= goto identifier_token ; + // Rule 207: jump_statement ::= goto identifier_token ; // - case 205: { action.builder. + case 207: { action.builder. consumeStatementGoto(); break; } // - // Rule 206: declaration_statement ::= block_declaration + // Rule 208: declaration_statement ::= block_declaration // - case 206: { action.builder. + case 208: { action.builder. consumeStatementDeclarationWithDisambiguation(); break; } // - // Rule 207: declaration_statement ::= function_definition + // Rule 209: declaration_statement ::= function_definition // - case 207: { action.builder. + case 209: { action.builder. consumeStatementDeclaration(); break; } // - // Rule 224: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; - // - case 224: { action.builder. - consumeDeclarationSimple(true); break; - } - - // - // Rule 225: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; - // - case 225: { action.builder. - consumeDeclarationSimple(true); break; - } - - // - // Rule 226: declaration_specifiers ::= simple_declaration_specifiers + // Rule 226: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; // case 226: { action.builder. + consumeDeclarationSimple(true); break; + } + + // + // Rule 227: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; + // + case 227: { action.builder. + consumeDeclarationSimple(true); break; + } + + // + // Rule 228: declaration_specifiers ::= simple_declaration_specifiers + // + case 228: { action.builder. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 227: declaration_specifiers ::= class_declaration_specifiers - // - case 227: { action.builder. - consumeDeclarationSpecifiersComposite(); break; - } - - // - // Rule 228: declaration_specifiers ::= elaborated_declaration_specifiers - // - case 228: { action.builder. - consumeDeclarationSpecifiersComposite(); break; - } - - // - // Rule 229: declaration_specifiers ::= enum_declaration_specifiers + // Rule 229: declaration_specifiers ::= class_declaration_specifiers // case 229: { action.builder. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 230: declaration_specifiers ::= type_name_declaration_specifiers + // Rule 230: declaration_specifiers ::= elaborated_declaration_specifiers // case 230: { action.builder. + consumeDeclarationSpecifiersComposite(); break; + } + + // + // Rule 231: declaration_specifiers ::= enum_declaration_specifiers + // + case 231: { action.builder. + consumeDeclarationSpecifiersComposite(); break; + } + + // + // Rule 232: declaration_specifiers ::= type_name_declaration_specifiers + // + case 232: { action.builder. consumeDeclarationSpecifiersTypeName(); break; } // - // Rule 231: declaration_specifiers_opt ::= $Empty + // Rule 233: declaration_specifiers_opt ::= $Empty // - case 231: { action.builder. + case 233: { action.builder. consumeEmpty(); break; } // - // Rule 236: no_type_declaration_specifier ::= friend + // Rule 238: no_type_declaration_specifier ::= friend // - case 236: { action.builder. + case 238: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 237: no_type_declaration_specifier ::= typedef + // Rule 239: no_type_declaration_specifier ::= typedef // - case 237: { action.builder. + case 239: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 257: storage_class_specifier ::= auto - // - case 257: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 258: storage_class_specifier ::= register - // - case 258: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 259: storage_class_specifier ::= static + // Rule 259: storage_class_specifier ::= auto // case 259: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 260: storage_class_specifier ::= extern + // Rule 260: storage_class_specifier ::= register // case 260: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 261: storage_class_specifier ::= mutable + // Rule 261: storage_class_specifier ::= static // case 261: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 262: function_specifier ::= inline + // Rule 262: storage_class_specifier ::= extern // case 262: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 263: function_specifier ::= virtual + // Rule 263: storage_class_specifier ::= mutable // case 263: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 264: function_specifier ::= explicit + // Rule 264: function_specifier ::= inline // case 264: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 265: simple_type_specifier ::= char + // Rule 265: function_specifier ::= virtual // case 265: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 266: simple_type_specifier ::= wchar_t + // Rule 266: function_specifier ::= explicit // case 266: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 267: simple_type_specifier ::= bool + // Rule 267: simple_type_specifier ::= char // case 267: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 268: simple_type_specifier ::= short + // Rule 268: simple_type_specifier ::= wchar_t // case 268: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 269: simple_type_specifier ::= int + // Rule 269: simple_type_specifier ::= bool // case 269: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 270: simple_type_specifier ::= long + // Rule 270: simple_type_specifier ::= short // case 270: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 271: simple_type_specifier ::= signed + // Rule 271: simple_type_specifier ::= int // case 271: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 272: simple_type_specifier ::= unsigned + // Rule 272: simple_type_specifier ::= long // case 272: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 273: simple_type_specifier ::= float + // Rule 273: simple_type_specifier ::= signed // case 273: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 274: simple_type_specifier ::= double + // Rule 274: simple_type_specifier ::= unsigned // case 274: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 275: simple_type_specifier ::= void + // Rule 275: simple_type_specifier ::= float // case 275: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 278: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name + // Rule 276: simple_type_specifier ::= double // - case 278: { action.builder. - consumeQualifiedId(false); break; + case 276: { action.builder. + consumeDeclSpecToken(); break; } // - // Rule 279: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name + // Rule 277: simple_type_specifier ::= void // - case 279: { action.builder. - consumeQualifiedId(false); break; + case 277: { action.builder. + consumeDeclSpecToken(); break; } // - // Rule 280: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name + // 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 ::= typename dcolon_opt nested_name_specifier template_opt template_id_name + // Rule 281: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name // case 281: { action.builder. + consumeQualifiedId(false); break; + } + + // + // Rule 282: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name + // + case 282: { action.builder. + consumeQualifiedId(false); break; + } + + // + // Rule 283: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name + // + case 283: { action.builder. consumeQualifiedId(true); break; } // - // Rule 283: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name - // - case 283: { action.builder. - consumeTypeSpecifierElaborated(false); break; - } - - // - // Rule 284: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name - // - case 284: { action.builder. - consumeTypeSpecifierElaborated(true); break; - } - - // - // Rule 285: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name + // Rule 285: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name // case 285: { action.builder. consumeTypeSpecifierElaborated(false); break; } // - // Rule 286: enum_specifier ::= enum { enumerator_list_opt } + // Rule 286: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name // case 286: { action.builder. + consumeTypeSpecifierElaborated(true); break; + } + + // + // Rule 287: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name + // + case 287: { action.builder. + consumeTypeSpecifierElaborated(false); break; + } + + // + // Rule 288: enum_specifier ::= enum { enumerator_list_opt } + // + case 288: { action.builder. consumeTypeSpecifierEnumeration(false); break; } // - // Rule 287: enum_specifier ::= enum identifier_token { enumerator_list_opt } + // Rule 289: enum_specifier ::= enum identifier_token { enumerator_list_opt } // - case 287: { action.builder. + case 289: { action.builder. consumeTypeSpecifierEnumeration(true); break; } // - // Rule 292: enumerator_definition ::= identifier_token + // Rule 294: enumerator_definition ::= identifier_token // - case 292: { action.builder. + case 294: { action.builder. consumeEnumerator(false); break; } // - // Rule 293: enumerator_definition ::= identifier_token = constant_expression + // Rule 295: enumerator_definition ::= identifier_token = constant_expression // - case 293: { action.builder. + case 295: { action.builder. consumeEnumerator(true); break; } // - // Rule 297: named_namespace_definition ::= namespace namespace_name { declaration_seq_opt } + // Rule 299: named_namespace_definition ::= namespace namespace_name { declaration_seq_opt } // - case 297: { action.builder. + case 299: { action.builder. consumeNamespaceDefinition(true); break; } // - // Rule 298: unnamed_namespace_definition ::= namespace { declaration_seq_opt } + // Rule 300: unnamed_namespace_definition ::= namespace { declaration_seq_opt } // - case 298: { action.builder. + case 300: { action.builder. consumeNamespaceDefinition(false); break; } // - // Rule 299: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 301: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; // - case 299: { action.builder. + case 301: { action.builder. consumeNamespaceAliasDefinition(); break; } // - // Rule 300: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; + // Rule 302: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; // - case 300: { action.builder. + case 302: { action.builder. consumeUsingDeclaration(); break; } // - // Rule 301: typename_opt ::= typename + // Rule 303: typename_opt ::= typename // - case 301: { action.builder. + case 303: { action.builder. consumePlaceHolder(); break; } // - // Rule 302: typename_opt ::= $Empty + // Rule 304: typename_opt ::= $Empty // - case 302: { action.builder. + case 304: { action.builder. consumeEmpty(); break; } // - // Rule 303: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 305: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; // - case 303: { action.builder. + case 305: { action.builder. consumeUsingDirective(); break; } // - // Rule 304: asm_definition ::= asm ( stringlit ) ; + // Rule 306: asm_definition ::= asm ( stringlit ) ; // - case 304: { action.builder. + case 306: { action.builder. consumeDeclarationASM(); break; } // - // Rule 305: linkage_specification ::= extern stringlit { declaration_seq_opt } + // Rule 307: linkage_specification ::= extern stringlit { declaration_seq_opt } // - case 305: { action.builder. + case 307: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 306: linkage_specification ::= extern stringlit declaration + // Rule 308: linkage_specification ::= extern stringlit declaration // - case 306: { action.builder. + case 308: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 311: init_declarator_complete ::= init_declarator + // Rule 313: init_declarator_complete ::= init_declarator // - case 311: { action.builder. + case 313: { action.builder. consumeInitDeclaratorComplete(); break; } // - // Rule 313: init_declarator ::= declarator initializer + // Rule 315: init_declarator ::= declarator initializer // - case 313: { action.builder. + case 315: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 315: declarator ::= ptr_operator_seq direct_declarator - // - case 315: { action.builder. - consumeDeclaratorWithPointer(true); break; - } - - // - // Rule 317: function_declarator ::= ptr_operator_seq direct_declarator + // Rule 317: declarator ::= ptr_operator_seq direct_declarator // case 317: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 321: basic_direct_declarator ::= declarator_id_name + // Rule 319: function_declarator ::= ptr_operator_seq direct_declarator // - case 321: { action.builder. - consumeDirectDeclaratorIdentifier(); break; - } - - // - // Rule 322: basic_direct_declarator ::= ( declarator ) - // - case 322: { action.builder. - consumeDirectDeclaratorBracketed(); break; - } - - // - // Rule 323: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt - // - case 323: { action.builder. - consumeDirectDeclaratorFunctionDeclarator(true); break; - } - - // - // Rule 324: array_direct_declarator ::= array_direct_declarator array_modifier - // - case 324: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 325: array_direct_declarator ::= basic_direct_declarator array_modifier - // - case 325: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 326: array_modifier ::= [ constant_expression ] - // - case 326: { action.builder. - consumeDirectDeclaratorArrayModifier(true); break; - } - - // - // Rule 327: array_modifier ::= [ ] - // - case 327: { action.builder. - consumeDirectDeclaratorArrayModifier(false); break; - } - - // - // Rule 328: ptr_operator ::= * cv_qualifier_seq_opt - // - case 328: { action.builder. - consumePointer(); break; - } - - // - // Rule 329: ptr_operator ::= & - // - case 329: { action.builder. - consumeReferenceOperator(); break; - } - - // - // Rule 330: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt - // - case 330: { action.builder. - consumePointerToMember(); break; - } - - // - // Rule 336: cv_qualifier ::= const - // - case 336: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 337: cv_qualifier ::= volatile - // - case 337: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 339: declarator_id_name ::= nested_name_specifier template_opt unqualified_id_name - // - case 339: { action.builder. - consumeQualifiedId(true); break; - } - - // - // Rule 340: type_id ::= type_specifier_seq - // - case 340: { action.builder. - consumeTypeId(false); break; - } - - // - // Rule 341: type_id ::= type_specifier_seq abstract_declarator - // - case 341: { action.builder. - consumeTypeId(true); break; - } - - // - // Rule 344: abstract_declarator ::= ptr_operator_seq - // - case 344: { action.builder. - consumeDeclaratorWithPointer(false); break; - } - - // - // Rule 345: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator - // - case 345: { action.builder. + case 319: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 349: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 323: basic_direct_declarator ::= declarator_id_name // - case 349: { action.builder. + case 323: { action.builder. + consumeDirectDeclaratorIdentifier(); break; + } + + // + // Rule 324: basic_direct_declarator ::= ( declarator ) + // + case 324: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 350: basic_direct_abstract_declarator ::= ( ) + // Rule 325: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 350: { action.builder. - consumeAbstractDeclaratorEmpty(); break; - } - - // - // Rule 351: array_direct_abstract_declarator ::= array_modifier - // - case 351: { action.builder. - consumeDirectDeclaratorArrayDeclarator(false); break; - } - - // - // Rule 352: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier - // - case 352: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 353: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier - // - case 353: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 354: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt - // - case 354: { action.builder. + case 325: { action.builder. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 355: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 326: array_direct_declarator ::= array_direct_declarator array_modifier + // + case 326: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 327: array_direct_declarator ::= basic_direct_declarator array_modifier + // + case 327: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 328: array_modifier ::= [ constant_expression ] + // + case 328: { action.builder. + consumeDirectDeclaratorArrayModifier(true); break; + } + + // + // Rule 329: array_modifier ::= [ ] + // + case 329: { action.builder. + consumeDirectDeclaratorArrayModifier(false); break; + } + + // + // Rule 330: ptr_operator ::= * cv_qualifier_seq_opt + // + case 330: { action.builder. + consumePointer(); break; + } + + // + // Rule 331: ptr_operator ::= & + // + case 331: { action.builder. + consumeReferenceOperator(); break; + } + + // + // Rule 332: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt + // + case 332: { action.builder. + consumePointerToMember(); break; + } + + // + // Rule 338: cv_qualifier ::= const + // + case 338: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 339: cv_qualifier ::= volatile + // + case 339: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 341: declarator_id_name ::= nested_name_specifier template_opt unqualified_id_name + // + case 341: { action.builder. + consumeQualifiedId(true); break; + } + + // + // Rule 342: type_id ::= type_specifier_seq + // + case 342: { action.builder. + consumeTypeId(false); break; + } + + // + // Rule 343: type_id ::= type_specifier_seq abstract_declarator + // + case 343: { action.builder. + consumeTypeId(true); break; + } + + // + // Rule 346: abstract_declarator ::= ptr_operator_seq + // + case 346: { action.builder. + consumeDeclaratorWithPointer(false); break; + } + + // + // Rule 347: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator + // + case 347: { action.builder. + consumeDeclaratorWithPointer(true); break; + } + + // + // Rule 351: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // + case 351: { action.builder. + consumeDirectDeclaratorBracketed(); break; + } + + // + // Rule 352: basic_direct_abstract_declarator ::= ( ) + // + case 352: { action.builder. + consumeAbstractDeclaratorEmpty(); break; + } + + // + // Rule 353: array_direct_abstract_declarator ::= array_modifier + // + case 353: { action.builder. + consumeDirectDeclaratorArrayDeclarator(false); break; + } + + // + // Rule 354: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // + case 354: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 355: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier // case 355: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 356: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // + case 356: { action.builder. + consumeDirectDeclaratorFunctionDeclarator(true); break; + } + + // + // Rule 357: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // + case 357: { action.builder. consumeDirectDeclaratorFunctionDeclarator(false); break; } // - // Rule 356: parameter_declaration_clause ::= parameter_declaration_list_opt ... - // - case 356: { action.builder. - consumePlaceHolder(); break; - } - - // - // Rule 357: parameter_declaration_clause ::= parameter_declaration_list_opt - // - case 357: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 358: parameter_declaration_clause ::= parameter_declaration_list , ... + // Rule 358: parameter_declaration_clause ::= parameter_declaration_list_opt ... // case 358: { action.builder. consumePlaceHolder(); break; } // - // Rule 364: abstract_declarator_opt ::= $Empty + // Rule 359: parameter_declaration_clause ::= parameter_declaration_list_opt // - case 364: { action.builder. + case 359: { action.builder. consumeEmpty(); break; } // - // Rule 365: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // Rule 360: parameter_declaration_clause ::= parameter_declaration_list , ... // - case 365: { action.builder. + case 360: { action.builder. + consumePlaceHolder(); break; + } + + // + // Rule 366: abstract_declarator_opt ::= $Empty + // + case 366: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 367: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // + case 367: { action.builder. consumeParameterDeclaration(); break; } // - // Rule 366: parameter_declaration ::= declaration_specifiers + // Rule 368: parameter_declaration ::= declaration_specifiers // - case 366: { action.builder. + case 368: { action.builder. consumeParameterDeclarationWithoutDeclarator(); break; } // - // Rule 368: parameter_init_declarator ::= declarator = parameter_initializer - // - case 368: { action.builder. - consumeDeclaratorWithInitializer(true); break; - } - - // - // Rule 370: parameter_init_declarator ::= abstract_declarator = parameter_initializer + // Rule 370: parameter_init_declarator ::= declarator = parameter_initializer // case 370: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 371: parameter_init_declarator ::= = parameter_initializer + // Rule 372: parameter_init_declarator ::= abstract_declarator = parameter_initializer // - case 371: { action.builder. + case 372: { action.builder. + consumeDeclaratorWithInitializer(true); break; + } + + // + // Rule 373: parameter_init_declarator ::= = parameter_initializer + // + case 373: { action.builder. consumeDeclaratorWithInitializer(false); break; } // - // Rule 372: parameter_initializer ::= assignment_expression + // Rule 374: parameter_initializer ::= assignment_expression // - case 372: { action.builder. + case 374: { action.builder. consumeInitializer(); break; } // - // Rule 373: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body + // Rule 375: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body // - case 373: { action.builder. + case 375: { action.builder. consumeFunctionDefinition(false); break; } // - // Rule 374: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq + // Rule 376: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq // - case 374: { action.builder. + case 376: { action.builder. consumeFunctionDefinition(true); break; } // - // Rule 377: initializer ::= ( expression_list ) + // Rule 379: initializer ::= ( expression_list ) // - case 377: { action.builder. + case 379: { action.builder. consumeInitializerConstructor(); break; } // - // Rule 378: initializer_clause ::= assignment_expression + // Rule 380: initializer_clause ::= assignment_expression // - case 378: { action.builder. + case 380: { action.builder. consumeInitializer(); break; } // - // Rule 379: initializer_clause ::= { initializer_list , } - // - case 379: { action.builder. - consumeInitializerList(); break; - } - - // - // Rule 380: initializer_clause ::= { initializer_list } - // - case 380: { action.builder. - consumeInitializerList(); break; - } - - // - // Rule 381: initializer_clause ::= { } + // Rule 381: initializer_clause ::= { initializer_list , } // case 381: { action.builder. consumeInitializerList(); break; } // - // Rule 386: class_specifier ::= class_head { member_declaration_list_opt } + // Rule 382: initializer_clause ::= { initializer_list } // - case 386: { action.builder. - consumeClassSpecifier(); break; + case 382: { action.builder. + consumeInitializerList(); break; } // - // Rule 387: class_specifier ::= class_head EOC member_declaration_list_opt } + // Rule 383: initializer_clause ::= { } // - case 387: { action.builder. - consumeClassSpecifier(); break; + case 383: { action.builder. + consumeInitializerList(); break; } // - // Rule 388: class_head ::= class_keyword identifier_name_opt base_clause_opt + // Rule 388: class_specifier ::= class_head { member_declaration_list_opt } // case 388: { action.builder. - consumeClassHead(false); break; + consumeClassSpecifier(); break; } // - // Rule 389: class_head ::= class_keyword template_id_name base_clause_opt + // Rule 389: class_head ::= class_keyword identifier_name_opt base_clause_opt // case 389: { action.builder. consumeClassHead(false); break; } // - // Rule 390: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt + // Rule 390: class_head ::= class_keyword template_id_name base_clause_opt // case 390: { action.builder. - consumeClassHead(true); break; + consumeClassHead(false); break; } // - // Rule 391: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt + // Rule 391: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt // case 391: { action.builder. consumeClassHead(true); break; } // - // Rule 393: identifier_name_opt ::= $Empty + // Rule 392: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt // - case 393: { action.builder. + case 392: { action.builder. + consumeClassHead(true); break; + } + + // + // Rule 394: identifier_name_opt ::= $Empty + // + case 394: { action.builder. consumeEmpty(); break; } // - // Rule 397: visibility_label ::= access_specifier_keyword : + // Rule 398: visibility_label ::= access_specifier_keyword : // - case 397: { action.builder. + case 398: { action.builder. consumeVisibilityLabel(); break; } // - // Rule 398: member_declaration ::= declaration_specifiers_opt member_declarator_list ; + // Rule 399: member_declaration ::= declaration_specifiers_opt member_declarator_list ; // - case 398: { action.builder. + case 399: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 399: member_declaration ::= declaration_specifiers_opt ; + // Rule 400: member_declaration ::= declaration_specifiers_opt ; // - case 399: { action.builder. + case 400: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 402: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; + // Rule 403: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; // - case 402: { action.builder. + case 403: { action.builder. consumeMemberDeclarationQualifiedId(); break; } // - // Rule 408: member_declaration ::= ERROR_TOKEN + // Rule 409: member_declaration ::= ERROR_TOKEN // - case 408: { action.builder. + case 409: { action.builder. consumeDeclarationProblem(); break; } // - // Rule 416: member_declarator ::= declarator constant_initializer + // Rule 417: member_declarator ::= declarator constant_initializer // - case 416: { action.builder. + case 417: { action.builder. consumeMemberDeclaratorWithInitializer(); break; } // - // Rule 417: member_declarator ::= bit_field_declarator : constant_expression + // Rule 418: member_declarator ::= bit_field_declarator : constant_expression // - case 417: { action.builder. + case 418: { action.builder. consumeBitField(true); break; } // - // Rule 418: member_declarator ::= : constant_expression + // Rule 419: member_declarator ::= : constant_expression // - case 418: { action.builder. + case 419: { action.builder. consumeBitField(false); break; } // - // Rule 419: bit_field_declarator ::= identifier_name + // Rule 420: bit_field_declarator ::= identifier_name // - case 419: { action.builder. + case 420: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 420: constant_initializer ::= = constant_expression + // Rule 421: constant_initializer ::= = constant_expression // - case 420: { action.builder. + case 421: { action.builder. consumeInitializer(); break; } // - // Rule 426: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 427: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 426: { action.builder. + case 427: { action.builder. consumeBaseSpecifier(false, false); break; } // - // Rule 427: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name - // - case 427: { action.builder. - consumeBaseSpecifier(true, true); break; - } - - // - // Rule 428: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name + // Rule 428: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name // case 428: { action.builder. consumeBaseSpecifier(true, true); break; } // - // Rule 429: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name + // Rule 429: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name // case 429: { action.builder. + consumeBaseSpecifier(true, true); break; + } + + // + // Rule 430: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name + // + case 430: { action.builder. consumeBaseSpecifier(true, false); break; } // - // Rule 430: access_specifier_keyword ::= private - // - case 430: { action.builder. - consumeAccessKeywordToken(); break; - } - - // - // Rule 431: access_specifier_keyword ::= protected + // Rule 431: access_specifier_keyword ::= private // case 431: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 432: access_specifier_keyword ::= public + // Rule 432: access_specifier_keyword ::= protected // case 432: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 434: access_specifier_keyword_opt ::= $Empty + // Rule 433: access_specifier_keyword ::= public // - case 434: { action.builder. + case 433: { action.builder. + consumeAccessKeywordToken(); break; + } + + // + // Rule 435: access_specifier_keyword_opt ::= $Empty + // + case 435: { action.builder. consumeEmpty(); break; } // - // Rule 436: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > + // Rule 437: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > // - case 436: { action.builder. + case 437: { action.builder. consumeTemplateId(); break; } // - // Rule 437: conversion_function_id ::= operator conversion_type_id + // Rule 438: conversion_function_id ::= operator conversion_type_id // - case 437: { action.builder. + case 438: { action.builder. consumeConversionName(); break; } // - // Rule 438: conversion_type_id ::= type_specifier_seq conversion_declarator + // Rule 439: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 438: { action.builder. + case 439: { action.builder. consumeTypeId(true); break; } // - // Rule 439: conversion_type_id ::= type_specifier_seq + // Rule 440: conversion_type_id ::= type_specifier_seq // - case 439: { action.builder. + case 440: { action.builder. consumeTypeId(false); break; } // - // Rule 440: conversion_declarator ::= ptr_operator_seq + // Rule 441: conversion_declarator ::= ptr_operator_seq // - case 440: { action.builder. + case 441: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 446: mem_initializer ::= mem_initializer_name ( expression_list_opt ) + // Rule 447: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 446: { action.builder. + case 447: { action.builder. consumeConstructorChainInitializer(); break; } // - // Rule 447: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 448: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name // - case 447: { action.builder. + case 448: { action.builder. consumeQualifiedId(false); break; } // - // Rule 450: operator_function_id_name ::= operator_id_name < template_argument_list_opt > + // Rule 451: operator_function_id_name ::= operator_id_name < template_argument_list_opt > // - case 450: { action.builder. + case 451: { action.builder. consumeTemplateId(); break; } // - // Rule 451: operator_id_name ::= operator overloadable_operator + // Rule 452: operator_id_name ::= operator overloadable_operator // - case 451: { action.builder. + case 452: { action.builder. consumeOperatorName(); break; } // - // Rule 494: template_declaration ::= export_opt template < template_parameter_list > declaration + // Rule 495: template_declaration ::= export_opt template < template_parameter_list > declaration // - case 494: { action.builder. + case 495: { action.builder. consumeTemplateDeclaration(); break; } // - // Rule 495: export_opt ::= export + // Rule 496: export_opt ::= export // - case 495: { action.builder. + case 496: { action.builder. consumePlaceHolder(); break; } // - // Rule 496: export_opt ::= $Empty + // Rule 497: export_opt ::= $Empty // - case 496: { action.builder. + case 497: { action.builder. consumeEmpty(); break; } // - // Rule 500: template_parameter ::= parameter_declaration + // Rule 501: template_parameter ::= parameter_declaration // - case 500: { action.builder. + case 501: { action.builder. consumeTemplateParamterDeclaration(); break; } // - // Rule 501: type_parameter ::= class identifier_name_opt - // - case 501: { action.builder. - consumeSimpleTypeTemplateParameter(false); break; - } - - // - // Rule 502: type_parameter ::= class identifier_name_opt = type_id + // Rule 502: type_parameter ::= class identifier_name_opt // case 502: { action.builder. - consumeSimpleTypeTemplateParameter(true); break; - } - - // - // Rule 503: type_parameter ::= typename identifier_name_opt - // - case 503: { action.builder. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 504: type_parameter ::= typename identifier_name_opt = type_id + // Rule 503: type_parameter ::= class identifier_name_opt = type_id // - case 504: { action.builder. + case 503: { action.builder. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 505: type_parameter ::= template < template_parameter_list > class identifier_name_opt + // 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 506: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression + // Rule 507: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression // - case 506: { action.builder. + case 507: { action.builder. consumeTemplatedTypeTemplateParameter(true); break; } // - // Rule 507: template_id_name ::= identifier_name < template_argument_list_opt > + // Rule 508: template_id_name ::= identifier_name < template_argument_list_opt > // - case 507: { action.builder. + case 508: { action.builder. consumeTemplateId(); break; } // - // Rule 513: template_argument ::= type_id + // Rule 514: template_argument ::= type_id // - case 513: { action.builder. + case 514: { action.builder. consumeTemplateArgumentTypeId(); break; } // - // Rule 514: explicit_instantiation ::= template declaration + // Rule 515: explicit_instantiation ::= template declaration // - case 514: { action.builder. + case 515: { action.builder. consumeTemplateExplicitInstantiation(); break; } // - // Rule 515: explicit_specialization ::= template < > declaration + // Rule 516: explicit_specialization ::= template < > declaration // - case 515: { action.builder. + case 516: { action.builder. consumeTemplateExplicitSpecialization(); break; } // - // Rule 516: try_block ::= try compound_statement handler_seq + // Rule 517: try_block ::= try compound_statement handler_seq // - case 516: { action.builder. + case 517: { action.builder. consumeStatementTryBlock(); break; } // - // Rule 519: handler ::= catch ( exception_declaration ) compound_statement + // Rule 520: handler ::= catch ( exception_declaration ) compound_statement // - case 519: { action.builder. + case 520: { action.builder. consumeStatementCatchHandler(false); break; } // - // Rule 520: handler ::= catch ( ... ) compound_statement + // Rule 521: handler ::= catch ( ... ) compound_statement // - case 520: { action.builder. + case 521: { action.builder. consumeStatementCatchHandler(true); break; } // - // Rule 521: exception_declaration ::= type_specifier_seq declarator - // - case 521: { action.builder. - consumeDeclarationSimple(true); break; - } - - // - // Rule 522: exception_declaration ::= type_specifier_seq abstract_declarator + // Rule 522: exception_declaration ::= type_specifier_seq declarator // case 522: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 523: exception_declaration ::= type_specifier_seq + // Rule 523: exception_declaration ::= type_specifier_seq abstract_declarator // case 523: { action.builder. + consumeDeclarationSimple(true); break; + } + + // + // Rule 524: exception_declaration ::= type_specifier_seq + // + case 524: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 531: no_sizeof_type_name_start ::= ERROR_TOKEN + // Rule 532: no_sizeof_type_name_start ::= ERROR_TOKEN // - case 531: { action.builder. + case 532: { action.builder. consumeExpressionProblem(); break; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParserprs.java index 0f63c43a00d..6c3b65bc335 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,481 +38,473 @@ 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,0,1,2,1,1,1,1,1,1, - 1,1,1,1,1,1,1,3,1,1, - 1,1,1,1,1,1,2,2,1,1, - 0,1,0,4,2,2,2,3,2,3, - 2,2,1,0,1,1,4,4,4,8, - 8,3,3,4,4,3,3,2,2,7, - 7,7,7,4,5,6,3,2,2,1, - 1,1,2,2,2,2,2,2,2,2, - 2,7,9,3,0,1,2,2,1,2, - 3,4,1,0,3,1,0,3,5,1, - 4,1,3,3,1,3,3,3,1,3, - 3,1,3,3,1,3,3,3,3,1, - 3,3,1,3,1,3,1,3,1,3, - 1,3,1,5,1,2,1,1,3,3, - 3,3,3,3,3,3,3,3,3,1, - 2,1,3,1,0,1,0,1,1,0, + 1,1,1,0,1,2,1,1,1,1, 1,1,1,1,1,1,1,1,1,3, - 3,2,2,1,4,2,1,2,5,7, - 5,1,4,1,0,5,7,8,1,1, - 2,2,3,2,3,1,1,1,1,1, + 1,1,1,1,1,1,1,1,2,2, + 1,1,0,1,0,4,2,2,2,3, + 2,3,2,2,1,0,1,1,4,4, + 4,8,8,3,3,4,4,3,3,2, + 2,7,7,7,7,4,5,6,3,2, + 2,1,1,1,2,2,2,2,2,2, + 2,2,2,7,9,3,0,1,2,2, + 1,2,3,4,1,0,3,1,0,3, + 5,1,4,1,3,3,1,3,3,3, + 1,3,3,1,3,3,1,3,3,3, + 3,1,3,3,1,3,1,3,1,3, + 1,3,1,3,1,5,1,2,1,1, + 3,3,3,3,3,3,3,3,3,3, + 3,1,2,1,3,1,0,1,0,1, + 1,0,1,1,1,1,1,1,1,1, + 1,3,3,2,2,1,4,2,1,2, + 5,7,5,1,4,1,0,5,7,8, + 1,1,2,2,3,2,3,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 2,1,0,4,4,2,2,2,2,2, - 0,1,1,1,1,1,1,1,2,1, - 2,2,2,1,1,2,2,1,2,2, - 1,2,2,1,2,2,1,1,1,1, + 1,1,2,1,0,4,4,2,2,2, + 2,2,0,1,1,1,1,1,1,1, + 2,1,2,2,2,1,1,2,2,1, + 2,2,1,2,2,1,2,2,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,3,4,4, - 5,2,4,5,4,5,6,1,3,1, - 0,1,3,1,1,1,6,5,7,6, - 1,0,6,5,6,4,1,3,1,0, - 1,1,2,1,3,1,3,1,1,1, - 1,3,9,2,2,3,2,3,1,5, - 1,2,2,1,0,1,1,1,4,1, - 2,1,1,2,3,1,1,1,3,2, - 1,2,2,9,8,2,1,3,1,3, - 1,0,1,0,2,1,1,3,1,3, - 2,1,5,8,1,2,3,1,5,4, - 3,1,3,1,1,5,5,4,4,5, - 5,1,0,1,1,1,2,4,2,2, - 1,5,1,1,1,1,1,1,1,2, - 1,0,1,3,1,2,3,2,1,2, - 2,1,0,1,3,3,5,5,4,1, - 1,1,1,0,1,5,2,2,1,2, - 2,1,0,1,3,4,3,1,1,5, - 2,1,1,3,3,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,3, + 4,4,5,2,4,5,4,5,6,1, + 3,1,0,1,3,1,1,1,6,5, + 7,6,1,0,6,5,6,4,1,3, + 1,0,1,1,2,1,3,1,3,1, + 1,1,1,3,9,2,2,3,2,3, + 1,5,1,2,2,1,0,1,1,1, + 4,1,2,1,1,2,3,1,1,1, + 3,2,1,2,2,9,8,2,1,3, + 1,3,1,0,1,0,2,1,1,3, + 1,3,2,1,5,8,1,2,3,1, + 5,4,3,1,3,1,1,5,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,2,2,7,1,0,1,3,1,1, - 2,4,2,4,7,9,5,1,3,1, - 0,1,1,2,4,4,1,2,5,5, - 3,3,1,4,3,1,0,1,3,1, - 1,-63,0,0,0,-53,0,0,0,0, + 1,1,2,2,7,1,0,1,3,1, + 1,2,4,2,4,7,9,5,1,3, + 1,0,1,1,2,4,4,1,2,5, + 5,3,3,1,4,3,1,0,1,3, + 1,1,-63,0,0,0,-262,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-65,0,0,0,0,0, - 0,0,-2,0,0,-10,0,0,0,-4, - 0,0,0,-329,0,0,0,-113,0,0, - 0,0,0,0,-178,0,0,-93,0,0, + 0,0,0,0,0,0,-464,0,0,0, + 0,0,0,-136,0,0,-2,0,0,0, + -349,-454,0,0,0,0,-246,-376,0,0, + 0,0,-119,0,0,0,0,0,-66,-93, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -485,0,-291,-5,0,0,0,0,0,0, - 0,0,-237,0,0,0,0,-356,0,0, - 0,-6,0,0,0,0,0,0,0,0, - 0,-310,-146,0,0,0,0,0,0,0, - 0,0,0,-7,0,0,0,0,0,-149, + 0,0,-16,0,0,0,0,-4,0,0, + 0,0,0,0,0,0,-5,-127,0,0, + 0,0,0,0,-449,0,0,-58,0,0, + 0,0,0,-6,0,-72,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,-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,-377,0,0,-127,0, - 0,0,0,0,0,0,-72,0,0,0, - -248,0,0,0,0,0,0,0,0,0, - -116,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-231,0, + 0,0,0,-243,0,0,0,-141,0,0, + -182,0,0,-124,0,0,0,0,0,0, + 0,-116,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-58,0,0,0,0,0,-141,0,0, - 0,0,0,-262,0,-8,-16,0,0,0, - -147,0,0,0,-73,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-295,-182, - 0,-51,-232,0,0,0,-131,0,0,0, + 0,0,0,0,0,0,0,0,-137,-145, + -7,0,0,0,0,0,0,-234,0,0, + 0,-8,0,-178,0,0,-73,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-383,0,0,-131,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-124,0,0,0,0,0,-9, - 0,-11,0,0,-245,0,0,0,-136,0, - 0,0,0,-12,0,-225,0,0,0,0, + 0,0,0,0,0,0,0,0,-10,0, + 0,-118,0,0,0,0,-235,0,0,0, + -149,0,0,0,0,-177,0,0,0,0, + -9,-54,0,0,-224,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-13,0,0,-210, - 0,0,0,0,-49,0,0,-264,0,0, - 0,0,-119,-50,0,0,0,0,-57,0, - 0,-129,0,0,-337,0,0,0,0,0, - 0,0,0,0,0,0,0,-15,0,0, - -28,-482,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-137,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-321,0, - -29,0,0,-517,0,0,0,0,0,0, + 0,-307,0,-313,0,0,0,-147,0,0, + -146,0,0,0,-348,0,0,0,0,0, + 0,0,-329,0,-11,0,0,0,0,0, + 0,-12,0,0,-13,0,-480,0,0,0, + -341,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-507,0,0,0,0,0,0,0,0, + -53,0,0,0,0,0,0,-248,0,0, + -49,0,0,0,0,0,0,0,0,-20, + 0,0,0,-205,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-30,0,0,0,0,0, - 0,0,-31,0,0,0,0,0,-397,0, - 0,0,0,-20,0,0,0,-299,0,0, + 0,0,-506,0,0,0,-410,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-3,0,0, + 0,0,0,0,0,0,-60,0,0,0, + 0,0,0,0,0,0,0,0,0,-15, + 0,0,0,0,0,-516,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-429,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -286,0,0,0,0,0,0,0,0,0, - 0,-32,0,0,-266,0,0,0,0,-359, - 0,0,0,-413,-351,0,0,0,0,0, - -33,0,-283,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-28,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-186,0,0,0, + -29,-148,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,-34,0,0,-42,0,0,0, - 0,0,0,0,-323,0,0,0,-269,0, + 0,0,0,0,0,0,0,0,-129,0, + 0,0,0,0,0,-373,0,0,-30,0, + 0,-394,0,0,0,0,-151,0,0,0, + -31,0,0,0,0,0,0,0,0,-18, + 0,0,0,0,-32,-280,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-113, + 0,0,0,0,0,0,0,0,0,-33, + 0,0,0,0,0,0,0,-320,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,-316,0, - 0,-54,-317,0,0,0,-184,0,-344,0, - 0,-386,-324,0,0,0,-60,0,0,0, + 0,-292,0,0,0,0,0,0,0,0, + 0,-65,0,0,-35,0,-209,0,0,0, + 0,-321,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-508,0,0,0,0, + 0,0,-120,0,0,-130,0,0,-191,0, + 0,0,0,-39,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-61,0,0,0,0,0,-35, - 0,-108,0,0,-432,0,0,0,-114,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-50,0,0, + 0,0,0,0,0,0,-267,-41,0,0, + 0,-61,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-36,0,0,0,-39,0,0, + 0,0,0,0,-36,0,0,0,0,-95, + 0,0,0,-37,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,-38,0,0,-296,0,-108,0, + 0,-96,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,-37,0, - 0,-185,0,0,0,0,0,0,0,-346, - -41,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-386,0,0,-333,0, + -114,0,0,-97,0,0,0,-40,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-514,0,0,0,0,0, - 0,0,-95,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-48,0,0,-38, - 0,-152,0,0,-96,0,0,0,-130,0, + -55,0,-152,0,0,-98,0,0,0,-153, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-69,0, - 0,-40,0,-55,0,0,-97,0,0,0, - -143,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-57, + 0,0,-56,0,-199,0,0,-99,0,0, + 0,-59,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-67,0, + 0,-351,0,0,-68,0,0,0,0,-100, + 0,0,0,-70,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -74,0,0,0,0,-202,0,0,-98,0, + 0,0,0,-71,0,0,0,0,0,0, + 0,0,0,-184,0,0,-109,0,-201,0, + 0,-101,0,0,0,-110,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-111,0,0,0,0, + 0,0,0,0,0,-185,0,0,-112,0, + -210,0,0,-102,0,0,0,-138,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-139,0,0, + 0,0,0,0,0,0,0,-187,0,0, + -140,0,-238,0,0,-103,0,0,0,-154, 0,0,0,0,0,0,0,0,0,0, - 0,0,-75,0,0,0,0,0,0,0, - -99,0,0,0,-153,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-155, + 0,0,0,0,0,0,0,0,0,-189, + 0,0,-156,0,-157,0,0,-104,0,0, + 0,-158,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-159,0,0,0,0,0,0,-406,0, + 0,-160,0,0,-318,0,-245,0,0,-105, + 0,0,0,-161,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-106,0,0,-56,0,-59, - 0,0,-100,0,0,0,0,0,0,0, + 0,0,0,-162,0,0,0,0,0,0, + 0,0,0,-163,0,0,-236,0,0,0, + 0,-134,0,0,0,-332,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,-164,0,0,-165,0,0,-217,0, + 0,0,-252,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-117,0,0,0, - -67,0,0,0,-101,0,0,0,-200,0, + 0,0,0,0,0,0,0,0,0,-216, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-68,0,0, - 0,0,0,0,0,-70,0,0,-133,0, - 0,-451,0,0,0,0,-102,0,0,0, + 0,0,-166,-47,0,0,0,-437,-283,-511, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-66, - 0,0,0,0,0,0,0,-71,0,0, - -219,0,0,0,0,0,0,0,-103,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-167,0,0,0,0,0,0, + 0,0,0,-352,0,0,0,0,0,0, + 0,-317,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-220,0,0,-109,0,0,0,0, - -104,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-331,0, + 0,0,-343,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,-169,0,0,-334,0,0,0,-170, + 0,0,0,0,0,0,-253,-368,-171,-346, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-221,0,0,-409,0,-110, - 0,0,-105,0,0,0,-336,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-222,0,0,-111, - 0,-376,0,0,-134,0,0,0,-335,0, + 0,0,0,-254,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, - 0,0,0,0,0,0,0,0,-112,0, - 0,-218,0,0,0,-120,0,0,0,0, + -172,0,0,0,0,0,0,0,0,0, + -173,0,0,-356,0,0,0,-453,0,0, + 0,0,0,0,-255,-174,-175,-379,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-332,0,0,0,0,0, - 0,0,-206,0,0,-138,0,0,0,0, - 0,0,0,0,-354,-383,0,0,0,0, - 0,-512,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-139,0,0,0,0,0, - 0,0,0,0,0,-140,0,0,-233,0, - 0,0,0,-320,0,0,0,0,0,0, + 0,-226,0,0,0,0,0,0,0,0, + 0,-289,0,0,-440,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-154,0,0, - -334,0,0,0,-155,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-176,0, + 0,-372,0,0,0,-299,-179,0,0,0, + 0,0,0,-360,-180,-107,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-148,0,0, - 0,-156,0,0,0,0,0,0,0,0, - -349,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-390,0,0,0, + 0,0,-94,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-157,0,0,0,0,0,0, - 0,-158,0,0,-211,0,0,-381,0,0, + 0,0,0,0,0,0,-181,0,0,0, + 0,0,0,-302,0,-92,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-190, + 0,0,0,0,0,0,-89,0,0,0, + -505,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -159,0,0,0,0,0,0,0,0,0, - 0,-160,0,0,-151,0,0,0,-161,0, - 0,0,0,0,0,0,0,-382,0,0, + -275,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,-196, + 0,0,0,-91,0,0,0,-197,0,0, 0,0,0,0,0,0,0,0,0,0, - -162,0,0,0,0,0,0,0,-163,0, - 0,-240,0,0,-443,0,0,0,0,0, + 0,0,0,0,0,0,0,-200,0,0, + 0,-83,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-164,0,0, - 0,0,0,0,0,0,0,0,-165,0, - 0,-375,0,0,0,-455,0,0,0,0, - 0,0,-364,-363,-107,0,0,0,0,0, + 0,0,0,0,0,-300,0,0,-84,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-466,0,0, - 0,0,0,0,0,-186,0,0,-400,0, - 0,-94,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-272,0,0,0,0,0, - 0,0,-166,0,-92,0,0,0,0,0, + 0,0,-316,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,-211, + 0,0,-86,0,0,0,-214,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-89,0,0,0,-167, + 0,0,0,0,0,0,-421,0,0,-361, + 0,-284,-310,0,0,0,0,0,0,0, + 0,0,0,-222,-272,-215,0,0,0,0, + 0,-324,-48,-375,0,0,0,0,0,-359, + -195,0,0,0,0,0,-398,0,0,-223, + 0,-42,0,0,0,0,0,0,0,0, + 0,0,0,0,-225,0,0,-438,0,0, + 0,0,-396,0,0,0,0,0,0,-239, + -241,0,0,0,0,0,0,0,0,0, + 0,0,-249,-263,-52,0,0,0,0,0, + -242,-265,-384,-409,0,0,0,0,-135,0, + 0,0,0,0,0,0,-266,0,0,0, + 0,0,-276,-198,0,0,0,0,0,0, + -192,0,0,-51,0,0,0,0,0,-203, 0,0,0,0,0,0,0,0,0,0, + 0,-87,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-90,0,0,0,0,0, + 0,0,0,0,0,0,0,-277,0,0, + -62,0,0,0,0,0,-237,0,0,0, + 0,0,-281,-412,0,-479,0,0,0,-282, + -293,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-413,0,0,0,0, + 0,0,-240,0,0,0,0,0,0,0, + 0,0,0,-353,0,0,0,0,0,0, + 0,0,0,-88,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-278,0,0, - 0,0,-91,0,0,0,-168,0,0,0, + 0,0,0,0,0,0,0,-297,0,-455, + 0,0,-323,0,0,0,0,-298,0,0, + 0,0,-305,-17,-306,0,0,0,-230,0, + -311,0,-286,0,0,0,0,-314,0,0, + 0,0,0,0,-208,-269,-312,0,0,0, + 0,-433,0,0,0,0,0,0,0,0, + 0,-288,0,0,-232,0,0,0,0,0, + -328,-264,0,0,-117,-422,0,0,0,0, + 0,0,0,-1,-270,0,-431,0,0,0, + 0,0,0,0,-491,0,0,-345,-347,0, + -363,0,-387,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-169,0,0,0,0, - -83,0,0,0,0,0,0,0,0,0, + 0,-271,0,-366,0,0,0,0,0,0, + -447,-428,-371,0,0,0,0,0,0,0, + 0,-388,-128,0,0,0,-43,0,-389,-228, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-170,0,0,0,-84,0,0, + 0,0,0,-229,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-367,0,0, + 0,0,0,0,0,-468,-233,-471,0,0, 0,0,0,0,0,0,0,0,0,0, - -371,0,0,0,-85,0,0,0,-171,0, + 0,0,0,0,-362,-122,0,0,0,0, + 0,0,0,0,0,0,0,-392,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,-172,0,0, - 0,-86,0,0,0,-456,0,0,0,0, + 0,0,0,-258,0,0,-498,0,0,0, + 0,0,0,0,-458,0,-393,-399,-142,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-173,0,0,0,-52,0, - 0,0,-174,0,-398,0,0,-87,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -481,0,0,-361,0,0,-177,0,0,0, - -196,0,0,0,-217,-122,0,0,0,-175, - 0,-370,0,0,-88,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -176,-179,0,-234,0,0,0,0,0,-247, - -180,-118,0,-242,0,0,0,0,0,0, - 0,0,0,0,0,-378,0,0,-145,0, - 0,0,0,0,0,0,0,0,-187,0, - 0,0,-62,0,0,-181,0,-289,0,0, - 0,0,-191,0,0,0,0,0,-192,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-239,0,0, - 0,0,-188,0,0,-197,0,0,-425,0, - 0,0,-190,0,0,0,0,0,0,0, - -198,-201,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-238,0,0,0,-236, - 0,0,-390,0,0,0,0,0,0,0, - 0,0,0,-319,0,0,0,0,-121,0, + 0,-456,-150,0,0,0,-279,0,-291,-415, + 0,0,0,0,0,0,-303,0,0,0, + 0,-121,0,0,0,0,0,0,0,0, + 0,0,0,0,-69,0,0,-500,0,0, + -401,0,-442,0,0,0,0,-308,-322,0, + 0,0,0,0,0,0,0,0,0,0, + -404,0,-44,-411,0,0,0,-123,0,-188, + 0,0,0,0,-327,0,0,-459,0,0, + 0,-509,0,0,0,0,0,0,0,0, + 0,0,0,0,-395,0,0,0,-504,-74, + 0,-259,0,0,-418,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-193,0,0,0,0,0, + 0,0,-451,-419,-125,-439,0,0,0,0, + 0,0,-274,0,0,0,0,-452,0,0, + 0,0,0,-256,0,0,0,0,0,-517, + -336,0,0,0,0,-434,0,0,0,0, + 0,-315,0,0,0,0,0,0,0,0, + 0,0,-441,0,0,0,0,-443,-444,0, + 0,-339,0,0,0,0,0,0,0,0, + 0,0,0,-445,-446,0,0,0,0,0, + 0,0,0,0,0,0,-462,-474,-484,0, + -520,0,0,0,0,-338,-450,0,0,0, + 0,-475,-448,0,0,0,0,0,0,0, + 0,0,0,-481,0,-486,-350,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -463,-465,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-244,0,0,0,0, + 0,0,-466,0,-250,0,0,0,0,0, + 0,0,0,-467,0,0,-472,0,0,0, 0,0,0,0,-78,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-193,0,-254, - 0,0,-18,0,0,0,0,0,0,0, - 0,-212,-424,-203,0,0,0,0,0,0, - 0,0,0,-495,0,0,0,0,0,-216, - 0,0,0,0,-273,0,0,-275,-215,0, - -223,0,0,0,0,0,-246,0,0,0, - 0,0,-287,-255,0,0,0,0,0,0, - -224,0,0,0,0,0,0,0,-204,0, - -256,0,0,0,0,-441,-209,-230,-257,0, - 0,0,0,0,0,0,-227,0,0,0, - 0,0,0,0,0,0,-226,-231,0,0, - 0,0,0,0,0,0,0,-47,0,0, - 0,-235,0,0,0,0,-241,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-277,0,-260,0,-352,0,0,-243,0, - 0,0,0,0,0,-251,0,-265,0,0, 0,0,0,0,0,0,0,0,-79,0, - 0,0,-305,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-431,0,0,0,0,0,-312,0,0, - 0,0,0,0,0,0,0,0,-135,0, - -297,-365,0,-292,0,-374,-282,-449,-199,0, - 0,0,0,0,-302,-368,0,0,0,0, - 0,0,0,0,0,0,-267,0,0,-294, - 0,0,0,0,0,0,-1,0,0,0, - 0,0,0,0,0,0,0,-509,0,0, - 0,0,0,0,0,-123,0,0,0,0, - 0,0,0,0,-306,0,0,0,0,0, - 0,0,0,-470,-504,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-401,0,0,0,0,0, - 0,0,0,0,0,0,0,-405,0,0, - 0,0,0,0,-268,0,-250,-244,0,0, - 0,0,0,0,0,0,0,-279,-213,0, - 0,0,0,-499,-355,0,0,0,-261,0, - 0,0,0,0,0,-280,0,0,0,0, - 0,0,0,0,0,0,0,-304,0,-128, - 0,0,0,-258,0,0,-303,0,0,0, - 0,0,0,0,-252,0,0,0,0,0, - 0,0,0,0,0,0,0,-284,-406,0, - 0,0,0,-501,0,-473,0,0,0,0, - 0,0,0,-285,-43,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-296, - 0,0,0,0,0,0,0,0,-300,-301, - -327,0,0,0,0,0,0,-14,0,0, - 0,0,0,0,0,0,0,-307,0,-308, - 0,0,0,-505,0,0,-362,0,-309,0, - 0,-314,0,-311,0,-274,0,0,0,0, - 0,0,0,0,0,0,0,-315,-228,-125, - -506,0,0,0,0,-183,0,0,0,-331, - 0,0,0,-253,0,0,0,-348,0,0, - 0,0,0,0,0,0,0,-511,0,0, - 0,0,0,0,0,0,0,0,-276,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-44,-518,-418,0, - 0,0,0,-350,0,0,0,0,0,-322, - 0,-366,-369,-325,-452,0,-440,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-391, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-326,0,-392,-395,0, - 0,0,0,-521,0,0,0,0,0,0, - 0,-387,-396,0,0,0,0,0,0,0, - -17,-144,0,-330,0,0,0,0,0,-142, - 0,0,0,-393,0,-339,0,0,0,0, - -402,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-341,-416,0, - 0,0,0,0,0,0,0,0,0,0, - -404,0,0,-436,0,0,0,-510,0,0, - 0,0,0,0,0,0,-80,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-81, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-82,0,0,0,0,0,0,0, + 0,0,-309,0,0,0,0,0,0,0, + 0,0,0,-251,0,0,0,-476,-510,0, + 0,0,0,-482,0,0,0,0,0,-21, + 0,0,0,-489,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-338,-343,-407,-249,0, - 0,-358,-414,0,-373,0,-328,-421,0,-415, - 0,0,-281,0,0,0,0,-422,0,-293, - 0,0,0,-442,0,-457,-357,0,-394,0, - 0,-493,0,-444,-458,-259,-463,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-446,0, - 0,0,0,0,0,0,0,0,0,-460, - 0,0,0,0,0,-447,0,-430,0,0, - 0,0,-426,0,0,0,-388,0,0,0, - 0,0,0,-448,-399,0,0,-290,-347,-450, - 0,-461,0,0,-465,0,0,0,0,0, - 0,0,0,-195,0,0,0,0,0,0, - -412,-389,0,0,0,0,0,0,0,0, - 0,0,0,0,-408,0,-411,0,0,0, - 0,-467,0,0,0,0,0,0,-468,0, - 0,0,0,-420,-494,0,0,0,0,-469, - 0,0,0,-21,0,0,0,-474,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-423,0,0,0,0, - 0,0,-22,0,0,0,-478,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-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, - -484,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-25,0, - 0,0,-491,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -26,0,0,0,-500,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-27,0,0,0,-508,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-64,0,0,0,-513,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-76,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-77,0, + 0,0,-273,0,0,0,-493,0,0,0, + 0,-278,0,0,0,0,0,0,-340,-354, + -499,0,0,0,0,0,0,-290,0,0, + 0,0,0,-507,-512,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, - -132,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,-82,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-326,0,0,0,0,0,0, + 0,0,0,0,-212,0,0,0,-385,0, + -14,-490,0,0,0,-381,0,0,0,-425, + -335,0,0,0,0,-380,0,0,0,-461, + 0,0,-405,-408,0,-417,0,0,-374,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-420,0,-495,0,0,0,0,0,-301, + 0,0,0,0,0,-370,-247,0,0,0, + 0,0,-402,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,-342,0, + 0,0,-319,0,0,0,0,0,0,0, + -457,0,0,0,0,0,0,0,0,0, + 0,0,-427,0,0,0,0,0,-403,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-400,0,0,0,0,0,0,-492,0, + 0,0,0,0,0,0,0,0,0,0, + -75,0,0,0,0,0,0,-460,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,-22, + 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,0,0,-23,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -24,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-25,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-26,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-27,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-64,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -76,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-77,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-132,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-206,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-502,0, + 0,0,0,0,0,0,0,0,0,-19, + 0,0,0,-501,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-497,-106,-337,-397,0,0,0,-423,0, + 0,0,0,-496,-133,0,0,0,-483,0, + 0,0,0,-357,0,0,0,0,0,0, + -514,0,0,0,-355,-45,-46,0,0,0, + 0,0,0,0,-519,0,0,0,-144,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-364,-295,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,-207,0,0,0,0,0,0,0, + 0,0,-369,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-227, + 0,0,0,0,0,0,0,-183,0,0, + 0,0,0,0,0,0,0,0,-435,0, + 0,0,0,0,-515,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,-503,0,0,0,0,-434, - 0,0,0,0,0,-19,0,0,0,-445, + 0,0,0,0,0,0,0,0,0,-518, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-459,-486,-453,-340, - 0,-454,-333,0,-360,-464,0,0,0,-367, - -427,-462,0,0,0,0,0,0,0,0, - 0,0,0,0,-479,-490,0,0,0,0, - -45,0,0,0,0,-298,0,0,0,0, - 0,0,-476,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-477,0,0, - 0,0,0,-429,0,0,0,0,0,0, - -483,0,0,-502,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-372,0,0, - -488,0,0,0,0,0,-410,-492,0,-498, + 0,0,0,0,0,-487,0,0,-416,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-515,0,0,-496,0,-497,0, - -520,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-257,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-516,0,0,0,0,0, + 0,0,0,0,0,-218,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-419, - 0,0,0,0,0,-519,0,0,0,0, + 0,0,0,-430,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-379,0,0,0,0,0, + 0,0,0,0,0,-219,0,0,0,0, + 0,-469,0,0,0,0,-414,0,0,0, + -126,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,-221,0,0,-426,0,0,0,0,0, + 0,-377,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-436,0,0,0, + 0,0,0,0,0,-485,0,0,0,0, + 0,0,0,0,0,0,-287,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,-433,0,0,0,0,0,0, + 0,0,0,0,0,0,-202,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-494,0,0,0,0,0, + 0,0,0,0,0,-268,0,0,0,0, + 0,0,0,0,0,0,-365,0,0,0, + 0,0,0,0,0,0,0,0,0,-325, + 0,0,0,0,0,-344,0,0,0,0, + 0,0,0,0,0,0,0,0,-432,0, + 0,0,0,0,0,0,-194,0,0,0, + 0,0,0,0,0,0,0,0,-204,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-213,0,0,0, + 0,0,0,0,-261,0,0,0,0,0, + 0,0,0,0,0,0,-285,0,0,0, + 0,0,0,0,-424,0,0,-470,0,0, + 0,0,-473,0,0,0,0,0,-478,0, 0,0,0,0,0,0,0,0,0,0, - 0,-126,0,0,0,-229,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-150,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-46,0,0,0,0,0,0,0, - 0,0,0,0,-205,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-313,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-428,0,0,0,0,0,-214,0, - 0,0,0,0,-345,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-437,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-380,0, - 0,0,0,0,0,0,0,0,0,-487, - 0,0,0,0,0,0,0,0,0,0, - -270,0,0,0,0,0,0,0,0,0, - 0,0,0,-271,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-189,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-194,0,0,0,0, - 0,0,-318,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-342,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-353,0, - 0,0,-384,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-385,0,0,0,-403,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-417,0, - 0,0,-435,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-489,0,0,0,0,-263,0, - 0,0,0,-471,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-288,0,0, - 0,-208,0,0,0,0,0,-472,0,0, - 0,0,0,0,0,0,0,0,0,-475, - 0,0,0,0,0,-438,0,0,0,0, - 0,0,-439,-480,0,0,0,0,0,0, + -294,0,0,0,0,0,0,-503,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, @@ -520,10 +512,7 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0 + 0,0,0,0,0,0,0 }; }; public final static short baseCheck[] = BaseCheck.baseCheck; @@ -533,533 +522,522 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface BaseAction { public final static char baseAction[] = { - 169,4,48,75,75,34,34,64,64,38, - 38,190,190,191,191,192,192,1,1,15, - 15,15,15,15,15,15,15,16,16,16, - 14,11,11,8,8,8,8,8,8,2, - 65,65,5,5,12,12,12,12,43,43, - 134,134,135,61,61,42,17,17,17,17, + 168,4,49,76,76,34,34,65,65,38, + 38,42,42,191,191,192,192,193,193,1, + 1,15,15,15,15,15,15,15,15,16, + 16,16,14,11,11,8,8,8,8,8, + 8,2,66,66,5,5,12,12,12,12, + 44,44,133,133,134,62,62,43,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,29,29,30,30,32,32,33, - 33,35,35,36,36,41,41,40,40,40, + 17,17,17,17,17,17,17,135,135,135, + 113,113,18,18,18,18,18,18,18,18, + 18,18,18,18,19,19,169,169,170,170, + 171,138,138,139,139,136,136,140,137,137, + 20,20,21,21,22,22,22,23,23,23, + 23,25,25,25,26,26,26,27,27,27, + 27,27,28,28,28,29,29,30,30,32, + 32,33,33,35,35,36,36,41,41,40, 40,40,40,40,40,40,40,40,40,40, - 39,31,142,142,96,96,173,173,91,193, - 193,76,76,76,76,76,76,76,76,76, - 77,77,77,73,73,59,59,174,174,78, - 78,78,102,102,175,175,79,79,79,176, - 176,80,80,80,80,80,81,81,83,83, - 83,83,83,83,83,49,49,49,49,49, - 113,113,114,114,50,177,23,23,23,23, - 23,47,47,86,86,86,86,86,149,149, - 144,144,144,144,144,145,145,145,146,146, - 146,147,147,147,148,148,148,87,87,87, - 87,87,88,88,88,13,13,13,13,13, - 13,13,13,13,13,13,100,118,118,118, - 118,118,118,116,116,116,117,117,151,151, - 150,150,120,120,103,68,68,69,70,52, - 46,152,152,53,51,85,85,153,153,143, - 143,121,122,122,74,74,154,154,62,62, - 62,56,56,55,63,63,71,71,54,54, - 54,89,89,98,97,97,60,60,57,57, - 58,58,44,101,101,101,92,92,92,93, - 93,94,94,94,95,95,104,104,104,106, - 106,105,105,194,194,90,90,179,179,179, - 179,179,124,45,45,156,178,178,125,125, - 125,125,180,180,37,37,115,115,126,126, - 126,126,107,107,119,119,119,127,128,128, - 128,128,128,128,128,128,128,128,128,159, - 159,158,158,181,181,160,160,160,160,161, - 182,109,108,108,183,183,162,162,162,162, - 99,99,99,184,184,9,9,10,185,185, - 186,163,155,155,164,164,165,166,166,6, - 6,7,167,167,167,167,167,167,167,167, - 167,167,167,167,167,167,167,167,167,167, - 167,167,167,167,167,167,167,167,167,167, - 167,167,167,167,167,167,167,167,167,167, - 167,167,167,167,66,72,72,168,168,130, - 130,131,131,131,131,131,131,3,132,132, - 129,129,110,110,84,67,82,157,157,111, - 111,187,187,187,133,133,123,123,188,188, - 169,169,881,39,1976,1965,1356,3420,34,948, - 31,35,907,30,32,1926,29,27,56,951, - 110,81,82,112,991,821,1043,1035,1131,1112, - 1260,1164,1339,963,1304,1430,890,1472,147,276, - 1115,2898,162,148,984,39,874,36,979,3276, - 34,948,338,35,907,600,39,2851,2360,39, - 874,36,235,2793,34,948,31,35,907,30, - 32,862,29,27,56,951,110,81,82,112, - 991,493,1043,1035,1131,1112,1260,2426,238,233, - 234,2634,4718,2282,29,2539,585,2539,332,319, - 2843,321,277,600,39,285,315,1101,600,39, - 1668,385,117,2577,342,351,2634,245,248,251, - 254,2586,890,2052,39,874,36,4593,1896,34, - 948,44,35,907,293,4120,345,975,869,348, - 600,1676,2829,38,570,426,2632,923,2759,3046, - 3270,4282,1493,39,874,36,2539,2793,34,948, - 31,35,907,30,32,862,29,27,56,951, - 110,81,82,112,991,342,1043,1035,1131,1112, - 1260,1164,1339,360,1304,1430,2496,1472,147,248, - 39,282,512,148,3664,3412,2663,1809,39,874, - 36,1935,4302,34,948,31,35,907,63,32, - 513,1493,39,874,36,2539,2793,34,948,31, - 35,907,30,32,862,29,27,56,951,110, - 81,82,112,991,342,1043,1035,1131,1112,1260, - 1164,1339,2101,1304,1430,375,1472,147,248,39, - 282,512,148,4335,1160,2663,381,2006,39,1600, - 47,994,508,46,948,1922,39,874,36,513, - 4302,34,948,31,35,907,62,32,4139,2042, - 1614,2622,1353,2156,2631,3276,1637,1493,39,874, - 36,2539,2793,34,948,31,35,907,30,32, - 862,29,27,56,951,110,81,82,112,991, - 342,1043,1035,1131,1112,1260,1164,1339,387,1304, - 1430,508,1472,147,2146,2679,3119,512,148,4566, - 469,2663,205,67,332,2124,39,280,809,1693, - 2666,3210,373,2631,557,513,1761,39,874,36, - 2539,2793,34,948,31,35,907,30,32,862, - 29,27,56,951,110,81,82,112,991,342, - 1043,1035,1131,1112,1260,1164,1339,645,1304,1430, - 1678,1472,147,585,3549,57,512,148,151,682, - 2663,388,422,2806,57,48,2802,508,741,57, - 3570,66,1356,817,513,2052,39,874,36,451, - 352,34,948,2243,35,907,2721,92,733,2631, - 106,1999,1559,39,874,36,400,2793,34,948, - 31,35,907,30,32,862,29,27,56,951, - 110,81,82,112,991,1090,1043,1035,1131,1112, - 1260,1164,1339,235,1304,1430,509,1472,147,600, - 3118,1091,378,148,2116,39,874,36,438,4409, - 34,948,31,35,907,30,32,455,506,247, - 233,234,1632,39,874,36,381,2793,34,948, - 31,35,907,30,32,862,29,27,56,951, - 110,81,82,112,991,1251,1043,1035,1131,1112, - 1260,1164,1339,849,1304,1430,353,1472,147,1755, - 39,392,378,148,2360,39,874,36,1817,2793, - 34,948,31,35,907,30,32,862,29,27, - 56,951,110,81,82,90,379,382,1936,39, - 874,36,97,2793,34,948,31,35,907,30, - 32,862,29,27,56,951,110,81,82,112, - 991,2391,1043,1035,1131,1112,1260,1164,1339,289, - 1304,1430,2457,1472,147,1280,39,294,162,148, - 2052,39,874,36,1660,2639,34,948,339,35, - 907,67,3705,1936,39,874,36,383,2793,34, - 948,31,35,907,30,32,862,29,27,56, - 951,110,81,82,112,991,3558,1043,1035,1131, - 1112,1260,1164,1339,596,1304,1430,57,1472,147, - 75,1078,324,372,148,1936,39,874,36,2144, - 2793,34,948,31,35,907,30,32,862,29, - 27,56,951,110,81,82,112,991,160,1043, - 1035,1131,1112,1260,1164,1339,1262,1304,1430,1054, - 1472,147,2038,233,4619,372,148,57,3238,2423, - 570,2877,2596,1936,39,874,36,2038,2793,34, - 948,31,35,907,30,32,862,29,27,56, - 951,110,81,82,112,991,492,1043,1035,1131, - 1112,1260,1164,1339,2038,1304,1430,371,1472,147, - 415,3941,2038,372,148,1873,39,874,36,2038, - 2793,34,948,31,35,907,30,32,862,29, - 27,56,951,110,81,82,112,991,28,1043, - 1035,1131,1112,1260,1164,1339,74,1304,1430,370, - 1472,147,313,59,912,378,148,416,1695,39, - 874,36,433,2793,34,948,31,35,907,30, - 32,862,29,27,56,951,110,81,82,112, - 991,652,1043,1035,1131,1112,1260,1164,1339,63, - 1304,1430,57,1472,147,355,3269,368,146,148, - 1919,1936,39,874,36,526,2793,34,948,31, - 35,907,30,32,862,29,27,56,951,110, - 81,82,112,991,716,1043,1035,1131,1112,1260, - 1164,1339,442,1304,1430,2570,1472,147,398,1078, - 376,163,148,1936,39,874,36,3125,2793,34, - 948,31,35,907,30,32,862,29,27,56, - 951,110,81,82,112,991,160,1043,1035,1131, - 1112,1260,1164,1339,166,1304,1430,1925,1472,147, - 239,1078,2038,159,148,1936,39,874,36,1356, - 2793,34,948,31,35,907,30,32,862,29, - 27,56,951,110,81,82,112,991,164,1043, - 1035,1131,1112,1260,1164,1339,58,1304,1430,57, - 1472,147,1234,1078,1245,158,148,1936,39,874, - 36,1356,2793,34,948,31,35,907,30,32, - 862,29,27,56,951,110,81,82,112,991, - 160,1043,1035,1131,1112,1260,1164,1339,1254,1304, - 1430,1925,1472,147,454,1078,2038,157,148,1936, - 39,874,36,1269,2793,34,948,31,35,907, - 30,32,862,29,27,56,951,110,81,82, - 112,991,164,1043,1035,1131,1112,1260,1164,1339, - 349,1304,1430,57,1472,147,3963,1078,4196,156, - 148,1936,39,874,36,1356,2793,34,948,31, - 35,907,30,32,862,29,27,56,951,110, - 81,82,112,991,160,1043,1035,1131,1112,1260, - 1164,1339,1565,1304,1430,57,1472,147,1627,1078, - 1134,155,148,1936,39,874,36,1432,2793,34, - 948,31,35,907,30,32,862,29,27,56, - 951,110,81,82,112,991,160,1043,1035,1131, - 1112,1260,1164,1339,2489,1304,1430,68,1472,147, - 57,978,3276,154,148,1936,39,874,36,1356, - 2793,34,948,31,35,907,30,32,862,29, - 27,56,951,110,81,82,112,991,1191,1043, - 1035,1131,1112,1260,1164,1339,1177,1304,1430,68, - 1472,147,600,4063,3276,153,148,1936,39,874, - 36,331,2793,34,948,31,35,907,30,32, - 862,29,27,56,951,110,81,82,112,991, - 296,1043,1035,1131,1112,1260,1164,1339,1296,1304, - 1430,57,1472,147,326,1078,810,152,148,1936, - 39,874,36,331,2793,34,948,31,35,907, - 30,32,862,29,27,56,951,110,81,82, - 112,991,160,1043,1035,1131,1112,1260,1164,1339, - 2790,1304,1430,57,1472,147,1184,1078,2999,151, - 148,1936,39,874,36,653,2793,34,948,31, - 35,907,30,32,862,29,27,56,951,110, - 81,82,112,991,160,1043,1035,1131,1112,1260, - 1164,1339,2844,1304,1430,57,1472,147,2596,1078, - 1314,150,148,1936,39,874,36,1817,2793,34, - 948,31,35,907,30,32,862,29,27,56, - 951,110,81,82,112,991,160,1043,1035,1131, - 1112,1260,1164,1339,2861,1304,1430,57,1472,147, - 1316,1078,2423,149,148,1827,39,874,36,1356, - 2793,34,948,31,35,907,30,32,862,29, - 27,56,951,110,81,82,112,991,160,1043, - 1035,1131,1112,1260,1164,1339,2869,1304,1430,1318, - 2722,168,1936,39,874,36,937,2793,34,948, - 31,35,907,30,32,862,29,27,56,951, - 110,81,82,112,991,1935,1043,1035,1131,1112, - 1260,1164,1339,1070,1304,1430,1521,1472,147,76, - 327,354,144,148,101,890,600,39,1668,385, - 4623,526,2265,39,874,36,1649,2793,34,948, - 31,35,907,30,32,862,29,27,56,951, - 110,81,82,112,991,2132,1043,1035,1131,1112, - 1260,1164,1339,429,1304,1430,2015,1472,147,1370, - 39,283,193,148,2360,39,874,36,653,2793, - 34,948,31,35,907,30,32,862,29,27, - 56,951,110,81,82,112,991,2279,1043,1035, - 1131,1112,1260,1164,1339,442,1304,1430,2517,2722, - 168,2360,39,874,36,2630,2793,34,948,31, - 35,907,30,32,862,29,27,56,951,110, - 81,82,112,991,3309,1043,1035,1131,1112,1260, - 1164,1339,2574,1304,1430,3210,2722,168,1605,39, - 874,36,1241,4409,34,948,31,35,907,65, - 32,2360,39,874,36,293,2793,34,948,31, - 35,907,30,32,862,29,27,56,951,110, - 81,82,112,991,1712,1043,1035,1131,1112,1260, - 1164,1339,1824,1304,1430,2038,2722,168,2360,39, - 874,36,2244,2793,34,948,31,35,907,30, - 32,862,29,27,56,951,110,81,82,112, - 991,243,1043,1035,1131,1112,1260,1164,1339,94, - 1304,1430,419,2722,168,1605,39,874,36,595, - 4409,34,948,31,35,907,64,32,2360,39, - 874,36,418,2793,34,948,31,35,907,30, - 32,862,29,27,56,951,110,81,82,112, - 991,771,1043,1035,1131,1112,1260,1164,1339,2103, - 1304,1430,2038,2722,168,2406,39,874,36,417, - 2793,34,948,31,35,907,30,32,862,29, - 27,56,951,110,81,82,112,991,2158,1043, - 1035,1131,1112,1260,1164,1339,2997,1304,1430,767, - 2722,168,2052,39,874,36,600,3747,34,948, - 3645,35,907,1320,1356,2360,39,874,36,420, - 2793,34,948,31,35,907,30,32,862,29, - 27,56,951,110,81,82,112,991,2633,1043, - 1035,1131,1112,1260,1164,1339,57,1304,2508,2496, - 4286,402,2360,39,874,36,3710,2793,34,948, - 31,35,907,30,32,862,29,27,56,951, - 110,81,82,112,991,1160,1043,1035,1131,1112, - 1260,1164,1339,2552,2454,2360,39,874,36,102, - 2793,34,948,31,35,907,30,32,862,29, - 27,56,951,110,81,82,112,991,375,1043, - 1035,1131,1112,1260,1164,2407,2360,39,874,36, - 2578,2793,34,948,31,35,907,30,32,862, - 29,27,56,951,110,81,82,112,991,386, - 1043,1035,1131,1112,2229,2360,39,874,36,518, - 2793,34,948,31,35,907,30,32,862,29, - 27,56,951,110,81,82,112,991,1160,1043, - 1035,1131,2313,2360,39,874,36,909,2793,34, - 948,31,35,907,30,32,862,29,27,56, - 951,110,81,82,112,991,772,1043,1035,1131, - 2350,2360,39,874,36,3736,2793,34,948,31, - 35,907,30,32,862,29,27,56,951,110, - 81,82,112,991,1335,1043,1035,2131,2360,39, - 874,36,286,2793,34,948,31,35,907,30, - 32,862,29,27,56,951,110,81,82,112, - 991,2249,1043,1035,2142,2360,39,874,36,1736, - 2793,34,948,31,35,907,30,32,862,29, - 27,56,951,110,81,82,112,991,591,1043, - 1035,2149,2360,39,874,36,2496,2793,34,948, - 31,35,907,30,32,862,29,27,56,951, - 110,81,82,112,991,1608,1043,1035,2181,2452, - 39,1668,385,1789,3150,1755,39,392,2360,39, - 874,36,240,2793,34,948,31,35,907,30, - 32,862,29,27,56,951,110,81,82,112, - 991,2596,1043,2189,2042,4045,276,600,39,2829, - 2831,600,39,1668,385,2458,2029,39,2673,2713, - 1855,4528,1280,3388,294,2360,39,874,36,235, - 2793,34,948,31,35,907,30,32,862,29, - 27,56,951,110,81,82,112,991,276,1043, - 2218,1901,1629,55,2156,238,233,234,1641,2659, - 2038,1360,1206,652,1136,39,874,36,3648,277, - 34,948,338,35,907,242,248,39,448,57, - 653,4648,3568,1078,245,248,251,254,2586,600, - 39,2888,2868,1685,3020,1896,1689,1679,1310,39, - 874,36,3557,1088,34,948,338,35,907,1339, - 2105,278,4718,2632,923,2759,3046,3270,4282,319, - 2843,321,235,2703,323,3238,314,1101,600,39, - 2829,279,350,57,526,351,472,813,3194,424, - 39,448,93,1506,4648,106,4718,2624,243,233, - 234,1708,1470,319,2843,321,343,975,869,348, - 314,1101,389,422,351,3178,1370,39,280,351, - 1017,3118,3221,1210,39,874,36,3649,3276,34, - 948,338,35,907,1160,343,975,869,348,2832, - 343,975,869,348,341,2360,39,874,36,1516, - 2793,34,948,31,35,907,30,32,862,29, - 27,56,951,110,81,82,112,991,57,2018, - 2038,4718,2740,1478,39,1668,385,331,319,2843, - 321,3563,1882,177,1373,314,1101,532,2539,3276, - 441,3431,3461,365,1755,39,392,1124,287,235, - 943,39,1668,385,73,2156,232,2634,2554,1949, - 55,1964,4415,4573,160,1641,1710,1147,39,2829, - 279,184,4000,2434,2038,250,233,234,207,218, - 3006,1982,206,215,216,217,219,276,331,57, - 288,2038,173,3108,307,311,1,57,57,2038, - 532,731,2825,445,3431,3461,172,1774,72,187, - 171,174,175,176,177,178,3671,1164,2102,232, - 2398,3136,3256,2999,359,71,3553,160,600,39, - 1668,385,57,70,184,4000,2922,2027,2192,2907, - 2929,207,218,3006,325,206,215,216,217,219, - 2936,3857,1017,3118,57,173,2554,1209,3148,1823, - 185,4573,77,391,422,55,1997,3129,2175,172, - 1641,578,188,171,174,175,176,177,178,2360, - 39,874,36,296,2793,34,948,31,35,907, - 30,32,862,29,27,56,951,110,81,82, - 112,991,57,2025,328,334,1078,2866,1193,39, - 3288,36,3649,3276,34,948,338,35,907,2676, - 424,57,1160,2804,2038,1078,2143,57,265,1544, - 2539,3340,532,3652,3276,2038,2034,39,874,36, - 2743,3268,34,948,338,35,907,2345,935,2634, - 57,232,160,350,1915,1209,4718,1418,3414,160, - 1859,1078,331,319,2843,321,184,4000,2496,61, - 314,1101,288,207,218,3006,2848,206,215,216, - 217,219,1125,332,4718,57,298,173,160,3546, - 351,316,3252,321,353,57,530,4415,532,1078, - 351,172,2754,3136,3718,171,174,175,176,177, - 178,343,975,869,348,2080,500,232,425,2803, - 1516,345,975,869,348,160,160,520,600,39, - 1668,385,184,4000,4165,648,235,2311,1481,207, - 218,3006,2539,206,215,216,217,219,1475,600, - 39,1668,385,173,441,890,497,499,532,1774, - 4644,2634,253,233,234,428,2164,172,413,3334, - 180,171,174,175,176,177,178,232,1774,186, - 688,39,1668,385,1925,160,55,2038,1078,1350, - 3254,52,184,4000,3389,600,3219,2829,79,207, - 218,3006,3119,206,215,216,217,219,1621,600, - 39,1668,385,173,529,164,2478,55,532,3129, - 532,60,1641,2706,1778,57,563,172,359,2539, - 191,171,174,175,176,177,178,232,3129,4046, - 2455,2581,2994,2907,2929,160,427,160,342,2484, - 2415,2038,184,4000,184,4000,333,334,1984,207, - 218,3006,2539,206,215,216,217,219,2401,2663, - 2464,50,2802,173,617,330,334,2038,532,2497, - 3005,342,2480,1766,2293,322,2156,172,1219,199, - 3879,171,174,175,176,177,178,232,2197,952, - 2874,2680,812,2539,4699,160,600,39,1668,385, - 2574,105,184,4000,1147,39,2829,3220,1431,207, - 218,3006,232,206,215,216,217,219,1484,39, - 874,36,3648,173,34,948,338,35,907,600, - 39,2829,284,55,918,403,4501,172,1641,2887, - 196,171,174,175,176,177,178,57,705,2143, - 235,2539,532,2539,2576,404,405,406,295,296, - 1774,3105,2058,2601,57,2478,4718,2611,3552,1078, - 342,232,2634,319,2843,321,256,233,234,160, - 314,1101,4694,200,390,422,184,4000,2938,351, - 2079,2663,521,207,218,3006,160,206,215,216, - 217,219,518,204,4078,1810,296,173,2650,1472, - 343,975,869,348,793,451,407,409,532,522, - 3129,172,2038,2600,190,171,174,175,176,177, - 178,57,1553,437,57,532,2539,232,4025,500, - 2508,39,1668,385,890,160,57,784,4514,4669, - 3555,2617,184,4000,342,342,3685,3577,334,207, - 218,3006,160,206,215,216,217,219,57,890, - 1254,1120,2996,173,4673,2663,910,55,517,498, - 499,2607,1641,1923,600,39,294,172,2496,1227, - 198,171,174,175,176,177,178,2360,39,874, - 36,2581,2793,34,948,31,35,907,30,32, - 862,29,27,56,951,110,81,82,112,2062, - 2360,39,874,36,2268,2793,34,948,31,35, - 907,30,32,862,29,27,56,951,110,81, - 82,112,2094,2360,39,874,36,519,2793,34, - 948,31,35,907,30,32,862,29,27,56, - 951,110,81,82,112,2102,2540,57,2629,68, - 2539,1852,1481,2652,3276,2661,2539,1373,2651,2539, - 2038,2539,3276,600,39,2829,281,4026,2682,232, - 600,39,2829,3280,2637,2634,2038,57,232,1160, - 2634,1222,2611,2867,2638,1745,1925,600,39,294, - 1078,209,218,3006,3990,208,215,216,217,219, - 209,218,3006,4056,208,215,216,217,219,2653, - 446,331,210,212,214,295,296,164,3105,524, - 1160,210,212,214,295,296,2686,3105,2694,220, - 211,213,2539,600,39,1668,385,57,220,211, - 213,1808,359,297,2688,1320,574,359,68,68, - 2710,232,2038,3276,3276,2110,3402,2907,2929,4108, - 2992,2192,2907,2929,600,39,1668,385,4108,3579, - 447,1320,2581,209,218,3006,4117,208,215,216, - 217,219,3157,300,305,57,377,57,98,4084, - 4091,3628,2712,517,210,212,214,295,296,89, - 3105,55,331,331,57,1921,1641,2736,4432,224, - 2655,220,211,213,2360,1676,874,1718,1094,2793, - 34,948,31,35,907,30,32,862,29,27, - 56,951,110,81,82,89,57,574,4479,3271, - 3347,4108,3620,2360,39,874,36,2714,2793,34, - 948,31,35,907,30,32,862,29,27,56, - 951,110,81,82,88,2360,39,874,36,380, - 2793,34,948,31,35,907,30,32,862,29, - 27,56,951,110,81,82,87,2360,39,874, - 36,1303,2793,34,948,31,35,907,30,32, - 862,29,27,56,951,110,81,82,86,2360, - 39,874,36,2728,2793,34,948,31,35,907, - 30,32,862,29,27,56,951,110,81,82, - 85,2360,39,874,36,2723,2793,34,948,31, - 35,907,30,32,862,29,27,56,951,110, - 81,82,84,2360,39,874,36,2727,2793,34, - 948,31,35,907,30,32,862,29,27,56, - 951,110,81,82,83,2218,39,874,36,964, - 2793,34,948,31,35,907,30,32,862,29, - 27,56,951,110,81,82,108,2360,39,874, - 36,5261,2793,34,948,31,35,907,30,32, - 862,29,27,56,951,110,81,82,114,2360, - 39,874,36,5261,2793,34,948,31,35,907, - 30,32,862,29,27,56,951,110,81,82, - 113,2360,39,874,36,5261,2793,34,948,31, - 35,907,30,32,862,29,27,56,951,110, - 81,82,111,2360,39,874,36,5261,2793,34, - 948,31,35,907,30,32,862,29,27,56, - 951,110,81,82,109,1464,39,874,36,3649, - 1320,34,948,338,35,907,2314,39,874,36, - 1320,2793,34,948,31,35,907,30,32,862, - 29,27,56,951,91,81,82,57,2038,1320, - 2737,2571,1320,1925,2539,1774,1320,1078,304,5261, - 2585,1925,57,4718,2539,1078,952,5261,183,5261, - 319,2843,321,232,5261,57,57,314,1101,3582, - 3985,57,3124,232,164,2539,1742,202,5261,1124, - 201,3276,164,1320,303,209,218,3006,5261,208, - 215,216,217,219,342,209,218,3006,1320,208, - 215,216,217,219,1774,3129,210,212,214,295, - 296,1320,3105,5261,1320,2663,210,212,214,295, - 296,205,3105,515,211,213,307,311,2618,1850, - 4056,2038,2539,514,211,213,203,2770,2038,3247, - 2486,2539,3637,334,3298,5261,5261,3576,4134,299, - 5261,232,1385,5261,1320,5261,5261,2038,3553,2038, - 232,1320,5261,5261,3129,3184,5261,5261,5261,5261, - 5261,5261,3244,209,218,3006,5261,208,215,216, - 217,219,209,218,3006,2038,208,215,216,217, - 219,3038,225,3468,210,212,214,295,296,197, - 3105,4017,334,210,212,214,295,296,5261,3105, - 2813,221,211,213,2539,100,2038,5261,5261,4141, - 306,211,213,5261,5261,5261,5261,5261,5261,5261, - 5261,5261,5261,232,5261,1235,39,3288,36,3649, - 5261,34,948,338,35,907,5261,5261,5261,5261, - 3394,5261,5261,5261,5261,209,218,3006,5261,208, - 215,216,217,219,1623,39,874,36,3649,5261, - 34,948,338,35,907,5261,210,212,214,295, - 296,5261,3105,4718,5261,5261,5261,5261,5261,5261, - 319,2843,321,494,211,213,5261,314,1101,5261, - 5261,5261,2514,39,1668,385,1028,3150,5261,1125, - 2539,4699,4718,5261,5261,241,5261,5261,5261,319, - 2843,321,776,39,1668,385,314,1101,5261,232, - 5261,5261,5261,5261,5261,5261,5261,5261,1124,276, - 5261,5261,5261,57,5261,5261,5261,2539,5261,5261, - 5261,918,403,4501,5261,600,39,1668,385,55, - 5261,5261,235,5261,1641,2585,342,5261,5261,5261, - 5261,5261,404,405,406,295,296,5261,3105,5261, - 5261,5261,5261,2820,5261,308,311,2663,239,233, - 234,5261,55,5261,5261,414,3334,1641,865,5261, - 5261,1889,277,5261,5261,2938,1623,39,874,36, - 3649,5261,34,948,338,35,907,246,249,252, - 255,2586,5261,2162,5261,5261,5261,2539,1896,600, - 39,1668,385,407,409,1060,39,874,36,5261, - 3276,34,948,338,35,907,342,5261,5261,5261, - 5261,5261,2673,5261,4718,5261,2539,525,5261,5261, - 5261,319,2843,321,2305,4514,55,2663,314,1101, - 5261,1641,1710,5261,5261,2634,5261,5261,5261,5261, - 3221,528,5261,4718,5261,5261,5261,5261,5261,332, - 319,2843,321,5261,5261,5261,5261,317,1101,1060, - 39,874,36,5261,3276,34,948,338,35,907, - 1623,39,874,36,3649,5261,34,948,338,35, - 907,1325,39,874,36,2978,5261,34,948,338, - 35,907,5261,5261,1104,5261,5261,5261,2539,4699, - 5261,5261,500,5261,5261,5261,5261,4718,1014,39, - 1668,385,5261,332,319,2843,321,232,4718,399, - 5261,315,1101,5261,5261,319,2843,321,5261,4718, - 5261,5261,314,1101,5261,5261,316,3252,321,918, - 403,4501,497,499,3835,55,688,39,1668,385, - 1641,53,5261,1166,39,1668,385,5261,5261,5261, - 404,405,406,295,296,5261,3105,5261,5261,1979, - 5261,3585,5261,776,39,1668,385,5261,5261,5261, - 3655,5261,5261,55,5261,5261,5261,5261,1641,53, - 55,5261,5261,2938,5261,1641,53,5261,5261,1166, - 39,1668,385,1166,39,1668,385,633,5261,5261, - 55,5261,5261,5261,638,1641,53,5261,5261,5261, - 5261,407,410,5261,1166,39,1668,385,1166,39, - 1668,385,5261,5261,2232,3254,55,5261,5261,5261, - 55,1641,53,5261,5261,1641,53,5261,5261,2003, - 39,1668,385,2159,39,1668,385,5261,5261,5261, - 1936,55,5261,5261,3098,55,1641,53,5261,5261, - 1641,53,5261,5261,2479,5261,5261,5261,532,600, - 39,1668,385,5261,57,3179,55,5261,532,3633, - 55,1641,53,5261,5261,1641,53,342,600,39, - 1668,385,57,5261,5261,160,2539,342,57,5261, - 3464,5261,532,192,3587,160,55,5261,4490,5261, - 57,1641,2953,192,532,342,57,5261,4490,5261, - 2539,342,5261,57,57,55,5261,2539,2539,160, - 1641,3386,5261,342,5261,5261,2663,192,5261,342, - 5261,160,4490,5261,5261,5261,342,342,5261,192, - 2630,5261,5261,5261,4490,5261,5261,5261,5261,5261, - 2663,5261,5261,5261,5261,5261,194,2663,2663,5261, - 5261,5261,5261,5261,504,5261,4018,5261,5261,5261, - 5261,502,529,5261,5261,5261,5261,5261,5261,5261, - 5261,5261,5261,5261,5261,5261,5261,5261,5261,5261, - 4111,5261,5261,5261,5261,5261,5261,5261,5261,5261, - 5261,5261,4118,5261,5261,5261,5261,5261,5261,5261, - 5261,5261,5261,5261,5261,5261,5261,5261,5261,5261, - 5261,5261,5261,5261,5261,5261,5261,5261,5261,4094, - 5261,0,43,5279,0,43,5278,0,915,33, - 0,435,924,0,449,929,0,42,5279,0, - 42,5278,0,2485,130,0,1,439,0,453, - 932,0,452,1439,0,915,45,0,2649,95, - 0,915,384,0,39,37,0,36,38,0, - 43,670,0,1,566,0,1,5536,0,1, - 5535,0,1,5534,0,1,5533,0,1,5532, - 0,1,5531,0,1,5530,0,1,5529,0, - 1,5528,0,1,5527,0,1,5526,0,43, - 1,5279,0,43,1,5278,0,787,1,0, - 5498,244,0,5497,244,0,5598,244,0,5597, - 244,0,5525,244,0,5524,244,0,5523,244, - 0,5522,244,0,5521,244,0,5520,244,0, - 5519,244,0,5518,244,0,5536,244,0,5535, - 244,0,5534,244,0,5533,244,0,5532,244, - 0,5531,244,0,5530,244,0,5529,244,0, - 5528,244,0,5527,244,0,5526,244,0,43, - 244,5279,0,43,244,5278,0,5303,244,0, - 54,5279,0,54,5278,0,5267,1,0,5266, - 1,0,240,1427,0,385,36,0,36,385, - 0,384,33,0,33,384,0,49,5301,0, - 49,41,0,5279,54,0,5278,54,0,2485, - 132,0,2485,131,0,5590,440,0,1217,440, - 0,5303,1,0,43,1,0,53,41,0, - 1,96,0,41,53,0,496,3017,0,5303, - 231,1,0,43,231,1,0,231,412,0, - 41,5279,0,41,5278,0,1,5279,2,0, - 1,5278,2,0,41,5279,2,0,41,5278, - 2,0,5279,40,0,5278,40,0,5301,51, - 0,51,41,0,5271,401,0,5270,401,0, - 1,4386,0,1,670,0,1,3228,0,231, - 411,0,3344,318,0,5590,99,0,1217,99, - 0,39,78,0,1,5590,0,1,1217,0, - 43,1,5279,2,0,43,1,5278,2,0, - 43,5279,2,0,43,5278,2,0,281,3154, - 0,496,4030,0,231,1,0,231,223,0, - 231,222,0,1,1049,0,1,2545,0,5269, - 1,0,231,1,3584,0,5271,231,0,5270, - 231,0,3699,231,0,8,10,0,189,3328, - 0 + 40,40,39,31,141,141,97,97,172,172, + 92,194,194,77,77,77,77,77,77,77, + 77,77,78,78,78,68,68,60,60,173, + 173,79,79,79,103,103,174,174,80,80, + 80,175,175,81,81,81,81,81,82,82, + 84,84,84,84,84,84,84,50,50,50, + 50,50,114,114,115,115,51,176,24,24, + 24,24,24,48,48,87,87,87,87,87, + 148,148,143,143,143,143,143,144,144,144, + 145,145,145,146,146,146,147,147,147,88, + 88,88,88,88,89,89,89,13,13,13, + 13,13,13,13,13,13,13,13,100,119, + 119,119,119,119,119,117,117,117,118,118, + 150,150,149,149,121,121,104,72,72,73, + 74,53,47,151,151,54,52,86,86,152, + 152,142,142,122,123,123,69,69,153,153, + 63,63,63,57,57,56,64,64,67,67, + 55,55,55,90,90,99,98,98,61,61, + 58,58,59,59,45,101,101,101,93,93, + 93,94,94,95,95,95,96,96,105,105, + 105,107,107,106,106,195,195,91,91,178, + 178,178,178,178,125,46,46,155,177,177, + 126,126,126,126,179,179,37,37,116,127, + 127,127,127,108,108,120,120,120,157,158, + 158,158,158,158,158,158,158,158,158,158, + 182,182,180,180,181,181,159,159,159,159, + 160,183,110,109,109,184,184,161,161,161, + 161,102,102,102,185,185,9,9,10,186, + 186,187,162,154,154,163,163,164,165,165, + 6,6,7,166,166,166,166,166,166,166, + 166,166,166,166,166,166,166,166,166,166, + 166,166,166,166,166,166,166,166,166,166, + 166,166,166,166,166,166,166,166,166,166, + 166,166,166,166,166,70,75,75,167,167, + 129,129,130,130,130,130,130,130,3,131, + 131,128,128,111,111,85,71,83,156,156, + 112,112,188,188,188,132,132,124,124,189, + 189,168,168,958,41,1741,1728,1468,3079,36, + 1050,33,37,945,32,34,1708,31,29,58, + 1098,112,83,84,114,1121,1181,2483,1169,1230, + 1195,1275,1242,1414,1897,1405,1444,935,1498,149, + 278,2005,66,164,150,401,3262,2070,1470,41, + 2908,38,4566,1086,36,1050,340,37,945,73, + 2339,41,942,38,237,1190,36,1050,33,37, + 945,32,34,935,31,29,58,1098,112,83, + 84,114,1121,1181,2597,1169,1230,1195,1275,2073, + 240,235,236,2136,41,1582,49,4637,1264,48, + 1050,354,3798,279,321,2562,323,414,1092,41, + 284,316,1959,4587,237,1020,3308,925,2088,247, + 250,253,256,3026,741,921,1798,41,942,38, + 1313,3093,36,1050,33,37,945,65,34,519, + 249,235,236,914,628,2652,852,583,3112,3158, + 3225,4401,1482,41,942,38,2645,1190,36,1050, + 33,37,945,32,34,935,31,29,58,1098, + 112,83,84,114,1121,1181,344,1169,1230,1195, + 1275,1242,1414,1262,1405,1444,2751,1498,149,2607, + 41,285,513,150,2610,41,282,2731,1092,41, + 284,1351,426,4599,1664,1319,4238,415,2909,3215, + 388,514,1482,41,942,38,2645,1190,36,1050, + 33,37,945,32,34,935,31,29,58,1098, + 112,83,84,114,1121,1181,344,1169,1230,1195, + 1275,1242,1414,794,1405,1444,2681,1498,149,1014, + 30,1293,513,150,1135,3493,334,2731,2147,2673, + 3518,69,1535,509,1020,41,2600,1968,41,942, + 38,514,3093,36,1050,33,37,945,64,34, + 2257,1701,2294,2265,452,1482,41,942,38,2645, + 1190,36,1050,33,37,945,32,34,935,31, + 29,58,1098,112,83,84,114,1121,1181,344, + 1169,1230,1195,1275,1242,1414,355,1405,1444,500, + 1498,149,1208,509,1954,513,150,1020,41,287, + 2731,1020,1624,2537,40,244,1020,41,2537,2574, + 2327,1797,2158,2265,514,1749,41,942,38,2645, + 1190,36,1050,33,37,945,32,34,935,31, + 29,58,1098,112,83,84,114,1121,1181,344, + 1169,1230,1195,1275,1242,1414,493,1405,1444,290, + 1498,149,500,237,1143,513,150,3282,1334,3337, + 2731,1536,41,942,38,2778,509,36,1050,46, + 37,945,68,2070,514,762,357,2391,2728,245, + 235,236,2455,2428,527,2464,2265,1547,41,942, + 38,2705,1190,36,1050,33,37,945,32,34, + 935,31,29,58,1098,112,83,84,114,1121, + 1181,848,1169,1230,1195,1275,1242,1414,2684,1405, + 1444,30,1498,149,3615,682,510,380,150,3788, + 2339,41,942,38,2171,1190,36,1050,33,37, + 945,32,34,935,31,29,58,1098,112,83, + 84,92,383,1616,41,942,38,761,1190,36, + 1050,33,37,945,32,34,935,31,29,58, + 1098,112,83,84,114,1121,1181,2158,1169,1230, + 1195,1275,1242,1414,3615,1405,1444,494,1498,149, + 2524,50,2530,380,150,3788,2027,41,942,38, + 921,4617,36,1050,33,37,945,32,34,1896, + 507,4035,2751,384,1813,41,942,38,381,1190, + 36,1050,33,37,945,32,34,935,31,29, + 58,1098,112,83,84,114,1121,1181,2523,1169, + 1230,1195,1275,1242,1414,3649,1405,1444,417,1498, + 149,52,2530,443,380,150,3788,1020,41,2974, + 2960,65,1868,41,942,38,3769,4617,36,1050, + 33,37,945,67,34,1924,41,942,38,385, + 1190,36,1050,33,37,945,32,34,935,31, + 29,58,1098,112,83,84,114,1121,1181,848, + 1169,1230,1195,1275,1242,1414,2705,1405,1444,318, + 1498,149,2468,41,393,164,150,1868,41,942, + 38,2453,4617,36,1050,33,37,945,66,34, + 1733,41,1615,387,315,2069,1924,41,942,38, + 378,1190,36,1050,33,37,945,32,34,935, + 31,29,58,1098,112,83,84,114,1121,1181, + 1024,1169,1230,1195,1275,1242,1414,57,1405,1444, + 2007,1498,149,1609,589,456,374,150,1924,41, + 942,38,144,1190,36,1050,33,37,945,32, + 34,935,31,29,58,1098,112,83,84,114, + 1121,1181,2581,1169,1230,1195,1275,1242,1414,794, + 1405,1444,849,1498,149,944,628,1858,374,150, + 3195,3687,1924,41,942,38,866,1190,36,1050, + 33,37,945,32,34,935,31,29,58,1098, + 112,83,84,114,1121,1181,66,1169,1230,1195, + 1275,1242,1414,66,1405,1444,848,1498,149,66, + 4115,373,374,150,1685,41,942,38,443,1190, + 36,1050,33,37,945,32,34,935,31,29, + 58,1098,112,83,84,114,1121,1181,2597,1169, + 1230,1195,1275,1242,1414,1696,1405,1444,30,1498, + 149,3007,742,372,148,150,521,1736,1924,41, + 942,38,2158,1190,36,1050,33,37,945,32, + 34,935,31,29,58,1098,112,83,84,114, + 1121,1181,455,1169,1230,1195,1275,1242,1414,94, + 1405,1444,108,1498,149,1560,30,370,165,150, + 1924,41,942,38,393,1190,36,1050,33,37, + 945,32,34,935,31,29,58,1098,112,83, + 84,114,1121,1181,66,1169,1230,1195,1275,1242, + 1414,4159,1405,1444,971,1498,149,1090,99,2158, + 161,150,1924,41,942,38,848,1190,36,1050, + 33,37,945,32,34,935,31,29,58,1098, + 112,83,84,114,1121,1181,3251,1169,1230,1195, + 1275,1242,1414,76,1405,1444,588,1498,149,1090, + 4268,2158,160,150,1924,41,942,38,1909,1190, + 36,1050,33,37,945,32,34,935,31,29, + 58,1098,112,83,84,114,1121,1181,912,1169, + 1230,1195,1275,1242,1414,61,1405,1444,3644,1498, + 149,1161,4057,2158,159,150,1924,41,942,38, + 848,1190,36,1050,33,37,945,32,34,935, + 31,29,58,1098,112,83,84,114,1121,1181, + 77,1169,1230,1195,1275,1242,1414,60,1405,1444, + 30,1498,149,1424,815,848,158,150,1924,41, + 942,38,2601,1190,36,1050,33,37,945,32, + 34,935,31,29,58,1098,112,83,84,114, + 1121,1181,78,1169,1230,1195,1275,1242,1414,1495, + 1405,1444,500,1498,149,2680,59,3626,157,150, + 1924,41,942,38,1178,1190,36,1050,33,37, + 945,32,34,935,31,29,58,1098,112,83, + 84,114,1121,1181,1294,1169,1230,1195,1275,1242, + 1414,328,1405,1444,30,1498,149,851,2202,2158, + 156,150,1924,41,942,38,938,1190,36,1050, + 33,37,945,32,34,935,31,29,58,1098, + 112,83,84,114,1121,1181,1142,1169,1230,1195, + 1275,1242,1414,351,1405,1444,30,1498,149,1240, + 4230,2158,155,150,1924,41,942,38,936,1190, + 36,1050,33,37,945,32,34,935,31,29, + 58,1098,112,83,84,114,1121,1181,2569,1169, + 1230,1195,1275,1242,1414,96,1405,1444,30,1498, + 149,2512,2839,2158,154,150,1924,41,942,38, + 2456,1190,36,1050,33,37,945,32,34,935, + 31,29,58,1098,112,83,84,114,1121,1181, + 2657,1169,1230,1195,1275,1242,1414,3097,1405,1444, + 1663,1498,149,152,2875,326,153,150,1924,41, + 942,38,413,1190,36,1050,33,37,945,32, + 34,935,31,29,58,1098,112,83,84,114, + 1121,1181,2159,1169,1230,1195,1275,1242,1414,2294, + 1405,1444,2347,1498,149,1020,2673,2158,152,150, + 1924,41,942,38,2454,1190,36,1050,33,37, + 945,32,34,935,31,29,58,1098,112,83, + 84,114,1121,1181,2463,1169,1230,1195,1275,1242, + 1414,3099,1405,1444,579,1498,149,2607,41,282, + 151,150,1880,41,942,38,848,1190,36,1050, + 33,37,945,32,34,935,31,29,58,1098, + 112,83,84,114,1121,1181,2581,1169,1230,1195, + 1275,1242,1414,666,1405,1444,1073,2448,170,1924, + 41,942,38,2158,1190,36,1050,33,37,945, + 32,34,935,31,29,58,1098,112,83,84, + 114,1121,1181,3502,1169,1230,1195,1275,1242,1414, + 2140,1405,1444,356,1498,149,291,75,329,146, + 150,527,103,2650,1020,41,1615,387,2160,2312, + 2250,41,942,38,1575,1190,36,1050,33,37, + 945,32,34,935,31,29,58,1098,112,83, + 84,114,1121,1181,2653,1169,1230,1195,1275,1242, + 1414,57,1405,1444,500,1498,149,1609,1220,3711, + 195,150,2339,41,942,38,921,1190,36,1050, + 33,37,945,32,34,935,31,29,58,1098, + 112,83,84,114,1121,1181,326,1169,1230,1195, + 1275,1242,1414,95,1405,1444,108,2448,170,2339, + 41,942,38,1364,1190,36,1050,33,37,945, + 32,34,935,31,29,58,1098,112,83,84, + 114,1121,1181,1530,1169,1230,1195,1275,1242,1414, + 518,1405,1444,231,2448,170,1536,41,942,38, + 1990,399,36,1050,2560,37,945,2158,1308,219, + 2339,41,942,38,295,1190,36,1050,33,37, + 945,32,34,935,31,29,58,1098,112,83, + 84,114,1121,1181,557,1169,1230,1195,1275,1242, + 1414,74,1405,1444,2158,2448,170,2339,41,942, + 38,2264,1190,36,1050,33,37,945,32,34, + 935,31,29,58,1098,112,83,84,114,1121, + 1181,1332,1169,1230,1195,1275,1242,1414,73,1405, + 1444,1999,2448,170,1536,41,942,38,1020,3458, + 36,1050,341,37,945,2158,2089,2109,2339,41, + 942,38,419,1190,36,1050,33,37,945,32, + 34,935,31,29,58,1098,112,83,84,114, + 1121,1181,1978,1169,1230,1195,1275,1242,1414,72, + 1405,1444,2158,2448,170,2383,41,942,38,418, + 1190,36,1050,33,37,945,32,34,935,31, + 29,58,1098,112,83,84,114,1121,1181,912, + 1169,1230,1195,1275,1242,1414,3165,1405,1444,2167, + 2448,170,1536,41,942,38,2158,1349,36,1050, + 2623,37,945,3192,848,1511,2339,41,942,38, + 421,1190,36,1050,33,37,945,32,34,935, + 31,29,58,1098,112,83,84,114,1121,1181, + 63,1169,1230,1195,1275,1242,1414,500,1405,2151, + 330,336,4397,2339,41,942,38,3384,1190,36, + 1050,33,37,945,32,34,935,31,29,58, + 1098,112,83,84,114,1121,1181,1702,1169,1230, + 1195,1275,1242,1414,73,2080,2339,41,942,38, + 104,1190,36,1050,33,37,945,32,34,935, + 31,29,58,1098,112,83,84,114,1121,1181, + 1669,1169,1230,1195,1275,1242,2063,2339,41,942, + 38,2757,1190,36,1050,33,37,945,32,34, + 935,31,29,58,1098,112,83,84,114,1121, + 1181,2652,1169,1230,1195,1906,2339,41,942,38, + 2076,1190,36,1050,33,37,945,32,34,935, + 31,29,58,1098,112,83,84,114,1121,1181, + 160,1169,1230,1953,2339,41,942,38,1971,1190, + 36,1050,33,37,945,32,34,935,31,29, + 58,1098,112,83,84,114,1121,1181,1893,1169, + 1230,1984,2339,41,942,38,288,1190,36,1050, + 33,37,945,32,34,935,31,29,58,1098, + 112,83,84,114,1121,1181,2158,1169,1812,2339, + 41,942,38,519,1190,36,1050,33,37,945, + 32,34,935,31,29,58,1098,112,83,84, + 114,1121,1181,2652,1169,1822,2339,41,942,38, + 62,1190,36,1050,33,37,945,32,34,935, + 31,29,58,1098,112,83,84,114,1121,1181, + 1937,1169,1834,2339,41,942,38,2707,1190,36, + 1050,33,37,945,32,34,935,31,29,58, + 1098,112,83,84,114,1121,1181,262,1169,1854, + 1984,533,1182,2042,41,942,38,4566,289,36, + 1050,340,37,945,2246,2005,1247,41,1615,387, + 3262,234,2158,2146,1092,41,449,1135,162,3762, + 2158,1020,41,1615,387,186,3133,2704,403,2597, + 2580,2557,30,209,220,4547,1135,208,217,218, + 219,221,4637,278,166,1348,324,175,1,321, + 2562,323,533,1984,107,174,316,1959,278,327, + 239,1729,2582,162,189,173,176,177,178,179, + 180,1449,234,2161,567,2427,41,1615,387,162, + 2953,2040,2745,2158,1984,2645,186,3133,242,1015, + 2597,302,188,4507,209,220,4547,421,208,217, + 218,219,221,1741,1324,2773,2643,914,175,4238, + 1491,30,278,187,1235,788,174,3643,2885,79, + 30,280,226,352,2651,190,173,176,177,178, + 179,180,2339,41,942,38,237,1190,36,1050, + 33,37,945,32,34,935,31,29,58,1098, + 112,83,84,114,1121,1181,353,1864,1981,334, + 2618,1801,240,235,236,4125,425,1020,41,2537, + 281,353,361,2116,2158,279,2294,442,3078,3131, + 2324,2356,345,779,564,350,2212,2630,2631,2857, + 1659,247,250,253,256,3026,500,347,779,564, + 350,4579,1313,2101,41,942,38,4477,2897,36, + 1050,340,37,945,1020,41,1615,387,852,583, + 3112,3158,3225,4401,2339,41,942,38,353,1190, + 36,1050,33,37,945,32,34,935,31,29, + 58,1098,112,83,84,114,1121,1181,2773,1903, + 2158,427,4637,73,345,779,564,350,2263,321, + 2562,323,343,2111,30,2797,316,1959,533,480, + 353,2603,2750,1737,41,942,38,4560,943,36, + 1050,340,37,945,447,30,1105,2457,344,577, + 2645,4625,1020,41,296,162,345,779,564,350, + 325,439,587,1372,2743,480,2645,352,527,2731, + 234,2722,1595,41,296,1163,1608,41,449,2164, + 4238,3762,4637,1037,1416,480,2773,1984,1135,321, + 2562,323,537,404,4536,2160,316,1959,306,2756, + 353,1778,2582,1310,41,942,38,4566,4238,36, + 1050,340,37,945,3107,162,405,406,407,297, + 298,2667,480,531,2739,306,345,779,564,350, + 333,349,30,1601,1659,533,1135,2645,389,423, + 434,367,2430,1408,41,1615,387,30,2644,2796, + 30,2645,4637,362,2895,234,3307,2773,333,321, + 2562,323,162,3168,2731,731,316,1959,2932,186, + 3133,344,1017,2597,390,423,1434,209,220,4547, + 57,208,217,218,219,221,1609,2420,1595,2959, + 296,175,2731,3719,392,423,436,30,2156,174, + 533,3233,533,408,411,2591,1657,518,3387,173, + 176,177,178,179,180,2652,2130,41,2360,1780, + 234,3160,3852,1994,501,309,313,162,2396,162, + 3107,391,423,2652,186,3133,186,3133,2597,446, + 3078,3131,209,220,4547,2654,208,217,218,219, + 221,2371,567,57,30,3154,175,523,3680,1609, + 1117,533,498,500,174,2652,201,2800,2805,2465, + 41,1615,387,182,173,176,177,178,179,180, + 300,234,2726,1591,41,1615,387,30,162,30, + 1601,3723,1434,933,2645,186,3133,30,299,2597, + 3038,3631,1148,209,220,4547,57,208,217,218, + 219,221,1609,994,2773,30,525,175,610,1135, + 57,2801,533,1984,1738,174,1609,1940,2718,30, + 307,2591,951,4145,193,173,176,177,178,179, + 180,2831,234,30,2817,2576,162,2645,1292,162, + 1876,41,1615,387,1372,30,186,3133,2158,4134, + 2597,185,66,237,209,220,4547,344,208,217, + 218,219,221,4306,202,2468,41,393,175,697, + 2146,501,1978,533,1135,2818,174,57,2731,252, + 235,236,379,1609,55,3525,173,176,177,178, + 179,180,1666,234,2597,1408,41,1615,387,237, + 162,166,719,1984,2823,2006,2827,186,3133,499, + 500,2597,520,2147,2673,209,220,4547,1984,208, + 217,218,219,221,2146,255,235,236,1135,175, + 784,30,57,3192,533,3686,1670,174,1609,55, + 2645,204,2438,41,1615,387,198,173,176,177, + 178,179,180,2832,234,166,203,857,88,2833, + 2773,162,1591,41,1615,387,237,1533,186,3133, + 335,336,2597,3224,2839,2843,209,220,4547,57, + 208,217,218,219,221,1609,55,1984,1984,2158, + 175,871,258,235,236,533,30,2156,174,57, + 2943,1135,1984,2844,2784,1609,55,192,173,176, + 177,178,179,180,1984,234,2158,2438,41,1615, + 387,2256,162,3067,2252,305,207,501,162,186, + 3133,2690,2871,2597,290,206,3322,209,220,4547, + 205,208,217,218,219,221,2432,41,2537,281, + 3128,175,301,175,57,1020,2818,2537,81,174, + 1609,55,2503,2728,2835,498,500,1932,200,173, + 176,177,178,179,180,2339,41,942,38,3636, + 1190,36,1050,33,37,945,32,34,935,31, + 29,58,1098,112,83,84,114,1121,1750,2339, + 41,942,38,3351,1190,36,1050,33,37,945, + 32,34,935,31,29,58,1098,112,83,84, + 114,1121,1770,1460,41,2908,38,4566,4238,36, + 1050,340,37,945,2432,41,2537,2828,2848,1676, + 41,942,38,4477,1614,36,1050,340,37,945, + 2339,1624,942,1644,2872,1190,36,1050,33,37, + 945,32,34,935,31,29,58,1098,112,83, + 84,91,4637,1020,41,2537,286,2727,333,321, + 2562,323,1020,41,2537,283,316,1959,4637,30, + 30,2850,925,1166,812,321,2562,323,1020,41, + 2537,2881,316,1959,2862,2715,353,5158,522,2339, + 41,942,38,3719,1190,36,1050,33,37,945, + 32,34,935,31,29,58,1098,112,83,84, + 114,1783,345,779,564,350,2339,41,942,38, + 523,1190,36,1050,33,37,945,32,34,935, + 31,29,58,1098,112,83,84,114,1785,2339, + 41,942,38,5158,1190,36,1050,33,37,945, + 32,34,935,31,29,58,1098,112,83,84, + 114,1792,414,2909,1060,41,942,38,5158,4238, + 36,1050,340,37,945,1020,41,1615,387,30, + 5158,1974,2158,1819,2043,2645,2438,41,1615,387, + 2605,2587,5158,5158,2645,2645,1020,41,1615,387, + 1020,41,296,30,30,344,30,4435,3743,66, + 3256,5158,57,4637,344,234,3189,5158,54,334, + 321,2562,323,57,526,5158,2684,317,1959,1609, + 55,353,30,430,2158,2731,1958,211,220,4547, + 1978,210,217,218,219,221,2693,1163,3693,529, + 2645,2597,4238,1020,41,1615,387,347,779,564, + 350,212,214,216,297,298,2667,5158,1306,377, + 234,2438,41,1615,387,222,213,215,5158,1209, + 41,942,38,1978,4238,36,1050,340,37,945, + 429,30,211,220,4547,2746,210,217,218,219, + 221,3192,4173,2762,3334,4213,3025,2645,57,1020, + 41,1615,387,5158,1609,55,212,214,216,297, + 298,2667,2438,41,1615,387,5158,234,4637,2648, + 222,213,215,3749,334,321,2562,323,332,336, + 5158,30,319,1959,3192,1135,428,452,30,211, + 220,4547,947,210,217,218,219,221,30,57, + 4213,3043,2905,5158,375,1609,55,438,5158,5158, + 5158,5158,162,212,214,216,297,298,2667,3092, + 1540,3510,336,5158,4119,100,5158,222,213,215, + 2339,41,942,38,382,1190,36,1050,33,37, + 945,32,34,935,31,29,58,1098,112,83, + 84,90,30,5158,5158,5158,4079,4213,3075,2339, + 41,942,38,5158,1190,36,1050,33,37,945, + 32,34,935,31,29,58,1098,112,83,84, + 89,2339,41,942,38,5158,1190,36,1050,33, + 37,945,32,34,935,31,29,58,1098,112, + 83,84,88,2339,41,942,38,5158,1190,36, + 1050,33,37,945,32,34,935,31,29,58, + 1098,112,83,84,87,2339,41,942,38,5158, + 1190,36,1050,33,37,945,32,34,935,31, + 29,58,1098,112,83,84,86,2339,41,942, + 38,5158,1190,36,1050,33,37,945,32,34, + 935,31,29,58,1098,112,83,84,85,2202, + 41,942,38,5158,1190,36,1050,33,37,945, + 32,34,935,31,29,58,1098,112,83,84, + 110,2339,41,942,38,5158,1190,36,1050,33, + 37,945,32,34,935,31,29,58,1098,112, + 83,84,116,2339,41,942,38,5158,1190,36, + 1050,33,37,945,32,34,935,31,29,58, + 1098,112,83,84,115,2339,41,942,38,5158, + 1190,36,1050,33,37,945,32,34,935,31, + 29,58,1098,112,83,84,113,2339,41,942, + 38,5158,1190,36,1050,33,37,945,32,34, + 935,31,29,58,1098,112,83,84,111,1526, + 41,942,38,4566,5158,36,1050,340,37,945, + 2295,41,942,38,1984,1190,36,1050,33,37, + 945,32,34,935,31,29,58,1098,93,83, + 84,5158,2703,30,2781,66,3459,1135,2645,1020, + 41,1615,387,5158,2158,1163,5158,5158,4637,674, + 4238,5158,4177,2645,1978,321,2562,323,234,5158, + 5158,1984,316,1959,162,2040,30,30,1017,2645, + 2645,2645,2089,344,5158,1984,448,2597,3172,1180, + 211,220,4547,2645,210,217,218,219,221,2773, + 344,344,2632,1987,4112,377,2645,2730,4238,227, + 333,1135,5158,344,212,214,216,297,298,2667, + 5158,2731,2731,199,5158,3192,234,5158,516,213, + 215,309,313,30,1277,1686,1699,2645,162,5158, + 5158,5158,5158,2664,5158,2674,168,2645,211,220, + 4547,4141,210,217,218,219,221,344,4173,5158, + 1030,3154,3619,336,2645,4625,361,234,1020,41, + 1615,387,212,214,216,297,298,2667,2731,30, + 2653,2630,2631,2645,234,2158,515,213,215,211, + 220,4547,1827,210,217,218,219,221,2807,5158, + 3672,5158,2645,344,5158,57,537,404,4536,5158, + 5158,1609,2615,212,214,216,297,298,2667,4155, + 2158,5158,234,5158,2731,5158,5158,223,213,215, + 405,406,407,297,298,2667,2675,5158,505,2852, + 533,102,5158,2645,211,220,4547,4124,210,217, + 218,219,221,5158,3311,5158,5158,2146,5158,2855, + 344,1135,2644,234,5158,5158,5158,162,212,214, + 216,297,298,2667,5158,194,30,5158,5158,4290, + 1135,4466,308,213,215,211,220,4547,166,210, + 217,218,219,221,2042,41,942,38,4566,5158, + 36,1050,340,37,945,5158,5158,162,5158,212, + 214,216,297,298,2667,1913,30,408,410,5158, + 1135,5158,30,495,213,215,533,2490,41,1615, + 387,2485,41,1615,387,5158,2953,5158,5158,196, + 675,5158,2856,4637,243,30,344,162,5158,1135, + 321,2562,323,162,2476,2087,5158,316,1959,5158, + 5158,194,30,1017,57,1978,1135,4466,278,5158, + 1609,55,1209,41,942,38,162,4238,36,1050, + 340,37,945,5158,2124,5158,5158,30,5158,2862, + 5158,2645,237,162,5158,5158,2042,41,942,38, + 4566,2175,36,1050,340,37,945,1163,5158,2146, + 4094,344,4238,1135,5158,5158,310,313,241,235, + 236,4637,5158,5158,5158,3309,3192,334,321,2562, + 323,279,2731,5158,5158,317,1959,1598,5158,5158, + 166,2645,4238,5158,5158,4637,503,248,251,254, + 257,3026,321,2562,323,2468,41,393,1313,316, + 1959,2773,333,3731,336,3511,1368,41,942,38, + 3443,5158,36,1050,340,37,945,2122,41,942, + 38,2913,5158,36,1050,340,37,945,5158,5158, + 1598,5158,333,5158,2645,4238,1163,3604,5158,5158, + 5158,4238,5158,5158,400,5158,2590,5158,5158,2597, + 41,1615,387,5158,2773,4637,5158,1020,41,1615, + 387,5158,318,2841,323,5158,4637,2674,361,1020, + 41,1615,387,318,2841,323,5158,5158,5158,5158, + 5158,5158,1743,2630,2631,333,57,1020,41,1615, + 387,333,1609,55,57,1020,41,1615,387,5158, + 1609,1867,5158,3524,5158,5158,57,1020,41,1615, + 387,3640,1609,724,5158,2146,5158,5158,30,1135, + 3604,361,533,30,57,5158,4442,533,5158,30, + 1609,589,57,2645,5158,1743,2630,2631,1609,2334, + 5158,30,344,5158,57,1135,166,344,30,162, + 1609,2823,1135,344,162,5158,5158,194,5158,3138, + 5158,5158,194,4466,5158,5158,5158,5158,4466,5158, + 3138,5158,162,5158,2731,5158,5158,5158,5158,162, + 1876,5158,5158,5158,5158,5158,5158,4255,530,5158, + 5158,5158,5158,5158,5158,5158,5158,5158,5158,5158, + 5158,5158,5158,5158,5158,5158,5158,5158,5158,5158, + 5158,5158,2820,5158,5158,5158,5158,5158,5158,5158, + 5158,3336,5158,5158,5158,5158,3622,5158,0,45, + 5178,0,45,5177,0,981,35,0,436,1358, + 0,450,1570,0,44,5178,0,44,5177,0, + 2506,132,0,1,440,0,454,1159,0,453, + 1316,0,981,47,0,780,97,0,981,386, + 0,41,39,0,38,40,0,45,861,0, + 1,849,0,1,5435,0,1,5434,0,1, + 5433,0,1,5432,0,1,5431,0,1,5430, + 0,1,5429,0,1,5428,0,1,5427,0, + 1,5426,0,1,5425,0,45,1,5178,0, + 45,1,5177,0,623,1,0,5397,246,0, + 5396,246,0,5497,246,0,5496,246,0,5424, + 246,0,5423,246,0,5422,246,0,5421,246, + 0,5420,246,0,5419,246,0,5418,246,0, + 5417,246,0,5435,246,0,5434,246,0,5433, + 246,0,5432,246,0,5431,246,0,5430,246, + 0,5429,246,0,5428,246,0,5427,246,0, + 5426,246,0,5425,246,0,45,246,5178,0, + 45,246,5177,0,5202,246,0,56,5178,0, + 56,5177,0,5164,1,0,5163,1,0,242, + 2583,0,387,38,0,38,387,0,386,35, + 0,35,386,0,51,5200,0,51,43,0, + 5178,56,0,5177,56,0,2506,134,0,2506, + 133,0,5489,441,0,1654,441,0,5202,1, + 0,45,1,0,55,43,0,1,98,0, + 43,55,0,497,2652,0,5202,233,1,0, + 45,233,1,0,233,413,0,43,5178,0, + 43,5177,0,1,5178,2,0,1,5177,2, + 0,43,5178,2,0,43,5177,2,0,5178, + 42,0,5177,42,0,5200,53,0,53,43, + 0,5168,402,0,5167,402,0,1,2563,0, + 1,861,0,1,3621,0,233,412,0,3139, + 320,0,5489,101,0,1654,101,0,41,80, + 0,1,5489,0,1,1654,0,45,1,5178, + 2,0,45,1,5177,2,0,45,5178,2, + 0,45,5177,2,0,283,3244,0,497,4172, + 0,233,1,0,233,225,0,233,224,0, + 1,1172,0,1,3185,0,5170,1,0,5166, + 1,0,233,1,3273,0,5167,233,0,3278, + 233,0,3373,233,0,10,12,0,8,10, + 12,0,8,12,0,191,3250,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1071,304 +1049,304 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final static byte termCheck[] = {0, 0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,0,29, - 30,3,32,33,34,35,36,37,38,39, - 40,41,42,43,44,45,46,47,48,49, + 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,0,57,58,59, - 60,61,0,63,64,65,0,0,68,69, - 70,4,72,6,74,8,76,77,78,79, - 80,81,82,83,84,85,86,87,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,0,29,30,0, - 32,33,34,35,36,37,38,39,40,41, - 42,43,44,45,46,47,48,49,50,51, - 52,53,54,55,28,57,58,59,60,61, - 0,63,64,65,88,89,68,69,70,9, - 72,99,74,13,76,77,78,79,80,81, - 82,83,84,85,86,87,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,0,29,30,3,32,33, - 34,35,36,37,38,39,40,41,42,43, - 44,45,46,47,48,49,50,51,52,53, - 54,55,0,57,58,59,60,61,0,63, - 64,65,0,0,68,69,70,0,1,2, - 74,4,76,77,78,79,80,81,82,83, - 84,85,86,87,0,1,2,3,4,5, + 60,61,62,63,0,0,66,0,68,69, + 70,71,0,8,74,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,44,30,31,32, + 33,34,35,36,37,38,39,40,41,42, + 43,66,45,46,47,48,49,50,51,52, + 53,54,55,0,57,58,59,60,61,62, + 63,0,9,66,90,68,69,70,71,0, + 96,74,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,0,29,30,0,32,33,34,35, - 36,37,38,39,40,41,42,43,44,45, + 26,27,28,44,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, - 28,57,58,59,60,61,31,63,64,65, - 88,89,68,69,70,103,104,105,74,101, + 0,57,58,59,60,61,62,63,0,9, + 66,90,68,69,70,71,0,96,74,75, 76,77,78,79,80,81,82,83,84,85, - 86,87,0,1,2,3,4,5,6,7, + 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, + 72,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,0,57,58, + 59,60,61,62,63,0,0,66,11,12, + 69,70,71,95,29,74,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,72,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,0,57,58,59,60,61, + 62,63,0,0,66,90,3,69,70,71, + 0,96,74,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,44,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,99,57,58,59,60,61,62,63,0, + 0,66,90,4,69,70,71,0,96,74, + 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, - 0,29,30,0,32,33,34,35,36,37, - 38,39,40,41,42,43,44,45,46,47, - 48,49,50,51,52,53,54,55,28,57, - 58,59,60,61,0,63,64,65,0,0, - 68,69,70,0,1,2,74,4,76,77, - 78,79,80,81,82,83,84,85,86,87, + 28,72,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,0,57, + 58,59,60,61,62,63,0,0,66,11, + 12,69,70,71,0,8,74,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,72,30, + 31,32,33,34,35,36,37,38,39,40, + 41,42,43,66,45,46,47,48,49,50, + 51,52,53,54,55,0,57,58,59,60, + 61,62,63,0,0,66,11,12,69,70, + 71,95,0,74,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,0,57,58,59,60,61,62,63, + 0,0,66,3,3,69,70,71,95,29, + 74,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,67,45,46, + 47,48,49,50,51,52,53,54,55,0, + 57,58,59,60,61,62,63,0,0,66, + 0,3,69,70,71,8,0,74,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,0,29, - 30,0,32,33,34,35,36,37,38,39, - 40,41,42,43,44,45,46,47,48,49, - 50,51,52,53,54,55,28,57,58,59, - 60,61,31,63,64,65,88,89,68,69, - 70,97,98,0,74,0,76,77,78,79, - 80,81,82,83,84,85,86,87,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,0,29,30,0, - 32,33,34,35,36,37,38,39,40,41, - 42,43,44,45,46,47,48,49,50,51, - 52,53,54,55,28,57,58,59,60,61, - 0,63,64,65,0,0,68,69,70,0, - 1,2,74,8,76,77,78,79,80,81, - 82,83,84,85,86,87,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,0,29,30,0,32,33, - 34,35,36,37,38,39,40,41,42,43, - 44,45,46,47,48,49,50,51,52,53, - 54,55,28,57,58,59,60,61,31,63, - 64,65,88,89,68,69,70,0,1,2, - 74,101,76,77,78,79,80,81,82,83, - 84,85,86,87,0,1,2,3,4,5, - 6,7,8,9,10,11,12,13,14,15, + 20,21,22,23,24,25,26,27,28,0, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,43,64,45,46,47,48,49, + 50,51,52,53,54,55,0,57,58,59, + 60,61,62,63,0,0,66,0,3,69, + 70,71,0,0,74,75,76,77,78,79, + 80,81,82,83,84,85,86,0,1,2, + 3,4,5,6,7,118,9,10,11,12, + 0,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,64,45,46,47,48,49,50,51,52, + 53,54,55,0,0,58,3,3,61,0, + 1,2,8,0,1,2,69,70,71,0, + 1,2,3,4,5,6,7,8,9,10, + 97,98,13,14,15,16,17,18,19,20, + 21,22,23,24,25,121,114,115,116,0, + 1,2,3,4,5,6,7,44,9,56, + 56,101,0,44,45,46,47,48,49,50, + 51,52,53,54,55,0,57,73,59,0, + 61,0,1,2,5,4,0,68,69,70, + 71,72,17,74,0,1,2,3,4,5, + 6,7,8,9,10,56,87,13,14,15, 16,17,18,19,20,21,22,23,24,25, - 26,27,0,29,30,0,32,33,34,35, - 36,37,38,39,40,41,42,43,44,45, + 45,46,47,48,49,50,51,52,53,54, + 55,0,0,114,115,116,4,0,44,45, 46,47,48,49,50,51,52,53,54,55, - 28,57,58,59,60,61,0,63,64,65, - 0,0,68,69,70,0,1,2,74,8, - 76,77,78,79,80,81,82,83,84,85, - 86,87,0,1,2,3,4,5,6,7, - 8,9,10,11,12,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 0,29,30,3,32,33,34,35,36,37, - 38,39,40,41,42,43,44,45,46,47, - 48,49,50,51,52,53,54,55,0,57, - 58,59,60,61,6,63,64,65,88,89, - 68,69,70,97,98,0,74,0,76,77, - 78,79,80,81,82,83,84,85,86,87, - 0,1,2,3,4,5,6,7,8,0, - 10,11,12,4,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,0,29, - 30,0,32,33,34,35,36,37,38,39, - 40,41,42,43,44,45,46,47,48,49, - 50,51,52,53,54,55,0,0,58,91, - 92,61,0,1,2,9,0,5,68,69, - 70,0,1,2,3,4,5,6,7,8, - 9,10,0,0,13,14,15,16,17,18, - 19,20,21,22,23,24,25,0,0,1, - 2,4,31,0,1,2,3,4,5,6, - 7,8,41,0,1,2,60,46,47,48, - 49,50,51,52,53,54,55,99,57,31, - 59,100,61,0,1,2,0,1,2,68, - 69,70,71,72,31,74,75,0,1,2, - 3,4,5,6,7,8,9,10,0,56, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,0,103,104,105,4,31,0, - 1,2,3,4,5,6,7,8,41,0, - 1,2,0,46,47,48,49,50,51,52, - 53,54,55,121,57,122,59,0,61,0, - 0,4,3,0,41,68,69,70,71,72, - 31,74,75,0,1,2,3,4,5,6, - 7,8,9,10,0,28,13,14,15,16, - 17,18,19,20,21,22,23,24,25,0, - 103,104,105,0,31,0,1,2,3,4, - 5,6,7,8,41,56,0,1,2,46, - 47,48,49,50,51,52,53,54,55,0, - 57,28,59,0,61,0,1,2,9,6, - 77,68,69,70,71,72,0,74,75,3, - 90,67,6,0,8,9,96,11,12,13, - 0,56,0,1,2,3,4,5,6,7, - 8,66,26,27,28,0,103,104,105,0, - 1,2,3,4,5,6,7,8,28,14, - 15,16,17,18,19,20,21,22,23,24, - 25,72,56,0,0,1,2,3,62,5, - 0,7,66,67,0,62,41,71,72,73, - 0,46,47,48,49,50,51,52,53,54, - 55,11,12,71,88,89,90,91,92,93, - 94,95,96,97,98,99,100,101,102,0, - 1,2,106,107,108,109,110,111,112,113, - 114,115,116,117,118,0,120,121,3,66, - 56,6,0,8,9,71,11,12,13,0, - 1,2,3,0,5,0,7,0,9,0, - 0,26,27,28,0,1,2,3,9,5, - 90,7,13,9,0,102,96,13,0,60, - 107,108,109,110,111,112,113,114,115,116, - 117,56,0,1,2,0,4,62,6,0, - 8,66,67,61,9,56,71,72,73,0, - 1,2,0,1,2,62,4,62,6,62, - 8,9,73,88,89,90,91,92,93,94, - 95,96,97,98,99,100,101,102,60,0, - 31,106,107,108,109,110,111,112,113,114, - 115,116,117,118,0,120,121,0,1,2, - 3,4,5,6,7,8,67,10,11,12, - 0,14,15,16,100,18,19,20,21,22, - 23,24,25,26,27,73,29,30,0,32, - 33,34,35,36,37,38,39,40,28,42, - 43,44,45,0,1,2,3,95,5,0, - 7,0,9,118,0,58,13,0,1,2, - 0,64,65,0,1,2,3,0,5,9, - 7,74,0,1,2,3,4,5,6,7, - 8,71,10,11,12,0,14,15,16,4, - 18,19,20,21,22,23,24,25,26,27, - 0,29,30,3,32,33,34,35,36,37, - 38,39,40,62,42,43,44,45,67,56, - 66,64,65,0,1,2,3,4,0,6, - 58,8,0,73,62,3,64,65,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,102,14,15,16,95,18,19,20,21, - 22,23,24,25,26,27,117,29,30,0, - 32,33,34,35,36,37,38,39,40,56, - 42,43,44,45,0,1,2,0,4,5, - 3,7,0,0,1,2,58,4,60,6, - 0,8,0,1,2,3,0,5,0,7, - 72,0,1,2,3,4,5,6,7,8, + 0,57,0,59,17,61,4,0,6,97, + 98,9,68,69,70,71,72,0,74,0, + 3,0,3,6,3,8,9,45,11,12, + 13,87,45,46,47,48,49,50,51,52, + 53,54,55,26,27,64,29,0,0,1, + 2,3,4,5,6,7,56,9,114,115, + 116,14,15,16,17,18,19,20,21,22, + 23,24,25,56,0,1,2,56,4,0, + 6,64,65,9,67,68,0,1,2,72, + 73,5,45,46,47,48,49,50,51,52, + 53,54,55,0,0,88,89,90,91,92, + 93,94,95,96,97,98,99,100,101,102, + 103,104,105,106,107,108,109,110,111,112, + 113,0,0,0,117,118,3,120,121,6, + 0,8,9,64,11,12,13,0,17,0, + 1,2,3,4,5,6,7,10,9,26, + 27,29,29,0,1,2,3,4,65,6, + 0,0,9,0,1,2,45,46,47,48, + 49,50,51,52,53,54,55,0,0,56, + 0,1,2,6,4,0,6,64,65,9, + 67,68,0,0,57,72,73,0,1,2, + 3,8,5,0,7,8,13,44,0,56, + 13,88,89,90,91,92,93,94,95,96, + 97,98,99,100,101,102,103,104,105,106, + 107,108,109,110,111,112,113,0,1,2, + 117,118,64,120,121,0,1,2,3,4, + 5,6,7,0,9,10,11,12,65,14, + 15,16,101,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, + 1,2,3,4,5,6,7,0,9,0, + 1,2,3,58,5,8,7,62,63,56, + 13,0,1,2,3,4,5,6,7,74, 9,10,11,12,0,14,15,16,4,18, - 19,20,21,22,23,24,25,26,27,0, - 29,30,3,32,33,34,35,36,37,38, - 39,40,28,42,43,44,45,0,1,2, - 0,4,56,6,0,8,66,3,0,58, - 62,60,0,9,0,1,2,3,4,5, - 6,7,8,72,10,11,12,0,14,15, - 16,0,18,19,20,21,22,23,24,25, - 26,27,0,29,30,66,32,33,34,35, - 36,37,38,39,40,0,42,43,44,45, - 56,0,1,2,0,4,62,6,56,8, - 62,67,58,9,0,1,2,73,64,65, - 0,1,2,3,4,5,6,7,8,62, - 10,11,12,0,14,15,16,0,18,19, - 20,21,22,23,24,25,26,27,0,29, - 30,3,32,33,34,35,36,37,38,39, - 40,90,42,43,44,45,71,96,0,1, - 2,67,4,5,0,7,0,73,58,46, - 47,5,0,0,64,65,0,1,2,3, - 4,5,6,7,8,9,10,11,12,31, - 14,15,16,66,18,19,20,21,22,23, - 24,25,26,27,0,29,30,3,32,33, - 34,35,36,37,38,39,40,0,42,43, - 44,45,0,1,2,3,4,5,6,7, - 8,0,10,11,12,4,14,15,16,67, - 18,19,20,21,22,23,24,25,26,27, - 0,29,30,3,32,33,34,35,36,37, - 38,39,40,90,42,43,44,45,0,96, - 0,0,1,2,0,4,5,9,7,9, - 58,13,60,9,0,0,1,2,3,4, - 5,6,7,8,118,10,11,12,0,14, - 15,16,31,18,19,20,21,22,23,24, - 25,26,27,0,29,30,3,32,33,34, - 35,36,37,38,39,40,28,42,43,44, - 45,0,0,0,3,67,3,67,5,6, - 56,8,72,58,11,12,0,73,0,0, - 4,3,0,1,2,0,1,2,0,26, - 27,28,7,30,0,1,2,3,4,5, - 6,7,8,9,26,27,0,13,0,1, - 2,17,4,0,1,2,3,0,5,56, - 7,0,28,0,3,62,9,64,65,66, - 67,0,1,2,56,41,5,0,7,31, - 46,47,48,49,50,51,52,53,54,55, - 56,88,89,90,91,92,93,94,0,0, - 97,98,99,100,101,102,29,73,9,106, - 107,108,109,110,111,112,113,114,115,116, - 0,0,0,3,106,5,6,29,8,0, - 73,11,12,11,12,0,1,2,120,4, - 5,95,7,0,1,2,26,27,28,28, - 30,0,1,2,3,4,5,6,7,8, - 9,0,0,0,13,0,1,2,17,4, - 0,72,10,10,31,0,56,0,0,1, - 2,0,62,0,64,65,66,67,11,12, - 9,62,41,31,0,0,67,46,47,48, - 49,50,51,52,53,54,55,56,88,89, - 90,91,92,93,94,0,0,97,98,99, - 100,101,102,61,73,60,106,107,108,109, - 110,111,112,113,114,115,116,0,1,2, - 3,4,5,6,7,8,71,10,11,12, - 67,14,15,16,73,18,19,20,21,22, - 23,24,25,26,27,71,29,30,0,32, - 33,34,35,36,37,38,39,40,10,42, - 43,44,45,67,0,1,2,3,4,5, - 6,7,8,56,10,11,12,0,14,15, - 16,0,18,19,20,21,22,23,24,25, - 26,27,0,29,30,0,32,33,34,35, - 36,37,38,39,40,57,42,43,44,45, - 0,1,2,0,1,2,3,4,5,6, - 7,8,58,10,11,12,0,14,15,16, - 4,18,19,20,21,22,23,24,25,26, - 27,31,29,30,0,32,33,34,35,36, - 37,38,39,40,28,42,43,44,45,0, - 1,2,3,4,5,6,7,8,76,10, - 11,12,28,14,15,16,95,18,19,20, - 21,22,23,24,25,26,27,0,29,30, - 0,32,33,34,35,36,37,38,39,40, - 0,42,43,44,45,0,1,2,3,4, - 5,6,7,8,0,10,11,12,4,14, + 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,1,2,3,0, + 5,72,7,8,0,0,1,2,13,58, + 5,72,7,62,63,64,0,1,2,3, + 4,5,6,7,8,9,10,11,12,0, + 14,15,16,29,18,19,20,21,22,23, + 24,25,26,27,28,65,30,31,32,33, + 34,35,36,37,38,39,40,41,42,43, + 0,1,2,0,0,1,2,0,1,2, + 0,4,8,6,58,8,9,0,1,2, + 10,4,66,0,68,0,1,2,3,4, + 5,6,7,8,9,10,11,12,99,14, 15,16,0,18,19,20,21,22,23,24, - 25,26,27,0,29,30,3,32,33,34, - 35,36,37,38,39,40,56,42,43,44, - 45,0,1,2,0,4,0,0,1,2, - 60,10,5,0,0,14,15,16,17,18, - 19,20,21,22,23,24,25,0,0,0, - 0,0,3,0,28,0,9,9,31,56, - 13,13,41,71,9,0,0,46,47,48, - 49,50,51,52,53,54,55,0,1,2, - 56,28,61,0,1,2,0,4,62,68, - 69,70,6,10,28,62,0,14,15,16, - 17,18,19,20,21,22,23,24,25,0, - 1,2,3,4,5,6,7,8,9,93, - 94,0,13,0,41,60,17,4,73,46, - 47,48,49,50,51,52,53,54,55,0, - 31,64,65,0,61,0,3,0,9,28, - 0,68,69,70,0,1,2,3,4,5, - 6,7,8,9,41,0,57,13,59,0, - 0,17,63,3,0,28,0,91,92,3, - 0,72,28,62,75,31,0,0,1,2, - 3,4,5,6,7,8,9,28,0,0, - 13,3,0,0,17,6,0,0,0,62, - 60,57,73,59,93,94,71,63,31,0, - 0,0,0,58,0,3,103,104,105,75, + 25,26,27,28,44,30,31,32,33,34, + 35,36,37,38,39,40,41,42,43,100, + 66,61,0,0,1,2,4,4,0,0, + 73,8,4,58,61,0,1,2,3,10, + 5,66,7,68,0,1,2,3,4,5, + 6,7,95,9,10,11,12,29,14,15, + 16,0,18,19,20,21,22,23,24,25, + 26,27,28,44,30,31,32,33,34,35, + 36,37,38,39,40,41,42,43,0,66, + 61,56,0,1,2,0,0,1,2,3, + 0,5,58,7,8,10,62,63,0,1, + 2,3,4,5,6,7,0,9,10,11, + 12,0,14,15,16,64,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,56,65,62,63,0,0,1,2, + 0,4,5,3,7,28,58,67,8,73, + 62,63,0,1,2,3,4,5,6,7, + 8,9,10,11,12,29,14,15,16,0, + 18,19,20,21,22,23,24,25,26,27, + 28,44,30,31,32,33,34,35,36,37, + 38,39,40,41,42,43,56,0,1,2, + 0,4,0,6,64,65,9,0,1,2, + 58,4,5,73,7,0,1,2,66,0, + 1,2,3,4,5,6,7,8,9,10, + 11,12,0,14,15,16,0,18,19,20, + 21,22,23,24,25,26,27,28,0,30, + 31,32,33,34,35,36,37,38,39,40, + 41,42,43,0,1,2,3,4,5,6, + 7,0,9,10,11,12,0,14,15,16, + 4,18,19,20,21,22,23,24,25,26, + 27,28,56,30,31,32,33,34,35,36, + 37,38,39,40,41,42,43,0,1,2, + 0,4,5,0,7,67,3,0,5,6, + 0,58,9,0,11,12,0,1,2,0, + 4,8,6,0,102,9,13,118,0,26, + 27,3,29,30,0,0,0,76,4,117, + 102,44,104,105,106,107,108,109,110,111, + 112,113,17,46,47,117,0,1,2,56, + 4,5,0,7,64,62,63,64,65,0, + 67,0,1,2,3,65,5,8,7,45, + 45,46,47,48,49,50,51,52,53,54, + 55,88,89,90,91,92,93,94,0,0, + 97,98,99,100,101,102,103,104,105,106, + 107,108,109,110,111,112,113,0,0,100, + 3,3,5,6,88,89,9,29,11,12, + 0,1,2,3,4,5,6,7,0,9, + 0,3,73,26,27,0,29,30,114,115, + 116,0,1,2,3,56,5,0,7,0, + 1,2,64,4,95,0,1,2,0,0, + 1,2,7,56,5,0,0,1,2,62, + 63,64,65,8,67,0,56,0,0,0, + 0,93,94,8,4,8,0,67,13,3, + 0,1,2,44,64,88,89,90,91,92, + 93,94,67,44,97,98,99,100,101,102, + 103,104,105,106,107,108,109,110,111,112, + 113,0,1,2,3,4,5,6,7,0, + 9,10,11,12,44,14,15,16,73,18, + 19,20,21,22,23,24,25,26,27,28, + 73,30,31,32,33,34,35,36,37,38, + 39,40,41,42,43,0,88,89,3,0, + 1,2,3,4,5,6,7,56,9,10, + 11,12,0,14,15,16,4,18,19,20, + 21,22,23,24,25,26,27,28,119,30, + 31,32,33,34,35,36,37,38,39,40, + 41,42,43,0,0,1,2,3,4,5, + 6,7,0,9,10,11,12,58,14,15, + 16,0,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,1, + 2,3,4,5,6,7,0,9,10,11, + 12,58,14,15,16,0,18,19,20,21, + 22,23,24,25,26,27,28,56,30,31, + 32,33,34,35,36,37,38,39,40,41, + 42,43,0,1,2,3,4,5,6,7, + 67,9,10,11,12,0,14,15,16,0, + 18,19,20,21,22,23,24,25,26,27, + 28,56,30,31,32,33,34,35,36,37, + 38,39,40,41,42,43,0,1,2,0, + 4,0,1,2,88,89,10,0,1,2, + 14,15,16,17,18,19,20,21,22,23, + 24,25,0,0,0,0,0,28,6,64, + 65,6,0,0,0,1,2,0,1,2, + 0,45,46,47,48,49,50,51,52,53, + 54,55,0,29,0,1,2,61,4,0, + 1,2,29,0,10,69,70,71,14,15, + 16,17,18,19,20,21,22,23,24,25, + 0,0,1,2,3,4,5,6,7,8, + 9,65,0,0,13,3,62,63,17,45, + 46,47,48,49,50,51,52,53,54,55, + 29,88,89,91,92,61,91,92,26,27, + 88,89,29,69,70,71,45,46,47,48, + 49,50,51,52,53,54,55,56,0,1, + 2,3,4,5,6,7,8,9,56,0, + 0,13,3,3,73,17,0,1,2,3, + 4,5,6,7,8,9,0,1,2,13, + 0,119,0,17,0,3,0,1,2,0, + 1,2,8,45,46,47,48,49,50,51, + 52,53,54,55,56,103,0,0,0,29, + 44,0,1,2,3,4,5,6,7,8, + 9,73,120,57,13,59,60,0,17,0, + 44,0,0,44,68,8,0,0,0,8, + 29,4,6,0,1,2,3,4,5,6, + 7,8,9,87,0,44,13,73,29,0, + 17,29,8,0,1,2,29,13,57,0, + 59,60,0,1,2,3,4,5,6,7, + 8,9,0,0,0,13,0,44,29,17, + 8,8,65,64,0,68,64,0,87,68, + 57,0,59,60,3,0,0,44,0,0, + 0,68,4,8,8,29,44,8,0,13, + 0,3,93,94,0,93,94,91,92,57, + 87,59,60,64,65,0,0,29,0,29, + 68,0,1,2,3,4,5,6,7,8, + 9,68,0,29,13,73,72,0,17,87, 0,1,2,3,4,5,6,7,8,9, - 93,94,0,13,57,0,59,17,3,0, - 63,0,10,67,9,0,0,0,3,72, - 3,31,75,0,1,2,3,4,5,6, - 7,8,9,31,66,0,13,71,71,0, - 17,0,3,0,3,66,66,57,67,59, - 91,92,0,63,31,71,0,0,95,119, - 3,56,72,61,0,75,0,1,2,3, - 4,5,6,7,8,9,0,66,73,13, - 57,119,59,17,0,0,63,0,0,0, - 0,0,28,0,0,72,0,31,75,0, - 1,2,3,4,5,6,7,8,9,66, - 0,0,13,29,0,0,17,0,66,0, - 0,0,66,57,0,59,0,0,119,63, - 31,0,0,0,0,0,0,0,0,0, - 0,75,0,1,2,3,4,5,6,7, - 8,9,17,0,0,13,57,0,59,17, - 0,0,63,0,0,0,0,0,0,0, - 0,0,0,31,75,0,41,0,17,0, - 0,46,47,48,49,50,51,52,53,54, - 55,0,0,0,17,0,0,0,0,57, - 0,59,41,0,0,63,0,46,47,48, - 49,50,51,52,53,54,55,75,41,0, - 17,0,0,46,47,48,49,50,51,52, - 53,54,55,0,0,0,0,0,0,0, - 0,0,0,0,41,0,0,0,0,46, - 47,48,49,50,51,52,53,54,55,0, + 65,65,75,13,68,0,0,17,73,0, + 0,29,73,3,0,44,0,1,2,3, + 4,5,6,7,8,9,0,0,57,13, + 59,60,0,17,44,29,0,72,29,68, + 0,0,0,3,0,3,122,57,0,59, + 60,3,0,0,67,3,3,0,87,0, + 44,0,1,2,3,4,5,6,7,8, + 9,0,67,57,13,59,60,87,17,65, + 0,0,0,3,3,119,0,0,0,0, + 0,65,0,0,67,0,0,0,0,67, + 0,0,0,87,0,44,0,0,72,0, + 0,29,0,72,28,0,72,0,57,0, + 59,60,0,0,67,0,67,0,0,0, + 0,0,0,0,0,0,0,0,67,0, + 0,0,0,0,0,0,0,0,87,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0 + 0,0,0,0,0,0,0,0,0,0 }; }; public final static byte termCheck[] = TermCheck.termCheck; @@ -1376,299 +1354,300 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TermAction { public final static char termAction[] = {0, - 5261,5242,5224,5224,5224,5224,5224,5224,5224,5252, - 1,1,1,5249,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5261,1, - 1,1167,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,2236,1,2481, - 3085,1,137,3343,1,1,125,43,1,1, - 1,5303,5268,1217,5440,5590,2516,3650,4022,2195, - 4019,3574,2998,3644,1682,3626,3345,3609,8,5255, - 5255,5255,5255,5255,5255,5255,5255,5255,5255,5255, - 5255,5255,5255,5255,5255,5255,5255,5255,5255,5255, - 5255,5255,5255,5255,5255,5255,5261,5255,5255,5261, - 5255,5255,5255,5255,5255,5255,5255,5255,5255,5255, - 5255,5255,5255,5255,5255,5255,5255,5255,5255,5255, - 5255,5255,5255,5255,3195,5255,5255,5255,5255,5255, - 401,5255,5255,5255,2548,2595,5255,5255,5255,5164, - 5255,588,5255,5167,5255,5255,5255,5255,5255,5255, - 5255,5255,5255,5255,5255,5255,5261,5242,5224,5224, - 5224,5224,5224,5224,5224,5246,1,1,1,5249, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5261,1,1,1427,1,1, + 5158,5132,5111,5111,5111,5111,5111,5111,5142,5111, + 1,1,1,5136,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,434,2236,1,2481,3085,1,141,3343, - 1,1,129,5261,1,1,1,5261,4875,4872, - 5440,5303,2516,3650,4022,2195,4019,3574,2998,3644, - 1682,3626,3345,3609,5261,5242,5224,5224,5224,5224, - 5224,5224,5224,5246,1,1,1,5249,1,1, + 1,1,1,1,5158,1,1,1,1,1, + 1,1,1,1,1,1,5158,2168,1,2088, + 2934,1,1,1,117,5158,5169,5158,5165,1, + 1,1,43,5170,5339,572,3323,3238,2215,3223, + 3226,2941,3295,645,3294,3317,3279,10,5145,5145, + 5145,5145,5145,5145,5145,5145,5145,5145,5145,5145, + 5145,5145,5145,5145,5145,5145,5145,5145,5145,5145, + 5145,5145,5145,5145,5145,5145,5200,5145,5145,5145, + 5145,5145,5145,5145,5145,5145,5145,5145,5145,5145, + 5145,5169,5145,5145,5145,5145,5145,5145,5145,5145, + 5145,5145,5145,137,5145,5145,5145,5145,5145,5145, + 5145,120,2367,5145,3991,5145,5145,5145,5145,55, + 4013,5145,5145,5145,5145,5145,5145,5145,5145,5145, + 5145,5145,5145,5145,8,5148,5148,5148,5148,5148, + 5148,5148,5148,5148,5148,5148,5148,5148,5148,5148, + 5148,5148,5148,5148,5148,5148,5148,5148,5148,5148, + 5148,5148,5148,2737,5148,5148,5148,5148,5148,5148, + 5148,5148,5148,5148,5148,5148,5148,5148,5158,5148, + 5148,5148,5148,5148,5148,5148,5148,5148,5148,5148, + 138,5148,5148,5148,5148,5148,5148,5148,359,2367, + 5148,3991,5148,5148,5148,5148,5158,4013,5148,5148, + 5148,5148,5148,5148,5148,5148,5148,5148,5148,5148, + 5148,5158,5132,5111,5111,5111,5111,5111,5111,5139, + 5111,1,1,1,5136,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,5261,1,1,41,1,1,1,1, + 1909,1,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,124,2168,1, + 2088,2934,1,1,1,119,5158,5169,3419,3395, + 1,1,1,5516,981,5339,572,3323,3238,2215, + 3223,3226,2941,3295,645,3294,3317,3279,5158,5132, + 5111,5111,5111,5111,5111,5111,5139,5111,1,1, + 1,5136,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,420,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,139,1,1,1,1,1,1,1, + 1,1,1,1,5158,2168,1,2088,2934,1, + 1,1,118,5158,5169,3991,2602,1,1,1, + 5158,4013,5339,572,3323,3238,2215,3223,3226,2941, + 3295,645,3294,3317,3279,5158,5132,5111,5111,5111, + 5111,5111,5111,5139,5111,1,1,1,5136,1, 1,1,1,1,1,1,1,1,1,1, - 3327,2236,1,2481,3085,1,5301,3343,1,1, - 2548,2595,1,1,1,5691,5692,5693,5440,2282, - 2516,3650,4022,2195,4019,3574,2998,3644,1682,3626, - 3345,3609,5261,5242,5224,5224,5224,5224,5224,5224, - 5224,5246,1,1,1,5249,1,1,1,1, + 1,1,1,1,2835,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,424, 1,1,1,1,1,1,1,1,1,1, - 5261,1,1,5261,1,1,1,1,1,1, + 1,590,2168,1,2088,2934,1,1,1,45, + 5158,5169,3991,5202,1,1,1,5158,4013,5339, + 572,3323,3238,2215,3223,3226,2941,3295,645,3294, + 3317,3279,5158,5132,5111,5111,5111,5111,5111,5111, + 5139,5111,1,1,1,5136,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,4051,2236, - 1,2481,3085,1,133,3343,1,1,128,5261, - 1,1,1,5261,4875,4872,5440,5303,2516,3650, - 4022,2195,4019,3574,2998,3644,1682,3626,3345,3609, - 5261,5242,5224,5224,5224,5224,5224,5224,5224,5246, - 1,1,1,5249,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5261,1, - 1,53,1,1,1,1,1,1,1,1, + 1,2575,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,5158,1,1,1, + 1,1,1,1,1,1,1,1,126,2168, + 1,2088,2934,1,1,1,1,1,5169,3419, + 3395,1,1,1,5158,5126,5339,572,3323,3238, + 2215,3223,3226,2941,3295,645,3294,3317,3279,5158, + 5132,5111,5111,5111,5111,5111,5111,5139,5111,1, + 1,1,5136,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5556,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,4323,2236,1,2481, - 3085,1,2698,3343,1,1,2548,2595,1,1, - 1,2403,2375,5261,5440,5261,2516,3650,4022,2195, - 4019,3574,2998,3644,1682,3626,3345,3609,5261,5242, - 5224,5224,5224,5224,5224,5224,5224,5246,1,1, - 1,5249,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,33,1,1,5261, + 1,1,1,5169,1,1,1,1,1,1, + 1,1,1,1,1,125,2168,1,2088,2934, + 1,1,1,1,5158,5169,3419,3395,1,1, + 1,5518,5158,5339,572,3323,3238,2215,3223,3226, + 2941,3295,645,3294,3317,3279,5158,5132,5111,5111, + 5111,5111,5111,5111,5139,5111,1,1,1,5136, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5158,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,4878,2236,1,2481,3085,1, - 142,3343,1,1,127,135,1,1,1,5261, - 5278,5279,5440,2346,2516,3650,4022,2195,4019,3574, - 2998,3644,1682,3626,3345,3609,5261,5242,5224,5224, - 5224,5224,5224,5224,5224,5246,1,1,1,5249, + 5158,1,1,1,1,1,1,1,1,1, + 1,1,5158,2168,1,2088,2934,1,1,1, + 314,5158,5169,2942,2583,1,1,1,3674,2957, + 5339,572,3323,3238,2215,3223,3226,2941,3295,645, + 3294,3317,3279,5158,5132,5111,5111,5111,5111,5111, + 5111,5139,5111,1,1,1,5136,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,435,1,1,5261,1,1, + 1,1,5158,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1074,1,1, + 1,1,1,1,1,1,1,1,1,5158, + 2168,1,2088,2934,1,1,1,5158,97,5169, + 5158,4795,1,1,1,5162,5158,5339,572,3323, + 3238,2215,3223,3226,2941,3295,645,3294,3317,3279, + 5158,3273,1,1,1,1,1,1,3278,1, + 1,1,1,5167,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5158, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,2161,1,1,1,1,1, + 1,1,1,1,1,1,5158,2168,1,2088, + 2934,1,1,1,5158,242,5169,5158,4949,1, + 1,1,435,135,5339,572,3323,3238,2215,3223, + 3226,2941,3295,645,3294,3317,3279,45,4762,4759, + 2834,623,3470,3881,3621,5161,3903,728,3859,3830, + 143,5427,5425,5434,5420,5433,5429,5430,5428,5431, + 5432,5435,5426,3947,3925,5183,5158,990,654,871, + 5185,781,4090,792,5186,5184,637,5179,5181,5182, + 5180,2176,5423,5496,5497,5417,5424,5396,5422,5421, + 5418,5419,5397,348,1,1324,2690,2659,5553,5158, + 5177,5178,4943,5158,8563,8563,734,5554,5555,5158, + 5010,5010,233,5006,233,233,233,5014,233,1, + 2424,2396,233,1,1,1,1,1,1,1, + 1,1,1,1,1,4758,5589,5590,5591,346, + 5101,5097,2843,5202,861,1654,3621,5200,5489,1872, + 1872,2303,136,5003,1,1,1,1,1,1, + 1,1,1,1,1,229,2882,4946,1367,5158, + 1,5158,4762,4759,3375,5202,5158,413,1,1, + 1,233,5420,5567,5158,5010,5010,233,5006,233, + 233,233,5066,233,1,1872,5654,233,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,4881,2236,1,2481,3085,1,3249,3343, - 1,1,2548,2595,1,1,1,5261,5053,5050, - 5440,2282,2516,3650,4022,2195,4019,3574,2998,3644, - 1682,3626,3345,3609,5261,5242,5224,5224,5224,5224, - 5224,5224,5224,5246,1,1,1,5249,1,1, + 5423,5496,5497,5417,5424,5396,5422,5421,5418,5419, + 5397,5158,45,5589,5590,5591,5202,230,5003,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,449,1,1,5261,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 4884,2236,1,2481,3085,1,134,3343,1,1, - 126,136,1,1,1,54,5086,5083,5440,2346, - 2516,3650,4022,2195,4019,3574,2998,3644,1682,3626, - 3345,3609,5261,3584,1,1,1,1,1,1, - 1,5271,1,1,1,5270,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 95,1,1,4908,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,119,2236, - 1,2481,3085,1,3523,3343,1,1,2548,2595, - 1,1,1,2403,2375,5261,5440,5261,2516,3650, - 4022,2195,4019,3574,2998,3644,1682,3626,3345,3609, - 43,4875,4872,3411,787,3714,3787,3228,3809,43, - 778,3765,3743,5303,5528,5526,5535,5521,5534,5530, - 5531,5529,5532,5533,5536,5527,3853,3831,138,5284, - 1054,139,642,860,5286,664,3996,786,5287,5285, - 624,5524,5280,5282,5283,5281,5597,5598,5518,5525, - 5497,5523,5522,5519,5520,5498,5261,5261,1308,3500, - 3477,5655,5261,5278,5279,1342,5261,3165,854,5656, - 5657,5261,5123,5123,231,5119,231,231,231,231, - 5127,1,5261,189,231,1,1,1,1,1, - 1,1,1,1,1,1,1,5261,5261,8527, - 8527,791,5116,344,5214,5210,2668,5303,670,1217, - 3228,5590,1,49,5080,5080,2276,1,1,1, - 1,1,1,1,1,1,1,588,1115,5301, - 1179,2315,1,54,5053,5050,291,5278,5279,1, - 1,1,231,412,5077,5669,5756,5261,5123,5123, - 231,5119,231,231,231,231,5127,1,5261,1855, - 231,1,1,1,1,1,1,1,1,1, - 1,1,1,43,5691,5692,5693,5303,5116,5261, - 5214,5210,4386,5303,670,1217,3228,5590,1,41, - 5107,5107,5261,1,1,1,1,1,1,1, - 1,1,1,4871,1115,5258,1179,392,1,346, - 115,384,2859,5261,1935,1,1,1,231,412, - 2837,5669,5756,5261,5123,5123,231,5119,231,231, - 231,231,5179,1,161,915,231,1,1,1, - 1,1,1,1,1,1,1,1,1,5261, - 5691,5692,5693,45,5116,366,5140,5136,2668,1, - 670,1,3228,1,1,1855,40,5155,5152,1, - 1,1,1,1,1,1,1,1,1,5261, - 1115,4905,1179,5261,1,5261,5086,5083,5269,2924, - 3813,1,1,1,231,411,37,5669,5756,4914, - 3897,1351,4914,5261,4914,4914,3919,4914,4914,4914, - 384,1855,5261,5205,5200,4386,5101,670,5197,3228, - 5194,1133,4914,4914,4914,226,5691,5692,5693,310, - 5205,5200,4386,5101,670,5197,3228,5194,4911,5528, - 5526,5535,5521,5534,5530,5531,5529,5532,5533,5536, - 5527,5268,4914,143,1,5140,5136,4386,4914,670, - 118,3228,4914,4914,453,2535,5524,4914,4914,4914, - 122,5597,5598,5518,5525,5497,5523,5522,5519,5520, - 5498,2949,2765,2071,4914,4914,4914,4914,4914,4914, - 4914,4914,4914,4914,4914,4914,4914,4914,4914,5261, - 5278,5279,4914,4914,4914,4914,4914,4914,4914,4914, - 4914,4914,4914,4914,4914,5261,4914,4914,4917,1813, - 4899,4917,5261,4917,4917,2071,4917,4917,4917,1, - 5140,5136,2668,5261,670,5261,3228,5261,5056,5261, - 5261,4917,4917,4917,1,5140,5136,5170,5271,5173, - 3897,5176,5270,5271,140,2245,3919,5270,5261,3055, - 1771,1729,1687,1645,1603,1561,1519,1477,1435,1393, - 1595,4917,439,1,1,5261,1,4917,4896,510, - 4896,4917,4917,2814,5265,1855,4917,4917,4917,5261, - 5133,5130,1,5104,5104,2543,5101,2590,1217,2621, - 5590,362,5059,4917,4917,4917,4917,4917,4917,4917, - 4917,4917,4917,4917,4917,4917,4917,4917,2902,5261, - 5301,4917,4917,4917,4917,4917,4917,4917,4917,4917, - 4917,4917,4917,4917,5261,4917,4917,5261,1,1, - 1,1,1,1,1,1,876,1,1,1, - 33,1,1,1,2315,1,1,1,1,1, - 1,1,1,1,1,362,1,1,5261,1, - 1,1,1,1,1,1,1,1,915,1, - 1,1,1,1,5140,5136,4386,362,670,143, - 3228,5261,310,5264,292,1,310,5261,5278,5279, - 1,1,1,1,5140,5136,2668,5261,670,362, - 3228,5792,1,4963,4959,3411,4967,3714,3787,3228, - 3809,419,4923,3765,3743,1,4950,4956,4929,385, - 4932,4944,4941,4947,4938,4935,4926,4953,3853,3831, - 240,5284,1054,5062,642,860,5286,664,3996,786, - 5287,5285,624,4190,5280,5282,5283,5281,3329,1855, - 1984,3875,555,344,43,43,2989,5303,5261,1217, - 1308,5590,1,362,511,4722,43,43,43,4875, - 4872,3411,787,3714,3787,3228,3809,5269,566,3765, - 3743,2245,5528,5526,5535,362,5534,5530,5531,5529, - 5532,5533,5536,5527,3853,3831,1595,5284,1054,5261, - 642,860,5286,664,3996,786,5287,5285,624,1855, - 5280,5282,5283,5281,5261,4875,4872,5261,787,670, - 1721,3228,5261,440,43,43,1308,5303,4032,5098, - 369,5095,1,5140,5136,4386,452,670,5261,3228, - 5268,43,4875,4872,3411,787,3714,3787,3228,3809, - 5269,566,3765,3743,54,5528,5526,5535,5279,5534, - 5530,5531,5529,5532,5533,5536,5527,3853,3831,312, - 5284,1054,2972,642,860,5286,664,3996,786,5287, - 5285,624,5279,5280,5282,5283,5281,96,1,1, - 5261,1,4902,5110,1,5110,1175,2989,5261,1308, - 5768,4032,347,340,145,4875,4872,3411,787,3714, - 3787,3228,3809,5268,566,3765,3743,5261,5528,5526, - 5535,117,5534,5530,5531,5529,5532,5533,5536,5527, - 3853,3831,5261,5284,1054,1265,642,860,5286,664, - 3996,786,5287,5285,624,5261,5280,5282,5283,5281, - 1855,99,43,43,5261,5303,340,5188,1855,5185, - 5697,340,1308,5267,393,5278,5279,340,43,43, - 1,4963,4959,3411,4967,3714,3787,3228,3809,5711, - 4923,3765,3743,335,4950,4956,4929,367,4932,4944, - 4941,4947,4938,4935,4926,4953,3853,3831,5261,5284, - 1054,1763,642,860,5286,664,3996,786,5287,5285, - 624,3897,5280,5282,5283,5281,1892,3919,5261,4875, - 4872,4754,787,4920,5261,3228,5261,5266,1308,5597, - 5598,3165,361,116,43,43,43,4875,4872,3411, - 787,3714,3787,3228,3809,5265,566,3765,3743,2058, - 5528,5526,5535,1223,5534,5530,5531,5529,5532,5533, - 5536,5527,3853,3831,5261,5284,1054,1805,642,860, - 5286,664,3996,786,5287,5285,624,5261,5280,5282, - 5283,5281,43,4875,4872,3411,787,3714,3787,3228, - 3809,5261,566,3765,3743,3107,5528,5526,5535,623, - 5534,5530,5531,5529,5532,5533,5536,5527,3853,3831, - 5261,5284,1054,1847,642,860,5286,664,3996,786, - 5287,5285,624,3897,5280,5282,5283,5281,5261,3919, - 5261,5261,4875,4872,1,787,4920,5271,3228,5269, - 1308,5270,4032,165,104,43,4875,4872,3411,787, - 3714,3787,3228,3809,5264,566,3765,3743,5261,5528, - 5526,5535,2145,5534,5530,5531,5529,5532,5533,5536, - 5527,3853,3831,5261,5284,1054,3154,642,860,5286, - 664,3996,786,5287,5285,624,915,5280,5282,5283, - 5281,5261,5261,1,3586,4215,1212,1012,5725,5719, - 2991,5723,5268,1308,5717,5718,5261,165,80,5261, - 1058,1511,5261,8119,7437,42,4890,4887,5261,5748, - 5749,5728,772,5726,33,384,384,5071,384,384, - 5071,384,5071,5074,5329,5330,357,5071,393,4875, - 4872,384,5303,1,5140,5136,5170,5261,5173,536, - 5176,107,4878,5261,4023,5729,5267,1474,1598,5727, - 5750,5261,5278,5279,1553,384,670,5261,3228,43, - 384,384,384,384,384,384,384,384,384,384, - 5074,5739,5738,5751,5720,5721,5744,5745,5261,1, - 5742,5743,5722,5724,5746,5747,3672,5074,5239,5752, - 5732,5733,5734,5730,5731,5740,5741,5736,5735,5737, - 5261,1,124,1212,727,5725,5719,3560,5723,5261, - 5266,5717,5718,2949,2765,5261,4875,4872,795,787, - 670,5617,3228,5261,5148,5144,5748,5749,5728,915, - 5726,36,385,385,5065,385,385,5065,385,5065, - 5068,5261,1,302,5065,5261,4875,4872,385,5303, - 5261,5268,5233,5562,5301,423,536,123,5261,8119, - 7437,1,5729,290,1474,1598,5727,5750,2949,2765, - 5267,3791,385,3403,5261,5261,3329,385,385,385, - 385,385,385,385,385,385,385,5068,5739,5738, - 5751,5720,5721,5744,5745,5261,421,5742,5743,5722, - 5724,5746,5747,5236,5068,2788,5752,5732,5733,5734, - 5730,5731,5740,5741,5736,5735,5737,43,4875,4872, - 3411,787,3714,3787,3228,3809,2828,566,3765,3743, - 989,5528,5526,5535,5266,5534,5530,5531,5529,5532, - 5533,5536,5527,3853,3831,5658,5284,1054,302,642, - 860,5286,664,3996,786,5287,5285,624,5562,5280, - 5282,5283,5281,2926,43,4875,4872,3411,787,3714, - 3787,3228,3809,1481,566,3765,3743,5261,5528,5526, - 5535,1,5534,5530,5531,5529,5532,5533,5536,5527, - 3853,3831,1,5284,1054,5261,642,860,5286,664, - 3996,786,5287,5285,624,3424,5280,5282,5283,5281, - 51,5161,5161,43,4875,4872,1469,787,3714,3787, - 3228,3809,1308,566,3765,3743,54,5528,5526,5535, - 5278,5534,5530,5531,5529,5532,5533,5536,5527,3853, - 3831,5158,5284,1054,5261,642,860,5286,664,3996, - 786,5287,5285,624,5278,5280,5282,5283,5281,43, - 4875,4872,3411,787,3714,3787,3228,3809,3547,566, - 3765,3743,3240,5528,5526,5535,5619,5534,5530,5531, - 5529,5532,5533,5536,5527,3853,3831,5261,5284,1054, - 320,642,860,5286,664,3996,786,5287,5285,624, - 5261,5280,5282,5283,5281,43,4875,4872,3411,787, - 3714,3787,3228,3809,5261,566,3765,3743,1817,5528, - 5526,5535,443,5534,5530,5531,5529,5532,5533,5536, - 5527,3853,3831,318,5284,1054,5182,642,860,5286, - 664,3996,786,5287,5285,624,1855,5280,5282,5283, - 5281,5261,4875,4872,103,5303,130,41,5113,5113, - 3426,719,5113,5261,5261,5528,5526,5535,5521,5534, - 5530,5531,5529,5532,5533,5536,5527,1,1,5261, - 5261,5261,3344,78,2512,1,5271,195,3284,1855, - 5270,195,5524,2646,523,5261,5261,5597,5598,5518, - 5525,5497,5523,5522,5519,5520,5498,5261,5053,5050, - 2021,5191,5655,244,5043,5039,121,5047,4893,854, - 5656,5657,3523,719,3448,4020,5261,5030,5036,5009, - 4994,5012,5024,5021,5027,5018,5015,5006,5033,1, - 5224,5224,231,5224,231,231,231,231,5227,2458, - 2431,132,231,43,4985,3085,8547,5303,523,4979, - 4976,5003,4982,4973,4988,4991,5000,4997,4970,1, - 5221,3875,555,281,5655,5261,5218,131,167,2512, - 1,854,5656,5657,1,5224,5224,231,5224,231, - 231,231,231,231,1213,527,2592,231,2481,5261, - 5261,8547,3343,3370,5261,2512,5261,3500,3477,4031, - 5261,223,3240,5089,5756,5221,444,1,5224,5224, - 231,5224,231,231,231,231,5230,3704,5261,120, - 231,4403,374,1,8547,3523,5261,5261,415,5092, - 3687,2592,167,2481,2458,2431,2108,3343,5221,39, - 503,309,5261,3548,5261,4704,5691,5692,5693,5756, - 1,5224,5224,231,5224,231,231,231,231,5227, - 2458,2431,1,231,2592,1,2481,8547,2989,516, - 3343,501,5233,2709,5056,5261,5261,5261,4728,222, - 3186,5221,5756,1,5224,5224,231,5224,231,231, - 231,231,5227,3403,2158,5261,231,5443,3064,5261, - 8547,5261,4740,5261,621,3449,4746,2592,4244,2481, - 3500,3477,5261,3343,5221,5442,505,5261,4137,3692, - 3065,1855,223,5236,2,5756,1,5224,5224,231, - 5224,231,231,231,231,231,5261,4753,5059,231, - 2592,3692,2481,8547,1,5261,3343,5261,5261,5261, - 5261,5261,41,5261,5261,223,5261,5221,5756,1, - 5224,5224,231,5224,231,231,231,231,231,3449, - 5261,5261,231,3342,5261,5261,8547,5261,1942,5261, - 5261,5261,994,2592,5261,2481,5261,5261,3692,3343, - 5221,5261,5261,5261,5261,227,5261,5261,5261,5261, - 5261,5756,1,5224,5224,231,5224,231,231,231, - 231,231,5521,5261,5261,231,2592,5261,2481,8547, - 5261,228,3343,5261,5261,5261,5261,5261,5261,5261, - 5261,5261,5261,5221,5756,5261,5524,229,5521,5261, - 5261,5597,5598,5518,5525,5497,5523,5522,5519,5520, - 5498,5261,5261,5261,5521,5261,5261,5261,5261,2592, - 5261,2481,5524,230,5261,3343,5261,5597,5598,5518, - 5525,5497,5523,5522,5519,5520,5498,5756,5524,5261, - 5521,5261,5261,5597,5598,5518,5525,5497,5523,5522, - 5519,5520,5498,5261,5261,5261,5261,5261,5261,5261, - 5261,5261,5261,5261,5524,5261,5261,5261,5261,5597, - 5598,5518,5525,5497,5523,5522,5519,5520,5498 + 454,2882,45,1367,5420,1,5202,5158,1654,2424, + 2396,5489,412,1,1,1,233,39,5567,1, + 4801,320,4203,4801,5069,4801,4801,1612,4801,4801, + 4801,5654,5423,5496,5497,5417,5424,5396,5422,5421, + 5418,5419,5397,4801,4801,2177,4801,228,5158,5101, + 5097,2563,5202,861,1654,3621,4786,5489,5589,5590, + 5591,5427,5425,5434,5420,5433,5429,5430,5428,5431, + 5432,5435,5426,4801,440,1,1,1872,1,5158, + 4783,4801,4801,4783,4801,4801,5158,5177,5178,4801, + 4801,3375,5423,5496,5497,5417,5424,5396,5422,5421, + 5418,5419,5397,163,5158,4801,4801,4801,4801,4801, + 4801,4801,4801,4801,4801,4801,4801,4801,4801,4801, + 4801,4801,4801,4801,4801,4801,4801,4801,4801,4801, + 4801,231,5158,5158,4801,4801,4804,4801,4801,4804, + 5158,4804,4804,2249,4804,4804,4804,304,5420,312, + 5092,5087,2563,4988,861,5084,3621,5461,5081,4804, + 4804,3153,4804,346,45,45,2659,5202,1368,1654, + 5158,144,5489,51,4967,4967,5423,5496,5497,5417, + 5424,5396,5422,5421,5418,5419,5397,5158,5158,4804, + 441,45,45,3064,5202,5158,4985,4804,4804,4982, + 4804,4804,5158,5158,2297,4804,4804,1,5027,5023, + 5057,5168,5060,5158,5063,5168,5167,4964,5158,1872, + 5167,4804,4804,4804,4804,4804,4804,4804,4804,4804, + 4804,4804,4804,4804,4804,4804,4804,4804,4804,4804, + 4804,4804,4804,4804,4804,4804,4804,5158,4940,4937, + 4804,4804,5666,4804,4804,5158,1,1,1,1, + 1,1,1,453,1,1,1,1,578,1, + 1,1,2303,1,1,1,1,1,1,1, + 1,1,1,1,5158,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5158, + 5092,5087,2563,4988,861,5084,3621,402,5081,1, + 5027,5023,2563,1,861,5051,3621,1,1,4789, + 5054,1,4850,4846,2834,4854,3470,3881,3621,5690, + 3903,4810,3859,3830,5158,4837,4843,4816,918,4819, + 4831,4828,4834,4825,4822,4813,4840,3947,3925,5183, + 511,990,654,871,5185,781,4090,792,5186,5184, + 637,5179,5181,5182,5180,1,5027,5023,2563,140, + 861,2090,3621,312,5158,5158,5177,5178,312,1324, + 861,2090,3621,45,45,512,45,4762,4759,2834, + 623,3470,3881,3621,3497,3903,849,3859,3830,141, + 5427,5425,5434,4146,5433,5429,5430,5428,5431,5432, + 5435,5426,3947,3925,5183,875,990,654,871,5185, + 781,4090,792,5186,5184,637,5179,5181,5182,5180, + 56,4973,4970,5158,5158,5177,5178,1,4991,4991, + 1,4988,5170,1654,1324,364,5489,5158,4762,4759, + 5120,5202,5169,5158,5165,45,4762,4759,2834,623, + 3470,3881,3621,3497,3903,849,3859,3830,590,5427, + 5425,5434,5158,5433,5429,5430,5428,5431,5432,5435, + 5426,3947,3925,5183,3077,990,654,871,5185,781, + 4090,792,5186,5184,637,5179,5181,5182,5180,2336, + 5169,5123,1,5158,4762,4759,387,5202,393,1, + 364,5170,386,1324,4525,1,5027,5023,2843,5120, + 861,5169,3621,5165,147,4762,4759,2834,623,3470, + 3881,3621,364,3903,849,3859,3830,981,5427,5425, + 5434,5158,5433,5429,5430,5428,5431,5432,5435,5426, + 3947,3925,5183,3077,990,654,871,5185,781,4090, + 792,5186,5184,637,5179,5181,5182,5180,363,5169, + 5123,1872,5158,5177,5178,304,1,5027,5023,2843, + 294,861,1324,3621,4943,5461,45,45,1,4850, + 4846,2834,4854,3470,3881,3621,5158,3903,4810,3859, + 3830,5158,4837,4843,4816,5595,4819,4831,4828,4834, + 4825,4822,4813,4840,3947,3925,5183,5158,990,654, + 871,5185,781,4090,792,5186,5184,637,5179,5181, + 5182,5180,1872,2872,3969,1272,5158,5158,4762,4759, + 1,623,4807,2659,3621,1486,1324,2002,342,4946, + 45,45,45,4762,4759,2834,623,3470,3881,3621, + 5170,3903,849,3859,3830,4147,5427,5425,5434,5158, + 5433,5429,5430,5428,5431,5432,5435,5426,3947,3925, + 5183,1122,990,654,871,5185,781,4090,792,5186, + 5184,637,5179,5181,5182,5180,1872,98,1,1, + 5158,1,5158,4997,342,342,4997,5158,4762,4759, + 1324,623,861,342,3621,56,4940,4937,5169,45, + 4762,4759,2834,623,3470,3881,3621,5162,3903,849, + 3859,3830,145,5427,5425,5434,349,5433,5429,5430, + 5428,5431,5432,5435,5426,3947,3925,5183,145,990, + 654,871,5185,781,4090,792,5186,5184,637,5179, + 5181,5182,5180,45,4762,4759,2834,623,3470,3881, + 3621,5158,3903,849,3859,3830,5158,5427,5425,5434, + 978,5433,5429,5430,5428,5431,5432,5435,5426,3947, + 3925,5183,1872,990,654,871,5185,781,4090,792, + 5186,5184,637,5179,5181,5182,5180,5158,4762,4759, + 5158,623,4807,1,3621,1830,872,337,5623,5617, + 292,1324,5621,5158,5615,5616,101,45,45,142, + 5202,5168,5075,5158,2266,5072,5167,5161,5158,5646, + 5647,4346,5626,5624,45,232,127,3474,5202,4113, + 2266,1177,1788,1746,1704,1662,1620,1578,1536,1494, + 1452,1410,5420,5496,5497,4113,5158,4762,4759,971, + 623,861,5158,3621,5609,1531,1573,5627,5648,1, + 5625,1,5027,5023,2563,1825,861,364,3621,2848, + 5423,5496,5497,5417,5424,5396,5422,5421,5418,5419, + 5397,5637,5636,5649,5618,5619,5642,5643,132,106, + 5640,5641,5620,5622,5644,5645,5650,5630,5631,5632, + 5628,5629,5638,5639,5634,5633,5635,5158,5158,2336, + 872,4386,5623,5617,2702,2794,5621,2533,5615,5616, + 368,5027,5023,2843,1,861,1,3621,5158,1, + 5158,4415,364,5646,5647,371,5626,5624,5589,5590, + 5591,1,5027,5023,5057,4671,5060,5158,5063,394, + 4762,4759,4780,5202,364,44,4777,4774,5158,43, + 5000,5000,648,971,5000,1,293,5177,5178,1531, + 1573,5627,5648,167,5625,1,1872,5158,131,5158, + 5158,2479,2452,5168,1447,5164,5158,1196,5167,4432, + 43,4994,4994,45,4114,5637,5636,5649,5618,5619, + 5642,5643,1238,3454,5640,5641,5620,5622,5644,5645, + 5650,5630,5631,5632,5628,5629,5638,5639,5634,5633, + 5635,45,4762,4759,2834,623,3470,3881,3621,5158, + 3903,849,3859,3830,3366,5427,5425,5434,167,5433, + 5429,5430,5428,5431,5432,5435,5426,3947,3925,5183, + 5163,990,654,871,5185,781,4090,792,5186,5184, + 637,5179,5181,5182,5180,5158,2702,2794,3244,45, + 4762,4759,2834,623,3470,3881,3621,1456,3903,849, + 3859,3830,5158,5427,5425,5434,1489,5433,5429,5430, + 5428,5431,5432,5435,5426,3947,3925,5183,3352,990, + 654,871,5185,781,4090,792,5186,5184,637,5179, + 5181,5182,5180,528,45,4762,4759,3125,623,3470, + 3881,3621,5158,3903,849,3859,3830,1324,5427,5425, + 5434,322,5433,5429,5430,5428,5431,5432,5435,5426, + 3947,3925,5183,369,990,654,871,5185,781,4090, + 792,5186,5184,637,5179,5181,5182,5180,45,4762, + 4759,2834,623,3470,3881,3621,130,3903,849,3859, + 3830,3151,5427,5425,5434,105,5433,5429,5430,5428, + 5431,5432,5435,5426,3947,3925,5183,1872,990,654, + 871,5185,781,4090,792,5186,5184,637,5179,5181, + 5182,5180,45,4762,4759,2834,623,3470,3881,3621, + 1282,3903,849,3859,3830,5158,5427,5425,5434,5158, + 5433,5429,5430,5428,5431,5432,5435,5426,3947,3925, + 5183,2039,990,654,871,5185,781,4090,792,5186, + 5184,637,5179,5181,5182,5180,5158,4762,4759,5158, + 5202,42,5042,5039,2702,2794,638,5158,4973,4970, + 5427,5425,5434,5420,5433,5429,5430,5428,5431,5432, + 5435,5426,121,129,35,123,422,2744,3579,4309, + 3100,3579,128,436,5158,4940,4937,394,5177,5178, + 5158,5423,5496,5497,5417,5424,5396,5422,5421,5418, + 5419,5397,376,4765,246,4930,4926,5553,4934,5158, + 8419,8348,4768,5158,638,734,5554,5555,4917,4923, + 4896,4881,4899,4911,4908,4914,4905,4902,4893,4920, + 5158,35,386,386,4958,386,386,4958,386,4961, + 4958,571,82,450,4958,3190,3969,1272,386,4872, + 4866,4863,4890,4869,4860,4875,4878,4887,4884,4857, + 4765,2702,2794,3556,3529,5553,3556,3529,5228,5229, + 2702,2794,4771,734,5554,5555,386,386,386,386, + 386,386,386,386,386,386,386,4961,38,387, + 387,4952,387,387,4952,387,4955,4952,3781,5158, + 109,4952,4327,4479,4961,387,1,5111,5111,233, + 5111,233,233,233,5114,233,5158,8419,8348,233, + 47,3352,5158,8567,1,3139,5158,5020,5017,5158, + 5035,5031,5164,387,387,387,387,387,387,387, + 387,387,387,387,4955,656,5158,5158,5158,4792, + 5108,1,5111,5111,233,5111,233,233,233,233, + 233,4955,797,2998,233,2088,2934,5158,8567,134, + 5200,5158,133,5200,225,5166,122,56,5158,5166, + 2833,5178,3579,1,5111,5111,233,5111,233,233, + 233,5117,233,5654,1,5108,233,5163,2533,386, + 8567,2533,197,53,5048,5048,5178,197,2998,5158, + 2088,2934,1,5111,5111,233,5111,233,233,233, + 5114,233,1,1,444,233,5158,5108,4798,8567, + 524,5129,1013,4976,191,5165,4979,1,5654,5165, + 2998,283,2088,2934,5105,5158,12,5045,56,1, + 1,224,5177,5164,5152,981,5108,169,5158,8, + 5158,2952,2479,2452,5158,2479,2452,3556,3529,2998, + 5654,2088,2934,3464,3100,5158,517,5177,5158,981, + 225,1,5111,5111,233,5111,233,233,233,5114, + 233,5165,80,2833,233,524,2584,416,8567,5654, + 1,5111,5111,233,5111,233,233,233,233,233, + 4659,8,3509,233,5152,41,5158,8567,5163,5158, + 5158,5078,169,4645,445,5108,1,5111,5111,233, + 5111,233,233,233,233,233,311,504,2998,233, + 2088,2934,502,8567,5108,3316,5158,2127,3646,225, + 5158,5158,5158,3630,5158,4392,5155,2998,5158,2088, + 2934,4648,5158,5158,2178,3008,4653,5158,5654,5158, + 5108,1,5111,5111,233,5111,233,233,233,233, + 233,506,2766,2998,233,2088,2934,5654,8567,2886, + 5158,5158,2,4129,4678,3352,1,5158,5158,5158, + 5158,4364,5158,5158,4249,5158,5158,5158,5158,4457, + 5158,5158,5158,5654,5158,5108,5158,5158,5342,5158, + 5158,43,5158,3006,2911,5158,5341,5158,2998,5158, + 2088,2934,5158,5158,2766,5158,1960,5158,5158,5158, + 5158,5158,5158,5158,5158,5158,5158,5158,1056,5158, + 5158,5158,5158,5158,5158,5158,5158,5158,5654 }; }; public final static char termAction[] = TermAction.termAction; @@ -1676,59 +1655,58 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asb { public final static char asb[] = {0, - 581,7,444,1,398,820,820,820,820,1102, - 398,683,683,733,683,313,428,315,445,445, - 445,445,445,445,445,445,445,685,691,696, - 693,700,698,705,703,707,706,708,173,709, - 444,444,122,122,122,122,484,275,94,94, - 680,122,361,91,683,683,94,764,685,91, - 91,82,428,889,121,971,1104,1039,444,683, - 685,663,663,275,444,445,445,445,445,445, - 445,445,445,445,445,445,445,445,445,445, - 445,445,445,445,444,444,444,444,444,444, - 444,444,444,444,444,444,445,91,803,803, - 803,803,271,91,94,94,1100,1028,1039,555, - 1039,487,1039,42,1039,1023,1102,484,361,361, - 94,445,1100,320,513,503,502,364,1046,1046, - 1102,315,361,121,444,482,970,481,484,483, - 481,91,361,693,693,691,691,691,698,698, - 698,698,696,696,703,700,700,706,705,707, - 1116,708,398,398,398,398,484,484,803,802, - 803,680,484,676,226,226,484,491,271,490, - 552,493,558,484,484,484,271,803,82,361, - 724,91,515,517,484,971,445,122,689,47, - 91,1104,484,484,820,483,971,444,444,444, - 444,444,398,398,428,930,676,226,226,491, - 553,491,271,491,558,558,484,271,484,91, - 507,495,506,517,271,482,91,689,1100,970, - 1104,484,482,91,91,91,91,275,275,676, - 675,672,484,226,1116,43,820,273,1016,1106, - 226,672,491,491,563,484,558,672,670,671, - 484,571,444,504,504,160,160,484,511,1100, - 9,91,484,689,690,689,444,47,224,685, - 1104,91,91,676,971,625,493,803,820,481, - 805,1108,478,398,809,149,564,484,672,445, - 484,571,444,444,517,971,91,515,495,571, - 1081,689,275,445,361,224,482,625,625,826, - 242,482,492,492,478,729,1100,813,445,1116, - 168,563,484,1102,1102,484,877,517,482,571, - 690,91,361,730,672,623,932,215,398,43, - 862,625,625,242,482,492,493,1102,1108,478, - 445,445,484,484,484,877,91,877,825,215, - 623,822,1102,672,802,820,154,154,730,493, - 408,810,484,398,484,484,398,870,877,826, - 625,730,167,729,91,1102,484,242,826,242, - 801,801,887,409,1102,484,275,518,870,625, - 444,979,478,730,484,484,242,122,122,887, - 408,1116,445,1116,730,398,398,398,409,398, - 484,181,730,730,484,493,91,90,872,672, - 91,977,484,730,802,400,398,400,1116,409, - 428,428,426,885,428,730,730,883,887,122, - 872,977,730,550,9,91,478,91,426,215, - 398,91,887,671,154,91,91,1094,409,883, - 409,730,215,444,409,406,977,801,493,493, - 1096,444,407,275,730,91,481,409,91,730, - 409 + 617,94,45,88,390,668,668,668,668,1106, + 390,750,750,850,750,506,29,508,46,46, + 46,46,46,46,46,46,46,752,758,763, + 760,767,765,772,770,774,773,775,209,776, + 45,45,124,124,124,124,85,468,96,96, + 747,124,438,206,750,750,96,881,752,206, + 206,197,29,939,123,1021,1108,1043,45,750, + 752,730,730,468,45,46,46,46,46,46, + 46,46,46,46,46,46,46,46,46,46, + 46,46,46,46,45,45,45,45,45,45, + 45,45,45,45,45,45,46,206,920,920, + 920,920,352,206,96,96,1104,1032,1043,679, + 1043,674,1043,676,1043,1027,1106,85,438,438, + 96,46,1104,397,541,531,530,356,1050,1050, + 1106,508,438,123,45,83,1020,82,85,84, + 82,206,438,760,760,758,758,758,765,765, + 765,765,763,763,770,767,767,773,772,774, + 1120,775,390,390,390,390,85,85,920,919, + 920,747,85,743,307,85,456,352,392,454, + 679,518,85,85,85,352,920,197,438,791, + 206,543,545,85,1021,46,124,756,162,206, + 1108,85,85,668,84,1021,45,45,45,45, + 45,390,390,29,980,743,307,456,455,456, + 352,456,518,518,85,352,85,206,535,523, + 534,545,352,83,206,756,1104,1020,1108,85, + 83,206,206,206,206,468,468,743,742,515, + 85,307,1120,677,668,354,843,1110,307,456, + 456,460,85,518,515,513,514,85,682,45, + 532,532,441,441,85,539,1104,584,206,85, + 756,757,756,45,162,260,752,1108,206,206, + 743,1021,692,679,920,668,82,737,1112,79, + 390,580,151,461,85,515,46,85,682,45, + 45,545,1021,206,543,523,682,1085,756,468, + 46,438,260,83,692,692,263,323,83,456, + 456,79,796,1104,661,46,1120,449,460,85, + 1106,1106,85,929,545,83,682,757,206,438, + 797,515,659,982,251,390,677,299,692,692, + 323,83,456,679,1106,1112,79,46,46,85, + 85,85,929,206,929,262,251,659,670,1106, + 515,919,668,156,156,797,679,9,580,85, + 390,85,85,390,922,929,263,692,797,448, + 796,206,1106,85,323,263,323,918,918,937, + 10,1106,85,468,546,922,692,45,805,79, + 797,85,85,323,124,124,937,9,1120,46, + 1120,797,8,390,390,390,10,390,85,217, + 797,797,85,679,206,205,924,515,206,804, + 85,797,919,1,390,1,1120,10,29,29, + 27,800,29,797,797,935,937,124,924,804, + 797,578,584,206,79,206,27,251,390,206, + 937,514,802,156,206,206,1098,10,935,10, + 797,251,45,10,7,804,918,679,679,1100, + 45,8,468,797,206,82,10,206,797,10 }; }; public final static char asb[] = Asb.asb; @@ -1736,118 +1714,119 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asr { public final static byte asr[] = {0, - 9,71,118,73,13,67,121,0,48,14, - 15,61,46,16,68,49,17,18,50,51, - 19,20,52,53,21,22,54,69,55,10, - 70,23,41,24,47,25,1,2,4,95, - 0,4,1,2,60,0,96,90,11,12, - 91,92,88,89,28,93,94,97,98,99, - 100,101,102,117,71,95,66,107,108,109, - 110,111,112,113,114,115,116,118,72,13, - 121,62,1,2,8,6,4,3,56,67, - 73,9,0,32,64,33,34,65,7,35, - 36,37,38,58,39,40,42,43,44,29, - 26,27,8,6,11,12,5,30,62,45, - 3,48,14,15,61,46,16,68,49,17, - 18,50,51,19,20,52,53,21,22,54, - 69,55,10,70,23,24,47,25,1,2, - 4,41,0,62,66,67,1,2,0,76, - 60,62,71,95,73,56,3,9,67,13, - 66,0,62,71,95,67,118,73,72,121, - 14,15,32,64,16,33,34,18,19,20, - 65,35,21,22,36,37,38,58,39,40, - 10,23,24,25,42,43,44,29,26,27, - 11,12,30,45,9,8,6,4,13,1, - 2,7,3,5,0,75,57,7,103,104, - 105,59,9,3,8,6,5,71,72,13, - 74,48,14,15,61,46,16,68,49,17, - 18,50,51,19,20,52,53,21,22,54, - 69,55,10,70,23,41,24,47,25,4, - 1,2,31,0,9,73,14,15,32,16, - 33,34,18,19,20,35,21,22,36,37, - 38,58,39,40,10,23,24,25,42,43, - 44,29,3,26,27,8,6,11,12,30, - 4,45,5,7,1,2,65,64,0,64, - 65,3,10,33,37,35,32,40,15,25, - 14,21,19,20,22,23,18,16,24,42, - 45,43,44,29,39,34,38,5,7,4, - 26,27,8,6,11,12,30,36,1,2, - 118,9,0,48,14,15,46,16,49,17, - 18,50,51,19,20,52,7,53,21,22, - 54,55,23,41,24,47,25,1,2,9, - 56,8,6,5,4,73,13,3,0,75, - 103,104,105,31,71,119,122,72,74,76, - 59,57,63,78,80,86,84,77,82,83, - 85,87,60,79,81,13,9,48,61,46, - 68,49,17,50,51,52,53,54,69,55, - 70,41,47,58,64,65,10,33,37,35, - 32,40,15,25,14,21,19,20,22,23, - 18,16,24,42,45,43,44,29,39,34, - 38,26,27,11,12,30,36,8,6,3, - 4,7,5,1,2,0,31,1,2,4, - 9,71,60,0,8,6,4,5,7,1, - 2,3,56,62,66,67,9,73,95,0, - 7,5,3,56,6,8,95,48,14,15, - 46,16,68,49,17,18,50,51,19,20, - 52,53,21,22,54,69,55,10,70,23, - 41,24,47,25,1,2,4,73,9,61, - 0,4,71,28,60,9,0,1,2,9, - 72,0,41,1,2,4,103,104,105,0, - 46,58,47,9,62,95,66,67,73,0, - 14,15,32,64,16,33,34,18,19,20, - 65,7,35,21,22,36,37,38,58,39, - 40,10,23,24,25,42,43,44,1,2, - 3,26,27,8,6,11,12,5,30,4, - 45,74,29,0,63,48,14,15,61,46, - 16,68,49,75,17,18,50,51,19,20, - 52,57,53,21,22,54,69,55,10,70, - 23,59,41,24,47,25,9,3,8,6, - 72,13,7,4,31,5,1,2,0,66, - 67,72,9,0,58,46,7,47,5,1, - 2,4,76,60,120,106,26,27,56,3, - 96,90,6,91,92,11,12,89,88,28, - 93,94,97,98,8,99,100,101,62,95, - 73,121,66,107,108,109,110,111,112,113, - 114,115,116,71,118,72,102,117,67,13, - 9,0,48,14,15,61,46,16,68,49, + 87,114,115,116,44,72,119,122,68,74, + 75,59,57,60,77,79,85,83,76,81, + 82,84,86,66,78,80,13,8,48,61, + 46,69,49,17,50,51,52,53,54,70, + 55,71,45,47,58,62,63,10,32,36, + 34,31,39,15,25,14,21,19,20,22, + 23,18,16,24,40,43,41,42,28,38, + 33,37,26,27,11,12,30,35,9,6, + 3,4,7,5,1,2,0,8,72,118, + 73,13,65,121,0,31,62,32,33,63, + 7,34,35,36,37,58,38,39,40,41, + 42,28,26,27,9,6,11,12,5,30, + 64,43,3,48,14,15,61,46,16,69, + 49,17,18,50,51,19,20,52,53,21, + 22,54,70,55,10,71,23,24,47,25, + 1,2,4,45,0,64,67,65,1,2, + 0,96,90,11,12,91,92,88,89,29, + 93,94,97,98,99,100,101,102,117,72, + 95,67,104,105,106,107,108,109,110,111, + 112,113,118,68,13,121,64,1,2,9, + 6,4,3,56,65,73,8,0,64,72, + 95,65,118,73,68,121,14,15,31,62, + 16,32,33,18,19,20,63,34,21,22, + 35,36,37,58,38,39,10,23,24,25, + 40,41,42,28,26,27,11,12,30,43, + 8,9,6,4,13,1,2,7,3,5, + 0,66,61,46,16,69,49,18,50,51, + 19,20,52,53,21,22,54,70,55,71, + 23,45,24,47,25,15,14,48,8,3, + 9,6,13,59,60,87,17,44,7,1, + 2,5,4,10,57,0,87,57,7,114, + 115,116,59,8,3,9,6,5,72,68, + 13,74,48,14,15,61,46,16,69,49, 17,18,50,51,19,20,52,53,21,22, - 54,69,55,10,70,23,41,24,47,25, - 1,2,4,65,64,11,12,6,91,92, - 99,8,100,5,30,28,110,111,107,108, - 109,115,114,116,89,88,112,113,97,98, - 93,94,101,102,26,27,90,106,3,56, - 66,67,62,0,60,71,76,0,9,60, - 67,0,71,9,56,3,66,67,13,28, - 0,60,66,0,60,61,46,16,68,49, - 18,50,51,19,20,52,53,21,22,54, - 69,55,70,23,41,24,47,25,15,14, - 48,9,3,8,6,13,59,63,75,17, - 31,7,1,2,5,4,10,57,0,46, - 47,76,3,60,71,13,58,9,62,95, - 67,73,66,0,77,0,119,0,64,65, - 26,27,8,11,12,5,30,36,3,4, - 7,42,45,43,44,29,39,34,38,15, + 54,70,55,10,71,23,45,24,47,25, + 4,1,2,44,0,48,14,15,46,16, + 49,17,18,50,51,19,20,52,7,53, + 21,22,54,55,23,45,24,47,25,1, + 2,8,56,9,6,5,4,73,13,3, + 0,4,8,72,66,0,62,63,3,10, + 32,36,34,31,39,15,25,14,21,19, + 20,22,23,18,16,24,40,43,41,42, + 28,38,33,37,5,7,4,26,27,9, + 6,11,12,30,35,1,2,118,8,0, + 75,64,72,95,73,66,56,3,8,65, + 13,67,0,4,29,8,72,66,0,45, + 1,2,4,114,115,116,0,8,73,14, + 15,31,16,32,33,18,19,20,34,21, + 22,35,36,37,58,38,39,10,23,24, + 25,40,41,42,28,3,26,27,9,6, + 11,12,30,4,43,5,7,1,2,63, + 62,0,67,65,68,8,0,1,2,8, + 68,0,9,6,4,5,7,1,2,3, + 56,64,67,65,8,73,95,0,7,5, + 3,56,6,9,95,48,14,15,46,16, + 69,49,17,18,50,51,19,20,52,53, + 21,22,54,70,55,10,71,23,45,24, + 47,25,1,2,4,73,8,61,0,8, + 66,65,0,48,14,15,61,46,16,69, + 49,17,18,50,51,19,20,52,53,21, + 22,54,70,55,10,71,23,45,24,47, + 25,1,2,4,95,0,14,15,31,62, + 16,32,33,18,19,20,63,7,34,21, + 22,35,36,37,58,38,39,10,23,24, + 25,40,41,42,1,2,3,26,27,9, + 6,11,12,5,30,4,43,74,28,0, + 72,8,56,3,67,65,13,29,0,8, + 66,67,0,44,72,4,1,2,66,8, + 0,46,58,47,8,64,95,67,65,73, + 0,60,48,14,15,61,46,16,69,49, + 87,17,18,50,51,19,20,52,57,53, + 21,22,54,70,55,10,71,23,59,45, + 24,47,25,8,3,9,6,68,13,7, + 4,44,5,1,2,0,8,72,66,75, + 0,58,46,7,47,5,1,2,4,75, + 66,120,103,26,27,56,3,96,90,6, + 91,92,11,12,89,88,29,93,94,97, + 98,9,99,100,101,64,95,73,121,67, + 104,105,106,107,108,109,110,111,112,113, + 72,118,68,102,117,65,13,8,0,76, + 0,65,13,68,62,63,58,26,27,9, + 6,11,12,30,35,3,40,43,41,42, + 28,38,33,37,15,25,14,21,19,20, + 22,23,18,16,24,32,36,34,31,39, + 66,8,7,1,2,5,4,10,0,48, + 14,15,61,46,16,69,49,17,18,50, + 51,19,20,52,53,21,22,54,70,55, + 10,71,23,45,24,47,25,1,2,4, + 63,62,11,12,6,91,92,99,9,100, + 5,30,29,107,108,104,105,106,112,111, + 113,89,88,109,110,97,98,93,94,101, + 102,26,27,90,103,3,56,67,65,64, + 0,46,47,75,3,72,13,66,58,8, + 64,95,65,73,67,0,119,0,62,63, + 26,27,9,11,12,5,30,35,3,4, + 7,40,43,41,42,28,38,33,37,15, 25,14,21,19,20,22,23,18,16,24, - 10,33,37,35,32,40,56,1,2,6, - 0,61,46,16,68,49,18,50,51,19, - 20,52,53,21,22,54,69,55,10,70, - 23,41,24,47,25,15,14,48,9,3, - 8,13,59,57,63,75,17,28,4,6, - 7,1,2,5,31,0,9,72,64,65, - 58,26,27,8,6,11,12,30,36,3, - 42,45,43,44,29,39,34,38,15,25, - 14,21,19,20,22,23,18,16,24,33, - 37,35,32,40,60,7,1,2,5,4, - 10,0,10,68,61,69,70,15,25,14, - 21,19,20,22,23,18,16,24,76,60, - 71,95,118,72,121,120,96,106,90,26, - 27,11,12,91,92,88,89,28,62,93, - 94,97,98,99,100,101,102,117,66,107, - 108,109,110,111,112,113,114,115,116,67, - 48,46,49,17,50,51,52,53,54,55, - 41,47,13,9,73,3,56,7,5,6, - 8,1,2,4,0,13,9,7,5,3, - 1,2,6,8,4,71,0 + 10,32,36,34,31,39,56,1,2,6, + 0,61,46,16,69,49,18,50,51,19, + 20,52,53,21,22,54,70,55,10,71, + 23,45,24,47,25,15,14,48,8,3, + 9,13,59,57,60,87,17,29,4,6, + 7,1,2,5,44,0,10,69,61,70, + 71,15,25,14,21,19,20,22,23,18, + 16,24,75,72,95,118,68,66,121,120, + 96,103,90,26,27,11,12,91,92,88, + 89,29,64,93,94,97,98,99,100,101, + 102,117,67,104,105,106,107,108,109,110, + 111,112,113,65,48,46,49,17,50,51, + 52,53,54,55,45,47,13,8,73,3, + 56,7,5,6,9,1,2,4,0,13, + 8,7,5,3,1,2,6,9,4,72, + 0 }; }; public final static byte asr[] = Asr.asr; @@ -1855,59 +1834,58 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasb { public final static char nasb[] = {0, - 186,12,30,12,12,12,12,12,12,174, - 12,12,12,197,12,46,214,135,30,30, - 223,30,30,30,30,30,30,12,12,12, - 12,12,12,12,12,12,12,12,30,12, - 30,158,260,260,260,260,135,99,133,133, - 56,5,107,246,12,12,133,199,12,246, - 246,177,1,30,13,66,12,12,158,12, - 12,38,38,99,158,30,30,30,30,30, - 30,30,30,30,30,30,30,30,30,30, - 30,30,30,30,30,30,30,30,30,30, - 30,30,30,30,30,158,30,246,12,12, - 12,12,25,246,28,28,173,241,242,12, - 242,113,242,61,242,235,10,135,107,107, - 28,30,173,102,176,68,68,12,12,12, - 10,135,107,260,122,21,50,20,227,135, - 20,246,107,12,12,12,12,12,12,12, + 167,12,65,12,12,12,12,12,12,194, + 12,12,12,213,12,26,146,77,65,65, + 196,65,65,65,65,65,65,12,12,12, + 12,12,12,12,12,12,12,12,65,12, + 65,106,41,41,41,41,77,116,160,160, + 143,5,97,219,12,12,160,215,12,219, + 219,134,1,65,85,46,12,12,106,12, + 12,30,30,116,106,65,65,65,65,65, + 65,65,65,65,65,65,65,65,65,65, + 65,65,65,65,65,65,65,65,65,65, + 65,65,65,65,65,106,65,219,12,12, + 12,12,80,219,36,36,193,258,259,131, + 259,175,259,48,259,252,10,77,97,97, + 36,65,193,92,133,15,15,12,12,12, + 10,77,97,41,52,209,57,208,200,77, + 208,219,97,12,12,12,12,12,12,12, 12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,115,11,12,12, - 12,183,135,133,133,133,115,133,256,133, - 12,12,133,256,135,11,12,12,181,107, - 12,246,143,133,135,66,30,260,133,70, - 246,12,11,135,12,148,66,30,158,158, - 158,158,12,12,28,12,161,201,201,133, - 133,59,65,59,133,228,11,65,115,246, - 12,126,12,194,64,115,246,44,183,50, - 12,227,115,246,246,246,246,99,99,133, - 161,78,135,210,12,82,12,12,88,248, - 201,78,59,59,151,115,228,78,12,12, - 115,133,30,12,12,68,68,135,125,173, - 194,246,115,133,54,12,158,183,149,12, - 12,246,246,161,66,133,12,12,12,174, - 133,167,128,12,12,174,90,256,78,30, - 228,161,30,30,133,66,246,143,15,133, - 12,44,99,30,107,149,21,218,133,230, - 133,256,133,92,17,210,173,12,30,12, - 86,163,256,174,174,11,133,194,21,161, - 54,246,107,210,78,12,230,249,12,228, - 88,230,218,194,21,92,36,118,128,17, - 30,30,11,256,256,94,246,133,133,167, - 12,12,174,78,12,12,80,80,210,36, - 189,12,256,12,11,11,12,133,94,230, - 133,210,84,12,246,174,256,194,230,133, - 12,12,133,138,118,11,99,244,161,218, - 122,30,128,210,256,82,194,260,260,212, - 155,12,30,12,210,12,12,12,156,12, - 228,208,210,210,228,111,246,246,133,78, - 246,133,82,210,12,109,12,12,12,156, - 263,263,192,12,263,210,210,12,133,260, - 94,73,210,12,260,246,128,246,259,133, - 12,246,212,78,80,246,246,133,156,12, - 156,210,128,158,156,109,73,12,111,111, - 126,30,12,96,210,246,20,156,246,210, - 156 + 12,12,12,12,12,12,177,11,12,12, + 12,140,77,160,160,177,160,180,160,12, + 131,160,180,77,11,12,12,138,97,12, + 219,261,160,77,46,65,41,160,87,219, + 12,11,77,12,113,46,65,106,106,106, + 106,12,12,36,12,101,237,160,160,150, + 45,150,160,201,11,45,177,219,12,153, + 12,172,44,177,219,24,140,57,12,200, + 177,219,219,219,219,116,116,160,101,124, + 77,185,12,164,12,12,90,266,237,150, + 150,109,177,201,124,12,12,177,160,65, + 12,12,15,15,77,152,193,172,219,177, + 160,83,12,106,140,114,12,12,219,219, + 101,46,160,131,12,12,194,160,187,155, + 12,12,194,162,180,124,65,201,101,65, + 65,160,46,219,261,203,160,12,24,116, + 65,97,114,209,221,160,229,160,180,160, + 71,205,185,193,12,65,12,61,17,180, + 194,194,11,160,172,209,101,83,219,97, + 185,124,12,229,267,12,49,90,229,221, + 172,209,71,226,119,155,205,65,65,11, + 180,180,55,219,160,130,187,12,12,194, + 124,12,12,75,75,185,226,123,12,180, + 12,11,11,12,160,55,229,160,185,73, + 12,219,194,180,172,229,160,12,12,160, + 103,119,11,116,217,101,221,52,64,155, + 185,180,165,172,41,41,99,126,12,65, + 12,185,12,12,12,12,127,12,201,183, + 185,185,201,21,219,219,160,124,219,160, + 165,185,12,13,12,12,12,127,248,248, + 170,12,248,185,185,12,160,41,55,63, + 185,12,41,219,155,219,244,160,12,219, + 99,124,12,75,219,219,160,127,12,127, + 185,155,106,127,13,63,12,21,21,153, + 65,12,234,185,219,208,127,219,185,127 }; }; public final static char nasb[] = Nasb.nasb; @@ -1915,33 +1893,34 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasr { public final static char nasr[] = {0, - 3,13,7,10,149,147,119,146,145,5, - 2,0,170,0,94,93,48,63,54,5, - 7,10,2,0,48,65,0,44,4,5, - 7,10,2,13,0,156,0,5,2,10, - 7,136,0,140,0,2,7,3,0,65, - 135,134,0,138,0,4,186,0,108,0, - 5,1,0,48,2,65,0,71,0,4, - 172,0,13,2,10,7,5,64,0,107, - 0,103,0,178,0,182,0,152,0,184, - 0,155,0,123,0,4,173,0,4,96, - 0,13,2,10,7,5,75,0,111,0, - 59,0,5,43,2,3,0,166,5,165, - 0,4,31,0,34,94,93,63,48,7, - 10,2,4,0,2,43,0,4,47,39, - 174,0,23,4,5,89,0,2,112,0, - 5,99,183,0,64,47,76,4,39,0, - 60,0,5,99,162,0,2,63,48,7, - 10,4,89,5,0,34,93,94,4,0, - 94,93,5,54,0,4,169,0,4,64, - 0,39,176,23,4,0,4,44,167,0, - 4,47,72,99,45,5,0,4,39,38, - 0,157,0,4,44,39,0,113,4,47, - 72,0,5,7,10,13,3,1,0,4, - 47,72,83,0,2,5,119,115,116,117, - 13,86,0,44,4,34,0,38,48,7, - 10,2,4,154,0,2,61,0,175,4, - 44,0,4,44,102,0 + 3,13,7,10,148,146,120,145,144,5, + 2,0,112,0,67,0,5,102,161,0, + 42,60,0,139,0,2,7,3,0,5, + 2,10,7,135,0,5,7,10,2,13, + 4,45,0,49,2,66,0,5,1,42, + 0,4,31,0,124,0,66,134,133,0, + 183,0,65,42,5,7,10,2,13,0, + 154,0,177,0,108,0,2,44,0,49, + 66,0,137,0,169,0,4,171,0,151, + 0,13,2,10,7,5,76,0,156,0, + 61,0,48,42,173,4,39,0,5,102, + 184,0,2,113,0,4,97,0,165,5, + 164,0,4,65,0,65,39,48,77,4, + 42,0,34,94,95,4,0,95,94,5, + 55,0,4,187,0,4,45,39,0,109, + 0,34,95,94,64,49,7,10,2,4, + 0,185,0,42,104,0,4,168,0,39, + 175,24,4,0,5,44,2,3,0,2, + 62,0,4,39,38,0,2,64,49,7, + 10,4,90,5,0,5,7,10,13,3, + 1,0,95,94,49,64,55,5,7,10, + 2,0,4,45,166,0,45,4,34,0, + 114,4,48,75,0,42,155,0,4,48, + 75,84,0,4,172,0,4,48,75,102, + 46,5,0,45,4,174,0,4,45,103, + 0,2,5,120,116,117,118,13,87,0, + 24,4,5,90,0,38,49,7,10,2, + 4,153,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -1949,19 +1928,19 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TerminalIndex { public final static char terminalIndex[] = {0, - 115,116,3,33,15,12,81,11,1,102, - 13,14,121,50,54,62,68,70,76,77, - 88,89,104,107,109,9,10,21,114,16, - 95,57,63,69,86,90,92,96,99,101, - 106,111,112,113,123,56,108,49,66,72, - 75,78,85,91,100,2,79,97,105,4, - 55,22,48,60,80,35,46,65,93,103, - 32,120,119,122,67,98,110,51,52,58, - 59,61,71,73,74,87,94,19,20,8, - 17,18,23,24,34,6,25,26,27,28, - 29,30,82,83,84,7,36,37,38,39, - 40,41,42,43,44,45,31,118,53,5, - 124,64,117 + 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,19,14, + 55,61,67,84,88,90,94,97,99,109, + 110,111,123,93,104,54,106,47,64,70, + 73,76,83,89,98,1,77,95,103,46, + 53,58,78,20,44,121,33,119,63,91, + 101,30,118,122,96,108,49,50,56,57, + 59,69,71,72,85,92,65,17,18,6, + 15,16,21,22,32,4,23,24,25,26, + 27,28,5,34,35,36,37,38,39,40, + 41,42,43,80,81,82,29,117,51,3, + 124,62,116 }; }; public final static char terminalIndex[] = TerminalIndex.terminalIndex; @@ -1969,26 +1948,26 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, - 131,136,138,0,0,137,235,135,0,229, - 134,0,145,133,0,0,144,150,0,0, - 151,160,181,161,162,163,164,165,166,167, - 153,168,169,127,170,0,143,129,132,171, - 0,140,139,154,179,0,0,0,0,0, - 0,0,0,157,0,204,0,147,174,188, - 0,201,205,128,0,0,0,0,0,0, - 206,0,0,177,126,173,0,0,0,0, - 0,0,130,0,0,187,0,0,202,212, - 159,208,209,210,0,0,0,0,220,148, - 207,176,197,0,0,211,0,0,0,240, - 241,149,180,0,190,191,192,193,194,196, - 199,0,0,214,217,219,0,221,0,238, - 0,239,0,141,142,146,0,0,156,158, - 0,172,0,182,183,184,185,186,189,0, - 195,0,198,203,0,215,216,0,223,224, - 226,228,0,232,233,234,236,237,125,0, - 152,155,0,175,0,178,0,200,213,218, - 222,225,227,0,230,231,242,243,0,0, - 0,0,0,0 + 132,137,139,0,0,138,236,136,0,230, + 135,0,146,134,0,0,145,151,0,0, + 152,161,162,182,163,164,165,166,167,168, + 154,169,170,127,171,0,144,129,133,172, + 0,130,141,140,155,180,0,0,0,0, + 0,0,0,0,158,0,205,0,148,175, + 189,0,202,206,128,0,207,0,178,0, + 0,0,0,0,0,126,174,0,0,0, + 0,0,0,131,0,0,188,0,0,203, + 213,160,209,210,211,0,0,0,0,149, + 208,221,177,198,0,0,212,0,0,0, + 241,242,150,181,0,191,192,193,194,195, + 197,200,0,0,215,218,220,0,239,0, + 240,0,142,143,147,0,0,157,159,0, + 173,0,183,184,185,186,187,190,0,196, + 0,199,204,0,216,217,0,222,225,227, + 229,0,233,234,235,237,238,125,0,153, + 156,0,176,0,179,0,201,214,219,0, + 223,224,226,228,0,231,232,243,244,0, + 0,0,0,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -1996,18 +1975,18 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopePrefix { public final static char scopePrefix[] = { - 161,574,593,525,541,552,563,366,271,285, - 307,313,42,296,386,424,169,582,476,20, - 51,71,80,85,90,127,141,197,302,319, - 330,341,277,291,500,27,376,341,601,27, - 219,250,1,14,61,76,106,151,232,324, - 337,346,355,359,442,469,521,611,615,619, - 97,7,97,151,404,420,433,453,513,433, - 532,548,559,570,209,487,56,56,158,224, - 227,245,266,227,227,56,363,448,466,473, - 158,56,632,110,238,408,460,116,116,238, - 56,238,395,179,104,446,623,630,623,630, - 65,414,134,134,104,104,255 + 151,564,583,515,531,542,553,356,261,275, + 297,303,42,286,376,414,159,572,466,20, + 51,71,80,85,90,127,187,292,309,320, + 331,267,281,490,27,366,331,591,27,209, + 240,1,14,61,76,106,141,222,314,327, + 336,345,349,432,459,511,601,605,609,97, + 7,97,141,394,410,423,443,503,423,522, + 538,549,560,199,477,56,56,148,214,217, + 235,256,217,217,56,353,438,456,463,148, + 56,622,110,228,398,450,116,116,228,56, + 228,385,169,104,436,613,620,613,620,65, + 404,134,104,104,245 }; }; public final static char scopePrefix[] = ScopePrefix.scopePrefix; @@ -2015,18 +1994,18 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeSuffix { public final static char scopeSuffix[] = { - 18,5,5,5,5,5,5,373,132,95, - 132,132,48,282,392,430,175,67,482,25, - 25,25,59,59,95,132,132,202,132,132, - 335,335,282,101,505,38,381,588,606,32, - 213,213,5,18,5,59,95,132,236,328, - 328,328,95,95,132,248,5,5,5,248, - 236,11,101,155,373,373,373,457,505,437, - 536,536,536,536,213,491,59,59,5,5, - 230,248,5,269,269,353,95,451,5,248, - 5,498,5,113,350,411,463,119,123,241, - 517,508,398,182,95,95,625,625,627,627, - 67,416,136,146,204,189,257 + 18,5,5,5,5,5,5,363,132,95, + 132,132,48,272,382,420,165,67,472,25, + 25,25,59,59,95,132,192,132,132,325, + 325,272,101,495,38,371,578,596,32,203, + 203,5,18,5,59,95,132,226,318,318, + 318,95,95,132,238,5,5,5,238,226, + 11,101,145,363,363,363,447,495,427,526, + 526,526,526,203,481,59,59,5,5,220, + 238,5,259,259,343,95,441,5,238,5, + 488,5,113,340,401,453,119,123,231,507, + 498,388,172,95,95,615,615,617,617,67, + 406,136,194,179,247 }; }; public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; @@ -2034,18 +2013,18 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeLhs { public final static char scopeLhs[] = { - 45,17,17,17,17,17,17,79,85,46, - 69,117,66,52,79,78,45,17,19,3, - 6,9,162,162,128,115,115,45,70,117, - 116,118,53,46,136,131,79,17,17,131, - 95,55,133,82,165,162,128,125,57,116, - 116,118,177,50,59,140,17,17,17,17, - 12,111,128,125,79,78,78,36,136,78, - 17,17,17,17,95,19,166,162,178,93, - 101,71,56,154,74,118,80,77,141,140, - 170,136,16,128,118,102,21,126,126,54, - 136,136,79,45,128,73,134,43,134,43, - 165,102,115,115,45,45,55 + 46,17,17,17,17,17,17,80,86,47, + 73,118,70,53,80,79,46,17,19,3, + 6,9,161,161,158,116,46,74,118,117, + 119,54,47,135,130,80,17,17,130,96, + 56,132,83,164,161,158,126,58,117,117, + 119,176,51,60,139,17,17,17,17,12, + 112,158,126,80,79,79,36,135,79,17, + 17,17,17,96,19,165,161,177,94,101, + 67,57,153,69,119,81,78,140,139,169, + 135,16,158,119,103,21,127,127,55,135, + 135,80,46,158,68,133,44,133,44,164, + 103,116,46,46,56 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -2053,18 +2032,18 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeLa { public final static byte scopeLa[] = { - 119,73,73,73,73,73,73,73,72,13, - 72,72,62,1,73,122,60,3,73,62, - 62,62,1,1,13,72,72,60,72,72, - 1,1,1,1,4,62,13,1,1,62, - 73,73,73,119,73,1,13,72,1,1, - 1,1,13,13,72,118,73,73,73,118, - 1,73,1,67,73,73,73,71,4,73, - 62,62,62,62,73,3,1,1,73,73, - 3,118,73,1,1,1,13,71,73,118, - 73,5,73,1,31,66,73,1,1,6, - 1,31,77,76,13,13,4,4,4,4, - 3,1,9,60,1,1,3 + 119,73,73,73,73,73,73,73,68,13, + 68,68,64,1,73,122,66,3,73,64, + 64,64,1,1,13,68,66,68,68,1, + 1,1,1,4,64,13,1,1,64,73, + 73,73,119,73,1,13,68,1,1,1, + 1,13,13,68,118,73,73,73,118,1, + 73,1,65,73,73,73,72,4,73,64, + 64,64,64,73,3,1,1,73,73,3, + 118,73,1,1,1,13,72,73,118,73, + 5,73,1,44,67,73,1,1,6,1, + 44,76,75,13,13,4,4,4,4,3, + 1,66,1,1,3 }; }; public final static byte scopeLa[] = ScopeLa.scopeLa; @@ -2072,18 +2051,18 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeStateSet { public final static char scopeStateSet[] = { - 94,245,245,245,245,245,245,105,85,94, - 82,151,82,97,105,105,94,245,245,178, - 220,221,53,53,78,151,151,94,82,151, - 151,151,97,94,134,46,105,245,245,46, - 143,62,24,105,28,53,78,308,62,151, - 151,151,20,97,31,59,245,245,245,245, - 240,6,78,308,105,105,105,277,134,105, - 245,245,245,245,143,245,28,53,22,143, - 145,139,62,56,67,151,105,105,50,59, - 137,134,245,78,151,1,246,151,151,118, - 134,134,105,94,78,11,115,155,115,155, - 28,1,151,151,94,94,62 + 92,242,242,242,242,242,242,102,83,92, + 81,148,81,94,102,102,92,242,242,175, + 217,218,53,53,78,148,92,81,148,148, + 148,94,92,131,46,102,242,242,46,140, + 62,24,102,28,53,78,305,62,148,148, + 148,20,94,31,59,242,242,242,242,237, + 6,78,305,102,102,102,274,131,102,242, + 242,242,242,140,242,28,53,22,140,142, + 136,62,56,67,148,102,102,50,59,134, + 131,242,78,148,1,243,148,148,115,131, + 131,102,92,78,11,112,152,112,152,28, + 1,148,92,92,62 }; }; public final static char scopeStateSet[] = ScopeStateSet.scopeStateSet; @@ -2091,69 +2070,68 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeRhs { public final static char scopeRhs[] = {0, - 311,3,58,0,127,0,310,3,119,0, - 127,174,0,127,182,76,0,216,0,252, - 127,28,125,0,22,0,291,127,28,31, - 0,22,55,0,35,133,0,22,55,0, - 0,291,127,28,31,195,0,22,130,0, - 252,127,28,130,0,184,128,0,143,0, - 219,3,289,0,289,0,3,0,127,0, - 252,127,28,133,0,184,128,222,0,184, - 128,41,222,0,184,128,307,41,0,131, - 188,166,128,0,129,0,188,166,128,0, - 135,129,0,170,0,304,127,170,0,127, - 170,0,222,129,0,166,242,0,138,0, - 0,0,136,0,0,0,281,127,9,249, - 0,128,0,249,0,1,0,0,128,0, - 281,127,60,249,0,4,0,0,128,0, - 303,127,60,0,46,128,0,154,3,0, - 127,279,278,127,76,277,170,0,278,127, - 76,277,170,0,215,0,216,0,277,170, - 0,98,0,0,215,0,216,0,203,98, - 0,0,215,0,216,0,278,127,277,170, - 0,215,0,203,0,0,215,0,227,127, - 3,0,127,0,0,0,0,0,227,127, - 3,216,0,224,3,0,212,127,0,208, - 0,188,166,171,0,135,0,166,128,0, - 12,0,0,0,214,56,0,126,0,227, - 127,3,179,0,179,0,3,0,0,127, - 0,0,0,0,0,197,3,0,201,0, - 237,127,60,29,17,0,184,128,57,59, - 0,197,129,0,131,184,128,275,59,0, - 184,128,275,59,0,184,128,66,124,57, - 0,237,127,60,57,0,237,127,60,226, - 57,0,273,127,60,124,68,0,273,127, - 60,68,0,184,128,68,0,136,0,188, - 184,128,242,0,138,0,184,128,242,0, - 188,166,128,10,0,166,128,10,0,95, - 138,0,148,0,266,127,146,0,266,127, - 170,0,162,86,0,296,161,298,299,3, - 83,0,127,173,0,298,299,3,83,0, - 129,0,127,173,0,162,3,77,199,82, - 0,127,129,0,199,82,0,110,3,132, - 127,129,0,225,3,77,0,197,167,0, - 35,171,0,167,0,177,35,171,0,225, - 3,87,0,199,157,225,3,85,0,64, - 173,0,225,3,85,0,127,173,64,173, - 0,297,127,60,0,162,0,214,79,0, - 32,0,162,117,158,0,32,171,0,181, - 3,0,127,151,0,219,3,0,214,56, - 263,0,162,56,0,181,3,293,65,128, - 0,127,0,0,0,0,293,65,128,0, - 3,147,127,0,0,0,0,149,0,126, - 31,166,128,0,33,149,0,95,138,33, - 149,0,223,184,128,0,148,33,149,0, - 162,3,40,0,162,3,62,181,28,32, - 0,181,28,32,0,22,3,132,127,0, - 162,3,62,181,28,35,0,181,28,35, - 0,162,3,62,181,28,37,0,181,28, - 37,0,162,3,62,181,28,33,0,181, - 28,33,0,219,3,126,188,166,128,10, - 0,126,188,166,128,10,0,138,3,0, - 127,0,219,3,125,171,166,128,10,0, - 171,166,128,10,0,136,3,0,127,0, - 219,3,136,0,219,3,140,0,162,56, - 140,0,258,0,33,0,33,141,0,165, + 312,3,58,0,127,0,311,3,119,0, + 127,175,0,127,183,75,0,217,0,251, + 127,29,125,0,20,0,290,127,29,44, + 0,20,53,0,33,134,0,20,53,0, + 0,290,127,29,44,198,0,20,131,0, + 251,127,29,130,0,185,128,0,144,0, + 220,3,288,0,288,0,2,0,127,0, + 251,127,29,133,0,185,128,225,0,185, + 128,45,225,0,185,128,308,45,0,131, + 189,167,128,0,129,0,189,167,128,0, + 136,129,0,171,0,304,127,171,0,127, + 171,0,223,129,0,167,243,0,139,0, + 0,0,137,0,0,0,303,127,165,250, + 0,128,0,250,0,130,0,0,128,0, + 302,127,165,0,44,128,0,154,3,0, + 127,278,277,127,75,276,171,0,277,127, + 75,276,171,0,216,0,217,0,276,171, + 0,96,0,0,216,0,217,0,204,96, + 0,0,216,0,217,0,277,127,276,171, + 0,216,0,204,0,0,216,0,228,127, + 3,0,127,0,0,0,0,0,228,127, + 3,217,0,224,3,0,213,127,0,209, + 0,189,167,172,0,136,0,167,128,0, + 10,0,0,0,215,56,0,126,0,228, + 127,3,180,0,180,0,2,0,0,127, + 0,0,0,0,0,192,3,0,202,0, + 238,127,165,28,17,0,185,128,57,59, + 0,198,129,0,131,185,128,274,59,0, + 185,128,274,59,0,185,128,67,124,57, + 0,238,127,165,57,0,238,127,165,227, + 57,0,272,127,165,124,69,0,272,127, + 165,69,0,185,128,69,0,137,0,189, + 185,128,243,0,139,0,185,128,243,0, + 189,167,128,10,0,167,128,10,0,93, + 139,0,149,0,265,127,147,0,265,127, + 171,0,162,85,0,295,161,297,298,3, + 82,0,127,174,0,297,298,3,82,0, + 129,0,127,174,0,162,3,76,200,81, + 0,127,129,0,200,81,0,108,2,133, + 127,129,0,226,3,76,0,192,168,0, + 33,172,0,168,0,178,33,172,0,226, + 3,86,0,200,157,226,3,84,0,62, + 174,0,226,3,84,0,127,174,62,174, + 0,296,127,165,0,162,0,215,78,0, + 30,0,162,117,158,0,30,172,0,182, + 3,0,127,152,0,220,3,0,215,56, + 262,0,162,56,0,182,3,292,63,128, + 0,127,0,0,0,0,292,63,128,0, + 2,148,127,0,0,0,0,150,0,126, + 44,167,128,0,31,150,0,93,139,31, + 150,0,223,185,128,0,149,31,150,0, + 162,3,39,0,162,3,64,182,29,31, + 0,182,29,31,0,20,2,133,127,0, + 162,3,64,182,29,34,0,182,29,34, + 0,162,3,64,182,29,36,0,182,29, + 36,0,162,3,64,182,29,32,0,182, + 29,32,0,220,3,126,189,167,128,10, + 0,126,189,167,128,10,0,139,2,0, + 127,0,220,3,125,172,167,128,10,0, + 172,167,128,10,0,137,2,0,127,0, + 220,3,136,0,220,3,140,0,162,56, + 140,0,257,0,31,0,31,142,0,166, 0,162,3,0 }; }; @@ -2162,38 +2140,37 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeState { public final static char scopeState[] = {0, - 4694,4740,4728,4704,0,3271,3582,2268,3347,0, - 3394,3328,3244,3184,3124,3064,2998,2866,2803,3186, - 0,1124,0,2571,1808,1222,0,2709,2646,0, - 3394,3328,3468,3038,3244,3184,3124,3064,2516,2998, - 2866,2803,2279,716,0,4432,3329,2996,0,2574, - 809,0,2926,2828,0,3006,4501,0,1915,731, - 0,4479,3006,4415,574,4501,3298,3985,4490,4244, - 2743,4215,4386,2978,2668,2634,0,4514,4286,3269, - 0,4514,4286,3269,3628,4190,4117,3555,4108,4030, - 4020,3546,0,4514,4286,3269,3628,4190,4117,3555, - 4108,4030,4020,3546,3394,3328,3244,3184,3124,3064, - 2998,2866,2803,0,3107,791,0,2743,4479,3649, - 4415,574,3557,2978,4056,3648,3549,2804,2999,810, - 1679,1637,0,795,727,0,555,0,2843,1101, - 975,869,574,2999,3298,2668,2634,2989,2663,0, - 4282,532,2539,0,4673,4669,4648,4644,4623,4619, - 4593,4573,4718,4699,4409,4335,3664,4566,4528,3276, - 4302,3420,3150,2586,2898,2793,0,4673,3633,4669, - 3179,3098,4648,4644,4623,1936,638,4619,4593,4573, - 3570,4718,3563,3309,4699,3284,3165,2837,2698,2820, - 4409,3119,4335,2581,3664,4566,4528,2659,3276,2577, - 4302,670,3420,3150,4282,2586,2539,2898,2793,787, - 3298,3985,4490,4244,2743,4479,4215,2232,3006,1120, - 4415,935,574,4386,2978,2668,4501,2634,653,994, - 2145,2058,795,727,3996,3963,3941,2245,2282,588, - 2315,2403,2375,2346,2595,2548,2512,2485,2458,2431, - 3523,3500,3477,2949,2765,3919,3897,3875,3853,3831, - 3809,3787,3765,3743,3714,1054,1942,2195,2158,2108, - 2071,2021,1223,1175,1984,1133,876,1892,1855,817, - 741,682,1813,1771,1729,1687,1645,1603,1561,1519, - 1477,1435,1393,532,1351,1308,1078,1012,952,1265, - 0 + 4306,4653,4648,4392,0,2371,2905,557,1958,0, + 3311,3250,3189,3128,3067,3006,2941,2618,2557,3008, + 0,1017,0,2746,1819,812,0,2886,2584,0, + 3311,3250,3172,1306,3189,3128,3067,3006,572,2941, + 2618,2557,4115,3649,0,3256,3100,2943,0,1896, + 1262,0,571,2575,0,4547,4536,0,933,577, + 0,4442,4547,3719,3604,4536,3459,4079,4466,4364, + 2913,578,2563,3443,2843,2773,0,2856,4230,0, + 2856,4230,3743,4309,4268,3686,4213,4172,4114,3631, + 0,2856,4230,3743,4309,4268,3686,4213,4172,4114, + 3631,3311,3250,3189,3128,3067,3006,2941,2618,2557, + 0,978,918,0,2913,4442,4566,3719,3604,4560, + 3443,4173,4477,3687,4507,2674,731,4125,2885,0, + 797,656,0,1272,0,2562,1959,779,564,3604, + 2674,3459,2843,2773,2659,2731,0,4401,533,2645, + 0,4579,4397,3762,3711,3626,3337,3282,3262,4637, + 4625,4617,4599,4587,3215,3160,4238,3093,3079,2953, + 3026,1954,1190,0,4579,4119,4397,3749,3693,3762, + 3711,3626,3636,2784,3337,3282,3262,3518,4637,3502, + 3493,4625,3454,3375,3366,2737,2576,4617,3615,4599, + 2591,4587,3215,3160,1117,4238,866,3093,861,3079, + 2953,4401,3026,2645,1954,1190,623,3459,4079,4466, + 4364,2913,4442,578,2252,4547,2164,3719,2076,3604, + 2563,3443,2843,4536,2773,921,1056,1177,1122,797, + 656,4090,4057,4035,2266,2303,590,2336,2424,2396, + 2367,2794,2702,2533,2506,2479,2452,3579,3556,3529, + 3419,3395,4013,3991,3969,3947,3925,3903,3881,3859, + 3830,3470,990,1960,2215,2178,2127,2090,2039,1282, + 1238,2002,1196,875,1909,1872,815,742,682,1830, + 1788,1746,1704,1662,1620,1578,1536,1494,1452,1410, + 533,1368,1324,1135,1013,947,1074,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2201,59 +2178,58 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface InSymb { public final static char inSymb[] = {0, - 0,292,127,265,40,32,35,37,33,10, - 136,125,133,7,130,4,3,128,36,30, - 5,12,11,6,8,27,26,140,145,148, - 147,150,149,152,151,155,153,156,58,158, - 67,3,28,28,28,28,128,3,28,28, - 167,127,56,3,64,65,28,7,125,181, - 162,167,127,64,65,166,165,125,3,124, - 126,106,120,3,56,90,96,12,11,92, - 91,6,94,93,62,28,88,89,8,98, - 97,100,99,101,116,115,114,113,112,111, - 110,109,108,107,66,117,102,162,181,181, - 181,181,166,219,127,127,127,267,268,249, - 269,242,270,68,271,272,10,128,56,56, - 127,157,127,56,3,217,216,136,126,125, - 10,128,56,293,3,188,4,31,5,128, - 31,219,162,147,147,145,145,145,149,149, + 0,291,127,264,39,31,34,36,32,10, + 136,125,133,7,130,4,3,128,35,30, + 5,12,11,6,9,27,26,140,145,148, + 146,150,149,152,151,155,153,156,58,158, + 65,3,29,29,29,29,128,3,29,29, + 168,127,56,3,62,63,29,7,125,182, + 162,168,127,62,63,167,166,125,3,124, + 126,103,120,3,56,90,96,12,11,92, + 91,6,94,93,64,29,88,89,9,98, + 97,100,99,101,113,112,111,110,109,108, + 107,106,105,104,67,117,102,162,182,182, + 182,182,167,220,127,127,127,266,267,250, + 268,243,269,69,270,271,10,128,56,56, + 127,157,127,56,3,218,217,136,126,125, + 10,128,56,292,3,189,4,44,5,128, + 44,220,162,146,146,145,145,145,149,149, 149,149,148,148,151,150,150,153,152,155, - 162,156,62,62,62,62,188,171,252,255, - 252,212,128,6,9,60,166,230,128,126, - 125,124,60,128,128,184,166,252,212,214, - 158,224,127,3,128,166,198,3,294,167, - 154,258,188,128,125,184,166,71,3,3, - 3,3,126,125,67,166,127,127,127,126, - 125,127,184,127,60,127,184,166,31,227, - 228,146,229,127,166,31,181,127,127,4, - 223,5,31,162,162,162,162,3,3,6, - 183,281,128,168,222,57,31,195,59,170, - 282,281,127,127,71,188,127,273,124,274, - 188,157,66,224,197,186,179,171,3,127, - 67,227,188,157,260,263,56,177,4,124, - 126,219,219,127,166,60,226,28,31,275, - 277,127,3,179,306,222,41,128,273,66, - 67,127,66,66,3,166,197,127,212,157, - 126,127,3,56,162,4,188,127,60,62, - 28,128,76,127,212,304,127,125,71,284, - 197,67,128,41,307,184,220,127,188,127, - 260,219,214,131,237,17,31,170,63,57, - 59,236,127,127,184,127,278,71,67,212, - 71,66,184,128,128,127,227,220,29,127, - 3,124,57,237,291,31,10,61,131,278, - 60,288,128,289,184,184,58,157,127,127, - 60,266,197,276,29,66,128,67,62,28, - 230,230,279,127,67,184,3,3,127,127, - 3,66,67,157,128,184,127,66,66,127, - 297,81,79,1,162,87,85,83,82,77, - 84,86,80,78,57,76,219,311,220,237, - 154,60,184,226,291,280,119,9,214,71, - 3,3,3,199,3,124,162,124,182,67, - 127,127,226,62,3,225,167,225,299,146, - 77,225,127,303,61,95,310,167,157,197, - 157,298,127,3,157,280,67,230,157,157, - 127,66,199,161,266,162,66,122,296,157, - 157 + 162,156,64,64,64,64,189,172,251,254, + 251,213,128,6,165,167,231,128,126,125, + 124,165,128,128,185,167,251,213,215,158, + 224,127,3,128,167,199,3,293,168,154, + 257,189,128,125,185,167,72,3,3,3, + 3,126,125,65,167,127,127,126,125,127, + 185,127,165,127,185,167,44,228,229,147, + 230,127,167,44,182,127,127,4,223,5, + 44,162,162,162,162,3,3,6,184,303, + 128,169,225,57,44,198,59,171,305,127, + 127,72,189,127,272,124,273,189,157,67, + 224,192,187,180,172,3,127,65,228,189, + 157,259,262,56,178,4,124,126,220,220, + 127,167,165,227,29,44,274,276,127,3, + 180,307,225,45,128,272,67,65,127,67, + 67,3,167,192,127,213,157,126,127,3, + 56,162,4,189,127,165,64,29,128,75, + 127,213,304,127,125,72,283,192,65,128, + 45,308,185,221,127,189,127,259,220,215, + 131,238,17,44,171,60,57,59,237,127, + 127,185,127,277,72,65,213,72,67,185, + 128,128,127,228,221,28,127,3,124,57, + 238,290,44,10,61,131,277,165,287,128, + 288,185,185,58,157,127,127,165,265,192, + 275,28,67,128,65,64,29,231,231,278, + 127,65,185,3,3,127,127,3,67,65, + 157,128,185,127,67,67,127,296,80,78, + 1,162,8,86,84,82,81,76,83,85, + 79,77,57,75,220,312,221,238,154,165, + 185,227,290,279,119,8,215,72,3,3, + 3,200,3,124,162,124,183,65,127,127, + 227,64,3,226,168,226,298,147,76,226, + 127,302,8,61,95,311,168,157,192,157, + 297,127,3,157,279,65,231,157,157,127, + 67,200,161,265,162,67,122,295,157,157 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2262,10 +2238,8 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Name { public final static String name[] = { "", - "EOC", "[", "(", - "{", ".", ".*", "->", @@ -2378,11 +2352,13 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab "stringlit", "identifier", "Completion", + "EndOfCompletion", "Invalid", "RightBracket", "RightParen", "RightBrace", "SemiColon", + "LeftBrace", "ERROR_TOKEN", "0", "EOF_TOKEN", @@ -2391,6 +2367,7 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab ")", "}", ";", + "{", "declaration", "identifier_token", "expression", @@ -2518,8 +2495,8 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final static int ERROR_SYMBOL = 74, - SCOPE_UBOUND = 116, - SCOPE_SIZE = 117, + SCOPE_UBOUND = 114, + SCOPE_SIZE = 115, MAX_NAME_LENGTH = 37; public final int getErrorSymbol() { return ERROR_SYMBOL; } @@ -2528,20 +2505,20 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 521, + NUM_STATES = 520, NT_OFFSET = 123, - LA_STATE_OFFSET = 5792, + LA_STATE_OFFSET = 5690, MAX_LA = 2147483647, - NUM_RULES = 531, - NUM_NONTERMINALS = 194, - NUM_SYMBOLS = 317, + NUM_RULES = 532, + NUM_NONTERMINALS = 195, + NUM_SYMBOLS = 318, SEGMENT_SIZE = 8192, - START_STATE = 3027, + START_STATE = 2894, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 121, EOLT_SYMBOL = 121, - ACCEPT_ACTION = 4871, - ERROR_ACTION = 5261; + ACCEPT_ACTION = 4758, + ERROR_ACTION = 5158; 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 606371a8fe0..4531e8080a2 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,87 +15,86 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp; public interface CPPSizeofExpressionParsersym { public final static int - TK_asm = 63, + TK_asm = 60, TK_auto = 48, TK_bool = 14, - TK_break = 78, - TK_case = 79, + TK_break = 77, + TK_case = 78, TK_catch = 119, TK_char = 15, TK_class = 61, TK_const = 46, - TK_const_cast = 32, - TK_continue = 80, - TK_default = 81, - TK_delete = 64, - TK_do = 82, + TK_const_cast = 31, + TK_continue = 79, + TK_default = 80, + TK_delete = 62, + TK_do = 81, TK_double = 16, - TK_dynamic_cast = 33, + TK_dynamic_cast = 32, TK_else = 122, - TK_enum = 68, + TK_enum = 69, TK_explicit = 49, - TK_export = 75, + TK_export = 87, TK_extern = 17, - TK_false = 34, + TK_false = 33, TK_float = 18, - TK_for = 83, + TK_for = 82, TK_friend = 50, - TK_goto = 84, - TK_if = 85, + TK_goto = 83, + TK_if = 84, TK_inline = 51, TK_int = 19, TK_long = 20, TK_mutable = 52, TK_namespace = 57, - TK_new = 65, + TK_new = 63, TK_operator = 7, - TK_private = 103, - TK_protected = 104, - TK_public = 105, + TK_private = 114, + TK_protected = 115, + TK_public = 116, TK_register = 53, - TK_reinterpret_cast = 35, - TK_return = 86, + TK_reinterpret_cast = 34, + TK_return = 85, TK_short = 21, TK_signed = 22, - TK_sizeof = 36, + TK_sizeof = 35, TK_static = 54, - TK_static_cast = 37, - TK_struct = 69, - TK_switch = 87, - TK_template = 31, - TK_this = 38, + TK_static_cast = 36, + TK_struct = 70, + TK_switch = 86, + TK_template = 44, + TK_this = 37, TK_throw = 58, - TK_try = 76, - TK_true = 39, + TK_try = 75, + TK_true = 38, TK_typedef = 55, - TK_typeid = 40, + TK_typeid = 39, TK_typename = 10, - TK_union = 70, + TK_union = 71, TK_unsigned = 23, TK_using = 59, - TK_virtual = 41, + TK_virtual = 45, TK_void = 24, TK_volatile = 47, TK_wchar_t = 25, - TK_while = 77, - TK_integer = 42, - TK_floating = 43, - TK_charconst = 44, - TK_stringlit = 29, + TK_while = 76, + TK_integer = 40, + TK_floating = 41, + TK_charconst = 42, + TK_stringlit = 28, TK_identifier = 1, TK_Completion = 2, - TK_EndOfCompletion = 9, + TK_EndOfCompletion = 8, TK_Invalid = 123, TK_LeftBracket = 56, TK_LeftParen = 3, - TK_LeftBrace = 60, TK_Dot = 120, TK_DotStar = 96, - TK_Arrow = 106, + TK_Arrow = 103, TK_ArrowStar = 90, TK_PlusPlus = 26, TK_MinusMinus = 27, - TK_And = 8, + TK_And = 9, TK_Star = 6, TK_Plus = 11, TK_Minus = 12, @@ -105,8 +104,8 @@ public interface CPPSizeofExpressionParsersym { TK_Percent = 92, TK_RightShift = 88, TK_LeftShift = 89, - TK_LT = 28, - TK_GT = 62, + TK_LT = 29, + TK_GT = 64, TK_LE = 93, TK_GE = 94, TK_EQ = 97, @@ -116,27 +115,28 @@ public interface CPPSizeofExpressionParsersym { TK_AndAnd = 101, TK_OrOr = 102, TK_Question = 117, - TK_Colon = 71, + TK_Colon = 72, TK_ColonColon = 4, TK_DotDotDot = 95, - TK_Assign = 66, - TK_StarAssign = 107, - TK_SlashAssign = 108, - TK_PercentAssign = 109, - TK_PlusAssign = 110, - TK_MinusAssign = 111, - TK_RightShiftAssign = 112, - TK_LeftShiftAssign = 113, - TK_AndAssign = 114, - TK_CaretAssign = 115, - TK_OrAssign = 116, - TK_Comma = 67, + TK_Assign = 67, + TK_StarAssign = 104, + TK_SlashAssign = 105, + TK_PercentAssign = 106, + TK_PlusAssign = 107, + TK_MinusAssign = 108, + TK_RightShiftAssign = 109, + TK_LeftShiftAssign = 110, + TK_AndAssign = 111, + TK_CaretAssign = 112, + TK_OrAssign = 113, + TK_Comma = 65, TK_RightBracket = 118, TK_RightParen = 73, - TK_RightBrace = 72, + TK_RightBrace = 68, TK_SemiColon = 13, + TK_LeftBrace = 66, TK_ERROR_TOKEN = 74, - TK_0 = 45, + TK_0 = 43, TK_EOF_TOKEN = 121; public final static String orderedTerminalSymbols[] = { @@ -148,8 +148,8 @@ public interface CPPSizeofExpressionParsersym { "Tilde", "Star", "operator", - "And", "EndOfCompletion", + "And", "typename", "Plus", "Minus", @@ -168,10 +168,9 @@ public interface CPPSizeofExpressionParsersym { "wchar_t", "PlusPlus", "MinusMinus", - "LT", "stringlit", + "LT", "Bang", - "template", "const_cast", "dynamic_cast", "false", @@ -181,11 +180,12 @@ public interface CPPSizeofExpressionParsersym { "this", "true", "typeid", - "virtual", "integer", "floating", "charconst", "0", + "template", + "virtual", "const", "volatile", "auto", @@ -200,22 +200,21 @@ public interface CPPSizeofExpressionParsersym { "namespace", "throw", "using", - "LeftBrace", - "class", - "GT", "asm", + "class", "delete", "new", - "Assign", + "GT", "Comma", + "LeftBrace", + "Assign", + "RightBrace", "enum", "struct", "union", "Colon", - "RightBrace", "RightParen", "ERROR_TOKEN", - "export", "try", "while", "break", @@ -228,6 +227,7 @@ public interface CPPSizeofExpressionParsersym { "if", "return", "switch", + "export", "RightShift", "LeftShift", "ArrowStar", @@ -243,9 +243,6 @@ public interface CPPSizeofExpressionParsersym { "Or", "AndAnd", "OrOr", - "private", - "protected", - "public", "Arrow", "StarAssign", "SlashAssign", @@ -257,6 +254,9 @@ public interface CPPSizeofExpressionParsersym { "AndAssign", "CaretAssign", "OrAssign", + "private", + "protected", + "public", "Question", "RightBracket", "catch", 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 c448715fcb7..10039c579b3 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 @@ -267,2004 +267,1997 @@ public CPPTemplateTypeParameterParser(String[] mapFrom) { // constructor } // - // Rule 11: translation_unit ::= external_declaration_list + // Rule 13: translation_unit ::= external_declaration_list // - case 11: { action.builder. + case 13: { action.builder. consumeTranslationUnit(); break; } // - // Rule 12: translation_unit ::= $Empty + // Rule 14: translation_unit ::= $Empty // - case 12: { action.builder. + case 14: { action.builder. consumeTranslationUnit(); break; } // - // Rule 16: external_declaration ::= ERROR_TOKEN + // Rule 18: external_declaration ::= ERROR_TOKEN // - case 16: { action.builder. + case 18: { action.builder. consumeDeclarationProblem(); break; } // - // Rule 19: literal ::= integer - // - case 19: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; - } - - // - // Rule 20: literal ::= 0 - // - case 20: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; - } - - // - // Rule 21: literal ::= floating + // 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 22: literal ::= charconst + // Rule 24: literal ::= charconst // - case 22: { action.builder. + case 24: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_char_constant); break; } // - // Rule 23: literal ::= stringlit + // Rule 25: literal ::= stringlit // - case 23: { action.builder. + case 25: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_string_literal); break; } // - // Rule 24: literal ::= true + // Rule 26: literal ::= true // - case 24: { action.builder. + case 26: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_true); break; } // - // Rule 25: literal ::= false + // Rule 27: literal ::= false // - case 25: { action.builder. + case 27: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_false); break; } // - // Rule 26: literal ::= this + // Rule 28: literal ::= this // - case 26: { action.builder. + case 28: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_this); break; } // - // Rule 28: primary_expression ::= ( expression ) + // Rule 30: primary_expression ::= ( expression ) // - case 28: { action.builder. + case 30: { action.builder. consumeExpressionBracketed(); break; } // - // Rule 30: id_expression ::= qualified_or_unqualified_name + // Rule 32: id_expression ::= qualified_or_unqualified_name // - case 30: { action.builder. + case 32: { action.builder. consumeExpressionName(); break; } // - // Rule 37: unqualified_id_name ::= ~ identifier_token + // Rule 39: unqualified_id_name ::= ~ identifier_token // - case 37: { action.builder. + case 39: { action.builder. consumeDestructorName(); break; } // - // Rule 38: unqualified_id_name ::= ~ template_id_name + // Rule 40: unqualified_id_name ::= ~ template_id_name // - case 38: { action.builder. + case 40: { action.builder. consumeDestructorNameTemplateId(); break; } // - // Rule 39: identifier_name ::= identifier_token + // Rule 41: identifier_name ::= identifier_token // - case 39: { action.builder. + case 41: { action.builder. consumeIdentifierName(); break; } // - // Rule 40: template_opt ::= template + // Rule 42: template_opt ::= template // - case 40: { action.builder. + case 42: { action.builder. consumePlaceHolder(); break; } // - // Rule 41: template_opt ::= $Empty - // - case 41: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 42: dcolon_opt ::= :: - // - case 42: { action.builder. - consumeToken(); break; - } - - // - // Rule 43: dcolon_opt ::= $Empty + // Rule 43: template_opt ::= $Empty // case 43: { action.builder. consumeEmpty(); break; } // - // Rule 44: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name + // Rule 44: dcolon_opt ::= :: // case 44: { action.builder. + consumeToken(); break; + } + + // + // Rule 45: dcolon_opt ::= $Empty + // + case 45: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 46: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name + // + case 46: { action.builder. consumeQualifiedId(true); break; } // - // Rule 45: qualified_id_name ::= :: identifier_name - // - case 45: { action.builder. - consumeGlobalQualifiedId(); break; - } - - // - // Rule 46: qualified_id_name ::= :: operator_function_id_name - // - case 46: { action.builder. - consumeGlobalQualifiedId(); break; - } - - // - // Rule 47: qualified_id_name ::= :: template_id_name + // Rule 47: qualified_id_name ::= :: identifier_name // case 47: { action.builder. consumeGlobalQualifiedId(); break; } // - // Rule 48: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template + // Rule 48: qualified_id_name ::= :: operator_function_id_name // case 48: { action.builder. - consumeNestedNameSpecifier(true); break; + consumeGlobalQualifiedId(); break; } // - // Rule 49: nested_name_specifier ::= class_or_namespace_name :: + // Rule 49: qualified_id_name ::= :: template_id_name // case 49: { action.builder. - consumeNestedNameSpecifier(false); break; + consumeGlobalQualifiedId(); break; } // - // Rule 50: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template + // Rule 50: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template // case 50: { action.builder. consumeNestedNameSpecifier(true); break; } // - // Rule 51: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: + // Rule 51: nested_name_specifier ::= class_or_namespace_name :: // case 51: { action.builder. consumeNestedNameSpecifier(false); break; } // - // Rule 52: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name + // Rule 52: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template // case 52: { action.builder. + consumeNestedNameSpecifier(true); break; + } + + // + // Rule 53: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: + // + case 53: { action.builder. + consumeNestedNameSpecifier(false); break; + } + + // + // Rule 54: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name + // + case 54: { action.builder. consumeNameWithTemplateKeyword(); break; } // - // Rule 54: nested_name_specifier_opt ::= $Empty + // Rule 56: nested_name_specifier_opt ::= $Empty // - case 54: { action.builder. + case 56: { action.builder. consumeNestedNameSpecifierEmpty(); break; } // - // Rule 57: postfix_expression ::= postfix_expression [ expression ] + // Rule 59: postfix_expression ::= postfix_expression [ expression ] // - case 57: { action.builder. + case 59: { action.builder. consumeExpressionArraySubscript(); break; } // - // Rule 58: postfix_expression ::= postfix_expression ( expression_list_opt ) + // Rule 60: postfix_expression ::= postfix_expression ( expression_list_opt ) // - case 58: { action.builder. + case 60: { action.builder. consumeExpressionFunctionCall(); break; } // - // Rule 59: postfix_expression ::= simple_type_specifier ( expression_list_opt ) + // Rule 61: postfix_expression ::= simple_type_specifier ( expression_list_opt ) // - case 59: { action.builder. + case 61: { action.builder. consumeExpressionSimpleTypeConstructor(); break; } // - // Rule 60: postfix_expression ::= typename dcolon_opt nested_name_specifier identifier_name ( expression_list_opt ) - // - case 60: { action.builder. - consumeExpressionTypeName(); break; - } - - // - // Rule 61: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) - // - case 61: { action.builder. - consumeExpressionTypeName(); break; - } - - // - // Rule 62: postfix_expression ::= postfix_expression . qualified_or_unqualified_name + // Rule 62: postfix_expression ::= typename dcolon_opt nested_name_specifier identifier_name ( expression_list_opt ) // case 62: { action.builder. + consumeExpressionTypeName(); break; + } + + // + // Rule 63: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) + // + case 63: { action.builder. + consumeExpressionTypeName(); break; + } + + // + // Rule 64: postfix_expression ::= postfix_expression . qualified_or_unqualified_name + // + case 64: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 63: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name + // Rule 65: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name // - case 63: { action.builder. + case 65: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 64: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name + // Rule 66: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name // - case 64: { action.builder. + case 66: { action.builder. consumeExpressionFieldReference(false, true); break; } // - // Rule 65: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name + // Rule 67: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name // - case 65: { action.builder. + case 67: { action.builder. consumeExpressionFieldReference(true, true); break; } // - // Rule 66: postfix_expression ::= postfix_expression . pseudo_destructor_name + // Rule 68: postfix_expression ::= postfix_expression . pseudo_destructor_name // - case 66: { action.builder. + case 68: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 67: postfix_expression ::= postfix_expression -> pseudo_destructor_name + // Rule 69: postfix_expression ::= postfix_expression -> pseudo_destructor_name // - case 67: { action.builder. + case 69: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 68: postfix_expression ::= postfix_expression ++ + // Rule 70: postfix_expression ::= postfix_expression ++ // - case 68: { action.builder. + case 70: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; } // - // Rule 69: postfix_expression ::= postfix_expression -- + // Rule 71: postfix_expression ::= postfix_expression -- // - case 69: { action.builder. + case 71: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; } // - // Rule 70: postfix_expression ::= dynamic_cast < type_id > ( expression ) + // Rule 72: postfix_expression ::= dynamic_cast < type_id > ( expression ) // - case 70: { action.builder. + case 72: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); break; } // - // Rule 71: postfix_expression ::= static_cast < type_id > ( expression ) + // Rule 73: postfix_expression ::= static_cast < type_id > ( expression ) // - case 71: { action.builder. + case 73: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_static_cast); break; } // - // Rule 72: postfix_expression ::= reinterpret_cast < type_id > ( expression ) + // Rule 74: postfix_expression ::= reinterpret_cast < type_id > ( expression ) // - case 72: { action.builder. + case 74: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); break; } // - // Rule 73: postfix_expression ::= const_cast < type_id > ( expression ) + // Rule 75: postfix_expression ::= const_cast < type_id > ( expression ) // - case 73: { action.builder. + case 75: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_const_cast); break; } // - // Rule 74: postfix_expression ::= typeid ( expression ) + // Rule 76: postfix_expression ::= typeid ( expression ) // - case 74: { action.builder. + case 76: { action.builder. consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break; } // - // Rule 75: postfix_expression ::= typeid ( type_id ) + // Rule 77: postfix_expression ::= typeid ( type_id ) // - case 75: { action.builder. + case 77: { action.builder. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid); break; } // - // Rule 76: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name - // - case 76: { action.builder. - consumePsudoDestructorName(true); break; - } - - // - // Rule 77: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name - // - case 77: { action.builder. - consumePsudoDestructorName(true); break; - } - - // - // Rule 78: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name + // Rule 78: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name // case 78: { action.builder. + consumePsudoDestructorName(true); break; + } + + // + // Rule 79: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name + // + case 79: { action.builder. + consumePsudoDestructorName(true); break; + } + + // + // Rule 80: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name + // + case 80: { action.builder. consumePsudoDestructorName(false); break; } // - // Rule 79: destructor_type_name ::= ~ identifier_token + // Rule 81: destructor_type_name ::= ~ identifier_token // - case 79: { action.builder. + case 81: { action.builder. consumeDestructorName(); break; } // - // Rule 80: destructor_type_name ::= ~ template_id_name + // Rule 82: destructor_type_name ::= ~ template_id_name // - case 80: { action.builder. + case 82: { action.builder. consumeDestructorNameTemplateId(); break; } // - // Rule 84: unary_expression ::= ++ cast_expression + // Rule 86: unary_expression ::= ++ cast_expression // - case 84: { action.builder. + case 86: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; } // - // Rule 85: unary_expression ::= -- cast_expression + // Rule 87: unary_expression ::= -- cast_expression // - case 85: { action.builder. + case 87: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; } // - // Rule 86: unary_expression ::= & cast_expression + // Rule 88: unary_expression ::= & cast_expression // - case 86: { action.builder. + case 88: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; } // - // Rule 87: unary_expression ::= * cast_expression + // Rule 89: unary_expression ::= * cast_expression // - case 87: { action.builder. + case 89: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; } // - // Rule 88: unary_expression ::= + cast_expression + // Rule 90: unary_expression ::= + cast_expression // - case 88: { action.builder. + case 90: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; } // - // Rule 89: unary_expression ::= - cast_expression + // Rule 91: unary_expression ::= - cast_expression // - case 89: { action.builder. + case 91: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; } // - // Rule 90: unary_expression ::= ~ cast_expression + // Rule 92: unary_expression ::= ~ cast_expression // - case 90: { action.builder. + case 92: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; } // - // Rule 91: unary_expression ::= ! cast_expression + // Rule 93: unary_expression ::= ! cast_expression // - case 91: { action.builder. + case 93: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; } // - // Rule 92: unary_expression ::= sizeof unary_expression + // Rule 94: unary_expression ::= sizeof unary_expression // - case 92: { action.builder. + case 94: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; } // - // Rule 93: unary_expression ::= sizeof ( type_id ) + // Rule 95: unary_expression ::= sizeof ( type_id ) // - case 93: { action.builder. + case 95: { 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 96: new_expression ::= dcolon_opt new new_placement_opt new_type_id new_array_expressions_opt new_initializer_opt // - case 94: { action.builder. + case 96: { 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 97: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_array_expressions_opt new_initializer_opt // - case 95: { action.builder. + case 97: { action.builder. consumeExpressionNew(false); break; } // - // Rule 97: new_placement_opt ::= $Empty + // Rule 99: new_placement_opt ::= $Empty // - case 97: { action.builder. + case 99: { action.builder. consumeEmpty(); break; } // - // Rule 98: new_type_id ::= type_specifier_seq + // Rule 100: new_type_id ::= type_specifier_seq // - case 98: { action.builder. + case 100: { action.builder. consumeTypeId(false); break; } // - // Rule 99: new_type_id ::= type_specifier_seq new_declarator + // Rule 101: new_type_id ::= type_specifier_seq new_declarator // - case 99: { action.builder. + case 101: { action.builder. consumeTypeId(true); break; } // - // Rule 100: new_declarator ::= new_pointer_operators + // Rule 102: new_declarator ::= new_pointer_operators // - case 100: { action.builder. + case 102: { action.builder. consumeNewDeclarator(); break; } // - // Rule 109: new_initializer_opt ::= $Empty + // Rule 111: new_initializer_opt ::= $Empty // - case 109: { action.builder. + case 111: { action.builder. consumeEmpty(); break; } // - // Rule 110: delete_expression ::= dcolon_opt delete cast_expression + // Rule 112: delete_expression ::= dcolon_opt delete cast_expression // - case 110: { action.builder. + case 112: { action.builder. consumeExpressionDelete(false); break; } // - // Rule 111: delete_expression ::= dcolon_opt delete [ ] cast_expression + // Rule 113: delete_expression ::= dcolon_opt delete [ ] cast_expression // - case 111: { action.builder. + case 113: { action.builder. consumeExpressionDelete(true); break; } // - // Rule 113: cast_expression ::= ( type_id ) cast_expression + // Rule 115: cast_expression ::= ( type_id ) cast_expression // - case 113: { action.builder. + case 115: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_cast); break; } // - // Rule 115: pm_expression ::= pm_expression .* cast_expression + // Rule 117: pm_expression ::= pm_expression .* cast_expression // - case 115: { action.builder. + case 117: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot); break; } // - // Rule 116: pm_expression ::= pm_expression ->* cast_expression + // Rule 118: pm_expression ::= pm_expression ->* cast_expression // - case 116: { action.builder. + case 118: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow); break; } // - // Rule 118: multiplicative_expression ::= multiplicative_expression * pm_expression + // Rule 120: multiplicative_expression ::= multiplicative_expression * pm_expression // - case 118: { action.builder. + case 120: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply); break; } // - // Rule 119: multiplicative_expression ::= multiplicative_expression / pm_expression + // Rule 121: multiplicative_expression ::= multiplicative_expression / pm_expression // - case 119: { action.builder. + case 121: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide); break; } // - // Rule 120: multiplicative_expression ::= multiplicative_expression % pm_expression + // Rule 122: multiplicative_expression ::= multiplicative_expression % pm_expression // - case 120: { action.builder. + case 122: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo); break; } // - // Rule 122: additive_expression ::= additive_expression + multiplicative_expression + // Rule 124: additive_expression ::= additive_expression + multiplicative_expression // - case 122: { action.builder. + case 124: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus); break; } // - // Rule 123: additive_expression ::= additive_expression - multiplicative_expression + // Rule 125: additive_expression ::= additive_expression - multiplicative_expression // - case 123: { action.builder. + case 125: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus); break; } // - // Rule 125: shift_expression ::= shift_expression << additive_expression + // Rule 127: shift_expression ::= shift_expression << additive_expression // - case 125: { action.builder. + case 127: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft); break; } // - // Rule 126: shift_expression ::= shift_expression >> additive_expression + // Rule 128: shift_expression ::= shift_expression >> additive_expression // - case 126: { action.builder. + case 128: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight); break; } // - // Rule 128: relational_expression ::= relational_expression < shift_expression + // Rule 130: relational_expression ::= relational_expression < shift_expression // - case 128: { action.builder. + case 130: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; } // - // Rule 129: relational_expression ::= relational_expression > shift_expression + // Rule 131: relational_expression ::= relational_expression > shift_expression // - case 129: { action.builder. + case 131: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; } // - // Rule 130: relational_expression ::= relational_expression <= shift_expression + // Rule 132: relational_expression ::= relational_expression <= shift_expression // - case 130: { action.builder. + case 132: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; } // - // Rule 131: relational_expression ::= relational_expression >= shift_expression + // Rule 133: relational_expression ::= relational_expression >= shift_expression // - case 131: { action.builder. + case 133: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; } // - // Rule 133: equality_expression ::= equality_expression == relational_expression + // Rule 135: equality_expression ::= equality_expression == relational_expression // - case 133: { action.builder. + case 135: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; } // - // Rule 134: equality_expression ::= equality_expression != relational_expression + // Rule 136: equality_expression ::= equality_expression != relational_expression // - case 134: { action.builder. + case 136: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; } // - // Rule 136: and_expression ::= and_expression & equality_expression + // Rule 138: and_expression ::= and_expression & equality_expression // - case 136: { action.builder. + case 138: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; } // - // Rule 138: exclusive_or_expression ::= exclusive_or_expression ^ and_expression + // Rule 140: exclusive_or_expression ::= exclusive_or_expression ^ and_expression // - case 138: { action.builder. + case 140: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; } // - // Rule 140: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression + // Rule 142: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression // - case 140: { action.builder. + case 142: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; } // - // Rule 142: logical_and_expression ::= logical_and_expression && inclusive_or_expression + // Rule 144: logical_and_expression ::= logical_and_expression && inclusive_or_expression // - case 142: { action.builder. + case 144: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; } // - // Rule 144: logical_or_expression ::= logical_or_expression || logical_and_expression + // Rule 146: logical_or_expression ::= logical_or_expression || logical_and_expression // - case 144: { action.builder. + case 146: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; } // - // Rule 146: conditional_expression ::= logical_or_expression ? expression : assignment_expression + // Rule 148: conditional_expression ::= logical_or_expression ? expression : assignment_expression // - case 146: { action.builder. + case 148: { action.builder. consumeExpressionConditional(); break; } // - // Rule 147: throw_expression ::= throw + // Rule 149: throw_expression ::= throw // - case 147: { action.builder. + case 149: { action.builder. consumeExpressionThrow(false); break; } // - // Rule 148: throw_expression ::= throw assignment_expression + // Rule 150: throw_expression ::= throw assignment_expression // - case 148: { action.builder. + case 150: { action.builder. consumeExpressionThrow(true); break; } // - // Rule 151: assignment_expression ::= logical_or_expression = assignment_expression + // Rule 153: assignment_expression ::= logical_or_expression = assignment_expression // - case 151: { action.builder. + case 153: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; } // - // Rule 152: assignment_expression ::= logical_or_expression *= assignment_expression + // Rule 154: assignment_expression ::= logical_or_expression *= assignment_expression // - case 152: { action.builder. + case 154: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 153: assignment_expression ::= logical_or_expression /= assignment_expression + // Rule 155: assignment_expression ::= logical_or_expression /= assignment_expression // - case 153: { action.builder. + case 155: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; } // - // Rule 154: assignment_expression ::= logical_or_expression %= assignment_expression + // Rule 156: assignment_expression ::= logical_or_expression %= assignment_expression // - case 154: { action.builder. + case 156: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; } // - // Rule 155: assignment_expression ::= logical_or_expression += assignment_expression + // Rule 157: assignment_expression ::= logical_or_expression += assignment_expression // - case 155: { action.builder. + case 157: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; } // - // Rule 156: assignment_expression ::= logical_or_expression -= assignment_expression + // Rule 158: assignment_expression ::= logical_or_expression -= assignment_expression // - case 156: { action.builder. + case 158: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; } // - // Rule 157: assignment_expression ::= logical_or_expression >>= assignment_expression + // Rule 159: assignment_expression ::= logical_or_expression >>= assignment_expression // - case 157: { action.builder. + case 159: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 158: assignment_expression ::= logical_or_expression <<= assignment_expression + // Rule 160: assignment_expression ::= logical_or_expression <<= assignment_expression // - case 158: { action.builder. + case 160: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 159: assignment_expression ::= logical_or_expression &= assignment_expression + // Rule 161: assignment_expression ::= logical_or_expression &= assignment_expression // - case 159: { action.builder. + case 161: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 160: assignment_expression ::= logical_or_expression ^= assignment_expression + // Rule 162: assignment_expression ::= logical_or_expression ^= assignment_expression // - case 160: { action.builder. + case 162: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 161: assignment_expression ::= logical_or_expression |= assignment_expression + // Rule 163: assignment_expression ::= logical_or_expression |= assignment_expression // - case 161: { action.builder. + case 163: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 163: expression_list ::= expression_list_actual + // Rule 165: expression_list ::= expression_list_actual // - case 163: { action.builder. + case 165: { action.builder. consumeExpressionList(); break; } // - // Rule 167: expression_list_opt ::= $Empty - // - case 167: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 169: expression_opt ::= $Empty + // Rule 169: expression_list_opt ::= $Empty // case 169: { action.builder. consumeEmpty(); break; } // - // Rule 172: constant_expression_opt ::= $Empty + // Rule 171: expression_opt ::= $Empty // - case 172: { action.builder. + case 171: { action.builder. consumeEmpty(); break; } // - // Rule 181: statement ::= ERROR_TOKEN + // Rule 174: constant_expression_opt ::= $Empty // - case 181: { action.builder. + case 174: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 183: statement ::= ERROR_TOKEN + // + case 183: { action.builder. consumeStatementProblem(); break; } // - // Rule 182: labeled_statement ::= identifier : statement + // Rule 184: labeled_statement ::= identifier : statement // - case 182: { action.builder. + case 184: { action.builder. consumeStatementLabeled(); break; } // - // Rule 183: labeled_statement ::= case constant_expression : + // Rule 185: labeled_statement ::= case constant_expression : // - case 183: { action.builder. + case 185: { action.builder. consumeStatementCase(); break; } // - // Rule 184: labeled_statement ::= default : + // Rule 186: labeled_statement ::= default : // - case 184: { action.builder. + case 186: { action.builder. consumeStatementDefault(); break; } // - // Rule 185: expression_statement ::= expression ; + // Rule 187: expression_statement ::= expression ; // - case 185: { action.builder. + case 187: { action.builder. consumeStatementExpression(); break; } // - // Rule 186: expression_statement ::= ; + // Rule 188: expression_statement ::= ; // - case 186: { action.builder. + case 188: { action.builder. consumeStatementNull(); break; } // - // Rule 187: compound_statement ::= { statement_seq } + // Rule 189: compound_statement ::= { statement_seq } // - case 187: { action.builder. + case 189: { action.builder. consumeStatementCompoundStatement(true); break; } // - // Rule 188: compound_statement ::= { } + // Rule 190: compound_statement ::= { } // - case 188: { action.builder. + case 190: { action.builder. consumeStatementCompoundStatement(false); break; } // - // Rule 191: selection_statement ::= if ( condition ) statement + // Rule 193: selection_statement ::= if ( condition ) statement // - case 191: { action.builder. + case 193: { action.builder. consumeStatementIf(false); break; } // - // Rule 192: selection_statement ::= if ( condition ) statement else statement + // Rule 194: selection_statement ::= if ( condition ) statement else statement // - case 192: { action.builder. + case 194: { action.builder. consumeStatementIf(true); break; } // - // Rule 193: selection_statement ::= switch ( condition ) statement + // Rule 195: selection_statement ::= switch ( condition ) statement // - case 193: { action.builder. + case 195: { action.builder. consumeStatementSwitch(); break; } // - // Rule 195: condition ::= type_specifier_seq declarator = assignment_expression + // Rule 197: condition ::= type_specifier_seq declarator = assignment_expression // - case 195: { action.builder. + case 197: { action.builder. consumeConditionDeclaration(); break; } // - // Rule 197: condition_opt ::= $Empty + // Rule 199: condition_opt ::= $Empty // - case 197: { action.builder. + case 199: { action.builder. consumeEmpty(); break; } // - // Rule 198: iteration_statement ::= while ( condition ) statement + // Rule 200: iteration_statement ::= while ( condition ) statement // - case 198: { action.builder. + case 200: { action.builder. consumeStatementWhileLoop(); break; } // - // Rule 199: iteration_statement ::= do statement while ( expression ) ; + // Rule 201: iteration_statement ::= do statement while ( expression ) ; // - case 199: { action.builder. + case 201: { action.builder. consumeStatementDoLoop(); break; } // - // Rule 200: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement + // Rule 202: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement // - case 200: { action.builder. + case 202: { action.builder. consumeStatementForLoop(); break; } // - // Rule 202: for_init_statement ::= simple_declaration_with_declspec + // Rule 204: for_init_statement ::= simple_declaration_with_declspec // - case 202: { action.builder. + case 204: { action.builder. consumeStatementDeclaration(); break; } // - // Rule 203: jump_statement ::= break ; + // Rule 205: jump_statement ::= break ; // - case 203: { action.builder. + case 205: { action.builder. consumeStatementBreak(); break; } // - // Rule 204: jump_statement ::= continue ; + // Rule 206: jump_statement ::= continue ; // - case 204: { action.builder. + case 206: { action.builder. consumeStatementContinue(); break; } // - // Rule 205: jump_statement ::= return expression ; + // Rule 207: jump_statement ::= return expression ; // - case 205: { action.builder. + case 207: { action.builder. consumeStatementReturn(true); break; } // - // Rule 206: jump_statement ::= return ; + // Rule 208: jump_statement ::= return ; // - case 206: { action.builder. + case 208: { action.builder. consumeStatementReturn(false); break; } // - // Rule 207: jump_statement ::= goto identifier_token ; + // Rule 209: jump_statement ::= goto identifier_token ; // - case 207: { action.builder. + case 209: { action.builder. consumeStatementGoto(); break; } // - // Rule 208: declaration_statement ::= block_declaration + // Rule 210: declaration_statement ::= block_declaration // - case 208: { action.builder. + case 210: { action.builder. consumeStatementDeclarationWithDisambiguation(); break; } // - // Rule 209: declaration_statement ::= function_definition + // Rule 211: declaration_statement ::= function_definition // - case 209: { action.builder. + case 211: { action.builder. consumeStatementDeclaration(); break; } // - // Rule 226: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; - // - case 226: { action.builder. - consumeDeclarationSimple(true); break; - } - - // - // Rule 227: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; - // - case 227: { action.builder. - consumeDeclarationSimple(true); break; - } - - // - // Rule 228: declaration_specifiers ::= simple_declaration_specifiers + // Rule 228: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; // case 228: { action.builder. + consumeDeclarationSimple(true); break; + } + + // + // Rule 229: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; + // + case 229: { action.builder. + consumeDeclarationSimple(true); break; + } + + // + // Rule 230: declaration_specifiers ::= simple_declaration_specifiers + // + case 230: { action.builder. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 229: declaration_specifiers ::= class_declaration_specifiers - // - case 229: { action.builder. - consumeDeclarationSpecifiersComposite(); break; - } - - // - // Rule 230: declaration_specifiers ::= elaborated_declaration_specifiers - // - case 230: { action.builder. - consumeDeclarationSpecifiersComposite(); break; - } - - // - // Rule 231: declaration_specifiers ::= enum_declaration_specifiers + // Rule 231: declaration_specifiers ::= class_declaration_specifiers // case 231: { action.builder. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 232: declaration_specifiers ::= type_name_declaration_specifiers + // Rule 232: declaration_specifiers ::= elaborated_declaration_specifiers // case 232: { action.builder. + consumeDeclarationSpecifiersComposite(); break; + } + + // + // Rule 233: declaration_specifiers ::= enum_declaration_specifiers + // + case 233: { action.builder. + consumeDeclarationSpecifiersComposite(); break; + } + + // + // Rule 234: declaration_specifiers ::= type_name_declaration_specifiers + // + case 234: { action.builder. consumeDeclarationSpecifiersTypeName(); break; } // - // Rule 233: declaration_specifiers_opt ::= $Empty + // Rule 235: declaration_specifiers_opt ::= $Empty // - case 233: { action.builder. + case 235: { action.builder. consumeEmpty(); break; } // - // Rule 238: no_type_declaration_specifier ::= friend + // Rule 240: no_type_declaration_specifier ::= friend // - case 238: { action.builder. + case 240: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 239: no_type_declaration_specifier ::= typedef + // Rule 241: no_type_declaration_specifier ::= typedef // - case 239: { action.builder. + case 241: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 259: storage_class_specifier ::= auto - // - case 259: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 260: storage_class_specifier ::= register - // - case 260: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 261: storage_class_specifier ::= static + // Rule 261: storage_class_specifier ::= auto // case 261: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 262: storage_class_specifier ::= extern + // Rule 262: storage_class_specifier ::= register // case 262: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 263: storage_class_specifier ::= mutable + // Rule 263: storage_class_specifier ::= static // case 263: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 264: function_specifier ::= inline + // Rule 264: storage_class_specifier ::= extern // case 264: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 265: function_specifier ::= virtual + // Rule 265: storage_class_specifier ::= mutable // case 265: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 266: function_specifier ::= explicit + // Rule 266: function_specifier ::= inline // case 266: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 267: simple_type_specifier ::= char + // Rule 267: function_specifier ::= virtual // case 267: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 268: simple_type_specifier ::= wchar_t + // Rule 268: function_specifier ::= explicit // case 268: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 269: simple_type_specifier ::= bool + // Rule 269: simple_type_specifier ::= char // case 269: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 270: simple_type_specifier ::= short + // Rule 270: simple_type_specifier ::= wchar_t // case 270: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 271: simple_type_specifier ::= int + // Rule 271: simple_type_specifier ::= bool // case 271: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 272: simple_type_specifier ::= long + // Rule 272: simple_type_specifier ::= short // case 272: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 273: simple_type_specifier ::= signed + // Rule 273: simple_type_specifier ::= int // case 273: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 274: simple_type_specifier ::= unsigned + // Rule 274: simple_type_specifier ::= long // case 274: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 275: simple_type_specifier ::= float + // Rule 275: simple_type_specifier ::= signed // case 275: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 276: simple_type_specifier ::= double + // Rule 276: simple_type_specifier ::= unsigned // case 276: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 277: simple_type_specifier ::= void + // Rule 277: simple_type_specifier ::= float // case 277: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 280: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name + // Rule 278: simple_type_specifier ::= double // - case 280: { action.builder. - consumeQualifiedId(false); break; + case 278: { action.builder. + consumeDeclSpecToken(); break; } // - // Rule 281: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name + // Rule 279: simple_type_specifier ::= void // - case 281: { action.builder. - consumeQualifiedId(false); break; + case 279: { action.builder. + consumeDeclSpecToken(); break; } // - // Rule 282: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name + // Rule 282: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name // case 282: { action.builder. consumeQualifiedId(false); break; } // - // Rule 283: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name + // Rule 283: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name // case 283: { action.builder. + consumeQualifiedId(false); break; + } + + // + // Rule 284: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name + // + case 284: { action.builder. + consumeQualifiedId(false); break; + } + + // + // Rule 285: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name + // + case 285: { action.builder. consumeQualifiedId(true); break; } // - // Rule 285: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name - // - case 285: { action.builder. - consumeTypeSpecifierElaborated(false); break; - } - - // - // Rule 286: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name - // - case 286: { action.builder. - consumeTypeSpecifierElaborated(true); break; - } - - // - // Rule 287: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name + // Rule 287: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name // case 287: { action.builder. consumeTypeSpecifierElaborated(false); break; } // - // Rule 288: enum_specifier ::= enum { enumerator_list_opt } + // Rule 288: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name // case 288: { action.builder. + consumeTypeSpecifierElaborated(true); break; + } + + // + // Rule 289: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name + // + case 289: { action.builder. + consumeTypeSpecifierElaborated(false); break; + } + + // + // Rule 290: enum_specifier ::= enum { enumerator_list_opt } + // + case 290: { action.builder. consumeTypeSpecifierEnumeration(false); break; } // - // Rule 289: enum_specifier ::= enum identifier_token { enumerator_list_opt } + // Rule 291: enum_specifier ::= enum identifier_token { enumerator_list_opt } // - case 289: { action.builder. + case 291: { action.builder. consumeTypeSpecifierEnumeration(true); break; } // - // Rule 294: enumerator_definition ::= identifier_token + // Rule 296: enumerator_definition ::= identifier_token // - case 294: { action.builder. + case 296: { action.builder. consumeEnumerator(false); break; } // - // Rule 295: enumerator_definition ::= identifier_token = constant_expression + // Rule 297: enumerator_definition ::= identifier_token = constant_expression // - case 295: { action.builder. + case 297: { action.builder. consumeEnumerator(true); break; } // - // Rule 299: named_namespace_definition ::= namespace namespace_name { declaration_seq_opt } + // Rule 301: named_namespace_definition ::= namespace namespace_name { declaration_seq_opt } // - case 299: { action.builder. + case 301: { action.builder. consumeNamespaceDefinition(true); break; } // - // Rule 300: unnamed_namespace_definition ::= namespace { declaration_seq_opt } + // Rule 302: unnamed_namespace_definition ::= namespace { declaration_seq_opt } // - case 300: { action.builder. + case 302: { action.builder. consumeNamespaceDefinition(false); break; } // - // Rule 301: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 303: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; // - case 301: { action.builder. + case 303: { action.builder. consumeNamespaceAliasDefinition(); break; } // - // Rule 302: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; + // Rule 304: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; // - case 302: { action.builder. + case 304: { action.builder. consumeUsingDeclaration(); break; } // - // Rule 303: typename_opt ::= typename + // Rule 305: typename_opt ::= typename // - case 303: { action.builder. + case 305: { action.builder. consumePlaceHolder(); break; } // - // Rule 304: typename_opt ::= $Empty + // Rule 306: typename_opt ::= $Empty // - case 304: { action.builder. + case 306: { action.builder. consumeEmpty(); break; } // - // Rule 305: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 307: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; // - case 305: { action.builder. + case 307: { action.builder. consumeUsingDirective(); break; } // - // Rule 306: asm_definition ::= asm ( stringlit ) ; + // Rule 308: asm_definition ::= asm ( stringlit ) ; // - case 306: { action.builder. + case 308: { action.builder. consumeDeclarationASM(); break; } // - // Rule 307: linkage_specification ::= extern stringlit { declaration_seq_opt } + // Rule 309: linkage_specification ::= extern stringlit { declaration_seq_opt } // - case 307: { action.builder. + case 309: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 308: linkage_specification ::= extern stringlit declaration + // Rule 310: linkage_specification ::= extern stringlit declaration // - case 308: { action.builder. + case 310: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 313: init_declarator_complete ::= init_declarator + // Rule 315: init_declarator_complete ::= init_declarator // - case 313: { action.builder. + case 315: { action.builder. consumeInitDeclaratorComplete(); break; } // - // Rule 315: init_declarator ::= declarator initializer + // Rule 317: init_declarator ::= declarator initializer // - case 315: { action.builder. + case 317: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 317: declarator ::= ptr_operator_seq direct_declarator - // - case 317: { action.builder. - consumeDeclaratorWithPointer(true); break; - } - - // - // Rule 319: function_declarator ::= ptr_operator_seq direct_declarator + // Rule 319: declarator ::= ptr_operator_seq direct_declarator // case 319: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 323: basic_direct_declarator ::= declarator_id_name + // Rule 321: function_declarator ::= ptr_operator_seq direct_declarator // - case 323: { action.builder. - consumeDirectDeclaratorIdentifier(); break; - } - - // - // Rule 324: basic_direct_declarator ::= ( declarator ) - // - case 324: { action.builder. - consumeDirectDeclaratorBracketed(); break; - } - - // - // Rule 325: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt - // - case 325: { action.builder. - consumeDirectDeclaratorFunctionDeclarator(true); break; - } - - // - // Rule 326: array_direct_declarator ::= array_direct_declarator array_modifier - // - case 326: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 327: array_direct_declarator ::= basic_direct_declarator array_modifier - // - case 327: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 328: array_modifier ::= [ constant_expression ] - // - case 328: { action.builder. - consumeDirectDeclaratorArrayModifier(true); break; - } - - // - // Rule 329: array_modifier ::= [ ] - // - case 329: { action.builder. - consumeDirectDeclaratorArrayModifier(false); break; - } - - // - // Rule 330: ptr_operator ::= * cv_qualifier_seq_opt - // - case 330: { action.builder. - consumePointer(); break; - } - - // - // Rule 331: ptr_operator ::= & - // - case 331: { action.builder. - consumeReferenceOperator(); break; - } - - // - // Rule 332: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt - // - case 332: { action.builder. - consumePointerToMember(); break; - } - - // - // Rule 338: cv_qualifier ::= const - // - case 338: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 339: cv_qualifier ::= volatile - // - case 339: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 341: declarator_id_name ::= nested_name_specifier template_opt unqualified_id_name - // - case 341: { action.builder. - consumeQualifiedId(true); break; - } - - // - // Rule 342: type_id ::= type_specifier_seq - // - case 342: { action.builder. - consumeTypeId(false); break; - } - - // - // Rule 343: type_id ::= type_specifier_seq abstract_declarator - // - case 343: { action.builder. - consumeTypeId(true); break; - } - - // - // Rule 346: abstract_declarator ::= ptr_operator_seq - // - case 346: { action.builder. - consumeDeclaratorWithPointer(false); break; - } - - // - // Rule 347: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator - // - case 347: { action.builder. + case 321: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 351: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 325: basic_direct_declarator ::= declarator_id_name // - case 351: { action.builder. + case 325: { action.builder. + consumeDirectDeclaratorIdentifier(); break; + } + + // + // Rule 326: basic_direct_declarator ::= ( declarator ) + // + case 326: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 352: basic_direct_abstract_declarator ::= ( ) + // Rule 327: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 352: { action.builder. - consumeAbstractDeclaratorEmpty(); break; - } - - // - // Rule 353: array_direct_abstract_declarator ::= array_modifier - // - case 353: { action.builder. - consumeDirectDeclaratorArrayDeclarator(false); break; - } - - // - // Rule 354: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier - // - case 354: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 355: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier - // - case 355: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 356: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt - // - case 356: { action.builder. + case 327: { action.builder. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 357: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 328: array_direct_declarator ::= array_direct_declarator array_modifier + // + case 328: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 329: array_direct_declarator ::= basic_direct_declarator array_modifier + // + case 329: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 330: array_modifier ::= [ constant_expression ] + // + case 330: { action.builder. + consumeDirectDeclaratorArrayModifier(true); break; + } + + // + // Rule 331: array_modifier ::= [ ] + // + case 331: { action.builder. + consumeDirectDeclaratorArrayModifier(false); break; + } + + // + // Rule 332: ptr_operator ::= * cv_qualifier_seq_opt + // + case 332: { action.builder. + consumePointer(); break; + } + + // + // Rule 333: ptr_operator ::= & + // + case 333: { action.builder. + consumeReferenceOperator(); break; + } + + // + // Rule 334: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt + // + case 334: { action.builder. + consumePointerToMember(); break; + } + + // + // Rule 340: cv_qualifier ::= const + // + case 340: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 341: cv_qualifier ::= volatile + // + case 341: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 343: declarator_id_name ::= nested_name_specifier template_opt unqualified_id_name + // + case 343: { action.builder. + consumeQualifiedId(true); break; + } + + // + // Rule 344: type_id ::= type_specifier_seq + // + case 344: { action.builder. + consumeTypeId(false); break; + } + + // + // Rule 345: type_id ::= type_specifier_seq abstract_declarator + // + case 345: { action.builder. + consumeTypeId(true); break; + } + + // + // Rule 348: abstract_declarator ::= ptr_operator_seq + // + case 348: { action.builder. + consumeDeclaratorWithPointer(false); break; + } + + // + // Rule 349: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator + // + case 349: { action.builder. + consumeDeclaratorWithPointer(true); break; + } + + // + // Rule 353: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // + case 353: { action.builder. + consumeDirectDeclaratorBracketed(); break; + } + + // + // Rule 354: basic_direct_abstract_declarator ::= ( ) + // + case 354: { action.builder. + consumeAbstractDeclaratorEmpty(); break; + } + + // + // Rule 355: array_direct_abstract_declarator ::= array_modifier + // + case 355: { action.builder. + consumeDirectDeclaratorArrayDeclarator(false); break; + } + + // + // Rule 356: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // + case 356: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 357: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier // case 357: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 358: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // + case 358: { action.builder. + consumeDirectDeclaratorFunctionDeclarator(true); break; + } + + // + // Rule 359: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // + case 359: { action.builder. consumeDirectDeclaratorFunctionDeclarator(false); break; } // - // Rule 358: parameter_declaration_clause ::= parameter_declaration_list_opt ... - // - case 358: { action.builder. - consumePlaceHolder(); break; - } - - // - // Rule 359: parameter_declaration_clause ::= parameter_declaration_list_opt - // - case 359: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 360: parameter_declaration_clause ::= parameter_declaration_list , ... + // Rule 360: parameter_declaration_clause ::= parameter_declaration_list_opt ... // case 360: { action.builder. consumePlaceHolder(); break; } // - // Rule 366: abstract_declarator_opt ::= $Empty + // Rule 361: parameter_declaration_clause ::= parameter_declaration_list_opt // - case 366: { action.builder. + case 361: { action.builder. consumeEmpty(); break; } // - // Rule 367: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // Rule 362: parameter_declaration_clause ::= parameter_declaration_list , ... // - case 367: { action.builder. + case 362: { action.builder. + consumePlaceHolder(); break; + } + + // + // Rule 368: abstract_declarator_opt ::= $Empty + // + case 368: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 369: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // + case 369: { action.builder. consumeParameterDeclaration(); break; } // - // Rule 368: parameter_declaration ::= declaration_specifiers + // Rule 370: parameter_declaration ::= declaration_specifiers // - case 368: { action.builder. + case 370: { action.builder. consumeParameterDeclarationWithoutDeclarator(); break; } // - // Rule 370: parameter_init_declarator ::= declarator = parameter_initializer - // - case 370: { action.builder. - consumeDeclaratorWithInitializer(true); break; - } - - // - // Rule 372: parameter_init_declarator ::= abstract_declarator = parameter_initializer + // Rule 372: parameter_init_declarator ::= declarator = parameter_initializer // case 372: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 373: parameter_init_declarator ::= = parameter_initializer + // Rule 374: parameter_init_declarator ::= abstract_declarator = parameter_initializer // - case 373: { action.builder. + case 374: { action.builder. + consumeDeclaratorWithInitializer(true); break; + } + + // + // Rule 375: parameter_init_declarator ::= = parameter_initializer + // + case 375: { action.builder. consumeDeclaratorWithInitializer(false); break; } // - // Rule 374: parameter_initializer ::= assignment_expression + // Rule 376: parameter_initializer ::= assignment_expression // - case 374: { action.builder. + case 376: { action.builder. consumeInitializer(); break; } // - // Rule 375: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body + // Rule 377: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body // - case 375: { action.builder. + case 377: { action.builder. consumeFunctionDefinition(false); break; } // - // Rule 376: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq + // Rule 378: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq // - case 376: { action.builder. + case 378: { action.builder. consumeFunctionDefinition(true); break; } // - // Rule 379: initializer ::= ( expression_list ) + // Rule 381: initializer ::= ( expression_list ) // - case 379: { action.builder. + case 381: { action.builder. consumeInitializerConstructor(); break; } // - // Rule 380: initializer_clause ::= assignment_expression + // Rule 382: initializer_clause ::= assignment_expression // - case 380: { action.builder. + case 382: { action.builder. consumeInitializer(); break; } // - // Rule 381: initializer_clause ::= { initializer_list , } - // - case 381: { action.builder. - consumeInitializerList(); break; - } - - // - // Rule 382: initializer_clause ::= { initializer_list } - // - case 382: { action.builder. - consumeInitializerList(); break; - } - - // - // Rule 383: initializer_clause ::= { } + // Rule 383: initializer_clause ::= { initializer_list , } // case 383: { action.builder. consumeInitializerList(); break; } // - // Rule 388: class_specifier ::= class_head { member_declaration_list_opt } + // Rule 384: initializer_clause ::= { initializer_list } // - case 388: { action.builder. - consumeClassSpecifier(); break; + case 384: { action.builder. + consumeInitializerList(); break; } // - // Rule 389: class_specifier ::= class_head EOC member_declaration_list_opt } + // Rule 385: initializer_clause ::= { } // - case 389: { action.builder. - consumeClassSpecifier(); break; + case 385: { action.builder. + consumeInitializerList(); break; } // - // Rule 390: class_head ::= class_keyword identifier_name_opt base_clause_opt + // Rule 390: class_specifier ::= class_head { member_declaration_list_opt } // case 390: { action.builder. - consumeClassHead(false); break; + consumeClassSpecifier(); break; } // - // Rule 391: class_head ::= class_keyword template_id_name base_clause_opt + // Rule 391: class_head ::= class_keyword identifier_name_opt base_clause_opt // case 391: { action.builder. consumeClassHead(false); break; } // - // Rule 392: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt + // Rule 392: class_head ::= class_keyword template_id_name base_clause_opt // case 392: { action.builder. - consumeClassHead(true); break; + consumeClassHead(false); break; } // - // Rule 393: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt + // Rule 393: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt // case 393: { action.builder. consumeClassHead(true); break; } // - // Rule 395: identifier_name_opt ::= $Empty + // Rule 394: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt // - case 395: { action.builder. + case 394: { action.builder. + consumeClassHead(true); break; + } + + // + // Rule 396: identifier_name_opt ::= $Empty + // + case 396: { action.builder. consumeEmpty(); break; } // - // Rule 399: visibility_label ::= access_specifier_keyword : + // Rule 400: visibility_label ::= access_specifier_keyword : // - case 399: { action.builder. + case 400: { action.builder. consumeVisibilityLabel(); break; } // - // Rule 400: member_declaration ::= declaration_specifiers_opt member_declarator_list ; + // Rule 401: member_declaration ::= declaration_specifiers_opt member_declarator_list ; // - case 400: { action.builder. + case 401: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 401: member_declaration ::= declaration_specifiers_opt ; + // Rule 402: member_declaration ::= declaration_specifiers_opt ; // - case 401: { action.builder. + case 402: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 404: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; + // Rule 405: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; // - case 404: { action.builder. + case 405: { action.builder. consumeMemberDeclarationQualifiedId(); break; } // - // Rule 410: member_declaration ::= ERROR_TOKEN + // Rule 411: member_declaration ::= ERROR_TOKEN // - case 410: { action.builder. + case 411: { action.builder. consumeDeclarationProblem(); break; } // - // Rule 418: member_declarator ::= declarator constant_initializer + // Rule 419: member_declarator ::= declarator constant_initializer // - case 418: { action.builder. + case 419: { action.builder. consumeMemberDeclaratorWithInitializer(); break; } // - // Rule 419: member_declarator ::= bit_field_declarator : constant_expression + // Rule 420: member_declarator ::= bit_field_declarator : constant_expression // - case 419: { action.builder. + case 420: { action.builder. consumeBitField(true); break; } // - // Rule 420: member_declarator ::= : constant_expression + // Rule 421: member_declarator ::= : constant_expression // - case 420: { action.builder. + case 421: { action.builder. consumeBitField(false); break; } // - // Rule 421: bit_field_declarator ::= identifier_name + // Rule 422: bit_field_declarator ::= identifier_name // - case 421: { action.builder. + case 422: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 422: constant_initializer ::= = constant_expression + // Rule 423: constant_initializer ::= = constant_expression // - case 422: { action.builder. + case 423: { action.builder. consumeInitializer(); break; } // - // Rule 428: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 429: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 428: { action.builder. + case 429: { action.builder. consumeBaseSpecifier(false, false); break; } // - // Rule 429: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name - // - case 429: { action.builder. - consumeBaseSpecifier(true, true); break; - } - - // - // Rule 430: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name + // Rule 430: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name // case 430: { action.builder. consumeBaseSpecifier(true, true); break; } // - // Rule 431: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name + // Rule 431: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name // case 431: { action.builder. + consumeBaseSpecifier(true, true); break; + } + + // + // Rule 432: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name + // + case 432: { action.builder. consumeBaseSpecifier(true, false); break; } // - // Rule 432: access_specifier_keyword ::= private - // - case 432: { action.builder. - consumeAccessKeywordToken(); break; - } - - // - // Rule 433: access_specifier_keyword ::= protected + // Rule 433: access_specifier_keyword ::= private // case 433: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 434: access_specifier_keyword ::= public + // Rule 434: access_specifier_keyword ::= protected // case 434: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 436: access_specifier_keyword_opt ::= $Empty + // Rule 435: access_specifier_keyword ::= public // - case 436: { action.builder. + case 435: { action.builder. + consumeAccessKeywordToken(); break; + } + + // + // Rule 437: access_specifier_keyword_opt ::= $Empty + // + case 437: { action.builder. consumeEmpty(); break; } // - // Rule 438: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > + // Rule 439: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > // - case 438: { action.builder. + case 439: { action.builder. consumeTemplateId(); break; } // - // Rule 439: conversion_function_id ::= operator conversion_type_id + // Rule 440: conversion_function_id ::= operator conversion_type_id // - case 439: { action.builder. + case 440: { action.builder. consumeConversionName(); break; } // - // Rule 440: conversion_type_id ::= type_specifier_seq conversion_declarator + // Rule 441: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 440: { action.builder. + case 441: { action.builder. consumeTypeId(true); break; } // - // Rule 441: conversion_type_id ::= type_specifier_seq + // Rule 442: conversion_type_id ::= type_specifier_seq // - case 441: { action.builder. + case 442: { action.builder. consumeTypeId(false); break; } // - // Rule 442: conversion_declarator ::= ptr_operator_seq + // Rule 443: conversion_declarator ::= ptr_operator_seq // - case 442: { action.builder. + case 443: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 448: mem_initializer ::= mem_initializer_name ( expression_list_opt ) + // Rule 449: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 448: { action.builder. + case 449: { action.builder. consumeConstructorChainInitializer(); break; } // - // Rule 449: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 450: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name // - case 449: { action.builder. + case 450: { action.builder. consumeQualifiedId(false); break; } // - // Rule 452: operator_function_id_name ::= operator_id_name < template_argument_list_opt > + // Rule 453: operator_function_id_name ::= operator_id_name < template_argument_list_opt > // - case 452: { action.builder. + case 453: { action.builder. consumeTemplateId(); break; } // - // Rule 453: operator_id_name ::= operator overloadable_operator + // Rule 454: operator_id_name ::= operator overloadable_operator // - case 453: { action.builder. + case 454: { action.builder. consumeOperatorName(); break; } // - // Rule 496: template_declaration ::= export_opt template < template_parameter_list > declaration + // Rule 497: template_declaration ::= export_opt template < template_parameter_list > declaration // - case 496: { action.builder. + case 497: { action.builder. consumeTemplateDeclaration(); break; } // - // Rule 497: export_opt ::= export + // Rule 498: export_opt ::= export // - case 497: { action.builder. + case 498: { action.builder. consumePlaceHolder(); break; } // - // Rule 498: export_opt ::= $Empty + // Rule 499: export_opt ::= $Empty // - case 498: { action.builder. + case 499: { action.builder. consumeEmpty(); break; } // - // Rule 502: template_parameter ::= parameter_declaration + // Rule 503: template_parameter ::= parameter_declaration // - case 502: { action.builder. + case 503: { action.builder. consumeTemplateParamterDeclaration(); break; } // - // Rule 503: type_parameter ::= class identifier_name_opt - // - case 503: { action.builder. - consumeSimpleTypeTemplateParameter(false); break; - } - - // - // Rule 504: type_parameter ::= class identifier_name_opt = type_id + // Rule 504: type_parameter ::= class identifier_name_opt // 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 + // Rule 505: type_parameter ::= class identifier_name_opt = type_id // - case 506: { action.builder. + case 505: { action.builder. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 507: type_parameter ::= template < template_parameter_list > class identifier_name_opt + // 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 508: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression + // Rule 509: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression // - case 508: { action.builder. + case 509: { action.builder. consumeTemplatedTypeTemplateParameter(true); break; } // - // Rule 509: template_id_name ::= identifier_name < template_argument_list_opt > + // Rule 510: template_id_name ::= identifier_name < template_argument_list_opt > // - case 509: { action.builder. + case 510: { action.builder. consumeTemplateId(); break; } // - // Rule 515: template_argument ::= type_id + // Rule 516: template_argument ::= type_id // - case 515: { action.builder. + case 516: { action.builder. consumeTemplateArgumentTypeId(); break; } // - // Rule 516: explicit_instantiation ::= template declaration + // Rule 517: explicit_instantiation ::= template declaration // - case 516: { action.builder. + case 517: { action.builder. consumeTemplateExplicitInstantiation(); break; } // - // Rule 517: explicit_specialization ::= template < > declaration + // Rule 518: explicit_specialization ::= template < > declaration // - case 517: { action.builder. + case 518: { action.builder. consumeTemplateExplicitSpecialization(); break; } // - // Rule 518: try_block ::= try compound_statement handler_seq + // Rule 519: try_block ::= try compound_statement handler_seq // - case 518: { action.builder. + case 519: { action.builder. consumeStatementTryBlock(); break; } // - // Rule 521: handler ::= catch ( exception_declaration ) compound_statement + // Rule 522: handler ::= catch ( exception_declaration ) compound_statement // - case 521: { action.builder. + case 522: { action.builder. consumeStatementCatchHandler(false); break; } // - // Rule 522: handler ::= catch ( ... ) compound_statement + // Rule 523: handler ::= catch ( ... ) compound_statement // - case 522: { action.builder. + case 523: { action.builder. consumeStatementCatchHandler(true); break; } // - // Rule 523: exception_declaration ::= type_specifier_seq declarator - // - case 523: { action.builder. - consumeDeclarationSimple(true); break; - } - - // - // Rule 524: exception_declaration ::= type_specifier_seq abstract_declarator + // Rule 524: exception_declaration ::= type_specifier_seq declarator // case 524: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 525: exception_declaration ::= type_specifier_seq + // Rule 525: exception_declaration ::= type_specifier_seq abstract_declarator // case 525: { action.builder. + consumeDeclarationSimple(true); break; + } + + // + // Rule 526: exception_declaration ::= type_specifier_seq + // + case 526: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 533: type_parameter_start ::= ERROR_TOKEN + // Rule 534: type_parameter_start ::= ERROR_TOKEN // - case 533: { action.builder. + case 534: { action.builder. consumeDeclarationProblem(); break; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParserprs.java index 3df6ea1f71f..c59493912f9 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,490 +38,485 @@ 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,0,1,2,1,1,1,1,1,1, - 1,1,1,1,1,1,1,3,1,1, - 1,1,1,1,1,1,2,2,1,1, - 0,1,0,4,2,2,2,3,2,3, - 2,2,1,0,1,1,4,4,4,8, - 8,3,3,4,4,3,3,2,2,7, - 7,7,7,4,4,5,6,3,2,2, - 1,1,1,2,2,2,2,2,2,2, - 2,2,4,7,9,3,0,1,2,2, - 1,2,3,4,1,0,3,1,0,3, - 5,1,4,1,3,3,1,3,3,3, - 1,3,3,1,3,3,1,3,3,3, - 3,1,3,3,1,3,1,3,1,3, - 1,3,1,3,1,5,1,2,1,1, - 3,3,3,3,3,3,3,3,3,3, - 3,1,2,1,3,1,0,1,0,1, - 1,0,1,1,1,1,1,1,1,1, - 1,3,3,2,2,1,4,2,1,2, - 5,7,5,1,4,1,0,5,7,8, - 1,1,2,2,3,2,3,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,2,1,0,4,4,2,2,2, - 2,2,0,1,1,1,1,1,1,1, - 2,1,2,2,2,1,1,2,2,1, - 2,2,1,2,2,1,2,2,1,1, - 1,1,1,1,1,1,1,1,1,1, + 1,1,1,0,1,2,1,1,1,1, 1,1,1,1,1,1,1,1,1,3, - 4,4,5,2,4,5,4,5,6,1, - 3,1,0,1,3,1,1,1,6,5, - 7,6,1,0,6,5,6,4,1,3, - 1,0,1,1,2,1,3,1,3,1, - 1,1,1,3,9,2,2,3,2,3, - 1,5,1,2,2,1,0,1,1,1, - 4,1,2,1,1,2,3,1,1,1, - 3,2,1,2,2,9,8,2,1,3, - 1,3,1,0,1,0,2,1,1,3, - 1,3,2,1,5,8,1,2,3,1, - 5,4,3,1,3,1,1,5,5,4, - 4,5,5,1,0,1,1,1,2,4, - 2,2,1,5,1,1,1,1,1,1, - 1,2,1,0,1,3,1,2,3,2, - 1,2,2,1,0,1,3,3,5,5, - 4,1,1,1,1,0,1,5,2,2, - 1,2,2,1,0,1,3,4,3,1, - 1,5,2,1,1,3,3,1,1,1, + 1,1,1,1,1,1,1,1,2,2, + 1,1,0,1,0,4,2,2,2,3, + 2,3,2,2,1,0,1,1,4,4, + 4,8,8,3,3,4,4,3,3,2, + 2,7,7,7,7,4,4,5,6,3, + 2,2,1,1,1,2,2,2,2,2, + 2,2,2,2,4,7,9,3,0,1, + 2,2,1,2,3,4,1,0,3,1, + 0,3,5,1,4,1,3,3,1,3, + 3,3,1,3,3,1,3,3,1,3, + 3,3,3,1,3,3,1,3,1,3, + 1,3,1,3,1,3,1,5,1,2, + 1,1,3,3,3,3,3,3,3,3, + 3,3,3,1,2,1,3,1,0,1, + 0,1,1,0,1,1,1,1,1,1, + 1,1,1,3,3,2,2,1,4,2, + 1,2,5,7,5,1,4,1,0,5, + 7,8,1,1,2,2,3,2,3,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,2,1,0,4,4,2, + 2,2,2,2,0,1,1,1,1,1, + 1,1,2,1,2,2,2,1,1,2, + 2,1,2,2,1,2,2,1,2,2, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,3,4,4,5,2,4,5,4,5, + 6,1,3,1,0,1,3,1,1,1, + 6,5,7,6,1,0,6,5,6,4, + 1,3,1,0,1,1,2,1,3,1, + 3,1,1,1,1,3,9,2,2,3, + 2,3,1,5,1,2,2,1,0,1, + 1,1,4,1,2,1,1,2,3,1, + 1,1,3,2,1,2,2,9,8,2, + 1,3,1,3,1,0,1,0,2,1, + 1,3,1,3,2,1,5,8,1,2, + 3,1,5,4,3,1,3,1,1,5, + 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,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,-132,0,0,0,-83,0,0, + 1,1,1,1,2,2,7,1,0,1, + 3,1,1,2,4,2,4,7,9,5, + 1,3,1,0,1,1,2,4,4,1, + 2,5,5,3,3,1,4,3,1,0, + 1,3,1,1,-131,0,0,0,-36,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-22,0,0,0, - 0,0,0,0,-2,0,-1,0,0,0, - 0,-40,0,0,0,-3,0,-23,-380,0, - 0,0,0,-92,0,0,0,0,0,-159, + 0,0,0,0,0,0,0,-2,0,0, + 0,0,0,0,0,-3,0,-54,0,0, + 0,0,0,-7,0,0,-199,0,0,0, + 0,0,0,0,0,0,0,0,0,-22, + 0,-158,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-1,0,0,0,0,0, + 0,0,0,0,-387,0,0,-8,-349,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,-12,-137,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-324,0,0,-16,0,-191,0,0,0, + 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,0, + 0,0,0,0,-19,0,-252,0,0,0, + 0,0,-6,0,0,0,0,0,-30,0, + 0,0,-20,-26,0,0,0,0,0,-178, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-176,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-221,0,0, - 0,-181,-7,0,0,0,0,0,0,0, - 0,0,0,0,-30,0,0,0,0,-474, - 0,-138,0,0,0,-24,0,0,0,0, - 0,0,0,0,-8,0,0,0,0,0, - 0,0,0,-178,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-460,0,0, + 0,0,0,0,-27,0,0,0,0,0, + -196,0,0,0,0,0,-138,0,0,0, + -23,0,0,0,0,0,0,0,0,-28, + 0,0,0,-91,0,0,0,0,-182,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-182,0,0,0,0,0, - -44,0,0,0,0,0,0,-56,0,0, - 0,-25,0,0,0,0,0,0,-179,0, + 0,0,0,0,0,0,0,0,0,-24, + 0,0,0,0,0,-33,-46,-31,0,0, + 0,0,0,-35,-44,0,0,0,0,0, + 0,-127,-43,0,-298,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-12, - 0,0,0,0,0,-216,0,0,0,0, - 0,0,-107,0,0,0,-194,0,0,0, - -177,-6,0,-375,0,0,-431,0,-139,0, + 0,0,0,0,0,-49,0,-50,0,0, + 0,0,0,-85,0,0,0,0,0,-56, + 0,0,0,-34,0,0,0,-459,0,0, + 0,0,-221,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-447,0, + 0,0,0,-486,0,0,0,-51,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-254,-54,0,-193,0,0,0,-183,0, + 0,0,0,0,0,0,-52,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -283,0,0,0,0,0,-223,0,0,0, + 0,0,0,0,0,0,0,0,0,-83, + 0,0,0,-53,-510,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-25,0,-290,0,0, + 0,0,-317,0,0,0,0,-60,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 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, + 0,0,0,0,-55,0,0,0,-192,0, + 0,0,0,0,-258,-313,-4,0,0,-93, + -260,-68,0,-248,0,0,0,-18,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-91,-33,0,0, - 0,0,0,-327,0,0,0,-85,0,-16, - 0,0,0,-301,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-19,0,-86,0,0,0, - 0,0,0,0,0,-128,0,0,-357,0, - 0,0,0,0,0,0,0,0,0,0, - -201,0,0,0,0,0,0,0,0,0, - 0,0,0,-89,0,-293,0,0,0,0, - 0,-488,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-218,0,0,0,0,0,-198,0, - 0,0,0,-223,0,0,0,-20,0,0, - 0,0,0,0,0,0,-27,-250,0,0, - 0,-511,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-227,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-28,0, - -31,0,0,-60,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-36,0,-18,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-345,0,0,0,0,0,0,0,0, - 0,-260,0,0,0,-195,-352,0,0,0, - -338,0,0,0,-43,-93,0,0,0,0, - 0,0,-49,-81,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-87,0,-50,0,0,0, - -286,0,0,0,0,0,-395,0,0,0, - -82,0,0,0,-51,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-52,0,0,0,0,0,-390,0,0, - 0,0,0,0,0,-210,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-135,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-406,-134,0,0,0,-445,0,0, - 0,-53,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -55,0,0,0,0,0,0,0,0,0, - -90,0,0,0,0,0,-388,0,0,-21, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-68,0,0,0,0,0,0,0, - -69,0,-70,0,0,0,-59,0,0,0, - -71,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-225,0, - 0,0,-72,0,0,0,0,0,0,0, - 0,0,0,0,0,-73,0,-46,-200,0, - 0,0,0,0,-74,0,-79,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-75, - 0,0,0,0,0,0,0,-76,0,-180, - 0,0,0,0,0,-407,0,0,-161,0, + 0,0,0,0,0,-69,0,0,0,-58, + 0,0,0,-70,0,-81,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-98,0,0,0,0,0,-267,0,0, - -162,0,0,0,0,0,0,0,0,0, + 0,0,0,-306,0,0,0,0,0,-342, + -82,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-77,0,0,0,0,0,0, - 0,-78,0,-104,0,0,0,0,0,-80, - 0,0,-163,0,0,0,-404,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-316,0,0,0,0, - 0,0,0,-84,0,-331,0,0,0,0, - 0,-383,0,0,-164,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-88,0,0, - 0,0,0,0,0,-94,0,-348,0,0, - 0,0,0,-95,0,0,-165,0,0,0, + 0,0,0,-111,0,0,0,0,0,0, + 0,-303,0,0,0,0,0,-5,0,0, + 0,0,-208,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,-96,0,-105, - 0,0,0,0,0,-97,0,0,-166,0, + 0,0,0,0,0,-406,0,0,0,0, + 0,0,0,0,-21,0,0,0,-71,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-193,0,0, + 0,0,0,0,0,-72,0,0,0,0, + 0,-73,-79,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-289,0,0,0,0,0,0,0,-111, - 0,-106,0,0,0,0,0,-112,0,0, - -167,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-74,0,0,0,0, + 0,0,0,0,-175,0,0,0,-75,-372, + 0,0,0,0,0,-133,0,-403,-87,-160, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-117,0,-369,0,0,0,-120,0,0, - 0,0,-168,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-296,0,0,0,0, - 0,0,0,-129,0,-108,0,0,0,0, - -320,0,0,0,-169,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-137,0,0, - 0,0,0,0,0,-185,0,-110,0,0, - 0,0,-461,0,0,0,-170,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-304, - 0,0,0,0,0,0,0,-186,0,-113, - 0,0,0,0,-465,0,0,0,-171,0, + -92,0,-76,0,0,0,0,0,-77,0, + 0,-161,0,0,0,-78,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-187,0,0,0,0,0,0,0,-204, - 0,0,0,0,0,-262,-205,-206,0,0, - -287,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-207,0,0,0,0,0,0, - 0,-212,0,0,0,0,0,-450,-213,-214, - 0,0,-297,0,0,0,-370,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-215,0,0,0,0, - 0,0,0,-228,0,-229,0,0,0,-4, - 0,0,0,0,-515,0,0,0,-230,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-188,0,0, - 0,0,0,0,0,-231,0,-191,0,0, - 0,0,-232,-405,0,0,-319,0,0,0, - -233,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-234,0,0, - 0,0,0,-350,0,0,0,0,0,0, + 0,0,-180,0,-312,0,0,0,-385,0, + -181,0,0,-162,0,0,0,-216,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-235,0,0,0, - -387,0,0,0,0,0,0,0,0,0, - 0,-498,-236,-393,0,0,0,0,0,0, + 0,0,0,0,0,0,-86,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,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-89,0, + 0,0,0,0,0,0,0,-164,0,0, + 0,-225,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -273,0,0,0,0,0,0,0,-80,0, + -90,0,0,0,0,-84,-401,0,0,-165, + 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,0, + 0,0,-98,0,0,0,0,0,-88,0, + 0,-166,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-315,0,0,0,0,0, + 0,0,0,0,-104,0,0,0,0,0, + -94,0,0,-167,0,0,0,-95,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-374,0,0,0, + 0,0,0,0,-96,0,-105,0,0,0, + 0,-463,0,0,0,-168,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-411,0, + 0,0,0,0,0,0,-97,0,-107,0, + 0,0,0,-110,-116,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, + -467,0,0,0,0,0,0,0,-119,0, + -109,0,0,0,0,-128,-136,0,0,-170, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-184,0,0,0,0,0,0,0, + -185,0,-112,0,0,0,0,-186,-202,0, + 0,-284,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-497,0,0,0,0,0, + 0,0,-203,0,-189,0,0,0,0,-204, + -205,0,0,-294,0,0,0,-472,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-210,0,0,0, + 0,0,0,0,-211,0,-352,0,0,0, + -404,0,-509,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,-464,0, + 0,0,0,0,0,0,-428,0,-190,0, + 0,0,0,-212,-265,0,0,-316,0,0, + 0,-134,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-213,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,-367,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-219,0,0,0,0,-226,0,0,0, + 0,0,0,-227,-228,-390,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-229,0, + 0,0,0,0,0,0,-230,0,-231,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,-232,0,-233,0,0,0,-335, + 0,0,0,0,-234,0,0,0,0,0, + -380,0,-235,-400,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-236,0,0,0, 0,0,0,0,-237,0,-238,0,0,0, - -394,0,0,0,0,0,0,0,0,0, + -450,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-510,0,0,0,0,0,0, - 0,-239,0,-330,0,0,0,-274,0,0, - 0,-240,-241,-309,-422,0,0,0,0,-242, - -403,0,0,0,0,0,0,0,0,0, + 0,0,0,-239,0,0,0,0,0,0, + 0,-240,0,-241,0,0,0,-384,0,0, + 0,-242,-243,0,0,0,0,0,-48,0, + 0,-172,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-244,0,0,0,0,0, + 0,0,-194,0,-247,0,0,-344,-159,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-243,0,0,0,-453,0,0, + 0,0,0,0,0,0,0,0,0,-286, + 0,-157,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, + 0,0,-154,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -244,0,0,0,0,0,0,0,0,0, - -192,0,0,0,0,-245,-196,-264,0,0, - 0,-423,0,0,0,0,-246,-173,0,0, + 0,-155,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-249,0,0,0,0,-156, + 0,0,0,-250,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -249,0,0,0,0,0,0,0,0,0, - 0,0,-251,0,-160,0,0,0,0,0, + 0,0,-251,0,0,0,0,-148,0,0, + 0,-253,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-270,0,0, - 0,0,0,0,0,-252,0,-158,0,0, - 0,-99,0,0,0,0,0,0,0,0, + -261,0,0,0,-149,0,0,0,-263,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-155,0, + 0,0,0,0,0,0,0,-264,0,0, + 0,-150,0,0,0,-274,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-402,0,0,0,-151,0, + 0,0,-100,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-156,0,0, - 0,-426,0,0,0,0,0,0,0,0, + 0,-435,0,0,0,0,-353,-292,0,0, + 0,0,-101,0,-29,-217,0,0,0,0, + -38,0,0,0,0,0,-410,-45,0,0, + 0,0,-275,-293,0,0,-37,0,0,0, + 0,-195,0,0,0,-40,0,0,0,0, + 0,0,0,0,0,0,-254,0,0,0, + 0,0,-448,0,0,0,0,-129,0,0, + 0,-278,0,-279,-354,0,0,0,0,0, + 0,0,0,0,0,0,-280,0,0,0, + -106,0,0,0,-281,0,-304,0,0,0, + 0,0,0,0,0,-305,-310,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -276,0,0,0,0,-157,0,0,0,-253, + -311,0,0,0,0,0,-117,0,0,-373, + 0,0,-206,-130,-108,0,0,0,-413,0, + 0,0,0,0,0,0,-13,0,0,0, + 0,-187,0,0,0,0,0,-14,0,0, + 0,-118,0,0,0,0,0,0,-47,-17, + 0,0,0,0,0,-322,0,0,-427,0, + 0,0,0,-183,0,0,-115,0,0,0, + 0,0,0,0,0,0,0,-256,0,0, + 0,0,-323,0,0,0,-262,0,0,0, + 0,-329,0,0,0,0,0,0,0,0, + 0,0,0,0,-32,0,0,0,0,-346, + 0,0,0,0,0,0,-348,-364,-431,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-255,0, - 0,0,0,-149,0,0,0,-263,0,0, + 0,0,0,-328,-270,0,-368,0,0,0, + 0,0,0,0,0,-369,0,0,0,0, + -272,0,-375,0,0,0,0,0,0,-378, + 0,0,0,0,-397,0,0,0,0,-405, + -408,0,-409,0,-198,0,0,0,-412,0, + 0,0,0,0,0,0,-416,-173,-15,0, + 0,0,0,-271,0,0,0,0,0,0, + 0,-446,0,0,0,0,-152,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-418, + 0,0,-153,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -150,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-407,0, + 0,0,0,0,0,0,0,0,0,-39, + -444,0,0,-479,-214,0,0,0,0,0, + -429,0,0,0,0,-268,-457,-57,-449,0, + 0,0,0,0,0,0,0,-415,-41,0, + 0,0,-379,0,0,0,0,0,0,0, + 0,0,0,-451,0,0,0,0,0,0, + 0,0,0,-452,0,0,0,0,0,-200, + 0,0,0,0,0,-453,0,0,0,0, + 0,0,0,-126,0,-454,0,0,0,-511, + -461,-476,-201,-455,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-265,0,0,0,-151,0,0, - 0,-266,0,0,0,0,0,0,0,0, + -392,0,0,0,0,-456,0,-113,0,0, 0,0,0,0,0,0,0,0,0,0, - -277,0,0,0,-152,0,0,0,-278,0, + 0,0,-9,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-458,0, + 0,0,-502,-120,0,0,0,0,-257,0, + 0,-269,0,-363,-215,0,0,0,0,0, + 0,0,0,0,0,0,0,-516,-473,0, + 0,0,-436,0,0,0,0,0,0,0, + 0,0,0,-207,0,-474,-220,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-281,0,0, - 0,-13,0,0,0,0,-282,0,0,0, - 0,0,-466,-14,0,0,0,-100,0,-35, - -130,-318,-153,0,0,0,0,0,0,0, + 0,-140,0,-504,-135,0,0,0,0,0, + 0,-139,-475,0,0,0,0,0,-480,0, + 0,0,0,0,0,0,0,0,-176,-222, + 0,0,0,0,0,-462,0,0,-484,-224, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-512,0,0,0,0, - 0,0,-15,-382,0,0,0,0,0,0, - -131,-184,-37,0,0,-273,-45,0,0,0, - 0,0,0,0,-347,0,-199,0,0,0, - -32,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-283,-284,0, - 0,0,0,0,0,0,0,0,0,-366, - 0,0,0,0,-306,-440,0,0,0,-5, - 0,0,0,0,-202,-197,0,0,0,0, - 0,0,0,0,-315,-271,0,0,0,0, + 0,0,0,0,0,0,0,0,-289,0, + 0,0,0,0,-508,-477,0,-301,0,0, + 0,0,0,0,0,-494,-314,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-295,0,0,-171,0,0,0,0, + -245,-296,0,0,0,0,0,-498,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-307,0,-34,-118,-279,0,0, - 0,0,0,0,0,0,-377,-414,0,-308, - 0,0,-154,0,0,0,-313,0,0,0, + -503,0,-327,-218,0,-519,-478,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-469,0,0,-410,0, - 0,0,0,0,0,0,0,0,0,-101, - -314,0,-401,0,0,0,0,0,-355,-48, - 0,0,-9,0,-438,-256,0,0,0,0, - 0,0,0,0,0,-10,0,0,0,0, - 0,0,0,0,-499,0,0,0,0,0, - 0,0,-513,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-325,-39,0, - 0,0,0,0,0,0,0,0,0,-285, - 0,0,0,0,-451,-203,-481,0,0,0, - 0,-328,0,0,0,-326,-209,0,0,0, + -515,0,0,0,0,0,0,0,0,0, + 0,-340,0,0,0,-179,0,0,0,0, + 0,0,0,0,0,0,-246,0,0,0, + 0,0,0,0,-471,0,0,0,0,0, + 0,-419,0,0,0,0,-522,-10,0,0, + 0,0,-482,0,0,-291,0,0,-351,0, 0,0,0,0,0,0,0,0,0,0, - -332,0,0,0,0,0,0,0,-349,0, + 0,0,0,0,-103,0,0,0,0,0, + -276,0,0,0,0,0,0,-297,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-275,0, - -222,0,-272,0,-333,0,0,0,0,0, - -351,0,0,0,0,0,0,0,-367,0, - 0,0,0,0,0,0,0,-144,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-371,-208,-145,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-226,0,-311, - 0,0,0,0,0,0,0,0,0,0, - -258,-439,0,0,0,-372,0,-334,0,0, - 0,0,-29,-17,-378,-459,0,0,0,0, - 0,0,-381,-127,-400,-408,-119,0,0,0, - 0,0,0,0,-356,0,0,0,0,0, - -109,0,0,0,0,0,0,0,0,0, - -41,0,0,0,0,0,0,-411,0,0, - 0,0,0,0,0,0,0,0,0,-364, - 0,0,0,-376,0,-478,-412,0,0,0, - -259,0,0,-292,0,-220,-298,0,0,0, - 0,0,0,0,0,0,0,0,0,-415, - -419,0,-247,0,-42,0,0,0,0,0, + 0,0,0,0,0,0,0,-282,0,0, 0,0,-302,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-303, - 0,0,0,0,0,-503,0,0,0,0, - 0,0,-140,-362,0,-421,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-26, - 0,0,0,-432,0,0,0,0,0,-335, - 0,-389,0,0,0,0,0,0,0,0, - 0,0,0,-336,0,0,0,0,0,0, - 0,0,0,-413,0,-505,0,0,0,0, - -434,0,-257,0,0,0,0,-452,0,0, - 0,0,0,0,0,0,0,0,0,-454, 0,0,0,0,0,0,0,0,0,0, - 0,0,-456,0,0,-449,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-295, - 0,0,0,-47,0,-509,-494,0,-416,0, - 0,-116,0,0,0,-353,0,0,0,-457, + -143,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-458,-460,0,-424,0,-462,0,0, - -300,0,0,0,0,0,0,-475,0,0, - 0,0,0,-430,0,0,0,0,0,-514, - 0,0,0,0,0,0,0,0,0,0, - 0,-248,-294,-476,0,0,0,0,0,-477, - -447,0,0,0,0,0,0,0,0,-299, - -520,0,-482,0,0,0,0,0,0,0, - -486,-329,0,0,0,0,-305,0,0,-496, - 0,0,0,0,0,0,0,0,0,-504, - -417,0,0,0,-516,-358,0,-310,0,0, - 0,0,0,0,-174,0,0,0,0,0, - 0,0,0,0,0,-38,0,0,0,0, - 0,0,0,0,0,-523,0,0,-141,0, - 0,-337,0,0,-359,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -340,0,0,0,0,0,-490,0,0,0, - 0,0,-342,0,0,0,0,0,0,-427, - 0,0,0,0,0,0,0,0,0,0, - -102,0,0,0,0,0,0,0,0,0, - 0,-57,0,-172,0,0,-360,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-444,0,-344,0,0,-418,0,0,0, - 0,-365,0,0,0,0,0,0,0,-373, - 0,0,0,0,0,0,0,0,0,-472, - 0,0,0,0,0,0,0,-146,0,0, + 0,0,0,0,0,-144,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-147,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-148, - 0,0,0,-455,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-339,-479,-361,-321,0,0,-175,0, - -363,-385,0,-374,0,0,-409,0,0,-398, - 0,0,0,0,0,0,0,-463,-399,-429, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-425,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-433,0,0,0, - 0,0,0,-464,0,0,0,0,0,0, - 0,0,-473,0,-443,0,0,0,0,-437, - -484,0,0,0,0,0,0,0,0,0, - 0,-114,0,0,0,0,0,0,-442,-467, - -470,0,0,0,0,-471,0,0,-491,0, - 0,-58,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-487,0,-495,0,0,0,0,0, - 0,0,0,0,0,-485,0,-489,0,0, - -502,-493,0,0,0,0,-497,0,0,0, - -61,0,0,0,0,0,0,0,0,0, + -308,0,0,0,0,0,0,0,0,0, + 0,0,-326,-513,0,0,0,0,0,0, + 0,0,0,0,-11,-197,0,0,0,-102, + 0,0,0,-398,0,0,0,0,0,0, + 0,0,-318,0,-307,0,0,0,0,0, + -492,-488,0,0,0,0,0,0,0,0, + 0,-174,0,0,0,0,0,-483,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-325,0,0, + 0,-330,0,0,0,0,0,0,0,0, + -331,0,0,0,0,0,-512,0,-114,0, + 0,0,0,0,0,0,-145,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -255,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -334,-359,0,0,0,0,0,-146,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -147,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-336,0,0,-487,0,-420,0, + 0,0,-470,0,0,-437,0,0,0,0, + 0,0,-61,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-382,-383, + -337,-339,0,0,0,0,-345,0,-319,0, + 0,0,0,0,0,0,0,0,0,-121, + -122,0,0,0,0,-421,0,0,0,0, + -343,0,0,0,-299,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-440,-505,0,0,0,0,0, + -355,-341,0,0,0,0,-356,0,0,0, + 0,0,0,0,0,0,0,-357,-358,0, + -366,-395,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-441,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-361,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -362,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,0,0,0,0, + 0,0,0,-370,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,0,0,-64,0,0,0,0,0, + 0,0,-64,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-65,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,-66,0, + 0,0,0,0,0,0,-66,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-67,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, + -132,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,-141,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,-142,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-143,0,0,0, + 0,0,0,0,0,0,-209,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-211,0, + 0,0,0,0,0,0,0,0,-287,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -290,0,0,0,-500,0,0,0,0,0, + -506,0,0,0,0,0,0,0,0,0, + 0,-125,0,0,0,0,-396,-371,0,-300, + -338,0,-422,0,0,0,0,-332,-377,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-507,0,0,0,0,-506,0,0, - 0,0,0,-480,-483,0,-517,0,0,0, - 0,-341,0,0,-518,0,0,0,0,0, - -322,-386,0,0,0,0,0,0,-217,0, - 0,0,0,-522,0,0,0,0,0,0, + -426,-386,-320,0,0,-430,0,0,0,0, + 0,-434,0,0,0,0,0,0,0,0, + -333,-376,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-469,-439, + 0,0,0,0,0,0,0,0,0,-517, + 0,0,0,0,0,0,-123,-465,-468,-424, 0,0,0,0,0,0,0,0,0,0, - 0,-501,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-519,-521,-121, + 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,-323,-379,0,0, - 0,0,0,0,0,0,0,-384,0,0, + 0,0,0,0,0,0,0,-485,0,0, + 0,0,0,0,-493,0,0,0,0,0, + 0,0,0,-489,0,0,-501,-425,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-402,0, + 0,-124,0,0,0,0,-393,0,0,0, + 0,0,-521,-491,0,0,0,0,0,0, + 0,0,-350,-495,0,-414,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-433,0,0,0,0,0,-499,0, + 0,0,0,0,0,-500,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-388,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-518,0,0,0,0,0,-443,0,0, + 0,0,0,0,0,0,0,0,-259,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -321,0,0,0,0,0,-520,0,0,-42, + 0,0,0,0,0,0,0,-277,0,0, + 0,0,0,0,0,0,0,0,-481,0, + 0,0,0,0,0,0,0,0,-360,0, + -188,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-394,0,0,0, + 0,0,0,0,0,0,0,0,0,-365, + 0,0,0,0,0,-309,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-324,0, + 0,0,0,0,0,0,0,0,0,-285, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-428,0,0,0,0,0,0, - 0,0,0,-436,-11,0,0,0,0,0, - 0,0,0,0,-122,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-389,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-399, + 0,-288,0,0,0,0,-490,0,0,0, + 0,0,0,0,0,0,0,0,0,-266, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-267,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -417,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -466,0,0,0,0,0,0,0,-432,0, + 0,0,0,0,0,0,0,-445,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-438,0,-507,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-224, - 0,0,0,0,0,0,0,0,0,-391, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-446,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-317,0,0,0,0,0, - 0,0,-123,0,-189,0,0,0,0,0, - 0,0,0,0,-190,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-441,0,0,0,0,0, - 0,0,0,0,-368,0,0,0,0,0, - 0,0,-219,-508,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-343,0,0, - 0,0,0,0,0,0,0,0,-312,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-346,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-392,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-492,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-268,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-269,0,0,0,0,0, - 0,0,0,0,0,0,-354,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-396,0,0,0,0,0, - 0,0,-397,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -420,0,0,0,-435,0,0,0,0,0, - 0,0,-448,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-103,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-115,0,0, - 0,0,0,-136,0,0,0,0,0,0, - 0,0,0,0,-126,0,0,0,-261,0, - 0,0,-280,0,0,0,0,0,-288,0, - 0,0,0,0,0,0,0,0,0,0, - -124,0,0,0,0,-125,0,0,-291,0, - -468,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,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; @@ -531,530 +526,527 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface BaseAction { public final static char baseAction[] = { - 169,4,48,75,75,31,31,64,64,38, - 38,190,190,191,191,192,192,1,1,15, - 15,15,15,15,15,15,15,16,16,16, - 14,11,11,8,8,8,8,8,8,2, - 65,65,5,5,12,12,12,12,44,44, - 134,134,135,61,61,42,17,17,17,17, + 168,4,49,76,76,31,31,65,65,38, + 38,42,42,191,191,192,192,193,193,1, + 1,15,15,15,15,15,15,15,15,16, + 16,16,14,11,11,8,8,8,8,8, + 8,2,66,66,5,5,12,12,12,12, + 45,45,133,133,134,62,62,43,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,22,22,22,24,24,24, - 24,25,25,25,26,26,26,27,27,27, - 27,27,28,28,28,29,29,30,30,32, - 32,34,34,35,35,36,36,41,41,40, - 40,40,40,40,40,40,40,40,40,40, - 40,40,39,33,142,142,96,96,173,173, - 91,193,193,76,76,76,76,76,76,76, - 76,76,77,77,77,73,73,59,59,174, - 174,78,78,78,102,102,175,175,79,79, - 79,176,176,80,80,80,80,80,81,81, - 83,83,83,83,83,83,83,49,49,49, - 49,49,114,114,115,115,50,177,23,23, - 23,23,23,47,47,86,86,86,86,86, - 149,149,144,144,144,144,144,145,145,145, - 146,146,146,147,147,147,148,148,148,87, - 87,87,87,87,88,88,88,13,13,13, - 13,13,13,13,13,13,13,13,100,119, - 119,119,119,119,119,117,117,117,118,118, - 151,151,150,150,121,121,103,68,68,69, - 70,52,46,152,152,53,51,85,85,153, - 153,143,143,122,123,123,74,74,154,154, - 62,62,62,57,57,56,63,63,71,71, - 55,55,55,89,89,98,97,97,60,60, - 58,58,54,54,43,101,101,101,92,92, - 92,93,93,94,94,94,95,95,104,104, - 104,106,106,105,105,194,194,90,90,179, - 179,179,179,179,125,45,45,156,178,178, - 126,126,126,126,180,180,37,37,116,116, - 127,127,127,127,107,107,120,120,120,128, - 129,129,129,129,129,129,129,129,129,129, - 129,159,159,158,158,181,181,160,160,160, - 160,161,182,109,108,108,183,183,162,162, - 162,162,99,99,99,184,184,9,9,10, - 185,185,186,163,155,155,164,164,165,166, - 166,6,6,7,167,167,167,167,167,167, - 167,167,167,167,167,167,167,167,167,167, - 167,167,167,167,167,167,167,167,167,167, - 167,167,167,167,167,167,167,167,167,167, - 167,167,167,167,167,167,66,72,72,168, - 168,131,131,110,110,110,110,110,110,3, - 132,132,130,130,111,111,84,67,82,157, - 157,112,112,187,187,187,133,133,124,124, - 188,188,169,169,881,39,1966,1940,2491,4099, - 34,1007,31,35,1049,30,32,1939,29,27, - 56,1333,112,82,83,114,1341,943,1351,1343, - 1386,1373,1420,1395,1504,206,1428,2431,1512,1520, - 149,278,1166,1688,164,150,557,3722,1018,2079, - 39,1051,36,2789,2491,34,1007,340,35,1049, - 2307,39,1051,36,237,3742,34,1007,31,35, - 1049,30,32,1291,29,27,56,1333,112,82, - 83,114,1341,328,1351,1343,1386,1373,1420,2234, - 240,235,236,937,39,1051,36,3180,355,34, - 1007,341,35,1049,279,318,2767,323,937,39, - 1051,36,2491,1217,34,1007,44,35,1049,354, - 247,250,253,256,3416,600,1646,1638,38,495, - 2443,1077,1140,39,1051,36,1162,4330,34,1007, - 31,35,1049,63,32,1448,1932,532,2746,2600, - 2643,2859,3071,3125,1419,39,1051,36,2594,3742, - 34,1007,31,35,1049,30,32,1291,29,27, - 56,1333,112,82,83,114,1341,344,1351,1343, - 1386,1373,1420,1395,1504,2491,1428,457,1512,1520, - 149,248,39,284,514,150,4738,2633,2113,39, - 1764,47,1477,3398,46,1007,565,326,515,1419, - 39,1051,36,2594,3742,34,1007,31,35,1049, - 30,32,1291,29,27,56,1333,112,82,83, - 114,1341,344,1351,1343,1386,1373,1420,1395,1504, - 1008,1428,520,1512,1520,149,248,39,284,514, - 150,4769,2633,600,39,2271,2018,1374,39,285, - 456,996,30,515,2602,510,2813,1587,67,1736, - 39,1051,36,327,4330,34,1007,31,35,1049, - 62,32,1849,415,2323,1796,2356,4708,4755,1419, - 39,1051,36,2594,3742,34,1007,31,35,1049, - 30,32,1291,29,27,56,1333,112,82,83, - 114,1341,344,1351,1343,1386,1373,1420,1395,1504, - 510,1428,2188,1512,1520,149,1008,1547,68,514, - 150,1430,2633,4708,2448,39,282,334,30,2450, - 1060,2356,3405,515,1687,39,1051,36,2594,3742, - 34,1007,31,35,1049,30,32,1291,29,27, - 56,1333,112,82,83,114,1341,344,1351,1343, - 1386,1373,1420,1395,1504,1452,1428,30,1512,1520, - 149,3629,1171,333,514,150,2037,2633,357,600, - 39,1125,387,390,424,48,2311,528,515,3090, - 510,1089,39,1051,36,66,4763,34,1007,31, - 35,1049,30,32,30,508,1998,3481,684,2469, - 1556,2356,1485,39,1051,36,428,3742,34,1007, - 31,35,1049,30,32,1291,29,27,56,1333, - 112,82,83,114,1341,315,1351,1343,1386,1373, - 1420,1395,1504,2491,1428,511,1512,1520,149,600, - 39,287,380,150,1089,39,1051,36,1462,4763, - 34,1007,31,35,1049,65,32,645,600,39, - 1125,387,1558,39,1051,36,383,3742,34,1007, - 31,35,1049,30,32,1291,29,27,56,1333, - 112,82,83,114,1341,2491,1351,1343,1386,1373, - 1420,1395,1504,440,1428,55,1512,1520,149,733, - 52,1300,380,150,2307,39,1051,36,4041,3742, - 34,1007,31,35,1049,30,32,1291,29,27, - 56,1333,112,82,83,91,381,1473,384,1872, - 39,1051,36,453,3742,34,1007,31,35,1049, - 30,32,1291,29,27,56,1333,112,82,83, - 114,1341,2498,1351,1343,1386,1373,1420,1395,1504, - 57,1428,2502,1512,1520,149,1796,2575,99,374, - 150,937,39,1051,36,1373,2197,34,1007,3094, - 35,1049,2835,945,1872,39,1051,36,385,3742, - 34,1007,31,35,1049,30,32,1291,29,27, - 56,1333,112,82,83,114,1341,494,1351,1343, - 1386,1373,1420,1395,1504,1184,1428,1856,1512,1520, - 149,600,39,2886,374,150,389,600,39,1125, - 387,1872,39,1051,36,1915,3742,34,1007,31, - 35,1049,30,32,1291,29,27,56,1333,112, - 82,83,114,1341,373,1351,1343,1386,1373,1420, - 1395,1504,1975,1428,431,1512,1520,149,248,39, - 450,374,150,4681,391,424,1872,39,1051,36, - 623,3742,34,1007,31,35,1049,30,32,1291, - 29,27,56,1333,112,82,83,114,1341,1184, - 1351,1343,1386,1373,1420,1395,1504,3192,1428,372, - 1512,1520,149,2602,1680,444,164,150,1801,39, - 1051,36,2039,3742,34,1007,31,35,1049,30, - 32,1291,29,27,56,1333,112,82,83,114, - 1341,1186,1351,1343,1386,1373,1420,1395,1504,418, - 1428,30,1512,1520,149,739,370,2498,380,150, - 1753,39,1051,36,638,3742,34,1007,31,35, - 1049,30,32,1291,29,27,56,1333,112,82, - 83,114,1341,1941,1351,1343,1386,1373,1420,1395, - 1504,1586,1428,1556,1512,1554,170,2259,39,1051, - 36,1924,3742,34,1007,31,35,1049,30,32, - 1291,29,27,56,1333,92,82,83,1932,1351, - 39,1051,36,2336,4763,34,1007,31,35,1049, - 64,32,443,3121,3166,329,29,356,68,600, - 39,1638,281,4708,378,508,528,1621,39,1051, - 36,538,3742,34,1007,31,35,1049,30,32, - 1291,29,27,56,1333,112,82,83,114,1341, - 679,1351,1343,1386,1373,1420,1395,1504,1417,1428, - 68,1512,1520,149,4443,4708,2602,148,150,1872, - 39,1051,36,333,3742,34,1007,31,35,1049, - 30,32,1291,29,27,56,1333,112,82,83, - 114,1341,3391,1351,1343,1386,1373,1420,1395,1504, - 444,1428,30,1512,1520,149,819,2747,1664,161, - 150,1872,39,1051,36,333,3742,34,1007,31, - 35,1049,30,32,1291,29,27,56,1333,112, - 82,83,114,1341,145,1351,1343,1386,1373,1420, - 1395,1504,63,1428,30,1512,1520,149,2008,812, - 1146,160,150,1872,39,1051,36,2491,3742,34, - 1007,31,35,1049,30,32,1291,29,27,56, - 1333,112,82,83,114,1341,233,1351,1343,1386, - 1373,1420,1395,1504,1633,1428,68,1512,1520,149, - 325,4708,1844,159,150,1872,39,1051,36,528, - 3742,34,1007,31,35,1049,30,32,1291,29, - 27,56,1333,112,82,83,114,1341,503,1351, - 1343,1386,1373,1420,1395,1504,1191,1428,68,1512, - 1520,149,103,4708,1208,158,150,1872,39,1051, - 36,1724,3742,34,1007,31,35,1049,30,32, - 1291,29,27,56,1333,112,82,83,114,1341, - 2194,1351,1343,1386,1373,1420,1395,1504,2291,1428, - 30,1512,1520,149,4385,435,1179,157,150,1872, - 39,1051,36,333,3742,34,1007,31,35,1049, - 30,32,1291,29,27,56,1333,112,82,83, - 114,1341,2408,1351,1343,1386,1373,1420,1395,1504, - 1447,1428,30,1512,1520,149,4395,4525,321,156, - 150,1872,39,1051,36,100,3742,34,1007,31, - 35,1049,30,32,1291,29,27,56,1333,112, - 82,83,114,1341,2194,1351,1343,1386,1373,1420, - 1395,1504,1620,1428,2070,1512,1520,149,1544,4708, - 3055,155,150,1872,39,1051,36,638,3742,34, - 1007,31,35,1049,30,32,1291,29,27,56, - 1333,112,82,83,114,1341,1937,1351,1343,1386, - 1373,1420,1395,1504,2339,1428,30,1512,1520,149, - 815,600,2551,154,150,1872,39,1051,36,1724, - 3742,34,1007,31,35,1049,30,32,1291,29, - 27,56,1333,112,82,83,114,1341,1298,1351, - 1343,1386,1373,1420,1395,1504,683,1428,591,1512, - 1520,149,1116,600,3711,153,150,1872,39,1051, - 36,638,3742,34,1007,31,35,1049,30,32, - 1291,29,27,56,1333,112,82,83,114,1341, - 1184,1351,1343,1386,1373,1420,1395,1504,1028,1428, - 30,1512,1520,149,2706,600,3371,152,150,1872, - 39,1051,36,102,3742,34,1007,31,35,1049, - 30,32,1291,29,27,56,1333,112,82,83, - 114,1341,2092,1351,1343,1386,1373,1420,1395,1504, - 1043,1428,291,1512,1520,149,151,1550,1552,151, - 150,1872,39,1051,36,1121,3742,34,1007,31, - 35,1049,30,32,1291,29,27,56,1333,112, - 82,83,114,1341,1554,1351,1343,1386,1373,1420, - 1395,1504,1632,1428,402,1512,1520,149,1927,1716, - 2535,165,150,1872,39,1051,36,1715,3742,34, - 1007,31,35,1049,30,32,1291,29,27,56, - 1333,112,82,83,114,1341,1329,1351,1343,1386, - 1373,1420,1395,1504,2049,1428,2091,1512,1520,149, - 512,39,394,146,150,2211,39,1051,36,2316, - 3742,34,1007,31,35,1049,30,32,1291,29, - 27,56,1333,112,82,83,114,1341,1059,1351, - 1343,1386,1373,1420,1395,1504,2432,1428,30,1512, - 1520,149,2716,2434,1715,195,150,2307,39,1051, - 36,67,3742,34,1007,31,35,1049,30,32, - 1291,29,27,56,1333,112,82,83,114,1341, - 519,1351,1343,1386,1373,1420,1395,1504,205,1428, - 76,1512,1554,170,2307,39,1051,36,3101,3742, - 34,1007,31,35,1049,30,32,1291,29,27, - 56,1333,112,82,83,114,1341,643,1351,1343, - 1386,1373,1420,1395,1504,660,1428,243,1512,1554, - 170,937,39,1051,36,330,336,34,1007,3279, - 35,1049,1927,381,2307,39,1051,36,295,3742, - 34,1007,31,35,1049,30,32,1291,29,27, - 56,1333,112,82,83,114,1341,77,1351,1343, - 1386,1373,1420,1395,1504,1922,1428,2209,1512,1554, - 170,2307,39,1051,36,420,3742,34,1007,31, - 35,1049,30,32,1291,29,27,56,1333,112, - 82,83,114,1341,2713,1351,1343,1386,1373,1420, - 1395,1504,868,1428,1266,1512,1554,170,600,39, - 1638,286,2416,2433,415,600,39,1125,387,4478, - 497,2307,39,1051,36,419,3742,34,1007,31, - 35,1049,30,32,1291,29,27,56,1333,112, - 82,83,114,1341,519,1351,1343,1386,1373,1420, - 1395,1504,430,1428,684,1512,1554,170,2355,39, - 1051,36,422,3742,34,1007,31,35,1049,30, - 32,1291,29,27,56,1333,112,82,83,114, - 1341,1829,1351,1343,1386,1373,1420,1395,1504,2174, - 1428,2383,1512,1554,170,2933,1883,30,1977,39, - 296,2929,600,39,1125,387,520,239,2307,39, - 1051,36,2422,3742,34,1007,31,35,1049,30, - 32,1291,29,27,56,1333,112,82,83,114, - 1341,767,1351,1343,1386,1373,1420,1395,1504,429, - 1428,2690,2287,2124,2949,2307,39,1051,36,3350, - 3742,34,1007,31,35,1049,30,32,1291,29, - 27,56,1333,112,82,83,114,1341,2502,1351, - 1343,1386,1373,1420,1395,1504,1974,2261,2307,39, - 1051,36,2197,3742,34,1007,31,35,1049,30, - 32,1291,29,27,56,1333,112,82,83,114, - 1341,2695,1351,1343,1386,1373,1420,1395,2200,2307, - 39,1051,36,351,3742,34,1007,31,35,1049, - 30,32,1291,29,27,56,1333,112,82,83, - 114,1341,388,1351,1343,1386,1373,2182,2307,39, - 1051,36,2491,3742,34,1007,31,35,1049,30, - 32,1291,29,27,56,1333,112,82,83,114, - 1341,2502,1351,1343,1386,2192,2307,39,1051,36, - 2288,3742,34,1007,31,35,1049,30,32,1291, - 29,27,56,1333,112,82,83,114,1341,2442, - 1351,1343,1386,2193,2307,39,1051,36,2048,3742, - 34,1007,31,35,1049,30,32,1291,29,27, - 56,1333,112,82,83,114,1341,104,1351,1343, - 2031,2307,39,1051,36,288,3742,34,1007,31, - 35,1049,30,32,1291,29,27,56,1333,112, - 82,83,114,1341,2417,1351,1343,2058,2307,39, - 1051,36,1650,3742,34,1007,31,35,1049,30, - 32,1291,29,27,56,1333,112,82,83,114, - 1341,2056,1351,1343,2097,2307,39,1051,36,2187, - 3742,34,1007,31,35,1049,30,32,1291,29, - 27,56,1333,112,82,83,114,1341,2085,1351, - 1343,2113,1535,39,1051,36,858,2163,34,1007, - 340,35,1049,1302,2403,39,1125,387,2197,2647, - 1171,2197,2502,2307,39,1051,36,242,3742,34, - 1007,31,35,1049,30,32,1291,29,27,56, - 1333,112,82,83,114,1341,1302,1351,2145,324, - 3180,278,4019,2797,1977,3097,296,1388,321,732, - 323,2197,2197,2057,316,666,1949,688,39,1125, - 387,4375,3763,353,237,2066,998,1374,39,282, - 237,1064,39,1051,36,2800,289,34,1007,340, - 35,1049,28,2816,345,557,578,350,2205,2384, - 240,235,236,905,55,522,249,235,236,1588, - 2637,1722,352,400,279,1172,600,39,1125,387, - 512,39,394,237,353,2197,1744,2551,3282,3180, - 247,250,253,256,3416,1781,1796,321,732,323, - 4617,1077,2748,316,666,345,557,578,350,252, - 235,236,353,449,343,2598,75,2695,2746,2600, - 2643,2859,3071,3125,2459,2715,1940,1228,600,39, - 1638,283,4708,345,557,578,350,2502,2502,244, - 2447,367,2362,2307,39,1051,36,2503,3742,34, - 1007,31,35,1049,30,32,1291,29,27,56, - 1333,112,82,83,114,1341,2502,1351,2147,1342, - 39,1051,36,1598,4708,34,1007,340,35,1049, - 1669,2220,334,1266,2594,4708,237,675,426,415, - 512,39,394,1921,4655,177,30,2594,353,534, - 3133,300,299,2582,393,424,30,290,94,2801, - 2594,108,245,235,236,1076,2582,3180,234,347, - 557,578,350,1302,333,321,732,323,162,344, - 307,316,666,186,3604,333,2441,2559,2576,2684, - 209,220,579,797,208,217,218,219,221,2633, - 600,39,1638,2858,175,1,2197,2520,4502,534, - 506,534,2023,39,1638,281,2612,2197,174,3481, - 361,189,173,176,177,178,179,180,234,382, - 3765,855,521,502,2642,1806,1848,74,162,821, - 162,309,313,186,3604,186,3604,1728,59,237, - 209,220,579,501,208,217,218,219,221,1744, - 2551,2197,3324,1796,175,600,2983,1638,80,187, - 3306,2639,3184,2949,499,255,235,236,174,1303, - 201,190,173,176,177,178,179,180,2307,39, - 1051,36,93,3742,34,1007,31,35,1049,30, - 32,1291,29,27,56,1333,112,82,83,114, - 1341,770,1974,2614,2094,2307,39,1051,36,2875, - 3742,34,1007,31,35,1049,30,32,1291,29, - 27,56,1333,112,82,83,114,1341,2197,1976, - 1194,39,2909,36,1598,4708,34,1007,340,35, - 1049,30,424,39,450,3150,1323,4681,2023,39, - 1638,3026,1171,1920,1921,860,265,2594,2594,58, - 534,392,424,2644,2492,2645,2651,1669,1226,2870, - 290,2594,4708,3277,202,415,344,2582,3180,234, - 4663,864,39,1125,387,333,321,732,323,162, - 2582,2792,316,666,186,3604,857,166,2463,2602, - 2559,209,220,579,1117,208,217,218,219,221, - 600,39,1638,3045,1996,175,353,2658,55,4502, - 534,1059,333,1588,30,53,30,30,2184,174, - 1226,3190,3363,173,176,177,178,179,180,234, - 1243,2661,787,2197,502,2464,39,1125,387,162, - 2647,237,404,1059,186,3604,2747,361,243,3343, - 2887,209,220,579,501,208,217,218,219,221, - 1059,2642,1806,1848,3107,175,441,258,235,236, - 534,3101,278,2492,2492,500,2660,1226,1226,174, - 415,2941,182,173,176,177,178,179,180,234, - 600,39,1125,387,2692,237,447,3121,3166,162, - 1059,2655,1302,3101,186,3604,166,166,335,336, - 453,209,220,579,1059,208,217,218,219,221, - 3101,241,235,236,415,175,529,55,439,4685, - 534,415,1588,1654,1165,279,4693,2594,2659,174, - 3432,336,193,173,176,177,178,179,180,234, - 2689,248,251,254,257,3416,2582,332,336,162, - 3101,377,1077,2688,186,3604,600,39,296,3008, - 3640,209,220,579,3101,208,217,218,219,221, - 978,39,1125,387,2561,175,617,2607,3047,1996, - 534,534,600,39,1125,387,1949,3530,336,174, - 2690,4375,3395,173,176,177,178,179,180,234, - 344,3634,336,2695,2719,352,2637,278,2520,162, - 162,2438,1226,362,186,3604,194,302,2720,278, - 4568,209,220,579,1996,208,217,218,219,221, - 1012,39,1051,36,858,175,34,1007,340,35, - 1049,162,2197,2197,89,353,206,3776,375,174, - 2694,1996,198,173,176,177,178,179,180,3703, - 30,705,226,2044,3204,534,345,557,578,350, - 2901,2742,2197,3360,96,2362,1008,30,3180,196, - 2761,3623,280,78,234,2715,321,732,323,306, - 2762,1302,316,666,162,1730,2197,5237,1173,186, - 3604,353,1102,3522,523,1739,209,220,579,2594, - 208,217,218,219,221,5237,2058,39,1680,1808, - 175,3061,345,557,578,350,793,73,2582,30, - 534,524,30,1226,174,2197,794,192,173,176, - 177,178,179,180,95,50,2311,108,427,234, - 377,30,4068,55,5237,3632,5237,2207,1588,162, - 783,2594,162,30,186,3604,72,4092,1035,5237, - 2573,209,220,579,2594,208,217,218,219,221, - 344,986,39,1051,36,175,4708,34,1007,340, - 35,1049,30,344,30,361,534,2197,1226,174, - 3781,527,200,173,176,177,178,179,180,3123, - 1806,1848,30,2633,30,344,1226,2571,1307,5237, - 5237,2815,30,1766,530,162,2803,162,71,3180, - 30,2641,5237,2276,1263,2633,334,321,732,323, - 600,39,296,317,666,3731,2601,3710,2307,39, - 1051,36,353,3742,34,1007,31,35,1049,30, - 32,1291,29,27,56,1333,112,82,83,114, - 1989,5237,5237,347,557,578,350,2307,39,1051, - 36,188,3742,34,1007,31,35,1049,30,32, - 1291,29,27,56,1333,112,82,83,114,2016, - 2307,39,1051,36,1996,3742,34,1007,31,35, - 1049,30,32,1291,29,27,56,1333,112,82, - 83,114,2023,2548,30,2197,30,2594,534,1739, - 1226,2492,2668,2594,30,1226,2594,2657,1436,5237, - 2197,4244,185,3778,4122,5237,234,344,1996,2197, - 30,5237,2582,5237,3705,234,70,162,3729,162, - 5237,5237,5237,194,166,3396,2197,4568,211,220, - 579,61,210,217,218,219,221,211,220,579, - 60,210,217,218,219,221,204,2197,5237,212, - 214,216,297,298,1996,2532,5237,107,212,214, - 216,297,298,1996,2532,2700,222,213,215,2594, - 30,1996,5237,5237,1938,222,213,215,3351,361, - 5237,5237,688,39,1125,387,3739,3649,234,2499, - 2197,2197,203,3342,1806,1848,30,4168,2757,2197, - 952,305,1151,39,1125,387,4168,2758,5237,207, - 211,220,579,5237,210,217,218,219,221,55, - 526,448,379,30,1588,30,53,2112,5237,4063, - 3156,212,214,216,297,298,1996,2532,1996,55, - 5237,2610,2197,989,1588,3330,1249,2197,222,213, - 215,2307,1646,1051,1798,5237,3742,34,1007,31, - 35,1049,30,32,1291,29,27,56,1333,112, - 82,83,90,3216,205,5237,301,5237,3276,4168, - 2786,2307,39,1051,36,5237,3742,34,1007,31, - 35,1049,30,32,1291,29,27,56,1333,112, - 82,83,89,2307,39,1051,36,5237,3742,34, - 1007,31,35,1049,30,32,1291,29,27,56, - 1333,112,82,83,88,2307,39,1051,36,5237, - 3742,34,1007,31,35,1049,30,32,1291,29, - 27,56,1333,112,82,83,87,2307,39,1051, - 36,5237,3742,34,1007,31,35,1049,30,32, - 1291,29,27,56,1333,112,82,83,86,2307, - 39,1051,36,5237,3742,34,1007,31,35,1049, - 30,32,1291,29,27,56,1333,112,82,83, - 85,2307,39,1051,36,5237,3742,34,1007,31, - 35,1049,30,32,1291,29,27,56,1333,112, - 82,83,84,2154,39,1051,36,5237,3742,34, - 1007,31,35,1049,30,32,1291,29,27,56, - 1333,112,82,83,110,2307,39,1051,36,5237, - 3742,34,1007,31,35,1049,30,32,1291,29, - 27,56,1333,112,82,83,116,2307,39,1051, - 36,5237,3742,34,1007,31,35,1049,30,32, - 1291,29,27,56,1333,112,82,83,115,2307, - 39,1051,36,5237,3742,34,1007,31,35,1049, - 30,32,1291,29,27,56,1333,112,82,83, - 113,2307,39,1051,36,2197,3742,34,1007,31, - 35,1049,30,32,1291,29,27,56,1333,112, - 82,83,111,1606,39,1051,36,1598,1996,34, - 1007,340,35,1049,30,30,2626,2613,534,534, - 5237,1226,2744,5237,5237,1996,2594,5237,5237,5237, - 5237,30,2656,5237,5237,1226,2594,344,344,1366, - 39,1125,387,5237,1996,234,4077,162,162,5237, - 162,3180,5237,194,194,2582,168,4568,4568,321, - 732,323,2197,227,162,316,666,211,220,579, - 3435,210,217,218,219,221,55,797,2197,2197, - 30,1588,199,1672,534,5237,5237,5237,212,214, - 216,297,298,2843,2532,5237,5237,30,2624,5237, - 3282,1226,2594,344,5237,517,213,215,2592,4104, - 3426,5237,2594,162,5237,5237,3782,3787,5237,2876, - 5237,234,502,2633,5237,309,313,5237,5237,2492, - 162,234,5237,1226,2705,5237,3497,5237,5237,5237, - 5237,5237,501,211,220,579,4085,210,217,218, - 219,221,5237,211,220,579,3184,210,217,218, - 219,221,166,499,212,214,216,297,298,30, - 2532,5237,5237,1226,212,214,216,297,298,5237, - 2532,516,213,215,2776,5237,5237,5237,2594,5237, - 4139,223,213,215,2809,30,5237,5237,2594,2594, - 3120,5237,162,5237,5237,30,5237,234,3625,2594, - 5237,5237,5237,5237,5237,5237,5237,234,344,5237, - 5237,5237,5237,5237,5237,3666,5237,5237,344,211, - 220,579,5237,210,217,218,219,221,2633,211, - 220,579,5237,210,217,218,219,221,2633,504, - 212,214,216,297,298,5237,2532,5237,5237,1890, - 212,214,216,297,298,5237,2532,308,213,215, - 1858,39,1125,387,5237,5237,5237,496,213,215, - 1237,39,2909,36,1598,5237,34,1007,340,35, - 1049,5237,5237,1863,39,1051,36,1598,5237,34, - 1007,340,35,1049,5237,5237,5237,55,5237,5237, - 5237,5237,1588,5237,1756,1969,39,1125,387,5237, - 5237,5237,5237,30,5237,952,5237,2594,3180,2594, - 4759,3270,5237,5237,5237,1029,321,732,323,2594, - 4759,3180,316,666,5237,5237,344,5237,234,321, - 732,323,55,5237,1117,316,666,1588,234,53, - 5237,5237,5237,5237,5237,2492,2633,797,5237,1226, - 1896,405,4589,5237,5237,30,919,1897,5237,1226, - 1896,405,4589,1830,30,5237,5237,2594,1226,5237, - 5237,406,407,408,297,298,5237,2532,166,5237, - 5237,406,407,408,297,298,344,2532,162,5237, - 5237,5237,5237,5237,1527,310,313,162,1858,39, - 1125,387,5237,4138,2478,5237,946,5237,5237,1863, - 39,1051,36,1598,2478,34,1007,340,35,1049, - 416,2941,1313,39,1051,36,5237,4708,34,1007, - 340,35,1049,409,411,55,5237,5237,5237,5237, - 1588,3730,53,409,411,1313,39,1051,36,5237, - 4708,34,1007,340,35,1049,5237,3180,5237,2101, - 5237,5237,5237,1112,4605,321,732,323,5237,5237, - 3180,316,666,2348,4605,5237,5237,334,321,732, - 323,5237,5237,2598,319,666,5237,5237,1863,39, - 1051,36,1598,3180,34,1007,340,35,1049,5237, - 334,321,732,323,5237,5237,5237,317,666,1467, - 39,1051,36,3010,5237,34,1007,340,35,1049, - 5237,5237,5237,5237,5237,1106,5237,5237,5237,2594, - 4759,5237,5237,5237,3104,5237,3180,1969,39,1125, - 387,5237,5237,5237,321,732,323,401,234,5237, - 316,666,5237,5237,5237,5237,5237,3180,5237,5237, - 5237,5237,3390,5237,5237,318,2767,323,5237,5237, - 1896,405,4589,5237,55,1969,39,1125,387,1588, - 5237,53,5237,1969,39,1125,387,5237,5237,5237, - 5237,406,407,408,297,298,5237,2532,1177,5237, - 5237,1969,39,1125,387,2116,39,1125,387,5237, - 5237,5237,55,2202,39,1125,387,1588,5237,53, - 55,5237,5237,5237,2478,1588,5237,53,600,39, - 1125,387,5237,5237,5237,5237,2195,5237,55,5237, - 5237,5237,55,1588,2282,53,5237,1588,5237,53, - 55,5237,5237,409,412,1588,5237,53,600,39, - 1125,387,2696,3398,30,55,3256,5237,534,5237, - 1588,5237,1882,5237,3540,600,39,1125,387,600, - 39,1125,387,600,39,1125,387,344,5237,600, - 39,1125,387,5237,5237,55,5237,162,5237,5237, - 1588,30,2657,2641,5237,2594,30,2633,5237,30, - 2594,30,55,2594,5237,2594,55,1588,2931,2984, - 55,1588,5237,1840,344,1588,55,1249,5237,344, - 5237,1588,344,864,344,5237,5237,5237,5237,5237, - 5237,5237,5237,5237,2633,5237,5237,5237,5237,2633, - 5237,5237,2633,5237,2633,1898,5237,5237,5237,5237, - 1924,5237,5237,3372,5237,531,5237,0,1980,1, - 0,2700,1,0,1,2,5255,0,1,2, - 5254,0,43,5255,0,43,5254,0,907,320, - 0,451,944,0,437,1301,0,1472,33,0, - 5243,1,0,5242,1,0,5476,246,0,5475, - 246,0,5576,246,0,5575,246,0,5503,246, - 0,5502,246,0,5501,246,0,5500,246,0, - 5499,246,0,5498,246,0,5497,246,0,5496, - 246,0,5514,246,0,5513,246,0,5512,246, - 0,5511,246,0,5510,246,0,5509,246,0, - 5508,246,0,5507,246,0,5506,246,0,5505, - 246,0,5504,246,0,43,246,5255,0,43, - 246,5254,0,5279,246,0,1472,386,0,54, - 5255,0,54,5254,0,42,5255,0,42,5254, - 0,2528,132,0,1,441,0,455,642,0, - 454,715,0,39,37,0,5279,1,0,43, - 1,0,43,2,5255,0,43,2,5254,0, - 1472,45,0,3106,97,0,36,38,0,43, - 655,0,49,5277,0,49,41,0,1,813, - 0,1,5514,0,1,5513,0,1,5512,0, - 1,5511,0,1,5510,0,1,5509,0,1, - 5508,0,1,5507,0,1,5506,0,1,5505, - 0,1,5504,0,43,1,5255,0,43,1, - 5254,0,728,1,0,498,2524,0,5279,233, - 1,0,43,233,1,0,233,414,0,41, - 5255,0,41,5254,0,242,3044,0,387,36, - 0,36,387,0,386,33,0,33,386,0, - 5255,54,0,5254,54,0,2528,134,0,2528, - 133,0,5568,442,0,1514,442,0,5247,403, - 0,5246,403,0,1,4489,0,1,655,0, - 1,3033,0,233,413,0,53,41,0,1, - 98,0,41,53,0,5277,51,0,51,41, - 0,1,5568,0,1,1514,0,43,1,2, - 5255,0,43,1,2,5254,0,41,5255,2, - 0,41,5254,2,0,5255,40,0,5254,40, - 0,498,4158,0,233,1,0,233,225,0, - 5568,101,0,1514,101,0,39,79,0,233, - 224,0,283,3164,0,5245,1,0,233,1, - 3240,0,5247,233,0,5246,233,0,3344,233, - 0,8,10,0,191,3361,0 + 17,17,17,17,17,17,17,17,135,135, + 135,114,114,18,18,18,18,18,18,18, + 18,18,18,18,18,18,19,19,169,169, + 170,170,171,138,138,139,139,136,136,140, + 137,137,20,20,21,21,22,22,22,24, + 24,24,24,25,25,25,26,26,26,27, + 27,27,27,27,28,28,28,29,29,30, + 30,32,32,34,34,35,35,36,36,41, + 41,40,40,40,40,40,40,40,40,40, + 40,40,40,40,39,33,141,141,97,97, + 172,172,92,194,194,77,77,77,77,77, + 77,77,77,77,78,78,78,68,68,60, + 60,173,173,79,79,79,103,103,174,174, + 80,80,80,175,175,81,81,81,81,81, + 82,82,84,84,84,84,84,84,84,50, + 50,50,50,50,115,115,116,116,51,176, + 23,23,23,23,23,48,48,87,87,87, + 87,87,148,148,143,143,143,143,143,144, + 144,144,145,145,145,146,146,146,147,147, + 147,88,88,88,88,88,89,89,89,13, + 13,13,13,13,13,13,13,13,13,13, + 100,120,120,120,120,120,120,118,118,118, + 119,119,150,150,149,149,122,122,104,72, + 72,73,74,53,47,151,151,54,52,86, + 86,152,152,142,142,123,124,124,69,69, + 153,153,63,63,63,58,58,57,64,64, + 67,67,56,56,56,90,90,99,98,98, + 61,61,59,59,55,55,44,101,101,101, + 93,93,93,94,94,95,95,95,96,96, + 105,105,105,107,107,106,106,195,195,91, + 91,178,178,178,178,178,126,46,46,155, + 177,177,127,127,127,127,179,179,37,37, + 117,128,128,128,128,108,108,121,121,121, + 157,158,158,158,158,158,158,158,158,158, + 158,158,182,182,180,180,181,181,159,159, + 159,159,160,183,110,109,109,184,184,161, + 161,161,161,102,102,102,185,185,9,9, + 10,186,186,187,162,154,154,163,163,164, + 165,165,6,6,7,166,166,166,166,166, + 166,166,166,166,166,166,166,166,166,166, + 166,166,166,166,166,166,166,166,166,166, + 166,166,166,166,166,166,166,166,166,166, + 166,166,166,166,166,166,166,70,75,75, + 167,167,130,130,111,111,111,111,111,111, + 3,131,131,129,129,112,112,85,71,83, + 156,156,113,113,188,188,188,132,132,125, + 125,189,189,168,168,958,41,2029,1994,1096, + 3095,36,785,33,37,810,32,34,1945,31, + 29,58,1132,114,84,85,116,1176,290,1319, + 1184,1352,1346,1399,1386,1449,29,1443,504,1456, + 1609,151,280,4142,902,166,152,1621,41,858, + 38,1737,4448,36,785,33,37,810,32,34, + 63,509,2291,41,858,38,239,1180,36,785, + 33,37,810,32,34,1115,31,29,58,1132, + 114,84,85,116,1176,2680,1319,1184,1352,1346, + 1399,2244,242,237,238,1068,41,451,989,2391, + 4641,2245,41,858,38,281,1180,36,785,33, + 37,810,32,34,1115,31,29,58,1132,94, + 84,85,249,252,255,258,2571,357,1266,1150, + 41,858,38,539,3170,36,785,33,37,810, + 65,34,2725,41,284,1088,1937,1590,924,864, + 2587,2940,2969,4440,1428,41,858,38,2708,1180, + 36,785,33,37,810,32,34,1115,31,29, + 58,1132,114,84,85,116,1176,346,1319,1184, + 1352,1346,1399,1386,1449,1063,1443,2050,1456,1609, + 151,991,3355,32,515,152,533,3063,2859,2069, + 1777,1735,40,1545,2069,41,873,389,3856,516, + 1428,41,858,38,2708,1180,36,785,33,37, + 810,32,34,1115,31,29,58,1132,114,84, + 85,116,1176,346,1319,1184,1352,1346,1399,1386, + 1449,57,1443,336,1456,1609,151,1659,2672,1409, + 515,152,1273,558,2859,116,391,425,444,2857, + 2900,2069,41,289,69,516,511,1679,41,858, + 38,498,3170,36,785,33,37,810,64,34, + 203,164,419,2415,1809,2424,208,3528,3296,1428, + 41,858,38,2708,1180,36,785,33,37,810, + 32,34,1115,31,29,58,1132,114,84,85, + 116,1176,346,1319,1184,1352,1346,1399,1386,1449, + 585,1443,511,1456,1609,151,1176,1176,377,515, + 152,3355,3355,2859,1160,1068,41,286,356,2443, + 3579,2424,2035,464,516,1696,41,858,38,2708, + 1180,36,785,33,37,810,32,34,1115,31, + 29,58,1132,114,84,85,116,1176,346,1319, + 1184,1352,1346,1399,1386,1449,327,1443,551,1456, + 1609,151,335,335,32,515,152,328,2858,2859, + 1475,41,1826,49,1221,239,48,785,2069,3333, + 516,511,68,1621,41,858,38,246,4448,36, + 785,33,37,810,67,34,3490,2677,2452,938, + 2424,251,237,238,1493,41,858,38,638,1180, + 36,785,33,37,810,32,34,1115,31,29, + 58,1132,114,84,85,116,1176,725,1319,1184, + 1352,1346,1399,1386,1449,239,1443,512,1456,1609, + 151,2069,41,2753,382,152,4209,2075,41,858, + 38,441,4448,36,785,33,37,810,66,34, + 1066,247,237,238,812,1562,41,858,38,385, + 1180,36,785,33,37,810,32,34,1115,31, + 29,58,1132,114,84,85,116,1176,454,1319, + 1184,1352,1346,1399,1386,1449,150,1443,2086,1456, + 1609,151,2804,2069,2506,382,152,4209,2291,41, + 858,38,520,1180,36,785,33,37,810,32, + 34,1115,31,29,58,1132,114,84,85,93, + 383,386,1761,41,858,38,330,1180,36,785, + 33,37,810,32,34,1115,31,29,58,1132, + 114,84,85,116,1176,1918,1319,1184,1352,1346, + 1399,1386,1449,329,1443,414,1456,1609,151,2388, + 41,287,382,152,4209,1990,1576,1421,41,395, + 1881,2082,1952,1895,2069,41,873,389,1874,41, + 858,38,387,1180,36,785,33,37,810,32, + 34,1115,31,29,58,1132,114,84,85,116, + 1176,495,1319,1184,1352,1346,1399,1386,1449,403, + 1443,57,1456,1609,151,293,927,54,376,152, + 1093,41,873,389,1183,2864,1874,41,858,38, + 390,1180,36,785,33,37,810,32,34,1115, + 31,29,58,1132,114,84,85,116,1176,380, + 1319,1184,1352,1346,1399,1386,1449,57,1443,101, + 1456,1609,151,1659,504,2002,376,152,436,3292, + 2226,1874,41,858,38,574,1180,36,785,33, + 37,810,32,34,1115,31,29,58,1132,114, + 84,85,116,1176,1096,1319,1184,1352,1346,1399, + 1386,1449,1096,1443,375,1456,1609,151,1421,41, + 395,376,152,1874,41,858,38,938,1180,36, + 785,33,37,810,32,34,1115,31,29,58, + 1132,114,84,85,116,1176,2293,1319,1184,1352, + 1346,1399,1386,1449,3741,1443,2551,1456,1609,151, + 4288,2557,374,166,152,1828,41,858,38,933, + 1180,36,785,33,37,810,32,34,1115,31, + 29,58,1132,114,84,85,116,1176,1590,1319, + 1184,1352,1346,1399,1386,1449,2550,1443,4171,1456, + 1616,172,1260,1631,41,858,38,372,1180,36, + 785,33,37,810,32,34,1115,31,29,58, + 1132,114,84,85,116,1176,628,1319,1184,1352, + 1346,1399,1386,1449,4172,1443,1220,1456,1609,151, + 520,331,445,150,152,2501,41,858,38,237, + 1485,36,785,343,37,810,672,1010,1485,728, + 1874,41,858,38,1937,1180,36,785,33,37, + 810,32,34,1115,31,29,58,1132,114,84, + 85,116,1176,1953,1319,1184,1352,1346,1399,1386, + 1449,1066,1443,943,1456,1609,151,392,425,1504, + 163,152,1874,41,858,38,1015,1180,36,785, + 33,37,810,32,34,1115,31,29,58,1132, + 114,84,85,116,1176,1395,1319,1184,1352,1346, + 1399,1386,1449,1066,1443,1332,1456,1609,151,2226, + 3339,1066,162,152,1874,41,858,38,1066,1180, + 36,785,33,37,810,32,34,1115,31,29, + 58,1132,114,84,85,116,1176,496,1319,1184, + 1352,1346,1399,1386,1449,359,1443,32,1456,1609, + 151,3522,529,358,161,152,1874,41,858,38, + 529,1180,36,785,33,37,810,32,34,1115, + 31,29,58,1132,114,84,85,116,1176,458, + 1319,1184,1352,1346,1399,1386,1449,457,1443,32, + 1456,1609,151,684,4109,2566,160,152,1874,41, + 858,38,1066,1180,36,785,33,37,810,32, + 34,1115,31,29,58,1132,114,84,85,116, + 1176,1990,1319,1184,1352,1346,1399,1386,1449,1248, + 1443,32,1456,1609,151,740,1456,1066,159,152, + 1874,41,858,38,1066,1180,36,785,33,37, + 810,32,34,1115,31,29,58,1132,114,84, + 85,116,1176,4326,1319,1184,1352,1346,1399,1386, + 1449,445,1443,32,1456,1609,151,819,59,591, + 158,152,1874,41,858,38,290,1180,36,785, + 33,37,810,32,34,1115,31,29,58,1132, + 114,84,85,116,1176,1990,1319,1184,1352,1346, + 1399,1386,1449,105,1443,32,1456,1609,151,2702, + 106,965,157,152,1874,41,858,38,1091,1180, + 36,785,33,37,810,32,34,1115,31,29, + 58,1132,114,84,85,116,1176,1990,1319,1184, + 1352,1346,1399,1386,1449,1317,1443,32,1456,1609, + 151,4471,2069,3179,156,152,1874,41,858,38, + 291,1180,36,785,33,37,810,32,34,1115, + 31,29,58,1132,114,84,85,116,1176,1990, + 1319,1184,1352,1346,1399,1386,1449,1191,1443,32, + 1456,1609,151,677,1971,815,155,152,1874,41, + 858,38,302,1180,36,785,33,37,810,32, + 34,1115,31,29,58,1132,114,84,85,116, + 1176,1990,1319,1184,1352,1346,1399,1386,1449,1618, + 1443,678,1456,1609,151,1338,1814,1307,154,152, + 1874,41,858,38,301,1180,36,785,33,37, + 810,32,34,1115,31,29,58,1132,114,84, + 85,116,1176,501,1319,1184,1352,1346,1399,1386, + 1449,1638,1443,32,1456,1609,151,2592,68,318, + 153,152,1874,41,858,38,309,1180,36,785, + 33,37,810,32,34,1115,31,29,58,1132, + 114,84,85,116,1176,1549,1319,1184,1352,1346, + 1399,1386,1449,1193,1443,32,1456,1609,151,2956, + 1199,1364,167,152,1874,41,858,38,1474,1180, + 36,785,33,37,810,32,34,1115,31,29, + 58,1132,114,84,85,116,1176,1642,1319,1184, + 1352,1346,1399,1386,1449,762,1443,504,1456,1609, + 151,1485,4307,2569,148,152,2198,41,858,38, + 384,1180,36,785,33,37,810,32,34,1115, + 31,29,58,1132,114,84,85,116,1176,1096, + 1319,1184,1352,1346,1399,1386,1449,1112,1443,1922, + 1456,1609,151,3092,2533,2043,197,152,2291,41, + 858,38,728,1180,36,785,33,37,810,32, + 34,1115,31,29,58,1132,114,84,85,116, + 1176,2968,1319,1184,1352,1346,1399,1386,1449,2476, + 1443,521,1456,1616,172,2291,41,858,38,4268, + 1180,36,785,33,37,810,32,34,1115,31, + 29,58,1132,114,84,85,116,1176,155,1319, + 1184,1352,1346,1399,1386,1449,521,1443,2072,1456, + 1616,172,2501,41,858,38,327,1925,36,785, + 46,37,810,529,2039,1216,2291,41,858,38, + 297,1180,36,785,33,37,810,32,34,1115, + 31,29,58,1132,114,84,85,116,1176,1727, + 1319,1184,1352,1346,1399,1386,1449,2456,1443,1659, + 1456,1616,172,2291,41,858,38,421,1180,36, + 785,33,37,810,32,34,1115,31,29,58, + 1132,114,84,85,116,1176,1224,1319,1184,1352, + 1346,1399,1386,1449,1737,1443,2386,1456,1616,172, + 2501,41,858,38,317,2488,36,785,2680,37, + 810,1802,78,1265,2291,41,858,38,420,1180, + 36,785,33,37,810,32,34,1115,31,29, + 58,1132,114,84,85,116,1176,2414,1319,1184, + 1352,1346,1399,1386,1449,324,1443,2656,1456,1616, + 172,2337,41,858,38,423,1180,36,785,33, + 37,810,32,34,1115,31,29,58,1132,114, + 84,85,116,1176,2658,1319,1184,1352,1346,1399, + 1386,1449,1693,1443,1677,1456,1616,172,2501,41, + 858,38,1645,1856,36,785,2689,37,810,1421, + 41,395,2291,41,858,38,1624,1180,36,785, + 33,37,810,32,34,1115,31,29,58,1132, + 114,84,85,116,1176,1688,1319,1184,1352,1346, + 1399,1386,1449,32,1443,1678,2285,2821,1370,2291, + 41,858,38,3153,1180,36,785,33,37,810, + 32,34,1115,31,29,58,1132,114,84,85, + 116,1176,1224,1319,1184,1352,1346,1399,1386,1449, + 2623,2252,2291,41,858,38,401,1180,36,785, + 33,37,810,32,34,1115,31,29,58,1132, + 114,84,85,116,1176,1881,1319,1184,1352,1346, + 1399,1386,2242,2291,41,858,38,1819,1180,36, + 785,33,37,810,32,34,1115,31,29,58, + 1132,114,84,85,116,1176,353,1319,1184,1352, + 1346,2205,2291,41,858,38,2072,1180,36,785, + 33,37,810,32,34,1115,31,29,58,1132, + 114,84,85,116,1176,1807,1319,1184,1352,2207, + 2291,41,858,38,1942,1180,36,785,33,37, + 810,32,34,1115,31,29,58,1132,114,84, + 85,116,1176,2177,1319,1184,1352,2234,2291,41, + 858,38,2190,1180,36,785,33,37,810,32, + 34,1115,31,29,58,1132,114,84,85,116, + 1176,1885,1319,1184,2119,2291,41,858,38,2036, + 1180,36,785,33,37,810,32,34,1115,31, + 29,58,1132,114,84,85,116,1176,2042,1319, + 1184,2154,2291,41,858,38,1772,1180,36,785, + 33,37,810,32,34,1115,31,29,58,1132, + 114,84,85,116,1176,155,1319,1184,2156,2291, + 41,858,38,1881,1180,36,785,33,37,810, + 32,34,1115,31,29,58,1132,114,84,85, + 116,1176,262,1319,1184,2165,535,504,1366,41, + 873,389,4487,1058,326,1921,849,2708,3355,2708, + 2708,1972,41,1784,1821,236,2685,504,2103,41, + 873,389,4679,1992,2609,164,2697,1337,346,346, + 188,2994,2119,2506,2968,280,1742,1254,211,222, + 4159,3048,210,219,220,221,223,32,57,814, + 1048,3775,177,1,1659,57,2641,535,1881,335, + 176,1659,1902,1785,1920,2069,41,873,389,191, + 175,178,179,180,181,182,236,2209,1863,79, + 2737,2069,41,1989,1905,2273,164,2286,239,4087, + 2072,188,2994,3490,363,2968,2543,2302,2762,211, + 222,4159,429,210,219,220,221,223,2734,1853, + 1861,2392,80,177,254,237,238,1478,189,1779, + 2638,176,3355,2440,1881,2116,41,873,389,2638, + 192,175,178,179,180,181,182,1935,41,858, + 38,856,1442,36,785,342,37,810,2383,41, + 873,389,1058,2578,292,30,2708,3355,405,1019, + 2682,244,57,2712,2708,2613,2319,304,1659,2638, + 55,454,991,336,1881,2697,3199,2069,41,873, + 389,1601,2583,2697,355,280,734,1119,32,3388, + 354,440,4150,2365,323,1046,325,1980,41,298, + 318,850,2412,3089,355,2607,733,228,335,239, + 349,590,801,352,280,1993,41,858,38,2563, + 1014,36,785,342,37,810,355,2378,2489,504, + 347,590,801,352,4688,242,237,238,715,3393, + 332,338,2677,363,1176,2081,354,2575,281,3355, + 3217,503,347,590,801,352,2653,2734,1853,1861, + 2355,2119,2506,2572,734,249,252,255,258,2571, + 2554,502,323,1046,325,2604,539,282,318,850, + 2745,2626,355,2641,2533,2069,41,1735,283,1459, + 501,924,864,2587,2940,2969,4440,2681,2344,2777, + 3821,1262,2708,857,2069,41,1735,288,347,590, + 801,352,2069,41,298,369,2355,2291,41,858, + 38,2697,1180,36,785,33,37,810,32,34, + 1115,31,29,58,1132,114,84,85,116,1176, + 2812,1319,2173,2291,41,858,38,1485,1180,36, + 785,33,37,810,32,34,1115,31,29,58, + 1132,114,84,85,116,1176,355,1319,2197,1338, + 41,858,38,3747,3355,36,785,342,37,810, + 1915,2638,102,292,2672,1068,41,286,535,363, + 4550,2697,347,590,801,352,1590,349,32,2710, + 345,535,535,3241,1853,1861,427,4275,2608,2060, + 1685,2583,2552,1980,2843,298,3315,164,734,308, + 236,346,188,2994,2716,335,323,1046,325,2671, + 164,164,318,850,2638,188,2994,2684,1987,2968, + 1881,239,2859,211,222,4159,88,210,219,220, + 221,223,203,2618,2156,3393,2819,177,1273,3771, + 1096,2638,436,1881,2820,176,535,257,237,238, + 239,77,187,190,3159,175,178,179,180,181, + 182,2069,41,873,389,236,2829,168,2103,41, + 873,389,311,315,76,164,260,237,238,206, + 188,2994,2968,2682,2968,394,425,2708,211,222, + 4159,2729,210,219,220,221,223,1262,432,2837, + 523,2951,177,523,32,57,2697,535,535,1442, + 176,1659,1590,55,2553,2004,41,873,389,184, + 175,178,179,180,181,182,236,346,2809,2838, + 791,3124,1273,1820,41,451,164,164,4641,3511, + 204,188,2994,3023,1881,2968,175,1881,2859,211, + 222,4159,57,210,219,220,221,223,1659,3000, + 2330,164,32,177,610,32,1273,170,535,535, + 3089,176,2156,2792,503,61,1273,2737,95,944, + 195,175,178,179,180,181,182,236,346,1958, + 2394,41,873,389,502,164,2638,164,164,2811, + 1881,1582,188,2994,2684,168,2968,337,338,2859, + 211,222,4159,500,210,219,220,221,223,32, + 3127,393,425,3263,177,697,32,57,728,535, + 535,60,176,1659,205,2584,2844,2510,41,873, + 389,3281,175,178,179,180,181,182,236,346, + 658,96,2558,32,110,1134,32,4158,164,164, + 1273,1881,32,188,2994,196,4191,2968,2753,3180, + 4597,211,222,4159,57,210,219,220,221,223, + 1659,2827,55,2451,32,177,784,32,1273,164, + 535,535,3233,176,2160,2253,448,2857,2900,2625, + 4437,2723,200,175,178,179,180,181,182,236, + 346,5201,2394,41,873,389,1176,3336,5201,164, + 164,3355,50,2295,188,2994,196,1881,2968,4284, + 5201,4597,211,222,4159,2638,210,219,220,221, + 223,5201,2069,41,873,389,177,871,32,57, + 5201,535,2708,2638,176,1659,1881,55,3242,2510, + 41,873,389,194,175,178,179,180,181,182, + 236,346,335,307,2248,2069,41,873,389,431, + 164,2069,41,1735,285,188,2994,98,2693,2968, + 4314,209,2859,211,222,4159,57,210,219,220, + 221,223,1659,507,55,5201,717,177,2069,41, + 1735,2726,57,32,5201,176,5201,3684,1659,3094, + 1868,3041,2788,5201,202,175,178,179,180,181, + 182,2291,41,858,38,5201,1180,36,785,33, + 37,810,32,34,1115,31,29,58,1132,114, + 84,85,116,1176,1134,2077,2291,41,858,38, + 5201,1180,36,785,33,37,810,32,34,1115, + 31,29,58,1132,114,84,85,116,1176,5201, + 2084,1321,41,2780,38,3747,3355,36,785,342, + 37,810,5201,1881,1249,41,858,38,856,5201, + 36,785,342,37,810,32,2388,41,284,2708, + 1105,41,858,38,2451,3355,36,785,342,37, + 810,52,2295,32,3871,1394,5201,1273,346,1230, + 734,2779,2797,5201,5201,535,2708,335,323,1046, + 325,5201,2344,734,318,850,2708,5201,2638,2859, + 629,323,1046,325,346,346,164,318,850,734, + 505,355,3801,524,164,2697,336,323,1046,325, + 196,3771,3361,319,850,4597,4287,355,2518,41, + 1735,283,2069,2807,1735,82,207,347,590,801, + 352,2518,41,1735,2816,525,5201,1096,5201,2069, + 41,873,389,349,590,801,352,2291,41,858, + 38,5201,1180,36,785,33,37,810,32,34, + 1115,31,29,58,1132,114,84,85,116,2085, + 5201,588,5201,363,198,2708,57,5201,5201,2968, + 416,2787,1659,5201,3486,5201,5201,3307,1853,1861, + 3766,32,2156,2788,2697,1400,1273,522,2291,41, + 858,38,2298,1180,36,785,33,37,810,32, + 34,1115,31,29,58,1132,114,84,85,116, + 2109,2291,41,858,38,168,1180,36,785,33, + 37,810,32,34,1115,31,29,58,1132,114, + 84,85,116,2117,2559,3795,5201,2638,2708,2069, + 41,873,389,2069,41,298,2069,41,873,389, + 4356,5201,364,2291,1777,858,1827,236,1180,36, + 785,33,37,810,32,34,1115,31,29,58, + 1132,114,84,85,92,303,430,5201,5201,3822, + 213,222,4159,450,212,219,220,221,223,2660, + 2783,32,32,2708,2708,3739,3740,1176,5201,32, + 5201,5201,3355,1273,214,216,218,299,300,2498, + 32,32,236,2697,2708,2708,2553,5201,224,215, + 217,1222,41,858,38,1442,3355,36,785,342, + 37,810,164,346,346,213,222,4159,3807,212, + 219,220,221,223,2698,2638,5201,3687,2708,4247, + 1727,1881,32,335,2859,2859,1489,1881,5201,214, + 216,218,299,300,2498,1869,1903,236,1881,1881, + 734,2409,1881,224,215,217,3355,336,323,1046, + 325,503,75,3108,321,850,3089,4576,74,32, + 213,222,4159,1273,212,219,220,221,223,73, + 72,502,5201,63,4247,1769,2069,41,1735,2835, + 5201,5201,5201,5201,214,216,218,299,300,2498, + 500,32,4229,3631,338,3494,5201,3821,224,215, + 217,2291,41,858,38,5201,1180,36,785,33, + 37,810,32,34,1115,31,29,58,1132,114, + 84,85,91,97,32,5201,110,2849,1408,4247, + 1811,2291,41,858,38,5201,1180,36,785,33, + 37,810,32,34,1115,31,29,58,1132,114, + 84,85,90,2291,41,858,38,5201,1180,36, + 785,33,37,810,32,34,1115,31,29,58, + 1132,114,84,85,89,2291,41,858,38,104, + 1180,36,785,33,37,810,32,34,1115,31, + 29,58,1132,114,84,85,88,2291,41,858, + 38,5201,1180,36,785,33,37,810,32,34, + 1115,31,29,58,1132,114,84,85,87,2291, + 41,858,38,5201,1180,36,785,33,37,810, + 32,34,1115,31,29,58,1132,114,84,85, + 86,2149,41,858,38,5201,1180,36,785,33, + 37,810,32,34,1115,31,29,58,1132,114, + 84,85,112,2291,41,858,38,5201,1180,36, + 785,33,37,810,32,34,1115,31,29,58, + 1132,114,84,85,118,2291,41,858,38,5201, + 1180,36,785,33,37,810,32,34,1115,31, + 29,58,1132,114,84,85,117,2291,41,858, + 38,5201,1180,36,785,33,37,810,32,34, + 1115,31,29,58,1132,114,84,85,115,2291, + 41,858,38,5201,1180,36,785,33,37,810, + 32,34,1115,31,29,58,1132,114,84,85, + 113,1608,41,858,38,3747,5201,36,785,342, + 37,810,2069,41,873,389,5201,1881,32,5201, + 1442,2730,1951,1881,5201,2708,5201,5201,1442,2420, + 41,858,38,2929,5201,36,785,342,37,810, + 5201,32,1096,32,236,3794,1881,1273,62,57, + 734,5201,32,5201,109,1659,949,2683,323,1046, + 325,1442,2591,5201,318,850,2708,213,222,4159, + 1987,212,219,220,221,223,164,2941,734,32, + 2548,3089,3818,954,2968,236,320,2657,325,3089, + 2638,214,216,218,299,300,2498,32,1881,1881, + 2670,2708,379,5201,2708,518,215,217,213,222, + 4159,527,212,219,220,221,223,2628,334,338, + 346,2708,3089,346,311,315,3904,338,229,449, + 381,528,214,216,218,299,300,2498,32,5201, + 236,2859,1277,4220,2859,32,517,215,217,4131, + 5201,5201,1910,2951,1881,531,5201,2758,2767,4148, + 338,3474,2708,213,222,4159,5201,212,219,220, + 221,223,32,5201,5201,5201,2708,2510,41,873, + 389,236,3505,2638,1881,3083,5201,214,216,218, + 299,300,2498,2081,1881,346,1096,377,3217,5201, + 5201,225,215,217,213,222,4159,5201,212,219, + 220,221,223,2799,57,3144,2859,2708,5201,1881, + 1659,201,55,5201,5201,3205,1881,1911,214,216, + 218,299,300,2498,5201,5201,236,5201,2968,3322, + 5201,5201,310,215,217,1552,41,2780,38,3747, + 3020,36,785,342,37,810,379,3577,5201,213, + 222,4159,1881,212,219,220,221,223,1750,41, + 858,38,3747,5201,36,785,342,37,810,2069, + 41,873,389,214,216,218,299,300,2498,4210, + 5201,5201,5201,4313,734,1485,5201,497,215,217, + 5201,32,323,1046,325,1273,5201,1881,318,850, + 2445,41,873,389,629,2578,57,734,2069,41, + 873,389,1659,245,3208,323,1046,325,5201,32, + 5201,318,850,535,164,5201,5201,1987,3327,2156, + 3819,1030,5201,1273,5201,2708,4409,280,5201,5201, + 5201,4182,346,5201,428,57,5201,2510,41,873, + 389,1659,164,2002,236,5201,5201,5201,196,5201, + 32,239,168,4597,1273,5201,1750,41,858,38, + 3747,5201,36,785,342,37,810,1131,406,4610, + 5201,312,315,5201,57,5201,5201,243,237,238, + 1659,5201,55,164,417,2787,5201,5201,5201,1617, + 281,407,408,409,299,300,2498,5201,5201,3689, + 2069,41,873,389,5201,734,5201,250,253,256, + 259,2571,4324,323,1046,325,4147,5201,539,318, + 850,5201,5201,2471,5201,2533,1222,41,858,38, + 5201,3355,36,785,342,37,810,57,5201,5201, + 2156,5201,32,1659,1273,672,2708,1750,41,858, + 38,3747,5201,36,785,342,37,810,5201,5201, + 1539,41,858,38,3461,346,36,785,342,37, + 810,5201,5201,168,5201,734,1118,5201,410,412, + 2708,4409,336,323,1046,325,2859,5201,5201,319, + 850,2510,41,873,389,5201,734,3473,402,236, + 5201,1125,5201,4626,323,1046,325,5201,5201,734, + 318,850,5201,5201,5201,5201,3261,320,2657,325, + 5201,32,1131,406,4610,2708,5201,5201,57,2794, + 41,873,389,5201,1659,5201,55,4153,2834,41, + 873,389,5201,5201,346,5201,407,408,409,299, + 300,2498,2156,3696,32,5201,1273,5201,1273,5201, + 5201,5201,5201,5201,5201,2859,57,5201,5201,5201, + 5201,5201,1659,5201,55,57,532,5201,2471,5201, + 5201,1659,5201,55,5201,168,5201,164,5201,5201, + 5201,2872,5201,4392,5201,5201,5201,5201,5201,5201, + 3693,5201,5201,5201,5201,5201,5201,5201,5201,5201, + 5201,5201,5201,3505,5201,5201,5201,5201,5201,5201, + 5201,5201,5201,5201,5201,5201,5201,5201,5201,5201, + 5201,5201,5201,410,413,5201,5201,5201,5201,5201, + 5201,5201,5201,5201,5201,5201,5201,5201,5201,4228, + 5201,0,1127,1,0,1268,1,0,1,2, + 5221,0,1,2,5220,0,45,5221,0,45, + 5220,0,1527,322,0,452,1569,0,438,1611, + 0,1653,35,0,5207,1,0,5206,1,0, + 5442,248,0,5441,248,0,5542,248,0,5541, + 248,0,5469,248,0,5468,248,0,5467,248, + 0,5466,248,0,5465,248,0,5464,248,0, + 5463,248,0,5462,248,0,5480,248,0,5479, + 248,0,5478,248,0,5477,248,0,5476,248, + 0,5475,248,0,5474,248,0,5473,248,0, + 5472,248,0,5471,248,0,5470,248,0,45, + 248,5221,0,45,248,5220,0,5245,248,0, + 1653,388,0,56,5221,0,56,5220,0,44, + 5221,0,44,5220,0,2502,134,0,1,442, + 0,456,1483,0,455,1491,0,41,39,0, + 5245,1,0,45,1,0,45,2,5221,0, + 45,2,5220,0,1653,47,0,3264,99,0, + 38,40,0,45,729,0,51,5243,0,51, + 43,0,1,568,0,1,5480,0,1,5479, + 0,1,5478,0,1,5477,0,1,5476,0, + 1,5475,0,1,5474,0,1,5473,0,1, + 5472,0,1,5471,0,1,5470,0,45,1, + 5221,0,45,1,5220,0,920,1,0,499, + 2479,0,5245,235,1,0,45,235,1,0, + 235,415,0,43,5221,0,43,5220,0,244, + 3014,0,389,38,0,38,389,0,388,35, + 0,35,388,0,5221,56,0,5220,56,0, + 2502,136,0,2502,135,0,5534,443,0,1695, + 443,0,5211,404,0,5210,404,0,1,4506, + 0,1,729,0,1,2565,0,235,414,0, + 55,43,0,1,100,0,43,55,0,5243, + 53,0,53,43,0,1,5534,0,1,1695, + 0,45,1,2,5221,0,45,1,2,5220, + 0,43,5221,2,0,43,5220,2,0,5221, + 42,0,5220,42,0,499,4192,0,235,1, + 0,235,227,0,5534,103,0,1695,103,0, + 41,81,0,235,226,0,285,3632,0,5213, + 1,0,5209,1,0,235,1,2984,0,5210, + 235,0,3006,235,0,3126,235,0,10,12, + 0,8,10,12,0,8,12,0,193,3266, + 0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1066,298 +1058,301 @@ 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,0,0, - 30,31,32,33,34,35,36,37,38,39, + 20,21,22,23,24,25,26,27,0,29, + 30,0,32,33,34,35,36,37,38,39, 40,41,42,43,44,45,46,47,48,49, - 50,51,52,53,54,55,0,57,58,59, - 60,61,0,63,64,65,0,0,68,69, - 70,4,72,6,74,8,76,77,78,79, - 80,81,82,83,84,85,86,87,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,88,89,30,31, - 32,33,34,35,36,37,38,39,40,41, - 42,43,44,45,46,47,48,49,50,51, - 52,53,54,55,0,57,58,59,60,61, - 0,63,64,65,88,89,68,69,70,9, - 72,11,74,101,76,77,78,79,80,81, - 82,83,84,85,86,87,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,0,0,30,31,32,33, - 34,35,36,37,38,39,40,41,42,43, - 44,45,46,47,48,49,50,51,52,53, - 54,55,0,57,58,59,60,61,0,63, - 64,65,0,99,68,69,70,0,1,2, - 74,4,76,77,78,79,80,81,82,83, - 84,85,86,87,0,1,2,3,4,5, + 50,51,52,53,54,55,28,57,58,59, + 60,61,0,63,64,3,66,0,68,69, + 70,71,0,6,74,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,0,29,30,56,32, + 33,34,35,36,37,38,39,40,41,42, + 43,44,45,46,47,48,49,50,51,52, + 53,54,55,28,57,58,59,60,61,0, + 63,64,3,66,0,68,69,70,71,5, + 0,74,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,88,89,30,31,32,33,34,35, + 26,27,0,29,30,56,32,33,34,35, 36,37,38,39,40,41,42,43,44,45, 46,47,48,49,50,51,52,53,54,55, - 0,57,58,59,60,61,121,63,64,65, - 88,89,68,69,70,103,104,105,74,101, + 28,57,58,59,60,61,0,63,64,0, + 66,0,68,69,70,71,0,0,74,75, 76,77,78,79,80,81,82,83,84,85, - 86,87,0,1,2,3,4,5,6,7, - 8,9,10,11,12,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 0,61,30,31,32,33,34,35,36,37, - 38,39,40,41,42,43,44,45,46,47, - 48,49,50,51,52,53,54,55,0,57, - 58,59,60,61,0,63,64,65,4,0, - 68,69,70,0,1,2,74,4,76,77, - 78,79,80,81,82,83,84,85,86,87, - 0,1,2,3,4,5,6,7,8,9, - 10,11,12,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,88,89, - 30,31,32,33,34,35,36,37,38,39, - 40,41,42,43,44,45,46,47,48,49, - 50,51,52,53,54,55,0,57,58,59, - 60,61,0,63,64,65,4,0,68,69, - 70,0,1,2,74,8,76,77,78,79, - 80,81,82,83,84,85,86,87,0,1, + 86,0,1,2,3,4,5,6,7,8, + 9,10,11,12,13,14,15,16,17,18, + 19,20,21,22,23,24,25,26,27,0, + 29,30,0,32,33,34,35,36,37,38, + 39,40,41,42,43,44,45,46,47,48, + 49,50,51,52,53,54,55,0,57,58, + 59,60,61,0,63,64,0,66,0,3, + 69,70,71,97,98,74,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,0,0,30,31, + 22,23,24,25,26,27,0,29,30,62, 32,33,34,35,36,37,38,39,40,41, 42,43,44,45,46,47,48,49,50,51, 52,53,54,55,28,57,58,59,60,61, - 0,63,64,65,4,99,68,69,70,0, - 1,2,74,0,76,77,78,79,80,81, - 82,83,84,85,86,87,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,0,0,30,31,32,33, - 34,35,36,37,38,39,40,41,42,43, - 44,45,46,47,48,49,50,51,52,53, - 54,55,28,57,58,59,60,61,0,63, - 64,65,0,0,68,69,70,0,1,2, - 74,8,76,77,78,79,80,81,82,83, - 84,85,86,87,0,1,2,3,4,5, - 6,7,8,9,10,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,0,0,30,31,32,33,34,35, - 36,37,38,39,40,41,42,43,44,45, - 46,47,48,49,50,51,52,53,54,55, - 28,57,58,59,60,61,0,63,64,65, - 4,0,68,69,70,97,98,95,74,0, - 76,77,78,79,80,81,82,83,84,85, - 86,87,0,1,2,3,4,5,6,7, + 121,63,64,0,66,0,3,69,70,71, + 97,98,74,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,0,29,30,0,32,33,34, + 35,36,37,38,39,40,41,42,43,44, + 45,46,47,48,49,50,51,52,53,54, + 55,28,57,58,59,60,61,0,63,64, + 0,66,0,0,69,70,71,4,0,74, + 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, - 0,0,30,31,32,33,34,35,36,37, + 0,29,30,56,32,33,34,35,36,37, 38,39,40,41,42,43,44,45,46,47, 48,49,50,51,52,53,54,55,28,57, - 58,59,60,61,0,63,64,65,4,0, - 68,69,70,0,1,2,74,0,76,77, - 78,79,80,81,82,83,84,85,86,87, - 0,1,2,3,4,5,6,7,8,30, - 10,71,12,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,0,0, - 30,31,32,33,34,35,36,37,38,39, - 40,41,42,43,44,45,46,47,48,49, - 50,51,52,53,54,55,0,1,2,59, - 60,5,0,7,0,3,0,3,68,69, - 70,0,1,2,3,4,5,6,7,8, - 9,10,11,12,97,98,15,16,17,18, - 19,20,21,22,23,24,25,0,1,2, - 29,0,5,32,33,0,1,2,3,4, - 5,6,7,8,43,0,1,2,56,48, - 49,50,51,52,53,54,55,0,57,58, - 59,0,1,2,3,0,5,0,7,68, - 69,70,71,72,29,74,75,0,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,56,0,15,16,17,18,19,20,21, - 22,23,24,25,103,104,105,29,0,0, - 32,33,0,0,1,2,3,56,5,62, - 7,43,9,56,67,0,48,49,50,51, - 52,53,54,55,9,57,58,59,0,1, - 2,33,4,5,67,7,68,69,70,71, - 72,43,74,75,62,0,1,2,3,4, - 5,6,7,8,9,10,11,12,59,56, - 15,16,17,18,19,20,21,22,23,24, - 25,103,104,105,29,0,73,32,33,0, - 1,2,67,4,5,0,7,72,43,0, - 0,1,2,48,49,50,51,52,53,54, - 55,0,57,58,59,0,1,2,29,4, - 0,0,0,68,69,70,71,72,0,74, - 75,3,12,0,6,0,8,9,3,11, - 0,13,14,0,1,2,3,4,5,6, - 7,8,32,33,26,27,28,0,103,104, - 105,66,29,43,64,65,0,56,48,49, - 50,51,52,53,54,55,61,0,1,2, - 3,4,61,6,56,8,0,1,2,3, - 62,5,0,7,66,67,56,102,76,71, - 72,73,107,108,109,110,111,112,113,114, - 115,116,117,56,71,0,88,89,90,91, - 92,93,94,95,96,97,98,99,100,101, - 102,0,66,56,106,107,108,109,110,111, - 112,113,114,115,116,117,118,0,120,0, - 3,0,0,6,62,8,9,71,11,67, - 13,14,0,1,2,3,4,5,6,7, - 8,56,0,26,27,28,4,28,0,1, - 2,3,4,5,6,7,8,9,0,11, - 12,0,1,2,3,4,5,6,7,8, - 0,1,2,56,4,5,28,7,56,62, - 32,33,61,66,67,0,1,2,71,72, - 73,43,0,0,1,2,48,49,50,51, - 52,53,54,55,56,88,89,90,91,92, - 93,94,95,96,97,98,99,100,101,102, - 28,73,29,106,107,108,109,110,111,112, - 113,114,115,116,117,118,0,120,0,1, - 2,3,4,5,6,7,8,0,10,64, - 65,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,0,0,30,31, - 4,0,34,35,36,37,38,39,40,41, - 42,0,44,45,46,47,0,1,2,3, - 0,5,0,7,28,9,0,11,60,3, - 62,9,64,65,0,1,2,3,4,5, - 6,7,8,9,10,0,0,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,0,66,30,31,100,66,34,35, - 36,37,38,39,40,41,42,66,44,45, - 46,47,56,61,0,1,2,3,4,5, - 6,7,8,0,60,61,0,1,2,0, - 4,0,6,0,8,0,72,0,1,2, - 3,4,5,6,7,8,9,10,13,14, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,0,0,30,31,3, - 56,34,35,36,37,38,39,40,41,42, - 66,44,45,46,47,0,1,2,3,66, - 5,62,7,62,9,62,11,60,61,0, - 0,1,2,3,4,5,6,7,8,72, - 10,0,0,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,29,0, - 30,31,66,0,34,35,36,37,38,39, - 40,41,42,0,44,45,46,47,0,1, - 2,0,4,10,6,90,8,9,29,0, - 60,96,3,0,64,65,0,1,2,3, - 4,5,6,7,8,0,10,0,67,13, + 58,59,60,61,0,63,64,0,66,0, + 0,69,70,71,4,95,74,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,0,29,30, + 56,32,33,34,35,36,37,38,39,40, + 41,42,43,44,45,46,47,48,49,50, + 51,52,53,54,55,28,57,58,59,60, + 61,0,63,64,3,66,0,0,69,70, + 71,4,95,74,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,0,0,30,31,3,5, - 34,35,36,37,38,39,40,41,42,0, - 44,45,46,47,102,0,1,2,0,4, - 5,73,7,0,1,2,60,9,95,117, - 64,65,0,1,2,3,4,5,6,7, - 8,9,10,95,29,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 0,0,30,31,4,4,34,35,36,37, - 38,39,40,41,42,0,44,45,46,47, - 0,1,2,3,4,5,6,7,8,28, - 10,73,32,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,0,0, - 30,31,3,95,34,35,36,37,38,39, - 40,41,42,0,44,45,46,47,0,1, - 2,122,4,10,6,0,8,0,1,2, - 60,61,0,1,2,3,71,5,0,7, - 118,0,1,2,3,4,5,6,7,8, - 0,10,0,28,13,14,15,16,17,18, - 19,20,21,22,23,24,25,26,27,0, - 57,30,31,0,0,34,35,36,37,38, - 39,40,41,42,0,44,45,46,47,0, - 0,0,3,0,5,6,0,8,100,6, - 10,60,13,14,13,14,0,1,2,0, - 0,5,28,3,0,26,27,28,0,29, - 31,12,4,71,15,16,17,18,19,20, - 21,22,23,24,25,29,26,27,0,1, - 2,32,33,0,0,56,0,1,2,59, - 32,62,43,64,65,66,67,48,49,50, - 51,52,53,54,55,0,56,0,1,2, - 0,4,28,6,9,8,11,88,89,90, - 91,92,93,94,91,92,97,98,99,100, - 101,102,0,1,2,106,107,108,109,110, - 111,112,113,114,115,116,0,61,0,3, - 67,5,6,0,8,119,106,0,0,13, - 14,103,104,105,6,0,0,0,1,2, - 120,4,26,27,28,0,28,31,12,0, - 1,2,0,4,9,6,11,8,0,1, - 2,3,0,5,0,7,29,3,32,33, - 0,0,56,0,1,2,6,6,62,43, - 64,65,66,67,48,49,50,51,52,53, - 54,55,0,1,2,0,1,2,71,7, - 77,66,29,0,88,89,90,91,92,93, - 94,0,67,97,98,99,100,101,102,91, - 92,0,106,107,108,109,110,111,112,113, - 114,115,116,0,1,2,3,4,5,6, - 7,8,0,10,0,3,13,14,15,16, + 24,25,26,27,0,29,30,0,32,33, + 34,35,36,37,38,39,40,41,42,43, + 44,45,46,47,48,49,50,51,52,53, + 54,55,28,57,58,59,60,61,31,63, + 64,0,66,0,3,69,70,71,0,0, + 74,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,91,92,30,31,62,0,34,35,36, - 37,38,39,40,41,42,0,44,45,46, - 47,0,1,2,0,9,0,3,0,56, - 0,1,2,3,4,5,6,7,8,0, - 10,13,14,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,0,0, - 30,31,0,4,34,35,36,37,38,39, - 40,41,42,67,44,45,46,47,0,1, - 2,3,4,5,6,7,8,28,10,73, - 60,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,67,0,30,31, - 0,0,34,35,36,37,38,39,40,41, - 42,95,44,45,46,47,0,1,2,3, - 4,5,6,7,8,0,10,0,28,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,0,0,30,31,0,0, - 34,35,36,37,38,39,40,41,42,62, - 44,45,46,47,0,1,2,3,4,5, - 6,7,8,28,10,0,28,13,14,15, + 27,0,29,30,0,32,33,34,35,36, + 37,38,39,40,41,42,43,44,45,46, + 47,48,49,50,51,52,53,54,55,28, + 57,58,59,60,61,31,63,64,0,66, + 0,3,69,70,71,0,0,74,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,0,29, + 30,0,32,33,34,35,36,37,38,39, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,54,55,0,57,58,59, + 60,61,0,63,64,0,66,0,6,69, + 70,71,0,0,74,75,76,77,78,79, + 80,81,82,83,84,85,86,0,1,2, + 3,4,5,6,0,8,9,10,67,12, + 13,14,15,16,17,18,19,20,21,22, + 23,24,25,26,27,0,29,30,0,32, + 33,34,35,36,37,38,39,40,41,42, + 43,44,45,46,47,48,49,50,51,52, + 53,54,55,0,0,58,90,60,0,76, + 56,3,96,91,92,7,69,70,71,0, + 1,2,3,4,5,6,7,8,9,10, + 11,28,100,14,15,16,17,18,19,20, + 21,22,23,24,25,67,119,0,1,2, + 31,4,0,6,7,0,9,0,1,2, + 41,4,7,0,56,46,47,48,49,50, + 51,52,53,54,55,72,57,0,59,60, + 0,73,0,1,2,0,0,68,69,70, + 71,72,7,74,0,1,2,3,4,5, + 6,0,8,9,3,101,87,0,1,2, + 3,4,5,6,7,8,9,10,11,67, + 73,14,15,16,17,18,19,20,21,22, + 23,24,25,114,115,116,56,60,31,0, + 1,2,95,4,5,63,64,8,41,0, + 56,66,0,46,47,48,49,50,51,52, + 53,54,55,14,57,0,59,60,67,4, + 31,6,0,118,9,68,69,70,71,72, + 0,74,0,3,12,13,6,7,0,9, + 41,11,12,13,87,46,47,48,49,50, + 51,52,53,54,55,0,26,27,28,0, + 0,0,1,2,3,4,5,6,9,8, + 9,114,115,116,14,15,16,17,18,19, + 20,21,22,23,24,25,56,0,0,1, + 2,3,62,5,62,65,8,67,68,0, + 62,41,72,73,0,0,46,47,48,49, + 50,51,52,53,54,55,12,13,88,89, + 90,91,92,93,94,95,96,97,98,99, + 100,101,102,103,104,105,106,107,108,109, + 110,111,112,113,56,90,0,117,118,3, + 120,96,6,7,67,9,0,11,12,13, + 0,1,2,3,4,5,6,62,8,9, + 65,0,26,27,28,4,0,0,1,2, + 3,4,5,6,28,8,9,88,89,102, + 14,104,105,106,107,108,109,110,111,112, + 113,0,56,0,117,0,1,2,62,0, + 5,65,41,67,68,0,7,41,72,73, + 11,0,46,47,48,49,50,51,52,53, + 54,55,72,0,88,89,90,91,92,93, + 94,95,96,97,98,99,100,101,102,103, + 104,105,106,107,108,109,110,111,112,113, + 0,1,2,117,118,62,120,0,1,2, + 3,4,5,6,65,8,9,10,0,12, + 13,0,15,16,17,18,19,20,21,22, + 23,24,25,26,27,0,29,30,0,32, + 33,34,35,36,37,38,39,40,75,42, + 43,44,45,0,0,1,2,0,1,2, + 3,4,8,6,0,58,9,46,47,62, + 63,64,0,1,2,3,4,5,6,7, + 8,9,10,0,12,13,0,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 62,29,30,65,32,33,34,35,36,37, + 38,39,40,56,42,43,44,45,0,1, + 2,3,58,5,0,7,8,0,0,11, + 58,0,1,2,3,7,5,102,66,8, + 68,0,1,2,3,4,5,6,7,8, + 9,10,117,12,13,0,15,16,17,18, + 19,20,21,22,23,24,25,26,27,0, + 29,30,119,32,33,34,35,36,37,38, + 39,40,99,42,43,44,45,0,1,2, + 3,67,5,65,7,8,68,0,11,58, + 0,1,2,72,4,5,0,66,8,68, + 0,1,2,3,4,5,6,0,8,9, + 10,0,12,13,0,15,16,17,18,19, + 20,21,22,23,24,25,26,27,0,29, + 30,72,32,33,34,35,36,37,38,39, + 40,0,42,43,44,45,0,0,0,1, + 2,4,4,5,67,9,8,0,58,114, + 115,116,0,63,64,0,1,2,3,4, + 5,6,65,8,9,10,65,12,13,31, + 15,16,17,18,19,20,21,22,23,24, + 25,26,27,0,29,30,0,32,33,34, + 35,36,37,38,39,40,0,42,43,44, + 45,0,1,2,100,4,88,89,7,0, + 1,2,3,58,5,0,0,8,63,64, + 0,1,2,3,4,5,6,7,8,9, + 10,0,12,13,0,15,16,17,18,19, + 20,21,22,23,24,25,26,27,101,29, + 30,99,32,33,34,35,36,37,38,39, + 40,0,42,43,44,45,0,66,0,1, + 2,10,4,0,6,0,90,9,58,0, + 1,2,96,4,88,89,66,0,1,2, + 3,4,5,6,7,8,9,10,67,12, + 13,28,15,16,17,18,19,20,21,22, + 23,24,25,26,27,0,29,30,57,32, + 33,34,35,36,37,38,39,40,62,42, + 43,44,45,0,1,2,3,4,5,6, + 0,8,9,10,0,12,13,7,15,16, + 17,18,19,20,21,22,23,24,25,26, + 27,0,29,30,3,32,33,34,35,36, + 37,38,39,40,0,42,43,44,45,0, + 0,0,3,3,0,5,6,72,14,9, + 6,58,12,13,0,1,2,3,4,5, + 6,0,8,9,0,118,26,27,28,28, + 30,0,0,73,3,41,72,0,1,2, + 46,47,48,49,50,51,52,53,54,55, + 0,0,1,2,4,4,56,26,27,0, + 1,2,62,63,64,65,7,67,31,0, + 56,0,0,1,2,3,7,5,28,7, + 8,67,31,0,1,2,65,56,88,89, + 90,91,92,93,94,91,92,97,98,99, + 100,101,102,103,104,105,106,107,108,109, + 110,111,112,113,0,0,0,3,0,5, + 6,0,0,9,6,66,12,13,56,0, + 1,2,10,4,103,6,65,68,9,0, + 26,27,28,28,30,73,63,64,0,1, + 2,120,31,14,0,1,2,0,4,5, + 0,0,8,0,4,0,1,2,7,4, + 56,6,11,0,9,0,62,63,64,65, + 41,67,0,1,2,46,47,48,49,50, + 51,52,53,54,55,0,1,2,0,1, + 2,41,88,89,90,91,92,93,94,91, + 92,97,98,99,100,101,102,103,104,105, + 106,107,108,109,110,111,112,113,0,1, + 2,3,4,5,6,0,8,9,10,0, + 12,13,7,15,16,17,18,19,20,21, + 22,23,24,25,26,27,0,29,30,0, + 32,33,34,35,36,37,38,39,40,0, + 42,43,44,45,114,115,116,0,1,2, + 3,4,5,6,56,8,9,10,0,12, + 13,3,15,16,17,18,19,20,21,22, + 23,24,25,26,27,0,29,30,73,32, + 33,34,35,36,37,38,39,40,62,42, + 43,44,45,0,0,1,2,3,4,5, + 6,62,8,9,10,58,12,13,0,15, 16,17,18,19,20,21,22,23,24,25, - 26,27,0,0,30,31,3,0,34,35, - 36,37,38,39,40,41,42,62,44,45, - 46,47,0,1,2,90,4,0,1,2, - 28,96,10,0,12,0,0,15,16,17, - 18,19,20,21,22,23,24,25,93,94, - 0,0,0,0,32,33,29,0,1,2, - 10,0,0,28,28,43,0,0,1,2, - 48,49,50,51,52,53,54,55,0,29, - 28,59,0,0,1,2,29,4,0,0, - 68,69,70,10,28,12,29,62,15,16, - 17,18,19,20,21,22,23,24,25,59, - 0,0,30,0,62,32,33,0,0,9, - 9,0,0,62,74,3,43,9,93,94, - 9,48,49,50,51,52,53,54,55,0, - 62,90,59,90,0,93,94,96,9,96, - 11,68,69,70,0,1,2,3,4,5, - 6,7,8,9,0,11,12,0,1,2, - 3,4,5,6,7,8,9,0,11,12, - 0,119,0,3,73,67,32,33,71,9, - 0,73,0,72,0,0,29,43,3,9, - 0,9,48,49,50,51,52,53,54,55, - 56,0,1,2,3,4,5,6,7,8, - 9,0,11,12,57,58,0,73,118,0, - 63,0,0,0,3,9,56,11,9,72, - 29,9,75,0,1,2,3,4,5,6, - 7,8,9,73,11,12,0,0,0,3, - 66,28,72,0,0,73,3,3,57,58, - 0,28,29,3,63,0,0,0,0,0, - 0,60,3,72,0,10,75,0,1,2, - 3,4,5,6,7,8,9,0,11,12, - 57,58,73,0,29,73,63,0,0,0, - 3,0,3,0,0,12,29,3,75,0, - 1,2,3,4,5,6,7,8,9,71, - 11,12,0,0,59,32,33,61,0,0, - 0,3,3,66,57,58,43,67,29,71, - 63,48,49,50,51,52,53,54,55,72, - 0,0,75,0,1,2,3,4,5,6, - 7,8,9,0,11,12,57,58,67,71, - 0,0,63,3,71,0,0,0,28,0, - 0,72,29,0,75,0,1,2,3,4, - 5,6,7,8,9,0,11,12,0,0, - 0,0,0,0,0,30,0,0,0,3, - 57,58,0,12,29,9,63,66,0,1, - 2,3,4,5,6,7,8,9,75,11, - 12,0,0,32,33,0,0,66,0,0, - 0,119,57,58,43,0,0,29,63,48, - 49,50,51,52,53,54,55,0,0,0, - 75,0,56,0,0,0,0,0,62,0, - 0,0,0,67,0,57,58,0,0,73, - 0,63,0,0,0,0,0,0,0,0, - 0,0,0,75,0,0,0,0,0,0, + 26,27,0,29,30,3,32,33,34,35, + 36,37,38,39,40,0,42,43,44,45, + 0,1,2,3,4,5,6,72,8,9, + 10,0,12,13,3,15,16,17,18,19, + 20,21,22,23,24,25,26,27,0,29, + 30,3,32,33,34,35,36,37,38,39, + 40,0,42,43,44,45,0,1,2,3, + 4,5,6,0,8,9,10,62,12,13, + 7,15,16,17,18,19,20,21,22,23, + 24,25,26,27,0,29,30,3,32,33, + 34,35,36,37,38,39,40,0,42,43, + 44,45,0,1,2,0,4,0,1,2, + 0,0,10,0,1,2,14,15,16,17, + 18,19,20,21,22,23,24,25,0,1, + 2,0,4,0,6,4,73,9,31,0, + 1,2,3,41,5,12,13,8,46,47, + 48,49,50,51,52,53,54,55,95,0, + 1,2,60,0,0,1,2,4,4,72, + 0,69,70,71,10,0,65,67,14,15, + 16,17,18,19,20,21,22,23,24,25, + 31,28,0,88,89,0,1,2,3,4, + 5,6,7,8,9,41,11,0,0,14, + 46,47,48,49,50,51,52,53,54,55, + 0,1,2,28,60,5,56,0,8,0, + 1,2,0,69,70,71,41,0,1,2, + 0,46,47,48,49,50,51,52,53,54, + 55,56,0,1,2,3,4,5,6,7, + 8,9,0,11,56,90,14,0,73,0, + 0,96,0,0,7,3,3,7,0,1, + 2,3,4,5,6,7,8,9,0,11, + 28,0,14,41,0,88,89,28,46,47, + 48,49,50,51,52,53,54,55,56,31, + 0,1,2,3,4,5,6,7,8,9, + 29,11,28,0,14,73,3,0,0,1, + 2,62,65,5,7,57,66,59,28,61, + 73,31,0,1,2,0,68,0,1,2, + 3,4,5,6,7,8,9,0,11,31, + 0,14,93,94,7,87,0,57,11,59, + 4,61,0,31,29,0,4,0,31,0, + 1,2,3,4,5,6,7,8,9,0, + 11,0,0,14,28,68,7,87,7,0, + 0,0,11,28,57,28,59,119,61,10, + 31,10,0,1,2,68,0,0,1,2, + 3,4,5,6,7,8,9,67,11,0, + 31,14,31,0,87,0,57,62,59,62, + 61,0,0,31,0,1,2,68,31,0, + 1,2,3,4,5,6,7,8,9,60, + 11,60,73,14,0,65,87,3,93,94, + 93,94,0,74,57,31,59,0,61,7, + 31,65,0,11,7,68,0,1,2,3, + 4,5,6,7,8,9,0,11,0,3, + 14,72,0,7,87,7,57,72,59,11, + 61,0,10,0,1,2,0,31,0,1, + 2,3,4,5,6,7,8,9,0,11, + 0,0,14,31,3,7,87,65,0,0, + 68,3,3,57,0,59,0,61,0,31, + 73,3,56,0,1,2,0,0,62,3, + 3,65,60,0,122,0,3,0,0,73, + 0,0,28,87,0,57,0,59,0,61, + 0,0,0,72,0,0,0,0,0,0, + 0,0,0,0,29,0,0,67,0,0, + 0,73,0,0,0,87,0,0,0,0, + 0,95,0,67,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,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, + 0,0,0,0,0,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; @@ -1365,298 +1360,296 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface TermAction { public final static char termAction[] = {0, - 5237,5218,5194,5194,5194,5194,5194,5194,5194,5228, - 1,5225,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,127,1, + 5201,5175,5148,5148,5148,5148,5148,5185,5148,5148, + 1,5179,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5201,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5237,1855,1562,1, - 1,3517,143,3043,1,1,131,43,1,1, - 1,5279,5244,1514,5418,5568,2593,3304,3694,2238, - 3648,3228,3036,3303,1813,3290,3308,3253,8,5231, - 5231,5231,5231,5231,5231,5231,5231,5231,5231,5231, - 5231,5231,5231,5231,5231,5231,5231,5231,5231,5231, - 5231,5231,5231,5231,5231,5231,2603,2763,5231,5231, - 5231,5231,5231,5231,5231,5231,5231,5231,5231,5231, - 5231,5231,5231,5231,5231,5231,5231,5231,5231,5231, - 5231,5231,5231,5231,139,5231,5231,5231,5231,5231, - 403,5231,5231,5231,2603,2763,5231,5231,5231,5128, - 5231,5131,5231,2325,5231,5231,5231,5231,5231,5231, - 5231,5231,5231,5231,5231,5231,5237,5218,5194,5194, - 5194,5194,5194,5194,5194,5222,1,5225,1,1, + 1,1,1,1,1,1,723,1742,1,2171, + 1,2830,350,1,1,914,5212,5201,5208,1, + 1,1,5201,2748,5384,1979,3079,3176,2211,3021, + 2959,2957,3046,928,3024,778,3016,10,5188,5188, + 5188,5188,5188,5188,5188,5188,5188,5188,5188,5188, + 5188,5188,5188,5188,5188,5188,5188,5188,5188,5188, + 5188,5188,5188,5188,5188,452,5188,5188,1315,5188, + 5188,5188,5188,5188,5188,5188,5188,5188,5188,5188, + 5188,5188,5188,5188,5188,5188,5188,5188,5188,5188, + 5188,5188,5188,4825,5188,5188,5188,5188,5188,322, + 5188,5188,4822,5188,5201,5188,5188,5188,5188,3562, + 5201,5188,5188,5188,5188,5188,5188,5188,5188,5188, + 5188,5188,5188,5188,8,5191,5191,5191,5191,5191, + 5191,5191,5191,5191,5191,5191,5191,5191,5191,5191, + 5191,5191,5191,5191,5191,5191,5191,5191,5191,5191, + 5191,5191,438,5191,5191,1315,5191,5191,5191,5191, + 5191,5191,5191,5191,5191,5191,5191,5191,5191,5191, + 5191,5191,5191,5191,5191,5191,5191,5191,5191,5191, + 4828,5191,5191,5191,5191,5191,137,5191,5191,5201, + 5191,5201,5191,5191,5191,5191,5201,5201,5191,5191, + 5191,5191,5191,5191,5191,5191,5191,5191,5191,5191, + 5191,5201,5175,5148,5148,5148,5148,5148,5182,5148, + 5148,1,5179,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5201, + 1,1,5201,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,130,5237,1,1,1,1, + 1,1,1,1,1,1,1,5201,1742,1, + 2171,1,2830,138,1,1,5201,5212,5201,3084, + 1,1,1,2420,2392,5384,1979,3079,3176,2211, + 3021,2959,2957,3046,928,3024,778,3016,5201,5175, + 5148,5148,5148,5148,5148,5182,5148,5148,1,5179, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,35,1,1,2622, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,436,1855,1562,1,1,3517,144,3043, - 1,1,129,590,1,1,1,5237,4865,4862, - 5418,5279,2593,3304,3694,2238,3648,3228,3036,3303, - 1813,3290,3308,3253,5237,5218,5194,5194,5194,5194, - 5194,5194,5194,5222,1,5225,1,1,1,1, + 1,1,1,1,4831,1742,1,2171,1,2830, + 4801,1,1,5201,5212,5201,3014,1,1,1, + 2420,2392,5384,1979,3079,3176,2211,3021,2959,2957, + 3046,928,3024,778,3016,5201,5175,5148,5148,5148, + 5148,5148,5182,5148,5148,1,5179,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,2603,2763,1,1,1,1,1,1, + 1,1,1,388,1,1,5201,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5237,1855,1562,1,1,3517,4847,3043,1,1, - 2603,2763,1,1,1,5669,5670,5671,5418,2325, - 2593,3304,3694,2238,3648,3228,3036,3303,1813,3290, - 3308,3253,5237,5218,5194,5194,5194,5194,5194,5194, - 5194,5222,1,5225,1,1,1,1,1,1, + 1,4920,1742,1,2171,1,2830,351,1,1, + 361,5212,5201,45,1,1,1,5245,5201,5384, + 1979,3079,3176,2211,3021,2959,2957,3046,928,3024, + 778,3016,5201,5175,5148,5148,5148,5148,5148,5182, + 5148,5148,1,5179,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 128,2277,1,1,1,1,1,1,1,1, + 5201,1,1,1315,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5237,1855, - 1562,1,1,3517,43,3043,1,1,5279,5237, - 1,1,1,5237,4865,4862,5418,5279,2593,3304, - 3694,2238,3648,3228,3036,3303,1813,3290,3308,3253, - 5237,5218,5194,5194,5194,5194,5194,5194,5194,5222, - 1,5225,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,2603,2763, + 1,1,1,1,1,1,1,1,3760,1742, + 1,2171,1,2830,324,1,1,1,5212,5201, + 5201,1,1,1,3169,5561,5384,1979,3079,3176, + 2211,3021,2959,2957,3046,928,3024,778,3016,5201, + 5175,5148,5148,5148,5148,5148,5182,5148,5148,1, + 5179,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5201,1,1, + 1315,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,3761,1742,1,2171,1, + 2830,99,1,1,4967,5212,5201,1,1,1, + 1,389,5563,5384,1979,3079,3176,2211,3021,2959, + 2957,3046,928,3024,778,3016,5201,5175,5148,5148, + 5148,5148,5148,5182,5148,5148,1,5179,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,5201,1,1,43,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,140,1855,1562,1, - 1,3517,5237,3043,1,1,791,137,1,1, - 1,395,5254,5255,5418,2389,2593,3304,3694,2238, - 3648,3228,3036,3303,1813,3290,3308,3253,5237,5218, - 5194,5194,5194,5194,5194,5194,5194,5222,1,5225, + 1,1,4227,1742,1,2171,1,2830,5243,1, + 1,244,5212,5201,5049,1,1,1,5201,5201, + 5384,1979,3079,3176,2211,3021,2959,2957,3046,928, + 3024,778,3016,5201,5175,5148,5148,5148,5148,5148, + 5182,5148,5148,1,5179,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5237,5237,1,1, + 1,5201,1,1,55,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,4302, + 1742,1,2171,1,2830,2845,1,1,1,5212, + 5201,4592,1,1,1,5201,5201,5384,1979,3079, + 3176,2211,3021,2959,2957,3046,928,3024,778,3016, + 5201,2984,1,1,1,1,1,3006,1,1, + 1,5210,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5201,1, + 1,506,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,792,1855,1562,1,1,3517, - 1,3043,1,1,387,590,1,1,1,5237, - 5254,5255,5418,5237,2593,3304,3694,2238,3648,3228, - 3036,3303,1813,3290,3308,3253,5237,5218,5194,5194, - 5194,5194,5194,5194,5194,5222,1,5225,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,451,5237,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,4871,1855,1562,1,1,3517,135,3043, - 1,1,359,138,1,1,1,5237,4972,4969, - 5418,2389,2593,3304,3694,2238,3648,3228,3036,3303, - 1813,3290,3308,3253,5237,5218,5194,5194,5194,5194, - 5194,5194,5194,5222,1,5225,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,437,5237,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 4874,1855,1562,1,1,3517,5237,3043,1,1, - 3311,5237,1,1,1,2446,2418,5595,5418,5237, - 2593,3304,3694,2238,3648,3228,3036,3303,1813,3290, - 3308,3253,5237,3240,1,1,1,1,1,1, - 1,5247,1,5246,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 33,5237,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1472,1855, - 1562,1,1,3517,5237,3043,1,1,1947,5237, - 1,1,1,54,4972,4969,5418,136,2593,3304, - 3694,2238,3648,3228,3036,3303,1813,3290,3308,3253, - 43,4865,4862,3492,728,3791,3865,3033,3887,3637, - 776,421,5499,3843,3821,5506,5504,5513,5512,5508, - 5509,5507,5510,5511,5514,5505,3931,3909,5237,5237, - 5260,1054,5502,5575,1167,1272,5262,1185,1347,1212, - 5263,5261,1133,5576,5256,5258,5259,5257,5496,5503, - 5475,5501,5500,5497,5498,5476,5237,5254,5255,5633, - 1397,655,348,3033,5237,868,5237,4140,572,5634, - 5635,5237,5082,5082,233,5078,233,233,233,233, - 5086,1,233,1,2446,2418,1,1,1,1, - 1,1,1,1,1,1,1,5237,5254,5255, - 5075,5237,2935,1,1,346,5006,5002,2661,5279, - 655,1514,3033,5568,1,49,5025,5025,1310,1, - 1,1,1,1,1,1,1,5237,2278,1478, - 1,1,4858,4854,2661,5237,655,349,3033,1, - 1,1,233,414,5022,5647,5734,363,5237,5082, - 5082,233,5078,233,233,233,233,5086,1,233, - 1,1310,5237,1,1,1,1,1,1,1, - 1,1,1,1,5669,5670,5671,5075,337,5237, - 1,1,5237,1,4858,4854,2661,1310,655,870, - 3033,1,4880,1310,3034,5237,1,1,1,1, - 1,1,1,1,5245,2278,1478,1,5237,4865, - 4862,5575,728,655,3223,3033,1,1,1,233, - 414,5576,5647,5734,2578,5237,5082,5082,233,5078, - 233,233,233,233,5143,1,233,1,2810,1310, - 1,1,1,1,1,1,1,1,1,1, - 1,5669,5670,5671,5075,5237,4883,1,1,5237, - 4865,4862,1012,728,5019,145,3033,5244,1,5237, - 5237,5254,5255,1,1,1,1,1,1,1, - 1,322,2278,1478,1,5237,4865,4862,994,5279, - 229,5237,1,1,1,1,233,413,37,5647, - 5734,4993,5499,41,4993,5237,4993,4993,3044,4993, - 455,4993,4993,5237,5172,5167,4489,4996,655,5164, - 3033,5161,5502,5575,4993,4993,4993,454,5669,5670, - 5671,1859,5277,5576,3953,1264,505,1310,5496,5503, - 5475,5501,5500,5497,5498,5476,1850,346,43,43, - 3274,5279,3451,1514,4993,5568,1,4858,4854,4489, - 4993,655,5237,3033,4993,4993,4987,2288,3514,4993, - 4993,4993,1817,1775,1733,1691,1649,1607,1565,1523, - 1481,1439,3494,4990,2064,106,4993,4993,4993,4993, - 4993,4993,4993,4993,4993,4993,4993,4993,4993,4993, - 4993,5237,2826,1310,4993,4993,4993,4993,4993,4993, - 4993,4993,4993,4993,4993,4993,4993,5237,4993,33, - 5016,5237,105,5016,4254,5016,5016,2064,5016,3034, - 5016,5016,5237,5006,5002,4489,5279,655,1514,3033, - 5568,4435,5237,5016,5016,5016,2024,4877,33,386, - 386,5104,386,386,5104,386,5104,5107,5237,5104, - 386,312,5172,5167,4489,4996,655,5164,3033,5161, - 5237,4865,4862,5016,728,655,4877,3033,2201,5016, - 386,386,3517,5016,5016,5237,4972,4969,5016,5016, - 5016,386,386,5237,5092,5089,386,386,386,386, - 386,386,386,386,5107,5016,5016,5016,5016,5016, - 5016,5016,5016,5016,5016,5016,5016,5016,5016,5016, - 4966,5107,5277,5016,5016,5016,5016,5016,5016,5016, - 5016,5016,5016,5016,5016,5016,141,5016,1,5068, - 5064,3492,5072,3791,3865,3033,3887,5237,5028,3953, - 1264,3843,3821,5055,5061,5034,5037,5049,5046,5052, - 5043,5040,5031,5058,3931,3909,394,503,5260,1054, - 386,371,1167,1272,5262,1185,1347,1212,5263,5261, - 1133,369,5256,5258,5259,5257,1,4858,4854,5134, - 5237,5137,5237,5140,1472,5247,320,5246,1397,4868, - 513,1640,43,43,43,4865,4862,3492,728,3791, - 3865,3033,3887,5245,813,5237,5237,3843,3821,5506, - 5504,5513,5512,5508,5509,5507,5510,5511,5514,5505, - 3931,3909,5237,4255,5260,1054,2358,1134,1167,1272, - 5262,1185,1347,1212,5263,5261,1133,1181,5256,5258, - 5259,5257,1310,1682,368,4858,4854,2661,1,655, - 1,3033,1,507,1397,3736,441,1,1,5237, - 1,5237,4984,5237,4984,124,5244,43,4865,4862, - 3492,728,3791,3865,3033,3887,5245,813,2985,2958, - 3843,3821,5506,5504,5513,5512,5508,5509,5507,5510, - 5511,5514,5505,3931,3909,117,314,5260,1054,3512, - 1310,1167,1272,5262,1185,1347,1212,5263,5261,1133, - 1079,5256,5258,5259,5257,1,4858,4854,4489,931, - 655,2587,3033,2678,312,2679,312,1397,3736,53, - 147,4865,4862,3492,728,3791,3865,3033,3887,5244, - 813,163,145,3843,3821,5506,5504,5513,5512,5508, - 5509,5507,5510,5511,5514,5505,3931,3909,1389,5237, - 5260,1054,1268,1,1167,1272,5262,1185,1347,1212, - 5263,5261,1133,304,5256,5258,5259,5257,1,4999, - 4999,5237,4996,5540,1514,3975,5568,364,2760,97, - 1397,3997,5013,5237,43,43,1,5068,5064,3492, - 5072,3791,3865,3033,3887,5237,5028,5237,1901,3843, - 3821,5055,5061,5034,5037,5049,5046,5052,5043,5040, - 5031,5058,3931,3909,5237,242,5260,1054,5095,2935, - 1167,1272,5262,1185,1347,1212,5263,5261,1133,191, - 5256,5258,5259,5257,2288,5237,4865,4862,1,728, - 5019,364,3033,293,5254,5255,1397,364,5597,3494, - 43,43,43,4865,4862,3492,728,3791,3865,3033, - 3887,5241,813,364,1369,3843,3821,5506,5504,5513, - 5512,5508,5509,5507,5510,5511,5514,5505,3931,3909, - 43,54,5260,1054,5279,5255,1167,1272,5262,1185, - 1347,1212,5263,5261,1133,425,5256,5258,5259,5257, - 43,4865,4862,3492,728,3791,3865,3033,3887,5255, - 813,364,2809,3843,3821,5506,5504,5513,5512,5508, - 5509,5507,5510,5511,5514,5505,3931,3909,142,1, - 5260,1054,4789,364,1167,1272,5262,1185,1347,1212, - 5263,5261,1133,304,5256,5258,5259,5257,442,43, - 43,5234,5279,5540,5125,5237,5122,54,5113,5110, - 1397,3736,1,4858,4854,4489,2646,655,5237,3033, - 5240,43,4865,4862,3492,728,3791,3865,3033,3887, - 5237,813,5237,4265,3843,3821,5506,5504,5513,5512, - 5508,5509,5507,5510,5511,5514,5505,3931,3909,5237, - 3214,5260,1054,5237,5237,1167,1272,5262,1185,1347, - 1212,5263,5261,1133,5237,5256,5258,5259,5257,1, - 1,126,1126,121,5703,5697,5237,5701,2358,3600, - 4848,1397,5695,5696,2985,2958,41,5152,5152,228, - 81,5152,4383,3163,5237,5726,5727,5706,43,576, - 5704,5499,5279,1943,5506,5504,5513,5512,5508,5509, - 5507,5510,5511,5514,5505,3028,5305,5306,5237,5113, - 5110,5502,5575,512,5237,584,5237,5254,5255,4851, - 1546,5707,5576,1596,1604,5705,5728,5496,5503,5475, - 5501,5500,5497,5498,5476,5237,3429,98,1,1, - 5237,1,4781,5149,5247,5149,5246,5717,5716,5729, - 5698,5699,5722,5723,3577,3548,5720,5721,5700,5702, - 5724,5725,40,5188,5185,5730,5710,5711,5712,5708, - 5709,5718,5719,5714,5713,5715,5237,3377,5237,1126, - 874,5703,5697,5237,5701,3318,662,5237,123,5695, - 5696,5669,5670,5671,3600,294,230,395,4865,4862, - 799,5279,5726,5727,5706,5237,4786,5704,5499,101, - 43,43,5237,5279,5247,5203,5246,5200,1,4858, - 4854,5134,5237,5137,5237,5140,43,3626,5502,5575, - 122,5237,584,5237,8511,8511,3600,3021,5707,5576, - 1596,1604,5705,5728,5496,5503,5475,5501,5500,5497, - 5498,5476,42,4978,4975,5237,8010,7552,5636,916, - 3380,2027,5277,5237,5717,5716,5729,5698,5699,5722, - 5723,5237,4340,5720,5721,5700,5702,5724,5725,3577, - 3548,5237,5730,5710,5711,5712,5708,5709,5718,5719, - 5714,5713,5715,43,4865,4862,3492,728,3791,3865, - 3033,3887,5237,813,5237,4091,3843,3821,5506,5504, - 5513,5512,5508,5509,5507,5510,5511,5514,5505,3931, - 3909,3577,3548,5260,1054,5689,292,1167,1272,5262, - 1185,1347,1212,5263,5261,1133,5237,5256,5258,5259, - 5257,5237,8010,7552,5237,5243,1,4157,125,983, - 43,4865,4862,3492,728,3791,3865,3033,3887,423, - 813,2985,2958,3843,3821,5506,5504,5513,5512,5508, - 5509,5507,5510,5511,5514,5505,3931,3909,5237,54, - 5260,1054,5237,5254,1167,1272,5262,1185,1347,1212, - 5263,5261,1133,1771,5256,5258,5259,5257,43,4865, - 4862,4744,728,3791,3865,3033,3887,5254,813,5242, - 1397,3843,3821,5506,5504,5513,5512,5508,5509,5507, - 5510,5511,5514,5505,3931,3909,3286,5237,5260,1054, - 5237,5237,1167,1272,5262,1185,1347,1212,5263,5261, - 1133,4045,5256,5258,5259,5257,43,4865,4862,3492, - 728,3791,3865,3033,3887,120,813,5237,1472,3843, - 3821,5506,5504,5513,5512,5508,5509,5507,5510,5511, - 5514,5505,3931,3909,5237,132,5260,1054,45,5237, - 1167,1272,5262,1185,1347,1212,5263,5261,1133,5675, - 5256,5258,5259,5257,43,4865,4862,3492,728,3791, - 3865,3033,3887,2555,813,5237,5010,3843,3821,5506, - 5504,5513,5512,5508,5509,5507,5510,5511,5514,5505, - 3931,3909,1,5237,5260,1054,4229,5237,1167,1272, - 5262,1185,1347,1212,5263,5261,1133,4981,5256,5258, - 5259,5257,5237,4865,4862,3975,5279,41,5146,5146, - 1472,3997,721,5237,5499,134,5237,5506,5504,5513, - 5512,5508,5509,5507,5510,5511,5514,5505,2501,2474, - 5237,119,133,118,5502,5575,2882,51,5158,5158, - 1980,5237,376,2555,2744,5576,5237,5237,5181,5177, - 5496,5503,5475,5501,5500,5497,5498,5476,5237,576, - 2555,5633,5237,246,4959,4955,5155,4963,5237,5237, - 572,5634,5635,721,3463,4910,5277,5116,4946,4952, - 4925,4928,4940,4937,4943,4934,4931,4922,4949,2700, - 5237,1,3687,5237,5119,4901,4895,445,5237,5241, - 167,5237,5237,5746,5770,907,4892,5243,2501,2474, - 5245,4919,4898,4889,4904,4907,4916,4913,4886,1, - 4082,3975,5633,3975,5237,2501,2474,3997,5247,3997, - 5246,572,5634,5635,36,387,387,5098,387,387, - 5098,387,5098,5101,5237,5098,387,1,5194,5194, - 233,5194,233,233,233,233,5197,5237,233,8536, - 1,3318,5237,3274,167,4791,387,387,1218,4880, - 1,5242,1,5244,417,5237,5191,387,3164,5215, - 5237,5243,387,387,387,387,387,387,387,387, - 5101,1,5194,5194,233,5194,233,233,233,233, - 5209,529,233,8536,2634,1562,1,5101,5240,1, - 3043,5237,1,79,3631,197,1310,197,525,225, - 5191,169,5734,1,5194,5194,233,5194,233,233, - 233,233,233,4883,233,8536,109,5237,5237,4189, - 2151,5206,5244,5237,283,5242,3078,5212,2634,1562, - 5237,2744,5191,3470,3043,1,1,39,5237,5237, - 446,3046,4425,224,5237,4848,5734,1,5194,5194, - 233,5194,233,233,233,233,5197,5237,233,8536, - 2634,1562,525,231,576,169,3043,5237,5237,5237, - 3624,311,4074,5237,5237,5499,5191,2877,5734,1, - 5194,5194,233,5194,233,233,233,233,5197,2114, - 233,8536,518,5237,4851,5502,5575,3650,5237,5237, - 5237,4075,3457,3221,2634,1562,5576,3022,5191,5421, - 3043,5496,5503,5475,5501,5500,5497,5498,5476,225, - 2,5237,5734,1,5194,5194,233,5194,233,233, - 233,233,233,5237,233,8536,2634,1562,4353,3096, - 5237,5237,3043,4444,5420,1,5237,5237,41,5237, - 5237,225,5191,5237,5734,1,5194,5194,233,5194, - 233,233,233,233,233,5237,233,8536,5237,5237, - 5237,232,5237,5237,5237,3035,1,5237,5237,3274, - 2634,1562,5237,5499,5191,342,3043,3221,1,5194, - 5194,233,5194,233,233,233,233,233,5734,233, - 8536,5237,5237,5502,5575,5237,5237,1985,5237,5237, - 5237,3318,2634,1562,5576,5237,5237,5191,3043,5496, - 5503,5475,5501,5500,5497,5498,5476,5237,5237,5237, - 5734,5237,1310,5237,5237,5237,5237,5237,342,5237, - 5237,5237,5237,342,5237,2634,1562,5237,5237,342, - 5237,3043,5237,5237,5237,5237,5237,5237,5237,5237, - 5237,5237,5237,5734,5237,5237,5237,5237,5237,5237, - 5237,5237,5237,5237,5237,5237,5237,5237,5237,5237, - 5237,5237,5237,5237,5237,5237,5237,5237,5237,5237, - 5237,5237,5237,5237,5237,5237,5237,342 + 1,1,1,1,1,1,119,1742,1,2171, + 1,2830,123,1,1,5201,5212,5201,3661,1, + 1,1,143,5201,5384,1979,3079,3176,2211,3021, + 2959,2957,3046,928,3024,778,3016,45,4819,4816, + 2958,920,3703,3933,456,2565,3955,2945,3328,3911, + 3881,5465,5472,5470,5479,5478,5474,5475,5473,5476, + 5477,5480,5471,3999,3977,5201,5226,1058,504,908, + 1014,5228,958,631,977,5229,5227,906,5468,5222, + 5224,5225,5223,5541,5542,5462,5469,5441,5467,5466, + 5463,5464,5442,35,145,1353,4043,5598,1,3216, + 4941,2719,4065,3638,3587,4834,2596,5599,5600,5201, + 5036,5036,235,5032,235,235,5040,235,235,1, + 235,1653,2332,1,1,1,1,1,1,1, + 1,1,1,1,1,3485,3109,1,4953,4953, + 5029,4950,373,1695,366,5201,5534,5201,4819,4816, + 1,5245,5205,5201,1315,1,1,1,1,1, + 1,1,1,1,1,422,2757,5201,1995,1, + 455,4837,5201,5220,5221,5201,5201,415,1,1, + 1,235,5213,5612,348,4960,4956,2775,5245,729, + 1695,316,2565,5534,3839,2299,5699,5201,5036,5036, + 235,5032,235,235,5097,235,235,1,235,1186, + 366,1,1,1,1,1,1,1,1,1, + 1,1,1,5634,5635,5636,4944,2259,5029,5201, + 4819,4816,366,920,4973,4021,1406,2565,1,231, + 1315,5212,5201,1,1,1,1,1,1,1, + 1,1,1,5465,2757,45,1995,1,1082,5245, + 933,1695,126,5204,5534,414,1,1,1,235, + 39,5612,5201,4947,3436,3411,4947,4947,5201,4947, + 5468,4947,4947,4947,5699,5541,5542,5462,5469,5441, + 5467,5466,5463,5464,5442,122,4947,4947,4947,139, + 230,5201,4960,4956,4506,5245,729,1695,2363,2565, + 5534,5634,5635,5636,5465,5472,5470,5479,5478,5474, + 5475,5473,5476,5477,5480,5471,4947,147,1,4812, + 4808,2775,4947,729,2624,4947,2565,4947,4947,129, + 2637,5468,4947,4947,128,5201,5541,5542,5462,5469, + 5441,5467,5466,5463,5464,5442,3436,3411,4947,4947, + 4947,4947,4947,4947,4947,4947,4947,4947,4947,4947, + 4947,4947,4947,4947,4947,4947,4947,4947,4947,4947, + 4947,4947,4947,4947,1315,4043,5201,4947,4947,4970, + 4947,4065,4970,4970,1830,4970,5201,4970,4970,4970, + 5201,5126,5121,4506,4950,729,5118,675,2565,5115, + 2720,45,4970,4970,4970,5245,232,314,5126,5121, + 4506,4950,729,5118,1653,2565,5115,2877,2903,2262, + 5465,1788,1746,1704,1662,1620,1578,1536,1494,1452, + 1410,5201,4970,5201,3236,5201,5220,5221,4970,5201, + 3562,4970,1947,4970,4970,5201,5211,5468,4970,4970, + 5210,5201,5541,5542,5462,5469,5441,5467,5466,5463, + 5464,5442,2035,1,4970,4970,4970,4970,4970,4970, + 4970,4970,4970,4970,4970,4970,4970,4970,4970,4970, + 4970,4970,4970,4970,4970,4970,4970,4970,4970,4970, + 396,5220,5221,4970,4970,2645,4970,1,5022,5018, + 2958,5026,3703,3933,4375,2565,3955,4982,5201,3911, + 3881,339,5009,5015,4988,4991,5003,5000,5006,4997, + 4994,4985,5012,3999,3977,147,5226,1058,5201,908, + 1014,5228,958,631,977,5229,5227,906,3802,5222, + 5224,5225,5223,378,44,4932,4929,348,45,45, + 2719,5245,872,1695,530,1353,5534,5541,5542,514, + 45,45,45,4819,4816,2958,920,3703,3933,3248, + 2565,3955,568,141,3911,3881,5201,5472,5470,5479, + 5478,5474,5475,5473,5476,5477,5480,5471,3999,3977, + 4343,5226,1058,2720,908,1014,5228,958,631,977, + 5229,5227,906,1315,5222,5224,5225,5223,1,4812, + 4808,5088,2840,5091,371,5211,5094,5201,5201,5210, + 1353,1,4812,4808,4506,5209,729,2262,5212,2565, + 5208,45,4819,4816,2958,920,3703,3933,3248,2565, + 3955,568,3236,3911,3881,437,5472,5470,5479,5478, + 5474,5475,5473,5476,5477,5480,5471,3999,3977,426, + 5226,1058,3109,908,1014,5228,958,631,977,5229, + 5227,906,592,5222,5224,5225,5223,1,4812,4808, + 4506,1231,729,1015,314,2565,5208,508,314,1353, + 5201,4819,4816,2035,920,729,5201,5212,2565,5208, + 149,4819,4816,2958,920,3703,3933,365,2565,3955, + 568,165,3911,3881,144,5472,5470,5479,5478,5474, + 5475,5473,5476,5477,5480,5471,3999,3977,133,5226, + 1058,2805,908,1014,5228,958,631,977,5229,5227, + 906,5201,5222,5224,5225,5223,140,5201,5201,4819, + 4816,3368,920,4973,577,2363,2565,146,1353,5634, + 5635,5636,142,45,45,1,5022,5018,2958,5026, + 3703,3933,3611,2565,3955,4982,1872,3911,3881,997, + 5009,5015,4988,4991,5003,5000,5006,4997,4994,4985, + 5012,3999,3977,5201,5226,1058,121,908,1014,5228, + 958,631,977,5229,5227,906,132,5222,5224,5225, + 5223,5201,4819,4816,2332,5245,2877,2903,5213,1, + 4812,4808,4506,1353,729,5201,5201,2565,45,45, + 45,4819,4816,2958,920,3703,3933,5213,2565,3955, + 568,296,3911,3881,5201,5472,5470,5479,5478,5474, + 5475,5473,5476,5477,5480,5471,3999,3977,2299,5226, + 1058,592,908,1014,5228,958,631,977,5229,5227, + 906,306,5222,5224,5225,5223,5201,5212,442,1, + 1,5506,1,47,4938,5201,4043,4938,1353,5201, + 4819,4816,4065,5245,2877,2903,5212,45,4819,4816, + 2958,920,3703,3933,5205,2565,3955,568,1998,3911, + 3881,4964,5472,5470,5479,5478,5474,5475,5473,5476, + 5477,5480,5471,3999,3977,5201,5226,1058,2577,908, + 1014,5228,958,631,977,5229,5227,906,5654,5222, + 5224,5225,5223,45,4819,4816,2958,920,3703,3933, + 5201,2565,3955,568,5201,3911,3881,5207,5472,5470, + 5479,5478,5474,5475,5473,5476,5477,5480,5471,3999, + 3977,5201,5226,1058,3503,908,1014,5228,958,631, + 977,5229,5227,906,233,5222,5224,5225,5223,5201, + 1,1,3749,1130,125,5668,5662,1914,5465,5666, + 3661,1353,5660,5661,370,4812,4808,2775,1,729, + 1,513,2565,1,5201,5204,5691,5692,5671,1653, + 5669,83,5201,5206,3152,5468,5601,51,4979,4979, + 5541,5542,5462,5469,5441,5467,5466,5463,5464,5442, + 395,396,4819,4816,388,5245,1441,5271,5272,5201, + 5220,5221,5672,1701,1708,5693,5213,5670,4976,5201, + 1315,294,1,4812,4808,2775,5209,729,1653,4834, + 2565,1138,45,5201,4926,4923,875,3142,5682,5681, + 5694,5663,5664,5687,5688,3638,3587,5685,5686,5665, + 5667,5689,5690,5695,5675,5676,5677,5673,5674,5683, + 5684,5679,5678,5680,5201,5201,5201,1130,124,5668, + 5662,5201,306,5666,3661,5212,5660,5661,1315,443, + 45,45,5506,5245,659,5079,1053,5208,5076,234, + 5691,5692,5671,2647,5669,4837,4021,1406,5201,5220, + 5221,797,2656,5465,5201,4819,4816,5201,920,729, + 45,404,2565,5201,5245,100,1,1,5082,1, + 1441,5103,5085,5201,5103,5201,5672,1701,1708,5693, + 5468,5670,5201,4926,4923,5541,5542,5462,5469,5441, + 5467,5466,5463,5464,5442,56,4926,4923,295,5220, + 5221,1126,5682,5681,5694,5663,5664,5687,5688,3638, + 3587,5685,5686,5665,5667,5689,5690,5695,5675,5676, + 5677,5673,5674,5683,5684,5679,5678,5680,45,4819, + 4816,2958,920,3703,3933,1,2565,3955,568,5201, + 3911,3881,169,5472,5470,5479,5478,5474,5475,5473, + 5476,5477,5480,5471,3999,3977,5201,5226,1058,5201, + 908,1014,5228,958,631,977,5229,5227,906,5201, + 5222,5224,5225,5223,5634,5635,5636,45,4819,4816, + 2958,920,3703,3933,1498,2565,3955,568,5201,3911, + 3881,4173,5472,5470,5479,5478,5474,5475,5473,5476, + 5477,5480,5471,3999,3977,446,5226,1058,169,908, + 1014,5228,958,631,977,5229,5227,906,5640,5222, + 5224,5225,5223,5201,45,4819,4816,3145,920,3703, + 3933,5711,2565,3955,568,1353,3911,3881,5201,5472, + 5470,5479,5478,5474,5475,5473,5476,5477,5480,5471, + 3999,3977,5201,5226,1058,4431,908,1014,5228,958, + 631,977,5229,5227,906,5201,5222,5224,5225,5223, + 45,4819,4816,2958,920,3703,3933,625,2565,3955, + 568,5201,3911,3881,1527,5472,5470,5479,5478,5474, + 5475,5473,5476,5477,5480,5471,3999,3977,5201,5226, + 1058,3632,908,1014,5228,958,631,977,5229,5227, + 906,5201,5222,5224,5225,5223,45,4819,4816,2958, + 920,3703,3933,1,2565,3955,568,4151,3911,3881, + 366,5472,5470,5479,5478,5474,5475,5473,5476,5477, + 5480,5471,3999,3977,5201,5226,1058,4469,908,1014, + 5228,958,631,977,5229,5227,906,5201,5222,5224, + 5225,5223,5201,4819,4816,131,5245,5201,5046,5043, + 418,424,865,56,5067,5064,5465,5472,5470,5479, + 5478,5474,5475,5473,5476,5477,5480,5471,103,45, + 45,5201,5245,127,5157,2058,366,5154,5243,1, + 4812,4808,5088,5468,5091,3436,3411,5094,5541,5542, + 5462,5469,5441,5467,5466,5463,5464,5442,366,5201, + 8560,8560,5598,56,248,4913,4909,5221,4917,2086, + 108,2596,5599,5600,865,120,4323,2123,4864,4900, + 4906,4879,4882,4894,4891,4897,4888,4885,4876,4903, + 5243,5221,5201,2877,2903,35,388,388,5058,388, + 388,5058,5061,388,5058,4855,5058,130,107,388, + 4849,4846,4873,4852,4843,4858,4861,4870,4867,4840, + 5201,5220,5221,4831,5598,729,4500,5201,2565,5201, + 5067,5064,5201,2596,5599,5600,388,42,5142,5139, + 5201,388,388,388,388,388,388,388,388,388, + 388,5061,38,389,389,5052,389,389,5052,5055, + 389,5052,5201,5052,2174,4043,389,5201,5061,134, + 1,4065,111,5201,5207,4590,2841,5169,1,5148, + 5148,235,5148,235,235,5151,235,235,519,235, + 3742,5201,8581,389,81,2877,2903,2529,389,389, + 389,389,389,389,389,389,389,389,5055,5145, + 1,5148,5148,235,5148,235,235,235,235,235, + 1306,235,5160,285,8581,5055,5166,1,43,5106, + 5106,4935,4671,5106,5172,2973,5212,2171,2647,2830, + 5206,5145,43,5100,5100,5201,227,1,5148,5148, + 235,5148,235,235,5163,235,235,5201,235,3571, + 41,8581,2475,2448,5211,5699,56,2973,5210,2171, + 5220,2830,5201,3558,4176,136,2525,135,5145,1, + 5148,5148,235,5148,235,235,5151,235,235,1, + 235,1,5201,8581,5220,5208,5207,5699,5211,5201, + 447,1,5210,2529,2973,2529,2171,3109,2830,1127, + 5145,4802,53,5112,5112,226,313,1,5148,5148, + 235,5148,235,235,5151,235,235,2789,235,5201, + 566,8581,566,5201,5699,5201,2973,5070,2171,5073, + 2830,5201,193,5109,5201,5135,5131,227,5145,1, + 5148,5148,235,5148,235,235,235,235,235,1268, + 235,4805,5206,8581,5201,3113,5699,4230,2475,2448, + 2475,2448,12,5735,2973,5243,2171,1,2830,5195, + 5145,4398,5201,8,526,227,1,5148,5148,235, + 5148,235,235,235,235,235,1,235,1,2719, + 8581,5387,1,344,5699,199,2973,3022,2171,199, + 2830,5201,4802,5201,8382,8179,1,5145,1,5148, + 5148,235,5148,235,235,235,235,235,1,235, + 5201,5201,8581,566,4702,171,5699,8,5201,5201, + 5195,3206,3267,2973,2,2171,5201,2830,5201,5145, + 526,2944,1315,5201,8382,8179,5201,5201,344,4459, + 3512,344,4805,5201,5198,1,4704,5201,5201,344, + 5201,5201,43,5699,5201,2973,5201,2171,5201,2830, + 5201,5201,5201,5386,5201,5201,5201,5201,5201,5201, + 5201,5201,5201,5201,2823,5201,5201,2789,5201,5201, + 5201,171,5201,5201,5201,5699,5201,5201,5201,5201, + 5201,4349,5201,1956,5201,5201,5201,344 }; }; public final static char termAction[] = TermAction.termAction; @@ -1664,59 +1657,59 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface Asb { public final static char asb[] = {0, - 11,525,376,426,426,339,522,522,339,149, - 149,596,438,149,454,819,339,65,447,447, - 227,1,2,108,108,105,655,655,527,105, - 655,475,782,710,721,888,721,883,721,16, - 721,705,721,784,105,782,477,426,465,376, - 376,376,376,784,465,637,49,639,66,66, - 66,66,66,66,66,66,66,658,664,669, - 666,673,671,678,676,680,679,681,271,682, - 65,65,268,696,481,481,1066,786,121,121, - 652,268,513,655,655,376,655,121,513,513, - 479,438,105,648,323,323,105,887,368,886, - 372,834,378,105,105,105,368,454,479,522, - 49,149,149,149,149,105,599,558,657,513, - 513,49,984,148,1066,49,658,876,876,599, - 65,66,66,66,66,66,66,66,66,66, - 66,66,66,66,66,66,66,66,66,66, - 65,65,65,65,65,65,65,65,65,65, - 65,65,66,481,481,103,1065,121,121,782, - 268,268,121,513,7,449,424,648,323,323, - 887,373,887,368,887,378,378,105,368,105, - 102,513,513,597,597,597,597,368,513,65, - 66,383,390,728,728,784,639,268,148,65, - 103,513,102,104,102,513,268,666,666,664, - 664,664,671,671,671,671,669,669,676,673, - 673,679,678,680,119,681,513,513,786,105, - 597,596,597,652,597,516,788,648,647,435, - 105,323,119,17,376,370,977,1072,323,435, - 887,887,467,105,378,435,433,434,105,105, - 465,465,465,465,105,105,65,105,1066,66, - 149,662,181,513,104,1066,65,516,821,1065, - 49,516,648,1066,838,834,597,376,102,117, - 1074,99,465,832,176,468,105,435,66,105, - 65,65,65,65,465,465,368,103,513,662, - 782,786,105,103,516,821,518,103,838,838, - 892,339,103,118,118,99,701,782,218,66, - 119,222,467,105,784,784,105,513,513,513, - 513,599,599,105,662,663,662,65,181,321, - 658,786,518,823,518,702,435,1025,1027,312, - 465,17,928,838,838,339,103,118,834,784, - 1074,99,66,66,105,105,105,513,513,763, - 662,599,66,268,321,518,823,465,891,312, - 1025,644,784,435,596,702,834,29,833,105, - 465,105,105,663,513,268,482,892,838,702, - 221,701,513,784,105,892,936,30,784,105, - 599,450,838,65,940,99,702,105,105,936, - 29,119,66,119,702,465,465,465,30,465, - 105,278,702,702,105,834,513,149,435,513, - 938,105,702,21,465,21,119,30,49,49, - 47,836,49,702,702,225,936,938,702,788, - 513,99,513,47,312,465,513,936,434,513, - 513,776,30,225,30,702,312,65,30,27, - 938,834,834,778,65,28,599,702,513,30, - 513,702,30 + 11,572,336,75,75,299,569,569,299,251, + 251,552,578,251,643,900,299,392,587,587, + 127,1,2,16,16,432,709,709,483,432, + 709,594,1069,997,1008,773,1008,555,1008,557, + 1008,992,1008,1071,432,1069,596,75,654,336, + 336,336,336,1071,654,694,376,696,393,393, + 393,393,393,393,393,393,393,712,718,723, + 720,727,725,732,730,734,733,735,171,736, + 392,392,168,750,600,600,986,1073,223,223, + 706,168,632,709,709,336,709,223,632,632, + 598,578,432,702,283,432,772,328,338,332, + 773,343,432,432,432,328,643,598,569,376, + 251,251,251,251,432,656,514,711,632,632, + 376,902,250,986,376,712,862,862,656,392, + 393,393,393,393,393,393,393,393,393,393, + 393,393,393,393,393,393,393,393,393,392, + 392,392,392,392,392,392,392,392,392,392, + 392,393,600,600,430,985,223,223,1069,168, + 168,223,632,7,589,476,702,283,772,333, + 772,328,772,343,343,432,328,432,429,632, + 632,553,553,553,553,328,632,392,393,435, + 442,1015,1015,1071,696,168,250,392,430,632, + 429,431,429,632,168,720,720,718,718,718, + 725,725,725,725,723,723,730,727,727,733, + 732,734,1085,735,632,632,1073,432,553,552, + 553,706,553,563,869,702,701,480,432,283, + 1085,558,336,330,817,1075,283,772,772,635, + 432,343,480,478,479,432,432,654,654,654, + 654,432,432,392,432,986,393,251,716,29, + 632,431,986,392,563,761,985,376,563,702, + 986,824,773,553,336,429,771,1077,426,654, + 574,278,636,432,480,393,432,392,392,392, + 392,654,654,328,430,632,716,1069,1073,432, + 430,563,761,565,430,824,824,83,299,430, + 772,772,426,755,1069,66,393,1085,70,635, + 432,1071,1071,432,632,632,632,632,656,656, + 432,716,717,716,392,29,221,712,1073,565, + 763,565,756,480,943,947,212,654,558,119, + 824,824,299,430,772,773,1071,1077,426,393, + 393,432,432,432,632,632,1050,716,656,393, + 168,221,565,763,654,82,212,943,25,1071, + 480,552,756,773,356,574,432,654,432,432, + 717,632,168,601,83,824,756,69,755,632, + 1071,432,83,945,357,1071,432,656,590,824, + 392,779,426,756,432,432,945,356,1085,393, + 1085,756,355,654,654,654,357,654,432,178, + 756,756,432,773,632,251,480,632,778,432, + 756,348,654,348,1085,357,376,376,374,759, + 376,756,756,73,945,778,756,869,632,426, + 632,374,212,654,632,945,479,776,632,632, + 1063,357,73,357,756,212,392,357,354,778, + 773,773,1065,392,355,656,756,632,357,632, + 756,357 }; }; public final static char asb[] = Asb.asb; @@ -1724,115 +1717,115 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface Asr { public final static byte asr[] = {0, - 3,62,66,67,121,56,9,73,95,0, - 59,10,29,74,0,4,1,2,61,0, - 75,103,104,105,29,71,119,122,72,74, - 76,58,57,63,78,80,86,84,77,82, - 83,85,87,61,79,81,11,9,48,59, - 33,68,49,12,50,51,52,53,54,69, - 55,70,32,43,60,64,65,10,35,39, - 37,34,42,16,25,15,21,19,20,22, - 23,18,17,24,44,47,45,46,30,41, - 36,40,26,27,13,14,31,38,8,6, - 3,4,7,5,1,2,0,9,3,62, - 95,66,67,73,11,56,76,61,71,0, - 34,64,35,36,65,7,37,38,39,40, - 60,41,42,44,45,46,30,26,27,8, - 6,13,14,5,31,62,47,3,48,15, - 16,59,33,17,68,49,12,18,50,51, - 19,20,52,53,21,22,54,69,55,10, - 70,23,24,43,25,1,2,4,32,0, - 96,90,13,14,91,92,88,89,62,93, - 94,97,98,99,100,101,102,117,95,107, - 108,109,110,111,112,113,114,115,116,118, - 73,72,1,2,4,8,6,71,56,28, - 3,9,67,11,66,0,64,65,3,10, - 35,39,37,34,42,16,25,15,21,19, - 20,22,23,18,17,24,44,47,45,46, - 30,41,36,40,5,7,4,26,27,8, - 6,13,14,31,38,1,2,118,9,0, - 62,71,95,67,118,73,72,15,16,34, - 64,17,35,36,18,19,20,65,37,21, - 22,38,39,40,60,41,42,10,23,24, - 25,44,45,46,30,26,27,13,14,31, - 47,9,8,6,4,11,1,2,7,3, - 5,0,75,57,7,103,104,105,58,9, - 3,8,6,5,71,72,11,74,48,15, - 16,59,33,17,68,49,12,18,50,51, - 19,20,52,53,21,22,54,69,55,10, - 70,23,32,24,43,25,4,1,2,29, - 0,4,9,61,71,28,0,1,2,9, - 72,0,9,71,118,73,11,67,0,48, - 15,16,33,17,49,12,18,50,51,19, - 20,52,7,53,21,22,54,55,23,32, - 24,43,25,1,2,9,56,8,5,4, - 73,11,3,6,0,62,66,67,121,1, - 2,0,66,67,72,9,0,8,6,4, - 3,5,7,56,1,2,62,66,95,73, - 9,67,0,9,62,67,73,121,1,2, - 8,6,4,56,3,0,32,1,2,4, - 103,104,105,0,7,5,3,56,6,8, - 95,48,15,16,59,33,17,68,49,12, - 18,50,51,19,20,52,53,21,22,54, - 69,55,10,70,23,32,24,43,25,1, - 2,4,73,9,0,33,43,60,9,95, - 73,62,67,66,121,0,48,15,16,59, - 33,17,68,49,12,18,50,51,19,20, - 52,53,21,22,54,69,55,10,70,23, - 32,24,43,25,1,2,4,65,64,13, - 14,6,91,92,99,8,100,5,31,66, - 28,110,111,107,108,109,115,114,116,89, - 88,112,113,97,98,93,94,101,102,26, - 27,90,106,3,56,67,62,0,9,73, - 15,16,34,17,35,36,18,19,20,37, - 21,22,38,39,40,60,41,42,10,23, - 24,25,44,45,46,30,3,26,27,8, - 6,13,14,31,4,47,5,7,1,2, - 65,64,0,61,66,0,60,33,7,43, - 5,1,2,4,76,61,121,120,106,26, - 27,56,3,96,90,6,91,92,13,14, - 89,88,28,93,94,97,98,8,99,100, - 101,62,95,73,66,107,108,109,110,111, - 112,113,114,115,116,71,118,72,102,117, - 67,11,9,0,10,68,59,69,70,16, - 25,15,21,19,20,22,23,18,17,24, - 76,61,71,95,118,72,121,120,96,106, - 90,26,27,13,14,91,92,88,89,28, - 62,93,94,97,98,99,100,101,102,117, - 66,107,108,109,110,111,112,113,114,115, - 116,67,48,33,49,12,50,51,52,53, - 54,55,32,43,11,9,73,3,56,7, - 5,6,8,1,2,4,0,48,15,16, - 33,17,68,49,12,18,50,51,19,20, - 52,53,21,22,54,69,55,10,70,23, - 32,24,43,25,1,2,4,95,59,0, - 33,43,60,76,3,62,71,95,66,73, - 11,9,67,61,0,77,0,63,48,15, - 16,59,33,17,68,49,75,12,18,50, - 51,19,20,52,57,53,21,22,54,69, - 55,10,70,23,58,32,24,43,25,9, - 3,8,6,72,11,7,4,29,5,1, - 2,0,29,1,2,4,71,61,9,0, - 61,59,33,17,68,49,18,50,51,19, - 20,52,53,21,22,54,69,55,70,23, - 32,24,43,25,16,15,48,9,3,8, - 6,11,58,63,75,12,29,7,1,2, - 5,4,10,57,0,119,0,9,72,64, - 65,60,26,27,8,6,13,14,31,38, - 3,44,47,45,46,30,41,36,40,16, - 25,15,21,19,20,22,23,18,17,24, - 35,39,37,34,42,61,7,1,2,5, - 4,10,0,64,65,26,27,8,6,13, - 14,5,31,38,3,4,7,44,47,45, - 46,41,36,40,16,25,15,21,19,20, - 22,23,18,17,24,10,35,39,37,34, - 42,56,1,2,30,0,59,33,17,68, + 3,62,67,65,121,56,7,73,95,0, + 60,10,31,74,0,75,3,62,72,95, + 65,73,11,56,7,66,67,0,96,90, + 12,13,91,92,88,89,62,93,94,97, + 98,99,100,101,102,117,95,104,105,106, + 107,108,109,110,111,112,113,118,73,68, + 1,2,4,9,6,72,56,28,3,7, + 65,11,67,0,62,67,65,121,1,2, + 0,66,60,46,17,69,49,18,50,51, + 19,20,52,53,21,22,54,70,55,71, + 23,41,24,47,25,16,15,48,7,3, + 9,6,11,59,61,87,14,31,8,1, + 2,5,4,10,57,0,63,64,3,10, + 33,37,35,32,40,16,25,15,21,19, + 20,22,23,18,17,24,42,45,43,44, + 29,39,34,38,5,8,4,26,27,9, + 6,12,13,30,36,1,2,118,7,0, + 62,72,95,65,118,73,68,15,16,32, + 63,17,33,34,18,19,20,64,35,21, + 22,36,37,38,58,39,40,10,23,24, + 25,42,43,44,29,26,27,12,13,30, + 45,7,9,6,4,11,1,2,8,3, + 5,0,32,63,33,34,64,8,35,36, + 37,38,58,39,40,42,43,44,29,26, + 27,9,6,12,13,5,30,62,45,3, + 48,15,16,60,46,17,69,49,14,18, + 50,51,19,20,52,53,21,22,54,70, + 55,10,71,23,24,47,25,1,2,4, + 41,0,87,57,8,114,115,116,59,7, + 3,9,6,5,72,68,11,74,48,15, + 16,60,46,17,69,49,14,18,50,51, + 19,20,52,53,21,22,54,70,55,10, + 71,23,41,24,47,25,4,1,2,31, + 0,4,7,72,66,28,0,4,7,72, + 66,0,1,2,7,68,0,87,114,115, + 116,31,72,119,122,68,74,75,59,57, + 61,77,79,85,83,76,81,82,84,86, + 66,78,80,11,7,48,60,46,69,49, + 14,50,51,52,53,54,70,55,71,41, + 47,58,63,64,10,33,37,35,32,40, + 16,25,15,21,19,20,22,23,18,17, + 24,42,45,43,44,29,39,34,38,26, + 27,12,13,30,36,9,6,3,4,8, + 5,1,2,0,7,72,118,73,11,65, + 0,48,15,16,46,17,49,14,18,50, + 51,19,20,52,8,53,21,22,54,55, + 23,41,24,47,25,1,2,7,56,9, + 5,4,73,11,3,6,0,67,65,68, + 7,0,48,15,16,60,46,17,69,49, + 14,18,50,51,19,20,52,53,21,22, + 54,70,55,10,71,23,41,24,47,25, + 1,2,4,64,63,12,13,6,91,92, + 99,9,100,5,30,67,28,107,108,104, + 105,106,112,111,113,89,88,109,110,97, + 98,93,94,101,102,26,27,90,103,3, + 56,65,62,0,31,72,4,66,7,1, + 2,0,46,47,58,7,95,73,62,65, + 67,121,0,7,66,65,0,9,6,4, + 3,5,8,56,1,2,62,67,95,73, + 7,65,0,8,5,3,56,6,9,95, + 48,15,16,60,46,17,69,49,14,18, + 50,51,19,20,52,53,21,22,54,70, + 55,10,71,23,41,24,47,25,1,2, + 4,73,7,0,41,1,2,4,114,115, + 116,0,7,62,65,73,121,1,2,9, + 6,4,56,3,0,7,73,15,16,32, + 17,33,34,18,19,20,35,21,22,36, + 37,38,58,39,40,10,23,24,25,42, + 43,44,29,3,26,27,9,6,12,13, + 30,4,45,5,8,1,2,64,63,0, + 58,46,8,47,5,1,2,4,75,66, + 121,120,103,26,27,56,3,96,90,6, + 91,92,12,13,89,88,28,93,94,97, + 98,9,99,100,101,62,95,73,67,104, + 105,106,107,108,109,110,111,112,113,72, + 118,68,102,117,65,11,7,0,76,0, + 46,47,58,3,62,95,67,65,73,11, + 75,72,66,7,0,65,11,68,63,64, + 58,26,27,9,6,12,13,30,36,3, + 42,45,43,44,29,39,34,38,16,25, + 15,21,19,20,22,23,18,17,24,33, + 37,35,32,40,66,7,8,1,2,5, + 4,10,0,61,48,15,16,60,46,17, + 69,49,87,14,18,50,51,19,20,52, + 57,53,21,22,54,70,55,10,71,23, + 59,41,24,47,25,7,3,9,6,68, + 11,8,4,31,5,1,2,0,48,15, + 16,46,17,69,49,14,18,50,51,19, + 20,52,53,21,22,54,70,55,10,71, + 23,41,24,47,25,1,2,4,95,60, + 0,63,64,26,27,9,6,12,13,5, + 30,36,3,4,8,42,45,43,44,39, + 34,38,16,25,15,21,19,20,22,23, + 18,17,24,10,33,37,35,32,40,56, + 1,2,29,0,119,0,60,46,17,69, 49,18,50,51,19,20,52,53,21,22, - 54,69,55,10,70,23,32,24,43,25, - 16,15,48,9,3,8,11,58,57,63, - 75,12,28,4,6,7,1,2,5,29, - 0,11,9,71,7,5,3,1,2,6, - 8,4,0 + 54,70,55,10,71,23,41,24,47,25, + 16,15,48,7,3,9,11,59,57,61, + 87,14,28,4,6,8,1,2,5,31, + 0,10,69,60,70,71,16,25,15,21, + 19,20,22,23,18,17,24,75,72,95, + 118,68,66,121,120,96,103,90,26,27, + 12,13,91,92,88,89,28,62,93,94, + 97,98,99,100,101,102,117,67,104,105, + 106,107,108,109,110,111,112,113,65,48, + 46,49,14,50,51,52,53,54,55,41, + 47,11,7,73,3,56,8,5,6,9, + 1,2,4,0,11,7,8,5,3,1, + 2,6,9,4,72,0 }; }; public final static byte asr[] = Asr.asr; @@ -1840,59 +1833,59 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface Nasb { public final static char nasb[] = {0, - 15,12,12,93,93,115,12,12,142,190, - 190,12,108,5,185,12,142,30,12,12, - 80,13,13,13,13,176,12,12,154,17, - 12,107,151,173,174,12,174,201,174,240, - 174,167,12,10,176,151,184,93,12,12, - 12,12,12,152,12,36,220,176,30,30, - 236,30,30,30,30,30,30,12,12,12, - 12,12,12,12,12,12,12,12,30,12, - 30,30,85,12,115,115,58,12,115,115, - 53,85,208,12,12,12,12,115,208,208, - 124,210,176,115,115,115,203,115,161,115, - 12,12,115,161,176,11,12,119,124,12, - 220,190,190,190,190,176,158,156,12,208, - 208,1,30,78,58,220,12,22,22,158, - 137,30,30,30,30,30,30,30,30,30, - 30,30,30,30,30,30,30,30,30,30, - 30,30,30,30,30,30,30,30,30,30, - 30,137,30,142,142,216,43,28,28,151, - 85,85,28,208,12,12,12,95,251,251, - 115,115,51,40,51,115,241,11,40,203, - 215,208,208,12,12,12,12,57,208,30, - 30,12,12,12,12,10,176,85,190,164, - 216,208,215,176,215,208,85,12,12,12, + 15,12,12,75,75,159,12,12,167,40, + 40,12,152,5,144,12,167,61,12,12, + 79,13,13,13,13,43,12,12,113,230, + 12,151,204,255,256,131,256,117,256,122, + 256,249,12,10,43,204,143,75,12,12, + 12,12,12,205,12,53,170,43,61,61, + 226,61,61,61,61,61,61,12,12,12, + 12,12,12,12,12,12,12,12,61,12, + 61,61,84,12,159,159,31,12,159,159, + 50,84,243,12,12,12,12,159,243,243, + 108,207,43,159,159,119,159,138,159,12, + 131,159,138,43,11,12,133,108,12,170, + 40,40,40,40,43,177,115,12,243,243, + 1,61,88,31,170,12,23,23,177,102, + 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, + 102,61,167,167,213,185,35,35,204,84, + 84,35,243,12,12,12,141,258,159,159, + 33,70,33,159,231,11,70,119,212,243, + 243,12,12,12,12,30,243,61,61,12, + 12,12,12,10,43,84,40,195,213,243, + 212,43,212,243,84,12,12,12,12,12, 12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,208,208,12,11, - 12,12,12,121,12,115,142,115,95,68, - 176,199,12,99,12,12,87,258,251,68, - 51,51,103,203,241,68,12,12,203,176, - 12,12,12,12,203,11,30,176,58,30, - 190,115,60,208,181,58,30,115,115,43, - 28,95,95,58,115,12,12,12,152,115, - 145,110,12,12,152,89,161,68,30,241, - 137,137,137,137,12,12,56,203,208,97, - 121,12,17,203,95,95,115,216,227,115, - 246,115,161,115,70,212,199,151,12,30, - 12,72,193,161,152,152,11,208,208,208, - 208,158,158,203,115,117,12,137,121,182, - 12,12,115,115,47,199,68,12,246,259, - 12,241,87,246,227,142,216,70,179,74, - 110,212,30,30,11,161,161,208,208,12, - 97,158,30,85,182,47,47,12,115,145, - 12,12,152,68,12,199,179,224,12,161, - 12,11,11,117,208,85,206,246,115,199, - 49,12,208,152,161,246,115,129,74,11, - 158,208,227,164,30,110,199,161,99,91, - 134,12,30,12,199,12,12,12,135,12, - 241,197,199,199,241,101,208,190,68,208, - 115,99,199,20,12,12,12,135,232,232, - 140,12,232,199,199,12,115,63,199,190, - 208,110,208,189,115,12,208,91,68,208, - 208,115,135,12,135,199,110,137,135,20, - 63,101,101,108,30,12,243,199,208,135, - 208,199,135 + 12,12,12,12,243,243,12,11,12,12, + 12,135,12,159,167,159,141,175,43,48, + 12,148,12,12,97,265,258,33,33,161, + 119,231,175,12,12,119,43,12,12,12, + 12,119,11,61,43,31,61,40,159,67, + 243,105,31,61,159,159,185,35,141,141, + 31,159,131,12,12,205,159,198,154,12, + 12,205,73,138,175,61,231,102,102,102, + 102,12,12,29,119,243,193,135,12,230, + 119,141,141,159,213,221,159,233,159,138, + 159,77,209,48,204,12,61,12,21,245, + 138,205,205,11,243,243,243,243,177,177, + 119,159,180,12,102,135,106,12,12,159, + 159,86,48,175,12,233,266,12,123,97, + 233,221,167,213,77,238,17,154,209,61, + 61,11,138,138,243,243,12,193,177,61, + 84,106,86,86,12,130,198,12,12,205, + 175,12,48,238,174,12,138,12,11,11, + 180,243,84,241,233,159,48,95,12,243, + 205,138,233,159,99,17,11,177,243,221, + 195,60,154,48,138,149,57,126,12,61, + 12,48,12,12,12,12,127,12,231,46, + 48,48,231,92,243,40,175,243,159,149, + 48,90,12,12,12,127,189,189,165,12, + 189,48,48,12,159,59,48,40,243,154, + 243,217,159,12,243,57,175,12,243,243, + 159,127,12,127,48,154,102,127,90,59, + 92,92,152,61,12,182,48,243,127,243, + 48,127 }; }; public final static char nasb[] = Nasb.nasb; @@ -1900,33 +1893,34 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface Nasr { public final static char nasr[] = {0, - 3,13,7,10,149,147,120,146,145,5, - 2,0,71,0,169,0,1,3,0,112, - 0,5,2,10,7,136,0,43,4,5, - 7,10,2,13,0,2,7,3,0,2, - 65,0,65,135,134,0,124,0,178,0, - 108,0,4,186,0,2,48,65,0,4, - 172,0,13,2,10,7,5,64,0,155, - 0,182,0,166,5,165,0,170,0,13, - 2,10,7,5,75,0,152,0,184,0, - 157,0,107,0,60,0,140,0,103,0, - 59,0,5,99,183,0,31,94,93,63, - 48,7,10,2,4,0,138,0,94,93, - 5,55,0,23,4,5,89,0,4,47, - 39,174,0,64,47,76,4,39,0,39, - 176,4,23,0,2,63,48,7,10,4, - 89,5,0,4,43,167,0,4,96,0, - 2,61,0,4,33,0,2,5,120,116, - 117,118,13,86,0,2,44,0,156,0, - 2,113,0,31,93,94,4,0,175,4, - 43,0,5,99,162,0,4,39,38,0, - 5,44,2,3,0,43,4,31,0,94, - 93,48,63,55,5,7,10,2,0,4, - 43,39,0,4,64,0,114,4,47,72, - 0,4,43,102,0,7,10,3,13,5, - 1,0,4,173,0,4,47,72,83,0, - 4,47,72,99,45,5,0,38,48,7, - 10,2,4,154,0 + 3,13,7,10,148,146,121,145,144,5, + 2,0,67,0,168,0,165,5,164,0, + 183,0,5,2,10,7,135,0,2,49, + 66,0,109,0,5,7,10,2,13,4, + 44,0,2,45,0,4,39,38,0,4, + 187,0,2,7,3,0,156,0,65,42, + 5,7,10,2,13,0,4,171,0,2, + 66,0,185,0,108,0,154,0,13,2, + 10,7,5,76,0,125,0,169,0,113, + 0,42,60,0,177,0,151,0,48,42, + 173,4,39,0,2,114,0,23,4,5, + 90,0,4,44,166,0,5,45,2,3, + 0,5,1,42,0,65,39,48,77,4, + 42,0,95,94,5,56,0,2,62,0, + 61,0,31,94,95,4,0,42,104,0, + 31,95,94,64,49,7,10,2,4,0, + 5,102,184,0,39,175,4,23,0,4, + 44,39,0,4,65,0,4,97,0,137, + 0,4,172,0,66,134,133,0,4,44, + 103,0,139,0,4,33,0,2,64,49, + 7,10,4,90,5,0,95,94,49,64, + 56,5,7,10,2,0,44,4,174,0, + 115,4,48,75,0,5,7,10,13,3, + 1,0,4,48,75,84,0,42,155,0, + 44,4,31,0,5,102,161,0,2,5, + 121,117,118,119,13,87,0,4,48,75, + 102,46,5,0,38,49,7,10,2,4, + 153,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -1934,19 +1928,19 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface TerminalIndex { public final static char terminalIndex[] = {0, - 115,116,3,33,15,12,81,11,1,102, - 121,68,13,14,50,54,62,70,76,77, - 88,89,104,107,109,9,10,21,95,114, - 16,106,56,57,63,69,86,90,92,96, - 99,101,108,111,112,113,123,49,66,72, - 75,78,85,91,100,2,79,105,55,97, - 4,22,48,60,80,35,46,65,93,103, - 32,120,119,122,67,98,110,51,52,58, - 59,61,71,73,74,87,94,19,20,8, - 17,18,23,24,34,6,25,26,27,28, - 29,30,82,83,84,7,36,37,38,39, - 40,41,42,43,44,45,31,118,53,5, - 124,64,117 + 113,114,2,31,13,10,115,79,9,100, + 120,11,12,66,48,52,60,68,74,75, + 86,87,102,105,107,7,8,19,112,14, + 93,55,61,67,84,88,90,94,97,99, + 104,109,110,111,123,54,106,47,64,70, + 73,76,83,89,98,1,77,95,103,53, + 46,20,58,78,44,121,33,119,63,91, + 101,30,118,122,96,108,49,50,56,57, + 59,69,71,72,85,92,65,17,18,6, + 15,16,21,22,32,4,23,24,25,26, + 27,28,5,34,35,36,37,38,39,40, + 41,42,43,80,81,82,29,117,51,3, + 124,62,116 }; }; public final static char terminalIndex[] = TerminalIndex.terminalIndex; @@ -1954,26 +1948,26 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, - 131,136,138,0,0,137,235,135,0,229, - 134,0,145,133,0,0,144,150,0,0, - 151,160,181,161,162,163,164,165,166,167, - 127,168,153,169,170,0,143,129,132,171, - 0,140,154,139,179,0,0,0,0,0, - 0,0,0,147,157,0,204,0,174,188, - 0,201,205,128,0,0,0,0,0,0, - 206,0,0,177,126,173,0,0,0,0, - 0,0,130,0,0,187,0,0,202,212, - 159,208,209,210,0,0,0,0,220,148, - 207,176,197,0,0,211,0,0,0,0, - 240,241,149,180,0,190,191,192,193,194, - 196,199,0,0,214,217,219,0,221,0, - 238,239,0,141,142,146,0,0,156,158, - 0,172,0,182,183,184,185,186,189,0, - 195,0,198,203,0,215,216,0,223,224, - 226,228,0,232,233,234,236,237,125,0, - 152,155,0,175,0,178,0,200,213,218, - 222,225,227,0,230,231,242,243,0,0, - 0,0,0,0 + 132,137,139,0,0,138,236,136,0,230, + 135,0,146,134,0,0,145,151,0,0, + 152,161,182,162,163,164,165,166,167,168, + 127,169,154,170,171,0,144,129,133,172, + 0,130,141,155,140,180,0,0,0,0, + 0,0,0,0,148,158,0,205,0,175, + 189,0,202,206,128,0,207,0,178,0, + 0,0,0,0,0,126,174,0,0,0, + 0,0,0,131,0,0,188,0,0,203, + 213,160,209,210,211,0,0,0,0,149, + 208,221,177,198,0,0,212,0,0,0, + 0,241,242,150,181,0,191,192,193,194, + 195,197,200,0,0,215,218,220,0,239, + 240,0,142,143,147,0,0,157,159,0, + 173,0,183,184,185,186,187,190,0,196, + 0,199,204,0,216,217,0,222,225,227, + 229,0,233,234,235,237,238,125,0,153, + 156,0,176,0,179,0,201,214,219,0, + 223,224,226,228,0,231,232,243,244,0, + 0,0,0,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -1981,18 +1975,18 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface ScopePrefix { public final static char scopePrefix[] = { - 161,582,601,533,549,560,571,366,271,285, - 307,313,42,296,386,424,169,590,476,20, - 51,71,80,85,90,127,141,197,302,319, - 330,341,277,291,504,27,376,341,609,27, - 219,250,1,14,61,76,106,151,232,324, - 337,346,355,359,442,469,498,525,529,619, - 623,627,97,7,97,151,404,420,433,453, - 517,433,540,556,567,578,209,487,56,56, - 158,224,227,245,266,227,227,56,363,448, - 466,473,158,56,640,110,238,408,460,116, - 116,238,56,238,395,179,104,446,631,638, - 631,638,65,414,134,134,104,104,255 + 151,572,591,523,539,550,561,356,261,275, + 297,303,42,286,376,414,159,580,466,20, + 51,71,80,85,90,127,187,292,309,320, + 331,267,281,494,27,366,331,599,27,209, + 240,1,14,61,76,106,141,222,314,327, + 336,345,349,432,459,488,515,519,609,613, + 617,97,7,97,141,394,410,423,443,507, + 423,530,546,557,568,199,477,56,56,148, + 214,217,235,256,217,217,56,353,438,456, + 463,148,56,630,110,228,398,450,116,116, + 228,56,228,385,169,104,436,621,628,621, + 628,65,404,134,104,104,245 }; }; public final static char scopePrefix[] = ScopePrefix.scopePrefix; @@ -2000,18 +1994,18 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface ScopeSuffix { public final static char scopeSuffix[] = { - 18,5,5,5,5,5,5,373,132,95, - 132,132,48,282,392,430,175,67,482,25, - 25,25,59,59,95,132,132,202,132,132, - 335,335,282,101,509,38,381,596,614,32, - 213,213,5,18,5,59,95,132,236,328, - 328,328,95,95,132,248,5,5,5,5, - 5,248,236,11,101,155,373,373,373,457, - 509,437,544,544,544,544,213,491,59,59, - 5,5,230,248,5,269,269,353,95,451, - 5,248,5,502,5,113,350,411,463,119, - 123,241,521,512,398,182,95,95,633,633, - 635,635,67,416,136,146,204,189,257 + 18,5,5,5,5,5,5,363,132,95, + 132,132,48,272,382,420,165,67,472,25, + 25,25,59,59,95,132,192,132,132,325, + 325,272,101,499,38,371,586,604,32,203, + 203,5,18,5,59,95,132,226,318,318, + 318,95,95,132,238,5,5,5,5,5, + 238,226,11,101,145,363,363,363,447,499, + 427,534,534,534,534,203,481,59,59,5, + 5,220,238,5,259,259,343,95,441,5, + 238,5,492,5,113,340,401,453,119,123, + 231,511,502,388,172,95,95,623,623,625, + 625,67,406,136,194,179,247 }; }; public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; @@ -2019,18 +2013,18 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface ScopeLhs { public final static char scopeLhs[] = { - 45,17,17,17,17,17,17,79,85,46, - 69,118,66,52,79,78,45,17,19,3, - 6,9,162,162,129,116,116,45,70,118, - 117,119,53,46,136,110,79,17,17,110, - 95,56,133,82,165,162,129,126,58,117, - 117,119,177,50,59,140,18,17,17,17, - 17,17,12,112,129,126,79,78,78,36, - 136,78,17,17,17,17,95,19,166,162, - 178,93,101,71,57,154,74,119,80,77, - 141,140,170,136,16,129,119,102,21,127, - 127,55,136,136,79,45,129,73,134,44, - 134,44,165,102,116,116,45,45,56 + 46,17,17,17,17,17,17,80,86,47, + 73,119,70,53,80,79,46,17,19,3, + 6,9,161,161,158,117,46,74,119,118, + 120,54,47,135,111,80,17,17,111,96, + 57,132,83,164,161,158,127,59,118,118, + 120,176,51,60,139,18,17,17,17,17, + 17,12,113,158,127,80,79,79,36,135, + 79,17,17,17,17,96,19,165,161,177, + 94,101,67,58,153,69,120,81,78,140, + 139,169,135,16,158,120,103,21,128,128, + 56,135,135,80,46,158,68,133,45,133, + 45,164,103,117,46,46,57 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -2038,18 +2032,18 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface ScopeLa { public final static byte scopeLa[] = { - 119,73,73,73,73,73,73,73,72,11, - 72,72,62,1,73,122,61,3,73,62, - 62,62,1,1,11,72,72,61,72,72, - 1,1,1,1,4,62,11,1,1,62, - 73,73,73,119,73,1,11,72,1,1, - 1,1,11,11,72,118,73,73,73,73, - 73,118,1,73,1,67,73,73,73,71, - 4,73,62,62,62,62,73,3,1,1, - 73,73,3,118,73,1,1,1,11,71, - 73,118,73,5,73,1,29,66,73,1, - 1,6,1,29,77,76,11,11,4,4, - 4,4,3,1,9,61,1,1,3 + 119,73,73,73,73,73,73,73,68,11, + 68,68,62,1,73,122,66,3,73,62, + 62,62,1,1,11,68,66,68,68,1, + 1,1,1,4,62,11,1,1,62,73, + 73,73,119,73,1,11,68,1,1,1, + 1,11,11,68,118,73,73,73,73,73, + 118,1,73,1,65,73,73,73,72,4, + 73,62,62,62,62,73,3,1,1,73, + 73,3,118,73,1,1,1,11,72,73, + 118,73,5,73,1,31,67,73,1,1, + 6,1,31,76,75,11,11,4,4,4, + 4,3,1,66,1,1,3 }; }; public final static byte scopeLa[] = ScopeLa.scopeLa; @@ -2057,18 +2051,18 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface ScopeStateSet { public final static char scopeStateSet[] = { - 74,229,229,229,229,229,229,85,65,74, - 62,142,62,77,85,85,74,229,229,162, - 204,205,52,52,58,142,142,74,62,142, - 142,142,77,74,98,308,85,229,229,308, - 300,146,42,85,24,52,58,292,146,142, - 142,142,20,77,27,49,229,229,229,229, - 229,229,224,6,58,292,85,85,85,261, - 98,85,229,229,229,229,300,229,24,52, - 22,300,302,296,146,55,151,142,85,85, - 46,49,101,98,229,58,142,1,230,142, - 142,103,98,98,85,74,58,11,95,119, - 95,119,24,1,142,142,74,74,146 + 72,226,226,226,226,226,226,82,63,72, + 61,139,61,74,82,82,72,226,226,159, + 201,202,52,52,58,139,72,61,139,139, + 139,74,72,95,305,82,226,226,305,297, + 143,42,82,24,52,58,289,143,139,139, + 139,20,74,27,49,226,226,226,226,226, + 226,221,6,58,289,82,82,82,258,95, + 82,226,226,226,226,297,226,24,52,22, + 297,299,293,143,55,148,139,82,82,46, + 49,98,95,226,58,139,1,227,139,139, + 100,95,95,82,72,58,11,92,116,92, + 116,24,1,139,72,72,143 }; }; public final static char scopeStateSet[] = ScopeStateSet.scopeStateSet; @@ -2076,70 +2070,69 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface ScopeRhs { public final static char scopeRhs[] = {0, - 311,3,60,0,127,0,310,3,119,0, - 127,174,0,127,182,76,0,216,0,253, - 127,28,125,0,22,0,291,127,28,29, - 0,22,55,0,35,133,0,22,55,0, - 0,291,127,28,29,195,0,22,130,0, - 253,127,28,130,0,184,128,0,143,0, - 219,3,289,0,289,0,3,0,127,0, - 253,127,28,133,0,184,128,222,0,184, - 128,32,222,0,184,128,307,32,0,131, - 188,167,128,0,129,0,188,167,128,0, - 135,129,0,170,0,304,127,170,0,127, - 170,0,222,129,0,167,243,0,138,0, - 0,0,136,0,0,0,281,127,9,250, - 0,128,0,250,0,1,0,0,128,0, - 281,127,61,250,0,4,0,0,128,0, - 303,127,61,0,46,128,0,156,3,0, - 127,279,278,127,76,277,170,0,278,127, - 76,277,170,0,215,0,216,0,277,170, - 0,98,0,0,215,0,216,0,203,98, - 0,0,215,0,216,0,278,127,277,170, - 0,215,0,203,0,0,215,0,227,127, - 3,0,127,0,0,0,0,0,227,127, - 3,216,0,224,3,0,212,127,0,208, - 0,188,167,171,0,135,0,167,128,0, - 12,0,0,0,214,56,0,126,0,227, - 127,3,180,0,180,0,3,0,0,127, - 0,0,0,0,0,197,3,0,201,0, - 238,127,61,30,12,0,184,128,57,58, - 0,197,129,0,131,184,128,275,58,0, - 184,128,275,58,0,184,128,66,124,57, - 0,238,127,61,57,0,238,127,61,226, - 57,0,273,127,61,124,68,0,273,127, - 61,68,0,184,128,68,0,136,0,188, - 184,128,243,0,138,0,184,128,243,0, - 188,167,128,10,0,167,128,10,0,95, - 138,0,148,0,266,127,146,0,266,127, - 170,0,162,86,0,296,161,298,299,3, - 83,0,127,173,0,298,299,3,83,0, - 129,0,127,173,0,162,3,77,199,82, - 0,127,129,0,199,82,0,110,3,132, - 127,129,0,225,3,77,0,197,166,0, - 35,171,0,166,0,177,35,171,0,225, - 3,87,0,199,154,225,3,85,0,64, - 173,0,225,3,85,0,127,173,64,173, - 0,297,127,61,0,162,0,214,79,0, - 32,0,162,117,158,0,32,171,0,177, - 3,0,127,151,0,219,3,0,214,56, - 263,0,162,56,0,177,3,293,65,128, - 0,127,0,0,0,0,293,65,128,0, - 3,147,127,0,0,0,0,177,3,38, - 0,149,0,126,29,167,128,0,33,149, - 0,95,138,33,149,0,223,184,128,0, - 148,33,149,0,177,3,42,0,162,3, - 42,0,162,3,62,177,28,34,0,177, - 28,34,0,22,3,132,127,0,162,3, - 62,177,28,37,0,177,28,37,0,162, - 3,62,177,28,39,0,177,28,39,0, - 162,3,62,177,28,35,0,177,28,35, - 0,219,3,126,188,167,128,10,0,126, - 188,167,128,10,0,138,3,0,127,0, - 219,3,125,171,167,128,10,0,171,167, - 128,10,0,136,3,0,127,0,219,3, - 136,0,219,3,140,0,162,56,140,0, - 258,0,33,0,33,141,0,165,0,162, + 312,3,58,0,127,0,311,3,119,0, + 127,175,0,127,183,75,0,217,0,252, + 127,28,125,0,20,0,290,127,28,31, + 0,20,53,0,33,134,0,20,53,0, + 0,290,127,28,31,198,0,20,131,0, + 252,127,28,130,0,185,128,0,144,0, + 220,3,288,0,288,0,2,0,127,0, + 252,127,28,133,0,185,128,225,0,185, + 128,41,225,0,185,128,308,41,0,131, + 189,168,128,0,129,0,189,168,128,0, + 136,129,0,171,0,304,127,171,0,127, + 171,0,223,129,0,168,244,0,139,0, + 0,0,137,0,0,0,303,127,165,251, + 0,128,0,251,0,130,0,0,128,0, + 302,127,165,0,44,128,0,156,3,0, + 127,278,277,127,75,276,171,0,277,127, + 75,276,171,0,216,0,217,0,276,171, + 0,96,0,0,216,0,217,0,204,96, + 0,0,216,0,217,0,277,127,276,171, + 0,216,0,204,0,0,216,0,228,127, + 3,0,127,0,0,0,0,0,228,127, + 3,217,0,224,3,0,213,127,0,209, + 0,189,168,172,0,136,0,168,128,0, + 10,0,0,0,215,56,0,126,0,228, + 127,3,181,0,181,0,2,0,0,127, + 0,0,0,0,0,192,3,0,202,0, + 239,127,165,29,14,0,185,128,57,59, + 0,198,129,0,131,185,128,274,59,0, + 185,128,274,59,0,185,128,67,124,57, + 0,239,127,165,57,0,239,127,165,227, + 57,0,272,127,165,124,69,0,272,127, + 165,69,0,185,128,69,0,137,0,189, + 185,128,244,0,139,0,185,128,244,0, + 189,168,128,10,0,168,128,10,0,93, + 139,0,149,0,265,127,146,0,265,127, + 171,0,162,85,0,295,161,297,298,3, + 82,0,127,174,0,297,298,3,82,0, + 129,0,127,174,0,162,3,76,200,81, + 0,127,129,0,200,81,0,108,2,133, + 127,129,0,226,3,76,0,192,167,0, + 33,172,0,167,0,178,33,172,0,226, + 3,86,0,200,154,226,3,84,0,62, + 174,0,226,3,84,0,127,174,62,174, + 0,296,127,165,0,162,0,215,78,0, + 30,0,162,117,158,0,30,172,0,178, + 3,0,127,152,0,220,3,0,215,56, + 262,0,162,56,0,178,3,292,64,128, + 0,127,0,0,0,0,292,64,128,0, + 2,148,127,0,0,0,0,178,3,36, + 0,150,0,126,31,168,128,0,31,150, + 0,93,139,31,150,0,223,185,128,0, + 149,31,150,0,178,3,40,0,162,3, + 40,0,162,3,62,178,28,32,0,178, + 28,32,0,20,2,133,127,0,162,3, + 62,178,28,35,0,178,28,35,0,162, + 3,62,178,28,37,0,178,28,37,0, + 162,3,62,178,28,33,0,178,28,33, + 0,220,3,126,189,168,128,10,0,126, + 189,168,128,10,0,139,2,0,127,0, + 220,3,125,172,168,128,10,0,172,168, + 128,10,0,137,2,0,127,0,220,3, + 136,0,220,3,140,0,162,56,140,0, + 257,0,31,0,31,142,0,166,0,162, 3,0 }; }; @@ -2148,38 +2141,37 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface ScopeState { public final static char scopeState[] = {0, - 3277,4075,4074,3624,0,2174,2112,660,1938,0, - 3426,3361,3276,3216,3156,3096,3036,2875,2815,2877, - 0,797,0,3022,1218,0,3426,3361,2843,2626, - 3276,3216,3156,3096,2593,3036,2875,2815,3391,3192, - 0,1436,1263,794,0,3306,2690,0,2803,2184, - 0,3286,2646,0,579,4589,0,4605,4395,4385, - 0,4605,4395,4385,3705,4254,4244,3632,4168,4158, - 4082,3623,0,4605,4395,4385,3705,4254,4244,3632, - 4168,4158,4082,3623,3426,3361,3276,3216,3156,3096, - 3036,2875,2815,0,3311,791,0,799,662,0, - 1264,0,2789,4525,1724,1598,4502,1556,3010,812, - 1430,3047,2747,3481,2800,1388,858,0,4693,4685, - 4681,4663,4655,4617,4478,4375,4769,4763,4759,4330, - 4099,4755,4738,3722,3061,4708,3742,2647,3416,3180, - 0,534,3125,2594,0,4525,579,4502,4589,3481, - 3330,4063,4568,4353,2789,4340,4489,3010,2661,2582, - 0,4693,2696,4685,2282,2195,4681,4663,4655,1177, - 3090,919,4617,4478,3028,2935,2882,4375,3270,4769, - 2870,4763,2748,2188,4759,1008,4330,4099,1389,4755, - 3282,4738,3722,3061,783,4708,3742,2647,3125,3416, - 655,3180,2594,728,3330,4063,4568,4353,2789,4525, - 4340,2101,579,4502,1121,4489,3010,4589,638,623, - 3481,2661,2582,1369,994,931,799,662,1347,4041, - 4019,2288,2325,590,2358,2446,2418,2389,2763,2603, - 2555,2528,2501,2474,3600,3577,3548,2985,2958,3997, - 3975,3953,3931,3909,3887,3865,3843,3821,3791,1054, - 1985,2238,2201,2151,2114,2064,2027,874,1943,1901, - 1226,819,739,684,1859,1817,1775,1733,1691,1649, - 1607,1565,1523,1481,1439,534,1181,1134,1397,1310, - 1079,1012,952,1268,0,732,666,578,557,2747, - 3481,3330,3274,2661,2633,2582,0,4092,3034,2813, - 567,0 + 3511,4459,3267,3206,0,1953,1277,1918,949,0, + 3327,3266,3205,3144,3083,3022,2957,2613,2552,2944, + 0,1987,0,3113,625,0,3327,3266,3577,3020, + 3205,3144,3083,3022,1979,2957,2613,2552,4326,4172, + 0,1951,1408,1400,0,3766,3094,0,3494,3263, + 0,4323,2805,0,4159,4610,0,4626,4471,0, + 4626,4471,3794,4343,4288,3739,4247,4192,4151,3684, + 0,4626,4471,3794,4343,4288,3739,4247,4192,4151, + 3684,3327,3266,3205,3144,3083,3022,2957,2613,2552, + 0,3368,3169,0,797,659,0,1406,0,2929, + 4576,3821,3747,3771,2804,3461,717,3296,2712,2677, + 3490,2563,857,856,0,4688,4679,4641,4487,4307, + 3339,3292,3217,4550,4448,4409,3170,3095,4142,3579, + 3048,2685,3355,1180,2578,2571,734,0,535,4440, + 2708,0,4576,4159,3771,4610,3490,3474,4131,4597, + 4398,2929,4375,4506,3461,2775,2697,0,4688,3696, + 4679,3689,3322,4641,4487,4307,3041,3856,2625,3339, + 3292,3571,3562,3558,3217,2558,4550,3388,4448,3361, + 2864,4409,1134,3170,3095,2845,4142,2737,3579,3048, + 2685,2641,3355,1180,2578,4440,2571,729,734,2708, + 920,3474,4131,4597,4398,2929,4576,4375,2248,4159, + 3771,2160,4506,3461,4610,2072,1395,3490,2775,2697, + 997,933,577,797,659,631,4109,4087,2262,2299, + 592,2332,2420,2392,2363,2903,2877,2529,2502,2475, + 2448,3661,3638,3587,3436,3411,4065,4043,4021,3999, + 3977,3955,3933,3911,3881,3703,1058,1956,2211,2174, + 2123,2086,2035,1998,875,1914,1872,1273,819,740, + 684,1830,1788,1746,1704,1662,1620,1578,1536,1494, + 1452,1410,535,1231,1186,1353,1315,1138,1015,954, + 1082,0,1046,850,801,590,2677,3490,3474,2719, + 2775,2859,2697,0,3740,2720,3063,615,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2187,59 +2179,59 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface InSymb { public final static char inSymb[] = {0, - 0,292,29,10,59,28,230,230,127,66, - 66,291,146,127,166,62,67,66,224,197, - 56,216,217,186,180,171,130,133,7,5, - 125,3,127,267,268,250,269,243,270,68, - 271,272,125,10,128,127,3,59,42,34, - 37,39,35,10,136,4,3,128,38,31, - 5,14,13,6,8,27,26,140,145,148, - 147,150,149,152,151,155,153,157,60,158, - 66,66,214,158,3,3,167,165,28,28, - 166,56,3,64,65,125,124,28,224,197, - 127,212,128,6,9,61,167,230,128,126, - 125,124,61,128,128,184,167,212,127,230, - 3,28,28,28,28,128,3,7,125,177, - 162,127,64,65,167,3,126,106,120,3, - 56,90,96,14,13,92,91,6,94,93, - 62,28,88,89,8,98,97,100,99,101, - 116,115,114,113,112,111,110,109,108,107, - 66,117,102,127,127,188,4,127,127,127, - 56,56,127,227,228,229,167,127,127,127, - 126,125,127,184,127,61,127,184,167,29, - 66,177,162,177,177,177,177,167,219,127, - 154,265,136,126,125,10,128,56,293,3, - 188,177,29,128,29,219,162,147,147,145, - 145,145,149,149,149,149,148,148,151,150, - 150,153,152,155,162,157,227,227,258,188, - 253,255,253,212,253,154,67,6,183,281, - 128,168,222,57,29,195,58,170,282,281, - 127,127,71,188,127,273,124,274,188,128, - 62,62,62,62,188,171,67,128,167,198, - 3,294,166,156,184,167,71,154,154,4, - 67,127,127,167,61,226,28,29,275,277, - 127,3,180,306,222,32,128,273,66,67, - 3,3,3,3,126,125,167,29,177,127, - 127,223,5,29,127,127,220,188,127,61, - 62,28,128,76,127,212,304,127,125,71, - 284,197,67,128,32,307,184,162,162,162, - 162,3,3,188,154,260,263,56,178,4, - 124,126,220,220,127,131,238,12,29,170, - 63,57,58,237,127,127,184,127,278,71, - 67,212,71,66,184,128,128,219,219,126, - 127,3,56,162,4,127,127,60,30,127, - 3,124,57,238,291,131,278,61,288,128, - 289,184,184,260,219,214,3,127,61,266, - 197,276,30,66,128,62,279,127,67,184, - 3,311,127,3,66,67,154,128,184,127, - 297,81,79,1,162,87,85,83,82,77, - 84,86,80,78,57,76,219,67,238,156, - 61,184,226,280,119,9,214,71,3,3, - 3,199,3,124,162,124,182,127,226,3, - 225,166,225,299,146,77,225,127,303,95, - 310,166,154,197,154,298,127,3,154,280, - 67,154,154,127,66,199,161,266,162,122, - 296,154,154 + 0,291,31,10,60,28,231,231,127,67, + 67,290,146,127,167,62,65,67,224,192, + 56,217,218,187,181,172,130,133,8,5, + 125,3,127,266,267,251,268,244,269,69, + 270,271,125,10,128,127,3,60,40,32, + 35,37,33,10,136,4,3,128,36,30, + 5,13,12,6,9,27,26,140,145,148, + 147,150,149,152,151,155,153,157,58,158, + 67,67,215,158,3,3,168,166,28,28, + 167,56,3,63,64,125,124,28,224,192, + 127,213,128,6,165,168,231,128,126,125, + 124,165,128,128,185,168,213,127,231,3, + 28,28,28,28,128,3,8,125,178,162, + 127,63,64,168,3,126,103,120,3,56, + 90,96,13,12,92,91,6,94,93,62, + 28,88,89,9,98,97,100,99,101,113, + 112,111,110,109,108,107,106,105,104,67, + 117,102,127,127,189,4,127,127,127,56, + 56,127,228,229,230,168,127,127,126,125, + 127,185,127,165,127,185,168,31,67,178, + 162,178,178,178,178,168,220,127,154,264, + 136,126,125,10,128,56,292,3,189,178, + 31,128,31,220,162,147,147,145,145,145, + 149,149,149,149,148,148,151,150,150,153, + 152,155,162,157,228,228,257,189,252,254, + 252,213,252,154,65,6,184,303,128,169, + 225,57,31,198,59,171,305,127,127,72, + 189,127,272,124,273,189,128,62,62,62, + 62,189,172,65,128,168,199,3,293,167, + 156,185,168,72,154,154,4,65,127,127, + 168,165,227,28,31,274,276,127,3,181, + 307,225,41,128,272,67,65,3,3,3, + 3,126,125,168,31,178,127,127,223,5, + 31,127,127,221,189,127,165,62,28,128, + 75,127,213,304,127,125,72,283,192,65, + 128,41,308,185,162,162,162,162,3,3, + 189,154,259,262,56,179,4,124,126,221, + 221,127,131,239,14,31,171,61,57,59, + 238,127,127,185,127,277,72,65,213,72, + 67,185,128,128,220,220,126,127,3,56, + 162,4,127,127,58,29,127,3,124,57, + 239,290,131,277,165,287,128,288,185,185, + 259,220,215,3,127,165,265,192,275,29, + 67,128,62,278,127,65,185,3,312,127, + 3,67,65,154,128,185,127,296,80,78, + 1,162,7,86,84,82,81,76,83,85, + 79,77,57,75,220,65,239,156,165,185, + 227,279,119,7,215,72,3,3,3,200, + 3,124,162,124,183,127,227,3,226,167, + 226,298,146,76,226,127,302,7,95,311, + 167,154,192,154,297,127,3,154,279,65, + 154,154,127,67,200,161,265,162,122,295, + 154,154 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2248,10 +2240,8 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface Name { public final static String name[] = { "", - "EOC", "[", "(", - "{", ".", ".*", "->", @@ -2364,11 +2354,13 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par "stringlit", "identifier", "Completion", + "EndOfCompletion", "Invalid", "RightBracket", "RightParen", "RightBrace", "SemiColon", + "LeftBrace", "ERROR_TOKEN", "0", "EOF_TOKEN", @@ -2377,6 +2369,7 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par ")", "}", ";", + "{", "declaration", "identifier_token", "expression", @@ -2504,8 +2497,8 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public final static int ERROR_SYMBOL = 74, - SCOPE_UBOUND = 118, - SCOPE_SIZE = 119, + SCOPE_UBOUND = 116, + SCOPE_SIZE = 117, MAX_NAME_LENGTH = 37; public final int getErrorSymbol() { return ERROR_SYMBOL; } @@ -2514,20 +2507,20 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 523, + NUM_STATES = 522, NT_OFFSET = 123, - LA_STATE_OFFSET = 5770, + LA_STATE_OFFSET = 5735, MAX_LA = 2147483647, - NUM_RULES = 533, - NUM_NONTERMINALS = 194, - NUM_SYMBOLS = 317, + NUM_RULES = 534, + NUM_NONTERMINALS = 195, + NUM_SYMBOLS = 318, SEGMENT_SIZE = 8192, - START_STATE = 567, + START_STATE = 615, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 121, EOLT_SYMBOL = 121, - ACCEPT_ACTION = 4847, - ERROR_ACTION = 5237; + ACCEPT_ACTION = 4801, + ERROR_ACTION = 5201; 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 6fa92493924..1576516f970 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,92 +15,91 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp; public interface CPPTemplateTypeParameterParsersym { public final static int - TK_asm = 63, + TK_asm = 61, TK_auto = 48, TK_bool = 15, - TK_break = 78, - TK_case = 79, + TK_break = 77, + TK_case = 78, TK_catch = 119, TK_char = 16, - TK_class = 59, - TK_const = 33, - TK_const_cast = 34, - TK_continue = 80, - TK_default = 81, - TK_delete = 64, - TK_do = 82, + TK_class = 60, + TK_const = 46, + TK_const_cast = 32, + TK_continue = 79, + TK_default = 80, + TK_delete = 63, + TK_do = 81, TK_double = 17, - TK_dynamic_cast = 35, + TK_dynamic_cast = 33, TK_else = 122, - TK_enum = 68, + TK_enum = 69, TK_explicit = 49, - TK_export = 75, - TK_extern = 12, - TK_false = 36, + TK_export = 87, + TK_extern = 14, + TK_false = 34, TK_float = 18, - TK_for = 83, + TK_for = 82, TK_friend = 50, - TK_goto = 84, - TK_if = 85, + TK_goto = 83, + TK_if = 84, TK_inline = 51, TK_int = 19, TK_long = 20, TK_mutable = 52, TK_namespace = 57, - TK_new = 65, - TK_operator = 7, - TK_private = 103, - TK_protected = 104, - TK_public = 105, + TK_new = 64, + TK_operator = 8, + TK_private = 114, + TK_protected = 115, + TK_public = 116, TK_register = 53, - TK_reinterpret_cast = 37, - TK_return = 86, + TK_reinterpret_cast = 35, + TK_return = 85, TK_short = 21, TK_signed = 22, - TK_sizeof = 38, + TK_sizeof = 36, TK_static = 54, - TK_static_cast = 39, - TK_struct = 69, - TK_switch = 87, - TK_template = 29, - TK_this = 40, - TK_throw = 60, - TK_try = 76, - TK_true = 41, + TK_static_cast = 37, + TK_struct = 70, + TK_switch = 86, + TK_template = 31, + TK_this = 38, + TK_throw = 58, + TK_try = 75, + TK_true = 39, TK_typedef = 55, - TK_typeid = 42, + TK_typeid = 40, TK_typename = 10, - TK_union = 70, + TK_union = 71, TK_unsigned = 23, - TK_using = 58, - TK_virtual = 32, + TK_using = 59, + TK_virtual = 41, TK_void = 24, - TK_volatile = 43, + TK_volatile = 47, TK_wchar_t = 25, - TK_while = 77, - TK_integer = 44, - TK_floating = 45, - TK_charconst = 46, - TK_stringlit = 30, + TK_while = 76, + TK_integer = 42, + TK_floating = 43, + TK_charconst = 44, + TK_stringlit = 29, TK_identifier = 1, TK_Completion = 2, - TK_EndOfCompletion = 9, + TK_EndOfCompletion = 7, TK_Invalid = 123, TK_LeftBracket = 56, TK_LeftParen = 3, - TK_LeftBrace = 61, TK_Dot = 120, TK_DotStar = 96, - TK_Arrow = 106, + TK_Arrow = 103, TK_ArrowStar = 90, TK_PlusPlus = 26, TK_MinusMinus = 27, - TK_And = 8, + TK_And = 9, TK_Star = 6, - TK_Plus = 13, - TK_Minus = 14, + TK_Plus = 12, + TK_Minus = 13, TK_Tilde = 5, - TK_Bang = 31, + TK_Bang = 30, TK_Slash = 91, TK_Percent = 92, TK_RightShift = 88, @@ -116,27 +115,28 @@ public interface CPPTemplateTypeParameterParsersym { TK_AndAnd = 101, TK_OrOr = 102, TK_Question = 117, - TK_Colon = 71, + TK_Colon = 72, TK_ColonColon = 4, TK_DotDotDot = 95, - TK_Assign = 66, - TK_StarAssign = 107, - TK_SlashAssign = 108, - TK_PercentAssign = 109, - TK_PlusAssign = 110, - TK_MinusAssign = 111, - TK_RightShiftAssign = 112, - TK_LeftShiftAssign = 113, - TK_AndAssign = 114, - TK_CaretAssign = 115, - TK_OrAssign = 116, - TK_Comma = 67, + TK_Assign = 67, + TK_StarAssign = 104, + TK_SlashAssign = 105, + TK_PercentAssign = 106, + TK_PlusAssign = 107, + TK_MinusAssign = 108, + TK_RightShiftAssign = 109, + TK_LeftShiftAssign = 110, + TK_AndAssign = 111, + TK_CaretAssign = 112, + TK_OrAssign = 113, + TK_Comma = 65, TK_RightBracket = 118, TK_RightParen = 73, - TK_RightBrace = 72, + TK_RightBrace = 68, TK_SemiColon = 11, + TK_LeftBrace = 66, TK_ERROR_TOKEN = 74, - TK_0 = 47, + TK_0 = 45, TK_EOF_TOKEN = 121; public final static String orderedTerminalSymbols[] = { @@ -147,14 +147,14 @@ public interface CPPTemplateTypeParameterParsersym { "ColonColon", "Tilde", "Star", + "EndOfCompletion", "operator", "And", - "EndOfCompletion", "typename", "SemiColon", - "extern", "Plus", "Minus", + "extern", "bool", "char", "double", @@ -169,11 +169,9 @@ public interface CPPTemplateTypeParameterParsersym { "PlusPlus", "MinusMinus", "LT", - "template", "stringlit", "Bang", - "virtual", - "const", + "template", "const_cast", "dynamic_cast", "false", @@ -183,11 +181,13 @@ public interface CPPTemplateTypeParameterParsersym { "this", "true", "typeid", - "volatile", + "virtual", "integer", "floating", "charconst", "0", + "const", + "volatile", "auto", "explicit", "friend", @@ -198,24 +198,23 @@ public interface CPPTemplateTypeParameterParsersym { "typedef", "LeftBracket", "namespace", + "throw", "using", "class", - "throw", - "LeftBrace", - "GT", "asm", + "GT", "delete", "new", - "Assign", "Comma", + "LeftBrace", + "Assign", + "RightBrace", "enum", "struct", "union", "Colon", - "RightBrace", "RightParen", "ERROR_TOKEN", - "export", "try", "while", "break", @@ -228,6 +227,7 @@ public interface CPPTemplateTypeParameterParsersym { "if", "return", "switch", + "export", "RightShift", "LeftShift", "ArrowStar", @@ -243,9 +243,6 @@ public interface CPPTemplateTypeParameterParsersym { "Or", "AndAnd", "OrOr", - "private", - "protected", - "public", "Arrow", "StarAssign", "SlashAssign", @@ -257,6 +254,9 @@ public interface CPPTemplateTypeParameterParsersym { "AndAssign", "CaretAssign", "OrAssign", + "private", + "protected", + "public", "Question", "RightBracket", "catch",