From c7857505e0696cecdf850b98d6b80d883d7ebc9a Mon Sep 17 00:00:00 2001 From: Mike Kucera Date: Mon, 31 Mar 2008 15:48:57 +0000 Subject: [PATCH] fixed template destructor ids --- .../grammar/cpp/CPPGrammar.g | 43 +- .../action/cpp/CPPBuildASTParserAction.java | 43 +- .../cpp/CPPExpressionStatementParser.java | 1312 +++--- .../cpp/CPPExpressionStatementParserprs.java | 3886 ++++++++-------- .../cpp/CPPExpressionStatementParsersym.java | 132 +- .../cpp/CPPNoCastExpressionParser.java | 1308 +++--- .../cpp/CPPNoCastExpressionParserprs.java | 3860 ++++++++-------- .../cpp/CPPNoCastExpressionParsersym.java | 132 +- .../cpp/CPPNoFunctionDeclaratorParser.java | 1308 +++--- .../cpp/CPPNoFunctionDeclaratorParserprs.java | 3789 ++++++++-------- .../cpp/CPPNoFunctionDeclaratorParsersym.java | 120 +- .../core/dom/lrparser/cpp/CPPParser.java | 1308 +++--- .../core/dom/lrparser/cpp/CPPParserprs.java | 3958 +++++++++-------- .../core/dom/lrparser/cpp/CPPParsersym.java | 138 +- .../cpp/CPPSizeofExpressionParser.java | 1304 +++--- .../cpp/CPPSizeofExpressionParserprs.java | 3843 ++++++++-------- .../cpp/CPPSizeofExpressionParsersym.java | 132 +- 17 files changed, 13689 insertions(+), 12927 deletions(-) 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 7580a0cdcb7..14283f0bb11 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPGrammar.g +++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPGrammar.g @@ -418,8 +418,12 @@ unqualified_id_name | operator_function_id_name | conversion_function_id_name | template_id_name - | '~' class_name + | '~' identifier_token /. $Build consumeDestructorName(); $EndBuild ./ + | '~' template_id_name + /. $Build consumeDestructorNameTemplateId(); $EndBuild ./ + -- | '~' class_name + -- wrap an identifier in a name node @@ -553,8 +557,16 @@ pseudo_destructor_name destructor_type_name - ::= '~' type_name + ::= '~' identifier_token /. $Build consumeDestructorName(); $EndBuild ./ + | '~' template_id_name + /. $Build consumeDestructorNameTemplateId(); $EndBuild ./ + + +--destructor_type_name +-- ::= '~' type_name +-- /. $Build consumeDestructorName(); $EndBuild ./ + unary_expression @@ -1038,16 +1050,24 @@ type_name_declaration_specifiers storage_class_specifier ::= 'auto' + /. $Build consumeDeclSpecToken(); $EndBuild ./ | 'register' + /. $Build consumeDeclSpecToken(); $EndBuild ./ | 'static' + /. $Build consumeDeclSpecToken(); $EndBuild ./ | 'extern' + /. $Build consumeDeclSpecToken(); $EndBuild ./ | 'mutable' + /. $Build consumeDeclSpecToken(); $EndBuild ./ function_specifier ::= 'inline' + /. $Build consumeDeclSpecToken(); $EndBuild ./ | 'virtual' + /. $Build consumeDeclSpecToken(); $EndBuild ./ | 'explicit' + /. $Build consumeDeclSpecToken(); $EndBuild ./ -- We have no way to disambiguate token types @@ -1070,24 +1090,31 @@ function_specifier -- /. $Build consumeQualifiedId(false); $EndBuild ./ -- | simple_type_primitive_specifier - -simple_type_specifier - ::= simple_type_specifier_token - /. $Build consumeDeclSpecToken(); $EndBuild ./ - + -simple_type_specifier_token +simple_type_specifier ::= 'char' + /. $Build consumeDeclSpecToken(); $EndBuild ./ | 'wchar_t' + /. $Build consumeDeclSpecToken(); $EndBuild ./ | 'bool' + /. $Build consumeDeclSpecToken(); $EndBuild ./ | 'short' + /. $Build consumeDeclSpecToken(); $EndBuild ./ | 'int' + /. $Build consumeDeclSpecToken(); $EndBuild ./ | 'long' + /. $Build consumeDeclSpecToken(); $EndBuild ./ | 'signed' + /. $Build consumeDeclSpecToken(); $EndBuild ./ | 'unsigned' + /. $Build consumeDeclSpecToken(); $EndBuild ./ | 'float' + /. $Build consumeDeclSpecToken(); $EndBuild ./ | 'double' + /. $Build consumeDeclSpecToken(); $EndBuild ./ | 'void' + /. $Build consumeDeclSpecToken(); $EndBuild ./ -- last two rules moved here from simple_type_specifier diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPBuildASTParserAction.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPBuildASTParserAction.java index ec8276a3d31..5121fac7ec2 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPBuildASTParserAction.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPBuildASTParserAction.java @@ -346,7 +346,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { /** * template_id - * ::= identifier_token '<' template_argument_list_opt '>' + * ::= identifier_name '<' template_argument_list_opt '>' * * operator_function_id * ::= operator_id '<' template_argument_list_opt '>' @@ -357,11 +357,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { List templateArguments = astStack.closeScope(); IASTName name = (IASTName) astStack.pop(); -// char[] chars = tokenListToNameCharArray(parser.getRuleTokens()); -// IASTName name = nodeFactory.newName(chars); -// setOffsetAndLength(name); - - ICPPASTTemplateId templateId = nodeFactory.newCPPTemplateId(name); for(Object arg : templateArguments) { @@ -442,14 +437,14 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { /** * unqualified_id - * ::= '~' class_name + * ::= '~' identifier_token */ public void consumeDestructorName() { if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - astStack.pop(); // throw away the name node thats already on the stack - + // concatenate the '~' with the identifier token char[] chars = tokenListToNameCharArray(parser.getRuleTokens()); + IASTName name = nodeFactory.newName(chars); setOffsetAndLength(name); astStack.push(name); @@ -458,6 +453,31 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { } + /** + * destructor_type_name + * ::= '~' template_id_name + */ + public void consumeDestructorNameTemplateId() { + if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); + + ICPPASTTemplateId templateId = (ICPPASTTemplateId) astStack.peek(); + + IASTName oldName = templateId.getTemplateName(); + char[] newChars = ("~" + oldName).toCharArray(); //$NON-NLS-1$ + + IASTName newName = nodeFactory.newName(newChars); + + int offset = offset(parser.getLeftIToken()); + int length = offset - endOffset(oldName); + setOffsetAndLength(newName, offset, length); + + templateId.setTemplateName(newName); + + if(TRACE_AST_STACK) System.out.println(astStack); + } + + + /** * qualified_id * ::= '::' identifier_name @@ -1578,7 +1598,10 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { IASTName qualifiedId = subRuleQualifiedName(true); IASTDeclarator declarator = nodeFactory.newDeclarator(qualifiedId); setOffsetAndLength(declarator); - IASTSimpleDeclaration declaration = nodeFactory.newSimpleDeclaration(null); // no decl spec + // there has to be an empty specifier or... kaboom! + IASTDeclSpecifier emptySpecifier = nodeFactory.newSimpleDeclSpecifier(); + setOffsetAndLength(emptySpecifier, parser.getLeftIToken().getStartOffset(), 0); + IASTSimpleDeclaration declaration = nodeFactory.newSimpleDeclaration(emptySpecifier); setOffsetAndLength(declaration); declaration.addDeclarator(declarator); astStack.push(declaration); diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParser.java index 5328b5a0fca..57e3158b710 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParser.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParser.java @@ -378,1745 +378,1885 @@ public CPPExpressionStatementParser(String[] mapFrom) { // constructor } // - // Rule 37: unqualified_id_name ::= ~ class_name + // Rule 37: unqualified_id_name ::= ~ identifier_token // case 37: { action.builder. consumeDestructorName(); break; } // - // Rule 38: identifier_name ::= identifier_token + // Rule 38: unqualified_id_name ::= ~ template_id_name // case 38: { action.builder. + consumeDestructorNameTemplateId(); break; + } + + // + // Rule 39: identifier_name ::= identifier_token + // + case 39: { action.builder. consumeIdentifierName(); break; } // - // Rule 39: template_opt ::= template - // - case 39: { action.builder. - consumePlaceHolder(); break; - } - - // - // Rule 40: template_opt ::= $Empty + // Rule 40: template_opt ::= template // case 40: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 41: dcolon_opt ::= :: - // - case 41: { action.builder. consumePlaceHolder(); break; } // - // Rule 42: dcolon_opt ::= $Empty + // Rule 41: template_opt ::= $Empty // - case 42: { action.builder. + case 41: { action.builder. consumeEmpty(); break; } // - // Rule 43: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name + // Rule 42: dcolon_opt ::= :: + // + case 42: { action.builder. + consumePlaceHolder(); break; + } + + // + // Rule 43: dcolon_opt ::= $Empty // case 43: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 44: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name + // + case 44: { action.builder. consumeQualifiedId(true); break; } // - // Rule 44: qualified_id_name ::= :: identifier_name - // - case 44: { action.builder. - consumeGlobalQualifiedId(); break; - } - - // - // Rule 45: qualified_id_name ::= :: operator_function_id_name + // Rule 45: qualified_id_name ::= :: identifier_name // case 45: { action.builder. consumeGlobalQualifiedId(); break; } // - // Rule 46: qualified_id_name ::= :: template_id_name + // Rule 46: qualified_id_name ::= :: operator_function_id_name // case 46: { action.builder. consumeGlobalQualifiedId(); break; } // - // Rule 47: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template + // Rule 47: qualified_id_name ::= :: template_id_name // case 47: { action.builder. - consumeNestedNameSpecifier(true); break; + consumeGlobalQualifiedId(); break; } // - // Rule 48: nested_name_specifier ::= class_or_namespace_name :: + // Rule 48: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template // case 48: { action.builder. - consumeNestedNameSpecifier(false); break; - } - - // - // Rule 49: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template - // - case 49: { action.builder. consumeNestedNameSpecifier(true); break; } // - // Rule 50: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: + // Rule 49: nested_name_specifier ::= class_or_namespace_name :: // - case 50: { action.builder. + case 49: { action.builder. consumeNestedNameSpecifier(false); break; } // - // Rule 51: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name + // Rule 50: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template + // + case 50: { action.builder. + consumeNestedNameSpecifier(true); break; + } + + // + // Rule 51: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: // case 51: { action.builder. + consumeNestedNameSpecifier(false); break; + } + + // + // Rule 52: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name + // + case 52: { action.builder. consumeNameWithTemplateKeyword(); break; } // - // Rule 53: nested_name_specifier_opt ::= $Empty + // Rule 54: nested_name_specifier_opt ::= $Empty // - case 53: { action.builder. + case 54: { action.builder. consumeNestedNameSpecifierEmpty(); break; } // - // Rule 56: postfix_expression ::= postfix_expression [ expression ] + // Rule 57: postfix_expression ::= postfix_expression [ expression ] // - case 56: { action.builder. + case 57: { action.builder. consumeExpressionArraySubscript(); break; } // - // Rule 57: postfix_expression ::= postfix_expression ( expression_list_opt ) + // Rule 58: postfix_expression ::= postfix_expression ( expression_list_opt ) // - case 57: { action.builder. + case 58: { action.builder. consumeExpressionFunctionCall(); break; } // - // Rule 58: postfix_expression ::= simple_type_specifier ( expression_list_opt ) + // Rule 59: postfix_expression ::= simple_type_specifier ( expression_list_opt ) // - case 58: { action.builder. + case 59: { action.builder. consumeExpressionSimpleTypeConstructor(); break; } // - // Rule 59: postfix_expression ::= typename dcolon_opt nested_name_specifier identifier_name ( expression_list_opt ) - // - case 59: { action.builder. - consumeExpressionTypeName(); break; - } - - // - // Rule 60: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) + // 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 ::= postfix_expression . qualified_or_unqualified_name + // Rule 61: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) // case 61: { action.builder. + consumeExpressionTypeName(); break; + } + + // + // Rule 62: postfix_expression ::= postfix_expression . qualified_or_unqualified_name + // + case 62: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 62: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name + // Rule 63: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name // - case 62: { action.builder. + case 63: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 63: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name + // Rule 64: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name // - case 63: { action.builder. + case 64: { action.builder. consumeExpressionFieldReference(false, true); break; } // - // Rule 64: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name + // Rule 65: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name // - case 64: { action.builder. + case 65: { action.builder. consumeExpressionFieldReference(true, true); break; } // - // Rule 65: postfix_expression ::= postfix_expression . pseudo_destructor_name + // Rule 66: postfix_expression ::= postfix_expression . pseudo_destructor_name // - case 65: { action.builder. + case 66: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 66: postfix_expression ::= postfix_expression -> pseudo_destructor_name + // Rule 67: postfix_expression ::= postfix_expression -> pseudo_destructor_name // - case 66: { action.builder. + case 67: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 67: postfix_expression ::= postfix_expression ++ + // Rule 68: postfix_expression ::= postfix_expression ++ // - case 67: { action.builder. + case 68: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; } // - // Rule 68: postfix_expression ::= postfix_expression -- + // Rule 69: postfix_expression ::= postfix_expression -- // - case 68: { action.builder. + case 69: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; } // - // Rule 69: postfix_expression ::= dynamic_cast < type_id > ( expression ) + // Rule 70: postfix_expression ::= dynamic_cast < type_id > ( expression ) // - case 69: { action.builder. + case 70: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); break; } // - // Rule 70: postfix_expression ::= static_cast < type_id > ( expression ) + // Rule 71: postfix_expression ::= static_cast < type_id > ( expression ) // - case 70: { action.builder. + case 71: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_static_cast); break; } // - // Rule 71: postfix_expression ::= reinterpret_cast < type_id > ( expression ) + // Rule 72: postfix_expression ::= reinterpret_cast < type_id > ( expression ) // - case 71: { action.builder. + case 72: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); break; } // - // Rule 72: postfix_expression ::= const_cast < type_id > ( expression ) + // Rule 73: postfix_expression ::= const_cast < type_id > ( expression ) // - case 72: { action.builder. + case 73: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_const_cast); break; } // - // Rule 73: postfix_expression ::= typeid ( expression ) + // Rule 74: postfix_expression ::= typeid ( expression ) // - case 73: { action.builder. + case 74: { action.builder. consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break; } // - // Rule 74: postfix_expression ::= typeid ( type_id ) + // Rule 75: postfix_expression ::= typeid ( type_id ) // - case 74: { action.builder. + case 75: { action.builder. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid); break; } // - // Rule 75: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name - // - case 75: { action.builder. - consumePsudoDestructorName(true); break; - } - - // - // Rule 76: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name + // 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_opt destructor_type_name + // Rule 77: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name // case 77: { action.builder. + consumePsudoDestructorName(true); break; + } + + // + // Rule 78: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name + // + case 78: { action.builder. consumePsudoDestructorName(false); break; } // - // Rule 78: destructor_type_name ::= ~ type_name + // Rule 79: destructor_type_name ::= ~ identifier_token // - case 78: { action.builder. + case 79: { action.builder. consumeDestructorName(); break; } // - // Rule 82: unary_expression ::= ++ cast_expression + // Rule 80: destructor_type_name ::= ~ template_id_name // - case 82: { action.builder. + case 80: { action.builder. + consumeDestructorNameTemplateId(); break; + } + + // + // Rule 84: unary_expression ::= ++ cast_expression + // + case 84: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; } // - // Rule 83: unary_expression ::= -- cast_expression + // Rule 85: unary_expression ::= -- cast_expression // - case 83: { action.builder. + case 85: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; } // - // Rule 84: unary_expression ::= & cast_expression + // Rule 86: unary_expression ::= & cast_expression // - case 84: { action.builder. + case 86: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; } // - // Rule 85: unary_expression ::= * cast_expression + // Rule 87: unary_expression ::= * cast_expression // - case 85: { action.builder. + case 87: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; } // - // Rule 86: unary_expression ::= + cast_expression + // Rule 88: unary_expression ::= + cast_expression // - case 86: { action.builder. + case 88: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; } // - // Rule 87: unary_expression ::= - cast_expression + // Rule 89: unary_expression ::= - cast_expression // - case 87: { action.builder. + case 89: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; } // - // Rule 88: unary_expression ::= ~ cast_expression + // Rule 90: unary_expression ::= ~ cast_expression // - case 88: { action.builder. + case 90: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; } // - // Rule 89: unary_expression ::= ! cast_expression + // Rule 91: unary_expression ::= ! cast_expression // - case 89: { action.builder. + case 91: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; } // - // Rule 90: unary_expression ::= sizeof unary_expression + // Rule 92: unary_expression ::= sizeof unary_expression // - case 90: { action.builder. + case 92: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; } // - // Rule 91: unary_expression ::= sizeof ( type_id ) + // Rule 93: unary_expression ::= sizeof ( type_id ) // - case 91: { action.builder. + case 93: { action.builder. consumeExpressionTypeId(ICPPASTTypeIdExpression.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 194: iteration_statement ::= while ( condition ) statement + // Rule 196: iteration_statement ::= while ( condition ) statement // - case 194: { action.builder. + case 196: { action.builder. consumeStatementWhileLoop(); break; } // - // Rule 195: iteration_statement ::= do statement while ( expression ) ; + // Rule 197: iteration_statement ::= do statement while ( expression ) ; // - case 195: { action.builder. + case 197: { action.builder. consumeStatementDoLoop(); break; } // - // Rule 196: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement - // - case 196: { action.builder. - consumeStatementForLoop(); break; - } - - // - // Rule 197: iteration_statement ::= for ( simple_declaration_with_declspec expression_opt ; expression_opt ) statement - // - case 197: { action.builder. - consumeStatementForLoop(); break; - } - - // - // Rule 198: jump_statement ::= break ; + // Rule 198: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement // case 198: { action.builder. + consumeStatementForLoop(); break; + } + + // + // Rule 199: iteration_statement ::= for ( simple_declaration_with_declspec expression_opt ; expression_opt ) statement + // + case 199: { action.builder. + consumeStatementForLoop(); break; + } + + // + // Rule 200: jump_statement ::= break ; + // + case 200: { action.builder. consumeStatementBreak(); break; } // - // Rule 199: jump_statement ::= continue ; + // Rule 201: jump_statement ::= continue ; // - case 199: { action.builder. + case 201: { action.builder. consumeStatementContinue(); break; } // - // Rule 200: jump_statement ::= return expression ; + // Rule 202: jump_statement ::= return expression ; // - case 200: { action.builder. + case 202: { action.builder. consumeStatementReturn(true); break; } // - // Rule 201: jump_statement ::= return ; + // Rule 203: jump_statement ::= return ; // - case 201: { action.builder. + case 203: { action.builder. consumeStatementReturn(false); break; } // - // Rule 202: jump_statement ::= goto identifier_token ; + // Rule 204: jump_statement ::= goto identifier_token ; // - case 202: { action.builder. + case 204: { action.builder. consumeStatementGoto(); break; } // - // Rule 203: declaration_statement ::= block_declaration + // Rule 205: declaration_statement ::= block_declaration // - case 203: { action.builder. + case 205: { action.builder. consumeStatementDeclaration(); break; } // - // Rule 204: declaration_statement ::= function_definition + // Rule 206: declaration_statement ::= function_definition // - case 204: { action.builder. + case 206: { action.builder. consumeStatementDeclaration(); break; } // - // Rule 221: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; + // Rule 223: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; // - case 221: { action.builder. + case 223: { action.builder. consumeDeclarationSimple(true, true); break; } // - // Rule 222: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; + // Rule 224: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; // - case 222: { action.builder. + case 224: { action.builder. consumeDeclarationSimple(true, false); break; } // - // Rule 223: declaration_specifiers ::= simple_declaration_specifiers + // Rule 225: declaration_specifiers ::= simple_declaration_specifiers // - case 223: { action.builder. + case 225: { action.builder. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 224: declaration_specifiers ::= class_declaration_specifiers - // - case 224: { action.builder. - consumeDeclarationSpecifiersComposite(); break; - } - - // - // Rule 225: declaration_specifiers ::= elaborated_declaration_specifiers - // - case 225: { action.builder. - consumeDeclarationSpecifiersComposite(); break; - } - - // - // Rule 226: declaration_specifiers ::= enum_declaration_specifiers + // Rule 226: declaration_specifiers ::= class_declaration_specifiers // case 226: { action.builder. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 227: declaration_specifiers ::= type_name_declaration_specifiers + // Rule 227: declaration_specifiers ::= elaborated_declaration_specifiers // case 227: { action.builder. + consumeDeclarationSpecifiersComposite(); break; + } + + // + // Rule 228: declaration_specifiers ::= enum_declaration_specifiers + // + case 228: { action.builder. + consumeDeclarationSpecifiersComposite(); break; + } + + // + // Rule 229: declaration_specifiers ::= type_name_declaration_specifiers + // + case 229: { action.builder. consumeDeclarationSpecifiersTypeName(); break; } // - // Rule 228: declaration_specifiers_opt ::= $Empty + // Rule 230: declaration_specifiers_opt ::= $Empty // - case 228: { action.builder. + case 230: { action.builder. consumeEmpty(); break; } // - // Rule 233: no_type_declaration_specifier ::= friend + // Rule 235: no_type_declaration_specifier ::= friend // - case 233: { action.builder. + case 235: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 234: no_type_declaration_specifier ::= typedef + // Rule 236: no_type_declaration_specifier ::= typedef // - case 234: { action.builder. + case 236: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 262: simple_type_specifier ::= simple_type_specifier_token + // Rule 256: storage_class_specifier ::= auto + // + case 256: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 257: storage_class_specifier ::= register + // + case 257: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 258: storage_class_specifier ::= static + // + case 258: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 259: storage_class_specifier ::= extern + // + case 259: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 260: storage_class_specifier ::= mutable + // + case 260: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 261: function_specifier ::= inline + // + case 261: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 262: function_specifier ::= virtual // case 262: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 276: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name + // Rule 263: function_specifier ::= explicit // - case 276: { action.builder. - consumeQualifiedId(false); break; + case 263: { action.builder. + consumeDeclSpecToken(); break; } // - // Rule 277: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name + // Rule 264: simple_type_specifier ::= char + // + case 264: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 265: simple_type_specifier ::= wchar_t + // + case 265: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 266: simple_type_specifier ::= bool + // + case 266: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 267: simple_type_specifier ::= short + // + case 267: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 268: simple_type_specifier ::= int + // + case 268: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 269: simple_type_specifier ::= long + // + case 269: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 270: simple_type_specifier ::= signed + // + case 270: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 271: simple_type_specifier ::= unsigned + // + case 271: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 272: simple_type_specifier ::= float + // + case 272: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 273: simple_type_specifier ::= double + // + case 273: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 274: simple_type_specifier ::= void + // + case 274: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 277: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name // case 277: { action.builder. consumeQualifiedId(false); break; } // - // Rule 278: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name + // Rule 278: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name // case 278: { action.builder. consumeQualifiedId(false); break; } // - // Rule 279: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name + // Rule 279: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name // case 279: { action.builder. + consumeQualifiedId(false); break; + } + + // + // Rule 280: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name + // + case 280: { action.builder. consumeQualifiedId(true); break; } // - // Rule 280: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name + // Rule 281: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name // - case 280: { action.builder. + case 281: { action.builder. consumeTypeSpecifierElaborated(false); break; } // - // Rule 281: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name + // Rule 282: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name // - case 281: { action.builder. + case 282: { action.builder. consumeTypeSpecifierElaborated(true); break; } // - // Rule 282: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name + // Rule 283: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name // - case 282: { action.builder. + case 283: { action.builder. consumeTypeSpecifierElaborated(false); break; } // - // Rule 283: enum_specifier ::= enum { enumerator_list_opt } + // Rule 284: enum_specifier ::= enum { enumerator_list_opt } // - case 283: { action.builder. + case 284: { action.builder. consumeTypeSpecifierEnumeration(false); break; } // - // Rule 284: enum_specifier ::= enum identifier_token { enumerator_list_opt } + // Rule 285: enum_specifier ::= enum identifier_token { enumerator_list_opt } // - case 284: { action.builder. + case 285: { action.builder. consumeTypeSpecifierEnumeration(true); break; } // - // Rule 289: enumerator_definition ::= identifier_token + // Rule 290: enumerator_definition ::= identifier_token // - case 289: { action.builder. + case 290: { action.builder. consumeEnumerator(false); break; } // - // Rule 290: enumerator_definition ::= identifier_token = constant_expression + // Rule 291: enumerator_definition ::= identifier_token = constant_expression // - case 290: { action.builder. + case 291: { action.builder. consumeEnumerator(true); break; } // - // Rule 296: original_namespace_definition ::= namespace identifier_name { declaration_seq_opt } - // - case 296: { action.builder. - consumeNamespaceDefinition(true); break; - } - - // - // Rule 297: extension_namespace_definition ::= namespace original_namespace_name { declaration_seq_opt } + // Rule 297: original_namespace_definition ::= namespace identifier_name { declaration_seq_opt } // case 297: { action.builder. consumeNamespaceDefinition(true); break; } // - // Rule 298: unnamed_namespace_definition ::= namespace { declaration_seq_opt } + // Rule 298: extension_namespace_definition ::= namespace original_namespace_name { declaration_seq_opt } // case 298: { action.builder. + consumeNamespaceDefinition(true); break; + } + + // + // Rule 299: unnamed_namespace_definition ::= namespace { declaration_seq_opt } + // + case 299: { action.builder. consumeNamespaceDefinition(false); break; } // - // Rule 299: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 300: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; // - case 299: { action.builder. + case 300: { action.builder. consumeNamespaceAliasDefinition(); break; } // - // Rule 300: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; + // Rule 301: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; // - case 300: { action.builder. + case 301: { action.builder. consumeUsingDeclaration(); break; } // - // Rule 301: typename_opt ::= typename + // Rule 302: typename_opt ::= typename // - case 301: { action.builder. + case 302: { action.builder. consumePlaceHolder(); break; } // - // Rule 302: typename_opt ::= $Empty + // Rule 303: typename_opt ::= $Empty // - case 302: { action.builder. + case 303: { action.builder. consumeEmpty(); break; } // - // Rule 303: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 304: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; // - case 303: { action.builder. + case 304: { action.builder. consumeUsingDirective(); break; } // - // Rule 304: asm_definition ::= asm ( stringlit ) ; + // Rule 305: asm_definition ::= asm ( stringlit ) ; // - case 304: { action.builder. + case 305: { action.builder. consumeDeclarationASM(); break; } // - // Rule 305: linkage_specification ::= extern stringlit { declaration_seq_opt } - // - case 305: { action.builder. - consumeLinkageSpecification(); break; - } - - // - // Rule 306: linkage_specification ::= extern stringlit declaration + // Rule 306: linkage_specification ::= extern stringlit { declaration_seq_opt } // case 306: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 311: init_declarator_complete ::= init_declarator + // Rule 307: linkage_specification ::= extern stringlit declaration // - case 311: { action.builder. + case 307: { action.builder. + consumeLinkageSpecification(); break; + } + + // + // Rule 312: init_declarator_complete ::= init_declarator + // + case 312: { action.builder. consumeInitDeclaratorComplete(); break; } // - // Rule 313: init_declarator ::= declarator initializer + // Rule 314: init_declarator ::= declarator initializer // - case 313: { action.builder. + case 314: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 315: declarator ::= ptr_operator_seq direct_declarator + // Rule 316: declarator ::= ptr_operator_seq direct_declarator // - case 315: { action.builder. + case 316: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 317: function_declarator ::= ptr_operator_seq direct_declarator + // Rule 318: function_declarator ::= ptr_operator_seq direct_declarator // - case 317: { action.builder. + case 318: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 321: basic_direct_declarator ::= declarator_id_name + // Rule 322: basic_direct_declarator ::= declarator_id_name // - case 321: { action.builder. + case 322: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 322: basic_direct_declarator ::= ( declarator ) + // Rule 323: basic_direct_declarator ::= ( declarator ) // - case 322: { action.builder. + case 323: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 323: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 324: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 323: { action.builder. + case 324: { 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 + // Rule 325: array_direct_declarator ::= array_direct_declarator array_modifier // case 325: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 326: array_modifier ::= [ constant_expression ] + // 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 327: array_modifier ::= [ ] + // Rule 328: array_modifier ::= [ ] // - case 327: { action.builder. + case 328: { action.builder. consumeDirectDeclaratorArrayModifier(false); break; } // - // Rule 328: ptr_operator ::= * cv_qualifier_seq_opt + // Rule 329: ptr_operator ::= * cv_qualifier_seq_opt // - case 328: { action.builder. + case 329: { action.builder. consumePointer(); break; } // - // Rule 329: ptr_operator ::= & + // Rule 330: ptr_operator ::= & // - case 329: { action.builder. + case 330: { action.builder. consumeReferenceOperator(); break; } // - // Rule 330: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt + // Rule 331: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt // - case 330: { action.builder. + case 331: { action.builder. consumePointerToMember(); break; } // - // Rule 336: cv_qualifier ::= const - // - case 336: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 337: cv_qualifier ::= volatile + // Rule 337: cv_qualifier ::= const // case 337: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 339: declarator_id_name ::= nested_name_specifier template_opt unqualified_id_name + // Rule 338: cv_qualifier ::= volatile // - case 339: { action.builder. + 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 340: type_id ::= type_specifier_seq + // Rule 341: type_id ::= type_specifier_seq // - case 340: { action.builder. + case 341: { action.builder. consumeTypeId(false); break; } // - // Rule 341: type_id ::= type_specifier_seq abstract_declarator + // Rule 342: type_id ::= type_specifier_seq abstract_declarator // - case 341: { action.builder. + case 342: { action.builder. consumeTypeId(true); break; } // - // Rule 344: abstract_declarator ::= ptr_operator_seq + // Rule 345: abstract_declarator ::= ptr_operator_seq // - case 344: { action.builder. + case 345: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 345: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator + // Rule 346: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator // - case 345: { action.builder. + case 346: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 349: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 350: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - case 349: { action.builder. + case 350: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 350: array_direct_abstract_declarator ::= array_modifier + // Rule 351: array_direct_abstract_declarator ::= array_modifier // - case 350: { action.builder. + case 351: { action.builder. consumeDirectDeclaratorArrayDeclarator(false); break; } // - // Rule 351: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier - // - case 351: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 352: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier + // Rule 352: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier // case 352: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 353: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // 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. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 354: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 355: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 354: { action.builder. + case 355: { action.builder. consumeDirectDeclaratorFunctionDeclarator(false); break; } // - // Rule 355: parameter_declaration_clause ::= parameter_declaration_list_opt ... - // - case 355: { action.builder. - consumePlaceHolder(); break; - } - - // - // Rule 356: parameter_declaration_clause ::= parameter_declaration_list_opt + // Rule 356: parameter_declaration_clause ::= parameter_declaration_list_opt ... // case 356: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 357: parameter_declaration_clause ::= parameter_declaration_list , ... - // - case 357: { action.builder. consumePlaceHolder(); break; } // - // Rule 363: abstract_declarator_opt ::= $Empty + // Rule 357: parameter_declaration_clause ::= parameter_declaration_list_opt // - case 363: { action.builder. + case 357: { action.builder. consumeEmpty(); break; } // - // Rule 364: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // Rule 358: parameter_declaration_clause ::= parameter_declaration_list , ... + // + case 358: { action.builder. + consumePlaceHolder(); break; + } + + // + // Rule 364: abstract_declarator_opt ::= $Empty // case 364: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 365: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // + case 365: { action.builder. consumeParameterDeclaration(); break; } // - // Rule 365: parameter_declaration ::= declaration_specifiers + // Rule 366: parameter_declaration ::= declaration_specifiers // - case 365: { action.builder. + case 366: { action.builder. consumeParameterDeclarationWithoutDeclarator(); break; } // - // Rule 367: parameter_init_declarator ::= declarator = parameter_initializer + // Rule 368: parameter_init_declarator ::= declarator = parameter_initializer // - case 367: { action.builder. + case 368: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 369: parameter_init_declarator ::= abstract_declarator = parameter_initializer - // - case 369: { action.builder. - consumeDeclaratorWithInitializer(true); break; - } - - // - // Rule 370: parameter_init_declarator ::= = parameter_initializer + // Rule 370: parameter_init_declarator ::= abstract_declarator = parameter_initializer // case 370: { action.builder. + consumeDeclaratorWithInitializer(true); break; + } + + // + // Rule 371: parameter_init_declarator ::= = parameter_initializer + // + case 371: { action.builder. consumeDeclaratorWithInitializer(false); break; } // - // Rule 371: parameter_initializer ::= assignment_expression + // Rule 372: parameter_initializer ::= assignment_expression // - case 371: { action.builder. + case 372: { action.builder. consumeInitializer(); break; } // - // Rule 372: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body + // Rule 373: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body // - case 372: { action.builder. + case 373: { action.builder. consumeFunctionDefinition(false); break; } // - // Rule 373: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq + // Rule 374: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq // - case 373: { action.builder. + case 374: { action.builder. consumeFunctionDefinition(true); break; } // - // Rule 376: initializer ::= ( expression_list ) + // Rule 377: initializer ::= ( expression_list ) // - case 376: { action.builder. + case 377: { action.builder. consumeInitializerConstructor(); break; } // - // Rule 377: initializer_clause ::= assignment_expression + // Rule 378: initializer_clause ::= assignment_expression // - case 377: { action.builder. + case 378: { action.builder. consumeInitializer(); break; } // - // Rule 378: initializer_clause ::= { initializer_list , } - // - case 378: { action.builder. - consumeInitializerList(); break; - } - - // - // Rule 379: initializer_clause ::= { initializer_list } + // Rule 379: initializer_clause ::= { initializer_list , } // case 379: { action.builder. consumeInitializerList(); break; } // - // Rule 380: initializer_clause ::= { } + // Rule 380: initializer_clause ::= { initializer_list } // case 380: { action.builder. consumeInitializerList(); break; } // - // Rule 385: class_specifier ::= class_head { member_declaration_list_opt } + // Rule 381: initializer_clause ::= { } // - case 385: { action.builder. + case 381: { action.builder. + consumeInitializerList(); break; + } + + // + // Rule 386: class_specifier ::= class_head { member_declaration_list_opt } + // + case 386: { action.builder. consumeClassSpecifier(); break; } // - // Rule 386: class_head ::= class_keyword identifier_name_opt base_clause_opt - // - case 386: { action.builder. - consumeClassHead(false); break; - } - - // - // Rule 387: class_head ::= class_keyword template_id_name base_clause_opt + // Rule 387: class_head ::= class_keyword identifier_name_opt base_clause_opt // case 387: { action.builder. consumeClassHead(false); break; } // - // Rule 388: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt + // Rule 388: class_head ::= class_keyword template_id_name base_clause_opt // case 388: { action.builder. - consumeClassHead(true); break; + consumeClassHead(false); break; } // - // Rule 389: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt + // Rule 389: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt // case 389: { action.builder. consumeClassHead(true); break; } // - // Rule 391: identifier_name_opt ::= $Empty + // Rule 390: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt // - case 391: { action.builder. + case 390: { action.builder. + consumeClassHead(true); break; + } + + // + // Rule 392: identifier_name_opt ::= $Empty + // + case 392: { action.builder. consumeEmpty(); break; } // - // Rule 395: visibility_label ::= access_specifier_keyword : + // Rule 396: visibility_label ::= access_specifier_keyword : // - case 395: { action.builder. + case 396: { action.builder. consumeVisibilityLabel(); break; } // - // Rule 396: member_declaration ::= declaration_specifiers_opt member_declarator_list ; + // Rule 397: member_declaration ::= declaration_specifiers_opt member_declarator_list ; // - case 396: { action.builder. + case 397: { action.builder. consumeDeclarationSimple(true, true); break; } // - // Rule 397: member_declaration ::= declaration_specifiers_opt ; + // Rule 398: member_declaration ::= declaration_specifiers_opt ; // - case 397: { action.builder. + case 398: { action.builder. consumeDeclarationSimple(false, false); break; } // - // Rule 400: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; + // Rule 401: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; // - case 400: { action.builder. + case 401: { action.builder. consumeMemberDeclarationQualifiedId(); break; } // - // Rule 404: member_declaration ::= ERROR_TOKEN + // Rule 405: member_declaration ::= ERROR_TOKEN // - case 404: { action.builder. + case 405: { action.builder. consumeDeclarationProblem(); break; } // - // Rule 412: member_declarator ::= declarator constant_initializer + // Rule 413: member_declarator ::= declarator constant_initializer // - case 412: { action.builder. + case 413: { action.builder. consumeMemberDeclaratorWithInitializer(); break; } // - // Rule 413: member_declarator ::= bit_field_declarator : constant_expression + // Rule 414: member_declarator ::= bit_field_declarator : constant_expression // - case 413: { action.builder. + case 414: { action.builder. consumeBitField(true); break; } // - // Rule 414: member_declarator ::= : constant_expression + // Rule 415: member_declarator ::= : constant_expression // - case 414: { action.builder. + case 415: { action.builder. consumeBitField(false); break; } // - // Rule 415: bit_field_declarator ::= identifier_name + // Rule 416: bit_field_declarator ::= identifier_name // - case 415: { action.builder. + case 416: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 416: constant_initializer ::= = constant_expression + // Rule 417: constant_initializer ::= = constant_expression // - case 416: { action.builder. + case 417: { action.builder. consumeInitializer(); break; } // - // Rule 422: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 423: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 422: { action.builder. + case 423: { action.builder. consumeBaseSpecifier(false, false); break; } // - // Rule 423: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name - // - case 423: { action.builder. - consumeBaseSpecifier(true, true); break; - } - - // - // Rule 424: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name + // Rule 424: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name // case 424: { action.builder. consumeBaseSpecifier(true, true); break; } // - // Rule 425: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name + // Rule 425: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name // case 425: { action.builder. + consumeBaseSpecifier(true, true); break; + } + + // + // Rule 426: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name + // + case 426: { action.builder. consumeBaseSpecifier(true, false); break; } // - // Rule 426: access_specifier_keyword ::= private - // - case 426: { action.builder. - consumeAccessKeywordToken(); break; - } - - // - // Rule 427: access_specifier_keyword ::= protected + // Rule 427: access_specifier_keyword ::= private // case 427: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 428: access_specifier_keyword ::= public + // Rule 428: access_specifier_keyword ::= protected // case 428: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 430: access_specifier_keyword_opt ::= $Empty + // Rule 429: access_specifier_keyword ::= public // - case 430: { action.builder. + case 429: { action.builder. + consumeAccessKeywordToken(); break; + } + + // + // Rule 431: access_specifier_keyword_opt ::= $Empty + // + case 431: { action.builder. consumeEmpty(); break; } // - // Rule 431: conversion_function_id_name ::= operator conversion_type_id + // Rule 432: conversion_function_id_name ::= operator conversion_type_id // - case 431: { action.builder. + case 432: { action.builder. consumeConversionName(); break; } // - // Rule 432: conversion_type_id ::= type_specifier_seq conversion_declarator + // Rule 433: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 432: { action.builder. + case 433: { action.builder. consumeTypeId(true); break; } // - // Rule 433: conversion_type_id ::= type_specifier_seq + // Rule 434: conversion_type_id ::= type_specifier_seq // - case 433: { action.builder. + case 434: { action.builder. consumeTypeId(false); break; } // - // Rule 434: conversion_declarator ::= ptr_operator_seq + // Rule 435: conversion_declarator ::= ptr_operator_seq // - case 434: { action.builder. + case 435: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 440: mem_initializer ::= mem_initializer_name ( expression_list_opt ) + // Rule 441: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 440: { action.builder. + case 441: { action.builder. consumeConstructorChainInitializer(); break; } // - // Rule 441: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 442: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name // - case 441: { action.builder. + case 442: { action.builder. consumeQualifiedId(false); break; } // - // Rule 444: operator_function_id_name ::= operator_id_name < template_argument_list_opt > + // Rule 445: operator_function_id_name ::= operator_id_name < template_argument_list_opt > // - case 444: { action.builder. + case 445: { action.builder. consumeTemplateId(); break; } // - // Rule 445: operator_id_name ::= operator overloadable_operator + // Rule 446: operator_id_name ::= operator overloadable_operator // - case 445: { action.builder. + case 446: { action.builder. consumeOperatorName(); break; } // - // Rule 488: template_declaration ::= export_opt template < template_parameter_list > declaration + // Rule 489: template_declaration ::= export_opt template < template_parameter_list > declaration // - case 488: { action.builder. + case 489: { action.builder. consumeTemplateDeclaration(); break; } // - // Rule 489: export_opt ::= export + // Rule 490: export_opt ::= export // - case 489: { action.builder. + case 490: { action.builder. consumePlaceHolder(); break; } // - // Rule 490: export_opt ::= $Empty + // Rule 491: export_opt ::= $Empty // - case 490: { action.builder. + case 491: { action.builder. consumeEmpty(); break; } // - // Rule 494: template_parameter ::= parameter_declaration + // Rule 495: template_parameter ::= parameter_declaration // - case 494: { action.builder. + case 495: { action.builder. consumeTemplateParamterDeclaration(); break; } // - // Rule 495: type_parameter ::= class identifier_name_opt - // - case 495: { action.builder. - consumeSimpleTypeTemplateParameter(false); break; - } - - // - // Rule 496: type_parameter ::= class identifier_name_opt = type_id + // Rule 496: type_parameter ::= class identifier_name_opt // case 496: { action.builder. - consumeSimpleTypeTemplateParameter(true); break; - } - - // - // Rule 497: type_parameter ::= typename identifier_name_opt - // - case 497: { action.builder. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 498: type_parameter ::= typename identifier_name_opt = type_id + // Rule 497: type_parameter ::= class identifier_name_opt = type_id // - case 498: { action.builder. + case 497: { action.builder. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 499: type_parameter ::= template < template_parameter_list > class identifier_name_opt + // Rule 498: type_parameter ::= typename identifier_name_opt + // + case 498: { action.builder. + consumeSimpleTypeTemplateParameter(false); break; + } + + // + // Rule 499: type_parameter ::= typename identifier_name_opt = type_id // case 499: { action.builder. + consumeSimpleTypeTemplateParameter(true); break; + } + + // + // Rule 500: type_parameter ::= template < template_parameter_list > class identifier_name_opt + // + case 500: { action.builder. consumeTemplatedTypeTemplateParameter(false); break; } // - // Rule 500: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression + // Rule 501: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression // - case 500: { action.builder. + case 501: { action.builder. consumeTemplatedTypeTemplateParameter(true); break; } // - // Rule 501: template_id_name ::= identifier_name < template_argument_list_opt > + // Rule 502: template_id_name ::= identifier_name < template_argument_list_opt > // - case 501: { action.builder. + case 502: { action.builder. consumeTemplateId(); break; } // - // Rule 509: explicit_instantiation ::= template declaration + // Rule 510: explicit_instantiation ::= template declaration // - case 509: { action.builder. + case 510: { action.builder. consumeTemplateExplicitInstantiation(); break; } // - // Rule 510: explicit_specialization ::= template < > declaration + // Rule 511: explicit_specialization ::= template < > declaration // - case 510: { action.builder. + case 511: { action.builder. consumeTemplateExplicitSpecialization(); break; } // - // Rule 511: try_block ::= try compound_statement handler_seq + // Rule 512: try_block ::= try compound_statement handler_seq // - case 511: { action.builder. + case 512: { action.builder. consumeStatementTryBlock(); break; } // - // Rule 514: handler ::= catch ( exception_declaration ) compound_statement + // Rule 515: handler ::= catch ( exception_declaration ) compound_statement // - case 514: { action.builder. + case 515: { action.builder. consumeStatementCatchHandler(false); break; } // - // Rule 515: handler ::= catch ( ... ) compound_statement + // Rule 516: handler ::= catch ( ... ) compound_statement // - case 515: { action.builder. + case 516: { action.builder. consumeStatementCatchHandler(true); break; } // - // Rule 516: exception_declaration ::= type_specifier_seq declarator - // - case 516: { action.builder. - consumeDeclarationSimple(true, false); break; - } - - // - // Rule 517: exception_declaration ::= type_specifier_seq abstract_declarator + // Rule 517: exception_declaration ::= type_specifier_seq declarator // case 517: { action.builder. consumeDeclarationSimple(true, false); break; } // - // Rule 518: exception_declaration ::= type_specifier_seq + // Rule 518: exception_declaration ::= type_specifier_seq abstract_declarator // case 518: { action.builder. + consumeDeclarationSimple(true, false); break; + } + + // + // Rule 519: exception_declaration ::= type_specifier_seq + // + case 519: { action.builder. consumeDeclarationSimple(false, false); break; } // - // Rule 526: expression_parser_start ::= ERROR_TOKEN + // Rule 527: expression_parser_start ::= ERROR_TOKEN // - case 526: { action.builder. + case 527: { action.builder. consumeExpressionProblem(); break; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParserprs.java index a928d340bed..ad24e22176c 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParserprs.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParserprs.java @@ -40,471 +40,454 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse 0,0,1,1,1,1,1,1,1,1, 1,0,1,2,1,1,1,1,1,1, 1,1,1,1,1,1,1,3,1,1, - 1,1,1,1,1,1,2,1,1,0, - 1,0,4,2,2,2,3,2,3,2, - 2,1,0,1,1,4,4,4,8,8, - 3,3,4,4,3,3,2,2,7,7, - 7,7,4,4,5,6,3,2,1,1, - 1,2,2,2,2,2,2,2,2,2, - 4,7,9,3,0,1,2,2,1,2, - 3,4,1,0,3,1,0,3,5,1, - 4,1,3,3,1,3,3,3,1,3, - 3,1,3,3,1,3,3,3,3,1, - 3,3,1,3,1,3,1,3,1,3, - 1,3,1,5,1,2,1,1,3,3, - 3,3,3,3,3,3,3,3,3,1, - 2,1,3,1,0,1,0,1,1,0, - 1,1,1,1,1,1,1,1,1,3, - 3,2,2,1,4,2,1,2,5,7, - 5,1,4,5,7,9,8,2,2,3, - 2,3,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,2,1,0, - 4,4,2,2,2,2,2,0,1,1, - 1,1,1,1,1,2,1,2,2,2, - 1,1,2,2,1,2,2,1,2,2, - 1,2,2,1,1,1,1,1,1,1, + 1,1,1,1,1,1,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,5,7,9,8,2, + 2,3,2,3,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,2, + 1,0,4,4,2,2,2,2,2,0, + 1,1,1,1,1,1,1,2,1,2, + 2,2,1,1,2,2,1,2,2,1, + 2,2,1,2,2,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,3,4,4,5,4, - 5,4,5,6,1,3,1,0,1,3, - 1,1,1,1,1,6,6,5,7,6, - 1,0,6,5,6,4,1,3,1,0, - 1,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,1, - 2,2,9,8,2,1,3,1,3,1, - 0,1,0,2,1,1,3,1,3,2, - 1,5,8,1,2,3,1,5,4,3, - 1,3,1,1,5,4,4,5,5,1, - 0,1,1,1,2,4,2,2,1,5, - 1,1,1,1,1,2,1,0,1,3, - 1,2,3,2,1,2,2,1,0,1, - 3,3,5,5,4,1,1,1,1,0, - 2,2,1,2,2,1,0,1,3,4, - 3,1,1,5,2,1,1,3,3,1, + 1,1,1,1,1,1,3,4,4,5, + 4,5,4,5,6,1,3,1,0,1, + 3,1,1,1,1,1,6,6,5,7, + 6,1,0,6,5,6,4,1,3,1, + 0,1,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, + 1,2,2,9,8,2,1,3,1,3, + 1,0,1,0,2,1,1,3,1,3, + 2,1,5,8,1,2,3,1,5,4, + 3,1,3,1,1,5,4,4,5,5, + 1,0,1,1,1,2,4,2,2,1, + 5,1,1,1,1,1,2,1,0,1, + 3,1,2,3,2,1,2,2,1,0, + 1,3,3,5,5,4,1,1,1,1, + 0,2,2,1,2,2,1,0,1,3, + 4,3,1,1,5,2,1,1,3,3, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,2,2,7,1,0, - 1,3,1,1,2,4,2,4,7,9, - 5,1,3,1,0,1,1,1,2,4, - 4,1,2,5,5,3,3,1,4,3, - 1,0,1,3,2,1,-62,0,0,0, - -2,0,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,2,2,7,1, + 0,1,3,1,1,2,4,2,4,7, + 9,5,1,3,1,0,1,1,1,2, + 4,4,1,2,5,5,3,3,1,4, + 3,1,0,1,3,2,1,-62,0,0, + 0,-64,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,-11, - 0,0,0,0,0,0,0,0,0,-126, - 0,0,0,0,0,-5,0,0,-71,0, - 0,0,-3,0,0,0,0,0,0,0, - -53,-363,-92,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-2,0, + 0,0,0,0,-416,0,0,0,-321,0, + 0,0,-5,0,0,0,0,0,-149,0, + 0,0,-91,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-6,0,0,0,0, - 0,0,0,0,0,0,0,-193,0,0, - 0,-19,0,0,0,0,0,0,0,0, + 0,0,0,0,-405,0,0,0,0,-74, + 0,0,0,0,0,0,0,-242,-6,-50, + 0,0,0,0,0,0,0,0,-3,0, + 0,-49,-123,0,0,0,0,0,-52,0, + -7,-146,0,0,0,0,0,0,-65,-148, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-7,0,-514, - 0,0,0,0,0,0,0,0,0,0, - 0,-49,-8,0,-228,0,0,-224,0,0, + 0,0,0,0,0,0,0,-226,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,0,0, + 0,-8,0,0,0,0,0,0,-177,0, + 0,0,-128,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,0,0,-9,0,0,0,0, + 0,0,-455,0,0,0,0,0,0,-129, + -135,0,0,0,-178,0,0,-82,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-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,-53,0,0,0,0,0,0,0, + 0,0,0,-56,0,0,0,0,0,-16, + 0,0,0,-262,-10,0,0,0,0,-515, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-205,0,0,0,0,-290,0,0,0, + 0,0,0,0,0,0,0,-340,0,0, + -525,0,0,0,-12,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,-113,0,0, - 0,0,0,-263,0,0,0,-118,0,-16, - 0,0,0,-57,-59,0,0,0,0,-130, + 0,-350,0,0,0,0,0,0,-335,0, + 0,-4,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-333,0, + 0,0,-230,0,0,0,0,0,-126,0, + 0,0,-48,0,0,-13,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,-375,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-186,0, + 0,0,-315,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-140,0,0,0,0,0, + 0,0,0,-246,0,0,0,0,0,0, + -324,0,0,-237,0,0,0,0,0,0, + 0,-57,0,0,-316,0,0,0,-216,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-300,0,0,0, + 0,0,0,0,0,-15,0,0,-28,0, + 0,0,-136,0,0,-476,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,0,0,0,0,0,0,0,-29, + 0,0,-313,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,0,-30,0,0,0,0,0,0, + 0,0,0,-353,0,0,0,0,0,-41, + 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,-435,0,0,-142,0,0,0, + 0,-94,0,0,0,-265,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-318,0,0,0,0,-366,0, + 0,0,0,0,0,0,0,0,-31,-383, + 0,0,-95,0,0,0,-401,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-32,0,0,0,0,-450, + 0,0,0,0,0,0,-184,0,0,-59, + 0,0,0,-96,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-33,0,0,0,0,0, + -34,-282,0,0,-97,0,0,0,-35,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-36,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-37,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,0,0,0,0,0,0,0,0, - 0,0,-9,0,0,0,0,0,0,0, - 0,-10,0,0,-142,0,0,0,0,-77, + 0,0,-60,-38,0,0,-99,0,0,0, + -40,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,-421,0,0, + -185,0,0,-107,0,0,0,-100,0,0, + 0,-55,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-58, + 0,0,0,0,0,0,0,0,-506,0, + 0,-187,0,0,-108,0,0,0,-101,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-175,0, - 0,0,-222,0,0,0,0,0,0,0, + -66,0,0,0,0,0,0,0,0,-507, + 0,0,-189,0,0,-67,0,0,0,-102, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-117,0,0,0,0, - -50,-56,0,0,0,0,0,0,0,0, - -184,0,0,0,0,-12,0,-512,0,0, - 0,-13,0,0,0,0,0,0,0,0, + 0,-69,0,0,0,0,-209,0,0,0, + 0,0,0,-192,0,0,-114,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,-70,0,0,0,0,0,0,0, + 0,-109,0,0,-203,0,0,-147,0,0, + 0,-104,0,0,0,-110,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,-112,0,0,-153,0,0,-199,-294, + 0,0,-133,0,0,0,-119,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-260,0,0,0,0,-259, + 0,0,0,-137,0,0,-144,0,0,-138, + 0,-217,0,0,0,-373,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,0, + 0,0,0,-212,0,0,0,0,0,-328, + -509,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -15,0,0,0,0,0,-120,0,0,-20, - 0,0,0,-258,0,0,0,0,0,0, + 0,-154,0,0,0,0,0,0,0,0, + 0,-312,0,0,0,-410,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-65,0,0,0,-60,-28,-522,0, + 0,0,0,-155,0,0,0,0,-208,0, + 0,0,0,0,0,-156,0,0,-326,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-29,0,0,0,0,0,0,0,0, - 0,-180,0,0,0,0,0,0,0,0, - -72,0,0,0,-418,0,0,0,0,0, - 0,0,-30,0,0,0,0,0,-4,0, + -273,0,0,0,0,-232,0,0,0,-157, + 0,0,0,0,0,-71,0,0,0,-158, + 0,0,0,0,0,0,0,-420,0,-338, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-31,0,0,0,0,0,0,0,-32, - 0,-398,0,0,0,0,0,-33,0,0, - 0,-276,0,0,0,0,0,0,0,0, + 0,-159,0,0,0,0,-228,0,0,0, + 0,0,0,0,0,0,-361,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-52, - 0,0,-203,0,-138,0,0,0,0,0, - -34,0,0,-312,0,0,0,-35,0,0, + 0,0,0,0,0,0,0,0,-311,0, + 0,0,0,-229,0,0,0,0,0,0, + -160,0,0,-72,0,0,0,-161,0,0, + 0,0,0,0,0,0,0,-362,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-213,0,0,0, - 0,-128,0,0,0,0,-297,0,0,0, - 0,-337,-244,0,0,-146,0,0,0,-64, + 0,0,0,0,0,0,0,0,0,-302, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-408,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-162,0,0,0, + 0,-233,0,0,0,0,0,0,-163,0, + 0,-517,0,0,0,-164,0,0,0,0, + 0,0,0,-165,0,-106,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-308,0,0, 0,0,0,0,0,0,0,0,0,-235, - 0,0,0,-313,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-129,0,-36,0,0,0, - 0,0,0,0,0,-473,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-299,0,0,-37,0,0,0, - 0,0,0,-123,0,0,0,-140,0,-39, - 0,0,0,-330,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-107,0,0,0,0,-353,0,0, - 0,-305,-41,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -452,0,0,0,-94,0,0,0,-38,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-315,0,0, - 0,0,-40,0,0,-54,0,-380,0,0, - 0,0,-310,0,0,0,-95,0,0,0, - -55,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-340, - 0,0,0,0,0,0,0,0,0,-447, - 0,0,0,0,-58,0,0,0,-96,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-341,0,0,0, - 0,0,0,0,0,0,-66,-151,0,0, - -97,0,0,0,-67,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-430,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-197, - 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,-458,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-324,0,0,-99,0,0,0,-69,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-70,0,0, - 0,0,-109,0,0,-110,0,0,0,0, - 0,0,-111,-349,0,0,-100,0,0,0, - -432,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-112, - 0,0,0,0,-119,0,0,-137,0,0, - 0,0,0,0,-413,0,0,0,-101,0, - 0,0,-494,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-152,0,0,0,0,-153,0,0,-154, - 0,0,0,0,0,0,-417,0,0,0, - -102,0,0,0,-155,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-156,0,0,0,0,-157,0, - 0,-158,0,0,0,0,0,0,-159,-160, - 0,0,-103,0,0,0,-161,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-162,0,0,0,0, - -163,0,0,-164,0,0,0,0,0,0, - -165,-166,0,0,-104,0,0,0,-167,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-288,0,0, - 0,0,-168,0,0,-169,0,-170,0,0, - 0,0,-171,-172,0,0,-133,0,0,0, - -173,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-347, - 0,0,0,0,-174,0,0,-177,0,-178, - 0,0,0,0,-179,-214,0,0,0,-188, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-321,0, - 0,0,0,-189,0,0,-194,0,-503,0, - 0,0,0,-195,0,0,0,-147,0,0, - 0,-242,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,-198,0, - 0,0,0,-209,0,0,0,-309,0,0, - 0,-402,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -260,0,0,0,0,0,0,0,0,0, - -332,0,0,0,0,-323,0,0,0,-350, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-149,0,0,0,0,0,0, - 0,0,0,0,0,-470,-335,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,-407,0,-108, - 0,0,0,0,-358,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-143,0,0,0,-219,-220,0,0, - 0,0,-176,0,0,-359,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-114,0,0,-415,0,-221,0, - 0,0,0,-405,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-292,0,0,0, - 0,-326,0,0,0,-223,-237,0,0,0, - 0,-233,0,0,-106,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-239,0,0, - 0,0,-416,0,0,-247,0,-472,0,0, - -145,0,-93,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-150,0,-91,0,0, - 0,-199,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-135,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,-136,0,0,0,0,-271,0, - -89,0,0,0,-261,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-262,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,-272,0,0,0,0,-51,0,0,0, - 0,0,0,-273,-345,0,0,0,0,0, - 0,0,0,0,-61,-229,0,0,0,-342, - 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,-116,0,0,0, - 0,0,-83,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-277,0,0,0,-207, - 0,0,-278,0,0,0,0,-127,0,0, - 0,-352,0,0,0,0,-289,0,0,0, - 0,0,-208,-248,0,0,0,-325,0,0, - 0,0,0,0,0,0,0,0,0,-249, - 0,0,0,0,-269,0,0,0,-293,0, - 0,-397,0,0,0,0,-298,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,-303,0,0, - 0,-85,0,0,0,-304,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-320,0,0,0,-86,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-87,0,0,0,-334,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-387,0,0, - -1,0,0,-336,0,-366,-367,-360,0,0, - 0,-265,-373,-279,-280,0,0,-481,0,0, - 0,-121,0,0,0,0,0,-375,0,-236, - -212,0,0,0,0,0,0,-403,0,0, - -378,0,0,0,0,0,0,0,0,0, - -132,-384,0,0,-385,0,0,0,0,-243, - 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,0,0,0, - -182,-200,0,0,0,0,0,0,-134,-48, - -372,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-234,0,0,0, - 0,0,0,0,0,0,0,0,-393,0, - -250,0,-368,0,0,-139,0,0,0,-471, - 0,0,0,0,0,-183,0,-185,-73,0, - -396,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,0,0,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,-478,0,0,0,0,-404, - -442,-196,-406,-479,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-274,0, - 0,0,-408,0,-251,-252,0,-409,-210,0, - 0,0,0,-74,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,-18,0,0,0,-230,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-369,0,0,0,0,0,0,0,0, - 0,-286,0,0,0,0,0,-253,0,0, - -78,0,0,0,-412,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-423,0,-238,0,0,0,0, - 0,0,0,0,0,-425,-21,0,0,0, - -354,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-427,-232, - 0,-190,-411,-428,-285,0,0,0,0,0, - -429,-270,0,-47,0,0,0,-254,0,-443, - -431,0,0,0,0,0,-433,0,0,-434, - 0,0,0,-355,0,0,0,0,0,-255, - 0,0,0,0,0,0,-294,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-122,-241,0,0,0,0,-308, - -435,0,0,0,0,0,0,0,0,0, - -144,-424,0,0,0,0,0,0,0,0, - 0,-79,0,0,0,-440,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-444,0,-476,0,-436,-124, - 0,-322,0,0,-451,0,-388,0,0,0, - -453,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,0,0, - 0,-460,0,0,0,0,0,0,0,0, - 0,-268,0,0,0,-468,0,-391,-486,0, - 0,0,0,-376,0,0,0,0,0,0, - 0,0,0,0,0,-141,0,0,0,0, - 0,0,-295,0,0,0,0,0,0,0, - 0,-306,0,0,0,-487,0,0,0,0, - -502,0,0,0,0,0,0,0,0,0, - 0,0,-488,0,0,0,0,-507,0,0, - 0,0,0,-181,0,0,0,0,0,0, - 0,0,0,0,0,0,-466,0,0,0, - 0,-266,-377,0,0,0,-500,0,0,-14, - 0,0,-493,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-192,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-515,0,0,0,0,0,0,0, - 0,0,0,0,0,-201,-206,0,0,0, - 0,0,0,-226,0,0,-316,0,0,0, - 0,0,0,0,0,0,0,0,0,-227, - 0,0,-520,0,0,-504,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -461,0,0,0,0,0,-202,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-523,0,-475,0,0,0,0,0, - 0,0,0,0,0,-231,-17,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,-489,0,0,0,0, - 0,0,0,0,0,0,-338,0,0,-275, - 0,0,-267,0,0,-482,0,0,-501,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,-81,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-282,0,0,0,0, - 0,0,0,0,0,0,-301,0,0,0, - 0,0,0,0,0,0,-389,0,0,0, - -495,0,0,-246,-186,0,0,0,-382,-287, - 0,-283,0,0,-300,0,0,0,0,-191, - 0,0,0,0,0,0,-314,0,0,-371, - 0,0,0,0,0,0,-319,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-348,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-394,0,0,0,0, - 0,0,-257,-498,0,0,0,0,0,0, - 0,0,0,0,0,0,-43,-327,0,-329, - 0,0,0,0,0,-296,-307,0,0,0, - -240,-381,-343,-245,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-448,0, - -364,-419,0,0,0,0,0,0,-420,-454, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-499,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-450,0,0,0,0,-365,-379,-291,-462, - 0,0,0,0,0,-383,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,-519,0,0,0,0,0,0, - 0,0,0,0,-477,0,0,0,0,0, - 0,0,-386,0,-421,0,0,0,0,0, - 0,0,-422,0,-426,-445,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-505, - 0,0,0,0,-509,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -302,0,0,0,0,0,0,0,0,0, - 0,-68,0,-449,0,0,-510,0,-211,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-464,0,0,0,0,0,0, - -456,0,0,-457,0,0,0,0,-467,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-485,0,0,0,0,0, - 0,-469,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,-93,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-166,0,0,0,0,-258, + 0,0,0,0,0,-92,0,0,0,-327, + 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,-88,0,0,0,-167, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-344,0,0, + 0,0,0,0,-89,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,-90,0,0,0,-169,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-170,0,0,0,0,-51,0, + 0,0,-152,0,-171,-172,-83,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,-201,-84,0,0,0,-174, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-77,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-175,0,0,0,0,-195,0, + 0,0,-176,-418,-151,0,0,0,0,0, + 0,0,0,0,0,0,-244,0,0,0, + -371,0,0,0,0,0,0,0,-116,-484, + 0,0,0,0,0,-359,0,0,0,0, + 0,0,0,0,0,-231,0,0,-179,0, + 0,0,0,0,0,-85,0,0,0,-180, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-390,0,0, + 0,0,0,-358,0,0,-181,0,0,-190, + -202,0,0,0,0,0,0,0,0,0, + -121,0,0,0,0,0,-400,0,0,0, + -356,0,0,-14,0,0,-406,0,0,-479, + 0,0,0,0,0,0,0,0,0,0, + -191,-196,0,-299,0,0,-347,-419,0,-197, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-458,0,-200,0,0, + 0,0,0,0,0,0,0,0,-391,0, + 0,0,-277,0,0,-211,0,0,0,0, + 0,0,0,-214,0,0,0,0,0,0, + 0,0,0,0,0,-222,0,0,0,0, + 0,0,0,0,0,0,0,-474,-320,0, + -223,0,0,0,-234,0,-236,0,0,-352, + 0,-498,0,-250,0,0,0,0,-225,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-239,-241, + 0,0,0,0,0,0,0,0,0,0, + 0,-267,0,0,-249,0,0,-127,0,0, + 0,0,0,-481,0,-263,-433,0,-264,0, + 0,0,-210,0,0,0,0,0,0,0, + 0,0,0,0,-274,0,0,0,0,0, + -61,0,-238,-275,0,0,0,0,0,0, + -279,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-482,0,0,0,0, + 0,0,0,0,0,-280,-245,-182,0,-118, + 0,-464,0,-291,-289,0,-43,0,0,-501, + 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,-145, + 0,0,0,-497,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-105,0,0, + -295,0,0,0,0,0,0,0,0,0, + 0,0,0,-329,0,0,0,0,0,0, + 0,0,0,-445,0,-268,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,-502,0,0,-87,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-296,0, + 0,-240,0,0,0,0,-357,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,-303,0,-252,0,0,-414,-372, + 0,0,0,-348,0,0,0,0,-301,0, + 0,0,0,0,-306,0,0,0,0,0, + 0,0,0,0,-1,0,0,0,0,-307, + -345,0,0,0,-253,0,0,0,-323,-272, + 0,-337,0,0,0,0,0,0,0,0, + -339,0,-369,0,0,0,0,0,-251,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-427,0,0,0,0,0, + 0,0,0,0,-79,0,0,0,-446,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-73,-439,0,-317, + 0,0,-309,0,-370,-398,0,0,0,0, + 0,0,0,0,0,0,0,-376,0,0, + 0,0,0,0,0,0,0,0,-378,-522, + -355,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -248,-489,0,-293,0,0,-254,0,0,-120, + -394,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-381,-387,0,0,0,-243, + 0,0,0,0,-388,0,0,0,0,0, + -491,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-18,0, + 0,0,0,0,0,0,-374,0,0,0, + 0,0,0,0,0,0,0,0,0,-496, + -396,0,-454,0,0,0,0,0,0,0, + 0,0,0,0,-399,0,0,0,0,0, + 0,0,-47,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-518,0, + -407,0,0,0,0,0,0,0,0,0, + 0,0,0,-417,0,0,0,0,-322,0, + 0,-255,0,0,0,0,-409,0,0,0, + 0,0,0,0,0,0,0,-523,-411,-412, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-269,-141,0,0,0,0, + -183,0,0,0,0,-413,0,0,0,0, + 0,0,0,0,0,0,-526,0,-415,-469, + 0,0,0,0,0,0,0,0,0,0, + -426,-468,0,-122,0,0,0,0,0,-287, + 0,0,0,0,-428,0,0,0,0,0, + 0,0,0,0,0,0,0,-430,0,-431, + 0,0,0,0,0,0,0,0,-432,0, + 0,0,-284,0,0,0,0,-198,0,0, + 0,0,0,-434,0,0,0,0,0,0, + 0,0,0,-304,0,0,0,0,0,0, + 0,0,0,-44,0,0,-297,0,-363,0, + 0,0,-475,-385,-218,-330,0,0,0,0, + 0,0,0,-332,0,0,-436,0,0,0, + 0,0,0,0,0,0,-346,0,0,0, + 0,0,0,0,-473,0,0,0,0,0, + 0,0,0,-298,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-368,-437,-319,0,0, + 0,-397,-438,0,0,0,-271,0,0,0, + -443,0,0,0,0,0,0,0,0,0, + -503,0,0,0,-20,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-451,-132,-447,-382,0,-117,0, + 0,-456,-215,0,0,0,0,-463,0,-285, + 0,0,0,-45,0,0,0,0,-478,0, + 0,0,0,0,0,0,0,0,-150,0, + 0,0,0,-351,-367,0,0,0,0,0, + 0,0,0,0,0,-453,-354,-124,0,0, + 0,-276,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, + -188,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-480,0,0, + -134,0,0,-386,0,-471,0,0,-422,0, + 0,-490,0,-270,0,0,-389,-505,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-510,-504,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-508, + 0,0,0,0,-423,0,0,0,0,-219, + 0,-512,0,0,0,-17,0,-424,-425,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-288,0, + 0,0,0,0,0,0,0,0,0,0, + -429,0,0,0,0,0,0,0,0,-513, + 0,0,0,0,0,0,0,0,0,0, + 0,-21,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,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,-81, + 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,-23,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,-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,-26,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-27,0, + 0,0,0,0,0,0,-27,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-63,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-75,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, - -63,0,0,0,0,0,0,0,0,0, + -131,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-75,0,0,0,0,0,0,0, + 0,-206,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-76,0,0,0,0,0, + 0,0,-494,0,0,0,0,-457,0,0, + 0,0,-19,0,0,0,-314,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,-125,0,0,0,0,0,0,-516, + -334,0,0,0,0,0,0,0,0,0, + -379,0,0,0,0,-485,0,0,0,0, + 0,-448,0,0,0,0,0,-452,-402,-465, + -459,0,0,-46,0,0,0,0,0,-477, + 0,0,0,0,0,0,0,0,0,-460, + 0,0,0,0,0,0,0,0,0,-467, + 0,0,0,-472,-305,0,0,0,0,0, + 0,0,0,0,0,0,0,-521,-470,0, + 0,0,0,0,0,-220,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-204,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,-360,0,0, + 0,-349,0,0,0,0,0,0,0,0, + 0,-466,0,0,0,0,-486,0,0,0, + 0,0,0,-42,-341,0,0,0,-488,0, + 0,0,0,-266,0,0,0,0,0,0, + 0,0,0,0,-256,0,-395,0,0,0, + 0,0,-227,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-193, + 0,0,0,0,-500,0,0,0,0,0, + 0,0,-310,0,0,0,0,0,0,0, + 0,-331,0,0,0,0,-342,0,0,0, + -257,-221,0,0,0,0,0,0,0,0, + 0,0,-364,0,0,0,0,0,-365,0, + 0,0,-384,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -487,0,0,0,0,0,0,-377,0,0, + 0,0,0,0,0,-499,0,0,0,0, + 0,-462,0,0,0,0,0,-483,0,0, + 0,0,0,-514,0,0,0,0,0,-519, + -524,0,-194,0,0,0,0,-292,0,0, + -68,0,0,0,0,0,-286,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-493,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-204, + 0,0,0,0,-213,0,0,0,-261,0, + 0,0,0,0,-283,0,0,0,0,0, + 0,0,-143,0,-325,-440,0,0,0,0, + 0,-441,-442,0,0,0,0,0,0,-444, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -318,0,0,0,-513,0,0,0,0,0, - -483,-491,0,0,0,0,-484,0,0,0, - 0,-125,0,0,0,0,0,-518,-496,-328, - 0,0,0,0,0,-259,0,0,0,0, - -497,0,0,0,0,0,-511,-390,0,0, - 0,0,0,0,-516,0,-521,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-311,-339,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-356,0, - 0,0,0,0,0,0,0,0,-414,0, - 0,0,0,0,0,-474,0,0,0,0, - 0,0,0,0,0,0,0,-281,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-284,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-331,0, - 0,0,0,0,0,0,0,0,0,0, - -105,-215,0,0,0,0,-357,0,0,0, - 0,0,0,0,0,0,0,-463,0,0, - 0,0,0,0,0,0,0,-216,0,0, - 0,0,-217,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-351, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-264,0,0,0,0,0,0,0,0, - 0,-344,0,0,0,0,0,-225,0,0, - 0,0,0,-395,0,0,0,0,0,0, - 0,0,0,0,0,-361,0,0,0,0, - 0,0,0,0,-362,0,0,0,-374,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-459,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-44,0,0,0,0,0, - 0,0,-480,0,0,0,0,0,0,0, - 0,0,-399,0,-437,0,0,0,0,0, - 0,0,0,-438,0,0,0,0,0,0, - 0,0,-439,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -441,0,0,0,0,0,0,-45,0,0, - 0,0,0,0,0,-46,0,0,-205,0, - -400,0,0,0,0,0,-346,-401,0,-446, - 0,0,0,0,0,0,0,0,0,0, - -392,0,0,0,0,0,0,0,-333,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-465,0,0,0, - 0,0,0,0,0,0,0,0,-490,0, - 0,0,0,0,0,-508,0,0,0,0, - 0,0,-517,-218,0,-290,0,0,0,0, - 0,0,0,0,0,0,0,-492,0,0, + 0,0,0,0,0,0,0,-207,0,0, + 0,0,-403,0,0,0,0,0,-392,0, + 0,0,0,-404,-449,0,0,0,0,0, + 0,-511,-336,0,0,0,-520,0,0,0, + 0,0,0,-393,-495,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, @@ -513,7 +496,8 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0 + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0 }; }; public final static short baseCheck[] = BaseCheck.baseCheck; @@ -523,521 +507,505 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public interface BaseAction { public final static char baseAction[] = { - 170,4,53,78,78,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,10,10,8,8,8,8,8,2,65, - 65,5,5,11,11,11,11,43,43,132, - 132,133,61,61,42,17,17,17,17,17, - 17,17,17,17,17,17,17,17,17,17, - 17,17,17,17,17,134,134,134,114,18, - 18,18,18,18,18,18,18,18,18,18, - 18,18,19,19,171,171,172,172,173,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, - 29,29,29,30,30,32,32,34,34,35, - 35,36,36,37,37,41,41,40,40,40, - 40,40,40,40,40,40,40,40,40,40, - 39,28,140,140,98,98,102,102,93,193, - 193,69,69,69,69,69,69,69,69,69, - 70,70,70,71,71,56,56,174,174,72, - 72,72,115,115,73,73,73,73,74,74, - 74,74,74,75,75,79,79,79,79,79, - 79,79,48,48,48,48,48,105,105,106, - 106,49,175,23,23,23,23,23,47,47, - 88,88,88,88,88,147,147,142,142,142, - 142,142,143,143,143,144,144,144,145,145, - 145,146,146,146,89,89,89,89,89,90, - 90,90,12,13,13,13,13,13,13,13, - 13,13,13,13,99,119,119,119,119,119, - 117,117,117,118,118,149,149,148,148,121, - 121,150,83,83,84,84,86,87,85,51, - 46,151,151,52,50,82,82,152,152,141, - 141,122,123,123,77,77,153,153,62,62, - 62,58,58,57,63,63,67,67,55,55, - 55,91,91,101,100,100,60,60,59,59, - 54,54,44,103,103,103,94,94,94,95, - 96,96,96,97,97,107,107,107,109,109, - 108,108,194,194,92,92,177,177,177,177, - 177,125,45,45,155,176,176,126,126,126, - 126,178,178,31,31,116,127,127,127,127, - 110,110,120,120,120,157,158,158,158,158, - 158,158,158,158,158,181,181,179,179,180, - 180,159,159,159,159,160,182,112,111,111, - 183,183,161,161,161,161,104,104,104,184, - 184,9,185,185,186,162,154,154,163,163, - 164,165,165,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,68, - 68,168,168,128,128,129,129,129,129,129, - 129,3,169,169,166,166,130,130,130,80, - 81,76,156,156,113,113,187,187,187,131, - 131,124,124,188,188,170,170,958,38,1548, - 1529,37,2756,34,901,31,35,30,32,1598, - 262,29,27,55,938,110,80,81,112,962, - 590,1022,993,1038,1030,3014,1088,1081,274,1217, - 590,1177,1319,1343,147,3297,82,162,148,1487, - 38,872,36,1589,2793,34,901,31,35,62, - 32,508,2256,2351,38,872,36,232,2894,34, - 901,31,35,30,32,866,262,29,27,55, - 938,110,80,81,112,962,1362,1022,993,1038, - 1030,525,1088,1739,486,235,230,231,327,38, - 1445,384,2307,38,872,36,275,2894,34,901, - 31,35,30,32,866,262,29,27,55,938, - 90,80,81,242,245,248,251,2642,1299,274, - 1914,38,872,36,1595,3849,34,901,31,35, - 30,32,45,1852,500,1146,675,566,1174,846, - 718,907,3064,3120,4172,1496,38,872,36,2367, - 2894,34,901,31,35,1810,32,866,262,29, - 27,55,938,110,80,81,112,962,342,1022, - 993,1038,1030,66,1088,1081,354,1217,1176,1177, - 1319,1343,147,521,984,506,148,276,1695,2385, - 66,38,1395,46,2094,508,45,901,3623,507, - 1496,38,872,36,2367,2894,34,901,31,35, - 1810,32,866,262,29,27,55,938,110,80, - 81,112,962,342,1022,993,1038,1030,4107,1088, - 1081,2083,1217,1979,1177,1319,1343,147,328,334, - 506,148,2095,809,2385,45,386,418,232,999, - 2351,38,872,36,507,2894,34,901,31,35, - 30,32,866,262,29,27,55,938,110,80, - 81,112,962,2473,1632,502,244,230,231,327, - 38,2078,2077,1761,38,872,36,2367,2894,34, - 901,31,35,1810,32,866,262,29,27,55, - 938,110,80,81,112,962,342,1022,993,1038, - 1030,1808,1088,1081,1815,1217,2562,1177,1319,1343, - 147,1260,45,506,148,2417,730,2385,239,262, - 502,327,38,3350,3334,1214,1627,507,1562,38, - 872,36,2137,2894,34,901,31,35,30,32, - 866,262,29,27,55,938,110,80,81,112, - 962,445,1022,993,1038,1030,1854,1088,1081,1815, - 1217,2190,1177,1319,1343,147,232,2007,377,148, - 2351,38,872,36,1623,2894,34,901,31,35, - 30,32,866,262,29,27,55,938,110,80, - 81,89,380,820,240,230,231,508,2646,1634, - 38,872,36,503,2894,34,901,31,35,30, - 32,866,262,29,27,55,938,110,80,81, - 112,962,1661,1022,993,1038,1030,232,1088,1081, - 28,1217,1805,1177,1319,1343,147,3244,385,377, - 148,1624,38,872,36,2103,2793,34,901,31, - 35,61,32,235,381,247,230,231,2073,1935, - 38,872,36,378,2894,34,901,31,35,30, - 32,866,262,29,27,55,938,110,80,81, - 112,962,1152,1022,993,1038,1030,332,1088,1081, - 1014,1217,2472,1177,1319,1343,147,432,153,162, - 148,3796,1935,38,872,36,3764,2894,34,901, - 31,35,30,32,866,262,29,27,55,938, - 110,80,81,112,962,382,1022,993,1038,1030, - 1788,1088,1081,2444,1217,590,1177,1319,1343,147, - 3377,124,371,148,1935,38,872,36,943,2894, - 34,901,31,35,30,32,866,262,29,27, - 55,938,110,80,81,112,962,1104,1022,993, - 1038,1030,1788,1088,1081,65,1217,820,1177,1319, - 1343,147,2587,855,371,148,1606,38,872,36, - 1755,3849,34,901,31,35,64,32,2073,566, - 327,38,2078,277,1935,38,872,36,487,2894, - 34,901,31,35,30,32,866,262,29,27, - 55,938,110,80,81,112,962,370,1022,993, - 1038,1030,2073,1088,1081,1788,1217,1054,1177,1319, - 1343,147,2162,1214,371,148,1870,38,872,36, - 449,2894,34,901,31,35,30,32,866,262, - 29,27,55,938,110,80,81,112,962,369, - 1022,993,1038,1030,590,1088,1081,907,1217,4180, - 1177,1319,1343,147,1092,1844,377,148,1788,3560, - 1696,38,872,36,2593,2894,34,901,31,35, - 30,32,866,262,29,27,55,938,110,80, - 81,112,962,448,1022,993,1038,1030,1758,1088, - 1081,2467,1217,508,1177,1319,1343,147,2593,367, - 146,148,2128,1935,38,872,36,4234,2894,34, - 901,31,35,30,32,866,262,29,27,55, - 938,110,80,81,112,962,74,1022,993,1038, - 1030,3196,1088,1081,412,1217,4129,1177,1319,1343, - 147,2177,375,163,148,1935,38,872,36,155, - 2894,34,901,31,35,30,32,866,262,29, - 27,55,938,110,80,81,112,962,820,1022, - 993,1038,1030,1247,1088,1081,333,1217,2256,1177, - 1319,1343,147,327,2362,159,148,1935,38,872, - 36,420,2894,34,901,31,35,30,32,866, - 262,29,27,55,938,110,80,81,112,962, - 590,1022,993,1038,1030,4466,1088,1081,2981,1217, - 2256,1177,1319,1343,147,2378,436,158,148,1935, - 38,872,36,2375,2894,34,901,31,35,30, - 32,866,262,29,27,55,938,110,80,81, - 112,962,3570,1022,993,1038,1030,590,1088,1081, - 436,1217,4475,1177,1319,1343,147,1072,1788,157, - 148,1935,38,872,36,2387,2894,34,901,31, - 35,30,32,866,262,29,27,55,938,110, - 80,81,112,962,590,1022,993,1038,1030,4499, - 1088,1081,353,1217,286,1177,1319,1343,147,521, - 1788,156,148,1935,38,872,36,313,2894,34, - 901,31,35,30,32,866,262,29,27,55, - 938,110,80,81,112,962,590,1022,993,1038, - 1030,4523,1088,1081,323,1217,56,1177,1319,1343, - 147,521,1788,155,148,1935,38,872,36,1185, - 2894,34,901,31,35,30,32,866,262,29, - 27,55,938,110,80,81,112,962,1301,1022, - 993,1038,1030,154,1088,1081,589,1217,326,1177, - 1319,1343,147,1122,1788,154,148,1935,38,872, - 36,2653,2894,34,901,31,35,30,32,866, - 262,29,27,55,938,110,80,81,112,962, - 1259,1022,993,1038,1030,691,1088,1081,1922,1217, - 101,1177,1319,1343,147,327,2831,153,148,1935, - 38,872,36,2662,2894,34,901,31,35,30, - 32,866,262,29,27,55,938,110,80,81, - 112,962,2057,1022,993,1038,1030,2162,1088,1081, - 1897,1217,102,1177,1319,1343,147,327,3115,152, - 148,1935,38,872,36,1926,2894,34,901,31, - 35,30,32,866,262,29,27,55,938,110, - 80,81,112,962,2008,1022,993,1038,1030,588, - 1088,1081,675,1217,513,1177,1319,1343,147,762, - 849,151,148,1935,38,872,36,670,2894,34, - 901,31,35,30,32,866,262,29,27,55, - 938,110,80,81,112,962,757,1022,993,1038, - 1030,1172,1088,1081,2377,1217,513,1177,1319,1343, - 147,2586,1248,150,148,1935,38,872,36,298, - 2894,34,901,31,35,30,32,866,262,29, - 27,55,938,110,80,81,112,962,2563,1022, - 993,1038,1030,1171,1088,1081,936,1217,952,1177, - 1319,1343,147,2130,2252,149,148,1826,38,872, - 36,2447,2894,34,901,31,35,30,32,866, - 262,29,27,55,938,110,80,81,112,962, - 2563,1022,993,1038,1030,2448,1088,1081,1691,1217, - 1024,1177,1319,1899,168,430,1935,38,872,36, - 2032,2894,34,901,31,35,30,32,866,262, - 29,27,55,938,110,80,81,112,962,855, - 1022,993,1038,1030,778,1088,1081,931,1217,2103, - 1177,1319,1343,147,2404,327,144,148,327,38, - 1445,384,1928,38,2078,277,2259,38,872,36, - 1480,2894,34,901,31,35,30,32,866,262, - 29,27,55,938,110,80,81,112,962,37, - 1022,993,1038,1030,92,1088,1081,106,1217,1073, - 1177,1319,1343,147,1689,515,193,148,2351,38, - 872,36,2568,2894,34,901,31,35,30,32, - 866,262,29,27,55,938,110,80,81,112, - 962,1853,1022,993,1038,1030,93,1088,1081,106, - 1217,2647,1177,1319,1899,168,2351,38,872,36, - 1589,2894,34,901,31,35,30,32,866,262, - 29,27,55,938,110,80,81,112,962,398, - 1022,993,1038,1030,1800,1088,1081,2467,1217,396, - 1177,1319,1899,168,1606,38,872,36,400,3849, - 34,901,31,35,63,32,2568,2351,38,872, - 36,290,2894,34,901,31,35,30,32,866, - 262,29,27,55,938,110,80,81,112,962, - 1589,1022,993,1038,1030,512,1088,1081,1589,1217, - 508,1177,1319,1899,168,2351,38,872,36,1564, - 2894,34,901,31,35,30,32,866,262,29, - 27,55,938,110,80,81,112,962,300,1022, - 993,1038,1030,73,1088,1081,183,1217,1571,1177, - 1319,1899,168,2140,38,872,36,2511,2483,34, - 901,43,35,327,38,2119,2351,38,872,36, - 414,2894,34,901,31,35,30,32,866,262, - 29,27,55,938,110,80,81,112,962,512, - 1022,993,1038,1030,508,1088,1081,1589,1217,2533, - 1177,1319,1899,168,2395,38,872,36,413,2894, - 34,901,31,35,30,32,866,262,29,27, - 55,938,110,80,81,112,962,58,1022,993, - 1038,1030,1613,1088,1081,199,1217,1479,1177,1319, - 1899,168,2140,38,872,36,1552,1216,34,901, - 1950,35,327,38,282,2351,38,872,36,416, - 2894,34,901,31,35,30,32,866,262,29, - 27,55,938,110,80,81,112,962,1095,1022, - 993,1038,1030,1589,1088,1081,1817,1217,45,1177, - 1768,508,999,2351,38,872,36,3071,2894,34, - 901,31,35,30,32,866,262,29,27,55, - 938,110,80,81,112,962,4179,1022,993,1038, - 1030,198,1088,1081,91,1217,508,1763,2351,38, - 872,36,508,2894,34,901,31,35,30,32, - 866,262,29,27,55,938,110,80,81,112, - 962,75,1022,993,1038,1030,507,1088,1081,57, - 1732,2351,38,872,36,349,2894,34,901,31, - 35,30,32,866,262,29,27,55,938,110, - 80,81,112,962,1417,1022,993,1038,1030,1623, - 1721,2351,38,872,36,2035,2894,34,901,31, - 35,30,32,866,262,29,27,55,938,110, - 80,81,112,962,1787,1022,993,1038,1724,2351, - 38,872,36,351,2894,34,901,31,35,30, - 32,866,262,29,27,55,938,110,80,81, - 112,962,1981,1022,993,1038,1731,2439,38,1445, - 384,352,2458,283,1141,2140,38,872,36,237, - 262,34,901,339,35,1924,2463,38,280,2671, - 327,38,1445,384,2351,38,872,36,274,2894, - 34,901,31,35,30,32,866,262,29,27, - 55,938,110,80,81,112,962,1063,1022,993, - 1679,422,3244,2351,38,872,36,232,2894,34, - 901,31,35,30,32,866,262,29,27,55, - 938,110,80,81,112,962,2096,1022,993,1682, - 1814,2495,350,2479,3654,235,230,231,414,38, - 1445,384,2140,38,872,36,275,2041,34,901, - 2020,35,331,508,327,38,1445,384,1479,343, - 2304,2276,348,242,245,248,251,2642,341,54, - 1928,38,2078,2499,1595,327,38,2078,281,2473, - 1437,1847,1620,3011,3004,274,94,2550,972,846, - 718,907,3064,3120,4172,2351,38,872,36,618, - 2894,34,901,31,35,30,32,866,262,29, - 27,55,938,110,80,81,112,962,2609,1022, - 993,1689,2351,38,872,36,1522,2894,34,901, - 31,35,30,32,866,262,29,27,55,938, - 110,80,81,112,962,2624,1022,993,1690,2351, - 38,872,36,78,2894,34,901,31,35,30, - 32,866,262,29,27,55,938,110,80,81, - 112,962,76,1022,1697,2351,38,872,36,1123, - 2894,34,901,31,35,30,32,866,262,29, - 27,55,938,110,80,81,112,962,175,1022, - 1716,1422,527,97,2618,999,1070,2628,327,38, - 1445,384,1111,2595,942,1490,2367,4186,327,38, - 291,229,1021,38,1820,2823,160,3545,2663,160, - 508,1369,38,1445,384,229,184,2028,1,425, - 573,2688,527,204,215,4454,203,212,213,214, - 216,1063,2588,54,173,2625,3244,1931,401,4432, - 508,229,274,3450,1437,861,160,187,171,172, - 174,175,176,177,178,2108,184,2028,402,2367, - 2334,324,325,204,215,4454,203,212,213,214, - 216,45,1213,3550,173,668,2367,3244,229,1186, - 334,2146,185,2712,999,2618,331,188,171,172, - 174,175,176,177,178,2966,2315,2463,38,278, - 206,215,4454,205,212,213,214,216,164,2039, - 2206,508,2768,2165,38,390,1554,38,1445,384, - 2596,207,2832,2334,2367,77,45,331,45,334, - 4448,2693,665,999,217,208,209,210,211,292, - 293,294,295,229,72,186,350,54,3459,403, - 406,531,2658,501,38,1445,384,164,1437,1073, - 3775,3117,2849,2832,358,206,215,4454,205,212, - 213,214,216,343,2304,2276,348,618,2114,2650, - 2167,2198,2252,1224,54,2715,207,2898,2334,2367, - 2629,1589,1472,2631,2726,1437,1107,3244,2367,217, - 208,209,210,211,292,293,294,295,229,327, - 38,2078,279,2695,2651,508,508,229,2699,327, - 38,1445,384,2672,45,3775,3541,2246,999,202, - 206,215,4454,205,212,213,214,216,2705,206, - 215,4454,205,212,213,214,216,332,71,70, - 54,207,160,2334,1385,38,1445,384,1146,350, - 207,51,2334,1438,217,208,209,210,211,292, - 293,294,295,217,208,209,210,211,292,293, - 294,295,2165,38,390,54,345,2304,2276,348, - 3775,3624,327,38,2078,2565,1437,933,508,3775, - 3693,2351,38,872,36,2709,2894,34,901,31, - 35,30,32,866,262,29,27,55,938,110, - 80,81,112,962,2678,1637,1198,38,872,36, - 3552,69,34,901,338,35,2258,2351,38,1548, - 1529,2103,2894,34,901,31,35,30,32,866, - 262,29,27,55,938,110,80,81,88,2686, - 1540,2362,45,262,2697,508,3000,527,37,387, - 418,2725,1540,2362,327,38,1445,384,334,4278, - 1589,1350,999,319,2635,321,229,2745,314,2634, - 88,160,2675,350,1466,38,442,374,3577,4479, - 334,184,2028,2453,999,54,164,508,204,215, - 4454,203,212,213,214,216,1437,708,200,173, - 343,2304,2276,348,2486,2474,38,278,164,2446, - 1623,2668,3096,171,172,174,175,176,177,178, - 60,1231,1376,38,872,36,4619,3244,34,901, - 338,35,2351,38,872,36,2467,2894,34,901, - 31,35,30,32,866,262,29,27,55,938, - 110,80,81,112,1640,2738,3047,1623,2083,349, - 2876,285,334,527,232,1589,999,1678,38,442, - 2932,2707,4479,285,284,4278,372,331,3203,319, - 2635,321,229,364,314,2634,2859,160,2309,2374, - 164,1213,250,230,231,2367,3244,184,2028,1311, - 3070,2374,2682,221,204,215,4454,203,212,213, - 214,216,2006,4339,2966,173,2754,3647,1723,436, - 232,298,2367,527,327,38,1445,384,180,171, - 172,174,175,176,177,178,1931,435,2633,2648, - 2367,342,229,508,307,311,331,160,253,230, - 231,520,1139,47,1904,424,2739,184,2028,342, - 3592,2764,2385,3125,204,215,4454,203,212,213, - 214,216,523,523,3131,173,59,527,2136,5143, - 2450,5143,4151,358,327,38,1445,384,191,171, - 172,174,175,176,177,178,229,1589,2650,2167, - 2198,160,1146,327,38,1445,384,327,38,291, - 1980,184,2028,610,2367,54,1272,527,204,215, - 4454,203,212,213,214,216,1437,2166,5143,173, - 439,2633,2648,342,423,4649,229,327,38,1445, - 384,160,3238,171,172,174,175,176,177,178, - 5143,184,2028,697,851,5143,429,527,204,215, - 4454,203,212,213,214,216,45,45,54,173, - 3651,1123,5143,420,45,5143,229,508,3262,1437, - 2737,160,194,171,172,174,175,176,177,178, - 2505,184,2028,784,3453,2546,2103,527,204,215, - 4454,203,212,213,214,216,3679,5143,3327,173, - 322,1923,5143,389,418,2367,229,327,38,1445, - 384,160,190,171,172,174,175,176,177,178, - 5143,184,2028,871,342,1589,1427,527,204,215, - 4454,203,212,213,214,216,45,45,54,173, - 3012,527,514,5143,45,3895,229,4155,3646,1437, - 3065,160,197,171,172,174,175,176,177,178, - 342,184,2028,304,5143,160,1589,445,204,215, - 4454,203,212,213,214,216,937,2006,5143,173, - 45,2385,3647,1146,4233,431,2165,38,390,1589, - 5143,725,196,171,172,174,175,176,177,178, - 2351,38,872,36,4656,2894,34,901,31,35, - 30,32,866,262,29,27,55,938,110,80, - 81,112,1655,2351,38,872,36,303,2894,34, - 901,31,35,30,32,866,262,29,27,55, - 938,110,80,81,112,1674,1148,38,872,36, - 3151,5143,34,901,338,35,5143,1234,38,2599, - 36,4619,3244,34,901,338,35,327,38,1445, - 384,1623,5143,5143,2590,1481,38,1445,384,2808, - 45,1272,1063,2367,1839,1431,5143,3244,4167,1234, - 414,38,1445,384,388,418,3221,45,441,4278, - 2103,4442,229,319,2635,321,54,45,314,2634, - 4278,4597,331,350,319,2635,321,1437,52,314, - 2634,54,508,3337,206,215,4454,205,212,213, - 214,216,1437,52,1122,305,2386,331,421,2859, - 343,2304,2276,348,5143,207,1994,2334,4339,2252, - 2367,2172,5143,1174,1623,105,374,5143,488,208, - 209,210,211,292,293,294,295,45,45,229, - 45,2367,4400,4151,1268,5143,1174,2150,38,1445, - 384,2478,2648,45,1063,2367,2367,582,5143,3244, - 342,206,215,4454,205,212,213,214,216,2819, - 5143,508,508,2367,2966,2966,49,1904,54,1962, - 508,2385,207,3623,2334,5143,409,2624,297,1437, - 52,1553,229,1623,5143,509,208,209,210,211, - 292,293,294,295,3728,440,3623,1941,2390,3729, - 5143,5143,519,3395,206,215,4454,205,212,213, - 214,216,2890,333,334,3783,2367,45,45,2025, - 508,1348,4611,5143,3244,207,45,2334,45,5143, - 4533,5143,527,358,494,229,330,334,306,208, - 209,210,211,292,293,294,295,296,3005,2167, - 2198,342,5143,3179,1548,5143,160,206,215,4454, - 205,212,213,214,216,2633,5143,2030,5143,2367, - 492,493,2385,45,3729,45,5143,1912,207,1390, - 2334,98,1263,2235,5143,45,45,3669,229,2695, - 1996,510,208,209,210,211,292,293,294,295, - 1685,38,872,36,3552,1589,34,901,338,35, - 206,215,4454,205,212,213,214,216,379,5143, - 5143,2012,38,872,36,4619,5143,34,901,338, - 35,207,45,2334,45,5143,527,1589,2760,327, - 38,1445,384,4663,218,208,209,210,211,292, - 293,294,295,4278,508,342,100,319,2635,321, - 160,45,314,2634,45,2825,5143,350,2834,45, - 54,937,5143,4162,4278,222,2385,516,319,2635, - 321,1437,933,314,2634,2558,2211,3233,5143,3810, - 5143,5143,508,5143,343,2304,2276,348,3337,2351, - 38,872,36,517,2894,34,901,31,35,30, - 32,866,262,29,27,55,938,110,80,81, - 87,2351,38,872,36,3273,2894,34,901,31, - 35,30,32,866,262,29,27,55,938,110, - 80,81,86,2351,38,872,36,5143,2894,34, - 901,31,35,30,32,866,262,29,27,55, - 938,110,80,81,85,2351,38,872,36,5143, - 2894,34,901,31,35,30,32,866,262,29, - 27,55,938,110,80,81,84,2351,38,872, - 36,5143,2894,34,901,31,35,30,32,866, - 262,29,27,55,938,110,80,81,83,2351, - 38,872,36,5143,2894,34,901,31,35,30, - 32,866,262,29,27,55,938,110,80,81, - 82,2208,38,872,36,5143,2894,34,901,31, - 35,30,32,866,262,29,27,55,938,110, - 80,81,108,2351,38,872,36,5143,2894,34, - 901,31,35,30,32,866,262,29,27,55, - 938,110,80,81,114,2351,38,872,36,5143, - 2894,34,901,31,35,30,32,866,262,29, - 27,55,938,110,80,81,113,2351,38,872, - 36,5143,2894,34,901,31,35,30,32,866, - 262,29,27,55,938,110,80,81,111,2351, - 38,872,36,5143,2894,34,901,31,35,30, - 32,866,262,29,27,55,938,110,80,81, - 109,1315,38,872,36,1589,3244,34,901,338, - 35,508,1337,38,872,36,4619,508,34,901, - 338,35,2502,38,1445,384,5143,2458,1589,508, - 501,38,1445,384,238,262,327,38,1445,384, - 5143,45,5143,299,1849,868,5143,508,334,5143, - 3356,5143,999,274,4278,508,332,508,319,2635, - 321,54,376,315,2634,4278,195,54,350,319, - 2635,321,1437,52,314,2634,164,5143,1437,1117, - 4178,5143,232,1174,2150,38,1445,384,3353,1311, - 3393,2462,5143,5143,5143,345,2304,2276,348,1544, - 38,2599,36,4619,5143,34,901,338,35,2334, - 236,230,231,999,5143,54,2012,38,872,36, - 4619,275,34,901,338,35,1437,52,327,38, - 1445,384,5143,5143,307,311,5143,160,243,246, - 249,252,2642,3623,5143,2628,3672,201,3020,1595, - 5143,5143,4278,3847,5143,5143,319,2635,321,54, - 5143,314,2634,1458,3131,5143,5143,2367,5143,4278, - 1437,1338,5143,319,2635,321,1122,5143,314,2634, - 5143,5143,5143,3653,334,5143,2966,5143,5143,1328, - 38,872,36,1311,3244,34,901,338,35,5143, - 5143,45,45,5143,5143,999,999,1328,38,872, - 36,5143,3244,34,901,338,35,5143,2012,38, - 872,36,4619,5143,34,901,338,35,45,160, - 160,5143,999,45,5143,5143,5143,999,308,311, - 1766,2751,4278,5143,332,5143,319,2635,321,5143, - 2648,317,2634,5143,2367,359,160,5143,410,2624, - 4278,160,332,5143,319,2635,321,2855,5143,315, - 2634,4278,2856,2966,5143,319,2635,321,5143,5143, - 314,2634,1059,38,872,36,3527,5143,34,901, - 338,35,2478,5143,5143,3216,2367,5143,1029,5143, - 5143,5143,2367,4186,2124,38,872,36,3082,5143, - 34,901,338,35,5143,2966,2150,38,1445,384, - 397,229,5143,5143,5143,2150,38,1445,384,2150, - 38,1445,384,5143,5143,4278,5143,5143,5143,316, - 2538,321,494,1931,401,4432,5143,54,5143,2170, - 38,1445,384,5143,5143,5143,54,4278,1437,52, - 54,316,2538,321,402,45,2334,1437,52,2367, - 5143,1437,52,2174,38,1445,384,3184,491,493, - 54,5143,5143,2675,358,45,3263,2367,342,527, - 3537,1437,52,5143,45,5143,5143,5143,527,3671, - 2167,2198,2315,2674,54,5143,2966,527,342,2385, - 2638,5143,5143,160,5143,1437,52,342,2626,1556, - 5143,45,160,5143,192,527,3879,5143,45,4368, - 5143,160,2367,192,3267,3555,45,5143,4368,45, - 2367,45,166,2367,342,2367,5143,1174,45,160, - 45,342,2367,5143,2367,403,405,3555,5143,342, - 192,1174,342,5143,342,4368,5143,5143,5143,1063, - 5143,342,2385,342,3244,494,5143,914,5143,2632, - 2385,5143,1563,2385,5143,2385,5143,2674,5143,5143, - 1590,999,2385,2680,2385,498,5143,5143,5143,2674, - 3730,5143,496,999,524,3257,2674,3623,5143,3864, - 999,491,493,2674,45,160,45,999,999,5143, - 999,3623,5143,5143,331,5143,166,160,45,5143, - 5143,5143,999,5143,160,5143,3902,5143,166,5143, - 5143,160,160,5143,160,166,5143,3727,334,5143, - 5143,3021,166,2938,5143,1522,160,5143,5143,5143, - 4357,3785,334,5143,5143,5143,5143,4197,5143,5143, - 5143,5143,5143,5143,5143,5143,5143,5143,4637,5143, - 5143,5143,5143,5143,5143,5143,5143,5143,5143,3436, - 5143,5143,5143,5143,5143,5143,5143,5143,5143,5143, - 5143,3815,5143,5143,5143,5143,5143,5143,4205,5143, - 5143,5143,5143,5143,5143,4207,5143,0,42,5161, - 0,42,5160,0,662,33,0,443,852,0, - 41,5161,0,41,5160,0,2515,130,0,1, - 433,0,447,1112,0,446,1175,0,662,44, - 0,775,95,0,662,383,0,384,36,0, - 36,384,0,662,33,383,0,383,33,0, - 33,383,0,42,1858,0,1,550,0,1, - 5416,0,1,5415,0,1,5414,0,1,5413, - 0,1,5412,0,1,5411,0,1,5410,0, - 1,5409,0,1,5408,0,1,5407,0,1, - 5406,0,42,1,5161,0,42,1,5160,0, - 720,1,0,5377,241,0,5376,241,0,5480, - 241,0,5479,241,0,5404,241,0,5403,241, - 0,5402,241,0,5401,241,0,5400,241,0, - 5399,241,0,5398,241,0,5397,241,0,5416, - 241,0,5415,241,0,5414,241,0,5413,241, - 0,5412,241,0,5411,241,0,5410,241,0, - 5409,241,0,5408,241,0,5407,241,0,5406, - 241,0,42,241,5161,0,42,241,5160,0, - 5184,241,0,53,5161,0,53,5160,0,237, - 2720,0,48,5182,0,48,40,0,5161,53, - 0,5160,53,0,2515,132,0,2515,131,0, - 30,508,0,5472,434,0,2711,434,0,5184, - 1,0,42,1,0,52,40,0,1,96, - 0,40,52,0,5184,228,1,0,42,228, - 1,0,228,408,0,40,5161,0,40,5160, - 0,1,5161,2,0,1,5160,2,0,40, - 5161,2,0,40,5160,2,0,5161,39,0, - 5160,39,0,5182,50,0,50,40,0,5153, - 399,0,5152,399,0,1,3831,0,1,1858, - 0,1,3270,0,228,407,0,3567,318,0, - 5472,99,0,2711,99,0,1,5472,0,1, - 2711,0,42,1,5161,2,0,42,1,5160, - 2,0,42,5161,2,0,42,5160,2,0, - 279,3018,0,1,2753,0,1,2922,0,5151, - 1,0,490,3616,0,228,1,0,228,1, - 2833,0,5153,228,0,5152,228,0,3030,228, - 0,8,10,0,228,220,0,228,219,0, - 189,3313,0 + 169,4,52,77,77,31,31,63,63,37, + 37,189,189,190,190,191,191,1,1,14, + 14,14,14,14,14,14,14,15,15,15, + 13,10,10,8,8,8,8,8,8,2, + 64,64,5,5,11,11,11,11,42,42, + 131,131,132,60,60,41,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,133,133,133,113, + 113,17,17,17,17,17,17,17,17,17, + 17,17,17,17,18,18,170,170,171,171, + 172,136,136,137,137,134,134,138,135,135, + 19,19,20,20,21,21,21,23,23,23, + 23,24,24,24,25,25,25,26,26,26, + 26,26,28,28,28,29,29,30,30,32, + 32,33,33,35,35,36,36,40,40,39, + 39,39,39,39,39,39,39,39,39,39, + 39,39,38,27,139,139,97,97,101,101, + 92,192,192,68,68,68,68,68,68,68, + 68,68,69,69,69,70,70,55,55,173, + 173,71,71,71,114,114,72,72,72,72, + 73,73,73,73,73,74,74,78,78,78, + 78,78,78,78,47,47,47,47,47,104, + 104,105,105,48,174,22,22,22,22,22, + 46,46,87,87,87,87,87,146,146,141, + 141,141,141,141,142,142,142,143,143,143, + 144,144,144,145,145,145,88,88,88,88, + 88,89,89,89,12,12,12,12,12,12, + 12,12,12,12,12,100,118,118,118,118, + 118,116,116,116,117,117,148,148,147,147, + 120,120,149,82,82,83,83,85,86,84, + 50,45,150,150,51,49,81,81,151,151, + 140,140,121,122,122,76,76,152,152,61, + 61,61,57,57,56,62,62,66,66,54, + 54,54,90,90,99,98,98,59,59,58, + 58,53,53,43,102,102,102,93,93,93, + 94,95,95,95,96,96,106,106,106,108, + 108,107,107,193,193,91,91,176,176,176, + 176,176,124,44,44,154,175,175,125,125, + 125,125,177,177,34,34,115,126,126,126, + 126,109,109,119,119,119,156,157,157,157, + 157,157,157,157,157,157,180,180,178,178, + 179,179,158,158,158,158,159,181,111,110, + 110,182,182,160,160,160,160,103,103,103, + 183,183,9,184,184,185,161,153,153,162, + 162,163,164,164,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,65, + 67,67,167,167,127,127,128,128,128,128, + 128,128,3,168,168,165,165,129,129,129, + 79,80,75,155,155,112,112,186,186,186, + 130,130,123,123,187,187,169,169,969,39, + 1769,1740,1360,3226,34,1116,31,35,30,32, + 1734,29,27,56,1119,112,82,83,114,1160, + 860,1289,1194,1365,1315,3153,1379,1371,1412,38, + 1397,1454,275,1461,149,418,2794,164,150,1328, + 39,986,36,1096,3231,34,1116,339,35,418, + 1602,2554,38,2359,39,986,36,234,3109,34, + 1116,31,35,30,32,905,29,27,56,1119, + 112,82,83,114,1160,1757,1289,1194,1365,1315, + 31,1379,1371,2229,942,237,232,233,1546,776, + 1489,4415,2279,333,2399,320,1372,322,276,2019, + 316,1148,31,1374,2501,351,675,162,4240,1203, + 2852,126,1428,244,247,250,253,2471,1696,390, + 1500,39,986,36,1707,4405,34,1116,31,35, + 65,32,346,1123,771,349,526,573,2233,3469, + 2710,3060,3264,3518,4023,1509,39,986,36,2279, + 3109,34,1116,31,35,2430,32,905,29,27, + 56,1119,112,82,83,114,1160,343,1289,1194, + 1365,1315,4423,1379,1371,1412,1784,1397,1454,359, + 1461,149,214,2750,507,150,488,513,2671,418, + 39,2554,2566,1203,3270,2619,2620,1730,508,1509, + 39,986,36,2279,3109,34,1116,31,35,2430, + 32,905,29,27,56,1119,112,82,83,114, + 1160,343,1289,1194,1365,1315,302,1379,1371,1412, + 1244,1397,1454,1117,1461,149,329,335,507,150, + 1203,1565,2671,48,2546,418,39,2581,2359,39, + 986,36,508,3109,34,1116,31,35,30,32, + 905,29,27,56,1119,112,82,83,114,1160, + 450,1289,1194,1942,503,433,1774,39,986,36, + 2279,3109,34,1116,31,35,2430,32,905,29, + 27,56,1119,112,82,83,114,1160,343,1289, + 1194,1365,1315,1921,1379,1371,1412,352,1397,1454, + 2419,1461,149,2457,31,507,150,449,729,2671, + 66,39,1520,47,2658,654,46,1116,503,508, + 1575,39,986,36,487,3109,34,1116,31,35, + 30,32,905,29,27,56,1119,112,82,83, + 114,1160,1568,1289,1194,1365,1315,2748,1379,1371, + 1412,399,1397,1454,2510,1461,149,2457,2754,378, + 150,1647,39,986,36,952,3109,34,1116,31, + 35,30,32,905,29,27,56,1119,112,82, + 83,114,1160,381,1289,1194,1365,1315,1234,1379, + 1371,1412,2748,1397,1454,504,1461,149,314,2599, + 378,150,1944,39,986,36,2750,3109,34,1116, + 31,35,30,32,905,29,27,56,1119,112, + 82,83,114,1160,379,1289,1194,1365,1315,611, + 1379,1371,1412,425,1397,1454,397,1461,149,860, + 775,164,150,1075,4353,382,742,942,1944,39, + 986,36,719,3109,34,1116,31,35,30,32, + 905,29,27,56,1119,112,82,83,114,1160, + 166,1289,1194,1365,1315,2256,1379,1371,1412,2448, + 1397,1454,94,1461,149,108,383,372,150,418, + 39,1984,1947,1944,39,986,36,3030,3109,34, + 1116,31,35,30,32,905,29,27,56,1119, + 112,82,83,114,1160,860,1289,1194,1365,1315, + 4400,1379,1371,1412,2074,1397,1454,95,1461,149, + 108,2074,372,150,418,39,2554,278,188,413, + 1617,573,2105,387,419,1944,39,986,36,2455, + 3109,34,1116,31,35,30,32,905,29,27, + 56,1119,112,82,83,114,1160,390,1289,1194, + 1365,1315,371,1379,1371,1412,1006,1397,1454,1079, + 1461,149,2857,2106,372,150,1884,39,986,36, + 437,3109,34,1116,31,35,30,32,905,29, + 27,56,1119,112,82,83,114,1160,2701,1289, + 1194,1365,1315,2750,1379,1371,1412,370,1397,1454, + 2452,1461,149,418,2665,378,150,1709,39,986, + 36,2784,3109,34,1116,31,35,30,32,905, + 29,27,56,1119,112,82,83,114,1160,353, + 1289,1194,1365,1315,1981,1379,1371,1412,887,1397, + 1454,2714,1461,149,2019,932,148,150,2714,368, + 1944,39,986,36,325,3109,34,1116,31,35, + 30,32,905,29,27,56,1119,112,82,83, + 114,1160,1697,1289,1194,1365,1315,3231,1379,1371, + 1412,401,1397,1454,2816,1461,149,1203,446,165, + 150,376,1944,39,986,36,777,3109,34,1116, + 31,35,30,32,905,29,27,56,1119,112, + 82,83,114,1160,390,1289,1194,1365,1315,1627, + 1379,1371,1412,287,1397,1454,3054,1461,149,1097, + 1627,161,150,1944,39,986,36,1190,3109,34, + 1116,31,35,30,32,905,29,27,56,1119, + 112,82,83,114,1160,1167,1289,1194,1365,1315, + 1627,1379,1371,1412,3972,1397,1454,31,1461,149, + 1921,668,160,150,1944,39,986,36,2894,3109, + 34,1116,31,35,30,32,905,29,27,56, + 1119,112,82,83,114,1160,514,1289,1194,1365, + 1315,3951,1379,1371,1412,154,1397,1454,100,1461, + 149,75,2697,159,150,1944,39,986,36,233, + 3109,34,1116,31,35,30,32,905,29,27, + 56,1119,112,82,83,114,1160,1052,1289,1194, + 1365,1315,355,1379,1371,1412,2030,1397,1454,522, + 1461,149,1080,354,158,150,1944,39,986,36, + 522,3109,34,1116,31,35,30,32,905,29, + 27,56,1119,112,82,83,114,1160,326,1289, + 1194,1365,1315,324,1379,1371,1412,2030,1397,1454, + 522,1461,149,1921,1107,157,150,1944,39,986, + 36,1245,3109,34,1116,31,35,30,32,905, + 29,27,56,1119,112,82,83,114,1160,1202, + 1289,1194,1365,1315,28,1379,1371,1412,2313,1397, + 1454,31,1461,149,1921,4213,156,150,1944,39, + 986,36,1257,3109,34,1116,31,35,30,32, + 905,29,27,56,1119,112,82,83,114,1160, + 1153,1289,1194,1365,1315,75,1379,1371,1412,2313, + 1397,1454,31,1461,149,1921,973,155,150,1944, + 39,986,36,4052,3109,34,1116,31,35,30, + 32,905,29,27,56,1119,112,82,83,114, + 1160,978,1289,1194,1365,1315,74,1379,1371,1412, + 2313,1397,1454,2185,1461,149,1630,1896,154,150, + 1944,39,986,36,516,3109,34,1116,31,35, + 30,32,905,29,27,56,1119,112,82,83, + 114,1160,1198,1289,1194,1365,1315,2023,1379,1371, + 1412,1232,1397,1454,31,1461,149,1921,2585,153, + 150,1944,39,986,36,515,3109,34,1116,31, + 35,30,32,905,29,27,56,1119,112,82, + 83,114,1160,1314,1289,1194,1365,1315,59,1379, + 1371,1412,1324,1397,1454,31,1461,149,1921,618, + 152,150,1944,39,986,36,1506,3109,34,1116, + 31,35,30,32,905,29,27,56,1119,112, + 82,83,114,1160,1643,1289,1194,1365,1315,93, + 1379,1371,1412,1739,1397,1454,1203,1461,149,1203, + 1343,151,150,1839,39,986,36,1760,3109,34, + 1116,31,35,30,32,905,29,27,56,1119, + 112,82,83,114,1160,1754,1289,1194,1365,1315, + 2233,1379,1371,1412,1699,1397,1454,31,2528,170, + 2589,942,1944,39,986,36,2019,3109,34,1116, + 31,35,30,32,905,29,27,56,1119,112, + 82,83,114,1160,2653,1289,1194,1365,1315,2532, + 1379,1371,1412,57,1397,1454,327,1461,149,99, + 328,146,150,301,418,39,1576,385,386,1730, + 1343,2266,39,986,36,1699,3109,34,1116,31, + 35,30,32,905,29,27,56,1119,112,82, + 83,114,1160,76,1289,1194,1365,1315,55,1379, + 1371,1412,1761,1397,1454,52,1461,149,334,335, + 195,150,2359,39,986,36,2019,3109,34,1116, + 31,35,30,32,905,29,27,56,1119,112, + 82,83,114,1160,2072,1289,1194,1365,1315,31, + 1379,1371,1412,1064,1397,1454,2564,2528,170,2359, + 39,986,36,185,3109,34,1116,31,35,30, + 32,905,29,27,56,1119,112,82,83,114, + 1160,1754,1289,1194,1365,1315,425,1379,1371,1412, + 2566,1397,1454,77,2528,170,1114,39,986,36, + 2600,3499,34,1116,31,35,63,32,418,3466, + 2359,39,986,36,291,3109,34,1116,31,35, + 30,32,905,29,27,56,1119,112,82,83, + 114,1160,248,1289,1194,1365,1315,31,1379,1371, + 1412,2796,1397,1454,284,2528,170,2359,39,986, + 36,2590,3109,34,1116,31,35,30,32,905, + 29,27,56,1119,112,82,83,114,1160,1754, + 1289,1194,1365,1315,2461,1379,1371,1412,3225,1397, + 1454,424,2528,170,1624,39,986,36,600,3499, + 34,1116,31,35,62,32,388,419,2359,39, + 986,36,415,3109,34,1116,31,35,30,32, + 905,29,27,56,1119,112,82,83,114,1160, + 860,1289,1194,1365,1315,4262,1379,1371,1412,67, + 1397,1454,285,2528,170,2404,39,986,36,414, + 3109,34,1116,31,35,30,32,905,29,27, + 56,1119,112,82,83,114,1160,682,1289,1194, + 1365,1315,31,1379,1371,1412,2930,1397,1454,2022, + 2528,170,2173,39,986,36,2048,4405,34,1116, + 31,35,30,32,761,501,2359,39,986,36, + 417,3109,34,1116,31,35,30,32,905,29, + 27,56,1119,112,82,83,114,1160,1342,1289, + 1194,1365,1315,4267,1379,1371,1412,66,1397,2286, + 418,39,283,2359,39,986,36,3413,3109,34, + 1116,31,35,30,32,905,29,27,56,1119, + 112,82,83,114,1160,2479,1289,1194,1365,1315, + 31,1379,1371,1412,2504,2274,2359,39,986,36, + 1203,3109,34,1116,31,35,30,32,905,29, + 27,56,1119,112,82,83,114,1160,860,1289, + 1194,1365,1315,4283,1379,2256,2359,39,986,36, + 2601,3109,34,1116,31,35,30,32,905,29, + 27,56,1119,112,82,83,114,1160,860,1289, + 1194,1365,1315,4289,2094,2359,39,986,36,1262, + 3109,34,1116,31,35,30,32,905,29,27, + 56,1119,112,82,83,114,1160,103,1289,1194, + 1365,2155,2359,39,986,36,155,3109,34,1116, + 31,35,30,32,905,29,27,56,1119,112, + 82,83,114,1160,1372,1289,1194,1365,2200,2449, + 39,1576,385,1921,2638,249,1267,2359,39,986, + 36,239,3109,34,1116,31,35,30,32,905, + 29,27,56,1119,112,82,83,114,1160,1929, + 1289,1194,1991,275,58,1921,2359,39,986,36, + 1939,3109,34,1116,31,35,30,32,905,29, + 27,56,1119,112,82,83,114,1160,234,1289, + 1194,1998,2359,39,986,36,350,3109,34,1116, + 31,35,30,32,905,29,27,56,1119,112, + 82,83,114,1160,2184,1822,237,232,233,418, + 39,1576,385,2478,2019,1500,39,986,36,276, + 4405,34,1116,31,35,64,32,2569,39,2554, + 278,2626,39,391,244,247,250,253,2471,1697, + 418,39,292,275,3231,1707,1693,39,2932,36, + 4493,201,34,1116,339,35,2075,39,281,1762, + 3469,2710,3060,3264,3518,4023,2359,39,986,36, + 1383,3109,34,1116,31,35,30,32,905,29, + 27,56,1119,112,82,83,114,1160,177,1289, + 1194,2067,528,332,1240,39,443,1567,4415,4318, + 1226,1157,320,1372,322,2279,3231,315,1148,277, + 231,2049,39,2460,1573,162,3551,2190,3299,3290, + 3417,611,898,2852,1991,186,1836,1,2279,2708, + 1754,528,206,217,3006,205,214,215,216,218, + 3076,2141,478,175,2233,55,343,1546,2019,231, + 1893,2279,1561,1029,162,332,189,173,174,176, + 177,178,179,180,186,1836,2678,620,1401,2852, + 2279,206,217,3006,205,214,215,216,218,2485, + 39,443,175,31,4318,200,2228,4007,231,3604, + 187,3308,359,299,1677,190,173,174,176,177, + 178,179,180,1730,411,2941,2490,2673,2619,2620, + 208,217,3006,207,214,215,216,218,2703,1157, + 1532,2669,2279,2279,3231,2165,2665,2075,39,279, + 1203,209,1754,2649,418,2771,2554,80,359,1931, + 231,2852,331,335,219,210,211,212,213,293, + 294,295,296,3505,2619,2620,436,3018,3029,471, + 2351,2487,208,217,3006,207,214,215,216,218, + 3568,2490,1123,332,3117,2543,2279,4409,506,39, + 1576,385,437,209,2790,2649,601,860,2279,830, + 446,3522,4332,1921,231,306,219,210,211,212, + 213,293,294,295,296,2413,231,104,432,569, + 359,1755,55,1921,2549,3465,854,402,4194,1561, + 2502,2565,3568,2592,96,2673,2619,2620,208,217, + 3006,207,214,215,216,218,2805,403,2369,2649, + 2279,440,3018,3029,2543,286,2689,1921,1822,209, + 1229,2649,1444,3231,2714,31,2279,31,231,1071, + 1754,2279,219,210,211,212,213,293,294,295, + 296,860,1891,2674,343,2646,4338,351,2715,343, + 208,217,3006,207,214,215,216,218,3568,2720, + 2181,39,986,36,2824,4189,34,1116,44,35, + 2671,209,333,2649,344,1123,771,349,31,234, + 1652,2735,942,342,219,210,211,212,213,293, + 294,295,296,298,2181,39,986,36,404,407, + 34,1116,1204,35,2019,162,425,246,232,233, + 3568,2824,2359,39,986,36,2285,3109,34,1116, + 31,35,30,32,905,29,27,56,1119,112, + 82,83,114,1160,1754,1289,2079,2359,39,986, + 36,204,3109,34,1116,31,35,30,32,905, + 29,27,56,1119,112,82,83,114,1160,2563, + 1289,2086,1556,39,986,36,3480,2313,34,1116, + 339,35,2359,39,986,36,514,3109,34,1116, + 31,35,30,32,905,29,27,56,1119,112, + 82,83,114,1160,2659,1854,1921,297,969,265, + 2626,39,391,528,2181,39,986,36,4311,2747, + 34,1116,340,35,4415,2766,390,419,320,1372, + 322,231,375,315,1148,1435,162,73,351,942, + 2607,418,39,1576,385,1921,186,1836,2706,2768, + 2165,2665,1150,206,217,3006,205,214,215,216, + 218,865,162,1523,175,344,1123,771,349,2569, + 39,2554,2849,629,2681,423,72,3421,173,174, + 176,177,178,179,180,1480,39,986,36,4493, + 3231,34,1116,339,35,2359,39,986,36,2019, + 3109,34,1116,31,35,30,32,905,29,27, + 56,1119,112,82,83,114,1866,1075,353,3085, + 31,942,528,2368,2507,2752,2153,39,986,36, + 2965,373,34,1116,339,35,202,4415,2633,332, + 231,320,1372,322,166,162,315,1148,365,2772, + 2604,2181,39,986,36,186,1836,34,1116,1746, + 35,763,206,217,3006,205,214,215,216,218, + 286,2513,441,175,2136,4031,528,1921,4415,3231, + 1345,2728,317,2905,322,2279,182,173,174,176, + 177,178,179,180,231,2780,2758,1979,2674,162, + 2475,39,279,343,559,2762,308,312,71,186, + 1836,529,521,380,2283,528,206,217,3006,205, + 214,215,216,218,2671,3133,430,175,3054,1769, + 39,1576,385,231,524,1784,3472,2313,162,234, + 193,173,174,176,177,178,179,180,186,1836, + 617,1494,775,2019,528,206,217,3006,205,214, + 215,216,218,55,3659,2781,175,249,232,233, + 1561,649,231,418,39,1576,385,162,2884,3603, + 173,174,176,177,178,179,180,186,1836,705, + 223,953,375,528,206,217,3006,205,214,215, + 216,218,50,2546,2733,175,2218,55,942,31, + 102,231,1921,4162,1561,928,162,963,196,173, + 174,176,177,178,179,180,186,1836,793,2817, + 2823,162,528,206,217,3006,205,214,215,216, + 218,203,2979,70,175,425,1834,39,1576,385, + 231,418,39,1576,385,162,2846,192,173,174, + 176,177,178,179,180,186,1836,881,3625,2852, + 2019,528,206,217,3006,205,214,215,216,218, + 55,2114,2655,175,2016,55,942,1561,882,231, + 1921,3587,1561,2599,162,1998,199,173,174,176, + 177,178,179,180,186,1836,2369,4386,2788,162, + 2801,206,217,3006,205,214,215,216,218,2773, + 168,3189,175,1027,39,986,36,2579,1636,34, + 1116,339,35,3231,1722,198,173,174,176,177, + 178,179,180,234,1213,39,2932,36,4493,3231, + 34,1116,339,35,31,389,419,1921,2279,418, + 39,1576,385,31,2830,31,31,942,2279,942, + 3517,252,232,233,31,4415,343,2853,2481,320, + 1372,322,333,3532,315,1148,231,31,61,351, + 4326,1279,162,426,351,1757,4415,2671,332,3408, + 320,1372,322,2886,1921,315,1148,1666,208,217, + 3006,207,214,215,216,218,344,1123,771,349, + 898,346,1123,771,349,2315,31,89,1921,209, + 1290,2649,2616,1974,4031,60,2279,418,39,2554, + 282,2828,489,210,211,212,213,293,294,295, + 296,418,39,292,231,2359,39,986,36,323, + 3109,34,1116,31,35,30,32,905,29,27, + 56,1119,112,82,83,91,208,217,3006,207, + 214,215,216,218,2892,1697,2787,31,2279,1990, + 3231,4207,2841,1099,39,1576,385,209,57,2649, + 1697,241,410,2941,31,3231,231,513,2279,2019, + 510,210,211,212,213,293,294,295,296,594, + 39,1576,385,939,1921,1921,343,275,208,217, + 3006,207,214,215,216,218,2917,2139,2073,332, + 2279,2279,418,39,2554,280,305,2671,234,209, + 2754,2649,2019,55,332,107,3467,1684,231,2852, + 1561,1089,307,210,211,212,213,293,294,295, + 296,946,39,1576,385,3308,242,232,233,3473, + 208,217,3006,207,214,215,216,218,2718,4492, + 569,1078,2279,2635,31,2461,2859,234,4059,1921, + 4030,209,2822,2649,1223,55,78,31,2869,4253, + 231,605,1561,53,511,210,211,212,213,293, + 294,295,296,2143,2019,255,232,233,495,4990, + 441,2416,208,217,3006,207,214,215,216,218, + 1933,39,986,36,3480,2693,34,1116,339,35, + 31,4990,2019,209,942,2649,31,351,31,2786, + 528,304,1320,3464,492,494,220,210,211,212, + 213,293,294,295,296,4990,520,162,343,418, + 39,2554,2929,162,344,1123,771,349,2925,4497, + 4990,31,4415,2315,1453,2526,320,1372,322,2671, + 2019,315,1148,4990,2943,4990,351,2118,4990,1330, + 4990,4990,2359,1602,986,1643,517,3109,34,1116, + 31,35,30,32,905,29,27,56,1119,112, + 82,83,90,344,1123,771,349,224,2359,39, + 986,36,518,3109,34,1116,31,35,30,32, + 905,29,27,56,1119,112,82,83,114,1900, + 2359,39,986,36,421,3109,34,1116,31,35, + 30,32,905,29,27,56,1119,112,82,83, + 114,1910,2359,39,986,36,2920,3109,34,1116, + 31,35,30,32,905,29,27,56,1119,112, + 82,83,89,2359,39,986,36,4990,3109,34, + 1116,31,35,30,32,905,29,27,56,1119, + 112,82,83,88,2359,39,986,36,4990,3109, + 34,1116,31,35,30,32,905,29,27,56, + 1119,112,82,83,87,2359,39,986,36,4990, + 3109,34,1116,31,35,30,32,905,29,27, + 56,1119,112,82,83,86,2359,39,986,36, + 4990,3109,34,1116,31,35,30,32,905,29, + 27,56,1119,112,82,83,85,2359,39,986, + 36,4990,3109,34,1116,31,35,30,32,905, + 29,27,56,1119,112,82,83,84,2219,39, + 986,36,4990,3109,34,1116,31,35,30,32, + 905,29,27,56,1119,112,82,83,110,2359, + 39,986,36,4990,3109,34,1116,31,35,30, + 32,905,29,27,56,1119,112,82,83,116, + 2359,39,986,36,4990,3109,34,1116,31,35, + 30,32,905,29,27,56,1119,112,82,83, + 115,2359,39,986,36,4990,3109,34,1116,31, + 35,30,32,905,29,27,56,1119,112,82, + 83,113,2359,39,986,36,4990,3109,34,1116, + 31,35,30,32,905,29,27,56,1119,112, + 82,83,111,1364,39,986,36,4493,1921,34, + 1116,339,35,2314,39,986,36,2233,3109,34, + 1116,31,35,30,32,905,29,27,56,1119, + 92,82,83,2506,39,1576,385,4990,2638,3489, + 2019,1066,39,986,36,240,3231,34,1116,339, + 35,418,39,1576,385,4415,2626,39,391,320, + 1372,322,31,4990,315,1148,3375,275,31,2651, + 1921,31,2578,2279,31,2644,1730,300,2279,763, + 2145,39,986,36,4493,425,34,1116,339,35, + 31,2852,234,4415,2696,333,343,320,1372,322, + 1921,3052,318,1148,1921,2145,39,986,36,4493, + 4990,34,1116,339,35,3367,335,2671,2019,31, + 238,232,233,3993,308,312,31,1693,4990,4990, + 942,3091,4415,276,4990,3130,320,1372,322,4990, + 4990,315,1148,3680,418,39,1576,385,245,248, + 251,254,2471,162,3472,197,763,4415,4990,1707, + 495,320,1372,322,3057,3588,315,1148,1066,39, + 986,36,2233,3231,34,1116,339,35,424,4990, + 4990,3408,2145,39,986,36,4493,1921,34,1116, + 339,35,4990,4990,31,1223,492,494,528,2741, + 4253,309,312,3620,1246,39,986,36,3324,4990, + 34,1116,339,35,4990,1075,343,2233,1529,942, + 4415,162,333,1040,320,1372,322,2279,4409,316, + 1148,1730,1535,4990,4415,4990,3314,2671,320,1372, + 322,398,166,315,1148,231,4990,1494,4990,4990, + 506,39,1576,385,4990,31,4415,4990,3582,860, + 317,2905,322,2609,39,1576,385,854,402,4194, + 3406,335,594,39,1576,385,1730,2609,39,1576, + 385,1075,31,4990,55,942,942,4990,403,4990, + 2649,1561,53,2609,39,1576,385,55,2118,2609, + 39,1576,385,2139,1561,53,55,2279,166,162, + 2130,55,3337,1561,53,3638,335,4990,1561,53, + 3192,1921,4990,2921,4990,2852,2646,55,2609,39, + 1576,385,3031,55,1561,53,1921,3339,4990,4990, + 1561,53,2647,39,1576,385,4990,4990,2743,39, + 1576,385,1570,4041,1921,422,2884,4990,4990,4134, + 1921,1921,55,418,39,1576,385,377,31,1561, + 53,31,942,4990,4990,528,55,823,3384,404, + 406,2279,55,1561,53,4108,4990,4990,4479,1561, + 53,3208,3247,343,495,162,2655,55,162,2852, + 942,1725,2400,2632,1561,2587,2170,4990,3431,1453, + 418,39,1576,385,2671,418,39,1576,385,418, + 39,1576,385,162,1658,418,39,1576,385,4990, + 493,494,4990,1756,168,1075,31,2279,4990,942, + 528,4990,31,2655,55,4990,528,528,4990,55, + 31,1561,3080,55,528,343,1561,649,343,55, + 1561,1107,166,162,343,4109,1561,1274,360,162, + 162,4990,343,4990,194,4990,1607,162,31,4172, + 194,168,2279,31,4990,4172,4990,2279,194,418, + 39,1576,385,4172,31,31,4990,3632,2279,2279, + 343,4990,2655,1697,4990,343,942,2655,3231,4990, + 4990,942,4990,4990,1075,31,343,343,942,942, + 4990,2671,4990,442,4990,4990,2671,4990,4990,162, + 4990,2707,3504,4990,162,4990,499,2671,2671,4990, + 168,166,162,4990,3250,168,4990,497,525,4990, + 4060,4990,4990,4344,4990,4990,4090,332,4990,4990, + 4990,4990,4990,4990,4094,4990,4990,4990,4990,4990, + 4990,4990,4990,4990,4990,4990,4990,4990,4990,4990, + 4990,4990,4990,4990,4990,4990,4990,4990,4990,4990, + 4990,4990,4990,4158,4990,4990,4990,4990,4990,4990, + 4990,4990,4990,4350,1859,4990,4990,4990,4351,4990, + 4990,3579,4990,4990,4990,4990,4990,3262,4990,0, + 43,5008,0,43,5007,0,632,33,0,444, + 844,0,42,5008,0,42,5007,0,2316,132, + 0,1,434,0,448,723,0,447,770,0, + 632,45,0,1737,97,0,632,384,0,39, + 37,0,36,38,0,43,579,0,1,550, + 0,1,5264,0,1,5263,0,1,5262,0, + 1,5261,0,1,5260,0,1,5259,0,1, + 5258,0,1,5257,0,1,5256,0,1,5255, + 0,1,5254,0,43,1,5008,0,43,1, + 5007,0,850,1,0,5226,243,0,5225,243, + 0,5328,243,0,5327,243,0,5253,243,0, + 5252,243,0,5251,243,0,5250,243,0,5249, + 243,0,5248,243,0,5247,243,0,5246,243, + 0,5264,243,0,5263,243,0,5262,243,0, + 5261,243,0,5260,243,0,5259,243,0,5258, + 243,0,5257,243,0,5256,243,0,5255,243, + 0,5254,243,0,43,243,5008,0,43,243, + 5007,0,5032,243,0,54,5008,0,54,5007, + 0,239,983,0,385,36,0,36,385,0, + 384,33,0,33,384,0,49,5030,0,49, + 41,0,5008,54,0,5007,54,0,2316,134, + 0,2316,133,0,30,509,0,5320,435,0, + 1327,435,0,5032,1,0,43,1,0,53, + 41,0,1,98,0,41,53,0,5032,230, + 1,0,43,230,1,0,230,409,0,41, + 5008,0,41,5007,0,1,5008,2,0,1, + 5007,2,0,41,5008,2,0,41,5007,2, + 0,5008,40,0,5007,40,0,5030,51,0, + 51,41,0,5000,400,0,4999,400,0,1, + 4095,0,1,579,0,1,2484,0,230,408, + 0,3000,319,0,5320,101,0,1327,101,0, + 39,79,0,1,5320,0,1,1327,0,43, + 1,5008,2,0,43,1,5007,2,0,43, + 5008,2,0,43,5007,2,0,280,4205,0, + 1,2391,0,1,2890,0,4998,1,0,491, + 3412,0,230,1,0,230,1,3197,0,5000, + 230,0,4999,230,0,3407,230,0,8,10, + 0,230,222,0,230,221,0,191,3169,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1050,305 +1018,308 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse 0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,28,29, - 30,31,32,33,34,35,0,37,38,39, - 40,41,42,43,0,45,46,47,48,49, - 50,51,52,53,54,55,56,57,58,59, - 0,61,62,63,64,0,1,2,68,69, - 70,71,7,73,74,75,76,77,78,79, - 80,0,82,83,84,85,86,0,1,2, - 3,4,5,6,7,8,9,10,11,12, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,28,29,30,31,32, - 33,34,35,0,37,38,39,40,41,42, - 43,8,45,46,47,48,49,50,51,52, - 53,54,55,56,57,58,59,66,61,62, - 63,64,0,0,0,68,69,70,71,123, - 73,74,75,76,77,78,79,80,0,82, - 83,84,85,86,0,1,2,3,4,5, - 6,7,8,9,10,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,28,29,30,31,32,33,34,35, - 0,37,38,39,40,41,42,43,65,45, - 46,47,48,49,50,51,52,53,54,55, - 56,57,58,59,0,61,62,63,64,0, - 88,89,68,69,70,11,12,73,74,75, - 76,77,78,79,80,101,82,83,84,85, - 86,0,1,2,3,4,5,6,7,8, - 9,10,11,12,13,14,15,16,17,18, - 19,20,21,22,23,24,25,26,27,28, - 29,30,31,32,33,34,35,0,37,38, - 39,40,41,42,43,8,45,46,47,48, - 49,50,51,52,53,54,55,56,57,58, - 59,0,61,62,63,64,0,1,2,68, - 69,70,0,0,73,74,75,76,77,78, - 79,80,9,82,83,84,85,86,0,1, + 0,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,57,58,59, + 60,61,62,63,64,0,1,2,68,69, + 70,71,7,73,0,75,76,77,78,79, + 80,81,8,83,84,85,86,87,0,1, 2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,0,37,38,39,40,41, - 42,43,60,45,46,47,48,49,50,51, - 52,53,54,55,56,57,58,59,0,61, - 62,63,64,0,1,2,68,69,70,0, - 87,73,74,75,76,77,78,79,80,0, - 82,83,84,85,86,0,1,2,3,4, - 5,6,7,8,9,10,11,12,13,14, - 15,16,17,18,19,20,21,22,23,24, - 25,26,27,28,29,30,31,32,33,34, - 35,0,37,38,39,40,41,42,43,60, - 45,46,47,48,49,50,51,52,53,54, - 55,56,57,58,59,66,61,62,63,64, - 0,1,2,68,69,70,0,0,73,74, - 75,76,77,78,79,80,9,82,83,84, - 85,86,0,1,2,3,4,5,6,7, - 8,9,10,11,12,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 28,29,30,31,32,33,34,35,0,37, - 38,39,40,41,42,43,60,45,46,47, - 48,49,50,51,52,53,54,55,56,57, - 58,59,0,61,62,63,64,0,0,0, - 68,69,70,4,87,73,74,75,76,77, - 78,79,80,0,82,83,84,85,86,0, - 1,2,3,4,5,6,7,8,9,10, - 11,12,13,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,29,30, - 31,32,33,34,35,0,37,38,39,40, - 41,42,43,65,45,46,47,48,49,50, - 51,52,53,54,55,56,57,58,59,0, - 61,62,63,64,0,88,89,68,69,70, - 11,12,73,74,75,76,77,78,79,80, - 0,82,83,84,85,86,0,1,2,3, + 22,23,24,25,26,27,28,29,62,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,57,58,59,60,61, + 62,63,64,0,0,30,68,69,70,71, + 123,73,8,75,76,77,78,79,80,81, + 0,83,84,85,86,87,0,1,2,3, 4,5,6,7,8,9,10,11,12,13, 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,29,30,31,32,33, - 34,35,0,37,38,39,40,41,42,43, - 50,45,46,47,48,49,50,51,52,53, - 54,55,56,57,58,59,0,61,62,63, - 64,0,88,89,68,69,70,11,12,73, - 74,75,76,77,78,79,80,0,82,83, - 84,85,86,0,1,2,3,4,5,6, - 7,8,9,10,11,12,13,14,15,16, - 17,18,19,20,21,22,23,24,25,26, - 27,28,29,30,31,32,33,34,35,0, - 37,38,39,40,41,42,43,50,45,46, - 47,48,49,50,51,52,53,54,55,56, - 57,58,59,0,61,62,63,64,0,88, - 89,68,69,70,0,36,73,74,75,76, - 77,78,79,80,0,82,83,84,85,86, + 24,25,26,27,28,29,0,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,57,58,59,60,61,62,63, + 64,88,89,30,68,69,70,0,0,73, + 0,75,76,77,78,79,80,81,0,83, + 84,85,86,87,0,1,2,3,4,5, + 6,7,8,9,10,11,12,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,28,29,0,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, + 72,57,58,59,60,61,62,63,64,97, + 98,30,68,69,70,88,89,73,0,75, + 76,77,78,79,80,81,0,83,84,85, + 86,87,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 28,29,0,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,57, + 58,59,60,61,62,63,64,0,1,2, + 68,69,70,0,0,73,37,75,76,77, + 78,79,80,81,0,83,84,85,86,87, 0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,28,29, - 30,31,32,33,34,35,0,37,38,39, - 40,41,42,43,60,45,46,47,48,49, - 50,51,52,53,54,55,56,57,58,59, - 0,61,62,63,64,0,88,89,68,69, - 70,0,0,73,74,75,76,77,78,79, - 80,0,82,83,84,85,86,0,1,2, - 3,4,5,6,7,8,36,10,11,12, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,0,27,28,29,30,31,32, - 33,34,35,10,37,38,39,40,41,42, - 43,60,45,46,47,99,49,72,51,52, - 53,54,55,0,57,58,59,0,0,62, - 0,1,2,0,4,68,69,70,0,1, - 2,3,4,5,6,7,8,9,10,97, - 98,13,14,15,16,17,18,19,20,21, - 22,23,101,0,26,27,36,44,0,1, - 2,3,0,5,36,7,4,9,6,0, - 8,0,0,45,46,4,48,49,65,51, - 52,53,54,55,26,57,58,59,65,66, - 62,0,1,2,0,4,68,69,70,71, - 72,73,0,0,1,2,93,94,5,81, - 0,1,2,3,4,5,6,7,8,9, - 10,0,0,13,14,15,16,17,18,19, - 20,21,22,23,65,66,26,27,0,36, - 0,50,114,115,116,0,36,0,1,2, - 3,0,5,100,7,45,46,6,48,49, - 66,51,52,53,54,55,44,57,58,59, - 0,0,62,0,102,0,1,2,68,69, - 70,71,72,73,0,0,65,3,3,117, - 6,81,8,9,72,11,12,0,1,2, - 3,4,5,6,7,8,66,60,24,25, - 26,36,0,1,2,0,4,72,6,46, - 8,9,49,0,114,115,116,4,44,0, - 0,1,2,0,1,2,3,4,5,6, - 7,8,91,92,60,60,0,0,0,65, - 66,67,114,115,116,71,72,60,0,0, - 1,2,0,4,67,6,36,8,97,98, - 100,87,88,89,90,91,92,93,94,95, - 96,97,98,99,100,101,102,103,104,105, - 106,107,108,109,110,111,112,113,0,87, - 0,117,118,3,120,72,6,95,8,9, - 95,11,12,67,0,1,2,3,4,5, - 6,7,8,65,24,25,26,0,1,2, - 3,4,5,6,7,8,0,1,2,3, - 0,5,44,7,44,9,99,0,102,0, - 104,105,106,107,108,109,110,111,112,113, - 60,0,26,117,3,65,66,67,0,1, - 2,71,72,5,60,0,1,2,3,4, - 5,6,7,8,0,1,2,87,88,89, - 90,91,92,93,94,95,96,97,98,99, - 100,101,102,103,104,105,106,107,108,109, - 110,111,112,113,65,66,0,117,118,3, - 120,0,1,2,3,4,5,6,7,8, - 0,10,11,12,13,14,15,16,17,18, - 19,20,21,22,23,24,25,63,64,28, - 29,30,31,32,33,34,35,0,37,38, - 39,40,41,42,43,0,1,2,47,4, - 0,0,1,2,3,4,60,6,0,8, - 0,1,2,5,63,64,0,1,2,0, - 4,5,3,7,73,0,1,2,3,4, - 5,6,7,8,74,10,11,12,13,14, - 15,16,17,18,19,20,21,22,23,24, - 25,0,36,28,29,30,31,32,33,34, - 35,60,37,38,39,40,41,42,43,0, - 1,2,47,0,1,2,3,0,5,60, - 7,0,95,0,1,2,9,6,63,64, - 65,0,1,2,3,4,5,6,7,8, - 9,10,11,12,13,14,15,16,17,18, - 19,20,21,22,23,24,25,66,0,28, - 29,30,31,32,33,34,35,9,37,38, - 39,40,41,42,43,0,1,2,47,4, - 5,50,7,66,26,72,63,64,71,0, - 1,2,0,0,1,2,0,4,5,3, - 7,9,71,0,1,2,3,4,5,6, - 7,8,9,10,11,12,13,14,15,16, - 17,18,19,20,21,22,23,24,25,36, - 0,28,29,30,31,32,33,34,35,50, - 37,38,39,40,41,42,43,0,1,2, - 47,4,0,50,0,1,2,3,0,5, - 0,7,4,71,0,0,1,2,3,4, - 5,6,7,8,71,10,11,12,13,14, - 15,16,17,18,19,20,21,22,23,24, - 25,27,0,28,29,30,31,32,33,34, - 35,9,37,38,39,40,41,42,43,45, - 46,122,47,49,60,51,52,53,54,55, - 90,57,58,59,0,65,96,3,63,64, - 0,1,2,3,4,5,6,7,8,0, - 10,11,12,13,14,15,16,17,18,19, - 20,21,22,23,24,25,0,0,28,29, - 30,31,32,33,34,35,9,37,38,39, - 40,41,42,43,0,1,2,47,4,87, - 6,0,8,0,1,2,0,4,0,6, - 4,8,36,63,64,0,1,2,3,4, - 5,6,7,8,9,10,11,12,13,14, - 15,16,17,18,19,20,21,22,23,24, - 25,0,0,28,29,30,31,32,33,34, - 35,9,37,38,39,40,41,42,43,0, - 1,2,3,4,5,6,7,8,26,10, - 11,12,13,14,15,16,17,18,19,20, - 21,22,23,24,25,44,0,28,29,30, - 31,32,33,34,35,118,37,38,39,40, - 41,42,43,0,1,2,47,4,5,50, - 7,0,0,0,3,0,3,0,1,2, - 0,0,9,3,0,1,2,3,4,5, - 6,7,8,118,10,11,12,13,14,15, + 0,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,72,57,58,59, + 60,61,62,63,64,0,1,2,68,69, + 70,88,89,73,37,75,76,77,78,79, + 80,81,0,83,84,85,86,87,0,1, + 2,3,4,5,6,7,8,9,10,11, + 12,13,14,15,16,17,18,19,20,21, + 22,23,24,25,26,27,28,29,0,31, + 32,33,34,35,36,95,38,39,40,41, + 42,43,44,45,46,47,48,49,50,51, + 52,53,54,55,0,57,58,59,60,61, + 62,63,64,0,1,2,68,69,70,0, + 0,73,0,75,76,77,78,79,80,81, + 0,83,84,85,86,87,0,1,2,3, + 4,5,6,7,8,9,10,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,0,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,72,57,58,59,60,61,62,63, + 64,0,72,30,68,69,70,88,89,73, + 0,75,76,77,78,79,80,81,0,83, + 84,85,86,87,0,1,2,3,4,5, + 6,7,8,9,10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25, - 0,0,28,29,30,31,32,33,34,35, - 9,37,38,39,40,41,42,43,0,0, - 0,47,3,60,5,6,90,8,65,66, - 11,12,96,0,1,2,3,4,5,6, - 7,8,9,24,25,0,0,0,29,4, - 87,0,1,2,3,90,5,95,7,26, - 27,96,44,44,0,1,2,66,4,36, - 6,0,8,27,0,4,0,44,0,60, - 0,48,63,64,65,66,67,67,87,56, - 45,45,46,0,61,49,0,51,52,53, - 54,55,6,57,58,59,28,88,89,90, - 91,92,93,94,81,44,97,98,99,100, - 101,102,103,104,105,106,107,108,109,110, - 111,112,113,0,0,0,3,90,5,6, - 60,8,0,96,11,12,72,0,1,2, - 3,4,5,6,7,8,9,24,25,114, - 115,116,29,0,1,2,3,0,5,0, - 7,4,3,26,27,0,0,44,44,0, - 1,2,0,36,5,0,7,91,92,0, - 1,2,50,60,9,48,63,64,65,66, - 67,0,67,56,0,1,2,6,61,0, - 1,2,45,0,1,2,0,0,71,3, - 44,88,89,90,91,92,93,94,81,0, + 26,27,28,29,0,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,57,58,59,60,61,62,63,64,88, + 89,30,68,69,70,0,0,73,3,75, + 76,77,78,79,80,81,10,83,84,85, + 86,87,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 28,29,0,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,57, + 58,59,60,61,62,63,64,97,98,0, + 68,69,70,4,0,73,37,75,76,77, + 78,79,80,81,0,83,84,85,86,87, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 0,31,32,33,34,35,36,95,38,39, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,54,55,72,57,58,59, + 60,61,62,63,64,0,1,2,68,69, + 70,0,0,73,3,75,76,77,78,79, + 80,81,0,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,28,29,0,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,72,57,0,1,2,3, + 62,5,0,7,72,30,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,1,2,3,4, + 5,6,7,8,0,0,37,0,0,0, + 3,3,56,9,45,46,47,48,49,50, + 51,52,53,54,55,0,0,58,0,1, + 2,62,6,5,26,27,0,68,69,70, + 71,72,73,0,1,2,0,4,5,3, + 7,82,0,1,2,3,4,5,6,7, + 8,9,10,56,56,13,14,15,16,17, + 18,19,20,21,22,23,24,25,74,0, + 37,100,0,114,115,116,0,1,2,37, + 4,66,6,0,8,9,0,45,46,47, + 48,49,50,51,52,53,54,55,99,30, + 58,103,30,67,62,0,0,91,92,0, + 68,69,70,71,72,73,30,0,120,10, + 3,0,0,6,82,8,9,101,11,12, + 13,9,0,1,2,3,4,5,6,7, + 8,72,0,26,27,0,4,30,0,4, + 74,65,0,0,1,2,114,115,116,0, + 1,2,14,4,0,0,1,2,3,60, + 5,95,7,56,9,30,0,56,13,93, + 94,0,65,66,67,0,0,45,71,72, + 37,74,0,45,46,47,48,49,50,51, + 52,53,54,55,72,88,89,90,91,92, + 93,94,95,96,97,98,99,100,101,102, + 103,104,105,106,107,108,109,110,111,112, + 113,67,56,0,117,118,3,120,0,6, + 118,8,9,0,11,12,13,0,1,2, + 3,4,5,6,7,8,114,115,116,26, + 27,0,0,30,0,4,102,5,104,105, + 106,107,108,109,110,111,112,113,14,0, + 99,117,3,0,1,2,3,101,5,56, + 7,0,9,0,1,2,13,4,65,66, + 67,0,0,56,71,72,45,74,65,45, + 46,47,48,49,50,51,52,53,54,55, + 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, - 3,4,5,6,7,8,71,10,11,12, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,44,0,28,29,30,31,32, - 33,34,35,67,37,38,39,40,41,42, - 43,0,91,92,3,0,121,0,0,1, - 2,3,4,5,6,7,8,60,10,11, - 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,50,28,28,29,30,31, - 32,33,34,35,0,37,38,39,40,41, - 42,43,47,0,0,47,0,1,2,3, - 4,5,6,7,8,0,10,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,28,0,28,29,30,31,32,33, - 34,35,9,37,38,39,40,41,42,43, - 0,1,2,3,4,5,6,7,8,26, - 10,11,12,13,14,15,16,17,18,19, - 20,21,22,23,24,25,0,0,28,29, - 30,31,32,33,34,35,0,37,38,39, - 40,41,42,43,0,1,2,3,4,5, - 6,7,8,0,10,11,12,13,14,15, + 117,118,59,120,0,1,2,3,4,5, + 6,7,8,0,10,11,12,65,66,15, 16,17,18,19,20,21,22,23,24,25, - 44,44,28,29,30,31,32,33,34,35, - 44,37,38,39,40,41,42,43,0,1, - 2,65,4,0,1,2,0,0,10,3, - 3,13,14,15,16,17,18,19,20,21, - 22,23,0,1,2,27,0,0,65,93, - 94,0,0,0,1,2,4,0,0,36, - 0,10,0,45,46,0,9,49,0,51, - 52,53,54,55,0,57,58,59,36,0, - 62,0,1,2,0,4,68,69,70,36, - 0,10,27,3,13,14,15,16,17,18, - 19,20,21,22,23,0,44,56,27,0, - 45,46,0,4,49,3,51,52,53,54, - 55,75,57,58,59,67,45,46,44,0, - 49,0,51,52,53,54,55,0,57,58, - 59,0,0,62,87,3,9,0,0,68, - 69,70,95,44,13,14,15,16,17,18, - 19,20,21,22,23,0,0,0,27,0, - 1,2,0,44,0,0,1,2,3,4, - 5,6,7,8,9,0,45,46,0,4, - 49,3,51,52,53,54,55,0,57,58, - 59,26,27,0,0,36,3,0,0,44, - 0,36,0,1,2,3,4,5,6,7, - 8,9,0,48,87,0,0,0,3,44, - 65,56,0,67,67,9,61,10,26,27, - 66,0,0,0,72,3,71,0,36,24, - 25,44,26,0,0,0,81,0,93,94, - 48,0,9,36,10,0,119,0,56,72, - 3,67,0,61,0,3,0,3,0,26, - 72,3,72,71,0,60,0,3,0,62, - 36,3,66,81,0,1,2,3,4,5, - 6,7,8,9,0,0,1,2,3,4, - 5,6,7,8,9,50,62,0,0,72, - 26,27,65,62,0,0,50,3,103,0, - 36,26,27,0,0,0,3,0,0,0, - 87,36,48,0,0,120,0,0,0,0, - 56,119,66,48,0,61,0,0,0,0, - 119,56,0,0,0,71,61,0,0,44, - 0,67,0,0,0,81,71,0,0,0, - 0,0,0,0,67,67,81,0,1,2, - 3,4,5,6,7,8,9,0,0,1, + 26,27,28,29,37,31,32,33,34,35, + 36,100,38,39,40,41,42,43,44,0, + 1,2,3,4,5,6,7,8,0,1, + 2,57,4,0,6,0,8,63,64,0, + 1,2,102,4,5,0,7,73,0,1, + 2,3,4,5,6,7,8,117,10,11, + 12,28,0,15,16,17,18,19,20,21, + 22,23,24,25,26,27,28,29,95,31, + 32,33,34,35,36,0,38,39,40,41, + 42,43,44,0,9,0,1,2,3,4, + 5,6,7,8,0,57,0,0,1,2, + 65,63,64,65,0,1,2,3,4,5, + 6,7,8,9,10,11,12,65,66,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,28,29,37,31,32,33,34,35, + 36,56,38,39,40,41,42,43,44,74, + 56,0,67,0,1,2,0,4,5,0, + 7,57,66,59,0,0,1,2,3,4, + 95,6,0,8,0,71,0,1,2,3, + 4,5,6,7,8,9,10,11,12,30, + 37,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,0,31,32,33, + 34,35,36,57,38,39,40,41,42,43, + 44,56,0,1,2,3,0,5,0,7, + 4,3,6,57,8,59,30,65,0,1, + 2,3,4,5,6,7,8,71,10,11, + 12,0,0,15,16,17,18,19,20,21, + 22,23,24,25,26,27,28,29,0,31, + 32,33,34,35,36,0,38,39,40,41, + 42,43,44,0,0,0,0,3,3,0, + 0,0,9,9,72,57,6,0,0,1, + 2,63,64,0,1,2,3,4,5,6, + 7,8,0,10,11,12,65,66,15,16, + 17,18,19,20,21,22,23,24,25,26, + 27,28,29,65,31,32,33,34,35,36, + 56,38,39,40,41,42,43,44,59,65, + 66,0,1,2,71,4,65,6,74,8, + 57,63,64,0,1,2,63,64,0,1, + 2,3,4,5,6,7,8,9,10,11, + 12,91,92,15,16,17,18,19,20,21, + 22,23,24,25,26,27,28,29,0,31, + 32,33,34,35,36,119,38,39,40,41, + 42,43,44,0,1,2,3,4,5,6, + 7,8,0,10,11,12,63,64,15,16, + 17,18,19,20,21,22,23,24,25,26, + 27,28,29,0,31,32,33,34,35,36, + 0,38,39,40,41,42,43,44,0,9, + 0,3,0,1,2,3,6,5,0,7, + 57,3,59,0,1,2,3,4,5,6, + 7,8,0,10,11,12,118,65,15,16, + 17,18,19,20,21,22,23,24,25,26, + 27,28,29,0,31,32,33,34,35,36, + 0,38,39,40,41,42,43,44,56,0, + 0,11,12,3,74,5,6,0,8,0, + 57,11,12,14,15,16,17,18,19,20, + 21,22,23,24,25,0,26,27,0,29, + 30,0,0,1,2,28,4,9,6,14, + 8,13,11,12,45,46,47,48,49,50, + 51,52,53,54,55,72,56,0,0,1, + 2,0,4,63,64,65,66,67,11,12, + 45,46,47,48,49,50,51,52,53,54, + 55,0,0,0,0,1,2,6,88,89, + 90,91,92,93,94,37,14,97,98,99, + 100,101,102,103,104,105,106,107,108,109, + 110,111,112,113,0,0,0,3,3,5, + 6,37,8,0,0,11,12,45,46,47, + 48,49,50,51,52,53,54,55,0,56, + 26,27,4,29,30,0,1,2,0,4, + 0,6,0,8,0,1,2,3,10,5, + 0,7,0,1,2,3,0,5,30,7, + 56,56,91,92,0,1,2,63,64,65, + 66,67,0,1,2,37,4,5,65,7, + 0,1,2,0,0,5,3,7,4,0, + 1,2,88,89,90,91,92,93,94,59, + 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,8,0,10,11, + 12,4,0,15,16,17,18,19,20,21, + 22,23,24,25,26,27,28,29,59,31, + 32,33,34,35,36,0,38,39,40,41, + 42,43,44,121,9,0,1,2,3,4, + 5,6,7,8,56,10,11,12,46,47, + 15,16,17,18,19,20,21,22,23,24, + 25,26,27,28,29,0,31,32,33,34, + 35,36,0,38,39,40,41,42,43,44, + 0,122,0,0,1,2,3,4,5,6, + 7,8,57,10,11,12,71,0,15,16, + 17,18,19,20,21,22,23,24,25,26, + 27,28,29,0,31,32,33,34,35,36, + 0,38,39,40,41,42,43,44,0,1, + 2,3,4,5,6,7,8,0,10,11, + 12,59,0,15,16,17,18,19,20,21, + 22,23,24,25,26,27,28,29,0,31, + 32,33,34,35,36,0,38,39,40,41, + 42,43,44,0,1,2,3,4,5,6, + 7,8,0,10,11,12,66,0,15,16, + 17,18,19,20,21,22,23,24,25,26, + 27,28,29,0,31,32,33,34,35,36, + 0,38,39,40,41,42,43,44,0,1, + 2,0,4,0,0,1,2,0,10,5, + 0,4,14,15,16,17,18,19,20,21, + 22,23,24,25,0,1,2,0,0,67, + 3,114,115,116,0,1,2,30,4,0, + 30,37,3,45,46,47,48,49,50,51, + 52,53,54,55,0,0,1,2,30,4, + 62,37,0,1,2,10,68,69,70,14, + 15,16,17,18,19,20,21,22,23,24, + 25,0,1,2,3,4,5,6,7,8, + 9,90,0,65,13,14,4,96,0,37, + 45,46,47,48,49,50,51,52,53,54, + 55,30,0,0,0,0,4,62,0,1, + 2,93,94,68,69,70,45,46,47,48, + 49,50,51,52,53,54,55,56,0,1, 2,3,4,5,6,7,8,9,0,0, - 67,0,0,26,27,0,0,0,0,0, - 0,0,0,36,26,27,0,0,0,0, - 0,0,0,0,36,48,0,0,0,0, - 0,0,0,56,0,0,48,0,61,0, - 0,0,0,0,56,0,0,0,0,61, - 0,0,0,0,0,0,0,0,81,0, - 1,2,3,4,5,6,7,8,9,81, - 0,0,27,0,0,0,0,0,0,0, - 0,0,0,0,0,26,27,0,0,0, - 45,46,0,0,49,36,51,52,53,54, - 55,0,57,58,59,0,0,48,0,0, - 0,0,0,0,0,56,0,0,0,0, - 61,0,0,0,0,0,0,0,0,0, + 0,13,14,0,0,74,0,9,0,1, + 2,13,9,0,66,0,1,2,3,4, + 5,6,7,8,9,0,1,2,13,14, + 30,67,0,45,46,47,48,49,50,51, + 52,53,54,55,56,30,0,1,2,0, + 0,0,37,90,0,90,0,0,0,96, + 10,96,74,9,66,65,9,13,0,66, + 13,3,66,58,71,60,61,0,1,2, + 3,4,5,6,7,8,9,37,0,90, + 13,14,0,93,94,96,0,82,66,3, + 0,9,0,1,2,3,4,5,6,7, + 8,9,62,0,37,13,14,0,1,2, + 3,4,5,6,7,8,9,0,74,0, + 13,14,0,75,0,58,9,60,61,37, + 0,9,0,1,2,13,0,0,71,9, + 3,0,56,0,37,67,56,0,66,82, + 58,0,60,61,30,0,74,0,3,56, + 3,0,0,71,3,58,30,60,61,0, + 0,30,3,3,82,0,0,0,71,0, + 1,2,3,4,5,6,7,8,9,82, + 0,74,13,14,0,1,2,3,4,5, + 6,7,8,9,74,0,0,13,14,3, + 67,0,0,0,67,3,37,0,67,0, + 1,2,3,4,5,6,7,8,9,67, + 0,37,13,14,59,0,59,58,3,60, + 61,0,0,67,3,3,0,0,0,59, + 71,3,58,0,60,61,37,0,0,0, + 0,82,0,0,0,71,0,0,0,0, + 0,0,0,0,28,0,82,58,67,60, + 61,0,1,2,3,4,5,6,7,8, + 9,0,30,76,13,14,66,0,0,0, + 0,82,0,0,0,0,0,1,2,3, + 4,5,6,7,8,9,0,0,37,13, + 14,0,0,0,119,67,0,0,0,0, + 0,0,119,0,0,0,0,0,0,58, + 0,60,61,37,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,82,58,0,60,61,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,82,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,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; @@ -1356,304 +1327,306 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public interface TermAction { public final static char termAction[] = {0, - 5143,5118,5115,5115,5115,5115,5115,5115,5115,5128, + 4990,4965,4962,4962,4962,4962,4962,4962,4962,4975, + 1,1,1,4972,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5125,1,1,1, - 1,1,1,1,1,1,5143,1,1,1, - 1,1,1,1,1,1,1,1,1032,1, - 2721,1,1,1,1,1,1647,1,1,1, - 5143,2771,1,1,1,41,4783,4780,1,1, - 1,5150,724,5322,985,2945,2203,2124,2117,2830, - 3003,161,2878,1605,2858,4259,2853,8,5131,5131, - 5131,5131,5131,5131,5131,5131,5131,5131,5131,5131, - 5131,5131,5131,5131,5131,5131,5131,5131,5131,5131, - 5131,5131,5131,5131,5131,5131,5131,5131,5131,5131, - 5131,5131,5131,135,5131,5131,5131,5131,5131,5131, - 5131,2281,5131,5131,5131,5131,5131,5131,5131,5131, - 5131,5131,5131,5131,5131,5131,5131,1273,5131,5131, - 5131,5131,125,5143,141,5131,5131,5131,5131,4767, - 5131,5131,5131,5131,5131,5131,5131,5131,5143,5131, - 5131,5131,5131,5131,5143,5118,5115,5115,5115,5115, - 5115,5115,5115,5122,1,1,1,1,1,1, + 1,1,1,1,1,1,1,4990,1,1, 1,1,1,1,1,1,1,1,1,1, - 5125,1,1,1,1,1,1,1,1,1, - 5143,1,1,1,1,1,1,1,1773,1, - 1,1,1032,1,2721,1,1,1,1,1, - 1647,1,1,1,122,2771,1,1,1,5143, - 2569,2595,1,1,1,2941,780,5322,985,2945, - 2203,2124,2117,2830,3003,2213,2878,1605,2858,4259, - 2853,5143,5118,5115,5115,5115,5115,5115,5115,5115, - 5122,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5125,1,1, - 1,1,1,1,1,1,1,136,1,1, - 1,1,1,1,1,2281,1,1,1,1032, - 1,2721,1,1,1,1,1,1647,1,1, - 1,5143,2771,1,1,1,5143,5160,5161,1, - 1,1,447,1,5322,985,2945,2203,2124,2117, - 2830,3003,165,2878,1605,2858,4259,2853,5143,5118, - 5115,5115,5115,5115,5115,5115,5115,5122,1,1, + 1,1,1,1,1,1,4990,1,1297,1015, + 1918,3145,1,1,1,42,4625,4622,1,1, + 1,4997,1082,5171,137,1488,3249,2508,2045,2374, + 3171,2889,2196,3236,565,3210,3184,3209,8,4978, + 4978,4978,4978,4978,4978,4978,4978,4978,4978,4978, + 4978,4978,4978,4978,4978,4978,4978,4978,4978,4978, + 4978,4978,4978,4978,4978,4978,4978,4978,4046,4978, + 4978,4978,4978,4978,4978,4990,4978,4978,4978,4978, + 4978,4978,4978,4978,4978,4978,4978,4978,4978,4978, + 4978,4978,4978,4978,4990,4978,4978,4978,4978,4978, + 4978,4978,4978,127,138,2717,4978,4978,4978,4978, + 4609,4978,2196,4978,4978,4978,4978,4978,4978,4978, + 4990,4978,4978,4978,4978,4978,4990,4965,4962,4962, + 4962,4962,4962,4962,4962,4969,1,1,1,4972, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5125,1,1,1,1,1, - 1,1,1,1,5143,1,1,1,1,1, - 1,1,4792,1,1,1,1032,1,2721,1, - 1,1,1,1,1647,1,1,1,5143,2771, - 1,1,1,5143,4956,4953,1,1,1,446, - 165,5322,985,2945,2203,2124,2117,2830,3003,504, - 2878,1605,2858,4259,2853,5143,5118,5115,5115,5115, - 5115,5115,5115,5115,5122,1,1,1,1,1, + 1,1,1,1,1,1,4990,1,1,1, + 1,1,1,4990,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5125,1,1,1,1,1,1,1,1, - 1,5143,1,1,1,1,1,1,1,4795, - 1,1,1,1032,1,2721,1,1,1,1, - 1,1647,1,1,1,813,2771,1,1,1, - 53,4971,4968,1,1,1,347,5143,5322,985, - 2945,2203,2124,2117,2830,3003,5149,2878,1605,2858, - 4259,2853,5143,5118,5115,5115,5115,5115,5115,5115, - 5115,5122,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5125,1, - 1,1,1,1,1,1,1,1,5143,1, - 1,1,1,1,1,1,1777,1,1,1, - 1032,1,2721,1,1,1,1,1,1647,1, - 1,1,5143,2771,1,1,1,129,5143,42, - 1,1,1,5184,5148,5322,985,2945,2203,2124, - 2117,2830,3003,5143,2878,1605,2858,4259,2853,5143, - 5118,5115,5115,5115,5115,5115,5115,5115,5122,1, + 1,1,135,1,1297,1015,1918,3145,1,1, + 1,2802,2827,3334,1,1,1,131,4990,5171, + 4990,1488,3249,2508,2045,2374,3171,2889,4990,3236, + 565,3210,3184,3209,4990,4965,4962,4962,4962,4962, + 4962,4962,4962,4969,1,1,1,4972,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5125,1,1,1,1, - 1,1,1,1,1,5143,1,1,1,1, - 1,1,1,1774,1,1,1,1032,1,2721, - 1,1,1,1,1,1647,1,1,1,124, - 2771,1,1,1,128,2569,2595,1,1,1, - 2941,780,5322,985,2945,2203,2124,2117,2830,3003, - 5143,2878,1605,2858,4259,2853,5143,5118,5115,5115, - 5115,5115,5115,5115,5115,5122,1,1,1,1, + 1,1,1,1,4990,1,1,1,1,1, + 1,4990,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,5125,1,1,1,1,1,1,1, - 1,1,5143,1,1,1,1,1,1,1, - 2766,1,1,1,1032,1,2721,1,1,1, - 1,1,1647,1,1,1,123,2771,1,1, - 1,127,2569,2595,1,1,1,2941,780,5322, - 985,2945,2203,2124,2117,2830,3003,5143,2878,1605, - 2858,4259,2853,5143,5118,5115,5115,5115,5115,5115, - 5115,5115,5122,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5125, - 1,1,1,1,1,1,1,1,1,40, - 1,1,1,1,1,1,1,3406,1,1, - 1,1032,1,2721,1,1,1,1,1,1647, - 1,1,1,5143,2771,1,1,1,126,2569, - 2595,1,1,1,104,5182,5322,985,2945,2203, - 2124,2117,2830,3003,5143,2878,1605,2858,4259,2853, - 5143,2833,1,1,1,1,1,1,1,5153, + 1742,1,1297,1015,1918,3145,1,1,1,2252, + 2225,3484,1,1,1,2802,2827,5171,4990,1488, + 3249,2508,2045,2374,3171,2889,4990,3236,565,3210, + 3184,3209,4990,4965,4962,4962,4962,4962,4962,4962, + 4962,4969,1,1,1,4972,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5152,1,1,1, - 1,1,1,1,1,1,137,1,1,1, - 1,1,1,1,4666,1,1,1,1032,1, - 2721,1,1,1,1,1,1647,1,1,1, - 52,2771,1,1,1,5143,2569,2595,1,1, - 1,320,133,5322,985,2945,2203,2124,2117,2830, - 3003,142,2878,1605,2858,4259,2853,42,4771,4768, - 3407,720,2977,3953,3270,3975,1140,1075,3931,3909, - 5408,5406,5415,5414,5410,5411,5409,5412,5413,5416, - 5407,4019,3997,302,5400,5166,910,648,772,5168, - 663,622,763,5444,5169,5167,606,5162,5164,5165, - 5163,1777,5403,5479,1230,583,5480,1816,5397,5404, - 5376,5402,5401,130,5398,5399,5377,5143,5143,5535, - 391,4771,4768,30,5184,1224,5536,5537,5143,5008, - 5008,228,5004,228,228,228,228,5012,1,2339, - 2311,1,1,1,1,1,1,1,1,1, - 1,1,2213,139,228,1,42,2542,1,5025, - 5021,5055,42,5058,490,5061,5184,5153,2711,5143, - 5472,5143,143,1,1,3081,714,1,4786,1, - 1,1,1,1,5152,1,1,1,4980,4980, - 1,5143,4771,4768,360,5184,1,1,1,408, - 228,5547,5143,40,5001,5001,2423,2394,5001,5632, - 5143,5008,5008,228,5004,228,228,228,228,5064, - 1,5143,33,1,1,1,1,1,1,1, - 1,1,1,1,3549,3652,228,1,430,2490, - 287,3002,5569,5570,5571,419,490,1,5025,5021, - 3516,119,1858,2248,3270,1,1,3493,714,1, - 4313,1,1,1,1,1,662,1,1,1, - 140,134,1,335,2175,5143,8415,8415,1,1, - 1,407,228,5547,384,1,1781,4807,2719,4351, - 4807,5632,4807,4810,415,4810,4810,365,5025,5021, - 3516,1,1858,1,3270,1,1353,1777,4810,4810, - 4807,5182,1,4992,4992,356,4989,3172,2711,5479, - 5472,361,5480,1,5569,5570,5571,384,4810,5143, - 48,4965,4965,5143,5087,5082,3831,4989,1858,5079, - 3270,5076,3470,3092,4810,1777,143,138,5143,4810, - 4810,4810,5569,5570,5571,4810,4810,1777,5143,433, - 1,1,5143,1,1042,4789,4962,4789,2339,2311, - 2248,4810,4810,4810,4810,4810,4810,4810,4810,4810, - 4810,4810,4810,4810,4810,4810,4810,4810,4810,4810, - 4810,4810,4810,4810,4810,4810,4810,4810,5143,361, - 383,4810,4810,4817,4810,1997,4817,361,4817,4820, - 5498,4820,4820,1735,344,5096,5092,3516,5184,1858, - 2711,3270,5472,1805,4820,4820,4817,5143,5096,5092, - 3831,5184,1858,2711,3270,5472,1,5025,5021,3831, - 5143,1858,3637,3270,4813,310,583,5143,2175,5143, - 1693,1651,1609,1567,1525,1483,1441,1399,1357,1315, - 4820,5143,310,4351,3738,4820,4820,4820,5143,5160, - 5161,4820,4820,2474,1777,310,5087,5082,3831,4989, - 1858,5079,3270,5076,5143,5160,5161,4820,4820,4820, - 4820,4820,4820,4820,4820,4820,4820,4820,4820,4820, - 4820,4820,4820,4820,4820,4820,4820,4820,4820,4820, - 4820,4820,4820,4820,3162,3652,346,4820,4820,3326, - 4820,5143,1,1,1,1,1,1,1,1, + 1,1,4990,1,1,1,1,1,1,41, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,4041,1130,1, + 1,1,1,1,1,1,1,1,4990,1, + 1297,1015,1918,3145,1,1,1,4990,5007,5008, + 1,1,1,130,420,5171,5030,1488,3249,2508, + 2045,2374,3171,2889,4990,3236,565,3210,3184,3209, + 4990,4965,4962,4962,4962,4962,4962,4962,4962,4969, + 1,1,1,4972,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5143,4771,4768,1,5184, - 5143,344,42,42,2719,5184,1777,2711,5143,5472, - 53,4956,4953,2474,1,1,5143,4771,4768,318, - 720,4823,5067,3270,5669,1,4866,4862,3407,4870, - 2977,3953,3270,3975,3640,4826,3931,3909,4853,4859, - 4832,4835,4847,4844,4850,4841,4838,4829,4856,4019, - 3997,417,1126,5166,910,648,772,5168,663,622, - 763,1777,5169,5167,606,5162,5164,5165,5163,288, - 5160,5161,1230,1,5025,5021,3831,5143,1858,1777, - 3270,5143,5500,5143,4956,4953,5151,3414,42,42, - 505,42,4771,4768,3407,720,2977,3953,3270,3975, - 5151,550,3931,3909,5408,5406,5415,5414,5410,5411, - 5409,5412,5413,5416,5407,4019,3997,3447,5143,5166, - 910,648,772,5168,663,622,763,5153,5169,5167, - 606,5162,5164,5165,5163,5143,4771,4768,1230,720, - 1858,4191,3270,939,5152,1997,4041,1130,5150,5143, - 5160,5161,5143,5143,4771,4768,5143,720,4823,2720, - 3270,5151,5150,42,4771,4768,3407,720,2977,3953, - 3270,3975,5151,550,3931,3909,5408,5406,5415,5414, - 5410,5411,5409,5412,5413,5416,5407,4019,3997,1984, - 115,5166,910,648,772,5168,663,622,763,3795, - 5169,5167,606,5162,5164,5165,5163,5143,4771,4768, - 1230,5184,5143,4191,1,5025,5021,3516,5143,1858, - 5143,3270,3544,5150,224,145,4771,4768,3407,720, - 2977,3953,3270,3975,5150,550,3931,3909,5408,5406, - 5415,5414,5410,5411,5409,5412,5413,5416,5407,4019, - 3997,5400,1,5166,910,648,772,5168,663,622, - 763,5149,5169,5167,606,5162,5164,5165,5163,5403, - 5479,2999,1230,5480,1777,5397,5404,5376,5402,5401, - 4063,5398,5399,5377,95,5644,4085,4801,42,42, - 1,4866,4862,3407,4870,2977,3953,3270,3975,5143, - 4826,3931,3909,4853,4859,4832,4835,4847,4844,4850, - 4841,4838,4829,4856,4019,3997,5143,5143,5166,910, - 648,772,5168,663,622,763,5147,5169,5167,606, - 5162,5164,5165,5163,434,42,42,1230,5184,5148, - 4986,5143,4983,96,1,1,5143,1,5143,4998, - 2157,4998,2507,42,42,42,4771,4768,3407,720, - 2977,3953,3270,3975,5147,550,3931,3909,5408,5406, - 5415,5414,5410,5411,5409,5412,5413,5416,5407,4019, - 3997,5143,399,5166,910,648,772,5168,663,622, - 763,5049,5169,5167,606,5162,5164,5165,5163,42, - 4771,4768,3407,720,2977,3953,3270,3975,5052,550, - 3931,3909,5408,5406,5415,5414,5410,5411,5409,5412, - 5413,5416,5407,4019,3997,4515,118,5166,910,648, - 772,5168,663,622,763,5146,5169,5167,606,5162, - 5164,5165,5163,5143,4771,4768,1230,720,1858,4191, - 3270,237,1,1,4959,117,2719,39,5040,5037, - 1,5143,340,4589,42,4771,4768,3407,720,2977, - 3953,3270,3975,5146,550,3931,3909,5408,5406,5415, - 5414,5410,5411,5409,5412,5413,5416,5407,4019,3997, - 5143,5143,5166,910,648,772,5168,663,622,763, - 5149,5169,5167,606,5162,5164,5165,5163,5143,1, - 289,1230,581,1777,5601,5595,4063,5599,340,340, - 5593,5594,4085,1,5115,5115,228,5115,228,228, - 228,228,228,5624,5625,42,225,116,5602,5184, - 340,1,5025,5021,3831,4063,1858,4161,3270,228, - 7974,4085,4578,5604,99,42,42,4600,5184,5112, - 5073,390,5070,5400,5143,383,5143,2964,5143,1070, - 103,1032,1346,1361,5605,5626,5603,1908,5148,2502, - 3212,5403,5479,5143,2771,5480,121,5397,5404,5376, - 5402,5401,3493,5398,5399,5377,3793,5615,5614,5627, - 5596,5597,5620,5621,5632,662,5618,5619,5598,5600, - 5622,5623,5628,5608,5609,5610,5606,5607,5616,5617, - 5612,5611,5613,5143,5143,368,581,4063,5601,5595, - 1946,5599,5143,4085,5593,5594,5538,1,5115,5115, - 228,5115,228,228,228,228,5134,5624,5625,5569, - 5570,5571,5602,1,5025,5021,5055,42,5058,5143, - 5061,5184,4352,228,7974,189,33,5604,4586,5143, - 5160,5161,5143,5112,1858,1,3270,3470,3092,5143, - 4971,4968,2721,1070,5109,1032,1346,1361,5605,5626, - 5603,120,1084,2502,391,5160,5161,3493,2771,5143, - 8275,8199,1380,5143,8275,8199,312,5143,220,2208, - 4774,5615,5614,5627,5596,5597,5620,5621,5632,443, - 5618,5619,5598,5600,5622,5623,5628,5608,5609,5610, - 5606,5607,5616,5617,5612,5611,5613,42,4771,4768, - 3407,720,2977,3953,3270,3975,5150,550,3931,3909, - 5408,5406,5415,5414,5410,5411,5409,5412,5413,5416, - 5407,4019,3997,4777,1,5166,910,648,772,5168, - 663,622,763,1186,5169,5167,606,5162,5164,5165, - 5163,5143,3470,3092,4378,522,5140,5143,42,4771, - 4768,3407,720,2977,3953,3270,3975,1228,550,3931, - 3909,5408,5406,5415,5414,5410,5411,5409,5412,5413, - 5416,5407,4019,3997,3844,3680,5166,910,648,772, - 5168,663,622,763,5143,5169,5167,606,5162,5164, - 5165,5163,2661,5143,1,1230,42,4771,4768,3842, - 720,2977,3953,3270,3975,5143,550,3931,3909,5408, - 5406,5415,5414,5410,5411,5409,5412,5413,5416,5407, - 4019,3997,2749,1,5166,910,648,772,5168,663, - 622,763,5153,5169,5167,606,5162,5164,5165,5163, - 42,4771,4768,3407,720,2977,3953,3270,3975,5152, - 550,3931,3909,5408,5406,5415,5414,5410,5411,5409, - 5412,5413,5416,5407,4019,3997,132,44,5166,910, - 648,772,5168,663,622,763,383,5169,5167,606, - 5162,5164,5165,5163,42,4771,4768,3407,720,2977, - 3953,3270,3975,5143,550,3931,3909,5408,5406,5415, - 5414,5410,5411,5409,5412,5413,5416,5407,4019,3997, - 2542,4798,5166,910,648,772,5168,663,622,763, - 4804,5169,5167,606,5162,5164,5165,5163,5143,4771, - 4768,4974,5184,40,4995,4995,5143,5143,560,4383, - 4664,5408,5406,5415,5414,5410,5411,5409,5412,5413, - 5416,5407,5143,5018,5015,5400,5143,5143,5587,2423, - 2394,302,5143,5143,5033,5029,2478,1,366,1862, - 5143,5444,5143,5403,5479,226,361,5480,5143,5397, - 5404,5376,5402,5401,5143,5398,5399,5377,5182,5143, - 5535,241,4946,4942,1,4950,1224,5536,5537,5182, - 5143,560,5400,3018,4933,4939,4912,4915,4927,4924, - 4930,4921,4918,4909,4936,5143,662,1464,4897,53, - 5403,5479,5143,5161,5480,3040,5397,5404,5376,5402, - 5401,3176,5398,5399,5377,1144,4888,4882,662,5143, - 4879,5143,4906,4885,4876,4891,4894,1,4903,4900, - 4873,223,107,5535,361,3122,518,5143,5143,1224, - 5536,5537,361,5161,5408,5406,5415,5414,5410,5411, - 5409,5412,5413,5416,5407,131,411,497,5400,50, - 5046,5046,437,3638,438,1,5115,5115,228,5115, - 228,228,228,228,5134,53,5403,5479,5143,5160, - 5480,3567,5397,5404,5376,5402,5401,5143,5398,5399, - 5377,228,7974,279,495,5043,5100,5143,5143,2542, - 5143,5112,1,5115,5115,228,5115,228,228,228, - 228,5137,5143,1032,518,79,5143,1,2769,5160, - 4977,2502,373,2086,4591,5153,2771,5103,228,7974, - 3127,511,5143,5143,3034,4198,220,5143,5112,5210, - 5211,3736,5152,1,1,5143,5632,5143,2423,2394, - 1032,5143,167,2627,5103,5143,3027,5143,2502,2035, - 3178,4598,5143,2771,5143,2976,5143,4535,5143,167, - 5325,4544,3119,219,5143,2864,309,4553,5143,5106, - 2627,4571,4249,5632,1,5115,5115,228,5115,228, - 228,228,228,5134,38,1,5115,5115,228,5115, - 228,228,228,228,5134,3871,5106,5143,5143,5324, - 228,7974,3722,3456,5143,2,3874,3371,569,5143, - 5112,228,7974,5143,5143,5143,4678,5143,5143,5143, - 167,5112,1032,499,5143,981,5143,5143,5143,5143, - 2502,3027,4266,1032,5143,2771,5143,5143,5143,5143, - 3027,2502,5143,5143,5143,220,2771,5143,5143,40, - 5143,1506,5143,5143,5143,5632,220,5143,5143,5143, - 5143,5143,5143,5143,1506,1866,5632,1,5115,5115, - 228,5115,228,228,228,228,228,5143,1,5115, - 5115,228,5115,228,228,228,228,228,5143,5143, - 650,5143,5143,228,7974,5143,5143,5143,5143,5143, - 5143,5143,5143,5112,228,7974,5143,5143,5143,5143, - 5143,5143,5143,5143,5112,1032,5143,5143,5143,5143, - 5143,5143,5143,2502,5143,5143,1032,5143,2771,5143, - 5143,5143,5143,5143,2502,227,5143,5143,5143,2771, - 5143,5143,5143,5143,5143,5143,5143,5143,5632,1, - 5115,5115,228,5115,228,228,228,228,228,5632, - 5143,5143,5400,5143,5143,5143,5143,5143,5143,5143, - 5143,5143,5143,5143,5143,228,7974,5143,5143,5143, - 5403,5479,5143,5143,5480,5112,5397,5404,5376,5402, - 5401,5143,5398,5399,5377,5143,5143,1032,5143,5143, - 5143,5143,5143,5143,5143,2502,5143,5143,5143,5143, - 2771,5143,5143,5143,5143,5143,5143,5143,5143,5143, - 5143,5143,5143,5143,5143,5143,5143,5143,5143,5143, - 5632 + 357,1,1,1,1,1,1,53,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,3584,1,1297,1015, + 1918,3145,1,1,1,4990,4788,4785,1,1, + 1,2802,2827,5171,1074,1488,3249,2508,2045,2374, + 3171,2889,4990,3236,565,3210,3184,3209,4990,4965, + 4962,4962,4962,4962,4962,4962,4962,4969,1,1, + 1,4972,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,4990,1, + 1,1,1,1,1,5346,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,4990,1,1297,1015,1918,3145, + 1,1,1,54,4815,4812,1,1,1,129, + 4990,5171,4990,1488,3249,2508,2045,2374,3171,2889, + 438,3236,565,3210,3184,3209,4990,4965,4962,4962, + 4962,4962,4962,4962,4962,4969,1,1,1,4972, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,4990,1,1,1, + 1,1,1,4990,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,5386,1,1297,1015,1918,3145,1,1, + 1,128,2454,4064,1,1,1,2802,2827,5171, + 4990,1488,3249,2508,2045,2374,3171,2889,4990,3236, + 565,3210,3184,3209,4990,4965,4962,4962,4962,4962, + 4962,4962,4962,4969,1,1,1,4972,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,4990,1,1,1,1,1, + 1,33,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 136,1,1297,1015,1918,3145,1,1,1,2802, + 2827,4616,1,1,1,4990,303,5171,4184,1488, + 3249,2508,2045,2374,3171,2889,5292,3236,565,3210, + 3184,3209,4990,4965,4962,4962,4962,4962,4962,4962, + 4962,4969,1,1,1,4972,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,4990, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,4990,1, + 1297,1015,1918,3145,1,1,1,2252,2225,43, + 1,1,1,5032,4990,5171,2899,1488,3249,2508, + 2045,2374,3171,2889,4990,3236,565,3210,3184,3209, + 4990,3197,1,1,1,1,1,1,1,5000, + 1,1,1,4999,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 4990,1,1,1,1,1,1,5348,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1957,1,1297,1015, + 1918,3145,1,1,1,54,4788,4785,1,1, + 1,4990,4990,5171,983,1488,3249,2508,2045,2374, + 3171,2889,4990,3236,565,3210,3184,3209,43,4613, + 4610,3636,850,3692,3804,2484,3825,4990,1055,3783, + 3762,642,5249,5256,5254,5263,5262,5258,5259,5257, + 5260,5261,5264,5255,3867,3846,5013,3435,4990,641, + 855,5015,712,4003,756,444,5016,5014,619,5009, + 5011,5012,5010,5252,5327,5328,5246,5253,5225,5251, + 5250,5247,5248,5226,5174,1167,1,4869,4865,3303, + 5383,579,4990,2484,2998,4619,633,5384,5385,4990, + 4852,4852,230,4848,230,230,230,230,4856,1, + 4990,141,230,1,1,1,1,1,1,1, + 1,1,1,1,1,4990,4943,4939,4095,5032, + 579,1327,2484,5320,1,4990,491,1,81,139, + 3571,2997,1703,167,1,1,1,1,1,1, + 1,1,1,1,1,163,121,1256,4990,5007, + 5008,1,3740,2594,5058,5059,143,1,1,1, + 409,230,5395,4990,4613,4610,313,850,4655,3343, + 2484,5480,4990,4852,4852,230,4848,230,230,230, + 230,4908,1,1703,610,230,1,1,1,1, + 1,1,1,1,1,1,1,1,167,33, + 650,583,45,5417,5418,5419,1,4836,4836,491, + 4833,1210,1327,4990,5320,362,132,1,1,1, + 1,1,1,1,1,1,1,1,2166,632, + 1256,1906,4640,1126,1,4990,4990,3718,2975,303, + 1,1,1,408,230,5395,2426,37,1994,5292, + 4649,448,4990,4649,5480,4649,4649,2133,4649,4649, + 4649,4994,4990,4934,4929,4095,4833,579,4926,2484, + 4923,416,43,4649,4649,391,5032,4649,226,384, + 362,4628,4990,4990,8390,8390,5417,5418,5419,4990, + 4613,4610,5249,5032,145,1,4869,4865,4899,2647, + 4902,362,4905,4649,5000,632,447,4634,4999,2287, + 778,140,4649,4649,4649,4990,144,3003,4649,4649, + 5030,4649,4990,5252,5327,5328,5246,5253,5225,5251, + 5250,5247,5248,5226,1920,4649,4649,4649,4649,4649, + 4649,4649,4649,4649,4649,4649,4649,4649,4649,4649, + 4649,4649,4649,4649,4649,4649,4649,4649,4649,4649, + 4649,1662,4637,4990,4649,4649,4652,4649,4990,4652, + 4993,4652,4652,4990,4652,4652,4652,345,4943,4939, + 3303,5032,579,1327,2484,5320,5417,5418,5419,4652, + 4652,43,4990,4652,227,5032,2096,2594,1621,1580, + 1539,1498,1457,1416,1375,1334,1293,1252,5249,97, + 2166,2768,4643,1,4869,4865,4095,2133,579,4652, + 2484,142,311,4990,4613,4610,311,5032,4652,4652, + 4652,4990,30,1703,4652,4652,2188,4652,2309,5252, + 5327,5328,5246,5253,5225,5251,5250,5247,5248,5226, + 145,4652,4652,4652,4652,4652,4652,4652,4652,4652, + 4652,4652,4652,4652,4652,4652,4652,4652,4652,4652, + 4652,4652,4652,4652,4652,4652,4652,49,4809,4809, + 4652,4652,1614,4652,4990,1,1,1,1,1, + 1,1,1,1,1,1,1,4824,4824,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,4806,1,1,1,1,1, + 1,583,1,1,1,1,1,1,1,311, + 4934,4929,4095,4833,579,4926,2484,4923,434,1, + 1,1,1,4990,4631,4990,4631,1,1,4990, + 4613,4610,2096,850,579,4990,2484,5517,1,4698, + 4694,3636,4702,3692,3804,2484,3825,2768,4658,3783, + 3762,3639,4990,4685,4691,4664,4667,4679,4676,4682, + 4673,4670,4661,4688,3867,3846,5013,3435,4177,641, + 855,5015,712,4003,756,1,5016,5014,619,5009, + 5011,5012,5010,4990,362,366,4869,4865,3303,1, + 579,1,2484,1,348,1167,505,41,4839,4839, + 2320,43,43,506,43,4613,4610,3636,850,3692, + 3804,2484,3825,4998,550,3783,3762,3344,4293,5256, + 5254,5263,5262,5258,5259,5257,5260,5261,5264,5255, + 3867,3846,5013,3435,2387,641,855,5015,712,4003, + 756,1703,5016,5014,619,5009,5011,5012,5010,362, + 1703,4990,988,4990,4613,4610,523,850,4655,384, + 2484,1167,806,4245,4990,345,43,43,3571,5032, + 362,1327,4990,5320,4990,4997,43,4613,4610,3636, + 850,3692,3804,2484,3825,4998,550,3783,3762,4646, + 2375,5256,5254,5263,5262,5258,5259,5257,5260,5261, + 5264,5255,3867,3846,5013,3435,4990,641,855,5015, + 712,4003,756,3075,5016,5014,619,5009,5011,5012, + 5010,1703,1,4869,4865,4095,43,579,239,2484, + 5032,4791,1327,1167,5320,4245,632,2364,147,4613, + 4610,3636,850,3692,3804,2484,3825,4997,550,3783, + 3762,4990,4990,5256,5254,5263,5262,5258,5259,5257, + 5260,5261,5264,5255,3867,3846,5013,3435,4990,641, + 855,5015,712,4003,756,4990,5016,5014,619,5009, + 5011,5012,5010,4990,1,1,4990,3571,4468,4990, + 123,4990,4998,341,1920,1167,3740,4990,4990,5007, + 5008,43,43,1,4698,4694,3636,4702,3692,3804, + 2484,3825,4990,4658,3783,3762,3478,4293,4685,4691, + 4664,4667,4679,4676,4682,4673,4670,4661,4688,3867, + 3846,5013,3435,2373,641,855,5015,712,4003,756, + 1703,5016,5014,619,5009,5011,5012,5010,1491,341, + 341,435,43,43,4997,5032,5492,4830,341,4827, + 1167,3888,532,4990,4788,4785,43,43,43,4613, + 4610,3636,850,3692,3804,2484,3825,4994,550,3783, + 3762,3718,2975,5256,5254,5263,5262,5258,5259,5257, + 5260,5261,5264,5255,3867,3846,5013,3435,4990,641, + 855,5015,712,4003,756,3357,5016,5014,619,5009, + 5011,5012,5010,43,4613,4610,3636,850,3692,3804, + 2484,3825,4990,550,3783,3762,3888,532,5256,5254, + 5263,5262,5258,5259,5257,5260,5261,5264,5255,3867, + 3846,5013,3435,4990,641,855,5015,712,4003,756, + 4990,5016,5014,619,5009,5011,5012,5010,4990,4996, + 4990,3345,1,4869,4865,3303,2160,579,4990,2484, + 1167,3630,4245,43,4613,4610,3636,850,3692,3804, + 2484,3825,4990,550,3783,3762,4993,5435,5256,5254, + 5263,5262,5258,5259,5257,5260,5261,5264,5255,3867, + 3846,5013,3435,4990,641,855,5015,712,4003,756, + 124,5016,5014,619,5009,5011,5012,5010,1703,225, + 1,2862,2342,833,4995,5449,5443,4990,5447,4990, + 1167,5441,5442,5249,5256,5254,5263,5262,5258,5259, + 5257,5260,5261,5264,5255,228,5472,5473,4990,5450, + 5452,126,98,1,1,3998,1,5000,4842,5249, + 4842,4999,2862,2342,5252,5327,5328,5246,5253,5225, + 5251,5250,5247,5248,5226,5173,639,125,392,4613, + 4610,4990,5032,1479,1502,5453,5474,5451,2862,2342, + 5252,5327,5328,5246,5253,5225,5251,5250,5247,5248, + 5226,122,229,106,4990,4862,4859,3740,5463,5462, + 5475,5444,5445,5468,5469,43,5249,5466,5467,5446, + 5448,5470,5471,5476,5456,5457,5458,5454,5455,5464, + 5465,5460,5459,5461,4990,347,4990,833,1655,5449, + 5443,5030,5447,4990,4990,5441,5442,5252,5327,5328, + 5246,5253,5225,5251,5250,5247,5248,5226,54,4358, + 5472,5473,5008,5450,5452,101,43,43,1,5032, + 4990,4917,191,4914,1,4869,4865,4095,4950,579, + 4990,2484,1,4869,4865,4899,4990,4902,5008,4905, + 639,1703,3718,2975,289,5007,5008,1479,1502,5453, + 5474,5451,4990,4613,4610,3005,850,579,3516,2484, + 4990,5007,5008,4990,1,579,4116,2484,385,4990, + 5007,5008,5463,5462,5475,5444,5445,5468,5469,2072, + 4953,5466,5467,5446,5448,5470,5471,5476,5456,5457, + 5458,5454,5455,5464,5465,5460,5459,5461,43,4613, + 4610,3636,850,3692,3804,2484,3825,4990,550,3783, + 3762,3051,336,5256,5254,5263,5262,5258,5259,5257, + 5260,5261,5264,5255,3867,3846,5013,3435,3671,641, + 855,5015,712,4003,756,1,5016,5014,619,5009, + 5011,5012,5010,4987,4956,43,4613,4610,3636,850, + 3692,3804,2484,3825,1247,550,3783,3762,5327,5328, + 5256,5254,5263,5262,5258,5259,5257,5260,5261,5264, + 5255,3867,3846,5013,3435,4990,641,855,5015,712, + 4003,756,4990,5016,5014,619,5009,5011,5012,5010, + 4990,3288,4990,43,4613,4610,4361,850,3692,3804, + 2484,3825,1167,550,3783,3762,4997,4990,5256,5254, + 5263,5262,5258,5259,5257,5260,5261,5264,5255,3867, + 3846,5013,3435,4990,641,855,5015,712,4003,756, + 361,5016,5014,619,5009,5011,5012,5010,43,4613, + 4610,3636,850,3692,3804,2484,3825,431,550,3783, + 3762,1015,4990,5256,5254,5263,5262,5258,5259,5257, + 5260,5261,5264,5255,3867,3846,5013,3435,4990,641, + 855,5015,712,4003,756,4990,5016,5014,619,5009, + 5011,5012,5010,43,4613,4610,3636,850,3692,3804, + 2484,3825,290,550,3783,3762,4367,4990,5256,5254, + 5263,5262,5258,5259,5257,5260,5261,5264,5255,3867, + 3846,5013,3435,4990,641,855,5015,712,4003,756, + 4990,5016,5014,619,5009,5011,5012,5010,4990,4613, + 4610,117,5032,4990,41,4845,4845,54,979,4845, + 1,5007,5249,5256,5254,5263,5262,5258,5259,5257, + 5260,5261,5264,5255,4990,4877,4873,4990,134,1832, + 4272,5417,5418,5419,4990,4613,4610,5007,5032,4990, + 632,2949,4205,5252,5327,5328,5246,5253,5225,5251, + 5250,5247,5248,5226,4990,243,4778,4774,2426,4782, + 5383,5030,51,4890,4890,979,633,5384,5385,4729, + 4765,4771,4744,4747,4759,4756,4762,4753,4750,4741, + 4768,33,384,384,4800,384,384,4800,384,4800, + 4803,3909,4990,4818,4800,384,1700,3930,288,4887, + 4720,4714,4711,4738,4717,4708,4723,4726,4735,4732, + 4705,4616,4990,120,369,119,1790,5383,40,4884, + 4881,2287,778,633,5384,5385,384,384,384,384, + 384,384,384,384,384,384,384,4803,36,385, + 385,4794,385,385,4794,385,4794,4797,4990,118, + 133,4794,385,4990,4990,4803,418,5000,4990,4815, + 4812,4999,4998,4990,1163,1,4962,4962,230,4962, + 230,230,230,230,230,392,5007,5008,230,8374, + 2426,1033,439,385,385,385,385,385,385,385, + 385,385,385,385,4797,3261,4990,7975,7646,4990, + 1,4990,4959,3909,1,3909,4990,400,1,3930, + 4950,3930,4797,169,2406,4821,4893,169,4990,901, + 4896,4271,4185,1297,4997,2477,3145,1,4962,4962, + 230,4962,230,230,230,230,4981,3005,367,3909, + 230,8374,4990,2287,778,3930,319,5480,2539,4911, + 321,4996,1,4962,4962,230,4962,230,230,230, + 230,4981,4953,105,4959,230,8374,1,4962,4962, + 230,4962,230,230,230,230,4984,1,169,4990, + 230,8374,1,3354,79,1297,4996,2477,3145,4959, + 1,5000,4990,7975,7646,4999,4990,109,222,519, + 4425,4990,1703,412,4959,1085,1703,498,4485,5480, + 1297,496,2477,3145,4920,4990,4995,280,3000,1869, + 4947,4990,39,222,4504,1297,3346,2477,3145,4990, + 4990,3574,3061,3275,5480,1,4990,4990,221,1, + 4962,4962,230,4962,230,230,230,230,4981,5480, + 4990,4995,230,8374,1,4962,4962,230,4962,230, + 230,230,230,4981,519,374,4990,230,8374,4426, + 2008,4990,4990,512,4473,4432,4959,4990,4484,1, + 4962,4962,230,4962,230,230,230,230,230,2731, + 310,4959,230,8374,4058,4990,4061,1297,4433,2477, + 3145,4990,4990,2731,4440,2712,1,4990,4990,4080, + 222,4505,1297,4990,2477,3145,4959,4990,500,4990, + 4990,5480,2,4990,4990,222,4990,4990,4990,4990, + 4990,4990,4990,4990,3131,4990,5480,1297,1791,2477, + 3145,1,4962,4962,230,4962,230,230,230,230, + 230,4990,41,3576,230,8374,4070,4990,4990,4990, + 4990,5480,4990,4990,4990,4990,1,4962,4962,230, + 4962,230,230,230,230,230,4990,4990,4959,230, + 8374,4990,4990,4990,3357,2082,4990,4990,4990,4990, + 4990,4990,3357,4990,4990,4990,4990,4990,4990,1297, + 4990,2477,3145,4959,4990,4990,4990,4990,4990,4990, + 4990,4990,4990,4990,4990,4990,4990,4990,4990,4990, + 4990,4990,4990,5480,1297,4990,2477,3145,4990,4990, + 4990,4990,4990,4990,4990,4990,4990,4990,4990,4990, + 4990,4990,4990,4990,4990,4990,4990,4990,5480 }; }; public final static char termAction[] = TermAction.termAction; @@ -1661,59 +1634,59 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public interface Asb { public final static char asb[] = {0, - 362,1,1021,166,3,940,360,360,360,360, - 66,940,743,563,743,464,150,466,167,167, - 167,167,167,167,167,167,167,977,983,988, - 985,992,990,997,995,999,998,1000,70,1001, - 166,150,38,38,38,38,206,426,10,740, - 38,286,342,743,743,10,594,977,342,342, - 333,150,899,37,848,68,958,150,960,960, - 728,728,426,166,167,167,167,167,167,167, - 167,167,167,167,167,167,167,167,167,167, - 167,167,167,166,166,166,166,166,166,166, - 166,166,166,166,166,167,342,342,633,633, - 633,633,521,342,10,116,947,958,424,958, - 419,958,421,958,942,66,206,286,286,10, - 167,116,245,647,537,536,209,66,466,286, - 37,166,204,847,342,203,206,205,203,342, - 286,985,985,983,983,983,990,990,990,990, - 988,988,995,992,992,998,997,999,1113,1000, - 940,940,940,940,206,206,633,752,632,740, - 206,736,477,206,291,521,525,289,424,545, - 206,206,206,521,633,333,286,1015,342,649, - 651,206,848,167,38,981,299,342,68,206, - 206,205,848,166,166,166,166,166,940,360, - 940,150,120,736,477,291,290,291,521,291, - 545,545,206,521,206,342,541,529,540,651, - 521,204,342,981,116,847,68,206,204,342, - 342,342,342,426,426,736,735,296,206,477, - 1113,523,1063,1103,477,291,291,555,206,545, - 296,294,295,206,635,166,538,538,406,406, - 206,645,116,1070,342,206,981,982,981,166, - 299,1068,68,342,342,736,848,360,203,686, - 1105,200,940,350,65,556,206,296,167,206, - 635,166,166,651,848,342,649,529,635,220, - 981,426,167,286,1068,204,492,204,291,291, - 200,1020,116,353,167,1113,414,555,206,66, - 66,206,799,651,204,635,982,342,286,1021, - 492,204,291,424,66,1105,200,167,167,206, - 206,206,799,342,799,632,360,471,471,1021, - 424,130,350,206,940,206,206,940,792,799, - 492,855,492,631,631,807,131,66,206,426, - 652,792,404,690,111,940,345,891,492,38, - 38,807,130,1113,167,1113,1021,940,940,940, - 131,940,206,77,1021,1021,206,424,342,341, - 794,809,633,111,404,854,424,424,550,66, - 632,122,940,122,1113,131,150,150,148,553, - 150,1021,1021,790,807,38,794,855,854,855, - 1021,413,1020,342,854,854,854,66,206,684, - 1070,342,200,342,77,1021,111,940,342,807, - 854,166,1026,200,1021,296,854,854,854,206, - 206,471,342,342,233,131,790,131,1021,77, - 111,166,131,128,296,342,1024,296,296,206, - 1021,631,424,424,932,166,129,426,1021,1021, - 342,1024,1021,203,131,342,426,1021,295,131, - 342,1024,131 + 637,1,468,224,3,940,691,691,691,691, + 66,940,422,530,422,108,208,110,225,225, + 225,225,225,225,225,225,225,424,430,435, + 432,439,437,444,442,446,445,447,128,448, + 224,208,38,38,38,38,264,70,10,419, + 38,411,362,422,422,10,561,424,362,362, + 353,208,899,37,848,68,958,208,422,424, + 775,775,70,224,225,225,225,225,225,225, + 225,225,225,225,225,225,225,225,225,225, + 225,225,225,224,224,224,224,224,224,224, + 224,224,224,224,224,225,362,362,1022,1022, + 1022,1022,311,362,10,174,947,958,523,958, + 518,958,520,958,942,66,264,411,411,10, + 225,174,370,698,625,624,471,964,964,66, + 110,411,37,224,262,847,362,261,264,263, + 261,362,411,432,432,430,430,430,437,437, + 437,437,435,435,442,439,439,445,444,446, + 1034,447,940,940,940,940,264,264,1022,984, + 1021,419,264,415,267,264,515,311,315,513, + 523,365,264,264,264,311,1022,353,411,462, + 362,700,702,264,848,225,38,428,319,362, + 68,264,264,691,263,848,224,224,224,224, + 224,940,940,208,178,415,267,515,514,515, + 311,515,365,365,264,311,264,362,629,617, + 628,702,311,262,362,428,174,847,68,264, + 262,362,362,362,362,70,70,415,414,614, + 264,267,1034,313,1075,1024,267,515,515,799, + 264,365,614,612,613,264,602,224,626,626, + 115,115,264,696,174,1082,362,264,428,429, + 428,224,319,1080,424,68,362,362,415,848, + 691,261,633,1026,258,940,681,65,800,264, + 614,225,264,602,224,224,702,848,362,700, + 617,602,482,428,70,225,411,1080,262,282, + 262,515,515,258,467,174,684,225,1034,123, + 799,264,66,66,264,791,702,262,602,429, + 362,411,468,282,262,515,523,66,1026,258, + 225,225,264,264,264,791,362,791,1021,691, + 507,507,468,523,188,681,264,940,264,264, + 940,784,791,282,855,282,1020,1020,807,189, + 66,264,70,703,784,679,737,169,940,525, + 891,282,38,38,807,188,1034,225,1034,468, + 940,940,940,189,940,264,135,468,468,264, + 523,362,361,786,809,1022,169,679,854,523, + 523,693,66,1021,180,940,180,1034,189,208, + 208,206,782,208,468,468,600,807,38,786, + 855,854,855,468,122,467,362,854,854,854, + 66,264,735,1082,362,258,362,135,468,169, + 940,362,807,854,224,1038,258,468,614,854, + 854,854,264,264,507,362,362,495,189,600, + 189,468,135,169,224,189,186,614,362,1036, + 614,614,264,468,1020,523,523,932,224,187, + 70,468,468,362,1036,468,261,189,362,70, + 468,613,189,362,1036,189 }; }; public final static char asb[] = Asb.asb; @@ -1721,118 +1694,118 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public interface Asr { public final static byte asr[] = {0, - 123,0,9,72,118,87,26,66,0,30, - 63,31,32,64,7,33,34,35,37,47, - 38,39,40,41,42,28,24,25,8,6, - 11,12,5,29,65,43,3,51,13,14, - 62,46,15,68,52,27,16,53,54,17, - 18,55,57,19,20,58,69,59,10,70, - 21,22,49,23,45,1,2,4,0,65, - 72,95,66,118,87,71,13,14,30,63, - 15,31,32,16,17,18,64,33,19,20, - 34,35,37,47,38,39,10,21,22,23, - 40,41,42,28,24,25,11,12,29,43, - 9,26,7,5,3,1,2,8,4,6, - 0,81,114,115,116,36,72,119,121,71, - 73,74,48,56,61,76,78,85,83,75, - 80,82,84,86,50,77,79,9,26,51, - 62,46,68,52,27,53,54,55,57,58, - 69,59,70,45,49,47,63,64,10,31, - 35,33,30,39,14,23,13,19,17,18, - 20,21,16,15,22,40,43,41,42,28, - 38,32,37,24,25,11,12,29,34,8, - 6,3,4,7,5,1,2,0,13,14, - 15,16,17,18,19,20,21,22,23,51, - 46,52,27,53,54,55,57,58,59,45, - 49,26,9,87,7,1,2,60,3,8, - 6,5,4,0,63,64,3,10,31,35, - 33,30,39,14,23,13,19,17,18,20, - 21,16,15,22,40,43,41,42,28,38, - 32,37,5,7,4,24,25,8,6,11, - 12,29,34,1,2,118,9,0,4,44, - 50,72,0,67,66,71,9,0,96,90, - 11,12,91,92,88,89,44,93,94,97, + 123,0,9,72,118,74,13,66,0,31, + 63,32,33,64,7,34,35,36,38,57, + 39,40,41,42,43,28,26,27,8,6, + 11,12,5,29,65,44,3,48,15,16, + 62,46,17,68,49,14,18,50,51,19, + 20,52,53,21,22,54,69,55,10,70, + 23,24,47,25,45,1,2,4,0,9, + 74,15,16,31,17,32,33,18,19,20, + 34,21,22,35,36,38,57,39,40,10, + 23,24,25,41,42,43,28,3,26,27, + 8,6,11,12,29,4,44,5,7,1, + 2,64,63,0,75,59,65,72,95,74, + 56,3,9,66,13,67,0,65,72,95, + 66,118,74,71,15,16,31,63,17,32, + 33,18,19,20,64,34,21,22,35,36, + 38,57,39,40,10,23,24,25,41,42, + 43,28,26,27,11,12,29,44,9,13, + 7,5,3,1,2,8,4,6,0,82, + 114,115,116,37,72,119,121,71,73,75, + 58,60,61,77,79,86,84,76,81,83, + 85,87,59,78,80,9,13,48,62,46, + 68,49,14,50,51,52,53,54,69,55, + 70,45,47,57,63,64,10,32,36,34, + 31,40,16,25,15,21,19,20,22,23, + 18,17,24,41,44,42,43,28,39,33, + 38,26,27,11,12,29,35,8,6,3, + 4,7,5,1,2,0,82,7,114,115, + 116,58,9,3,8,6,5,72,71,13, + 73,48,15,16,62,46,17,68,49,14, + 18,50,51,19,20,52,53,21,22,54, + 69,55,10,70,23,45,24,47,25,4, + 1,2,37,0,4,59,72,0,96,90, + 11,12,91,92,88,89,30,93,94,97, 98,99,100,101,102,117,72,95,67,104, 105,106,107,108,109,110,111,112,113,118, - 71,26,65,1,2,8,6,4,3,60, - 66,87,9,0,1,2,122,50,0,50, - 66,0,72,9,60,3,67,66,26,44, - 0,13,14,30,63,15,31,32,16,17, - 18,64,7,33,19,20,34,35,37,47, - 38,39,10,21,22,23,40,41,42,1, - 2,3,24,25,8,6,11,12,5,29, - 4,43,73,28,0,74,50,65,72,95, - 87,60,3,9,66,26,67,0,36,72, - 4,1,2,50,0,9,87,13,14,30, - 15,31,32,16,17,18,33,19,20,34, - 35,37,47,38,39,10,21,22,23,40, - 41,42,28,3,24,25,8,6,11,12, - 29,4,43,5,7,1,2,64,63,0, - 65,67,66,1,2,0,81,7,114,115, - 116,48,9,3,8,6,5,72,71,26, - 73,51,13,14,62,46,15,68,52,27, - 16,53,54,17,18,55,57,19,20,58, - 69,59,10,70,21,45,22,49,23,4, - 1,2,36,0,4,50,72,0,8,6, - 4,5,7,1,2,3,60,65,67,66, - 9,87,95,0,1,2,9,71,0,50, - 67,0,75,0,45,1,2,4,114,115, - 116,0,51,13,14,62,46,15,68,52, - 27,16,53,54,17,18,55,57,19,20, - 58,69,59,10,70,21,45,22,49,23, - 1,2,4,64,63,11,12,6,91,92, - 99,8,100,5,29,44,107,108,104,105, - 106,112,111,113,89,88,109,110,97,98, - 93,94,101,102,24,25,90,103,3,60, - 67,66,65,0,46,47,49,9,65,95, - 67,66,87,0,7,5,3,60,6,8, - 95,51,13,14,46,15,68,52,27,16, - 53,54,17,18,55,57,19,20,58,69, - 59,10,70,21,45,22,49,23,1,2, - 4,87,9,62,0,50,72,74,0,62, - 46,15,68,52,16,53,54,17,18,55, - 57,19,20,58,69,59,10,70,21,45, - 22,49,23,14,13,51,9,3,8,6, - 26,48,56,61,81,27,44,7,4,36, - 5,1,2,0,47,46,7,49,5,1, - 2,4,74,9,50,72,95,118,87,71, - 26,60,3,120,96,103,90,24,25,8, - 6,11,12,91,92,88,89,44,93,94, - 97,98,99,100,101,102,117,104,105,106, - 107,108,109,110,111,112,113,65,66,67, - 0,46,49,74,3,50,72,26,47,9, - 65,95,67,66,87,0,119,0,61,51, - 13,14,62,46,15,68,52,81,27,16, - 53,54,17,18,55,56,57,19,20,58, - 69,59,10,70,21,48,45,22,49,23, - 9,3,8,4,26,50,6,7,1,2, - 5,36,0,71,62,46,15,68,52,16, - 53,54,17,18,55,57,19,20,58,69, - 59,70,21,45,22,49,23,14,13,51, - 9,3,8,6,26,48,61,81,27,36, - 7,1,2,5,4,10,56,0,63,64, - 24,25,11,12,29,34,40,43,41,42, - 28,38,32,37,14,23,13,19,17,18, - 20,21,16,15,22,10,31,35,33,30, - 39,8,6,4,60,7,5,1,2,3, - 0,10,68,62,69,70,14,23,13,19, - 17,18,20,21,16,15,22,74,50,5, - 4,2,1,49,45,59,58,57,7,55, - 54,53,27,52,46,51,120,103,24,25, - 60,3,96,90,6,91,92,11,12,89, - 88,44,93,94,97,98,8,99,100,101, - 65,95,87,67,104,105,106,107,108,109, - 110,111,112,113,72,118,71,102,117,66, - 26,9,0,9,71,63,64,47,24,25, - 8,6,11,12,29,34,3,40,43,41, - 42,28,38,32,37,14,23,13,19,17, - 18,20,21,16,15,22,31,35,33,30, - 39,50,7,1,2,4,10,5,0,51, - 13,14,62,46,15,68,52,27,16,53, - 54,17,18,55,57,19,20,58,69,59, - 10,70,21,45,22,49,23,1,2,4, - 95,0,26,9,7,5,3,1,2,6, - 8,4,72,0 + 71,13,65,1,2,8,6,4,3,56, + 66,74,9,0,1,2,9,71,0,63, + 64,3,10,32,36,34,31,40,16,25, + 15,21,19,20,22,23,18,17,24,41, + 44,42,43,28,39,33,38,5,7,4, + 26,27,8,6,11,12,29,35,1,2, + 118,9,0,57,46,7,47,5,1,2, + 4,75,59,120,103,26,27,56,3,96, + 90,6,91,92,11,12,89,88,30,93, + 94,97,98,8,99,100,101,65,95,74, + 67,104,105,106,107,108,109,110,111,112, + 113,72,118,71,102,117,66,13,9,0, + 15,16,17,18,19,20,21,22,23,24, + 25,48,46,49,14,50,51,52,53,54, + 55,45,47,13,9,74,7,1,2,56, + 3,8,6,5,4,0,65,67,66,1, + 2,0,4,30,59,72,0,37,72,4, + 1,2,59,0,1,2,122,59,0,48, + 15,16,62,46,17,68,49,14,18,50, + 51,19,20,52,53,21,22,54,69,55, + 10,70,23,45,24,47,25,1,2,4, + 64,63,11,12,6,91,92,99,8,100, + 5,29,30,65,107,108,104,105,106,112, + 111,113,89,88,109,110,97,98,93,94, + 101,102,26,27,66,90,103,3,56,67, + 0,46,57,47,9,65,95,67,66,74, + 0,67,66,71,9,0,8,6,4,5, + 7,1,2,3,56,65,67,66,9,74, + 95,0,59,72,75,0,15,16,31,63, + 17,32,33,18,19,20,64,7,34,21, + 22,35,36,38,57,39,40,10,23,24, + 25,41,42,43,1,2,3,26,27,8, + 6,11,12,5,29,4,44,73,28,0, + 59,66,0,72,9,56,3,67,66,13, + 30,0,59,67,0,7,5,3,56,6, + 8,95,48,15,16,46,17,68,49,14, + 18,50,51,19,20,52,53,21,22,54, + 69,55,10,70,23,45,24,47,25,1, + 2,4,74,9,62,0,62,46,17,68, + 49,18,50,51,19,20,52,53,21,22, + 54,69,55,10,70,23,45,24,47,25, + 16,15,48,9,3,8,6,13,58,60, + 61,82,14,30,7,4,37,5,1,2, + 0,76,0,46,47,75,3,59,72,13, + 57,9,65,95,67,66,74,0,45,1, + 2,4,114,115,116,0,119,0,61,48, + 15,16,62,46,17,68,49,82,14,18, + 50,51,19,20,52,60,53,21,22,54, + 69,55,10,70,23,58,45,24,47,25, + 9,3,8,4,13,59,6,7,1,2, + 5,37,0,71,62,46,17,68,49,18, + 50,51,19,20,52,53,21,22,54,69, + 55,70,23,45,24,47,25,16,15,48, + 9,3,8,6,13,58,61,82,14,37, + 7,1,2,5,4,10,60,0,63,64, + 26,27,11,12,29,35,41,44,42,43, + 28,39,33,38,16,25,15,21,19,20, + 22,23,18,17,24,10,32,36,34,31, + 40,8,6,4,56,7,5,1,2,3, + 0,10,68,62,69,70,16,25,15,21, + 19,20,22,23,18,17,24,75,59,72, + 95,118,71,7,53,54,55,45,47,1, + 2,52,51,50,14,49,5,4,46,48, + 9,74,13,56,3,120,96,103,90,26, + 27,8,6,11,12,91,92,88,89,30, + 93,94,97,98,99,100,101,102,117,104, + 105,106,107,108,109,110,111,112,113,67, + 66,65,0,13,9,7,5,3,1,2, + 6,8,4,72,0,9,71,63,64,57, + 26,27,8,6,11,12,29,35,3,41, + 44,42,43,28,39,33,38,16,25,15, + 21,19,20,22,23,18,17,24,32,36, + 34,31,40,59,7,1,2,4,10,5, + 0,48,15,16,62,46,17,68,49,14, + 18,50,51,19,20,52,53,21,22,54, + 69,55,10,70,23,45,24,47,25,1, + 2,4,95,0 }; }; public final static byte asr[] = Asr.asr; @@ -1840,59 +1813,59 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public interface Nasb { public final static char nasb[] = {0, - 87,11,216,25,11,11,11,11,11,11, - 230,11,11,168,11,140,172,95,25,25, - 138,25,25,25,25,25,25,11,11,11, - 11,11,11,11,11,11,11,11,25,11, - 25,172,233,233,233,233,95,117,186,38, - 4,70,164,11,11,186,170,11,164,164, - 134,1,25,53,152,11,11,172,11,11, - 12,12,117,104,25,25,25,25,25,25, - 25,25,25,25,25,25,25,25,25,25, - 25,25,25,25,25,25,25,25,25,25, - 25,25,25,25,104,25,164,164,11,11, - 11,11,30,164,23,76,211,212,11,212, - 93,212,55,212,205,230,95,70,70,23, - 25,76,66,134,74,74,11,230,95,70, - 233,35,202,154,164,201,10,95,201,164, - 70,11,11,11,11,11,11,11,11,11, + 153,11,172,39,11,11,11,11,11,11, + 237,11,11,128,11,48,202,167,39,39, + 206,39,39,39,39,39,39,11,11,11, + 11,11,11,11,11,11,11,11,39,11, + 39,202,240,240,240,240,167,69,185,25, + 4,92,161,11,11,185,130,11,161,161, + 147,1,39,12,165,11,11,202,11,11, + 97,97,69,135,39,39,39,39,39,39, + 39,39,39,39,39,39,39,39,39,39, + 39,39,39,39,39,39,39,39,39,39, + 39,39,39,39,135,39,161,161,11,11, + 11,11,62,161,37,104,218,219,11,219, + 123,219,28,219,212,237,167,92,92,37, + 39,104,88,147,46,46,11,11,11,237, + 167,92,240,94,20,31,161,19,209,167, + 19,161,92,11,11,11,11,11,11,11, 11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,141,10,11,11,11,127, - 95,186,186,141,186,188,186,11,11,186, - 188,95,10,11,11,125,70,11,164,112, - 186,95,152,25,233,186,79,164,11,10, - 95,98,152,25,104,104,104,104,11,11, - 11,23,11,21,225,186,186,19,151,19, - 186,56,10,151,141,164,11,130,11,114, - 150,141,164,51,127,154,11,10,141,164, - 164,164,164,117,117,186,21,45,95,216, - 11,11,33,218,225,19,19,158,141,56, - 45,11,11,141,186,25,11,11,74,74, - 95,130,76,114,164,141,186,64,11,104, - 127,99,11,164,164,21,152,11,230,186, - 180,182,11,11,230,166,188,45,25,56, - 21,25,25,186,152,164,112,196,186,11, - 51,117,25,70,99,202,186,188,186,58, - 198,216,76,11,25,11,49,176,188,230, - 230,10,186,114,202,21,64,164,70,216, - 114,202,58,144,146,182,198,25,25,10, - 188,188,17,164,186,11,11,123,123,216, - 144,120,11,188,11,10,10,11,186,17, - 114,191,186,11,11,186,82,146,10,117, - 162,21,11,191,219,11,56,33,114,233, - 233,72,101,11,25,11,216,11,11,11, - 102,11,56,214,216,216,56,47,164,164, - 186,186,11,180,11,186,11,11,11,230, - 11,62,11,11,11,102,232,232,236,11, - 232,216,216,11,186,233,17,191,186,191, - 216,60,11,164,107,186,186,230,188,11, - 233,164,182,164,238,216,186,11,164,72, - 107,35,25,182,216,45,191,107,107,188, - 91,123,164,164,186,102,11,102,216,238, - 182,104,102,62,45,164,186,45,45,91, - 216,11,47,47,130,25,11,238,216,216, - 164,41,216,201,102,164,238,216,45,102, - 164,41,102 + 11,11,11,11,11,11,125,10,11,11, + 11,176,167,185,185,125,185,195,185,11, + 11,185,195,167,10,11,11,174,92,11, + 161,118,185,167,165,39,240,185,85,161, + 11,10,167,11,192,165,39,135,135,135, + 135,11,11,37,11,35,232,185,185,67, + 164,67,185,210,10,164,125,161,11,143, + 11,120,163,125,161,75,176,31,11,209, + 125,161,161,161,161,69,69,185,35,56, + 167,172,11,11,79,225,232,67,67,198, + 125,210,56,11,11,125,185,39,11,11, + 46,46,167,143,104,120,161,125,185,58, + 11,135,176,193,11,11,161,161,35,165, + 11,237,185,179,181,11,11,237,157,195, + 56,39,210,35,39,39,185,165,161,118, + 14,185,11,75,69,39,92,193,20,185, + 195,185,65,16,172,104,11,39,11,60, + 221,195,237,237,10,185,120,20,35,58, + 161,92,172,120,20,65,151,114,181,16, + 39,39,10,195,195,81,161,185,11,11, + 102,102,172,151,72,11,195,11,10,10, + 11,185,81,120,187,185,11,11,185,109, + 114,10,69,159,35,11,187,226,11,210, + 79,120,240,240,23,132,11,39,11,172, + 11,11,11,133,11,210,170,172,172,210, + 83,161,161,185,185,11,179,11,185,11, + 11,11,237,11,77,11,11,11,133,239, + 239,243,11,239,172,172,11,185,240,81, + 187,185,187,172,44,11,161,138,185,185, + 237,195,11,240,161,181,161,245,172,185, + 11,161,23,138,94,39,181,172,56,187, + 138,138,195,107,102,161,161,185,133,11, + 133,172,245,181,135,133,77,56,161,185, + 56,56,107,172,11,83,83,143,39,11, + 245,172,172,161,52,172,19,133,161,245, + 172,56,133,161,52,133 }; }; public final static char nasb[] = Nasb.nasb; @@ -1900,30 +1873,31 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public interface Nasr { public final static char nasr[] = {0, - 3,12,7,5,147,145,120,144,143,2, - 0,5,2,7,134,0,124,0,111,0, - 60,0,44,4,5,7,2,12,0,53, - 65,0,151,0,4,28,0,4,186,0, - 12,2,7,5,64,0,56,0,182,0, - 138,0,171,0,5,1,0,154,0,176, - 0,113,0,136,0,12,2,7,5,78, - 0,156,0,67,0,5,91,0,4,173, - 0,4,47,39,174,0,4,39,170,0, - 150,0,3,5,2,43,0,2,114,0, - 64,47,69,4,39,0,105,4,47,68, - 0,5,91,23,4,0,4,98,0,4, - 64,0,110,0,96,95,5,55,0,2, - 7,53,63,95,96,4,0,5,12,7, - 2,3,0,155,0,165,5,164,0,53, - 2,65,0,65,133,132,0,5,104,183, - 0,44,4,33,0,184,0,4,44,167, - 0,4,44,39,0,5,104,161,0,5, - 91,63,53,7,2,4,0,2,61,0, - 4,47,68,79,0,96,95,53,63,55, - 5,7,2,0,2,5,120,116,117,118, - 12,88,0,4,39,38,0,38,53,7, - 2,4,153,0,4,47,68,104,45,5, - 0,115,4,44,0,23,175,4,102,0 + 3,12,7,5,146,144,119,143,142,2, + 0,170,0,95,94,52,62,54,5,7, + 2,0,155,0,4,185,0,5,1,0, + 64,132,131,0,59,0,43,4,5,7, + 2,12,0,175,0,66,0,2,7,3, + 0,12,2,7,5,63,0,135,0,181, + 0,52,64,0,153,0,110,0,4,97, + 0,4,63,0,137,0,112,0,150,0, + 123,0,55,0,4,172,0,12,2,7, + 5,77,0,4,27,0,5,2,7,133, + 0,109,0,5,90,0,149,0,4,46, + 38,173,0,164,5,163,0,5,90,22, + 4,0,5,42,2,3,0,4,43,166, + 0,63,46,68,4,38,0,104,4,46, + 67,0,2,7,52,62,94,95,4,0, + 154,0,4,38,169,0,183,0,43,4, + 31,0,52,2,64,0,2,42,0,4, + 38,37,0,95,94,5,54,0,5,90, + 62,52,7,2,4,0,4,46,67,78, + 0,2,113,0,2,60,0,5,103,182, + 0,4,43,38,0,5,7,12,3,1, + 0,2,5,119,115,116,117,12,87,0, + 5,103,160,0,37,52,7,2,4,152, + 0,4,46,67,103,44,5,0,114,4, + 43,0,22,174,4,101,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -1932,14 +1906,14 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public interface TerminalIndex { public final static char terminalIndex[] = {0, 115,116,2,32,14,11,81,10,117,102, - 12,13,50,54,62,70,76,77,88,89, - 104,107,109,8,9,122,68,114,15,57, - 63,69,86,90,92,95,96,99,101,111, - 112,113,46,20,106,56,97,105,108,3, - 49,66,72,75,78,79,85,91,100,1, + 12,13,122,68,50,54,62,70,76,77, + 88,89,104,107,109,8,9,114,15,20, + 57,63,69,86,90,92,95,96,99,101, + 111,112,113,46,106,56,108,49,66,72, + 75,78,85,91,100,1,97,105,3,79, 48,55,60,80,21,45,34,65,93,103, - 121,31,123,98,110,51,52,58,59,61, - 67,71,73,74,87,94,120,18,19,7, + 121,31,123,120,98,110,51,52,58,59, + 61,67,71,73,74,87,94,18,19,7, 16,17,22,23,33,5,24,25,26,27, 28,29,6,35,36,37,38,39,40,41, 42,43,44,82,83,84,30,119,53,4, @@ -1952,25 +1926,25 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, 132,137,139,0,0,138,235,136,0,135, - 0,146,0,134,0,0,145,151,0,0, - 152,161,182,162,163,164,165,154,166,167, - 140,168,128,169,170,171,0,130,133,172, - 0,142,141,155,180,0,0,0,0,0, - 0,0,0,148,158,175,0,205,0,189, - 0,202,206,129,0,0,207,0,174,0, - 0,0,0,0,0,0,178,127,131,0, - 0,0,0,0,0,0,0,188,0,0, - 203,213,160,209,210,211,0,0,149,0, - 0,0,208,221,181,0,0,0,212,0, - 0,0,241,150,177,191,192,193,194,195, - 197,200,0,0,215,218,220,238,0,240, - 0,143,144,147,0,0,157,159,0,173, - 0,183,184,185,186,187,190,0,196,198, - 0,199,204,0,216,217,0,222,225,227, - 229,0,232,233,234,0,236,237,239,126, - 0,153,156,176,179,201,214,219,0,223, - 224,226,228,0,230,231,242,243,0,0, - 0,0,0,0 + 0,146,134,0,0,145,151,0,0,152, + 161,182,162,163,164,165,154,166,167,168, + 128,169,170,144,171,0,130,133,172,0, + 141,140,155,180,0,0,0,0,0,0, + 0,0,148,158,175,0,205,0,189,0, + 202,206,129,0,0,207,0,174,0,0, + 0,0,0,0,0,178,127,131,0,0, + 0,0,0,0,0,0,188,0,0,203, + 213,160,209,210,211,0,0,0,0,149, + 0,208,221,181,0,0,0,212,0,0, + 0,241,150,177,191,192,193,194,195,197, + 200,0,0,215,218,220,238,0,240,0, + 142,143,147,0,0,157,159,0,173,0, + 183,184,185,186,187,190,0,196,198,0, + 199,204,0,216,217,0,222,225,227,229, + 0,232,233,234,0,236,237,239,126,0, + 153,156,176,179,201,214,219,0,223,224, + 226,228,0,230,231,242,243,0,0,0, + 0,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -2016,18 +1990,18 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public interface ScopeLhs { public final static char scopeLhs[] = { - 45,17,17,73,17,17,17,17,73,82, - 46,87,86,118,66,51,73,72,45,17, - 73,19,3,6,161,161,158,116,45,85, - 118,117,119,52,46,134,129,73,17,17, - 129,97,57,131,76,164,161,158,126,59, - 117,117,119,175,49,56,138,18,17,17, - 17,17,17,11,113,158,126,73,72,72, - 37,134,72,17,17,17,17,97,73,19, - 165,161,176,95,103,67,58,153,77,119, - 74,70,139,138,171,134,16,158,119,115, - 21,127,127,55,134,134,73,45,158,71, - 132,43,132,43,164,115,116,45,45,57 + 44,16,16,72,16,16,16,16,72,81, + 45,86,85,117,65,50,72,71,44,16, + 72,18,3,6,160,160,157,115,44,84, + 117,116,118,51,45,133,128,72,16,16, + 128,96,56,130,75,163,160,157,125,58, + 116,116,118,174,48,55,137,17,16,16, + 16,16,16,11,112,157,125,72,71,71, + 36,133,71,16,16,16,16,96,72,18, + 164,160,175,94,102,66,57,152,76,118, + 73,69,138,137,170,133,15,157,118,114, + 20,126,126,54,133,133,72,44,157,70, + 131,42,131,42,163,114,115,44,44,56 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -2035,18 +2009,18 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public interface ScopeLa { public final static byte scopeLa[] = { - 119,87,87,87,87,87,87,87,87,71, - 26,71,71,71,65,1,87,121,50,3, - 26,87,65,65,1,1,26,71,50,71, - 71,1,1,1,1,4,65,26,1,1, - 65,87,87,87,119,87,1,26,71,1, - 1,1,1,26,26,71,118,87,87,87, - 87,87,118,1,87,1,66,87,87,87, - 72,4,87,65,65,65,65,87,26,3, - 1,1,87,87,3,118,87,1,1,1, - 26,72,87,118,87,5,87,1,36,67, - 87,1,1,6,1,36,75,74,26,26, - 4,4,4,4,3,1,50,1,1,3 + 119,74,74,74,74,74,74,74,74,71, + 13,71,71,71,65,1,74,121,59,3, + 13,74,65,65,1,1,13,71,59,71, + 71,1,1,1,1,4,65,13,1,1, + 65,74,74,74,119,74,1,13,71,1, + 1,1,1,13,13,71,118,74,74,74, + 74,74,118,1,74,1,66,74,74,74, + 72,4,74,65,65,65,65,74,13,3, + 1,1,74,74,3,118,74,1,1,1, + 13,72,74,118,74,5,74,1,37,67, + 74,1,1,6,1,37,76,75,13,13, + 4,4,4,4,3,1,59,1,1,3 }; }; public final static byte scopeLa[] = ScopeLa.scopeLa; @@ -2073,72 +2047,72 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public interface ScopeRhs { public final static char scopeRhs[] = {0, - 312,3,47,0,128,0,311,3,119,0, - 128,175,0,128,180,74,0,217,0,290, - 128,44,126,0,21,0,292,128,44,36, + 311,3,57,0,128,0,310,3,119,0, + 128,175,0,128,179,75,0,217,0,289, + 128,30,126,0,21,0,291,128,30,37, 0,21,55,0,34,134,0,21,55,0, - 0,292,128,44,36,192,0,21,131,0, - 290,128,44,131,0,185,129,0,140,0, - 222,3,289,0,289,0,2,0,128,0, - 185,129,228,0,185,129,45,228,0,185, - 129,308,45,0,132,189,167,129,0,130, - 0,189,167,129,0,136,130,0,171,0, - 304,128,171,0,128,171,0,223,130,0, - 167,244,0,139,0,0,0,137,0,0, - 0,303,128,50,251,0,129,0,251,0, - 3,0,0,129,0,302,128,50,0,45, - 129,0,152,3,0,128,279,278,128,74, - 277,171,0,278,128,74,277,171,0,216, - 0,217,0,277,171,0,98,0,0,216, + 0,291,128,30,37,191,0,21,131,0, + 289,128,30,131,0,184,129,0,144,0, + 221,3,288,0,288,0,2,0,128,0, + 184,129,227,0,184,129,45,227,0,184, + 129,307,45,0,132,188,166,129,0,130, + 0,188,166,129,0,136,130,0,170,0, + 303,128,170,0,128,170,0,223,130,0, + 166,243,0,139,0,0,0,137,0,0, + 0,302,128,59,250,0,129,0,250,0, + 3,0,0,129,0,301,128,59,0,45, + 129,0,151,3,0,128,278,277,128,75, + 276,170,0,277,128,75,276,170,0,216, + 0,217,0,276,170,0,98,0,0,216, 0,217,0,204,98,0,0,216,0,217, - 0,278,128,277,171,0,216,0,204,0, - 0,216,0,231,128,3,0,128,0,0, - 0,0,0,231,128,3,219,0,227,3, - 0,215,128,0,209,0,189,167,177,0, - 136,0,167,129,0,11,0,0,0,217, - 60,0,127,0,231,128,3,182,0,182, + 0,277,128,276,170,0,216,0,204,0, + 0,216,0,230,128,3,0,128,0,0, + 0,0,0,230,128,3,218,0,226,3, + 0,214,128,0,209,0,188,166,176,0, + 136,0,166,129,0,11,0,0,0,216, + 56,0,127,0,230,128,3,181,0,181, 0,2,0,0,128,0,0,0,0,0, - 201,3,0,202,0,230,128,50,28,27, - 0,185,129,56,48,0,198,130,0,132, - 185,129,275,48,0,185,129,275,48,0, - 185,129,67,125,56,0,230,128,50,56, - 0,230,128,50,122,56,0,230,128,50, - 126,56,0,272,128,50,125,68,0,272, - 128,50,68,0,185,129,68,0,137,0, - 189,185,129,244,0,139,0,185,129,244, - 0,189,167,129,10,0,167,129,10,0, - 95,139,0,149,0,265,128,147,0,265, - 128,171,0,163,85,0,226,162,226,299, - 3,82,0,128,174,0,226,299,3,82, - 0,130,0,128,174,0,226,162,226,162, - 226,3,82,0,226,162,226,3,82,0, - 226,3,82,0,130,0,130,0,128,174, - 0,163,3,75,193,80,0,128,130,0, - 193,80,0,110,2,133,128,130,0,239, - 3,75,0,201,168,0,34,172,0,168, - 0,178,34,172,0,239,3,86,0,193, - 157,239,3,84,0,64,174,0,239,3, - 84,0,128,174,64,174,0,298,128,50, - 0,163,0,217,77,0,31,0,163,117, - 160,0,31,172,0,178,3,0,128,152, - 0,222,3,0,217,60,262,0,163,60, - 0,178,3,295,64,129,0,128,0,0, - 0,0,295,64,129,0,2,148,128,0, - 0,0,0,178,3,34,0,150,0,127, - 36,167,129,0,32,150,0,95,139,32, - 150,0,223,185,129,0,149,32,150,0, - 178,3,39,0,163,3,39,0,163,3, - 65,178,44,30,0,178,44,30,0,21, - 2,133,128,0,163,3,65,178,44,33, - 0,178,44,33,0,163,3,65,178,44, - 35,0,178,44,35,0,163,3,65,178, - 44,31,0,178,44,31,0,222,3,127, - 189,167,129,10,0,127,189,167,129,10, - 0,139,2,0,128,0,222,3,126,177, - 167,129,10,0,177,167,129,10,0,137, - 2,0,128,0,222,3,136,0,222,3, - 141,0,163,60,141,0,257,0,32,0, - 32,143,0,166,0,163,3,0 + 200,3,0,202,0,229,128,59,28,14, + 0,184,129,60,58,0,198,130,0,132, + 184,129,274,58,0,184,129,274,58,0, + 184,129,67,125,60,0,229,128,59,60, + 0,229,128,59,122,60,0,229,128,59, + 126,60,0,271,128,59,125,68,0,271, + 128,59,68,0,184,129,68,0,137,0, + 188,184,129,243,0,139,0,184,129,243, + 0,188,166,129,10,0,166,129,10,0, + 95,139,0,149,0,264,128,146,0,264, + 128,170,0,162,86,0,225,161,225,298, + 3,83,0,128,174,0,225,298,3,83, + 0,130,0,128,174,0,225,161,225,161, + 225,3,83,0,225,161,225,3,83,0, + 225,3,83,0,130,0,130,0,128,174, + 0,162,3,76,192,81,0,128,130,0, + 192,81,0,110,2,133,128,130,0,238, + 3,76,0,200,167,0,34,172,0,167, + 0,178,34,172,0,238,3,87,0,192, + 155,238,3,85,0,64,174,0,238,3, + 85,0,128,174,64,174,0,297,128,59, + 0,162,0,216,78,0,31,0,162,117, + 159,0,31,172,0,177,3,0,128,152, + 0,221,3,0,216,56,261,0,162,56, + 0,177,3,294,64,129,0,128,0,0, + 0,0,294,64,129,0,2,148,128,0, + 0,0,0,177,3,35,0,150,0,127, + 37,166,129,0,32,150,0,95,139,32, + 150,0,224,184,129,0,149,32,150,0, + 177,3,40,0,162,3,40,0,162,3, + 65,177,30,31,0,177,30,31,0,21, + 2,133,128,0,162,3,65,177,30,34, + 0,177,30,34,0,162,3,65,177,30, + 36,0,177,30,36,0,162,3,65,177, + 30,32,0,177,30,32,0,221,3,127, + 188,166,129,10,0,127,188,166,129,10, + 0,139,2,0,128,0,221,3,126,176, + 166,129,10,0,176,166,129,10,0,137, + 2,0,128,0,221,3,136,0,221,3, + 140,0,162,56,140,0,256,0,32,0, + 32,142,0,165,0,162,3,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -2146,36 +2120,36 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public interface ScopeState { public final static char scopeState[] = {0, - 1311,0,4553,0,4571,4544,4535,0,1613,1996, - 1571,1912,0,1390,1348,582,0,3127,3034,0, - 3393,3353,3313,3356,1849,3273,3233,3179,3119,985, - 3003,2658,2618,3570,2981,0,4533,3652,4400,0, - 1800,1758,0,3447,3172,0,4454,4432,0,1839, - 1123,0,4454,4357,4339,4151,4432,3810,4162,4266, - 4368,3082,4249,3831,3527,3516,2966,0,2632,4448, - 0,2632,4448,2834,2825,3775,2760,2695,3722,3669, - 3616,3549,3393,3353,3313,3273,3233,3179,3119,3003, - 2658,2618,0,2632,4448,2834,2825,3775,2760,2695, - 3722,3669,3616,3549,0,3544,3081,0,3082,4357, - 4619,4339,4151,3151,3527,3729,3552,3654,2712,2832, - 972,2671,2417,0,981,569,0,1130,0,2635, - 2634,2304,2276,4151,2832,3810,3516,2966,2719,2385, - 0,4172,527,2367,0,4523,4499,4479,4475,4466, - 4234,4180,3647,4278,4186,3849,3377,3297,3560,3545, - 3244,2793,2756,2458,2642,3014,2894,0,4523,4499, - 3537,3263,3184,4479,4475,4466,2628,2390,4234,4180, - 3647,2932,4278,2849,2495,4186,2490,2474,1862,1140, - 2651,3849,2859,3377,618,3297,3560,3545,861,3244, - 809,2793,1858,2756,2458,4172,2642,2367,3014,2894, - 3810,4162,4266,4368,3082,4454,4357,4249,2462,2375, - 4339,2162,4151,3831,3527,3516,4432,2966,2073,720, - 650,1984,1126,981,569,622,4129,4107,2175,2213, - 583,2248,2339,2311,2281,2595,2569,2542,2515,2423, - 2394,3493,3470,3092,2941,780,4085,4063,4041,4019, - 3997,3975,3953,3931,3909,2977,910,1866,2124,2086, - 2035,1997,1946,1144,1084,1908,1042,813,1816,1777, - 730,675,1735,1693,1651,1609,1567,1525,1483,1441, - 1399,1357,1315,527,1273,1230,999,939,868,1186, + 763,0,4433,0,4440,4432,4426,0,2754,3375, + 1244,605,0,1320,1290,1279,0,2539,2454,0, + 3247,3208,3169,1570,1529,3130,3091,3052,2998,1488, + 2889,2487,2448,3117,2857,0,4059,4293,3517,0, + 932,887,0,4185,3584,0,3006,4194,0,1071, + 1064,0,3006,4158,4031,569,4194,3620,3993,4070, + 4172,2965,2406,4095,3324,3303,2852,0,2632,4213, + 0,2632,4213,2696,2644,3568,2578,2526,3516,3464, + 3412,3344,3247,3208,3169,3130,3091,3052,2998,2889, + 2487,2448,0,2632,4213,2696,2644,3568,2578,2526, + 3516,3464,3412,3344,0,3051,642,0,2965,4158, + 4493,4031,569,2579,3324,3054,3480,1232,2461,3308, + 2708,3465,2399,0,1994,1906,0,532,0,1372, + 1148,1123,771,569,3308,3620,3303,2852,3571,2671, + 0,4023,528,2279,0,4338,4332,4318,4289,4283, + 4267,4262,4253,4415,4409,4405,4400,4353,4240,3551, + 3231,3499,3226,2638,2471,3153,3109,0,4338,4332, + 4479,4134,4041,4318,4289,4283,3339,2921,4267,4262, + 4253,3659,4415,3522,3417,4409,2949,2594,2387,1074, + 3473,4405,1784,4400,2369,4353,4240,3551,1029,3231, + 719,3499,579,3226,2638,4023,2471,2279,3153,3109, + 3620,3993,4070,4172,2965,3006,4158,2406,3031,2894, + 4031,2784,569,4095,3324,3303,4194,2852,2750,850, + 2082,2375,650,1994,1906,4003,3972,3951,2096,2133, + 2166,583,2252,2225,2196,2827,2802,2426,2316,2287, + 778,3740,3718,2975,2862,2342,3930,3909,3888,3867, + 3846,3825,3804,3783,3762,3692,3435,1791,2045,2008, + 1957,1920,1869,1085,1033,1832,988,806,1742,1703, + 729,675,1662,1621,1580,1539,1498,1457,1416,1375, + 1334,1293,1252,528,1210,1167,942,901,860,1126, 0 }; }; @@ -2184,59 +2158,59 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public interface InSymb { public final static char inSymb[] = {0, - 0,294,163,128,264,39,30,33,35,31, - 10,136,126,7,131,4,3,129,34,29, - 5,12,11,6,8,25,24,141,146,149, - 148,151,150,154,153,158,156,159,47,160, - 66,3,44,44,44,44,129,3,44,168, - 128,60,3,63,64,44,7,126,178,163, - 168,128,63,64,167,166,126,3,127,126, - 103,120,3,60,90,96,12,11,92,91, - 6,94,93,65,44,88,89,8,98,97, + 0,293,162,128,263,40,31,34,36,32, + 10,136,126,7,131,4,3,129,35,29, + 5,12,11,6,8,27,26,140,145,148, + 147,150,149,153,152,156,154,157,57,159, + 66,3,30,30,30,30,129,3,30,167, + 128,56,3,63,64,30,7,126,177,162, + 167,128,63,64,166,165,126,3,125,127, + 103,120,3,56,90,96,12,11,92,91, + 6,94,93,65,30,88,89,8,98,97, 100,99,101,113,112,111,110,109,108,107, - 106,105,104,67,117,102,178,163,178,178, - 178,178,167,222,128,128,266,267,251,268, - 244,269,68,270,271,10,129,60,60,128, - 157,128,60,3,220,219,136,10,129,60, - 295,3,189,4,178,36,5,129,36,222, - 163,148,148,146,146,146,150,150,150,150, - 149,149,153,151,151,156,154,158,163,159, - 65,65,65,65,189,177,290,134,293,215, - 129,6,50,167,234,129,127,126,125,50, - 129,129,185,167,290,215,217,160,227,128, - 3,129,167,202,3,296,168,152,257,189, - 129,185,167,72,3,3,3,3,127,126, - 126,66,167,128,128,127,126,128,185,128, - 50,128,185,167,36,231,232,147,233,128, - 167,36,178,128,128,4,223,5,36,163, - 163,163,163,3,3,6,184,303,129,169, - 228,192,48,171,305,128,128,72,189,128, - 272,125,273,189,157,67,227,201,187,182, - 177,3,128,66,231,189,157,259,262,60, - 179,4,127,222,222,128,167,36,275,277, - 128,3,182,307,228,45,129,272,67,66, - 128,67,67,3,167,201,128,215,157,127, - 128,3,60,163,4,189,44,129,74,128, - 215,304,128,126,72,284,201,66,129,45, - 308,185,224,128,189,128,259,222,217,132, - 128,185,128,278,72,66,215,72,67,185, - 129,129,128,231,224,292,36,10,62,132, - 278,50,288,129,289,185,185,47,157,128, - 66,65,44,234,234,279,128,66,185,3, - 3,128,27,36,171,61,56,48,128,67, - 67,128,298,79,77,1,163,86,84,82, - 80,75,83,85,78,76,56,74,222,312, - 224,28,44,128,3,50,122,126,125,56, - 292,280,119,9,217,72,3,3,3,193, - 3,125,163,125,180,66,128,128,50,65, - 265,201,276,28,128,50,50,67,129,65, - 3,239,168,239,299,226,147,75,239,128, - 128,3,67,66,157,230,229,128,128,129, - 185,62,95,311,168,157,201,157,226,162, - 128,3,157,280,230,152,50,230,230,185, - 274,234,157,157,128,67,193,162,226,265, - 163,128,274,67,121,226,162,157,302,157, - 226,66,157 + 106,105,104,67,117,102,177,162,177,177, + 177,177,166,221,128,128,265,266,250,267, + 243,268,68,269,270,10,129,56,56,128, + 155,128,56,3,219,218,136,127,126,10, + 129,56,294,3,188,4,177,37,5,129, + 37,221,162,147,147,145,145,145,149,149, + 149,149,148,148,152,150,150,154,153,156, + 162,157,65,65,65,65,188,176,289,134, + 292,214,129,6,59,166,233,129,127,126, + 125,59,129,129,184,166,289,214,216,159, + 226,128,3,129,166,201,3,295,167,151, + 256,188,129,126,184,166,72,3,3,3, + 3,127,126,66,166,128,128,127,126,128, + 184,128,59,128,184,166,37,230,231,146, + 232,128,166,37,177,128,128,4,224,5, + 37,162,162,162,162,3,3,6,183,302, + 129,168,227,191,58,170,304,128,128,72, + 188,128,271,125,272,188,155,67,226,200, + 186,181,176,3,128,66,230,188,155,258, + 261,56,178,4,125,127,221,221,128,166, + 37,274,276,128,3,181,306,227,45,129, + 271,67,66,128,67,67,3,166,200,128, + 214,155,127,128,3,56,162,4,188,30, + 129,75,128,214,303,128,126,72,283,200, + 66,129,45,307,184,222,128,188,128,258, + 221,216,132,128,184,128,277,72,66,214, + 72,67,184,129,129,128,230,222,291,37, + 10,62,132,277,59,287,129,288,184,184, + 57,155,128,66,65,30,233,233,278,128, + 66,184,3,3,128,14,37,170,61,60, + 58,128,67,67,128,297,80,78,1,162, + 87,85,83,81,76,84,86,79,77,60, + 75,221,311,222,28,30,128,3,59,122, + 126,125,60,291,279,119,9,216,72,3, + 3,3,192,3,125,162,125,179,66,128, + 128,59,65,264,200,275,28,128,59,59, + 67,129,65,3,238,167,238,298,225,146, + 76,238,128,128,3,67,66,155,229,228, + 128,128,129,184,62,95,310,167,155,200, + 155,225,161,128,3,155,279,229,151,59, + 229,229,184,273,233,155,155,128,67,192, + 161,225,264,162,128,273,67,121,225,161, + 155,301,155,225,66,155 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2384,13 +2358,13 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse "identifier_name", "operator_function_id_name", "template_id_name", - "class_name", "nested_name_specifier", "class_or_namespace_name", "nested_name_specifier_with_tem" + "plate", "class_or_namespace_name_with_t" + "emplate", + "class_name", "postfix_expression", "simple_type_specifier", "pseudo_destructor_name", @@ -2512,20 +2486,20 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 523, + NUM_STATES = 526, NT_OFFSET = 124, - LA_STATE_OFFSET = 5669, + LA_STATE_OFFSET = 5517, MAX_LA = 2147483647, - NUM_RULES = 526, - NUM_NONTERMINALS = 194, - NUM_SYMBOLS = 318, + NUM_RULES = 527, + NUM_NONTERMINALS = 193, + NUM_SYMBOLS = 317, SEGMENT_SIZE = 8192, - START_STATE = 2621, + START_STATE = 2915, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 123, EOLT_SYMBOL = 123, - ACCEPT_ACTION = 4767, - ERROR_ACTION = 5143; + ACCEPT_ACTION = 4609, + ERROR_ACTION = 4990; public final static boolean BACKTRACK = true; diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParsersym.java index 700dcbfae9f..eeebceb9487 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParsersym.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParsersym.java @@ -16,85 +16,85 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp; public interface CPPExpressionStatementParsersym { public final static int TK_asm = 61, - TK_auto = 51, - TK_bool = 13, - TK_break = 76, - TK_case = 77, + TK_auto = 48, + TK_bool = 15, + TK_break = 77, + TK_case = 78, TK_catch = 119, - TK_char = 14, + TK_char = 16, TK_class = 62, TK_const = 46, - TK_const_cast = 30, - TK_continue = 78, - TK_default = 79, + TK_const_cast = 31, + TK_continue = 79, + TK_default = 80, TK_delete = 63, - TK_do = 80, - TK_double = 15, - TK_dynamic_cast = 31, + TK_do = 81, + TK_double = 17, + TK_dynamic_cast = 32, TK_else = 121, TK_enum = 68, - TK_explicit = 52, - TK_export = 81, - TK_extern = 27, - TK_false = 32, - TK_float = 16, - TK_for = 82, - TK_friend = 53, - TK_goto = 83, - TK_if = 84, - TK_inline = 54, - TK_int = 17, - TK_long = 18, - TK_mutable = 55, - TK_namespace = 56, + TK_explicit = 49, + TK_export = 82, + TK_extern = 14, + TK_false = 33, + TK_float = 18, + TK_for = 83, + TK_friend = 50, + TK_goto = 84, + TK_if = 85, + TK_inline = 51, + TK_int = 19, + TK_long = 20, + TK_mutable = 52, + TK_namespace = 60, TK_new = 64, TK_operator = 7, TK_private = 114, TK_protected = 115, TK_public = 116, - TK_register = 57, - TK_reinterpret_cast = 33, - TK_return = 85, - TK_short = 19, - TK_signed = 20, - TK_sizeof = 34, - TK_static = 58, - TK_static_cast = 35, + TK_register = 53, + TK_reinterpret_cast = 34, + TK_return = 86, + TK_short = 21, + TK_signed = 22, + TK_sizeof = 35, + TK_static = 54, + TK_static_cast = 36, TK_struct = 69, - TK_switch = 86, - TK_template = 36, - TK_this = 37, - TK_throw = 47, - TK_try = 74, - TK_true = 38, - TK_typedef = 59, - TK_typeid = 39, + TK_switch = 87, + TK_template = 37, + TK_this = 38, + TK_throw = 57, + TK_try = 75, + TK_true = 39, + TK_typedef = 55, + TK_typeid = 40, TK_typename = 10, TK_union = 70, - TK_unsigned = 21, - TK_using = 48, + TK_unsigned = 23, + TK_using = 58, TK_virtual = 45, - TK_void = 22, - TK_volatile = 49, - TK_wchar_t = 23, - TK_while = 75, - TK_integer = 40, - TK_floating = 41, - TK_charconst = 42, + TK_void = 24, + TK_volatile = 47, + TK_wchar_t = 25, + TK_while = 76, + TK_integer = 41, + TK_floating = 42, + TK_charconst = 43, TK_stringlit = 28, TK_identifier = 1, TK_Completion = 2, TK_EndOfCompletion = 9, TK_Invalid = 124, - TK_LeftBracket = 60, + TK_LeftBracket = 56, TK_LeftParen = 3, - TK_LeftBrace = 50, + TK_LeftBrace = 59, TK_Dot = 120, TK_DotStar = 96, TK_Arrow = 103, TK_ArrowStar = 90, - TK_PlusPlus = 24, - TK_MinusMinus = 25, + TK_PlusPlus = 26, + TK_MinusMinus = 27, TK_And = 8, TK_Star = 6, TK_Plus = 11, @@ -105,7 +105,7 @@ public interface CPPExpressionStatementParsersym { TK_Percent = 92, TK_RightShift = 88, TK_LeftShift = 89, - TK_LT = 44, + TK_LT = 30, TK_GT = 65, TK_LE = 93, TK_GE = 94, @@ -131,11 +131,11 @@ public interface CPPExpressionStatementParsersym { TK_CaretAssign = 112, TK_OrAssign = 113, TK_Comma = 66, - TK_zero = 43, + TK_zero = 44, TK_RightBracket = 118, - TK_RightParen = 87, + TK_RightParen = 74, TK_RightBrace = 71, - TK_SemiColon = 26, + TK_SemiColon = 13, TK_ERROR_TOKEN = 73, TK_original_namespace_name = 122, TK_EOF_TOKEN = 123; @@ -154,6 +154,8 @@ public interface CPPExpressionStatementParsersym { "typename", "Plus", "Minus", + "SemiColon", + "extern", "bool", "char", "double", @@ -167,10 +169,9 @@ public interface CPPExpressionStatementParsersym { "wchar_t", "PlusPlus", "MinusMinus", - "SemiColon", - "extern", "stringlit", "Bang", + "LT", "const_cast", "dynamic_cast", "false", @@ -185,23 +186,22 @@ public interface CPPExpressionStatementParsersym { "floating", "charconst", "zero", - "LT", "virtual", "const", - "throw", - "using", "volatile", - "LeftBrace", "auto", "explicit", "friend", "inline", "mutable", - "namespace", "register", "static", "typedef", "LeftBracket", + "throw", + "using", + "LeftBrace", + "namespace", "asm", "class", "delete", @@ -215,6 +215,7 @@ public interface CPPExpressionStatementParsersym { "RightBrace", "Colon", "ERROR_TOKEN", + "RightParen", "try", "while", "break", @@ -228,7 +229,6 @@ public interface CPPExpressionStatementParsersym { "if", "return", "switch", - "RightParen", "RightShift", "LeftShift", "ArrowStar", 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 082108b31df..5ad315f4388 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 @@ -378,1738 +378,1878 @@ public CPPNoCastExpressionParser(String[] mapFrom) { // constructor } // - // Rule 37: unqualified_id_name ::= ~ class_name + // Rule 37: unqualified_id_name ::= ~ identifier_token // case 37: { action.builder. consumeDestructorName(); break; } // - // Rule 38: identifier_name ::= identifier_token + // Rule 38: unqualified_id_name ::= ~ template_id_name // case 38: { action.builder. + consumeDestructorNameTemplateId(); break; + } + + // + // Rule 39: identifier_name ::= identifier_token + // + case 39: { action.builder. consumeIdentifierName(); break; } // - // Rule 39: template_opt ::= template - // - case 39: { action.builder. - consumePlaceHolder(); break; - } - - // - // Rule 40: template_opt ::= $Empty + // Rule 40: template_opt ::= template // case 40: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 41: dcolon_opt ::= :: - // - case 41: { action.builder. consumePlaceHolder(); break; } // - // Rule 42: dcolon_opt ::= $Empty + // Rule 41: template_opt ::= $Empty // - case 42: { action.builder. + case 41: { action.builder. consumeEmpty(); break; } // - // Rule 43: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name + // Rule 42: dcolon_opt ::= :: + // + case 42: { action.builder. + consumePlaceHolder(); break; + } + + // + // Rule 43: dcolon_opt ::= $Empty // case 43: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 44: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name + // + case 44: { action.builder. consumeQualifiedId(true); break; } // - // Rule 44: qualified_id_name ::= :: identifier_name - // - case 44: { action.builder. - consumeGlobalQualifiedId(); break; - } - - // - // Rule 45: qualified_id_name ::= :: operator_function_id_name + // Rule 45: qualified_id_name ::= :: identifier_name // case 45: { action.builder. consumeGlobalQualifiedId(); break; } // - // Rule 46: qualified_id_name ::= :: template_id_name + // Rule 46: qualified_id_name ::= :: operator_function_id_name // case 46: { action.builder. consumeGlobalQualifiedId(); break; } // - // Rule 47: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template + // Rule 47: qualified_id_name ::= :: template_id_name // case 47: { action.builder. - consumeNestedNameSpecifier(true); break; + consumeGlobalQualifiedId(); break; } // - // Rule 48: nested_name_specifier ::= class_or_namespace_name :: + // Rule 48: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template // case 48: { action.builder. - consumeNestedNameSpecifier(false); break; - } - - // - // Rule 49: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template - // - case 49: { action.builder. consumeNestedNameSpecifier(true); break; } // - // Rule 50: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: + // Rule 49: nested_name_specifier ::= class_or_namespace_name :: // - case 50: { action.builder. + case 49: { action.builder. consumeNestedNameSpecifier(false); break; } // - // Rule 51: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name + // Rule 50: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template + // + case 50: { action.builder. + consumeNestedNameSpecifier(true); break; + } + + // + // Rule 51: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: // case 51: { action.builder. + consumeNestedNameSpecifier(false); break; + } + + // + // Rule 52: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name + // + case 52: { action.builder. consumeNameWithTemplateKeyword(); break; } // - // Rule 53: nested_name_specifier_opt ::= $Empty + // Rule 54: nested_name_specifier_opt ::= $Empty // - case 53: { action.builder. + case 54: { action.builder. consumeNestedNameSpecifierEmpty(); break; } // - // Rule 56: postfix_expression ::= postfix_expression [ expression ] + // Rule 57: postfix_expression ::= postfix_expression [ expression ] // - case 56: { action.builder. + case 57: { action.builder. consumeExpressionArraySubscript(); break; } // - // Rule 57: postfix_expression ::= postfix_expression ( expression_list_opt ) + // Rule 58: postfix_expression ::= postfix_expression ( expression_list_opt ) // - case 57: { action.builder. + case 58: { action.builder. consumeExpressionFunctionCall(); break; } // - // Rule 58: postfix_expression ::= simple_type_specifier ( expression_list_opt ) + // Rule 59: postfix_expression ::= simple_type_specifier ( expression_list_opt ) // - case 58: { action.builder. + case 59: { action.builder. consumeExpressionSimpleTypeConstructor(); break; } // - // Rule 59: postfix_expression ::= typename dcolon_opt nested_name_specifier identifier_name ( expression_list_opt ) - // - case 59: { action.builder. - consumeExpressionTypeName(); break; - } - - // - // Rule 60: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) + // 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 ::= postfix_expression . qualified_or_unqualified_name + // Rule 61: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) // case 61: { action.builder. + consumeExpressionTypeName(); break; + } + + // + // Rule 62: postfix_expression ::= postfix_expression . qualified_or_unqualified_name + // + case 62: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 62: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name + // Rule 63: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name // - case 62: { action.builder. + case 63: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 63: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name + // Rule 64: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name // - case 63: { action.builder. + case 64: { action.builder. consumeExpressionFieldReference(false, true); break; } // - // Rule 64: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name + // Rule 65: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name // - case 64: { action.builder. + case 65: { action.builder. consumeExpressionFieldReference(true, true); break; } // - // Rule 65: postfix_expression ::= postfix_expression . pseudo_destructor_name + // Rule 66: postfix_expression ::= postfix_expression . pseudo_destructor_name // - case 65: { action.builder. + case 66: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 66: postfix_expression ::= postfix_expression -> pseudo_destructor_name + // Rule 67: postfix_expression ::= postfix_expression -> pseudo_destructor_name // - case 66: { action.builder. + case 67: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 67: postfix_expression ::= postfix_expression ++ + // Rule 68: postfix_expression ::= postfix_expression ++ // - case 67: { action.builder. + case 68: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; } // - // Rule 68: postfix_expression ::= postfix_expression -- + // Rule 69: postfix_expression ::= postfix_expression -- // - case 68: { action.builder. + case 69: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; } // - // Rule 69: postfix_expression ::= dynamic_cast < type_id > ( expression ) + // Rule 70: postfix_expression ::= dynamic_cast < type_id > ( expression ) // - case 69: { action.builder. + case 70: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); break; } // - // Rule 70: postfix_expression ::= static_cast < type_id > ( expression ) + // Rule 71: postfix_expression ::= static_cast < type_id > ( expression ) // - case 70: { action.builder. + case 71: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_static_cast); break; } // - // Rule 71: postfix_expression ::= reinterpret_cast < type_id > ( expression ) + // Rule 72: postfix_expression ::= reinterpret_cast < type_id > ( expression ) // - case 71: { action.builder. + case 72: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); break; } // - // Rule 72: postfix_expression ::= const_cast < type_id > ( expression ) + // Rule 73: postfix_expression ::= const_cast < type_id > ( expression ) // - case 72: { action.builder. + case 73: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_const_cast); break; } // - // Rule 73: postfix_expression ::= typeid ( expression ) + // Rule 74: postfix_expression ::= typeid ( expression ) // - case 73: { action.builder. + case 74: { action.builder. consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break; } // - // Rule 74: postfix_expression ::= typeid ( type_id ) + // Rule 75: postfix_expression ::= typeid ( type_id ) // - case 74: { action.builder. + case 75: { action.builder. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid); break; } // - // Rule 75: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name - // - case 75: { action.builder. - consumePsudoDestructorName(true); break; - } - - // - // Rule 76: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name + // 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_opt destructor_type_name + // Rule 77: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name // case 77: { action.builder. + consumePsudoDestructorName(true); break; + } + + // + // Rule 78: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name + // + case 78: { action.builder. consumePsudoDestructorName(false); break; } // - // Rule 78: destructor_type_name ::= ~ type_name + // Rule 79: destructor_type_name ::= ~ identifier_token // - case 78: { action.builder. + case 79: { action.builder. consumeDestructorName(); break; } // - // Rule 82: unary_expression ::= ++ cast_expression + // Rule 80: destructor_type_name ::= ~ template_id_name // - case 82: { action.builder. + case 80: { action.builder. + consumeDestructorNameTemplateId(); break; + } + + // + // Rule 84: unary_expression ::= ++ cast_expression + // + case 84: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; } // - // Rule 83: unary_expression ::= -- cast_expression + // Rule 85: unary_expression ::= -- cast_expression // - case 83: { action.builder. + case 85: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; } // - // Rule 84: unary_expression ::= & cast_expression + // Rule 86: unary_expression ::= & cast_expression // - case 84: { action.builder. + case 86: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; } // - // Rule 85: unary_expression ::= * cast_expression + // Rule 87: unary_expression ::= * cast_expression // - case 85: { action.builder. + case 87: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; } // - // Rule 86: unary_expression ::= + cast_expression + // Rule 88: unary_expression ::= + cast_expression // - case 86: { action.builder. + case 88: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; } // - // Rule 87: unary_expression ::= - cast_expression + // Rule 89: unary_expression ::= - cast_expression // - case 87: { action.builder. + case 89: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; } // - // Rule 88: unary_expression ::= ~ cast_expression + // Rule 90: unary_expression ::= ~ cast_expression // - case 88: { action.builder. + case 90: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; } // - // Rule 89: unary_expression ::= ! cast_expression + // Rule 91: unary_expression ::= ! cast_expression // - case 89: { action.builder. + case 91: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; } // - // Rule 90: unary_expression ::= sizeof unary_expression + // Rule 92: unary_expression ::= sizeof unary_expression // - case 90: { action.builder. + case 92: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; } // - // Rule 91: unary_expression ::= sizeof ( type_id ) + // Rule 93: unary_expression ::= sizeof ( type_id ) // - case 91: { action.builder. + case 93: { action.builder. consumeExpressionTypeId(ICPPASTTypeIdExpression.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 112: pm_expression ::= pm_expression .* cast_expression + // Rule 114: pm_expression ::= pm_expression .* cast_expression // - case 112: { action.builder. + case 114: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot); 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_pmarrow); break; } // - // Rule 115: multiplicative_expression ::= multiplicative_expression * pm_expression + // Rule 117: multiplicative_expression ::= multiplicative_expression * pm_expression // - case 115: { action.builder. + case 117: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply); 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_divide); 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_modulo); break; } // - // Rule 119: additive_expression ::= additive_expression + multiplicative_expression + // Rule 121: additive_expression ::= additive_expression + multiplicative_expression // - case 119: { action.builder. + case 121: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus); 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_minus); break; } // - // Rule 122: shift_expression ::= shift_expression << additive_expression + // Rule 124: shift_expression ::= shift_expression << additive_expression // - case 122: { action.builder. + case 124: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft); 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_shiftRight); break; } // - // Rule 125: relational_expression ::= relational_expression < shift_expression + // Rule 127: relational_expression ::= relational_expression < shift_expression // - case 125: { action.builder. + case 127: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); 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_greaterThan); 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_lessEqual); 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_greaterEqual); break; } // - // Rule 130: equality_expression ::= equality_expression == relational_expression + // Rule 132: equality_expression ::= equality_expression == relational_expression // - case 130: { action.builder. + case 132: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); 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_notequals); break; } // - // Rule 133: and_expression ::= and_expression & equality_expression + // Rule 135: and_expression ::= and_expression & equality_expression // - case 133: { action.builder. + case 135: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; } // - // Rule 135: exclusive_or_expression ::= exclusive_or_expression ^ and_expression + // Rule 137: exclusive_or_expression ::= exclusive_or_expression ^ and_expression // - case 135: { action.builder. + case 137: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; } // - // Rule 137: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression + // Rule 139: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression // - case 137: { action.builder. + case 139: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; } // - // Rule 139: logical_and_expression ::= logical_and_expression && inclusive_or_expression + // Rule 141: logical_and_expression ::= logical_and_expression && inclusive_or_expression // - case 139: { action.builder. + case 141: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; } // - // Rule 141: logical_or_expression ::= logical_or_expression || logical_and_expression + // Rule 143: logical_or_expression ::= logical_or_expression || logical_and_expression // - case 141: { action.builder. + case 143: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; } // - // Rule 143: conditional_expression ::= logical_or_expression ? expression : assignment_expression + // Rule 145: conditional_expression ::= logical_or_expression ? expression : assignment_expression // - case 143: { action.builder. + case 145: { action.builder. consumeExpressionConditional(); break; } // - // Rule 144: throw_expression ::= throw + // Rule 146: throw_expression ::= throw // - case 144: { action.builder. + case 146: { action.builder. consumeExpressionThrow(false); break; } // - // Rule 145: throw_expression ::= throw assignment_expression + // Rule 147: throw_expression ::= throw assignment_expression // - case 145: { action.builder. + case 147: { action.builder. consumeExpressionThrow(true); break; } // - // Rule 148: assignment_expression ::= logical_or_expression = assignment_expression + // Rule 150: assignment_expression ::= logical_or_expression = assignment_expression // - case 148: { action.builder. + case 150: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); 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_multiplyAssign); 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_divideAssign); 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_moduloAssign); 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_plusAssign); 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_minusAssign); 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_shiftRightAssign); 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_shiftLeftAssign); 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_binaryAndAssign); 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_binaryXorAssign); 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_binaryOrAssign); break; } // - // Rule 160: expression_list ::= expression_list_actual + // Rule 162: expression_list ::= expression_list_actual // - case 160: { action.builder. + case 162: { action.builder. consumeExpressionList(); break; } // - // Rule 164: expression_list_opt ::= $Empty - // - case 164: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 166: expression_opt ::= $Empty + // Rule 166: expression_list_opt ::= $Empty // case 166: { action.builder. consumeEmpty(); break; } // - // Rule 169: constant_expression_opt ::= $Empty + // Rule 168: expression_opt ::= $Empty // - case 169: { action.builder. + case 168: { action.builder. consumeEmpty(); break; } // - // Rule 178: statement ::= ERROR_TOKEN + // Rule 171: constant_expression_opt ::= $Empty // - case 178: { action.builder. + case 171: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 180: statement ::= ERROR_TOKEN + // + case 180: { action.builder. consumeStatementProblem(); break; } // - // Rule 179: labeled_statement ::= identifier : statement + // Rule 181: labeled_statement ::= identifier : statement // - case 179: { action.builder. + case 181: { action.builder. consumeStatementLabeled(); break; } // - // Rule 180: labeled_statement ::= case constant_expression : + // Rule 182: labeled_statement ::= case constant_expression : // - case 180: { action.builder. + case 182: { action.builder. consumeStatementCase(); break; } // - // Rule 181: labeled_statement ::= default : + // Rule 183: labeled_statement ::= default : // - case 181: { action.builder. + case 183: { action.builder. consumeStatementDefault(); break; } // - // Rule 182: expression_statement ::= expression ; + // Rule 184: expression_statement ::= expression ; // - case 182: { action.builder. + case 184: { action.builder. consumeStatementExpression(); break; } // - // Rule 183: expression_statement ::= ; + // Rule 185: expression_statement ::= ; // - case 183: { action.builder. + case 185: { action.builder. consumeStatementNull(); break; } // - // Rule 184: compound_statement ::= { statement_seq } + // Rule 186: compound_statement ::= { statement_seq } // - case 184: { action.builder. + case 186: { action.builder. consumeStatementCompoundStatement(true); break; } // - // Rule 185: compound_statement ::= { } + // Rule 187: compound_statement ::= { } // - case 185: { action.builder. + case 187: { action.builder. consumeStatementCompoundStatement(false); break; } // - // Rule 188: selection_statement ::= if ( condition ) statement + // Rule 190: selection_statement ::= if ( condition ) statement // - case 188: { action.builder. + case 190: { action.builder. consumeStatementIf(false); break; } // - // Rule 189: selection_statement ::= if ( condition ) statement else statement + // Rule 191: selection_statement ::= if ( condition ) statement else statement // - case 189: { action.builder. + case 191: { action.builder. consumeStatementIf(true); break; } // - // Rule 190: selection_statement ::= switch ( condition ) statement + // Rule 192: selection_statement ::= switch ( condition ) statement // - case 190: { action.builder. + case 192: { action.builder. consumeStatementSwitch(); break; } // - // Rule 192: condition ::= type_specifier_seq declarator = assignment_expression + // Rule 194: condition ::= type_specifier_seq declarator = assignment_expression // - case 192: { action.builder. + case 194: { action.builder. consumeConditionDeclaration(); break; } // - // Rule 193: iteration_statement ::= while ( condition ) statement + // Rule 195: iteration_statement ::= while ( condition ) statement // - case 193: { action.builder. + case 195: { action.builder. consumeStatementWhileLoop(); break; } // - // Rule 194: iteration_statement ::= do statement while ( expression ) ; + // Rule 196: iteration_statement ::= do statement while ( expression ) ; // - case 194: { action.builder. + case 196: { action.builder. consumeStatementDoLoop(); break; } // - // Rule 195: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement - // - case 195: { action.builder. - consumeStatementForLoop(); break; - } - - // - // Rule 196: iteration_statement ::= for ( simple_declaration_with_declspec expression_opt ; expression_opt ) statement - // - case 196: { action.builder. - consumeStatementForLoop(); break; - } - - // - // Rule 197: jump_statement ::= break ; + // Rule 197: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement // case 197: { action.builder. + consumeStatementForLoop(); break; + } + + // + // Rule 198: iteration_statement ::= for ( simple_declaration_with_declspec expression_opt ; expression_opt ) statement + // + case 198: { action.builder. + consumeStatementForLoop(); break; + } + + // + // Rule 199: jump_statement ::= break ; + // + case 199: { action.builder. consumeStatementBreak(); break; } // - // Rule 198: jump_statement ::= continue ; + // Rule 200: jump_statement ::= continue ; // - case 198: { action.builder. + case 200: { action.builder. consumeStatementContinue(); break; } // - // Rule 199: jump_statement ::= return expression ; + // Rule 201: jump_statement ::= return expression ; // - case 199: { action.builder. + case 201: { action.builder. consumeStatementReturn(true); break; } // - // Rule 200: jump_statement ::= return ; + // Rule 202: jump_statement ::= return ; // - case 200: { action.builder. + case 202: { action.builder. consumeStatementReturn(false); break; } // - // Rule 201: jump_statement ::= goto identifier_token ; + // Rule 203: jump_statement ::= goto identifier_token ; // - case 201: { action.builder. + case 203: { action.builder. consumeStatementGoto(); break; } // - // Rule 202: declaration_statement ::= block_declaration + // Rule 204: declaration_statement ::= block_declaration // - case 202: { action.builder. + case 204: { action.builder. consumeStatementDeclaration(); break; } // - // Rule 203: declaration_statement ::= function_definition + // Rule 205: declaration_statement ::= function_definition // - case 203: { action.builder. + case 205: { action.builder. consumeStatementDeclaration(); break; } // - // Rule 220: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; + // Rule 222: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; // - case 220: { action.builder. + case 222: { action.builder. consumeDeclarationSimple(true, true); break; } // - // Rule 221: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; + // Rule 223: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; // - case 221: { action.builder. + case 223: { action.builder. consumeDeclarationSimple(true, false); break; } // - // Rule 222: declaration_specifiers ::= simple_declaration_specifiers + // Rule 224: declaration_specifiers ::= simple_declaration_specifiers // - case 222: { action.builder. + case 224: { action.builder. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 223: declaration_specifiers ::= class_declaration_specifiers - // - case 223: { action.builder. - consumeDeclarationSpecifiersComposite(); break; - } - - // - // Rule 224: declaration_specifiers ::= elaborated_declaration_specifiers - // - case 224: { action.builder. - consumeDeclarationSpecifiersComposite(); break; - } - - // - // Rule 225: declaration_specifiers ::= enum_declaration_specifiers + // Rule 225: declaration_specifiers ::= class_declaration_specifiers // case 225: { action.builder. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 226: declaration_specifiers ::= type_name_declaration_specifiers + // Rule 226: declaration_specifiers ::= elaborated_declaration_specifiers // case 226: { action.builder. + consumeDeclarationSpecifiersComposite(); break; + } + + // + // Rule 227: declaration_specifiers ::= enum_declaration_specifiers + // + case 227: { action.builder. + consumeDeclarationSpecifiersComposite(); break; + } + + // + // Rule 228: declaration_specifiers ::= type_name_declaration_specifiers + // + case 228: { action.builder. consumeDeclarationSpecifiersTypeName(); break; } // - // Rule 227: declaration_specifiers_opt ::= $Empty + // Rule 229: declaration_specifiers_opt ::= $Empty // - case 227: { action.builder. + case 229: { action.builder. consumeEmpty(); break; } // - // Rule 232: no_type_declaration_specifier ::= friend + // Rule 234: no_type_declaration_specifier ::= friend // - case 232: { action.builder. + case 234: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 233: no_type_declaration_specifier ::= typedef + // Rule 235: no_type_declaration_specifier ::= typedef // - case 233: { action.builder. + case 235: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 261: simple_type_specifier ::= simple_type_specifier_token + // Rule 255: storage_class_specifier ::= auto + // + case 255: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 256: storage_class_specifier ::= register + // + case 256: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 257: storage_class_specifier ::= static + // + case 257: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 258: storage_class_specifier ::= extern + // + case 258: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 259: storage_class_specifier ::= mutable + // + case 259: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 260: function_specifier ::= inline + // + case 260: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 261: function_specifier ::= virtual // case 261: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 275: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name + // Rule 262: function_specifier ::= explicit // - case 275: { action.builder. - consumeQualifiedId(false); break; + case 262: { action.builder. + consumeDeclSpecToken(); break; } // - // Rule 276: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name + // Rule 263: simple_type_specifier ::= char + // + case 263: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 264: simple_type_specifier ::= wchar_t + // + case 264: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 265: simple_type_specifier ::= bool + // + case 265: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 266: simple_type_specifier ::= short + // + case 266: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 267: simple_type_specifier ::= int + // + case 267: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 268: simple_type_specifier ::= long + // + case 268: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 269: simple_type_specifier ::= signed + // + case 269: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 270: simple_type_specifier ::= unsigned + // + case 270: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 271: simple_type_specifier ::= float + // + case 271: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 272: simple_type_specifier ::= double + // + case 272: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 273: simple_type_specifier ::= void + // + case 273: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 276: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name // case 276: { action.builder. consumeQualifiedId(false); break; } // - // Rule 277: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name + // Rule 277: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name // case 277: { action.builder. consumeQualifiedId(false); break; } // - // Rule 278: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name + // Rule 278: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name // case 278: { action.builder. + consumeQualifiedId(false); break; + } + + // + // Rule 279: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name + // + case 279: { action.builder. consumeQualifiedId(true); break; } // - // Rule 279: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name + // Rule 280: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name // - case 279: { action.builder. + case 280: { action.builder. consumeTypeSpecifierElaborated(false); break; } // - // Rule 280: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name + // Rule 281: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name // - case 280: { action.builder. + case 281: { action.builder. consumeTypeSpecifierElaborated(true); break; } // - // Rule 281: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name + // Rule 282: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name // - case 281: { action.builder. + case 282: { action.builder. consumeTypeSpecifierElaborated(false); break; } // - // Rule 282: enum_specifier ::= enum { enumerator_list_opt } + // Rule 283: enum_specifier ::= enum { enumerator_list_opt } // - case 282: { action.builder. + case 283: { action.builder. consumeTypeSpecifierEnumeration(false); break; } // - // Rule 283: enum_specifier ::= enum identifier_token { enumerator_list_opt } + // Rule 284: enum_specifier ::= enum identifier_token { enumerator_list_opt } // - case 283: { action.builder. + case 284: { action.builder. consumeTypeSpecifierEnumeration(true); break; } // - // Rule 288: enumerator_definition ::= identifier_token + // Rule 289: enumerator_definition ::= identifier_token // - case 288: { action.builder. + case 289: { action.builder. consumeEnumerator(false); break; } // - // Rule 289: enumerator_definition ::= identifier_token = constant_expression + // Rule 290: enumerator_definition ::= identifier_token = constant_expression // - case 289: { action.builder. + case 290: { action.builder. consumeEnumerator(true); break; } // - // Rule 295: original_namespace_definition ::= namespace identifier_name { declaration_seq_opt } - // - case 295: { action.builder. - consumeNamespaceDefinition(true); break; - } - - // - // Rule 296: extension_namespace_definition ::= namespace original_namespace_name { declaration_seq_opt } + // Rule 296: original_namespace_definition ::= namespace identifier_name { declaration_seq_opt } // case 296: { action.builder. consumeNamespaceDefinition(true); break; } // - // Rule 297: unnamed_namespace_definition ::= namespace { declaration_seq_opt } + // Rule 297: extension_namespace_definition ::= namespace original_namespace_name { declaration_seq_opt } // case 297: { action.builder. + consumeNamespaceDefinition(true); break; + } + + // + // Rule 298: unnamed_namespace_definition ::= namespace { declaration_seq_opt } + // + case 298: { action.builder. consumeNamespaceDefinition(false); break; } // - // Rule 298: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 299: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; // - case 298: { action.builder. + case 299: { action.builder. consumeNamespaceAliasDefinition(); break; } // - // Rule 299: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; + // Rule 300: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; // - case 299: { action.builder. + case 300: { action.builder. consumeUsingDeclaration(); break; } // - // Rule 300: typename_opt ::= typename + // Rule 301: typename_opt ::= typename // - case 300: { action.builder. + case 301: { action.builder. consumePlaceHolder(); break; } // - // Rule 301: typename_opt ::= $Empty + // Rule 302: typename_opt ::= $Empty // - case 301: { action.builder. + case 302: { action.builder. consumeEmpty(); break; } // - // Rule 302: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 303: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; // - case 302: { action.builder. + case 303: { action.builder. consumeUsingDirective(); break; } // - // Rule 303: asm_definition ::= asm ( stringlit ) ; + // Rule 304: asm_definition ::= asm ( stringlit ) ; // - case 303: { action.builder. + case 304: { action.builder. consumeDeclarationASM(); break; } // - // Rule 304: linkage_specification ::= extern stringlit { declaration_seq_opt } - // - case 304: { action.builder. - consumeLinkageSpecification(); break; - } - - // - // Rule 305: linkage_specification ::= extern stringlit declaration + // Rule 305: linkage_specification ::= extern stringlit { declaration_seq_opt } // case 305: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 310: init_declarator_complete ::= init_declarator + // Rule 306: linkage_specification ::= extern stringlit declaration // - case 310: { action.builder. + case 306: { action.builder. + consumeLinkageSpecification(); break; + } + + // + // Rule 311: init_declarator_complete ::= init_declarator + // + case 311: { action.builder. consumeInitDeclaratorComplete(); break; } // - // Rule 312: init_declarator ::= declarator initializer + // Rule 313: init_declarator ::= declarator initializer // - case 312: { action.builder. + case 313: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 314: declarator ::= ptr_operator_seq direct_declarator + // Rule 315: declarator ::= ptr_operator_seq direct_declarator // - case 314: { action.builder. + case 315: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 316: function_declarator ::= ptr_operator_seq direct_declarator + // Rule 317: function_declarator ::= ptr_operator_seq direct_declarator // - case 316: { action.builder. + case 317: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 320: basic_direct_declarator ::= declarator_id_name + // Rule 321: basic_direct_declarator ::= declarator_id_name // - case 320: { action.builder. + case 321: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 321: basic_direct_declarator ::= ( declarator ) + // Rule 322: basic_direct_declarator ::= ( declarator ) // - case 321: { action.builder. + case 322: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 322: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 323: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 322: { action.builder. + case 323: { action.builder. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 323: array_direct_declarator ::= array_direct_declarator array_modifier - // - case 323: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 324: array_direct_declarator ::= basic_direct_declarator array_modifier + // Rule 324: array_direct_declarator ::= array_direct_declarator array_modifier // case 324: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 325: array_modifier ::= [ constant_expression ] + // 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 326: array_modifier ::= [ ] + // Rule 327: array_modifier ::= [ ] // - case 326: { action.builder. + case 327: { action.builder. consumeDirectDeclaratorArrayModifier(false); break; } // - // Rule 327: ptr_operator ::= * cv_qualifier_seq_opt + // Rule 328: ptr_operator ::= * cv_qualifier_seq_opt // - case 327: { action.builder. + case 328: { action.builder. consumePointer(); break; } // - // Rule 328: ptr_operator ::= & + // Rule 329: ptr_operator ::= & // - case 328: { action.builder. + case 329: { action.builder. consumeReferenceOperator(); break; } // - // Rule 329: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt + // Rule 330: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt // - case 329: { action.builder. + case 330: { action.builder. consumePointerToMember(); break; } // - // Rule 335: cv_qualifier ::= const - // - case 335: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 336: cv_qualifier ::= volatile + // Rule 336: cv_qualifier ::= const // case 336: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 338: declarator_id_name ::= nested_name_specifier template_opt unqualified_id_name + // Rule 337: cv_qualifier ::= volatile // - case 338: { action.builder. + 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 339: type_id ::= type_specifier_seq + // Rule 340: type_id ::= type_specifier_seq // - case 339: { action.builder. + case 340: { action.builder. consumeTypeId(false); break; } // - // Rule 340: type_id ::= type_specifier_seq abstract_declarator + // Rule 341: type_id ::= type_specifier_seq abstract_declarator // - case 340: { action.builder. + case 341: { action.builder. consumeTypeId(true); break; } // - // Rule 343: abstract_declarator ::= ptr_operator_seq + // Rule 344: abstract_declarator ::= ptr_operator_seq // - case 343: { action.builder. + case 344: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 344: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator + // Rule 345: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator // - case 344: { action.builder. + case 345: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 348: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 349: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - case 348: { action.builder. + case 349: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 349: array_direct_abstract_declarator ::= array_modifier + // Rule 350: array_direct_abstract_declarator ::= array_modifier // - case 349: { action.builder. + case 350: { action.builder. consumeDirectDeclaratorArrayDeclarator(false); break; } // - // Rule 350: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier - // - case 350: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 351: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier + // Rule 351: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier // case 351: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 352: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 352: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier // case 352: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 353: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // + case 353: { action.builder. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 353: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 354: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 353: { action.builder. + case 354: { action.builder. consumeDirectDeclaratorFunctionDeclarator(false); break; } // - // Rule 354: parameter_declaration_clause ::= parameter_declaration_list_opt ... - // - case 354: { action.builder. - consumePlaceHolder(); break; - } - - // - // Rule 355: parameter_declaration_clause ::= parameter_declaration_list_opt + // Rule 355: parameter_declaration_clause ::= parameter_declaration_list_opt ... // case 355: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 356: parameter_declaration_clause ::= parameter_declaration_list , ... - // - case 356: { action.builder. consumePlaceHolder(); break; } // - // Rule 362: abstract_declarator_opt ::= $Empty + // Rule 356: parameter_declaration_clause ::= parameter_declaration_list_opt // - case 362: { action.builder. + case 356: { action.builder. consumeEmpty(); break; } // - // Rule 363: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // Rule 357: parameter_declaration_clause ::= parameter_declaration_list , ... + // + case 357: { action.builder. + consumePlaceHolder(); break; + } + + // + // Rule 363: abstract_declarator_opt ::= $Empty // case 363: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 364: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // + case 364: { action.builder. consumeParameterDeclaration(); break; } // - // Rule 364: parameter_declaration ::= declaration_specifiers + // Rule 365: parameter_declaration ::= declaration_specifiers // - case 364: { action.builder. + case 365: { action.builder. consumeParameterDeclarationWithoutDeclarator(); break; } // - // Rule 366: parameter_init_declarator ::= declarator = parameter_initializer + // Rule 367: parameter_init_declarator ::= declarator = parameter_initializer // - case 366: { action.builder. + case 367: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 368: parameter_init_declarator ::= abstract_declarator = parameter_initializer - // - case 368: { action.builder. - consumeDeclaratorWithInitializer(true); break; - } - - // - // Rule 369: parameter_init_declarator ::= = parameter_initializer + // Rule 369: parameter_init_declarator ::= abstract_declarator = parameter_initializer // case 369: { action.builder. + consumeDeclaratorWithInitializer(true); break; + } + + // + // Rule 370: parameter_init_declarator ::= = parameter_initializer + // + case 370: { action.builder. consumeDeclaratorWithInitializer(false); break; } // - // Rule 370: parameter_initializer ::= assignment_expression + // Rule 371: parameter_initializer ::= assignment_expression // - case 370: { action.builder. + case 371: { action.builder. consumeInitializer(); break; } // - // Rule 371: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body + // Rule 372: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body // - case 371: { action.builder. + case 372: { action.builder. consumeFunctionDefinition(false); break; } // - // Rule 372: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq + // Rule 373: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq // - case 372: { action.builder. + case 373: { action.builder. consumeFunctionDefinition(true); break; } // - // Rule 375: initializer ::= ( expression_list ) + // Rule 376: initializer ::= ( expression_list ) // - case 375: { action.builder. + case 376: { action.builder. consumeInitializerConstructor(); break; } // - // Rule 376: initializer_clause ::= assignment_expression + // Rule 377: initializer_clause ::= assignment_expression // - case 376: { action.builder. + case 377: { action.builder. consumeInitializer(); break; } // - // Rule 377: initializer_clause ::= { initializer_list , } - // - case 377: { action.builder. - consumeInitializerList(); break; - } - - // - // Rule 378: initializer_clause ::= { initializer_list } + // Rule 378: initializer_clause ::= { initializer_list , } // case 378: { action.builder. consumeInitializerList(); break; } // - // Rule 379: initializer_clause ::= { } + // Rule 379: initializer_clause ::= { initializer_list } // case 379: { action.builder. consumeInitializerList(); break; } // - // Rule 384: class_specifier ::= class_head { member_declaration_list_opt } + // Rule 380: initializer_clause ::= { } // - case 384: { action.builder. + case 380: { action.builder. + consumeInitializerList(); break; + } + + // + // Rule 385: class_specifier ::= class_head { member_declaration_list_opt } + // + case 385: { action.builder. consumeClassSpecifier(); break; } // - // Rule 385: class_head ::= class_keyword identifier_name_opt base_clause_opt - // - case 385: { action.builder. - consumeClassHead(false); break; - } - - // - // Rule 386: class_head ::= class_keyword template_id_name base_clause_opt + // Rule 386: class_head ::= class_keyword identifier_name_opt base_clause_opt // case 386: { action.builder. consumeClassHead(false); break; } // - // Rule 387: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt + // Rule 387: class_head ::= class_keyword template_id_name base_clause_opt // case 387: { action.builder. - consumeClassHead(true); break; + consumeClassHead(false); break; } // - // Rule 388: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt + // Rule 388: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt // case 388: { action.builder. consumeClassHead(true); break; } // - // Rule 390: identifier_name_opt ::= $Empty + // Rule 389: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt // - case 390: { action.builder. + case 389: { action.builder. + consumeClassHead(true); break; + } + + // + // Rule 391: identifier_name_opt ::= $Empty + // + case 391: { action.builder. consumeEmpty(); break; } // - // Rule 394: visibility_label ::= access_specifier_keyword : + // Rule 395: visibility_label ::= access_specifier_keyword : // - case 394: { action.builder. + case 395: { action.builder. consumeVisibilityLabel(); break; } // - // Rule 395: member_declaration ::= declaration_specifiers_opt member_declarator_list ; + // Rule 396: member_declaration ::= declaration_specifiers_opt member_declarator_list ; // - case 395: { action.builder. + case 396: { action.builder. consumeDeclarationSimple(true, true); break; } // - // Rule 396: member_declaration ::= declaration_specifiers_opt ; + // Rule 397: member_declaration ::= declaration_specifiers_opt ; // - case 396: { action.builder. + case 397: { action.builder. consumeDeclarationSimple(false, false); break; } // - // Rule 399: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; + // Rule 400: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; // - case 399: { action.builder. + case 400: { action.builder. consumeMemberDeclarationQualifiedId(); break; } // - // Rule 403: member_declaration ::= ERROR_TOKEN + // Rule 404: member_declaration ::= ERROR_TOKEN // - case 403: { action.builder. + case 404: { action.builder. consumeDeclarationProblem(); break; } // - // Rule 411: member_declarator ::= declarator constant_initializer + // Rule 412: member_declarator ::= declarator constant_initializer // - case 411: { action.builder. + case 412: { action.builder. consumeMemberDeclaratorWithInitializer(); break; } // - // Rule 412: member_declarator ::= bit_field_declarator : constant_expression + // Rule 413: member_declarator ::= bit_field_declarator : constant_expression // - case 412: { action.builder. + case 413: { action.builder. consumeBitField(true); break; } // - // Rule 413: member_declarator ::= : constant_expression + // Rule 414: member_declarator ::= : constant_expression // - case 413: { action.builder. + case 414: { action.builder. consumeBitField(false); break; } // - // Rule 414: bit_field_declarator ::= identifier_name + // Rule 415: bit_field_declarator ::= identifier_name // - case 414: { action.builder. + case 415: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 415: constant_initializer ::= = constant_expression + // Rule 416: constant_initializer ::= = constant_expression // - case 415: { action.builder. + case 416: { action.builder. consumeInitializer(); break; } // - // Rule 421: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 422: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 421: { action.builder. + case 422: { action.builder. consumeBaseSpecifier(false, false); break; } // - // Rule 422: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name - // - case 422: { action.builder. - consumeBaseSpecifier(true, true); break; - } - - // - // Rule 423: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name + // Rule 423: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name // case 423: { action.builder. consumeBaseSpecifier(true, true); break; } // - // Rule 424: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name + // Rule 424: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name // case 424: { action.builder. + consumeBaseSpecifier(true, true); break; + } + + // + // Rule 425: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name + // + case 425: { action.builder. consumeBaseSpecifier(true, false); break; } // - // Rule 425: access_specifier_keyword ::= private - // - case 425: { action.builder. - consumeAccessKeywordToken(); break; - } - - // - // Rule 426: access_specifier_keyword ::= protected + // Rule 426: access_specifier_keyword ::= private // case 426: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 427: access_specifier_keyword ::= public + // Rule 427: access_specifier_keyword ::= protected // case 427: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 429: access_specifier_keyword_opt ::= $Empty + // Rule 428: access_specifier_keyword ::= public // - case 429: { action.builder. + case 428: { action.builder. + consumeAccessKeywordToken(); break; + } + + // + // Rule 430: access_specifier_keyword_opt ::= $Empty + // + case 430: { action.builder. consumeEmpty(); break; } // - // Rule 430: conversion_function_id_name ::= operator conversion_type_id + // Rule 431: conversion_function_id_name ::= operator conversion_type_id // - case 430: { action.builder. + case 431: { action.builder. consumeConversionName(); break; } // - // Rule 431: conversion_type_id ::= type_specifier_seq conversion_declarator + // Rule 432: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 431: { action.builder. + case 432: { action.builder. consumeTypeId(true); break; } // - // Rule 432: conversion_type_id ::= type_specifier_seq + // Rule 433: conversion_type_id ::= type_specifier_seq // - case 432: { action.builder. + case 433: { action.builder. consumeTypeId(false); break; } // - // Rule 433: conversion_declarator ::= ptr_operator_seq + // Rule 434: conversion_declarator ::= ptr_operator_seq // - case 433: { action.builder. + case 434: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 439: mem_initializer ::= mem_initializer_name ( expression_list_opt ) + // Rule 440: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 439: { action.builder. + case 440: { action.builder. consumeConstructorChainInitializer(); break; } // - // Rule 440: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 441: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name // - case 440: { action.builder. + case 441: { action.builder. consumeQualifiedId(false); break; } // - // Rule 443: operator_function_id_name ::= operator_id_name < template_argument_list_opt > + // Rule 444: operator_function_id_name ::= operator_id_name < template_argument_list_opt > // - case 443: { action.builder. + case 444: { action.builder. consumeTemplateId(); break; } // - // Rule 444: operator_id_name ::= operator overloadable_operator + // Rule 445: operator_id_name ::= operator overloadable_operator // - case 444: { action.builder. + case 445: { action.builder. consumeOperatorName(); break; } // - // Rule 487: template_declaration ::= export_opt template < template_parameter_list > declaration + // Rule 488: template_declaration ::= export_opt template < template_parameter_list > declaration // - case 487: { action.builder. + case 488: { action.builder. consumeTemplateDeclaration(); break; } // - // Rule 488: export_opt ::= export + // Rule 489: export_opt ::= export // - case 488: { action.builder. + case 489: { action.builder. consumePlaceHolder(); break; } // - // Rule 489: export_opt ::= $Empty + // Rule 490: export_opt ::= $Empty // - case 489: { action.builder. + case 490: { action.builder. consumeEmpty(); break; } // - // Rule 493: template_parameter ::= parameter_declaration + // Rule 494: template_parameter ::= parameter_declaration // - case 493: { action.builder. + case 494: { action.builder. consumeTemplateParamterDeclaration(); break; } // - // Rule 494: type_parameter ::= class identifier_name_opt - // - case 494: { action.builder. - consumeSimpleTypeTemplateParameter(false); break; - } - - // - // Rule 495: type_parameter ::= class identifier_name_opt = type_id + // Rule 495: type_parameter ::= class identifier_name_opt // case 495: { action.builder. - consumeSimpleTypeTemplateParameter(true); break; - } - - // - // Rule 496: type_parameter ::= typename identifier_name_opt - // - case 496: { action.builder. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 497: type_parameter ::= typename identifier_name_opt = type_id + // Rule 496: type_parameter ::= class identifier_name_opt = type_id // - case 497: { action.builder. + case 496: { action.builder. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 498: type_parameter ::= template < template_parameter_list > class identifier_name_opt + // Rule 497: type_parameter ::= typename identifier_name_opt + // + case 497: { action.builder. + consumeSimpleTypeTemplateParameter(false); break; + } + + // + // Rule 498: type_parameter ::= typename identifier_name_opt = type_id // case 498: { action.builder. + consumeSimpleTypeTemplateParameter(true); break; + } + + // + // Rule 499: type_parameter ::= template < template_parameter_list > class identifier_name_opt + // + case 499: { action.builder. consumeTemplatedTypeTemplateParameter(false); break; } // - // Rule 499: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression + // Rule 500: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression // - case 499: { action.builder. + case 500: { action.builder. consumeTemplatedTypeTemplateParameter(true); break; } // - // Rule 500: template_id_name ::= identifier_name < template_argument_list_opt > + // Rule 501: template_id_name ::= identifier_name < template_argument_list_opt > // - case 500: { action.builder. + case 501: { action.builder. consumeTemplateId(); break; } // - // Rule 508: explicit_instantiation ::= template declaration + // Rule 509: explicit_instantiation ::= template declaration // - case 508: { action.builder. + case 509: { action.builder. consumeTemplateExplicitInstantiation(); break; } // - // Rule 509: explicit_specialization ::= template < > declaration + // Rule 510: explicit_specialization ::= template < > declaration // - case 509: { action.builder. + case 510: { action.builder. consumeTemplateExplicitSpecialization(); break; } // - // Rule 510: try_block ::= try compound_statement handler_seq + // Rule 511: try_block ::= try compound_statement handler_seq // - case 510: { action.builder. + case 511: { action.builder. consumeStatementTryBlock(); break; } // - // Rule 513: handler ::= catch ( exception_declaration ) compound_statement + // Rule 514: handler ::= catch ( exception_declaration ) compound_statement // - case 513: { action.builder. + case 514: { action.builder. consumeStatementCatchHandler(false); break; } // - // Rule 514: handler ::= catch ( ... ) compound_statement + // Rule 515: handler ::= catch ( ... ) compound_statement // - case 514: { action.builder. + case 515: { action.builder. consumeStatementCatchHandler(true); break; } // - // Rule 515: exception_declaration ::= type_specifier_seq declarator - // - case 515: { action.builder. - consumeDeclarationSimple(true, false); break; - } - - // - // Rule 516: exception_declaration ::= type_specifier_seq abstract_declarator + // Rule 516: exception_declaration ::= type_specifier_seq declarator // case 516: { action.builder. consumeDeclarationSimple(true, false); break; } // - // Rule 517: exception_declaration ::= type_specifier_seq + // Rule 517: exception_declaration ::= type_specifier_seq abstract_declarator // case 517: { action.builder. + consumeDeclarationSimple(true, false); break; + } + + // + // Rule 518: exception_declaration ::= type_specifier_seq + // + case 518: { action.builder. consumeDeclarationSimple(false, false); break; } // - // Rule 525: no_cast_start ::= ERROR_TOKEN + // Rule 526: no_cast_start ::= ERROR_TOKEN // - case 525: { action.builder. + case 526: { action.builder. consumeExpressionProblem(); break; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParserprs.java index 094042481a3..dd760cd6d0f 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 @@ -40,468 +40,458 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 0,0,1,1,1,1,1,1,1,1, 1,0,1,2,1,1,1,1,1,1, 1,1,1,1,1,1,1,3,1,1, - 1,1,1,1,1,1,2,1,1,0, - 1,0,4,2,2,2,3,2,3,2, - 2,1,0,1,1,4,4,4,8,8, - 3,3,4,4,3,3,2,2,7,7, - 7,7,4,4,5,6,3,2,1,1, - 1,2,2,2,2,2,2,2,2,2, - 4,7,9,3,0,1,2,2,1,2, - 3,4,1,0,3,1,0,3,5,1, - 1,3,3,1,3,3,3,1,3,3, - 1,3,3,1,3,3,3,3,1,3, - 3,1,3,1,3,1,3,1,3,1, - 3,1,5,1,2,1,1,3,3,3, - 3,3,3,3,3,3,3,3,1,2, - 1,3,1,0,1,0,1,1,0,1, - 1,1,1,1,1,1,1,1,3,3, - 2,2,1,4,2,1,2,5,7,5, - 1,4,5,7,9,8,2,2,3,2, - 3,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,2,1,0,4, - 4,2,2,2,2,2,0,1,1,1, - 1,1,1,1,2,1,2,2,2,1, - 1,2,2,1,2,2,1,2,2,1, - 2,2,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,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,5,7,9,8,2,2, + 3,2,3,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,2,1, + 0,4,4,2,2,2,2,2,0,1, + 1,1,1,1,1,1,2,1,2,2, + 2,1,1,2,2,1,2,2,1,2, + 2,1,2,2,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,3,4,4,5,4,5, - 4,5,6,1,3,1,0,1,3,1, - 1,1,1,1,6,6,5,7,6,1, - 0,6,5,6,4,1,3,1,0,1, - 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,1,2, - 2,9,8,2,1,3,1,3,1,0, - 1,0,2,1,1,3,1,3,2,1, - 5,8,1,2,3,1,5,4,3,1, - 3,1,1,5,4,4,5,5,1,0, - 1,1,1,2,4,2,2,1,5,1, - 1,1,1,1,2,1,0,1,3,1, - 2,3,2,1,2,2,1,0,1,3, - 3,5,5,4,1,1,1,1,0,2, - 2,1,2,2,1,0,1,3,4,3, - 1,1,5,2,1,1,3,3,1,1, + 1,1,1,1,1,3,4,4,5,4, + 5,4,5,6,1,3,1,0,1,3, + 1,1,1,1,1,6,6,5,7,6, + 1,0,6,5,6,4,1,3,1,0, + 1,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,1, + 2,2,9,8,2,1,3,1,3,1, + 0,1,0,2,1,1,3,1,3,2, + 1,5,8,1,2,3,1,5,4,3, + 1,3,1,1,5,4,4,5,5,1, + 0,1,1,1,2,4,2,2,1,5, + 1,1,1,1,1,2,1,0,1,3, + 1,2,3,2,1,2,2,1,0,1, + 3,3,5,5,4,1,1,1,1,0, + 2,2,1,2,2,1,0,1,3,4, + 3,1,1,5,2,1,1,3,3,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,2,2,7,1,0,1, - 3,1,1,2,4,2,4,7,9,5, - 1,3,1,0,1,1,1,2,4,4, - 1,2,5,5,3,3,1,4,3,1, - 0,1,3,1,1,-106,0,0,0,-2, - 0,0,0,0,0,0,0,0,0,0, + 1,1,1,1,1,2,2,7,1,0, + 1,3,1,1,2,4,2,4,7,9, + 5,1,3,1,0,1,1,1,2,4, + 4,1,2,5,5,3,3,1,4,3, + 1,0,1,3,1,1,-106,0,0,0, + -337,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,-10,0, - 0,0,0,0,0,0,0,0,0,-48, - 0,0,0,0,-56,0,0,-67,0,0, - 0,-4,0,0,0,0,0,0,0,-334, - -5,-88,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-2,0, + 0,0,0,-61,-418,0,0,-323,0,0, + 0,-52,0,0,0,0,0,-136,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,-124,0,0,0,0,0, - 0,0,-6,0,0,0,-190,0,0,0, - -18,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-4,0, + 0,0,0,0,0,0,-121,0,0,0, + 0,0,0,0,0,-452,0,0,0,0, + -175,0,0,0,-174,0,0,0,-232,0, + 0,0,0,0,0,0,-310,0,-67,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-133,0,-68,0, - 0,0,0,0,0,0,0,0,0,0, - -172,0,0,0,-61,0,-7,0,0,0, + 0,0,0,0,-236,0,-306,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,0,0, - 0,0,0,0,-221,0,0,-8,0,0, - 0,0,-116,0,0,0,-511,0,0,0, - 0,0,0,0,0,0,0,0,-51,0, - 0,0,0,-128,0,0,0,0,0,0, + -51,0,0,0,0,-5,0,-275,0,0, + -49,0,0,0,0,-68,0,0,0,0, + 0,0,0,0,0,0,0,-183,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,-124, + 0,0,0,0,0,0,0,0,0,0, + -126,0,0,-15,0,0,0,0,0,0, + 0,0,-228,0,0,-56,-514,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-111,-221,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-9,0,0, - 0,-49,0,0,0,0,-118,-55,0,0, - 0,0,0,-181,0,0,0,-11,-135,0, + 0,-127,0,0,0,0,-330,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-202,-219,0, + 0,-132,0,0,0,0,-6,0,0,0, + 0,0,0,-512,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-168,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-7,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,-522, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-179,-163,0,0, - 0,-138,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-509,0, + 0,0,0,0,0,0,-133,0,0,0, + 0,-205,0,-131,0,0,-8,0,0,0, + -135,0,0,0,-9,0,0,0,0,0, + 0,0,-114,-58,-233,0,0,0,0,0, + 0,-11,0,-3,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-335,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-229,0,0,0, - -19,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-291,0,0, + -48,0,0,0,0,0,-138,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-255,-519,0,0,0,0,0, + -283,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-299,0,0, + 0,0,0,0,-12,0,0,0,0,0, + 0,-317,0,0,0,-14,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-12,0,0,-211,0,0,-177,0, - 0,0,-260,0,0,0,-132,0,0,0, - -410,0,0,0,0,0,-15,0,0,0, - -14,-235,0,0,0,0,0,0,0,-3, 0,0,0,-27,0,0,0,0,0,0, + 0,0,0,-179,0,-198,0,0,0,0, + 0,0,0,-318,0,0,0,-259,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-28,0,0,0,0, + -60,0,0,0,0,-305,0,-103,0,0, + 0,-363,0,0,0,0,0,-473,0,0, + 0,-29,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-340,0,0,0,0,0, + 0,-30,0,0,-16,0,0,0,0,-38, + 0,0,0,-31,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-32,0,0,0, + 0,0,0,-354,0,0,-33,0,0,0, + -40,0,0,0,-402,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-163,0,0,0,0,-237,0,0, + 0,0,0,0,0,0,0,0,-262,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,-343,0,0,0,0, + 0,0,0,0,0,-371,0,-34,0,0, + 0,-380,0,0,-91,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-214,0,0,0, + 0,-447,0,0,0,0,0,0,-55,0, + 0,-129,0,0,0,-92,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-276,0,0,0,-273,0,0, - 0,-323,0,0,0,0,0,0,0,0, - 0,-257,0,-126,0,0,-280,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-234, - 0,0,0,0,-28,0,0,0,0,0, - 0,0,0,0,-121,0,0,0,-29,0, - -314,0,0,0,-52,0,0,0,0,0, + 0,0,-341,0,0,0,0,0,0,0, + 0,0,-140,0,0,0,-93,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-30,0,0,0,0,0, - 0,0,-315,0,0,0,-429,0,0,0, + 0,0,0,-208,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-94,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-340,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -399,0,0,0,-31,-467,-470,0,0,0, - -327,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,0, - -196,0,0,0,0,0,0,0,-38,0, - 0,0,-32,0,0,0,0,0,0,0, + 0,0,0,0,-279,-164,0,0,-95,0, + 0,0,-297,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-314,0,0,0,0, + -315,0,-181,0,0,-345,0,0,0,-96, + 0,0,0,-35,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-430,0,-182,0,0,0,0,0,0, + -97,0,0,0,-320,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-184,0,0,-36,0,0, + 0,-98,0,0,0,-37,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-458,0,-186,0,0,0,0, + 0,0,-99,0,0,0,-39,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-278,0,0,0,0,0, + 0,0,0,0,-503,0,-189,0,0,-53, + 0,0,0,-100,0,0,0,-54,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-57,0,0,0,0, + -62,0,0,0,0,-63,0,0,0,0, + -413,0,0,0,-161,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,-223,0,0,0,0,-66,0,-70,0, + 0,-107,0,-206,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, + -504,0,0,0,0,0,0,-109,0,0, + 0,0,0,0,-160,-201,0,0,0,0, + 0,-110,-506,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,-309,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-141,0,0,0,0, + -104,0,0,0,0,-112,0,-142,0,0, + -313,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-143,0,-144,0,0,-326,0,0, + 0,-134,-145,0,0,0,0,-234,0,0, + 0,-335,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-139,0, + 0,0,0,-199,0,-146,0,0,-358,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -147,0,-148,0,0,-348,0,0,0,-210, + -149,0,0,0,0,-240,0,0,0,-359, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-235,0,0,0, + 0,-242,0,-150,0,0,-405,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-398,0, + -197,0,0,-151,0,-342,0,0,0,-152, + -119,0,0,0,-153,0,-154,-102,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-372, + 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,-155,0,0,0, + 0,-432,0,0,0,-88,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,-84,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-332,0,0, + 0,0,-257,0,-85,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-308,0,0,0,0,-33,0,0,0, 0,0,0,0,0,0,-350,0,0,0, - -40,0,0,0,0,0,0,0,0,0, + 0,-86,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-50,0, + 0,0,-249,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,-414,0, - 0,0,0,-90,0,0,0,-58,0,0, + 0,0,0,0,0,0,0,0,-158,0, + 0,0,0,-159,0,-79,0,0,0,-165, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-127,0,0, - 0,0,0,0,0,-91,0,0,0,-34, + 0,-73,0,0,0,-353,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-35,0, - 0,0,0,-60,0,0,0,0,0,0, - 0,0,0,0,-36,0,0,-92,0,0, - 0,-103,0,0,0,0,0,0,0,0, + 0,0,0,-166,0,0,0,0,-167,-125, + 0,0,0,-352,0,0,0,-494,0,0, + 0,0,0,-204,0,0,0,-241,0,0, + 0,-227,-270,0,0,0,0,0,-417,0, + -355,0,0,0,0,0,-248,0,0,0, + 0,0,-170,-192,0,0,0,0,-171,0, + 0,0,0,0,0,-80,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-129,0,0,0,0,-104,0,0,-93, - 0,0,0,-112,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-166,0,0,0,0,0,0,0, - 0,0,0,-140,0,0,0,0,-134,0, - 0,-94,0,0,0,-139,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,0,0,0,-205,0,0,0,0, - -37,0,0,-95,0,0,0,-39,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,0,0,0,-180,0,0, - 0,0,-197,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,-53,0, - 0,0,0,0,0,0,0,0,0,-182, - 0,0,0,0,-207,0,0,-97,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -296,0,0,0,0,0,0,0,0,0, - 0,-184,0,0,0,0,-233,0,0,-98, - 0,0,0,-277,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,0, - 0,0,0,-187,0,0,0,0,-240,0, - 0,-99,0,0,0,-54,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-337,0,0,0,0,0, - 0,0,0,0,0,-195,0,0,0,0, - -247,0,0,-100,0,0,0,-57,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,0,0,0,0,0,0,0, - 0,-307,0,0,0,-161,0,0,0,-360, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-62,0, - 0,0,0,-329,0,0,-347,0,0,-131, - 0,0,0,0,-203,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,0,0,0,0,0,0,-209,0, - 0,0,0,0,0,0,-199,0,0,0, - -232,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,-248,0,0,0,0, - 0,0,-65,0,0,0,-306,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-66,0,0,-107,0,0, - -311,0,0,0,-310,0,0,0,-342,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-108,0,0, - 0,0,-303,0,0,-109,0,0,-110,0, - 0,0,-345,0,0,0,-117,-141,0,0, - 0,0,-173,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,-142,0,0,0,0,0,-143, - 0,0,0,-355,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-395,0,0,0, - 0,-144,0,0,-145,0,0,-146,0,0, - 0,-349,0,0,0,-147,0,0,0,0, - 0,-230,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,-427,0,0, - 0,0,0,0,0,-148,0,0,-377,0, - 0,0,-402,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-268,0,0,0,0, - -149,0,0,-150,0,0,0,0,0,0, - -239,0,0,0,-151,-136,0,0,0,-226, - 0,0,-164,-102,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-283,0,0,-152,0,0,0,0,0, - -153,-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, - 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,-225,0,0,-415,0,-84,0, - 0,0,-154,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-284,0,0,0,0,-249,0,-85,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,0,-86,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-312, - 0,0,0,0,-50,0,0,0,0,0, - -246,0,0,0,-156,-157,0,0,-231,0, - 0,-158,-105,-159,0,0,0,-339,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,-114,0,0,0,0,0, - -79,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-223,-500,0, - -449,0,0,0,0,-125,0,0,0,-17, - 0,0,0,0,-352,0,0,-165,0,0, - -385,0,0,0,-168,0,0,0,0,0, - 0,0,0,0,0,0,0,-478,0,0, - 0,0,-266,0,0,0,-224,0,0,-444, - 0,0,0,0,-367,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,-227,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,-250,0,0,0,-82,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,-83,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-384,0,0,-378,0, - -228,-458,0,0,0,0,0,0,0,0, - 0,-171,-130,0,0,0,0,0,0,-491, - -174,0,-175,0,0,-369,0,0,-13,0, - -176,-455,0,0,0,0,0,-160,-185,0, - 0,0,0,0,0,0,0,0,0,-400, - 0,0,-186,0,-299,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-267,0,0,-191,0,-192,-198, - -245,0,0,-238,0,0,0,0,0,0, - 0,0,-452,0,0,0,0,0,0,0, - 0,0,-47,-305,0,-253,0,0,-206,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-287, - 0,0,0,0,0,-69,0,0,0,0, - 0,0,0,0,0,0,-271,0,0,0, - -119,0,0,0,-216,0,-217,-468,0,-218, - 0,0,-289,0,-348,-291,-475,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-292,-220,0,0,0, - -236,-404,0,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, - 0,0,0,0,-318,0,-137,0,0,0, - 0,-476,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-237,0,0,-167,0,0,0,0,0, - -1,0,0,-241,0,0,0,0,-473,0, - 0,0,0,0,-394,0,0,0,-46,0, - 0,0,0,0,-341,0,-411,0,0,0, - 0,-290,0,0,0,-272,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -243,-258,0,0,0,0,-254,-361,0,-259, - 0,0,0,-120,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,-74,0,0,0,-269,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-242,0, - 0,0,0,0,0,0,0,0,-20,0, - 0,0,-270,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -274,0,0,0,-408,-278,0,0,0,0, - -388,-42,-279,-41,0,0,0,0,-251,-469, - 0,0,0,0,0,0,0,0,-412,-281, - 0,0,0,0,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,-330,0,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,-75,0,0,0,-416,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-413,0,0,-162,-433,-297, - -439,0,0,0,-392,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -351,0,-417,0,0,0,0,-440,-115,-263, - -316,0,0,0,0,-122,0,0,0,0, - 0,0,0,0,0,-282,0,0,0,0, - 0,-16,0,0,-396,0,0,0,0,-483, - 0,0,0,0,0,-295,0,0,0,0, - 0,0,0,0,0,0,-222,0,0,0, - 0,0,0,0,0,-300,-321,0,0,0, - 0,0,0,0,0,0,-301,0,0,0, - 0,-322,0,0,0,0,-331,0,0,0, - 0,0,-333,0,0,-485,0,0,0,0, - 0,0,0,0,0,0,-363,-364,0,0, - 0,0,0,0,0,0,-370,-448,0,-372, - 0,0,0,0,0,-208,0,-375,-324,0, - 0,-252,0,0,0,0,-381,0,-288,0, - 0,0,0,0,0,0,0,0,0,-490, - 0,-451,-265,0,-326,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-204,-365,0,0,0,0,0, - -357,0,0,0,-382,0,-492,0,0,-366, - 0,0,-343,0,0,0,0,0,0,0, - 0,0,0,-512,0,-362,-376,0,-462,0, - 0,0,0,0,0,-390,0,0,0,0, - 0,0,0,0,0,0,0,0,-393,0, - 0,0,0,0,0,0,0,0,-401,-43, - 0,0,0,0,-293,-403,0,0,0,0, - 0,0,0,0,0,0,0,-517,0,-405, - -406,0,0,-373,0,0,0,0,0,0, - 0,-407,0,0,0,0,0,0,0,0, - 0,-409,-495,-380,0,0,0,0,-420,-374, - 0,0,0,-383,0,0,0,0,0,0, - -422,0,0,0,0,0,0,0,0,0, - 0,-520,0,0,-459,0,-328,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-497,0,0,0, - -386,0,0,0,0,0,0,-309,0,0, - 0,0,-264,-424,-418,0,0,0,0,0, - 0,0,0,0,-387,-425,0,-426,0,0, - 0,0,0,0,0,0,-463,-428,0,0, - 0,0,0,0,0,0,0,0,-76,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-77,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-286,0,0,0,0,-368, - 0,0,0,0,-430,0,-178,0,0,0, - -298,0,0,0,0,0,0,0,0,0, - -472,-419,0,0,0,0,-431,-487,-496,-423, - -379,0,-70,0,0,-461,0,0,-442,-479, - 0,0,0,-466,-486,-498,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, - 0,0,0,0,0,-480,-481,0,0,0, - 0,0,0,-516,-432,-391,0,0,0,0, - -436,0,-453,-454,0,-437,0,0,-313,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-441,-450,0,-183,0,0,0,0,0, - -319,-493,-464,-244,0,0,0,0,0,0, - 0,0,-457,0,0,0,0,0,-445,0, - -506,-465,0,0,0,0,0,0,-482,-484, - -44,0,0,0,0,0,0,0,0,0, - 0,0,-508,-507,0,0,0,0,0,0, - 0,0,0,0,0,0,-513,-344,-499,0, - 0,0,0,0,0,-504,0,0,0,0, - 0,-447,0,0,-510,0,0,0,0,0, - 0,-494,0,0,0,0,0,-515,0,0, - 0,0,0,-518,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-474,0,0,0,0,-123, - 0,0,0,0,0,0,0,0,0,0, - -45,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-346,0,0, - 0,0,0,0,0,0,0,-502,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,-387,0,0,0,0,-302,0, + 0,0,0,0,0,0,0,0,-172,0, + -130,-173,-470,-105,0,0,0,0,0,-250, + 0,0,0,-211,-267,-176,0,0,0,0, + 0,0,0,0,-177,-351,0,0,0,0, + 0,0,0,0,0,0,-256,0,-403,-251, + 0,0,0,0,0,0,0,0,-178,0, + 0,0,0,0,0,0,0,0,0,-252, + 0,-292,-229,-101,0,0,0,0,-187,0, + -308,0,0,0,0,0,0,-368,0,0, + -455,0,0,0,0,0,0,0,0,0, 0,0,0,0,-188,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-193,0,0,-311,0, + 0,0,-47,0,0,0,0,0,0,0, + 0,0,-471,0,0,0,0,-162,-397,0, + 0,0,-247,0,0,0,-212,0,-265,0, + 0,-472,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, - -189,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-17,0,0, + 0,-225,0,-194,0,0,0,0,-478,0, + -322,0,0,0,0,0,0,-286,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-360,0,0,0,0,0,0, + 0,0,0,0,-226,-200,0,0,0,0, + -230,0,0,0,0,0,0,0,0,0, + -479,-203,0,0,0,0,-207,0,0,0, + -255,0,-209,0,0,0,-268,0,0,0, + -231,0,0,0,-219,-220,0,0,0,0, + 0,0,0,0,0,-46,0,0,0,-238, + 0,0,-274,0,0,0,0,0,0,0, + 0,0,0,0,-222,-239,0,0,0,0, + -282,-388,0,0,0,0,0,0,-243,0, + -246,-245,0,-260,0,-287,0,0,0,0, + 0,0,0,0,0,0,0,-244,0,0, + 0,0,0,0,0,0,0,-261,-271,0, + 0,0,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,-266,0, + 0,-180,0,0,0,-273,0,0,0,0, + 0,0,0,0,0,-276,-300,-411,0,0, + 0,0,-280,0,-123,0,0,0,-319,0, + -69,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,-281,0,0,0, + 0,0,0,-284,0,0,0,0,0,-370, + -294,0,-285,-424,0,0,0,0,0,0, + 0,0,0,0,-298,0,0,0,0,0, + 0,0,0,0,0,0,-303,-304,-407,-347, + -399,-264,0,0,0,0,0,0,0,0, + -436,0,0,0,0,-325,-42,-334,-336,-295, + 0,0,0,0,0,0,0,0,0,0, + 0,-366,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-327,0,0,0,0,0,0,0, + 0,0,0,0,0,-41,0,-321,0,0, + -367,-486,-329,-215,0,0,0,0,0,0, + 0,0,0,0,0,0,-373,0,-296,-375, + 0,0,0,0,0,0,-378,-344,0,0, + 0,-364,0,-384,0,0,0,0,0,0, + 0,0,-385,0,0,0,0,-393,0,0, + 0,0,0,0,0,0,-488,0,0,0, + 0,-396,-404,0,-116,-293,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-169, + 0,0,0,0,-115,-1,-391,0,0,0, + 0,-346,-406,0,0,0,0,0,-365,0, + 0,0,0,0,0,0,0,0,0,-415, + 0,-493,0,0,-476,0,0,0,0,-118, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-185,0,0,0,0,0, + -408,-43,-379,0,0,0,0,0,0,0, + -409,0,0,0,0,0,0,-410,0,0, + 0,0,0,0,-412,0,-515,-416,0,-423, + 0,0,0,0,-120,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-190, + 0,0,0,0,0,-269,0,-383,-386,0, + -419,0,0,0,0,0,0,0,0,0, + 0,0,-425,0,0,0,0,0,-442,-338, + 0,-520,-122,0,0,0,-376,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-420,0,-307,0,0,0,0,0, + -377,0,0,0,0,-454,0,-427,0,0, + 0,0,0,0,0,0,0,-443,0,0, + 0,0,0,0,0,0,-523,-428,0,-439, + 0,0,-429,0,0,0,0,0,-431,0, + 0,0,0,0,0,0,0,-316,0,-433, + -434,0,-435,0,0,0,0,-440,-421,0, + 0,0,0,0,0,0,0,-444,-453,0, + 0,0,0,0,0,0,0,0,-460,-468, + 0,-289,0,0,0,0,-487,0,0,0, + 0,-502,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,-422,0,-495,-253,0,0, + 0,0,-507,0,-451,-426,0,0,0,0, + -445,-466,0,0,0,0,0,0,-44,-13, + 0,-449,0,0,0,0,0,0,-301,0, + 0,0,0,0,0,0,0,0,0,-456, + 0,0,0,0,0,0,0,0,-382,0, + -462,-498,0,0,-395,0,0,0,0,0, + 0,0,0,0,0,0,-191,0,0,0, + 0,-464,-290,0,-457,-216,0,0,0,0, + 0,0,0,0,0,0,-475,-469,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-381,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-394,-467,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-369,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,-448,-485, + 0,-489,0,0,-389,0,0,0,-254,-349, + -497,0,0,0,0,0,0,0,0,-501, + 0,-483,0,-484,0,0,0,0,0,0, + 0,0,0,0,-496,0,0,0,0,0, + -499,0,0,0,0,0,0,0,0,0, + -450,-333,0,0,0,0,0,0,0,0, + -519,0,0,0,-511,0,0,-45,0,0, + 0,0,0,-509,0,0,0,0,0,0, + 0,0,0,0,0,-202,0,0,0,0, + -482,0,0,0,0,0,0,0,0,0, + 0,0,-477,0,0,0,0,0,0,0, + -516,0,0,0,0,0,-312,0,0,0, + 0,-510,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-328,0,0, + 0,0,0,0,-196,0,0,0,0,0, + 0,0,0,0,-505,0,0,0,0,0, + 0,0,0,0,-217,-513,0,0,0,0, + -518,0,-521,-481,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-500,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-21,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-22,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, - -23,0,0,0,0,0,0,0,0,0, + 0,0,-75,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-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,-20,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-21, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -22,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,-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,-25,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-26,0,0,0, + 0,0,0,0,-26,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,-59,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-71,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -71,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-72,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-72,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-195,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-193,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-491, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-320,0,0,0, - 0,0,0,0,0,0,0,0,-488,0, - 0,0,0,0,0,0,0,0,0,-353, - 0,0,0,0,0,0,0,0,0,0, - -261,0,0,0,0,0,0,0,0,0, - -505,0,0,0,0,0,0,0,0,0, - 0,-514,0,0,0,0,-101,0,0,0, + -356,0,0,0,0,0,0,0,0,0, + 0,-474,0,0,0,0,0,0,0,0, + 0,0,-331,0,0,0,0,0,0,0, + 0,0,-414,-390,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,0,0,0,0,0,0,-471, + 0,0,0,0,0,0,0,0,0,-357, 0,0,0,0,0,0,0,0,0,0, - -354,0,0,0,0,0,0,0,0,0, - -212,0,-194,0,0,0,0,0,0,0, - 0,0,-460,0,0,0,0,0,0,0, + -463,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,-64,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-224,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -262,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-304,0,0, - 0,-325,0,0,0,0,0,0,-389,0, - -336,0,0,0,0,0,0,-358,0,0, - 0,0,0,-359,0,0,0,0,0,-213, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-214,0,0, + 0,0,0,0,0,0,0,-339,0,0, + 0,-361,0,0,0,0,0,0,0,0, + -362,0,0,0,-374,0,0,0,0,0, + 0,0,-218,-437,0,-400,0,0,0,0, + 0,0,0,0,0,0,-401,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-64,0,0,0,0,0,-371, - 0,0,0,0,0,0,0,-456,0,0, - 0,0,-477,0,0,0,0,0,0,0, - 0,0,-200,0,0,0,0,0,0,0, - 0,0,-210,0,0,0,0,0,0,0, + 0,0,-459,0,0,0,0,0,-277,0, + 0,0,0,0,0,-480,0,0,0,0, + 0,-465,0,0,0,0,0,0,0,-213, + 0,0,0,0,0,0,0,0,-258,0, + 0,0,-446,0,0,0,0,0,0,0, + -288,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-256,0,0,0, - 0,0,-397,0,0,0,0,0,0,-285, - 0,0,0,0,0,0,0,-215,-434,-435, - -438,0,0,0,0,0,0,0,0,0, - -398,-443,-275,0,0,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,-438,0,0,0,0,0, + 0,0,-441,0,0,-461,0,0,0,0, + -490,0,0,0,0,0,0,0,-508,-517, + 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,0,0,0, 0,0,0,0,0,0,0,0,0,0, @@ -509,7 +499,16 @@ 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,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,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; @@ -519,517 +518,516 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface BaseAction { public final static char baseAction[] = { - 170,4,53,78,78,34,34,64,64,39, - 39,190,190,191,191,192,192,1,1,15, - 15,15,15,15,15,15,15,16,16,16, - 14,10,10,8,8,8,8,8,2,65, - 65,5,5,11,11,11,11,43,43,132, - 132,133,61,61,42,17,17,17,17,17, - 17,17,17,17,17,17,17,17,17,17, - 17,17,17,17,17,134,134,134,114,18, - 18,18,18,18,18,18,18,18,18,18, - 18,18,19,19,171,171,172,172,173,137, - 137,138,138,135,135,139,136,136,20,20, - 21,22,22,22,24,24,24,24,25,25, - 25,26,26,26,27,27,27,27,27,29, - 29,29,30,30,32,32,33,33,35,35, - 36,36,37,37,41,41,40,40,40,40, - 40,40,40,40,40,40,40,40,40,38, - 28,140,140,98,98,102,102,93,193,193, - 69,69,69,69,69,69,69,69,69,70, - 70,70,71,71,55,55,174,174,72,72, - 72,115,115,73,73,73,73,74,74,74, - 74,74,75,75,79,79,79,79,79,79, - 79,48,48,48,48,48,105,105,106,106, - 49,175,23,23,23,23,23,46,46,88, - 88,88,88,88,147,147,142,142,142,142, - 142,143,143,143,144,144,144,145,145,145, - 146,146,146,89,89,89,89,89,90,90, - 90,12,13,13,13,13,13,13,13,13, - 13,13,13,99,119,119,119,119,119,117, - 117,117,118,118,149,149,148,148,121,121, - 150,83,83,84,84,86,87,85,51,45, - 151,151,52,50,82,82,152,152,141,141, - 122,123,123,77,77,153,153,62,62,62, - 57,57,56,63,63,67,67,54,54,54, - 91,91,101,100,100,60,60,58,58,59, - 59,47,103,103,103,94,94,94,95,96, - 96,96,97,97,107,107,107,109,109,108, - 108,194,194,92,92,177,177,177,177,177, - 125,44,44,155,176,176,126,126,126,126, - 178,178,31,31,116,127,127,127,127,110, - 110,120,120,120,157,158,158,158,158,158, - 158,158,158,158,181,181,179,179,180,180, - 159,159,159,159,160,182,112,111,111,183, - 183,161,161,161,161,104,104,104,184,184, - 9,185,185,186,162,154,154,163,163,164, - 165,165,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,68,68, - 168,168,128,128,129,129,129,129,129,129, - 3,169,169,166,166,130,130,130,80,81, - 76,156,156,113,113,187,187,187,131,131, - 124,124,188,188,170,170,958,38,1935,1903, - 915,2885,34,991,31,35,30,32,2468,261, - 29,27,55,1004,110,80,81,111,1085,590, - 1135,1099,1233,1185,2909,1360,1257,273,1395,1379, - 169,1521,1528,146,674,2138,161,147,1531,38, - 963,36,82,2847,34,991,31,35,62,32, - 2572,1031,2395,38,963,36,231,2460,34,991, - 31,35,30,32,788,261,29,27,55,1004, - 110,80,81,111,1085,590,1135,1099,1233,1185, - 3971,1360,2375,1008,234,229,230,327,38,1819, - 383,2351,38,963,36,274,2460,34,991,31, - 35,30,32,788,261,29,27,55,1004,90, - 80,81,241,244,247,250,2771,1387,273,1668, - 38,963,36,1987,2847,34,991,31,35,61, - 32,327,38,2777,2775,820,572,1071,3189,713, - 777,2954,3196,3880,1540,38,963,36,2365,2460, - 34,991,31,35,2643,32,788,261,29,27, - 55,1004,110,80,81,111,1085,341,1135,1099, - 1233,1185,66,1360,1257,1347,1395,1379,1493,1521, - 1528,146,1857,1023,505,147,275,1958,38,963, - 36,2383,4553,34,991,31,35,30,32,1292, - 977,499,444,506,1540,38,963,36,2365,2460, - 34,991,31,35,2643,32,788,261,29,27, - 55,1004,110,80,81,111,1085,341,1135,1099, - 1233,1185,411,1360,1257,2947,1395,1379,1923,1521, - 1528,146,1182,231,505,147,2415,1386,169,47, - 2700,2383,734,65,327,38,2497,2448,1206,1650, - 38,963,36,506,4553,34,991,31,35,64, - 32,243,229,230,501,327,333,486,1259,1805, - 38,963,36,2365,2460,34,991,31,35,2643, - 32,788,261,29,27,55,1004,110,80,81, - 111,1085,341,1135,1099,1233,1185,231,1360,1257, - 2641,1395,1379,2651,1521,1528,146,169,507,505, - 147,705,1650,38,963,36,2383,4553,34,991, - 31,35,63,32,501,246,229,230,506,1606, - 38,963,36,977,2460,34,991,31,35,30, - 32,788,261,29,27,55,1004,110,80,81, - 111,1085,2050,1135,1099,1233,1185,4448,1360,1257, - 2699,1395,1379,2651,1521,1528,146,1447,2988,376, - 147,2395,38,963,36,350,2460,34,991,31, - 35,30,32,788,261,29,27,55,1004,110, - 80,81,89,379,1525,1678,38,963,36,502, - 2460,34,991,31,35,30,32,788,261,29, - 27,55,1004,110,80,81,111,1085,431,1135, - 1099,1233,1185,2076,1360,1257,1390,1395,1379,1849, - 1521,1528,146,855,3627,376,147,1097,38,963, - 36,327,3161,34,991,43,35,66,38,1738, - 46,2180,1056,45,991,380,1673,3627,384,377, - 1979,38,963,36,2690,2460,34,991,31,35, - 30,32,788,261,29,27,55,1004,110,80, - 81,111,1085,331,1135,1099,1233,1185,284,1360, - 1257,977,1395,1379,2069,1521,1528,146,2576,3627, - 161,147,1097,38,963,36,1034,3714,34,991, - 1807,35,1633,420,1292,2146,3023,1979,38,963, - 36,381,2460,34,991,31,35,30,32,788, - 261,29,27,55,1004,110,80,81,111,1085, - 2025,1135,1099,1233,1185,943,1360,1257,1034,1395, - 1379,397,1521,1528,146,2297,2673,370,147,235, - 3945,1979,38,963,36,508,2460,34,991,31, - 35,30,32,788,261,29,27,55,1004,110, - 80,81,111,1085,1631,1135,1099,1233,1185,98, - 1360,1257,448,1395,1379,1436,1521,1528,146,485, - 572,370,147,1979,38,963,36,2593,2460,34, - 991,31,35,30,32,788,261,29,27,55, - 1004,110,80,81,111,1085,2576,1135,1099,1233, - 1185,100,1360,1257,92,1395,1379,106,1521,1528, - 146,2466,369,370,147,1334,2466,1914,38,963, - 36,2602,2460,34,991,31,35,30,32,788, - 261,29,27,55,1004,110,80,81,111,1085, - 1344,1135,1099,1233,1185,1038,1360,1257,3041,1395, - 1379,1858,1521,1528,146,992,368,376,147,1740, - 38,963,36,153,2460,34,991,31,35,30, - 32,788,261,29,27,55,1004,110,80,81, - 111,1085,2025,1135,1099,1233,1185,37,1360,1257, - 512,1395,1379,1993,1521,1528,146,2602,366,145, - 147,1979,38,963,36,661,2460,34,991,31, - 35,30,32,788,261,29,27,55,1004,110, - 80,81,111,1085,511,1135,1099,1233,1185,511, - 1360,1257,93,1395,1379,106,1521,1528,146,327, - 3742,162,147,374,1979,38,963,36,508,2460, - 34,991,31,35,30,32,788,261,29,27, - 55,1004,110,80,81,111,1085,1147,1135,1099, - 1233,1185,2640,1360,1257,3181,1395,1379,1292,1521, - 1528,146,28,435,158,147,1979,38,963,36, - 1317,2460,34,991,31,35,30,32,788,261, - 29,27,55,1004,110,80,81,111,1085,967, - 1135,1099,1233,1185,1409,1360,1257,1166,1395,1379, - 3041,1521,1528,146,97,61,157,147,1979,38, - 963,36,508,2460,34,991,31,35,30,32, - 788,261,29,27,55,1004,110,80,81,111, - 1085,3620,1135,1099,1233,1185,447,1360,1257,435, - 1395,1379,1292,1521,1528,146,74,508,156,147, - 1979,38,963,36,508,2460,34,991,31,35, - 30,32,788,261,29,27,55,1004,110,80, - 81,111,1085,590,1135,1099,1233,1185,4563,1360, - 1257,73,1395,1379,1292,1521,1528,146,58,508, - 155,147,1979,38,963,36,508,2460,34,991, - 31,35,30,32,788,261,29,27,55,1004, - 110,80,81,111,1085,820,1135,1099,1233,1185, - 4225,1360,1257,91,1395,1379,1292,1521,1528,146, - 57,155,154,147,1979,38,963,36,1091,2460, - 34,991,31,35,30,32,788,261,29,27, - 55,1004,110,80,81,111,1085,820,1135,1099, - 1233,1185,56,1360,1257,2633,1395,1379,169,1521, - 1528,146,3237,508,153,147,1979,38,963,36, - 1042,2460,34,991,31,35,30,32,788,261, - 29,27,55,1004,110,80,81,111,1085,333, - 1135,1099,1233,1185,325,1360,1257,94,1395,1379, - 169,1521,1528,146,2274,508,152,147,1979,38, - 963,36,1983,2460,34,991,31,35,30,32, - 788,261,29,27,55,1004,110,80,81,111, - 1085,590,1135,1099,1233,1185,4452,1360,1257,348, - 1395,1379,1733,1521,1528,146,2536,508,151,147, - 1979,38,963,36,2511,2460,34,991,31,35, - 30,32,788,261,29,27,55,1004,110,80, - 81,111,1085,1861,1135,1099,1233,1185,4461,1360, - 1257,2926,1395,1379,169,1521,1528,146,907,508, - 150,147,1979,38,963,36,420,2460,34,991, - 31,35,30,32,788,261,29,27,55,1004, - 110,80,81,111,1085,590,1135,1099,1233,1185, - 4468,1360,1257,3053,1395,1379,169,1521,1528,146, - 1080,508,149,147,1979,38,963,36,2234,2460, - 34,991,31,35,30,32,788,261,29,27, - 55,1004,110,80,81,111,1085,590,1135,1099, - 1233,1185,4474,1360,1257,72,1395,1379,75,1521, - 1528,146,327,2988,148,147,1870,38,963,36, - 1502,2460,34,991,31,35,30,32,788,261, - 29,27,55,1004,110,80,81,111,1085,1002, - 1135,1099,1233,1185,2422,1360,1257,2378,1395,1379, - 169,1521,2729,167,1000,1979,38,963,36,2475, - 2460,34,991,31,35,30,32,788,261,29, - 27,55,1004,110,80,81,111,1085,1563,1135, - 1099,1233,1185,395,1360,1257,399,1395,1379,169, - 1521,1528,146,3754,326,143,147,327,38,1819, - 383,327,38,2777,276,2303,38,963,36,1516, - 2460,34,991,31,35,30,32,788,261,29, - 27,55,1004,110,80,81,111,1085,54,1135, - 1099,1233,1185,285,1360,1257,508,1395,1379,51, - 1521,1528,146,1029,353,192,147,2395,38,963, - 36,520,2460,34,991,31,35,30,32,788, - 261,29,27,55,1004,110,80,81,111,1085, - 71,1135,1099,1233,1185,1145,1360,1257,154,1395, - 1379,1292,1521,2729,167,2395,38,963,36,1292, - 2460,34,991,31,35,30,32,788,261,29, - 27,55,1004,110,80,81,111,1085,589,1135, - 1099,1233,1185,1114,1360,1257,1314,1395,1379,1735, - 1521,2729,167,1097,38,963,36,691,2092,34, - 991,338,35,327,38,2780,2395,38,963,36, - 289,2460,34,991,31,35,30,32,788,261, - 29,27,55,1004,110,80,81,111,1085,101, - 1135,1099,1233,1185,2101,1360,1257,102,1395,1379, - 952,1521,2729,167,2395,38,963,36,1949,2460, - 34,991,31,35,30,32,788,261,29,27, - 55,1004,110,80,81,111,1085,1014,1135,1099, - 1233,1185,1705,1360,1257,1941,1395,1379,588,1521, - 2729,167,1097,38,963,36,675,428,34,991, - 2505,35,327,38,281,2395,38,963,36,413, - 2460,34,991,31,35,30,32,788,261,29, - 27,55,1004,110,80,81,111,1085,590,1135, - 1099,1233,1185,4538,1360,1257,762,1395,1379,1502, - 1521,2729,167,2439,38,963,36,412,2460,34, - 991,31,35,30,32,788,261,29,27,55, - 1004,110,80,81,111,1085,1525,1135,1099,1233, - 1185,849,1360,1257,670,1395,1379,1757,1521,2729, - 167,1664,38,2777,3046,757,327,38,1819,383, - 2185,38,279,1374,2395,38,963,36,415,2460, - 34,991,31,35,30,32,788,261,29,27, - 55,1004,110,80,81,111,1085,37,1135,1099, - 1233,1185,2288,1360,1257,1327,1395,1379,1631,2384, - 282,2421,2395,38,963,36,3715,2460,34,991, - 31,35,30,32,788,261,29,27,55,1004, - 110,80,81,111,1085,2493,1135,1099,1233,1185, - 351,1360,1257,352,1395,2376,2395,38,963,36, - 520,2460,34,991,31,35,30,32,788,261, - 29,27,55,1004,110,80,81,111,1085,323, - 1135,1099,1233,1185,1602,1360,1257,2172,2313,2395, - 38,963,36,2489,2460,34,991,31,35,30, - 32,788,261,29,27,55,1004,110,80,81, - 111,1085,2080,1135,1099,1233,1185,508,2205,2395, - 38,963,36,994,2460,34,991,31,35,30, - 32,788,261,29,27,55,1004,110,80,81, - 111,1085,3659,1135,1099,1233,2211,2395,38,963, - 36,70,2460,34,991,31,35,30,32,788, - 261,29,27,55,1004,110,80,81,111,1085, - 2511,1135,1099,1233,2283,2483,38,1819,383,324, - 2456,1664,38,2777,276,124,1492,236,261,2185, - 38,277,1586,1968,1328,385,417,2658,327,38, - 1819,383,2395,38,963,36,273,2460,34,991, - 31,35,30,32,788,261,29,27,55,1004, - 110,80,81,111,1085,1056,1135,1099,2068,421, - 3627,2395,38,963,36,231,2460,34,991,31, - 35,30,32,788,261,29,27,55,1004,110, - 80,81,111,1085,2767,1135,1099,2076,169,2172, - 349,2139,3190,234,229,230,414,38,1819,383, - 1460,38,1819,383,274,1722,38,441,1799,330, - 4530,1972,38,441,76,1966,4530,342,2173,848, - 347,241,244,247,250,2771,340,54,327,38, - 290,54,1987,327,38,2777,280,2543,1799,2697, - 1502,3533,1799,665,514,2378,969,3189,713,777, - 2954,3196,3880,2395,38,963,36,617,2460,34, - 991,31,35,30,32,788,261,29,27,55, - 1004,110,80,81,111,1085,1602,1135,1099,2116, - 2395,38,963,36,299,2460,34,991,31,35, - 30,32,788,261,29,27,55,1004,110,80, - 81,111,1085,508,1135,1099,2151,2395,38,963, - 36,1975,2460,34,991,31,35,30,32,788, - 261,29,27,55,1004,110,80,81,111,1085, - 2145,1135,2154,2395,38,963,36,69,2460,34, - 991,31,35,30,32,788,261,29,27,55, - 1004,110,80,81,111,1085,175,1135,2165,2513, - 526,169,2710,2365,322,2694,2365,312,434,3297, - 3300,520,2517,1594,438,3297,3300,2365,3666,228, - 2613,1940,3009,1446,159,341,1667,386,417,2024, - 2616,240,590,2365,2812,183,341,4543,1056,1163, - 203,214,3165,3627,202,211,212,213,215,3779, - 1,172,341,778,526,2056,38,963,36,3102, - 1221,34,991,337,35,186,170,171,173,174, - 175,176,177,228,1447,2988,772,1305,159,2147, - 1863,2490,38,277,327,38,1819,383,2812,183, - 185,493,330,2152,203,214,3165,2365,202,211, - 212,213,215,334,1525,172,169,1000,4600,1950, - 3425,318,2302,320,184,273,228,313,2202,187, - 170,171,173,174,175,176,177,491,492,3354, - 1056,163,2845,512,1993,3627,334,205,214,3165, - 1000,204,211,212,213,215,2922,327,38,2777, - 278,1307,38,2659,1642,2521,3745,2495,2640,206, - 2555,2950,2365,508,163,2513,508,2759,283,2365, - 2670,2365,216,207,208,209,210,291,292,293, - 294,228,54,78,330,1726,508,936,3009,3707, - 228,2189,2378,1799,784,284,444,3247,3875,2899, - 60,1444,205,214,3165,2172,204,211,212,213, - 215,205,214,3165,430,204,211,212,213,215, - 59,4247,2724,3023,206,508,2950,501,38,1819, - 383,182,2770,206,1486,2950,2365,216,207,208, - 209,210,291,292,293,294,216,207,208,209, - 210,291,292,293,294,228,1857,493,54,321, - 513,1600,2062,3875,3367,1598,38,1819,383,1799, - 808,1466,3875,3463,1278,1000,205,214,3165,1525, - 204,211,212,213,215,2507,3548,3546,3078,327, - 38,1819,383,490,492,508,54,2518,206,159, - 2950,1000,327,38,2777,3262,169,1799,966,524, - 1252,216,207,208,209,210,291,292,293,294, - 54,430,1714,49,2700,159,617,1347,508,105, - 2494,1799,1210,3287,1739,3188,200,3875,3649,2395, - 38,963,36,297,2460,34,991,31,35,30, - 32,788,261,29,27,55,1004,110,80,81, - 111,1085,3387,1988,2395,38,963,36,1459,2460, - 34,991,31,35,30,32,788,261,29,27, - 55,1004,110,80,81,111,1085,2947,2024,1105, - 38,963,36,2750,231,34,991,337,35,2395, - 38,1935,1903,1566,2460,34,991,31,35,30, - 32,788,261,29,27,55,1004,110,80,81, - 88,2279,249,229,230,262,2296,332,333,526, - 37,1767,169,169,169,2365,2365,3729,526,334, - 169,530,4600,1000,1000,318,2302,320,228,2378, - 2570,313,2202,159,341,341,349,341,1213,38, - 1819,383,159,2812,183,519,3206,163,3752,203, - 214,3165,1437,202,211,212,213,215,2383,2383, - 172,2383,1056,342,2173,848,347,3627,198,273, - 522,1938,3070,1402,3726,170,171,173,174,175, - 176,177,1514,38,963,36,3102,3627,34,991, - 337,35,2395,38,963,36,508,2460,34,991, - 31,35,30,32,788,261,29,27,55,1004, - 110,80,81,111,2030,2378,330,2786,1019,349, - 1310,2378,3306,526,1191,2168,38,963,36,3122, - 439,34,991,337,35,4600,330,2882,318,2302, - 320,2172,228,2006,313,2202,363,159,2378,2606, - 1602,169,77,4361,197,3808,2051,2812,183,2451, - 201,238,261,203,214,3165,2571,202,211,212, - 213,215,169,3497,172,2574,1000,518,4600,2365, - 436,315,3246,320,526,349,2588,199,179,170, - 171,173,174,175,176,177,373,1267,3009,3183, - 159,2365,4587,228,306,310,2577,169,159,231, - 1318,3918,342,2173,848,347,231,2512,2812,183, - 228,1605,2586,3298,203,214,3165,1361,202,211, - 212,213,215,2617,3743,172,523,239,229,230, - 526,1052,400,4281,252,229,230,1831,2612,190, - 170,171,173,174,175,176,177,2596,2378,228, - 2650,388,417,401,159,2950,1057,493,2669,169, - 2365,3627,334,2785,2812,183,1000,2670,3160,2079, - 203,214,3165,2365,202,211,212,213,215,3009, - 610,172,508,2050,526,169,371,220,4448,1267, - 163,2942,3009,490,492,3816,170,171,173,174, - 175,176,177,228,1043,2209,38,389,159,3627, - 330,327,38,1819,383,2673,3641,1525,2812,183, - 2209,38,389,169,203,214,3165,1780,202,211, - 212,213,215,3558,697,172,169,169,526,2581, - 2119,4459,424,1000,402,404,2302,3354,357,193, - 170,171,173,174,175,176,177,228,331,2691, - 2806,358,159,1689,2894,2941,934,159,4421,2634, - 169,349,2812,183,2365,1347,2654,165,203,214, - 3165,304,202,211,212,213,215,1673,784,172, - 2692,2697,526,341,327,38,1819,383,344,2173, - 848,347,2699,189,170,171,173,174,175,176, - 177,228,2705,1525,169,3317,159,2383,3215,2671, - 327,38,1819,383,169,423,2812,183,1181,1968, - 3365,2349,203,214,3165,2947,202,211,212,213, - 215,3665,871,172,419,508,526,1173,38,963, - 36,422,3627,34,991,337,35,196,170,171, - 173,174,175,176,177,228,3257,327,38,290, - 159,327,38,1819,383,329,333,296,334,3220, - 2812,183,1000,1602,2719,169,203,214,3165,2500, - 202,211,212,213,215,334,2730,172,2687,1000, - 4600,331,440,318,2302,320,163,2378,2111,316, - 2202,195,170,171,173,174,175,176,177,2395, - 38,963,36,163,2460,34,991,31,35,30, - 32,788,261,29,27,55,1004,110,80,81, - 111,2062,2395,38,963,36,3648,2460,34,991, - 31,35,30,32,788,261,29,27,55,1004, - 110,80,81,111,2065,1083,38,963,36,3751, - 2172,34,991,337,35,2717,2915,327,38,1819, - 383,1219,38,3267,36,3102,3627,34,991,337, - 35,2378,2707,3136,387,417,3769,88,2581,1525, - 169,2852,1000,169,2713,2365,508,1000,54,169, - 2209,38,389,1186,508,2378,2378,3825,4600,1799, - 2807,318,2302,320,228,373,159,313,2202,169, - 303,159,349,2778,4600,330,165,318,2302,320, - 3276,1474,2845,313,2202,205,214,3165,3330,204, - 211,212,213,215,4291,302,508,508,580,342, - 2173,848,347,295,1021,2709,2038,206,1605,2950, - 2365,2581,3497,169,169,526,2716,2787,2852,1347, - 487,207,208,209,210,291,292,293,294,228, - 2449,2825,2722,2718,3753,1330,38,1819,383,159, - 3771,1057,508,169,1576,2365,3627,4259,2365,165, - 205,214,3165,2199,204,211,212,213,215,2863, - 3809,2378,2724,2365,3009,3474,54,3009,378,2522, - 2723,169,206,3928,2950,2365,375,1799,52,2947, - 408,3273,228,508,2378,508,207,208,209,210, - 291,292,293,294,341,330,2170,508,1576,2731, - 4302,1804,2365,205,214,3165,2207,204,211,212, - 213,215,2934,3557,5104,2378,2365,3838,2383,3373, - 333,3009,169,221,5104,206,869,2950,2378,5104, - 1976,3438,4247,357,508,228,357,5104,305,207, - 208,209,210,291,292,293,294,5104,1689,2894, - 2941,2783,2894,2941,298,5104,205,214,3165,5104, - 204,211,212,213,215,2677,5104,194,3492,2365, - 2546,38,1819,383,5104,2456,5104,5104,206,5104, - 2950,169,237,261,5104,2365,3389,5104,228,5104, - 357,509,207,208,209,210,291,292,293,294, - 5104,273,5104,5104,341,2948,2894,2941,1347,205, - 214,3165,5104,204,211,212,213,215,1729,38, - 963,36,2750,5104,34,991,337,35,2383,5104, - 231,206,5104,2950,5104,414,38,1819,383,5104, - 1979,5104,5104,5104,217,207,208,209,210,291, - 292,293,294,5104,5104,5104,5104,5104,235,229, - 230,327,38,1819,383,5104,54,5104,2947,274, - 5104,4600,5104,5104,318,2302,320,1799,52,5104, - 313,2202,5104,5104,5104,349,242,245,248,251, - 2771,5104,54,5104,5104,515,2082,1987,5104,5104, - 5104,5104,5104,1799,2379,5104,5104,5104,3386,333, - 5104,5104,342,2173,848,347,5104,2395,38,963, - 36,516,2460,34,991,31,35,30,32,788, - 261,29,27,55,1004,110,80,81,87,2395, - 38,963,36,5104,2460,34,991,31,35,30, - 32,788,261,29,27,55,1004,110,80,81, - 86,2395,38,963,36,5104,2460,34,991,31, - 35,30,32,788,261,29,27,55,1004,110, - 80,81,85,2395,38,963,36,5104,2460,34, - 991,31,35,30,32,788,261,29,27,55, - 1004,110,80,81,84,2395,38,963,36,5104, - 2460,34,991,31,35,30,32,788,261,29, - 27,55,1004,110,80,81,83,2395,38,963, - 36,5104,2460,34,991,31,35,30,32,788, - 261,29,27,55,1004,110,80,81,82,2252, - 38,963,36,5104,2460,34,991,31,35,30, - 32,788,261,29,27,55,1004,110,80,81, - 108,2395,38,963,36,5104,2460,34,991,31, - 35,30,32,788,261,29,27,55,1004,110, - 80,81,113,2395,38,963,36,5104,2460,34, - 991,31,35,30,32,788,261,29,27,55, - 1004,110,80,81,112,2395,38,963,36,5104, - 2460,34,991,31,35,30,32,788,261,29, - 27,55,1004,110,80,81,109,1450,38,963, - 36,5104,3627,34,991,337,35,5104,5104,1297, - 38,963,36,3102,5104,34,991,337,35,5104, - 1588,38,3267,36,3102,5104,34,991,337,35, - 5104,1159,38,963,36,3631,5104,34,991,337, - 35,2581,5104,5104,5104,1000,5104,5104,5104,5104, - 4600,331,2581,318,2302,320,1000,169,5104,314, - 2202,1000,4600,5104,349,318,2302,320,5104,159, - 396,313,2202,4600,5104,5104,318,2302,320,165, - 159,5104,313,2202,4600,159,2451,315,3246,320, - 165,344,2173,848,347,2382,5104,580,5104,5104, - 2056,38,963,36,3102,5104,34,991,337,35, - 5104,1173,38,963,36,5104,3627,34,991,337, - 35,169,5104,169,5104,1000,5104,2365,5104,5104, - 5104,306,310,2056,38,963,36,3102,5104,34, - 991,337,35,3807,5104,5104,341,5104,5104,159, - 3794,5104,5104,4600,3844,5104,318,2302,320,1731, - 5104,3743,313,2202,4600,331,5104,318,2302,320, - 2383,1349,5104,314,2202,2365,4587,2451,5104,409, - 3273,5104,1647,5104,3160,5104,4600,5104,5104,318, - 2302,320,5104,5104,228,313,2202,5104,2194,38, - 1819,383,501,38,1819,383,5104,5104,5104,1347, - 3780,2194,38,1819,383,1052,400,4281,2194,38, - 1819,383,307,310,2194,38,1819,383,5104,54, - 169,5104,5104,54,1000,5104,5104,401,5104,2950, - 1799,52,54,5104,1799,52,5104,5104,169,54, - 5104,5104,1000,1799,52,54,5104,5104,159,2388, - 1799,52,5104,2072,5104,5104,1799,52,1896,2947, - 5104,5104,3361,5104,169,2942,159,5104,526,3444, - 2194,38,1819,383,5104,3470,2307,5104,2214,38, - 1819,383,5104,2217,38,1819,383,341,5104,5104, - 5104,5104,159,327,38,1819,383,5104,5104,3535, - 333,54,1318,327,38,1819,383,5104,5104,54, - 5104,2383,1799,52,54,5104,5104,5104,402,405, - 1799,52,5104,1479,54,1799,52,327,38,1819, - 383,3521,5104,169,54,1799,665,2365,5104,2488, - 327,38,1819,383,3517,1799,2701,5104,169,169, - 169,169,1000,526,526,526,341,5104,54,5104, - 5104,169,169,169,5104,2365,2365,1000,5104,1799, - 1505,54,341,341,341,5104,159,159,159,159, - 2383,5104,1799,1547,341,341,2563,191,191,191, - 169,159,497,5104,1000,5104,4383,4383,4383,5104, - 5104,1941,5104,5104,5104,5104,5104,5104,2383,2383, - 5104,5104,5104,5104,5104,5104,5104,5104,159,5104, - 495,523,5104,5104,5104,5104,5104,5104,3793,5104, - 5104,5104,5104,5104,5104,5104,5104,5104,5104,5104, - 5104,5104,5104,5104,5104,5104,5104,5104,5104,5104, - 5104,5104,5104,5104,5104,5104,5104,5104,5104,5104, - 5104,5104,5104,5104,3495,3656,3664,5104,0,42, - 5122,0,42,5121,0,560,33,0,442,778, - 0,41,5122,0,41,5121,0,2513,129,0, - 1,432,0,446,1054,0,445,1348,0,560, - 44,0,1810,95,0,560,382,0,36,383, - 0,383,36,0,560,33,382,0,33,382, - 0,382,33,0,42,2166,0,1,549,0, - 1,5376,0,1,5375,0,1,5374,0,1, - 5373,0,1,5372,0,1,5371,0,1,5370, - 0,1,5369,0,1,5368,0,1,5367,0, - 1,5366,0,42,1,5122,0,42,1,5121, - 0,987,1,0,5337,240,0,5336,240,0, - 5440,240,0,5439,240,0,5364,240,0,5363, - 240,0,5362,240,0,5361,240,0,5360,240, - 0,5359,240,0,5358,240,0,5357,240,0, - 5376,240,0,5375,240,0,5374,240,0,5373, - 240,0,5372,240,0,5371,240,0,5370,240, - 0,5369,240,0,5368,240,0,5367,240,0, - 5366,240,0,42,240,5122,0,42,240,5121, - 0,5145,240,0,53,5122,0,53,5121,0, - 48,5143,0,48,40,0,5122,53,0,5121, - 53,0,2513,131,0,2513,130,0,236,2723, - 0,30,507,0,5432,433,0,847,433,0, - 1,96,0,40,52,0,5145,1,0,42, - 1,0,52,40,0,5145,227,1,0,42, - 227,1,0,227,407,0,40,5122,0,40, - 5121,0,5143,50,0,50,40,0,5122,39, - 0,5121,39,0,1,5122,2,0,1,5121, - 2,0,40,5122,2,0,40,5121,2,0, - 5114,398,0,5113,398,0,1,2675,0,1, - 2166,0,1,2649,0,227,406,0,5432,99, - 0,847,99,0,3191,317,0,1,5432,0, - 1,847,0,42,1,5122,2,0,42,1, - 5121,2,0,42,5122,2,0,42,5121,2, - 0,278,3059,0,1,3355,0,1,3370,0, - 5112,1,0,489,3716,0,227,1,0,227, - 1,3426,0,5114,227,0,5113,227,0,3647, - 227,0,8,10,0,227,219,0,227,218, - 0,188,3384,0 + 169,4,52,77,77,32,32,63,63,38, + 38,189,189,190,190,191,191,1,1,14, + 14,14,14,14,14,14,14,15,15,15, + 13,10,10,8,8,8,8,8,8,2, + 64,64,5,5,11,11,11,11,42,42, + 131,131,132,60,60,41,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,133,133,133,113, + 113,17,17,17,17,17,17,17,17,17, + 17,17,17,17,18,18,170,170,171,171, + 172,136,136,137,137,134,134,138,135,135, + 19,19,20,21,21,21,23,23,23,23, + 24,24,24,25,25,25,26,26,26,26, + 26,28,28,28,29,29,30,30,31,31, + 33,33,35,35,36,36,40,40,39,39, + 39,39,39,39,39,39,39,39,39,39, + 39,37,27,139,139,97,97,101,101,92, + 192,192,68,68,68,68,68,68,68,68, + 68,69,69,69,70,70,54,54,173,173, + 71,71,71,114,114,72,72,72,72,73, + 73,73,73,73,74,74,78,78,78,78, + 78,78,78,47,47,47,47,47,104,104, + 105,105,48,174,22,22,22,22,22,45, + 45,87,87,87,87,87,146,146,141,141, + 141,141,141,142,142,142,143,143,143,144, + 144,144,145,145,145,88,88,88,88,88, + 89,89,89,12,12,12,12,12,12,12, + 12,12,12,12,100,118,118,118,118,118, + 116,116,116,117,117,148,148,147,147,120, + 120,149,82,82,83,83,85,86,84,50, + 44,150,150,51,49,81,81,151,151,140, + 140,121,122,122,76,76,152,152,61,61, + 61,56,56,55,62,62,66,66,53,53, + 53,90,90,99,98,98,59,59,57,57, + 58,58,46,102,102,102,93,93,93,94, + 95,95,95,96,96,106,106,106,108,108, + 107,107,193,193,91,91,176,176,176,176, + 176,124,43,43,154,175,175,125,125,125, + 125,177,177,34,34,115,126,126,126,126, + 109,109,119,119,119,156,157,157,157,157, + 157,157,157,157,157,180,180,178,178,179, + 179,158,158,158,158,159,181,111,110,110, + 182,182,160,160,160,160,103,103,103,183, + 183,9,184,184,185,161,153,153,162,162, + 163,164,164,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,65,67, + 67,167,167,127,127,128,128,128,128,128, + 128,3,168,168,165,165,129,129,129,79, + 80,75,155,155,112,112,186,186,186,130, + 130,123,123,187,187,169,169,969,39,2419, + 2414,2705,3170,34,1096,31,35,30,32,2370, + 29,27,56,1114,112,82,83,113,1156,860, + 1212,1182,1247,1224,2826,1338,1257,1628,1554,982, + 1636,274,1677,148,390,2697,163,149,1071,39, + 1085,36,1540,2922,34,1096,338,35,418,1777, + 2792,38,2402,39,1085,36,233,2728,34,1096, + 31,35,30,32,992,29,27,56,1114,112, + 82,83,113,1156,486,1212,1182,1247,1224,1321, + 1338,1257,1628,2238,236,231,232,1806,2635,3481, + 4491,332,3280,319,2866,321,2609,275,852,315, + 2748,418,39,2816,350,418,39,2792,2815,418, + 39,282,243,246,249,252,2141,418,2889,1028, + 39,1085,36,1865,2708,34,1096,31,35,63, + 32,345,1506,1283,348,1980,609,1748,3175,3155, + 3210,3265,3313,2945,1552,39,1085,36,2329,2728, + 34,1096,31,35,2565,32,992,29,27,56, + 1114,112,82,83,113,1156,342,1212,1182,1247, + 1224,2032,1338,1257,1628,1554,776,1636,2652,1677, + 148,1337,412,506,149,983,1352,39,1085,36, + 2544,2708,34,1096,31,35,62,32,418,39, + 2775,2732,507,1552,39,1085,36,2329,2728,34, + 1096,31,35,2565,32,992,29,27,56,1114, + 112,82,83,113,1156,342,1212,1182,1247,1224, + 860,1338,1257,1628,1554,3537,1636,286,1677,148, + 429,2032,506,149,66,39,1736,47,487,2544, + 46,1096,67,2182,39,280,2148,1395,39,1085, + 36,507,3726,34,1096,31,35,30,32,708, + 500,313,2936,502,1611,1817,39,1085,36,2329, + 2728,34,1096,31,35,2565,32,992,29,27, + 56,1114,112,82,83,113,1156,342,1212,1182, + 1247,1224,2032,1338,1257,1628,1554,611,1636,2556, + 1677,148,2589,94,506,149,108,2807,449,66, + 1413,2544,1224,39,1085,36,631,126,34,1096, + 44,35,502,507,1618,39,1085,36,635,2728, + 34,1096,31,35,30,32,992,29,27,56, + 1114,112,82,83,113,1156,860,1212,1182,1247, + 1224,4470,1338,1257,1628,1554,432,1636,2734,1677, + 148,2589,214,377,149,2402,39,1085,36,448, + 2728,34,1096,31,35,30,32,992,29,27, + 56,1114,112,82,83,113,1156,380,1212,2094, + 1690,39,1085,36,503,2728,34,1096,31,35, + 30,32,992,29,27,56,1114,112,82,83, + 113,1156,445,1212,1182,1247,1224,2092,1338,1257, + 1628,1554,2065,1636,31,1677,148,302,994,377, + 149,1097,39,1085,36,654,3726,34,1096,31, + 35,65,32,1308,1540,2182,39,278,2922,381, + 1254,2004,952,378,1987,39,1085,36,436,2728, + 34,1096,31,35,30,32,992,29,27,56, + 1114,112,82,83,113,1156,28,1212,1182,1247, + 1224,1836,1338,1257,1628,1554,852,1636,1310,1677, + 148,31,2329,163,149,674,331,1097,39,1085, + 36,3701,3726,34,1096,31,35,64,32,2926, + 2878,1987,39,1085,36,382,2728,34,1096,31, + 35,30,32,992,29,27,56,1114,112,82, + 83,113,1156,1124,1212,1182,1247,1224,860,1338, + 1257,1628,1554,3778,1636,742,1677,148,48,2776, + 371,149,1987,39,1085,36,918,2728,34,1096, + 31,35,30,32,992,29,27,56,1114,112, + 82,83,113,1156,2587,1212,1182,1247,1224,359, + 1338,1257,1628,1554,1420,1636,1736,1677,148,2922, + 1288,371,149,609,1987,39,1085,36,2208,2728, + 34,1096,31,35,30,32,992,29,27,56, + 1114,112,82,83,113,1156,946,1212,1182,1247, + 1224,1401,1338,1257,1628,1554,1463,1636,1540,1677, + 148,4378,2657,371,149,370,398,332,1927,39, + 1085,36,1081,2728,34,1096,31,35,30,32, + 992,29,27,56,1114,112,82,83,113,1156, + 75,1212,1182,1247,1224,860,1338,1257,1628,1554, + 4382,1636,1063,1677,148,31,369,377,149,994, + 1752,39,1085,36,1782,2728,34,1096,31,35, + 30,32,992,29,27,56,1114,112,82,83, + 113,1156,161,1212,1182,1247,1224,154,1338,1257, + 1628,1554,984,1636,2697,1677,148,75,367,147, + 149,1987,39,1085,36,2416,2728,34,1096,31, + 35,30,32,992,29,27,56,1114,112,82, + 83,113,1156,1491,1212,1182,1247,1224,1308,1338, + 1257,1628,1554,2922,1636,354,1677,148,99,161, + 164,149,521,375,1987,39,1085,36,374,2728, + 34,1096,31,35,30,32,992,29,27,56, + 1114,112,82,83,113,1156,2652,1212,1182,1247, + 1224,2541,1338,1257,1628,1554,2697,1636,233,1677, + 148,1695,2657,160,149,1987,39,1085,36,351, + 2728,34,1096,31,35,30,32,992,29,27, + 56,1114,112,82,83,113,1156,2118,1212,1182, + 1247,1224,2657,1338,1257,1628,1554,512,1636,31, + 1677,148,2032,733,159,149,1987,39,1085,36, + 374,2728,34,1096,31,35,30,32,992,29, + 27,56,1114,112,82,83,113,1156,372,1212, + 1182,1247,1224,860,1338,1257,1628,1554,4391,1636, + 2212,1677,148,2032,100,158,149,1987,39,1085, + 36,852,2728,34,1096,31,35,30,32,992, + 29,27,56,1114,112,82,83,113,1156,1078, + 1212,1182,1247,1224,2032,1338,1257,1628,1554,4169, + 1636,95,1677,148,108,353,157,149,1987,39, + 1085,36,521,2728,34,1096,31,35,30,32, + 992,29,27,56,1114,112,82,83,113,1156, + 3289,1212,1182,1247,1224,323,1338,1257,1628,1554, + 57,1636,521,1677,148,1598,2149,156,149,1987, + 39,1085,36,390,2728,34,1096,31,35,30, + 32,992,29,27,56,1114,112,82,83,113, + 1156,326,1212,1182,1247,1224,2032,1338,1257,1628, + 1554,1598,1636,31,1677,148,2032,1782,155,149, + 1987,39,1085,36,947,2728,34,1096,31,35, + 30,32,992,29,27,56,1114,112,82,83, + 113,1156,352,1212,1182,1247,1224,1958,1338,1257, + 1628,1554,860,1636,31,1677,148,4443,4344,154, + 149,1987,39,1085,36,390,2728,34,1096,31, + 35,30,32,992,29,27,56,1114,112,82, + 83,113,1156,103,1212,1182,1247,1224,76,1338, + 1257,1628,1554,104,1636,31,1677,148,1027,2442, + 153,149,1987,39,1085,36,1188,2728,34,1096, + 31,35,30,32,992,29,27,56,1114,112, + 82,83,113,1156,77,1212,1182,1247,1224,2046, + 1338,1257,1628,1554,860,1636,1561,1677,148,4456, + 2603,152,149,1987,39,1085,36,978,2728,34, + 1096,31,35,30,32,992,29,27,56,1114, + 112,82,83,113,1156,1797,1212,1182,1247,1224, + 2922,1338,1257,1628,1554,2697,1636,31,1677,148, + 1163,2811,151,149,1987,39,1085,36,1418,2728, + 34,1096,31,35,30,32,992,29,27,56, + 1114,112,82,83,113,1156,1170,1212,1182,1247, + 1224,1441,1338,1257,1628,1554,1342,1636,1695,1677, + 148,418,3309,150,149,1882,39,1085,36,515, + 2728,34,1096,31,35,30,32,992,29,27, + 56,1114,112,82,83,113,1156,1040,1212,1182, + 1247,1224,1344,1338,1257,1628,1554,1156,1636,31, + 2803,169,1465,994,1987,39,1085,36,1678,2728, + 34,1096,31,35,30,32,992,29,27,56, + 1114,112,82,83,113,1156,161,1212,1182,1247, + 1224,2697,1338,1257,1628,1554,1423,1636,1766,1677, + 148,102,327,145,149,1308,418,39,1746,384, + 2922,2577,1789,2309,39,1085,36,1454,2728,34, + 1096,31,35,30,32,992,29,27,56,1114, + 112,82,83,113,1156,1607,1212,1182,1247,1224, + 55,1338,1257,1628,1554,514,1636,52,1677,148, + 328,334,194,149,2402,39,1085,36,331,2728, + 34,1096,31,35,30,32,992,29,27,56, + 1114,112,82,83,113,1156,2089,1212,1182,1247, + 1224,1540,1338,1257,1628,1554,1540,1636,2115,2803, + 169,2402,39,1085,36,2797,2728,34,1096,31, + 35,30,32,992,29,27,56,1114,112,82, + 83,113,1156,74,1212,1182,1247,1224,59,1338, + 1257,1628,1554,1972,1636,1979,2803,169,1224,39, + 1085,36,1540,2103,34,1096,2297,35,418,39, + 2792,277,2402,39,1085,36,290,2728,34,1096, + 31,35,30,32,992,29,27,56,1114,112, + 82,83,113,1156,93,1212,1182,1247,1224,1540, + 1338,1257,1628,1554,1540,1636,248,2803,169,2402, + 39,1085,36,1546,2728,34,1096,31,35,30, + 32,992,29,27,56,1114,112,82,83,113, + 1156,58,1212,1182,1247,1224,96,1338,1257,1628, + 1554,424,1636,600,2803,169,1224,39,1085,36, + 1540,682,34,1096,339,35,418,2943,2792,80, + 2402,39,1085,36,414,2728,34,1096,31,35, + 30,32,992,29,27,56,1114,112,82,83, + 113,1156,349,1212,1182,1247,1224,1540,1338,1257, + 1628,1554,1540,1636,1435,2803,169,2447,39,1085, + 36,413,2728,34,1096,31,35,30,32,992, + 29,27,56,1114,112,82,83,113,1156,2833, + 1212,1182,1247,1224,2851,1338,1257,1628,1554,2216, + 1636,31,2803,169,1676,665,418,39,1746,384, + 761,1318,39,2609,1666,2644,3225,2715,2402,39, + 1085,36,416,2728,34,1096,31,35,30,32, + 992,29,27,56,1114,112,82,83,113,1156, + 422,1212,1182,1247,1224,55,1338,1257,1628,1554, + 2299,2364,1741,728,2524,2402,39,1085,36,3393, + 2728,34,1096,31,35,30,32,992,29,27, + 56,1114,112,82,83,113,1156,1388,1212,1182, + 1247,1224,2693,1338,1257,2207,2402,39,1085,36, + 155,2728,34,1096,31,35,30,32,992,29, + 27,56,1114,112,82,83,113,1156,1425,1212, + 1182,1247,1224,187,1338,2220,2402,39,1085,36, + 1625,2728,34,1096,31,35,30,32,992,29, + 27,56,1114,112,82,83,113,1156,1100,1212, + 1182,1247,1224,1802,2140,2402,39,1085,36,1078, + 2728,34,1096,31,35,30,32,992,29,27, + 56,1114,112,82,83,113,1156,2218,1212,1182, + 1247,2145,2402,39,1085,36,396,2728,34,1096, + 31,35,30,32,992,29,27,56,1114,112, + 82,83,113,1156,513,1212,1182,1247,2147,2492, + 39,1746,384,1540,2420,400,385,2402,39,1085, + 36,238,2728,34,1096,31,35,30,32,992, + 29,27,56,1114,112,82,83,113,1156,249, + 1212,1182,2006,274,1189,73,2402,39,1085,36, + 2220,2728,34,1096,31,35,30,32,992,29, + 27,56,1114,112,82,83,113,1156,233,1212, + 1182,2041,2402,39,1085,36,611,2728,34,1096, + 31,35,30,32,992,29,27,56,1114,112, + 82,83,113,1156,2632,1906,236,231,232,2575, + 506,39,1746,384,1224,39,1085,36,2795,275, + 34,1096,2990,35,1270,39,1746,384,2194,39, + 2792,2977,425,1802,243,246,249,252,2141,418, + 3408,1469,39,442,55,1865,4395,2194,39,2792, + 277,1741,2656,2232,418,39,1746,384,274,2500, + 3175,3155,3210,3265,3313,2945,2402,39,1085,36, + 2464,2728,34,1096,31,35,30,32,992,29, + 27,56,1114,112,82,83,113,1156,274,1212, + 1182,2043,2402,39,1085,36,283,2728,34,1096, + 31,35,30,32,992,29,27,56,1114,112, + 82,83,113,1156,177,1212,1182,2051,527,1213, + 39,1085,36,3692,2846,34,1096,338,35,2501, + 513,2071,2533,2416,1599,2329,230,78,1835,1336, + 1540,161,386,418,1116,1867,1936,436,2329,2922, + 3335,3019,185,342,276,1119,2495,205,216,3525, + 2329,204,213,214,215,217,2878,1344,174,1, + 1540,4491,72,527,319,2866,321,1126,2878,1919, + 314,2748,188,172,173,175,176,177,178,179, + 1540,230,1540,425,31,3088,161,331,994,1064, + 350,1802,71,435,3107,3110,3019,185,2354,39, + 390,2721,205,216,3525,2329,204,213,214,215, + 217,161,70,174,2966,2017,2577,343,1506,1283, + 348,2359,186,230,2797,358,341,189,172,173, + 175,176,177,178,179,512,478,494,1166,1980, + 2092,2859,2862,1041,207,216,3525,994,206,213, + 214,215,217,2746,284,333,334,2329,2035,1604, + 3373,3368,2554,2188,39,278,208,31,2888,425, + 165,2861,31,491,493,230,994,2579,2428,218, + 209,210,211,212,292,293,294,295,594,39, + 1746,384,2131,387,418,420,207,216,3525,3675, + 206,213,214,215,217,3743,3205,3124,1537,39, + 1746,384,31,3052,2179,631,2689,3018,208,2833, + 2888,1116,55,2329,350,2329,2922,3156,2654,1741, + 962,218,209,210,211,212,292,293,294,295, + 1916,230,55,2878,418,39,1746,384,2434,1741, + 564,343,1506,1283,348,2198,1741,3743,3467,2919, + 2050,31,207,216,3525,3286,206,213,214,215, + 217,2848,1866,1326,331,2329,2936,1436,425,389, + 418,31,2922,1006,208,3109,2888,418,39,2792, + 281,1976,2889,230,324,2552,2647,218,209,210, + 211,212,292,293,294,295,418,39,1746,384, + 2185,568,358,31,207,216,3525,2659,206,213, + 214,215,217,3743,3522,2191,2230,2092,2859,2862, + 332,31,1868,39,442,3388,208,4395,2888,471, + 55,1515,2158,350,601,2329,2173,1741,804,218, + 209,210,211,212,292,293,294,295,1054,39, + 1085,36,3543,2878,34,1096,338,35,830,1746, + 345,1506,1283,348,1836,3743,3681,2402,39,1085, + 36,2394,2728,34,1096,31,35,30,32,992, + 29,27,56,1114,112,82,83,113,1156,425, + 1212,2134,418,39,1746,384,418,39,2792,279, + 4491,285,325,319,2866,321,2648,2117,265,314, + 2748,837,527,2292,350,2549,39,1746,384,31, + 2420,1041,358,3020,2993,994,55,239,2443,2901, + 230,50,2776,1741,2845,161,31,2602,2859,2862, + 3650,343,1506,1283,348,3019,185,2411,165,274, + 2984,205,216,3525,1957,204,213,214,215,217, + 2218,1540,174,2669,1202,39,1085,36,3692,2922, + 34,1096,338,35,233,2526,3398,172,173,175, + 176,177,178,179,439,3107,3110,2653,2691,2218, + 1515,2548,1361,61,2329,2329,2329,4479,300,388, + 418,353,237,231,232,527,2692,31,2203,777, + 1540,2329,2878,2878,230,275,4491,331,1999,319, + 2866,321,1566,230,364,314,2748,184,161,342, + 244,247,250,253,2141,1138,401,4316,3019,185, + 626,1865,60,31,205,216,3525,2566,204,213, + 214,215,217,2544,4223,174,31,402,1540,2888, + 527,2670,441,31,31,1792,527,2396,994,181, + 172,173,175,176,177,178,179,2711,342,1344, + 2699,358,494,161,230,307,311,2739,1540,161, + 322,161,1540,1911,2718,2864,3122,2859,2862,3019, + 185,2333,2544,2732,3475,205,216,3525,2243,204, + 213,214,215,217,1168,3409,174,529,491,493, + 107,527,2740,865,3233,1187,418,39,2792,3036, + 192,172,173,175,176,177,178,179,2577,230, + 1877,39,1746,384,161,2033,1478,2518,403,406, + 994,2329,31,953,3019,185,1172,240,3379,31, + 205,216,3525,1342,204,213,214,215,217,342, + 2218,174,617,161,55,1802,527,330,334,520, + 1403,1741,1367,525,233,3473,172,173,175,176, + 177,178,179,2544,230,1973,39,1746,384,161, + 2464,2773,31,31,233,523,2329,4241,200,3019, + 185,2784,245,231,232,205,216,3525,2786,204, + 213,214,215,217,342,2788,174,705,2218,55, + 2713,527,241,231,232,2059,1741,53,298,233, + 195,172,173,175,176,177,178,179,2544,230, + 506,39,1746,384,161,783,1976,2889,31,31, + 1798,1540,3021,1265,3019,185,199,248,231,232, + 205,216,3525,2456,204,213,214,215,217,2218, + 1867,174,793,2116,55,3335,527,418,39,1746, + 384,1741,53,440,233,191,172,173,175,176, + 177,178,179,2642,230,2200,39,1746,384,161, + 639,418,39,1746,384,559,1540,203,2731,3019, + 185,424,251,231,232,205,216,3525,2218,204, + 213,214,215,217,3333,519,174,881,2800,55, + 1523,527,233,2744,527,423,1741,53,3557,1685, + 198,172,173,175,176,177,178,179,1344,230, + 2793,89,3588,2733,161,2136,201,161,1996,31, + 254,231,232,1372,3019,185,285,167,2797,2794, + 205,216,3525,1166,204,213,214,215,217,57, + 2810,174,1526,39,1085,36,2741,2801,34,1096, + 338,35,2802,2611,2901,197,172,173,175,176, + 177,178,179,2402,39,1085,36,2577,2728,34, + 1096,31,35,30,32,992,29,27,56,1114, + 112,82,83,113,1156,2712,1918,1802,1041,3639, + 421,3482,994,1704,4491,2218,31,319,2866,321, + 2621,31,2218,314,2748,2543,3182,334,350,31, + 2034,5095,31,2329,2329,165,2673,5095,3088,1171, + 39,3038,36,3692,2922,34,1096,338,35,5095, + 31,342,342,222,2739,343,1506,1283,348,2873, + 4531,1540,1802,2329,2050,1543,39,1085,36,2994, + 305,34,1096,338,35,2544,711,418,39,1746, + 384,230,1540,1308,4462,31,31,1828,2922,2791, + 994,4491,331,3092,319,2866,321,2218,1540,5095, + 314,2748,207,216,3525,2991,206,213,214,215, + 217,55,2495,161,3147,531,2329,4491,1741,985, + 316,3017,321,2550,208,297,2888,2659,31,4223, + 3202,2329,4190,5095,2878,304,331,488,209,210, + 211,212,292,293,294,295,2354,39,390,230, + 2357,39,1085,36,5095,2728,34,1096,31,35, + 30,32,992,29,27,56,1114,92,82,83, + 207,216,3525,568,206,213,214,215,217,2935, + 2519,5095,2218,2329,3795,418,39,1746,384,1041, + 1344,31,208,994,2888,864,445,409,3039,5095, + 2218,230,1540,494,1540,509,209,210,211,212, + 292,293,294,295,431,1540,165,2937,2268,441, + 4539,1802,207,216,3525,5095,206,213,214,215, + 217,2960,1308,5095,1705,2329,1821,2922,303,492, + 493,2520,5095,5095,208,1540,2888,376,31,2577, + 5095,5095,2329,230,2218,3133,5095,306,209,210, + 211,212,292,293,294,295,418,39,1746,384, + 342,2354,39,390,207,216,3525,3811,206,213, + 214,215,217,2761,296,331,3040,2329,3189,334, + 5095,1540,4540,5095,2544,5095,208,1041,2888,5095, + 55,994,2218,5095,379,230,1842,1741,564,510, + 209,210,211,212,292,293,294,295,594,39, + 1746,384,4290,3312,165,31,207,216,3525,2329, + 206,213,214,215,217,1679,39,1085,36,3543, + 223,34,1096,338,35,31,2218,342,208,994, + 2888,2218,55,1540,418,39,291,5095,5095,1741, + 53,219,209,210,211,212,292,293,294,295, + 5095,2544,161,5095,5095,418,39,291,2424,5095, + 3432,5095,2580,2087,299,3367,5095,4491,5095,196, + 319,2866,321,5095,3118,5095,314,2748,5095,5095, + 5095,350,5095,5095,5095,5095,5095,2402,39,1085, + 36,516,2728,34,1096,31,35,30,32,992, + 29,27,56,1114,112,82,83,91,343,1506, + 1283,348,5095,2402,39,1085,36,517,2728,34, + 1096,31,35,30,32,992,29,27,56,1114, + 112,82,83,113,1953,2402,39,1085,36,5095, + 2728,34,1096,31,35,30,32,992,29,27, + 56,1114,112,82,83,113,1955,2402,39,1085, + 36,5095,2728,34,1096,31,35,30,32,992, + 29,27,56,1114,112,82,83,113,1963,2402, + 1777,1085,1787,3660,2728,34,1096,31,35,30, + 32,992,29,27,56,1114,112,82,83,90, + 2402,39,1085,36,3806,2728,34,1096,31,35, + 30,32,992,29,27,56,1114,112,82,83, + 89,2402,39,1085,36,5095,2728,34,1096,31, + 35,30,32,992,29,27,56,1114,112,82, + 83,88,2402,39,1085,36,5095,2728,34,1096, + 31,35,30,32,992,29,27,56,1114,112, + 82,83,87,2402,39,1085,36,5095,2728,34, + 1096,31,35,30,32,992,29,27,56,1114, + 112,82,83,86,2402,39,1085,36,5095,2728, + 34,1096,31,35,30,32,992,29,27,56, + 1114,112,82,83,85,2402,39,1085,36,5095, + 2728,34,1096,31,35,30,32,992,29,27, + 56,1114,112,82,83,84,2262,39,1085,36, + 5095,2728,34,1096,31,35,30,32,992,29, + 27,56,1114,112,82,83,110,2402,39,1085, + 36,5095,2728,34,1096,31,35,30,32,992, + 29,27,56,1114,112,82,83,115,2402,39, + 1085,36,5095,2728,34,1096,31,35,30,32, + 992,29,27,56,1114,112,82,83,114,2402, + 39,1085,36,5095,2728,34,1096,31,35,30, + 32,992,29,27,56,1114,112,82,83,111, + 1459,39,1085,36,3692,5095,34,1096,338,35, + 5095,1667,39,3038,36,3692,5095,34,1096,338, + 35,5095,1213,39,1085,36,3692,5095,34,1096, + 338,35,5095,1191,39,1085,36,5095,2922,34, + 1096,338,35,2521,1041,5095,5095,994,994,5095, + 5095,1344,4491,5095,5095,319,2866,321,5095,5095, + 5095,314,2748,4491,5095,5095,319,2866,321,5095, + 161,165,314,2748,4491,5095,626,319,2866,321, + 3358,202,5095,314,2748,4491,332,531,319,2866, + 321,5095,5095,5095,317,2748,5095,5095,626,5095, + 1191,39,1085,36,5095,2922,34,1096,338,35, + 2577,1213,39,1085,36,3692,5095,34,1096,338, + 35,307,311,5095,5095,5095,1304,39,1085,36, + 3499,5095,34,1096,338,35,5095,5095,31,5095, + 3762,3291,527,308,311,5095,5095,5095,5095,3399, + 334,3409,4491,332,1278,319,2866,321,2329,4479, + 342,315,2748,4491,397,161,319,2866,321,410, + 3039,5095,314,2748,5095,984,230,5095,4491,5095, + 5095,316,3017,321,2544,5095,5095,3427,2200,39, + 1746,384,2200,39,1746,384,1962,1138,401,4316, + 5095,2200,39,1746,384,2200,39,1746,384,5095, + 5095,5095,5095,31,31,5095,31,994,527,402, + 2329,2888,55,5095,5095,5095,55,31,5095,1741, + 53,2329,5095,1741,53,55,342,5095,342,55, + 161,161,1741,53,5095,5095,1741,53,2764,342, + 2600,193,3317,2497,39,1746,384,2864,5095,31, + 4301,3341,2544,994,5095,3645,2522,39,1746,384, + 5095,5095,1523,2544,498,5095,994,5095,2937,5095, + 418,39,1746,384,5095,496,161,55,5095,418, + 39,1746,384,31,1741,53,1536,2329,5095,161, + 55,418,39,1746,384,5095,5095,1741,53,167, + 403,405,5095,3814,55,342,5095,5095,5095,5095, + 5095,1741,2683,55,5095,31,3835,5095,3521,527, + 1741,1513,2273,31,3022,55,2077,527,5095,2544, + 2329,1523,1741,1595,5095,994,5095,342,5095,1523, + 1523,524,161,994,994,342,5095,31,342,5095, + 161,994,193,5095,5095,5095,5095,5095,161,5095, + 193,4301,5095,3642,5095,5095,161,161,167,4301, + 5095,5095,3640,5095,161,5095,167,167,5095,5095, + 5095,5095,5095,5095,3705,5095,5095,5095,5095,5095, + 5095,5095,5095,5095,5095,5095,5095,5095,5095,5095, + 5095,5095,5095,5095,5095,5095,5095,5095,5095,5095, + 5095,5095,5095,5095,5095,5095,5095,5095,5095,5095, + 5095,5095,5095,5095,5095,5095,5095,5095,5095,3542, + 5095,5095,3714,5095,5095,5095,5095,3558,5095,5095, + 3751,3813,5095,5095,5095,5095,5095,5095,5095,5095, + 5095,5095,5095,5095,5095,5095,5095,5095,5095,5095, + 5095,5095,5095,5095,5095,5095,5095,5095,5095,5095, + 5095,5095,5095,5095,5095,5095,5095,5095,5095,5095, + 5095,5095,5095,5095,5095,5095,5095,5095,5095,5095, + 5095,5095,5095,5095,5095,5095,5095,5095,5095,5095, + 5095,5095,5095,5095,5095,5095,5095,5095,5095,5095, + 5095,5095,3664,5095,0,43,5113,0,43,5112, + 0,1031,33,0,443,1379,0,42,5113,0, + 42,5112,0,2476,131,0,1,433,0,447, + 771,0,446,832,0,1031,45,0,964,97, + 0,1031,383,0,39,37,0,36,38,0, + 43,578,0,1,549,0,1,5368,0,1, + 5367,0,1,5366,0,1,5365,0,1,5364, + 0,1,5363,0,1,5362,0,1,5361,0, + 1,5360,0,1,5359,0,1,5358,0,43, + 1,5113,0,43,1,5112,0,774,1,0, + 5330,242,0,5329,242,0,5432,242,0,5431, + 242,0,5357,242,0,5356,242,0,5355,242, + 0,5354,242,0,5353,242,0,5352,242,0, + 5351,242,0,5350,242,0,5368,242,0,5367, + 242,0,5366,242,0,5365,242,0,5364,242, + 0,5363,242,0,5362,242,0,5361,242,0, + 5360,242,0,5359,242,0,5358,242,0,43, + 242,5113,0,43,242,5112,0,5137,242,0, + 54,5113,0,54,5112,0,49,5135,0,49, + 41,0,5113,54,0,5112,54,0,2476,133, + 0,2476,132,0,238,2663,0,384,36,0, + 36,384,0,383,33,0,33,383,0,30, + 508,0,5424,434,0,1543,434,0,1,98, + 0,41,53,0,5137,1,0,43,1,0, + 53,41,0,5137,229,1,0,43,229,1, + 0,229,408,0,41,5113,0,41,5112,0, + 5135,51,0,51,41,0,5113,40,0,5112, + 40,0,1,5113,2,0,1,5112,2,0, + 41,5113,2,0,41,5112,2,0,5105,399, + 0,5104,399,0,1,2529,0,1,578,0, + 1,3490,0,229,407,0,5424,101,0,1543, + 101,0,39,79,0,2949,318,0,1,5424, + 0,1,1543,0,43,1,5113,2,0,43, + 1,5112,2,0,43,5113,2,0,43,5112, + 2,0,279,3468,0,1,2618,0,1,3606, + 0,5103,1,0,490,3587,0,229,1,0, + 229,1,3183,0,5105,229,0,5104,229,0, + 3391,229,0,8,10,0,229,221,0,229, + 220,0,190,3257,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1042,309 +1040,312 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,28,29, - 30,31,32,33,34,35,0,37,38,39, - 40,41,42,43,8,45,46,47,48,49, - 50,51,52,53,54,55,56,57,58,59, - 0,61,62,63,64,0,1,2,68,69, - 70,71,7,73,74,75,76,77,78,79, - 80,0,82,83,84,85,86,0,1,2, - 3,4,5,6,7,8,9,10,11,12, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,28,29,30,31,32, - 33,34,35,0,37,38,39,40,41,42, - 43,8,45,46,47,48,49,50,51,52, - 53,54,55,56,57,58,59,66,61,62, - 63,64,0,0,0,68,69,70,71,99, - 73,74,75,76,77,78,79,80,0,82, - 83,84,85,86,0,1,2,3,4,5, - 6,7,8,9,10,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,28,29,30,31,32,33,34,35, - 0,37,38,39,40,41,42,43,65,45, - 46,47,48,49,50,51,52,53,54,55, - 56,57,58,59,0,61,62,63,64,0, - 88,89,68,69,70,11,12,73,74,75, - 76,77,78,79,80,101,82,83,84,85, - 86,0,1,2,3,4,5,6,7,8, - 9,10,11,12,13,14,15,16,17,18, - 19,20,21,22,23,24,25,26,27,28, - 29,30,31,32,33,34,35,0,37,38, - 39,40,41,42,43,66,45,46,47,48, - 49,50,51,52,53,54,55,56,57,58, - 59,0,61,62,63,64,0,1,2,68, - 69,70,0,0,73,74,75,76,77,78, - 79,80,9,82,83,84,85,86,0,1, + 0,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,57,58,59, + 60,61,62,63,64,0,1,2,68,69, + 70,71,7,73,0,75,76,77,78,79, + 80,81,8,83,84,85,86,87,0,1, 2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,0,37,38,39,40,41, - 42,43,60,45,46,47,48,49,50,51, - 52,53,54,55,56,57,58,59,0,61, - 62,63,64,0,1,2,68,69,70,0, - 87,73,74,75,76,77,78,79,80,0, - 82,83,84,85,86,0,1,2,3,4, - 5,6,7,8,9,10,11,12,13,14, - 15,16,17,18,19,20,21,22,23,24, - 25,26,27,28,29,30,31,32,33,34, - 35,0,37,38,39,40,41,42,43,60, - 45,46,47,48,49,50,51,52,53,54, - 55,56,57,58,59,66,61,62,63,64, - 0,1,2,68,69,70,0,0,73,74, - 75,76,77,78,79,80,9,82,83,84, - 85,86,0,1,2,3,4,5,6,7, - 8,9,10,11,12,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 28,29,30,31,32,33,34,35,0,37, - 38,39,40,41,42,43,60,45,46,47, - 48,49,50,51,52,53,54,55,56,57, - 58,59,0,61,62,63,64,0,0,0, - 68,69,70,4,87,73,74,75,76,77, - 78,79,80,0,82,83,84,85,86,0, - 1,2,3,4,5,6,7,8,9,10, - 11,12,13,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,29,30, - 31,32,33,34,35,0,37,38,39,40, - 41,42,43,65,45,46,47,48,49,50, - 51,52,53,54,55,56,57,58,59,0, - 61,62,63,64,0,88,89,68,69,70, - 11,12,73,74,75,76,77,78,79,80, - 0,82,83,84,85,86,0,1,2,3, + 22,23,24,25,26,27,28,29,62,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,57,58,59,60,61, + 62,63,64,0,0,30,68,69,70,71, + 0,73,8,75,76,77,78,79,80,81, + 10,83,84,85,86,87,0,1,2,3, 4,5,6,7,8,9,10,11,12,13, 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,29,30,31,32,33, - 34,35,0,37,38,39,40,41,42,43, - 50,45,46,47,48,49,50,51,52,53, - 54,55,56,57,58,59,0,61,62,63, - 64,0,88,89,68,69,70,11,12,73, - 74,75,76,77,78,79,80,0,82,83, - 84,85,86,0,1,2,3,4,5,6, - 7,8,9,10,11,12,13,14,15,16, - 17,18,19,20,21,22,23,24,25,26, - 27,28,29,30,31,32,33,34,35,0, - 37,38,39,40,41,42,43,50,45,46, - 47,48,49,50,51,52,53,54,55,56, - 57,58,59,0,61,62,63,64,0,88, - 89,68,69,70,0,36,73,74,75,76, - 77,78,79,80,10,82,83,84,85,86, + 24,25,26,27,28,29,0,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,57,58,59,60,61,62,63, + 64,88,89,30,68,69,70,0,0,73, + 0,75,76,77,78,79,80,81,0,83, + 84,85,86,87,0,1,2,3,4,5, + 6,7,8,9,10,11,12,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,28,29,0,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, + 72,57,58,59,60,61,62,63,64,97, + 98,30,68,69,70,88,89,73,0,75, + 76,77,78,79,80,81,0,83,84,85, + 86,87,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 28,29,0,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,57, + 58,59,60,61,62,63,64,0,1,2, + 68,69,70,0,0,73,37,75,76,77, + 78,79,80,81,0,83,84,85,86,87, 0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,28,29, - 30,31,32,33,34,35,0,37,38,39, - 40,41,42,43,0,45,46,47,48,49, - 50,51,52,53,54,55,56,57,58,59, - 0,61,62,63,64,0,88,89,68,69, - 70,6,0,73,74,75,76,77,78,79, - 80,0,82,83,84,85,86,0,1,2, - 3,4,5,6,7,8,0,10,11,12, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,0,27,28,29,30,31,32, - 33,34,35,0,37,38,39,40,41,42, - 43,0,45,46,47,4,49,0,51,52, - 53,54,55,0,57,58,59,0,0,62, - 0,3,0,10,0,68,69,70,0,9, - 0,3,90,3,6,121,8,9,96,11, - 12,90,0,1,2,3,4,96,6,27, - 8,44,24,25,26,0,0,1,2,4, - 4,6,6,8,8,9,100,45,46,56, - 0,49,44,51,52,53,54,55,60,57, - 58,59,0,1,2,3,66,5,60,7, - 0,71,99,65,66,67,0,1,2,71, - 72,5,60,7,0,1,2,3,4,5, - 6,7,8,0,44,87,88,89,90,91, - 92,93,94,95,96,97,98,99,100,101, - 102,103,104,105,106,107,108,109,110,111, - 112,113,60,87,0,117,118,3,120,121, - 6,95,8,9,0,11,12,67,0,1, - 2,3,0,5,60,7,4,9,24,25, - 26,67,0,1,2,3,4,5,6,7, - 8,0,1,2,26,4,0,6,44,8, - 4,0,102,0,104,105,106,107,108,109, - 110,111,112,113,60,0,44,117,3,65, - 66,67,0,1,2,71,72,5,0,1, - 2,3,4,5,6,7,8,114,115,116, - 44,87,88,89,90,91,92,93,94,95, - 96,97,98,99,100,101,102,103,104,105, - 106,107,108,109,110,111,112,113,0,1, - 2,117,118,5,120,121,0,1,2,3, - 4,5,6,7,8,9,10,0,0,13, - 14,15,16,17,18,19,20,21,22,23, - 72,0,26,27,36,0,0,1,2,3, - 9,5,36,7,0,9,0,1,2,0, - 4,45,46,0,48,49,0,51,52,53, - 54,55,26,57,58,59,0,0,62,0, - 1,2,0,0,68,69,70,71,72,73, - 36,0,36,0,1,2,0,81,0,1, - 2,3,4,5,6,7,8,9,10,0, - 0,13,14,15,16,17,18,19,20,21, - 22,23,95,0,26,27,3,44,65,36, - 114,115,116,74,36,0,0,1,2,0, - 1,2,46,45,46,49,48,49,65,51, - 52,53,54,55,44,57,58,59,0,118, - 62,3,27,97,98,0,68,69,70,71, - 72,73,36,97,98,36,93,94,101,81, - 45,46,72,60,49,0,51,52,53,54, - 55,6,57,58,59,0,0,1,2,0, - 1,2,3,4,5,6,7,8,0,0, - 1,2,114,115,116,0,1,2,3,4, - 5,6,7,8,0,10,11,12,13,14, - 15,16,17,18,19,20,21,22,23,24, - 25,0,0,28,29,30,31,32,33,34, - 35,0,37,38,39,40,41,42,43,60, - 65,66,47,0,1,2,3,4,5,6, - 7,8,63,64,0,67,91,92,63,64, - 0,1,2,9,4,5,44,7,73,0, - 1,2,3,4,5,6,7,8,47,10, - 11,12,13,14,15,16,17,18,19,20, - 21,22,23,24,25,0,36,28,29,30, - 31,32,33,34,35,0,37,38,39,40, - 41,42,43,0,9,0,47,0,1,2, - 3,100,5,0,7,71,3,0,1,2, - 0,0,63,64,65,0,1,2,3,4, - 5,6,7,8,9,10,11,12,13,14, - 15,16,17,18,19,20,21,22,23,24, - 25,66,0,28,29,30,31,32,33,34, - 35,9,37,38,39,40,41,42,43,0, - 1,2,47,4,5,50,7,72,26,72, - 63,64,87,0,1,2,0,0,1,2, - 95,4,5,72,7,9,71,0,1,2, - 3,4,5,6,7,8,9,10,11,12, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,36,0,28,29,30,31,32, - 33,34,35,0,37,38,39,40,41,42, - 43,0,1,2,47,4,0,50,0,1, - 2,3,0,5,0,7,4,71,0,0, - 1,2,3,4,5,6,7,8,71,10, - 11,12,13,14,15,16,17,18,19,20, - 21,22,23,24,25,27,0,28,29,30, - 31,32,33,34,35,9,37,38,39,40, - 41,42,43,45,46,72,47,49,60,51, - 52,53,54,55,90,57,58,59,0,65, - 96,3,63,64,0,1,2,3,4,5, - 6,7,8,0,10,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 0,0,28,29,30,31,32,33,34,35, - 0,37,38,39,40,41,42,43,0,1, - 2,47,4,87,6,0,8,0,1,2, - 0,4,0,6,4,8,4,63,64,0, - 1,2,3,4,5,6,7,8,9,10, - 11,12,13,14,15,16,17,18,19,20, - 21,22,23,24,25,65,66,28,29,30, - 31,32,33,34,35,45,37,38,39,40, - 41,42,43,0,1,2,3,4,5,6, - 7,8,0,10,11,12,13,14,15,16, - 17,18,19,20,21,22,23,24,25,0, - 0,28,29,30,31,32,33,34,35,0, - 37,38,39,40,41,42,43,0,1,2, - 47,4,5,50,7,0,44,0,3,0, - 3,0,1,2,0,4,9,3,0,1, - 2,3,4,5,6,7,8,118,10,11, + 0,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,72,57,58,59, + 60,61,62,63,64,0,1,2,68,69, + 70,88,89,73,37,75,76,77,78,79, + 80,81,0,83,84,85,86,87,0,1, + 2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,65,0,28,29,30,31, - 32,33,34,35,9,37,38,39,40,41, - 42,43,0,0,0,47,3,60,5,6, - 90,8,65,66,11,12,96,0,1,2, - 3,4,5,6,7,8,9,24,25,0, - 0,102,29,4,87,0,1,2,3,0, - 5,0,7,26,27,4,117,44,0,1, - 2,66,4,36,6,0,8,27,0,0, - 0,44,3,60,60,48,63,64,65,66, - 67,0,87,56,45,45,46,6,61,49, - 0,51,52,53,54,55,6,57,58,59, - 0,88,89,90,91,92,93,94,81,44, + 22,23,24,25,26,27,28,29,0,31, + 32,33,34,35,36,95,38,39,40,41, + 42,43,44,45,46,47,48,49,50,51, + 52,53,54,55,0,57,58,59,60,61, + 62,63,64,0,1,2,68,69,70,0, + 0,73,0,75,76,77,78,79,80,81, + 0,83,84,85,86,87,0,1,2,3, + 4,5,6,7,8,9,10,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,0,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,72,57,58,59,60,61,62,63, + 64,0,72,30,68,69,70,88,89,73, + 0,75,76,77,78,79,80,81,0,83, + 84,85,86,87,0,1,2,3,4,5, + 6,7,8,9,10,11,12,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,28,29,0,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,57,58,59,60,61,62,63,64,88, + 89,30,68,69,70,0,0,73,3,75, + 76,77,78,79,80,81,0,83,84,85, + 86,87,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 28,29,0,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,72,57, + 58,59,60,61,62,63,64,97,98,0, + 68,69,70,4,0,73,37,75,76,77, + 78,79,80,81,0,83,84,85,86,87, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 0,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,72,57,58,59, + 60,61,62,63,64,0,0,30,68,69, + 70,0,0,73,3,75,76,77,78,79, + 80,81,0,83,84,85,86,87,0,1, + 2,3,4,5,6,7,8,0,10,11, + 12,0,14,15,16,17,18,19,20,21, + 22,23,24,25,26,27,28,29,0,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,72,57,0,0,1,2, + 62,4,5,0,7,90,68,69,70,0, + 0,96,3,0,67,6,100,8,9,9, + 11,12,13,0,1,2,3,4,5,6, + 7,8,0,0,37,26,27,4,6,30, + 0,1,2,3,4,5,6,7,8,102, + 0,104,105,106,107,108,109,110,111,112, + 113,11,12,30,117,56,0,1,2,0, + 4,5,121,7,65,66,67,102,9,56, + 71,72,13,74,74,0,1,2,0,4, + 67,6,117,8,9,99,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,91,92,0,117,118,3,120, + 121,6,0,8,9,66,11,12,13,0, + 0,1,2,3,4,5,6,7,8,0, + 0,26,27,65,66,30,0,0,0,74, + 0,1,2,3,4,5,6,7,8,30, + 14,0,1,2,3,4,5,6,7,8, + 95,56,0,1,2,3,0,5,56,7, + 65,66,67,0,1,2,71,72,5,74, + 7,45,46,47,48,49,50,51,52,53, + 54,55,72,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,5,120,121,0,1,2, + 3,4,5,6,7,8,9,10,101,101, + 13,14,15,16,17,18,19,20,21,22, + 23,24,25,0,1,2,3,0,5,0, + 7,4,9,6,37,8,13,0,1,2, + 0,4,45,46,47,48,49,50,51,52, + 53,54,55,0,0,58,0,1,2,62, + 4,0,6,0,8,68,69,70,71,72, + 73,0,1,2,37,4,5,0,7,82, + 0,1,2,3,4,5,6,7,8,9, + 10,30,0,13,14,15,16,17,18,19, + 20,21,22,23,24,25,66,0,37,46, + 47,114,115,116,0,1,2,37,4,5, + 0,7,0,3,95,45,46,47,48,49, + 50,51,52,53,54,55,14,0,58,0, + 1,2,62,4,0,6,0,8,68,69, + 70,71,72,73,0,0,1,2,3,4, + 0,6,82,8,4,11,12,45,46,47, + 48,49,50,51,52,53,54,55,0,1, + 2,3,0,5,0,7,4,9,0,1, + 2,13,4,56,114,115,116,0,1,2, + 3,4,5,6,7,8,99,10,11,12, + 0,56,15,16,17,18,19,20,21,22, + 23,24,25,26,27,28,29,45,31,32, + 33,34,35,36,0,38,39,40,41,42, + 43,44,0,9,100,0,1,2,3,65, + 5,9,7,0,57,13,0,1,2,0, + 63,64,0,1,2,3,56,5,9,7, + 73,0,1,2,3,4,5,6,7,8, + 0,10,11,12,4,0,15,16,17,18, + 19,20,21,22,23,24,25,26,27,28, + 29,56,31,32,33,34,35,36,74,38, + 39,40,41,42,43,44,74,0,0,63, + 64,3,5,0,1,2,0,9,57,95, + 0,1,2,74,63,64,65,0,1,2, + 3,4,5,6,7,8,9,10,11,12, + 65,66,15,16,17,18,19,20,21,22, + 23,24,25,26,27,28,29,37,31,32, + 33,34,35,36,56,38,39,40,41,42, + 43,44,59,65,66,59,0,1,2,3, + 0,5,74,7,57,0,59,0,0,1, + 2,3,0,5,0,7,11,12,71,0, + 1,2,3,4,5,6,7,8,9,10, + 11,12,0,0,15,16,17,18,19,20, + 21,22,23,24,25,26,27,28,29,0, + 31,32,33,34,35,36,123,38,39,40, + 41,42,43,44,56,0,1,2,72,4, + 0,6,65,8,4,0,57,0,59,65, + 66,0,1,2,3,4,5,6,7,8, + 71,10,11,12,0,0,15,16,17,18, + 19,20,21,22,23,24,25,26,27,28, + 29,0,31,32,33,34,35,36,0,38, + 39,40,41,42,43,44,0,1,2,0, + 4,0,6,4,8,0,1,2,57,4, + 9,30,67,0,63,64,0,1,2,3, + 4,5,6,7,8,122,10,11,12,30, + 65,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,65,31,32,33, + 34,35,36,65,38,39,40,41,42,43, + 44,114,115,116,59,0,0,0,1,2, + 4,4,71,57,93,94,0,1,2,63, + 64,0,1,2,3,4,5,6,7,8, + 9,10,11,12,0,30,15,16,17,18, + 19,20,21,22,23,24,25,26,27,28, + 29,45,31,32,33,34,35,36,0,38, + 39,40,41,42,43,44,0,1,2,3, + 4,5,6,7,8,0,10,11,12,63, + 64,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,0,31,32,33, + 34,35,36,0,38,39,40,41,42,43, + 44,0,0,1,2,0,1,2,0,0, + 114,115,116,57,66,59,0,1,2,3, + 4,5,6,7,8,0,10,11,12,118, + 65,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,0,31,32,33, + 34,35,36,67,38,39,40,41,42,43, + 44,0,0,0,0,56,3,3,5,6, + 9,8,0,57,11,12,14,15,16,17, + 18,19,20,21,22,23,24,25,0,26, + 27,90,29,30,0,1,2,96,90,5, + 0,76,14,3,96,59,0,45,46,47, + 48,49,50,51,52,53,54,55,0,56, + 56,0,1,2,6,0,63,64,65,66, + 67,37,0,45,46,47,48,49,50,51, + 52,53,54,55,0,0,0,0,1,2, + 6,88,89,90,91,92,93,94,37,14, 97,98,99,100,101,102,103,104,105,106, - 107,108,109,110,111,112,113,0,0,60, - 3,3,5,6,0,8,0,3,11,12, - 0,0,1,2,3,4,5,6,7,8, - 9,24,25,114,115,116,29,0,1,2, - 3,0,5,95,7,65,66,26,27,0, - 0,44,91,92,0,1,2,36,0,1, - 2,91,92,0,1,2,0,60,0,48, - 63,64,65,66,67,67,0,56,0,1, - 2,65,61,0,1,2,0,1,2,0, - 36,50,71,44,36,88,89,90,91,92, - 93,94,81,0,97,98,99,100,101,102, + 107,108,109,110,111,112,113,0,0,118, + 3,3,5,6,37,8,0,0,11,12, + 45,46,47,48,49,50,51,52,53,54, + 55,95,0,26,27,3,29,30,0,91, + 92,0,1,2,0,1,2,0,1,2, + 0,75,90,0,1,2,6,0,96,0, + 1,2,0,56,56,91,92,0,0,0, + 63,64,65,66,67,0,9,0,37,0, + 13,37,3,66,37,10,9,30,56,0, + 13,0,30,4,3,88,89,90,91,92, + 93,94,0,65,97,98,99,100,101,102, 103,104,105,106,107,108,109,110,111,112, 113,0,1,2,3,4,5,6,7,8, - 62,10,11,12,13,14,15,16,17,18, - 19,20,21,22,23,24,25,44,0,28, - 29,30,31,32,33,34,35,0,37,38, - 39,40,41,42,43,0,0,1,2,4, - 4,0,0,1,2,3,4,5,6,7, - 8,60,10,11,12,13,14,15,16,17, - 18,19,20,21,22,23,24,25,122,28, - 28,29,30,31,32,33,34,35,60,37, - 38,39,40,41,42,43,50,60,0,47, - 0,1,2,3,4,5,6,7,8,0, - 10,11,12,13,14,15,16,17,18,19, - 20,21,22,23,24,25,28,0,28,29, - 30,31,32,33,34,35,9,37,38,39, - 40,41,42,43,0,1,2,3,4,5, - 6,7,8,26,10,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 0,0,28,29,30,31,32,33,34,35, - 9,37,38,39,40,41,42,43,0,1, - 2,3,4,5,6,7,8,26,10,11, - 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,44,0,28,29,30,31, - 32,33,34,35,0,37,38,39,40,41, - 42,43,0,1,2,65,4,66,0,0, - 1,2,10,0,0,13,14,15,16,17, - 18,19,20,21,22,23,0,1,2,27, - 0,0,0,93,94,5,0,0,44,3, - 0,0,10,3,0,36,9,45,46,36, - 9,49,44,51,52,53,54,55,44,57, - 58,59,0,26,62,0,1,2,36,4, - 68,69,70,65,0,10,50,3,13,14, - 15,16,17,18,19,20,21,22,23,0, - 0,0,27,0,62,0,0,66,3,3, - 0,93,94,10,119,0,44,0,3,9, - 45,46,0,0,49,0,51,52,53,54, - 55,0,57,58,59,0,26,62,87,36, - 0,0,0,68,69,70,0,0,13,14, - 15,16,17,18,19,20,21,22,23,123, - 0,44,27,0,4,62,67,67,67,0, + 28,10,11,12,72,60,15,16,17,18, + 19,20,21,22,23,24,25,26,27,28, + 29,0,31,32,33,34,35,36,0,38, + 39,40,41,42,43,44,0,9,0,1, + 2,3,4,5,6,7,8,56,10,11, + 12,30,0,15,16,17,18,19,20,21, + 22,23,24,25,26,27,28,29,0,31, + 32,33,34,35,36,0,38,39,40,41, + 42,43,44,0,1,2,0,1,2,3, + 4,5,6,7,8,57,10,11,12,71, + 0,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,0,31,32,33, + 34,35,36,0,38,39,40,41,42,43, + 44,0,1,2,3,4,5,6,7,8, + 0,10,11,12,4,0,15,16,17,18, + 19,20,21,22,23,24,25,26,27,28, + 29,0,31,32,33,34,35,36,0,38, + 39,40,41,42,43,44,0,1,2,3, + 4,5,6,7,8,0,10,11,12,66, + 0,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,0,31,32,33, + 34,35,36,28,38,39,40,41,42,43, + 44,0,1,2,0,4,0,1,2,0, + 0,10,3,3,10,14,15,16,17,18, + 19,20,21,22,23,24,25,0,0,0, + 0,0,1,2,0,0,9,9,9,9, + 0,37,0,13,119,3,45,46,47,48, + 49,50,51,52,53,54,55,0,0,1, + 2,0,4,62,3,30,62,10,10,68, + 69,70,14,15,16,17,18,19,20,21, + 22,23,24,25,0,1,2,3,4,5, + 6,7,8,9,37,66,0,13,14,3, + 71,74,74,45,46,47,48,49,50,51, + 52,53,54,55,30,0,0,0,0,62, + 62,3,26,27,0,0,68,69,70,45, + 46,47,48,49,50,51,52,53,54,55, + 56,0,1,2,3,4,5,6,7,8, + 9,0,56,0,13,14,0,0,74,3, + 9,0,0,0,3,3,0,0,0,1, + 2,3,4,5,6,7,8,9,0,0, + 0,13,14,30,4,67,45,46,47,48, + 49,50,51,52,53,54,55,56,30,103, + 0,0,0,0,3,37,0,0,0,30, + 30,3,0,56,0,74,120,66,65,56, + 0,0,0,57,0,74,58,0,60,61, + 0,1,2,3,4,5,6,7,8,9, + 0,0,0,13,14,67,93,94,0,0, + 82,3,3,0,30,0,1,2,3,4, + 5,6,7,8,9,59,66,37,13,14, + 0,1,2,3,4,5,6,7,8,9, + 59,67,0,13,14,3,66,65,58,65, + 60,61,37,0,67,0,3,0,3,59, + 3,71,0,0,0,3,0,37,67,0, + 0,0,82,58,72,60,61,93,94,0, + 67,119,3,0,0,0,71,0,58,0, + 60,61,0,0,0,0,0,82,0,0, + 0,71,0,1,2,3,4,5,6,7, + 8,9,82,30,0,13,14,0,1,2, + 3,4,5,6,7,8,9,28,59,66, + 13,14,0,67,0,0,0,67,67,37, + 0,0,0,1,2,3,4,5,6,7, + 8,9,0,0,37,13,14,0,0,0, + 58,0,60,61,0,0,0,0,0,0, + 0,0,0,71,0,58,0,60,61,37, + 0,0,0,119,82,0,0,0,71,0, + 0,0,0,0,0,0,0,0,0,82, + 58,0,60,61,0,1,2,3,4,5, + 6,7,8,9,0,0,0,13,14,0, + 0,0,0,0,82,0,0,0,0,0, 1,2,3,4,5,6,7,8,9,0, - 45,46,3,0,49,44,51,52,53,54, - 55,66,57,58,59,26,27,87,0,0, - 0,3,0,72,44,36,0,1,2,3, - 4,5,6,7,8,9,0,48,72,0, - 0,0,3,3,3,56,0,0,0,3, - 61,3,26,27,0,72,0,3,0,0, - 71,119,36,24,25,0,0,0,0,3, - 81,0,0,0,48,72,3,0,0,0, - 0,119,56,0,0,65,67,61,0,67, - 0,44,0,0,0,0,0,71,0,60, - 0,0,0,67,0,28,50,81,0,1, - 2,3,4,5,6,7,8,9,50,0, - 1,2,3,4,5,6,7,8,9,50, - 72,0,0,66,26,27,0,0,67,67, - 75,0,103,0,36,26,27,67,0,0, - 0,0,0,0,95,36,48,0,0,120, - 0,0,0,0,56,0,0,48,0,61, - 0,0,0,0,0,56,0,0,0,71, - 61,0,0,0,0,0,0,0,0,81, - 71,0,0,0,0,0,0,0,0,0, - 81,0,1,2,3,4,5,6,7,8, - 9,0,0,1,2,3,4,5,6,7, - 8,9,0,0,0,0,0,26,27,0, - 0,0,0,0,0,0,0,36,26,27, - 0,0,0,0,0,0,0,0,36,48, - 0,0,0,0,0,0,0,56,0,0, - 48,0,61,0,0,0,0,0,56,0, - 0,0,0,61,0,0,0,0,0,0, - 0,0,81,0,1,2,3,4,5,6, - 7,8,9,81,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,26, - 27,0,0,0,0,0,0,0,0,36, + 0,37,13,14,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,48,0,0,0,0,0,0,0,56, - 0,0,0,0,61,0,0,0,0,0, + 0,0,58,0,60,61,37,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,82,58,0,60, + 61,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,82,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,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; @@ -1352,308 +1353,311 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TermAction { public final static char termAction[] = {0, - 5104,5079,5076,5076,5076,5076,5076,5076,5076,5089, + 5095,5070,5067,5067,5067,5067,5067,5067,5067,5080, + 1,1,1,5077,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5086,1,1,1, - 1,1,1,1,1,1,134,1,1,1, - 1,1,1,1,2279,1,1,1,2057,1, - 2646,1,1,1,1,1,1309,1,1,1, - 136,3409,1,1,1,41,4744,4741,1,1, - 1,5111,565,5282,2277,3462,3155,2123,3069,3419, - 3045,160,3452,981,3441,2917,3440,8,5092,5092, - 5092,5092,5092,5092,5092,5092,5092,5092,5092,5092, - 5092,5092,5092,5092,5092,5092,5092,5092,5092,5092, - 5092,5092,5092,5092,5092,5092,5092,5092,5092,5092, - 5092,5092,5092,135,5092,5092,5092,5092,5092,5092, - 5092,2279,5092,5092,5092,5092,5092,5092,5092,5092, - 5092,5092,5092,5092,5092,5092,5092,1271,5092,5092, - 5092,5092,124,5104,140,5092,5092,5092,5092,582, - 5092,5092,5092,5092,5092,5092,5092,5092,1,5092, - 5092,5092,5092,5092,5104,5079,5076,5076,5076,5076, - 5076,5076,5076,5083,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5095,1,1, 1,1,1,1,1,1,1,1,1,1, - 5086,1,1,1,1,1,1,1,1,1, - 5104,1,1,1,1,1,1,1,2475,1, - 1,1,2057,1,2646,1,1,1,1,1, - 1309,1,1,1,121,3409,1,1,1,503, - 2567,2593,1,1,1,2984,2959,5282,2277,3462, - 3155,2123,3069,3419,3045,2212,3452,981,3441,2917, - 3440,5104,5079,5076,5076,5076,5076,5076,5076,5076, - 5083,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5086,1,1, - 1,1,1,1,1,1,1,5104,1,1, - 1,1,1,1,1,809,1,1,1,2057, - 1,2646,1,1,1,1,1,1309,1,1, - 1,5104,3409,1,1,1,5104,5121,5122,1, - 1,1,446,1,5282,2277,3462,3155,2123,3069, - 3419,3045,164,3452,981,3441,2917,3440,5104,5079, - 5076,5076,5076,5076,5076,5076,5076,5083,1,1, + 1,1,1,1,1,1,5095,1,2129,2180, + 2449,3152,1,1,1,42,4730,4727,1,1, + 1,5102,786,5275,136,565,3255,3258,2097,3200, + 3153,2938,2246,3248,1751,3241,4233,3231,8,5083, + 5083,5083,5083,5083,5083,5083,5083,5083,5083,5083, + 5083,5083,5083,5083,5083,5083,5083,5083,5083,5083, + 5083,5083,5083,5083,5083,5083,5083,5083,3731,5083, + 5083,5083,5083,5083,5083,5095,5083,5083,5083,5083, + 5083,5083,5083,5083,5083,5083,5083,5083,5083,5083, + 5083,5083,5083,5083,5095,5083,5083,5083,5083,5083, + 5083,5083,5083,126,137,3037,5083,5083,5083,5083, + 302,5083,2246,5083,5083,5083,5083,5083,5083,5083, + 5396,5083,5083,5083,5083,5083,5095,5070,5067,5067, + 5067,5067,5067,5067,5067,5074,1,1,1,5077, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5086,1,1,1,1,1, - 1,1,1,1,5104,1,1,1,1,1, - 1,1,4753,1,1,1,2057,1,2646,1, - 1,1,1,1,1309,1,1,1,5104,3409, - 1,1,1,5104,4917,4914,1,1,1,445, - 164,5282,2277,3462,3155,2123,3069,3419,3045,359, - 3452,981,3441,2917,3440,5104,5079,5076,5076,5076, - 5076,5076,5076,5076,5083,1,1,1,1,1, + 1,1,1,1,1,1,5095,1,1,1, + 1,1,1,5095,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5086,1,1,1,1,1,1,1,1, - 1,5104,1,1,1,1,1,1,1,4756, - 1,1,1,2057,1,2646,1,1,1,1, - 1,1309,1,1,1,3319,3409,1,1,1, - 53,4929,4926,1,1,1,346,5104,5282,2277, - 3462,3155,2123,3069,3419,3045,5110,3452,981,3441, - 2917,3440,5104,5079,5076,5076,5076,5076,5076,5076, - 5076,5083,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5086,1, - 1,1,1,1,1,1,1,1,5104,1, - 1,1,1,1,1,1,1776,1,1,1, - 2057,1,2646,1,1,1,1,1,1309,1, - 1,1,5104,3409,1,1,1,128,5104,42, - 1,1,1,5145,5109,5282,2277,3462,3155,2123, - 3069,3419,3045,5104,3452,981,3441,2917,3440,5104, - 5079,5076,5076,5076,5076,5076,5076,5076,5083,1, + 1,1,134,1,2129,2180,2449,3152,1,1, + 1,905,2897,3232,1,1,1,130,5095,5275, + 5095,565,3255,3258,2097,3200,3153,2938,5095,3248, + 1751,3241,4233,3231,5095,5070,5067,5067,5067,5067, + 5067,5067,5067,5074,1,1,1,5077,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5086,1,1,1,1, - 1,1,1,1,1,5104,1,1,1,1, - 1,1,1,2571,1,1,1,2057,1,2646, - 1,1,1,1,1,1309,1,1,1,123, - 3409,1,1,1,127,2567,2593,1,1,1, - 2984,2959,5282,2277,3462,3155,2123,3069,3419,3045, - 5104,3452,981,3441,2917,3440,5104,5079,5076,5076, - 5076,5076,5076,5076,5076,5083,1,1,1,1, + 1,1,1,1,5095,1,1,1,1,1, + 1,5095,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,5086,1,1,1,1,1,1,1, - 1,1,5104,1,1,1,1,1,1,1, - 1558,1,1,1,2057,1,2646,1,1,1, - 1,1,1309,1,1,1,122,3409,1,1, - 1,126,2567,2593,1,1,1,2984,2959,5282, - 2277,3462,3155,2123,3069,3419,3045,5104,3452,981, - 3441,2917,3440,5104,5079,5076,5076,5076,5076,5076, - 5076,5076,5083,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5086, - 1,1,1,1,1,1,1,1,1,40, - 1,1,1,1,1,1,1,2621,1,1, - 1,2057,1,2646,1,1,1,1,1,1309, - 1,1,1,5104,3409,1,1,1,125,2567, - 2593,1,1,1,301,5143,5282,2277,3462,3155, - 2123,3069,3419,3045,5404,3452,981,3441,2917,3440, - 5104,3426,1,1,1,1,1,1,1,5114, + 1794,1,2129,2180,2449,3152,1,1,1,2302, + 2275,3489,1,1,1,905,2897,5275,5095,565, + 3255,3258,2097,3200,3153,2938,5095,3248,1751,3241, + 4233,3231,5095,5070,5067,5067,5067,5067,5067,5067, + 5067,5074,1,1,1,5077,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5113,1,1,1, - 1,1,1,1,1,1,5104,1,1,1, - 1,1,1,1,5104,1,1,1,2057,1, - 2646,1,1,1,1,1,1309,1,1,1, - 5104,3409,1,1,1,5104,2567,2593,1,1, - 1,2726,114,5282,2277,3462,3155,2123,3069,3419, - 3045,117,3452,981,3441,2917,3440,42,4732,4729, - 3212,987,3019,4071,2649,4093,138,1463,4049,4027, - 5368,5366,5375,5374,5370,5371,5369,5372,5373,5376, - 5367,4137,4115,5104,5360,5127,911,613,768,5129, - 667,621,708,137,5130,5128,581,5123,5125,5126, - 5124,5104,5363,5439,1229,647,5440,5104,5357,5364, - 5336,5362,5361,301,5358,5359,5337,5104,1,5495, - 5104,3158,223,5404,5104,1095,5496,5497,383,5112, - 5104,4771,4181,3054,4771,4728,4771,4768,4203,4768, - 4768,4181,343,42,42,3158,5145,4203,847,5360, - 5432,3052,4768,4768,4771,42,1,4959,4959,5145, - 4956,847,847,5432,5432,360,2246,5363,5439,2108, - 5104,5440,4768,5357,5364,5336,5362,5361,1776,5358, - 5359,5337,1,4998,4994,3615,935,2166,4768,2649, - 142,5111,582,4768,4768,4768,5104,5121,5122,4768, - 4768,2166,1776,2649,364,4998,4994,3615,1,2166, - 1,2649,1,429,3420,4768,4768,4768,4768,4768, - 4768,4768,4768,4768,4768,4768,4768,4768,4768,4768, - 4768,4768,4768,4768,4768,4768,4768,4768,4768,4768, - 4768,4768,1776,360,382,4768,4768,4781,4768,4768, - 4781,360,4781,4778,5104,4778,4778,1734,1,4998, - 4994,5016,389,5019,1776,5022,382,5114,4778,4778, - 4781,1057,5104,5057,5053,2675,5145,2166,847,2649, - 5432,432,1,1,5113,1,53,4750,4774,4750, - 5122,5104,2174,5104,1692,1650,1608,1566,1524,1482, - 1440,1398,1356,1314,4778,5104,560,4307,2723,4778, - 4778,4778,5104,5121,5122,4778,4778,2704,5104,5048, - 5043,2675,4956,2166,5040,2649,5037,5529,5530,5531, - 5122,4778,4778,4778,4778,4778,4778,4778,4778,4778, - 4778,4778,4778,4778,4778,4778,4778,4778,4778,4778, - 4778,4778,4778,4778,4778,4778,4778,4778,40,4953, - 4953,4778,4778,4953,4778,4778,5104,4969,4969,227, - 4965,227,227,227,227,4973,1,355,5104,1, + 1,1,5095,1,1,1,1,1,1,41, 1,1,1,1,1,1,1,1,1,1, - 1996,5104,227,1,2161,5104,1,4998,4994,2675, - 5108,2166,489,2649,52,309,390,4732,4729,1, - 5145,1,1,5104,973,1,132,1,1,1, - 1,1,309,1,1,1,133,141,1,53, - 4917,4914,5104,129,1,1,1,407,227,5507, - 1861,5104,42,5104,8327,8327,334,5592,5104,4969, - 4969,227,4965,227,227,227,227,5025,1,5104, - 33,1,1,1,1,1,1,1,1,1, - 1,1,5458,345,227,1,1849,2540,2590,5143, - 5529,5530,5531,3335,489,224,48,4923,4923,40, - 4962,4962,5439,1,1,5440,973,1,4747,1, - 1,1,1,1,560,1,1,1,95,5107, - 1,4762,5360,2337,2309,5104,1,1,1,406, - 227,5507,4920,2337,2309,2371,2421,2392,2212,5592, - 5363,5439,414,1776,5440,118,5357,5364,5336,5362, - 5361,3592,5358,5359,5337,30,287,5121,5122,343, - 5057,5053,3615,5145,2166,847,2649,5432,288,5104, - 5121,5122,5529,5530,5531,5104,1,1,1,1, - 1,1,1,1,5104,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5095,1, + 2129,2180,2449,3152,1,1,1,5095,5112,5113, + 1,1,1,129,419,5275,5135,565,3255,3258, + 2097,3200,3153,2938,5095,3248,1751,3241,4233,3231, + 5095,5070,5067,5067,5067,5067,5067,5067,5067,5074, + 1,1,1,5077,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,139,5104,1,1,1,1,1,1,1, - 1,521,1,1,1,1,1,1,1,1776, - 4941,4941,1,309,5048,5043,2675,4956,2166,5040, - 2649,5037,4159,1384,5104,1907,3569,3132,1,1, - 5104,4732,4729,5112,987,4784,3781,2649,5629,1, - 4827,4823,3212,4831,3019,4071,2649,4093,3308,4787, - 4049,4027,4814,4820,4793,4796,4808,4805,4811,4802, - 4799,4790,4817,4137,4115,286,789,5127,911,613, - 768,5129,667,621,708,1,5130,5128,581,5123, - 5125,5126,5124,5104,360,5104,1229,1,4998,4994, - 2675,2246,2166,1,2649,5111,4373,5104,4917,4914, - 5104,418,42,42,504,42,4732,4729,3212,987, - 3019,4071,2649,4093,5112,549,4049,4027,5368,5366, - 5375,5374,5370,5371,5369,5372,5373,5376,5367,4137, - 4115,1772,398,5127,911,613,768,5129,667,621, - 708,5010,5130,5128,581,5123,5125,5126,5124,5104, - 4732,4729,1229,987,2166,3832,2649,1815,5013,1996, - 4159,1384,360,39,4991,4988,1,5104,4732,4729, - 360,987,4784,3333,2649,5070,5111,42,4732,4729, - 3212,987,3019,4071,2649,4093,5112,549,4049,4027, - 5368,5366,5375,5374,5370,5371,5369,5372,5373,5376, - 5367,4137,4115,852,116,5127,911,613,768,5129, - 667,621,708,5104,5130,5128,581,5123,5125,5126, - 5124,5104,4732,4729,1229,5145,5104,3832,1,4998, - 4994,3615,1,2166,5104,2649,383,5111,225,144, - 4732,4729,3212,987,3019,4071,2649,4093,5111,549, - 4049,4027,5368,5366,5375,5374,5370,5371,5369,5372, - 5373,5376,5367,4137,4115,5360,1,5127,911,613, - 768,5129,667,621,708,5110,5130,5128,581,5123, - 5125,5126,5124,5363,5439,5498,1229,5440,1776,5357, - 5364,5336,5362,5361,4181,5358,5359,5337,236,2632, - 4203,4938,42,42,1,4827,4823,3212,4831,3019, - 4071,2649,4093,5104,4787,4049,4027,4814,4820,4793, - 4796,4808,4805,4811,4802,4799,4790,4817,4137,4115, - 5104,5104,5127,911,613,768,5129,667,621,708, - 5104,5130,5128,581,5123,5125,5126,5124,433,42, - 42,1229,5145,5109,4947,5104,4944,96,1,1, - 42,1,5104,4950,5145,4950,2811,42,42,42, - 4732,4729,3212,987,3019,4071,2649,4093,5108,549, - 4049,4027,5368,5366,5375,5374,5370,5371,5369,5372, - 5373,5376,5367,4137,4115,3651,2619,5127,911,613, - 768,5129,667,621,708,1715,5130,5128,581,5123, - 5125,5126,5124,42,4732,4729,3212,987,3019,4071, - 2649,4093,5104,549,4049,4027,5368,5366,5375,5374, - 5370,5371,5369,5372,5373,5376,5367,4137,4115,5104, - 115,5127,911,613,768,5129,667,621,708,142, - 5130,5128,581,5123,5125,5126,5124,5104,4732,4729, - 1229,987,2166,3832,2649,5104,3891,1,4371,5104, - 3158,5104,4732,4729,5104,5145,339,4480,42,4732, - 4729,3212,987,3019,4071,2649,4093,5107,549,4049, - 4027,5368,5366,5375,5374,5370,5371,5369,5372,5373, - 5376,5367,4137,4115,5604,5104,5127,911,613,768, - 5129,667,621,708,5110,5130,5128,581,5123,5125, - 5126,5124,5104,1,104,1229,1105,1776,5561,5555, - 4181,5559,339,339,5553,5554,4203,1,5076,5076, - 227,5076,227,227,227,227,227,5584,5585,42, - 226,2174,5562,5145,339,1,4998,4994,2675,5104, - 2166,5104,2649,227,8357,1654,4307,5564,99,42, - 42,4622,5145,5073,5031,33,5028,5360,1,317, - 5104,3469,5034,729,4623,2057,1589,1696,5565,5586, - 5563,120,5109,2905,1973,5363,5439,3592,3409,5440, - 119,5357,5364,5336,5362,5361,3592,5358,5359,5337, - 5104,5575,5574,5587,5556,5557,5580,5581,5592,4735, - 5578,5579,5558,5560,5582,5583,5588,5568,5569,5570, - 5566,5567,5576,5577,5572,5571,5573,5104,311,1776, - 1105,3060,5561,5555,5104,5559,5104,4498,5553,5554, - 5104,1,5076,5076,227,5076,227,227,227,227, - 5095,5584,5585,5529,5530,5531,5562,1,4998,4994, - 5016,5104,5019,5460,5022,3763,2619,227,8357,442, - 5104,5564,3569,3132,5104,4979,4976,5073,50,4985, - 4985,3569,3132,5104,4929,4926,5104,729,5104,2057, - 1589,1696,5565,5586,5563,1187,188,2905,390,5121, - 5122,5547,3409,5104,8260,6816,5104,8260,6816,5104, - 5143,2646,219,4738,4982,5575,5574,5587,5556,5557, - 5580,5581,5592,44,5578,5579,5558,5560,5582,5583, - 5588,5568,5569,5570,5566,5567,5576,5577,5572,5571, - 5573,42,4732,4729,3212,987,3019,4071,2649,4093, - 3660,549,4049,4027,5368,5366,5375,5374,5370,5371, - 5369,5372,5373,5376,5367,4137,4115,4759,103,5127, - 911,613,768,5129,667,621,708,319,5130,5128, - 581,5123,5125,5126,5124,5104,5104,4732,4729,2360, - 5145,5104,42,4732,4729,3212,987,3019,4071,2649, - 4093,1432,549,4049,4027,5368,5366,5375,5374,5370, - 5371,5369,5372,5373,5376,5367,4137,4115,5101,3642, - 5127,911,613,768,5129,667,621,708,1945,5130, - 5128,581,5123,5125,5126,5124,1684,1776,5104,1229, - 42,4732,4729,4524,987,3019,4071,2649,4093,5104, - 549,4049,4027,5368,5366,5375,5374,5370,5371,5369, - 5372,5373,5376,5367,4137,4115,3332,5104,5127,911, - 613,768,5129,667,621,708,5114,5130,5128,581, - 5123,5125,5126,5124,42,4732,4729,3212,987,3019, - 4071,2649,4093,5113,549,4049,4027,5368,5366,5375, - 5374,5370,5371,5369,5372,5373,5376,5367,4137,4115, - 131,5104,5127,911,613,768,5129,667,621,708, - 5114,5130,5128,581,5123,5125,5126,5124,42,4732, - 4729,3212,987,3019,4071,2649,4093,5113,549,4049, - 4027,5368,5366,5375,5374,5370,5371,5369,5372,5373, - 5376,5367,4137,4115,2540,5104,5127,911,613,768, - 5129,667,621,708,382,5130,5128,581,5123,5125, - 5126,5124,5104,4732,4729,4932,5145,4270,130,5104, - 5006,5002,605,5104,5104,5368,5366,5375,5374,5370, - 5371,5369,5372,5373,5376,5367,5104,5121,5122,5360, - 5104,416,1,2421,2392,2704,5104,1,4765,4608, - 5104,1,5064,3059,5104,5143,5114,5363,5439,3226, - 517,5440,2540,5357,5364,5336,5362,5361,560,5358, - 5359,5337,1,5113,5495,240,4907,4903,3288,4911, - 1095,5496,5497,4935,5104,605,3650,3312,4894,4900, - 4873,4876,4888,4885,4891,4882,4879,4870,4897,367, - 365,410,4858,1,5067,107,5104,892,3528,3191, - 1,2421,2392,5064,3625,278,560,5104,5061,166, - 4849,4843,372,5104,4840,437,4867,4846,4837,4852, - 4855,436,4864,4861,4834,222,166,5495,517,3288, - 5104,5104,510,1095,5496,5497,5104,5104,5368,5366, - 5375,5374,5370,5371,5369,5372,5373,5376,5367,3534, - 53,3309,5360,5104,5121,5067,1101,1143,2085,1, - 5076,5076,227,5076,227,227,227,227,5095,5104, - 5363,5439,3545,5104,5440,3464,5357,5364,5336,5362, - 5361,2471,5358,5359,5337,227,8357,166,5104,496, - 5104,3051,494,2465,5121,5073,1,5076,5076,227, - 5076,227,227,227,227,5098,38,2057,2034,79, - 5104,5104,2756,3481,4609,2905,5104,2,5104,4610, - 3409,3721,227,8357,5104,5285,1,4611,5104,1, - 219,3625,5073,5171,5172,5104,5104,308,5104,2622, - 5592,5104,5104,5104,2057,3159,4650,1,5104,5104, - 498,3625,2905,5104,5104,3822,4593,3409,5104,4621, - 5104,40,5104,5104,5104,5104,5104,218,5104,3653, - 5104,5104,5104,2652,5104,3396,3679,5592,1,5076, - 5076,227,5076,227,227,227,227,5095,3723,1, - 5076,5076,227,5076,227,227,227,227,5095,3724, - 5284,5104,5104,4350,227,8357,5104,5104,2652,1865, - 3772,5104,568,5104,5073,227,8357,717,5104,5104, - 5104,5104,5104,5104,3706,5073,2057,5104,5104,649, - 5104,5104,5104,5104,2905,5104,5104,2057,5104,3409, - 5104,5104,5104,5104,5104,2905,5104,5104,5104,219, - 3409,5104,5104,5104,5104,5104,5104,5104,5104,5592, - 219,5104,5104,5104,5104,5104,5104,5104,5104,5104, - 5592,1,5076,5076,227,5076,227,227,227,227, - 227,5104,1,5076,5076,227,5076,227,227,227, - 227,227,5104,5104,5104,5104,5104,227,8357,5104, - 5104,5104,5104,5104,5104,5104,5104,5073,227,8357, - 5104,5104,5104,5104,5104,5104,5104,5104,5073,2057, - 5104,5104,5104,5104,5104,5104,5104,2905,5104,5104, - 2057,5104,3409,5104,5104,5104,5104,5104,2905,5104, - 5104,5104,5104,3409,5104,5104,5104,5104,5104,5104, - 5104,5104,5592,1,5076,5076,227,5076,227,227, - 227,227,227,5592,5104,5104,5104,5104,5104,5104, - 5104,5104,5104,5104,5104,5104,5104,5104,5104,227, - 8357,5104,5104,5104,5104,5104,5104,5104,5104,5073, - 5104,5104,5104,5104,5104,5104,5104,5104,5104,5104, - 5104,2057,5104,5104,5104,5104,5104,5104,5104,2905, - 5104,5104,5104,5104,3409,5104,5104,5104,5104,5104, - 5104,5104,5104,5104,5104,5104,5104,5104,5104,5104, - 5104,5104,5104,5104,5592 + 356,1,1,1,1,1,1,53,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,2555,1,2129,2180, + 2449,3152,1,1,1,5095,4893,4890,1,1, + 1,905,2897,5275,1968,565,3255,3258,2097,3200, + 3153,2938,5095,3248,1751,3241,4233,3231,5095,5070, + 5067,5067,5067,5067,5067,5067,5067,5074,1,1, + 1,5077,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5095,1, + 1,1,1,1,1,5450,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,5095,1,2129,2180,2449,3152, + 1,1,1,54,4905,4902,1,1,1,128, + 5095,5275,5095,565,3255,3258,2097,3200,3153,2938, + 437,3248,1751,3241,4233,3231,5095,5070,5067,5067, + 5067,5067,5067,5067,5067,5074,1,1,1,5077, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,5095,1,1,1, + 1,1,1,5095,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,5490,1,2129,2180,2449,3152,1,1, + 1,127,2451,3708,1,1,1,905,2897,5275, + 5095,565,3255,3258,2097,3200,3153,2938,5095,3248, + 1751,3241,4233,3231,5095,5070,5067,5067,5067,5067, + 5067,5067,5067,5074,1,1,1,5077,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,5095,1,1,1,1,1, + 1,33,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 135,1,2129,2180,2449,3152,1,1,1,905, + 2897,4721,1,1,1,5095,5095,5275,3086,565, + 3255,3258,2097,3200,3153,2938,5095,3248,1751,3241, + 4233,3231,5095,5070,5067,5067,5067,5067,5067,5067, + 5067,5074,1,1,1,5077,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,5095,1,1,1,1,1,1,5095, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,2009,1, + 2129,2180,2449,3152,1,1,1,2302,2275,43, + 1,1,1,5137,5095,5275,3005,565,3255,3258, + 2097,3200,3153,2938,5095,3248,1751,3241,4233,3231, + 5095,3183,1,1,1,1,1,1,1,5105, + 1,1,1,5104,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 5095,1,1,1,1,1,1,443,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,5278,1,2129,2180, + 2449,3152,1,1,1,116,140,4724,1,1, + 1,5095,5095,5275,2663,565,3255,3258,2097,3200, + 3153,2938,5095,3248,1751,3241,4233,3231,43,4718, + 4715,1215,774,3959,4022,3490,4043,144,886,4001, + 3980,5095,5353,5360,5358,5367,5366,5362,5363,5361, + 5364,5365,5368,5359,4085,4064,5118,3867,5095,857, + 975,5120,902,3610,967,144,5121,5119,706,5114, + 5116,5117,5115,5356,5431,5432,5350,5357,5329,5355, + 5354,5351,5352,5330,3031,1220,138,5095,4718,4715, + 5487,774,4760,5095,3490,4127,617,5488,5489,37, + 1,4148,4754,5095,1714,4754,2185,4754,4754,166, + 4754,4754,4754,365,4986,4982,3422,1,578,1, + 3490,1,120,390,971,4754,4754,383,3937,4754, + 344,5048,5044,3422,5137,578,1543,3490,5424,2148, + 123,1673,1632,1591,1550,1509,1468,1427,1386,1345, + 1304,3443,2392,1031,2604,4754,5095,4718,4715,5095, + 774,578,4714,3490,4754,4754,4754,2148,5105,1755, + 4754,4754,5104,4754,166,1,4947,4947,30,4944, + 1051,1543,2604,5424,361,2216,1755,4754,4754,4754, + 4754,4754,4754,4754,4754,4754,4754,4754,4754,4754, + 4754,4754,4754,4754,4754,4754,4754,4754,4754,4754, + 4754,4754,4754,3915,3893,5095,4754,4754,4757,4754, + 4754,4757,447,4757,4757,4201,4757,4757,4757,45, + 5095,5039,5034,2529,4944,578,5031,3490,5028,5095, + 5095,4757,4757,4929,4929,4757,225,142,143,361, + 5095,5048,5044,2529,5137,578,1543,3490,5424,4745, + 5353,310,5039,5034,2529,4944,578,5031,3490,5028, + 361,4757,1,4986,4982,2529,5095,578,4739,3490, + 4757,4757,4757,5095,5112,5113,4757,4757,578,4757, + 3490,5356,5431,5432,5350,5357,5329,5355,5354,5351, + 5352,5330,1972,4757,4757,4757,4757,4757,4757,4757, + 4757,4757,4757,4757,4757,4757,4757,4757,4757,4757, + 4757,4757,4757,4757,4757,4757,4757,4757,4757,5095, + 5112,5113,4757,4757,2056,4757,4757,5095,4957,4957, + 229,4953,229,229,229,229,4961,1,582,582, + 229,1,1,1,1,1,1,1,1,1, + 1,1,1,1,4986,4982,5004,43,5007,1, + 5010,5137,5105,1543,490,5424,5104,391,4718,4715, + 162,5137,1,1,1,1,1,1,1,1, + 1,1,1,5095,5095,1299,433,1,1,1, + 1,383,4736,335,4736,1,1,1,408,229, + 5499,5095,4718,4715,43,774,4760,5095,3490,5584, + 5095,4957,4957,229,4953,229,229,229,229,5013, + 1,4751,5095,229,1,1,1,1,1,1, + 1,1,1,1,1,1,1261,139,1037,5431, + 5432,5521,5522,5523,5095,4718,4715,490,774,578, + 97,3490,226,4748,5452,1,1,1,1,1, + 1,1,1,1,1,1,5353,446,1299,434, + 43,43,1,5137,141,4935,5095,4932,1,1, + 1,407,229,5499,125,344,43,43,2678,5137, + 5095,1543,5584,5424,957,3443,2392,5356,5431,5432, + 5350,5357,5329,5355,5354,5351,5352,5330,1,4986, + 4982,2529,43,578,5095,3490,5137,310,5095,4718, + 4715,310,5137,4742,5521,5522,5523,5095,1,1, + 1,1,1,1,1,1,2216,1,1,1, + 347,1755,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1205,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,361,2185,1,4986,4982,3422,2463, + 578,168,3490,5095,1,168,5095,5112,5113,5095, + 1,1,1,4986,4982,5004,1755,5007,5101,5010, + 5621,1,4803,4799,1215,4807,3959,4022,3490,4043, + 1,4763,4001,3980,384,5095,4790,4796,4769,4772, + 4784,4781,4787,4778,4775,4766,4793,4085,4064,5118, + 3867,1755,857,975,5120,902,3610,967,361,5121, + 5119,706,5114,5116,5117,5115,168,5095,1,4106, + 1161,2678,2056,5095,5112,5113,5095,340,1220,361, + 5095,8435,8435,5100,43,43,505,43,4718,4715, + 1215,774,3959,4022,3490,4043,5103,549,4001,3980, + 3519,3572,5360,5358,5367,5366,5362,5363,5361,5364, + 5365,5368,5359,4085,4064,5118,3867,5135,857,975, + 5120,902,3610,967,1755,5121,5119,706,5114,5116, + 5117,5115,3476,340,340,1584,1,4986,4982,2529, + 5095,578,340,3490,1220,124,3651,5095,1,4986, + 4982,3422,5095,578,5095,3490,3443,2392,5102,43, + 4718,4715,1215,774,3959,4022,3490,4043,5103,549, + 4001,3980,5095,190,5360,5358,5367,5366,5362,5363, + 5361,5364,5365,5368,5359,4085,4064,5118,3867,5095, + 857,975,5120,902,3610,967,3348,5121,5119,706, + 5114,5116,5117,5115,1755,98,1,1,1972,1, + 5095,4938,2469,4938,2830,289,1220,430,3651,3419, + 3572,146,4718,4715,1215,774,3959,4022,3490,4043, + 5102,549,4001,3980,5095,5095,5360,5358,5367,5366, + 5362,5363,5361,5364,5365,5368,5359,4085,4064,5118, + 3867,131,857,975,5120,902,3610,967,5095,5121, + 5119,706,5114,5116,5117,5115,101,43,43,54, + 5137,5095,5019,5113,5016,5095,4718,4715,1220,5137, + 5103,2502,1884,5095,43,43,1,4803,4799,1215, + 4807,3959,4022,3490,4043,5092,4763,4001,3980,5113, + 2539,4790,4796,4769,4772,4784,4781,4787,4778,4775, + 4766,4793,4085,4064,5118,3867,4733,857,975,5120, + 902,3610,967,2542,5121,5119,706,5114,5116,5117, + 5115,5521,5522,5523,1707,5095,43,5095,4718,4715, + 5137,5137,5102,1220,2366,2337,5095,4893,4890,43, + 43,43,4718,4715,1215,774,3959,4022,3490,4043, + 5099,549,4001,3980,5095,1031,5360,5358,5367,5366, + 5362,5363,5361,5364,5365,5368,5359,4085,4064,5118, + 3867,667,857,975,5120,902,3610,967,504,5121, + 5119,706,5114,5116,5117,5115,43,4718,4715,1215, + 774,3959,4022,3490,4043,5095,549,4001,3980,4106, + 1161,5360,5358,5367,5366,5362,5363,5361,5364,5365, + 5368,5359,4085,4064,5118,3867,368,857,975,5120, + 902,3610,967,5095,5121,5119,706,5114,5116,5117, + 5115,119,54,4893,4890,288,5112,5113,118,106, + 5521,5522,5523,1220,805,3651,43,4718,4715,1215, + 774,3959,4022,3490,4043,5095,549,4001,3980,5098, + 5596,5360,5358,5367,5366,5362,5363,5361,5364,5365, + 5368,5359,4085,4064,5118,3867,5095,857,975,5120, + 902,3610,967,1092,5121,5119,706,5114,5116,5117, + 5115,5095,224,1,1,4449,572,2678,5553,5547, + 5099,5551,5095,1220,5545,5546,5353,5360,5358,5367, + 5366,5362,5363,5361,5364,5365,5368,5359,227,5576, + 5577,4127,5554,5556,41,4941,4941,4148,4127,4941, + 1,3420,5353,3785,4148,2781,1,5356,5431,5432, + 5350,5357,5329,5355,5354,5351,5352,5330,122,701, + 1755,49,4899,4899,3937,5095,1710,1718,5557,5578, + 5555,2438,117,5356,5431,5432,5350,5357,5329,5355, + 5354,5351,5352,5330,121,228,1,41,4950,4950, + 3937,5567,5566,5579,5548,5549,5572,5573,4896,5353, + 5570,5571,5550,5552,5574,5575,5580,5560,5561,5562, + 5558,5559,5568,5569,5564,5563,5565,5095,346,5098, + 572,2687,5553,5547,2457,5551,5095,360,5545,5546, + 5356,5431,5432,5350,5357,5329,5355,5354,5351,5352, + 5330,3662,318,5576,5577,5025,5554,5556,5095,3915, + 3893,5095,4967,4964,51,4973,4973,5095,4994,4990, + 5095,3093,4127,40,4979,4976,2801,1,4148,5095, + 4905,4902,33,701,1755,3915,3893,399,5095,5095, + 1710,1718,5557,5578,5555,302,4998,5095,5135,238, + 5001,4970,4914,1028,5135,5396,5105,1031,1755,5095, + 5104,5095,1031,1505,3094,5567,5566,5579,5548,5549, + 5572,5573,5095,5539,5570,5571,5550,5552,5574,5575, + 5580,5560,5561,5562,5558,5559,5568,5569,5564,5563, + 5565,43,4718,4715,1215,774,3959,4022,3490,4043, + 3465,549,4001,3980,415,1582,5360,5358,5367,5366, + 5362,5363,5361,5364,5365,5368,5359,4085,4064,5118, + 3867,79,857,975,5120,902,3610,967,1,5121, + 5119,706,5114,5116,5117,5115,5095,5061,43,4718, + 4715,1215,774,3959,4022,3490,4043,1382,549,4001, + 3980,5022,5095,5360,5358,5367,5366,5362,5363,5361, + 5364,5365,5368,5359,4085,4064,5118,3867,5095,857, + 975,5120,902,3610,967,5095,5121,5119,706,5114, + 5116,5117,5115,391,5112,5113,43,4718,4715,4328, + 774,3959,4022,3490,4043,1220,549,4001,3980,5102, + 5095,5360,5358,5367,5366,5362,5363,5361,5364,5365, + 5368,5359,4085,4064,5118,3867,5095,857,975,5120, + 902,3610,967,287,5121,5119,706,5114,5116,5117, + 5115,43,4718,4715,1215,774,3959,4022,3490,4043, + 5095,549,4001,3980,1541,5095,5360,5358,5367,5366, + 5362,5363,5361,5364,5365,5368,5359,4085,4064,5118, + 3867,5095,857,975,5120,902,3610,967,5095,5121, + 5119,706,5114,5116,5117,5115,43,4718,4715,1215, + 774,3959,4022,3490,4043,5095,549,4001,3980,647, + 5095,5360,5358,5367,5366,5362,5363,5361,5364,5365, + 5368,5359,4085,4064,5118,3867,5095,857,975,5120, + 902,3610,967,3346,5121,5119,706,5114,5116,5117, + 5115,5095,4718,4715,1,5137,5095,8292,7421,5095, + 5095,760,3546,3805,5055,5353,5360,5358,5367,5366, + 5362,5363,5361,5364,5365,5368,5359,1,1,5095, + 1,5095,8292,7421,5095,5095,5101,518,5103,5105, + 5095,3091,5095,5104,3390,4403,5356,5431,5432,5350, + 5357,5329,5355,5354,5351,5352,5330,1,242,4883, + 4879,5095,4887,5487,3468,3073,5058,5055,760,617, + 5488,5489,4834,4870,4876,4849,4852,4864,4861,4867, + 4858,4855,4846,4873,33,383,383,4923,383,383, + 4923,383,4923,4926,3091,930,81,4923,383,2951, + 5102,5100,518,4825,4819,4816,4843,4822,4813,4828, + 4831,4840,4837,4810,4721,5095,5095,5095,312,5058, + 5487,2692,5163,5164,5095,5095,617,5488,5489,383, + 383,383,383,383,383,383,383,383,383,383, + 4926,36,384,384,4917,384,384,4917,384,4917, + 4920,5095,1789,133,4917,384,5095,105,4926,3649, + 5101,109,5095,320,3757,2949,522,5095,1,5067, + 5067,229,5067,229,229,229,229,229,366,5095, + 54,229,8451,2502,5112,1178,384,384,384,384, + 384,384,384,384,384,384,384,4920,3260,649, + 417,279,373,5095,5052,5064,5095,5095,5095,3288, + 5112,4234,5095,1921,411,4920,716,4483,4908,1755, + 438,1,5095,3117,132,5100,2129,497,2679,3152, + 1,5067,5067,229,5067,229,229,229,229,5086, + 5095,495,5095,229,8451,1134,2366,2337,5095,5095, + 5584,3177,3303,39,2502,1,5067,5067,229,5067, + 229,229,229,229,5086,2180,3310,5064,229,8451, + 1,5067,5067,229,5067,229,229,229,229,5089, + 3492,2060,5095,229,8451,4404,2852,3691,2129,4911, + 2679,3152,5064,5095,4406,5095,4515,5095,3370,3510, + 4523,221,5095,309,511,4526,5095,5064,4417,5095, + 5095,499,5584,2129,5277,2679,3152,2366,2337,5095, + 1664,3390,4547,2,5095,5095,221,5095,2129,5095, + 2679,3152,5095,5095,5095,5095,5095,5584,5095,1, + 5095,220,1,5067,5067,229,5067,229,229,229, + 229,5086,5584,41,5095,229,8451,1,5067,5067, + 229,5067,229,229,229,229,5086,3138,3545,4212, + 229,8451,5095,1664,5095,5095,5095,1843,787,5064, + 5095,5095,1,5067,5067,229,5067,229,229,229, + 229,229,5095,5095,5064,229,8451,5095,5095,5095, + 2129,5095,2679,3152,5095,5095,5095,5095,5095,5095, + 5095,5095,5095,221,5095,2129,5095,2679,3152,5064, + 5095,5095,5095,3390,5584,5095,5095,5095,221,5095, + 5095,5095,5095,5095,5095,5095,5095,5095,5095,5584, + 2129,5095,2679,3152,1,5067,5067,229,5067,229, + 229,229,229,229,5095,5095,5095,229,8451,5095, + 5095,5095,5095,5095,5584,5095,5095,5095,5095,1, + 5067,5067,229,5067,229,229,229,229,229,5095, + 5095,5064,229,8451,5095,5095,5095,5095,5095,5095, + 5095,5095,5095,5095,5095,5095,5095,5095,5095,5095, + 5095,5095,2129,5095,2679,3152,5064,5095,5095,5095, + 5095,5095,5095,5095,5095,5095,5095,5095,5095,5095, + 5095,5095,5095,5095,5095,5095,5584,2129,5095,2679, + 3152,5095,5095,5095,5095,5095,5095,5095,5095,5095, + 5095,5095,5095,5095,5095,5095,5095,5095,5095,5095, + 5095,5584 }; }; public final static char termAction[] = TermAction.termAction; @@ -1661,58 +1665,59 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asb { public final static char asb[] = {0, - 535,67,113,61,1104,687,687,687,687,57, - 1104,592,406,592,521,113,523,114,114,114, - 114,114,114,114,114,114,1015,1021,1026,1023, - 1030,1028,1035,1033,1037,1036,1038,203,1039,113, - 97,29,29,29,29,153,483,1,589,29, - 354,200,592,592,1,437,1015,200,1063,28, - 836,59,996,97,998,998,925,925,483,113, - 114,114,114,114,114,114,114,114,114,114, - 114,114,114,114,114,114,114,114,114,113, - 113,113,113,113,113,113,113,113,113,113, - 113,114,200,200,191,97,476,476,476,476, - 300,200,1,250,985,996,533,996,528,996, - 530,996,980,57,153,354,354,1,354,28, - 113,151,835,200,150,153,152,150,200,354, - 1023,1023,1021,1021,1021,1028,1028,1028,1028,1026, - 1026,1033,1030,1030,1036,1035,1037,1116,1038,250, - 313,758,655,654,370,57,523,1104,1104,1104, - 1104,153,153,476,602,475,589,153,585,256, - 153,480,300,304,478,533,308,153,153,153, - 300,476,114,29,1019,156,200,59,153,153, - 152,836,113,191,354,1054,200,760,762,153, - 836,113,113,113,113,1104,687,1104,97,254, - 585,256,480,479,480,300,480,308,308,153, - 300,153,200,1019,250,835,59,153,151,200, - 659,647,658,762,300,151,200,200,200,200, - 483,483,585,584,644,153,256,1116,302,973, - 1106,256,480,480,722,153,308,644,642,643, - 153,1019,1020,1019,113,156,978,59,663,113, - 656,656,357,357,153,756,250,689,200,153, - 200,200,585,836,687,150,673,1108,147,1104, - 677,56,723,153,644,114,153,1019,483,114, - 354,978,663,113,113,762,836,200,760,647, - 663,381,151,271,151,480,480,147,1059,250, - 680,114,1116,365,722,153,57,57,153,1020, - 200,354,743,762,151,663,1060,271,151,480, - 533,57,1108,147,114,114,153,153,153,743, - 200,743,475,687,730,730,1060,533,77,677, - 153,1104,153,153,1104,736,743,271,843,271, - 474,474,751,78,57,153,483,763,736,577, - 887,245,1104,579,879,271,29,29,751,77, - 1116,114,1116,1060,1104,1104,1104,78,1104,153, - 211,1060,1060,153,533,200,199,738,797,476, - 245,577,842,533,533,753,57,475,69,1104, - 69,1116,78,97,97,95,932,97,1060,1060, - 640,751,29,738,843,842,843,1060,364,1059, - 200,842,842,842,57,153,795,689,200,147, - 200,211,1060,245,1104,200,751,842,113,936, - 147,1060,644,842,842,842,153,153,730,200, - 200,394,78,640,78,1060,211,245,113,78, - 75,644,200,934,644,644,153,1060,474,533, - 533,1096,113,76,483,1060,1060,200,934,1060, - 150,78,200,483,1060,643,78,200,934,78 + 703,7,354,1,1104,701,701,701,701,98, + 1104,449,900,449,548,354,550,355,355,355, + 355,355,355,355,355,355,451,457,462,459, + 466,464,471,469,473,472,474,149,475,354, + 338,70,70,70,70,394,510,42,446,70, + 300,146,449,449,42,931,451,146,1063,69, + 849,100,624,338,449,451,1010,1010,510,354, + 355,355,355,355,355,355,355,355,355,355, + 355,355,355,355,355,355,355,355,355,354, + 354,354,354,354,354,354,354,354,354,354, + 354,355,146,146,137,338,689,689,689,689, + 246,146,42,196,613,624,308,624,303,624, + 305,624,608,98,394,300,300,42,300,69, + 354,392,848,146,391,394,393,391,146,300, + 459,459,457,457,457,464,464,464,464,462, + 462,469,466,466,472,471,473,1116,474,196, + 259,771,591,590,397,631,631,98,550,1104, + 1104,1104,1104,394,394,689,651,688,446,394, + 442,202,394,501,246,250,499,308,254,394, + 394,394,246,689,355,70,455,102,146,100, + 394,394,701,393,849,354,137,300,490,146, + 773,775,394,849,354,354,354,354,1104,1104, + 338,200,442,202,501,500,501,246,501,254, + 254,394,246,394,146,455,196,848,100,394, + 392,146,595,583,594,775,246,392,146,146, + 146,146,510,510,442,441,601,394,202,1116, + 248,1056,1106,202,501,501,433,394,254,601, + 599,600,394,455,456,455,354,102,1061,451, + 100,573,354,592,592,560,560,394,769,196, + 9,146,394,146,146,442,849,701,391,604, + 1108,388,1104,691,97,434,394,601,355,394, + 455,510,355,300,1061,573,354,354,775,849, + 146,773,583,573,408,392,217,392,501,501, + 388,495,196,694,355,1116,568,433,394,98, + 98,394,456,146,300,754,775,392,573,496, + 217,392,501,308,98,1108,388,355,355,394, + 394,394,754,146,754,688,701,504,504,496, + 308,318,691,394,1104,394,394,1104,747,754, + 217,856,217,687,687,762,319,98,394,510, + 776,747,745,972,191,1104,555,892,217,70, + 70,762,318,1116,355,1116,496,1104,1104,1104, + 319,1104,394,157,496,496,394,308,146,145, + 749,810,689,191,745,855,308,308,764,98, + 688,310,1104,310,1116,319,338,338,336,767, + 338,496,496,970,762,70,749,856,855,856, + 496,567,495,146,855,855,855,98,394,808, + 9,146,388,146,157,496,191,1104,146,762, + 855,354,1019,388,496,601,855,855,855,394, + 394,504,146,146,421,319,970,319,496,157, + 191,354,319,316,601,146,1017,601,601,394, + 496,687,308,308,1096,354,317,510,496,496, + 146,1017,496,391,319,146,510,496,600,319, + 146,1017,319 }; }; public final static char asb[] = Asb.asb; @@ -1720,117 +1725,117 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asr { public final static byte asr[] = {0, - 30,63,31,32,64,7,33,34,35,37, - 47,38,39,40,41,42,28,24,25,8, - 6,11,12,5,29,65,43,3,51,13, - 14,62,46,15,68,52,27,16,53,54, - 17,18,55,57,19,20,58,69,59,10, - 70,21,22,49,23,45,1,2,4,0, - 9,72,118,87,26,66,121,0,81,114, - 115,116,36,72,119,122,71,73,74,48, - 56,61,76,78,85,83,75,80,82,84, - 86,50,77,79,9,26,51,62,46,68, - 52,27,53,54,55,57,58,69,59,70, - 45,49,47,63,64,10,31,35,33,30, - 39,14,23,13,19,17,18,20,21,16, - 15,22,40,43,41,42,28,38,32,37, - 24,25,11,12,29,34,8,6,3,4, - 7,5,1,2,0,96,90,11,12,91, - 92,88,89,44,93,94,97,98,99,100, - 101,102,117,72,95,67,104,105,106,107, - 108,109,110,111,112,113,118,71,26,121, - 65,1,2,8,6,4,3,60,66,87, - 9,0,65,72,95,66,118,87,71,121, - 13,14,30,63,15,31,32,16,17,18, - 64,33,19,20,34,35,37,47,38,39, - 10,21,22,23,40,41,42,28,24,25, - 11,12,29,43,9,26,7,5,3,1, - 2,8,4,6,0,81,7,114,115,116, - 48,9,3,8,6,5,72,71,26,73, - 51,13,14,62,46,15,68,52,27,16, - 53,54,17,18,55,57,19,20,58,69, - 59,10,70,21,45,22,49,23,4,1, - 2,36,0,4,50,72,0,1,2,9, - 71,0,63,64,10,31,35,33,30,39, - 14,23,13,19,17,18,20,21,16,15, - 22,40,43,41,42,28,38,32,37,5, - 7,4,3,24,25,8,6,11,12,29, - 34,1,2,118,9,0,74,50,65,72, - 95,87,60,3,9,66,26,67,0,13, - 14,15,16,17,18,19,20,21,22,23, - 51,46,52,27,53,54,55,57,58,59, - 45,49,26,9,87,7,1,2,60,3, - 8,6,5,4,0,51,13,14,62,46, - 15,68,52,27,16,53,54,17,18,55, - 57,19,20,58,69,59,10,70,21,45, - 22,49,23,1,2,4,64,63,11,12, - 6,91,92,99,8,100,5,29,44,107, - 108,104,105,106,112,111,113,89,88,109, - 110,97,98,93,94,101,102,24,25,90, - 103,3,60,67,66,65,0,4,44,50, - 72,0,9,87,13,14,30,15,31,32, - 16,17,18,33,19,20,34,35,37,47, - 38,39,10,21,22,23,40,41,42,28, - 3,24,25,8,6,11,12,29,4,43, - 5,7,1,2,64,63,0,36,72,4, - 1,2,50,0,13,14,30,63,15,31, - 32,16,17,18,64,7,33,19,20,34, - 35,37,47,38,39,10,21,22,23,40, - 41,42,1,2,3,24,25,8,6,11, - 12,5,29,4,43,73,28,0,1,2, - 123,50,0,47,46,7,49,5,1,2, - 4,74,9,50,72,95,118,87,71,26, - 121,60,3,120,96,103,90,24,25,8, - 6,11,12,91,92,88,89,44,93,94, - 97,98,99,100,101,102,117,104,105,106, - 107,108,109,110,111,112,113,65,66,67, - 0,67,66,71,9,0,8,6,4,5, - 7,1,2,3,60,65,67,66,9,87, - 95,0,46,47,49,9,65,95,67,66, - 87,0,50,72,74,0,50,66,0,72, - 9,60,3,67,66,26,44,0,51,13, - 14,62,46,15,68,52,27,16,53,54, - 17,18,55,57,19,20,58,69,59,10, - 70,21,45,22,49,23,1,2,4,95, - 0,45,1,2,4,114,115,116,0,65, - 67,66,1,2,0,46,49,74,3,50, - 72,26,47,9,65,95,67,66,87,0, - 119,0,50,67,0,7,5,3,60,6, - 8,95,51,13,14,46,15,68,52,27, - 16,53,54,17,18,55,57,19,20,58, - 69,59,10,70,21,45,22,49,23,1, - 2,4,87,9,62,0,61,51,13,14, - 62,46,15,68,52,81,27,16,53,54, - 17,18,55,56,57,19,20,58,69,59, - 10,70,21,48,45,22,49,23,9,3, - 8,4,26,50,6,7,1,2,5,36, - 0,71,62,46,15,68,52,16,53,54, - 17,18,55,57,19,20,58,69,59,70, - 21,45,22,49,23,14,13,51,9,3, - 8,6,26,48,61,81,27,36,7,1, - 2,5,4,10,56,0,62,46,15,68, - 52,16,53,54,17,18,55,57,19,20, - 58,69,59,10,70,21,45,22,49,23, - 14,13,51,9,3,8,6,26,48,56, - 61,81,27,44,7,4,36,5,1,2, - 0,75,0,9,71,63,64,47,24,25, - 8,6,11,12,29,34,3,40,43,41, - 42,28,38,32,37,14,23,13,19,17, - 18,20,21,16,15,22,31,35,33,30, - 39,50,7,1,2,4,10,5,0,10, - 68,62,69,70,14,23,13,19,17,18, - 20,21,16,15,22,74,50,4,5,2, - 1,49,45,59,58,57,7,55,54,53, - 27,52,46,51,120,103,24,25,60,3, - 96,90,6,91,92,11,12,89,88,44, - 93,94,97,98,8,99,100,101,65,95, - 87,121,67,104,105,106,107,108,109,110, - 111,112,113,72,118,71,102,117,66,26, - 9,0,63,64,24,25,11,12,29,34, - 40,43,41,42,28,38,32,37,14,23, - 13,19,17,18,20,21,16,15,22,10, - 31,35,33,30,39,8,6,4,60,7, - 5,1,2,3,0,26,9,7,5,3, + 9,72,118,74,13,66,121,0,48,15, + 16,62,46,17,68,49,14,18,50,51, + 19,20,52,53,21,22,54,69,55,10, + 70,23,45,24,47,25,1,2,4,95, + 0,31,63,32,33,64,7,34,35,36, + 38,57,39,40,41,42,43,28,26,27, + 8,6,11,12,5,29,65,44,3,48, + 15,16,62,46,17,68,49,14,18,50, + 51,19,20,52,53,21,22,54,69,55, + 10,70,23,24,47,25,45,1,2,4, + 0,96,90,11,12,91,92,88,89,30, + 93,94,97,98,99,100,101,102,117,72, + 95,67,104,105,106,107,108,109,110,111, + 112,113,118,71,13,121,65,1,2,8, + 6,4,3,56,66,74,9,0,65,72, + 95,66,118,74,71,121,15,16,31,63, + 17,32,33,18,19,20,64,34,21,22, + 35,36,38,57,39,40,10,23,24,25, + 41,42,43,28,26,27,11,12,29,44, + 9,13,7,5,3,1,2,8,4,6, + 0,82,7,114,115,116,58,9,3,8, + 6,5,72,71,13,73,48,15,16,62, + 46,17,68,49,14,18,50,51,19,20, + 52,53,21,22,54,69,55,10,70,23, + 45,24,47,25,4,1,2,37,0,4, + 59,72,0,1,2,9,71,0,63,64, + 10,32,36,34,31,40,16,25,15,21, + 19,20,22,23,18,17,24,41,44,42, + 43,28,39,33,38,5,7,4,3,26, + 27,8,6,11,12,29,35,1,2,118, + 9,0,37,72,4,1,2,59,0,82, + 114,115,116,37,72,119,122,71,73,75, + 58,60,61,77,79,86,84,76,81,83, + 85,87,59,78,80,9,13,48,62,46, + 68,49,14,50,51,52,53,54,69,55, + 70,45,47,57,63,64,10,32,36,34, + 31,40,16,25,15,21,19,20,22,23, + 18,17,24,41,44,42,43,28,39,33, + 38,26,27,11,12,29,35,8,6,3, + 4,7,5,1,2,0,15,16,17,18, + 19,20,21,22,23,24,25,48,46,49, + 14,50,51,52,53,54,55,45,47,13, + 9,74,7,1,2,56,3,8,6,5, + 4,0,45,1,2,4,114,115,116,0, + 57,46,7,47,5,1,2,4,75,59, + 120,103,26,27,56,3,96,90,6,91, + 92,11,12,89,88,30,93,94,97,98, + 8,99,100,101,65,95,74,121,67,104, + 105,106,107,108,109,110,111,112,113,72, + 118,71,102,117,66,13,9,0,4,30, + 59,72,0,65,67,66,1,2,0,9, + 74,15,16,31,17,32,33,18,19,20, + 34,21,22,35,36,38,57,39,40,10, + 23,24,25,41,42,43,28,3,26,27, + 8,6,11,12,29,4,44,5,7,1, + 2,64,63,0,1,2,123,59,0,75, + 59,65,72,95,74,56,3,9,66,13, + 67,0,46,57,47,9,65,95,67,66, + 74,0,8,6,4,5,7,1,2,3, + 56,65,67,66,9,74,95,0,67,66, + 71,9,0,59,72,75,0,10,68,62, + 69,70,16,25,15,21,19,20,22,23, + 18,17,24,75,59,72,95,118,71,121, + 7,53,54,55,45,47,1,2,52,51, + 50,14,49,5,4,46,48,9,74,13, + 56,3,120,96,103,90,26,27,8,6, + 11,12,91,92,88,89,30,93,94,97, + 98,99,100,101,102,117,104,105,106,107, + 108,109,110,111,112,113,67,66,65,0, + 59,66,0,72,9,56,3,67,66,13, + 30,0,15,16,31,63,17,32,33,18, + 19,20,64,7,34,21,22,35,36,38, + 57,39,40,10,23,24,25,41,42,43, + 1,2,3,26,27,8,6,11,12,5, + 29,4,44,73,28,0,46,47,75,3, + 59,72,13,57,9,65,95,67,66,74, + 0,119,0,59,67,0,76,0,7,5, + 3,56,6,8,95,48,15,16,46,17, + 68,49,14,18,50,51,19,20,52,53, + 21,22,54,69,55,10,70,23,45,24, + 47,25,1,2,4,74,9,62,0,61, + 48,15,16,62,46,17,68,49,82,14, + 18,50,51,19,20,52,60,53,21,22, + 54,69,55,10,70,23,58,45,24,47, + 25,9,3,8,4,13,59,6,7,1, + 2,5,37,0,71,62,46,17,68,49, + 18,50,51,19,20,52,53,21,22,54, + 69,55,70,23,45,24,47,25,16,15, + 48,9,3,8,6,13,58,61,82,14, + 37,7,1,2,5,4,10,60,0,48, + 15,16,62,46,17,68,49,14,18,50, + 51,19,20,52,53,21,22,54,69,55, + 10,70,23,45,24,47,25,1,2,4, + 64,63,11,12,6,91,92,99,8,100, + 5,29,30,65,107,108,104,105,106,112, + 111,113,89,88,109,110,97,98,93,94, + 101,102,26,27,66,90,103,3,56,67, + 0,62,46,17,68,49,18,50,51,19, + 20,52,53,21,22,54,69,55,10,70, + 23,45,24,47,25,16,15,48,9,3, + 8,6,13,58,60,61,82,14,30,7, + 4,37,5,1,2,0,9,71,63,64, + 57,26,27,8,6,11,12,29,35,3, + 41,44,42,43,28,39,33,38,16,25, + 15,21,19,20,22,23,18,17,24,32, + 36,34,31,40,59,7,1,2,4,10, + 5,0,63,64,26,27,11,12,29,35, + 41,44,42,43,28,39,33,38,16,25, + 15,21,19,20,22,23,18,17,24,10, + 32,36,34,31,40,8,6,4,56,7, + 5,1,2,3,0,13,9,7,5,3, 1,2,6,8,4,72,0 }; }; @@ -1839,58 +1844,59 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasb { public final static char nasb[] = {0, - 133,11,25,11,11,11,11,11,11,172, - 11,11,106,11,150,113,130,25,25,148, - 25,25,25,25,25,25,11,11,11,11, - 11,11,11,11,11,11,11,25,11,25, - 158,237,237,237,237,130,125,196,32,4, - 74,156,11,11,196,108,11,156,25,68, - 118,11,11,158,11,11,12,12,125,113, - 25,25,25,25,25,25,25,25,25,25, - 25,25,25,25,25,25,25,25,25,25, - 25,25,25,25,25,25,25,25,25,25, - 113,25,156,156,144,1,11,11,11,11, - 62,156,23,87,217,218,11,218,128,218, - 53,218,211,172,130,74,74,23,74,237, - 78,226,19,156,225,10,130,225,156,74, + 181,11,41,11,11,11,11,11,11,241, + 11,11,200,11,51,135,152,41,41,219, + 41,41,41,41,41,41,11,11,11,11, + 11,11,11,11,11,11,11,41,11,41, + 177,244,244,244,244,152,145,210,48,4, + 95,186,11,11,210,202,11,186,41,79, + 150,11,11,177,11,11,30,30,145,135, + 41,41,41,41,41,41,41,41,41,41, + 41,41,41,41,41,41,41,41,41,41, + 41,41,41,41,41,41,41,41,41,41, + 135,41,186,186,164,1,11,11,11,11, + 55,186,39,73,174,175,11,175,99,175, + 25,175,168,241,152,95,95,39,95,244, + 70,22,66,186,21,222,152,21,186,95, 11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,87, - 70,144,35,35,11,172,130,11,11,11, - 11,151,10,11,11,11,185,130,196,196, - 151,196,208,196,11,11,196,208,130,10, - 11,11,25,237,196,65,156,11,10,130, - 162,118,25,183,74,11,156,174,196,130, - 118,113,113,113,113,11,11,11,23,11, - 30,167,196,196,83,117,83,196,54,10, - 117,151,156,51,185,19,11,10,151,156, - 11,140,11,176,116,151,156,156,156,156, - 125,125,196,30,41,130,138,11,11,47, - 229,167,83,83,179,151,54,41,11,11, - 151,196,49,11,113,185,163,11,196,25, - 11,11,35,35,130,140,87,176,156,151, - 156,156,30,118,11,172,196,190,192,11, - 11,172,81,208,41,25,54,51,125,25, - 74,163,30,25,25,196,118,156,174,220, - 196,11,226,196,208,196,60,222,138,87, - 11,25,11,17,43,208,172,172,10,49, - 156,74,196,176,226,30,138,176,226,60, - 165,92,192,222,25,25,10,208,208,76, - 156,196,11,11,188,188,138,165,103,11, - 208,11,10,10,11,196,76,176,198,196, - 11,11,196,98,92,10,125,154,30,11, - 198,230,11,54,47,176,237,237,58,110, - 11,25,11,138,11,11,11,111,11,54, - 136,138,138,54,85,156,156,196,196,11, - 190,11,196,11,11,11,172,11,56,11, - 11,11,111,236,236,203,11,236,138,138, - 11,196,237,76,198,196,198,138,90,11, - 156,120,196,196,172,208,11,237,156,192, - 156,205,138,196,11,156,58,120,78,25, - 192,138,41,198,120,120,208,96,188,156, - 156,196,111,11,111,138,205,192,113,111, - 56,41,156,196,41,41,96,138,11,85, - 85,140,25,11,205,138,138,156,37,138, - 225,111,156,205,138,41,111,156,37,111 + 11,11,11,11,11,11,11,11,11,73, + 91,164,87,87,11,11,11,241,152,11, + 11,11,11,101,10,11,11,11,157,152, + 210,210,101,210,188,210,11,11,210,188, + 152,10,11,11,41,244,210,76,186,11, + 10,152,11,109,150,41,155,95,11,186, + 123,210,152,150,135,135,135,135,11,11, + 39,11,97,236,210,210,112,149,112,210, + 223,10,149,101,186,35,157,66,11,222, + 101,186,11,160,11,125,148,101,186,186, + 186,186,145,145,210,97,64,152,227,11, + 11,89,229,236,112,112,128,101,223,64, + 11,11,101,210,46,11,135,157,110,11, + 11,210,41,11,11,87,87,152,160,73, + 125,186,101,186,186,97,150,11,241,210, + 204,206,11,11,241,37,188,64,41,223, + 35,145,41,95,110,97,41,41,210,150, + 186,123,16,210,11,22,210,188,210,58, + 18,227,73,11,41,11,12,191,188,241, + 241,10,46,186,95,210,125,22,97,227, + 125,22,58,83,114,206,18,41,41,10, + 188,188,81,186,210,11,11,138,138,227, + 83,104,11,188,11,10,10,11,210,81, + 125,212,210,11,11,210,118,114,10,145, + 184,97,11,212,230,11,223,89,125,244, + 244,85,132,11,41,11,227,11,11,11, + 133,11,223,225,227,227,223,14,186,186, + 210,210,11,204,11,210,11,11,11,241, + 11,107,11,11,11,133,243,243,195,11, + 243,227,227,11,210,244,81,212,210,212, + 227,28,11,186,140,210,210,241,188,11, + 244,186,206,186,197,227,210,11,186,85, + 140,70,41,206,227,64,212,140,140,188, + 217,138,186,186,210,133,11,133,227,197, + 206,135,133,107,64,186,210,64,64,217, + 227,11,14,14,160,41,11,197,227,227, + 186,60,227,21,133,186,197,227,64,133, + 186,60,133 }; }; public final static char nasb[] = Nasb.nasb; @@ -1898,30 +1904,31 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasr { public final static char nasr[] = {0, - 3,12,7,5,147,145,120,144,143,2, - 0,5,2,7,134,0,182,0,65,133, - 132,0,47,4,5,7,2,12,0,60, - 0,4,186,0,67,0,12,2,7,5, - 64,0,5,104,161,0,151,0,136,0, - 138,0,5,1,0,113,0,156,0,154, - 0,53,65,0,4,173,0,171,0,12, - 2,7,5,78,0,124,0,4,28,0, - 184,0,111,0,55,0,5,91,0,176, - 0,165,5,164,0,150,0,4,46,38, - 174,0,4,64,0,4,47,167,0,64, - 46,69,4,38,0,53,2,65,0,105, - 4,46,68,0,4,98,0,3,5,2, - 43,0,4,170,0,4,38,39,0,2, - 7,53,63,95,96,4,0,5,12,7, - 2,3,0,47,4,34,0,4,47,38, - 0,2,114,0,155,0,4,46,68,104, - 44,5,0,5,91,23,4,0,5,104, - 183,0,96,95,5,54,0,110,0,5, - 91,63,53,7,2,4,0,4,46,68, - 79,0,23,175,4,102,0,2,61,0, - 2,5,120,116,117,118,12,88,0,96, - 95,53,63,54,5,7,2,0,39,53, - 7,2,4,153,0,115,4,47,0 + 3,12,7,5,146,144,119,143,142,2, + 0,181,0,54,0,95,94,52,62,53, + 5,7,2,0,5,1,0,175,0,5, + 2,7,133,0,137,0,183,0,46,4, + 5,7,2,12,0,135,0,4,185,0, + 2,7,3,0,52,64,0,153,0,12, + 2,7,5,63,0,64,132,131,0,4, + 27,0,5,90,0,4,172,0,170,0, + 123,0,154,0,155,0,66,0,150,0, + 12,2,7,5,77,0,59,0,5,42, + 2,3,0,4,63,0,112,0,2,113, + 0,110,0,164,5,163,0,4,45,37, + 173,0,5,90,22,4,0,5,103,182, + 0,63,45,68,4,37,0,109,0,104, + 4,45,67,0,4,97,0,52,2,64, + 0,2,42,0,95,94,5,53,0,2, + 7,52,62,94,95,4,0,2,5,119, + 115,116,117,12,87,0,4,46,37,0, + 4,169,0,46,4,32,0,2,60,0, + 5,103,160,0,22,174,4,101,0,4, + 46,166,0,5,90,62,52,7,2,4, + 0,4,45,67,78,0,149,0,5,7, + 12,3,1,0,4,37,38,0,38,52, + 7,2,4,152,0,4,45,67,103,43, + 5,0,114,4,46,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -1930,14 +1937,14 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TerminalIndex { public final static char terminalIndex[] = {0, 115,116,2,32,14,11,81,10,117,102, - 12,13,50,54,62,70,76,77,88,89, - 104,107,109,8,9,122,68,114,15,57, - 63,69,86,90,92,95,96,99,101,111, - 112,113,46,20,106,56,97,105,108,3, - 49,66,72,75,78,79,85,91,100,1, + 12,13,122,68,50,54,62,70,76,77, + 88,89,104,107,109,8,9,114,15,20, + 57,63,69,86,90,92,95,96,99,101, + 111,112,113,46,106,56,108,49,66,72, + 75,78,85,91,100,1,97,105,3,79, 48,55,60,80,21,45,34,65,93,103, - 121,31,123,98,110,51,52,58,59,61, - 67,71,73,74,87,94,120,18,19,7, + 121,31,123,120,98,110,51,52,58,59, + 61,67,71,73,74,87,94,18,19,7, 16,17,22,23,33,5,24,25,26,27, 28,29,6,35,36,37,38,39,40,41, 42,43,44,82,83,84,30,119,53,4, @@ -1950,25 +1957,25 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, 132,137,139,0,0,138,235,136,0,135, - 0,146,0,134,0,0,145,151,0,0, - 152,161,182,162,163,164,165,154,166,167, - 140,168,169,128,170,171,0,133,130,172, - 0,142,141,180,0,0,155,0,0,0, - 0,0,0,158,175,0,205,0,148,189, - 0,202,206,129,0,0,207,0,174,0, - 0,0,0,0,0,0,178,127,131,0, - 0,0,0,0,0,0,0,188,0,0, - 203,213,160,209,210,211,0,0,149,0, - 0,0,208,221,181,0,0,0,212,0, - 0,0,241,150,177,191,192,193,194,195, - 197,200,0,0,215,218,220,238,0,240, - 0,143,144,147,0,0,157,159,0,173, - 0,183,184,185,186,187,190,0,196,198, - 0,199,204,0,216,217,0,222,225,227, - 229,0,232,233,234,0,236,237,239,126, - 0,153,156,176,179,201,214,219,0,223, - 224,226,228,0,230,231,242,243,0,0, - 0,0,0,0 + 0,146,134,0,0,145,151,0,0,152, + 161,182,162,163,164,165,154,166,167,168, + 169,128,170,144,171,0,133,130,172,0, + 141,140,180,0,0,155,0,0,0,0, + 0,0,158,175,0,205,0,148,189,0, + 202,206,129,0,0,207,0,174,0,0, + 0,0,0,0,0,178,127,131,0,0, + 0,0,0,0,0,0,188,0,0,203, + 213,160,209,210,211,0,0,0,0,149, + 0,208,221,181,0,0,0,212,0,0, + 0,241,150,177,191,192,193,194,195,197, + 200,0,0,215,218,220,238,0,240,0, + 142,143,147,0,0,157,159,0,173,0, + 183,184,185,186,187,190,0,196,198,0, + 199,204,0,216,217,0,222,225,227,229, + 0,232,233,234,0,236,237,239,126,0, + 153,156,176,179,201,214,219,0,223,224, + 226,228,0,230,231,242,243,0,0,0, + 0,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -2014,18 +2021,18 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeLhs { public final static char scopeLhs[] = { - 44,17,17,73,17,17,17,17,73,82, - 45,87,86,118,66,51,73,72,44,17, - 73,19,3,6,161,161,158,116,44,85, - 118,117,119,52,45,134,129,73,17,17, - 129,97,56,131,76,164,161,158,126,58, - 117,117,119,175,49,55,138,18,17,17, - 17,17,17,11,113,158,126,73,72,72, - 37,134,72,17,17,17,17,97,73,19, - 165,161,176,95,103,67,57,153,77,119, - 74,70,139,138,171,134,16,158,119,115, - 127,127,54,134,134,73,44,158,71,132, - 43,132,43,164,115,116,44,44,56 + 43,16,16,72,16,16,16,16,72,81, + 44,86,85,117,65,50,72,71,43,16, + 72,18,3,6,160,160,157,115,43,84, + 117,116,118,51,44,133,128,72,16,16, + 128,96,55,130,75,163,160,157,125,57, + 116,116,118,174,48,54,137,17,16,16, + 16,16,16,11,112,157,125,72,71,71, + 36,133,71,16,16,16,16,96,72,18, + 164,160,175,94,102,66,56,152,76,118, + 73,69,138,137,170,133,15,157,118,114, + 126,126,53,133,133,72,43,157,70,131, + 42,131,42,163,114,115,43,43,55 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -2033,18 +2040,18 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeLa { public final static byte scopeLa[] = { - 119,87,87,87,87,87,87,87,87,71, - 26,71,71,71,65,1,87,122,50,3, - 26,87,65,65,1,1,26,71,50,71, - 71,1,1,1,1,4,65,26,1,1, - 65,87,87,87,119,87,1,26,71,1, - 1,1,1,26,26,71,118,87,87,87, - 87,87,118,1,87,1,66,87,87,87, - 72,4,87,65,65,65,65,87,26,3, - 1,1,87,87,3,118,87,1,1,1, - 26,72,87,118,87,5,87,1,36,67, - 1,1,6,1,36,75,74,26,26,4, - 4,4,4,3,1,50,1,1,3 + 119,74,74,74,74,74,74,74,74,71, + 13,71,71,71,65,1,74,122,59,3, + 13,74,65,65,1,1,13,71,59,71, + 71,1,1,1,1,4,65,13,1,1, + 65,74,74,74,119,74,1,13,71,1, + 1,1,1,13,13,71,118,74,74,74, + 74,74,118,1,74,1,66,74,74,74, + 72,4,74,65,65,65,65,74,13,3, + 1,1,74,74,3,118,74,1,1,1, + 13,72,74,118,74,5,74,1,37,67, + 1,1,6,1,37,76,75,13,13,4, + 4,4,4,3,1,59,1,1,3 }; }; public final static byte scopeLa[] = ScopeLa.scopeLa; @@ -2071,71 +2078,71 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeRhs { public final static char scopeRhs[] = {0, - 312,3,47,0,128,0,311,3,119,0, - 128,175,0,128,179,74,0,217,0,290, - 128,44,126,0,21,0,292,128,44,36, + 311,3,57,0,128,0,310,3,119,0, + 128,175,0,128,178,75,0,217,0,289, + 128,30,126,0,21,0,291,128,30,37, 0,21,55,0,34,134,0,21,55,0, - 0,292,128,44,36,192,0,21,131,0, - 290,128,44,131,0,185,129,0,140,0, - 222,3,289,0,289,0,2,0,128,0, - 185,129,228,0,185,129,45,228,0,185, - 129,308,45,0,132,189,167,129,0,130, - 0,189,167,129,0,136,130,0,170,0, - 304,128,170,0,128,170,0,223,130,0, - 167,244,0,139,0,0,0,137,0,0, - 0,303,128,50,251,0,129,0,251,0, - 3,0,0,129,0,302,128,50,0,45, - 129,0,152,3,0,128,279,278,128,74, - 277,170,0,278,128,74,277,170,0,216, - 0,217,0,277,170,0,98,0,0,216, + 0,291,128,30,37,191,0,21,131,0, + 289,128,30,131,0,184,129,0,144,0, + 221,3,288,0,288,0,2,0,128,0, + 184,129,227,0,184,129,45,227,0,184, + 129,307,45,0,132,188,166,129,0,130, + 0,188,166,129,0,136,130,0,169,0, + 303,128,169,0,128,169,0,223,130,0, + 166,243,0,139,0,0,0,137,0,0, + 0,302,128,59,250,0,129,0,250,0, + 3,0,0,129,0,301,128,59,0,45, + 129,0,151,3,0,128,278,277,128,75, + 276,169,0,277,128,75,276,169,0,216, + 0,217,0,276,169,0,98,0,0,216, 0,217,0,204,98,0,0,216,0,217, - 0,278,128,277,170,0,216,0,204,0, - 0,216,0,231,128,3,0,128,0,0, - 0,0,0,231,128,3,219,0,227,3, - 0,215,128,0,209,0,189,167,177,0, - 136,0,167,129,0,11,0,0,0,217, - 60,0,127,0,231,128,3,181,0,181, + 0,277,128,276,169,0,216,0,204,0, + 0,216,0,230,128,3,0,128,0,0, + 0,0,0,230,128,3,218,0,226,3, + 0,214,128,0,209,0,188,166,176,0, + 136,0,166,129,0,11,0,0,0,216, + 56,0,127,0,230,128,3,180,0,180, 0,2,0,0,128,0,0,0,0,0, - 201,3,0,202,0,230,128,50,28,27, - 0,185,129,56,48,0,198,130,0,132, - 185,129,275,48,0,185,129,275,48,0, - 185,129,67,125,56,0,230,128,50,56, - 0,230,128,50,123,56,0,230,128,50, - 126,56,0,272,128,50,125,68,0,272, - 128,50,68,0,185,129,68,0,137,0, - 189,185,129,244,0,139,0,185,129,244, - 0,189,167,129,10,0,167,129,10,0, - 95,139,0,149,0,265,128,147,0,265, - 128,170,0,162,85,0,226,163,226,299, - 3,82,0,128,174,0,226,299,3,82, - 0,130,0,128,174,0,226,163,226,163, - 226,3,82,0,226,163,226,3,82,0, - 226,3,82,0,130,0,130,0,128,174, - 0,162,3,75,193,80,0,128,130,0, - 193,80,0,110,2,133,128,130,0,239, - 3,75,0,201,171,0,34,172,0,171, - 0,178,34,172,0,239,3,86,0,193, - 158,239,3,84,0,64,174,0,239,3, - 84,0,128,174,64,174,0,298,128,50, - 0,162,0,217,77,0,31,0,162,117, - 160,0,31,172,0,222,3,0,217,60, - 262,0,162,60,0,183,3,295,64,129, - 0,128,0,0,0,0,295,64,129,0, - 2,148,128,0,0,0,0,183,3,34, - 0,150,0,127,36,167,129,0,32,150, - 0,95,139,32,150,0,223,185,129,0, - 149,32,150,0,183,3,39,0,162,3, - 39,0,162,3,65,183,44,30,0,183, - 44,30,0,21,2,133,128,0,162,3, - 65,183,44,33,0,183,44,33,0,162, - 3,65,183,44,35,0,183,44,35,0, - 162,3,65,183,44,31,0,183,44,31, - 0,222,3,127,189,167,129,10,0,127, - 189,167,129,10,0,139,2,0,128,0, - 222,3,126,177,167,129,10,0,177,167, - 129,10,0,137,2,0,128,0,222,3, - 136,0,222,3,141,0,162,60,141,0, - 257,0,32,0,32,143,0,166,0,162, + 200,3,0,202,0,229,128,59,28,14, + 0,184,129,60,58,0,198,130,0,132, + 184,129,274,58,0,184,129,274,58,0, + 184,129,67,125,60,0,229,128,59,60, + 0,229,128,59,123,60,0,229,128,59, + 126,60,0,271,128,59,125,68,0,271, + 128,59,68,0,184,129,68,0,137,0, + 188,184,129,243,0,139,0,184,129,243, + 0,188,166,129,10,0,166,129,10,0, + 95,139,0,149,0,264,128,146,0,264, + 128,169,0,161,86,0,225,162,225,298, + 3,83,0,128,174,0,225,298,3,83, + 0,130,0,128,174,0,225,162,225,162, + 225,3,83,0,225,162,225,3,83,0, + 225,3,83,0,130,0,130,0,128,174, + 0,161,3,76,192,81,0,128,130,0, + 192,81,0,110,2,133,128,130,0,238, + 3,76,0,200,170,0,34,172,0,170, + 0,178,34,172,0,238,3,87,0,192, + 156,238,3,85,0,64,174,0,238,3, + 85,0,128,174,64,174,0,297,128,59, + 0,161,0,216,78,0,31,0,161,117, + 159,0,31,172,0,221,3,0,216,56, + 261,0,161,56,0,182,3,294,64,129, + 0,128,0,0,0,0,294,64,129,0, + 2,148,128,0,0,0,0,182,3,35, + 0,150,0,127,37,166,129,0,32,150, + 0,95,139,32,150,0,224,184,129,0, + 149,32,150,0,182,3,40,0,161,3, + 40,0,161,3,65,182,30,31,0,182, + 30,31,0,21,2,133,128,0,161,3, + 65,182,30,34,0,182,30,34,0,161, + 3,65,182,30,36,0,182,30,36,0, + 161,3,65,182,30,32,0,182,30,32, + 0,221,3,127,188,166,129,10,0,127, + 188,166,129,10,0,139,2,0,128,0, + 221,3,126,176,166,129,10,0,176,166, + 129,10,0,137,2,0,128,0,221,3, + 136,0,221,3,140,0,161,56,140,0, + 256,0,32,0,32,142,0,165,0,161, 3,0 }; }; @@ -2144,36 +2151,36 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeState { public final static char scopeState[] = {0, - 2451,0,3721,0,4611,4610,4609,0,2640,1186, - 1147,1181,0,2500,2119,1780,0,2471,2465,0, - 3492,3438,3384,2825,2449,3330,3276,3220,3159,2277, - 3045,2670,2616,3620,3181,0,3215,2619,2785,0, - 1166,1038,0,892,3333,0,3165,4281,0,3165, - 4361,3497,4247,4281,3928,4259,4350,4383,3122,4270, - 2675,3631,3615,3009,0,1252,1080,0,4421,3237, - 0,4421,3237,2852,2787,3875,2778,2713,3822,3769, - 3716,3651,3492,3438,3384,3330,3276,3220,3159,3045, - 2670,2616,0,4421,3237,2852,2787,3875,2778,2713, - 3822,3769,3716,3651,0,2811,647,0,3122,4361, - 3102,3497,4247,3751,3631,2750,1034,992,3306,3354, - 969,2658,2415,0,2302,2202,2173,848,4247,3354, - 3928,3615,3009,3158,2383,0,649,568,0,1384, - 0,3880,526,2365,0,4543,4538,4530,4474,4468, - 4461,4452,4448,4600,4587,4563,4553,3971,3945,3745, - 3627,2885,2847,2456,2771,2909,2460,0,4543,4538, - 3521,3470,3444,4530,4474,4468,3361,2388,4461,4452, - 4448,2922,4600,2767,2493,4587,2371,2161,2704,1861, - 4563,3078,4553,1857,617,3971,3945,3745,784,3627, - 661,2885,2847,2166,2456,3880,2771,2365,2909,2460, - 3928,4259,4350,4383,3122,3165,4361,4270,2072,1983, - 3497,1042,4247,2675,3631,3615,4281,3009,977,987, - 717,852,789,649,568,4225,2174,2212,582,2246, - 2337,2309,2279,2593,2567,2540,2513,2421,2392,3592, - 3569,3132,2984,2959,4203,4181,4159,4137,4115,4093, - 4071,4049,4027,3019,911,621,1865,2123,2085,2034, - 1996,1143,1101,1945,1907,1057,809,1815,1776,734, - 674,526,1734,1692,1650,1608,1566,1524,1482,1440, - 1398,1356,1314,1271,1229,1000,935,869,1187,0 + 626,0,3370,0,4523,4515,4404,0,2428,2543, + 2212,1265,0,1372,1342,1172,0,2852,2451,0, + 3367,3312,3257,1821,1705,3202,3147,3092,3031,565, + 2938,2579,2524,1336,1254,0,3021,3572,2566,0, + 1326,708,0,3310,2555,0,3525,4316,0,3525, + 4290,4223,568,4316,3795,4190,4212,4301,2994,4201, + 2529,3499,3422,2878,0,2659,665,0,3022,4344, + 0,3022,4344,2791,2739,3743,2673,2621,3691,3639, + 3587,3519,3367,3312,3257,3202,3147,3092,3031,2938, + 2579,2524,0,3022,4344,2791,2739,3743,2673,2621, + 3691,3639,3587,3519,0,2830,957,0,2994,4290, + 3692,4223,568,2741,3499,3543,1695,1288,2554,2797, + 1124,1835,983,0,2866,2748,1506,1283,568,2797, + 3795,3422,2878,2678,2544,0,716,649,0,1161, + 0,2945,527,2329,0,4456,4443,4395,4391,4382, + 4378,3778,3335,4491,4479,4470,3726,3537,3280,3225, + 2922,3170,2708,2420,2141,2826,2728,0,4456,4443, + 3645,3341,3317,4395,4391,4382,2764,2136,4378,3778, + 3335,3156,4491,2926,2807,4479,2457,2438,2056,1968, + 4470,2434,3726,1836,2464,3537,3280,3225,728,2922, + 635,3170,2708,578,2420,2945,2141,2329,2826,2728, + 3795,4190,4212,4301,2994,3525,4290,4201,2424,2046, + 4223,1958,568,2529,3499,3422,4316,2878,852,774, + 787,1037,971,716,649,4169,2148,582,2216,2185, + 2302,2275,2246,2897,905,2502,2476,2366,2337,3937, + 3915,3893,3443,2392,4148,4127,4106,4085,4064,4043, + 4022,4001,3980,3959,3867,3610,1843,2097,2060,2009, + 1972,1134,1092,1921,1884,1051,805,1794,1755,733, + 674,527,1714,1673,1632,1591,1550,1509,1468,1427, + 1386,1345,1304,1261,1220,994,930,864,1178,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2181,58 +2188,59 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface InSymb { public final static char inSymb[] = {0, - 0,294,128,264,39,30,33,35,31,10, - 136,126,7,131,4,3,129,34,29,5, - 12,11,6,8,25,24,141,146,149,148, - 151,150,154,153,157,156,159,47,160,66, - 3,44,44,44,44,129,3,44,171,128, - 60,3,63,64,44,7,126,162,63,64, - 167,166,126,3,127,126,103,120,3,60, + 0,293,128,263,40,31,34,36,32,10, + 136,126,7,131,4,3,129,35,29,5, + 12,11,6,8,27,26,140,145,148,147, + 150,149,153,152,155,154,157,57,159,66, + 3,30,30,30,30,129,3,30,170,128, + 56,3,63,64,30,7,126,161,63,64, + 166,165,126,3,125,127,103,120,3,56, 90,96,12,11,92,91,6,94,93,65, - 44,88,89,8,98,97,100,99,101,113, + 30,88,89,8,98,97,100,99,101,113, 112,111,110,109,108,107,106,105,104,67, - 117,102,183,162,171,128,183,183,183,183, - 167,222,128,128,266,267,251,268,244,269, - 68,270,271,10,129,60,60,128,60,295, - 3,189,4,183,36,5,129,36,222,162, - 148,148,146,146,146,150,150,150,150,149, - 149,153,151,151,156,154,157,162,159,128, - 60,3,220,219,136,10,129,65,65,65, - 65,189,177,290,134,293,215,129,6,50, - 167,234,129,127,126,125,50,129,129,185, - 167,290,202,3,296,171,152,257,189,129, - 185,167,72,215,217,160,227,128,3,129, - 167,3,3,3,3,127,126,126,66,167, - 128,128,127,126,128,185,128,50,128,185, - 167,36,183,128,128,4,223,5,36,231, - 232,147,233,128,167,36,162,162,162,162, - 3,3,6,184,303,129,168,228,192,48, - 170,305,128,128,72,189,128,272,125,273, - 189,158,259,262,60,178,4,127,158,67, - 227,201,187,181,177,3,128,66,231,189, - 222,222,128,167,36,275,277,128,3,181, - 307,228,45,129,272,67,66,128,3,60, - 162,4,128,67,67,3,167,201,128,215, - 158,127,189,44,129,74,128,215,304,128, - 126,72,284,201,66,129,45,308,185,259, - 222,217,224,128,189,128,132,128,185,128, - 278,72,66,215,72,67,185,129,129,128, - 231,224,292,36,10,62,132,278,50,288, - 129,289,185,185,47,158,128,66,65,44, - 234,234,279,128,66,185,3,3,128,27, - 36,170,61,56,48,128,67,67,128,298, - 79,77,1,162,86,84,82,80,75,83, - 85,78,76,56,74,222,312,224,28,44, - 128,3,50,123,126,125,56,292,280,119, - 9,217,72,3,3,3,193,3,125,162, - 125,179,66,128,128,50,65,265,201,276, - 28,128,50,50,67,129,65,3,239,171, - 239,299,226,147,75,239,128,128,3,67, - 66,158,230,229,128,128,129,185,62,95, - 311,171,158,201,158,226,163,128,3,158, - 280,230,152,50,230,230,185,274,234,158, - 158,128,67,193,163,226,265,162,128,274, - 67,122,226,163,158,302,158,226,66,158 + 117,102,182,161,170,128,182,182,182,182, + 166,221,128,128,265,266,250,267,243,268, + 68,269,270,10,129,56,56,128,56,294, + 3,188,4,182,37,5,129,37,221,161, + 147,147,145,145,145,149,149,149,149,148, + 148,152,150,150,154,153,155,161,157,128, + 56,3,219,218,136,127,126,10,129,65, + 65,65,65,188,176,289,134,292,214,129, + 6,59,166,233,129,127,126,125,59,129, + 129,184,166,289,201,3,295,170,151,256, + 188,129,126,184,166,72,214,216,159,226, + 128,3,129,166,3,3,3,3,127,126, + 66,166,128,128,127,126,128,184,128,59, + 128,184,166,37,182,128,128,4,224,5, + 37,230,231,146,232,128,166,37,161,161, + 161,161,3,3,6,183,302,129,167,227, + 191,58,169,304,128,128,72,188,128,271, + 125,272,188,156,258,261,56,177,4,125, + 127,156,67,226,200,186,180,176,3,128, + 66,230,188,221,221,128,166,37,274,276, + 128,3,180,306,227,45,129,271,67,66, + 128,3,56,161,4,128,67,67,3,166, + 200,128,214,156,127,188,30,129,75,128, + 214,303,128,126,72,283,200,66,129,45, + 307,184,258,221,216,222,128,188,128,132, + 128,184,128,277,72,66,214,72,67,184, + 129,129,128,230,222,291,37,10,62,132, + 277,59,287,129,288,184,184,57,156,128, + 66,65,30,233,233,278,128,66,184,3, + 3,128,14,37,169,61,60,58,128,67, + 67,128,297,80,78,1,161,87,85,83, + 81,76,84,86,79,77,60,75,221,311, + 222,28,30,128,3,59,123,126,125,60, + 291,279,119,9,216,72,3,3,3,192, + 3,125,161,125,178,66,128,128,59,65, + 264,200,275,28,128,59,59,67,129,65, + 3,238,170,238,298,225,146,76,238,128, + 128,3,67,66,156,229,228,128,128,129, + 184,62,95,310,170,156,200,156,225,162, + 128,3,156,279,229,151,59,229,229,184, + 273,233,156,156,128,67,192,162,225,264, + 161,128,273,67,122,225,162,156,301,156, + 225,66,156 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2380,13 +2388,13 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab "identifier_name", "operator_function_id_name", "template_id_name", - "class_name", "nested_name_specifier", "class_or_namespace_name", "nested_name_specifier_with_tem" + "plate", "class_or_namespace_name_with_t" + "emplate", + "class_name", "postfix_expression", "simple_type_specifier", "pseudo_destructor_name", @@ -2508,20 +2516,20 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 520, + NUM_STATES = 523, NT_OFFSET = 124, - LA_STATE_OFFSET = 5629, + LA_STATE_OFFSET = 5621, MAX_LA = 2147483647, - NUM_RULES = 525, - NUM_NONTERMINALS = 194, - NUM_SYMBOLS = 318, + NUM_RULES = 526, + NUM_NONTERMINALS = 193, + NUM_SYMBOLS = 317, SEGMENT_SIZE = 8192, - START_STATE = 2891, + START_STATE = 3176, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 121, EOLT_SYMBOL = 121, - ACCEPT_ACTION = 4728, - ERROR_ACTION = 5104; + ACCEPT_ACTION = 4714, + ERROR_ACTION = 5095; 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 cee4e948f6e..e831a41d2fd 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParsersym.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParsersym.java @@ -16,85 +16,85 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp; public interface CPPNoCastExpressionParsersym { public final static int TK_asm = 61, - TK_auto = 51, - TK_bool = 13, - TK_break = 76, - TK_case = 77, + TK_auto = 48, + TK_bool = 15, + TK_break = 77, + TK_case = 78, TK_catch = 119, - TK_char = 14, + TK_char = 16, TK_class = 62, TK_const = 46, - TK_const_cast = 30, - TK_continue = 78, - TK_default = 79, + TK_const_cast = 31, + TK_continue = 79, + TK_default = 80, TK_delete = 63, - TK_do = 80, - TK_double = 15, - TK_dynamic_cast = 31, + TK_do = 81, + TK_double = 17, + TK_dynamic_cast = 32, TK_else = 122, TK_enum = 68, - TK_explicit = 52, - TK_export = 81, - TK_extern = 27, - TK_false = 32, - TK_float = 16, - TK_for = 82, - TK_friend = 53, - TK_goto = 83, - TK_if = 84, - TK_inline = 54, - TK_int = 17, - TK_long = 18, - TK_mutable = 55, - TK_namespace = 56, + TK_explicit = 49, + TK_export = 82, + TK_extern = 14, + TK_false = 33, + TK_float = 18, + TK_for = 83, + TK_friend = 50, + TK_goto = 84, + TK_if = 85, + TK_inline = 51, + TK_int = 19, + TK_long = 20, + TK_mutable = 52, + TK_namespace = 60, TK_new = 64, TK_operator = 7, TK_private = 114, TK_protected = 115, TK_public = 116, - TK_register = 57, - TK_reinterpret_cast = 33, - TK_return = 85, - TK_short = 19, - TK_signed = 20, - TK_sizeof = 34, - TK_static = 58, - TK_static_cast = 35, + TK_register = 53, + TK_reinterpret_cast = 34, + TK_return = 86, + TK_short = 21, + TK_signed = 22, + TK_sizeof = 35, + TK_static = 54, + TK_static_cast = 36, TK_struct = 69, - TK_switch = 86, - TK_template = 36, - TK_this = 37, - TK_throw = 47, - TK_try = 74, - TK_true = 38, - TK_typedef = 59, - TK_typeid = 39, + TK_switch = 87, + TK_template = 37, + TK_this = 38, + TK_throw = 57, + TK_try = 75, + TK_true = 39, + TK_typedef = 55, + TK_typeid = 40, TK_typename = 10, TK_union = 70, - TK_unsigned = 21, - TK_using = 48, + TK_unsigned = 23, + TK_using = 58, TK_virtual = 45, - TK_void = 22, - TK_volatile = 49, - TK_wchar_t = 23, - TK_while = 75, - TK_integer = 40, - TK_floating = 41, - TK_charconst = 42, + TK_void = 24, + TK_volatile = 47, + TK_wchar_t = 25, + TK_while = 76, + TK_integer = 41, + TK_floating = 42, + TK_charconst = 43, TK_stringlit = 28, TK_identifier = 1, TK_Completion = 2, TK_EndOfCompletion = 9, TK_Invalid = 124, - TK_LeftBracket = 60, + TK_LeftBracket = 56, TK_LeftParen = 3, - TK_LeftBrace = 50, + TK_LeftBrace = 59, TK_Dot = 120, TK_DotStar = 96, TK_Arrow = 103, TK_ArrowStar = 90, - TK_PlusPlus = 24, - TK_MinusMinus = 25, + TK_PlusPlus = 26, + TK_MinusMinus = 27, TK_And = 8, TK_Star = 6, TK_Plus = 11, @@ -105,7 +105,7 @@ public interface CPPNoCastExpressionParsersym { TK_Percent = 92, TK_RightShift = 88, TK_LeftShift = 89, - TK_LT = 44, + TK_LT = 30, TK_GT = 65, TK_LE = 93, TK_GE = 94, @@ -131,11 +131,11 @@ public interface CPPNoCastExpressionParsersym { TK_CaretAssign = 112, TK_OrAssign = 113, TK_Comma = 66, - TK_zero = 43, + TK_zero = 44, TK_RightBracket = 118, - TK_RightParen = 87, + TK_RightParen = 74, TK_RightBrace = 71, - TK_SemiColon = 26, + TK_SemiColon = 13, TK_ERROR_TOKEN = 73, TK_original_namespace_name = 123, TK_EOF_TOKEN = 121; @@ -154,6 +154,8 @@ public interface CPPNoCastExpressionParsersym { "typename", "Plus", "Minus", + "SemiColon", + "extern", "bool", "char", "double", @@ -167,10 +169,9 @@ public interface CPPNoCastExpressionParsersym { "wchar_t", "PlusPlus", "MinusMinus", - "SemiColon", - "extern", "stringlit", "Bang", + "LT", "const_cast", "dynamic_cast", "false", @@ -185,23 +186,22 @@ public interface CPPNoCastExpressionParsersym { "floating", "charconst", "zero", - "LT", "virtual", "const", - "throw", - "using", "volatile", - "LeftBrace", "auto", "explicit", "friend", "inline", "mutable", - "namespace", "register", "static", "typedef", "LeftBracket", + "throw", + "using", + "LeftBrace", + "namespace", "asm", "class", "delete", @@ -215,6 +215,7 @@ public interface CPPNoCastExpressionParsersym { "RightBrace", "Colon", "ERROR_TOKEN", + "RightParen", "try", "while", "break", @@ -228,7 +229,6 @@ public interface CPPNoCastExpressionParsersym { "if", "return", "switch", - "RightParen", "RightShift", "LeftShift", "ArrowStar", 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 eef14bca48e..1fb40d2b27f 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 @@ -378,1738 +378,1878 @@ public CPPNoFunctionDeclaratorParser(String[] mapFrom) { // constructor } // - // Rule 37: unqualified_id_name ::= ~ class_name + // Rule 37: unqualified_id_name ::= ~ identifier_token // case 37: { action.builder. consumeDestructorName(); break; } // - // Rule 38: identifier_name ::= identifier_token + // Rule 38: unqualified_id_name ::= ~ template_id_name // case 38: { action.builder. + consumeDestructorNameTemplateId(); break; + } + + // + // Rule 39: identifier_name ::= identifier_token + // + case 39: { action.builder. consumeIdentifierName(); break; } // - // Rule 39: template_opt ::= template - // - case 39: { action.builder. - consumePlaceHolder(); break; - } - - // - // Rule 40: template_opt ::= $Empty + // Rule 40: template_opt ::= template // case 40: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 41: dcolon_opt ::= :: - // - case 41: { action.builder. consumePlaceHolder(); break; } // - // Rule 42: dcolon_opt ::= $Empty + // Rule 41: template_opt ::= $Empty // - case 42: { action.builder. + case 41: { action.builder. consumeEmpty(); break; } // - // Rule 43: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name + // Rule 42: dcolon_opt ::= :: + // + case 42: { action.builder. + consumePlaceHolder(); break; + } + + // + // Rule 43: dcolon_opt ::= $Empty // case 43: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 44: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name + // + case 44: { action.builder. consumeQualifiedId(true); break; } // - // Rule 44: qualified_id_name ::= :: identifier_name - // - case 44: { action.builder. - consumeGlobalQualifiedId(); break; - } - - // - // Rule 45: qualified_id_name ::= :: operator_function_id_name + // Rule 45: qualified_id_name ::= :: identifier_name // case 45: { action.builder. consumeGlobalQualifiedId(); break; } // - // Rule 46: qualified_id_name ::= :: template_id_name + // Rule 46: qualified_id_name ::= :: operator_function_id_name // case 46: { action.builder. consumeGlobalQualifiedId(); break; } // - // Rule 47: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template + // Rule 47: qualified_id_name ::= :: template_id_name // case 47: { action.builder. - consumeNestedNameSpecifier(true); break; + consumeGlobalQualifiedId(); break; } // - // Rule 48: nested_name_specifier ::= class_or_namespace_name :: + // Rule 48: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template // case 48: { action.builder. - consumeNestedNameSpecifier(false); break; - } - - // - // Rule 49: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template - // - case 49: { action.builder. consumeNestedNameSpecifier(true); break; } // - // Rule 50: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: + // Rule 49: nested_name_specifier ::= class_or_namespace_name :: // - case 50: { action.builder. + case 49: { action.builder. consumeNestedNameSpecifier(false); break; } // - // Rule 51: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name + // Rule 50: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template + // + case 50: { action.builder. + consumeNestedNameSpecifier(true); break; + } + + // + // Rule 51: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: // case 51: { action.builder. + consumeNestedNameSpecifier(false); break; + } + + // + // Rule 52: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name + // + case 52: { action.builder. consumeNameWithTemplateKeyword(); break; } // - // Rule 53: nested_name_specifier_opt ::= $Empty + // Rule 54: nested_name_specifier_opt ::= $Empty // - case 53: { action.builder. + case 54: { action.builder. consumeNestedNameSpecifierEmpty(); break; } // - // Rule 56: postfix_expression ::= postfix_expression [ expression ] + // Rule 57: postfix_expression ::= postfix_expression [ expression ] // - case 56: { action.builder. + case 57: { action.builder. consumeExpressionArraySubscript(); break; } // - // Rule 57: postfix_expression ::= postfix_expression ( expression_list_opt ) + // Rule 58: postfix_expression ::= postfix_expression ( expression_list_opt ) // - case 57: { action.builder. + case 58: { action.builder. consumeExpressionFunctionCall(); break; } // - // Rule 58: postfix_expression ::= simple_type_specifier ( expression_list_opt ) + // Rule 59: postfix_expression ::= simple_type_specifier ( expression_list_opt ) // - case 58: { action.builder. + case 59: { action.builder. consumeExpressionSimpleTypeConstructor(); break; } // - // Rule 59: postfix_expression ::= typename dcolon_opt nested_name_specifier identifier_name ( expression_list_opt ) - // - case 59: { action.builder. - consumeExpressionTypeName(); break; - } - - // - // Rule 60: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) + // 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 ::= postfix_expression . qualified_or_unqualified_name + // Rule 61: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) // case 61: { action.builder. + consumeExpressionTypeName(); break; + } + + // + // Rule 62: postfix_expression ::= postfix_expression . qualified_or_unqualified_name + // + case 62: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 62: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name + // Rule 63: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name // - case 62: { action.builder. + case 63: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 63: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name + // Rule 64: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name // - case 63: { action.builder. + case 64: { action.builder. consumeExpressionFieldReference(false, true); break; } // - // Rule 64: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name + // Rule 65: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name // - case 64: { action.builder. + case 65: { action.builder. consumeExpressionFieldReference(true, true); break; } // - // Rule 65: postfix_expression ::= postfix_expression . pseudo_destructor_name + // Rule 66: postfix_expression ::= postfix_expression . pseudo_destructor_name // - case 65: { action.builder. + case 66: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 66: postfix_expression ::= postfix_expression -> pseudo_destructor_name + // Rule 67: postfix_expression ::= postfix_expression -> pseudo_destructor_name // - case 66: { action.builder. + case 67: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 67: postfix_expression ::= postfix_expression ++ + // Rule 68: postfix_expression ::= postfix_expression ++ // - case 67: { action.builder. + case 68: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; } // - // Rule 68: postfix_expression ::= postfix_expression -- + // Rule 69: postfix_expression ::= postfix_expression -- // - case 68: { action.builder. + case 69: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; } // - // Rule 69: postfix_expression ::= dynamic_cast < type_id > ( expression ) + // Rule 70: postfix_expression ::= dynamic_cast < type_id > ( expression ) // - case 69: { action.builder. + case 70: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); break; } // - // Rule 70: postfix_expression ::= static_cast < type_id > ( expression ) + // Rule 71: postfix_expression ::= static_cast < type_id > ( expression ) // - case 70: { action.builder. + case 71: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_static_cast); break; } // - // Rule 71: postfix_expression ::= reinterpret_cast < type_id > ( expression ) + // Rule 72: postfix_expression ::= reinterpret_cast < type_id > ( expression ) // - case 71: { action.builder. + case 72: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); break; } // - // Rule 72: postfix_expression ::= const_cast < type_id > ( expression ) + // Rule 73: postfix_expression ::= const_cast < type_id > ( expression ) // - case 72: { action.builder. + case 73: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_const_cast); break; } // - // Rule 73: postfix_expression ::= typeid ( expression ) + // Rule 74: postfix_expression ::= typeid ( expression ) // - case 73: { action.builder. + case 74: { action.builder. consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break; } // - // Rule 74: postfix_expression ::= typeid ( type_id ) + // Rule 75: postfix_expression ::= typeid ( type_id ) // - case 74: { action.builder. + case 75: { action.builder. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid); break; } // - // Rule 75: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name - // - case 75: { action.builder. - consumePsudoDestructorName(true); break; - } - - // - // Rule 76: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name + // 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_opt destructor_type_name + // Rule 77: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name // case 77: { action.builder. + consumePsudoDestructorName(true); break; + } + + // + // Rule 78: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name + // + case 78: { action.builder. consumePsudoDestructorName(false); break; } // - // Rule 78: destructor_type_name ::= ~ type_name + // Rule 79: destructor_type_name ::= ~ identifier_token // - case 78: { action.builder. + case 79: { action.builder. consumeDestructorName(); break; } // - // Rule 82: unary_expression ::= ++ cast_expression + // Rule 80: destructor_type_name ::= ~ template_id_name // - case 82: { action.builder. + case 80: { action.builder. + consumeDestructorNameTemplateId(); break; + } + + // + // Rule 84: unary_expression ::= ++ cast_expression + // + case 84: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; } // - // Rule 83: unary_expression ::= -- cast_expression + // Rule 85: unary_expression ::= -- cast_expression // - case 83: { action.builder. + case 85: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; } // - // Rule 84: unary_expression ::= & cast_expression + // Rule 86: unary_expression ::= & cast_expression // - case 84: { action.builder. + case 86: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; } // - // Rule 85: unary_expression ::= * cast_expression + // Rule 87: unary_expression ::= * cast_expression // - case 85: { action.builder. + case 87: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; } // - // Rule 86: unary_expression ::= + cast_expression + // Rule 88: unary_expression ::= + cast_expression // - case 86: { action.builder. + case 88: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; } // - // Rule 87: unary_expression ::= - cast_expression + // Rule 89: unary_expression ::= - cast_expression // - case 87: { action.builder. + case 89: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; } // - // Rule 88: unary_expression ::= ~ cast_expression + // Rule 90: unary_expression ::= ~ cast_expression // - case 88: { action.builder. + case 90: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; } // - // Rule 89: unary_expression ::= ! cast_expression + // Rule 91: unary_expression ::= ! cast_expression // - case 89: { action.builder. + case 91: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; } // - // Rule 90: unary_expression ::= sizeof unary_expression + // Rule 92: unary_expression ::= sizeof unary_expression // - case 90: { action.builder. + case 92: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; } // - // Rule 91: unary_expression ::= sizeof ( type_id ) + // Rule 93: unary_expression ::= sizeof ( type_id ) // - case 91: { action.builder. + case 93: { action.builder. consumeExpressionTypeId(ICPPASTTypeIdExpression.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 194: iteration_statement ::= while ( condition ) statement + // Rule 196: iteration_statement ::= while ( condition ) statement // - case 194: { action.builder. + case 196: { action.builder. consumeStatementWhileLoop(); break; } // - // Rule 195: iteration_statement ::= do statement while ( expression ) ; + // Rule 197: iteration_statement ::= do statement while ( expression ) ; // - case 195: { action.builder. + case 197: { action.builder. consumeStatementDoLoop(); break; } // - // Rule 196: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement - // - case 196: { action.builder. - consumeStatementForLoop(); break; - } - - // - // Rule 197: iteration_statement ::= for ( simple_declaration_with_declspec expression_opt ; expression_opt ) statement - // - case 197: { action.builder. - consumeStatementForLoop(); break; - } - - // - // Rule 198: jump_statement ::= break ; + // Rule 198: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement // case 198: { action.builder. + consumeStatementForLoop(); break; + } + + // + // Rule 199: iteration_statement ::= for ( simple_declaration_with_declspec expression_opt ; expression_opt ) statement + // + case 199: { action.builder. + consumeStatementForLoop(); break; + } + + // + // Rule 200: jump_statement ::= break ; + // + case 200: { action.builder. consumeStatementBreak(); break; } // - // Rule 199: jump_statement ::= continue ; + // Rule 201: jump_statement ::= continue ; // - case 199: { action.builder. + case 201: { action.builder. consumeStatementContinue(); break; } // - // Rule 200: jump_statement ::= return expression ; + // Rule 202: jump_statement ::= return expression ; // - case 200: { action.builder. + case 202: { action.builder. consumeStatementReturn(true); break; } // - // Rule 201: jump_statement ::= return ; + // Rule 203: jump_statement ::= return ; // - case 201: { action.builder. + case 203: { action.builder. consumeStatementReturn(false); break; } // - // Rule 202: jump_statement ::= goto identifier_token ; + // Rule 204: jump_statement ::= goto identifier_token ; // - case 202: { action.builder. + case 204: { action.builder. consumeStatementGoto(); break; } // - // Rule 203: declaration_statement ::= block_declaration + // Rule 205: declaration_statement ::= block_declaration // - case 203: { action.builder. + case 205: { action.builder. consumeStatementDeclaration(); break; } // - // Rule 204: declaration_statement ::= function_definition + // Rule 206: declaration_statement ::= function_definition // - case 204: { action.builder. + case 206: { action.builder. consumeStatementDeclaration(); break; } // - // Rule 221: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; + // Rule 223: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; // - case 221: { action.builder. + case 223: { action.builder. consumeDeclarationSimple(true, true); break; } // - // Rule 222: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; + // Rule 224: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; // - case 222: { action.builder. + case 224: { action.builder. consumeDeclarationSimple(true, false); break; } // - // Rule 223: declaration_specifiers ::= simple_declaration_specifiers + // Rule 225: declaration_specifiers ::= simple_declaration_specifiers // - case 223: { action.builder. + case 225: { action.builder. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 224: declaration_specifiers ::= class_declaration_specifiers - // - case 224: { action.builder. - consumeDeclarationSpecifiersComposite(); break; - } - - // - // Rule 225: declaration_specifiers ::= elaborated_declaration_specifiers - // - case 225: { action.builder. - consumeDeclarationSpecifiersComposite(); break; - } - - // - // Rule 226: declaration_specifiers ::= enum_declaration_specifiers + // Rule 226: declaration_specifiers ::= class_declaration_specifiers // case 226: { action.builder. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 227: declaration_specifiers ::= type_name_declaration_specifiers + // Rule 227: declaration_specifiers ::= elaborated_declaration_specifiers // case 227: { action.builder. + consumeDeclarationSpecifiersComposite(); break; + } + + // + // Rule 228: declaration_specifiers ::= enum_declaration_specifiers + // + case 228: { action.builder. + consumeDeclarationSpecifiersComposite(); break; + } + + // + // Rule 229: declaration_specifiers ::= type_name_declaration_specifiers + // + case 229: { action.builder. consumeDeclarationSpecifiersTypeName(); break; } // - // Rule 228: declaration_specifiers_opt ::= $Empty + // Rule 230: declaration_specifiers_opt ::= $Empty // - case 228: { action.builder. + case 230: { action.builder. consumeEmpty(); break; } // - // Rule 233: no_type_declaration_specifier ::= friend + // Rule 235: no_type_declaration_specifier ::= friend // - case 233: { action.builder. + case 235: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 234: no_type_declaration_specifier ::= typedef + // Rule 236: no_type_declaration_specifier ::= typedef // - case 234: { action.builder. + case 236: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 262: simple_type_specifier ::= simple_type_specifier_token + // Rule 256: storage_class_specifier ::= auto + // + case 256: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 257: storage_class_specifier ::= register + // + case 257: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 258: storage_class_specifier ::= static + // + case 258: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 259: storage_class_specifier ::= extern + // + case 259: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 260: storage_class_specifier ::= mutable + // + case 260: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 261: function_specifier ::= inline + // + case 261: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 262: function_specifier ::= virtual // case 262: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 276: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name + // Rule 263: function_specifier ::= explicit // - case 276: { action.builder. - consumeQualifiedId(false); break; + case 263: { action.builder. + consumeDeclSpecToken(); break; } // - // Rule 277: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name + // Rule 264: simple_type_specifier ::= char + // + case 264: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 265: simple_type_specifier ::= wchar_t + // + case 265: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 266: simple_type_specifier ::= bool + // + case 266: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 267: simple_type_specifier ::= short + // + case 267: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 268: simple_type_specifier ::= int + // + case 268: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 269: simple_type_specifier ::= long + // + case 269: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 270: simple_type_specifier ::= signed + // + case 270: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 271: simple_type_specifier ::= unsigned + // + case 271: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 272: simple_type_specifier ::= float + // + case 272: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 273: simple_type_specifier ::= double + // + case 273: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 274: simple_type_specifier ::= void + // + case 274: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 277: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name // case 277: { action.builder. consumeQualifiedId(false); break; } // - // Rule 278: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name + // Rule 278: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name // case 278: { action.builder. consumeQualifiedId(false); break; } // - // Rule 279: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name + // Rule 279: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name // case 279: { action.builder. + consumeQualifiedId(false); break; + } + + // + // Rule 280: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name + // + case 280: { action.builder. consumeQualifiedId(true); break; } // - // Rule 280: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name + // Rule 281: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name // - case 280: { action.builder. + case 281: { action.builder. consumeTypeSpecifierElaborated(false); break; } // - // Rule 281: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name + // Rule 282: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name // - case 281: { action.builder. + case 282: { action.builder. consumeTypeSpecifierElaborated(true); break; } // - // Rule 282: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name + // Rule 283: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name // - case 282: { action.builder. + case 283: { action.builder. consumeTypeSpecifierElaborated(false); break; } // - // Rule 283: enum_specifier ::= enum { enumerator_list_opt } + // Rule 284: enum_specifier ::= enum { enumerator_list_opt } // - case 283: { action.builder. + case 284: { action.builder. consumeTypeSpecifierEnumeration(false); break; } // - // Rule 284: enum_specifier ::= enum identifier_token { enumerator_list_opt } + // Rule 285: enum_specifier ::= enum identifier_token { enumerator_list_opt } // - case 284: { action.builder. + case 285: { action.builder. consumeTypeSpecifierEnumeration(true); break; } // - // Rule 289: enumerator_definition ::= identifier_token + // Rule 290: enumerator_definition ::= identifier_token // - case 289: { action.builder. + case 290: { action.builder. consumeEnumerator(false); break; } // - // Rule 290: enumerator_definition ::= identifier_token = constant_expression + // Rule 291: enumerator_definition ::= identifier_token = constant_expression // - case 290: { action.builder. + case 291: { action.builder. consumeEnumerator(true); break; } // - // Rule 296: original_namespace_definition ::= namespace identifier_name { declaration_seq_opt } - // - case 296: { action.builder. - consumeNamespaceDefinition(true); break; - } - - // - // Rule 297: extension_namespace_definition ::= namespace original_namespace_name { declaration_seq_opt } + // Rule 297: original_namespace_definition ::= namespace identifier_name { declaration_seq_opt } // case 297: { action.builder. consumeNamespaceDefinition(true); break; } // - // Rule 298: unnamed_namespace_definition ::= namespace { declaration_seq_opt } + // Rule 298: extension_namespace_definition ::= namespace original_namespace_name { declaration_seq_opt } // case 298: { action.builder. + consumeNamespaceDefinition(true); break; + } + + // + // Rule 299: unnamed_namespace_definition ::= namespace { declaration_seq_opt } + // + case 299: { action.builder. consumeNamespaceDefinition(false); break; } // - // Rule 299: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 300: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; // - case 299: { action.builder. + case 300: { action.builder. consumeNamespaceAliasDefinition(); break; } // - // Rule 300: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; + // Rule 301: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; // - case 300: { action.builder. + case 301: { action.builder. consumeUsingDeclaration(); break; } // - // Rule 301: typename_opt ::= typename + // Rule 302: typename_opt ::= typename // - case 301: { action.builder. + case 302: { action.builder. consumePlaceHolder(); break; } // - // Rule 302: typename_opt ::= $Empty + // Rule 303: typename_opt ::= $Empty // - case 302: { action.builder. + case 303: { action.builder. consumeEmpty(); break; } // - // Rule 303: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 304: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; // - case 303: { action.builder. + case 304: { action.builder. consumeUsingDirective(); break; } // - // Rule 304: asm_definition ::= asm ( stringlit ) ; + // Rule 305: asm_definition ::= asm ( stringlit ) ; // - case 304: { action.builder. + case 305: { action.builder. consumeDeclarationASM(); break; } // - // Rule 305: linkage_specification ::= extern stringlit { declaration_seq_opt } - // - case 305: { action.builder. - consumeLinkageSpecification(); break; - } - - // - // Rule 306: linkage_specification ::= extern stringlit declaration + // Rule 306: linkage_specification ::= extern stringlit { declaration_seq_opt } // case 306: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 312: init_declarator ::= declarator initializer + // Rule 307: linkage_specification ::= extern stringlit declaration // - case 312: { action.builder. + case 307: { action.builder. + consumeLinkageSpecification(); break; + } + + // + // Rule 313: init_declarator ::= declarator initializer + // + case 313: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 314: declarator ::= ptr_operator_seq direct_declarator + // Rule 315: declarator ::= ptr_operator_seq direct_declarator // - case 314: { action.builder. + case 315: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 316: function_declarator ::= ptr_operator_seq direct_declarator + // Rule 317: function_declarator ::= ptr_operator_seq direct_declarator // - case 316: { action.builder. + case 317: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 319: basic_direct_declarator ::= declarator_id_name + // Rule 320: basic_direct_declarator ::= declarator_id_name // - case 319: { action.builder. + case 320: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 320: basic_direct_declarator ::= ( declarator ) + // Rule 321: basic_direct_declarator ::= ( declarator ) // - case 320: { action.builder. + case 321: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 321: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 322: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 321: { action.builder. + case 322: { action.builder. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 322: array_direct_declarator ::= array_direct_declarator array_modifier - // - case 322: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 323: array_direct_declarator ::= basic_direct_declarator array_modifier + // Rule 323: array_direct_declarator ::= array_direct_declarator array_modifier // case 323: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 324: array_modifier ::= [ constant_expression ] + // Rule 324: array_direct_declarator ::= basic_direct_declarator array_modifier // case 324: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 325: array_modifier ::= [ constant_expression ] + // + case 325: { action.builder. consumeDirectDeclaratorArrayModifier(true); break; } // - // Rule 325: array_modifier ::= [ ] + // Rule 326: array_modifier ::= [ ] // - case 325: { action.builder. + case 326: { action.builder. consumeDirectDeclaratorArrayModifier(false); break; } // - // Rule 326: ptr_operator ::= * cv_qualifier_seq_opt + // Rule 327: ptr_operator ::= * cv_qualifier_seq_opt // - case 326: { action.builder. + case 327: { action.builder. consumePointer(); break; } // - // Rule 327: ptr_operator ::= & + // Rule 328: ptr_operator ::= & // - case 327: { action.builder. + case 328: { action.builder. consumeReferenceOperator(); break; } // - // Rule 328: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt + // Rule 329: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt // - case 328: { action.builder. + case 329: { action.builder. consumePointerToMember(); break; } // - // Rule 334: cv_qualifier ::= const - // - case 334: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 335: cv_qualifier ::= volatile + // Rule 335: cv_qualifier ::= const // case 335: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 337: declarator_id_name ::= nested_name_specifier template_opt unqualified_id_name + // Rule 336: cv_qualifier ::= volatile // - case 337: { action.builder. + case 336: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 338: declarator_id_name ::= nested_name_specifier template_opt unqualified_id_name + // + case 338: { action.builder. consumeQualifiedId(true); break; } // - // Rule 338: type_id ::= type_specifier_seq + // Rule 339: type_id ::= type_specifier_seq // - case 338: { action.builder. + case 339: { action.builder. consumeTypeId(false); break; } // - // Rule 339: type_id ::= type_specifier_seq abstract_declarator + // Rule 340: type_id ::= type_specifier_seq abstract_declarator // - case 339: { action.builder. + case 340: { action.builder. consumeTypeId(true); break; } // - // Rule 342: abstract_declarator ::= ptr_operator_seq + // Rule 343: abstract_declarator ::= ptr_operator_seq // - case 342: { action.builder. + case 343: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 343: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator + // Rule 344: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator // - case 343: { action.builder. + case 344: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 347: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 348: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - case 347: { action.builder. + case 348: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 348: array_direct_abstract_declarator ::= array_modifier + // Rule 349: array_direct_abstract_declarator ::= array_modifier // - case 348: { action.builder. + case 349: { action.builder. consumeDirectDeclaratorArrayDeclarator(false); break; } // - // Rule 349: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier - // - case 349: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 350: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier + // Rule 350: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier // case 350: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 351: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 351: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier // case 351: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 352: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // + case 352: { action.builder. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 352: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 353: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 352: { action.builder. + case 353: { action.builder. consumeDirectDeclaratorFunctionDeclarator(false); break; } // - // Rule 353: parameter_declaration_clause ::= parameter_declaration_list_opt ... - // - case 353: { action.builder. - consumePlaceHolder(); break; - } - - // - // Rule 354: parameter_declaration_clause ::= parameter_declaration_list_opt + // Rule 354: parameter_declaration_clause ::= parameter_declaration_list_opt ... // case 354: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 355: parameter_declaration_clause ::= parameter_declaration_list , ... - // - case 355: { action.builder. consumePlaceHolder(); break; } // - // Rule 361: abstract_declarator_opt ::= $Empty + // Rule 355: parameter_declaration_clause ::= parameter_declaration_list_opt // - case 361: { action.builder. + case 355: { action.builder. consumeEmpty(); break; } // - // Rule 362: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // Rule 356: parameter_declaration_clause ::= parameter_declaration_list , ... + // + case 356: { action.builder. + consumePlaceHolder(); break; + } + + // + // Rule 362: abstract_declarator_opt ::= $Empty // case 362: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 363: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // + case 363: { action.builder. consumeParameterDeclaration(); break; } // - // Rule 363: parameter_declaration ::= declaration_specifiers + // Rule 364: parameter_declaration ::= declaration_specifiers // - case 363: { action.builder. + case 364: { action.builder. consumeParameterDeclarationWithoutDeclarator(); break; } // - // Rule 365: parameter_init_declarator ::= declarator = parameter_initializer + // Rule 366: parameter_init_declarator ::= declarator = parameter_initializer // - case 365: { action.builder. + case 366: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 367: parameter_init_declarator ::= abstract_declarator = parameter_initializer - // - case 367: { action.builder. - consumeDeclaratorWithInitializer(true); break; - } - - // - // Rule 368: parameter_init_declarator ::= = parameter_initializer + // Rule 368: parameter_init_declarator ::= abstract_declarator = parameter_initializer // case 368: { action.builder. + consumeDeclaratorWithInitializer(true); break; + } + + // + // Rule 369: parameter_init_declarator ::= = parameter_initializer + // + case 369: { action.builder. consumeDeclaratorWithInitializer(false); break; } // - // Rule 369: parameter_initializer ::= assignment_expression + // Rule 370: parameter_initializer ::= assignment_expression // - case 369: { action.builder. + case 370: { action.builder. consumeInitializer(); break; } // - // Rule 370: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body + // Rule 371: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body // - case 370: { action.builder. + case 371: { action.builder. consumeFunctionDefinition(false); break; } // - // Rule 371: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq + // Rule 372: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq // - case 371: { action.builder. + case 372: { action.builder. consumeFunctionDefinition(true); break; } // - // Rule 374: initializer ::= ( expression_list ) + // Rule 375: initializer ::= ( expression_list ) // - case 374: { action.builder. + case 375: { action.builder. consumeInitializerConstructor(); break; } // - // Rule 375: initializer_clause ::= assignment_expression + // Rule 376: initializer_clause ::= assignment_expression // - case 375: { action.builder. + case 376: { action.builder. consumeInitializer(); break; } // - // Rule 376: initializer_clause ::= { initializer_list , } - // - case 376: { action.builder. - consumeInitializerList(); break; - } - - // - // Rule 377: initializer_clause ::= { initializer_list } + // Rule 377: initializer_clause ::= { initializer_list , } // case 377: { action.builder. consumeInitializerList(); break; } // - // Rule 378: initializer_clause ::= { } + // Rule 378: initializer_clause ::= { initializer_list } // case 378: { action.builder. consumeInitializerList(); break; } // - // Rule 383: class_specifier ::= class_head { member_declaration_list_opt } + // Rule 379: initializer_clause ::= { } // - case 383: { action.builder. + case 379: { action.builder. + consumeInitializerList(); break; + } + + // + // Rule 384: class_specifier ::= class_head { member_declaration_list_opt } + // + case 384: { action.builder. consumeClassSpecifier(); break; } // - // Rule 384: class_head ::= class_keyword identifier_name_opt base_clause_opt - // - case 384: { action.builder. - consumeClassHead(false); break; - } - - // - // Rule 385: class_head ::= class_keyword template_id_name base_clause_opt + // Rule 385: class_head ::= class_keyword identifier_name_opt base_clause_opt // case 385: { action.builder. consumeClassHead(false); break; } // - // Rule 386: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt + // Rule 386: class_head ::= class_keyword template_id_name base_clause_opt // case 386: { action.builder. - consumeClassHead(true); break; + consumeClassHead(false); break; } // - // Rule 387: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt + // Rule 387: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt // case 387: { action.builder. consumeClassHead(true); break; } // - // Rule 389: identifier_name_opt ::= $Empty + // Rule 388: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt // - case 389: { action.builder. + case 388: { action.builder. + consumeClassHead(true); break; + } + + // + // Rule 390: identifier_name_opt ::= $Empty + // + case 390: { action.builder. consumeEmpty(); break; } // - // Rule 393: visibility_label ::= access_specifier_keyword : + // Rule 394: visibility_label ::= access_specifier_keyword : // - case 393: { action.builder. + case 394: { action.builder. consumeVisibilityLabel(); break; } // - // Rule 394: member_declaration ::= declaration_specifiers_opt member_declarator_list ; + // Rule 395: member_declaration ::= declaration_specifiers_opt member_declarator_list ; // - case 394: { action.builder. + case 395: { action.builder. consumeDeclarationSimple(true, true); break; } // - // Rule 395: member_declaration ::= declaration_specifiers_opt ; + // Rule 396: member_declaration ::= declaration_specifiers_opt ; // - case 395: { action.builder. + case 396: { action.builder. consumeDeclarationSimple(false, false); break; } // - // Rule 398: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; + // Rule 399: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; // - case 398: { action.builder. + case 399: { action.builder. consumeMemberDeclarationQualifiedId(); break; } // - // Rule 402: member_declaration ::= ERROR_TOKEN + // Rule 403: member_declaration ::= ERROR_TOKEN // - case 402: { action.builder. + case 403: { action.builder. consumeDeclarationProblem(); break; } // - // Rule 410: member_declarator ::= declarator constant_initializer + // Rule 411: member_declarator ::= declarator constant_initializer // - case 410: { action.builder. + case 411: { action.builder. consumeMemberDeclaratorWithInitializer(); break; } // - // Rule 411: member_declarator ::= bit_field_declarator : constant_expression + // Rule 412: member_declarator ::= bit_field_declarator : constant_expression // - case 411: { action.builder. + case 412: { action.builder. consumeBitField(true); break; } // - // Rule 412: member_declarator ::= : constant_expression + // Rule 413: member_declarator ::= : constant_expression // - case 412: { action.builder. + case 413: { action.builder. consumeBitField(false); break; } // - // Rule 413: bit_field_declarator ::= identifier_name + // Rule 414: bit_field_declarator ::= identifier_name // - case 413: { action.builder. + case 414: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 414: constant_initializer ::= = constant_expression + // Rule 415: constant_initializer ::= = constant_expression // - case 414: { action.builder. + case 415: { action.builder. consumeInitializer(); break; } // - // Rule 420: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 421: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 420: { action.builder. + case 421: { action.builder. consumeBaseSpecifier(false, false); break; } // - // Rule 421: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name - // - case 421: { action.builder. - consumeBaseSpecifier(true, true); break; - } - - // - // Rule 422: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name + // Rule 422: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name // case 422: { action.builder. consumeBaseSpecifier(true, true); break; } // - // Rule 423: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name + // Rule 423: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name // case 423: { action.builder. + consumeBaseSpecifier(true, true); break; + } + + // + // Rule 424: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name + // + case 424: { action.builder. consumeBaseSpecifier(true, false); break; } // - // Rule 424: access_specifier_keyword ::= private - // - case 424: { action.builder. - consumeAccessKeywordToken(); break; - } - - // - // Rule 425: access_specifier_keyword ::= protected + // Rule 425: access_specifier_keyword ::= private // case 425: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 426: access_specifier_keyword ::= public + // Rule 426: access_specifier_keyword ::= protected // case 426: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 428: access_specifier_keyword_opt ::= $Empty + // Rule 427: access_specifier_keyword ::= public // - case 428: { action.builder. + case 427: { action.builder. + consumeAccessKeywordToken(); break; + } + + // + // Rule 429: access_specifier_keyword_opt ::= $Empty + // + case 429: { action.builder. consumeEmpty(); break; } // - // Rule 429: conversion_function_id_name ::= operator conversion_type_id + // Rule 430: conversion_function_id_name ::= operator conversion_type_id // - case 429: { action.builder. + case 430: { action.builder. consumeConversionName(); break; } // - // Rule 430: conversion_type_id ::= type_specifier_seq conversion_declarator + // Rule 431: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 430: { action.builder. + case 431: { action.builder. consumeTypeId(true); break; } // - // Rule 431: conversion_type_id ::= type_specifier_seq + // Rule 432: conversion_type_id ::= type_specifier_seq // - case 431: { action.builder. + case 432: { action.builder. consumeTypeId(false); break; } // - // Rule 432: conversion_declarator ::= ptr_operator_seq + // Rule 433: conversion_declarator ::= ptr_operator_seq // - case 432: { action.builder. + case 433: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 438: mem_initializer ::= mem_initializer_name ( expression_list_opt ) + // Rule 439: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 438: { action.builder. + case 439: { action.builder. consumeConstructorChainInitializer(); break; } // - // Rule 439: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 440: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name // - case 439: { action.builder. + case 440: { action.builder. consumeQualifiedId(false); break; } // - // Rule 442: operator_function_id_name ::= operator_id_name < template_argument_list_opt > + // Rule 443: operator_function_id_name ::= operator_id_name < template_argument_list_opt > // - case 442: { action.builder. + case 443: { action.builder. consumeTemplateId(); break; } // - // Rule 443: operator_id_name ::= operator overloadable_operator + // Rule 444: operator_id_name ::= operator overloadable_operator // - case 443: { action.builder. + case 444: { action.builder. consumeOperatorName(); break; } // - // Rule 486: template_declaration ::= export_opt template < template_parameter_list > declaration + // Rule 487: template_declaration ::= export_opt template < template_parameter_list > declaration // - case 486: { action.builder. + case 487: { action.builder. consumeTemplateDeclaration(); break; } // - // Rule 487: export_opt ::= export + // Rule 488: export_opt ::= export // - case 487: { action.builder. + case 488: { action.builder. consumePlaceHolder(); break; } // - // Rule 488: export_opt ::= $Empty + // Rule 489: export_opt ::= $Empty // - case 488: { action.builder. + case 489: { action.builder. consumeEmpty(); break; } // - // Rule 492: template_parameter ::= parameter_declaration + // Rule 493: template_parameter ::= parameter_declaration // - case 492: { action.builder. + case 493: { action.builder. consumeTemplateParamterDeclaration(); break; } // - // Rule 493: type_parameter ::= class identifier_name_opt - // - case 493: { action.builder. - consumeSimpleTypeTemplateParameter(false); break; - } - - // - // Rule 494: type_parameter ::= class identifier_name_opt = type_id + // Rule 494: type_parameter ::= class identifier_name_opt // case 494: { action.builder. - consumeSimpleTypeTemplateParameter(true); break; - } - - // - // Rule 495: type_parameter ::= typename identifier_name_opt - // - case 495: { action.builder. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 496: type_parameter ::= typename identifier_name_opt = type_id + // Rule 495: type_parameter ::= class identifier_name_opt = type_id // - case 496: { action.builder. + case 495: { action.builder. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 497: type_parameter ::= template < template_parameter_list > class identifier_name_opt + // Rule 496: type_parameter ::= typename identifier_name_opt + // + case 496: { action.builder. + consumeSimpleTypeTemplateParameter(false); break; + } + + // + // Rule 497: type_parameter ::= typename identifier_name_opt = type_id // case 497: { action.builder. + consumeSimpleTypeTemplateParameter(true); break; + } + + // + // Rule 498: type_parameter ::= template < template_parameter_list > class identifier_name_opt + // + case 498: { action.builder. consumeTemplatedTypeTemplateParameter(false); break; } // - // Rule 498: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression + // Rule 499: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression // - case 498: { action.builder. + case 499: { action.builder. consumeTemplatedTypeTemplateParameter(true); break; } // - // Rule 499: template_id_name ::= identifier_name < template_argument_list_opt > + // Rule 500: template_id_name ::= identifier_name < template_argument_list_opt > // - case 499: { action.builder. + case 500: { action.builder. consumeTemplateId(); break; } // - // Rule 507: explicit_instantiation ::= template declaration + // Rule 508: explicit_instantiation ::= template declaration // - case 507: { action.builder. + case 508: { action.builder. consumeTemplateExplicitInstantiation(); break; } // - // Rule 508: explicit_specialization ::= template < > declaration + // Rule 509: explicit_specialization ::= template < > declaration // - case 508: { action.builder. + case 509: { action.builder. consumeTemplateExplicitSpecialization(); break; } // - // Rule 509: try_block ::= try compound_statement handler_seq + // Rule 510: try_block ::= try compound_statement handler_seq // - case 509: { action.builder. + case 510: { action.builder. consumeStatementTryBlock(); break; } // - // Rule 512: handler ::= catch ( exception_declaration ) compound_statement + // Rule 513: handler ::= catch ( exception_declaration ) compound_statement // - case 512: { action.builder. + case 513: { action.builder. consumeStatementCatchHandler(false); break; } // - // Rule 513: handler ::= catch ( ... ) compound_statement + // Rule 514: handler ::= catch ( ... ) compound_statement // - case 513: { action.builder. + case 514: { action.builder. consumeStatementCatchHandler(true); break; } // - // Rule 514: exception_declaration ::= type_specifier_seq declarator - // - case 514: { action.builder. - consumeDeclarationSimple(true, false); break; - } - - // - // Rule 515: exception_declaration ::= type_specifier_seq abstract_declarator + // Rule 515: exception_declaration ::= type_specifier_seq declarator // case 515: { action.builder. consumeDeclarationSimple(true, false); break; } // - // Rule 516: exception_declaration ::= type_specifier_seq + // Rule 516: exception_declaration ::= type_specifier_seq abstract_declarator // case 516: { action.builder. + consumeDeclarationSimple(true, false); break; + } + + // + // Rule 517: exception_declaration ::= type_specifier_seq + // + case 517: { action.builder. consumeDeclarationSimple(false, false); break; } // - // Rule 524: no_function_declarator_start ::= ERROR_TOKEN + // Rule 525: no_function_declarator_start ::= ERROR_TOKEN // - case 524: { action.builder. + case 525: { 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 4ea86eb21b8..b6bd2c641b3 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 @@ -40,481 +40,477 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars 0,0,1,1,1,1,1,1,1,1, 1,0,1,2,1,1,1,1,1,1, 1,1,1,1,1,1,1,3,1,1, - 1,1,1,1,1,1,2,1,1,0, - 1,0,4,2,2,2,3,2,3,2, - 2,1,0,1,1,4,4,4,8,8, - 3,3,4,4,3,3,2,2,7,7, - 7,7,4,4,5,6,3,2,1,1, - 1,2,2,2,2,2,2,2,2,2, - 4,7,9,3,0,1,2,2,1,2, - 3,4,1,0,3,1,0,3,5,1, - 4,1,3,3,1,3,3,3,1,3, - 3,1,3,3,1,3,3,3,3,1, - 3,3,1,3,1,3,1,3,1,3, - 1,3,1,5,1,2,1,1,3,3, - 3,3,3,3,3,3,3,3,3,1, - 2,1,3,1,0,1,0,1,1,0, - 1,1,1,1,1,1,1,1,1,3, - 3,2,2,1,4,2,1,2,5,7, - 5,1,4,5,7,9,8,2,2,3, - 2,3,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,2,1,0, - 4,4,2,2,2,2,2,0,1,1, - 1,1,1,1,1,2,1,2,2,2, - 1,1,2,2,1,2,2,1,2,2, - 1,2,2,1,1,1,1,1,1,1, + 1,1,1,1,1,1,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,5,7,9,8,2, + 2,3,2,3,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,2, + 1,0,4,4,2,2,2,2,2,0, + 1,1,1,1,1,1,1,2,1,2, + 2,2,1,1,2,2,1,2,2,1, + 2,2,1,2,2,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,3,4,4,5,4, - 5,4,5,6,1,3,1,0,1,3, - 1,1,1,1,1,6,6,5,7,6, - 1,0,6,5,6,4,1,3,1,0, - 1,2,1,3,1,3,1,1,1,3, - 9,2,2,3,2,3,1,5,1,2, - 2,1,0,1,1,1,4,1,2,1, - 1,2,3,1,1,1,3,1,2,2, - 9,8,2,1,3,1,3,1,0,1, - 0,2,1,1,3,1,3,2,1,5, - 8,1,2,3,1,5,4,3,1,3, - 1,1,5,4,4,5,5,1,0,1, - 1,1,2,4,2,2,1,5,1,1, - 1,1,1,2,1,0,1,3,1,2, - 3,2,1,2,2,1,0,1,3,3, - 5,5,4,1,1,1,1,0,2,2, - 1,2,2,1,0,1,3,4,3,1, - 1,5,2,1,1,3,3,1,1,1, + 1,1,1,1,1,1,3,4,4,5, + 4,5,4,5,6,1,3,1,0,1, + 3,1,1,1,1,1,6,6,5,7, + 6,1,0,6,5,6,4,1,3,1, + 0,1,2,1,3,1,3,1,1,1, + 3,9,2,2,3,2,3,1,5,1, + 2,2,1,0,1,1,1,4,1,2, + 1,1,2,3,1,1,1,3,1,2, + 2,9,8,2,1,3,1,3,1,0, + 1,0,2,1,1,3,1,3,2,1, + 5,8,1,2,3,1,5,4,3,1, + 3,1,1,5,4,4,5,5,1,0, + 1,1,1,2,4,2,2,1,5,1, + 1,1,1,1,2,1,0,1,3,1, + 2,3,2,1,2,2,1,0,1,3, + 3,5,5,4,1,1,1,1,0,2, + 2,1,2,2,1,0,1,3,4,3, + 1,1,5,2,1,1,3,3,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,2,2,7,1,0,1,3, - 1,1,2,4,2,4,7,9,5,1, - 3,1,0,1,1,1,2,4,4,1, - 2,5,5,3,3,1,4,3,1,0, - 1,3,1,1,1,-102,0,0,0,-2, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-97,0, - 0,0,0,-16,0,0,0,0,-12,0, - 0,0,0,0,-22,0,0,-109,0,0, - 0,-254,0,0,0,0,0,0,0,-66, + 1,1,1,1,2,2,7,1,0,1, + 3,1,1,2,4,2,4,7,9,5, + 1,3,1,0,1,1,1,2,4,4, + 1,2,5,5,3,3,1,4,3,1, + 0,1,3,1,1,1,-104,0,0,0, + -2,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-16,0, + 0,0,0,-19,0,0,0,0,0,0, + 0,0,0,-426,-257,0,0,-110,0,0, + 0,-23,0,0,0,0,0,0,0,-7, -130,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-39,0,0,0,0,0,0, - 0,-259,0,0,0,0,0,0,-403,-46, + 0,0,0,0,0,0,0,-410,0,0, + 0,0,0,0,0,-9,0,0,0,-296, + 0,-47,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-518,0,0, + 0,0,0,0,0,0,0,0,0,-10, + 0,-226,0,0,0,-440,0,0,0,0, + 0,0,-72,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-69,0,-7, - 0,0,-189,0,0,0,0,0,0,0, - 0,0,0,0,0,-10,0,0,0,0, - 0,0,-70,0,0,0,0,0,0,0, + 0,0,0,-175,0,0,-3,0,0,-284, + -17,0,0,0,0,0,-70,0,0,0, + 0,0,0,0,0,0,-18,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,-83,0,-150,0,0,0,0, - 0,0,0,0,0,0,0,-68,0,0, - 0,0,-17,0,0,0,0,-23,0,-85, + 0,0,0,0,0,0,0,0,0,-99, + 0,0,0,0,0,0,0,0,0,-300, + 0,0,-153,0,0,0,-225,0,0,-48, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-407,0,0, - 0,0,0,0,0,0,0,-19,0,0, - 0,0,0,0,-152,0,0,0,0,0, - 0,-515,0,0,0,0,0,0,0,0, - 0,0,0,-218,0,0,-18,-191,0,0, - 0,0,0,0,0,0,0,0,0,-24, - -214,0,0,0,0,0,0,0,0,0, + 0,-168,0,-217,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-71,0,0,0,0,0,-243, - 0,0,-25,0,0,-372,0,0,0,-9, - 0,0,0,-373,0,0,0,-89,0,0, + -98,0,0,0,0,0,0,0,0,0, + 0,-28,0,0,0,0,0,-43,0,0, + 0,-246,-24,0,0,0,0,0,0,-91, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-283,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-44, + -49,0,0,0,-25,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-26,0,0,-230,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,-13,0,0,0,0,0, + 0,-20,0,0,-4,0,0,0,-111,0, + 0,0,-477,0,0,0,0,0,0,0, + -189,0,-36,0,0,-14,0,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,-34,0,-35,-227,0,0,0,0, + 0,0,-5,0,0,0,-75,0,0,0, + 0,0,0,0,0,0,-190,0,0,0, + 0,-37,0,0,0,0,0,-481,0,0, + 0,0,-38,0,0,0,0,-34,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-36,0, - 0,0,0,-213,0,0,0,0,-81,0, - 0,0,0,0,0,0,0,-110,0,0, - 0,-37,0,0,0,0,0,0,0,-485, - 0,0,0,-38,-14,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-39, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-40,0,0, - 0,0,0,0,0,-72,0,0,0,0, - 0,0,-298,0,0,0,-53,0,0,-225, - 0,0,0,0,0,0,-11,0,0,0, - 0,-281,0,0,0,0,-32,0,0,0, + 0,-40,0,0,-42,0,0,0,-350,0, + 0,0,-228,0,0,0,0,0,-22,-106, + 0,0,0,0,0,-308,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-379,0,0,0,0,0,0,-321, + 0,0,0,0,0,0,0,-344,0,0, + 0,-55,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-56, + 0,0,0,0,0,0,0,0,-57,0, + 0,-386,0,0,-32,0,0,0,0,-68, + -345,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-151,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-400,0,0, + 0,-15,0,0,0,-107,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-35,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-235,0,0,0,-478,-66,0,0,0, + -58,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-85,0,0,-86,-133,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,0,0,0,0,0,0, + 0,0,-59,0,0,-29,0,0,0,-134, + 0,0,0,-60,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, + -135,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-4, - 0,0,0,0,0,0,0,-54,0,-55, - 0,0,0,0,0,0,0,0,-56,0, 0,0,-41,0,0,0,0,0,0,0, - 0,0,0,0,0,-306,0,0,0,0, + 0,-62,0,0,-152,0,0,-33,0,0, + 0,-136,0,0,0,-63,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,-354,0,0,0,0,0,-187,-180, + 0,0,-137,0,0,0,-65,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-83,0,0,0,0,0, + 0,0,0,-67,0,0,-154,0,0,-101, + 0,0,0,-138,0,0,0,-69,0,0, + 0,0,0,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, + -102,0,0,0,-139,0,0,0,-76,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-88,0,0,-159,0, + 0,-196,0,0,0,-140,0,0,0,-90, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-100,0,0, + 0,0,-165,0,0,0,0,0,0,-109, + 0,0,-169,-181,0,0,-141,0,0,0, + -146,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-148,0, + 0,0,0,0,0,0,0,0,0,0, + -219,0,0,-170,0,0,0,-142,0,0, + 0,-149,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-150,0, + 0,-220,0,0,-176,0,0,0,-143,0, + 0,0,-157,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -158,0,0,0,0,0,0,0,0,-163, + 0,0,-224,0,0,-353,0,0,0,-167, + 0,0,0,-164,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-185,0,0,0,0,0,0,0,0, + -171,0,0,-240,0,0,-191,0,0,0, + -251,0,0,0,-172,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,-245,0,0,-195,0,0, + 0,-511,0,0,0,-174,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,-182,0,0,0,0,0,0, - 0,0,0,-3,0,0,0,-341,0,0, - 0,-5,0,0,0,0,0,0,0,0, + 0,0,-183,0,0,-184,0,0,-238,-252, + 0,0,-299,0,0,0,-254,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -347,0,0,0,0,0,0,0,0,0, - -315,0,0,0,0,0,-84,0,0,-288, - -342,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-331,0,0,0,0,0,0, - 0,-57,0,-282,0,0,0,0,0,0, - 0,0,-15,0,0,0,-167,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-367,0,0,0,0, - -293,0,0,0,0,0,0,0,0,0, - -319,0,-232,0,0,0,-64,0,0,0, + 0,0,0,0,-197,0,0,0,0,0, + 0,0,0,-198,0,0,-199,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,-291,0,0,0, + 0,0,0,-317,0,0,-192,0,0,0, + -247,0,0,0,0,0,0,0,-200,-352, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-307,0,0,0, + 0,0,0,-330,0,0,-362,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-290,0, + 0,0,0,0,0,0,0,-201,0,0, + 0,0,0,-194,0,0,0,-275,0,0, + 0,0,0,0,0,-202,-363,0,0,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,0,0,0, + 0,0,0,-413,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-295,0,0,0,0, + 0,0,0,0,-204,0,0,-406,0,0, + -324,0,0,0,-282,-372,0,0,0,0, + -236,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,0,0,0, + -316,0,0,0,0,0,0,-222,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,-318,0,0,0,0,0,0, - 0,-58,0,-59,0,0,0,0,-184,0, - 0,0,-133,0,0,0,-193,0,0,0, + 0,0,-71,0,0,0,0,-242,0,0, + 0,0,0,-131,0,0,0,-205,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,-127,0,0,0,-207,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-128,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-351,0,0,-134,0,0,0,-350,0, + 0,0,0,0,-265,0,0,0,0,-129, + 0,0,0,-250,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-60,0,0, - 0,0,-104,0,0,0,0,-335,0,0, - 0,0,0,0,0,0,-135,0,0,0, - -369,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-336, - 0,0,0,0,0,0,0,-61,0,0, - 0,0,0,0,-62,0,0,0,-136,0, - 0,0,-63,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,-67, - 0,-435,0,0,0,0,0,0,0,0, - -137,0,0,0,-74,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-462,0,0,0,0,0,0, - 0,-86,0,-88,0,0,0,0,-418,0, - 0,0,-138,0,0,0,-98,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-423,0,0,0,0, - -107,0,0,0,0,-108,0,0,0,0, - -422,0,0,0,-139,0,0,0,-145,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-505,0,0, - 0,0,-147,0,0,-148,0,-149,0,0, - 0,0,-156,0,0,0,-140,0,0,0, - -157,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-506, - 0,0,0,0,-162,0,0,-163,0,-170, - 0,0,0,0,-171,0,0,0,-141,0, - 0,0,-172,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-173,0,0,0,0,-181,0,0,-194, - 0,-195,0,0,0,0,-196,0,0,0, - -142,0,0,0,-197,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-198,0,0,0,0,-199,0, - 0,-200,0,-201,0,0,0,0,-202,-203, - 0,0,-166,0,0,0,-204,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-205,0,0,0,0, - -206,0,0,-207,0,-325,0,0,0,0, - -208,-209,0,0,-248,0,0,0,-210,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-211,0,0, - 0,0,-212,0,0,-228,0,-229,0,0, - 0,0,-230,-231,0,0,-508,0,0,0, - -252,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-253, - 0,0,0,0,-263,0,0,-264,0,-266, - 0,0,0,0,-271,-272,0,0,-297,0, - 0,0,-179,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-105,0,0,0,0,-274,0,0,-276, - 0,-27,0,0,0,0,-329,0,0,0, - -251,0,0,0,0,0,0,0,0,0, + 0,-334,0,0,0,0,-21,0,0,0, + -298,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,-187,0,0,0,0,-283, - 0,0,0,0,-31,0,-349,0,0,0, + 0,-89,-122,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-239, - 0,0,0,0,-99,0,0,0,0,-100, - 0,0,0,0,-359,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-116,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-287,0,-291,0,0, - 0,0,-321,0,0,0,-292,-307,0,0, - 0,0,-168,0,-360,0,0,0,0,0, + -355,0,0,0,0,-78,0,0,0,0, + 0,-50,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-308,0,0, - 0,0,-169,0,0,0,0,-175,0,0, - 0,0,-410,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-208,0, + -209,0,-263,0,0,0,0,0,0,0, + -103,-405,0,0,0,-288,0,0,0,0, + 0,0,-123,0,0,0,-210,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-211,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,-316,0,-320,0,0,0,0, - -354,0,0,0,-328,-330,0,0,0,0, - -188,-180,-144,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, - -370,0,0,0,0,-13,0,0,-192,0, - -131,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-235,0,-129,0,0,0,-244, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-249,0, - 0,0,0,-273,0,0,0,0,-126,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-371,0,0,0,0,0,0,-127,0, - 0,0,-262,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-128,0,0,0, - -377,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-73, - 0,0,0,0,-21,0,0,0,-379,0, - -260,0,0,0,-388,0,0,0,-219,0, - 0,-389,-396,-337,0,0,0,-265,0,0, - 0,-120,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-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,-398, - -401,0,0,0,-279,0,0,0,-117,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-285,0,0,0, - 0,-26,-357,0,0,0,-327,0,-313,0, + -394,0,0,0,0,0,0,-77,0,-429, + -80,0,-325,0,-259,0,0,-327,0,0, + -221,0,0,-268,0,0,0,0,-280,0, + 0,0,0,0,0,0,0,0,0,-411, 0,0,-223,0,0,0,0,0,0,0, - 0,-122,0,0,0,-409,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-123,0, - 0,0,-411,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-356,0,0,0,-124,0,0,0,-247, + 0,0,0,-281,0,0,0,0,0,0, + 0,0,-377,-212,0,0,0,-216,0,0, + 0,0,0,0,0,0,0,0,-462,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-338,0,0,0,0,0,-335,0, + 0,0,0,-147,0,0,0,0,0,0, + 0,0,0,0,0,-328,0,-249,0,0, + 0,-260,0,0,0,0,0,0,0,0, + 0,0,0,-84,0,0,0,0,-155,0, + 0,0,-480,0,0,0,0,-262,-415,-421, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-425,0,0,-501,-301, + 0,0,0,0,0,0,-227,0,0,0, + 0,0,0,-302,-213,0,0,0,0,0, + 0,0,0,0,0,-214,0,0,0,0, + 0,-215,-160,0,0,0,-485,0,-79,0, + 0,-179,-231,-12,0,0,0,-303,0,0, + 0,0,0,0,0,0,0,0,0,-304, + -339,0,0,0,-112,0,0,-239,0,0, + -232,0,0,0,0,0,0,-314,0,0, + 0,0,0,0,0,0,0,0,-93,0, + 0,0,0,0,-233,-508,0,-237,0,0, + -486,0,0,0,0,-509,0,0,0,-359, + 0,0,-234,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-186,0,0, + 0,0,0,0,0,0,0,0,-255,0, + 0,-256,0,0,0,0,0,0,0,0, + 0,0,0,0,-348,-266,0,0,0,0, + 0,0,0,0,-267,0,0,0,0,0, + -286,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-264,0,0,0, + 0,0,0,-357,0,0,0,-74,-273,0, + 0,0,0,0,0,-125,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-274,0,0, + -126,0,0,0,-276,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-419,0,0,0,0,-81,-403,0, + 0,0,0,0,0,0,0,0,-278,-423, + -360,0,0,-166,0,0,-368,-341,-113,0, + 0,-438,0,0,0,0,0,-483,-229,0, + 0,-444,-343,-285,-378,0,0,0,0,0, + 0,0,0,0,-289,0,0,0,0,0, + 0,0,0,0,-465,0,0,-261,0,0, + 0,0,0,0,0,0,0,0,0,0, + -493,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-293,0,0, + 0,0,0,-287,0,0,0,0,-294,0, + 0,0,0,0,0,0,0,0,0,-495, + 0,0,-309,0,0,0,0,0,0,0, + 0,0,-310,-318,-422,0,0,0,0,0, + 0,0,-315,0,0,0,0,-322,0,0, + 0,0,0,0,0,0,0,0,-500,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-144,-323,-502,0,0,0,0, + 0,-331,0,0,0,0,-342,0,0,0, + 0,0,0,0,0,0,0,-519,0,-333, + 0,0,0,0,0,0,0,0,0,0, + -387,0,-269,-349,0,0,0,0,-369,0, + -395,0,0,-373,0,0,0,0,0,0, + 0,0,0,0,0,0,-523,0,-374,0, + 0,0,0,0,0,0,0,0,0,-390, + 0,-380,-393,0,0,-188,0,-358,0,0, + -488,0,0,0,-424,0,0,0,0,0, + 0,0,0,0,0,-525,0,0,-382,0, + 0,0,0,0,0,0,0,0,-398,-375, + 0,0,0,0,-391,-336,-392,0,0,-430, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-370,0,0,-399,-450,0, + 0,0,0,0,0,0,0,-277,0,0, + 0,0,0,0,0,0,0,-401,-404,-340, + 0,0,0,0,0,0,0,0,0,0, + 0,-117,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-365,0,0,0,0, + 0,0,0,0,0,-389,0,0,-434,0, + -412,0,0,0,-402,-414,-371,0,0,0, + -451,-346,-376,0,0,0,0,0,0,0, + 0,-416,-6,0,0,0,0,-417,0,0, + 0,0,0,0,-418,-383,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-420,0,-431, + 0,0,0,0,0,0,0,0,-433,0, + -459,0,0,0,0,0,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,-503,-30,0,0,0,0,0,0, + 0,0,0,0,-473,-435,-427,-8,0,0, + 0,0,0,-456,-453,-436,-437,0,0,-258, + 0,0,0,0,-439,0,0,0,0,0, + -482,-428,0,0,0,0,0,0,-472,0, + 0,0,0,-455,0,0,0,0,-441,0, + 0,-454,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-458,0,-442,0, + 0,0,0,0,0,-457,0,-94,0,0, + 0,0,-489,0,0,0,0,-443,0,0, + 0,0,0,0,0,0,0,0,0,0, + -329,0,0,0,-448,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-484,0, + 0,-452,0,-460,-384,0,0,0,0,0, + 0,0,0,0,-467,-95,-475,-494,0,0, + 0,-461,-496,0,0,0,0,0,0,0, + 0,0,0,0,0,-469,0,0,0,0, + 0,-507,0,0,0,0,0,0,0,0, + 0,0,0,0,-385,0,0,0,0,0, + -505,0,0,0,-463,0,0,-512,0,-464, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-413,0, - 0,-125,0,0,0,-257,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-391,0,0,-414,0,0, - -246,0,0,0,-277,-233,0,0,0,-392, - 0,0,-30,0,0,-415,0,0,-486,0, - 0,-177,0,-222,0,-417,0,0,-402,0, - 0,0,0,0,-408,0,0,0,0,0, - 0,0,0,0,0,0,0,-400,0,0, - 0,0,0,0,0,0,0,0,-362,0, + 0,0,0,0,-118,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-459,0,0,-428,0,-430,-432,0,0, - 0,0,0,0,0,0,0,0,0,0, - -433,-434,0,-436,0,0,0,0,0,-286, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-255,0,0,0,0,0, - 0,0,0,0,-33,-294,-477,0,0,0, - 0,-78,0,-261,0,0,0,-280,-438,0, - 0,0,0,0,0,0,0,0,-299,0, - -296,-439,0,0,-76,0,0,0,0,0, + 0,0,0,0,0,0,-119,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-151, - -185,0,-174,0,0,0,-224,0,0,0, - 0,-482,0,-355,0,0,0,0,-381,0, - 0,0,-440,0,0,0,0,0,0,0, - 0,0,0,0,0,-300,-146,0,0,0, - -480,-236,-445,-101,0,0,0,0,0,0, - 0,0,-258,-449,-457,0,0,0,0,0, - 0,0,0,0,0,-8,0,0,0,0, - 0,-82,0,0,0,0,-483,0,0,0, - 0,-161,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-120,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-154,0,0,0,-301,0, - 0,-464,0,0,0,0,0,-382,0,0, 0,0,0,0,0,0,0,0,0,0, - -91,0,0,0,0,0,0,0,0,0, - -352,0,0,-302,0,0,0,0,0,0, - 0,0,-87,0,0,0,0,0,0,0, - 0,0,0,-333,0,0,0,0,0,-178, - -472,-491,0,0,0,0,0,-375,0,0, - 0,0,-115,0,0,0,0,0,0,0, + -292,0,0,0,0,0,0,0,0,0, + -471,-506,0,-311,0,0,0,0,-476,0, + 0,0,0,-396,0,0,0,0,-510,0, + 0,0,0,0,0,0,0,0,-504,-490, + 0,0,-193,0,0,0,-474,-44,0,0, + 0,0,0,0,0,-491,0,0,0,0, + 0,0,-514,-73,0,0,0,0,0,0, + 0,-305,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-312,0,-116,0,0, + 0,-492,0,-516,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-11, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-51,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -416,0,0,-153,0,0,0,0,0,-504, - -509,-6,0,0,0,-186,0,0,0,0, - 0,0,0,0,-29,0,0,0,0,-278, - 0,0,0,0,0,0,0,-165,0,0, - -441,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-20,-155,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-92,0,0, - -490,0,0,-437,0,0,0,0,0,0, - 0,0,0,0,0,-112,0,-158,0,0, - 0,0,0,0,-43,0,0,0,0,0, - 0,0,0,0,0,0,0,-226,0,0, - -492,0,-340,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -164,-216,-498,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-93,0,0, - -497,0,-499,0,0,0,0,0,0,0, - 0,0,0,-217,-383,-143,0,0,0,0, - 0,0,0,0,-95,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -516,0,-366,0,0,0,0,0,0,0, + 0,0,0,0,0,-52,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -221,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-94,0,0, - -520,0,0,0,0,0,0,0,0,0, - 0,0,0,-237,0,-267,0,0,0,0, - 0,0,0,0,-160,0,0,0,0,0, + 0,0,0,0,0,0,-53,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -522,0,-374,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-419,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,-385,0,0, - 0,0,0,-397,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-475,0,0, - 0,0,-242,-502,0,0,0,-474,0,0, - 0,0,0,0,0,0,0,-118,0,0, + 0,0,0,0,0,0,0,0,-105,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-114, 0,0,0,0,0,0,0,0,0,0, - -119,0,0,0,-75,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-275,0,0,0,0,0,0, - 0,0,0,-45,0,0,0,-412,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,-289,-386,-376,-305,0, - 0,0,0,0,0,0,0,-338,-159,0, - 0,0,0,0,-425,0,0,0,0,0, - 0,0,-314,0,0,-322,0,0,0,0, - 0,0,0,0,0,-393,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-399, - 0,0,0,0,0,-500,0,0,0,0, - 0,0,0,0,0,0,0,-324,-420,0, + 0,-177,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-501,-429,0,0,0,0,0, + 0,0,-243,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-28,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-310,0,0,-453, - -343,0,-469,0,0,0,0,0,0,0, + 0,0,0,-347,0,0,0,-520,0,0, + 0,0,0,-46,0,0,0,-515,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-339,-368,0, - 0,-183,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-517,0,0, + -498,0,0,0,0,-178,0,0,0,0, + 0,-524,0,0,0,0,0,0,0,0, + 0,0,0,0,-1,0,0,0,0,0, + 0,0,0,0,0,-82,0,0,0,-306, + 0,-270,0,0,0,0,0,0,-31,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-332,0,0,-380,0,0,-421,-494, - 0,0,0,0,-345,0,0,0,0,0, - 0,0,-455,0,0,-447,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-234,0,0,0,0,0,0,-190, - 0,0,0,0,0,0,-448,-268,0,0, - 0,0,-365,0,-424,0,0,0,0,0, - 0,0,0,0,0,-481,0,-384,-387,0, - 0,0,0,-390,0,0,0,0,0,-42, + -522,-351,0,0,0,0,0,0,0,0, + 0,-388,0,0,0,0,0,0,0,0, + 0,0,-218,0,0,0,0,0,0,-45, + 0,0,0,0,-271,0,0,0,0,-361, 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,0, - 0,0,0,0,-395,-427,-452,0,0,0, + 0,0,0,0,0,-326,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -431,0,0,0,0,0,0,0,0,0, - -450,0,-451,0,0,0,0,-454,-460,0, - -456,0,0,0,0,0,0,0,0,0, - 0,0,-47,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-48,0,0,0,0,0, + 0,0,0,0,-470,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-337, + 0,0,0,0,0,-366,0,0,0,0, + 0,-367,0,0,0,0,0,0,0,0, + -381,0,0,0,0,0,0,0,0,-466, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-49,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,0, + 0,0,0,0,0,-92,0,0,0,0, + 0,0,0,-487,0,0,0,0,0,0, + 0,0,0,-97,0,0,0,0,0,-108, + 0,0,0,0,-161,0,0,0,0,-241, + 0,0,0,0,0,0,0,0,0,-279, + 0,0,0,0,0,0,0,0,-312,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,-356,-364, + 0,0,0,0,0,-248,0,0,0,-253, + 0,0,0,-407,-445,-446,0,0,0,0, + 0,0,-447,0,0,0,0,-162,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-52,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-103,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,-96,0,0,0,0,0,-244,0, + -313,-449,0,0,0,0,0,0,0,0, + 0,0,0,-272,0,0,0,0,0,0, + 0,-408,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-114,0, + 0,0,0,0,0,-409,-468,0,0,0, + 0,0,0,0,0,0,0,-397,-479,0, 0,0,0,0,0,0,0,0,0,0, + 0,-497,0,0,0,0,0,-513,0,-521, + 0,0,0,0,0,0,0,-319,0,0, + 0,0,-499,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,0,0,0,0,0, - 0,0,-240,0,0,0,-77,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-290,0,0,0,0,0, - 0,0,0,0,0,0,0,-309,0,0, - 0,0,0,0,0,0,0,-458,0,-79, - -466,0,-507,0,0,0,0,0,0,0, - 0,0,-461,-468,0,0,0,-344,0,0, - 0,-470,0,0,0,0,0,0,0,0, - 0,0,-96,0,0,0,0,-479,0,0, - 0,0,0,0,0,0,0,0,0,-471, 0,0,0,0,0,0,0,0,0,0, - 0,-473,0,0,0,0,0,0,0,0, - 0,0,0,-487,0,0,-488,0,0,0, - 0,0,0,0,0,-493,0,0,0,0, - 0,0,-513,-503,0,0,0,0,0,-284, - 0,0,0,-489,0,0,0,0,-511,0, - 0,0,0,0,-80,0,0,0,0,0, - -517,0,-512,0,-465,0,0,0,0,0, - 0,0,-521,0,0,-495,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-295, - 0,0,0,0,0,-1,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-326, - 0,0,0,0,0,0,0,0,0,-514, - 0,-241,-311,-405,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-519,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-358,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-238,0,0, - 0,0,0,-478,0,0,0,0,0,0, - 0,0,0,0,0,0,-467,0,0,0, - 0,0,0,0,0,0,0,-215,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-256,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-426,0,0,0,0, - 0,0,-323,0,0,0,-334,0,0,0, - -111,0,0,0,0,0,0,0,0,0, - 0,0,0,-363,0,0,0,0,0,0, - 0,0,0,0,0,0,-353,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-364,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-378, - 0,0,0,0,0,0,0,0,0,-463, - 0,0,0,0,0,0,0,-484,0,0, - 0,0,-245,0,0,0,0,0,0,0, - 0,0,-361,0,0,0,0,0,0,-303, - 0,0,0,0,0,-90,-106,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-250,0,0,0,0, - 0,0,-404,0,0,0,0,-442,-443,0, - 0,0,0,0,0,0,-444,0,0,-406, - 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,0,-476,0,0,0,0,0,0, - 0,0,0,0,0,0,-510,-518,-269,0, - 0,0,0,-270,-304,0,0,0,0,0, - 0,0,-317,-348,0,0,0,0,-394,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 }; }; public final static short baseCheck[] = BaseCheck.baseCheck; @@ -524,521 +520,518 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface BaseAction { public final static char baseAction[] = { - 170,4,53,77,77,33,33,63,63,38, - 38,190,190,191,191,192,192,1,1,15, - 15,15,15,15,15,15,15,16,16,16, - 14,10,10,8,8,8,8,8,2,64, - 64,5,5,11,11,11,11,43,43,131, - 131,132,62,62,42,17,17,17,17,17, - 17,17,17,17,17,17,17,17,17,17, - 17,17,17,17,17,133,133,133,115,18, - 18,18,18,18,18,18,18,18,18,18, - 18,18,19,19,171,171,172,172,173,136, - 136,137,137,134,134,138,135,135,20,20, - 21,21,22,22,22,24,24,24,24,25, - 25,25,26,26,26,27,27,27,27,27, - 29,29,29,30,30,32,32,34,34,35, - 35,36,36,37,37,41,41,40,40,40, - 40,40,40,40,40,40,40,40,40,40, - 39,28,139,139,97,97,101,101,92,193, - 193,69,69,69,69,69,69,69,69,69, - 70,70,70,71,71,58,58,174,174,72, - 72,72,116,116,73,73,73,73,74,74, - 74,74,74,75,75,78,78,78,78,78, - 78,78,48,48,48,48,48,104,104,105, - 105,49,175,23,23,23,23,23,47,47, - 87,87,87,87,87,146,146,141,141,141, - 141,141,142,142,142,143,143,143,144,144, - 144,145,145,145,88,88,88,88,88,89, - 89,89,12,13,13,13,13,13,13,13, - 13,13,13,13,98,120,120,120,120,120, - 118,118,118,119,119,148,148,147,147,122, - 122,149,82,82,83,83,85,86,84,51, - 46,150,150,52,50,81,81,151,151,140, - 140,107,107,65,65,152,152,60,60,54, - 54,153,61,61,67,67,57,57,57,90, - 90,100,99,99,59,59,55,55,56,56, - 44,102,102,102,93,93,93,94,95,95, - 95,96,96,108,108,108,110,110,109,109, - 194,194,91,91,177,177,177,177,177,124, - 45,45,155,176,176,125,125,125,125,178, - 178,31,31,117,126,126,126,126,111,111, - 121,121,121,157,158,158,158,158,158,158, - 158,158,158,181,181,179,179,180,180,159, - 159,159,159,160,182,113,112,112,183,183, - 161,161,161,161,103,103,103,184,184,9, - 185,185,186,162,154,154,163,163,164,165, - 165,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,68,68,168, - 168,127,127,128,128,128,128,128,128,3, - 169,169,166,166,129,129,129,79,80,76, - 156,156,114,114,187,187,187,130,130,123, - 123,188,188,170,170,106,958,38,1616,1611, - 1428,3642,34,650,31,35,30,32,1737,262, - 29,27,55,1037,110,80,81,112,1088,2057, - 1099,1090,1362,1232,31,1438,1364,274,1495,1451, - 1488,1503,1522,147,3075,1209,162,148,1199,38, - 666,36,1575,3710,34,650,31,35,62,32, - 1209,2308,38,666,36,232,3155,34,650,31, - 35,30,32,1018,262,29,27,55,1037,110, - 80,81,112,1088,416,1099,1090,1362,1232,3235, - 1438,1832,1978,235,230,231,329,4240,718,2217, - 2308,38,1616,1611,275,3155,34,650,31,35, - 30,32,1018,262,29,27,55,1037,110,80, - 81,88,485,242,245,248,251,2795,1113,3593, - 1683,37,1545,1777,38,666,36,324,4523,34, - 650,31,35,64,32,1574,1887,1026,2370,3435, - 4047,4090,4205,1466,38,666,36,2375,3155,34, - 650,31,35,1656,32,1018,262,29,27,55, - 1037,110,80,81,112,1088,340,1099,1090,1362, - 1232,66,1438,1364,1209,1495,1721,1488,1503,1522, - 147,3075,2857,504,148,1271,443,2864,1954,38, - 666,36,1200,329,34,650,337,35,247,505, - 1466,38,666,36,2375,3155,34,650,31,35, - 1656,32,1018,262,29,27,55,1037,110,80, - 81,112,1088,340,1099,1090,1362,1232,2649,1438, - 1364,484,1495,330,1488,1503,1522,147,44,1200, - 504,148,673,418,2864,1341,38,3224,3192,47, - 1629,447,1946,38,666,36,505,4523,34,650, - 31,35,30,32,1514,2087,498,1914,1777,38, - 666,36,500,4523,34,650,31,35,63,32, - 1170,1732,38,666,36,2375,3155,34,650,31, - 35,1656,32,1018,262,29,27,55,1037,110, - 80,81,112,1088,340,1099,1090,1362,1232,1653, - 1438,1364,1658,1495,1451,1488,1503,1522,147,3075, - 1785,504,148,1330,1234,2864,2612,38,388,500, - 1341,38,797,382,2612,38,388,505,1532,38, - 666,36,510,3155,34,650,31,35,30,32, - 1018,262,29,27,55,1037,110,80,81,112, - 1088,37,1099,1090,1362,1232,1698,1438,1364,1658, - 1495,329,1488,1503,1522,147,384,416,375,148, - 2263,38,666,36,3134,3155,34,650,31,35, - 30,32,1018,262,29,27,55,1037,90,80, - 81,378,1514,409,706,1941,1604,38,666,36, - 501,3155,34,650,31,35,30,32,1018,262, - 29,27,55,1037,110,80,81,112,1088,2044, - 1099,1090,1362,1232,1331,1438,1364,2385,1495,416, - 1488,1503,1522,147,3315,2392,375,148,1515,38, - 666,36,2098,3710,34,650,31,35,61,32, - 1341,38,291,379,2101,1798,38,666,36,376, - 3155,34,650,31,35,30,32,1018,262,29, - 27,55,1037,110,80,81,112,1088,499,1099, - 1090,1362,1232,97,1438,1364,2519,1495,2857,1488, - 1503,1522,147,1341,1905,375,148,2618,239,262, - 1341,38,1910,277,385,416,1247,1104,38,666, - 36,559,1461,34,650,336,35,2014,38,666, - 36,380,3155,34,650,31,35,30,32,1018, - 262,29,27,55,1037,110,80,81,112,1088, - 1108,1099,1090,1362,1232,232,1438,1364,325,1495, - 496,1488,1503,1522,147,49,1629,162,148,1007, - 3062,1080,319,1309,38,1587,46,313,1162,45, - 650,65,1952,240,230,231,2014,38,666,36, - 373,3155,34,650,31,35,30,32,1018,262, - 29,27,55,1037,110,80,81,112,1088,4184, - 1099,1090,1362,1232,416,1438,1364,323,1495,4348, - 1488,1503,1522,147,64,286,369,148,2014,38, - 666,36,1155,3155,34,650,31,35,30,32, - 1018,262,29,27,55,1037,110,80,81,112, - 1088,1461,1099,1090,1362,1232,1191,1438,1364,2164, - 1495,2637,1488,1503,1522,147,1574,1209,369,148, - 416,2014,38,666,36,4433,3155,34,650,31, - 35,30,32,1018,262,29,27,55,1037,110, - 80,81,112,1088,2424,1099,1090,1362,1232,322, - 1438,1364,2410,1495,1451,1488,1503,1522,147,3075, - 368,369,148,1857,38,666,36,1709,3155,34, - 650,31,35,30,32,1018,262,29,27,55, - 1037,110,80,81,112,1088,2637,1099,1090,1362, - 1232,1389,1438,1364,446,1495,4437,1488,1503,1530, - 168,1214,367,1341,38,1910,1915,1666,38,666, - 36,1354,3155,34,650,31,35,30,32,1018, - 262,29,27,55,1037,110,80,81,112,1088, - 377,1099,1090,1362,1232,1266,1438,1364,2164,1495, - 325,1488,1503,1522,147,365,92,146,148,106, - 312,2014,38,666,36,580,3155,34,650,31, - 35,30,32,1018,262,29,27,55,1037,110, - 80,81,112,1088,1844,1099,1090,1362,1232,3075, - 1438,1364,942,1495,1720,1488,1503,1522,147,1209, - 98,159,148,2014,38,666,36,1209,3155,34, - 650,31,35,30,32,1018,262,29,27,55, - 1037,110,80,81,112,1088,75,1099,1090,1362, - 1232,93,1438,1364,106,1495,410,1488,1503,1522, - 147,1354,1214,158,148,2014,38,666,36,1209, - 3155,34,650,31,35,30,32,1018,262,29, - 27,55,1037,110,80,81,112,1088,1181,1099, - 1090,1362,1232,760,1438,1364,4043,1495,416,1488, - 1503,1522,147,4454,56,157,148,2014,38,666, - 36,1209,3155,34,650,31,35,30,32,1018, - 262,29,27,55,1037,110,80,81,112,1088, - 416,1099,1090,1362,1232,4486,1438,1364,118,1495, - 100,1488,1503,1522,147,934,101,156,148,2014, - 38,666,36,68,3155,34,650,31,35,30, - 32,1018,262,29,27,55,1037,110,80,81, - 112,1088,1085,1099,1090,1362,1232,76,1438,1364, - 850,1495,416,1488,1503,1522,147,4510,102,155, - 148,2014,38,666,36,343,3155,34,650,31, - 35,30,32,1018,262,29,27,55,1037,110, - 80,81,112,1088,416,1099,1090,1362,1232,4518, - 1438,1364,148,1495,517,1488,1503,1522,147,1341, - 3686,154,148,2014,38,666,36,2366,3155,34, - 650,31,35,30,32,1018,262,29,27,55, - 1037,110,80,81,112,1088,2135,1099,1090,1362, - 1232,1029,1438,1364,2821,1495,1145,1488,1503,1522, - 147,1341,2874,153,148,2014,38,666,36,590, - 3155,34,650,31,35,30,32,1018,262,29, - 27,55,1037,110,80,81,112,1088,2135,1099, - 1090,1362,1232,242,1438,1364,1144,1495,778,1488, - 1503,1522,147,1475,3801,152,148,2014,38,666, - 36,430,3155,34,650,31,35,30,32,1018, - 262,29,27,55,1037,110,80,81,112,1088, - 2135,1099,1090,1362,1232,205,1438,1364,503,1495, - 677,1488,1503,1522,147,764,513,151,148,2014, - 38,666,36,1024,3155,34,650,31,35,30, - 32,1018,262,29,27,55,1037,110,80,81, - 112,1088,1039,1099,1090,1362,1232,1647,1438,1364, - 1436,1495,1979,1488,1503,1522,147,847,512,150, - 148,2014,38,666,36,1562,3155,34,650,31, - 35,30,32,1018,262,29,27,55,1037,110, - 80,81,112,1088,1841,1099,1090,1362,1232,1005, - 1438,1364,2064,1495,2351,1488,1503,1522,147,2436, - 670,149,148,2014,38,666,36,757,3155,34, - 650,31,35,30,32,1018,262,29,27,55, - 1037,110,80,81,112,1088,1874,1099,1090,1362, - 1232,2560,1438,1364,2563,1495,2508,1488,1503,1522, - 147,1597,1807,163,148,2014,38,666,36,553, - 3155,34,650,31,35,30,32,1018,262,29, - 27,55,1037,110,80,81,112,1088,604,1099, - 1090,1362,1232,1344,1438,1364,1939,1495,2096,1488, - 1503,1522,147,2431,2435,144,148,2218,38,666, - 36,1995,3155,34,650,31,35,30,32,1018, - 262,29,27,55,1037,110,80,81,112,1088, - 292,1099,1090,1362,1232,1112,1438,1364,865,1495, - 2516,1488,1503,1522,147,2497,2502,193,148,2308, - 38,666,36,1398,3155,34,650,31,35,30, - 32,1018,262,29,27,55,1037,110,80,81, - 112,1088,31,1099,1090,1362,1232,971,1438,1364, - 1762,1495,247,1488,1503,1530,168,2308,38,666, - 36,1968,3155,34,650,31,35,30,32,1018, - 262,29,27,55,1037,110,80,81,112,1088, - 2572,1099,1090,1362,1232,320,1438,1364,434,1495, - 349,1488,1503,1530,168,1954,38,666,36,396, - 1969,34,650,43,35,247,1995,2308,38,666, - 36,290,3155,34,650,31,35,30,32,1018, - 262,29,27,55,1037,110,80,81,112,1088, - 2089,1099,1090,1362,1232,247,1438,1364,374,1495, - 247,1488,1503,1530,168,2308,38,666,36,412, - 3155,34,650,31,35,30,32,1018,262,29, - 27,55,1037,110,80,81,112,1088,4021,1099, - 1090,1362,1232,28,1438,1364,2595,1495,2616,1488, - 1503,1530,168,1954,38,666,36,2114,1843,34, - 650,2961,35,247,1995,2308,38,666,36,1461, - 3155,34,650,31,35,30,32,1018,262,29, - 27,55,1037,110,80,81,112,1088,2370,1099, - 1090,1362,1232,247,1438,1364,74,1495,247,1488, - 1503,1530,168,2353,38,666,36,411,3155,34, - 650,31,35,30,32,1018,262,29,27,55, - 1037,110,80,81,112,1088,73,1099,1090,1362, - 1232,58,1438,1364,2188,1495,2027,1488,1503,1530, - 168,1954,38,666,36,1453,2521,34,650,3333, - 35,247,2082,2308,38,666,36,414,3155,34, - 650,31,35,30,32,1018,262,29,27,55, - 1037,110,80,81,112,1088,2674,1099,1090,1362, - 1232,2077,1438,1364,91,1495,44,1488,1863,247, - 1057,2308,38,666,36,2843,3155,34,650,31, - 35,30,32,1018,262,29,27,55,1037,110, - 80,81,112,1088,2005,1099,1090,1362,1232,350, - 1438,1364,57,1495,247,1839,2308,38,666,36, - 247,3155,34,650,31,35,30,32,1018,262, - 29,27,55,1037,110,80,81,112,1088,2568, - 1099,1090,1362,1232,247,1438,1364,347,1831,2308, - 38,666,36,94,3155,34,650,31,35,30, - 32,1018,262,29,27,55,1037,110,80,81, - 112,1088,2600,1099,1090,1362,1232,3489,1816,2308, - 38,666,36,2568,3155,34,650,31,35,30, - 32,1018,262,29,27,55,1037,110,80,81, - 112,1088,383,1099,1090,1362,1821,2308,38,666, - 36,2214,3155,34,650,31,35,30,32,1018, - 262,29,27,55,1037,110,80,81,112,1088, - 1387,1099,1090,1362,1824,2398,38,797,382,2692, - 2892,1341,38,1910,281,2574,283,237,262,1587, - 38,280,2624,2714,1341,38,797,382,1341,38, - 1910,279,2308,38,666,36,274,3155,34,650, - 31,35,30,32,1018,262,29,27,55,1037, - 110,80,81,112,1088,420,1099,1090,1779,232, - 2308,38,666,36,232,3155,34,650,31,35, - 30,32,1018,262,29,27,55,1037,110,80, - 81,112,1088,2381,1099,1090,1782,244,230,231, - 2293,2719,235,230,231,2526,38,1910,277,2308, - 38,666,36,275,3155,34,650,31,35,30, - 32,1018,262,29,27,55,1037,110,80,81, - 112,1747,242,245,248,251,2795,2526,38,1910, - 2166,1545,44,1294,38,440,730,2592,4500,1341, - 38,1910,2206,1341,38,282,1026,2370,3435,4047, - 4090,4205,2308,38,666,36,2625,3155,34,650, - 31,35,30,32,1018,262,29,27,55,1037, - 110,80,81,112,1088,394,1099,1090,1784,2308, - 38,666,36,2651,3155,34,650,31,35,30, - 32,1018,262,29,27,55,1037,110,80,81, - 112,1088,2135,1099,1090,1789,2308,38,666,36, - 2073,3155,34,650,31,35,30,32,1018,262, - 29,27,55,1037,110,80,81,112,1088,2727, - 1099,1790,2308,38,666,36,1514,3155,34,650, - 31,35,30,32,1018,262,29,27,55,1037, - 110,80,81,112,1088,175,1099,1797,2732,526, - 372,1259,38,797,382,151,1341,38,1916,2375, - 1376,38,440,44,1995,4500,2737,2973,229,2612, - 38,388,1451,160,2428,1905,2745,3075,3454,2425, - 2722,2721,274,184,3468,1,433,2351,2379,526, - 204,215,2678,203,212,213,214,216,1933,38, - 666,36,3575,173,34,650,336,35,229,1341, - 38,797,382,160,187,171,172,174,175,176, - 177,178,2549,184,3468,1602,2375,2713,2407,329, - 204,215,2678,203,212,213,214,216,387,416, - 423,2660,2696,173,2406,229,356,370,185,2000, - 31,3062,2078,319,188,171,172,174,175,176, - 177,178,3703,3026,1947,1950,77,206,215,2678, - 205,212,213,214,216,1173,38,666,36,4065, - 3060,34,650,336,35,44,938,2581,207,868, - 1900,2375,1021,1671,2428,1905,285,3499,247,2747, - 217,208,209,210,211,292,293,294,295,247, - 229,2568,88,395,2083,1067,38,1663,3108,2665, - 2925,2323,1908,437,2351,2379,3736,2861,3062,2078, - 319,3513,206,215,2678,205,212,213,214,216, - 44,1904,72,1183,4378,2375,54,1587,38,278, - 3486,315,2681,207,2508,1900,2375,723,775,1341, - 38,797,382,2720,340,217,208,209,210,211, - 292,293,294,295,284,229,247,1341,38,797, - 382,2568,1082,2383,1325,850,2375,3075,2652,427, - 422,3736,3213,1514,2726,2673,2636,206,215,2678, - 205,212,213,214,216,3454,1900,1283,54,71, - 2375,2398,1413,38,797,382,285,2699,207,51, - 1900,2375,1341,38,797,382,3054,3486,315,340, - 217,208,209,210,211,292,293,294,295,329, - 229,2791,1908,54,298,1511,38,797,382,247, - 3107,348,1679,274,723,1695,3736,3546,1341,38, - 797,382,206,215,2678,205,212,213,214,216, - 1480,44,3703,356,2902,2375,54,341,2182,1923, - 346,2432,70,207,247,1900,339,723,52,421, - 2284,1947,1950,988,340,217,208,209,210,211, - 292,293,294,295,1978,386,416,2389,2998,4240, - 1523,2753,2743,3393,2862,2864,434,69,2135,398, - 276,3736,3574,2308,38,666,36,1700,3155,34, - 650,31,35,30,32,1018,262,29,27,55, - 1037,110,80,81,112,1088,247,1740,2308,38, - 666,36,3088,3155,34,650,31,35,30,32, - 1018,262,29,27,55,1037,110,80,81,112, - 1088,262,1742,443,44,526,372,348,794,3675, - 2764,1944,1341,38,797,382,44,5147,5147,5147, - 1057,429,326,332,229,1341,38,797,382,160, - 2403,38,278,341,2182,1923,346,1271,988,184, - 3468,349,2254,54,2260,526,204,215,2678,203, - 212,213,214,216,723,554,54,1711,851,173, - 5147,844,932,5147,229,5147,5147,723,1572,160, - 2863,171,172,174,175,176,177,178,44,184, - 3468,436,2375,2636,2650,526,204,215,2678,203, - 212,213,214,216,2509,419,44,3088,44,173, - 1057,340,2654,3744,229,1345,38,797,382,160, - 180,171,172,174,175,176,177,178,988,184, - 3468,523,2864,988,160,526,204,215,2678,203, - 212,213,214,216,1705,1377,54,331,332,173, - 5147,44,44,2655,229,3168,2606,723,1942,160, - 191,171,172,174,175,176,177,178,44,184, - 3468,610,2375,2568,5147,526,204,215,2678,203, - 212,213,214,216,2489,856,44,3088,2873,173, - 1057,340,3088,5147,229,1341,38,797,382,160, - 3061,171,172,174,175,176,177,178,511,184, - 3468,697,2864,988,160,526,204,215,2678,203, - 212,213,214,216,1713,1858,54,328,332,173, - 5147,44,3723,332,229,2774,305,723,2823,160, - 194,171,172,174,175,176,177,178,44,184, - 3468,784,2375,430,5147,526,204,215,2678,203, - 212,213,214,216,44,5147,44,511,2635,173, - 1057,340,3088,5147,229,1341,38,797,382,160, - 190,171,172,174,175,176,177,178,5147,184, - 3468,871,2864,2432,160,526,204,215,2678,203, - 212,213,214,216,1732,2789,54,2622,352,173, - 5147,1057,3738,332,229,519,5147,723,2827,160, - 197,171,172,174,175,176,177,178,2597,184, - 3468,300,2375,5147,856,160,204,215,2678,203, - 212,213,214,216,5147,201,3717,5147,856,173, - 5147,3454,5147,44,1341,38,291,1052,2649,5147, - 196,171,172,174,175,176,177,178,2308,38, - 666,36,5147,3155,34,650,31,35,30,32, - 1018,262,29,27,55,1037,110,80,81,112, - 1755,2308,38,666,36,2059,3155,34,650,31, - 35,30,32,1018,262,29,27,55,1037,110, - 80,81,112,1774,1043,38,666,36,3607,492, - 34,650,336,35,2308,38,666,36,2432,3155, - 34,650,31,35,30,32,1018,262,29,27, - 55,1037,110,80,81,89,1851,2781,2608,44, - 1826,2375,2625,3173,232,490,491,351,247,1413, - 38,797,382,5147,519,988,183,3062,1080,319, - 229,321,510,44,313,1162,44,1181,519,2118, - 4467,348,247,230,231,5147,1341,38,797,382, - 54,60,206,215,2678,205,212,213,214,216, - 1915,723,52,4270,2375,5147,2568,341,2182,1923, - 346,186,5147,207,3193,1900,2088,439,44,2432, - 5147,2513,2834,229,3088,486,208,209,210,211, - 292,293,294,295,2568,1073,38,666,36,559, - 3075,34,650,336,35,206,215,2678,205,212, - 213,214,216,1057,38,666,36,199,3075,34, - 650,336,35,5147,3803,332,207,1451,1900,297, - 2799,1082,3075,1974,2375,2375,3075,1057,507,208, - 209,210,211,292,293,294,295,5147,3062,1080, - 319,362,329,229,3454,313,1162,296,247,247, - 1154,160,1599,38,797,382,3062,1080,319,5147, - 330,5147,166,314,1162,206,215,2678,205,212, - 213,214,216,44,329,4260,247,4533,329,2432, - 1974,59,105,54,1057,44,207,5147,1900,3253, - 5147,307,525,2817,723,2030,2432,2375,306,208, - 209,210,211,292,293,294,295,4108,160,3775, - 5147,4108,356,1423,2902,5147,229,198,3075,166, - 1853,38,797,382,4176,3811,5147,2432,44,2284, - 1947,1950,1057,44,202,247,2875,3225,206,215, - 2678,205,212,213,214,216,2663,5147,44,44, - 2375,54,3374,4583,44,5147,160,5147,758,207, - 44,1900,723,2580,526,200,5147,2856,438,229, - 330,508,208,209,210,211,292,293,294,295, - 348,4199,2631,340,5147,44,2362,1783,160,3505, - 3610,206,215,2678,205,212,213,214,216,2040, - 5147,44,5147,5147,2864,2702,343,2182,1923,346, - 5147,44,207,44,1900,3398,2035,3388,44,44, - 517,2432,2767,2832,218,208,209,210,211,292, - 293,294,295,2308,38,666,36,5147,3155,34, - 650,31,35,30,32,1018,262,29,27,55, - 1037,110,80,81,87,2308,38,666,36,221, - 3155,34,650,31,35,30,32,1018,262,29, - 27,55,1037,110,80,81,86,2308,38,666, - 36,5147,3155,34,650,31,35,30,32,1018, - 262,29,27,55,1037,110,80,81,85,2308, - 38,666,36,5147,3155,34,650,31,35,30, - 32,1018,262,29,27,55,1037,110,80,81, - 84,2308,38,666,36,5147,3155,34,650,31, - 35,30,32,1018,262,29,27,55,1037,110, - 80,81,83,2308,38,666,36,5147,3155,34, - 650,31,35,30,32,1018,262,29,27,55, - 1037,110,80,81,82,2171,38,666,36,5147, - 3155,34,650,31,35,30,32,1018,262,29, - 27,55,1037,110,80,81,108,2308,38,666, - 36,5147,3155,34,650,31,35,30,32,1018, - 262,29,27,55,1037,110,80,81,114,2308, - 38,666,36,5147,3155,34,650,31,35,30, - 32,1018,262,29,27,55,1037,110,80,81, - 113,2308,38,666,36,5147,3155,34,650,31, - 35,30,32,1018,262,29,27,55,1037,110, - 80,81,111,2308,38,666,36,2080,3155,34, - 650,31,35,30,32,1018,262,29,27,55, - 1037,110,80,81,109,1159,38,2175,36,559, - 3075,34,650,336,35,5147,5147,5147,1591,38, - 666,36,3611,5147,34,650,336,35,247,5147, - 2442,247,5147,1654,38,666,36,3607,5147,34, - 650,336,35,44,247,5147,232,2897,1300,38, - 666,36,2432,3075,34,650,336,35,3062,1080, - 319,4128,329,586,3131,313,1162,1057,2432,5147, - 1224,3062,1080,319,250,230,231,3171,313,1162, - 44,5147,5147,1952,4226,348,3062,1080,319,232, - 3670,164,247,313,1162,4260,5147,5147,514,5147, - 348,3062,1080,319,247,330,304,247,314,1162, - 5147,341,2182,1923,346,348,2432,253,230,231, - 2254,5147,5147,247,2432,3211,341,2182,1923,346, - 1341,38,797,382,2129,515,5147,1648,4093,2432, - 1690,343,2182,1923,346,2461,38,797,382,5147, - 2892,247,5147,2432,4647,1986,4289,238,262,2375, - 2128,274,303,247,407,2176,1447,38,666,36, - 559,5147,34,650,336,35,274,4648,340,5147, - 2545,38,797,382,3291,2507,1220,38,666,36, - 559,222,34,650,336,35,3331,5147,5147,4194, - 1057,38,666,36,232,3075,34,650,336,35, - 2432,54,44,1621,44,5147,2375,2375,2375,3062, - 1080,319,723,52,5147,5147,313,1162,78,2432, - 5147,1154,236,230,231,340,3454,340,5147,3062, - 1080,319,2394,275,5147,5147,313,1162,299,5147, - 5147,1154,5147,3062,1080,319,2864,330,2864,5147, - 316,1162,243,246,249,252,2795,195,2778,5147, - 496,1545,307,525,1577,38,2175,36,559,5147, - 34,650,336,35,5147,5147,5147,5147,1341,38, - 797,382,523,525,1104,38,666,36,559,5147, - 34,650,336,35,357,5147,4213,1104,38,666, - 36,559,5147,34,650,336,35,2875,1267,54, - 5147,5147,2375,4576,5147,5147,5147,3062,1080,319, - 723,3080,5147,5147,313,1162,5147,5147,5147,1224, - 5147,229,4167,5147,5147,5147,1349,3062,1080,319, - 2375,4576,5147,5147,313,1162,530,5147,5147,1154, - 3062,1080,319,1961,399,2755,1375,313,1162,229, - 2375,5147,2992,1853,38,797,382,2545,38,797, - 382,586,5147,5147,400,1057,1900,5147,5147,340, - 5147,1961,399,2755,2545,38,797,382,5147,518, - 308,525,5147,5147,54,5147,5147,2597,54,164, - 2864,2375,400,5147,1900,723,52,5147,5147,723, - 52,1881,521,5147,5147,54,2545,38,797,382, - 3454,5147,5147,408,2176,2171,723,52,5147,2689, - 2545,38,797,382,5147,5147,5147,5147,5147,1881, - 2632,38,797,382,5147,5147,2839,54,2646,38, - 797,382,5147,1341,38,797,382,5147,723,52, - 5147,54,5147,151,5147,401,403,2375,2219,5147, - 586,54,723,52,1057,5147,44,44,2938,54, - 526,526,723,52,54,5147,3454,2279,492,4406, - 723,52,3526,401,404,723,1942,5147,164,340, - 340,5147,990,5147,160,160,1341,38,797,382, - 3394,5147,5147,2599,5147,2123,2040,2375,44,44, - 2864,2864,526,526,489,491,5147,1974,5147,5147, - 44,526,2093,2181,2375,5147,3454,54,5147,5147, - 5147,340,340,5147,3777,5147,160,160,723,2730, - 4140,5147,44,340,356,160,526,192,192,5147, - 5147,5147,4367,4367,44,2211,166,3498,2375,5147, - 5147,3666,1947,1950,2864,340,5147,1974,1974,44, - 160,1057,1057,1057,44,586,494,340,1057,1057, - 5147,192,5147,44,586,5147,4367,1057,1057,586, - 5147,5147,5147,1057,492,160,160,160,2864,5147, - 44,5147,160,164,1057,5147,166,166,2929,5147, - 522,160,164,2964,5147,5147,5147,164,4112,5147, - 5147,5147,1419,5147,4091,4104,5147,5147,160,5147, - 489,491,5147,5147,5147,5147,5147,5147,5147,4183, - 5147,5147,5147,5147,5147,5147,5147,5147,5147,5147, - 5147,5147,5147,5147,5147,5147,5147,5147,4152,5147, - 5147,5147,5147,5147,5147,5147,5147,5147,4211,4223, - 5147,2724,3638,5147,5147,5147,5147,5147,5147,5147, - 5147,3639,5147,5147,5147,5147,3725,5147,5147,5147, - 5147,5147,3613,5147,0,5165,2,1,0,5164, - 2,1,0,441,768,0,2502,33,0,42, - 5165,0,42,5164,0,2502,381,0,1,431, - 0,445,704,0,444,1197,0,42,5165,2, - 0,42,5164,2,0,41,5165,0,41,5164, - 0,2522,130,0,48,5186,0,48,40,0, - 1,604,0,1,5420,0,1,5419,0,1, - 5418,0,1,5417,0,1,5416,0,1,5415, - 0,1,5414,0,1,5413,0,1,5412,0, - 1,5411,0,1,5410,0,42,5165,1,0, - 42,5164,1,0,1103,1,0,5381,241,0, - 5380,241,0,5482,241,0,5481,241,0,5408, - 241,0,5407,241,0,5406,241,0,5405,241, - 0,5404,241,0,5403,241,0,5402,241,0, - 5401,241,0,5420,241,0,5419,241,0,5418, - 241,0,5417,241,0,5416,241,0,5415,241, - 0,5414,241,0,5413,241,0,5412,241,0, - 5411,241,0,5410,241,0,42,241,5165,0, - 42,241,5164,0,5188,241,0,53,5165,0, - 53,5164,0,2502,44,0,3066,95,0,36, - 382,0,382,36,0,2502,33,381,0,33, - 381,0,381,33,0,42,860,0,30,506, - 0,5474,432,0,2643,432,0,237,4123,0, - 5165,53,0,5164,53,0,2522,132,0,2522, - 131,0,5186,50,0,50,40,0,5188,228, - 1,0,42,228,1,0,228,406,0,40, - 5165,0,40,5164,0,5188,1,0,42,1, - 0,52,40,0,1,96,0,40,52,0, - 5157,397,0,5156,397,0,1047,1,0,860, - 1,0,2886,1,0,228,405,0,40,5165, - 2,0,40,5164,2,0,5165,39,0,5164, - 39,0,1,5474,0,1,2643,0,42,5165, - 2,1,0,42,5164,2,1,0,5474,99, - 0,2643,99,0,279,4540,0,1,856,0, - 1,864,0,5155,1,0,488,3540,0,228, - 1,0,228,1,2553,0,5157,228,0,5156, - 228,0,2792,228,0,8,10,0,228,220, - 0,228,219,0,189,3251,0 + 169,4,52,76,76,31,31,62,62,37, + 37,189,189,190,190,191,191,1,1,14, + 14,14,14,14,14,14,14,15,15,15, + 13,10,10,8,8,8,8,8,8,2, + 63,63,5,5,11,11,11,11,42,42, + 130,130,131,61,61,41,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,132,132,132,114, + 114,17,17,17,17,17,17,17,17,17, + 17,17,17,17,18,18,170,170,171,171, + 172,135,135,136,136,133,133,137,134,134, + 19,19,20,20,21,21,21,23,23,23, + 23,24,24,24,25,25,25,26,26,26, + 26,26,28,28,28,29,29,30,30,32, + 32,33,33,35,35,36,36,40,40,39, + 39,39,39,39,39,39,39,39,39,39, + 39,39,38,27,138,138,96,96,100,100, + 91,192,192,68,68,68,68,68,68,68, + 68,68,69,69,69,70,70,57,57,173, + 173,71,71,71,115,115,72,72,72,72, + 73,73,73,73,73,74,74,77,77,77, + 77,77,77,77,47,47,47,47,47,103, + 103,104,104,48,174,22,22,22,22,22, + 46,46,86,86,86,86,86,145,145,140, + 140,140,140,140,141,141,141,142,142,142, + 143,143,143,144,144,144,87,87,87,87, + 87,88,88,88,12,12,12,12,12,12, + 12,12,12,12,12,99,119,119,119,119, + 119,117,117,117,118,118,147,147,146,146, + 121,121,148,81,81,82,82,84,85,83, + 50,45,149,149,51,49,80,80,150,150, + 139,139,106,106,64,64,151,151,59,59, + 53,53,152,60,60,66,66,56,56,56, + 89,89,98,97,97,58,58,54,54,55, + 55,43,101,101,101,92,92,92,93,94, + 94,94,95,95,107,107,107,109,109,108, + 108,193,193,90,90,176,176,176,176,176, + 123,44,44,154,175,175,124,124,124,124, + 177,177,34,34,116,125,125,125,125,110, + 110,120,120,120,156,157,157,157,157,157, + 157,157,157,157,180,180,178,178,179,179, + 158,158,158,158,159,181,112,111,111,182, + 182,160,160,160,160,102,102,102,183,183, + 9,184,184,185,161,153,153,162,162,163, + 164,164,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,65,67,67, + 167,167,126,126,127,127,127,127,127,127, + 3,168,168,165,165,128,128,128,78,79, + 75,155,155,113,113,186,186,186,129,129, + 122,122,187,187,169,169,105,969,39,1886, + 1883,559,2828,34,580,31,35,30,32,1874, + 29,27,56,1152,112,82,83,114,1170,947, + 1281,1179,1364,1353,32,1432,1382,1464,673,1446, + 1487,275,1514,149,2505,777,164,150,1423,39, + 660,36,1468,3763,34,580,31,35,63,32, + 1052,2337,39,660,36,234,4200,34,580,31, + 35,30,32,1085,29,27,56,1152,112,82, + 83,114,1170,485,1281,1179,1364,1353,1981,1432, + 1382,2505,717,237,232,233,1953,950,925,38, + 2348,3465,2337,39,660,36,276,4200,34,580, + 31,35,30,32,1085,29,27,56,1152,112, + 82,83,91,244,247,250,253,2426,2097,39, + 660,36,1569,4436,34,580,31,35,30,32, + 1095,499,1953,39,283,1610,2154,2898,1017,2538, + 2739,2958,4136,1481,39,660,36,2337,4200,34, + 580,31,35,1692,32,1085,29,27,56,1152, + 112,82,83,114,1170,341,1281,1179,1364,1353, + 67,1432,1382,1464,2119,1446,1487,1105,1514,149, + 1670,420,505,150,2039,4149,2471,1803,39,660, + 36,511,428,34,580,338,35,1163,506,1481, + 39,660,36,2337,4200,34,580,31,35,1692, + 32,1085,29,27,56,1152,112,82,83,114, + 1170,341,1281,1179,1364,1353,2151,1432,1382,1464, + 2082,1446,1487,666,1514,149,1341,1272,505,150, + 1953,2856,2471,1953,39,1722,1681,2471,2856,512, + 2337,950,660,1640,506,4200,34,580,31,35, + 30,32,1085,29,27,56,1152,112,82,83, + 90,501,1922,2761,1747,39,660,36,2337,4200, + 34,580,31,35,1692,32,1085,29,27,56, + 1152,112,82,83,114,1170,341,1281,1179,1364, + 1353,1942,1432,1382,1464,1048,1446,1487,1669,1514, + 149,1719,32,505,150,100,729,2471,1449,39, + 1628,47,1859,856,46,580,710,501,166,506, + 1547,39,660,36,378,4200,34,580,31,35, + 30,32,1085,29,27,56,1152,112,82,83, + 114,1170,313,1281,1179,1364,1353,2322,1432,1382, + 1464,287,1446,1487,1774,1514,149,1719,286,376, + 150,2337,39,660,36,1168,4200,34,580,31, + 35,30,32,1085,29,27,56,1152,112,82, + 83,89,379,2305,2865,1191,444,1725,1619,39, + 660,36,502,4200,34,580,31,35,30,32, + 1085,29,27,56,1152,112,82,83,114,1170, + 1040,1281,1179,1364,1353,32,1432,1382,1464,1048, + 1446,1487,1355,1514,149,592,3784,376,150,1440, + 39,660,36,1981,3763,34,580,31,35,62, + 32,32,1438,600,380,1048,1813,39,660,36, + 377,4200,34,580,31,35,30,32,1085,29, + 27,56,1152,112,82,83,114,1170,1971,1281, + 1179,1364,1353,768,1432,1382,1464,1154,1446,1487, + 1964,1514,149,3084,99,376,150,1803,39,660, + 36,324,1492,34,580,44,35,802,1097,39, + 660,36,2744,1578,34,580,337,35,2034,39, + 660,36,381,4200,34,580,31,35,30,32, + 1085,29,27,56,1152,112,82,83,114,1170, + 1601,1281,1179,1364,1353,234,1432,1382,1464,323, + 1446,1487,1630,1514,149,776,511,164,150,2322, + 3363,965,320,1953,39,925,278,314,1013,1216, + 864,66,707,246,232,233,2034,39,660,36, + 374,4200,34,580,31,35,30,32,1085,29, + 27,56,1152,112,82,83,114,1170,2699,1281, + 1179,1364,1353,1604,1432,1382,1464,2531,1446,1487, + 860,1514,149,309,526,370,150,431,2034,39, + 660,36,2432,4200,34,580,31,35,30,32, + 1085,29,27,56,1152,112,82,83,114,1170, + 1990,1281,1179,1364,1353,486,1432,1382,1464,1377, + 1446,1487,1825,1514,149,32,1610,370,150,2372, + 1216,2034,39,660,36,188,4200,34,580,31, + 35,30,32,1085,29,27,56,1152,112,82, + 83,114,1170,1794,1281,1179,1364,1353,4149,1432, + 1382,1464,3265,1446,1487,3084,1514,149,1825,369, + 370,150,1874,39,660,36,947,4200,34,580, + 31,35,30,32,1085,29,27,56,1152,112, + 82,83,114,1170,76,1281,1179,1364,1353,32, + 1432,1382,1464,860,1446,1487,325,1528,170,331, + 3206,368,1953,39,925,2899,1825,1681,39,660, + 36,1866,4200,34,580,31,35,30,32,1085, + 29,27,56,1152,112,82,83,114,1170,1027, + 1281,1179,1364,1353,353,1432,1382,1464,326,1446, + 1487,520,1514,149,366,1216,148,150,1216,2034, + 39,660,36,1190,4200,34,580,31,35,30, + 32,1085,29,27,56,1152,112,82,83,114, + 1170,1935,1281,1179,1364,1353,4149,1432,1382,1464, + 352,1446,1487,1952,1514,149,1468,520,161,150, + 2034,39,660,36,31,4200,34,580,31,35, + 30,32,1085,29,27,56,1152,112,82,83, + 114,1170,163,1281,1179,1364,1353,321,1432,1382, + 1464,448,1446,1487,447,1514,149,1341,322,160, + 150,2034,39,660,36,520,4200,34,580,31, + 35,30,32,1085,29,27,56,1152,112,82, + 83,114,1170,684,1281,1179,1364,1353,4374,1432, + 1382,1464,944,1446,1487,32,1514,149,1468,4193, + 159,150,2034,39,660,36,980,4200,34,580, + 31,35,30,32,1085,29,27,56,1152,112, + 82,83,114,1170,145,1281,1179,1364,1353,375, + 1432,1382,1464,860,1446,1487,102,1514,149,1216, + 1921,158,150,2034,39,660,36,963,4200,34, + 580,31,35,30,32,1085,29,27,56,1152, + 112,82,83,114,1170,684,1281,1179,1364,1353, + 4385,1432,1382,1464,1353,1446,1487,32,1514,149, + 1468,2551,157,150,2034,39,660,36,948,4200, + 34,580,31,35,30,32,1085,29,27,56, + 1152,112,82,83,114,1170,350,1281,1179,1364, + 1353,4022,1432,1382,1464,4043,1446,1487,1940,1514, + 149,1468,2573,156,150,2034,39,660,36,1068, + 4200,34,580,31,35,30,32,1085,29,27, + 56,1152,112,82,83,114,1170,77,1281,1179, + 1364,1353,28,1432,1382,1464,595,1446,1487,32, + 1514,149,1216,777,155,150,2034,39,660,36, + 1292,4200,34,580,31,35,30,32,1085,29, + 27,56,1152,112,82,83,114,1170,1824,1281, + 1179,1364,1353,32,1432,1382,1464,2989,1446,1487, + 1156,1514,149,1468,328,154,150,2034,39,660, + 36,1730,4200,34,580,31,35,30,32,1085, + 29,27,56,1152,112,82,83,114,1170,497, + 1281,1179,1364,1353,75,1432,1382,1464,57,1446, + 1487,32,1514,149,1468,2652,153,150,2034,39, + 660,36,1693,4200,34,580,31,35,30,32, + 1085,29,27,56,1152,112,82,83,114,1170, + 351,1281,1179,1364,1353,74,1432,1382,1464,1409, + 1446,1487,2254,1514,149,1468,3018,152,150,2034, + 39,660,36,2139,4200,34,580,31,35,30, + 32,1085,29,27,56,1152,112,82,83,114, + 1170,2084,1281,1179,1364,1353,59,1432,1382,1464, + 1323,1446,1487,32,1514,149,1216,2887,151,150, + 2034,39,660,36,673,4200,34,580,31,35, + 30,32,1085,29,27,56,1152,112,82,83, + 114,1170,684,1281,1179,1364,1353,4390,1432,1382, + 1464,937,1446,1487,32,1514,149,1468,4400,165, + 150,2034,39,660,36,1344,4200,34,580,31, + 35,30,32,1085,29,27,56,1152,112,82, + 83,114,1170,1448,1281,1179,1364,1353,93,1432, + 1382,1464,103,1446,1487,32,1514,149,1468,887, + 146,150,2243,39,660,36,1649,4200,34,580, + 31,35,30,32,1085,29,27,56,1152,112, + 82,83,114,1170,952,1281,1179,1364,1353,58, + 1432,1382,1464,2575,1446,1487,2518,1514,149,1468, + 1422,195,150,2337,39,660,36,64,4200,34, + 580,31,35,30,32,1085,29,27,56,1152, + 112,82,83,114,1170,2075,1281,1179,1364,1353, + 348,1432,1382,1464,2135,1446,1487,2346,1528,170, + 2337,39,660,36,397,4200,34,580,31,35, + 30,32,1085,29,27,56,1152,112,82,83, + 114,1170,384,1281,1179,1364,1353,1870,1432,1382, + 1464,2646,1446,1487,2714,1528,170,1213,39,660, + 36,1468,4436,34,580,31,35,65,32,2503, + 2337,39,660,36,291,4200,34,580,31,35, + 30,32,1085,29,27,56,1152,112,82,83, + 114,1170,96,1281,1179,1364,1353,32,1432,1382, + 1464,2993,1446,1487,1606,1528,170,2337,39,660, + 36,413,4200,34,580,31,35,30,32,1085, + 29,27,56,1152,112,82,83,114,1170,684, + 1281,1179,1364,1353,4246,1432,1382,1464,2557,1446, + 1487,395,1528,170,1213,39,660,36,1468,4436, + 34,580,31,35,64,32,67,2337,39,660, + 36,2146,4200,34,580,31,35,30,32,1085, + 29,27,56,1152,112,82,83,114,1170,2007, + 1281,1179,1364,1353,248,1432,1382,1464,94,1446, + 1487,108,1528,170,2383,39,660,36,412,4200, + 34,580,31,35,30,32,1085,29,27,56, + 1152,112,82,83,114,1170,1304,1281,1179,1364, + 1353,4290,1432,1382,1464,383,1446,1487,2103,1528, + 170,1803,39,660,36,1468,1216,34,580,2421, + 35,1953,39,2928,2337,39,660,36,415,4200, + 34,580,31,35,30,32,1085,29,27,56, + 1152,112,82,83,114,1170,2181,1281,1179,1364, + 1353,32,1432,1382,1464,1089,1446,2732,2126,39, + 281,2337,39,660,36,3538,4200,34,580,31, + 35,30,32,1085,29,27,56,1152,112,82, + 83,114,1170,1973,1281,1179,1364,1353,2129,1432, + 1382,1464,104,2715,2337,39,660,36,419,4200, + 34,580,31,35,30,32,1085,29,27,56, + 1152,112,82,83,114,1170,1439,1281,1179,1364, + 1353,2463,1432,2594,2337,39,660,36,2151,4200, + 34,580,31,35,30,32,1085,29,27,56, + 1152,112,82,83,114,1170,2634,1281,1179,1364, + 1353,1027,2459,2337,39,660,36,2039,4200,34, + 580,31,35,30,32,1085,29,27,56,1152, + 112,82,83,114,1170,1422,1281,1179,1364,2461, + 2337,39,660,36,2105,4200,34,580,31,35, + 30,32,1085,29,27,56,1152,112,82,83, + 114,1170,2300,1281,1179,1364,2487,2429,39,727, + 383,1422,2664,48,1651,2337,39,660,36,239, + 4200,34,580,31,35,30,32,1085,29,27, + 56,1152,112,82,83,114,1170,284,1281,1179, + 2066,275,161,2337,39,660,36,1027,4200,34, + 580,31,35,30,32,1085,29,27,56,1152, + 112,82,83,114,1170,234,1281,1179,2094,2337, + 39,660,36,285,4200,34,580,31,35,30, + 32,1085,29,27,56,1152,112,82,83,114, + 1170,416,1915,237,232,233,1527,39,1733,1558, + 2974,2669,2337,39,660,36,276,4200,34,580, + 31,35,30,32,1085,29,27,56,1152,112, + 82,83,88,244,247,250,253,2426,399,1113, + 55,2114,1569,1953,39,925,282,711,773,327, + 333,2588,1320,3467,3466,4106,947,2898,1017,2538, + 2739,2958,4136,2337,39,660,36,2438,4200,34, + 580,31,35,30,32,1085,29,27,56,1152, + 112,82,83,114,1170,152,1281,1179,2135,2337, + 39,660,36,411,4200,34,580,31,35,30, + 32,1085,29,27,56,1152,112,82,83,114, + 1170,177,1281,1179,2228,527,1517,349,1185,2141, + 2687,1472,1751,32,2337,1364,2733,4429,32,2337, + 4440,611,3208,231,1953,39,925,280,162,2132, + 39,279,341,342,1644,1480,347,231,186,2679, + 1,519,340,611,527,206,217,2959,205,214, + 215,216,218,2471,2617,39,925,278,175,1897, + 400,3470,231,416,339,522,234,162,2122,189, + 173,174,176,177,178,179,180,186,2679,2634, + 401,2151,2842,2337,206,217,2959,205,214,215, + 216,218,3093,684,249,232,233,175,4296,32, + 301,231,187,4430,1953,39,727,383,190,173, + 174,176,177,178,179,180,699,2839,1270,39, + 727,383,611,208,217,2959,207,214,215,216, + 218,2634,385,417,2005,39,727,383,55,2115, + 39,727,383,2666,209,52,2842,2337,1864,416, + 1953,3269,275,4225,386,417,219,210,211,212, + 213,293,294,295,296,231,1953,3572,55,2652, + 1468,402,405,55,2570,711,1760,2126,39,279, + 711,53,3569,2988,1468,2137,185,208,217,2959, + 207,214,215,216,218,4458,249,3494,50,1651, + 2188,73,1083,2005,39,727,383,2751,209,1915, + 2842,2337,240,2158,1670,72,2768,2994,1468,4149, + 219,210,211,212,213,293,294,295,296,231, + 1468,684,78,388,417,1942,4302,55,1727,1048, + 2554,2392,2337,4149,711,53,3569,3126,1468,71, + 2126,208,217,2959,207,214,215,216,218,32, + 3278,70,166,2337,662,2437,2505,234,1594,2810, + 330,2823,209,4149,2842,2337,2505,435,349,2855, + 2505,341,512,2703,219,210,211,212,213,293, + 294,295,296,231,330,252,232,233,2091,39, + 727,383,2471,3444,342,1644,1480,347,419,689, + 3569,3443,1512,1889,1801,208,217,2959,207,214, + 215,216,218,514,331,32,1362,2798,357,3169, + 3059,1848,55,513,349,1692,209,373,2842,711, + 2218,1953,3098,925,80,2058,2935,2969,219,210, + 211,212,213,293,294,295,296,2471,2856,4458, + 344,1644,1480,347,1803,39,660,36,1069,2704, + 34,580,2593,35,3569,3759,2337,39,660,36, + 241,4200,34,580,31,35,30,32,1085,29, + 27,56,1152,112,82,83,114,1170,2708,1281, + 2246,2337,39,660,36,596,4200,34,580,31, + 35,30,32,1085,29,27,56,1152,112,82, + 83,114,1170,265,1281,2258,234,527,1948,1737, + 39,660,36,3431,371,34,580,337,35,1711, + 416,2549,39,441,161,231,4311,32,1468,32, + 162,1182,684,1048,242,232,233,4320,1422,161, + 186,2679,353,161,2660,2505,527,206,217,2959, + 205,214,215,216,218,2302,162,201,286,61, + 175,3363,3048,320,231,684,234,1602,611,162, + 4364,3555,173,174,176,177,178,179,180,186, + 2679,441,2974,2341,2865,527,206,217,2959,205, + 214,215,216,218,255,232,233,2974,2709,175, + 299,2974,373,231,2617,39,925,3125,162,1778, + 182,173,174,176,177,178,179,180,186,2679, + 529,332,333,1904,527,206,217,2959,205,214, + 215,216,218,1924,2500,504,329,333,175,1048, + 2977,333,231,1953,39,925,3164,162,2506,193, + 173,174,176,177,178,179,180,186,2679,617, + 1957,316,162,527,206,217,2959,205,214,215, + 216,218,203,3351,32,2715,1422,175,1048,387, + 417,231,2413,434,3202,3229,162,1468,3638,173, + 174,176,177,178,179,180,186,2679,705,3203, + 2456,162,527,206,217,2959,205,214,215,216, + 218,32,2726,32,2718,1228,175,1048,60,161, + 231,2594,39,441,1743,162,4311,196,173,174, + 176,177,178,179,180,186,2679,793,306,2694, + 162,527,206,217,2959,205,214,215,216,218, + 32,2700,2255,32,4444,175,1929,608,699,231, + 2337,1953,39,292,162,416,192,173,174,176, + 177,178,179,180,186,2679,881,2974,341,2726, + 527,206,217,2959,205,214,215,216,218,32, + 2680,39,389,3482,175,2713,1864,2720,231,852, + 2676,4225,200,162,3464,199,173,174,176,177, + 178,179,180,186,2679,2714,3161,333,2728,416, + 206,217,2959,205,214,215,216,218,1532,39, + 660,36,4409,175,34,580,337,35,1171,2730, + 1953,39,727,383,198,173,174,176,177,178, + 179,180,2337,39,660,36,204,4200,34,580, + 31,35,30,32,1085,29,27,56,1152,112, + 82,83,114,1170,421,1924,1953,39,727,383, + 3363,965,320,438,3202,3229,2836,314,1013,32, + 2337,2650,3083,2609,349,2602,2702,1468,2126,2337, + 3245,416,1727,2680,39,389,2337,4149,231,3732, + 424,2995,2732,1953,39,727,383,231,2764,435, + 342,1644,1480,347,3278,2765,1468,1845,107,3073, + 208,217,2959,207,214,215,216,218,202,208, + 217,2959,207,214,215,216,218,55,2770,95, + 2089,209,108,2842,711,549,420,3239,330,2140, + 209,416,2842,487,210,211,212,213,293,294, + 295,296,508,210,211,212,213,293,294,295, + 296,1310,39,660,36,2744,4149,34,580,337, + 35,4064,357,1422,1071,39,660,36,223,4149, + 34,580,337,35,363,416,2736,1468,1920,2058, + 2935,2969,2337,3247,2908,32,2788,2783,2337,973, + 1025,39,660,36,3721,2620,34,580,337,35, + 341,416,161,3363,965,320,231,330,439,1788, + 314,1013,4572,1048,1035,707,3363,965,320,2772, + 331,962,32,315,1013,298,1276,396,208,217, + 2959,207,214,215,216,218,162,2921,305,89, + 3551,2337,3363,3048,320,518,32,168,32,209, + 2673,2842,2337,2680,39,389,308,526,2777,231, + 2974,307,210,211,212,213,293,294,295,296, + 341,1071,39,660,36,1793,4149,34,580,337, + 35,208,217,2959,207,214,215,216,218,2738, + 3411,2471,2784,2337,2786,1953,39,727,383,3502, + 333,3574,209,1815,2842,233,32,2776,2789,3593, + 2337,231,1468,416,509,210,211,212,213,293, + 294,295,296,3363,965,320,1468,331,341,423, + 317,1013,2790,208,217,2959,207,214,215,216, + 218,1957,316,3481,444,1953,39,727,383,2471, + 4578,1953,39,292,209,32,2842,3031,911,2737, + 32,1833,430,3612,2801,5113,220,210,211,212, + 213,293,294,295,296,2337,39,660,36,422, + 4200,34,580,31,35,30,32,1085,29,27, + 56,1152,112,82,83,114,1927,2337,39,660, + 36,5113,4200,34,580,31,35,30,32,1085, + 29,27,56,1152,112,82,83,114,1979,2337, + 39,660,36,5113,4200,34,580,31,35,30, + 32,1085,29,27,56,1152,112,82,83,114, + 2048,1055,39,3132,36,2744,4149,34,580,337, + 35,1468,416,5113,1609,39,660,36,3352,1468, + 34,580,337,35,1953,39,727,383,5113,1666, + 39,660,36,4409,5113,34,580,337,35,1422, + 1468,5113,3070,2465,39,727,383,32,32,304, + 3109,4101,527,3363,965,320,1468,330,440,4098, + 314,1013,5113,416,1670,2332,3363,965,320,4149, + 341,2796,1942,314,1013,162,1048,55,1356,5113, + 349,3363,965,320,711,2314,1561,2806,314,1013, + 3551,2471,2692,515,1468,349,3749,5113,5113,166, + 4580,297,5113,1520,2648,5113,342,1644,1480,347, + 1097,39,660,36,2744,1889,34,580,337,35, + 330,342,1644,1480,347,4171,2337,39,660,36, + 516,4200,34,580,31,35,30,32,1085,29, + 27,56,1152,112,82,83,87,5113,5113,5113, + 5113,5113,5113,1213,5113,5113,5113,5113,5113,408, + 3150,5113,3363,965,320,5113,5113,5113,2978,314, + 1013,5113,5113,5113,1356,5113,2337,39,660,36, + 2014,4200,34,580,31,35,30,32,1085,29, + 27,56,1152,112,82,83,86,2337,39,660, + 36,5113,4200,34,580,31,35,30,32,1085, + 29,27,56,1152,112,82,83,85,2337,39, + 660,36,5113,4200,34,580,31,35,30,32, + 1085,29,27,56,1152,112,82,83,84,2196, + 39,660,36,5113,4200,34,580,31,35,30, + 32,1085,29,27,56,1152,112,82,83,110, + 2337,39,660,36,5113,4200,34,580,31,35, + 30,32,1085,29,27,56,1152,112,82,83, + 116,2337,39,660,36,5113,4200,34,580,31, + 35,30,32,1085,29,27,56,1152,112,82, + 83,115,2337,39,660,36,5113,4200,34,580, + 31,35,30,32,1085,29,27,56,1152,112, + 82,83,113,2337,39,660,36,5113,4200,34, + 580,31,35,30,32,1085,29,27,56,1152, + 112,82,83,111,1173,39,660,36,1468,4149, + 34,580,337,35,2291,39,660,36,416,4200, + 34,580,31,35,30,32,1085,29,27,56, + 1152,92,82,83,5113,5113,5113,5113,416,3187, + 5113,1187,39,660,36,2744,1670,34,580,337, + 35,4149,1468,5113,5113,224,3363,965,320,5113, + 331,5113,5113,315,1013,1396,39,660,36,2744, + 349,34,580,337,35,300,2492,39,727,383, + 1942,2664,32,3226,1048,5113,1048,5113,240,1953, + 39,727,383,3363,965,320,344,1644,1480,347, + 314,1013,330,5113,5113,707,5113,166,5113,162, + 275,416,1942,5113,5113,5113,1048,3363,965,320, + 2714,5113,2424,55,314,1013,2337,5113,5113,707, + 711,1596,5113,1278,234,2798,5113,2337,4440,166, + 1241,39,727,383,3278,32,308,526,197,1048, + 1336,39,3132,36,2744,231,34,580,337,35, + 5113,5113,238,232,233,2655,39,727,383,5113, + 524,526,162,5113,55,276,3137,1897,400,3470, + 4078,711,1236,2748,5113,5113,2465,39,727,383, + 5113,3574,245,248,251,254,2426,5113,401,55, + 2842,1569,3363,965,320,5113,711,53,3347,314, + 1013,5113,493,5113,2332,1097,39,660,36,2744, + 55,34,580,337,35,5113,3290,711,53,5113, + 2655,39,727,383,531,2839,2655,39,727,383, + 5113,5113,2655,39,727,383,5113,2894,491,492, + 5113,2655,39,727,383,5113,5113,5113,5113,5113, + 2688,39,727,383,55,5113,5113,3363,965,320, + 55,711,53,5113,314,1013,55,711,53,3588, + 5113,5113,5113,711,53,55,5113,5113,5113,402, + 404,3326,711,53,55,5113,32,3575,5113,5113, + 527,711,53,3625,2698,39,727,383,409,3150, + 5113,1890,3744,2545,1953,39,727,383,341,5113, + 32,3211,5113,162,527,1953,39,727,383,5113, + 1953,39,727,383,1684,5113,5113,5113,55,2471, + 2460,5113,341,5113,2337,711,53,162,55,1670, + 5113,1643,5113,5113,4149,711,704,5113,1561,55, + 5113,5113,3278,2471,55,3631,711,2707,5113,2424, + 2460,711,2559,2337,2337,1807,1953,39,727,383, + 1953,39,727,383,2648,32,32,5113,2337,527, + 527,3278,3278,1788,5113,5113,5113,527,1953,39, + 727,383,5113,5113,5113,330,3278,341,341,5113, + 55,5113,162,162,55,3767,5113,711,1236,5113, + 162,711,2476,194,194,5113,5113,5113,4275,4275, + 357,168,275,32,5113,5113,5113,2337,4064,32, + 5113,1843,32,2337,5113,2337,527,2778,2935,2969, + 5113,5113,5113,5113,32,341,5113,5113,1048,493, + 357,341,32,3278,341,5113,2337,5113,5113,162, + 5113,5113,5113,5113,493,5113,2471,3376,2935,2969, + 194,162,2471,5113,341,4275,32,2064,1856,5113, + 2337,2337,2760,3455,2145,490,492,277,1942,32, + 3606,3731,1048,2337,5113,2471,5113,5113,341,341, + 490,492,1788,5113,5113,5113,1048,497,1788,5113, + 1788,341,1048,5113,1048,166,5113,5113,32,2471, + 3812,358,1048,32,5113,5113,3174,1048,5113,162, + 5113,495,2471,5113,5113,162,5113,162,5113,5113, + 168,3475,5113,5113,523,162,168,3739,168,5113, + 162,5113,5113,5113,5113,5113,1766,3489,5113,5113, + 5113,3814,5113,5113,5113,5113,5113,5113,5113,5113, + 5113,5113,5113,5113,5113,5113,5113,5113,5113,5113, + 5113,5113,5113,5113,3457,5113,5113,5113,5113,5113, + 5113,5113,5113,5113,5113,5113,5113,5113,5113,5113, + 5113,5113,3783,5113,5113,5113,5113,5113,4068,5113, + 4112,5113,5113,5113,5113,5113,5113,5113,5113,5113, + 5113,5113,5113,5113,5113,5113,5113,5113,5113,5113, + 5113,5113,5113,5113,5113,5113,5113,5113,5113,5113, + 5113,5113,5113,5113,5113,5113,5113,5113,5113,5113, + 5113,5113,5113,5113,5113,5113,5113,5113,5113,5113, + 5113,5113,5113,3776,5113,0,5131,2,1,0, + 5130,2,1,0,442,554,0,842,33,0, + 43,5131,0,43,5130,0,842,382,0,1, + 432,0,446,1315,0,445,1318,0,39,37, + 0,43,5131,2,0,43,5130,2,0,42, + 5131,0,42,5130,0,2483,132,0,49,5153, + 0,49,41,0,1,1423,0,1,5387,0, + 1,5386,0,1,5385,0,1,5384,0,1, + 5383,0,1,5382,0,1,5381,0,1,5380, + 0,1,5379,0,1,5378,0,1,5377,0, + 43,5131,1,0,43,5130,1,0,848,1, + 0,5349,243,0,5348,243,0,5449,243,0, + 5448,243,0,5376,243,0,5375,243,0,5374, + 243,0,5373,243,0,5372,243,0,5371,243, + 0,5370,243,0,5369,243,0,5387,243,0, + 5386,243,0,5385,243,0,5384,243,0,5383, + 243,0,5382,243,0,5381,243,0,5380,243, + 0,5379,243,0,5378,243,0,5377,243,0, + 43,243,5131,0,43,243,5130,0,5155,243, + 0,54,5131,0,54,5130,0,842,45,0, + 981,97,0,36,38,0,43,616,0,30, + 507,0,5441,433,0,1185,433,0,239,831, + 0,383,36,0,36,383,0,382,33,0, + 33,382,0,5131,54,0,5130,54,0,2483, + 134,0,2483,133,0,5153,51,0,51,41, + 0,5155,230,1,0,43,230,1,0,230, + 407,0,41,5131,0,41,5130,0,5155,1, + 0,43,1,0,53,41,0,1,98,0, + 41,53,0,5123,398,0,5122,398,0,3830, + 1,0,616,1,0,3458,1,0,230,406, + 0,41,5131,2,0,41,5130,2,0,5131, + 40,0,5130,40,0,1,5441,0,1,1185, + 0,43,5131,2,1,0,43,5130,2,1, + 0,5441,101,0,1185,101,0,39,79,0, + 280,3792,0,1,3240,0,1,3353,0,5121, + 1,0,489,3345,0,230,1,0,230,1, + 3346,0,5123,230,0,5122,230,0,3519,230, + 0,8,10,0,230,222,0,230,221,0, + 191,3148,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1051,298 +1044,308 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars 0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,28,29, - 0,31,32,33,34,35,36,37,38,39, - 40,41,42,0,44,45,46,47,48,49, - 50,51,52,53,54,55,56,57,58,59, - 30,61,62,0,64,65,3,0,68,69, - 70,71,0,73,74,75,76,77,78,79, - 80,0,82,83,84,85,86,0,1,2, - 3,4,5,6,7,8,9,10,11,12, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,28,29,0,31,32, - 33,34,35,36,37,38,39,40,41,42, - 67,44,45,46,47,48,49,50,51,52, - 53,54,55,56,57,58,59,0,61,62, - 0,64,65,6,0,68,69,70,71,9, - 73,74,75,76,77,78,79,80,101,82, - 83,84,85,86,0,1,2,3,4,5, - 6,7,8,9,10,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,28,29,0,31,32,33,34,35, - 36,37,38,39,40,41,42,100,44,45, - 46,47,48,49,50,51,52,53,54,55, - 56,57,58,59,30,61,62,87,64,65, - 0,0,68,69,70,95,0,73,74,75, - 76,77,78,79,80,9,82,83,84,85, - 86,0,1,2,3,4,5,6,7,8, - 9,10,11,12,13,14,15,16,17,18, - 19,20,21,22,23,24,25,26,27,28, - 29,0,31,32,33,34,35,36,37,38, - 39,40,41,42,63,44,45,46,47,48, - 49,50,51,52,53,54,55,56,57,58, - 59,30,61,62,0,64,65,0,0,68, - 69,70,4,87,73,74,75,76,77,78, - 79,80,0,82,83,84,85,86,0,1, + 0,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,62,0,64,65,0,0,68,69, + 70,71,9,73,11,75,76,77,78,79, + 80,81,0,83,84,85,86,87,0,1, 2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,28,29,0,31, + 22,23,24,25,26,27,28,29,88,89, 32,33,34,35,36,37,38,39,40,41, - 42,49,44,45,46,47,48,49,50,51, - 52,53,54,55,56,57,58,59,0,61, - 62,3,64,65,90,0,68,69,70,4, - 96,73,74,75,76,77,78,79,80,0, - 82,83,84,85,86,0,1,2,3,4, - 5,6,7,8,9,10,11,12,13,14, - 15,16,17,18,19,20,21,22,23,24, - 25,26,27,28,29,0,31,32,33,34, - 35,36,37,38,39,40,41,42,49,44, - 45,46,47,48,49,50,51,52,53,54, - 55,56,57,58,59,0,61,62,0,64, - 65,3,0,68,69,70,11,12,73,74, - 75,76,77,78,79,80,0,82,83,84, - 85,86,0,1,2,3,4,5,6,7, - 8,9,10,11,12,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 28,29,0,31,32,33,34,35,36,37, - 38,39,40,41,42,63,44,45,46,47, - 48,49,50,51,52,53,54,55,56,57, - 58,59,66,61,62,0,64,65,0,0, - 68,69,70,4,9,73,74,75,76,77, - 78,79,80,0,82,83,84,85,86,0, - 1,2,3,4,5,6,7,8,9,10, - 11,12,13,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,29,0, - 31,32,33,34,35,36,37,38,39,40, - 41,42,100,44,45,46,47,48,49,50, - 51,52,53,54,55,56,57,58,59,0, - 61,62,87,64,65,72,0,68,69,70, - 11,12,73,74,75,76,77,78,79,80, - 0,82,83,84,85,86,0,1,2,3, + 42,43,44,45,46,47,48,49,50,51, + 52,53,54,55,0,57,58,59,60,61, + 62,0,64,65,88,89,68,69,70,71, + 0,73,0,75,76,77,78,79,80,81, + 8,83,84,85,86,87,0,1,2,3, 4,5,6,7,8,9,10,11,12,13, 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,29,0,31,32,33, - 34,35,36,37,38,39,40,41,42,63, + 24,25,26,27,28,29,46,47,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,58,59,0,61,62,0, - 64,65,3,0,68,69,70,11,12,73, - 74,75,76,77,78,79,80,0,82,83, - 84,85,86,0,1,2,3,4,5,6, - 7,8,9,10,11,12,13,14,15,16, - 17,18,19,20,21,22,23,24,25,26, - 27,28,29,0,31,32,33,34,35,36, - 37,38,39,40,41,42,63,44,45,46, - 47,48,49,50,51,52,53,54,55,56, - 57,58,59,66,61,62,0,64,65,0, - 0,68,69,70,4,0,73,74,75,76, - 77,78,79,80,0,82,83,84,85,86, + 54,55,0,57,58,59,60,61,62,0, + 64,65,3,99,68,69,70,0,0,73, + 99,75,76,77,78,79,80,81,0,83, + 84,85,86,87,0,1,2,3,4,5, + 6,7,8,9,10,11,12,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,28,29,62,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, + 72,57,58,59,60,61,62,0,64,65, + 3,0,68,69,70,88,89,73,0,75, + 76,77,78,79,80,81,8,83,84,85, + 86,87,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 28,29,0,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,62,0,64,65,0,0, + 68,69,70,4,9,73,11,75,76,77, + 78,79,80,81,0,83,84,85,86,87, 0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,28,29, - 0,31,32,33,34,35,36,37,38,39, - 40,41,42,58,44,45,46,47,48,49, - 50,51,52,53,54,55,56,57,58,59, - 66,61,62,0,64,65,90,0,68,69, - 70,0,96,73,74,75,76,77,78,79, - 80,102,82,83,84,85,86,0,1,2, - 3,4,5,6,7,8,117,10,11,12, - 0,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,28,29,0,31,32, - 33,34,35,36,37,38,39,40,41,42, - 0,44,45,46,0,48,0,50,51,52, - 53,54,6,56,57,58,59,0,0,62, - 0,1,2,0,4,68,69,70,0,88, - 89,3,99,46,6,48,8,9,0,11, - 12,13,0,1,2,3,4,5,6,7, - 8,114,115,116,26,27,0,1,2,3, - 4,5,6,7,8,95,0,1,2,49, - 4,43,0,1,2,3,4,5,6,7, - 8,0,1,2,0,4,63,6,60,8, - 9,63,88,89,66,67,30,91,92,71, - 72,63,60,0,1,2,3,0,5,67, - 7,0,0,1,2,87,88,89,90,91, - 92,93,94,95,96,97,98,99,100,101, - 102,103,104,105,106,107,108,109,110,111, - 112,113,30,0,0,117,118,3,120,121, - 6,67,8,9,0,11,12,13,0,1, - 2,3,4,5,6,7,8,60,87,0, - 26,27,0,1,2,3,95,5,67,7, - 0,9,0,1,2,13,102,43,104,105, - 106,107,108,109,110,111,112,113,0,1, - 2,117,4,5,60,7,63,63,0,66, - 66,67,30,0,60,71,72,9,5,0, - 1,2,3,4,5,6,7,8,30,60, - 72,87,88,89,90,91,92,93,94,95, - 96,97,98,99,100,101,102,103,104,105, - 106,107,108,109,110,111,112,113,0,1, - 2,117,118,5,120,121,0,1,2,3, - 4,5,6,7,8,9,10,97,98,13, + 88,89,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,62,0,64,65,88,89,68,69, + 70,0,9,73,11,75,76,77,78,79, + 80,81,0,83,84,85,86,87,0,1, + 2,3,4,5,6,7,8,9,10,11, + 12,13,14,15,16,17,18,19,20,21, + 22,23,24,25,26,27,28,29,0,63, + 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, + 62,0,64,65,0,0,68,69,70,0, + 6,73,3,75,76,77,78,79,80,81, + 0,83,84,85,86,87,0,1,2,3, + 4,5,6,7,8,9,10,11,12,13, 14,15,16,17,18,19,20,21,22,23, - 24,25,73,0,1,2,30,4,0,0, - 1,2,3,4,5,6,7,8,0,1, - 2,45,46,47,48,7,50,51,52,53, - 54,0,56,57,0,59,118,3,62,0, - 0,1,2,9,68,69,70,71,72,73, - 0,1,2,0,0,1,2,81,0,1, - 2,3,4,5,6,7,8,9,10,60, + 24,25,26,27,28,29,0,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,62,121, + 64,65,72,0,68,69,70,4,0,73, + 95,75,76,77,78,79,80,81,0,83, + 84,85,86,87,0,1,2,3,4,5, + 6,7,8,9,10,11,12,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,28,29,0,63,32,33,34,35, + 36,37,38,39,40,41,42,43,44,45, + 46,47,48,49,50,51,52,53,54,55, + 72,57,58,59,60,61,62,0,64,65, + 72,0,68,69,70,0,0,73,3,75, + 76,77,78,79,80,81,10,83,84,85, + 86,87,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 28,29,0,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,62,0,64,65,0,0, + 68,69,70,0,5,73,3,75,76,77, + 78,79,80,81,0,83,84,85,86,87, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 0,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,62,0,64,65,0,0,68,69, + 70,0,0,73,3,75,76,77,78,79, + 80,81,0,83,84,85,86,87,0,1, + 2,3,4,5,6,7,8,31,10,0, + 12,13,14,15,16,17,18,19,20,21, + 22,23,24,25,26,27,28,29,0,63, + 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,3,60,5, + 62,7,122,9,0,11,68,69,70,0, + 97,98,3,9,0,6,0,8,9,102, + 11,0,13,14,0,1,2,3,4,5, + 6,7,8,101,117,26,27,0,0,30, + 0,1,2,3,4,5,6,7,8,100, + 12,30,0,15,16,17,18,19,20,21, + 22,23,24,25,0,56,0,1,2,3, + 66,5,63,7,0,66,67,3,74,41, + 71,72,0,74,46,47,48,49,50,51, + 52,53,54,55,30,58,72,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,12,11,0,13,14, + 0,67,0,1,2,3,4,5,6,7, + 8,26,27,101,0,30,0,1,2,3, + 0,5,30,7,41,9,12,11,28,46, + 47,48,49,50,51,52,53,54,55,97, + 98,56,0,1,2,0,4,5,63,7, + 30,66,67,56,9,41,71,72,56,74, + 46,47,48,49,50,51,52,53,54,55, + 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,0, + 1,2,117,118,5,120,121,0,1,2, + 3,4,5,6,7,8,9,10,11,12, + 0,0,15,16,17,18,19,20,21,22, + 23,24,25,0,64,65,0,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,118,57,0,1,2,3,62, + 5,0,7,0,41,68,69,70,71,72, + 73,0,0,31,0,1,2,66,4,82, + 6,0,8,0,1,2,3,4,5,6, + 7,8,9,10,11,12,0,58,15,16, + 17,18,19,20,21,22,23,24,25,13, + 14,114,115,116,31,0,1,2,3,4, + 5,6,7,8,41,0,63,72,0,46, + 47,48,49,50,51,52,53,54,55,67, + 57,0,0,1,2,62,4,5,67,7, + 9,68,69,70,71,72,73,0,0,0, + 1,2,123,4,5,82,7,0,0,1, + 2,13,14,31,102,7,104,105,106,107, + 108,109,110,111,112,113,0,0,73,117, + 31,0,1,2,66,4,9,114,115,116, + 0,1,2,3,4,5,6,7,8,0, + 10,0,71,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 63,0,32,33,34,35,36,37,38,39, + 40,30,42,43,44,45,0,1,2,58, + 4,0,1,2,3,4,5,6,7,8, + 60,74,31,63,64,65,0,1,2,3, + 4,5,6,7,8,9,10,31,0,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,0,0,32,33, + 34,35,36,37,38,39,40,56,42,43, + 44,45,0,0,1,2,3,4,67,6, + 0,8,0,0,58,0,60,30,0,1, + 2,3,9,5,9,7,11,71,0,1, + 2,3,4,5,6,7,8,9,10,0, 30,13,14,15,16,17,18,19,20,21, - 22,23,24,25,0,0,1,2,30,4, - 114,115,116,9,60,0,0,63,0,60, - 66,0,4,45,46,47,48,0,50,51, - 52,53,54,17,56,57,0,59,64,65, - 62,87,0,1,2,0,68,69,70,71, - 72,73,0,1,2,3,4,0,6,81, - 8,45,46,45,48,0,50,51,52,53, - 54,6,56,57,101,59,0,1,2,3, - 0,5,0,7,4,9,6,60,8,13, - 0,87,114,115,116,0,1,2,3,4, - 5,6,7,8,0,10,11,12,4,14, - 15,16,60,18,19,20,21,22,23,24, - 25,26,27,28,29,43,31,32,33,34, - 35,36,37,38,39,40,41,42,0,44, - 0,1,2,0,0,1,2,43,4,5, - 60,7,0,58,72,3,91,92,63,64, - 65,0,1,2,3,4,5,6,7,8, - 9,10,11,12,30,14,15,16,121,18, - 19,20,21,22,23,24,25,26,27,28, - 29,0,31,32,33,34,35,36,37,38, - 39,40,41,42,0,44,0,1,2,3, - 49,5,60,7,10,72,0,1,2,58, - 0,1,2,3,0,5,0,7,0,1, - 2,0,71,0,1,2,3,4,5,6, - 7,8,9,10,11,12,30,14,15,16, - 0,18,19,20,21,22,23,24,25,26, - 27,28,29,0,31,32,33,34,35,36, - 37,38,39,40,41,42,0,44,72,3, - 60,90,49,0,1,2,3,96,5,0, - 7,58,64,65,63,0,1,2,3,4, - 5,6,7,8,71,10,11,12,0,14, - 15,16,0,18,19,20,21,22,23,24, - 25,26,27,28,29,99,31,32,33,34, - 35,36,37,38,39,40,41,42,0,44, - 0,1,2,60,4,95,6,9,8,0, - 0,1,2,58,4,43,6,8,8,64, - 65,0,1,2,3,4,5,6,7,8, - 62,10,11,12,0,14,15,16,4,18, - 19,20,21,22,23,24,25,26,27,28, - 29,0,31,32,33,34,35,36,37,38, - 39,40,41,42,66,44,0,1,2,71, - 4,5,0,7,0,1,2,43,4,58, - 6,9,8,0,0,64,65,0,1,2, - 3,4,5,6,7,8,0,10,11,12, - 0,14,15,16,8,18,19,20,21,22, - 23,24,25,26,27,28,29,66,31,32, - 33,34,35,36,37,38,39,40,41,42, - 0,44,0,0,1,2,49,4,66,6, - 0,8,0,1,2,58,0,1,2,3, - 4,5,6,7,8,9,10,11,12,87, - 14,15,16,0,18,19,20,21,22,23, - 24,25,26,27,28,29,0,31,32,33, - 34,35,36,37,38,39,40,41,42,0, - 44,0,3,0,5,6,3,8,0,67, - 11,12,4,0,0,1,2,3,4,5, - 6,7,8,9,74,26,27,13,29,43, - 90,17,0,1,2,3,96,5,0,7, - 0,3,43,0,30,0,1,2,0,4, - 5,43,7,0,1,2,43,43,5,60, - 7,47,63,64,65,66,67,0,0,55, - 97,98,4,0,118,61,9,0,0,0, - 13,4,9,43,6,0,13,88,89,90, - 91,92,93,94,0,81,97,98,99,100, + 22,23,24,25,26,27,28,29,0,56, + 32,33,34,35,36,37,38,39,40,30, + 42,43,44,45,56,0,1,2,3,0, + 5,66,7,4,71,6,58,8,60,0, + 0,1,2,3,4,5,6,7,8,71, + 10,0,0,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 0,63,32,33,34,35,36,37,38,39, + 40,56,42,43,44,45,0,1,2,0, + 4,0,6,4,8,9,0,1,2,3, + 60,5,0,7,64,65,0,1,2,3, + 4,5,6,7,8,63,10,66,66,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,66,0,32,33, + 34,35,36,37,38,39,40,0,42,43, + 44,45,0,0,1,2,9,4,11,6, + 74,8,0,1,2,63,60,5,66,7, + 64,65,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, + 28,29,0,66,32,33,34,35,36,37, + 38,39,40,30,42,43,44,45,0,1, + 2,74,4,0,6,0,8,4,76,0, + 58,6,60,0,1,2,3,4,5,6, + 7,8,9,10,60,0,13,14,15,16, + 17,18,19,20,21,22,23,24,25,26, + 27,28,29,0,41,32,33,34,35,36, + 37,38,39,40,0,42,43,44,45,0, + 0,0,3,0,5,6,12,8,0,0, + 9,3,13,14,0,1,2,95,4,0, + 6,0,8,4,75,26,27,0,29,30, + 9,0,0,1,2,41,91,92,0,12, + 46,47,48,49,50,51,52,53,54,55, + 67,0,0,1,2,56,56,114,115,116, + 0,30,63,64,65,66,67,66,41,0, + 67,118,71,46,47,48,49,50,51,52, + 53,54,55,31,0,1,2,88,89,90, + 91,92,93,94,63,74,97,98,99,100, 101,102,103,104,105,106,107,108,109,110, 111,112,113,0,1,2,3,4,5,6, - 7,8,45,10,11,12,0,14,15,16, - 4,18,19,20,21,22,23,24,25,26, - 27,28,29,0,31,32,33,34,35,36, - 37,38,39,40,41,42,0,44,0,3, - 87,5,6,0,8,122,72,11,12,91, - 92,58,0,1,2,17,0,5,0,0, - 95,0,26,27,3,29,43,0,0,1, - 2,114,115,116,0,0,17,0,3,43, - 0,0,30,45,46,0,48,0,50,51, - 52,53,54,0,56,57,60,59,30,63, - 64,65,66,67,45,46,0,48,0,50, - 51,52,53,54,0,56,57,9,59,63, - 43,60,66,43,88,89,90,91,92,93, - 94,88,89,97,98,99,100,101,102,103, - 104,105,106,107,108,109,110,111,112,113, - 0,1,2,3,4,5,6,7,8,66, - 10,11,12,49,14,15,16,0,18,19, + 7,8,0,10,93,94,13,14,15,16, + 17,18,19,20,21,22,23,24,25,26, + 27,28,29,0,0,32,33,34,35,36, + 37,38,39,40,0,42,43,44,45,90, + 6,0,0,0,3,96,5,6,0,8, + 0,1,2,60,13,14,0,1,2,119, + 4,5,0,7,0,1,2,26,27,5, + 29,30,10,0,0,1,2,0,0,1, + 2,0,1,2,0,0,1,2,0,1, + 2,0,1,2,0,31,0,56,0,0, + 6,58,4,30,63,64,65,66,67,31, + 0,63,31,0,64,65,31,0,95,31, + 3,59,31,13,14,91,92,28,30,88, + 89,90,91,92,93,94,63,0,97,98, + 99,100,101,102,103,104,105,106,107,108, + 109,110,111,112,113,0,1,2,3,4, + 5,6,7,8,0,10,93,94,13,14, + 15,16,17,18,19,20,21,22,23,24, + 25,26,27,28,29,91,92,32,33,34, + 35,36,37,38,39,40,100,42,43,44, + 45,0,0,1,2,3,4,5,6,7, + 8,56,10,0,0,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 28,29,119,0,32,33,34,35,36,37, + 38,39,40,30,42,43,44,45,0,0, + 0,1,2,3,4,5,6,7,8,0, + 10,0,60,13,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,28,29, - 0,31,32,33,34,35,36,37,38,39, - 40,41,42,0,44,87,0,0,1,2, - 3,4,5,6,7,8,10,10,11,12, - 60,14,15,16,0,18,19,20,21,22, - 23,24,25,26,27,28,29,60,31,32, - 33,34,35,36,37,38,39,40,41,42, - 0,44,0,1,2,3,4,5,6,7, - 8,55,10,11,12,58,14,15,16,66, + 66,0,32,33,34,35,36,37,38,39, + 40,30,42,43,44,45,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,28,29,67,0,32,33, + 34,35,36,37,38,39,40,56,42,43, + 44,45,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, - 28,29,0,31,32,33,34,35,36,37, - 38,39,40,41,42,0,44,0,1,2, - 3,4,5,6,7,8,0,10,11,12, - 28,14,15,16,0,18,19,20,21,22, - 23,24,25,26,27,28,29,0,31,32, - 33,34,35,36,37,38,39,40,41,42, - 0,44,0,1,2,3,4,5,6,7, - 8,0,10,11,12,0,14,15,16,0, - 18,19,20,21,22,23,24,25,26,27, - 28,29,0,31,32,33,34,35,36,37, - 38,39,40,41,42,0,44,0,1,2, - 0,4,0,1,2,0,0,10,43,0, - 49,14,15,16,17,18,19,20,21,22, - 23,24,25,0,0,1,2,0,1,2, - 0,0,30,3,0,0,67,3,88,89, - 9,0,45,46,13,48,0,50,51,52, - 53,54,43,56,57,49,59,75,17,62, - 0,1,2,0,4,68,69,70,63,0, - 10,66,63,49,14,15,16,17,18,19, - 20,21,22,23,24,25,45,46,0,48, - 67,50,51,52,53,54,0,56,57,3, - 59,0,93,94,3,45,46,0,48,0, - 50,51,52,53,54,0,56,57,0,59, - 0,0,62,88,89,0,1,2,68,69, - 70,43,14,15,16,17,18,19,20,21, - 22,23,24,25,0,1,2,123,0,1, - 2,3,4,5,6,7,8,9,43,0, - 0,13,0,45,46,17,48,0,50,51, - 52,53,54,0,56,57,9,59,30,72, + 28,29,0,0,32,33,34,35,36,37, + 38,39,40,0,42,43,44,45,0,1, + 2,0,4,10,3,90,0,0,10,3, + 12,96,30,15,16,17,18,19,20,21, + 22,23,24,25,31,0,0,26,27,0, + 4,114,115,116,0,1,2,30,9,41, + 0,1,2,0,46,47,48,49,50,51, + 52,53,54,55,72,62,30,56,0,0, + 62,0,1,2,0,4,68,69,70,0, + 63,10,0,12,0,0,15,16,17,18, + 19,20,21,22,23,24,25,0,1,2, + 3,4,5,6,7,8,9,72,11,12, + 93,94,41,74,103,30,0,46,47,48, + 49,50,51,52,53,54,55,30,0,1, + 2,120,4,62,95,56,0,0,41,68, + 69,70,58,46,47,48,49,50,51,52, + 53,54,55,56,0,1,2,3,4,5, + 6,7,8,9,0,11,12,0,4,0, + 3,74,90,0,1,2,9,4,96,0, + 0,0,1,2,3,4,5,6,7,8, + 9,0,11,12,30,41,0,1,2,0, + 46,47,48,49,50,51,52,53,54,55, + 56,30,31,0,1,2,3,4,5,6, + 7,8,9,56,11,12,90,0,74,0, + 63,0,96,66,0,1,2,10,57,0, + 59,74,61,4,31,0,1,2,3,4, + 5,6,7,8,9,0,11,12,31,0, + 1,2,63,82,0,66,0,0,1,2, + 57,0,59,0,61,9,31,0,1,2, + 9,0,0,0,71,3,3,0,0,62, + 3,3,0,0,0,82,3,0,4,0, + 3,72,57,30,59,0,61,0,3,0, + 3,0,3,58,3,0,71,0,1,2, + 3,4,5,6,7,8,9,82,11,12, 0,1,2,3,4,5,6,7,8,9, - 0,0,72,13,0,47,0,17,0,0, - 9,0,43,55,13,43,10,0,10,61, - 30,0,1,2,0,0,9,0,3,71, - 3,0,63,0,0,63,30,47,30,81, - 9,0,1,2,13,55,0,43,71,3, - 67,61,43,26,27,0,1,2,0,0, - 0,71,93,94,0,93,94,66,62,0, - 62,81,0,1,2,3,4,5,6,7, - 8,9,0,0,0,13,3,60,71,17, + 74,11,12,0,0,74,3,3,31,0, + 119,0,3,72,3,0,0,0,3,67, + 0,31,0,0,0,0,67,0,0,0, + 0,0,0,58,57,0,59,0,61,0, + 0,0,0,0,0,28,0,57,71,59, + 30,61,0,0,0,0,0,0,0,82, + 0,71,0,1,2,3,4,5,6,7, + 8,9,82,11,12,0,1,2,3,4, + 5,6,7,8,9,58,11,12,72,67, + 67,66,0,31,0,67,67,0,0,0, + 0,0,0,0,0,0,31,0,0,0, + 0,0,0,0,0,0,0,0,0,57, + 0,59,0,61,0,0,0,0,0,0, + 0,0,57,71,59,0,61,0,0,0, + 0,0,0,0,82,0,0,0,1,2, + 3,4,5,6,7,8,9,82,11,12, 0,1,2,3,4,5,6,7,8,9, - 67,0,30,13,3,0,72,17,0,1, - 2,3,4,5,6,7,8,9,49,47, - 30,13,0,0,0,17,3,55,0,0, - 103,3,72,61,0,0,0,47,30,3, - 0,0,0,71,3,55,0,120,66,3, - 28,61,0,81,0,47,0,3,0,3, - 0,71,0,55,0,3,0,43,28,61, - 0,81,67,0,0,0,0,119,119,71, - 0,0,0,119,0,0,0,0,0,81, - 0,1,2,3,4,5,6,7,8,9, - 0,72,67,13,0,0,0,17,0,1, - 2,3,4,5,6,7,8,9,0,67, - 30,13,0,0,0,17,0,1,2,3, - 4,5,6,7,8,9,0,47,30,13, - 67,0,0,17,0,55,0,0,0,0, - 0,61,0,0,0,47,30,0,0,0, - 0,0,0,55,0,0,0,0,0,61, - 0,81,0,47,0,0,0,0,0,0, - 0,55,0,0,0,0,0,61,0,81, + 0,11,12,0,0,0,0,0,31,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,81,0,0, + 0,31,0,0,0,0,0,0,0,0, + 0,0,0,0,57,0,59,0,61,0, + 0,0,0,0,0,0,0,57,0,59, + 0,61,0,0,0,0,0,0,0,82, + 0,0,0,0,0,0,0,0,0,0, + 0,0,82,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,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; @@ -1350,296 +1353,307 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface TermAction { public final static char termAction[] = {0, - 5147,5122,5119,5119,5119,5119,5119,5119,5119,5132, - 1,1,1,5129,1,1,1,1,1,1, + 5113,5088,5085,5085,5085,5085,5085,5085,5085,5098, + 1,5095,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 40,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,619,1,3488, - 1,1,1,1,1,1621,1,1,1,1, - 5186,2461,1,311,1,1,2216,141,1,1, - 1,5154,5147,5326,1606,2656,3669,2133,3559,2526, - 3051,5147,2646,1579,2628,3347,2599,8,5135,5135, - 5135,5135,5135,5135,5135,5135,5135,5135,5135,5135, - 5135,5135,5135,5135,5135,5135,5135,5135,5135,5135, - 5135,5135,5135,5135,5135,5135,5135,139,5135,5135, - 5135,5135,5135,5135,5135,5135,5135,5135,5135,5135, - 995,5135,5135,5135,5135,5135,5135,5135,5135,5135, - 5135,5135,5135,5135,5135,5135,5135,5147,5135,5135, - 1,5135,5135,3191,5147,5135,5135,5135,5135,359, - 5135,5135,5135,5135,5135,5135,5135,5135,2221,5135, - 5135,5135,5135,5135,5147,5122,5119,5119,5119,5119, - 5119,5119,5119,5126,1,1,1,5129,1,1, + 127,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,52,1,1,1,1,1, - 1,1,1,1,1,1,1,2256,1,1, - 1,619,1,3488,1,1,1,1,1,1621, - 1,1,1,1,1040,2461,1,359,1,1, - 5147,5147,1,1,1,359,5147,5326,1606,2656, - 3669,2133,3559,2526,3051,5153,2646,1579,2628,3347, - 2599,5147,5122,5119,5119,5119,5119,5119,5119,5119, - 5126,1,1,1,5129,1,1,1,1,1, + 1,1,1,1,1,1,5113,2138,1133,2696, + 1,3289,1,398,1,1,131,5113,1,1, + 1,5120,5013,5294,5016,564,3398,3215,2104,2970, + 3341,2953,5113,3375,2680,3368,3085,3362,8,5101, + 5101,5101,5101,5101,5101,5101,5101,5101,5101,5101, + 5101,5101,5101,5101,5101,5101,5101,5101,5101,5101, + 5101,5101,5101,5101,5101,5101,5101,5101,2906,2931, + 5101,5101,5101,5101,5101,5101,5101,5101,5101,5101, + 5101,5101,5101,5101,5101,5101,5101,5101,5101,5101, + 5101,5101,5101,5101,139,5101,5101,5101,5101,5101, + 5101,140,5101,5101,2906,2931,5101,5101,5101,5101, + 334,5101,137,5101,5101,5101,5101,5101,5101,5101, + 2254,5101,5101,5101,5101,5101,5113,5088,5085,5085, + 5085,5085,5085,5085,5085,5092,1,5095,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5147,1,1,1,1,1,1,1,1, - 1,1,1,1,5589,1,1,1,619,1, - 3488,1,1,1,1,1,1621,1,1,1, - 1,2076,2461,1,115,1,1,5147,5147,1, - 1,1,648,5152,5326,1606,2656,3669,2133,3559, - 2526,3051,5147,2646,1579,2628,3347,2599,5147,5122, - 5119,5119,5119,5119,5119,5119,5119,5126,1,1, - 1,5129,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5147,1, + 1,1,1,1,1,1,5448,5449,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,2820,1,1,1,619,1,3488,1,1, - 1,1,1,1621,1,1,1,1,5147,2461, - 1,4546,1,1,3977,42,1,1,1,5188, - 3999,5326,1606,2656,3669,2133,3559,2526,3051,5147, - 2646,1579,2628,3347,2599,5147,5122,5119,5119,5119, - 5119,5119,5119,5119,5126,1,1,1,5129,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5147,1,1,1,1, - 1,1,1,1,1,1,1,1,3271,1, - 1,1,619,1,3488,1,1,1,1,1, - 1621,1,1,1,1,122,2461,1,5147,1, - 1,4123,5147,1,1,1,3028,3003,5326,1606, - 2656,3669,2133,3559,2526,3051,161,2646,1579,2628, - 3347,2599,5147,5122,5119,5119,5119,5119,5119,5119, - 5119,5126,1,1,1,5129,1,1,1,1, + 1,1,5113,2138,1133,2696,1,3289,1,1, + 1,1,2742,2224,1,1,1,130,5113,5294, + 2224,564,3398,3215,2104,2970,3341,2953,5113,3375, + 2680,3368,3085,3362,5113,5088,5085,5085,5085,5085, + 5085,5085,5085,5092,1,5095,1,1,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,1,5646,1,1,1,619, - 1,3488,1,1,1,1,1,1621,1,1, - 1,1,1793,2461,1,1,1,1,5147,5147, - 1,1,1,964,165,5326,1606,2656,3669,2133, - 3559,2526,3051,5147,2646,1579,2628,3347,2599,5147, - 5122,5119,5119,5119,5119,5119,5119,5119,5126,1, - 1,1,5129,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5147, + 1,1,1,1,3533,1232,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,2256,1,1,1,619,1,3488,1, - 1,1,1,1,1621,1,1,1,1,124, - 2461,1,165,1,1,1835,5147,1,1,1, - 3028,3003,5326,1606,2656,3669,2133,3559,2526,3051, - 5147,2646,1579,2628,3347,2599,5147,5122,5119,5119, - 5119,5119,5119,5119,5119,5126,1,1,1,5129, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5147,1,1,1, - 1,1,1,1,1,1,1,1,1,1866, - 1,1,1,619,1,3488,1,1,1,1, - 1,1621,1,1,1,1,123,2461,1,95, - 1,1,4966,5147,1,1,1,3028,3003,5326, - 1606,2656,3669,2133,3559,2526,3051,502,2646,1579, - 2628,3347,2599,5147,5122,5119,5119,5119,5119,5119, - 5119,5119,5126,1,1,1,5129,1,1,1, + 1811,2138,1133,2696,1,3289,1,345,1,1, + 1804,5113,1,1,1,2906,2931,5294,138,564, + 3398,3215,2104,2970,3341,2953,2254,3375,2680,3368, + 3085,3362,5113,5088,5085,5085,5085,5085,5085,5085, + 5085,5092,1,5095,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5147,1,1,1,1,1,1, - 1,1,1,1,1,1,1868,1,1,1, - 619,1,3488,1,1,1,1,1,1621,1, - 1,1,1,811,2461,1,118,1,1,143, - 1,1,1,1,382,520,5326,1606,2656,3669, - 2133,3559,2526,3051,287,2646,1579,2628,3347,2599, - 5147,2553,1,1,1,1,1,1,1,5157, - 1,1,1,5156,1,1,1,1,1,1, + 1,1,129,1232,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5147,1,1,1,1,1,1,1,1,1, - 1,1,1,2393,1,1,1,619,1,3488, - 1,1,1,1,1,1621,1,1,1,1, - 1033,2461,1,137,1,1,3977,428,1,1, - 1,125,3999,5326,1606,2656,3669,2133,3559,2526, - 3051,2183,2646,1579,2628,3347,2599,42,4792,4789, - 3750,1103,620,3867,2886,3889,3226,1144,3845,3823, - 354,5412,5410,5419,5404,5418,5414,5415,5413,5416, - 5417,5420,5411,3933,3911,5170,3464,333,935,994, - 5172,959,910,982,5173,5171,933,5166,5168,5169, - 5147,5167,5407,5481,129,5482,119,5401,5408,5380, - 5406,5405,3431,5402,5403,1287,5381,5147,5147,5537, - 5147,4792,4789,5147,5188,2772,5538,5539,382,2576, - 2602,4972,581,5481,4972,5482,4972,4969,5147,4969, - 4969,4972,363,4779,4775,4078,1,860,1,2886, - 1,5571,5572,5573,4969,4969,5147,4811,4807,1047, - 5188,860,2643,2886,5474,5500,389,4792,4789,3148, - 5188,4969,310,5093,5088,1047,5035,860,5085,2886, - 5082,1,5038,5038,143,5035,1873,2643,4969,5474, - 359,4969,2576,2602,4969,4969,42,3408,2469,4969, - 4969,1874,1243,1,4779,4775,1047,317,860,1116, - 2886,289,48,4827,4827,4969,4969,4969,4969,4969, - 4969,4969,4969,4969,4969,4969,4969,4969,4969,4969, - 4969,4969,4969,4969,4969,4969,4969,4969,4969,4969, - 4969,4969,4824,30,381,4969,4969,4982,4969,4969, - 4982,1751,4982,4979,318,4979,4979,4982,5147,5093, - 5088,1047,5035,860,5085,2886,5082,1243,359,445, - 4979,4979,1,4779,4775,5056,359,5059,1919,5062, - 133,5157,5147,8387,8387,5156,2183,4975,1709,1667, - 1625,1583,1541,1499,1457,1415,1373,1331,5147,4792, - 4789,3226,1103,4985,4979,2886,4988,4979,5147,4988, - 4979,4979,5186,5147,1243,4979,4979,5151,4190,5147, - 4779,4775,1047,1,860,1,2886,1,653,4801, - 1957,4979,4979,4979,4979,4979,4979,4979,4979,4979, - 4979,4979,4979,4979,4979,4979,4979,4979,4979,4979, - 4979,4979,4979,4979,4979,4979,4979,4979,5147,5164, - 5165,4979,4979,4190,4979,4979,5147,5022,5022,228, - 5018,228,228,228,228,5026,1,2347,2319,228, + 1,1,1,1,1,1,1,1,5113,2138, + 1133,2696,1,3289,1,5113,1,1,128,5113, + 1,1,1,2213,5123,5294,5122,564,3398,3215, + 2104,2970,3341,2953,5113,3375,2680,3368,3085,3362, + 5113,5088,5085,5085,5085,5085,5085,5085,5085,5092, + 1,5095,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,5671,5147,4792,4789,488,5188,5147,342, - 4811,4807,4078,5188,860,2643,2886,5474,41,4818, - 4815,1,1,572,1,549,1,1,1,1, - 1,5147,1,1,1,1,5150,2990,1,444, - 50,5015,5015,338,1,1,1,406,228,5549, - 5147,5164,5165,142,5147,5164,5165,5634,5147,5022, - 5022,228,5018,228,228,228,228,5065,1,1243, - 5012,228,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5147,4792,4789,488,5188, - 5571,5572,5573,5153,1243,5147,224,338,42,4804, - 338,5147,5188,1,1,572,1,345,1,1, - 1,1,1,5404,1,1,5147,1,3955,1443, - 1,338,5147,4960,4957,5147,1,1,1,405, - 228,5549,342,42,42,2990,5188,5147,2643,5634, - 5474,5407,5481,1448,5482,121,5401,5408,5380,5406, - 5405,3431,5402,5403,2221,5381,1,4779,4775,1047, - 42,860,33,2886,5188,310,2643,1243,5474,310, - 104,5152,5571,5572,5573,1,4870,4866,3750,4874, - 620,3867,2886,3889,388,4830,3845,3823,381,4857, - 4863,4836,1243,4839,4851,4848,4854,4845,4842,4833, - 4860,3933,3911,5170,3464,2502,935,994,5172,959, - 910,982,5173,5171,933,5166,5168,5169,5147,5167, - 53,4960,4957,417,5147,4792,4789,2502,1103,4985, - 4663,2886,1,1287,413,2990,3408,2469,503,42, - 42,42,4792,4789,3750,1103,620,3867,2886,3889, - 5155,604,3845,3823,798,5412,5410,5419,4774,5418, - 5414,5415,5413,5416,5417,5420,5411,3933,3911,5170, - 3464,117,935,994,5172,959,910,982,5173,5171, - 933,5166,5168,5169,302,5167,1,4779,4775,1047, - 2765,860,1243,2886,5448,612,5147,5032,5029,1287, - 1,4779,4775,4078,5147,860,138,2886,5147,4960, - 4957,5147,5154,42,4792,4789,3750,1103,620,3867, - 2886,3889,5155,604,3845,3823,5186,5412,5410,5419, - 1,5418,5414,5415,5413,5416,5417,5420,5411,3933, - 3911,5170,3464,5147,935,994,5172,959,910,982, - 5173,5171,933,5166,5168,5169,237,5167,1957,4997, - 1243,3977,2765,1,4779,4775,4078,3999,860,5147, - 2886,1287,3955,1443,3683,145,4792,4789,3750,1103, - 620,3867,2886,3889,5154,604,3845,3823,5147,5412, - 5410,5419,441,5418,5414,5415,5413,5416,5417,5420, - 5411,3933,3911,5170,3464,581,935,994,5172,959, - 910,982,5173,5171,933,5166,5168,5169,5147,5167, - 431,1,1,1243,1,5502,4798,5155,4798,135, - 432,42,42,1287,5188,4783,4994,2289,4991,42, - 42,1,4870,4866,3750,4874,620,3867,2886,3889, - 2649,4830,3845,3823,53,4857,4863,4836,5165,4839, - 4851,4848,4854,4845,4842,4833,4860,3933,3911,5170, - 3464,358,935,994,5172,959,910,982,5173,5171, - 933,5166,5168,5169,936,5167,5147,4792,4789,5154, - 1103,860,5147,2886,96,1,1,5165,1,1287, - 5044,5153,5044,5147,5147,42,42,42,4792,4789, - 3750,1103,620,3867,2886,3889,136,604,3845,3823, - 5147,5412,5410,5419,2289,5418,5414,5415,5413,5416, - 5417,5420,5411,3933,3911,5170,3464,4273,935,994, - 5172,959,910,982,5173,5171,933,5166,5168,5169, - 116,5167,366,99,42,42,2765,5188,4634,5101, - 1,5098,53,5003,5000,1287,42,4792,4789,3750, - 1103,620,3867,2886,3889,5151,604,3845,3823,5152, - 5412,5410,5419,134,5418,5414,5415,5413,5416,5417, - 5420,5411,3933,3911,5170,3464,33,935,994,5172, - 959,910,982,5173,5171,933,5166,5168,5169,1, - 5167,5147,728,1,5603,5597,4272,5601,53,1158, - 5595,5596,5164,381,1,5119,5119,228,5119,228, - 228,228,228,228,3558,5626,5627,228,5604,4786, - 3977,8403,1,4779,4775,5056,3999,5059,5147,5062, - 5147,3306,5606,189,5116,5147,4792,4789,5147,1103, - 860,5164,2886,5147,5164,5165,4795,2705,860,565, - 2886,619,5607,810,853,5628,5605,397,5147,2659, - 2347,2319,1281,1,5150,2461,5050,42,120,5147, - 5053,5188,167,2951,3431,1,167,5617,5616,5629, - 5598,5599,5622,5623,5147,5634,5620,5621,5600,5602, - 5624,5625,5630,5610,5611,5612,5608,5609,5618,5619, - 5614,5613,5615,42,4792,4789,3750,1103,620,3867, - 2886,3889,2766,604,3845,3823,5147,5412,5410,5419, - 1412,5418,5414,5415,5413,5416,5417,5420,5411,3933, - 3911,5170,3464,5147,935,994,5172,959,910,982, - 5173,5171,933,5166,5168,5169,5147,5167,225,728, - 167,5603,5597,128,5601,5144,5540,5595,5596,3408, - 2469,1287,40,5047,5047,5404,5147,5047,5147,226, - 4164,344,5626,5627,3304,5604,3128,5147,40,5041, - 5041,5571,5572,5573,5147,5147,5404,5147,3718,5606, - 5147,5147,2497,5407,5481,5147,5482,5147,5401,5408, - 5380,5406,5405,415,5402,5403,565,5381,2465,5607, - 810,853,5628,5605,5407,5481,5147,5482,1,5401, - 5408,5380,5406,5405,5147,5402,5403,516,5381,3487, - 3208,1243,3368,3288,5617,5616,5629,5598,5599,5622, - 5623,2576,2602,5620,5621,5600,5602,5624,5625,5630, - 5610,5611,5612,5608,5609,5618,5619,5614,5613,5615, - 42,4792,4789,3750,1103,620,3867,2886,3889,2984, - 604,3845,3823,3488,5412,5410,5419,103,5418,5414, - 5415,5413,5416,5417,5420,5411,3933,3911,5170,3464, - 5147,935,994,5172,959,910,982,5173,5171,933, - 5166,5168,5169,436,5167,516,302,42,4792,4789, - 3750,1103,620,3867,2886,3889,5448,604,3845,3823, - 1369,5412,5410,5419,5147,5418,5414,5415,5413,5416, - 5417,5420,5411,3933,3911,5170,3464,2007,935,994, - 5172,959,910,982,5173,5171,933,5166,5168,5169, - 5147,5167,42,4792,4789,4547,1103,620,3867,2886, - 3889,1532,604,3845,3823,1287,5412,5410,5419,2640, - 5418,5414,5415,5413,5416,5417,5420,5411,3933,3911, - 5170,3464,5147,935,994,5172,959,910,982,5173, - 5171,933,5166,5168,5169,5147,5167,42,4792,4789, - 3750,1103,620,3867,2886,3889,5147,604,3845,3823, - 3776,5412,5410,5419,5147,5418,5414,5415,5413,5416, - 5417,5420,5411,3933,3911,5170,3464,5147,935,994, - 5172,959,910,982,5173,5171,933,5166,5168,5169, - 127,5167,42,4792,4789,3750,1103,620,3867,2886, - 3889,1,604,3845,3823,44,5412,5410,5419,364, - 5418,5414,5415,5413,5416,5417,5420,5411,3933,3911, - 5170,3464,5147,935,994,5172,959,910,982,5173, - 5171,933,5166,5168,5169,5147,5167,5147,4792,4789, - 5147,5188,5147,5072,5068,5147,5147,969,4963,130, - 3808,5412,5410,5419,5404,5418,5414,5415,5413,5416, - 5417,5420,5411,409,5147,5164,5165,288,5164,5165, - 5147,5147,5186,4649,5147,126,1201,4654,2576,2602, - 5157,227,5407,5481,5156,5482,5147,5401,5408,5380, - 5406,5405,2549,5402,5403,3809,5381,2991,5404,5537, - 241,4950,4946,5147,4954,2772,5538,5539,2932,5147, - 969,3368,4821,3791,4937,4943,4916,4901,4919,4931, - 4928,4934,4925,4922,4913,4940,5407,5481,1,5482, - 2095,5401,5408,5380,5406,5405,5147,5402,5403,4540, - 5381,5147,2430,2402,4655,4892,4886,435,4883,5147, - 4910,4889,4880,4895,4898,5147,4907,4904,223,4877, - 5147,5147,5537,2576,2602,39,5079,5076,2772,5538, - 5539,2502,5412,5410,5419,5404,5418,5414,5415,5413, - 5416,5417,5420,5411,5147,5003,5000,2708,1,5119, - 5119,228,5119,228,228,228,228,5138,2502,132, - 5147,228,131,5407,5481,8403,5482,5147,5401,5408, - 5380,5406,5405,495,5402,5403,5155,5381,5116,2503, - 1,5119,5119,228,5119,228,228,228,228,5138, - 5147,5147,2045,228,5147,619,1,8403,1,5147, - 5157,5147,2549,2659,5156,2549,5107,1,5107,2461, - 5116,389,5164,5165,5147,5147,5113,79,3663,220, - 4441,1,5006,493,5147,5009,2312,619,2312,5634, - 5157,5147,7581,7417,5156,2659,107,3516,5154,4664, - 4274,2461,3739,5214,5215,5147,7581,7417,5147,371, - 5147,220,2430,2402,509,2430,2402,4334,5110,5147, - 5110,5634,1,5119,5119,228,5119,228,228,228, - 228,5141,309,279,5147,228,5104,3146,5154,8403, - 1,5119,5119,228,5119,228,228,228,228,5138, - 4600,5147,5116,228,4669,38,5329,8403,1,5119, - 5119,228,5119,228,228,228,228,5138,4103,619, - 5116,228,5147,5147,2,8403,4426,2659,5147,5147, - 568,2707,3091,2461,5147,5147,5147,619,5116,4588, - 1,5147,5147,219,4589,2659,5147,978,4354,4597, - 4088,2461,5147,5634,5147,619,5147,4622,5147,4215, - 5147,220,5147,2659,5147,4680,5147,40,2460,2461, - 5147,5634,1564,497,5147,5147,5147,2779,2779,220, - 5147,5147,5147,2779,5147,5147,5147,5147,5147,5634, - 1,5119,5119,228,5119,228,228,228,228,228, - 5147,5328,1564,228,5147,5147,5147,8403,1,5119, - 5119,228,5119,228,228,228,228,228,5147,1877, - 5116,228,5147,5147,5147,8403,1,5119,5119,228, - 5119,228,228,228,228,228,5147,619,5116,228, - 782,5147,5147,8403,5147,2659,5147,5147,5147,5147, - 5147,2461,5147,5147,5147,619,5116,5147,5147,5147, - 5147,5147,5147,2659,5147,5147,5147,5147,5147,2461, - 5147,5634,5147,619,5147,5147,5147,5147,5147,5147, - 5147,2659,5147,5147,5147,5147,5147,2461,5147,5634, - 5147,5147,5147,5147,5147,5147,5147,5147,5147,5147, - 5147,5147,5147,5147,5147,5147,5147,5634 + 2906,2931,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,5113,2138,1133,2696, + 1,3289,1,1,1,1,2906,2931,1,1, + 1,5113,5123,5294,5122,564,3398,3215,2104,2970, + 3341,2953,5113,3375,2680,3368,3085,3362,5113,5088, + 5085,5085,5085,5085,5085,5085,5085,5092,1,5095, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5113,5556, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,5113,2138,1133,2696,1,3289, + 1,318,1,1,5113,355,1,1,1,5113, + 1633,5294,4356,564,3398,3215,2104,2970,3341,2953, + 418,3375,2680,3368,3085,3362,5113,5088,5085,5085, + 5085,5085,5085,5085,5085,5092,1,5095,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,5113,1232,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,5113,2138,1133,2696,1,3289,1,4735, + 1,1,2678,43,1,1,1,5155,5113,5294, + 5467,564,3398,3215,2104,2970,3341,2953,436,3375, + 2680,3368,3085,3362,5113,5088,5085,5085,5085,5085, + 5085,5085,5085,5092,1,5095,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,5113,5613,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 5507,2138,1133,2696,1,3289,1,319,1,1, + 2971,5113,1,1,1,5113,303,5294,831,564, + 3398,3215,2104,2970,3341,2953,5415,3375,2680,3368, + 3085,3362,5113,5088,5085,5085,5085,5085,5085,5085, + 5085,5092,1,5095,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,5113,1232,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5113,2138, + 1133,2696,1,3289,1,446,1,1,5113,5113, + 1,1,1,97,2871,5294,4930,564,3398,3215, + 2104,2970,3341,2953,5113,3375,2680,3368,3085,3362, + 5113,3346,1,1,1,1,1,1,1,5123, + 1,5122,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 191,4762,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,5113,2138,1133,2696, + 1,3289,1,135,1,1,41,145,1,1, + 1,239,5113,5294,4948,564,3398,3215,2104,2970, + 3341,2953,143,3375,2680,3368,3085,3362,43,4753, + 4750,3768,848,780,3846,3458,3896,5153,1792,141, + 5372,2432,901,5379,5377,5386,5385,5381,5382,5380, + 5383,5384,5387,5378,3938,3917,5136,622,5113,2743, + 1032,1082,5138,1043,4074,1070,5139,5137,983,5375, + 5132,5134,5135,5133,5448,5449,5369,5376,5348,5374, + 5373,5370,5371,5349,1,4740,4736,5019,1277,5022, + 5504,5025,5110,5123,5113,5122,2541,5505,5506,37, + 2310,2283,4768,5119,5113,4768,5113,4768,4768,2154, + 4768,442,4768,4768,5113,5056,5051,3830,4998,616, + 5048,3458,5045,2191,3124,4768,4768,5113,225,4768, + 5113,4775,4771,3830,5155,616,1185,3458,5441,581, + 5372,4744,144,5379,5377,5386,5385,5381,5382,5380, + 5383,5384,5387,5378,33,4768,1,4740,4736,3830, + 4559,616,4768,3458,312,4768,4768,955,5118,5375, + 4768,4768,136,4768,5448,5449,5369,5376,5348,5374, + 5373,5370,5371,5349,4747,1435,1930,4768,4768,4768, + 4768,4768,4768,4768,4768,4768,4768,4768,4768,4768, + 4768,4768,4768,4768,4768,4768,4768,4768,4768,4768, + 4768,4768,4768,226,5113,5113,4768,4768,4933,4768, + 4768,4933,382,4933,4933,5372,4933,445,4933,4933, + 5113,986,343,4775,4771,3734,5155,616,1185,3458, + 5441,4933,4933,2191,227,4933,1,4740,4736,3830, + 5113,616,4756,3458,5375,311,5372,311,3250,5448, + 5449,5369,5376,5348,5374,5373,5370,5371,5349,2310, + 2283,4933,5113,4753,4750,5113,848,616,4933,3458, + 842,4933,4933,4765,5117,5375,4933,4933,1232,4933, + 5448,5449,5369,5376,5348,5374,5373,5370,5371,5349, + 5113,5130,5131,4933,4933,4933,4933,4933,4933,4933, + 4933,4933,4933,4933,4933,4933,4933,4933,4933,4933, + 4933,4933,4933,4933,4933,4933,4933,4933,4933,5113, + 5130,5131,4933,4933,2871,4933,4933,5113,4985,4985, + 230,4981,230,230,230,230,4989,1,230,1, + 5113,163,1,1,1,1,1,1,1,1, + 1,1,1,43,3959,1100,5113,5155,489,311, + 5056,5051,3830,4998,616,5048,3458,5045,1,5113, + 5130,5131,53,1,1,1,1,1,1,1, + 1,1,1,5116,565,1,4740,4736,3830,1, + 616,5113,3458,5113,2623,1,1,1,407,230, + 5516,5113,145,1093,432,1,1,1770,1,5601, + 4759,290,4759,5113,4985,4985,230,4981,230,230, + 230,230,5028,1,230,1,124,3339,1,1, + 1,1,1,1,1,1,1,1,1,3302, + 2399,5538,5539,5540,489,5113,4740,4736,3830,1, + 616,1,3458,1,1,5113,2771,1930,503,1, + 1,1,1,1,1,1,1,1,1,1729, + 565,5113,5113,4753,4750,1,848,4936,1893,3458, + 5121,1,1,1,406,230,5516,5113,126,5113, + 4753,4750,3456,848,4936,5601,3458,5113,42,4782, + 4779,3302,2399,1967,2154,760,1688,1647,1606,1565, + 1524,1483,1442,1401,1360,1319,5113,5113,5638,3124, + 2054,5113,4753,4750,804,5155,5119,5538,5539,5540, + 1,4834,4830,3768,4838,780,3846,3458,3896,5113, + 4794,5113,5120,2432,901,4821,4827,4800,4803,4815, + 4812,4818,4809,4806,4797,4824,3938,3917,5136,622, + 2795,5113,1032,1082,5138,1043,4074,1070,5139,5137, + 983,2789,5132,5134,5135,5133,390,4753,4750,1599, + 5155,364,4740,4736,3734,1,616,1,3458,1, + 1277,5118,3005,504,43,43,43,4753,4750,3768, + 848,780,3846,3458,3896,5121,1423,43,5113,2432, + 901,5379,5377,5386,5385,5381,5382,5380,5383,5384, + 5387,5378,3938,3917,5136,622,5113,5113,1032,1082, + 5138,1043,4074,1070,5139,5137,983,1232,5132,5134, + 5135,5133,5113,343,43,43,2742,5155,1106,1185, + 5113,5441,5113,1,1259,5113,1277,3528,1,4740, + 4736,3734,5079,616,5123,3458,5122,5120,43,4753, + 4750,3768,848,780,3846,3458,3896,5121,1423,5113, + 3586,2432,901,5379,5377,5386,5385,5381,5382,5380, + 5383,5384,5387,5378,3938,3917,5136,622,5113,1232, + 1032,1082,5138,1043,4074,1070,5139,5137,983,4493, + 5132,5134,5135,5133,1232,1,4740,4736,3734,43, + 616,4210,3458,5155,5120,1185,1259,5441,1277,5113, + 147,4753,4750,3768,848,780,3846,3458,3896,5120, + 1423,288,30,2432,901,5379,5377,5386,5385,5381, + 5382,5380,5383,5384,5387,5378,3938,3917,5136,622, + 359,2813,1032,1082,5138,1043,4074,1070,5139,5137, + 983,1232,5132,5134,5135,5133,1,5001,5001,5113, + 4998,5113,1185,2598,5441,360,1,4740,4736,5019, + 1277,5022,5113,5025,43,43,1,4834,4830,3768, + 4838,780,3846,3458,3896,4939,4794,770,4939,2432, + 901,4821,4827,4800,4803,4815,4812,4818,4809,4806, + 4797,4824,3938,3917,5136,622,4501,416,1032,1082, + 5138,1043,4074,1070,5139,5137,983,1,5132,5134, + 5135,5133,5113,433,43,43,169,5155,169,4945, + 360,4942,5113,5130,5131,3336,1277,616,4182,3458, + 43,43,43,4753,4750,3768,848,780,3846,3458, + 3896,360,1423,45,521,2432,901,5379,5377,5386, + 5385,5381,5382,5380,5383,5384,5387,5378,3938,3917, + 5136,622,1,3246,1032,1082,5138,1043,4074,1070, + 5139,5137,983,4927,5132,5134,5135,5133,98,1, + 1,169,1,43,5007,121,5007,5155,3587,1, + 1259,3699,1277,43,4753,4750,3768,848,780,3846, + 3458,3896,5117,1423,3268,5113,2432,901,5379,5377, + 5386,5385,5381,5382,5380,5383,5384,5387,5378,3938, + 3917,5136,622,367,620,1032,1082,5138,1043,4074, + 1070,5139,5137,983,228,5132,5134,5135,5133,1, + 346,5113,572,365,5570,5564,5372,5568,1,5113, + 5121,4499,5562,5563,101,43,43,5469,5155,1, + 5064,1,5061,383,2548,5593,5594,229,5571,5573, + 167,132,5113,5130,5131,5375,3677,3655,5113,5372, + 5448,5449,5369,5376,5348,5374,5373,5370,5371,5349, + 1148,5113,49,4791,4791,1099,1232,5538,5539,5540, + 5113,2509,5574,853,905,5595,5572,928,5375,117, + 1191,5116,5120,5448,5449,5369,5376,5348,5374,5373, + 5370,5371,5349,4788,5113,4924,4921,5584,5583,5596, + 5565,5566,5589,5590,4785,167,5587,5588,5567,5569, + 5591,5592,5597,5577,5578,5579,5575,5576,5585,5586, + 5581,5580,5582,43,4753,4750,3768,848,780,3846, + 3458,3896,5113,1423,2373,2345,2432,901,5379,5377, + 5386,5385,5381,5382,5380,5383,5384,5387,5378,3938, + 3917,5136,622,1,5113,1032,1082,5138,1043,4074, + 1070,5139,5137,983,123,5132,5134,5135,5133,3980, + 3699,5113,5113,5113,572,4001,5570,5564,5113,5568, + 5113,4924,4921,1277,5562,5563,5113,4753,4750,3499, + 848,616,303,3458,41,5010,5010,5593,5594,5010, + 5571,5573,5415,134,54,4924,4921,5113,5113,8420, + 8420,51,4978,4978,5113,5113,4995,4992,41,5004, + 5004,5113,5035,5031,122,3054,142,1099,389,5113, + 3699,1763,382,2509,5574,853,905,5595,5572,5153, + 125,3517,4975,372,3959,1100,5153,5113,3760,2584, + 3163,2982,5153,3302,2399,3677,3655,3592,842,5584, + 5583,5596,5565,5566,5589,5590,4969,5113,5587,5588, + 5567,5569,5591,5592,5597,5577,5578,5579,5575,5576, + 5585,5586,5581,5580,5582,43,4753,4750,3768,848, + 780,3846,3458,3896,5113,1423,2373,2345,2432,901, + 5379,5377,5386,5385,5381,5382,5380,5383,5384,5387, + 5378,3938,3917,5136,622,3677,3655,1032,1082,5138, + 1043,4074,1070,5139,5137,983,581,5132,5134,5135, + 5133,5113,43,4753,4750,3768,848,780,3846,3458, + 3896,1479,1423,1,437,2432,901,5379,5377,5386, + 5385,5381,5382,5380,5383,5384,5387,5378,3938,3917, + 5136,622,3499,5113,1032,1082,5138,1043,4074,1070, + 5139,5137,983,842,5132,5134,5135,5133,5113,5113, + 43,4753,4750,4380,848,780,3846,3458,3896,410, + 1423,5113,1277,2432,901,5379,5377,5386,5385,5381, + 5382,5380,5383,5384,5387,5378,3938,3917,5136,622, + 3171,106,1032,1082,5138,1043,4074,1070,5139,5137, + 983,2543,5132,5134,5135,5133,43,4753,4750,3768, + 848,780,3846,3458,3896,120,1423,429,5113,2432, + 901,5379,5377,5386,5385,5381,5382,5380,5383,5384, + 5387,5378,3938,3917,5136,622,2067,5113,1032,1082, + 5138,1043,4074,1070,5139,5137,983,4588,5132,5134, + 5135,5133,43,4753,4750,3768,848,780,3846,3458, + 3896,5113,1423,5113,4142,2432,901,5379,5377,5386, + 5385,5381,5382,5380,5383,5384,5387,5378,3938,3917, + 5136,622,33,5113,1032,1082,5138,1043,4074,1070, + 5139,5137,983,1,5132,5134,5135,5133,5113,4753, + 4750,81,5155,5073,2765,3980,5113,133,1505,4205, + 5372,4001,842,5379,5377,5386,5385,5381,5382,5380, + 5383,5384,5387,5378,3189,5113,54,5181,5182,1, + 5131,5538,5539,5540,54,4966,4963,2509,360,5375, + 289,5130,5131,5113,5448,5449,5369,5376,5348,5374, + 5373,5370,5371,5349,414,5076,5131,2979,5113,5113, + 5504,243,4914,4910,5113,4918,2541,5505,5506,105, + 4972,1505,119,4865,5113,79,4901,4907,4880,4883, + 4895,4892,4898,4889,4886,4877,4904,33,382,382, + 4957,382,382,4957,382,4957,4960,2017,4957,382, + 2373,2345,4856,360,568,5067,5113,4850,4847,4874, + 4853,4844,4859,4862,4871,4868,4841,4747,5113,4753, + 4750,969,5155,5504,360,1980,118,5113,382,2541, + 5505,5506,1133,382,382,382,382,382,382,382, + 382,382,382,4960,36,383,383,4951,383,383, + 4951,383,4951,4954,54,4951,383,1,5130,5113, + 2742,4960,3980,5113,4753,4750,339,5155,4001,5113, + 5113,1,5085,5085,230,5085,230,230,230,230, + 230,5113,230,8417,5130,383,40,5042,5039,5113, + 383,383,383,383,383,383,383,383,383,383, + 4954,3400,5082,1,5085,5085,230,5085,230,230, + 230,230,5104,1232,230,8417,3980,1,4954,5113, + 339,510,4001,339,5113,4966,4963,5073,2138,5113, + 2472,339,3289,1140,5082,1,5085,5085,230,5085, + 230,230,230,230,5104,1,230,8417,3189,390, + 5130,5131,3585,5601,5113,4182,1,5113,8224,8096, + 2138,1,2472,5113,3289,5119,5082,5113,8224,8096, + 517,5113,5113,5113,222,4514,3792,5113,5113,5076, + 4140,2629,496,109,5113,5601,4172,280,1473,494, + 5070,5297,2138,3200,2472,5113,3289,5113,4558,5113, + 2540,5113,3409,3526,4445,5113,222,1,5085,5085, + 230,5085,230,230,230,230,5107,5601,230,8417, + 1,5085,5085,230,5085,230,230,230,230,5104, + 5118,230,8417,5113,5113,517,4446,4453,5082,5113, + 3499,5113,4502,2992,4547,5113,5113,1,4593,4522, + 2,5082,39,5113,5113,310,4546,5113,5113,498, + 5113,5113,5113,3635,2138,5113,2472,5113,3289,5113, + 5113,5113,5113,5113,5113,3288,5113,2138,221,2472, + 41,3289,5113,5113,5113,5113,5113,5113,5113,5601, + 5113,222,1,5085,5085,230,5085,230,230,230, + 230,5104,5601,230,8417,1,5085,5085,230,5085, + 230,230,230,230,230,3640,230,8417,5296,3015, + 3015,1038,5113,5082,5113,1852,648,5113,5113,5113, + 5113,5113,5113,5113,5113,5113,5082,5113,5113,5113, + 5113,5113,5113,5113,5113,5113,5113,5113,5113,2138, + 5113,2472,5113,3289,5113,5113,5113,5113,5113,5113, + 5113,5113,2138,222,2472,5113,3289,5113,5113,5113, + 5113,5113,5113,5113,5601,5113,5113,1,5085,5085, + 230,5085,230,230,230,230,230,5601,230,8417, + 1,5085,5085,230,5085,230,230,230,230,230, + 5113,230,8417,5113,5113,5113,5113,5113,5082,5113, + 5113,5113,5113,5113,5113,5113,5113,5113,5113,5113, + 5113,5082,5113,5113,5113,5113,5113,5113,5113,5113, + 5113,5113,5113,5113,2138,5113,2472,5113,3289,5113, + 5113,5113,5113,5113,5113,5113,5113,2138,5113,2472, + 5113,3289,5113,5113,5113,5113,5113,5113,5113,5601, + 5113,5113,5113,5113,5113,5113,5113,5113,5113,5113, + 5113,5113,5601 }; }; public final static char termAction[] = TermAction.termAction; @@ -1647,59 +1661,59 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface Asb { public final static char asb[] = {0, - 1032,1,131,124,124,642,504,424,642,504, - 636,229,602,323,138,769,69,965,11,501, - 39,179,115,504,504,11,115,636,642,497, - 115,602,321,861,297,297,297,297,67,861, - 942,586,944,603,603,603,603,603,603,603, - 603,603,984,990,995,992,999,997,1004,1002, - 1006,1005,1007,182,1008,179,1023,640,714,11, - 229,954,965,728,965,367,965,369,965,949, - 67,642,179,179,11,233,497,235,321,586, - 39,39,39,39,642,904,455,984,115,115, - 106,586,820,38,769,586,967,967,768,768, - 904,602,603,603,603,603,603,603,603,603, - 603,603,603,603,603,603,603,603,603,603, - 603,602,602,602,602,602,602,602,602,602, - 602,602,602,603,69,642,494,514,493,501, - 374,642,727,418,554,242,728,645,642,642, - 642,418,494,497,496,602,284,115,115,494, - 494,494,494,418,115,603,229,865,658,657, - 247,67,944,179,38,602,640,115,639,641, - 639,115,179,992,992,990,990,990,997,997, - 997,997,995,995,1002,999,999,1005,1004,1006, - 319,1007,714,586,374,727,243,727,418,727, - 645,645,642,418,642,497,321,861,861,861, - 861,642,642,106,115,867,869,642,769,603, - 39,988,71,115,642,641,769,602,285,642, - 374,319,420,360,309,374,727,727,3,642, - 645,285,283,284,642,297,602,602,602,602, - 861,861,115,662,650,661,869,418,640,115, - 988,229,69,642,640,769,297,639,726,311, - 861,288,66,4,642,285,603,642,115,115, - 115,115,904,904,666,602,659,659,863,229, - 1042,115,642,988,989,988,602,71,365,69, - 640,389,640,727,727,636,1028,291,603,319, - 133,869,3,642,67,67,642,115,115,666, - 602,602,867,650,666,258,988,904,603,179, - 365,1029,389,640,727,728,67,311,603,603, - 869,642,642,642,668,666,989,115,179,493, - 297,118,118,1029,728,566,288,642,861,115, - 642,642,668,668,389,776,389,492,492,721, - 567,67,642,904,723,861,668,299,676,224, - 861,301,812,389,39,39,721,566,319,603, - 319,1029,861,861,861,567,861,642,190,1029, - 1029,642,728,115,723,870,730,494,224,299, - 775,728,728,306,67,493,558,861,558,319, - 567,586,586,584,422,586,1029,1029,552,721, - 725,114,776,775,776,1029,1028,115,775,775, - 775,67,642,902,1042,115,636,115,190,1029, - 224,861,115,721,725,39,775,636,1029,285, - 775,775,775,642,642,118,115,115,271,567, - 552,567,1029,190,224,602,567,564,285,285, - 285,642,1029,492,728,728,853,602,565,904, - 1029,1029,115,1029,639,567,115,904,1029,567, - 115,567 + 949,1,249,242,242,147,547,776,147,547, + 141,393,107,302,256,662,61,975,3,544, + 31,297,239,547,547,606,547,3,239,141, + 147,540,239,107,300,947,606,606,606,606, + 59,947,188,91,190,108,108,108,108,108, + 108,108,108,108,549,555,560,557,564,562, + 569,567,571,570,572,346,573,297,588,145, + 769,3,393,964,975,615,975,514,975,516, + 975,959,59,147,297,297,3,397,540,456, + 300,91,31,31,31,31,147,150,807,549, + 239,239,230,91,906,30,662,91,549,661, + 661,150,107,108,108,108,108,108,108,108, + 108,108,108,108,108,108,108,108,108,108, + 108,108,107,107,107,107,107,107,107,107, + 107,107,107,107,108,61,147,1040,1002,1039, + 544,399,147,614,443,447,463,615,451,147, + 147,147,443,1040,540,539,107,535,239,239, + 1040,1040,1040,1040,443,239,108,393,867,676, + 675,468,982,982,59,190,297,30,107,145, + 239,144,146,144,239,297,557,557,555,555, + 555,562,562,562,562,560,560,567,564,564, + 570,569,571,861,572,769,91,399,614,464, + 614,443,614,451,451,147,443,147,540,300, + 947,947,947,947,147,147,230,239,869,871, + 147,662,108,31,553,195,239,147,146,662, + 107,536,147,399,861,445,339,851,399,614, + 614,526,147,451,536,534,535,147,107,107, + 107,107,947,947,239,680,668,679,871,443, + 145,239,553,393,61,147,145,662,606,144, + 613,853,947,597,58,527,147,536,108,147, + 239,239,239,239,150,150,504,107,677,677, + 865,393,1042,239,147,553,554,553,107,195, + 344,549,61,145,414,145,614,614,141,593, + 600,108,861,251,871,526,147,59,59,147, + 239,239,504,107,107,869,668,504,479,553, + 150,108,297,344,594,414,145,614,615,59, + 853,108,108,871,147,147,147,506,504,554, + 239,297,1039,606,617,617,594,615,71,597, + 147,947,239,147,147,506,506,414,687,414, + 1038,1038,608,72,59,147,150,610,947,506, + 684,731,388,947,521,723,414,31,31,608, + 71,861,108,861,594,947,947,947,72,947, + 147,354,594,594,147,615,239,610,872,623, + 1040,388,684,686,615,615,848,59,1039,63, + 947,63,861,72,91,91,89,863,91,594, + 594,846,608,612,238,687,686,687,594,593, + 239,686,686,686,59,147,904,1042,239,141, + 239,354,594,388,947,239,608,612,31,686, + 141,594,536,686,686,686,147,147,617,239, + 239,492,72,846,72,594,354,388,107,72, + 69,536,536,536,147,594,1038,615,615,939, + 107,70,150,594,594,239,594,144,72,239, + 150,594,72,239,72 }; }; public final static char asb[] = Asb.asb; @@ -1707,113 +1721,113 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface Asr { public final static byte asr[] = {0, - 121,0,45,1,2,4,114,115,116,0, - 31,64,32,33,65,7,34,35,36,37, - 58,38,39,40,41,42,28,26,27,8, - 6,11,12,5,29,63,44,3,10,68, - 62,69,70,15,25,14,21,19,20,22, - 23,18,16,24,50,56,57,17,54,53, - 51,46,48,52,59,45,1,2,4,0, - 96,90,11,12,91,92,88,89,43,93, - 94,97,98,99,100,101,102,117,72,95, - 67,104,105,106,107,108,109,110,111,112, - 113,118,71,13,121,63,1,2,8,6, - 4,3,60,66,87,9,0,63,67,66, - 1,2,0,74,49,63,72,95,87,60, - 121,3,9,66,13,67,0,64,65,3, - 10,32,36,34,31,39,15,25,14,21, - 19,20,22,23,18,16,24,40,44,41, - 42,28,38,33,37,5,7,4,26,27, - 8,6,11,12,29,35,1,2,118,9, - 0,63,72,95,66,118,87,71,121,14, - 15,31,64,16,32,33,18,19,20,65, - 34,21,22,35,36,37,58,38,39,10, - 23,24,25,40,41,42,28,26,27,11, - 12,29,44,9,13,7,5,3,1,2, - 8,4,6,0,9,72,118,87,13,66, - 0,4,49,72,43,0,14,15,16,18, - 19,20,21,22,23,24,25,50,46,51, - 17,52,53,54,56,57,59,45,48,13, - 9,87,7,1,2,60,3,8,6,5, - 4,0,67,66,71,9,0,49,66,0, - 72,9,60,67,66,13,43,0,28,0, - 1,2,123,49,0,49,67,0,13,9, - 7,5,3,1,2,6,8,4,72,0, - 9,71,64,65,58,26,27,8,6,11, - 12,29,35,3,40,44,41,42,28,38, - 33,37,15,25,14,21,19,20,22,23, - 18,16,24,32,36,34,31,39,49,7, - 1,2,4,10,5,0,30,72,4,49, - 1,2,0,81,7,114,115,116,47,9, - 3,8,6,5,72,71,13,73,50,14, - 15,62,46,16,68,51,17,18,52,53, - 19,20,54,56,21,22,57,69,59,10, - 70,23,45,24,48,25,4,1,2,30, - 0,75,0,50,14,15,62,46,16,68, - 51,17,18,52,53,19,20,54,56,21, - 22,57,69,59,10,70,23,45,24,48, - 25,1,2,4,65,64,11,12,6,91, - 92,99,8,100,5,29,43,107,108,104, - 105,106,112,111,113,89,88,109,110,97, - 98,93,94,101,102,26,27,90,103,3, - 60,67,66,63,0,58,46,7,48,5, - 1,2,4,74,9,49,72,95,118,87, - 71,13,121,60,3,120,96,103,90,26, - 27,8,6,11,12,91,92,88,89,43, - 93,94,97,98,99,100,101,102,117,104, - 105,106,107,108,109,110,111,112,113,63, - 66,67,0,4,49,72,0,81,114,115, - 116,30,72,119,122,71,73,74,47,55, - 61,76,78,85,83,75,80,82,84,86, - 49,77,79,9,13,50,62,46,68,51, - 17,52,53,54,56,57,69,59,70,45, - 48,58,64,65,10,32,36,34,31,39, - 15,25,14,21,19,20,22,23,18,16, - 24,40,44,41,42,28,38,33,37,26, - 27,11,12,29,35,8,6,3,4,7, - 5,1,2,0,1,2,9,71,0,8, - 6,4,5,7,1,2,3,60,63,67, - 66,9,87,95,0,46,48,58,9,63, - 95,67,66,87,0,62,46,16,68,51, - 18,52,53,19,20,54,56,21,22,57, - 69,59,10,70,23,45,24,48,25,15, - 14,50,9,3,8,13,47,55,61,81, - 17,43,4,7,6,5,1,2,30,0, - 119,0,46,48,58,74,72,49,0,61, - 50,14,15,62,46,16,68,51,81,17, - 18,52,53,19,20,54,55,56,21,22, - 57,69,59,10,70,23,47,45,24,48, - 25,9,3,8,6,13,49,4,7,1, - 2,5,30,0,71,62,46,16,68,51, - 18,52,53,19,20,54,56,21,22,57, - 69,59,70,23,45,24,48,25,15,14, - 50,9,3,8,6,13,47,61,81,17, - 30,7,1,2,5,4,10,55,0,64, - 65,26,27,11,12,29,35,40,44,41, - 42,28,38,33,37,15,25,14,21,19, - 20,22,23,18,16,24,10,32,36,34, - 31,39,8,6,4,60,7,5,1,2, - 3,0,7,5,3,60,6,8,95,50, - 14,15,46,16,68,51,17,18,52,53, - 19,20,54,56,21,22,57,69,59,10, - 70,23,45,24,48,25,1,2,4,87, - 9,62,0,9,87,14,15,31,16,32, - 33,18,19,20,34,21,22,35,36,37, - 58,38,39,10,23,24,25,40,41,42, - 28,3,26,27,8,6,11,12,29,4, - 44,5,7,1,2,65,64,0,10,68, - 62,69,70,15,25,14,21,19,20,22, - 23,18,16,24,74,49,4,5,2,1, - 48,45,59,57,56,7,54,53,52,17, - 51,46,50,120,103,26,27,60,3,96, - 90,6,91,92,11,12,89,88,43,93, - 94,97,98,8,99,100,101,63,95,87, - 121,67,104,105,106,107,108,109,110,111, - 112,113,72,118,71,102,117,66,13,9, - 0,8,6,4,3,5,7,73,1,2, - 0,50,14,15,62,46,16,68,51,17, - 18,52,53,19,20,54,56,21,22,57, - 69,59,10,70,23,45,24,48,25,1, + 121,0,32,64,33,34,65,7,35,36, + 37,38,60,39,40,42,43,44,28,26, + 27,8,6,13,14,5,29,63,45,3, + 10,68,62,69,70,16,25,15,21,19, + 20,22,23,18,17,24,48,53,54,12, + 52,51,49,46,47,50,55,41,1,2, + 4,0,82,114,115,116,31,72,119,122, + 71,73,75,57,59,61,77,79,86,84, + 76,81,83,85,87,58,78,80,9,11, + 48,62,46,68,49,12,50,51,52,53, + 54,69,55,70,41,47,60,64,65,10, + 33,37,35,32,40,16,25,15,21,19, + 20,22,23,18,17,24,42,45,43,44, + 28,39,34,38,26,27,13,14,29,36, + 8,6,3,4,7,5,1,2,0,9, + 74,15,16,32,17,33,34,18,19,20, + 35,21,22,36,37,38,60,39,40,10, + 23,24,25,42,43,44,28,3,26,27, + 8,6,13,14,29,4,45,5,7,1, + 2,65,64,0,96,90,13,14,91,92, + 88,89,30,93,94,97,98,99,100,101, + 102,117,72,95,67,104,105,106,107,108, + 109,110,111,112,113,118,71,11,121,63, + 1,2,8,6,4,3,56,66,74,9, + 0,75,58,63,72,95,74,56,121,3, + 9,66,11,67,0,64,65,3,10,33, + 37,35,32,40,16,25,15,21,19,20, + 22,23,18,17,24,42,45,43,44,28, + 39,34,38,5,7,4,26,27,8,6, + 13,14,29,36,1,2,118,9,0,9, + 71,64,65,60,26,27,8,6,13,14, + 29,36,3,42,45,43,44,28,39,34, + 38,16,25,15,21,19,20,22,23,18, + 17,24,33,37,35,32,40,58,7,1, + 2,4,10,5,0,63,72,95,66,118, + 74,71,121,15,16,32,64,17,33,34, + 18,19,20,65,35,21,22,36,37,38, + 60,39,40,10,23,24,25,42,43,44, + 28,26,27,13,14,29,45,9,11,7, + 5,3,1,2,8,4,6,0,82,7, + 114,115,116,57,9,3,8,6,5,72, + 71,11,73,48,15,16,62,46,17,68, + 49,12,18,50,51,19,20,52,53,21, + 22,54,69,55,10,70,23,41,24,47, + 25,4,1,2,31,0,4,58,72,0, + 1,2,9,71,0,9,72,118,74,11, + 66,0,4,58,72,30,0,15,16,17, + 18,19,20,21,22,23,24,25,48,46, + 49,12,50,51,52,53,54,55,41,47, + 11,9,74,7,1,2,56,3,8,6, + 5,4,0,46,47,60,9,63,95,67, + 66,74,0,31,72,4,58,1,2,0, + 1,2,123,58,0,41,1,2,4,114, + 115,116,0,67,66,71,9,0,60,46, + 7,47,5,1,2,4,75,58,120,103, + 26,27,56,3,96,90,6,91,92,13, + 14,89,88,30,93,94,97,98,8,99, + 100,101,63,95,74,121,67,104,105,106, + 107,108,109,110,111,112,113,72,118,71, + 102,117,66,11,9,0,58,66,0,72, + 9,56,67,66,11,30,0,119,0,46, + 47,60,75,72,58,0,63,67,66,1, + 2,0,61,48,15,16,62,46,17,68, + 49,82,12,18,50,51,19,20,52,59, + 53,21,22,54,69,55,10,70,23,57, + 41,24,47,25,9,3,8,6,11,58, + 4,7,1,2,5,31,0,8,6,4, + 5,7,1,2,3,56,63,67,66,9, + 74,95,0,28,0,71,62,46,17,68, + 49,18,50,51,19,20,52,53,21,22, + 54,69,55,70,23,41,24,47,25,16, + 15,48,9,3,8,6,11,57,61,82, + 12,31,7,1,2,5,4,10,59,0, + 62,46,17,68,49,18,50,51,19,20, + 52,53,21,22,54,69,55,10,70,23, + 41,24,47,25,16,15,48,9,3,8, + 11,57,59,61,82,12,30,4,7,6, + 5,1,2,31,0,48,15,16,62,46, + 17,68,49,12,18,50,51,19,20,52, + 53,21,22,54,69,55,10,70,23,41, + 24,47,25,1,2,4,65,64,13,14, + 6,91,92,99,8,100,5,29,30,63, + 107,108,104,105,106,112,111,113,89,88, + 109,110,97,98,93,94,101,102,26,27, + 66,90,103,3,56,67,0,58,67,0, + 11,9,7,5,3,1,2,6,8,4, + 72,0,76,0,7,5,3,56,6,8, + 95,48,15,16,46,17,68,49,12,18, + 50,51,19,20,52,53,21,22,54,69, + 55,10,70,23,41,24,47,25,1,2, + 4,74,9,62,0,64,65,26,27,13, + 14,29,36,42,45,43,44,28,39,34, + 38,16,25,15,21,19,20,22,23,18, + 17,24,10,33,37,35,32,40,8,6, + 4,56,7,5,1,2,3,0,8,6, + 4,3,5,7,73,1,2,0,10,68, + 62,69,70,16,25,15,21,19,20,22, + 23,18,17,24,75,58,72,95,118,71, + 121,7,53,54,55,41,47,1,2,52, + 51,50,12,49,5,4,46,48,9,74, + 11,56,3,120,96,103,90,26,27,8, + 6,13,14,91,92,88,89,30,93,94, + 97,98,99,100,101,102,117,104,105,106, + 107,108,109,110,111,112,113,67,66,63, + 0,48,15,16,62,46,17,68,49,12, + 18,50,51,19,20,52,53,21,22,54, + 69,55,10,70,23,41,24,47,25,1, 2,4,95,0 }; }; @@ -1822,59 +1836,59 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface Nasb { public final static char nasb[] = {0, - 190,11,64,62,62,124,11,135,203,11, - 190,12,82,38,70,150,11,11,194,152, - 4,74,226,11,11,194,226,198,124,194, - 226,38,194,11,11,11,11,11,10,11, - 28,184,124,38,38,26,38,38,38,38, - 38,38,11,11,11,11,11,11,11,11, - 11,11,11,38,11,74,11,202,32,36, - 12,214,215,11,215,122,215,119,215,208, - 10,124,74,74,36,11,142,11,52,184, - 229,229,229,229,124,205,137,11,226,226, - 167,1,38,76,150,184,11,11,15,15, - 205,102,38,38,38,38,38,38,38,38, - 38,38,38,38,38,38,38,38,38,38, - 38,38,38,38,38,38,38,38,38,38, - 38,38,102,38,11,203,11,11,11,181, - 194,29,194,139,194,11,11,194,139,124, - 203,11,11,194,142,38,56,226,226,11, - 11,11,11,127,226,38,12,167,62,62, - 11,10,124,74,229,82,202,226,201,124, - 201,226,74,11,11,11,11,11,11,11, + 200,11,40,72,72,184,11,187,23,11, + 200,140,66,32,81,115,11,11,204,69, + 4,85,109,11,11,11,11,204,109,212, + 184,204,109,32,204,11,11,11,11,11, + 233,11,51,206,184,32,32,42,32,32, + 32,32,32,32,11,11,11,11,11,11, + 11,11,11,11,11,32,11,85,11,216, + 89,30,140,225,226,11,226,97,226,45, + 226,219,233,184,85,85,30,11,95,11, + 58,206,236,236,236,236,184,48,189,11, + 109,109,175,1,32,74,115,206,11,16, + 16,48,120,32,32,32,32,32,32,32, + 32,32,32,32,32,32,32,32,32,32, + 32,32,32,32,32,32,32,32,32,32, + 32,32,32,120,32,11,10,11,11,11, + 150,204,99,204,133,204,11,11,204,133, + 184,10,11,11,204,95,32,62,109,109, + 11,11,11,11,37,109,32,140,175,72, + 72,11,11,11,233,184,85,236,66,216, + 109,215,184,215,109,85,11,11,11,11, 11,11,11,11,11,11,11,11,11,11, - 11,11,32,36,217,194,194,45,149,45, - 194,120,203,149,29,142,52,11,11,11, - 11,29,203,179,226,130,194,124,150,38, - 229,194,47,226,124,96,150,38,56,124, - 161,11,11,20,110,217,45,45,22,29, - 120,56,11,11,29,11,102,102,102,102, - 11,11,226,11,163,11,132,148,29,226, - 60,181,11,203,29,150,11,10,194,188, - 11,11,10,117,139,56,38,120,226,226, - 226,226,205,205,194,38,11,11,163,12, - 132,226,29,194,66,11,102,181,97,11, - 202,194,139,194,80,198,161,11,38,11, - 68,194,144,139,10,10,203,226,226,142, - 38,38,130,196,194,11,60,205,38,74, - 97,161,132,202,80,89,85,190,38,38, - 132,203,139,139,194,142,66,226,74,11, - 11,50,50,161,89,176,11,139,11,226, - 203,203,157,194,132,171,194,11,11,194, - 91,85,203,205,194,11,157,11,171,111, - 11,120,20,132,229,229,43,99,11,38, - 11,161,11,11,11,100,11,120,159,161, - 161,120,78,226,142,224,194,11,188,11, - 194,11,11,11,10,11,155,11,11,11, - 100,228,228,232,11,228,161,161,11,194, - 194,226,171,194,171,161,11,226,105,194, - 194,10,139,11,229,226,190,226,234,161, - 194,11,226,43,157,229,105,190,161,56, - 171,105,105,139,58,50,226,226,194,100, - 11,100,161,234,190,102,100,155,56,56, - 56,58,161,11,78,78,163,38,11,234, - 161,161,226,161,201,100,226,234,161,100, - 226,100 + 11,11,11,11,11,89,30,228,204,204, + 111,114,111,204,46,10,114,99,95,58, + 11,11,11,11,99,10,148,109,143,204, + 184,115,32,236,204,55,109,184,130,115, + 32,62,184,161,11,11,14,191,228,111, + 111,136,99,46,62,11,11,99,120,120, + 120,120,11,11,109,11,171,11,145,113, + 99,109,64,150,11,23,99,115,11,233, + 204,198,11,11,233,26,133,62,32,46, + 109,109,109,109,48,48,204,32,11,11, + 171,140,145,109,99,204,87,11,120,150, + 131,11,11,216,204,133,204,128,212,161, + 11,32,11,93,204,167,133,233,233,10, + 109,109,95,32,32,143,210,204,11,64, + 48,32,85,131,161,145,216,128,153,155, + 200,32,32,145,10,133,133,204,95,87, + 109,85,11,11,165,165,161,153,76,11, + 133,11,109,10,10,79,204,145,179,204, + 11,11,204,102,155,10,48,204,11,79, + 11,179,192,11,46,14,145,236,236,21, + 117,11,32,11,161,11,11,11,118,11, + 46,159,161,161,46,12,109,95,107,204, + 11,198,11,204,11,11,11,233,11,28, + 11,11,11,118,235,235,239,11,235,161, + 161,11,204,204,109,179,204,179,161,11, + 109,123,204,204,233,133,11,236,109,200, + 109,241,161,204,11,109,21,79,236,123, + 200,161,62,179,123,123,133,163,165,109, + 109,204,118,11,118,161,241,200,120,118, + 28,62,62,62,163,161,11,12,12,171, + 32,11,241,161,161,109,161,215,118,109, + 241,161,118,109,118 }; }; public final static char nasb[] = Nasb.nasb; @@ -1882,30 +1896,31 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface Nasr { public final static char nasr[] = {0, - 3,12,7,2,146,144,121,143,142,5, - 0,5,90,0,5,2,7,133,0,150, - 0,5,103,183,0,5,12,7,2,3, - 0,64,132,131,0,44,4,5,7,2, - 12,0,156,0,112,0,4,173,0,111, - 0,12,2,7,5,63,0,149,0,137, - 0,67,0,176,0,135,0,182,0,12, - 2,7,5,77,0,171,0,58,0,154, - 0,4,28,0,165,5,164,0,155,0, - 4,47,39,174,0,2,115,0,63,47, - 69,4,39,0,104,4,47,68,0,38, - 53,7,2,4,152,0,184,0,5,1, - 0,3,5,2,43,0,53,64,0,5, - 90,23,4,0,4,44,167,0,2,62, - 0,59,0,5,103,161,0,53,2,64, - 0,4,186,0,114,0,123,0,4,39, - 38,0,2,7,53,61,94,95,4,0, - 4,47,68,78,0,4,63,0,95,94, - 5,57,0,4,44,39,0,5,90,2, - 7,53,61,4,0,95,94,53,61,57, - 5,7,2,0,4,97,0,2,5,121, - 117,118,119,12,87,0,4,47,68,103, - 45,5,0,44,4,33,0,116,4,44, - 0,23,175,4,101,0 + 3,12,7,5,145,143,120,142,141,2, + 0,57,0,149,0,5,2,7,132,0, + 155,0,1,3,0,183,0,113,0,43, + 4,5,7,2,12,0,52,63,0,175, + 0,7,3,12,5,1,0,4,96,0, + 2,7,3,0,4,172,0,12,2,7, + 5,62,0,136,0,4,27,0,4,185, + 0,66,0,170,0,4,62,0,122,0, + 12,2,7,5,76,0,134,0,63,131, + 130,0,181,0,58,0,5,42,2,3, + 0,4,46,38,173,0,43,4,31,0, + 111,0,52,2,63,0,62,46,68,4, + 38,0,103,4,46,67,0,153,0,2, + 114,0,2,61,0,5,102,182,0,5, + 89,0,5,89,22,4,0,94,93,5, + 56,0,154,0,164,5,163,0,4,38, + 37,0,148,0,110,0,5,102,160,0, + 2,7,52,60,93,94,4,0,4,46, + 67,77,0,2,42,0,4,43,166,0, + 37,52,7,2,4,151,0,5,89,2, + 7,52,60,4,0,4,43,38,0,94, + 93,52,60,56,5,7,2,0,2,5, + 120,116,117,118,12,86,0,4,46,67, + 102,44,5,0,115,4,43,0,22,174, + 4,100,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -1914,14 +1929,14 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface TerminalIndex { public final static char terminalIndex[] = {0, 115,116,2,32,14,11,81,10,117,102, - 12,13,122,50,54,62,68,70,76,77, - 88,89,104,107,109,8,9,114,15,95, - 57,63,69,86,90,92,96,99,101,111, - 112,113,20,46,106,56,105,108,3,49, - 66,72,75,78,79,85,91,97,100,1, + 122,68,12,13,50,54,62,70,76,77, + 88,89,104,107,109,8,9,114,15,20, + 95,57,63,69,86,90,92,96,99,101, + 106,111,112,113,46,56,108,49,66,72, + 75,78,85,91,100,1,105,3,79,97, 48,55,21,60,80,45,34,65,93,103, - 121,31,123,98,110,51,52,58,59,61, - 67,71,73,74,87,94,120,18,19,7, + 121,31,123,120,98,110,51,52,58,59, + 61,67,71,73,74,87,94,18,19,7, 16,17,22,23,33,5,24,25,26,27, 28,29,6,35,36,37,38,39,40,41, 42,43,44,82,83,84,30,119,53,4, @@ -1934,25 +1949,25 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, 132,137,139,0,0,138,235,136,0,135, - 0,146,0,134,0,0,145,151,0,0, - 152,161,182,162,163,164,165,154,166,167, - 140,168,128,169,170,171,0,130,133,172, - 0,142,141,155,180,0,0,0,0,0, - 0,0,0,205,0,148,158,175,189,202, - 206,0,129,0,178,0,207,0,174,0, - 0,0,0,0,0,0,127,131,0,0, - 0,0,0,0,0,0,188,0,0,203, - 213,160,209,210,211,0,0,149,0,0, - 0,208,221,181,0,200,0,0,0,212, - 0,0,0,241,150,177,191,192,193,194, - 195,197,0,215,218,220,238,0,240,0, - 143,144,147,0,0,157,159,0,173,0, - 183,184,185,186,187,190,0,196,198,0, - 199,204,0,0,216,217,0,222,225,227, - 229,0,232,233,234,0,236,237,239,126, - 0,153,156,176,179,201,214,219,0,223, - 224,226,228,0,230,231,242,243,0,0, - 0,0,0,0 + 0,146,134,0,0,145,151,0,0,152, + 161,182,162,163,164,165,154,166,167,168, + 128,169,170,144,171,0,130,133,172,0, + 141,140,155,180,0,0,0,0,0,0, + 0,0,205,0,148,158,175,189,202,206, + 0,129,0,178,0,207,0,174,0,0, + 0,0,0,0,0,127,131,0,0,0, + 0,0,0,0,0,188,0,0,203,213, + 160,209,210,211,0,0,0,0,149,0, + 208,221,181,0,200,0,0,0,212,0, + 0,0,241,150,177,191,192,193,194,195, + 197,0,215,218,220,238,0,240,0,142, + 143,147,0,0,157,159,0,173,0,183, + 184,185,186,187,190,0,196,198,0,199, + 204,0,0,216,217,0,222,225,227,229, + 0,232,233,234,0,236,237,239,126,0, + 153,156,176,179,201,214,219,0,223,224, + 226,228,0,230,231,242,243,0,0,0, + 0,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -1998,18 +2013,18 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface ScopeLhs { public final static char scopeLhs[] = { - 45,17,17,73,17,17,17,17,73,81, - 46,86,85,119,66,51,73,72,45,17, - 73,19,3,6,161,161,158,117,45,84, - 119,118,120,52,46,133,128,73,17,17, - 128,96,153,130,76,164,161,158,125,55, - 118,118,120,175,49,58,137,18,17,17, - 17,17,17,11,114,158,125,73,72,72, - 37,133,72,17,17,17,17,96,73,19, - 165,161,176,94,102,67,54,152,65,120, - 74,70,138,137,171,133,16,158,120,116, - 21,126,126,57,133,133,73,45,158,71, - 131,43,131,43,164,116,117,45,45,153 + 44,16,16,72,16,16,16,16,72,80, + 45,85,84,118,65,50,72,71,44,16, + 72,18,3,6,160,160,157,116,44,83, + 118,117,119,51,45,132,127,72,16,16, + 127,95,152,129,75,163,160,157,124,54, + 117,117,119,174,48,57,136,17,16,16, + 16,16,16,11,113,157,124,72,71,71, + 36,132,71,16,16,16,16,95,72,18, + 164,160,175,93,101,66,53,151,64,119, + 73,69,137,136,170,132,15,157,119,115, + 20,125,125,56,132,132,72,44,157,70, + 130,42,130,42,163,115,116,44,44,152 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -2017,18 +2032,18 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface ScopeLa { public final static byte scopeLa[] = { - 119,87,87,87,87,87,87,87,87,71, - 13,71,71,71,63,1,87,122,49,3, - 13,87,63,63,1,1,13,71,49,71, - 71,1,1,1,1,4,63,13,1,1, - 63,87,87,87,119,87,1,13,71,1, - 1,1,1,13,13,71,118,87,87,87, - 87,87,118,1,87,1,66,87,87,87, - 72,4,87,63,63,63,63,87,13,3, - 1,1,87,87,3,118,87,1,1,1, - 13,72,87,118,87,5,87,1,30,67, - 87,1,1,6,1,30,75,74,13,13, - 4,4,4,4,3,1,49,1,1,3 + 119,74,74,74,74,74,74,74,74,71, + 11,71,71,71,63,1,74,122,58,3, + 11,74,63,63,1,1,11,71,58,71, + 71,1,1,1,1,4,63,11,1,1, + 63,74,74,74,119,74,1,11,71,1, + 1,1,1,11,11,71,118,74,74,74, + 74,74,118,1,74,1,66,74,74,74, + 72,4,74,63,63,63,63,74,11,3, + 1,1,74,74,3,118,74,1,1,1, + 11,72,74,118,74,5,74,1,31,67, + 74,1,1,6,1,31,76,75,11,11, + 4,4,4,4,3,1,58,1,1,3 }; }; public final static byte scopeLa[] = ScopeLa.scopeLa; @@ -2055,72 +2070,72 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface ScopeRhs { public final static char scopeRhs[] = {0, - 312,3,58,0,128,0,311,3,119,0, - 128,175,0,128,182,74,0,217,0,290, - 128,43,126,0,21,0,292,128,43,30, + 311,3,60,0,128,0,310,3,119,0, + 128,175,0,128,181,75,0,217,0,289, + 128,30,126,0,21,0,291,128,30,31, 0,21,55,0,34,134,0,21,55,0, - 0,292,128,43,30,192,0,21,131,0, - 290,128,43,131,0,186,129,0,140,0, - 221,3,289,0,289,0,2,0,128,0, - 186,129,227,0,186,129,45,227,0,186, - 129,308,45,0,132,188,167,129,0,130, - 0,188,167,129,0,136,130,0,171,0, - 304,128,171,0,128,171,0,223,130,0, - 167,245,0,139,0,0,0,137,0,0, - 0,303,128,49,250,0,129,0,250,0, - 3,0,0,129,0,302,128,49,0,45, - 129,0,152,3,0,128,279,278,128,74, - 276,171,0,278,128,74,276,171,0,216, - 0,217,0,276,171,0,98,0,0,216, + 0,291,128,30,31,191,0,21,131,0, + 289,128,30,131,0,185,129,0,144,0, + 220,3,288,0,288,0,2,0,128,0, + 185,129,226,0,185,129,41,226,0,185, + 129,307,41,0,132,187,166,129,0,130, + 0,187,166,129,0,136,130,0,170,0, + 303,128,170,0,128,170,0,223,130,0, + 166,244,0,139,0,0,0,137,0,0, + 0,302,128,58,249,0,129,0,249,0, + 3,0,0,129,0,301,128,58,0,45, + 129,0,151,3,0,128,278,277,128,75, + 275,170,0,277,128,75,275,170,0,216, + 0,217,0,275,170,0,98,0,0,216, 0,217,0,204,98,0,0,216,0,217, - 0,278,128,276,171,0,216,0,204,0, - 0,216,0,232,128,3,0,128,0,0, - 0,0,0,232,128,3,218,0,226,3, - 0,214,128,0,209,0,188,167,177,0, - 136,0,167,129,0,11,0,0,0,216, - 60,0,127,0,232,128,3,178,0,178, + 0,277,128,275,170,0,216,0,204,0, + 0,216,0,231,128,3,0,128,0,0, + 0,0,0,231,128,3,217,0,225,3, + 0,213,128,0,209,0,187,166,176,0, + 136,0,166,129,0,11,0,0,0,215, + 56,0,127,0,231,128,3,177,0,177, 0,2,0,0,128,0,0,0,0,0, - 189,3,0,202,0,229,128,49,28,17, - 0,186,129,55,47,0,198,130,0,132, - 186,129,274,47,0,186,129,274,47,0, - 186,129,67,125,55,0,229,128,49,55, - 0,229,128,49,123,55,0,229,128,49, - 126,55,0,271,128,49,125,68,0,271, - 128,49,68,0,186,129,68,0,137,0, - 188,186,129,245,0,139,0,186,129,245, - 0,188,167,129,10,0,167,129,10,0, - 95,139,0,149,0,264,128,147,0,264, - 128,171,0,163,85,0,225,162,225,299, - 3,82,0,128,174,0,225,299,3,82, - 0,130,0,128,174,0,225,162,225,162, - 225,3,82,0,225,162,225,3,82,0, - 225,3,82,0,130,0,130,0,128,174, - 0,163,3,75,193,80,0,128,130,0, - 193,80,0,110,2,133,128,130,0,240, - 3,75,0,189,168,0,34,172,0,168, - 0,178,34,172,0,240,3,86,0,193, - 157,240,3,84,0,64,174,0,240,3, - 84,0,128,174,64,174,0,298,128,49, - 0,163,0,216,77,0,31,0,163,117, - 160,0,31,172,0,180,3,0,128,152, - 0,221,3,0,216,60,261,0,163,60, - 0,180,3,295,65,129,0,128,0,0, - 0,0,295,65,129,0,2,148,128,0, - 0,0,0,180,3,35,0,150,0,127, - 30,167,129,0,32,150,0,95,139,32, - 150,0,222,186,129,0,149,32,150,0, - 180,3,39,0,163,3,39,0,163,3, - 63,180,43,31,0,180,43,31,0,21, - 2,133,128,0,163,3,63,180,43,34, - 0,180,43,34,0,163,3,63,180,43, - 36,0,180,43,36,0,163,3,63,180, - 43,32,0,180,43,32,0,221,3,127, - 188,167,129,10,0,127,188,167,129,10, - 0,139,2,0,128,0,221,3,126,177, - 167,129,10,0,177,167,129,10,0,137, - 2,0,128,0,221,3,136,0,221,3, - 141,0,163,60,141,0,256,0,32,0, - 32,143,0,166,0,163,3,0 + 188,3,0,202,0,228,128,58,28,12, + 0,185,129,59,57,0,198,130,0,132, + 185,129,273,57,0,185,129,273,57,0, + 185,129,67,125,59,0,228,128,58,59, + 0,228,128,58,123,59,0,228,128,58, + 126,59,0,270,128,58,125,68,0,270, + 128,58,68,0,185,129,68,0,137,0, + 187,185,129,244,0,139,0,185,129,244, + 0,187,166,129,10,0,166,129,10,0, + 95,139,0,149,0,263,128,146,0,263, + 128,170,0,162,86,0,224,161,224,298, + 3,83,0,128,174,0,224,298,3,83, + 0,130,0,128,174,0,224,161,224,161, + 224,3,83,0,224,161,224,3,83,0, + 224,3,83,0,130,0,130,0,128,174, + 0,162,3,76,192,81,0,128,130,0, + 192,81,0,110,2,133,128,130,0,239, + 3,76,0,188,167,0,34,172,0,167, + 0,178,34,172,0,239,3,87,0,192, + 155,239,3,85,0,64,174,0,239,3, + 85,0,128,174,64,174,0,297,128,58, + 0,162,0,215,78,0,31,0,162,117, + 159,0,31,172,0,179,3,0,128,152, + 0,220,3,0,215,56,260,0,162,56, + 0,179,3,294,65,129,0,128,0,0, + 0,0,294,65,129,0,2,148,128,0, + 0,0,0,179,3,36,0,150,0,127, + 31,166,129,0,32,150,0,95,139,32, + 150,0,223,185,129,0,149,32,150,0, + 179,3,40,0,162,3,40,0,162,3, + 63,179,30,32,0,179,30,32,0,21, + 2,133,128,0,162,3,63,179,30,35, + 0,179,30,35,0,162,3,63,179,30, + 37,0,179,30,37,0,162,3,63,179, + 30,33,0,179,30,33,0,220,3,127, + 187,166,129,10,0,127,187,166,129,10, + 0,139,2,0,128,0,220,3,126,176, + 166,129,10,0,176,166,129,10,0,137, + 2,0,128,0,220,3,136,0,220,3, + 140,0,162,56,140,0,255,0,32,0, + 32,142,0,165,0,162,3,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -2128,37 +2143,37 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface ScopeState { public final static char scopeState[] = {0, - 4597,0,4622,4589,4588,0,3193,3398,3134,758, - 0,3388,3374,3225,0,2640,2503,0,3331,3291, - 3251,1690,1648,3211,3171,3131,3091,1606,3051,2665, - 2625,2998,2572,0,4583,3368,4467,0,1266,1191, - 0,1181,1052,0,2984,612,0,2678,2755,0, - 4406,4378,0,4406,4378,2897,2832,3736,2767,2702, - 3683,3610,3540,3487,3331,3291,3251,3211,3171,3131, - 3091,3051,2665,2625,0,4406,4378,2897,2832,3736, - 2767,2702,3683,3610,3540,3487,0,978,568,0, - 1443,0,964,648,0,526,4205,2375,0,3575, - 4108,3611,4260,1354,3607,4065,1234,2862,3703,2652, - 706,844,3593,559,0,4518,4510,4500,4486,4454, - 4437,4433,4240,4576,4523,4348,3710,3642,3315,3499, - 2925,3235,2892,2795,3155,3075,3062,0,2182,1923, - 1162,1080,4108,3703,4093,4078,3454,2990,2864,0, - 1154,0,2678,4108,4260,2755,3593,4093,4226,4354, - 4367,3575,4334,4078,4065,3454,1047,4246,0,4518, - 4510,3526,2938,2839,4500,4486,4454,2689,2394,4437, - 4433,2509,4240,2497,4190,2465,2398,2381,4576,2631, - 4523,4348,1283,1040,3710,3642,2902,3315,3499,2925, - 775,2857,3235,2892,4205,2795,3155,3075,2375,860, - 3062,4093,4226,4354,4367,3575,2678,4334,2171,4108, - 4260,2083,4078,4065,3454,2755,1995,718,1103,3593, - 1047,4246,782,798,653,978,568,910,4043,4021, - 2183,2221,581,2256,2347,2319,2289,2602,2576,2549, - 2522,2430,2402,3431,3408,2469,3028,3003,3999,3977, - 3955,3933,3911,3889,3867,3845,3823,620,3464,1877, - 2133,2095,2045,2007,1201,1158,1957,1116,1919,1835, - 811,1793,1751,1709,1667,1625,1583,1541,1499,1457, - 1415,1373,1331,526,730,673,1287,1057,1243,936, - 868,995,0 + 4453,0,4502,4446,4445,0,2699,973,666,608, + 0,1276,1228,1182,0,3171,2971,0,3226,3187, + 3148,2806,2796,3109,3070,3031,2992,564,2953,2570, + 2531,2995,2810,0,4444,4182,4429,0,3265,1964, + 0,1089,887,0,3246,2678,0,2959,3470,0, + 2545,4193,0,2545,4193,2801,2737,3569,2673,2609, + 3517,3464,3345,3336,3226,3187,3148,3109,3070,3031, + 2992,2953,2570,2531,0,2545,4193,2801,2737,3569, + 2673,2609,3517,3464,3345,3336,0,969,568,0, + 1100,0,2598,2213,0,527,4136,2337,0,3431, + 4064,3352,3551,1341,4409,3721,710,2768,2798,4106, + 1213,3784,3444,2744,0,4364,4320,4311,4302,4296, + 4290,4246,4225,4440,4436,4390,3763,2828,4385,2733, + 2669,4374,2664,2426,4200,4149,3363,0,1644,1480, + 1013,965,4064,2798,3749,3734,3278,2742,2471,0, + 707,0,2959,4064,3551,3470,3444,3749,4101,1038, + 4275,3431,4210,3734,3721,3278,3830,4125,0,4364, + 4320,3744,3625,3575,4311,4302,4296,3326,3290,4290, + 4246,3093,4225,3054,2871,2584,2554,2463,4440,2648, + 4436,4390,1272,1093,3763,2828,4458,4385,2733,2669, + 773,2634,4374,2664,4136,2426,4200,4149,2337,616, + 3363,3749,4101,1038,4275,3431,2959,4210,2894,4064, + 3551,2141,3734,3721,3278,3470,1027,717,848,3444, + 3830,4125,648,2054,1967,969,568,4074,4043,4022, + 2154,2191,2224,581,2310,2283,2254,2931,2906,2509, + 2483,2373,2345,3699,3677,3655,3302,2399,4001,3980, + 3959,3938,3917,3896,3846,2432,901,780,622,1852, + 2104,2067,2017,1980,1191,1148,1930,1106,1893,1811, + 804,1770,1729,1688,1647,1606,1565,1524,1483,1442, + 1401,1360,1319,527,729,673,1277,1048,1232,928, + 860,986,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2166,59 +2181,59 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface InSymb { public final static char inSymb[] = {0, - 0,294,189,178,185,177,131,7,5,126, - 3,128,3,67,60,167,166,126,43,168, - 128,60,3,64,65,43,189,214,129,6, - 152,128,49,39,31,34,36,32,10,136, - 4,3,129,35,29,5,12,11,6,8, - 27,26,141,146,149,148,151,150,154,153, - 158,156,159,58,160,216,160,188,4,128, - 128,265,266,250,267,245,268,68,269,270, - 10,129,60,60,128,167,128,263,128,3, - 43,43,43,43,129,3,7,126,180,163, - 168,128,64,65,167,3,127,126,103,120, - 3,60,90,96,12,11,92,91,6,94, - 93,63,43,88,89,8,98,97,100,99, - 101,113,112,111,110,109,108,107,106,105, - 104,67,117,102,256,188,290,134,293,214, - 49,167,235,129,127,126,125,49,129,129, - 186,167,290,6,183,66,302,180,163,180, - 180,180,180,167,221,157,128,3,219,218, - 136,10,129,60,295,3,188,180,30,129, - 30,221,163,148,148,146,146,146,150,150, - 150,150,149,149,153,151,151,156,154,158, - 163,159,4,66,128,127,126,128,186,128, - 49,128,186,167,30,128,66,63,63,63, - 63,188,177,214,226,128,3,129,167,201, - 3,296,168,152,129,186,167,72,303,129, - 169,227,192,47,171,305,128,128,72,188, - 128,271,125,272,188,126,3,3,3,3, - 127,126,232,233,147,234,128,167,30,180, - 128,128,222,5,30,167,30,274,276,128, - 178,307,227,45,129,271,67,66,163,163, - 163,163,3,3,157,67,226,189,3,128, - 66,232,188,157,258,261,60,181,4,127, - 188,43,129,74,128,214,304,126,72,284, - 189,3,66,129,45,308,186,221,221,128, - 67,67,128,214,157,127,128,3,60,163, - 4,132,128,186,128,278,72,66,72,67, - 128,186,129,129,223,128,258,221,216,292, - 30,10,62,132,278,49,288,129,289,232, - 186,186,128,223,66,63,43,235,235,279, - 128,66,186,3,157,58,128,17,30,171, - 61,55,47,128,67,67,128,298,79,77, - 1,163,86,84,82,80,75,83,85,78, - 76,55,74,221,128,3,28,43,128,3, - 49,123,126,125,55,292,280,119,9,216, - 72,3,3,3,193,3,125,163,125,182, - 223,312,128,49,63,264,275,28,128,49, - 49,67,129,63,3,240,168,240,299,225, - 147,75,240,128,128,66,128,66,157,229, - 228,128,128,129,186,62,95,311,168,157, - 189,157,225,162,128,3,157,280,229,229, - 229,186,273,235,157,157,128,67,193,162, - 225,264,163,273,67,122,225,162,157,157, - 225,157 + 0,293,188,177,184,176,131,7,5,126, + 3,128,3,67,56,166,165,126,30,167, + 128,56,3,64,65,126,125,30,188,213, + 129,6,151,128,58,40,32,35,37,33, + 10,136,4,3,129,36,29,5,14,13, + 6,8,27,26,140,145,148,147,150,149, + 153,152,156,154,157,60,159,215,159,187, + 4,128,128,264,265,249,266,244,267,68, + 268,269,10,129,56,56,128,166,128,262, + 128,3,30,30,30,30,129,3,7,126, + 179,162,167,128,64,65,166,3,127,103, + 120,3,56,90,96,14,13,92,91,6, + 94,93,63,30,88,89,8,98,97,100, + 99,101,113,112,111,110,109,108,107,106, + 105,104,67,117,102,255,187,289,134,292, + 213,58,166,234,129,127,126,125,58,129, + 129,185,166,289,6,182,66,301,179,162, + 179,179,179,179,166,220,155,128,3,218, + 217,136,127,126,10,129,56,294,3,187, + 179,31,129,31,220,162,147,147,145,145, + 145,149,149,149,149,148,148,152,150,150, + 154,153,156,162,157,4,66,128,127,126, + 128,185,128,58,128,185,166,31,128,66, + 63,63,63,63,187,176,213,225,128,3, + 129,166,200,3,295,167,151,129,185,166, + 72,302,129,168,226,191,57,170,304,128, + 128,72,187,128,270,125,271,187,3,3, + 3,3,127,126,231,232,146,233,128,166, + 31,179,128,128,223,5,31,166,31,273, + 275,128,177,306,226,41,129,270,67,66, + 162,162,162,162,3,3,155,67,225,188, + 3,128,66,231,187,155,257,260,56,180, + 4,125,127,187,30,129,75,128,213,303, + 126,72,283,188,3,66,129,41,307,185, + 220,220,128,67,67,128,213,155,127,128, + 3,56,162,4,132,128,185,128,277,72, + 66,72,67,128,185,129,129,221,128,257, + 220,215,291,31,10,62,132,277,58,287, + 129,288,231,185,185,128,221,66,63,30, + 234,234,278,128,66,185,3,155,60,128, + 12,31,170,61,59,57,128,67,67,128, + 297,80,78,1,162,87,85,83,81,76, + 84,86,79,77,59,75,220,128,3,28, + 30,128,3,58,123,126,125,59,291,279, + 119,9,215,72,3,3,3,192,3,125, + 162,125,181,221,311,128,58,63,263,274, + 28,128,58,58,67,129,63,3,239,167, + 239,298,224,146,76,239,128,128,66,128, + 66,155,228,227,128,128,129,185,62,95, + 310,167,155,188,155,224,161,128,3,155, + 279,228,228,228,185,272,234,155,155,128, + 67,192,161,224,263,162,272,67,122,224, + 161,155,155,224,155 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2366,13 +2381,13 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars "identifier_name", "operator_function_id_name", "template_id_name", - "class_name", "nested_name_specifier", "class_or_namespace_name", "nested_name_specifier_with_tem" + "plate", "class_or_namespace_name_with_t" + "emplate", + "class_name", "postfix_expression", "simple_type_specifier", "pseudo_destructor_name", @@ -2494,20 +2509,20 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 522, + NUM_STATES = 525, NT_OFFSET = 124, - LA_STATE_OFFSET = 5672, + LA_STATE_OFFSET = 5639, MAX_LA = 2147483647, - NUM_RULES = 525, - NUM_NONTERMINALS = 194, - NUM_SYMBOLS = 318, + NUM_RULES = 526, + NUM_NONTERMINALS = 193, + NUM_SYMBOLS = 317, SEGMENT_SIZE = 8192, - START_STATE = 4246, + START_STATE = 4125, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 121, EOLT_SYMBOL = 121, - ACCEPT_ACTION = 4774, - ERROR_ACTION = 5147; + ACCEPT_ACTION = 4735, + ERROR_ACTION = 5113; 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 e503e7217f2..8e67cdac8a0 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 @@ -16,79 +16,79 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp; public interface CPPNoFunctionDeclaratorParsersym { public final static int TK_asm = 61, - TK_auto = 50, - TK_bool = 14, - TK_break = 76, - TK_case = 77, + TK_auto = 48, + TK_bool = 15, + TK_break = 77, + TK_case = 78, TK_catch = 119, - TK_char = 15, + TK_char = 16, TK_class = 62, TK_const = 46, - TK_const_cast = 31, - TK_continue = 78, - TK_default = 79, + TK_const_cast = 32, + TK_continue = 79, + TK_default = 80, TK_delete = 64, - TK_do = 80, - TK_double = 16, - TK_dynamic_cast = 32, + TK_do = 81, + TK_double = 17, + TK_dynamic_cast = 33, TK_else = 122, TK_enum = 68, - TK_explicit = 51, - TK_export = 81, - TK_extern = 17, - TK_false = 33, + TK_explicit = 49, + TK_export = 82, + TK_extern = 12, + TK_false = 34, TK_float = 18, - TK_for = 82, - TK_friend = 52, - TK_goto = 83, - TK_if = 84, - TK_inline = 53, + TK_for = 83, + TK_friend = 50, + TK_goto = 84, + TK_if = 85, + TK_inline = 51, TK_int = 19, TK_long = 20, - TK_mutable = 54, - TK_namespace = 55, + TK_mutable = 52, + TK_namespace = 59, TK_new = 65, TK_operator = 7, TK_private = 114, TK_protected = 115, TK_public = 116, - TK_register = 56, - TK_reinterpret_cast = 34, - TK_return = 85, + TK_register = 53, + TK_reinterpret_cast = 35, + TK_return = 86, TK_short = 21, TK_signed = 22, - TK_sizeof = 35, - TK_static = 57, - TK_static_cast = 36, + TK_sizeof = 36, + TK_static = 54, + TK_static_cast = 37, TK_struct = 69, - TK_switch = 86, - TK_template = 30, - TK_this = 37, - TK_throw = 58, - TK_try = 74, - TK_true = 38, - TK_typedef = 59, - TK_typeid = 39, + TK_switch = 87, + TK_template = 31, + TK_this = 38, + TK_throw = 60, + TK_try = 75, + TK_true = 39, + TK_typedef = 55, + TK_typeid = 40, TK_typename = 10, TK_union = 70, TK_unsigned = 23, - TK_using = 47, - TK_virtual = 45, + TK_using = 57, + TK_virtual = 41, TK_void = 24, - TK_volatile = 48, + TK_volatile = 47, TK_wchar_t = 25, - TK_while = 75, - TK_integer = 40, - TK_floating = 41, - TK_charconst = 42, + TK_while = 76, + TK_integer = 42, + TK_floating = 43, + TK_charconst = 44, TK_stringlit = 28, TK_identifier = 1, TK_Completion = 2, TK_EndOfCompletion = 9, TK_Invalid = 124, - TK_LeftBracket = 60, + TK_LeftBracket = 56, TK_LeftParen = 3, - TK_LeftBrace = 49, + TK_LeftBrace = 58, TK_Dot = 120, TK_DotStar = 96, TK_Arrow = 103, @@ -97,15 +97,15 @@ public interface CPPNoFunctionDeclaratorParsersym { TK_MinusMinus = 27, TK_And = 8, TK_Star = 6, - TK_Plus = 11, - TK_Minus = 12, + TK_Plus = 13, + TK_Minus = 14, TK_Tilde = 5, TK_Bang = 29, TK_Slash = 91, TK_Percent = 92, TK_RightShift = 88, TK_LeftShift = 89, - TK_LT = 43, + TK_LT = 30, TK_GT = 63, TK_LE = 93, TK_GE = 94, @@ -131,11 +131,11 @@ public interface CPPNoFunctionDeclaratorParsersym { TK_CaretAssign = 112, TK_OrAssign = 113, TK_Comma = 66, - TK_zero = 44, + TK_zero = 45, TK_RightBracket = 118, - TK_RightParen = 87, + TK_RightParen = 74, TK_RightBrace = 71, - TK_SemiColon = 13, + TK_SemiColon = 11, TK_ERROR_TOKEN = 73, TK_original_namespace_name = 123, TK_EOF_TOKEN = 121; @@ -152,13 +152,13 @@ public interface CPPNoFunctionDeclaratorParsersym { "And", "EndOfCompletion", "typename", + "SemiColon", + "extern", "Plus", "Minus", - "SemiColon", "bool", "char", "double", - "extern", "float", "int", "long", @@ -171,6 +171,7 @@ public interface CPPNoFunctionDeclaratorParsersym { "MinusMinus", "stringlit", "Bang", + "LT", "template", "const_cast", "dynamic_cast", @@ -181,27 +182,26 @@ public interface CPPNoFunctionDeclaratorParsersym { "this", "true", "typeid", + "virtual", "integer", "floating", "charconst", - "LT", "zero", - "virtual", "const", - "using", "volatile", - "LeftBrace", "auto", "explicit", "friend", "inline", "mutable", - "namespace", "register", "static", - "throw", "typedef", "LeftBracket", + "using", + "LeftBrace", + "namespace", + "throw", "asm", "class", "GT", @@ -215,6 +215,7 @@ public interface CPPNoFunctionDeclaratorParsersym { "RightBrace", "Colon", "ERROR_TOKEN", + "RightParen", "try", "while", "break", @@ -228,7 +229,6 @@ public interface CPPNoFunctionDeclaratorParsersym { "if", "return", "switch", - "RightParen", "RightShift", "LeftShift", "ArrowStar", 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 1479aa9201f..25c8535b283 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 @@ -378,1738 +378,1878 @@ public CPPParser(String[] mapFrom) { // constructor } // - // Rule 37: unqualified_id_name ::= ~ class_name + // Rule 37: unqualified_id_name ::= ~ identifier_token // case 37: { action.builder. consumeDestructorName(); break; } // - // Rule 38: identifier_name ::= identifier_token + // Rule 38: unqualified_id_name ::= ~ template_id_name // case 38: { action.builder. + consumeDestructorNameTemplateId(); break; + } + + // + // Rule 39: identifier_name ::= identifier_token + // + case 39: { action.builder. consumeIdentifierName(); break; } // - // Rule 39: template_opt ::= template - // - case 39: { action.builder. - consumePlaceHolder(); break; - } - - // - // Rule 40: template_opt ::= $Empty + // Rule 40: template_opt ::= template // case 40: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 41: dcolon_opt ::= :: - // - case 41: { action.builder. consumePlaceHolder(); break; } // - // Rule 42: dcolon_opt ::= $Empty + // Rule 41: template_opt ::= $Empty // - case 42: { action.builder. + case 41: { action.builder. consumeEmpty(); break; } // - // Rule 43: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name + // Rule 42: dcolon_opt ::= :: + // + case 42: { action.builder. + consumePlaceHolder(); break; + } + + // + // Rule 43: dcolon_opt ::= $Empty // case 43: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 44: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name + // + case 44: { action.builder. consumeQualifiedId(true); break; } // - // Rule 44: qualified_id_name ::= :: identifier_name - // - case 44: { action.builder. - consumeGlobalQualifiedId(); break; - } - - // - // Rule 45: qualified_id_name ::= :: operator_function_id_name + // Rule 45: qualified_id_name ::= :: identifier_name // case 45: { action.builder. consumeGlobalQualifiedId(); break; } // - // Rule 46: qualified_id_name ::= :: template_id_name + // Rule 46: qualified_id_name ::= :: operator_function_id_name // case 46: { action.builder. consumeGlobalQualifiedId(); break; } // - // Rule 47: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template + // Rule 47: qualified_id_name ::= :: template_id_name // case 47: { action.builder. - consumeNestedNameSpecifier(true); break; + consumeGlobalQualifiedId(); break; } // - // Rule 48: nested_name_specifier ::= class_or_namespace_name :: + // Rule 48: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template // case 48: { action.builder. - consumeNestedNameSpecifier(false); break; - } - - // - // Rule 49: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template - // - case 49: { action.builder. consumeNestedNameSpecifier(true); break; } // - // Rule 50: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: + // Rule 49: nested_name_specifier ::= class_or_namespace_name :: // - case 50: { action.builder. + case 49: { action.builder. consumeNestedNameSpecifier(false); break; } // - // Rule 51: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name + // Rule 50: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template + // + case 50: { action.builder. + consumeNestedNameSpecifier(true); break; + } + + // + // Rule 51: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: // case 51: { action.builder. + consumeNestedNameSpecifier(false); break; + } + + // + // Rule 52: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name + // + case 52: { action.builder. consumeNameWithTemplateKeyword(); break; } // - // Rule 53: nested_name_specifier_opt ::= $Empty + // Rule 54: nested_name_specifier_opt ::= $Empty // - case 53: { action.builder. + case 54: { action.builder. consumeNestedNameSpecifierEmpty(); break; } // - // Rule 56: postfix_expression ::= postfix_expression [ expression ] + // Rule 57: postfix_expression ::= postfix_expression [ expression ] // - case 56: { action.builder. + case 57: { action.builder. consumeExpressionArraySubscript(); break; } // - // Rule 57: postfix_expression ::= postfix_expression ( expression_list_opt ) + // Rule 58: postfix_expression ::= postfix_expression ( expression_list_opt ) // - case 57: { action.builder. + case 58: { action.builder. consumeExpressionFunctionCall(); break; } // - // Rule 58: postfix_expression ::= simple_type_specifier ( expression_list_opt ) + // Rule 59: postfix_expression ::= simple_type_specifier ( expression_list_opt ) // - case 58: { action.builder. + case 59: { action.builder. consumeExpressionSimpleTypeConstructor(); break; } // - // Rule 59: postfix_expression ::= typename dcolon_opt nested_name_specifier identifier_name ( expression_list_opt ) - // - case 59: { action.builder. - consumeExpressionTypeName(); break; - } - - // - // Rule 60: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) + // 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 ::= postfix_expression . qualified_or_unqualified_name + // Rule 61: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) // case 61: { action.builder. + consumeExpressionTypeName(); break; + } + + // + // Rule 62: postfix_expression ::= postfix_expression . qualified_or_unqualified_name + // + case 62: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 62: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name + // Rule 63: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name // - case 62: { action.builder. + case 63: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 63: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name + // Rule 64: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name // - case 63: { action.builder. + case 64: { action.builder. consumeExpressionFieldReference(false, true); break; } // - // Rule 64: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name + // Rule 65: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name // - case 64: { action.builder. + case 65: { action.builder. consumeExpressionFieldReference(true, true); break; } // - // Rule 65: postfix_expression ::= postfix_expression . pseudo_destructor_name + // Rule 66: postfix_expression ::= postfix_expression . pseudo_destructor_name // - case 65: { action.builder. + case 66: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 66: postfix_expression ::= postfix_expression -> pseudo_destructor_name + // Rule 67: postfix_expression ::= postfix_expression -> pseudo_destructor_name // - case 66: { action.builder. + case 67: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 67: postfix_expression ::= postfix_expression ++ + // Rule 68: postfix_expression ::= postfix_expression ++ // - case 67: { action.builder. + case 68: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; } // - // Rule 68: postfix_expression ::= postfix_expression -- + // Rule 69: postfix_expression ::= postfix_expression -- // - case 68: { action.builder. + case 69: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; } // - // Rule 69: postfix_expression ::= dynamic_cast < type_id > ( expression ) + // Rule 70: postfix_expression ::= dynamic_cast < type_id > ( expression ) // - case 69: { action.builder. + case 70: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); break; } // - // Rule 70: postfix_expression ::= static_cast < type_id > ( expression ) + // Rule 71: postfix_expression ::= static_cast < type_id > ( expression ) // - case 70: { action.builder. + case 71: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_static_cast); break; } // - // Rule 71: postfix_expression ::= reinterpret_cast < type_id > ( expression ) + // Rule 72: postfix_expression ::= reinterpret_cast < type_id > ( expression ) // - case 71: { action.builder. + case 72: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); break; } // - // Rule 72: postfix_expression ::= const_cast < type_id > ( expression ) + // Rule 73: postfix_expression ::= const_cast < type_id > ( expression ) // - case 72: { action.builder. + case 73: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_const_cast); break; } // - // Rule 73: postfix_expression ::= typeid ( expression ) + // Rule 74: postfix_expression ::= typeid ( expression ) // - case 73: { action.builder. + case 74: { action.builder. consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break; } // - // Rule 74: postfix_expression ::= typeid ( type_id ) + // Rule 75: postfix_expression ::= typeid ( type_id ) // - case 74: { action.builder. + case 75: { action.builder. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid); break; } // - // Rule 75: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name - // - case 75: { action.builder. - consumePsudoDestructorName(true); break; - } - - // - // Rule 76: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name + // 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_opt destructor_type_name + // Rule 77: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name // case 77: { action.builder. + consumePsudoDestructorName(true); break; + } + + // + // Rule 78: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name + // + case 78: { action.builder. consumePsudoDestructorName(false); break; } // - // Rule 78: destructor_type_name ::= ~ type_name + // Rule 79: destructor_type_name ::= ~ identifier_token // - case 78: { action.builder. + case 79: { action.builder. consumeDestructorName(); break; } // - // Rule 82: unary_expression ::= ++ cast_expression + // Rule 80: destructor_type_name ::= ~ template_id_name // - case 82: { action.builder. + case 80: { action.builder. + consumeDestructorNameTemplateId(); break; + } + + // + // Rule 84: unary_expression ::= ++ cast_expression + // + case 84: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; } // - // Rule 83: unary_expression ::= -- cast_expression + // Rule 85: unary_expression ::= -- cast_expression // - case 83: { action.builder. + case 85: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; } // - // Rule 84: unary_expression ::= & cast_expression + // Rule 86: unary_expression ::= & cast_expression // - case 84: { action.builder. + case 86: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; } // - // Rule 85: unary_expression ::= * cast_expression + // Rule 87: unary_expression ::= * cast_expression // - case 85: { action.builder. + case 87: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; } // - // Rule 86: unary_expression ::= + cast_expression + // Rule 88: unary_expression ::= + cast_expression // - case 86: { action.builder. + case 88: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; } // - // Rule 87: unary_expression ::= - cast_expression + // Rule 89: unary_expression ::= - cast_expression // - case 87: { action.builder. + case 89: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; } // - // Rule 88: unary_expression ::= ~ cast_expression + // Rule 90: unary_expression ::= ~ cast_expression // - case 88: { action.builder. + case 90: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; } // - // Rule 89: unary_expression ::= ! cast_expression + // Rule 91: unary_expression ::= ! cast_expression // - case 89: { action.builder. + case 91: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; } // - // Rule 90: unary_expression ::= sizeof unary_expression + // Rule 92: unary_expression ::= sizeof unary_expression // - case 90: { action.builder. + case 92: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; } // - // Rule 91: unary_expression ::= sizeof ( type_id ) + // Rule 93: unary_expression ::= sizeof ( type_id ) // - case 91: { action.builder. + case 93: { action.builder. consumeExpressionTypeId(ICPPASTTypeIdExpression.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 194: iteration_statement ::= while ( condition ) statement + // Rule 196: iteration_statement ::= while ( condition ) statement // - case 194: { action.builder. + case 196: { action.builder. consumeStatementWhileLoop(); break; } // - // Rule 195: iteration_statement ::= do statement while ( expression ) ; + // Rule 197: iteration_statement ::= do statement while ( expression ) ; // - case 195: { action.builder. + case 197: { action.builder. consumeStatementDoLoop(); break; } // - // Rule 196: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement - // - case 196: { action.builder. - consumeStatementForLoop(); break; - } - - // - // Rule 197: iteration_statement ::= for ( simple_declaration_with_declspec expression_opt ; expression_opt ) statement - // - case 197: { action.builder. - consumeStatementForLoop(); break; - } - - // - // Rule 198: jump_statement ::= break ; + // Rule 198: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement // case 198: { action.builder. + consumeStatementForLoop(); break; + } + + // + // Rule 199: iteration_statement ::= for ( simple_declaration_with_declspec expression_opt ; expression_opt ) statement + // + case 199: { action.builder. + consumeStatementForLoop(); break; + } + + // + // Rule 200: jump_statement ::= break ; + // + case 200: { action.builder. consumeStatementBreak(); break; } // - // Rule 199: jump_statement ::= continue ; + // Rule 201: jump_statement ::= continue ; // - case 199: { action.builder. + case 201: { action.builder. consumeStatementContinue(); break; } // - // Rule 200: jump_statement ::= return expression ; + // Rule 202: jump_statement ::= return expression ; // - case 200: { action.builder. + case 202: { action.builder. consumeStatementReturn(true); break; } // - // Rule 201: jump_statement ::= return ; + // Rule 203: jump_statement ::= return ; // - case 201: { action.builder. + case 203: { action.builder. consumeStatementReturn(false); break; } // - // Rule 202: jump_statement ::= goto identifier_token ; + // Rule 204: jump_statement ::= goto identifier_token ; // - case 202: { action.builder. + case 204: { action.builder. consumeStatementGoto(); break; } // - // Rule 203: declaration_statement ::= block_declaration + // Rule 205: declaration_statement ::= block_declaration // - case 203: { action.builder. + case 205: { action.builder. consumeStatementDeclaration(); break; } // - // Rule 204: declaration_statement ::= function_definition + // Rule 206: declaration_statement ::= function_definition // - case 204: { action.builder. + case 206: { action.builder. consumeStatementDeclaration(); break; } // - // Rule 221: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; + // Rule 223: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; // - case 221: { action.builder. + case 223: { action.builder. consumeDeclarationSimple(true, true); break; } // - // Rule 222: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; + // Rule 224: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; // - case 222: { action.builder. + case 224: { action.builder. consumeDeclarationSimple(true, false); break; } // - // Rule 223: declaration_specifiers ::= simple_declaration_specifiers + // Rule 225: declaration_specifiers ::= simple_declaration_specifiers // - case 223: { action.builder. + case 225: { action.builder. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 224: declaration_specifiers ::= class_declaration_specifiers - // - case 224: { action.builder. - consumeDeclarationSpecifiersComposite(); break; - } - - // - // Rule 225: declaration_specifiers ::= elaborated_declaration_specifiers - // - case 225: { action.builder. - consumeDeclarationSpecifiersComposite(); break; - } - - // - // Rule 226: declaration_specifiers ::= enum_declaration_specifiers + // Rule 226: declaration_specifiers ::= class_declaration_specifiers // case 226: { action.builder. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 227: declaration_specifiers ::= type_name_declaration_specifiers + // Rule 227: declaration_specifiers ::= elaborated_declaration_specifiers // case 227: { action.builder. + consumeDeclarationSpecifiersComposite(); break; + } + + // + // Rule 228: declaration_specifiers ::= enum_declaration_specifiers + // + case 228: { action.builder. + consumeDeclarationSpecifiersComposite(); break; + } + + // + // Rule 229: declaration_specifiers ::= type_name_declaration_specifiers + // + case 229: { action.builder. consumeDeclarationSpecifiersTypeName(); break; } // - // Rule 228: declaration_specifiers_opt ::= $Empty + // Rule 230: declaration_specifiers_opt ::= $Empty // - case 228: { action.builder. + case 230: { action.builder. consumeEmpty(); break; } // - // Rule 233: no_type_declaration_specifier ::= friend + // Rule 235: no_type_declaration_specifier ::= friend // - case 233: { action.builder. + case 235: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 234: no_type_declaration_specifier ::= typedef + // Rule 236: no_type_declaration_specifier ::= typedef // - case 234: { action.builder. + case 236: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 262: simple_type_specifier ::= simple_type_specifier_token + // Rule 256: storage_class_specifier ::= auto + // + case 256: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 257: storage_class_specifier ::= register + // + case 257: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 258: storage_class_specifier ::= static + // + case 258: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 259: storage_class_specifier ::= extern + // + case 259: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 260: storage_class_specifier ::= mutable + // + case 260: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 261: function_specifier ::= inline + // + case 261: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 262: function_specifier ::= virtual // case 262: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 276: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name + // Rule 263: function_specifier ::= explicit // - case 276: { action.builder. - consumeQualifiedId(false); break; + case 263: { action.builder. + consumeDeclSpecToken(); break; } // - // Rule 277: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name + // Rule 264: simple_type_specifier ::= char + // + case 264: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 265: simple_type_specifier ::= wchar_t + // + case 265: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 266: simple_type_specifier ::= bool + // + case 266: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 267: simple_type_specifier ::= short + // + case 267: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 268: simple_type_specifier ::= int + // + case 268: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 269: simple_type_specifier ::= long + // + case 269: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 270: simple_type_specifier ::= signed + // + case 270: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 271: simple_type_specifier ::= unsigned + // + case 271: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 272: simple_type_specifier ::= float + // + case 272: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 273: simple_type_specifier ::= double + // + case 273: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 274: simple_type_specifier ::= void + // + case 274: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 277: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name // case 277: { action.builder. consumeQualifiedId(false); break; } // - // Rule 278: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name + // Rule 278: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name // case 278: { action.builder. consumeQualifiedId(false); break; } // - // Rule 279: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name + // Rule 279: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name // case 279: { action.builder. + consumeQualifiedId(false); break; + } + + // + // Rule 280: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name + // + case 280: { action.builder. consumeQualifiedId(true); break; } // - // Rule 280: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name + // Rule 281: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name // - case 280: { action.builder. + case 281: { action.builder. consumeTypeSpecifierElaborated(false); break; } // - // Rule 281: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name + // Rule 282: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name // - case 281: { action.builder. + case 282: { action.builder. consumeTypeSpecifierElaborated(true); break; } // - // Rule 282: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name + // Rule 283: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name // - case 282: { action.builder. + case 283: { action.builder. consumeTypeSpecifierElaborated(false); break; } // - // Rule 283: enum_specifier ::= enum { enumerator_list_opt } + // Rule 284: enum_specifier ::= enum { enumerator_list_opt } // - case 283: { action.builder. + case 284: { action.builder. consumeTypeSpecifierEnumeration(false); break; } // - // Rule 284: enum_specifier ::= enum identifier_token { enumerator_list_opt } + // Rule 285: enum_specifier ::= enum identifier_token { enumerator_list_opt } // - case 284: { action.builder. + case 285: { action.builder. consumeTypeSpecifierEnumeration(true); break; } // - // Rule 289: enumerator_definition ::= identifier_token + // Rule 290: enumerator_definition ::= identifier_token // - case 289: { action.builder. + case 290: { action.builder. consumeEnumerator(false); break; } // - // Rule 290: enumerator_definition ::= identifier_token = constant_expression + // Rule 291: enumerator_definition ::= identifier_token = constant_expression // - case 290: { action.builder. + case 291: { action.builder. consumeEnumerator(true); break; } // - // Rule 296: original_namespace_definition ::= namespace identifier_name { declaration_seq_opt } - // - case 296: { action.builder. - consumeNamespaceDefinition(true); break; - } - - // - // Rule 297: extension_namespace_definition ::= namespace original_namespace_name { declaration_seq_opt } + // Rule 297: original_namespace_definition ::= namespace identifier_name { declaration_seq_opt } // case 297: { action.builder. consumeNamespaceDefinition(true); break; } // - // Rule 298: unnamed_namespace_definition ::= namespace { declaration_seq_opt } + // Rule 298: extension_namespace_definition ::= namespace original_namespace_name { declaration_seq_opt } // case 298: { action.builder. + consumeNamespaceDefinition(true); break; + } + + // + // Rule 299: unnamed_namespace_definition ::= namespace { declaration_seq_opt } + // + case 299: { action.builder. consumeNamespaceDefinition(false); break; } // - // Rule 299: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 300: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; // - case 299: { action.builder. + case 300: { action.builder. consumeNamespaceAliasDefinition(); break; } // - // Rule 300: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; + // Rule 301: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; // - case 300: { action.builder. + case 301: { action.builder. consumeUsingDeclaration(); break; } // - // Rule 301: typename_opt ::= typename + // Rule 302: typename_opt ::= typename // - case 301: { action.builder. + case 302: { action.builder. consumePlaceHolder(); break; } // - // Rule 302: typename_opt ::= $Empty + // Rule 303: typename_opt ::= $Empty // - case 302: { action.builder. + case 303: { action.builder. consumeEmpty(); break; } // - // Rule 303: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 304: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; // - case 303: { action.builder. + case 304: { action.builder. consumeUsingDirective(); break; } // - // Rule 304: asm_definition ::= asm ( stringlit ) ; + // Rule 305: asm_definition ::= asm ( stringlit ) ; // - case 304: { action.builder. + case 305: { action.builder. consumeDeclarationASM(); break; } // - // Rule 305: linkage_specification ::= extern stringlit { declaration_seq_opt } - // - case 305: { action.builder. - consumeLinkageSpecification(); break; - } - - // - // Rule 306: linkage_specification ::= extern stringlit declaration + // Rule 306: linkage_specification ::= extern stringlit { declaration_seq_opt } // case 306: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 311: init_declarator_complete ::= init_declarator + // Rule 307: linkage_specification ::= extern stringlit declaration // - case 311: { action.builder. + case 307: { action.builder. + consumeLinkageSpecification(); break; + } + + // + // Rule 312: init_declarator_complete ::= init_declarator + // + case 312: { action.builder. consumeInitDeclaratorComplete(); break; } // - // Rule 313: init_declarator ::= declarator initializer + // Rule 314: init_declarator ::= declarator initializer // - case 313: { action.builder. + case 314: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 315: declarator ::= ptr_operator_seq direct_declarator + // Rule 316: declarator ::= ptr_operator_seq direct_declarator // - case 315: { action.builder. + case 316: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 317: function_declarator ::= ptr_operator_seq direct_declarator + // Rule 318: function_declarator ::= ptr_operator_seq direct_declarator // - case 317: { action.builder. + case 318: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 321: basic_direct_declarator ::= declarator_id_name + // Rule 322: basic_direct_declarator ::= declarator_id_name // - case 321: { action.builder. + case 322: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 322: basic_direct_declarator ::= ( declarator ) + // Rule 323: basic_direct_declarator ::= ( declarator ) // - case 322: { action.builder. + case 323: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 323: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 324: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 323: { action.builder. + case 324: { 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 + // Rule 325: array_direct_declarator ::= array_direct_declarator array_modifier // case 325: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 326: array_modifier ::= [ constant_expression ] + // 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 327: array_modifier ::= [ ] + // Rule 328: array_modifier ::= [ ] // - case 327: { action.builder. + case 328: { action.builder. consumeDirectDeclaratorArrayModifier(false); break; } // - // Rule 328: ptr_operator ::= * cv_qualifier_seq_opt + // Rule 329: ptr_operator ::= * cv_qualifier_seq_opt // - case 328: { action.builder. + case 329: { action.builder. consumePointer(); break; } // - // Rule 329: ptr_operator ::= & + // Rule 330: ptr_operator ::= & // - case 329: { action.builder. + case 330: { action.builder. consumeReferenceOperator(); break; } // - // Rule 330: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt + // Rule 331: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt // - case 330: { action.builder. + case 331: { action.builder. consumePointerToMember(); break; } // - // Rule 336: cv_qualifier ::= const - // - case 336: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 337: cv_qualifier ::= volatile + // Rule 337: cv_qualifier ::= const // case 337: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 339: declarator_id_name ::= nested_name_specifier template_opt unqualified_id_name + // Rule 338: cv_qualifier ::= volatile // - case 339: { action.builder. + 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 340: type_id ::= type_specifier_seq + // Rule 341: type_id ::= type_specifier_seq // - case 340: { action.builder. + case 341: { action.builder. consumeTypeId(false); break; } // - // Rule 341: type_id ::= type_specifier_seq abstract_declarator + // Rule 342: type_id ::= type_specifier_seq abstract_declarator // - case 341: { action.builder. + case 342: { action.builder. consumeTypeId(true); break; } // - // Rule 344: abstract_declarator ::= ptr_operator_seq + // Rule 345: abstract_declarator ::= ptr_operator_seq // - case 344: { action.builder. + case 345: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 345: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator + // Rule 346: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator // - case 345: { action.builder. + case 346: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 349: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 350: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - case 349: { action.builder. + case 350: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 350: array_direct_abstract_declarator ::= array_modifier + // Rule 351: array_direct_abstract_declarator ::= array_modifier // - case 350: { action.builder. + case 351: { action.builder. consumeDirectDeclaratorArrayDeclarator(false); break; } // - // Rule 351: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier - // - case 351: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 352: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier + // Rule 352: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier // case 352: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 353: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // 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. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 354: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 355: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 354: { action.builder. + case 355: { action.builder. consumeDirectDeclaratorFunctionDeclarator(false); break; } // - // Rule 355: parameter_declaration_clause ::= parameter_declaration_list_opt ... - // - case 355: { action.builder. - consumePlaceHolder(); break; - } - - // - // Rule 356: parameter_declaration_clause ::= parameter_declaration_list_opt + // Rule 356: parameter_declaration_clause ::= parameter_declaration_list_opt ... // case 356: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 357: parameter_declaration_clause ::= parameter_declaration_list , ... - // - case 357: { action.builder. consumePlaceHolder(); break; } // - // Rule 363: abstract_declarator_opt ::= $Empty + // Rule 357: parameter_declaration_clause ::= parameter_declaration_list_opt // - case 363: { action.builder. + case 357: { action.builder. consumeEmpty(); break; } // - // Rule 364: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // Rule 358: parameter_declaration_clause ::= parameter_declaration_list , ... + // + case 358: { action.builder. + consumePlaceHolder(); break; + } + + // + // Rule 364: abstract_declarator_opt ::= $Empty // case 364: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 365: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // + case 365: { action.builder. consumeParameterDeclaration(); break; } // - // Rule 365: parameter_declaration ::= declaration_specifiers + // Rule 366: parameter_declaration ::= declaration_specifiers // - case 365: { action.builder. + case 366: { action.builder. consumeParameterDeclarationWithoutDeclarator(); break; } // - // Rule 367: parameter_init_declarator ::= declarator = parameter_initializer + // Rule 368: parameter_init_declarator ::= declarator = parameter_initializer // - case 367: { action.builder. + case 368: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 369: parameter_init_declarator ::= abstract_declarator = parameter_initializer - // - case 369: { action.builder. - consumeDeclaratorWithInitializer(true); break; - } - - // - // Rule 370: parameter_init_declarator ::= = parameter_initializer + // Rule 370: parameter_init_declarator ::= abstract_declarator = parameter_initializer // case 370: { action.builder. + consumeDeclaratorWithInitializer(true); break; + } + + // + // Rule 371: parameter_init_declarator ::= = parameter_initializer + // + case 371: { action.builder. consumeDeclaratorWithInitializer(false); break; } // - // Rule 371: parameter_initializer ::= assignment_expression + // Rule 372: parameter_initializer ::= assignment_expression // - case 371: { action.builder. + case 372: { action.builder. consumeInitializer(); break; } // - // Rule 372: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body + // Rule 373: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body // - case 372: { action.builder. + case 373: { action.builder. consumeFunctionDefinition(false); break; } // - // Rule 373: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq + // Rule 374: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq // - case 373: { action.builder. + case 374: { action.builder. consumeFunctionDefinition(true); break; } // - // Rule 376: initializer ::= ( expression_list ) + // Rule 377: initializer ::= ( expression_list ) // - case 376: { action.builder. + case 377: { action.builder. consumeInitializerConstructor(); break; } // - // Rule 377: initializer_clause ::= assignment_expression + // Rule 378: initializer_clause ::= assignment_expression // - case 377: { action.builder. + case 378: { action.builder. consumeInitializer(); break; } // - // Rule 378: initializer_clause ::= { initializer_list , } - // - case 378: { action.builder. - consumeInitializerList(); break; - } - - // - // Rule 379: initializer_clause ::= { initializer_list } + // Rule 379: initializer_clause ::= { initializer_list , } // case 379: { action.builder. consumeInitializerList(); break; } // - // Rule 380: initializer_clause ::= { } + // Rule 380: initializer_clause ::= { initializer_list } // case 380: { action.builder. consumeInitializerList(); break; } // - // Rule 385: class_specifier ::= class_head { member_declaration_list_opt } + // Rule 381: initializer_clause ::= { } // - case 385: { action.builder. + case 381: { action.builder. + consumeInitializerList(); break; + } + + // + // Rule 386: class_specifier ::= class_head { member_declaration_list_opt } + // + case 386: { action.builder. consumeClassSpecifier(); break; } // - // Rule 386: class_head ::= class_keyword identifier_name_opt base_clause_opt - // - case 386: { action.builder. - consumeClassHead(false); break; - } - - // - // Rule 387: class_head ::= class_keyword template_id_name base_clause_opt + // Rule 387: class_head ::= class_keyword identifier_name_opt base_clause_opt // case 387: { action.builder. consumeClassHead(false); break; } // - // Rule 388: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt + // Rule 388: class_head ::= class_keyword template_id_name base_clause_opt // case 388: { action.builder. - consumeClassHead(true); break; + consumeClassHead(false); break; } // - // Rule 389: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt + // Rule 389: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt // case 389: { action.builder. consumeClassHead(true); break; } // - // Rule 391: identifier_name_opt ::= $Empty + // Rule 390: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt // - case 391: { action.builder. + case 390: { action.builder. + consumeClassHead(true); break; + } + + // + // Rule 392: identifier_name_opt ::= $Empty + // + case 392: { action.builder. consumeEmpty(); break; } // - // Rule 395: visibility_label ::= access_specifier_keyword : + // Rule 396: visibility_label ::= access_specifier_keyword : // - case 395: { action.builder. + case 396: { action.builder. consumeVisibilityLabel(); break; } // - // Rule 396: member_declaration ::= declaration_specifiers_opt member_declarator_list ; + // Rule 397: member_declaration ::= declaration_specifiers_opt member_declarator_list ; // - case 396: { action.builder. + case 397: { action.builder. consumeDeclarationSimple(true, true); break; } // - // Rule 397: member_declaration ::= declaration_specifiers_opt ; + // Rule 398: member_declaration ::= declaration_specifiers_opt ; // - case 397: { action.builder. + case 398: { action.builder. consumeDeclarationSimple(false, false); break; } // - // Rule 400: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; + // Rule 401: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; // - case 400: { action.builder. + case 401: { action.builder. consumeMemberDeclarationQualifiedId(); break; } // - // Rule 404: member_declaration ::= ERROR_TOKEN + // Rule 405: member_declaration ::= ERROR_TOKEN // - case 404: { action.builder. + case 405: { action.builder. consumeDeclarationProblem(); break; } // - // Rule 412: member_declarator ::= declarator constant_initializer + // Rule 413: member_declarator ::= declarator constant_initializer // - case 412: { action.builder. + case 413: { action.builder. consumeMemberDeclaratorWithInitializer(); break; } // - // Rule 413: member_declarator ::= bit_field_declarator : constant_expression + // Rule 414: member_declarator ::= bit_field_declarator : constant_expression // - case 413: { action.builder. + case 414: { action.builder. consumeBitField(true); break; } // - // Rule 414: member_declarator ::= : constant_expression + // Rule 415: member_declarator ::= : constant_expression // - case 414: { action.builder. + case 415: { action.builder. consumeBitField(false); break; } // - // Rule 415: bit_field_declarator ::= identifier_name + // Rule 416: bit_field_declarator ::= identifier_name // - case 415: { action.builder. + case 416: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 416: constant_initializer ::= = constant_expression + // Rule 417: constant_initializer ::= = constant_expression // - case 416: { action.builder. + case 417: { action.builder. consumeInitializer(); break; } // - // Rule 422: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 423: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 422: { action.builder. + case 423: { action.builder. consumeBaseSpecifier(false, false); break; } // - // Rule 423: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name - // - case 423: { action.builder. - consumeBaseSpecifier(true, true); break; - } - - // - // Rule 424: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name + // Rule 424: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name // case 424: { action.builder. consumeBaseSpecifier(true, true); break; } // - // Rule 425: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name + // Rule 425: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name // case 425: { action.builder. + consumeBaseSpecifier(true, true); break; + } + + // + // Rule 426: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name + // + case 426: { action.builder. consumeBaseSpecifier(true, false); break; } // - // Rule 426: access_specifier_keyword ::= private - // - case 426: { action.builder. - consumeAccessKeywordToken(); break; - } - - // - // Rule 427: access_specifier_keyword ::= protected + // Rule 427: access_specifier_keyword ::= private // case 427: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 428: access_specifier_keyword ::= public + // Rule 428: access_specifier_keyword ::= protected // case 428: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 430: access_specifier_keyword_opt ::= $Empty + // Rule 429: access_specifier_keyword ::= public // - case 430: { action.builder. + case 429: { action.builder. + consumeAccessKeywordToken(); break; + } + + // + // Rule 431: access_specifier_keyword_opt ::= $Empty + // + case 431: { action.builder. consumeEmpty(); break; } // - // Rule 431: conversion_function_id_name ::= operator conversion_type_id + // Rule 432: conversion_function_id_name ::= operator conversion_type_id // - case 431: { action.builder. + case 432: { action.builder. consumeConversionName(); break; } // - // Rule 432: conversion_type_id ::= type_specifier_seq conversion_declarator + // Rule 433: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 432: { action.builder. + case 433: { action.builder. consumeTypeId(true); break; } // - // Rule 433: conversion_type_id ::= type_specifier_seq + // Rule 434: conversion_type_id ::= type_specifier_seq // - case 433: { action.builder. + case 434: { action.builder. consumeTypeId(false); break; } // - // Rule 434: conversion_declarator ::= ptr_operator_seq + // Rule 435: conversion_declarator ::= ptr_operator_seq // - case 434: { action.builder. + case 435: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 440: mem_initializer ::= mem_initializer_name ( expression_list_opt ) + // Rule 441: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 440: { action.builder. + case 441: { action.builder. consumeConstructorChainInitializer(); break; } // - // Rule 441: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 442: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name // - case 441: { action.builder. + case 442: { action.builder. consumeQualifiedId(false); break; } // - // Rule 444: operator_function_id_name ::= operator_id_name < template_argument_list_opt > + // Rule 445: operator_function_id_name ::= operator_id_name < template_argument_list_opt > // - case 444: { action.builder. + case 445: { action.builder. consumeTemplateId(); break; } // - // Rule 445: operator_id_name ::= operator overloadable_operator + // Rule 446: operator_id_name ::= operator overloadable_operator // - case 445: { action.builder. + case 446: { action.builder. consumeOperatorName(); break; } // - // Rule 488: template_declaration ::= export_opt template < template_parameter_list > declaration + // Rule 489: template_declaration ::= export_opt template < template_parameter_list > declaration // - case 488: { action.builder. + case 489: { action.builder. consumeTemplateDeclaration(); break; } // - // Rule 489: export_opt ::= export + // Rule 490: export_opt ::= export // - case 489: { action.builder. + case 490: { action.builder. consumePlaceHolder(); break; } // - // Rule 490: export_opt ::= $Empty + // Rule 491: export_opt ::= $Empty // - case 490: { action.builder. + case 491: { action.builder. consumeEmpty(); break; } // - // Rule 494: template_parameter ::= parameter_declaration + // Rule 495: template_parameter ::= parameter_declaration // - case 494: { action.builder. + case 495: { action.builder. consumeTemplateParamterDeclaration(); break; } // - // Rule 495: type_parameter ::= class identifier_name_opt - // - case 495: { action.builder. - consumeSimpleTypeTemplateParameter(false); break; - } - - // - // Rule 496: type_parameter ::= class identifier_name_opt = type_id + // Rule 496: type_parameter ::= class identifier_name_opt // case 496: { action.builder. - consumeSimpleTypeTemplateParameter(true); break; - } - - // - // Rule 497: type_parameter ::= typename identifier_name_opt - // - case 497: { action.builder. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 498: type_parameter ::= typename identifier_name_opt = type_id + // Rule 497: type_parameter ::= class identifier_name_opt = type_id // - case 498: { action.builder. + case 497: { action.builder. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 499: type_parameter ::= template < template_parameter_list > class identifier_name_opt + // Rule 498: type_parameter ::= typename identifier_name_opt + // + case 498: { action.builder. + consumeSimpleTypeTemplateParameter(false); break; + } + + // + // Rule 499: type_parameter ::= typename identifier_name_opt = type_id // case 499: { action.builder. + consumeSimpleTypeTemplateParameter(true); break; + } + + // + // Rule 500: type_parameter ::= template < template_parameter_list > class identifier_name_opt + // + case 500: { action.builder. consumeTemplatedTypeTemplateParameter(false); break; } // - // Rule 500: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression + // Rule 501: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression // - case 500: { action.builder. + case 501: { action.builder. consumeTemplatedTypeTemplateParameter(true); break; } // - // Rule 501: template_id_name ::= identifier_name < template_argument_list_opt > + // Rule 502: template_id_name ::= identifier_name < template_argument_list_opt > // - case 501: { action.builder. + case 502: { action.builder. consumeTemplateId(); break; } // - // Rule 509: explicit_instantiation ::= template declaration + // Rule 510: explicit_instantiation ::= template declaration // - case 509: { action.builder. + case 510: { action.builder. consumeTemplateExplicitInstantiation(); break; } // - // Rule 510: explicit_specialization ::= template < > declaration + // Rule 511: explicit_specialization ::= template < > declaration // - case 510: { action.builder. + case 511: { action.builder. consumeTemplateExplicitSpecialization(); break; } // - // Rule 511: try_block ::= try compound_statement handler_seq + // Rule 512: try_block ::= try compound_statement handler_seq // - case 511: { action.builder. + case 512: { action.builder. consumeStatementTryBlock(); break; } // - // Rule 514: handler ::= catch ( exception_declaration ) compound_statement + // Rule 515: handler ::= catch ( exception_declaration ) compound_statement // - case 514: { action.builder. + case 515: { action.builder. consumeStatementCatchHandler(false); break; } // - // Rule 515: handler ::= catch ( ... ) compound_statement + // Rule 516: handler ::= catch ( ... ) compound_statement // - case 515: { action.builder. + case 516: { action.builder. consumeStatementCatchHandler(true); break; } // - // Rule 516: exception_declaration ::= type_specifier_seq declarator - // - case 516: { action.builder. - consumeDeclarationSimple(true, false); break; - } - - // - // Rule 517: exception_declaration ::= type_specifier_seq abstract_declarator + // Rule 517: exception_declaration ::= type_specifier_seq declarator // case 517: { action.builder. consumeDeclarationSimple(true, false); break; } // - // Rule 518: exception_declaration ::= type_specifier_seq + // Rule 518: exception_declaration ::= type_specifier_seq abstract_declarator // case 518: { action.builder. + consumeDeclarationSimple(true, false); break; + } + + // + // Rule 519: exception_declaration ::= type_specifier_seq + // + case 519: { action.builder. consumeDeclarationSimple(false, 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 1b39e59d33f..44b1aab49db 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 @@ -40,480 +40,470 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 0,0,1,1,1,1,1,1,1,1, 1,0,1,2,1,1,1,1,1,1, 1,1,1,1,1,1,1,3,1,1, - 1,1,1,1,1,1,2,1,1,0, - 1,0,4,2,2,2,3,2,3,2, - 2,1,0,1,1,4,4,4,8,8, - 3,3,4,4,3,3,2,2,7,7, - 7,7,4,4,5,6,3,2,1,1, - 1,2,2,2,2,2,2,2,2,2, - 4,7,9,3,0,1,2,2,1,2, - 3,4,1,0,3,1,0,3,5,1, - 4,1,3,3,1,3,3,3,1,3, - 3,1,3,3,1,3,3,3,3,1, - 3,3,1,3,1,3,1,3,1,3, - 1,3,1,5,1,2,1,1,3,3, - 3,3,3,3,3,3,3,3,3,1, - 2,1,3,1,0,1,0,1,1,0, - 1,1,1,1,1,1,1,1,1,3, - 3,2,2,1,4,2,1,2,5,7, - 5,1,4,5,7,9,8,2,2,3, - 2,3,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,2,1,0, - 4,4,2,2,2,2,2,0,1,1, - 1,1,1,1,1,2,1,2,2,2, - 1,1,2,2,1,2,2,1,2,2, - 1,2,2,1,1,1,1,1,1,1, + 1,1,1,1,1,1,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,5,7,9,8,2, + 2,3,2,3,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,2, + 1,0,4,4,2,2,2,2,2,0, + 1,1,1,1,1,1,1,2,1,2, + 2,2,1,1,2,2,1,2,2,1, + 2,2,1,2,2,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,3,4,4,5,4, - 5,4,5,6,1,3,1,0,1,3, - 1,1,1,1,1,6,6,5,7,6, - 1,0,6,5,6,4,1,3,1,0, - 1,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,1, - 2,2,9,8,2,1,3,1,3,1, - 0,1,0,2,1,1,3,1,3,2, - 1,5,8,1,2,3,1,5,4,3, - 1,3,1,1,5,4,4,5,5,1, - 0,1,1,1,2,4,2,2,1,5, - 1,1,1,1,1,2,1,0,1,3, - 1,2,3,2,1,2,2,1,0,1, - 3,3,5,5,4,1,1,1,1,0, - 2,2,1,2,2,1,0,1,3,4, - 3,1,1,5,2,1,1,3,3,1, + 1,1,1,1,1,1,3,4,4,5, + 4,5,4,5,6,1,3,1,0,1, + 3,1,1,1,1,1,6,6,5,7, + 6,1,0,6,5,6,4,1,3,1, + 0,1,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, + 1,2,2,9,8,2,1,3,1,3, + 1,0,1,0,2,1,1,3,1,3, + 2,1,5,8,1,2,3,1,5,4, + 3,1,3,1,1,5,4,4,5,5, + 1,0,1,1,1,2,4,2,2,1, + 5,1,1,1,1,1,2,1,0,1, + 3,1,2,3,2,1,2,2,1,0, + 1,3,3,5,5,4,1,1,1,1, + 0,2,2,1,2,2,1,0,1,3, + 4,3,1,1,5,2,1,1,3,3, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,2,2,7,1,0, - 1,3,1,1,2,4,2,4,7,9, - 5,1,3,1,0,1,1,1,2,4, - 4,1,2,5,5,3,3,1,4,3, - 1,0,1,3,-235,0,0,0,-2,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-45,0,0,0, - 0,0,-3,0,0,0,0,-12,0,0, - 0,0,0,-4,0,0,-242,0,0,0, - -62,0,0,0,0,0,0,0,-66,0, - -263,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-7,0,0,0,0,0,0,0, - 0,-9,0,0,0,-30,0,0,0,-159, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-471,0,-518,0,0, - 0,0,0,0,0,0,0,0,0,-122, - -14,0,-10,0,0,0,-113,0,0,0, - 0,0,0,-101,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-196,0,0,0, - 0,0,-133,0,0,-89,0,0,0,-17, - 0,0,0,0,0,0,0,0,-117,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -156,0,0,0,-64,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, - -24,0,0,0,-47,0,0,0,-88,0, - 0,-214,-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,0,0,-441,0,0,0,0, - 0,0,0,0,-118,0,0,0,0,0, - 0,0,0,0,0,-31,0,-285,0,0, - 0,-33,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,0,0,0, - 0,0,0,0,0,-21,0,0,0,-65, - 0,-424,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-13, - 0,0,0,0,0,0,0,0,0,-35, - -90,0,0,-219,0,-110,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 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,-192,0, - 0,0,-73,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,-25,0,0,0,0,0,0,0,0, - -100,0,0,-288,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,-87,0,0,0,0,0,0,0,0, - 0,0,-40,0,0,-377,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-105,0,0, - 0,0,0,-321,0,0,-41,0,-115,0, - 0,0,0,-42,-71,0,0,-103,0,0, - 0,-95,0,0,0,-378,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-455,-50,0,0,-108,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-127,0, - 0,0,0,0,0,-179,0,0,0,-52, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-78,0,0, - 0,0,0,-116,0,0,0,0,-153,0, - 0,0,0,0,-189,0,0,-398,0,0, - 0,-74,-53,0,0,-508,-265,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-129,0, - 0,0,0,0,0,0,0,0,0,-519, - 0,0,0,0,0,0,0,0,-266,0, - 0,0,-143,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-237,0,0,-191, - 0,0,0,0,0,0,-59,-231,0,0, - -267,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-198,0,-213,0,0,0,0,0,0, - 0,0,-268,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -308,0,0,0,0,0,0,0,0,0, - 0,-67,0,0,-269,0,0,0,-206,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-207,0,0,0, - 0,0,-309,0,0,-75,0,0,0,0, - 0,0,-210,-76,0,0,-270,0,0,0, - -208,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-217,0, - 0,0,0,0,0,0,0,-112,0,0, - 0,0,0,0,-222,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, - 0,0,0,0,0,0,0,0,0,-233, - 0,-132,0,0,0,0,-223,-140,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,-325,0, - 0,0,0,0,0,0,0,0,-238,-144, - 0,0,-273,0,0,0,-375,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-305,0,0,0,0,0, - -145,0,0,0,0,-146,0,0,0,0, - -367,0,0,0,-274,0,0,0,-410,0, - 0,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,-148,0,0, - 0,0,-371,0,0,0,-275,0,0,0, - -484,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-327,0,0,-312,0,-149, - 0,0,0,0,-150,-151,0,0,-374,0, - 0,0,-152,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-154,0,0,-315, - 0,0,0,0,0,0,-155,-168,0,0, - -409,0,0,0,-169,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-170,0, - 0,0,0,0,0,0,0,0,0,-171, - 0,0,-500,0,0,0,-172,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-510,0,0,0,0,0, - -173,0,0,-316,0,-174,0,0,0,0, - -175,-176,0,0,-218,0,0,0,-184,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-128,0,0,-131,0,-299,0,0, - 0,0,-303,0,0,0,-301,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -243,0,0,0,0,0,0,0,0,0, - 0,0,-177,-359,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,0,0,0,0,0,-322,0,0,0, - 0,-386,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-178,0,0,0,0,0,0,-332, - 0,0,0,-180,0,0,0,0,0,0, - 0,-181,-387,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-369,0,0,0,0,0, - -370,0,0,-384,0,0,0,0,0,0, - -494,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-183,0,0,0,0,-334,0, - 0,0,-186,0,0,0,0,0,0,0, - -188,-277,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,-420, - 0,0,-197,0,-27,0,0,-331,0,-264, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-96,0,0,0,0,0,0,0,0, - 0,0,-335,0,-262,0,0,0,-373,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-199,0,0,0, - 0,0,-391,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,0, - 0,0,0,0,0,0,0,-260,0,0, - 0,-201,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-202, - 0,0,0,0,0,-261,0,0,0,-203, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-212,0,0, - 0,0,0,-1,0,0,-372,0,-94,-5, - 0,0,0,-232,0,-139,0,0,0,-72, - -38,0,0,0,0,0,-97,-28,0,0, - 0,0,0,0,0,0,0,-39,-109,-313, - 0,0,0,0,0,-311,0,0,0,-421, - 0,0,0,0,0,0,-102,0,0,-119, - -230,0,0,0,0,0,0,-147,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-15,0,0,0,0,0,-46, - 0,0,-400,0,0,0,0,0,0,0, - 0,-405,-240,-300,0,0,0,-241,0,0, - 0,0,0,0,-282,0,0,0,0,0, - 0,-450,0,-284,0,0,0,0,0,0, - 0,0,-289,-290,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-336,0,0,0,0, + 1,1,1,1,1,1,2,2,7,1, + 0,1,3,1,1,2,4,2,4,7, + 9,5,1,3,1,0,1,1,1,2, + 4,4,1,2,5,5,3,3,1,4, + 3,1,0,1,3,-236,0,0,0,-2, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-124,0,0,0, + 0,0,-107,0,0,0,-61,0,0,0, + 0,0,-4,-64,0,0,-30,0,0,0, + -29,0,0,0,0,-16,0,0,0,0, + -262,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-7,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-19,0,0,0,-12, + 0,-3,0,-9,0,0,0,0,0,-10, + 0,0,0,0,0,-47,0,0,0,0, + 0,0,0,0,0,-105,0,0,0,0, + -14,0,-205,0,0,0,0,-102,0,0, + 0,-17,0,0,0,0,-115,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, + -27,0,0,0,0,0,0,0,0,0, + 0,-24,0,0,-91,0,0,0,0,0, + 0,0,0,0,0,0,0,-119,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-74,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-158,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,-495,0, - 0,0,0,-254,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-66,0,0, + 0,0,0,-31,-215,-278,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-408,0,0,0,0, - -255,0,0,0,-297,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-256,0,0, - 0,-136,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-298, - 0,0,0,0,-84,0,-302,-304,0,-330, - 0,0,0,0,-497,0,0,0,0,-437, - 0,0,-250,0,0,0,0,0,0,0, + 0,0,-186,0,0,0,0,0,0,0, + 0,0,0,-442,0,0,-120,0,0,0, + -495,0,0,0,0,0,0,-33,0,-285, + 0,0,0,-62,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-356,0,-121,0,0,0, - 0,-498,0,0,0,0,0,-61,-317,-221, - -106,0,0,0,-318,0,0,-430,0,0, + -35,0,0,0,0,0,-38,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-319,-320,-26,0,0,0,0,-324,0, - 0,0,0,0,0,0,0,0,0,-337, - 0,-19,0,0,0,-338,0,0,0,0, - 0,0,-339,0,0,0,0,0,0,0, - 0,0,0,-124,-48,0,-404,0,0,0, - 0,-439,0,-51,-54,-216,0,0,0,-141, - 0,0,0,0,0,0,-512,0,-209,0, - 0,0,0,0,0,0,0,0,-43,0, - 0,0,0,-340,0,-125,0,0,0,0, - 0,0,0,0,0,0,-34,0,0,0, - -185,0,-56,-479,0,0,0,0,0,0, - 0,-341,0,0,0,0,0,0,0,0, - 0,0,-60,0,0,-342,0,0,0,0, + 0,-220,0,-426,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,-446,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,-37,0,0, + -238,0,0,0,-97,0,0,-112,0,0, + 0,-65,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -193,0,0,0,-40,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-135,0,0, + 0,0,0,0,-45,0,0,0,0,0, + 0,-400,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,0,0,0, + 0,-321,0,0,0,-71,0,0,-41,0, + 0,-42,0,0,0,-379,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,-111,0,0,0,0,0,0,-80, + 0,0,0,0,0,0,-242,0,0,0, + -469,0,0,0,0,0,0,0,0,0, + 0,-380,0,0,0,-358,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-305,0,0,0,0,0,0,0, + 0,0,-76,0,0,-406,0,0,0,0, + 0,0,-110,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-52,0,0,-92,0,0,-181, + 0,0,0,-53,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -211,0,0,0,0,0,-39,0,0,0, + 0,0,0,0,0,0,-457,0,0,0, + 0,-141,0,0,0,0,0,-511,0,0, + -265,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,-75,0,0, + 0,0,0,0,-59,0,0,0,-522,0, + 0,-266,0,0,0,-456,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-67,0,0,0,0,0,-46,0, + 0,0,0,0,0,0,0,0,-72,0, + 0,0,-267,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,-73, + 0,0,0,-268,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, + -48,0,0,0,0,0,0,0,0,0, + -77,0,0,0,-269,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,-51,0,0,0,0,0,0,-54,0, + 0,0,0,0,0,-270,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,-56,0,0,0,0,0,0,0, + 0,0,0,-209,0,0,-271,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,-60,0,0,0,0,0,0, + -70,0,0,-78,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,-79,0,0,0,0,0, + 0,-81,0,0,-114,0,0,0,-273,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,-82,0,0,0,0, + 0,0,-85,0,0,-134,0,0,0,-274, + 0,0,0,-142,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -146,0,0,0,0,0,-87,0,0,0, + 0,0,0,-88,0,0,-147,0,0,0, + -275,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-148,0,0,0,0,0,-94,0,0, + 0,0,0,0,-95,0,0,-150,0,0, + 0,-376,0,0,0,-151,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-152,0,0,0,0,0,-100,0, + 0,0,0,0,0,-117,0,0,-153,-129, + 0,0,-411,0,0,0,-412,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-154,0,0,0,0,0,-118, + 0,0,0,-130,0,0,0,0,0,-190, + -133,0,0,-503,0,0,0,-156,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,0,-192,0,0,0,0,0, + -199,0,0,0,-219,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, + 0,-303,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,-194,0, + 0,0,0,0,0,0,0,0,-171,-13, + -243,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,0,0,0, + 0,0,0,-299,0,0,0,0,0,-195, + 0,0,0,0,0,0,-301,0,0,-388, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-96,0,0,0, + -172,0,0,0,0,0,-521,0,0,0, + -234,0,0,0,0,0,0,0,-173,0, + -389,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-235,0,0, + 0,-174,0,0,0,0,0,-497,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-279,0,0,0,0,0, + 0,-175,0,0,-334,0,0,0,-176,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,-223, + 0,0,0,0,0,-287,0,0,0,0, + 0,0,-90,0,0,-264,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,-331,0,0,0,0,0,-263,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,-259,0, + 0,0,-224,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-179, + 0,0,0,0,0,-1,0,-369,0,0, + -336,0,0,0,-363,0,0,0,0,0, 0,0,-257,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-329,0,0,0,0,0,0, + -232,0,0,0,0,0,0,-180,0,-149, + -21,0,0,0,-296,0,0,-25,0,0, + -99,0,0,0,0,0,0,0,0,0, + 0,-260,0,0,0,-18,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-258,0,0,0,-344,0,0,0, + 0,0,-182,0,0,0,0,0,-261,0, + 0,0,-312,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-280,0,0,0,0,0, - -345,0,-29,0,0,0,0,-346,0,0, - 0,0,-182,0,0,0,0,-347,-310,0, - 0,0,0,-348,-448,-57,0,0,0,-63, - -453,-293,0,0,0,0,-329,0,0,0, - 0,-349,0,0,0,0,0,-70,-32,0, - 0,0,0,0,-350,0,0,0,-357,0, - 0,0,0,0,0,0,0,0,-351,-352, + 0,0,0,0,0,0,0,-5,0,0, + 0,-86,0,0,0,0,-210,0,0,0, + -371,-89,0,0,0,0,0,-300,0,0, + 0,0,0,0,0,0,0,-58,0,0, + 0,0,0,0,0,0,0,-108,0,0, + 0,0,0,0,0,0,-183,0,0,0, + 0,0,0,-231,-187,-244,0,0,-155,0, + -123,0,0,0,0,0,-15,0,-189,0, + 0,0,0,0,0,0,0,0,0,-314, + 0,0,0,0,0,0,0,-332,0,0, + 0,-315,-191,0,0,0,0,0,-184,0, 0,0,0,0,0,0,0,0,0,0, - 0,-99,0,-11,0,-353,0,0,0,-138, - -204,0,0,-354,0,0,0,0,-355,-358, - -77,0,0,0,0,0,0,0,0,0, - 0,-459,-104,-460,0,-16,-281,0,0,-454, - 0,0,-137,0,0,-306,0,0,0,-360, + 0,0,0,0,0,0,0,-34,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-79,0,-362, + 0,0,0,0,0,0,-104,0,0,0, + 0,0,0,0,0,-126,-373,0,-487,0, + 0,0,0,0,0,0,0,-405,0,-316, + -322,0,0,-198,0,0,0,-161,0,0, + 0,-200,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -200,0,0,0,0,-363,0,0,0,0, - 0,-249,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-206,0,0, + 0,0,0,0,-127,-197,0,-214,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-69,0,0,0, - 0,-503,0,0,0,0,-379,-364,-449,-366, - 0,0,0,0,-393,0,0,0,0,0, - -461,-365,-80,0,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,0, - -414,-394,0,0,0,-440,0,0,-18,0, - -395,0,-20,0,0,0,0,0,-396,0, + 0,0,-202,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-281,0,0,0, + 0,0,-473,-203,-308,0,-101,0,0,0, + 0,-499,0,0,0,0,0,0,0,0, + -254,0,0,0,-138,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-204,0,0,0,0,0,-213,0,0, + -255,0,0,0,-233,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-241,0,0,0,0,-256,0,0,0, + -284,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-333,0,0, + 0,0,-280,-196,-289,-338,0,-409,0,0, + 0,-68,0,0,0,0,0,0,0,0, + 0,-121,-309,0,0,0,0,0,0,0, + -57,0,0,0,0,0,-20,-185,-327,0, + 0,0,0,0,0,0,0,-337,-290,0, + 0,0,0,0,0,0,-297,0,-375,0, + 0,0,0,0,0,0,-359,0,0,0, + 0,0,-443,0,0,0,-298,0,0,0, + 0,0,0,0,0,0,0,0,-393,0, + -11,0,0,0,0,0,-144,0,-372,-386, + -374,0,0,0,0,-422,-302,0,0,0, + 0,0,0,0,0,0,0,0,-304,0, + 0,0,-139,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,-402,-425,0,0,0,0,0,0, + 0,0,0,0,0,0,-28,0,0,0, + 0,0,0,0,0,0,-318,0,-201,0, + 0,0,0,-410,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,-411,0,0,0, - 0,0,0,-205,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-476,0,-412, - 0,0,0,0,0,0,-413,-418,0,0, - 0,0,0,0,0,0,-478,-422,-504,0, - 0,-58,0,0,0,0,0,0,0,0, - 0,0,0,-83,-426,0,0,0,0,-85, + 0,0,-69,0,0,0,0,-319,0,0, + 0,0,0,0,0,-320,-324,-498,0,0, + 0,-407,0,0,0,0,0,-432,-283,-451, + 0,0,0,0,0,0,0,-98,-367,-325, + 0,0,0,0,0,-159,0,0,-22,0, + -122,-500,0,0,0,0,0,-501,0,0, + -217,0,0,0,0,0,0,0,-326,-63, + 0,0,0,-423,0,0,0,0,0,-515, + 0,0,0,0,-339,0,0,0,0,0, + -313,0,-427,0,0,0,0,0,0,-143, + 0,0,0,0,0,-416,0,0,0,0, + 0,0,0,-452,-340,0,0,0,0,0, + 0,0,0,0,-479,0,0,0,0,-341, + 0,-342,0,0,-431,0,0,0,0,-482, 0,0,0,0,0,0,0,0,0,0, - -142,0,0,0,0,0,0,-114,-462,0, - 0,0,0,-435,0,0,0,0,0,-86, - -473,0,0,0,0,0,0,0,0,0, - 0,0,0,-483,-92,-474,-93,0,0,-22, + 0,0,0,0,0,0,0,-343,-116,0, + 0,0,0,0,-344,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -481,-345,0,0,0,-221,0,0,0,-346, + 0,0,0,0,0,0,0,0,0,-486, + -347,0,0,0,-439,0,0,0,0,-441, + -26,0,0,0,-292,-348,-506,0,0,0, + 0,-448,0,0,0,-349,0,0,0,0, 0,0,-489,0,0,0,0,0,0,0, - 0,0,-513,0,-490,0,0,-443,0,0, - 0,0,0,-44,0,0,0,-436,0,-98, - 0,0,0,0,0,0,0,0,0,-195, - 0,0,0,0,0,0,-442,0,0,0, - 0,0,-286,-452,0,0,0,0,0,0, - 0,0,0,0,0,0,-193,-505,0,0, - 0,0,0,0,0,0,0,0,0,-520, - -511,0,-120,0,0,-456,0,0,0,0, - 0,0,0,0,0,0,0,0,-523,0, - 0,0,0,-468,0,-472,-516,0,-477,0, - 0,-194,0,0,-485,0,0,0,0,-491, - 0,-279,0,0,0,0,0,0,0,0, - 0,0,-492,-501,-287,0,0,0,0,0, - 0,0,0,0,0,-507,0,0,0,0, - 0,-8,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-514,-130,0,0,0, - 0,-381,0,0,0,0,0,0,0,0, - 0,0,0,0,-506,-81,-296,-314,0,0, + 0,0,0,0,0,-350,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-403,0,0,0,0, - 0,0,0,0,0,-423,0,0,0,0, + 0,0,0,0,0,-516,-351,-352,0,0, + 0,0,-353,-507,-354,0,0,0,0,0, + 0,0,0,0,-523,-383,0,-453,0,0, + -355,0,0,-450,-455,-43,0,0,0,-461, + -519,-356,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-357,-472,-360, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-362,0, + 0,0,0,0,0,0,0,0,0,0, + -526,-364,-460,-462,0,0,0,-282,0,0, + 0,0,0,0,0,0,0,0,0,-419, + -365,0,0,0,-8,-106,0,0,0,-463, + -310,0,0,0,0,-366,-368,0,0,-464, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-468,-395,-396,0,0,0,-476,-286, + 0,-397,0,0,0,-83,0,0,0,0, + 0,0,0,0,0,0,-398,0,0,0, + 0,0,0,0,0,0,0,-478,0,0, + 0,0,0,0,0,0,0,0,0,0, + -84,-306,-413,0,0,0,0,0,0,0, + -414,-415,0,0,0,0,0,-420,0,-424, + 0,0,-132,0,0,0,0,-428,-477,0, + -437,0,-438,0,0,0,0,0,0,0, + 0,-125,0,0,0,0,-444,0,0,0, + 0,0,-160,0,0,0,0,0,0,0, + -140,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-490,-381,-454,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-311,0,-512,0,0,0, + 0,-458,0,-470,0,0,-474,0,-475,0, + 0,0,0,0,0,0,0,-212,0,0, + 0,0,0,0,0,0,0,-249,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -82,-368,-245,-220,0,0,0,0,0,-425, + 0,-480,-291,0,0,0,0,-488,0,0, + 0,0,0,0,-494,-504,-510,0,0,0, + 0,0,-492,0,0,0,0,0,-465,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-397,0,0,0,0,0, - 0,0,-429,-225,-123,-376,0,0,0,0, - 0,0,-328,0,0,0,0,0,0,0, - 0,0,0,-276,0,0,0,0,0,0, + 0,-295,-293,-222,0,0,0,0,-390,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,-493,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-508, + -514,-517,0,-520,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-370,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-445,0,0,0,0,-451,0, 0,0,0,0,0,0,0,0,0,0, - 0,-161,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,-292,0,0,0,-458,0,0, - 0,0,0,-211,0,0,0,0,0,0, - 0,0,0,-251,0,0,0,-517,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,-158, - 0,0,0,-438,0,0,0,0,0,0, - 0,-388,0,0,0,-466,0,0,0,0, - 0,0,0,0,-475,-226,0,0,0,0, - 0,-291,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, -252,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-407,0,0,0,0,0, - -427,0,0,0,0,0,0,-295,0,0, - 0,0,-487,-509,0,0,0,0,-428,0, - 0,0,0,0,-457,0,0,-521,0,0, - 0,0,-499,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-49,0,0,0,0,-157,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,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-444,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-160,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,-524,0,0, 0,0,0,-162,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-163,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,-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, + -429,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,0,0,0, + -165,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,-166,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-167,0,0,0,0,0,0, + 0,0,-167,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,-168,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-246,0,0, + 0,0,0,0,-169,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-247, + 0,0,0,0,0,-237,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-246,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-247,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-323,0, + 0,0,-378,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-403, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-323,0,0,0,0,0,0,0,0, + -484,0,0,0,0,0,0,0,0,0, + -23,0,0,0,0,0,-399,0,0,0, + 0,0,0,0,-113,0,0,0,0,0, + 0,0,0,0,-44,0,0,0,-226,0, + 0,0,0,0,0,-440,0,0,0,0, + -225,-294,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-245,0,0,0, + 0,0,0,0,-394,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-380,0,0,0,0,0,0, - 0,0,0,-401,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-134,0,0,0,0, - 0,0,0,0,0,-465,0,0,0,0, - 0,0,-23,0,0,0,0,0,0,-244, - 0,0,0,0,0,0,0,0,-481,0, - 0,0,0,0,0,0,0,0,0,-470, - 0,0,0,0,0,0,-283,0,0,0, - 0,-224,0,0,0,0,0,0,0,0, - 0,0,-111,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-486,0,0,0, - 0,0,0,0,-294,0,0,0,0,0, + 0,0,0,0,0,-445,0,0,0,0, + 0,-387,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-449,0,0,0,0,0,0,0,0, + 0,0,0,-466,0,0,0,0,-109,0, + 0,0,0,0,0,0,0,0,-230,0, + 0,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,-227,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-49,0,0,0,0,-136,0,0, + 0,0,0,0,0,0,0,-6,0,0, + 0,0,0,0,0,0,0,0,-93,0, + 0,0,0,0,-137,0,0,-509,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,0,0,0,0,0,0,0,-55, + 0,0,0,0,-128,0,0,0,0,0, + 0,0,0,0,0,0,-433,0,0,0, + 0,-188,0,0,0,0,-216,0,0,0, + 0,0,0,0,-307,0,0,0,0,0, + 0,0,-330,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-328,0,0,0,0,-32,0,0, + 0,0,0,0,0,-335,0,0,0,0, + -391,0,0,0,0,0,0,0,0,0, + -240,0,0,0,0,0,0,-392,0,0, + 0,0,-447,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-385,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-459, + 0,0,0,-417,0,0,0,0,0,0, + 0,0,0,0,-401,0,0,0,0,-408, + 0,0,0,0,0,-418,0,0,0,0, + 0,0,0,-228,-483,-421,-229,0,0,0, + 0,0,-430,0,0,0,0,-384,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-68,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-107,0,0,0, - 0,0,0,0,0,0,0,0,-417,0, - 0,0,0,0,0,0,0,0,0,0, - -463,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, - 0,0,-91,0,0,0,0,0,0,0, - 0,0,0,-447,0,0,0,0,0,0, - 0,0,0,0,0,-6,0,0,0,0, - -488,0,0,0,0,0,-135,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-55,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-126,0,0,0, - 0,-187,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-215,0,0, - 0,0,0,0,-464,0,0,0,0,0, - 0,0,0,-307,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-433, - 0,0,0,0,-392,0,0,0,0,0, - 0,0,0,0,0,-326,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-333,0,0,0,0,0,-227,0,0, - 0,0,0,0,0,0,0,-389,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-390,0,0,0,0,-229,0, - 0,0,0,0,0,0,0,0,0,-239, - 0,0,0,0,0,-399,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-406, - 0,0,0,0,0,-415,0,0,0,0, - -416,0,-419,0,0,-228,0,-382,0,0, - -383,0,-480,0,0,-402,0,0,0,0, - 0,-522,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-502,0,-515,0,0,0, - 0,0,0,0,0,0,-434,0,0,0, - 0,0,0,-469,0,0,-482,0,0,0, - 0,0,0,-493,0,0,0,0,0,0, + 0,0,0,0,0,0,-385,0,0,0, + 0,0,0,0,-404,0,0,0,0,0, + -505,0,0,0,0,-491,0,0,-518,0, + -525,0,0,0,0,0,0,0,0,0, + 0,0,-434,0,0,0,0,0,0,0, + -435,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-436,0,0,0,0,0, + -467,0,0,0,-471,0,0,0,0,0, + 0,-485,-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, @@ -523,7 +513,7 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0 + 0 }; }; public final static short baseCheck[] = BaseCheck.baseCheck; @@ -533,530 +523,521 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface BaseAction { public final static char baseAction[] = { - 171,4,53,87,87,33,33,66,66,38, - 38,171,171,172,172,132,132,1,1,15, - 15,15,15,15,15,15,15,16,16,16, - 14,10,10,8,8,8,8,8,2,68, - 68,5,5,11,11,11,11,46,46,133, - 133,134,61,61,42,17,17,17,17,17, - 17,17,17,17,17,17,17,17,17,17, - 17,17,17,17,17,135,135,135,114,18, - 18,18,18,18,18,18,18,18,18,18, - 18,18,19,19,173,173,174,174,175,138, - 138,139,139,136,136,140,137,137,20,20, - 21,21,23,23,23,24,24,24,24,25, - 25,25,26,26,26,27,27,27,27,27, - 29,29,29,30,30,32,32,34,34,35, - 35,36,36,37,37,41,41,40,40,40, - 40,40,40,40,40,40,40,40,40,40, - 39,28,141,141,98,98,102,102,93,192, - 192,78,78,78,78,78,78,78,78,78, - 79,79,79,80,80,56,56,176,176,81, - 81,81,115,115,82,82,82,82,83,83, - 83,83,83,84,84,67,67,67,67,67, - 67,67,48,48,48,48,48,105,105,106, - 106,49,177,22,22,22,22,22,45,45, - 88,88,88,88,88,148,148,143,143,143, - 143,143,144,144,144,145,145,145,146,146, - 146,147,147,147,89,89,89,89,89,90, - 90,90,12,13,13,13,13,13,13,13, - 13,13,13,13,99,119,119,119,119,119, - 117,117,117,118,118,150,150,149,149,121, - 121,151,72,72,73,73,75,76,74,51, - 44,152,152,52,50,71,71,153,153,142, - 142,122,123,123,86,86,154,154,63,63, - 63,58,58,57,64,64,77,77,55,55, - 55,91,91,101,100,100,60,60,59,59, - 54,54,47,103,103,103,94,94,94,95, - 96,96,96,97,97,107,107,107,109,109, - 108,108,193,193,92,92,179,179,179,179, - 179,125,43,43,156,178,178,126,126,126, - 126,180,180,31,31,116,127,127,127,127, - 110,110,120,120,120,158,159,159,159,159, - 159,159,159,159,159,183,183,181,181,182, - 182,160,160,160,160,161,184,112,111,111, - 185,185,162,162,162,162,104,104,104,186, - 186,9,187,187,188,163,155,155,164,164, - 165,166,166,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,65, - 65,169,169,128,128,129,129,129,129,129, - 129,3,170,170,167,167,130,130,130,69, - 70,85,157,157,113,113,189,189,189,131, - 131,124,124,190,190,958,38,2418,2413,29, - 4576,34,872,31,35,30,32,2679,262,29, - 27,55,1768,110,80,81,112,325,1775,1810, - 1799,1841,1817,1307,1851,1846,274,1943,158,1852, - 2013,2024,147,2749,1066,162,148,1816,38,866, - 36,673,4592,34,872,31,35,62,32,1065, - 951,2403,38,866,36,232,3710,34,872,31, - 35,30,32,1757,262,29,27,55,1768,110, - 80,81,112,567,1775,1810,1799,1841,1817,221, - 1851,2960,1414,235,230,231,853,38,801,384, - 2357,38,866,36,275,3710,34,872,31,35, - 30,32,1757,262,29,27,55,1768,90,80, - 81,242,245,248,251,2692,2788,37,1826,38, - 866,36,720,4680,34,872,31,35,30,32, - 1482,1578,500,1352,1124,1117,2434,1180,2394,3006, - 3139,3143,3290,4213,1567,38,866,36,2320,3710, - 34,872,31,35,1767,32,1757,262,29,27, - 55,1768,110,80,81,112,342,1775,1810,1799, - 1841,1817,66,1851,1846,940,1943,2162,1852,2013, - 2024,147,3087,2021,506,148,2204,38,866,36, - 1556,2378,34,872,1883,35,298,3330,507,1567, - 38,866,36,2320,3710,34,872,31,35,1767, - 32,1757,262,29,27,55,1768,110,80,81, - 112,342,1775,1810,1799,1841,1817,313,1851,1846, - 75,1943,332,1852,2013,2024,147,328,334,506, - 148,1478,38,2324,46,70,2378,45,872,2403, - 38,866,36,507,3710,34,872,31,35,30, - 32,1757,262,29,27,55,1768,110,80,81, - 112,1764,1775,2690,502,853,38,3287,3285,853, - 38,291,1086,1835,38,866,36,2320,3710,34, - 872,31,35,1767,32,1757,262,29,27,55, - 1768,110,80,81,112,342,1775,1810,1799,1841, - 1817,1636,1851,1846,2032,1943,1016,1852,2013,2024, - 147,3087,324,506,148,2204,38,866,36,502, - 2378,34,872,339,35,940,2005,507,1634,38, - 866,36,2013,3710,34,872,31,35,30,32, - 1757,262,29,27,55,1768,110,80,81,112, - 2786,1775,1810,1799,1841,1817,2153,1851,1846,2032, - 1943,4240,1852,2013,2024,147,1089,1263,377,148, - 157,4475,1706,38,866,36,429,3710,34,872, - 31,35,30,32,1757,262,29,27,55,1768, - 110,80,81,112,380,1775,1810,1799,1841,1817, - 158,1851,1846,503,1943,3314,1852,2013,2024,147, - 1085,673,377,148,853,1600,1948,38,866,36, - 1209,3710,34,872,31,35,30,32,1757,262, - 29,27,55,1768,110,80,81,112,378,1775, - 1810,1799,1841,1817,98,1851,1846,325,1943,304, - 1852,2013,2024,147,381,2117,377,148,1463,2106, - 38,866,36,1359,3710,34,872,31,35,30, - 32,1757,262,29,27,55,1768,110,80,81, - 112,2788,1775,1810,1799,1841,1817,92,1851,1846, - 106,1943,158,1852,2013,2024,147,2916,382,162, - 148,853,38,282,2106,38,866,36,1607,3710, - 34,872,31,35,30,32,1757,262,29,27, - 55,1768,110,80,81,112,1162,1775,1810,1799, - 1841,1817,158,1851,1846,286,1943,4507,1852,2013, - 2024,147,375,1766,371,148,2106,38,866,36, - 487,3710,34,872,31,35,30,32,1757,262, - 29,27,55,1768,110,80,81,112,2292,1775, - 1810,1799,1841,1817,2500,1851,1846,1917,1943,1359, - 1852,2013,2024,147,1170,325,371,148,853,38, - 2104,277,1145,38,280,76,2106,38,866,36, - 2434,3710,34,872,31,35,30,32,1757,262, - 29,27,55,1768,110,80,81,112,322,1775, - 1810,1799,1841,1817,374,1851,1846,1258,1943,370, - 1852,2013,2024,147,2598,1017,371,148,1902,38, - 866,36,3555,3710,34,872,31,35,30,32, - 1757,262,29,27,55,1768,110,80,81,112, - 2326,1775,1810,1799,1841,1817,449,1851,1846,673, - 1943,369,1852,2013,2144,168,1768,38,866,36, - 1191,3710,34,872,31,35,30,32,1757,262, - 29,27,55,1768,110,80,81,112,1822,1775, - 1810,1799,1841,1817,1359,1851,1846,303,1943,158, - 1852,2013,2024,147,4629,1359,146,148,853,38, - 3318,367,325,2029,372,327,2598,2106,38,866, - 36,1255,3710,34,872,31,35,30,32,1757, - 262,29,27,55,1768,110,80,81,112,1482, - 1775,1810,1799,1841,1817,486,1851,1846,323,1943, - 2598,1852,2013,2024,147,521,855,159,148,2106, - 38,866,36,1482,3710,34,872,31,35,30, - 32,1757,262,29,27,55,1768,110,80,81, - 112,448,1775,1810,1799,1841,1817,2526,1851,1846, - 325,1943,326,1852,2013,2024,147,1158,2150,158, - 148,2106,38,866,36,385,3710,34,872,31, - 35,30,32,1757,262,29,27,55,1768,110, - 80,81,112,376,1775,1810,1799,1841,1817,283, - 1851,1846,325,1943,1756,1852,2013,2024,147,4544, - 354,157,148,2106,38,866,36,521,3710,34, - 872,31,35,30,32,1757,262,29,27,55, - 1768,110,80,81,112,3425,1775,1810,1799,1841, - 1817,158,1851,1846,353,1943,4608,1852,2013,2024, - 147,521,237,156,148,2106,38,866,36,1482, - 3710,34,872,31,35,30,32,1757,262,29, - 27,55,1768,110,80,81,112,1482,1775,1810, - 1799,1841,1817,158,1851,1846,331,1943,4624,1852, - 2013,2024,147,1822,418,155,148,2106,38,866, - 36,1482,3710,34,872,31,35,30,32,1757, - 262,29,27,55,1768,110,80,81,112,1482, - 1775,1810,1799,1841,1817,305,1851,1846,238,1943, - 3573,1852,2013,2024,147,1184,445,154,148,2106, - 38,866,36,297,3710,34,872,31,35,30, - 32,1757,262,29,27,55,1768,110,80,81, - 112,2414,1775,1810,1799,1841,1817,296,1851,1846, - 325,1943,1674,1852,2013,2024,147,1897,1377,153, - 148,2106,38,866,36,284,3710,34,872,31, - 35,30,32,1757,262,29,27,55,1768,110, - 80,81,112,4142,1775,1810,1799,1841,1817,158, - 1851,1846,351,1943,4646,1852,2013,2024,147,1822, - 2498,152,148,2106,38,866,36,1174,3710,34, - 872,31,35,30,32,1757,262,29,27,55, - 1768,110,80,81,112,2639,1775,1810,1799,1841, - 1817,585,1851,1846,352,1943,1189,1852,2013,2024, - 147,853,2150,151,148,2106,38,866,36,2692, - 3710,34,872,31,35,30,32,1757,262,29, - 27,55,1768,110,80,81,112,2600,1775,1810, - 1799,1841,1817,379,1851,1846,325,1943,1629,1852, - 2013,2024,147,853,3218,150,148,2106,38,866, - 36,2748,3710,34,872,31,35,30,32,1757, - 262,29,27,55,1768,110,80,81,112,28, - 1775,1810,1799,1841,1817,1359,1851,1846,325,1943, - 2188,1852,2013,2024,147,2192,2616,149,148,2106, - 38,866,36,2653,3710,34,872,31,35,30, - 32,1757,262,29,27,55,1768,110,80,81, - 112,349,1775,1810,1799,1841,1817,1888,1851,1846, - 325,1943,513,1852,2013,2024,147,1293,2928,163, - 148,2106,38,866,36,1898,3710,34,872,31, - 35,30,32,1757,262,29,27,55,1768,110, - 80,81,112,74,1775,1810,1799,1841,1817,1999, - 1851,1846,4174,1943,513,1852,2013,2024,147,412, - 1318,144,148,2311,38,866,36,2460,3710,34, - 872,31,35,30,32,1757,262,29,27,55, - 1768,110,80,81,112,2786,1775,1810,1799,1841, - 1817,332,1851,1846,325,1943,63,1852,2013,2024, - 147,1005,1097,193,148,2403,38,866,36,2292, - 3710,34,872,31,35,30,32,1757,262,29, - 27,55,1768,110,80,81,112,73,1775,1810, - 1799,1841,1817,673,1851,1846,760,1943,673,1852, - 2013,2144,168,2403,38,866,36,1129,3710,34, - 872,31,35,30,32,1757,262,29,27,55, - 1768,110,80,81,112,374,1775,1810,1799,1841, - 1817,300,1851,1846,398,1943,299,1852,2013,2144, - 168,1885,38,866,36,396,4592,34,872,31, - 35,61,32,2047,2403,38,866,36,290,3710, - 34,872,31,35,30,32,1757,262,29,27, - 55,1768,110,80,81,112,673,1775,1810,1799, - 1841,1817,93,1851,1846,106,1943,325,1852,2013, - 2144,168,2403,38,866,36,414,3710,34,872, - 31,35,30,32,1757,262,29,27,55,1768, - 110,80,81,112,183,1775,1810,1799,1841,1817, - 58,1851,1846,1360,1943,3412,1852,2013,2144,168, - 1697,38,866,36,1224,4680,34,872,31,35, - 64,32,846,2403,38,866,36,3207,3710,34, - 872,31,35,30,32,1757,262,29,27,55, - 1768,110,80,81,112,673,1775,1810,1799,1841, - 1817,673,1851,1846,673,1943,65,1852,2013,2144, - 168,2449,38,866,36,413,3710,34,872,31, - 35,30,32,1757,262,29,27,55,1768,110, - 80,81,112,199,1775,1810,1799,1841,1817,198, - 1851,1846,400,1943,2657,1852,2013,2144,168,1697, - 38,866,36,933,4680,34,872,31,35,63, - 32,2522,2403,38,866,36,416,3710,34,872, - 31,35,30,32,1757,262,29,27,55,1768, - 110,80,81,112,1137,1775,1810,1799,1841,1817, - 673,1851,1846,1879,1943,423,1852,2989,325,2648, - 2403,38,866,36,2737,3710,34,872,31,35, - 30,32,1757,262,29,27,55,1768,110,80, - 81,112,1166,1775,1810,1799,1841,1817,202,1851, - 1846,91,1943,325,2976,2403,38,866,36,325, - 3710,34,872,31,35,30,32,1757,262,29, - 27,55,1768,110,80,81,112,986,1775,1810, - 1799,1841,1817,325,1851,1846,57,2959,2403,38, - 866,36,440,3710,34,872,31,35,30,32, - 1757,262,29,27,55,1768,110,80,81,112, - 2730,1775,1810,1799,1841,1817,3563,2914,2403,38, - 866,36,1096,3710,34,872,31,35,30,32, - 1757,262,29,27,55,1768,110,80,81,112, - 2121,1775,1810,1799,1841,2932,2403,38,866,36, - 2658,3710,34,872,31,35,30,32,1757,262, - 29,27,55,1768,110,80,81,112,1576,1775, - 1810,1799,1841,2945,1416,47,1558,2292,2320,1454, - 2495,38,801,384,2662,2674,853,38,2104,281, - 2033,1662,237,262,3258,3531,229,1454,1208,38, - 866,36,2920,3087,34,872,338,35,45,45, - 2065,274,2595,999,2320,3087,1688,206,215,4446, - 673,3087,205,212,213,214,216,1145,38,278, - 324,847,3051,3506,2320,999,207,1340,1130,603, - 232,15,3534,208,209,210,211,292,293,294, - 295,2767,3051,331,2615,319,910,321,200,164, - 45,314,775,2538,4423,331,239,262,235,230, - 231,332,325,1179,2204,38,866,36,1295,275, - 34,872,2064,35,579,853,38,801,384,4353, - 386,418,673,350,2532,2903,242,245,248,251, - 2692,2356,358,2530,2534,94,13,720,387,418, - 345,1557,1515,348,232,350,441,2223,2217,2262, - 307,311,358,2394,3006,3139,3143,3290,4213,1977, - 4703,2600,343,1557,1515,348,1359,1382,2217,2262, - 571,341,240,230,231,529,2974,2403,38,866, - 36,1432,3710,34,872,31,35,30,32,1757, - 262,29,27,55,1768,110,80,81,112,1359, - 1775,1810,1799,2796,2403,38,866,36,432,3710, - 34,872,31,35,30,32,1757,262,29,27, - 55,1768,110,80,81,112,2010,1775,1810,1799, - 2814,2403,38,866,36,2623,3710,34,872,31, - 35,30,32,1757,262,29,27,55,1768,110, - 80,81,112,56,1775,1810,1799,2867,2403,38, - 866,36,1454,3710,34,872,31,35,30,32, - 1757,262,29,27,55,1768,110,80,81,112, - 2626,1775,1810,1799,2891,2675,101,1996,2165,2320, - 2204,38,866,36,2600,2292,34,872,43,35, - 2583,38,278,2403,38,866,36,229,3710,34, - 872,31,35,30,32,1757,262,29,27,55, - 1768,110,80,81,112,2592,2703,2736,206,215, - 4446,2320,2292,205,212,213,214,216,940,2414, - 1700,245,38,442,2350,2591,4512,207,325,229, - 603,515,217,1258,208,209,210,211,292,293, - 294,295,2651,2704,766,38,801,384,4206,2705, - 206,215,4446,389,418,205,212,213,214,216, - 2527,3668,941,38,1220,2724,2582,3852,514,207, - 3565,660,603,2322,217,54,208,209,210,211, - 292,293,294,295,2815,45,1175,2181,2320,2319, - 1347,846,325,54,1351,45,2051,350,2337,2972, - 853,38,801,384,1175,3222,229,1359,805,853, - 38,291,3565,1439,343,1557,1515,348,512,1051, - 38,801,384,1718,2368,3726,2833,206,215,4446, - 2320,54,205,212,213,214,216,853,38,801, - 384,1875,51,45,673,2885,207,674,229,603, - 54,217,2503,208,209,210,211,292,293,294, - 295,1175,1649,45,2730,52,2134,3003,54,206, - 215,4446,2715,1108,205,212,213,214,216,1175, - 809,436,4735,1238,2157,435,2113,2121,207,3565, - 1457,603,325,217,102,208,209,210,211,292, - 293,294,295,2403,38,866,36,186,3710,34, - 872,31,35,30,32,1757,262,29,27,55, - 1768,110,80,81,112,3198,1775,1810,2898,49, - 1558,3565,1481,2403,38,866,36,2431,3710,34, - 872,31,35,30,32,1757,262,29,27,55, - 1768,110,80,81,112,175,1775,1810,2908,525, - 1888,2506,97,1680,38,866,36,2920,2565,34, - 872,338,35,853,38,2104,279,229,2596,853, - 38,801,384,160,1717,325,853,38,801,384, - 1016,325,1054,184,1966,3087,2320,45,204,215, - 4446,999,2493,203,212,213,214,216,45,1992, - 422,173,667,2320,3051,2687,2767,54,3217,1, - 319,910,321,525,3284,2412,314,775,1175,2060, - 2064,342,2367,187,171,172,174,175,176,177, - 178,229,1561,1600,1492,331,1863,160,2320,1125, - 1779,2075,38,390,2640,4528,2330,184,1966,1457, - 2694,45,204,215,4446,729,229,203,212,213, - 214,216,325,940,325,173,1181,506,38,442, - 2592,4367,4512,1454,359,185,1779,206,215,4446, - 2713,4528,205,212,213,214,216,188,171,172, - 174,175,176,177,178,72,207,71,45,603, - 2716,15,2370,208,209,210,211,292,293,294, - 295,1616,38,866,36,3664,2717,34,872,338, - 35,2949,2403,38,866,36,232,3710,34,872, - 31,35,30,32,1757,262,29,27,55,1768, - 110,80,81,112,1384,1775,2696,853,38,801, - 384,2545,673,285,244,230,231,2065,2718,64, - 2723,2320,3087,999,2767,2724,14,445,319,910, - 321,325,262,45,314,775,525,3373,54,3051, - 1384,1313,1631,512,388,418,431,160,350,1175, - 4737,349,2725,1508,229,525,2304,2444,166,1207, - 160,2732,420,1323,70,343,1557,1515,348,2768, - 184,1966,331,229,2443,204,215,4446,1859,160, - 203,212,213,214,216,2308,436,1691,173,184, - 1966,439,2113,2121,204,215,4446,2770,421,203, - 212,213,214,216,2075,38,390,173,4164,358, - 3208,171,172,174,175,176,177,178,436,232, - 88,2774,525,232,2223,2217,2262,2730,2753,180, - 171,172,174,175,176,177,178,523,2734,673, - 229,525,853,38,801,384,160,247,230,231, - 364,250,230,231,45,2210,184,1966,2637,229, - 45,204,215,4446,2714,160,203,212,213,214, - 216,1561,1600,274,173,184,1966,222,1016,325, - 204,215,4446,3087,2772,203,212,213,214,216, - 45,325,890,173,2756,3394,191,171,172,174, - 175,176,177,178,610,45,325,2154,525,2572, - 2178,3013,69,325,2590,3424,171,172,174,175, - 176,177,178,697,2605,325,229,525,853,38, - 801,384,160,331,1440,38,801,384,2774,2642, - 45,276,184,1966,3251,229,60,204,215,4446, - 1180,160,203,212,213,214,216,2217,59,274, - 173,184,1966,1180,2784,54,204,215,4446,707, - 232,203,212,213,214,216,1175,45,325,173, - 52,868,194,171,172,174,175,176,177,178, - 784,325,285,1554,525,716,2542,2320,253,230, - 231,190,171,172,174,175,176,177,178,871, - 3330,3397,229,525,2339,3051,2443,673,160,2779, - 1499,1631,45,3330,105,2792,3343,78,184,1966, - 2796,229,45,204,215,4446,2635,160,203,212, - 213,214,216,2304,377,45,173,184,1966,3566, - 333,334,204,215,4446,195,2798,203,212,213, - 214,216,2641,330,334,173,2320,5240,197,171, - 172,174,175,176,177,178,325,853,38,801, - 384,5240,2521,5240,229,494,2320,196,171,172, - 174,175,176,177,178,2691,2894,45,45,2320, - 2320,3462,4565,5240,3051,206,215,4446,54,3370, - 205,212,213,214,216,5240,45,342,229,1175, - 3136,491,493,1473,207,5240,45,603,520,509, - 3010,208,209,210,211,292,293,294,295,206, - 215,4446,2378,5240,205,212,213,214,216,523, - 5240,2912,2191,45,1016,2320,999,999,207,3087, - 45,603,2280,510,1174,208,209,210,211,292, - 293,294,295,229,494,853,38,2104,3264,1835, - 160,160,3394,45,45,2754,1180,3815,2320,2320, - 201,2360,2476,2707,206,215,4446,2320,5240,205, - 212,213,214,216,45,5240,342,229,999,331, - 491,493,5240,207,5240,342,603,5240,306,5240, - 208,209,210,211,292,293,294,295,206,215, - 4446,2378,160,205,212,213,214,216,2649,5240, - 2717,5240,5240,2984,2215,2356,3330,207,2320,45, - 603,3235,218,4229,208,209,210,211,292,293, - 294,295,2403,38,2418,2413,342,3710,34,872, - 31,35,30,32,1757,262,29,27,55,1768, - 110,80,81,88,1016,3688,3540,334,45,3087, - 5240,3735,4451,37,1056,38,2597,36,2920,3087, - 34,872,338,35,2403,38,866,36,672,3710, - 34,872,31,35,30,32,1757,262,29,27, - 55,1768,110,80,81,112,5240,2754,5240,5240, - 1070,38,801,384,2171,38,2104,277,5240,331, - 5240,519,853,38,801,384,45,2767,5240,331, - 3423,319,910,321,5240,2689,45,314,775,3823, - 2320,54,2001,38,866,36,3097,3496,34,872, - 338,35,1175,425,5240,4164,1599,5240,342,5240, - 1625,2403,38,866,36,4353,3710,34,872,31, - 35,30,32,1757,262,29,27,55,1768,110, - 80,81,112,2378,2782,592,38,801,384,5240, - 2655,853,38,801,384,2767,5240,5240,2972,319, - 910,321,2320,45,45,314,775,1266,1300,853, - 38,801,384,3286,5240,1180,274,5240,325,350, - 229,5240,424,2025,38,866,36,3664,1125,34, - 872,338,35,5240,409,2598,343,1557,1515,348, - 423,206,215,4446,5240,1718,205,212,213,214, - 216,3389,1486,38,801,384,1897,45,5240,5240, - 207,525,45,603,5240,488,999,208,209,210, - 211,292,293,294,295,3330,2767,5240,5240,342, - 319,910,321,54,3337,160,314,775,5240,5240, - 160,5240,5240,5240,1175,5240,1676,5240,52,77, - 350,3002,5240,5240,2378,2171,38,2104,3396,516, - 5240,1550,5240,1132,5240,3803,334,343,1557,1515, - 348,5240,2403,38,866,36,517,3710,34,872, - 31,35,30,32,1757,262,29,27,55,1768, - 110,80,81,89,2403,38,866,36,5240,3710, - 34,872,31,35,30,32,1757,262,29,27, - 55,1768,110,80,81,87,2403,38,866,36, - 5240,3710,34,872,31,35,30,32,1757,262, - 29,27,55,1768,110,80,81,86,2403,38, - 866,36,5240,3710,34,872,31,35,30,32, - 1757,262,29,27,55,1768,110,80,81,85, - 2403,38,866,36,5240,3710,34,872,31,35, - 30,32,1757,262,29,27,55,1768,110,80, - 81,84,2403,38,866,36,5240,3710,34,872, - 31,35,30,32,1757,262,29,27,55,1768, - 110,80,81,83,2403,38,866,36,5240,3710, - 34,872,31,35,30,32,1757,262,29,27, - 55,1768,110,80,81,82,2264,38,866,36, - 5240,3710,34,872,31,35,30,32,1757,262, - 29,27,55,1768,110,80,81,108,2403,38, - 866,36,5240,3710,34,872,31,35,30,32, - 1757,262,29,27,55,1768,110,80,81,114, - 2403,38,866,36,5240,3710,34,872,31,35, - 30,32,1757,262,29,27,55,1768,110,80, - 81,113,2403,38,866,36,5240,3710,34,872, - 31,35,30,32,1757,262,29,27,55,1768, - 110,80,81,111,1308,38,866,36,5240,3087, - 34,872,338,35,2403,38,866,36,5240,3710, - 34,872,31,35,30,32,1757,262,29,27, - 55,1768,110,80,81,109,1516,38,866,36, - 3674,5240,34,872,338,35,853,38,2104,3410, - 5240,5240,5240,2557,38,801,384,2767,2674,332, - 847,319,910,321,999,238,262,315,775,1752, - 38,866,36,2920,397,34,872,338,35,5240, - 2195,350,5240,5240,274,3087,5240,847,164,2767, - 5240,999,45,316,950,321,525,5240,345,1557, - 1515,348,5240,1680,38,866,36,2920,5240,34, - 872,338,35,232,342,164,5240,2075,38,390, - 160,5240,2767,5240,5240,1554,319,910,321,2320, - 5240,1844,314,775,5240,4240,5240,5240,5240,2378, - 5240,236,230,231,5240,5240,1760,3051,5240,5240, - 5240,5240,275,5240,5240,579,2767,5240,2193,5240, - 319,910,321,5240,5240,5240,314,775,5240,243, - 246,249,252,2692,5240,2043,38,2597,36,2920, - 720,34,872,338,35,2199,5240,5240,5240,579, - 2155,307,311,1342,38,866,36,5240,3087,34, - 872,338,35,5240,5240,5240,5240,1445,38,866, - 36,3219,3087,34,872,338,35,494,100,64, - 5240,5240,1432,525,5240,308,311,3436,2767,5240, - 5240,847,319,910,321,999,5240,5240,314,775, - 5240,3629,5240,5240,5240,45,2767,160,332,999, - 319,910,321,492,493,5240,317,775,166,164, - 2767,1625,332,1027,319,910,321,2320,3457,5240, - 315,775,5240,160,1680,38,866,36,2920,5240, - 34,872,338,35,3004,229,1528,38,866,36, - 2338,1180,34,872,338,35,5240,1104,5240,5240, - 5240,2320,3457,5240,5240,5240,1886,401,4196,5240, - 5240,5240,5240,5240,5240,766,38,801,384,229, - 5240,2432,5240,5240,5240,402,5240,2767,603,3293, - 5240,319,910,321,5240,410,2598,314,775,2767, - 1886,401,4196,316,950,321,54,1625,38,801, - 384,3330,1881,38,801,384,5240,1175,5240,402, - 3399,52,603,5240,5240,5240,5240,1552,1881,38, - 801,384,5240,5240,5240,847,1041,5240,54,999, - 5240,5240,5240,54,1881,38,801,384,5240,1175, - 5240,3804,334,52,1175,5240,3099,5240,52,54, - 45,1552,5240,164,999,324,5240,5240,2739,2320, - 1175,5240,5240,2425,52,54,1458,38,801,384, - 5240,403,405,5240,5240,5240,1175,3051,160,2909, - 52,5240,1440,38,801,384,5240,5240,45,3111, - 2155,5240,2320,5240,1289,3722,4457,54,1881,38, - 801,384,5240,5240,5240,403,406,5240,1175,5240, - 342,5240,2403,54,1881,38,801,384,5240,853, - 38,801,384,3305,1175,5240,5240,3222,2536,54, - 45,5240,5240,5240,525,2378,853,38,801,384, - 1175,5240,2672,3785,52,54,5240,358,5240,5240, - 54,5240,342,5240,5240,5240,1175,5240,160,3791, - 52,1175,2658,2217,2262,1114,5240,54,5240,1676, - 853,38,801,384,5240,3809,45,2378,1175,5240, - 525,45,2610,45,2158,525,45,525,45,5240, - 2320,45,2320,64,5240,2320,45,999,342,5240, - 2320,54,45,342,160,342,2320,5240,342,160, - 342,160,1175,342,5240,192,1599,5240,342,5240, - 192,160,192,4434,342,64,5240,64,4434,999, - 4434,999,166,2378,5240,2378,5240,45,2378,5240, - 2673,999,498,2378,45,496,5240,45,999,2378, - 2722,999,5240,160,847,160,524,5240,999,5240, - 5240,5240,5240,5240,166,160,166,5240,5240,5240, - 5240,5240,160,5240,5240,160,3259,5240,5240,5240, - 5240,5240,164,2509,5240,5240,3358,5240,5240,5240, - 5240,2822,5240,5240,5240,3092,2915,5240,2921,5240, - 5240,5240,5240,5240,5240,5240,5240,5240,5240,5240, - 5240,5240,5240,5240,5240,5240,5240,5240,5240,5240, - 5240,5240,5240,5240,5240,5240,5240,3456,5240,3818, - 5240,5240,5240,5240,5240,5240,5240,5240,5240,5240, - 5240,5240,5240,5240,5240,5240,5240,5240,5240,5240, - 5240,5240,3371,5240,0,490,3442,0,228,1, - 0,42,5258,0,42,5257,0,1,2893,0, - 1,616,0,1,2939,0,1,5258,2,0, - 1,5257,2,0,5474,241,0,5473,241,0, - 5577,241,0,5576,241,0,5501,241,0,5500, - 241,0,5499,241,0,5498,241,0,5497,241, - 0,5496,241,0,5495,241,0,5494,241,0, - 5513,241,0,5512,241,0,5511,241,0,5510, - 241,0,5509,241,0,5508,241,0,5507,241, - 0,5506,241,0,5505,241,0,5504,241,0, - 5503,241,0,42,241,5258,0,42,241,5257, - 0,5281,241,0,2773,383,0,53,5258,0, - 53,5257,0,42,1,5258,2,0,42,1, - 5257,2,0,5281,1,0,1,5569,0,1, - 2938,0,2773,33,0,443,2991,0,5258,53, - 0,5257,53,0,3038,318,0,42,5258,2, - 0,42,5257,2,0,1,433,0,447,1119, - 0,446,1244,0,228,220,0,5281,228,1, - 0,42,228,1,0,228,408,0,40,5258, - 0,40,5257,0,48,5279,0,48,40,0, - 1,1249,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,1,5503,0,42,1,5258,0, - 42,1,5257,0,771,1,0,1,2981,0, - 1,3184,0,228,219,0,5250,399,0,5249, - 399,0,228,407,0,30,508,0,41,5258, - 0,41,5257,0,2541,130,0,5248,1,0, - 5569,434,0,2938,434,0,5279,50,0,50, - 40,0,2773,44,0,2927,95,0,384,36, - 0,36,384,0,2773,33,383,0,383,33, - 0,33,383,0,42,616,0,228,1,3020, - 0,5250,228,0,5249,228,0,42,1,0, - 237,2371,0,2541,132,0,2541,131,0,3200, - 228,0,52,40,0,1,96,0,40,52, - 0,8,10,0,40,5258,2,0,40,5257, - 2,0,5258,39,0,5257,39,0,5569,99, - 0,2938,99,0,279,4391,0,189,3303,0 + 170,4,52,86,86,31,31,65,65,37, + 37,170,170,171,171,131,131,1,1,14, + 14,14,14,14,14,14,14,15,15,15, + 13,10,10,8,8,8,8,8,8,2, + 67,67,5,5,11,11,11,11,45,45, + 132,132,133,60,60,41,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,134,134,134,113, + 113,17,17,17,17,17,17,17,17,17, + 17,17,17,17,18,18,172,172,173,173, + 174,137,137,138,138,135,135,139,136,136, + 19,19,20,20,22,22,22,23,23,23, + 23,24,24,24,25,25,25,26,26,26, + 26,26,28,28,28,29,29,30,30,32, + 32,33,33,35,35,36,36,40,40,39, + 39,39,39,39,39,39,39,39,39,39, + 39,39,38,27,140,140,97,97,101,101, + 92,191,191,77,77,77,77,77,77,77, + 77,77,78,78,78,79,79,55,55,175, + 175,80,80,80,114,114,81,81,81,81, + 82,82,82,82,82,83,83,66,66,66, + 66,66,66,66,47,47,47,47,47,104, + 104,105,105,48,176,21,21,21,21,21, + 44,44,87,87,87,87,87,147,147,142, + 142,142,142,142,143,143,143,144,144,144, + 145,145,145,146,146,146,88,88,88,88, + 88,89,89,89,12,12,12,12,12,12, + 12,12,12,12,12,100,118,118,118,118, + 118,116,116,116,117,117,149,149,148,148, + 120,120,150,71,71,72,72,74,75,73, + 50,43,151,151,51,49,70,70,152,152, + 141,141,121,122,122,85,85,153,153,62, + 62,62,57,57,56,63,63,76,76,54, + 54,54,90,90,99,98,98,59,59,58, + 58,53,53,46,102,102,102,93,93,93, + 94,95,95,95,96,96,106,106,106,108, + 108,107,107,192,192,91,91,178,178,178, + 178,178,124,42,42,155,177,177,125,125, + 125,125,179,179,34,34,115,126,126,126, + 126,109,109,119,119,119,157,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,103,103,103, + 185,185,9,186,186,187,162,154,154,163, + 163,164,165,165,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,61, + 64,64,168,168,127,127,128,128,128,128, + 128,128,3,169,169,166,166,129,129,129, + 68,69,84,156,156,112,112,188,188,188, + 130,130,123,123,189,189,969,39,2999,2970, + 956,4453,34,858,31,35,30,32,2947,29, + 27,56,1893,112,82,83,114,1763,1909,2009, + 1991,2082,2042,1836,2157,2089,2220,1690,2173,2278, + 275,2323,149,425,323,164,150,598,1380,1339, + 38,1095,39,804,36,3000,3136,34,858,339, + 35,2519,39,804,36,234,3443,34,858,31, + 35,30,32,1798,29,27,56,1893,112,82, + 83,114,1181,1909,2009,1991,2082,2042,375,2157, + 2089,3213,299,237,232,233,2089,39,1204,1452, + 117,4293,1025,2478,997,3236,276,320,952,322, + 1508,1072,1069,315,564,234,598,39,1705,1698, + 325,244,247,250,253,616,598,39,1339,278, + 55,1437,662,1908,39,391,1066,1080,598,39, + 283,636,1491,246,232,233,2701,1074,2427,576, + 2306,2757,2979,4091,1590,39,804,36,2358,3443, + 34,858,31,35,1815,32,1798,29,27,56, + 1893,112,82,83,114,343,1909,2009,1991,2082, + 2042,71,2157,2089,2220,557,2173,2278,373,2323, + 149,553,1212,507,150,1463,39,804,36,437, + 2280,34,858,1784,35,1411,2724,508,1590,39, + 804,36,2358,3443,34,858,31,35,1815,32, + 1798,29,27,56,1893,112,82,83,114,343, + 1909,2009,1991,2082,2042,1174,2157,2089,2220,3089, + 2173,2278,2777,2323,149,329,335,507,150,1539, + 39,2675,47,1910,2280,46,858,2519,39,804, + 36,508,3443,34,858,31,35,30,32,1798, + 29,27,56,1893,112,82,83,114,1599,1909, + 2009,1991,3095,503,1618,1584,1868,39,804,36, + 2358,3443,34,858,31,35,1815,32,1798,29, + 27,56,1893,112,82,83,114,343,1909,2009, + 1991,2082,2042,2132,2157,2089,2220,2723,2173,2278, + 1692,2323,149,2407,763,507,150,1463,39,804, + 36,763,2280,34,858,340,35,503,1695,508, + 1657,39,804,36,64,3443,34,858,31,35, + 30,32,1798,29,27,56,1893,112,82,83, + 114,513,1909,2009,1991,2082,2042,1570,2157,2089, + 2220,3391,2173,2278,2524,2323,149,2407,188,378, + 150,223,598,1651,1729,39,804,36,430,3443, + 34,858,31,35,30,32,1798,29,27,56, + 1893,112,82,83,114,381,1909,2009,1991,2082, + 2042,1829,2157,2089,2220,504,2173,2278,1928,2323, + 149,2001,433,378,150,1123,39,281,1992,39, + 804,36,1101,3443,34,858,31,35,30,32, + 1798,29,27,56,1893,112,82,83,114,379, + 1909,2009,1991,2082,2042,314,2157,2089,2220,1121, + 2173,2278,3494,2323,149,382,1364,378,150,3494, + 2743,2169,39,804,36,1632,3443,34,858,31, + 35,30,32,1798,29,27,56,1893,112,82, + 83,114,1252,1909,2009,1991,2082,2042,1156,2157, + 2089,2220,287,2173,2278,1484,2323,149,326,383, + 164,150,598,39,3423,2169,39,804,36,1610, + 3443,34,858,31,35,30,32,1798,29,27, + 56,1893,112,82,83,114,1207,1909,2009,1991, + 2082,2042,1975,2157,2089,2220,1484,2173,2278,1697, + 2323,149,1740,376,372,150,2169,39,804,36, + 205,3443,34,858,31,35,30,32,1798,29, + 27,56,1893,112,82,83,114,323,1909,2009, + 1991,2082,2042,76,2157,2089,2220,991,2173,2278, + 1514,2323,149,4413,1032,372,150,1085,39,804, + 36,2557,4466,34,858,31,35,63,32,4097, + 1825,2701,2169,39,804,36,385,3443,34,858, + 31,35,30,32,1798,29,27,56,1893,112, + 82,83,114,2312,1909,2009,1991,2082,2042,371, + 2157,2089,2220,1484,2173,2278,1378,2323,149,1910, + 2793,372,150,1935,39,804,36,847,3443,34, + 858,31,35,30,32,1798,29,27,56,1893, + 112,82,83,114,487,1909,2009,1991,2082,2042, + 370,2157,2089,2220,1284,2173,2278,64,2453,170, + 1801,39,804,36,1779,3443,34,858,31,35, + 30,32,1798,29,27,56,1893,112,82,83, + 114,1514,1909,2009,1991,2082,2042,76,2157,2089, + 2220,2362,2173,2278,305,2323,149,2435,513,148, + 150,67,598,39,1339,282,368,94,2435,328, + 108,2169,39,804,36,1790,3443,34,858,31, + 35,30,32,1798,29,27,56,1893,112,82, + 83,114,1763,1909,2009,1991,2082,2042,1502,2157, + 2089,2220,1757,2173,2278,1240,2323,149,2378,2435, + 161,150,2169,39,804,36,385,3443,34,858, + 31,35,30,32,1798,29,27,56,1893,112, + 82,83,114,1001,1909,2009,1991,2082,2042,76, + 2157,2089,2220,4319,2173,2278,413,2323,149,1866, + 99,160,150,2169,39,804,36,386,3443,34, + 858,31,35,30,32,1798,29,27,56,1893, + 112,82,83,114,2557,1909,2009,1991,2082,2042, + 324,2157,2089,2220,488,2173,2278,522,2323,149, + 1202,355,159,150,2169,39,804,36,522,3443, + 34,858,31,35,30,32,1798,29,27,56, + 1893,112,82,83,114,1763,1909,2009,1991,2082, + 2042,76,2157,2089,2220,1987,2173,2278,513,2323, + 149,411,354,158,150,2169,39,804,36,522, + 3443,34,858,31,35,30,32,1798,29,27, + 56,1893,112,82,83,114,1763,1909,2009,1991, + 2082,2042,293,2157,2089,2220,2291,2173,2278,76, + 2323,149,2509,2627,157,150,2169,39,804,36, + 284,3443,34,858,31,35,30,32,1798,29, + 27,56,1893,112,82,83,114,1763,1909,2009, + 1991,2082,2042,76,2157,2089,2220,674,2173,2278, + 95,2323,149,108,1763,156,150,2169,39,804, + 36,306,3443,34,858,31,35,30,32,1798, + 29,27,56,1893,112,82,83,114,1763,1909, + 2009,1991,2082,2042,76,2157,2089,2220,3316,2173, + 2278,76,2323,149,499,667,155,150,2169,39, + 804,36,298,3443,34,858,31,35,30,32, + 1798,29,27,56,1893,112,82,83,114,297, + 1909,2009,1991,2082,2042,76,2157,2089,2220,728, + 2173,2278,76,2323,149,240,2742,154,150,2169, + 39,804,36,285,3443,34,858,31,35,30, + 32,1798,29,27,56,1893,112,82,83,114, + 2128,1909,2009,1991,2082,2042,76,2157,2089,2220, + 2981,2173,2278,76,2323,149,1906,2421,153,150, + 2169,39,804,36,645,3443,34,858,31,35, + 30,32,1798,29,27,56,1893,112,82,83, + 114,1911,1909,2009,1991,2082,2042,76,2157,2089, + 2220,2506,2173,2278,76,2323,149,1478,2565,152, + 150,2169,39,804,36,380,3443,34,858,31, + 35,30,32,1798,29,27,56,1893,112,82, + 83,114,1985,1909,2009,1991,2082,2042,76,2157, + 2089,2220,2645,2173,2278,1901,2323,149,689,2843, + 151,150,2169,39,804,36,2027,3443,34,858, + 31,35,30,32,1798,29,27,56,1893,112, + 82,83,114,2042,1909,2009,1991,2082,2042,76, + 2157,2089,2220,2817,2173,2278,1502,2323,149,2108, + 64,165,150,2169,39,804,36,473,3443,34, + 858,31,35,30,32,1798,29,27,56,1893, + 112,82,83,114,2228,1909,2009,1991,2082,2042, + 1502,2157,2089,2220,64,2173,2278,304,2323,149, + 1502,152,146,150,2400,39,804,36,1761,3443, + 34,858,31,35,30,32,1798,29,27,56, + 1893,112,82,83,114,1622,1909,2009,1991,2082, + 2042,301,2157,2089,2220,1484,2173,2278,399,2323, + 149,1484,450,195,150,2519,39,804,36,1514, + 3443,34,858,31,35,30,32,1798,29,27, + 56,1893,112,82,83,114,377,1909,2009,1991, + 2082,2042,2126,2157,2089,2220,449,2173,2278,514, + 2453,170,2519,39,804,36,327,3443,34,858, + 31,35,30,32,1798,29,27,56,1893,112, + 82,83,114,2030,1909,2009,1991,2082,2042,76, + 2157,2089,2220,860,2173,2278,2448,2453,170,1703, + 117,1231,39,804,36,4115,4466,34,858,31, + 35,62,32,2519,39,804,36,291,3443,34, + 858,31,35,30,32,1798,29,27,56,1893, + 112,82,83,114,64,1909,2009,1991,2082,2042, + 76,2157,2089,2220,3350,2173,2278,1833,2453,170, + 2519,39,804,36,415,3443,34,858,31,35, + 30,32,1798,29,27,56,1893,112,82,83, + 114,300,1909,2009,1991,2082,2042,1759,2157,2089, + 2220,1179,2173,2278,397,2453,170,1562,39,804, + 36,1484,4540,34,858,31,35,30,32,1239, + 501,2519,39,804,36,3402,3443,34,858,31, + 35,30,32,1798,29,27,56,1893,112,82, + 83,114,4039,1909,2009,1991,2082,2042,1484,2157, + 2089,2220,2229,2173,2278,66,2453,170,2575,39, + 804,36,414,3443,34,858,31,35,30,32, + 1798,29,27,56,1893,112,82,83,114,28, + 1909,2009,1991,2082,2042,76,2157,2089,2220,1136, + 2173,2278,70,2453,170,1262,39,804,36,1497, + 4540,34,858,31,35,65,32,387,419,2519, + 39,804,36,417,3443,34,858,31,35,30, + 32,1798,29,27,56,1893,112,82,83,114, + 675,1909,2009,1991,2082,2042,76,2157,2089,2220, + 4043,2173,3258,598,39,292,2519,39,804,36, + 3010,3443,34,858,31,35,30,32,1798,29, + 27,56,1893,112,82,83,114,1628,1909,2009, + 1991,2082,2042,76,2157,2089,2220,991,3231,2519, + 39,804,36,768,3443,34,858,31,35,30, + 32,1798,29,27,56,1893,112,82,83,114, + 2952,1909,2009,1991,2082,2042,352,2157,3215,2519, + 39,804,36,1575,3443,34,858,31,35,30, + 32,1798,29,27,56,1893,112,82,83,114, + 235,1909,2009,1991,2082,2042,1439,3186,598,2826, + 2358,1262,39,804,36,64,4540,34,858,31, + 35,64,32,2519,39,804,36,231,3443,34, + 858,31,35,30,32,1798,29,27,56,1893, + 112,82,83,114,1502,1909,2009,3156,208,217, + 4308,2227,185,207,214,215,216,218,1375,353, + 2920,1647,1214,1750,3126,76,4370,209,117,3226, + 602,1759,15,2751,210,211,212,213,293,294, + 295,296,2519,39,804,36,3168,3443,34,858, + 31,35,30,32,1798,29,27,56,1893,112, + 82,83,114,1247,1909,2009,1991,2082,3207,2519, + 39,804,36,1484,3443,34,858,31,35,30, + 32,1798,29,27,56,1893,112,82,83,114, + 4060,1909,2009,1991,2082,3208,351,13,2631,39, + 712,385,2814,3151,350,234,2358,598,39,292, + 239,64,117,344,2203,2120,349,4375,1463,39, + 804,36,342,231,34,858,2820,35,598,39, + 712,385,275,249,232,233,530,2811,247,39, + 443,388,419,4392,208,217,4308,1483,201,207, + 214,215,216,218,2025,2062,2025,234,991,117, + 991,2844,275,209,4239,2358,602,2750,219,1965, + 210,211,212,213,293,294,295,296,446,241, + 76,166,231,166,4155,237,232,233,1463,39, + 804,36,1484,1275,34,858,44,35,276,598, + 39,1339,280,208,217,4308,3432,547,207,214, + 215,216,218,244,247,250,253,616,598,39, + 712,385,209,75,662,602,234,219,277,210, + 211,212,213,293,294,295,296,1123,39,279, + 2427,576,2306,2757,2979,4091,2935,598,3410,561, + 2358,2521,55,2768,242,232,233,1944,76,1080, + 1484,1484,844,1110,2246,3432,1446,231,2463,39, + 804,36,1237,3443,34,858,31,35,30,32, + 1798,29,27,56,1893,92,82,83,208,217, + 4308,74,59,207,214,215,216,218,1908,39, + 391,436,2415,2429,2459,2996,1185,209,29,2358, + 602,2933,219,4405,210,211,212,213,293,294, + 295,296,2519,39,804,36,231,3443,34,858, + 31,35,30,32,1798,29,27,56,1893,112, + 82,83,114,2180,1909,2009,3166,208,217,4308, + 3432,1487,207,214,215,216,218,335,39,443, + 333,514,4392,2603,1900,117,209,1403,1651,602, + 4471,219,2603,210,211,212,213,293,294,295, + 296,2519,39,804,36,1759,3443,34,858,31, + 35,30,32,1798,29,27,56,1893,112,82, + 83,114,2268,1909,2009,1991,3122,2797,2181,3432, + 1504,2519,39,804,36,2272,3443,34,858,31, + 35,30,32,1798,29,27,56,1893,112,82, + 83,114,1318,1909,2009,1991,3130,2519,39,804, + 36,2215,3443,34,858,31,35,30,32,1798, + 29,27,56,1893,112,82,83,114,1484,1909, + 2009,1991,3141,177,1074,2022,1502,526,422,39, + 712,385,1365,39,804,36,76,2933,34,858, + 339,35,1646,117,231,77,2358,286,4488,93, + 162,598,39,712,385,390,419,3187,1836,117, + 186,2235,275,2899,4535,206,217,4308,1484,2283, + 205,214,215,216,218,1405,1667,2303,175,1484, + 440,2415,2429,2724,2478,55,333,1,320,952, + 322,526,1080,1573,318,564,2497,2306,2933,58, + 189,173,174,176,177,178,179,180,231,1484, + 441,1515,57,375,162,2358,234,1403,1651,64, + 64,1836,334,335,186,2235,64,1158,3437,206, + 217,4308,231,359,205,214,215,216,218,2307, + 3065,78,175,1759,252,232,233,3259,1831,2532, + 2603,2308,187,208,217,4308,200,401,207,214, + 215,216,218,204,190,173,174,176,177,178, + 179,180,209,2049,76,602,2874,15,1306,210, + 211,212,213,293,294,295,296,1248,39,804, + 36,3000,2933,34,858,339,35,2369,2787,1114, + 39,804,36,3155,950,34,858,339,35,2519, + 39,804,36,2075,3443,34,858,31,35,30, + 32,1798,29,27,56,1893,112,82,83,114, + 100,1909,3015,598,39,712,385,286,2375,2478, + 2448,332,14,320,952,322,2383,2120,1502,315, + 564,2478,1484,389,419,320,952,322,1484,2025, + 2127,315,564,991,991,1528,1667,55,1346,265, + 2236,2448,798,526,1080,351,76,2732,1585,3212, + 526,1196,1836,96,2769,2358,166,162,1836,3293, + 231,1769,344,2203,2120,349,162,343,168,2064, + 1573,2725,2899,162,64,2933,186,2235,308,312, + 1502,206,217,4308,2038,1270,205,214,215,216, + 218,2682,2280,76,175,2358,2933,1247,864,2001, + 598,39,712,385,103,3030,353,516,234,1323, + 526,202,2899,515,64,1835,3408,173,174,176, + 177,178,179,180,332,441,2779,231,3030,526, + 1877,3070,2129,162,55,76,255,232,233,4520, + 64,52,495,186,2235,332,231,365,206,217, + 4308,4555,162,205,214,215,216,218,2209,1573, + 4229,175,186,2235,2933,515,104,206,217,4308, + 48,1634,205,214,215,216,218,4601,492,494, + 175,3485,359,182,173,174,176,177,178,179, + 180,529,691,50,1634,526,1573,2809,2532,2603, + 944,2933,193,173,174,176,177,178,179,180, + 617,1075,231,332,526,2083,39,279,162,2624, + 1484,510,39,712,385,1573,2256,64,186,2235, + 2933,231,1484,206,217,4308,2263,162,205,214, + 215,216,218,1908,39,391,175,186,2235,2566, + 332,3343,206,217,4308,55,2204,205,214,215, + 216,218,1080,3055,4609,175,1295,1032,3556,173, + 174,176,177,178,179,180,705,2411,2607,332, + 526,2388,4651,1668,64,2024,3485,196,173,174, + 176,177,178,179,180,793,1197,231,76,526, + 2358,1223,4081,162,1484,1484,686,39,712,385, + 1484,64,2384,186,2235,3774,231,2899,206,217, + 4308,224,162,205,214,215,216,218,2273,1486, + 2387,175,186,2235,2933,3121,3140,206,217,4308, + 55,73,205,214,215,216,218,1080,197,2434, + 175,53,3557,192,173,174,176,177,178,179, + 180,881,2264,76,1484,526,2133,4606,598,39, + 712,385,199,173,174,176,177,178,179,180, + 2127,2310,231,3259,526,2801,1690,495,162,2358, + 1484,598,39,712,385,72,2409,2430,186,2235, + 1484,3228,442,206,217,4308,231,162,205,214, + 215,216,218,76,2457,2458,175,851,168,1484, + 1074,71,2472,492,494,423,3026,208,217,4308, + 2358,70,207,214,215,216,218,2493,198,173, + 174,176,177,178,179,180,209,231,2103,602, + 2982,510,3607,210,211,212,213,293,294,295, + 296,3086,1471,2495,3418,2358,102,4397,208,217, + 4308,89,2441,207,214,215,216,218,2038,2724, + 2491,3044,231,598,39,712,385,209,2226,1484, + 602,2528,511,2549,210,211,212,213,293,294, + 295,296,2905,208,217,4308,2358,909,207,214, + 215,216,218,1027,39,712,385,55,331,335, + 2988,1471,209,231,1080,602,4397,307,1231,210, + 211,212,213,293,294,295,296,76,2682,2551, + 2758,1258,2358,2933,208,217,4308,55,437,207, + 214,215,216,218,1080,2835,2960,76,1839,2899, + 2933,1299,2381,209,2501,2568,602,2530,220,1499, + 210,211,212,213,293,294,295,296,1214,39, + 2827,36,3000,2933,34,858,339,35,2519,39, + 804,36,332,3443,34,858,31,35,30,32, + 1798,29,27,56,1893,112,82,83,114,333, + 1909,3045,2547,1785,39,804,36,3468,2584,34, + 858,339,35,422,2568,2610,1601,2586,3774,359, + 2478,351,332,1484,320,952,322,5143,5143,2025, + 315,564,5143,991,2809,2532,2603,5143,346,2203, + 2120,349,3116,1925,1325,5143,2358,2358,3021,598, + 39,712,385,1153,61,2478,166,5143,2732,320, + 952,322,5143,231,2899,315,564,2717,39,804, + 36,3155,421,34,858,339,35,5143,1484,351, + 5143,5143,5143,426,208,217,4308,5143,1066,207, + 214,215,216,218,5143,2668,344,2203,2120,349, + 1484,1484,1484,209,2026,2333,602,5143,489,60, + 210,211,212,213,293,294,295,296,856,2478, + 351,5143,991,320,952,322,3563,410,2839,315, + 564,3241,107,3225,360,520,5143,344,2203,2120, + 349,5143,5143,351,5143,162,2333,5143,5143,1957, + 5143,5143,517,5143,5143,203,3004,5143,5143,5143, + 344,2203,2120,349,5143,2519,39,804,36,518, + 3443,34,858,31,35,30,32,1798,29,27, + 56,1893,112,82,83,114,5143,3060,2519,39, + 804,36,5143,3443,34,858,31,35,30,32, + 1798,29,27,56,1893,112,82,83,114,5143, + 3062,2519,39,804,36,5143,3443,34,858,31, + 35,30,32,1798,29,27,56,1893,112,82, + 83,114,5143,3088,1333,39,804,36,1484,2933, + 34,858,339,35,2519,39,804,36,5143,3443, + 34,858,31,35,30,32,1798,29,27,56, + 1893,112,82,83,91,2519,1380,804,2692,3291, + 3443,34,858,31,35,30,32,1798,29,27, + 56,1893,112,82,83,90,2478,5143,333,5143, + 320,952,322,5143,5143,5143,316,564,5143,5143, + 5143,598,39,712,385,5143,2519,39,804,36, + 351,3443,34,858,31,35,30,32,1798,29, + 27,56,1893,112,82,83,89,346,2203,2120, + 349,2519,39,804,36,425,3443,34,858,31, + 35,30,32,1798,29,27,56,1893,112,82, + 83,88,2519,39,804,36,5143,3443,34,858, + 31,35,30,32,1798,29,27,56,1893,112, + 82,83,87,2519,39,804,36,5143,3443,34, + 858,31,35,30,32,1798,29,27,56,1893, + 112,82,83,86,2519,39,804,36,5143,3443, + 34,858,31,35,30,32,1798,29,27,56, + 1893,112,82,83,85,2519,39,804,36,5143, + 3443,34,858,31,35,30,32,1798,29,27, + 56,1893,112,82,83,84,2341,39,804,36, + 5143,3443,34,858,31,35,30,32,1798,29, + 27,56,1893,112,82,83,110,2519,39,804, + 36,5143,3443,34,858,31,35,30,32,1798, + 29,27,56,1893,112,82,83,116,2519,39, + 804,36,5143,3443,34,858,31,35,30,32, + 1798,29,27,56,1893,112,82,83,115,2519, + 39,804,36,1074,3443,34,858,31,35,30, + 32,1798,29,27,56,1893,112,82,83,113, + 2519,39,804,36,5143,3443,34,858,31,35, + 30,32,1798,29,27,56,1893,112,82,83, + 111,1713,39,804,36,3000,5143,34,858,339, + 35,2693,39,712,385,5143,3151,598,39,1339, + 3421,5143,2724,240,5143,1095,39,804,36,3000, + 5143,34,858,339,35,774,39,712,385,76, + 5143,5143,5143,2358,5143,275,2210,39,1339,278, + 5143,76,1196,2478,5143,526,2358,320,952,322, + 343,3023,335,315,564,5143,5143,76,5143,55, + 234,991,343,2899,5143,1646,1080,2478,162,2358, + 53,320,952,322,5143,2280,798,315,564,2520, + 5143,5143,2851,5143,162,715,2899,2280,238,232, + 233,5143,5143,5143,2452,2726,598,3497,1339,80, + 798,276,1857,39,2827,36,3000,5143,34,858, + 339,35,308,312,5143,5143,245,248,251,254, + 616,5143,1095,39,804,36,3000,662,34,858, + 339,35,3214,495,2025,5143,309,312,991,1394, + 39,804,36,1323,2933,34,858,339,35,598, + 39,712,385,5143,2478,5143,359,5143,320,952, + 322,166,76,5143,315,564,991,5143,5143,493, + 494,2958,2532,2603,2478,5143,5143,76,320,952, + 322,2358,5143,55,315,564,5143,1153,5143,162, + 1080,2478,5143,333,1062,320,952,322,343,5143, + 3242,316,564,862,39,712,385,3542,1278,39, + 804,36,3508,5143,34,858,339,35,1062,39, + 804,36,2887,2280,34,858,339,35,5143,1038, + 2897,3618,5143,2358,3413,1127,5143,55,2126,2358, + 3413,5143,2358,5143,1080,398,5143,5143,53,5143, + 231,2210,39,1339,3499,5143,231,5143,5143,343, + 2478,411,2839,945,317,881,322,5143,5143,521, + 2478,1791,402,4298,317,881,322,1791,402,4298, + 510,39,712,385,2280,1432,39,712,385,5143, + 403,524,5143,602,5143,5143,403,76,5143,602, + 5143,991,1794,39,712,385,5143,1794,39,712, + 385,5143,5143,5143,55,1794,39,712,385,55, + 5143,1080,5143,2262,162,53,1080,2358,5143,5143, + 53,5143,1626,5143,5143,3240,55,5143,1626,5143, + 658,55,5143,1080,343,2367,5143,53,1080,55, + 5143,5143,53,5143,5143,5143,1080,5143,5143,5143, + 53,701,3298,1623,39,712,385,3321,2055,1166, + 5143,701,2358,5143,5143,3589,774,39,712,385, + 5143,1794,39,712,385,5143,404,406,5143,343, + 5143,76,404,407,5143,526,5143,55,1794,39, + 712,385,5143,2255,1080,5143,5143,2358,2873,1282, + 55,4325,343,5143,755,55,5143,1080,162,5143, + 5143,2904,1080,2388,343,5143,53,3644,5143,2038, + 1074,5143,55,5143,76,5143,2728,2280,526,1080, + 5143,3841,5143,53,2718,598,39,712,385,3378, + 598,39,712,385,5143,343,76,5143,4563,5143, + 526,162,5143,5143,76,2127,76,76,2358,991, + 526,2358,194,598,39,712,385,343,76,55, + 4212,5143,2358,162,55,343,1080,343,343,2724, + 3145,1080,162,162,194,1839,2518,76,5143,343, + 5143,2358,4212,168,194,76,5143,424,5143,2358, + 2280,2127,4212,2280,5143,991,1074,2938,343,2127, + 2946,76,5143,991,2280,2358,343,5143,3467,335, + 5143,499,5143,76,5143,446,5143,991,162,5143, + 5143,76,343,2280,5143,991,162,5143,3162,168, + 497,2280,5143,5143,432,76,5143,168,3150,991, + 162,598,39,1339,3555,76,3157,2280,162,991, + 3234,3294,76,2025,525,2724,991,991,5143,3320, + 3235,5143,162,5143,5143,5143,5143,5143,5143,5143, + 5143,3419,162,3330,5143,5143,5143,5143,5143,162, + 166,5143,5143,2948,5143,5143,5143,5143,5143,5143, + 3640,5143,3642,5143,3487,335,5143,5143,5143,5143, + 3778,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,5143,5143, + 5143,5143,5143,5143,5143,5143,5143,5143,5143,5143, + 5143,5143,5143,5143,5143,5143,5143,5143,5143,5143, + 3641,5143,0,491,3315,0,230,1,0,43, + 5161,0,43,5160,0,1,571,0,1,567, + 0,1,4458,0,1,5161,2,0,1,5160, + 2,0,5379,243,0,5378,243,0,5481,243, + 0,5480,243,0,5406,243,0,5405,243,0, + 5404,243,0,5403,243,0,5402,243,0,5401, + 243,0,5400,243,0,5399,243,0,5417,243, + 0,5416,243,0,5415,243,0,5414,243,0, + 5413,243,0,5412,243,0,5411,243,0,5410, + 243,0,5409,243,0,5408,243,0,5407,243, + 0,43,243,5161,0,43,243,5160,0,5185, + 243,0,1493,384,0,54,5161,0,54,5160, + 0,43,1,5161,2,0,43,1,5160,2, + 0,5185,1,0,1,5473,0,1,1541,0, + 1493,33,0,444,1575,0,5161,54,0,5160, + 54,0,1582,319,0,43,5161,2,0,43, + 5160,2,0,39,37,0,1,434,0,448, + 1746,0,447,1780,0,230,222,0,5185,230, + 1,0,43,230,1,0,230,409,0,41, + 5161,0,41,5160,0,49,5183,0,49,41, + 0,1,2419,0,1,5417,0,1,5416,0, + 1,5415,0,1,5414,0,1,5413,0,1, + 5412,0,1,5411,0,1,5410,0,1,5409, + 0,1,5408,0,1,5407,0,43,1,5161, + 0,43,1,5160,0,769,1,0,1,653, + 0,1,2558,0,230,221,0,5153,400,0, + 5152,400,0,230,408,0,30,509,0,42, + 5161,0,42,5160,0,2671,132,0,5151,1, + 0,5473,435,0,1541,435,0,5183,51,0, + 51,41,0,1493,45,0,2163,97,0,36, + 38,0,43,567,0,230,1,3279,0,5153, + 230,0,5152,230,0,43,1,0,239,2414, + 0,385,36,0,36,385,0,384,33,0, + 33,384,0,2671,134,0,2671,133,0,3401, + 230,0,53,41,0,1,98,0,41,53, + 0,8,10,0,41,5161,2,0,41,5160, + 2,0,5161,40,0,5160,40,0,5473,101, + 0,1541,101,0,39,79,0,280,3569,0, + 191,3206,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1069,308 +1050,332 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,0,29, - 30,31,32,33,34,35,36,37,38,39, - 40,41,42,43,0,45,46,47,48,49, - 50,51,52,53,54,55,56,57,58,59, - 60,61,0,0,64,65,66,67,68,0, - 8,71,9,73,11,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,37,38,39,40,41,42, - 43,62,45,46,47,48,49,50,51,52, - 53,54,55,56,57,58,59,60,61,121, - 87,64,65,66,67,68,0,0,71,3, - 73,4,75,76,77,78,79,80,81,82, - 83,84,85,86,0,1,2,3,4,5, - 6,7,8,9,10,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,0,29,30,31,32,33,34,35, - 36,37,38,39,40,41,42,43,62,45, - 46,47,48,49,50,51,52,53,54,55, - 56,57,58,59,60,61,0,0,64,65, - 66,67,68,6,0,1,2,73,4,75, - 76,77,78,79,80,81,82,83,84,85, - 86,0,1,2,3,4,5,6,7,8, - 9,10,11,12,13,14,15,16,17,18, - 19,20,21,22,23,24,25,26,27,0, - 29,30,31,32,33,34,35,36,37,38, - 39,40,41,42,43,69,45,46,47,48, - 49,50,51,52,53,54,55,56,57,58, - 59,60,61,0,0,64,65,66,67,68, - 0,0,9,9,73,0,75,76,77,78, - 79,80,81,82,83,84,85,86,0,1, + 30,31,4,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,30,59, + 60,61,62,0,64,65,66,67,68,0, + 0,71,9,73,11,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,31, - 32,33,34,35,36,37,38,39,40,41, - 42,43,62,45,46,47,48,49,50,51, - 52,53,54,55,56,57,58,59,60,61, - 87,87,64,65,66,67,68,0,95,88, - 89,73,0,75,76,77,78,79,80,81, - 82,83,84,85,86,0,1,2,3,4, - 5,6,7,8,9,10,11,12,13,14, - 15,16,17,18,19,20,21,22,23,24, - 25,26,27,0,29,30,31,32,33,34, - 35,36,37,38,39,40,41,42,43,62, - 45,46,47,48,49,50,51,52,53,54, - 55,56,57,58,59,60,61,75,122,64, - 65,66,67,68,0,0,1,2,73,4, - 75,76,77,78,79,80,81,82,83,84, - 85,86,0,1,2,3,4,5,6,7, - 8,9,10,11,12,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 0,29,30,31,32,33,34,35,36,37, - 38,39,40,41,42,43,0,45,46,47, - 48,49,50,51,52,53,54,55,56,57, - 58,59,60,61,0,0,64,65,66,67, - 68,0,1,2,28,73,5,75,76,77, - 78,79,80,81,82,83,84,85,86,0, - 1,2,3,4,5,6,7,8,9,10, - 11,12,13,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,0,29,30, - 31,32,33,34,35,36,37,38,39,40, - 41,42,43,69,45,46,47,48,49,50, - 51,52,53,54,55,56,57,58,59,60, - 61,0,0,64,65,66,67,68,0,0, - 9,9,73,11,75,76,77,78,79,80, - 81,82,83,84,85,86,0,1,2,3, + 4,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,76,59,60,61, + 62,0,64,65,66,67,68,88,89,71, + 9,73,11,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,31,32,33, + 24,25,26,27,0,29,30,31,4,33, 34,35,36,37,38,39,40,41,42,43, - 69,45,46,47,48,49,50,51,52,53, - 54,55,56,57,58,59,60,61,87,0, - 64,65,66,67,68,0,1,2,9,73, - 11,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, - 37,38,39,40,41,42,43,0,45,46, - 47,48,49,50,51,52,53,54,55,56, - 57,58,59,60,61,0,0,64,65,66, - 67,68,0,1,2,9,73,0,75,76, - 77,78,79,80,81,82,83,84,85,86, + 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,6,0,1,2,73, + 4,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,31,4,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,99,0,1,2,73,4,0, + 76,77,78,79,80,81,82,83,84,85, + 86,87,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 58,29,30,31,0,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,0,73,5,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,58,29, + 30,31,0,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,119,64,65,66,67,68,0, + 1,2,0,73,0,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,58,29,30,31, + 0,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,119,64,65,66,67,68,0,1,2, + 0,73,88,89,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,31,4,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,119, + 64,65,66,67,68,0,1,2,0,73, + 0,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,58,29,30,31,0,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,0,73,88,89, + 76,77,78,79,80,81,82,83,84,85, + 86,87,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 58,29,30,31,0,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,9,73,11,100,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,31,32,33,34,35,36,37,38,39, - 40,41,42,43,69,45,46,47,48,49, - 50,51,52,53,54,55,56,57,58,59, - 60,61,0,87,64,65,66,67,68,0, - 0,1,2,73,4,75,76,77,78,79, - 80,81,82,83,84,85,86,0,1,2, - 3,4,5,6,7,8,0,10,28,12, + 30,31,4,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,0,73,5,0,76,77,78,79, + 80,81,82,83,84,85,86,87,0,1, + 2,3,4,5,6,7,8,28,10,0, + 12,13,14,15,16,17,18,19,20,21, + 22,23,24,25,26,27,0,29,30,31, + 0,33,34,35,36,37,38,39,40,41, + 42,43,44,45,46,47,48,49,50,51, + 52,53,54,55,0,29,0,1,2,61, + 62,88,89,65,10,67,68,0,1,2, + 3,4,5,6,7,8,9,10,11,12, 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,0,29,30,31,32, - 33,34,35,36,37,38,39,40,41,42, - 43,69,45,46,0,48,49,50,51,52, - 53,72,55,56,57,0,0,60,61,4, - 4,6,65,8,67,68,0,1,2,3, + 23,0,1,2,3,28,5,30,7,69, + 33,34,35,0,0,38,121,40,41,42, + 43,57,0,46,0,1,2,50,4,5, + 64,7,66,56,0,1,2,3,61,5, + 0,7,65,3,67,68,33,34,71,72, + 73,74,28,0,1,2,3,4,5,6, + 7,8,0,1,2,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,0,28,0,1,2,3,4, - 5,6,7,8,0,0,40,3,3,0, - 1,2,46,47,48,49,50,51,52,53, - 95,55,56,57,0,0,60,3,0,1, - 2,65,4,67,68,0,0,71,72,73, - 74,97,98,0,1,2,3,4,5,6, - 7,8,9,10,11,12,13,14,15,16, - 17,18,19,20,21,22,23,72,0,0, - 0,28,3,64,70,66,0,9,9,11, - 114,115,116,40,0,1,2,59,95,46, - 47,48,49,50,51,52,53,0,55,56, - 57,0,0,60,69,0,1,2,65,0, - 67,68,28,0,71,72,73,74,0,0, - 0,3,9,0,6,28,8,9,0,11, - 0,62,63,28,4,15,100,69,69,114, - 115,116,24,25,26,27,0,0,1,2, - 3,4,5,6,7,8,87,114,115,116, - 40,15,44,0,63,46,46,48,48,49, - 50,51,52,53,44,55,56,57,102,70, - 62,63,69,0,71,62,40,69,70,71, - 72,63,46,117,48,49,50,51,52,53, - 0,55,56,57,4,87,88,89,90,91, - 92,93,94,95,96,97,98,99,100,101, - 102,103,104,105,106,107,108,109,110,111, - 112,113,0,70,0,117,118,3,120,0, - 6,0,8,9,44,11,0,0,1,2, - 3,4,5,6,7,8,10,0,24,25, - 26,27,0,6,0,102,0,104,105,106, - 107,108,109,110,111,112,113,15,44,0, - 117,0,1,2,3,4,5,6,7,8, - 0,0,1,2,4,63,62,63,0,0, - 54,69,40,69,70,71,72,9,46,62, - 48,49,50,51,52,53,0,55,56,57, - 4,87,88,89,90,91,92,93,94,95, - 96,97,98,99,100,101,102,103,104,105, - 106,107,108,109,110,111,112,113,91,92, - 59,117,118,0,120,0,1,2,3,4, - 5,6,7,8,9,10,11,12,13,14, - 15,16,17,18,19,20,21,22,23,0, - 1,2,29,28,0,1,2,3,4,5, - 6,7,8,0,0,40,0,0,1,2, - 101,46,47,48,49,50,51,52,53,54, - 55,56,57,58,123,60,118,0,1,2, - 65,0,67,68,7,0,1,2,73,74, - 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,1,2,3,28, - 5,64,7,66,9,72,11,0,1,2, - 3,40,5,0,7,0,121,46,47,48, - 49,50,51,52,53,54,55,56,57,58, - 0,60,71,0,4,0,65,101,67,68, - 0,1,2,10,73,74,0,1,2,3, - 4,5,6,7,8,0,10,0,12,13, - 14,28,16,17,18,19,20,21,22,23, - 24,25,26,27,44,29,30,31,32,33, - 34,35,36,37,38,39,29,41,42,43, - 0,45,121,60,59,0,1,2,3,4, - 5,6,7,8,0,1,2,61,0,63, - 64,3,66,0,1,2,3,4,5,6, - 7,8,9,10,69,12,13,14,0,16, - 17,18,19,20,21,22,23,24,25,26, - 27,0,29,30,31,32,33,34,35,36, - 37,38,39,0,41,42,43,62,45,0, - 1,2,3,0,5,70,7,0,1,2, - 3,4,59,6,61,8,0,1,2,0, - 4,5,3,7,71,0,1,2,3,4, - 5,6,7,8,9,10,0,12,13,14, - 59,16,17,18,19,20,21,22,23,24, - 25,26,27,0,29,30,31,32,33,34, - 35,36,37,38,39,72,41,42,43,62, - 45,0,1,2,3,0,5,0,7,4, - 9,62,11,0,59,0,61,0,1,2, - 3,4,5,6,7,8,71,10,0,12, - 13,14,4,16,17,18,19,20,21,22, - 23,24,25,26,27,40,29,30,31,32, - 33,34,35,36,37,38,39,44,41,42, - 43,0,45,97,98,0,1,2,40,4, - 5,0,7,0,59,0,1,2,61,4, - 5,64,7,66,0,1,2,3,4,5, - 6,7,8,28,10,0,12,13,14,28, - 16,17,18,19,20,21,22,23,24,25, - 26,27,0,29,30,31,32,33,34,35, - 36,37,38,39,0,41,42,43,0,45, - 0,1,2,9,0,1,2,0,4,5, - 3,7,114,115,116,61,0,0,64,3, - 66,0,1,2,3,4,5,6,7,8, - 9,10,28,12,13,14,0,16,17,18, - 19,20,21,22,23,24,25,26,27,0, - 29,30,31,32,33,34,35,36,37,38, - 39,63,41,42,43,71,45,0,1,2, - 3,4,5,6,7,8,0,10,62,12, - 13,14,100,16,17,18,19,20,21,22, - 23,24,25,26,27,59,29,30,31,32, - 33,34,35,36,37,38,39,90,41,42, - 43,0,45,96,3,0,5,6,0,8, - 0,1,2,3,0,5,59,7,61,0, - 1,2,0,0,5,24,25,26,27,118, - 0,30,24,25,0,1,2,3,0,5, - 10,7,0,1,2,44,4,28,6,44, - 8,0,0,1,2,3,0,5,44,7, - 0,1,2,62,63,64,44,66,0,0, - 69,70,62,0,0,1,2,72,4,0, - 6,8,8,9,0,1,2,0,28,88, - 89,90,91,92,93,94,62,59,97,98, + 28,114,115,116,28,0,30,0,58,33, + 34,35,88,89,38,10,40,41,42,43, + 0,58,46,0,1,2,50,4,0,6, + 0,8,56,70,0,1,2,61,4,32, + 6,65,8,67,68,0,0,71,72,73, + 74,0,24,25,3,10,10,6,28,8, + 9,0,11,0,1,2,3,4,5,6, + 7,8,0,28,28,24,25,26,27,72, + 0,1,2,32,4,5,0,7,0,0, + 114,115,116,32,6,0,0,0,1,2, + 3,4,5,6,7,8,61,61,28,58, + 0,0,1,2,63,4,5,28,7,0, + 69,70,71,72,0,6,75,0,1,2, + 3,0,5,0,7,72,9,4,11,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,3,4, - 5,6,7,8,72,10,0,12,13,14, - 0,16,17,18,19,20,21,22,23,24, - 25,26,27,0,29,30,31,32,33,34, - 35,36,37,38,39,99,41,42,43,0, - 45,87,3,0,5,6,0,8,99,95, - 44,0,1,2,0,4,61,6,0,8, - 0,1,2,24,25,26,27,0,0,30, - 0,1,2,63,4,0,6,0,8,69, - 0,0,15,44,0,1,2,44,4,9, - 6,11,8,0,1,2,0,29,5,0, - 7,62,63,64,0,66,0,40,69,70, - 4,88,89,46,0,48,49,50,51,52, - 53,44,55,56,57,44,72,88,89,90, - 91,92,93,94,88,89,97,98,99,100, - 101,102,103,104,105,106,107,108,109,110, - 111,112,113,0,1,2,3,4,5,6, - 7,8,63,10,0,12,13,14,69,16, - 17,18,19,20,21,22,23,24,25,26, - 27,0,29,30,31,32,33,34,35,36, - 37,38,39,0,41,42,43,0,45,95, - 0,1,2,3,4,5,6,7,8,0, - 10,0,12,13,14,62,16,17,18,19, - 20,21,22,23,24,25,26,27,0,29, - 30,31,32,33,34,35,36,37,38,39, - 59,41,42,43,0,45,0,1,2,3, - 4,5,6,7,8,62,10,0,12,13, - 14,61,16,17,18,19,20,21,22,23, - 24,25,26,27,0,29,30,31,32,33, - 34,35,36,37,38,39,0,41,42,43, - 62,45,0,1,2,3,4,5,6,7, - 8,90,10,0,12,13,14,96,16,17, - 18,19,20,21,22,23,24,25,26,27, - 0,29,30,31,32,33,34,35,36,37, - 38,39,0,41,42,43,4,45,0,1, - 2,3,4,5,6,7,8,90,10,0, - 12,13,14,96,16,17,18,19,20,21, - 22,23,24,25,26,27,63,29,30,31, - 32,33,34,35,36,37,38,39,0,41, - 42,43,0,45,0,1,2,0,4,0, - 1,2,0,44,10,0,12,13,14,15, - 16,17,18,19,20,21,22,23,88,89, - 0,0,63,0,3,0,0,28,3,0, - 10,0,6,0,40,0,44,0,1,2, - 46,0,48,49,50,51,52,53,28,55, - 56,57,93,94,60,63,0,1,2,65, - 4,67,68,0,0,28,10,70,12,13, + 109,110,111,112,113,32,70,0,117,118, + 3,120,100,6,0,8,9,3,11,91, + 92,95,0,1,2,3,4,5,6,7, + 8,24,25,26,27,0,1,2,102,32, + 104,105,106,107,108,109,110,111,112,113, + 91,92,0,117,0,1,2,3,4,5, + 6,7,8,28,0,58,102,0,1,2, + 63,4,58,6,0,8,69,70,71,72, + 58,117,75,0,1,2,3,4,5,6, + 7,8,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,0,1,2,117,118,0,120,0,1, + 2,3,4,5,6,7,8,9,10,11, + 12,13,14,15,16,17,18,19,20,21, + 22,23,0,1,2,29,28,5,30,7, + 0,33,34,35,4,101,38,0,40,41, + 42,43,0,0,46,0,1,2,50,4, + 0,6,9,8,56,57,0,59,0,61, + 30,0,4,65,8,67,68,0,1,2, + 9,73,74,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,28,28,0,30,7,69,33,34,35, + 60,69,38,0,40,41,42,43,75,121, + 46,0,1,2,50,4,5,60,7,0, + 56,57,0,59,0,61,4,3,6,65, + 8,67,68,0,114,115,116,73,74,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,29,118, + 31,0,0,1,2,36,37,0,39,60, + 123,0,58,44,45,121,47,48,49,0, + 51,52,53,54,55,0,0,1,2,32, + 4,62,63,64,9,66,0,1,2,3, + 4,5,6,7,8,9,10,0,70,13, 14,15,16,17,18,19,20,21,22,23, - 60,0,0,1,2,93,94,6,24,25, - 0,0,90,88,89,0,40,0,96,70, - 69,60,46,70,48,49,50,51,52,53, - 28,55,56,57,0,0,60,91,92,24, - 25,65,0,67,68,0,12,13,14,15, - 16,17,18,19,20,21,22,23,0,0, + 24,25,26,27,63,29,64,31,66,0, + 69,60,36,37,0,39,0,114,115,116, + 44,45,0,47,48,49,60,51,52,53, + 54,55,0,1,2,3,60,5,62,7, + 75,9,122,11,97,98,32,71,0,1, + 2,3,4,5,6,7,8,9,10,0, + 95,13,14,15,16,17,18,19,20,21, + 22,23,24,25,26,27,60,29,0,31, + 0,72,0,3,36,37,99,39,0,1, + 2,9,44,45,0,47,48,49,0,51, + 52,53,54,55,0,1,2,3,60,5, + 62,7,90,0,1,2,28,0,96,71, + 0,1,2,3,4,5,6,7,8,70, + 10,0,0,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,0,29, + 72,31,0,71,0,0,36,37,60,39, + 6,9,58,11,44,45,0,47,48,49, + 4,51,52,53,54,55,0,1,2,3, + 32,5,62,7,64,0,66,0,1,2, + 3,4,5,6,7,8,0,10,32,0, + 13,14,15,16,17,18,19,20,21,22, + 23,24,25,26,27,60,29,32,31,0, + 0,69,0,36,37,0,39,0,1,2, + 0,44,45,0,47,48,49,4,51,52, + 53,54,55,0,0,91,92,0,72,62, + 0,64,32,66,0,1,2,3,4,5, + 6,7,8,9,10,32,0,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,63,29,0,31,90,3,69,0, + 36,37,96,39,0,1,2,72,44,45, + 70,47,48,49,0,51,52,53,54,55, + 63,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,95, + 29,0,31,0,0,0,0,36,37,0, + 39,8,3,9,9,44,45,0,47,48, + 49,0,51,52,53,54,55,63,0,1, + 2,60,118,62,0,26,27,3,32,5, + 6,0,8,0,1,2,3,4,5,6, + 7,8,9,32,11,12,28,0,24,25, + 26,27,0,1,2,31,32,58,0,1, + 2,70,4,30,69,32,33,34,35,75, + 75,38,0,40,41,42,43,0,0,46, + 28,9,58,50,77,0,28,63,64,0, + 66,58,3,69,70,0,0,0,0,0, + 69,0,103,0,9,9,9,11,75,32, + 9,0,88,89,90,91,92,93,94,120, + 0,97,98,99,100,101,102,103,104,105, + 106,107,108,109,110,111,112,113,0,1, + 2,3,4,5,6,7,8,75,10,0, + 0,13,14,15,16,17,18,19,20,21, + 22,23,24,25,26,27,69,29,71,31, + 75,75,71,0,36,37,0,39,0,0, + 1,2,44,45,0,47,48,49,90,51, + 52,53,54,55,96,0,0,0,0,3, + 62,5,6,0,8,0,1,2,3,4, + 5,6,7,8,9,0,11,12,69,69, + 24,25,26,27,0,0,0,31,32,32, + 32,0,0,0,3,30,3,0,33,34, + 35,0,0,38,0,40,41,42,43,24, + 25,46,0,69,58,50,24,25,63,63, + 64,63,66,58,69,69,70,0,90,32, + 97,98,0,32,96,0,0,0,63,0, + 75,0,3,0,88,89,90,91,92,93, + 94,93,94,97,98,99,100,101,102,103, + 104,105,106,107,108,109,110,111,112,113, + 0,1,2,3,4,5,6,7,8,95, + 10,0,70,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,0,29, + 63,31,70,101,0,70,36,37,72,39, + 0,70,0,0,44,45,0,47,48,49, + 0,51,52,53,54,55,0,0,58,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,29,0, + 31,63,3,0,0,36,37,63,39,0, + 0,61,32,44,45,63,47,48,49,0, + 51,52,53,54,55,72,0,0,72,3, + 3,62,0,1,2,3,4,5,6,7, + 8,0,10,63,3,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 0,29,0,31,0,3,62,3,36,37, + 0,39,0,93,94,72,44,45,0,47, + 48,49,72,51,52,53,54,55,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,29,0,31, + 0,3,0,3,36,37,0,39,58,3, + 70,32,44,45,0,47,48,49,0,51, + 52,53,54,55,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,29,0,31,0,5,0,0, + 36,37,3,39,0,0,70,0,44,45, + 0,47,48,49,0,51,52,53,54,55, + 0,1,2,29,4,0,0,0,32,0, + 10,0,12,13,14,15,16,17,18,19, + 20,21,22,23,0,70,32,0,0,0, + 30,0,0,33,34,35,0,0,38,63, + 40,41,42,43,0,0,46,0,0,0, + 50,0,1,2,0,4,0,6,0,8, + 9,61,0,1,2,65,4,67,68,93, + 94,0,10,0,12,13,14,15,16,17, + 18,19,20,21,22,23,0,1,2,3, + 0,5,30,7,0,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,61,0,0,75,65,0,67, + 68,12,13,14,15,16,17,18,19,20, + 21,22,23,0,58,0,95,0,0,30, + 0,0,33,34,35,0,0,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,0,63,40,15,0,0,61,44, - 46,0,48,49,50,51,52,53,28,55, - 56,57,91,92,0,1,2,3,4,5, - 6,7,8,9,44,11,0,47,0,15, - 0,0,70,0,54,70,44,9,58,9, - 44,44,28,0,0,44,0,3,70,3, - 119,72,0,63,74,0,0,0,3,3, - 3,47,0,0,0,3,3,3,54,0, - 44,0,58,0,3,0,1,2,3,4, - 5,6,7,8,9,71,11,0,74,63, - 15,0,0,0,1,2,3,4,5,6, - 7,8,9,28,11,72,63,0,15,0, - 3,0,3,0,3,87,3,87,0,93, - 94,28,47,0,72,0,3,0,3,54, - 0,0,5,58,3,0,0,0,3,0, - 47,72,0,70,0,0,71,54,0,74, - 119,58,0,0,0,1,2,3,4,5, - 6,7,8,9,71,11,0,74,76,15, - 0,0,0,1,2,3,4,5,6,7, - 8,9,28,11,0,0,44,15,70,0, + 0,11,12,0,1,2,3,4,5,6, + 7,8,9,0,11,12,0,0,28,0, + 0,0,32,0,0,1,2,3,4,0, + 6,28,8,0,1,2,3,4,5,6, + 7,8,9,0,11,12,56,57,0,59, + 0,0,0,0,0,0,0,0,0,56, + 57,28,59,0,74,0,0,0,0,0, + 0,0,0,0,71,0,0,74,0,0, + 0,0,58,0,0,0,0,0,0,56, + 57,0,59,0,0,1,2,3,4,5, + 6,7,8,9,71,11,12,74,0,0, + 0,0,3,0,0,0,0,0,9,0, + 0,0,28,0,0,1,2,3,4,5, + 6,7,8,9,0,11,12,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 56,57,28,59,0,0,0,0,0,0, + 0,0,0,0,0,71,0,58,74,0, + 0,0,63,0,0,0,0,0,69,0, + 56,57,0,59,75,0,1,2,3,4, + 5,6,7,8,9,71,11,12,74,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,28,0,0,1,2,3,4, + 5,6,7,8,9,0,11,12,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,56,57,28,59,0,0,0,0,0, + 0,0,0,0,0,0,71,0,0,74, + 0,0,0,0,0,0,0,0,0,0, + 0,56,57,0,59,0,1,2,3,4, + 5,6,7,8,9,0,11,12,0,74, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,28,0,0,1,2,3,4, + 5,6,7,8,9,0,11,12,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,56,57,28,59,0,0,12,0,0, + 0,0,0,0,0,0,0,0,0,74, + 0,0,0,0,0,30,0,0,33,34, + 35,56,57,38,59,40,41,42,43,12, + 0,46,0,0,0,50,0,0,0,74, + 0,0,0,0,0,0,0,30,12,0, + 33,34,35,0,0,38,0,40,41,42, + 43,0,0,46,0,0,30,50,0,33, + 34,35,0,12,38,0,40,41,42,43, + 0,0,46,0,0,0,50,0,0,0, + 0,30,0,0,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, - 28,47,0,0,0,0,119,70,54,0, - 0,0,58,0,0,0,0,0,0,47, - 0,0,0,0,0,71,54,0,74,0, - 58,0,0,0,1,2,3,4,5,6, - 7,8,9,71,11,0,74,0,15,0, - 0,0,1,2,3,4,5,6,7,8, - 9,28,11,0,0,0,15,0,0,0, - 3,0,0,0,0,0,0,0,0,28, - 47,0,0,0,0,0,0,54,0,0, - 0,58,0,26,27,0,0,0,47,0, - 0,0,0,0,0,54,0,74,0,58, - 0,0,1,2,3,4,5,6,7,8, - 9,0,11,0,0,74,15,0,0,62, - 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,47,0, - 0,0,0,0,0,54,0,0,0,58, - 103,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,74,0,120,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, @@ -1383,311 +1388,333 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface TermAction { public final static char termAction[] = {0, - 5240,5177,4868,4868,4868,4868,4868,4868,4868,5199, - 1,5184,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5240,1, + 5143,5065,4766,4766,4766,4766,4766,4766,4766,5099, + 1,5072,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,43,1, + 1,1,5185,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,553,1,1, - 1,1,1,1,1683,1,1,1,564,2771, - 1,1,135,1,1,1,1,1,1,320, - 2228,5247,167,5419,167,2317,3100,2061,1944,2055, - 2990,3112,3098,1641,3056,3532,3040,8,5211,5211, - 5211,5211,5211,5211,5211,5211,5211,5211,5211,5211, - 5211,5211,5211,5211,5211,5211,5211,5211,5211,5211, - 5211,5211,5211,5211,5211,5240,5211,5211,5211,5211, - 5211,5211,5211,5211,5211,5211,5211,5211,5211,5211, - 5211,1178,5211,5211,5211,5211,5211,5211,5211,5211, - 5211,5211,5211,5211,5211,5211,5211,5211,5211,4864, - 167,5211,5211,5211,5211,5211,318,42,5211,5014, - 5211,5281,5211,5211,5211,5211,5211,5211,5211,5211, - 5211,5211,5211,5211,5240,5177,4868,4868,4868,4868, - 4868,4868,4868,5181,1,5184,1,1,1,1, + 1,1,1,1,1,1,622,2507,2625,563, + 833,1,1,5143,1,1,1,1,1,127, + 1,5150,5153,5324,5152,1,2821,3327,2819,1923, + 2371,3260,2969,3326,2228,3311,3658,3292,8,5111, + 5111,5111,5111,5111,5111,5111,5111,5111,5111,5111, + 5111,5111,5111,5111,5111,5111,5111,5111,5111,5111, + 5111,5111,5111,5111,5111,5111,43,5111,5111,5111, + 5185,5111,5111,5111,5111,5111,5111,5111,5111,5111, + 5111,5111,5111,5111,5111,5111,5111,5111,5111,5111, + 5111,5111,5111,5111,5111,5111,1534,5111,5111,5111, + 5111,400,5111,5111,5111,5111,5111,2243,2582,5111, + 5017,5111,5020,5143,5111,5111,5111,5111,5111,5111, + 5111,5111,5111,5111,5111,5111,5143,5065,4766,4766, + 4766,4766,4766,4766,4766,5069,1,5072,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,5240,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1178,1, - 1,553,1,1,1,1,1,1,1683,1, - 1,1,564,2771,1,1,309,5240,1,1, - 1,1,1,3402,5240,4874,4871,5419,5281,2317, - 3100,2061,1944,2055,2990,3112,3098,1641,3056,3532, - 3040,5240,5177,4868,4868,4868,4868,4868,4868,4868, - 5181,1,5184,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5240, + 1,1,1,1,5143,1,1,1,2968,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,4263,1,1,553,1, - 1,1,1,1,1,1683,1,1,1,564, - 2771,1,1,1,5240,1,1,1,1,1, - 447,125,361,5246,5419,5240,2317,3100,2061,1944, - 2055,2990,3112,3098,1641,3056,3532,3040,5240,5177, - 4868,4868,4868,4868,4868,4868,4868,5181,1,5184, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,189,1,1,1, + 1,1,622,2507,139,563,833,1,1,5143, + 1,1,1,1,1,1950,5143,4772,4769,5324, + 5185,5143,2821,3327,2819,1923,2371,3260,2969,3326, + 2228,3311,3658,3292,5143,5065,4766,4766,4766,4766, + 4766,4766,4766,5069,1,5072,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,5028,1,1,553,1,1,1,1, - 1,1,1683,1,1,1,564,2771,1,1, - 361,5245,1,1,1,1,1,446,361,2833, - 2863,5419,1,2317,3100,2061,1944,2055,2990,3112, - 3098,1641,3056,3532,3040,5240,5177,4868,4868,4868, - 4868,4868,4868,4868,5181,1,5184,1,1,1, + 1,1,1,1,1,1,385,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5240,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5031, - 1,1,553,1,1,1,1,1,1,1683, - 1,1,1,564,2771,1,1,2793,5237,1, - 1,1,1,1,5240,5240,4874,4871,5419,5281, - 2317,3100,2061,1944,2055,2990,3112,3098,1641,3056, - 3532,3040,5240,5177,4868,4868,4868,4868,4868,4868, - 4868,5181,1,5184,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5240,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5240,1,1,553, - 1,1,1,1,1,1,1683,1,1,1, - 564,2771,1,1,287,5240,1,1,1,1, - 1,5240,5257,5258,995,5419,3308,2317,3100,2061, - 1944,2055,2990,3112,3098,1641,3056,3532,3040,5240, - 5177,4868,4868,4868,4868,4868,4868,4868,5181,1, - 5184,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5240,1,1, + 622,2507,321,563,833,1,1,5143,1,1, + 1,1,1,2169,5143,4772,4769,5324,5185,5143, + 2821,3327,2819,1923,2371,3260,2969,3326,2228,3311, + 3658,3292,5143,5065,4766,4766,4766,4766,4766,4766, + 4766,5069,1,5072,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,954,1,1,553,1,1,1, - 1,1,1,1683,1,1,1,564,2771,1, - 1,5240,5240,1,1,1,1,1,5240,5240, - 5246,5250,5419,5249,2317,3100,2061,1944,2055,2990, - 3112,3098,1641,3056,3532,3040,5240,5177,4868,4868, - 4868,4868,4868,4868,4868,5181,1,5184,1,1, + 1173,1,1,1,5143,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5240,1,1,1,1,1, + 1,1,1,1,1,1,1,1,622,2507, + 448,563,833,1,1,5143,1,1,1,1, + 1,5143,5160,5161,5143,5324,4186,651,2821,3327, + 2819,1923,2371,3260,2969,3326,2228,3311,3658,3292, + 5143,5065,4766,4766,4766,4766,4766,4766,4766,5069, + 1,5072,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,4929,1, + 1,1,374,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 4712,1,1,553,1,1,1,1,1,1, - 1683,1,1,1,564,2771,1,1,5245,399, - 1,1,1,1,1,5240,4980,4977,5116,5419, - 5119,2317,3100,2061,1944,2055,2990,3112,3098,1641, - 3056,3532,3040,5240,5177,4868,4868,4868,4868,4868, - 4868,4868,5181,1,5184,1,1,1,1,1, + 1,1,1,1,1,1,622,2507,447,563, + 833,1,1,3393,1,1,1,1,1,5143, + 4878,4875,5143,5324,131,1582,2821,3327,2819,1923, + 2371,3260,2969,3326,2228,3311,3658,3292,5143,5065, + 4766,4766,4766,4766,4766,4766,4766,5069,1,5072, 1,1,1,1,1,1,1,1,1,1, - 1,5240,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5240,1,1, - 553,1,1,1,1,1,1,1683,1,1, - 1,564,2771,1,1,504,1,1,1,1, - 1,1,5240,5257,5258,165,5419,5240,2317,3100, - 2061,1944,2055,2990,3112,3098,1641,3056,3532,3040, - 5240,3020,1,1,1,1,1,1,1,5250, - 1,5249,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5240,1, + 1,1,1,1,1,1,4932,1,1,1, + 512,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,813,1,1,553,1,1, - 1,1,1,1,1683,1,1,1,564,2771, - 1,1,438,165,1,1,1,1,1,437, - 391,4874,4871,5419,5281,2317,3100,2061,1944,2055, - 2990,3112,3098,1641,3056,3532,3040,42,4874,4871, - 3857,771,3642,3988,2939,4010,5240,1589,42,5505, - 5503,5512,5497,5511,5507,5508,5506,5509,5510,5513, - 5504,3966,3944,4054,4032,356,5263,3922,1720,1733, - 5265,1725,620,1726,5266,5264,1678,5500,5259,5261, - 5262,3007,5260,5576,133,5577,5494,5501,5473,5499, - 5498,2651,5495,5496,5474,42,5240,5632,1216,5281, - 2182,2938,906,5569,5633,5634,5240,5041,5041,228, - 5037,228,228,228,228,5045,1,228,1,1, + 1,1,1,1,622,2507,5143,563,833,1, + 1,3393,1,1,1,1,1,5143,5160,5161, + 5143,5324,2243,2582,2821,3327,2819,1923,2371,3260, + 2969,3326,2228,3311,3658,3292,5143,5065,4766,4766, + 4766,4766,4766,4766,4766,5069,1,5072,1,1, 1,1,1,1,1,1,1,1,1,1, - 5240,7315,7025,1,490,5240,4988,4983,2893,4993, - 616,4999,2939,4996,312,5240,1,2349,661,5240, - 5257,5258,1,713,1,1,1,1,1,1, - 5595,1,1,1,5240,430,1,3038,5240,4874, - 4871,1,5281,1,1,360,139,408,228,5644, - 5729,2286,2258,5240,5041,5041,228,5037,228,228, - 228,228,5122,1,228,1,1,1,1,1, - 1,1,1,1,1,1,1,1893,5240,1, - 5240,490,2650,4076,956,1337,143,5250,340,5249, - 5666,5667,5668,1,5240,5051,5048,2725,5597,1, - 713,1,1,1,1,1,1,52,1,1, - 1,5240,5240,1,2922,48,5057,5057,1,38, - 1,1,5279,5240,407,228,5644,5729,384,335, - 224,5158,5248,347,5158,1128,5158,5161,5240,5158, - 390,1178,340,5054,383,5497,2195,4335,340,5666, - 5667,5668,5161,5161,5161,5161,225,310,4988,4983, - 2893,4993,616,4999,2939,4996,340,5666,5667,5668, - 5500,5497,5161,143,3476,5576,5576,5577,5577,5494, - 5501,5473,5499,5498,2773,5495,5496,5474,2122,1072, - 5161,5161,912,5240,5247,1178,5500,5161,5161,5161, - 5161,5741,5576,3584,5577,5494,5501,5473,5499,5498, - 53,5495,5496,5474,5258,5161,5161,5161,5161,5161, - 5161,5161,5161,5161,5161,5161,5161,5161,5161,5161, - 5161,5161,5161,5161,5161,5161,5161,5161,5161,5161, - 5161,5161,30,1687,383,5161,5161,5168,5161,5240, - 5168,5240,5168,5171,5258,5168,302,344,5021,5017, - 3742,5281,616,2938,2939,5569,5541,119,5171,5171, - 5171,5171,226,3761,5240,2122,5240,1645,1603,1561, - 1519,1477,1435,1393,1351,1309,1267,5497,5164,5240, - 3584,5240,5021,5017,2893,5281,616,2938,2939,5569, - 1,5240,5257,5258,384,5125,5171,5171,5240,141, - 558,5125,5500,5171,5171,5171,5171,5244,5576,1178, - 5577,5494,5501,5473,5499,5498,5240,5495,5496,5474, - 2726,5171,5171,5171,5171,5171,5171,5171,5171,5171, - 5171,5171,5171,5171,5171,5171,5171,5171,5171,5171, - 5171,5171,5171,5171,5171,5171,5171,5171,3684,2613, - 2348,5171,5171,5240,5171,5240,4868,4868,228,4868, - 228,228,228,228,228,1,228,1,1,1, - 7943,1,1,1,1,1,1,1,1,53, - 5011,5008,2331,4865,5240,5021,5017,2893,5281,616, - 2938,2939,5569,419,5240,1,142,5240,4980,4977, - 2160,1,553,1,1,1,1,1,1,663, - 1,1,1,564,1083,1,5243,41,5131,5128, - 1,5240,1,1,1348,53,4980,4977,5256,5729, - 5248,5240,4868,4868,228,4868,228,228,228,228, - 228,1,228,1,1,1,7943,1,1,1, - 1,1,1,1,1,1,4890,4886,4877,4865, - 4880,4076,4883,1337,5250,2980,5249,1,4890,4886, - 4877,1,4880,5240,4883,5240,12,1,553,1, - 1,1,1,1,1,663,1,1,1,564, - 53,1,5247,1,5257,5240,1,2160,1,1, - 288,5257,5258,5107,5256,5729,1,5100,5096,3857, - 5104,3642,3988,2939,4010,417,5060,5240,5087,5093, - 5066,2290,5069,5081,5078,5084,5075,5072,5063,5090, - 3966,3944,4054,4032,5257,5263,3922,1720,1733,5265, - 1725,620,1726,5266,5264,1678,547,5259,5261,5262, - 5240,5260,11,5110,2400,365,4890,4886,3742,1, - 616,1,2939,1,5240,7315,7025,1216,5240,505, - 42,4252,42,42,4874,4871,3857,771,3642,3988, - 2939,4010,5248,1249,3016,5505,5503,5512,5240,5511, - 5507,5508,5506,5509,5510,5513,5504,3966,3944,4054, - 4032,1,5263,3922,1720,1733,5265,1725,620,1726, - 5266,5264,1678,5240,5259,5261,5262,1178,5260,1, - 4890,4886,2893,5240,616,1044,2939,344,42,42, - 2650,5281,3357,2938,1216,5569,5240,4874,4871,1, - 771,616,2650,2939,5247,42,4874,4871,3857,771, - 3642,3988,2939,4010,5248,1249,134,5505,5503,5512, - 3234,5511,5507,5508,5506,5509,5510,5513,5504,3966, - 3944,4054,4032,5240,5263,3922,1720,1733,5265,1725, - 620,1726,5266,5264,1678,5635,5259,5261,5262,1178, - 5260,1,4890,4886,2893,42,616,5240,2939,5281, - 310,1178,310,383,3357,5240,1216,145,4874,4871, - 3857,771,3642,3988,2939,4010,5247,1249,42,5505, - 5503,5512,5281,5511,5507,5508,5506,5509,5510,5513, - 5504,3966,3944,4054,4032,1421,5263,3922,1720,1733, - 5265,1725,620,1726,5266,5264,1678,4974,5259,5261, - 5262,5240,5260,2286,2258,5240,4874,4871,812,771, - 5174,40,2939,5240,3240,5240,4874,4871,1216,771, - 616,42,2939,42,1,5100,5096,3857,5104,3642, - 3988,2939,4010,2020,5060,5240,5087,5093,5066,5279, - 5069,5081,5078,5084,5075,5072,5063,5090,3966,3944, - 4054,4032,140,5263,3922,1720,1733,5265,1725,620, - 1726,5266,5264,1678,1,5259,5261,5262,5240,5260, - 5240,5011,5008,5137,5240,4874,4871,5240,771,5174, - 2371,2939,5666,5667,5668,1216,346,115,42,3478, - 42,42,4874,4871,3857,771,3642,3988,2939,4010, - 5244,1249,2109,5505,5503,5512,5240,5511,5507,5508, - 5506,5509,5510,5513,5504,3966,3944,4054,4032,5240, - 5263,3922,1720,1733,5265,1725,620,1726,5266,5264, - 1678,5684,5259,5261,5262,5247,5260,42,4874,4871, - 3857,771,3642,3988,2939,4010,5240,1249,1178,5505, - 5503,5512,2195,5511,5507,5508,5506,5509,5510,5513, - 5504,3966,3944,4054,4032,3270,5263,3922,1720,1733, - 5265,1725,620,1726,5266,5264,1678,4098,5259,5261, - 5262,1,5260,4120,1262,33,5698,5692,122,5696, - 1,4890,4886,3742,33,616,3357,2939,1216,40, - 5208,5208,443,5240,5208,5690,5691,5721,5722,5243, - 302,5699,3062,779,1,4890,4886,3742,5240,616, - 5541,2939,433,1,1,5701,1,3905,5025,2773, - 5025,5240,1,4890,4886,2893,137,616,5002,2939, - 50,5149,5149,1003,5702,1466,5005,1474,5240,138, - 5723,5700,1178,136,1,5187,5187,415,4993,5240, - 2938,2228,5569,361,391,5257,5258,5240,5146,5712, - 5711,5724,5693,5694,5717,5718,1178,3320,5715,5716, - 5695,5697,5719,5720,5725,5705,5706,5707,5703,5704, - 5713,5714,5709,5708,5710,42,4874,4871,3857,771, - 3642,3988,2939,4010,1893,1249,5240,5505,5503,5512, - 5240,5511,5507,5508,5506,5509,5510,5513,5504,3966, - 3944,4054,4032,129,5263,3922,1720,1733,5265,1725, - 620,1726,5266,5264,1678,581,5259,5261,5262,5240, - 5260,361,1262,1,5698,5692,128,5696,581,361, - 3113,434,42,42,5240,5281,1216,5143,5240,5140, - 39,5225,5222,5690,5691,5721,5722,227,1,5699, - 96,1,1,3798,1,5240,5205,5240,5205,4285, - 1,5240,5497,5701,99,42,42,2773,5281,5250, - 5231,5249,5228,5240,5257,5258,5240,612,616,5240, - 2939,1003,5702,1466,1,1474,5240,5500,5723,5700, - 646,2833,2863,5576,5240,5577,5494,5501,5473,5499, - 5498,3564,5495,5496,5474,3736,1982,5712,5711,5724, - 5693,5694,5717,5718,2833,2863,5715,5716,5695,5697, - 5719,5720,5725,5705,5706,5707,5703,5704,5713,5714, - 5709,5708,5710,42,4874,4871,3857,771,3642,3988, - 2939,4010,3376,1249,5240,5505,5503,5512,4285,5511, - 5507,5508,5506,5509,5510,5513,5504,3966,3944,4054, - 4032,5240,5263,3922,1720,1733,5265,1725,620,1726, - 5266,5264,1678,104,5259,5261,5262,5240,5260,3271, - 42,4874,4871,3857,771,3642,3988,2939,4010,5240, - 1249,118,5505,5503,5512,1715,5511,5507,5508,5506, - 5509,5510,5513,5504,3966,3944,4054,4032,103,5263, - 3922,1720,1733,5265,1725,620,1726,5266,5264,1678, - 2771,5259,5261,5262,5240,5260,42,4874,4871,4640, - 771,3642,3988,2939,4010,4754,1249,117,5505,5503, - 5512,1216,5511,5507,5508,5506,5509,5510,5513,5504, - 3966,3944,4054,4032,5240,5263,3922,1720,1733,5265, - 1725,620,1726,5266,5264,1678,5240,5259,5261,5262, - 2071,5260,42,4874,4871,3857,771,3642,3988,2939, - 4010,4098,1249,5240,5505,5503,5512,4120,5511,5507, - 5508,5506,5509,5510,5513,5504,3966,3944,4054,4032, - 127,5263,3922,1720,1733,5265,1725,620,1726,5266, - 5264,1678,5240,5259,5261,5262,1021,5260,42,4874, - 4871,3857,771,3642,3988,2939,4010,4098,1249,130, - 5505,5503,5512,4120,5511,5507,5508,5506,5509,5510, - 5513,5504,3966,3944,4054,4032,3105,5263,3922,1720, - 1733,5265,1725,620,1726,5266,5264,1678,5240,5259, - 5261,5262,132,5260,5240,4874,4871,289,5281,5240, - 8567,8567,116,2568,1032,126,5505,5503,5512,5497, - 5511,5507,5508,5506,5509,5510,5513,5504,2833,2863, - 1,5240,5134,5240,4247,95,121,5279,5155,368, - 5107,161,3761,366,5500,5240,2568,40,5202,5202, - 5576,5240,5577,5494,5501,5473,5499,5498,2290,5495, - 5496,5474,2514,2487,5632,5193,241,4967,4963,906, - 4971,5633,5634,5240,124,3714,1032,1855,4954,4960, - 4933,4918,4936,4948,4945,4951,4942,4939,4930,4957, - 5110,120,5240,5218,5214,2514,2487,3761,3062,779, - 5240,5240,4098,2833,2863,123,4909,522,4120,1086, - 1729,4277,4903,1136,4900,4927,4906,4897,4912,4915, - 5279,4924,4921,4894,223,5240,5632,3684,2613,3062, - 779,906,497,5633,5634,495,5505,5503,5512,5497, - 5511,5507,5508,5506,5509,5510,5513,5504,411,5240, - 1,4868,4868,228,4868,228,228,228,228,228, - 5240,228,5240,3132,5500,7943,5240,5240,3405,4598, - 5576,44,5577,5494,5501,5473,5499,5498,4865,5495, - 5496,5474,3684,2613,1,4868,4868,228,4868,228, - 228,228,228,5034,1066,228,131,553,1,7943, - 1,373,4698,5240,663,4701,4696,518,564,5246, - 2773,3477,4865,5240,237,5152,1,5190,2033,4706, - 3177,1771,5240,3141,5729,5240,5240,5240,4686,4691, - 4379,553,5240,5240,5240,4693,3862,4405,663,5240, - 2568,5240,564,5240,4560,1,4868,4868,228,4868, - 228,228,228,228,5034,220,228,511,5729,5196, - 7943,5240,5240,1,4868,4868,228,4868,228,228, - 228,228,5113,4865,228,5422,3149,5240,7943,5240, - 4747,5240,3624,5240,4391,518,4535,5245,5240,2514, - 2487,4865,553,5240,3131,107,4757,5240,4764,663, - 5240,5240,3308,564,3475,279,5240,499,5234,5240, - 553,5421,2,1072,5240,5240,220,663,5240,5729, - 3177,564,5240,5240,1,4868,4868,228,4868,228, - 228,228,228,5034,219,228,5240,5729,3344,7943, - 5240,5240,1,4868,4868,228,4868,228,228,228, - 228,5034,4865,228,5240,5240,40,7943,1813,5240, - 5240,5240,5240,5240,5240,5240,5240,5240,5240,5240, - 4865,553,5240,5240,5240,5240,3177,648,663,5240, - 5240,5240,564,5240,5240,5240,5240,5240,5240,553, - 5240,5240,5240,5240,5240,220,663,5240,5729,5240, - 564,5240,5240,1,4868,4868,228,4868,228,228, - 228,228,228,220,228,5240,5729,5240,7943,5240, - 5240,1,4868,4868,228,4868,228,228,228,228, - 228,4865,228,5240,5240,5240,7943,79,5240,5240, - 4220,5240,5240,5240,5240,5240,5240,5240,5240,4865, - 553,5240,5240,5240,5240,5240,5240,663,5240,5240, - 5240,564,5240,5307,5308,5240,5240,5240,553,5240, - 5240,5240,5240,5240,5240,663,5240,5729,5240,564, - 5240,1,4868,4868,228,4868,228,228,228,228, - 228,5240,228,5240,5240,5729,7943,5240,5240,3533, - 5240,5240,5240,5240,5240,5240,5240,5240,5240,4865, - 5240,5240,5240,5240,5240,5240,5240,5240,5240,5240, - 5240,5240,5240,5240,5240,5240,5240,5240,553,5240, - 5240,5240,5240,5240,5240,663,5240,5240,5240,564, - 567,5240,5240,5240,5240,5240,5240,5240,5240,5240, - 5240,5240,5240,5240,5240,5729,5240,1931 + 1,1,1,1,5143,1,1,1,2991,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,622,2507,348,563,833,1,1,3393, + 1,1,1,1,1,5143,7582,7515,5143,5324, + 130,4131,2821,3327,2819,1923,2371,3260,2969,3326, + 2228,3311,3658,3292,5143,5065,4766,4766,4766,4766, + 4766,4766,4766,5069,1,5072,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1173,1,1,1,5143,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 622,2507,106,563,833,1,1,141,1,1, + 1,1,1,54,4909,4906,5143,5324,2243,2582, + 2821,3327,2819,1923,2371,3260,2969,3326,2228,3311, + 3658,3292,5143,5065,4766,4766,4766,4766,4766,4766, + 4766,5069,1,5072,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 4655,1,1,1,5143,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,622,2507, + 5143,563,833,1,1,1,1,1,1,1, + 1,54,4878,4875,5153,5324,5152,581,2821,3327, + 2819,1923,2371,3260,2969,3326,2228,3311,3658,3292, + 5143,3279,1,1,1,1,1,1,1,5153, + 1,5152,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5143,1, + 1,1,2623,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,622,2507,5143,563, + 833,1,1,129,1,1,1,1,1,41, + 5108,5108,5143,5324,5108,5143,2821,3327,2819,1923, + 2371,3260,2969,3326,2228,3311,3658,3292,43,4772, + 4769,2976,769,3805,3892,4458,3913,4341,2759,5143, + 5402,5409,5407,5416,5415,5411,5412,5410,5413,5414, + 5417,5408,3871,3846,3955,3934,5143,5166,5405,3784, + 310,5480,5481,5399,1716,1774,5406,5168,5378,5404, + 5403,5400,1733,2528,5401,1749,5169,5167,5379,1708, + 5162,5164,5165,5163,303,887,5143,5160,5161,5536, + 1210,2243,2582,2281,5445,5537,5538,5143,4942,4942, + 230,4938,230,230,230,230,4946,1,230,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,4788,4784,4775,491,4778,1,4781,4105, + 1,1,1,336,128,1,4762,1,1,1, + 1,620,5143,1,5143,4772,4769,1,769,5062, + 3976,4458,941,1018,1,4788,4784,571,1,567, + 319,4458,1,4912,1,1,5480,5481,409,230, + 5548,5633,2085,366,4788,4784,3543,1,567,1, + 4458,1,5143,4952,4949,5143,5143,4942,4942,230, + 4938,230,230,230,230,5023,1,230,1,1, + 1,1,1,1,1,1,1,1,1,1, + 5183,5570,5571,5572,491,303,1,33,1173,1, + 1,1,2243,2582,1,5445,1,1,1,1, + 5143,1173,1,434,1,1,1,1,124,4926, + 5143,4926,1018,1035,435,43,43,1,5185,1493, + 5044,1,5041,1,1,1,1,408,230,5548, + 5633,37,3518,2909,4923,5008,5008,4923,931,4923, + 4923,384,4923,5143,4886,4881,571,4891,567,4897, + 4458,4894,142,2662,2662,4923,4923,4923,4923,416, + 5143,4772,4769,4923,769,5062,357,4458,121,53, + 5570,5571,5572,4872,3751,5143,145,311,4886,4881, + 571,4891,567,4897,4458,4894,5011,5011,2231,4923, + 5143,5143,4772,4769,4923,769,567,646,4458,123, + 4923,4923,4923,4923,145,3751,4923,1,4788,4784, + 4775,5143,4778,391,4781,1872,5153,384,5152,4923, + 4923,4923,4923,4923,4923,4923,4923,4923,4923,4923, + 4923,4923,4923,4923,4923,4923,4923,4923,4923,4923, + 4923,4923,4923,4923,4923,1493,1671,5143,4923,4923, + 5059,4923,581,5059,1,5059,5059,3584,5059,3728, + 3705,5499,345,4919,4915,3543,5185,567,1541,4458, + 5473,5059,5059,5059,5059,49,4958,4958,2099,5059, + 1630,1589,1548,1507,1466,1425,1384,1343,1302,1261, + 3728,3705,5143,4252,5143,4919,4915,571,5185,567, + 1541,4458,5473,4955,143,5059,2099,98,1,1, + 5059,1,1173,5105,5143,5105,5059,5059,5059,5059, + 1173,4252,5059,5143,4919,4915,571,5185,567,1541, + 4458,5473,289,5160,5161,5059,5059,5059,5059,5059, + 5059,5059,5059,5059,5059,5059,5059,5059,5059,5059, + 5059,5059,5059,5059,5059,5059,5059,5059,5059,5059, + 5059,5143,7582,7515,5059,5059,5143,5059,5143,4766, + 4766,230,4766,230,230,230,230,230,1,230, + 8273,1,1,1,1,1,1,1,1,1, + 1,1,5143,5160,5161,1025,4763,567,1,4458, + 43,1,1,1,5185,2136,1,288,1,1, + 1,1,505,5143,1,101,43,43,1,5185, + 5143,5131,5149,5128,622,630,137,563,5143,1, + 805,5143,2632,1,2199,1,1,5143,5160,5161, + 5147,5159,5633,41,5143,4766,4766,230,4766,230, + 230,230,230,230,1,230,8273,1,1,1, + 1,1,1,1,1,1,1,1,42,5032, + 5029,5183,4763,5143,1,2271,902,1,1,1, + 1329,806,1,5143,1,1,1,1,5148,12, + 1,5143,4772,4769,1,769,567,1237,4458,1, + 622,630,43,563,347,1,5185,2440,1541,1, + 5473,1,1,431,5570,5571,5572,5159,5633,1, + 5001,4997,2976,5005,3805,3892,4458,3913,313,4961, + 191,1103,4988,4994,4967,4970,4982,4979,4985,4976, + 4973,4964,4991,3871,3846,3955,3934,33,5166,5146, + 3784,30,5143,4878,4875,1716,1774,135,5168,1623, + 995,5143,1173,1733,2528,11,1749,5169,5167,5143, + 1708,5162,5164,5165,5163,1,5143,4772,4769,4900, + 5185,1210,506,43,362,43,43,4772,4769,2976, + 769,3805,3892,4458,3913,5151,2419,140,948,5409, + 5407,5416,5415,5411,5412,5410,5413,5414,5417,5408, + 3871,3846,3955,3934,5026,5166,3976,3784,941,438, + 5026,1657,1716,1774,444,5168,5143,5570,5571,5572, + 1733,2528,117,1749,5169,5167,1459,1708,5162,5164, + 5165,5163,1,4788,4784,571,1899,567,1210,4458, + 362,311,5140,311,2329,2302,4903,5150,43,4772, + 4769,2976,769,3805,3892,4458,3913,5151,2419,39, + 362,5409,5407,5416,5415,5411,5412,5410,5413,5414, + 5417,5408,3871,3846,3955,3934,1664,5166,420,3784, + 5143,2398,5143,2414,1716,1774,2169,5168,51,5050, + 5050,5151,1733,2528,5143,1749,5169,5167,5143,1708, + 5162,5164,5165,5163,1,4788,4784,3543,1899,567, + 1210,4458,3997,5143,4909,4906,5047,5143,4018,5150, + 147,4772,4769,2976,769,3805,3892,4458,3913,2372, + 2419,5143,5143,5409,5407,5416,5415,5411,5412,5410, + 5413,5414,5417,5408,3871,3846,3955,3934,5143,5166, + 3451,3784,5143,5150,122,5143,1716,1774,1739,5168, + 3751,5153,1173,5152,1733,2528,54,1749,5169,5167, + 5161,1708,5162,5164,5165,5163,1,4788,4784,571, + 1616,567,1210,4458,43,5143,43,1,5001,4997, + 2976,5005,3805,3892,4458,3913,120,4961,5161,5143, + 4988,4994,4967,4970,4982,4979,4985,4976,4973,4964, + 4991,3871,3846,3955,3934,833,5166,1493,3784,5143, + 1,4192,5143,1716,1774,5143,5168,392,5160,5161, + 290,1733,2528,54,1749,5169,5167,5160,1708,5162, + 5164,5165,5163,5143,1,3728,3705,5143,1872,1210, + 5143,43,1493,43,43,4772,4769,2976,769,3805, + 3892,4458,3913,5147,2419,5160,5143,5409,5407,5416, + 5415,5411,5412,5410,5413,5414,5417,5408,3871,3846, + 3955,3934,3582,5166,5143,3784,3997,2959,4132,5143, + 1716,1774,4018,5168,5143,8293,8293,5539,1733,2528, + 1835,1749,5169,5167,5143,1708,5162,5164,5165,5163, + 3356,43,4772,4769,2976,769,3805,3892,4458,3913, + 97,2419,5183,5056,5409,5407,5416,5415,5411,5412, + 5410,5413,5414,5417,5408,3871,3846,3955,3934,5501, + 5166,369,3784,138,1,5143,5143,1716,1774,81, + 5168,2199,2416,167,5149,1733,2528,5143,1749,5169, + 5167,5143,1708,5162,5164,5165,5163,5645,41,5102, + 5102,1899,5146,1210,1,5211,5212,1163,4119,5602, + 5596,439,5600,33,384,384,5087,384,384,5087, + 384,5087,5090,4267,5087,384,4126,5143,5594,5595, + 5625,5626,5143,5118,5114,5603,5605,4147,392,4772, + 4769,1076,5185,384,4611,4900,384,384,384,167, + 5148,384,1,384,384,384,384,5143,5143,384, + 5183,519,1288,384,3469,5143,43,5606,1421,239, + 1544,5090,5078,5627,5604,1,1,5143,119,5143, + 2617,1,1117,5143,5149,169,5151,169,5090,4554, + 5038,5143,5616,5615,5628,5597,5598,5621,5622,1911, + 5143,5619,5620,5599,5601,5623,5624,5629,5609,5610, + 5611,5607,5608,5617,5618,5613,5612,5614,43,4772, + 4769,2976,769,3805,3892,4458,3913,519,2419,361, + 418,5409,5407,5416,5415,5411,5412,5410,5413,5414, + 5417,5408,3871,3846,3955,3934,904,5166,5150,3784, + 5148,169,5150,136,1716,1774,5143,5168,118,40, + 5125,5122,1733,2528,163,1749,5169,5167,3997,1708, + 5162,5164,5165,5163,4018,5143,5143,5143,132,1163, + 1210,5602,5596,5143,5600,36,385,385,5081,385, + 385,5081,385,5081,5084,5143,5081,385,3583,3392, + 5594,5595,5625,5626,1,126,5143,5603,5605,4557, + 2697,1,125,5143,4595,385,4524,5143,385,385, + 385,45,144,385,5143,385,385,385,385,3518, + 2909,385,367,1712,1288,385,3518,2909,3492,5606, + 1421,5035,1544,5084,4132,5627,5604,5143,3997,2285, + 2329,2302,498,5053,4018,496,5143,5143,5588,5143, + 5084,412,4546,5143,5616,5615,5628,5597,5598,5621, + 5622,2641,777,5619,5620,5599,5601,5623,5624,5629, + 5609,5610,5611,5607,5608,5617,5618,5613,5612,5614, + 43,4772,4769,2976,769,3805,3892,4458,3913,3349, + 2419,5143,1132,5409,5407,5416,5415,5411,5412,5410, + 5413,5414,5417,5408,3871,3846,3955,3934,5143,5166, + 3344,3784,4568,2136,5143,4587,1716,1774,1960,5168, + 5143,2011,5143,5143,1733,2528,5143,1749,5169,5167, + 5143,1708,5162,5164,5165,5163,5143,5143,2264,43, + 4772,4769,2976,769,3805,3892,4458,3913,5143,2419, + 134,3310,5409,5407,5416,5415,5411,5412,5410,5413, + 5414,5417,5408,3871,3846,3955,3934,5143,5166,5143, + 3784,3345,4556,5143,523,1716,1774,3352,5168,5143, + 5143,3173,2697,1733,2528,3367,1749,5169,5167,5143, + 1708,5162,5164,5165,5163,1753,5143,5143,5327,4387, + 4623,1210,43,4772,4769,4481,769,3805,3892,4458, + 3913,5143,2419,5093,4631,5409,5407,5416,5415,5411, + 5412,5410,5413,5414,5417,5408,3871,3846,3955,3934, + 5143,5166,5143,3784,5143,4645,3548,4493,1716,1774, + 105,5168,5143,2641,777,3036,1733,2528,5143,1749, + 5169,5167,5326,1708,5162,5164,5165,5163,43,4772, + 4769,2976,769,3805,3892,4458,3913,5143,2419,79, + 3569,5409,5407,5416,5415,5411,5412,5410,5413,5414, + 5417,5408,3871,3846,3955,3934,5143,5166,5143,3784, + 5143,4224,5143,4662,1716,1774,109,5168,2048,4663, + 2372,5134,1733,2528,5143,1749,5169,5167,5143,1708, + 5162,5164,5165,5163,43,4772,4769,2976,769,3805, + 3892,4458,3913,5143,2419,500,4328,5409,5407,5416, + 5415,5411,5412,5410,5413,5414,5417,5408,3871,3846, + 3955,3934,5143,5166,1,3784,133,4186,5143,280, + 1716,1774,5137,5168,5143,5143,1794,5143,1733,2528, + 5143,1749,5169,5167,2,1708,5162,5164,5165,5163, + 5143,4772,4769,624,5185,5143,5143,5143,2697,5143, + 2288,5143,5402,5409,5407,5416,5415,5411,5412,5410, + 5413,5414,5417,5408,5143,1997,41,5143,5143,5143, + 5405,5143,5143,5480,5481,5399,5143,5143,5406,5096, + 5378,5404,5403,5400,5143,5143,5401,5143,5143,5143, + 5379,1,5075,5075,5143,4891,5143,1541,5143,5473, + 362,5536,243,4865,4861,2281,4869,5537,5538,2641, + 777,5143,2288,5143,4816,4852,4858,4831,4834,4846, + 4843,4849,4840,4837,4828,4855,1,4788,4784,3543, + 5143,567,4807,4458,5143,4801,4798,4825,5143,5143, + 4804,5143,4795,4810,4813,4822,5143,5143,4819,5143, + 5143,5143,4792,5143,5143,5143,5143,5143,5143,225, + 5143,5143,5143,5536,5143,5143,362,2281,5143,5537, + 5538,5402,5409,5407,5416,5415,5411,5412,5410,5413, + 5414,5417,5408,5143,1173,5143,362,5143,5143,5405, + 5143,5143,5480,5481,5399,5143,5143,5406,5143,5378, + 5404,5403,5400,5143,5143,5401,5143,5143,5143,5379, + 1,4766,4766,230,4766,230,230,230,230,230, + 5143,230,8273,1,4766,4766,230,4766,230,230, + 230,230,4935,5143,230,8273,5143,5143,4763,5143, + 5143,5143,938,5143,345,43,43,3584,5185,5143, + 1541,4763,5473,1,4766,4766,230,4766,230,230, + 230,230,4935,5143,230,8273,622,630,5143,563, + 5143,5143,5143,5143,5143,5143,5143,5143,5143,622, + 630,4763,563,5143,5633,5143,5143,5143,5143,5143, + 5143,5143,5143,5143,222,5143,5143,5633,5143,5143, + 5143,5143,1173,5143,5143,5143,5143,5143,5143,622, + 630,5143,563,5143,1,4766,4766,230,4766,230, + 230,230,230,5014,222,230,8273,5633,5143,1, + 5143,5143,3584,5143,5143,5143,5143,5143,341,5143, + 5143,5143,4763,5143,1,4766,4766,230,4766,230, + 230,230,230,4935,5143,230,8273,5143,5143,5143, + 5143,5143,5143,5143,5143,5143,5143,5143,5143,5143, + 622,630,4763,563,5143,5143,5143,5143,5143,5143, + 5143,5143,5143,5143,5143,221,5143,1173,5633,5143, + 5143,5143,341,5143,5143,5143,5143,5143,341,5143, + 622,630,5143,563,341,1,4766,4766,230,4766, + 230,230,230,230,4935,222,230,8273,5633,5143, + 5143,5143,5143,5143,5143,5143,5143,5143,5143,5143, + 5143,5143,5143,4763,5143,1,4766,4766,230,4766, + 230,230,230,230,230,5143,230,8273,5143,5143, + 5143,5143,5143,5143,5143,5143,5143,5143,5143,5143, + 5143,622,630,4763,563,5143,5143,5143,5143,5143, + 5143,5143,5143,5143,5143,5143,222,5143,5143,5633, + 5143,5143,5143,5143,5143,5143,5143,5143,5143,5143, + 5143,622,630,5143,563,1,4766,4766,230,4766, + 230,230,230,230,230,5143,230,8273,5143,5633, + 5143,5143,5143,5143,5143,5143,5143,5143,5143,5143, + 5143,5143,5143,4763,5143,1,4766,4766,230,4766, + 230,230,230,230,230,5143,230,8273,5143,5143, + 5143,5143,5143,5143,5143,226,5143,5143,5143,5143, + 5143,622,630,4763,563,5143,5143,5402,5143,5143, + 5143,5143,5143,5143,5143,5143,5143,5143,5143,5633, + 5143,5143,5143,5143,5143,5405,5143,227,5480,5481, + 5399,622,630,5406,563,5378,5404,5403,5400,5402, + 5143,5401,5143,5143,5143,5379,228,5143,5143,5633, + 5143,5143,5143,5143,5143,5143,5143,5405,5402,5143, + 5480,5481,5399,5143,5143,5406,5143,5378,5404,5403, + 5400,229,5143,5401,5143,5143,5405,5379,5143,5480, + 5481,5399,5143,5402,5406,5143,5378,5404,5403,5400, + 5143,5143,5401,5143,5143,5143,5379,5143,5143,5143, + 5143,5405,5143,5143,5480,5481,5399,5143,5143,5406, + 5143,5378,5404,5403,5400,5143,5143,5401,5143,5143, + 5143,5379 }; }; public final static char termAction[] = TermAction.termAction; @@ -1695,59 +1722,59 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface Asb { public final static char asb[] = {0, - 227,1,265,1024,598,111,454,887,3,5, - 227,216,116,3,1043,1054,513,1054,508,1054, - 510,1054,1038,1054,216,217,223,111,211,217, - 775,663,775,217,1024,470,733,273,318,513, - 513,23,217,117,558,408,217,124,452,628, - 561,122,513,565,217,570,217,217,452,124, - 124,929,214,10,10,17,19,211,217,768, - 558,772,67,558,775,775,570,357,948,423, - 229,229,318,318,318,318,216,217,117,929, - 408,124,123,124,452,311,124,565,565,217, - 570,452,217,124,513,216,211,26,177,826, - 211,406,768,214,67,67,570,117,948,423, - 318,1117,318,318,318,217,929,929,1117,217, - 408,1036,266,1026,408,124,124,735,217,628, - 217,565,1117,127,1116,733,549,1024,470,470, - 470,470,216,1024,784,863,161,865,178,178, - 178,178,178,178,178,178,178,1073,1079,1084, - 1081,1088,1086,1093,1091,1095,1094,1096,70,1097, - 732,217,470,513,141,220,217,1024,67,1111, - 558,177,824,768,767,772,733,558,761,749, - 760,732,470,743,743,1117,1117,1117,217,357, - 1028,220,625,736,217,311,1117,178,217,214, - 944,757,756,161,598,598,598,598,217,363, - 694,1073,558,558,161,983,597,357,161,1056, - 1056,356,356,363,177,178,178,178,178,178, - 178,178,178,178,178,178,178,178,178,178, - 178,178,178,178,177,177,177,177,177,177, - 177,177,177,177,177,177,178,161,870,142, - 216,217,363,456,824,768,872,177,758,758, - 942,214,630,423,229,423,731,731,929,117, - 19,463,178,1036,18,735,217,216,216,217, - 549,558,946,948,558,558,733,733,733,733, - 452,558,178,472,216,865,67,597,177,117, - 558,116,118,116,558,67,1081,1081,1079,1079, - 1079,1086,1086,1086,1086,1084,1084,1091,1088,1088, - 1094,1093,1095,1036,1096,870,141,1036,178,1036, - 929,1024,1024,1024,142,1024,217,77,929,929, - 217,513,558,177,1116,872,177,177,946,749, - 423,598,598,929,1028,178,178,217,217,217, - 558,948,1024,1024,1024,1024,217,217,217,357, - 178,598,1077,515,558,217,118,357,177,132, - 1024,132,1036,142,161,161,159,765,161,929, - 929,822,870,824,874,732,217,217,932,558, - 177,177,177,177,1024,1024,452,117,558,1077, - 214,628,217,117,630,558,211,558,77,929, - 111,1024,558,870,874,981,932,932,558,558, - 558,558,363,363,217,1077,1078,1077,177,515, - 120,628,558,558,496,142,822,142,929,77, - 111,177,142,139,1024,743,879,932,558,558, - 483,1077,363,178,67,120,513,513,1016,177, - 140,363,929,929,558,949,731,879,879,1078, - 558,67,142,558,363,929,557,116,879,142, - 558,598,142 + 553,1,591,952,365,224,326,782,23,25, + 553,486,229,23,959,970,21,970,16,970, + 18,970,954,970,486,487,36,224,481,487, + 662,1048,662,487,952,718,1034,40,235,21, + 21,85,487,230,131,280,487,180,324,395, + 328,178,21,332,487,337,487,487,324,180, + 180,824,484,3,3,10,12,481,487,655, + 131,718,662,659,175,131,662,662,337,274, + 843,295,555,555,235,235,235,235,486,487, + 230,824,280,180,179,180,324,78,180,332, + 332,487,337,324,487,180,21,486,481,134, + 447,492,481,642,655,484,175,175,337,230, + 843,295,235,708,235,235,235,487,824,824, + 708,487,280,1046,592,1036,280,180,180,829, + 487,395,487,332,708,397,707,1034,122,952, + 718,718,718,718,486,952,996,529,431,531, + 448,448,448,448,448,448,448,448,448,664, + 670,675,672,679,677,684,682,686,685,687, + 183,688,1033,487,21,411,644,487,952,175, + 702,131,447,490,655,654,659,1034,131,732, + 720,731,1033,718,30,30,708,708,708,487, + 274,1038,644,392,830,487,78,708,448,487, + 484,839,728,727,431,365,365,365,365,487, + 599,1079,664,131,131,431,911,364,274,431, + 664,273,273,599,447,448,448,448,448,448, + 448,448,448,448,448,448,448,448,448,448, + 448,448,448,448,447,447,447,447,447,447, + 447,447,447,447,447,447,448,431,536,412, + 486,487,599,647,490,655,538,447,729,729, + 837,484,878,295,555,295,1032,1032,824,230, + 12,711,448,1046,11,829,487,486,486,487, + 122,131,841,843,131,131,1034,1034,1034,1034, + 324,131,448,736,976,976,486,531,175,364, + 447,230,131,229,231,229,131,175,672,672, + 670,670,670,677,677,677,677,675,675,682, + 679,679,685,684,686,1046,687,536,411,1046, + 448,1046,824,952,952,952,412,952,487,190, + 824,824,487,21,131,447,707,538,447,447, + 841,720,295,365,365,824,1038,448,448,487, + 487,487,131,843,952,952,952,952,487,487, + 487,274,448,365,668,88,131,487,231,274, + 447,402,952,402,1046,412,431,431,429,827, + 431,824,824,551,536,490,540,1033,487,487, + 772,131,447,447,447,447,952,952,324,230, + 131,668,484,395,487,230,878,131,481,131, + 190,824,224,952,131,536,540,876,772,772, + 131,131,131,131,599,599,487,668,669,668, + 447,88,1118,664,395,131,131,760,412,551, + 412,824,190,224,447,412,409,952,30,545, + 772,131,131,747,668,599,448,175,1118,21, + 21,944,447,410,599,824,824,131,844,1032, + 545,545,669,131,175,412,131,599,824,130, + 229,545,412,131,365,412 }; }; public final static char asb[] = Asb.asb; @@ -1755,118 +1782,118 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface Asr { public final static byte asr[] = {0, - 121,0,29,0,1,2,123,59,0,75, - 59,63,72,95,87,62,3,70,9,11, - 69,0,59,70,0,64,66,3,10,32, - 36,34,31,39,13,23,12,19,17,18, - 20,21,16,14,22,41,45,42,43,29, - 38,33,37,5,7,4,26,27,8,6, - 24,25,30,35,1,2,118,9,0,63, - 72,95,69,118,87,71,12,13,31,64, - 14,32,33,16,17,18,66,34,19,20, - 35,36,37,61,38,39,10,21,22,23, - 41,42,43,29,26,27,24,25,30,45, - 9,8,6,11,3,4,7,1,2,5, - 0,4,44,59,72,0,9,69,71,70, + 121,0,76,60,63,72,95,75,58,3, + 70,9,11,69,0,28,72,4,1,2, + 60,0,29,0,1,2,123,60,0,63, + 70,69,1,2,0,60,72,76,0,59, + 35,13,14,61,33,15,65,38,74,12, + 16,40,41,17,18,42,57,43,19,20, + 46,67,50,10,68,21,56,30,22,34, + 23,9,3,8,4,11,60,7,6,5, + 1,2,28,0,60,70,0,96,90,24, + 25,91,92,88,89,32,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,63,1,2,8,6,4,3,58,69, + 75,9,0,64,66,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,8,6,24,25, + 31,45,1,2,118,9,0,4,32,60, + 72,0,63,72,95,69,118,75,71,13, + 14,36,64,15,37,39,16,17,18,66, + 44,19,20,45,47,48,62,49,51,10, + 21,22,23,52,53,54,29,26,27,24, + 25,31,55,9,8,6,11,3,4,7, + 5,1,2,0,59,35,13,14,61,33, + 15,65,38,74,12,16,40,41,17,18, + 42,57,43,19,20,46,67,50,10,68, + 21,56,30,22,34,23,9,3,8,6, + 71,11,4,7,1,2,5,28,0,74, + 7,114,115,116,56,9,3,8,6,5, + 72,71,11,73,35,13,14,61,33,15, + 65,38,12,16,40,41,17,18,42,43, + 19,20,46,67,50,10,68,21,30,22, + 34,23,4,1,2,28,0,4,60,72, + 0,1,2,9,71,0,36,64,37,39, + 66,7,44,45,47,48,62,49,51,52, + 53,54,29,26,27,8,6,24,25,5, + 31,63,55,3,10,65,61,67,68,14, + 23,13,19,17,18,20,21,16,15,22, + 35,43,46,12,42,41,38,33,34,40, + 50,1,2,30,4,0,9,69,71,70, 0,74,114,115,116,28,72,121,119,122, - 71,73,75,47,54,58,77,79,85,83, - 76,81,82,84,86,59,78,80,9,11, - 49,60,46,65,50,15,51,52,53,55, - 56,67,57,68,40,48,61,64,66,10, - 32,36,34,31,39,13,23,12,19,17, - 18,20,21,16,14,22,41,45,42,43, - 29,38,33,37,26,27,24,25,30,35, - 7,5,3,6,8,4,1,2,0,59, - 69,0,59,72,75,0,121,73,60,46, - 14,65,50,16,51,52,17,18,53,55, - 19,20,56,67,57,68,21,40,22,48, - 23,13,12,49,9,3,8,6,11,47, - 58,74,15,28,54,7,1,2,5,4, - 10,0,58,49,12,13,60,46,14,65, - 50,74,15,16,51,52,17,18,53,54, - 55,19,20,56,67,57,10,68,21,47, - 40,22,48,23,9,3,8,4,11,59, - 7,6,5,1,2,28,0,58,49,12, - 13,60,46,14,65,50,74,15,16,51, - 52,17,18,53,54,55,19,20,56,67, - 57,10,68,21,47,40,22,48,23,9, - 3,8,6,71,11,4,7,1,2,5, - 28,0,9,87,12,13,31,64,14,32, - 33,16,17,18,66,7,34,19,20,35, - 36,37,61,38,39,10,21,22,23,41, - 42,43,29,1,2,3,26,27,8,24, - 25,5,30,4,45,6,0,74,7,114, - 115,116,47,9,3,8,6,5,72,71, - 11,73,49,12,13,60,46,14,65,50, - 15,16,51,52,17,18,53,55,19,20, - 56,67,57,10,68,21,40,22,48,23, - 4,1,2,28,0,9,72,118,87,11, - 69,0,72,9,62,3,70,69,11,44, - 0,12,13,14,16,17,18,19,20,21, - 22,23,49,46,50,15,51,52,53,55, - 56,57,40,48,11,9,87,7,1,2, - 62,3,8,6,5,4,0,28,72,4, - 1,2,59,0,96,90,24,25,91,92, - 88,89,44,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,63,1, - 2,8,6,4,3,62,69,87,9,0, - 4,59,72,0,1,2,9,71,0,31, - 64,32,33,66,7,34,35,36,37,61, - 38,39,41,42,43,29,26,27,8,6, - 24,25,5,30,63,45,3,10,65,60, - 67,68,13,23,12,19,17,18,20,21, - 16,14,22,49,55,56,15,53,52,50, - 46,48,51,57,1,2,40,4,0,49, - 12,13,60,46,14,65,50,15,16,51, - 52,17,18,53,55,19,20,56,67,57, - 10,68,21,40,22,48,23,1,2,4, - 95,0,49,12,13,60,46,14,65,50, - 15,16,51,52,17,18,53,55,19,20, - 56,67,57,10,68,21,40,22,48,23, - 1,2,4,66,64,24,25,6,91,92, - 99,8,100,5,30,44,107,108,104,105, - 106,112,111,113,89,88,109,110,97,98, - 93,94,101,102,26,27,90,103,3,62, - 70,69,63,0,40,1,2,4,114,115, - 116,0,63,70,69,1,2,0,8,6, - 4,5,7,1,2,3,62,63,70,69, - 9,87,95,0,76,0,61,46,7,48, - 5,1,2,4,75,9,59,72,95,118, - 87,71,11,62,3,120,96,103,90,26, - 27,8,6,24,25,91,92,88,89,44, - 93,94,97,98,99,100,101,102,117,104, - 105,106,107,108,109,110,111,112,113,63, - 69,70,0,9,71,61,26,27,8,6, - 24,25,30,35,3,4,41,45,42,43, - 29,38,33,37,13,23,12,19,17,18, - 20,21,16,14,22,10,32,36,34,31, - 39,59,5,7,1,2,66,64,0,119, - 0,46,48,75,3,59,72,11,61,9, - 63,95,70,69,87,0,60,46,14,65, - 50,16,51,52,17,18,53,55,19,20, - 56,67,57,10,68,21,40,22,48,23, - 13,12,49,7,3,8,6,5,47,54, - 58,74,15,44,1,2,4,28,11,9, - 0,46,61,48,9,63,95,70,69,87, - 0,7,5,3,62,6,8,95,49,12, - 13,46,14,65,50,15,16,51,52,17, - 18,53,55,19,20,56,67,57,10,68, - 21,40,22,48,23,1,2,4,87,9, - 60,0,64,66,26,27,24,25,30,35, - 41,45,42,43,29,38,33,37,13,23, - 12,19,17,18,20,21,16,14,22,10, - 32,36,34,31,39,8,6,4,62,7, - 5,1,2,3,0,11,9,7,5,3, - 1,2,6,8,4,72,0,10,65,60, - 67,68,13,23,12,19,17,18,20,21, - 16,14,22,75,59,5,4,2,1,48, - 40,57,56,55,7,53,52,51,15,50, - 46,49,120,103,26,27,62,3,96,90, - 6,91,92,24,25,89,88,44,93,94, - 97,98,8,99,100,101,63,95,87,70, - 104,105,106,107,108,109,110,111,112,113, - 72,118,11,102,117,69,71,9,0 + 71,73,76,56,57,59,78,80,86,84, + 77,82,83,85,87,60,79,81,9,11, + 35,61,33,65,38,12,40,41,42,43, + 46,67,50,68,30,34,62,64,66,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,31,45, + 7,5,3,6,8,4,1,2,0,9, + 71,62,26,27,8,6,24,25,31,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,60,5,7, + 1,2,66,64,0,119,0,33,34,76, + 3,60,72,11,62,9,63,95,69,75, + 70,0,121,73,61,33,15,65,38,16, + 40,41,17,18,42,43,19,20,46,67, + 50,68,21,30,22,34,23,14,13,35, + 9,3,8,6,11,56,59,74,12,28, + 57,7,1,2,5,4,10,0,9,75, + 13,14,36,64,15,37,39,16,17,18, + 66,7,44,19,20,45,47,48,62,49, + 51,10,21,22,23,52,53,54,29,1, + 2,3,26,27,8,24,25,5,31,4, + 55,6,0,60,69,0,9,72,118,75, + 11,69,0,62,33,7,34,5,1,2, + 4,76,60,120,103,26,27,58,3,96, + 90,6,91,92,24,25,89,88,32,93, + 94,97,98,8,99,100,101,63,95,75, + 70,104,105,106,107,108,109,110,111,112, + 113,72,118,11,102,117,69,71,9,0, + 72,9,58,3,70,69,11,32,0,8, + 6,4,5,7,1,2,3,58,63,70, + 69,9,75,95,0,13,14,15,16,17, + 18,19,20,21,22,23,35,33,38,12, + 40,41,42,43,46,50,30,34,11,9, + 75,7,1,2,58,3,8,6,5,4, + 0,33,62,34,9,63,95,70,69,75, + 0,61,33,15,65,38,16,40,41,17, + 18,42,43,19,20,46,67,50,10,68, + 21,30,22,34,23,14,13,35,7,3, + 8,6,5,56,57,59,74,12,32,1, + 2,4,28,11,9,0,77,0,30,1, + 2,4,114,115,116,0,7,5,3,58, + 6,8,95,35,13,14,33,15,65,38, + 12,16,40,41,17,18,42,43,19,20, + 46,67,50,10,68,21,30,22,34,23, + 1,2,4,75,9,61,0,35,13,14, + 61,33,15,65,38,12,16,40,41,17, + 18,42,43,19,20,46,67,50,10,68, + 21,30,22,34,23,1,2,4,95,0, + 64,66,26,27,24,25,31,45,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,8,6,4,58,7,5,1, + 2,3,0,10,65,61,67,68,14,23, + 13,19,17,18,20,21,16,15,22,76, + 60,72,95,118,71,7,43,46,50,30, + 34,1,2,42,41,40,12,38,5,4, + 33,35,9,75,11,58,3,120,96,103, + 90,26,27,8,6,24,25,91,92,88, + 89,32,93,94,97,98,99,100,101,102, + 117,104,105,106,107,108,109,110,111,112, + 113,70,69,63,0,11,9,7,5,3, + 1,2,6,8,4,72,0,35,13,14, + 61,33,15,65,38,12,16,40,41,17, + 18,42,43,19,20,46,67,50,10,68, + 21,30,22,34,23,1,2,4,66,64, + 24,25,6,91,92,99,8,100,31,70, + 32,63,107,108,104,105,106,112,111,113, + 89,88,109,110,97,98,93,94,101,102, + 26,27,69,90,103,3,58,5,0 }; }; public final static byte asr[] = Asr.asr; @@ -1874,59 +1901,59 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface Nasb { public final static char nasb[] = {0, - 72,11,14,11,4,219,11,183,11,47, - 158,90,90,11,231,232,11,232,129,232, - 46,232,225,11,90,131,179,84,175,10, - 11,148,11,131,11,11,11,179,179,11, - 11,11,137,137,12,179,199,179,137,11, - 179,11,11,179,137,179,131,10,11,179, - 123,194,89,32,32,21,11,211,131,179, - 12,81,60,12,11,11,179,119,179,179, - 183,183,179,112,179,179,90,34,215,194, - 239,179,179,79,51,68,79,179,47,10, - 25,51,199,123,49,125,211,56,92,27, - 175,11,23,89,60,60,25,215,97,97, - 112,42,183,112,112,137,194,194,42,131, - 194,11,14,218,239,79,79,163,199,11, - 10,47,42,11,11,11,108,11,11,11, - 11,11,90,11,11,198,205,131,27,27, - 196,27,27,27,27,27,27,11,11,11, - 11,11,11,11,11,11,11,11,27,11, - 11,199,11,49,140,11,137,11,60,11, - 12,27,179,179,23,102,11,12,11,173, - 11,11,11,167,167,42,42,42,34,119, - 84,11,90,36,137,68,42,27,47,89, - 108,32,32,205,189,189,189,189,131,105, - 150,11,12,12,1,27,62,119,205,11, - 11,16,16,105,155,27,27,27,27,27, - 27,27,27,27,27,27,27,27,27,27, - 27,27,27,27,27,27,27,27,27,27, - 27,27,27,27,27,155,27,25,179,143, - 125,10,105,11,38,23,179,27,11,11, - 173,89,97,97,183,179,11,11,194,215, - 194,11,27,11,64,169,137,90,90,10, - 100,12,95,179,12,12,11,11,11,11, - 118,12,27,11,90,131,60,189,92,215, - 12,214,131,214,12,60,11,11,11,11, + 96,11,23,11,4,232,11,185,11,220, + 134,147,147,11,228,229,11,229,18,229, + 105,229,222,11,147,174,155,141,151,219, + 11,249,11,174,11,11,11,155,155,11, + 11,11,177,177,63,155,20,155,177,11, + 155,11,11,155,177,155,174,10,11,155, + 14,205,146,16,16,43,11,209,174,155, + 63,11,11,36,86,63,11,11,155,172, + 155,155,185,185,155,108,155,155,147,94, + 213,205,238,155,155,92,60,157,92,155, + 220,10,29,60,20,14,12,113,209,82, + 65,31,151,11,27,146,86,86,29,213, + 167,167,108,56,185,108,108,177,205,205, + 56,174,205,11,23,231,238,92,92,194, + 20,11,10,220,56,11,11,11,101,11, + 11,11,11,11,147,11,11,39,161,174, + 31,31,216,31,31,31,31,31,31,11, 11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,121,152,11,27,11, - 194,11,11,11,153,11,47,192,194,194, - 47,77,12,27,42,23,27,27,95,209, - 97,189,189,194,175,27,27,10,137,137, - 12,97,11,11,11,11,199,10,131,119, - 27,189,179,134,12,131,202,119,27,66, - 11,11,11,153,246,246,234,11,246,194, - 194,11,179,38,179,11,10,10,179,12, - 155,155,155,155,11,11,117,199,12,181, - 102,11,10,199,189,12,175,12,236,194, - 179,11,12,121,54,11,23,179,12,12, - 12,12,105,105,199,179,44,11,155,102, - 203,11,12,12,179,153,11,153,194,236, - 175,155,153,66,11,167,179,23,12,12, - 11,181,105,27,60,203,77,77,173,27, - 11,236,194,194,12,188,11,54,179,44, - 12,60,153,12,236,194,12,214,54,153, - 12,189,153 + 31,11,11,20,12,47,11,177,11,86, + 11,63,31,155,155,27,200,11,63,11, + 149,11,11,11,25,25,56,56,56,94, + 172,141,11,147,45,177,157,56,31,220, + 146,101,16,16,161,246,246,246,246,174, + 117,251,11,63,63,1,31,58,172,161, + 11,68,68,117,131,31,31,31,31,31, + 31,31,31,31,31,31,31,31,31,31, + 31,31,31,31,31,31,31,31,31,31, + 31,31,31,31,31,131,31,29,155,120, + 113,10,117,11,52,27,155,31,11,11, + 149,146,167,167,185,155,11,11,205,213, + 205,11,31,11,77,190,177,147,147,10, + 198,63,165,155,63,63,11,11,11,11, + 171,63,31,11,11,11,147,174,86,246, + 65,213,63,212,174,212,63,86,11,11, + 11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,75,128,11, + 31,11,205,11,11,11,129,11,220,203, + 205,205,220,139,63,31,56,27,31,31, + 165,207,167,246,246,205,151,31,31,10, + 177,177,63,167,11,11,11,11,20,10, + 174,172,31,246,155,79,63,174,125,172, + 31,90,11,11,11,129,253,253,180,11, + 253,205,205,11,155,52,155,11,10,10, + 155,63,131,131,131,131,11,11,170,20, + 63,50,200,11,219,20,246,63,151,63, + 182,205,155,11,63,75,88,11,27,155, + 63,63,63,63,117,117,20,155,73,11, + 131,200,126,11,11,63,63,155,129,11, + 129,205,182,151,131,129,90,11,25,155, + 27,63,63,11,50,117,31,86,126,139, + 139,149,31,11,182,205,205,63,245,11, + 88,155,73,63,86,129,63,182,205,63, + 212,88,129,63,246,129 }; }; public final static char nasb[] = Nasb.nasb; @@ -1934,31 +1961,32 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface Nasr { public final static char nasr[] = {0, - 3,12,7,5,148,146,120,145,144,2, - 0,33,0,152,0,5,2,7,135,0, - 178,0,60,0,47,4,5,7,2,12, - 0,77,0,151,0,186,0,12,2,7, - 5,66,0,137,0,5,1,0,156,0, - 2,68,0,124,0,12,2,7,5,87, - 0,173,0,184,0,113,0,68,134,133, - 0,172,65,45,4,0,56,0,111,0, - 4,188,0,64,53,7,2,4,91,5, - 0,4,28,0,5,91,22,4,0,96, - 95,5,55,0,4,98,0,95,96,4, - 0,105,4,45,65,0,2,53,68,0, - 157,0,155,0,166,5,165,0,3,5, - 2,46,0,4,175,0,2,61,0,4, - 66,0,4,45,39,176,0,4,47,168, - 0,66,45,78,4,39,0,65,45,4, - 132,0,5,104,185,0,110,0,5,104, - 162,0,96,95,64,53,7,2,4,0, - 139,0,4,45,65,67,0,33,4,47, - 0,4,39,38,0,5,12,7,2,3, - 0,2,114,0,4,47,39,0,96,95, - 53,64,55,5,7,2,0,38,53,7, - 2,4,154,0,2,5,120,116,117,118, - 12,88,0,22,177,4,102,0,4,45, - 65,104,43,5,0,4,47,115,0 + 3,12,7,5,147,145,119,144,143,2, + 0,155,0,154,0,76,0,5,45,2, + 3,0,151,0,109,0,59,0,46,4, + 5,7,2,12,0,4,187,0,2,7, + 3,0,177,0,185,0,4,65,0,138, + 0,12,2,7,5,65,0,172,0,2, + 67,0,31,0,4,27,0,5,2,7, + 134,0,136,0,156,0,183,0,4,174, + 0,12,2,7,5,86,0,123,0,112, + 0,110,0,150,0,171,64,44,4,0, + 94,95,4,0,5,1,0,104,4,44, + 64,0,165,5,164,0,4,97,0,4, + 44,38,175,0,2,113,0,65,44,77, + 4,38,0,64,44,4,131,0,55,0, + 63,52,7,2,4,90,5,0,95,94, + 63,52,7,2,4,0,67,133,132,0, + 4,46,38,0,5,90,21,4,0,2, + 52,67,0,2,45,0,2,60,0,21, + 176,4,101,0,4,44,64,66,0,5, + 103,161,0,5,103,184,0,95,94,5, + 54,0,4,38,37,0,95,94,52,63, + 54,5,7,2,0,5,7,12,3,1, + 0,2,5,119,115,116,117,12,87,0, + 37,52,7,2,4,153,0,4,44,64, + 103,42,5,0,31,4,46,0,4,46, + 167,0,4,46,114,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -1967,14 +1995,14 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface TerminalIndex { public final static char terminalIndex[] = {0, 115,116,2,32,14,11,81,10,117,102, - 122,50,54,62,68,70,76,77,88,89, - 104,107,109,12,13,8,9,95,114,15, - 57,63,69,86,90,92,96,99,101,106, - 111,112,113,20,46,56,105,108,49,66, - 72,75,78,79,85,91,100,48,3,55, - 97,1,21,60,65,80,93,103,45,34, - 121,31,123,67,98,110,51,52,58,59, - 61,71,73,74,87,94,120,18,19,7, + 122,68,50,54,62,70,76,77,88,89, + 104,107,109,12,13,8,9,95,114,106, + 15,20,56,108,49,57,63,66,69,72, + 75,78,85,86,90,91,92,96,99,100, + 101,111,112,113,46,105,79,1,48,3, + 55,97,21,60,65,80,93,103,45,34, + 121,31,123,67,120,98,110,51,52,58, + 59,61,71,73,74,87,94,18,19,7, 16,17,22,23,33,5,24,25,26,27, 28,29,6,35,36,37,38,39,40,41, 42,43,44,82,83,84,30,119,53,4, @@ -1987,25 +2015,25 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, 133,138,140,0,0,139,236,137,0,136, - 0,147,0,135,0,0,146,152,0,0, - 153,183,162,163,164,165,166,155,167,168, - 141,169,127,170,171,172,0,129,134,173, - 0,143,181,0,0,142,156,0,0,0, - 0,0,0,149,159,176,0,206,0,190, - 0,0,203,207,0,128,132,0,0,0, - 0,0,0,0,0,0,208,175,0,0, - 0,0,0,0,0,179,126,189,0,0, - 204,214,161,210,211,212,0,0,150,0, - 0,0,209,222,182,0,0,0,213,0, - 0,0,242,151,178,192,193,194,195,196, - 198,201,0,0,216,219,221,239,0,241, - 0,131,144,145,148,0,0,158,160,0, - 174,0,184,185,186,187,188,191,0,197, - 199,0,200,205,0,217,218,0,223,226, - 228,230,0,233,234,235,0,237,238,240, - 0,130,0,154,157,177,180,202,215,220, - 0,224,225,227,229,0,231,232,243,244, - 0,0,0 + 0,147,135,0,0,146,152,0,0,153, + 183,162,163,164,165,166,155,167,168,169, + 127,170,171,145,172,0,129,134,173,0, + 142,181,0,0,141,156,0,0,0,0, + 0,0,149,159,176,0,206,0,190,0, + 0,203,207,0,128,132,0,0,0,0, + 0,0,0,0,0,208,175,0,0,0, + 0,0,0,0,179,126,189,0,0,204, + 214,161,210,211,212,0,0,0,0,150, + 0,209,222,182,0,0,0,213,0,0, + 0,242,151,178,192,193,194,195,196,198, + 201,0,0,216,219,221,239,0,241,0, + 131,143,144,148,0,0,158,160,0,174, + 0,184,185,186,187,188,191,0,197,199, + 0,200,205,0,217,218,0,223,226,228, + 230,0,233,234,235,0,237,238,240,0, + 130,0,154,157,177,180,202,215,220,0, + 224,225,227,229,0,231,232,243,244,0, + 0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -2051,18 +2079,18 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopeLhs { public final static char scopeLhs[] = { - 43,17,17,82,17,17,17,17,82,71, - 44,76,75,118,62,51,82,81,43,17, - 82,19,3,6,162,162,159,116,43,74, - 118,117,119,52,44,135,129,82,17,17, - 129,97,57,131,85,165,162,159,126,59, - 117,117,119,177,49,56,139,18,17,17, - 17,17,17,11,113,159,126,82,81,81, - 37,135,81,17,17,17,17,97,82,19, - 166,162,178,95,103,77,58,154,86,119, - 83,79,140,139,173,135,16,159,119,115, - 21,127,127,55,135,135,82,43,159,80, - 133,46,133,46,165,115,116,43,43,57 + 42,16,16,81,16,16,16,16,81,70, + 43,75,74,117,61,50,81,80,42,16, + 81,18,3,6,161,161,158,115,42,73, + 117,116,118,51,43,134,128,81,16,16, + 128,96,56,130,84,164,161,158,125,58, + 116,116,118,176,48,55,138,17,16,16, + 16,16,16,11,112,158,125,81,80,80, + 36,134,80,16,16,16,16,96,81,18, + 165,161,177,94,102,76,57,153,85,118, + 82,78,139,138,172,134,15,158,118,114, + 20,126,126,54,134,134,81,42,158,79, + 132,45,132,45,164,114,115,42,42,56 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -2070,18 +2098,18 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopeLa { public final static byte scopeLa[] = { - 119,87,87,87,87,87,87,87,87,71, - 11,71,71,71,63,1,87,122,59,3, - 11,87,63,63,1,1,11,71,59,71, + 119,75,75,75,75,75,75,75,75,71, + 11,71,71,71,63,1,75,122,60,3, + 11,75,63,63,1,1,11,71,60,71, 71,1,1,1,1,4,63,11,1,1, - 63,87,87,87,119,87,1,11,71,1, - 1,1,1,11,11,71,118,87,87,87, - 87,87,118,1,87,1,69,87,87,87, - 72,4,87,63,63,63,63,87,11,3, - 1,1,87,87,3,118,87,1,1,1, - 11,72,87,118,87,5,87,1,28,70, - 87,1,1,6,1,28,76,75,11,11, - 4,4,4,4,3,1,59,1,1,3 + 63,75,75,75,119,75,1,11,71,1, + 1,1,1,11,11,71,118,75,75,75, + 75,75,118,1,75,1,69,75,75,75, + 72,4,75,63,63,63,63,75,11,3, + 1,1,75,75,3,118,75,1,1,1, + 11,72,75,118,75,5,75,1,28,70, + 75,1,1,6,1,28,77,76,11,11, + 4,4,4,4,3,1,60,1,1,3 }; }; public final static byte scopeLa[] = ScopeLa.scopeLa; @@ -2108,72 +2136,72 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopeRhs { public final static char scopeRhs[] = {0, - 314,3,61,0,127,0,313,3,119,0, - 127,176,0,128,180,75,0,218,0,291, - 128,44,126,0,21,0,293,128,44,28, + 313,3,62,0,127,0,312,3,119,0, + 127,176,0,128,179,76,0,218,0,290, + 128,32,126,0,21,0,292,128,32,28, 0,21,55,0,34,135,0,21,55,0, - 0,293,128,44,28,189,0,21,132,0, - 291,128,44,131,0,185,129,0,141,0, - 222,3,290,0,290,0,2,0,127,0, - 185,129,228,0,185,129,40,228,0,185, - 129,310,40,0,132,192,170,129,0,129, - 0,192,170,129,0,137,129,0,169,0, - 306,128,169,0,128,169,0,224,129,0, - 170,244,0,140,0,0,0,138,0,0, - 0,305,128,59,251,0,128,0,251,0, - 3,0,0,128,0,304,128,59,0,45, - 128,0,152,3,0,128,280,279,128,75, - 278,169,0,279,128,75,278,169,0,217, - 0,218,0,278,169,0,98,0,0,217, + 0,292,128,32,28,188,0,21,132,0, + 290,128,32,131,0,184,129,0,145,0, + 221,3,289,0,289,0,2,0,127,0, + 184,129,227,0,184,129,30,227,0,184, + 129,309,30,0,132,191,169,129,0,129, + 0,191,169,129,0,137,129,0,168,0, + 305,128,168,0,128,168,0,224,129,0, + 169,243,0,140,0,0,0,138,0,0, + 0,304,128,60,250,0,128,0,250,0, + 3,0,0,128,0,303,128,60,0,45, + 128,0,151,3,0,128,279,278,128,76, + 277,168,0,278,128,76,277,168,0,217, + 0,218,0,277,168,0,98,0,0,217, 0,218,0,205,98,0,0,217,0,218, - 0,279,128,278,169,0,217,0,205,0, - 0,217,0,231,128,3,0,127,0,0, - 0,0,0,231,128,3,219,0,227,3, - 0,215,128,0,210,0,192,170,177,0, - 137,0,170,129,0,11,0,0,0,217, - 62,0,126,0,231,128,3,182,0,182, + 0,278,128,277,168,0,217,0,205,0, + 0,217,0,230,128,3,0,127,0,0, + 0,0,0,230,128,3,218,0,226,3, + 0,214,128,0,210,0,191,169,176,0, + 137,0,169,129,0,11,0,0,0,216, + 58,0,126,0,230,128,3,181,0,181, 0,2,0,0,127,0,0,0,0,0, - 210,3,0,203,0,230,128,59,29,15, - 0,185,129,54,47,0,199,129,0,132, - 185,129,276,47,0,185,129,276,47,0, - 185,129,70,125,54,0,230,128,59,54, - 0,230,128,59,123,54,0,230,128,59, - 126,54,0,273,128,59,125,65,0,273, - 128,59,65,0,185,129,65,0,138,0, - 192,185,129,244,0,140,0,185,129,244, - 0,192,170,129,10,0,170,129,10,0, - 95,140,0,150,0,266,128,146,0,266, - 128,169,0,163,85,0,226,162,226,301, - 3,82,0,127,175,0,226,301,3,82, - 0,129,0,127,175,0,226,162,226,162, - 226,3,82,0,226,162,226,3,82,0, - 226,3,82,0,129,0,129,0,127,175, - 0,163,3,76,202,81,0,127,129,0, - 202,81,0,110,2,134,127,129,0,239, - 3,76,0,210,171,0,34,173,0,171, - 0,179,34,173,0,239,3,86,0,202, - 157,239,3,84,0,64,175,0,239,3, - 84,0,127,175,64,175,0,300,128,59, - 0,163,0,217,78,0,31,0,163,117, - 160,0,31,173,0,178,3,0,127,153, - 0,222,3,0,217,62,263,0,163,62, - 0,178,3,297,66,129,0,127,0,0, - 0,0,297,66,129,0,2,149,127,0, - 0,0,0,178,3,35,0,151,0,127, - 28,170,129,0,32,151,0,95,140,32, - 151,0,223,185,129,0,150,32,151,0, - 178,3,39,0,163,3,39,0,163,3, - 63,178,44,31,0,178,44,31,0,21, - 2,134,127,0,163,3,63,178,44,34, - 0,178,44,34,0,163,3,63,178,44, - 36,0,178,44,36,0,163,3,63,178, - 44,32,0,178,44,32,0,222,3,127, - 192,170,129,10,0,127,192,170,129,10, - 0,140,2,0,127,0,222,3,126,177, - 170,129,10,0,177,170,129,10,0,138, - 2,0,127,0,222,3,136,0,222,3, - 141,0,163,62,141,0,258,0,32,0, - 32,144,0,166,0,163,3,0 + 209,3,0,203,0,229,128,60,29,12, + 0,184,129,57,56,0,199,129,0,132, + 184,129,275,56,0,184,129,275,56,0, + 184,129,70,125,57,0,229,128,60,57, + 0,229,128,60,123,57,0,229,128,60, + 126,57,0,272,128,60,125,65,0,272, + 128,60,65,0,184,129,65,0,138,0, + 191,184,129,243,0,140,0,184,129,243, + 0,191,169,129,10,0,169,129,10,0, + 95,140,0,150,0,265,128,145,0,265, + 128,168,0,162,86,0,225,161,225,300, + 3,83,0,127,175,0,225,300,3,83, + 0,129,0,127,175,0,225,161,225,161, + 225,3,83,0,225,161,225,3,83,0, + 225,3,83,0,129,0,129,0,127,175, + 0,162,3,77,201,82,0,127,129,0, + 201,82,0,110,2,134,127,129,0,238, + 3,77,0,209,170,0,34,173,0,170, + 0,179,34,173,0,238,3,87,0,201, + 155,238,3,85,0,64,175,0,238,3, + 85,0,127,175,64,175,0,299,128,60, + 0,162,0,216,79,0,31,0,162,117, + 159,0,31,173,0,177,3,0,127,153, + 0,221,3,0,216,58,262,0,162,58, + 0,177,3,296,66,129,0,127,0,0, + 0,0,296,66,129,0,2,149,127,0, + 0,0,0,177,3,45,0,151,0,127, + 28,169,129,0,32,151,0,95,140,32, + 151,0,224,184,129,0,150,32,151,0, + 177,3,51,0,162,3,51,0,162,3, + 63,177,32,36,0,177,32,36,0,21, + 2,134,127,0,162,3,63,177,32,44, + 0,177,32,44,0,162,3,63,177,32, + 47,0,177,32,47,0,162,3,63,177, + 32,37,0,177,32,37,0,221,3,127, + 191,169,129,10,0,127,191,169,129,10, + 0,140,2,0,127,0,221,3,126,176, + 169,129,10,0,176,169,129,10,0,138, + 2,0,127,0,221,3,136,0,221,3, + 140,0,162,58,140,0,257,0,32,0, + 32,143,0,165,0,162,3,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -2181,37 +2209,37 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopeState { public final static char scopeState[] = {0, - 1835,890,0,1300,1266,1174,0,3423,3136,0, - 4379,0,4693,4691,4686,0,1691,3010,1649,2635, - 0,1931,567,0,1337,0,3016,2980,0,3462, - 4285,3373,0,3007,2651,0,2642,2605,2317,1859, - 1108,3389,3370,3303,3284,3217,3198,3131,3112,2949, - 2885,0,2726,2182,0,579,0,1557,1515,910, - 775,4164,2356,3823,3742,2650,3051,2378,0,4240, - 846,4164,3097,2350,2356,3664,3534,3674,707,3258, - 4367,4353,2920,2338,0,4680,4646,4624,4608,4592, - 4576,4544,4629,4528,4512,3710,3457,4507,3087,2916, - 4475,3852,3314,2749,2767,2674,2692,0,4164,4196, - 4367,4353,4446,3823,4229,4434,4335,3742,3674,3051, - 4263,2893,2338,0,4196,4446,0,4206,3905,3308, - 3714,3809,3791,3785,4680,4646,3555,4624,4608,3722, - 4592,4576,2909,4544,2425,4629,4528,4512,2903,3710, - 2730,2326,3457,4507,1128,3087,3222,2916,4475,3852, - 805,3314,2749,2767,616,2674,4213,2692,2320,3823, - 4229,4434,4335,4164,2600,2414,3742,3674,3051,771, - 4196,855,4263,4367,716,4353,2893,2338,4446,648, - 2109,2020,1931,567,620,4174,4142,2122,2160,581, - 2195,2286,2258,2228,2863,2833,2568,2541,2514,2487, - 3761,3684,2613,3062,779,4120,4098,4076,4054,4032, - 4010,3988,3966,3944,3642,3922,1813,2071,1771,2033, - 1982,1136,1086,1729,1944,1893,1044,813,1687,1645, - 1603,1561,1519,1477,1435,1393,1351,1309,1267,525, - 1855,999,1216,729,1178,674,912,868,956,0, - 525,4213,2320,0,4457,4423,3389,3370,3303,3284, - 3217,3198,3131,3112,2949,2885,3798,2756,2714,3565, - 2637,2595,3531,3476,2974,3442,2314,0,3798,2756, - 2714,3565,2637,2595,3531,3476,2974,3442,2314,4457, - 4423,0 + 1364,1121,0,1299,1258,1247,0,851,844,0, + 3310,0,4556,4546,4524,0,2509,1306,1757,1136, + 0,1911,1117,0,941,0,3392,3451,0,3226, + 4132,2981,0,2617,2398,0,2988,2982,2821,2758, + 553,3291,3225,3206,3140,3121,3055,3036,2969,2787, + 2723,0,2991,2968,0,798,0,2203,2120,952, + 564,3774,3485,3607,3543,3584,2899,2280,0,3259, + 2793,3774,3468,3021,3485,3155,3126,3508,2566,3089, + 4229,2732,3000,2887,0,4540,4535,4488,4471,4466, + 4453,4405,4239,4397,4392,3443,3413,4375,2933,2751, + 4370,4293,4115,3236,2478,3151,616,0,3774,4298, + 4229,2732,4308,3607,4081,4212,4192,3543,3508,2899, + 4105,571,2887,0,4298,4308,0,4651,4341,4186, + 4126,4563,3841,2728,4540,4535,4097,4488,4471,3589, + 4466,4453,3321,4405,3298,4239,4397,4392,2459,3443, + 3030,1252,3413,4375,646,2933,2388,2751,4370,4293, + 636,4115,3236,2478,567,3151,4091,616,2358,3607, + 4081,4212,4192,3774,2448,2378,3543,3508,2899,769, + 4298,847,4105,4229,715,2732,571,2887,4308,1997, + 2231,2085,1911,1117,2528,4060,4039,2099,2136,2169, + 581,2329,2302,2199,2582,2243,2697,2671,2641,777, + 3751,3728,3705,3518,2909,4018,3997,3976,3955,3934, + 3913,3892,3871,3846,3805,3784,1794,2048,1753,2011, + 1960,1132,1076,1712,1923,1872,1035,806,1671,1630, + 1589,1548,1507,1466,1425,1384,1343,1302,1261,526, + 1835,991,1210,728,1173,674,904,860,948,0, + 526,4091,2358,0,4325,4319,3291,3225,3206,3140, + 3121,3055,3036,2969,2787,2723,3582,2565,2506,3432, + 2421,2362,3391,3356,2811,3315,2226,0,3582,2565, + 2506,3432,2421,2362,3391,3356,2811,3315,2226,4325, + 4319,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2219,59 +2247,59 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface InSymb { public final static char inSymb[] = {0, - 0,295,47,58,128,169,189,28,15,54, - 296,54,276,3,267,268,251,269,244,270, - 65,271,272,126,10,129,278,128,3,5, - 126,7,131,177,182,28,44,29,59,123, - 126,125,129,129,29,59,170,234,129,166, - 127,126,125,59,129,44,129,185,170,75, - 128,266,128,188,182,210,277,215,129,6, - 210,171,62,3,64,66,44,170,3,44, - 63,128,59,128,59,59,70,185,185,157, - 128,127,126,128,185,4,128,59,128,185, - 128,170,28,128,279,72,215,62,3,70, - 69,170,128,128,62,62,128,192,128,128, - 128,230,229,128,128,129,275,132,305,129, - 167,228,47,169,307,128,128,72,192,258, - 192,128,273,125,274,291,171,39,31,34, - 36,32,10,136,134,4,3,129,35,30, - 5,25,24,6,8,27,26,141,147,149, - 148,151,150,154,153,158,156,159,61,160, - 294,192,126,279,59,289,129,290,217,160, - 152,128,59,6,184,215,291,231,232,146, - 233,293,28,10,60,230,230,230,185,170, - 128,309,228,40,129,4,273,70,69,128, - 3,220,219,3,44,44,44,44,129,3, - 7,126,178,163,128,64,66,170,3,127, - 126,103,120,3,62,90,96,25,24,92, - 91,6,94,93,63,44,88,89,8,98, + 0,294,56,59,128,168,188,28,12,57, + 295,57,275,3,266,267,250,268,243,269, + 65,270,271,126,10,129,277,128,3,5, + 126,7,131,176,181,28,32,29,60,123, + 126,125,129,129,29,60,169,233,129,165, + 127,126,125,60,129,32,129,184,169,76, + 128,265,128,187,181,209,276,214,129,6, + 209,126,125,170,58,3,64,66,32,169, + 3,32,63,128,60,128,60,60,70,184, + 184,155,128,127,126,128,184,4,128,60, + 128,184,128,169,28,128,278,72,214,58, + 3,70,69,169,128,128,58,58,128,191, + 128,128,128,229,228,128,128,129,274,132, + 304,129,166,227,56,168,306,128,128,72, + 191,257,191,128,272,125,273,290,170,51, + 36,44,47,37,10,136,134,4,3,129, + 45,31,5,25,24,6,8,27,26,140, + 146,148,147,150,149,153,152,156,154,157, + 62,159,293,191,278,60,288,129,289,216, + 159,151,128,60,6,183,214,290,230,231, + 145,232,292,28,10,61,229,229,229,184, + 169,128,308,227,30,129,4,272,70,69, + 128,3,219,218,3,32,32,32,32,129, + 3,7,126,177,162,128,64,66,169,3, + 127,103,120,3,58,90,96,25,24,92, + 91,6,94,93,63,32,88,89,8,98, 97,100,99,101,113,112,111,110,109,108, - 107,106,105,104,70,117,102,69,280,128, - 69,185,3,265,128,128,157,70,227,210, - 3,128,69,69,63,44,234,234,275,192, - 306,126,72,285,210,69,129,40,310,185, - 215,227,128,3,178,163,178,178,178,178, - 170,222,157,136,10,129,62,297,3,192, - 178,28,129,28,222,163,148,148,147,147, - 147,150,150,150,150,149,149,153,151,151, - 156,154,158,163,159,128,300,80,78,1, - 163,86,84,82,81,76,83,85,79,77, - 54,75,222,69,304,128,70,70,128,215, - 128,70,70,132,69,72,70,185,129,129, - 231,128,63,63,63,63,192,177,129,170, - 211,3,298,171,152,129,185,170,72,281, - 119,9,217,72,3,3,3,202,3,125, - 163,125,180,69,224,293,185,185,157,231, - 3,3,3,3,127,126,170,28,178,128, - 128,223,5,28,3,239,171,239,301,226, - 146,76,239,128,128,63,128,157,163,163, - 163,163,3,3,192,157,260,263,62,179, - 4,127,95,313,171,157,210,157,226,162, - 128,3,157,281,61,60,224,128,222,222, - 127,128,3,62,163,4,157,157,128,70, - 202,162,226,266,163,3,234,128,224,260, - 222,217,122,226,162,157,314,70,128,157, - 226,69,157 + 107,106,105,104,70,117,102,69,279,128, + 69,184,3,264,128,128,155,70,226,209, + 3,128,69,69,63,32,233,233,274,191, + 305,126,72,284,209,69,129,30,309,184, + 214,226,128,3,177,162,177,177,177,177, + 169,221,155,136,127,126,10,129,58,296, + 3,191,177,28,129,28,221,162,147,147, + 146,146,146,149,149,149,149,148,148,152, + 150,150,154,153,156,162,157,128,299,81, + 79,1,162,87,85,83,82,77,84,86, + 80,78,57,76,221,69,303,128,70,70, + 128,214,128,70,70,132,69,72,70,184, + 129,129,230,128,63,63,63,63,191,176, + 129,169,210,3,297,170,151,129,184,169, + 72,280,119,9,216,72,3,3,3,201, + 3,125,162,125,179,69,222,292,184,184, + 155,230,3,3,3,3,127,126,169,28, + 177,128,128,224,5,28,3,238,170,238, + 300,225,145,77,238,128,128,63,128,155, + 162,162,162,162,3,3,191,155,259,262, + 58,178,4,125,127,95,312,170,155,209, + 155,225,161,128,3,155,280,62,61,222, + 128,221,221,127,128,3,58,162,4,155, + 155,128,70,201,161,225,265,162,3,233, + 128,222,259,221,216,122,225,161,155,313, + 70,128,155,225,69,155 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2420,13 +2448,13 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym "identifier_name", "operator_function_id_name", "template_id_name", - "class_name", "nested_name_specifier", "class_or_namespace_name", "nested_name_specifier_with_tem" + "plate", "class_or_namespace_name_with_t" + "emplate", + "class_name", "postfix_expression", "simple_type_specifier", "pseudo_destructor_name", @@ -2548,20 +2576,20 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 523, + NUM_STATES = 526, NT_OFFSET = 124, - LA_STATE_OFFSET = 5764, + LA_STATE_OFFSET = 5668, MAX_LA = 2147483647, - NUM_RULES = 524, - NUM_NONTERMINALS = 193, - NUM_SYMBOLS = 317, + NUM_RULES = 525, + NUM_NONTERMINALS = 192, + NUM_SYMBOLS = 316, SEGMENT_SIZE = 8192, - START_STATE = 2314, + START_STATE = 2226, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 121, EOLT_SYMBOL = 121, - ACCEPT_ACTION = 4864, - ERROR_ACTION = 5240; + ACCEPT_ACTION = 4762, + ERROR_ACTION = 5143; 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 9794cc63423..f9126b33f56 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,80 +15,80 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp; public interface CPPParsersym { public final static int - TK_asm = 58, - TK_auto = 49, - TK_bool = 12, - TK_break = 77, - TK_case = 78, + TK_asm = 59, + TK_auto = 35, + TK_bool = 13, + TK_break = 78, + TK_case = 79, TK_catch = 119, - TK_char = 13, - TK_class = 60, - TK_const = 46, - TK_const_cast = 31, - TK_continue = 79, - TK_default = 80, + TK_char = 14, + TK_class = 61, + TK_const = 33, + TK_const_cast = 36, + TK_continue = 80, + TK_default = 81, TK_delete = 64, - TK_do = 81, - TK_double = 14, - TK_dynamic_cast = 32, + TK_do = 82, + TK_double = 15, + TK_dynamic_cast = 37, TK_else = 122, TK_enum = 65, - TK_explicit = 50, + TK_explicit = 38, TK_export = 74, - TK_extern = 15, - TK_false = 33, + TK_extern = 12, + TK_false = 39, TK_float = 16, - TK_for = 82, - TK_friend = 51, - TK_goto = 83, - TK_if = 84, - TK_inline = 52, + TK_for = 83, + TK_friend = 40, + TK_goto = 84, + TK_if = 85, + TK_inline = 41, TK_int = 17, TK_long = 18, - TK_mutable = 53, - TK_namespace = 54, + TK_mutable = 42, + TK_namespace = 57, TK_new = 66, TK_operator = 7, TK_private = 114, TK_protected = 115, TK_public = 116, - TK_register = 55, - TK_reinterpret_cast = 34, - TK_return = 85, + TK_register = 43, + TK_reinterpret_cast = 44, + TK_return = 86, TK_short = 19, TK_signed = 20, - TK_sizeof = 35, - TK_static = 56, - TK_static_cast = 36, + TK_sizeof = 45, + TK_static = 46, + TK_static_cast = 47, TK_struct = 67, - TK_switch = 86, + TK_switch = 87, TK_template = 28, - TK_this = 37, - TK_throw = 61, - TK_try = 75, - TK_true = 38, - TK_typedef = 57, - TK_typeid = 39, + TK_this = 48, + TK_throw = 62, + TK_try = 76, + TK_true = 49, + TK_typedef = 50, + TK_typeid = 51, TK_typename = 10, TK_union = 68, TK_unsigned = 21, - TK_using = 47, - TK_virtual = 40, + TK_using = 56, + TK_virtual = 30, TK_void = 22, - TK_volatile = 48, + TK_volatile = 34, TK_wchar_t = 23, - TK_while = 76, - TK_integer = 41, - TK_floating = 42, - TK_charconst = 43, + TK_while = 77, + TK_integer = 52, + TK_floating = 53, + TK_charconst = 54, TK_stringlit = 29, TK_identifier = 1, TK_Completion = 2, TK_EndOfCompletion = 9, TK_Invalid = 124, - TK_LeftBracket = 62, + TK_LeftBracket = 58, TK_LeftParen = 3, - TK_LeftBrace = 59, + TK_LeftBrace = 60, TK_Dot = 120, TK_DotStar = 96, TK_Arrow = 103, @@ -100,12 +100,12 @@ public interface CPPParsersym { TK_Plus = 24, TK_Minus = 25, TK_Tilde = 5, - TK_Bang = 30, + TK_Bang = 31, TK_Slash = 91, TK_Percent = 92, TK_RightShift = 88, TK_LeftShift = 89, - TK_LT = 44, + TK_LT = 32, TK_GT = 63, TK_LE = 93, TK_GE = 94, @@ -131,9 +131,9 @@ public interface CPPParsersym { TK_CaretAssign = 112, TK_OrAssign = 113, TK_Comma = 69, - TK_zero = 45, + TK_zero = 55, TK_RightBracket = 118, - TK_RightParen = 87, + TK_RightParen = 75, TK_RightBrace = 71, TK_SemiColon = 11, TK_ERROR_TOKEN = 73, @@ -153,10 +153,10 @@ public interface CPPParsersym { "EndOfCompletion", "typename", "SemiColon", + "extern", "bool", "char", "double", - "extern", "float", "int", "long", @@ -171,39 +171,39 @@ public interface CPPParsersym { "MinusMinus", "template", "stringlit", - "Bang", - "const_cast", - "dynamic_cast", - "false", - "reinterpret_cast", - "sizeof", - "static_cast", - "this", - "true", - "typeid", "virtual", - "integer", - "floating", - "charconst", + "Bang", "LT", - "zero", "const", - "using", "volatile", "auto", + "const_cast", + "dynamic_cast", "explicit", + "false", "friend", "inline", "mutable", - "namespace", "register", + "reinterpret_cast", + "sizeof", "static", + "static_cast", + "this", + "true", "typedef", + "typeid", + "integer", + "floating", + "charconst", + "zero", + "using", + "namespace", + "LeftBracket", "asm", "LeftBrace", "class", "throw", - "LeftBracket", "GT", "delete", "enum", @@ -216,6 +216,7 @@ public interface CPPParsersym { "Colon", "ERROR_TOKEN", "export", + "RightParen", "try", "while", "break", @@ -228,7 +229,6 @@ public interface CPPParsersym { "if", "return", "switch", - "RightParen", "RightShift", "LeftShift", "ArrowStar", 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 82c1743da05..04e4e6cfbd1 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 @@ -378,1731 +378,1871 @@ public CPPSizeofExpressionParser(String[] mapFrom) { // constructor } // - // Rule 37: unqualified_id_name ::= ~ class_name + // Rule 37: unqualified_id_name ::= ~ identifier_token // case 37: { action.builder. consumeDestructorName(); break; } // - // Rule 38: identifier_name ::= identifier_token + // Rule 38: unqualified_id_name ::= ~ template_id_name // case 38: { action.builder. + consumeDestructorNameTemplateId(); break; + } + + // + // Rule 39: identifier_name ::= identifier_token + // + case 39: { action.builder. consumeIdentifierName(); break; } // - // Rule 39: template_opt ::= template - // - case 39: { action.builder. - consumePlaceHolder(); break; - } - - // - // Rule 40: template_opt ::= $Empty + // Rule 40: template_opt ::= template // case 40: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 41: dcolon_opt ::= :: - // - case 41: { action.builder. consumePlaceHolder(); break; } // - // Rule 42: dcolon_opt ::= $Empty + // Rule 41: template_opt ::= $Empty // - case 42: { action.builder. + case 41: { action.builder. consumeEmpty(); break; } // - // Rule 43: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name + // Rule 42: dcolon_opt ::= :: + // + case 42: { action.builder. + consumePlaceHolder(); break; + } + + // + // Rule 43: dcolon_opt ::= $Empty // case 43: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 44: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name + // + case 44: { action.builder. consumeQualifiedId(true); break; } // - // Rule 44: qualified_id_name ::= :: identifier_name - // - case 44: { action.builder. - consumeGlobalQualifiedId(); break; - } - - // - // Rule 45: qualified_id_name ::= :: operator_function_id_name + // Rule 45: qualified_id_name ::= :: identifier_name // case 45: { action.builder. consumeGlobalQualifiedId(); break; } // - // Rule 46: qualified_id_name ::= :: template_id_name + // Rule 46: qualified_id_name ::= :: operator_function_id_name // case 46: { action.builder. consumeGlobalQualifiedId(); break; } // - // Rule 47: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template + // Rule 47: qualified_id_name ::= :: template_id_name // case 47: { action.builder. - consumeNestedNameSpecifier(true); break; + consumeGlobalQualifiedId(); break; } // - // Rule 48: nested_name_specifier ::= class_or_namespace_name :: + // Rule 48: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template // case 48: { action.builder. - consumeNestedNameSpecifier(false); break; - } - - // - // Rule 49: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template - // - case 49: { action.builder. consumeNestedNameSpecifier(true); break; } // - // Rule 50: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: + // Rule 49: nested_name_specifier ::= class_or_namespace_name :: // - case 50: { action.builder. + case 49: { action.builder. consumeNestedNameSpecifier(false); break; } // - // Rule 51: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name + // Rule 50: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template + // + case 50: { action.builder. + consumeNestedNameSpecifier(true); break; + } + + // + // Rule 51: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: // case 51: { action.builder. + consumeNestedNameSpecifier(false); break; + } + + // + // Rule 52: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name + // + case 52: { action.builder. consumeNameWithTemplateKeyword(); break; } // - // Rule 53: nested_name_specifier_opt ::= $Empty + // Rule 54: nested_name_specifier_opt ::= $Empty // - case 53: { action.builder. + case 54: { action.builder. consumeNestedNameSpecifierEmpty(); break; } // - // Rule 56: postfix_expression ::= postfix_expression [ expression ] + // Rule 57: postfix_expression ::= postfix_expression [ expression ] // - case 56: { action.builder. + case 57: { action.builder. consumeExpressionArraySubscript(); break; } // - // Rule 57: postfix_expression ::= postfix_expression ( expression_list_opt ) + // Rule 58: postfix_expression ::= postfix_expression ( expression_list_opt ) // - case 57: { action.builder. + case 58: { action.builder. consumeExpressionFunctionCall(); break; } // - // Rule 58: postfix_expression ::= simple_type_specifier ( expression_list_opt ) + // Rule 59: postfix_expression ::= simple_type_specifier ( expression_list_opt ) // - case 58: { action.builder. + case 59: { action.builder. consumeExpressionSimpleTypeConstructor(); break; } // - // Rule 59: postfix_expression ::= typename dcolon_opt nested_name_specifier identifier_name ( expression_list_opt ) - // - case 59: { action.builder. - consumeExpressionTypeName(); break; - } - - // - // Rule 60: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) + // 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 ::= postfix_expression . qualified_or_unqualified_name + // Rule 61: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) // case 61: { action.builder. + consumeExpressionTypeName(); break; + } + + // + // Rule 62: postfix_expression ::= postfix_expression . qualified_or_unqualified_name + // + case 62: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 62: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name + // Rule 63: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name // - case 62: { action.builder. + case 63: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 63: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name + // Rule 64: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name // - case 63: { action.builder. + case 64: { action.builder. consumeExpressionFieldReference(false, true); break; } // - // Rule 64: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name + // Rule 65: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name // - case 64: { action.builder. + case 65: { action.builder. consumeExpressionFieldReference(true, true); break; } // - // Rule 65: postfix_expression ::= postfix_expression . pseudo_destructor_name + // Rule 66: postfix_expression ::= postfix_expression . pseudo_destructor_name // - case 65: { action.builder. + case 66: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 66: postfix_expression ::= postfix_expression -> pseudo_destructor_name + // Rule 67: postfix_expression ::= postfix_expression -> pseudo_destructor_name // - case 66: { action.builder. + case 67: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 67: postfix_expression ::= postfix_expression ++ + // Rule 68: postfix_expression ::= postfix_expression ++ // - case 67: { action.builder. + case 68: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; } // - // Rule 68: postfix_expression ::= postfix_expression -- + // Rule 69: postfix_expression ::= postfix_expression -- // - case 68: { action.builder. + case 69: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; } // - // Rule 69: postfix_expression ::= dynamic_cast < type_id > ( expression ) + // Rule 70: postfix_expression ::= dynamic_cast < type_id > ( expression ) // - case 69: { action.builder. + case 70: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); break; } // - // Rule 70: postfix_expression ::= static_cast < type_id > ( expression ) + // Rule 71: postfix_expression ::= static_cast < type_id > ( expression ) // - case 70: { action.builder. + case 71: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_static_cast); break; } // - // Rule 71: postfix_expression ::= reinterpret_cast < type_id > ( expression ) + // Rule 72: postfix_expression ::= reinterpret_cast < type_id > ( expression ) // - case 71: { action.builder. + case 72: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); break; } // - // Rule 72: postfix_expression ::= const_cast < type_id > ( expression ) + // Rule 73: postfix_expression ::= const_cast < type_id > ( expression ) // - case 72: { action.builder. + case 73: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_const_cast); break; } // - // Rule 73: postfix_expression ::= typeid ( expression ) + // Rule 74: postfix_expression ::= typeid ( expression ) // - case 73: { action.builder. + case 74: { action.builder. consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break; } // - // Rule 74: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name - // - case 74: { action.builder. - consumePsudoDestructorName(true); break; - } - - // - // Rule 75: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name + // 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_opt destructor_type_name + // Rule 76: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name // case 76: { action.builder. + consumePsudoDestructorName(true); break; + } + + // + // Rule 77: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name + // + case 77: { action.builder. consumePsudoDestructorName(false); break; } // - // Rule 77: destructor_type_name ::= ~ type_name + // Rule 78: destructor_type_name ::= ~ identifier_token // - case 77: { action.builder. + case 78: { action.builder. consumeDestructorName(); break; } // - // Rule 81: unary_expression ::= ++ cast_expression + // Rule 79: destructor_type_name ::= ~ template_id_name // - case 81: { action.builder. + case 79: { action.builder. + consumeDestructorNameTemplateId(); break; + } + + // + // Rule 83: unary_expression ::= ++ cast_expression + // + case 83: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; } // - // Rule 82: unary_expression ::= -- cast_expression + // Rule 84: unary_expression ::= -- cast_expression // - case 82: { action.builder. + case 84: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; } // - // Rule 83: unary_expression ::= & cast_expression + // Rule 85: unary_expression ::= & cast_expression // - case 83: { action.builder. + case 85: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; } // - // Rule 84: unary_expression ::= * cast_expression + // Rule 86: unary_expression ::= * cast_expression // - case 84: { action.builder. + case 86: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; } // - // Rule 85: unary_expression ::= + cast_expression + // Rule 87: unary_expression ::= + cast_expression // - case 85: { action.builder. + case 87: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; } // - // Rule 86: unary_expression ::= - cast_expression + // Rule 88: unary_expression ::= - cast_expression // - case 86: { action.builder. + case 88: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; } // - // Rule 87: unary_expression ::= ~ cast_expression + // Rule 89: unary_expression ::= ~ cast_expression // - case 87: { action.builder. + case 89: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; } // - // Rule 88: unary_expression ::= ! cast_expression + // Rule 90: unary_expression ::= ! cast_expression // - case 88: { action.builder. + case 90: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; } // - // Rule 89: unary_expression ::= sizeof unary_expression + // Rule 91: unary_expression ::= sizeof unary_expression // - case 89: { action.builder. + case 91: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; } // - // Rule 90: new_expression ::= dcolon_opt new new_placement_opt new_type_id new_array_expressions_opt new_initializer_opt + // Rule 92: new_expression ::= dcolon_opt new new_placement_opt new_type_id new_array_expressions_opt new_initializer_opt // - case 90: { action.builder. + case 92: { action.builder. consumeExpressionNew(true); break; } // - // Rule 91: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_array_expressions_opt new_initializer_opt + // Rule 93: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_array_expressions_opt new_initializer_opt // - case 91: { action.builder. + case 93: { action.builder. consumeExpressionNew(false); break; } // - // Rule 93: new_placement_opt ::= $Empty + // Rule 95: new_placement_opt ::= $Empty // - case 93: { action.builder. + case 95: { action.builder. consumeEmpty(); break; } // - // Rule 94: new_type_id ::= type_specifier_seq + // Rule 96: new_type_id ::= type_specifier_seq // - case 94: { action.builder. + case 96: { action.builder. consumeTypeId(false); break; } // - // Rule 95: new_type_id ::= type_specifier_seq new_declarator + // Rule 97: new_type_id ::= type_specifier_seq new_declarator // - case 95: { action.builder. + case 97: { action.builder. consumeTypeId(true); break; } // - // Rule 96: new_declarator ::= new_pointer_operators + // Rule 98: new_declarator ::= new_pointer_operators // - case 96: { action.builder. + case 98: { action.builder. consumeNewDeclarator(); break; } // - // Rule 105: new_initializer_opt ::= $Empty + // Rule 107: new_initializer_opt ::= $Empty // - case 105: { action.builder. + case 107: { action.builder. consumeEmpty(); break; } // - // Rule 106: delete_expression ::= dcolon_opt delete cast_expression + // Rule 108: delete_expression ::= dcolon_opt delete cast_expression // - case 106: { action.builder. + case 108: { action.builder. consumeExpressionDelete(false); break; } // - // Rule 107: delete_expression ::= dcolon_opt delete [ ] cast_expression + // Rule 109: delete_expression ::= dcolon_opt delete [ ] cast_expression // - case 107: { action.builder. + case 109: { action.builder. consumeExpressionDelete(true); break; } // - // Rule 109: cast_expression ::= ( type_id ) cast_expression + // Rule 111: cast_expression ::= ( type_id ) cast_expression // - case 109: { action.builder. + case 111: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_cast); break; } // - // Rule 111: pm_expression ::= pm_expression .* cast_expression + // Rule 113: pm_expression ::= pm_expression .* cast_expression // - case 111: { action.builder. + case 113: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot); break; } // - // Rule 112: pm_expression ::= pm_expression ->* cast_expression + // Rule 114: pm_expression ::= pm_expression ->* cast_expression // - case 112: { action.builder. + case 114: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow); break; } // - // Rule 114: multiplicative_expression ::= multiplicative_expression * pm_expression + // Rule 116: multiplicative_expression ::= multiplicative_expression * pm_expression // - case 114: { action.builder. + case 116: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply); break; } // - // Rule 115: multiplicative_expression ::= multiplicative_expression / pm_expression + // Rule 117: multiplicative_expression ::= multiplicative_expression / pm_expression // - case 115: { action.builder. + case 117: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide); 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_modulo); break; } // - // Rule 118: additive_expression ::= additive_expression + multiplicative_expression + // Rule 120: additive_expression ::= additive_expression + multiplicative_expression // - case 118: { action.builder. + case 120: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus); break; } // - // Rule 119: additive_expression ::= additive_expression - multiplicative_expression + // Rule 121: additive_expression ::= additive_expression - multiplicative_expression // - case 119: { action.builder. + case 121: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus); break; } // - // Rule 121: shift_expression ::= shift_expression << additive_expression + // Rule 123: shift_expression ::= shift_expression << additive_expression // - case 121: { action.builder. + case 123: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft); break; } // - // Rule 122: shift_expression ::= shift_expression >> additive_expression + // Rule 124: shift_expression ::= shift_expression >> additive_expression // - case 122: { action.builder. + case 124: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight); break; } // - // Rule 124: relational_expression ::= relational_expression < shift_expression + // Rule 126: relational_expression ::= relational_expression < shift_expression // - case 124: { action.builder. + case 126: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; } // - // Rule 125: relational_expression ::= relational_expression > shift_expression + // Rule 127: relational_expression ::= relational_expression > shift_expression // - case 125: { action.builder. + case 127: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); 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_lessEqual); 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_greaterEqual); break; } // - // Rule 129: equality_expression ::= equality_expression == relational_expression + // Rule 131: equality_expression ::= equality_expression == relational_expression // - case 129: { action.builder. + case 131: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; } // - // Rule 130: equality_expression ::= equality_expression != relational_expression + // Rule 132: equality_expression ::= equality_expression != relational_expression // - case 130: { action.builder. + case 132: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; } // - // Rule 132: and_expression ::= and_expression & equality_expression + // Rule 134: and_expression ::= and_expression & equality_expression // - case 132: { action.builder. + case 134: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; } // - // Rule 134: exclusive_or_expression ::= exclusive_or_expression ^ and_expression + // Rule 136: exclusive_or_expression ::= exclusive_or_expression ^ and_expression // - case 134: { action.builder. + case 136: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; } // - // Rule 136: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression + // Rule 138: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression // - case 136: { action.builder. + case 138: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; } // - // Rule 138: logical_and_expression ::= logical_and_expression && inclusive_or_expression + // Rule 140: logical_and_expression ::= logical_and_expression && inclusive_or_expression // - case 138: { action.builder. + case 140: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; } // - // Rule 140: logical_or_expression ::= logical_or_expression || logical_and_expression + // Rule 142: logical_or_expression ::= logical_or_expression || logical_and_expression // - case 140: { action.builder. + case 142: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; } // - // Rule 142: conditional_expression ::= logical_or_expression ? expression : assignment_expression + // Rule 144: conditional_expression ::= logical_or_expression ? expression : assignment_expression // - case 142: { action.builder. + case 144: { action.builder. consumeExpressionConditional(); break; } // - // Rule 143: throw_expression ::= throw + // Rule 145: throw_expression ::= throw // - case 143: { action.builder. + case 145: { action.builder. consumeExpressionThrow(false); break; } // - // Rule 144: throw_expression ::= throw assignment_expression + // Rule 146: throw_expression ::= throw assignment_expression // - case 144: { action.builder. + case 146: { action.builder. consumeExpressionThrow(true); break; } // - // Rule 147: assignment_expression ::= logical_or_expression = assignment_expression + // Rule 149: assignment_expression ::= logical_or_expression = assignment_expression // - case 147: { action.builder. + case 149: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; } // - // Rule 148: assignment_expression ::= logical_or_expression *= assignment_expression + // Rule 150: assignment_expression ::= logical_or_expression *= assignment_expression // - case 148: { action.builder. + case 150: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); 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_divideAssign); 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_moduloAssign); 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_plusAssign); 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_minusAssign); 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_shiftRightAssign); 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_shiftLeftAssign); 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_binaryAndAssign); 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_binaryXorAssign); 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_binaryOrAssign); break; } // - // Rule 159: expression_list ::= expression_list_actual + // Rule 161: expression_list ::= expression_list_actual // - case 159: { action.builder. + case 161: { action.builder. consumeExpressionList(); break; } // - // Rule 163: expression_list_opt ::= $Empty - // - case 163: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 165: expression_opt ::= $Empty + // Rule 165: expression_list_opt ::= $Empty // case 165: { action.builder. consumeEmpty(); break; } // - // Rule 168: constant_expression_opt ::= $Empty + // Rule 167: expression_opt ::= $Empty // - case 168: { action.builder. + case 167: { action.builder. consumeEmpty(); break; } // - // Rule 177: statement ::= ERROR_TOKEN + // Rule 170: constant_expression_opt ::= $Empty // - case 177: { action.builder. + case 170: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 179: statement ::= ERROR_TOKEN + // + case 179: { action.builder. consumeStatementProblem(); break; } // - // Rule 178: labeled_statement ::= identifier : statement + // Rule 180: labeled_statement ::= identifier : statement // - case 178: { action.builder. + case 180: { action.builder. consumeStatementLabeled(); break; } // - // Rule 179: labeled_statement ::= case constant_expression : + // Rule 181: labeled_statement ::= case constant_expression : // - case 179: { action.builder. + case 181: { action.builder. consumeStatementCase(); break; } // - // Rule 180: labeled_statement ::= default : + // Rule 182: labeled_statement ::= default : // - case 180: { action.builder. + case 182: { action.builder. consumeStatementDefault(); break; } // - // Rule 181: expression_statement ::= expression ; + // Rule 183: expression_statement ::= expression ; // - case 181: { action.builder. + case 183: { action.builder. consumeStatementExpression(); break; } // - // Rule 182: expression_statement ::= ; + // Rule 184: expression_statement ::= ; // - case 182: { action.builder. + case 184: { action.builder. consumeStatementNull(); break; } // - // Rule 183: compound_statement ::= { statement_seq } + // Rule 185: compound_statement ::= { statement_seq } // - case 183: { action.builder. + case 185: { action.builder. consumeStatementCompoundStatement(true); break; } // - // Rule 184: compound_statement ::= { } + // Rule 186: compound_statement ::= { } // - case 184: { action.builder. + case 186: { action.builder. consumeStatementCompoundStatement(false); break; } // - // Rule 187: selection_statement ::= if ( condition ) statement + // Rule 189: selection_statement ::= if ( condition ) statement // - case 187: { action.builder. + case 189: { action.builder. consumeStatementIf(false); break; } // - // Rule 188: selection_statement ::= if ( condition ) statement else statement + // Rule 190: selection_statement ::= if ( condition ) statement else statement // - case 188: { action.builder. + case 190: { action.builder. consumeStatementIf(true); break; } // - // Rule 189: selection_statement ::= switch ( condition ) statement + // Rule 191: selection_statement ::= switch ( condition ) statement // - case 189: { action.builder. + case 191: { action.builder. consumeStatementSwitch(); break; } // - // Rule 191: condition ::= type_specifier_seq declarator = assignment_expression + // Rule 193: condition ::= type_specifier_seq declarator = assignment_expression // - case 191: { action.builder. + case 193: { action.builder. consumeConditionDeclaration(); break; } // - // Rule 192: iteration_statement ::= while ( condition ) statement + // Rule 194: iteration_statement ::= while ( condition ) statement // - case 192: { action.builder. + case 194: { action.builder. consumeStatementWhileLoop(); break; } // - // Rule 193: iteration_statement ::= do statement while ( expression ) ; + // Rule 195: iteration_statement ::= do statement while ( expression ) ; // - case 193: { action.builder. + case 195: { action.builder. consumeStatementDoLoop(); break; } // - // Rule 194: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement - // - case 194: { action.builder. - consumeStatementForLoop(); break; - } - - // - // Rule 195: iteration_statement ::= for ( simple_declaration_with_declspec expression_opt ; expression_opt ) statement - // - case 195: { action.builder. - consumeStatementForLoop(); break; - } - - // - // Rule 196: jump_statement ::= break ; + // Rule 196: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement // case 196: { action.builder. + consumeStatementForLoop(); break; + } + + // + // Rule 197: iteration_statement ::= for ( simple_declaration_with_declspec expression_opt ; expression_opt ) statement + // + case 197: { action.builder. + consumeStatementForLoop(); break; + } + + // + // Rule 198: jump_statement ::= break ; + // + case 198: { action.builder. consumeStatementBreak(); break; } // - // Rule 197: jump_statement ::= continue ; + // Rule 199: jump_statement ::= continue ; // - case 197: { action.builder. + case 199: { action.builder. consumeStatementContinue(); break; } // - // Rule 198: jump_statement ::= return expression ; + // Rule 200: jump_statement ::= return expression ; // - case 198: { action.builder. + case 200: { action.builder. consumeStatementReturn(true); break; } // - // Rule 199: jump_statement ::= return ; + // Rule 201: jump_statement ::= return ; // - case 199: { action.builder. + case 201: { action.builder. consumeStatementReturn(false); break; } // - // Rule 200: jump_statement ::= goto identifier_token ; + // Rule 202: jump_statement ::= goto identifier_token ; // - case 200: { action.builder. + case 202: { action.builder. consumeStatementGoto(); break; } // - // Rule 201: declaration_statement ::= block_declaration + // Rule 203: declaration_statement ::= block_declaration // - case 201: { action.builder. + case 203: { action.builder. consumeStatementDeclaration(); break; } // - // Rule 202: declaration_statement ::= function_definition + // Rule 204: declaration_statement ::= function_definition // - case 202: { action.builder. + case 204: { action.builder. consumeStatementDeclaration(); break; } // - // Rule 219: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; + // Rule 221: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; // - case 219: { action.builder. + case 221: { action.builder. consumeDeclarationSimple(true, true); break; } // - // Rule 220: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; + // Rule 222: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; // - case 220: { action.builder. + case 222: { action.builder. consumeDeclarationSimple(true, false); break; } // - // Rule 221: declaration_specifiers ::= simple_declaration_specifiers + // Rule 223: declaration_specifiers ::= simple_declaration_specifiers // - case 221: { action.builder. + case 223: { action.builder. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 222: declaration_specifiers ::= class_declaration_specifiers - // - case 222: { action.builder. - consumeDeclarationSpecifiersComposite(); break; - } - - // - // Rule 223: declaration_specifiers ::= elaborated_declaration_specifiers - // - case 223: { action.builder. - consumeDeclarationSpecifiersComposite(); break; - } - - // - // Rule 224: declaration_specifiers ::= enum_declaration_specifiers + // Rule 224: declaration_specifiers ::= class_declaration_specifiers // case 224: { action.builder. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 225: declaration_specifiers ::= type_name_declaration_specifiers + // Rule 225: declaration_specifiers ::= elaborated_declaration_specifiers // case 225: { action.builder. + consumeDeclarationSpecifiersComposite(); break; + } + + // + // Rule 226: declaration_specifiers ::= enum_declaration_specifiers + // + case 226: { action.builder. + consumeDeclarationSpecifiersComposite(); break; + } + + // + // Rule 227: declaration_specifiers ::= type_name_declaration_specifiers + // + case 227: { action.builder. consumeDeclarationSpecifiersTypeName(); break; } // - // Rule 226: declaration_specifiers_opt ::= $Empty + // Rule 228: declaration_specifiers_opt ::= $Empty // - case 226: { action.builder. + case 228: { action.builder. consumeEmpty(); break; } // - // Rule 231: no_type_declaration_specifier ::= friend + // Rule 233: no_type_declaration_specifier ::= friend // - case 231: { action.builder. + case 233: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 232: no_type_declaration_specifier ::= typedef + // Rule 234: no_type_declaration_specifier ::= typedef // - case 232: { action.builder. + case 234: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 260: simple_type_specifier ::= simple_type_specifier_token + // Rule 254: storage_class_specifier ::= auto + // + case 254: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 255: storage_class_specifier ::= register + // + case 255: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 256: storage_class_specifier ::= static + // + case 256: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 257: storage_class_specifier ::= extern + // + case 257: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 258: storage_class_specifier ::= mutable + // + case 258: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 259: function_specifier ::= inline + // + case 259: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 260: function_specifier ::= virtual // case 260: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 274: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name + // Rule 261: function_specifier ::= explicit // - case 274: { action.builder. - consumeQualifiedId(false); break; + case 261: { action.builder. + consumeDeclSpecToken(); break; } // - // Rule 275: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name + // Rule 262: simple_type_specifier ::= char + // + case 262: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 263: simple_type_specifier ::= wchar_t + // + case 263: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 264: simple_type_specifier ::= bool + // + case 264: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 265: simple_type_specifier ::= short + // + case 265: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 266: simple_type_specifier ::= int + // + case 266: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 267: simple_type_specifier ::= long + // + case 267: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 268: simple_type_specifier ::= signed + // + case 268: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 269: simple_type_specifier ::= unsigned + // + case 269: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 270: simple_type_specifier ::= float + // + case 270: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 271: simple_type_specifier ::= double + // + case 271: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 272: simple_type_specifier ::= void + // + case 272: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 275: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name // case 275: { action.builder. consumeQualifiedId(false); break; } // - // Rule 276: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name + // Rule 276: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name // case 276: { action.builder. consumeQualifiedId(false); break; } // - // Rule 277: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name + // Rule 277: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name // case 277: { action.builder. + consumeQualifiedId(false); break; + } + + // + // Rule 278: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name + // + case 278: { action.builder. consumeQualifiedId(true); break; } // - // Rule 278: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name + // Rule 279: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name // - case 278: { action.builder. + case 279: { action.builder. consumeTypeSpecifierElaborated(false); break; } // - // Rule 279: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name + // Rule 280: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name // - case 279: { action.builder. + case 280: { action.builder. consumeTypeSpecifierElaborated(true); break; } // - // Rule 280: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name + // Rule 281: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name // - case 280: { action.builder. + case 281: { action.builder. consumeTypeSpecifierElaborated(false); break; } // - // Rule 281: enum_specifier ::= enum { enumerator_list_opt } + // Rule 282: enum_specifier ::= enum { enumerator_list_opt } // - case 281: { action.builder. + case 282: { action.builder. consumeTypeSpecifierEnumeration(false); break; } // - // Rule 282: enum_specifier ::= enum identifier_token { enumerator_list_opt } + // Rule 283: enum_specifier ::= enum identifier_token { enumerator_list_opt } // - case 282: { action.builder. + case 283: { action.builder. consumeTypeSpecifierEnumeration(true); break; } // - // Rule 287: enumerator_definition ::= identifier_token + // Rule 288: enumerator_definition ::= identifier_token // - case 287: { action.builder. + case 288: { action.builder. consumeEnumerator(false); break; } // - // Rule 288: enumerator_definition ::= identifier_token = constant_expression + // Rule 289: enumerator_definition ::= identifier_token = constant_expression // - case 288: { action.builder. + case 289: { action.builder. consumeEnumerator(true); break; } // - // Rule 294: original_namespace_definition ::= namespace identifier_name { declaration_seq_opt } - // - case 294: { action.builder. - consumeNamespaceDefinition(true); break; - } - - // - // Rule 295: extension_namespace_definition ::= namespace original_namespace_name { declaration_seq_opt } + // Rule 295: original_namespace_definition ::= namespace identifier_name { declaration_seq_opt } // case 295: { action.builder. consumeNamespaceDefinition(true); break; } // - // Rule 296: unnamed_namespace_definition ::= namespace { declaration_seq_opt } + // Rule 296: extension_namespace_definition ::= namespace original_namespace_name { declaration_seq_opt } // case 296: { action.builder. + consumeNamespaceDefinition(true); break; + } + + // + // Rule 297: unnamed_namespace_definition ::= namespace { declaration_seq_opt } + // + case 297: { action.builder. consumeNamespaceDefinition(false); break; } // - // Rule 297: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 298: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; // - case 297: { action.builder. + case 298: { action.builder. consumeNamespaceAliasDefinition(); break; } // - // Rule 298: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; + // Rule 299: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; // - case 298: { action.builder. + case 299: { action.builder. consumeUsingDeclaration(); break; } // - // Rule 299: typename_opt ::= typename + // Rule 300: typename_opt ::= typename // - case 299: { action.builder. + case 300: { action.builder. consumePlaceHolder(); break; } // - // Rule 300: typename_opt ::= $Empty + // Rule 301: typename_opt ::= $Empty // - case 300: { action.builder. + case 301: { action.builder. consumeEmpty(); break; } // - // Rule 301: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 302: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; // - case 301: { action.builder. + case 302: { action.builder. consumeUsingDirective(); break; } // - // Rule 302: asm_definition ::= asm ( stringlit ) ; + // Rule 303: asm_definition ::= asm ( stringlit ) ; // - case 302: { action.builder. + case 303: { action.builder. consumeDeclarationASM(); break; } // - // Rule 303: linkage_specification ::= extern stringlit { declaration_seq_opt } - // - case 303: { action.builder. - consumeLinkageSpecification(); break; - } - - // - // Rule 304: linkage_specification ::= extern stringlit declaration + // Rule 304: linkage_specification ::= extern stringlit { declaration_seq_opt } // case 304: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 309: init_declarator_complete ::= init_declarator + // Rule 305: linkage_specification ::= extern stringlit declaration // - case 309: { action.builder. + case 305: { action.builder. + consumeLinkageSpecification(); break; + } + + // + // Rule 310: init_declarator_complete ::= init_declarator + // + case 310: { action.builder. consumeInitDeclaratorComplete(); break; } // - // Rule 311: init_declarator ::= declarator initializer + // Rule 312: init_declarator ::= declarator initializer // - case 311: { action.builder. + case 312: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 313: declarator ::= ptr_operator_seq direct_declarator + // Rule 314: declarator ::= ptr_operator_seq direct_declarator // - case 313: { action.builder. + case 314: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 315: function_declarator ::= ptr_operator_seq direct_declarator + // Rule 316: function_declarator ::= ptr_operator_seq direct_declarator // - case 315: { action.builder. + case 316: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 319: basic_direct_declarator ::= declarator_id_name + // Rule 320: basic_direct_declarator ::= declarator_id_name // - case 319: { action.builder. + case 320: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 320: basic_direct_declarator ::= ( declarator ) + // Rule 321: basic_direct_declarator ::= ( declarator ) // - case 320: { action.builder. + case 321: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 321: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 322: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 321: { action.builder. + case 322: { action.builder. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 322: array_direct_declarator ::= array_direct_declarator array_modifier - // - case 322: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 323: array_direct_declarator ::= basic_direct_declarator array_modifier + // Rule 323: array_direct_declarator ::= array_direct_declarator array_modifier // case 323: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 324: array_modifier ::= [ constant_expression ] + // Rule 324: array_direct_declarator ::= basic_direct_declarator array_modifier // case 324: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 325: array_modifier ::= [ constant_expression ] + // + case 325: { action.builder. consumeDirectDeclaratorArrayModifier(true); break; } // - // Rule 325: array_modifier ::= [ ] + // Rule 326: array_modifier ::= [ ] // - case 325: { action.builder. + case 326: { action.builder. consumeDirectDeclaratorArrayModifier(false); break; } // - // Rule 326: ptr_operator ::= * cv_qualifier_seq_opt + // Rule 327: ptr_operator ::= * cv_qualifier_seq_opt // - case 326: { action.builder. + case 327: { action.builder. consumePointer(); break; } // - // Rule 327: ptr_operator ::= & + // Rule 328: ptr_operator ::= & // - case 327: { action.builder. + case 328: { action.builder. consumeReferenceOperator(); break; } // - // Rule 328: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt + // Rule 329: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt // - case 328: { action.builder. + case 329: { action.builder. consumePointerToMember(); break; } // - // Rule 334: cv_qualifier ::= const - // - case 334: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 335: cv_qualifier ::= volatile + // Rule 335: cv_qualifier ::= const // case 335: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 337: declarator_id_name ::= nested_name_specifier template_opt unqualified_id_name + // Rule 336: cv_qualifier ::= volatile // - case 337: { action.builder. + case 336: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 338: declarator_id_name ::= nested_name_specifier template_opt unqualified_id_name + // + case 338: { action.builder. consumeQualifiedId(true); break; } // - // Rule 338: type_id ::= type_specifier_seq + // Rule 339: type_id ::= type_specifier_seq // - case 338: { action.builder. + case 339: { action.builder. consumeTypeId(false); break; } // - // Rule 339: type_id ::= type_specifier_seq abstract_declarator + // Rule 340: type_id ::= type_specifier_seq abstract_declarator // - case 339: { action.builder. + case 340: { action.builder. consumeTypeId(true); break; } // - // Rule 342: abstract_declarator ::= ptr_operator_seq + // Rule 343: abstract_declarator ::= ptr_operator_seq // - case 342: { action.builder. + case 343: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 343: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator + // Rule 344: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator // - case 343: { action.builder. + case 344: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 347: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 348: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - case 347: { action.builder. + case 348: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 348: array_direct_abstract_declarator ::= array_modifier + // Rule 349: array_direct_abstract_declarator ::= array_modifier // - case 348: { action.builder. + case 349: { action.builder. consumeDirectDeclaratorArrayDeclarator(false); break; } // - // Rule 349: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier - // - case 349: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 350: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier + // Rule 350: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier // case 350: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 351: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 351: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier // case 351: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 352: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // + case 352: { action.builder. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 352: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 353: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 352: { action.builder. + case 353: { action.builder. consumeDirectDeclaratorFunctionDeclarator(false); break; } // - // Rule 353: parameter_declaration_clause ::= parameter_declaration_list_opt ... - // - case 353: { action.builder. - consumePlaceHolder(); break; - } - - // - // Rule 354: parameter_declaration_clause ::= parameter_declaration_list_opt + // Rule 354: parameter_declaration_clause ::= parameter_declaration_list_opt ... // case 354: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 355: parameter_declaration_clause ::= parameter_declaration_list , ... - // - case 355: { action.builder. consumePlaceHolder(); break; } // - // Rule 361: abstract_declarator_opt ::= $Empty + // Rule 355: parameter_declaration_clause ::= parameter_declaration_list_opt // - case 361: { action.builder. + case 355: { action.builder. consumeEmpty(); break; } // - // Rule 362: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // Rule 356: parameter_declaration_clause ::= parameter_declaration_list , ... + // + case 356: { action.builder. + consumePlaceHolder(); break; + } + + // + // Rule 362: abstract_declarator_opt ::= $Empty // case 362: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 363: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // + case 363: { action.builder. consumeParameterDeclaration(); break; } // - // Rule 363: parameter_declaration ::= declaration_specifiers + // Rule 364: parameter_declaration ::= declaration_specifiers // - case 363: { action.builder. + case 364: { action.builder. consumeParameterDeclarationWithoutDeclarator(); break; } // - // Rule 365: parameter_init_declarator ::= declarator = parameter_initializer + // Rule 366: parameter_init_declarator ::= declarator = parameter_initializer // - case 365: { action.builder. + case 366: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 367: parameter_init_declarator ::= abstract_declarator = parameter_initializer - // - case 367: { action.builder. - consumeDeclaratorWithInitializer(true); break; - } - - // - // Rule 368: parameter_init_declarator ::= = parameter_initializer + // Rule 368: parameter_init_declarator ::= abstract_declarator = parameter_initializer // case 368: { action.builder. + consumeDeclaratorWithInitializer(true); break; + } + + // + // Rule 369: parameter_init_declarator ::= = parameter_initializer + // + case 369: { action.builder. consumeDeclaratorWithInitializer(false); break; } // - // Rule 369: parameter_initializer ::= assignment_expression + // Rule 370: parameter_initializer ::= assignment_expression // - case 369: { action.builder. + case 370: { action.builder. consumeInitializer(); break; } // - // Rule 370: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body + // Rule 371: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body // - case 370: { action.builder. + case 371: { action.builder. consumeFunctionDefinition(false); break; } // - // Rule 371: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq + // Rule 372: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq // - case 371: { action.builder. + case 372: { action.builder. consumeFunctionDefinition(true); break; } // - // Rule 374: initializer ::= ( expression_list ) + // Rule 375: initializer ::= ( expression_list ) // - case 374: { action.builder. + case 375: { action.builder. consumeInitializerConstructor(); break; } // - // Rule 375: initializer_clause ::= assignment_expression + // Rule 376: initializer_clause ::= assignment_expression // - case 375: { action.builder. + case 376: { action.builder. consumeInitializer(); break; } // - // Rule 376: initializer_clause ::= { initializer_list , } - // - case 376: { action.builder. - consumeInitializerList(); break; - } - - // - // Rule 377: initializer_clause ::= { initializer_list } + // Rule 377: initializer_clause ::= { initializer_list , } // case 377: { action.builder. consumeInitializerList(); break; } // - // Rule 378: initializer_clause ::= { } + // Rule 378: initializer_clause ::= { initializer_list } // case 378: { action.builder. consumeInitializerList(); break; } // - // Rule 383: class_specifier ::= class_head { member_declaration_list_opt } + // Rule 379: initializer_clause ::= { } // - case 383: { action.builder. + case 379: { action.builder. + consumeInitializerList(); break; + } + + // + // Rule 384: class_specifier ::= class_head { member_declaration_list_opt } + // + case 384: { action.builder. consumeClassSpecifier(); break; } // - // Rule 384: class_head ::= class_keyword identifier_name_opt base_clause_opt - // - case 384: { action.builder. - consumeClassHead(false); break; - } - - // - // Rule 385: class_head ::= class_keyword template_id_name base_clause_opt + // Rule 385: class_head ::= class_keyword identifier_name_opt base_clause_opt // case 385: { action.builder. consumeClassHead(false); break; } // - // Rule 386: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt + // Rule 386: class_head ::= class_keyword template_id_name base_clause_opt // case 386: { action.builder. - consumeClassHead(true); break; + consumeClassHead(false); break; } // - // Rule 387: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt + // Rule 387: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt // case 387: { action.builder. consumeClassHead(true); break; } // - // Rule 389: identifier_name_opt ::= $Empty + // Rule 388: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt // - case 389: { action.builder. + case 388: { action.builder. + consumeClassHead(true); break; + } + + // + // Rule 390: identifier_name_opt ::= $Empty + // + case 390: { action.builder. consumeEmpty(); break; } // - // Rule 393: visibility_label ::= access_specifier_keyword : + // Rule 394: visibility_label ::= access_specifier_keyword : // - case 393: { action.builder. + case 394: { action.builder. consumeVisibilityLabel(); break; } // - // Rule 394: member_declaration ::= declaration_specifiers_opt member_declarator_list ; + // Rule 395: member_declaration ::= declaration_specifiers_opt member_declarator_list ; // - case 394: { action.builder. + case 395: { action.builder. consumeDeclarationSimple(true, true); break; } // - // Rule 395: member_declaration ::= declaration_specifiers_opt ; + // Rule 396: member_declaration ::= declaration_specifiers_opt ; // - case 395: { action.builder. + case 396: { action.builder. consumeDeclarationSimple(false, false); break; } // - // Rule 398: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; + // Rule 399: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; // - case 398: { action.builder. + case 399: { action.builder. consumeMemberDeclarationQualifiedId(); break; } // - // Rule 402: member_declaration ::= ERROR_TOKEN + // Rule 403: member_declaration ::= ERROR_TOKEN // - case 402: { action.builder. + case 403: { action.builder. consumeDeclarationProblem(); break; } // - // Rule 410: member_declarator ::= declarator constant_initializer + // Rule 411: member_declarator ::= declarator constant_initializer // - case 410: { action.builder. + case 411: { action.builder. consumeMemberDeclaratorWithInitializer(); break; } // - // Rule 411: member_declarator ::= bit_field_declarator : constant_expression + // Rule 412: member_declarator ::= bit_field_declarator : constant_expression // - case 411: { action.builder. + case 412: { action.builder. consumeBitField(true); break; } // - // Rule 412: member_declarator ::= : constant_expression + // Rule 413: member_declarator ::= : constant_expression // - case 412: { action.builder. + case 413: { action.builder. consumeBitField(false); break; } // - // Rule 413: bit_field_declarator ::= identifier_name + // Rule 414: bit_field_declarator ::= identifier_name // - case 413: { action.builder. + case 414: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 414: constant_initializer ::= = constant_expression + // Rule 415: constant_initializer ::= = constant_expression // - case 414: { action.builder. + case 415: { action.builder. consumeInitializer(); break; } // - // Rule 420: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 421: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 420: { action.builder. + case 421: { action.builder. consumeBaseSpecifier(false, false); break; } // - // Rule 421: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name - // - case 421: { action.builder. - consumeBaseSpecifier(true, true); break; - } - - // - // Rule 422: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name + // Rule 422: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name // case 422: { action.builder. consumeBaseSpecifier(true, true); break; } // - // Rule 423: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name + // Rule 423: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name // case 423: { action.builder. + consumeBaseSpecifier(true, true); break; + } + + // + // Rule 424: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name + // + case 424: { action.builder. consumeBaseSpecifier(true, false); break; } // - // Rule 424: access_specifier_keyword ::= private - // - case 424: { action.builder. - consumeAccessKeywordToken(); break; - } - - // - // Rule 425: access_specifier_keyword ::= protected + // Rule 425: access_specifier_keyword ::= private // case 425: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 426: access_specifier_keyword ::= public + // Rule 426: access_specifier_keyword ::= protected // case 426: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 428: access_specifier_keyword_opt ::= $Empty + // Rule 427: access_specifier_keyword ::= public // - case 428: { action.builder. + case 427: { action.builder. + consumeAccessKeywordToken(); break; + } + + // + // Rule 429: access_specifier_keyword_opt ::= $Empty + // + case 429: { action.builder. consumeEmpty(); break; } // - // Rule 429: conversion_function_id_name ::= operator conversion_type_id + // Rule 430: conversion_function_id_name ::= operator conversion_type_id // - case 429: { action.builder. + case 430: { action.builder. consumeConversionName(); break; } // - // Rule 430: conversion_type_id ::= type_specifier_seq conversion_declarator + // Rule 431: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 430: { action.builder. + case 431: { action.builder. consumeTypeId(true); break; } // - // Rule 431: conversion_type_id ::= type_specifier_seq + // Rule 432: conversion_type_id ::= type_specifier_seq // - case 431: { action.builder. + case 432: { action.builder. consumeTypeId(false); break; } // - // Rule 432: conversion_declarator ::= ptr_operator_seq + // Rule 433: conversion_declarator ::= ptr_operator_seq // - case 432: { action.builder. + case 433: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 438: mem_initializer ::= mem_initializer_name ( expression_list_opt ) + // Rule 439: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 438: { action.builder. + case 439: { action.builder. consumeConstructorChainInitializer(); break; } // - // Rule 439: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 440: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name // - case 439: { action.builder. + case 440: { action.builder. consumeQualifiedId(false); break; } // - // Rule 442: operator_function_id_name ::= operator_id_name < template_argument_list_opt > + // Rule 443: operator_function_id_name ::= operator_id_name < template_argument_list_opt > // - case 442: { action.builder. + case 443: { action.builder. consumeTemplateId(); break; } // - // Rule 443: operator_id_name ::= operator overloadable_operator + // Rule 444: operator_id_name ::= operator overloadable_operator // - case 443: { action.builder. + case 444: { action.builder. consumeOperatorName(); break; } // - // Rule 486: template_declaration ::= export_opt template < template_parameter_list > declaration + // Rule 487: template_declaration ::= export_opt template < template_parameter_list > declaration // - case 486: { action.builder. + case 487: { action.builder. consumeTemplateDeclaration(); break; } // - // Rule 487: export_opt ::= export + // Rule 488: export_opt ::= export // - case 487: { action.builder. + case 488: { action.builder. consumePlaceHolder(); break; } // - // Rule 488: export_opt ::= $Empty + // Rule 489: export_opt ::= $Empty // - case 488: { action.builder. + case 489: { action.builder. consumeEmpty(); break; } // - // Rule 492: template_parameter ::= parameter_declaration + // Rule 493: template_parameter ::= parameter_declaration // - case 492: { action.builder. + case 493: { action.builder. consumeTemplateParamterDeclaration(); break; } // - // Rule 493: type_parameter ::= class identifier_name_opt - // - case 493: { action.builder. - consumeSimpleTypeTemplateParameter(false); break; - } - - // - // Rule 494: type_parameter ::= class identifier_name_opt = type_id + // Rule 494: type_parameter ::= class identifier_name_opt // case 494: { action.builder. - consumeSimpleTypeTemplateParameter(true); break; - } - - // - // Rule 495: type_parameter ::= typename identifier_name_opt - // - case 495: { action.builder. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 496: type_parameter ::= typename identifier_name_opt = type_id + // Rule 495: type_parameter ::= class identifier_name_opt = type_id // - case 496: { action.builder. + case 495: { action.builder. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 497: type_parameter ::= template < template_parameter_list > class identifier_name_opt + // Rule 496: type_parameter ::= typename identifier_name_opt + // + case 496: { action.builder. + consumeSimpleTypeTemplateParameter(false); break; + } + + // + // Rule 497: type_parameter ::= typename identifier_name_opt = type_id // case 497: { action.builder. + consumeSimpleTypeTemplateParameter(true); break; + } + + // + // Rule 498: type_parameter ::= template < template_parameter_list > class identifier_name_opt + // + case 498: { action.builder. consumeTemplatedTypeTemplateParameter(false); break; } // - // Rule 498: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression + // Rule 499: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression // - case 498: { action.builder. + case 499: { action.builder. consumeTemplatedTypeTemplateParameter(true); break; } // - // Rule 499: template_id_name ::= identifier_name < template_argument_list_opt > + // Rule 500: template_id_name ::= identifier_name < template_argument_list_opt > // - case 499: { action.builder. + case 500: { action.builder. consumeTemplateId(); break; } // - // Rule 507: explicit_instantiation ::= template declaration + // Rule 508: explicit_instantiation ::= template declaration // - case 507: { action.builder. + case 508: { action.builder. consumeTemplateExplicitInstantiation(); break; } // - // Rule 508: explicit_specialization ::= template < > declaration + // Rule 509: explicit_specialization ::= template < > declaration // - case 508: { action.builder. + case 509: { action.builder. consumeTemplateExplicitSpecialization(); break; } // - // Rule 509: try_block ::= try compound_statement handler_seq + // Rule 510: try_block ::= try compound_statement handler_seq // - case 509: { action.builder. + case 510: { action.builder. consumeStatementTryBlock(); break; } // - // Rule 512: handler ::= catch ( exception_declaration ) compound_statement + // Rule 513: handler ::= catch ( exception_declaration ) compound_statement // - case 512: { action.builder. + case 513: { action.builder. consumeStatementCatchHandler(false); break; } // - // Rule 513: handler ::= catch ( ... ) compound_statement + // Rule 514: handler ::= catch ( ... ) compound_statement // - case 513: { action.builder. + case 514: { action.builder. consumeStatementCatchHandler(true); break; } // - // Rule 514: exception_declaration ::= type_specifier_seq declarator - // - case 514: { action.builder. - consumeDeclarationSimple(true, false); break; - } - - // - // Rule 515: exception_declaration ::= type_specifier_seq abstract_declarator + // Rule 515: exception_declaration ::= type_specifier_seq declarator // case 515: { action.builder. consumeDeclarationSimple(true, false); break; } // - // Rule 516: exception_declaration ::= type_specifier_seq + // Rule 516: exception_declaration ::= type_specifier_seq abstract_declarator // case 516: { action.builder. + consumeDeclarationSimple(true, false); break; + } + + // + // Rule 517: exception_declaration ::= type_specifier_seq + // + case 517: { action.builder. consumeDeclarationSimple(false, false); break; } // - // Rule 524: no_sizeof_type_name_start ::= ERROR_TOKEN + // Rule 525: no_sizeof_type_name_start ::= ERROR_TOKEN // - case 524: { action.builder. + case 525: { action.builder. consumeExpressionProblem(); break; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParserprs.java index 9c8f2f6dd93..101025ded32 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 @@ -40,479 +40,467 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 0,0,1,1,1,1,1,1,1,1, 1,0,1,2,1,1,1,1,1,1, 1,1,1,1,1,1,1,3,1,1, - 1,1,1,1,1,1,2,1,1,0, - 1,0,4,2,2,2,3,2,3,2, - 2,1,0,1,1,4,4,4,8,8, - 3,3,4,4,3,3,2,2,7,7, - 7,7,4,5,6,3,2,1,1,1, - 2,2,2,2,2,2,2,2,2,7, - 9,3,0,1,2,2,1,2,3,4, - 1,0,3,1,0,3,5,1,4,1, - 3,3,1,3,3,3,1,3,3,1, - 3,3,1,3,3,3,3,1,3,3, - 1,3,1,3,1,3,1,3,1,3, - 1,5,1,2,1,1,3,3,3,3, - 3,3,3,3,3,3,3,1,2,1, - 3,1,0,1,0,1,1,0,1,1, - 1,1,1,1,1,1,1,3,3,2, - 2,1,4,2,1,2,5,7,5,1, - 4,5,7,9,8,2,2,3,2,3, + 1,1,1,1,1,1,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,5,7,9,8,2,2,3, + 2,3,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,2,1,0, + 4,4,2,2,2,2,2,0,1,1, + 1,1,1,1,1,2,1,2,2,2, + 1,1,2,2,1,2,2,1,2,2, + 1,2,2,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,2,1,0,4,4, - 2,2,2,2,2,0,1,1,1,1, - 1,1,1,2,1,2,2,2,1,1, - 2,2,1,2,2,1,2,2,1,2, - 2,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,3,4,4,5,4,5,4, - 5,6,1,3,1,0,1,3,1,1, - 1,1,1,6,6,5,7,6,1,0, - 6,5,6,4,1,3,1,0,1,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,1,2,2, - 9,8,2,1,3,1,3,1,0,1, - 0,2,1,1,3,1,3,2,1,5, - 8,1,2,3,1,5,4,3,1,3, - 1,1,5,4,4,5,5,1,0,1, - 1,1,2,4,2,2,1,5,1,1, - 1,1,1,2,1,0,1,3,1,2, - 3,2,1,2,2,1,0,1,3,3, - 5,5,4,1,1,1,1,0,2,2, - 1,2,2,1,0,1,3,4,3,1, - 1,5,2,1,1,3,3,1,1,1, + 1,1,1,1,3,4,4,5,4,5, + 4,5,6,1,3,1,0,1,3,1, + 1,1,1,1,6,6,5,7,6,1, + 0,6,5,6,4,1,3,1,0,1, + 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,1,2, + 2,9,8,2,1,3,1,3,1,0, + 1,0,2,1,1,3,1,3,2,1, + 5,8,1,2,3,1,5,4,3,1, + 3,1,1,5,4,4,5,5,1,0, + 1,1,1,2,4,2,2,1,5,1, + 1,1,1,1,2,1,0,1,3,1, + 2,3,2,1,2,2,1,0,1,3, + 3,5,5,4,1,1,1,1,0,2, + 2,1,2,2,1,0,1,3,4,3, + 1,1,5,2,1,1,3,3,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,2,2,7,1,0,1,3, - 1,1,2,4,2,4,7,9,5,1, - 3,1,0,1,1,1,2,4,4,1, - 2,5,5,3,3,1,4,3,1,0, - 1,3,1,1,-61,0,0,0,-2,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,1,2,4,4, + 1,2,5,5,3,3,1,4,3,1, + 0,1,3,1,1,-61,0,0,0,-51, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,-10,0,0, - 0,0,0,0,0,0,0,0,0,-204, - 0,0,-4,0,0,0,-70,0,0,0, - -5,0,0,0,0,0,0,0,-6,-90, + 0,0,0,0,0,0,0,0,-206,0, + 0,0,0,-133,0,0,-318,0,0,0, + -2,0,0,0,0,0,-175,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,-177,0,0,0,0,0,0,0, - -52,0,0,0,0,-190,0,0,0,-18, + 0,-64,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-368,0,0,0,0, + -48,0,0,0,0,0,-338,0,0,0, + -52,0,0,-243,-355,0,0,-413,0,0, + 0,0,0,0,0,-417,0,-145,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-172,0,0, - 0,0,-71,0,0,0,0,0,0,0, - 0,0,0,0,0,-303,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,0,0,-4, + 0,0,0,0,0,-5,-49,0,0,-283, + 0,0,0,0,-240,0,0,-6,0,-302, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-115,0,0,0,-48,0,0, - -241,0,0,0,0,0,0,-7,-260,0, - -299,0,0,0,0,-242,0,0,0,0, - 0,-111,0,0,-128,0,0,0,0,0, + 0,0,0,-128,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-8,0,0,0,0, - 0,0,-56,0,0,0,0,0,0,0, - -9,0,0,0,0,-51,0,-334,-11,-229, - 0,0,0,0,-12,0,0,0,-143,0, + -7,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-126,0,0, + 0,0,-143,0,0,0,0,-124,0,0, + 0,0,0,0,-179,0,0,0,0,0, + 0,0,-8,-221,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -219,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -56,0,0,0,0,0,-306,0,0,0, + 0,-47,0,0,-223,0,-9,0,-337,0, + -70,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-512,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-202,0,0,0, + 0,0,0,0,0,0,0,-11,0,0, + 0,0,0,0,0,-522,0,0,0,-213, 0,0,0,0,0,0,0,0,0,0, - 0,0,-141,0,0,0,-360,0,0,0, - 0,0,0,0,0,-181,0,0,0,0, - -14,0,-509,0,0,0,-27,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-28,0,0,0,0, - 0,0,0,0,0,0,0,-142,0,0, - 0,-243,0,0,-20,0,0,0,-289,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,-519,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-64,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-29, - 0,0,0,-511,0,0,0,0,0,0, - 0,0,0,0,0,-55,-47,0,0,0, - 0,-3,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,-72,-259,0, + -12,0,-275,0,0,0,0,0,0,0, 0,0,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, - 0,0,0,0,0,-30,-146,0,0,0, - 0,0,0,0,0,0,0,0,-232,0, - 0,0,-31,-273,0,0,0,0,0,0, + 0,0,0,0,0,-354,0,0,0,0, + 0,0,0,-146,0,0,0,-312,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-32,0,0,0, - 0,0,0,0,0,0,0,0,-257,0, - 0,-140,-399,0,0,0,-309,0,0,0, - -58,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-111, + 0,0,0,0,-14,0,0,0,0,0, + -27,-55,0,0,-287,0,0,0,-452,0, + -15,0,0,0,0,0,0,0,-63,-313, + 0,0,0,-58,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-285,0,0,0,0,0, - 0,0,0,0,-33,0,0,0,-124,-310, 0,0,0,0,0,0,0,0,0,0, + 0,0,-138,0,0,0,0,0,0,0, + -174,0,0,0,-473,0,0,0,-59,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-318,0,0,0,0,-34,0,0, - -179,0,0,0,0,0,0,-35,0,0, - 0,0,-470,0,0,0,-63,0,0,0, + 0,0,0,0,0,0,-28,0,0,0, + 0,0,0,0,0,0,0,-114,-29,0, + 0,0,0,0,0,-38,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -344,0,0,-49,0,0,0,0,0,0, - -36,0,0,0,-136,-38,0,0,0,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,-126,0,0,0, - 0,0,0,0,0,0,0,-307,0,-40, - 0,0,0,-37,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-59,0,0,-106,0,0, - 0,-93,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,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-94,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-296,0,0,0, - 0,0,0,0,-347,0,0,0,0,0, - 0,-147,-39,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,-200,0, - 0,0,0,0,0,0,0,0,0,0, - -180,0,0,-53,0,0,0,-96,0,0, - 0,-196,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,0,-182,0, - 0,0,0,0,0,-54,0,0,0,-97, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-210,0,0,0,0,-57,0,0, - -184,0,0,0,0,0,0,-410,0,0, - 0,-98,0,0,0,-205,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-337,0,0,0,0,0, - 0,0,-187,0,0,0,0,0,0,-65, - 0,0,0,-99,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-338,0,0,0, - 0,0,0,0,-198,0,0,0,0,0, - 0,-414,0,0,0,-100,0,0,0,-233, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-427,0, - 0,0,0,0,0,0,-203,0,0,0, - 0,0,0,-66,0,0,0,-101,0,0, - 0,-240,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -455,0,0,0,0,0,0,0,-223,0, - 0,0,0,0,0,-68,0,0,0,-102, - 0,0,0,-247,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-69,0,0,0,0,-107,0,0, - -224,0,0,0,0,0,0,-108,0,0, - 0,-103,0,0,0,-248,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-109,0,0,0,0,-110, - 0,0,-127,0,0,0,-377,0,0,-138, - 0,0,0,-131,0,0,0,-444,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-367,0,0,0, - 0,-117,0,0,-228,0,0,0,0,0, - 0,-327,-211,0,0,0,-135,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-149,0,0,0,0,0,0, - -249,0,0,0,-15,0,0,0,-250,-150, - 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,0,0,0,0,0, - -350,0,0,0,-306,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-151,0,0, - 0,0,-152,0,0,-253,0,0,0,0, - 0,0,-320,0,0,0,-148,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -153,0,0,0,0,0,0,-404,0,0, - -323,0,0,0,-154,-155,0,0,0,0, - -173,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,-156,0,0,0,0,0,0,-157,0, - 0,-355,0,0,0,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,-412,0,0,-342, - 0,0,0,-194,-159,0,0,0,0,-230, - 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,0,0, - -160,0,0,-272,0,0,0,0,0,0, - -402,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,-162,0, - 0,0,0,0,0,-163,0,0,-349,0, - 0,0,-321,-164,0,0,0,0,-365,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,-322,0,0,0,0,-133, - 0,0,-282,0,0,0,-226,0,0,-92, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-165,0,0,0,0,0,0,0, - 0,0,0,-91,0,0,0,-415,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-87,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-134,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,-166,0,0, - 0,0,-89,0,0,0,-167,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-168,0,0,0,0, - -50,0,0,0,0,0,-239,0,0,0, - -284,-60,0,0,0,0,-246,0,0,0, - -394,0,0,-209,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, - -116,0,0,0,0,-82,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-17,0,0,0,-169,-281,0,0, - 0,0,-125,0,0,0,-352,0,0,0, - -170,0,-171,-174,-276,0,0,0,0,0, - 0,-297,-175,0,0,0,0,0,0,0, - 0,-265,0,0,0,0,0,0,-385,0, - 0,-121,0,0,0,0,0,0,0,0, - 0,-294,0,0,0,0,0,0,-83,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,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,-255,0, - 0,0,-85,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-86,0, - 0,0,-176,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-384,0,0,-378,0,-346,-185,0,0, - 0,0,0,-245,0,0,0,-144,0,0, - 0,-231,0,0,0,-288,-268,0,-429,0, - 0,-186,0,-305,-13,-366,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-400,0,0,-191,0, - -328,0,0,0,-192,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -118,0,-195,0,0,-291,0,-238,0,0, - 0,-369,-221,0,0,0,0,0,-452,0, - 0,0,0,0,0,0,0,0,-312,-206, - 0,-311,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-339,0,0,0,-120,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-216,-217,0,-119,0,0,0, - -218,0,0,-468,0,0,0,0,0,0, - 0,-413,-475,0,-220,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-266,0, - 0,0,0,0,-234,0,-132,0,0,0, - 0,0,-469,0,0,-236,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,-292,-46,0,0,0,-476,0,-254, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-139,-277,0,0,0,0,0,0,0, - -137,0,0,0,-258,0,0,0,0,-313, - -345,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-178,0,0,0,0,0, - -1,0,-439,0,0,0,-267,0,0,-478, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-491,-259,0,0, - 0,-271,0,0,0,-395,0,0,0,0, - 0,0,0,0,-76,0,0,0,-269,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-270,0,-77, - 0,0,0,-361,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-440,0,-235,0,0,0,0,-274, - 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,-316,-225, - -408,0,0,0,0,-207,0,0,0,0, - -275,-189,0,0,0,-72,-286,0,-290,0, - 0,0,0,0,0,0,0,0,0,0, - -416,0,-357,0,0,0,0,-295,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-122,0,0, - 0,0,-368,0,-324,0,-300,0,0,0, - 0,0,0,0,0,0,0,-421,0,0, - 0,0,0,0,0,0,0,-79,0,0, - 0,-449,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-301,0,-433,-326,0,0,0,0, - -392,0,0,0,0,-317,0,0,0,0, - 0,0,-340,0,0,0,0,0,-331,0, - 0,0,0,-473,-16,0,0,0,0,-333, - -363,-335,0,0,0,-364,0,-458,0,0, - 0,0,0,0,0,0,0,0,0,0, - -348,-370,0,0,0,-483,0,0,0,0, - 0,-372,0,0,0,0,0,0,0,0, - 0,0,-222,0,-293,-448,0,0,0,0, - 0,-375,-362,0,0,0,0,0,-373,0, - 0,0,-376,0,0,0,0,0,0,0, - 0,0,-417,0,0,0,0,0,-251,0, - 0,-485,0,-463,0,0,0,0,0,0, - -374,0,0,0,0,0,0,0,0,0, - 0,0,-381,0,0,0,0,0,0,0, - 0,-197,0,-227,-42,0,0,0,0,0, - 0,0,0,0,-380,0,0,0,0,0, - 0,0,0,0,0,-490,0,0,-382,0, - -386,0,0,0,0,0,0,-390,0,0, - 0,0,0,0,0,0,0,0,0,-193, - -393,0,0,0,0,0,-383,-401,-43,-403, - 0,0,0,0,0,0,0,-114,-492,0, - 0,0,0,0,0,0,0,0,0,-512, - 0,0,-405,0,0,-283,0,0,0,0, - 0,-406,0,0,0,0,0,0,0,0, - 0,0,0,0,-495,0,-451,0,0,0, - 0,0,-263,0,0,0,0,0,0,0, - -472,0,-418,0,0,0,0,0,0,0, - 0,0,0,-517,0,-419,-411,0,-407,0, - 0,0,-264,0,0,0,0,-409,0,0, 0,0,0,0,0,0,0,-130,0,0, - -459,0,0,-396,0,-420,-44,0,0,-45, - 0,0,0,0,0,0,-423,0,0,0, - 0,0,0,0,0,0,0,-520,0,0, - -41,0,0,-442,0,0,-422,0,-199,0, + 0,0,0,0,0,0,0,0,-30,0, + 0,0,0,0,0,0,-40,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-424,0,-425,0,0,-426,0,-497, - 0,0,-428,0,0,0,0,0,0,0, - 0,0,0,0,-308,0,0,0,0,0, - 0,0,0,-279,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-299,0, + 0,0,0,0,0,0,0,0,0,-106, + 0,0,0,0,-31,0,0,0,0,0, + -93,0,0,0,-432,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-80,0,0,0,-430,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-32,-33,0,0,-310,0,0, + 0,-94,0,0,0,-112,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-347,0,0,0,0,-127,0, + 0,0,0,0,-494,-34,0,0,0,-363, + 0,0,-95,0,0,0,-149,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-297,0,0,0,0,-380, + 0,0,0,0,0,-35,0,0,0,0, + -447,0,0,-96,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, + -37,0,0,0,0,0,-181,0,0,0, + 0,-134,0,0,-97,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-140,0,0,0,0,0,-39,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,0,0,0,0,0,0,-182,0, + 0,0,0,0,0,0,-99,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-150,0,0,0,0,0,-184, + -186,0,0,0,0,0,0,-100,0,0, + 0,-53,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-305, + 0,0,0,0,0,0,0,0,0,0, + -189,-200,0,0,0,0,0,0,-101,0, + 0,0,-198,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-196,0,0,0,0, + 0,-54,-205,0,0,0,0,0,0,-102, + 0,0,0,-207,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-244,0,0,0,0,0,0,0,0, + 0,0,-290,-57,0,0,0,0,0,0, + -103,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,-66,0,0, + 0,0,0,-225,0,0,0,0,-291,0, + 0,-131,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,-256,0, + 0,0,0,0,-226,-142,0,0,0,0, + -214,0,0,0,-262,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-321,0,0, + 0,0,0,-68,-69,0,0,0,0,0, + 0,-107,-209,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,-108,0,0,0,0,0,0,0, + -309,0,0,0,-278,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-340,0,0,0,0,0,0,0, + 0,0,0,-324,-109,0,0,-323,0,0, + 0,-110,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-257, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-341,-71,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,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-117,0,0,0,0, + 0,-332,0,0,0,-358,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-270,0,0, + 0,0,-227,0,0,0,0,0,-349,0, + 0,0,-514,0,0,0,-135,0,0,0, + 0,0,0,0,-279,0,-359,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-430,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-405,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-325,-136,0,0, + -148,0,0,0,-137,0,0,0,0,0, + 0,0,0,0,-92,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-151,0,0,0, + 0,-308,0,0,0,0,-183,0,0,0, + -152,-90,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,-350,0, + 0,0,-91,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,-87,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-155,0,0,0,0,-235, + 0,-88,0,0,0,-418,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-370,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, + -229,0,0,0,0,-50,0,0,0,0, + 0,0,-242,-81,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,-82,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-85,0,0, + 0,-398,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-156, + 0,0,0,0,0,-326,0,0,0,-157, + -158,0,0,0,0,0,-345,0,0,0, + 0,0,0,0,0,0,-231,0,-407,-159, + 0,0,0,0,0,-267,-352,0,0,0, + 0,0,0,0,0,0,-234,0,0,0, + -212,0,0,0,-160,-161,0,0,0,0, + 0,0,-83,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-84,0, + 0,0,-330,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -387,0,0,0,0,-331,0,0,0,-249, + 0,0,0,0,0,-476,-228,0,0,-16, + -60,0,0,0,0,-144,-162,0,0,-163, + -199,-233,0,0,0,0,0,0,0,-164, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-403,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-495,0,0,0, + 0,-165,0,0,-472,0,0,-230,0,0, + -255,0,0,0,0,0,-166,-455,0,0, + 0,0,0,0,0,0,0,0,-274,0, + -245,0,0,0,0,0,0,-415,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,-471, + -232,0,0,0,-132,0,0,0,0,-369, + 0,0,0,-167,0,0,-239,-388,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-125,0,0,0,0,-397, + 0,0,0,0,0,-168,0,0,0,0, + 0,0,0,-116,-119,0,0,0,-169,0, + -139,0,0,0,0,-478,0,-317,0,0, + 0,0,0,-296,-498,0,0,0,0,0, + 0,0,0,0,0,0,-286,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-250,0,0,0,0, 0,0,0,0,0,0,0,-479,0,0, - -252,0,0,0,0,-431,0,-432,-446,0, - 0,0,0,-280,-330,0,0,-453,0,0, - 0,0,-500,-145,0,0,0,-343,0,-437, - 0,-298,0,0,0,0,0,0,0,0, - 0,0,-462,-461,0,0,0,0,0,0, - 0,-379,-441,-67,0,0,0,0,-450,-123, - 0,0,0,-457,0,0,0,0,0,-454, - 0,0,0,0,0,-467,-496,0,0,0, - 0,0,-465,0,0,0,0,0,0,0, - 0,0,-516,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-262,0,0,-484, - 0,0,-208,0,0,0,-391,0,0,0, - 0,-464,0,-499,-466,0,-504,0,0,0, + 0,0,0,0,0,-360,0,0,0,-499, + 0,0,0,-241,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-482,-73,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,-445, + 0,0,-17,0,0,0,-170,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-480,0,-202,0,0,0,0,0,-481, - 0,0,0,-486,-493,0,0,0,0,0, - 0,0,0,0,-314,-501,0,-498,0,0, - 0,0,-508,0,0,0,0,0,0,0, - 0,0,-447,-506,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-256,0, - 0,0,-513,-507,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-518,0,0, - 0,-487,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-474,-510,0,-515,0, + 0,0,0,0,0,0,-416,-171,-172,0, + 0,0,0,-173,0,-176,0,-247,0,0, + 0,-177,0,0,0,0,0,0,0,0, + 0,0,0,0,-237,0,0,0,0,-353, + 0,0,0,0,0,-251,-147,0,0,0, + -503,0,0,-86,0,0,0,-504,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-439,0,0,0,0, + 0,-185,0,0,0,-178,0,0,0,0, + 0,0,-187,-252,-411,0,0,0,0,-188, + 0,-284,0,-13,0,0,-193,0,-282,-194, + 0,0,0,0,-294,0,0,-248,0,0, + 0,0,0,0,-197,0,0,0,0,0, + 0,0,0,-402,0,-208,0,0,0,0, + 0,0,0,0,0,0,-211,0,0,0, + -424,0,0,0,0,0,0,0,0,0, + -219,0,0,0,0,0,0,0,0,0, + -376,0,0,0,-371,-344,0,-264,-220,0, + -300,0,0,-222,0,-236,-1,-436,-269,0, + 0,0,0,-377,0,0,0,0,0,0, + 0,-265,0,0,0,0,0,0,-238,0, + 0,0,0,0,0,-442,-389,0,0,0, + 0,0,0,0,0,0,0,0,0,-314, + 0,0,0,0,0,0,0,0,0,-443, + 0,0,0,-141,0,0,-311,0,-486,0, + 0,-295,0,0,-246,0,0,0,0,0, + 0,0,0,-260,-319,0,0,-316,0,0, + 0,0,0,-195,-519,0,-261,0,0,-266, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-271,0,0,0,0,0, + 0,0,0,-488,0,-327,-272,0,0,0, + -391,0,0,-276,0,-277,0,0,0,0, + 0,0,0,0,-288,0,0,-381,0,-292, + 0,0,0,0,0,0,0,0,-329,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-493,-470, + -41,-343,0,-293,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-298, + 0,-46,0,0,0,0,-115,0,-42,0, + 0,-303,0,-304,-320,0,0,0,0,-334, + -365,0,0,0,0,0,0,0,0,0, + 0,-118,0,-515,0,0,-348,0,0,-364, + -43,-120,0,0,0,-336,0,0,0,0, + 0,0,0,0,0,0,-180,0,0,0, + 0,-372,0,-44,0,0,-366,0,0,0, + 0,0,0,-367,0,0,0,0,0,-373, + 0,0,0,0,0,0,0,0,-520,0, + 0,0,0,0,0,0,-122,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-191,0,0,0,0,-375,0,0,0, + 0,-378,-419,0,0,0,0,-384,0,0, + 0,0,0,0,0,0,0,0,0,0, + -385,-393,0,-523,-253,0,-396,0,0,-481, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-404,0,-201,0,0,0, + 0,0,-414,-379,-351,-254,0,0,0,0, + 0,0,-406,0,0,0,0,0,0,-408, + 0,0,0,0,0,-409,0,0,-410,0, + 0,-412,0,-268,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-76, + 0,0,0,-423,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-77,0,0,0,-425,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-281,0,0, + 0,0,0,0,0,0,0,-427,-420,-210, + 0,0,0,-301,0,0,0,0,0,0, + 0,0,0,-273,0,0,0,-428,0,-429, + -67,0,0,-382,0,-73,-383,0,-386,0, + 0,0,0,0,-431,-190,0,0,0,0, + 0,0,0,0,0,0,-421,0,0,0, + 0,-433,0,0,-346,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-434,0,0,-435,0, + 0,0,0,0,-192,0,0,0,0,0, + 0,-394,-440,0,0,0,-285,0,0,0, + -444,0,0,0,0,0,0,0,0,0, + -453,-451,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,-460,0,0, + 0,0,0,-448,-422,-333,-468,0,0,0, + 0,-466,0,0,-487,-392,0,-502,0,-475, + -426,0,0,-461,0,0,-507,0,0,0, + 0,0,0,0,0,0,0,0,-307,0, + 0,0,0,-454,0,0,0,0,0,0, + 0,0,0,0,0,-450,-445,0,0,0, + 0,-482,0,0,-500,0,0,-322,0,0, + 0,0,0,0,-449,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -328,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-477,-456,0, + 0,0,0,0,0,-457,0,0,0,0, + 0,-390,0,-467,0,0,-485,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-339,0,0,0,-462,-464,0,0, + 0,0,0,0,0,0,0,0,0,-505, + 0,0,0,0,0,0,0,0,0,-104, + 0,-215,0,0,0,0,0,-469,-497,0, + 0,-489,0,0,0,0,0,0,0,0, + 0,0,0,0,-483,-484,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,-511,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, - -505,0,0,0,0,0,0,0,-389,0, - 0,0,0,0,0,0,0,0,-502,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,-354,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,0,0,-104,-212,0,0,0, - 0,0,0,0,0,0,0,0,-213,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,-80,0,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,-20,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-21, + 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,-22,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,-23,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-23,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-24,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,-25,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,-62,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,0,-74,0,0,0,0,0,0, + 0,-74,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-75,0,0,0,0, + 0,0,-75,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-129,0,0, + 0,0,0,-129,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-201, + 0,0,0,0,-203,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-315,0,0,0,0,0,0,0,0, - 0,0,0,-488,0,0,0,0,0,0, - 0,0,0,0,-353,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,-214,0,0,0, - 0,-514,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-397, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-471,0,0,0,0,0, - 0,0,0,0,0,-460,0,0,0,0, - 0,0,0,0,0,0,0,-183,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-188,0,0,0,0,-304,0, - 0,0,-319,0,0,0,0,0,0,0, + 0,0,0,0,0,-491,0,0,0,0, + -516,0,0,0,0,-123,0,0,0,0, + 0,-501,-356,0,0,0,0,0,0,0, + 0,0,-509,-474,0,0,0,0,-510,0, + 0,0,0,0,-263,0,0,0,0,0, + 0,0,0,0,-513,-518,0,0,-521,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-325,0,0,0,-336,0,0, - 0,0,0,0,0,0,-237,0,0,0, - 0,0,-358,0,0,0,-359,0,0,0, - -371,0,0,0,0,0,0,0,0,0, - 0,0,0,-341,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-357,0,0,0,0, + 0,0,0,0,0,0,-463,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-456,0,0,0,-477,0, - 0,0,0,-388,-434,-387,0,0,0,0, - 0,-436,-398,0,0,0,0,0,0,0, + 0,0,-224,0,0,0,0,0,0,-361, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-465,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-399, + 0,0,0,0,0,0,0,-395,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-362,0,0,0,0,0, + 0,0,0,-374,0,0,0,-459,0,0, + 0,0,0,-480,0,0,0,-258,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-435,-438,0,0,0,0,0,0, - 0,-443,0,0,0,0,0,0,0,0, - 0,0,0,0,-215,0,0,0,0,-287, - 0,0,-489,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-437,0,0,0,0,0,-280,0,0, + 0,0,0,0,0,0,0,-438,0,0, + 0,0,0,0,0,0,0,0,0,-441, + 0,-45,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-204,0,0,0, + 0,0,0,0,0,0,0,-400,-401,0, + -490,0,0,0,0,0,0,-446,0,0, + 0,0,0,0,-508,0,0,0,0,0, + 0,0,-517,0,0,0,0,0,0,0, + 0,0,0,0,0,-216,-217,0,-218,0, + 0,0,0,0,0,0,0,0,0,0, + -289,0,-492,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,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,519 +510,508 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface BaseAction { public final static char baseAction[] = { - 170,4,53,78,78,35,35,64,64,39, - 39,190,190,191,191,192,192,1,1,15, - 15,15,15,15,15,15,15,16,16,16, - 14,10,10,8,8,8,8,8,2,65, - 65,5,5,11,11,11,11,43,43,132, - 132,133,60,60,42,17,17,17,17,17, + 169,4,52,77,77,33,33,63,63,38, + 38,189,189,190,190,191,191,1,1,14, + 14,14,14,14,14,14,14,15,15,15, + 13,10,10,8,8,8,8,8,8,2, + 64,64,5,5,11,11,11,11,42,42, + 131,131,132,59,59,41,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,133,133,133,113,113, 17,17,17,17,17,17,17,17,17,17, - 17,17,17,17,134,134,134,114,18,18, - 18,18,18,18,18,18,18,18,18,18, - 19,19,171,171,172,172,173,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,29,29, - 29,30,30,32,32,33,33,34,34,36, - 36,37,37,41,41,40,40,40,40,40, - 40,40,40,40,40,40,40,40,38,28, - 140,140,98,98,102,102,93,193,193,69, - 69,69,69,69,69,69,69,69,70,70, - 70,71,71,55,55,174,174,72,72,72, - 115,115,73,73,73,73,74,74,74,74, - 74,75,75,79,79,79,79,79,79,79, - 48,48,48,48,48,105,105,106,106,49, - 175,23,23,23,23,23,46,46,88,88, - 88,88,88,147,147,142,142,142,142,142, - 143,143,143,144,144,144,145,145,145,146, - 146,146,89,89,89,89,89,90,90,90, - 12,13,13,13,13,13,13,13,13,13, - 13,13,99,119,119,119,119,119,117,117, - 117,118,118,149,149,148,148,121,121,150, - 83,83,84,84,86,87,85,51,45,151, - 151,52,50,82,82,152,152,141,141,122, - 123,123,77,77,153,153,62,62,62,57, - 57,56,63,63,67,67,54,54,54,91, - 91,101,100,100,59,59,58,58,61,61, - 47,103,103,103,94,94,94,95,96,96, - 96,97,97,107,107,107,109,109,108,108, - 194,194,92,92,177,177,177,177,177,125, - 44,44,155,176,176,126,126,126,126,178, - 178,31,31,116,127,127,127,127,110,110, - 120,120,120,157,158,158,158,158,158,158, - 158,158,158,181,181,179,179,180,180,159, - 159,159,159,160,182,112,111,111,183,183, - 161,161,161,161,104,104,104,184,184,9, - 185,185,186,162,154,154,163,163,164,165, - 165,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,68,68,168, - 168,128,128,129,129,129,129,129,129,3, - 169,169,166,166,130,130,130,80,81,76, - 156,156,113,113,187,187,187,131,131,124, - 124,188,188,170,170,958,38,1723,1696,915, - 2891,34,871,31,35,30,32,1827,260,29, - 27,55,877,108,79,80,110,896,590,1046, - 980,1087,1063,2854,1178,1145,272,1231,1188,1284, - 1858,1403,145,82,726,160,146,1531,38,795, - 36,1031,3624,34,871,31,35,62,32,1008, - 2395,38,795,36,230,2453,34,871,31,35, - 30,32,789,260,29,27,55,877,108,79, - 80,110,896,1849,1046,980,1087,1063,2915,1178, - 1145,508,2166,233,228,229,327,38,1654,382, - 2351,38,795,36,273,2453,34,871,31,35, - 30,32,789,260,29,27,55,877,89,79, - 80,240,243,246,249,2777,484,272,327,38, - 2775,2774,1812,1668,38,795,36,330,3624,34, - 871,31,35,61,32,563,1114,704,2421,2701, - 2759,3108,3660,1540,38,795,36,2371,2453,34, - 871,31,35,2483,32,789,260,29,27,55, - 877,108,79,80,110,896,340,1046,980,1087, - 1063,66,1178,1145,2606,1231,1188,1284,169,1403, - 145,2025,673,504,146,274,237,260,1071,855, - 2382,2056,38,795,36,3615,1056,34,871,336, - 35,2915,1344,95,505,1540,38,795,36,2371, - 2453,34,871,31,35,2483,32,789,260,29, - 27,55,877,108,79,80,110,896,340,1046, - 980,1087,1063,230,1178,1145,1493,1231,1188,1284, - 427,1403,145,2138,3969,504,146,317,2883,319, - 2646,1923,2382,312,2475,2001,1292,65,2570,1206, - 1447,2969,238,228,229,2076,505,648,2900,1650, - 38,795,36,500,3713,34,871,31,35,64, - 32,1805,38,795,36,2371,2453,34,871,31, - 35,2483,32,789,260,29,27,55,877,108, - 79,80,110,896,340,1046,980,1087,1063,2474, - 1178,1145,2603,1231,1188,1284,1135,1403,145,3067, - 1597,504,146,1097,38,795,36,1502,2382,34, - 871,43,35,96,485,500,327,38,1731,1689, - 1387,2180,505,1606,38,795,36,2690,2453,34, - 871,31,35,30,32,789,260,29,27,55, - 877,108,79,80,110,896,943,1046,980,1087, - 1063,2685,1178,1145,2603,1231,1188,1284,1387,1403, - 145,283,2490,375,146,2395,38,1723,1696,2571, - 2453,34,871,31,35,30,32,789,260,29, - 27,55,877,108,79,80,87,378,2647,2988, - 443,501,1678,38,795,36,37,2453,34,871, - 31,35,30,32,789,260,29,27,55,877, - 108,79,80,110,896,820,1046,980,1087,1063, - 410,1178,1145,3056,1231,1188,1284,3056,1403,145, - 235,352,375,146,1958,38,795,36,519,3713, - 34,871,31,35,30,32,169,334,498,379, - 735,1002,1979,38,795,36,376,2453,34,871, - 31,35,30,32,789,260,29,27,55,877, - 108,79,80,110,896,162,1046,980,1087,1063, - 853,1178,1145,74,1231,1188,1284,2172,1403,145, - 47,2730,160,146,49,2730,1436,1650,38,795, - 36,3693,3713,34,871,31,35,63,32,327, - 38,2775,275,1334,1979,38,795,36,380,2453, - 34,871,31,35,30,32,789,260,29,27, - 55,877,108,79,80,110,896,153,1046,980, - 1087,1063,372,1178,1145,1326,1231,1188,1284,1633, - 1403,145,169,2466,369,146,1002,1979,38,795, - 36,508,2453,34,871,31,35,30,32,789, - 260,29,27,55,877,108,79,80,110,896, - 1536,1046,980,1087,1063,2577,1178,1145,396,1231, - 1188,1284,563,1403,145,37,4248,369,146,590, - 1979,38,795,36,3062,2453,34,871,31,35, - 30,32,789,260,29,27,55,877,108,79, - 80,110,896,2025,1046,980,1087,1063,1317,1178, - 1145,169,1231,1188,1284,2713,1403,145,967,368, - 369,146,370,1914,38,795,36,1409,2453,34, - 871,31,35,30,32,789,260,29,27,55, - 877,108,79,80,110,896,510,1046,980,1087, - 1063,2577,1178,1145,1182,1231,1188,1284,3378,1403, - 145,61,367,375,146,590,1740,38,795,36, - 3509,2453,34,871,31,35,30,32,789,260, - 29,27,55,877,108,79,80,110,896,2649, - 1046,980,1087,1063,2422,1178,1145,1292,1231,1188, - 1284,90,1403,145,104,365,144,146,327,2969, - 1979,38,795,36,155,2453,34,871,31,35, - 30,32,789,260,29,27,55,877,108,79, - 80,110,896,394,1046,980,1087,1063,1221,1178, - 1145,3067,1231,1188,1284,508,1403,145,508,373, - 161,146,1979,38,795,36,508,2453,34,871, - 31,35,30,32,789,260,29,27,55,877, - 108,79,80,110,896,447,1046,980,1087,1063, - 28,1178,1145,73,1231,1188,1284,91,1403,145, - 104,58,157,146,1979,38,795,36,2882,2453, - 34,871,31,35,30,32,789,260,29,27, - 55,877,108,79,80,110,896,590,1046,980, - 1087,1063,4484,1178,1145,2378,1231,1188,1284,284, - 1403,145,508,1091,156,146,1979,38,795,36, - 430,2453,34,871,31,35,30,32,789,260, - 29,27,55,877,108,79,80,110,896,1390, - 1046,980,1087,1063,398,1178,1145,57,1231,1188, - 1284,169,1403,145,333,3243,155,146,1979,38, - 795,36,508,2453,34,871,31,35,30,32, - 789,260,29,27,55,877,108,79,80,110, - 896,1861,1046,980,1087,1063,4488,1178,1145,169, - 1231,1188,1284,3050,1403,145,420,347,154,146, - 1979,38,795,36,853,2453,34,871,31,35, - 30,32,789,260,29,27,55,877,108,79, - 80,110,896,1259,1046,980,1087,1063,2234,1178, - 1145,1733,1231,1188,1284,3314,1403,145,327,2923, - 153,146,1979,38,795,36,508,2453,34,871, - 31,35,30,32,789,260,29,27,55,877, - 108,79,80,110,896,590,1046,980,1087,1063, - 4503,1178,1145,169,1231,1188,1284,790,1403,145, - 1002,92,152,146,1979,38,795,36,853,2453, - 34,871,31,35,30,32,789,260,29,27, - 55,877,108,79,80,110,896,590,1046,980, - 1087,1063,4507,1178,1145,169,1231,1188,1284,4497, - 1403,145,327,3653,151,146,1979,38,795,36, - 508,2453,34,871,31,35,30,32,789,260, - 29,27,55,877,108,79,80,110,896,590, - 1046,980,1087,1063,4555,1178,1145,169,1231,1188, - 1284,711,1403,145,2475,2124,150,146,1979,38, - 795,36,508,2453,34,871,31,35,30,32, - 789,260,29,27,55,877,108,79,80,110, - 896,590,1046,980,1087,1063,4559,1178,1145,169, - 1231,1188,1284,3423,1403,145,1029,2381,149,146, - 1979,38,795,36,508,2453,34,871,31,35, - 30,32,789,260,29,27,55,877,108,79, - 80,110,896,1145,1046,980,1087,1063,154,1178, - 1145,2543,1231,1188,1284,3453,1403,145,589,72, - 148,146,1979,38,795,36,508,2453,34,871, - 31,35,30,32,789,260,29,27,55,877, - 108,79,80,110,896,1314,1046,980,1087,1063, - 1735,1178,1145,1292,1231,1188,1284,1502,1403,145, - 1292,71,147,146,1870,38,795,36,1502,2453, - 34,871,31,35,30,32,789,260,29,27, - 55,877,108,79,80,110,896,2378,1046,980, - 1087,1063,691,1178,1145,169,1231,1188,1284,2927, - 2703,166,2602,1979,38,795,36,1594,2453,34, - 871,31,35,30,32,789,260,29,27,55, - 877,108,79,80,110,896,298,1046,980,1087, - 1063,446,1178,1145,2092,1231,1188,1284,4270,1403, - 145,508,325,142,146,66,38,1518,46,508, - 2101,45,871,2303,38,795,36,2084,2453,34, - 871,31,35,30,32,789,260,29,27,55, - 877,108,79,80,110,896,70,1046,980,1087, - 1063,351,1178,1145,69,1231,1188,1284,519,1403, - 145,2602,321,191,146,2395,38,795,36,519, - 2453,34,871,31,35,30,32,789,260,29, - 27,55,877,108,79,80,110,896,952,1046, - 980,1087,1063,1705,1178,1145,169,1231,1188,1284, - 3245,2703,166,2395,38,795,36,1292,2453,34, - 871,31,35,30,32,789,260,29,27,55, - 877,108,79,80,110,896,1037,1046,980,1087, - 1063,1941,1178,1145,434,1231,1188,1284,2378,2703, - 166,1097,38,795,36,588,675,34,871,1395, - 35,327,38,2781,2395,38,795,36,288,2453, - 34,871,31,35,30,32,789,260,29,27, - 55,877,108,79,80,110,896,181,1046,980, - 1087,1063,762,1178,1145,56,1231,1188,1284,849, - 2703,166,2395,38,795,36,2627,2453,34,871, - 31,35,30,32,789,260,29,27,55,877, - 108,79,80,110,896,3113,1046,980,1087,1063, - 670,1178,1145,434,1231,1188,1284,2378,2703,166, - 1097,38,795,36,1292,757,34,871,337,35, - 327,38,280,2395,38,795,36,412,2453,34, - 871,31,35,30,32,789,260,29,27,55, - 877,108,79,80,110,896,197,1046,980,1087, - 1063,1327,1178,1145,169,1231,1188,1284,3545,2703, - 166,2439,38,795,36,411,2453,34,871,31, - 35,30,32,789,260,29,27,55,877,108, - 79,80,110,896,2421,1046,980,1087,1063,2489, - 1178,1145,324,1231,1188,1284,994,2703,166,1097, - 38,795,36,1292,124,34,871,1807,35,2209, - 38,388,2395,38,795,36,414,2453,34,871, - 31,35,30,32,789,260,29,27,55,877, - 108,79,80,110,896,2571,1046,980,1087,1063, - 507,1178,1145,508,1231,1188,2347,2185,38,278, - 2395,38,795,36,3608,2453,34,871,31,35, - 30,32,789,260,29,27,55,877,108,79, - 80,110,896,1492,1046,980,1087,1063,3049,1178, - 1145,99,1231,2243,2395,38,795,36,2172,2453, - 34,871,31,35,30,32,789,260,29,27, - 55,877,108,79,80,110,896,349,1046,980, - 1087,1063,2809,1178,2174,2395,38,795,36,3303, - 2453,34,871,31,35,30,32,789,260,29, - 27,55,877,108,79,80,110,896,1374,1046, - 980,1087,1063,3504,2121,2395,38,795,36,75, - 2453,34,871,31,35,30,32,789,260,29, - 27,55,877,108,79,80,110,896,1586,1046, - 980,1087,2154,2395,38,795,36,1328,2453,34, - 871,31,35,30,32,789,260,29,27,55, - 877,108,79,80,110,896,1966,1046,980,1087, - 2159,2483,38,1654,382,350,2463,1664,38,2775, - 275,169,1968,235,260,1173,3468,1664,38,2775, - 3069,2507,3528,3525,1213,38,1654,382,2395,38, - 795,36,272,2453,34,871,31,35,30,32, - 789,260,29,27,55,877,108,79,80,110, - 896,1023,1046,980,1995,272,2395,38,795,36, - 230,2453,34,871,31,35,30,32,789,260, - 29,27,55,877,108,79,80,110,896,348, - 1046,980,1996,1460,38,1654,382,1975,2079,233, - 228,229,2371,414,38,1654,382,1722,38,440, - 273,2145,4511,2517,1940,2279,341,2308,2210,346, - 230,3015,1310,1446,54,339,1822,240,243,246, - 249,2777,2050,2846,54,1570,965,4439,1812,1972, - 38,440,2297,2652,4511,1570,2679,4434,76,242, - 228,229,820,704,2421,2701,2759,3108,3660,2395, - 38,795,36,616,2453,34,871,31,35,30, - 32,789,260,29,27,55,877,108,79,80, - 110,896,322,1046,980,2032,2395,38,795,36, - 357,2453,34,871,31,35,30,32,789,260, - 29,27,55,877,108,79,80,110,896,1525, - 1046,980,2039,2395,38,795,36,1991,2453,34, - 871,31,35,30,32,789,260,29,27,55, - 877,108,79,80,110,896,1471,1046,2070,2395, - 38,795,36,240,2453,34,871,31,35,30, - 32,789,260,29,27,55,877,108,79,80, - 110,896,175,1046,2085,2513,525,1292,1163,2371, - 433,3222,3232,383,327,38,1654,382,327,38, - 1654,382,2185,38,276,227,2069,1525,3015,2611, - 158,2915,778,418,1525,2024,2209,38,388,2371, - 1988,182,437,3222,3232,272,202,213,3171,37, - 201,210,211,212,214,3163,1,171,340,1305, - 525,1173,38,795,36,2147,2915,34,871,336, - 35,185,169,170,172,173,174,175,176,227, - 2646,1386,1224,1950,158,100,508,2952,2189,38, - 276,281,1667,1347,1988,182,2622,492,282,2152, - 202,213,3171,2371,201,210,211,212,214,820, - 1863,171,169,77,3969,330,4524,317,2883,319, - 183,60,227,315,2475,186,169,170,172,173, - 174,175,176,490,491,327,38,1654,382,1739, - 230,2001,511,204,213,3171,3339,203,210,211, - 212,214,2860,3396,2521,2495,184,1307,38,2628, - 1521,2555,4418,98,2640,205,420,2948,2371,245, - 228,229,2378,2759,2080,936,2676,2371,215,206, - 207,208,209,290,291,292,293,227,54,327, - 38,2775,279,326,332,1278,227,1019,230,1570, - 866,3312,443,169,3876,3194,430,1002,204,213, - 3171,196,203,210,211,212,214,204,213,3171, - 429,203,210,211,212,214,2062,248,228,229, - 205,3795,2948,508,327,38,1654,382,2770,205, - 1347,2948,2371,215,206,207,208,209,290,291, - 292,293,215,206,207,208,209,290,291,292, - 293,227,1799,2080,348,54,2371,1479,59,3876, - 3379,1598,38,1654,382,1714,1570,732,3876,3415, - 508,508,204,213,3171,340,203,210,211,212, - 214,341,2308,2210,346,327,38,1654,382,2860, - 1452,1466,54,2378,205,1002,2948,1447,2969,560, - 327,38,289,1570,1429,320,103,215,206,207, - 208,209,290,291,292,293,54,2613,2494,158, - 323,616,327,38,2775,277,1014,1570,2795,523, - 331,332,200,3876,3677,2395,38,795,36,1459, - 2453,34,871,31,35,30,32,789,260,29, - 27,55,877,108,79,80,110,896,1566,1854, - 2395,38,795,36,508,2453,34,871,31,35, - 30,32,789,260,29,27,55,877,108,79, - 80,110,896,2378,1870,1105,38,795,36,3614, - 2511,34,871,336,35,2395,38,795,36,3263, - 2453,34,871,31,35,30,32,789,260,29, - 27,55,877,108,79,80,110,1938,283,169, - 1602,262,198,3628,1647,525,327,38,1654,382, - 511,2512,327,38,1654,382,334,2288,3969,2296, - 1002,317,2883,319,227,2654,2988,312,2475,158, - 3808,508,348,327,38,1654,382,54,2588,1988, - 182,529,3061,54,162,202,213,3171,51,201, - 210,211,212,214,1570,2642,171,1387,2051,341, - 2308,2210,346,2172,423,169,438,2586,3020,3221, - 3630,169,170,172,173,174,175,176,1514,38, - 795,36,3615,2915,34,871,336,35,2395,38, - 795,36,2139,2453,34,871,31,35,30,32, - 789,260,29,27,55,877,108,79,80,110, - 1943,384,416,2572,1402,349,169,230,372,525, - 1911,2168,38,795,36,3128,2593,34,871,336, - 35,3969,329,169,317,2883,319,857,227,1361, - 312,2475,362,158,1525,169,251,228,229,525, - 2617,1831,2050,1988,182,3142,2612,4439,2718,202, - 213,3171,2371,201,210,211,212,214,340,2681, - 171,2513,2634,158,3969,2371,436,314,3117,319, - 525,340,2650,1315,178,169,170,172,173,174, - 175,176,2382,1267,3015,1347,2378,2371,3839,227, - 305,309,2669,169,158,3742,1111,1777,296,327, - 38,1654,382,169,1988,182,227,3919,3367,3246, - 202,213,3171,2006,201,210,211,212,214,334, - 3659,171,523,1002,2378,219,525,1099,399,4326, - 422,327,38,1654,382,189,169,170,172,173, - 174,175,176,2639,2860,227,1471,162,517,400, - 158,2948,1057,492,1602,169,2371,2915,311,2371, - 1988,182,421,3862,2482,169,202,213,3171,3474, - 201,210,211,212,214,3015,610,171,340,2662, - 525,327,38,1654,382,328,332,2895,2302,489, - 491,3727,169,170,172,173,174,175,176,227, - 1043,2670,2382,419,158,2915,329,169,2654,169, - 2671,1103,439,2371,1988,182,1728,2706,1056,1525, - 202,213,3171,2915,201,210,211,212,214,3201, - 697,171,340,2691,525,3790,327,38,2775,3176, - 401,403,2692,3360,356,192,169,170,172,173, - 174,175,176,227,330,1525,2382,508,158,1620, - 2815,2826,2569,1602,3707,385,416,348,1988,182, - 1738,2378,329,169,202,213,3171,1788,201,210, - 211,212,214,303,784,171,2687,2518,525,2699, - 3770,1002,3431,1602,343,2308,2210,346,2705,188, - 169,170,172,173,174,175,176,227,1056,603, - 302,508,158,2915,2574,158,2716,169,2371,295, - 169,2371,1988,182,2371,3013,199,169,202,213, - 3171,2719,201,210,211,212,214,3015,871,171, - 340,169,525,340,169,1002,3226,2349,3676,327, - 38,1654,382,195,169,170,172,173,174,175, - 176,227,329,2697,2382,2707,158,2382,2717,158, - 327,38,289,2111,387,416,1988,182,1765,1318, - 54,1770,202,213,3171,1347,201,210,211,212, - 214,1570,2708,171,1083,38,795,36,3805,3360, - 34,871,336,35,386,416,492,194,169,170, - 172,173,174,175,176,2395,38,795,36,2709, - 2453,34,871,31,35,30,32,789,260,29, - 27,55,877,108,79,80,110,1981,2209,38, - 388,334,489,491,2860,1002,88,3969,2710,169, - 317,2883,319,2784,1056,1056,312,2475,169,2915, - 2915,348,2793,2172,501,38,1654,382,1347,162, - 2719,2900,1219,38,3189,36,3615,2915,34,871, - 336,35,3533,2581,508,3183,332,1002,341,2308, - 2210,346,2852,2720,169,54,2371,1452,1002,2722, - 2546,38,1654,382,2199,2463,1570,1513,329,329, - 169,158,236,260,2858,227,2466,1525,513,3282, - 3877,164,158,2724,2394,3969,329,2860,317,2883, - 319,272,1315,1021,312,2475,204,213,3171,2853, - 203,210,211,212,214,4292,3945,1349,3724,788, - 2723,2371,3839,327,38,1654,382,2038,205,230, - 2948,2371,169,2681,2731,508,4304,2207,3253,332, - 227,486,206,207,208,209,290,291,292,293, - 227,294,2522,169,54,3794,3929,1002,234,228, - 229,1099,399,4326,169,1570,965,377,873,273, - 3336,204,213,3171,5130,203,210,211,212,214, - 2863,158,5130,400,2371,2948,241,244,247,250, - 2777,1957,508,205,169,2948,5130,1812,2371,510, - 508,407,3200,227,2378,508,507,206,207,208, - 209,290,291,292,293,1057,2172,340,2378,2371, - 2915,2895,1264,508,204,213,3171,3623,203,210, - 211,212,214,2934,2378,3806,5130,2371,3015,5130, - 374,2382,2947,3911,5130,5130,205,5130,2948,327, - 38,1654,382,508,2378,1662,227,301,3879,304, - 206,207,208,209,290,291,292,293,508,329, - 5130,512,2581,4352,401,404,1002,204,213,3171, - 54,203,210,211,212,214,2677,2378,3444,2378, - 2371,1570,2512,220,5130,5130,5130,5130,5130,205, - 158,2948,5130,3498,5130,5130,4292,356,5130,227, - 164,5130,508,206,207,208,209,290,291,292, - 293,2581,1620,2815,2826,1002,297,5130,193,1347, - 204,213,3171,5130,203,210,211,212,214,1729, - 38,795,36,3614,5130,34,871,336,35,158, - 5130,5130,205,5130,2948,1173,38,795,36,164, - 2915,34,871,336,35,216,206,207,208,209, - 290,291,292,293,3824,5130,5130,5130,5130,327, - 38,1654,382,5130,5130,5130,169,169,2860,5130, - 1002,1002,3969,5130,5130,317,2883,319,5130,169, - 5130,312,2475,1002,5130,5130,348,5130,3969,330, - 54,317,2883,319,158,158,514,313,2475,5130, - 5130,1570,2729,3843,2338,1704,5130,158,5130,3433, - 332,5130,5130,341,2308,2210,346,1746,2395,38, - 795,36,515,2453,34,871,31,35,30,32, - 789,260,29,27,55,877,108,79,80,88, - 2395,38,795,36,5130,2453,34,871,31,35, - 30,32,789,260,29,27,55,877,108,79, - 80,86,2395,38,795,36,5130,2453,34,871, - 31,35,30,32,789,260,29,27,55,877, - 108,79,80,85,2395,38,795,36,5130,2453, - 34,871,31,35,30,32,789,260,29,27, - 55,877,108,79,80,84,2395,38,795,36, - 5130,2453,34,871,31,35,30,32,789,260, - 29,27,55,877,108,79,80,83,2395,38, - 795,36,5130,2453,34,871,31,35,30,32, - 789,260,29,27,55,877,108,79,80,82, - 2395,38,795,36,5130,2453,34,871,31,35, - 30,32,789,260,29,27,55,877,108,79, - 80,81,2252,38,795,36,5130,2453,34,871, - 31,35,30,32,789,260,29,27,55,877, - 108,79,80,106,2395,38,795,36,5130,2453, - 34,871,31,35,30,32,789,260,29,27, - 55,877,108,79,80,112,2395,38,795,36, - 5130,2453,34,871,31,35,30,32,789,260, - 29,27,55,877,108,79,80,111,2395,38, - 795,36,5130,2453,34,871,31,35,30,32, - 789,260,29,27,55,877,108,79,80,109, - 2395,38,795,36,5130,2453,34,871,31,35, - 30,32,789,260,29,27,55,877,108,79, - 80,107,1450,38,795,36,5130,2915,34,871, - 336,35,5130,5130,1297,38,795,36,3615,5130, - 34,871,336,35,5130,1588,38,3189,36,3615, - 5130,34,871,336,35,5130,1159,38,795,36, - 3632,5130,34,871,336,35,5130,5130,5130,5130, - 5130,5130,5130,5130,5130,3969,330,169,317,2883, - 319,1002,2581,5130,313,2475,1002,3969,5130,348, - 317,2883,319,5130,5130,395,312,2475,3969,5130, - 169,317,2883,319,2371,158,5130,312,2475,3969, - 158,3142,314,3117,319,1861,343,2308,2210,346, - 164,5130,788,340,5130,2056,38,795,36,3615, - 5130,34,871,336,35,5130,2056,38,795,36, - 3615,5130,34,871,336,35,5130,2382,1330,38, - 1654,382,5130,5130,5130,5130,305,309,5130,5130, - 5130,496,5130,5130,414,38,1654,382,5130,2194, - 38,1654,382,334,5130,3844,5130,1002,3969,54, - 5130,317,2883,319,3858,5130,3659,312,2475,3969, - 1570,52,317,2883,319,54,5130,5130,312,2475, - 54,162,3142,5130,408,3200,1570,52,2217,2482, - 5130,1570,52,3710,501,38,1654,382,2194,38, - 1654,382,5130,5130,2090,5130,5130,1576,5130,2755, - 5130,2371,5130,2194,38,1654,382,2194,38,1654, - 382,2194,38,1654,382,54,5130,306,309,54, - 3015,5130,5130,5130,1576,5130,1570,52,2371,5130, - 1570,52,5130,5130,54,5130,5130,5130,54,5130, - 5130,2901,54,5130,2169,1570,52,3015,3083,1570, - 52,5130,5130,1570,52,2214,38,1654,382,2217, - 38,1654,382,3259,1767,169,334,3291,2371,525, - 1002,3341,2581,169,5130,5130,525,2371,5130,5130, - 5130,5130,5130,5130,5130,5130,54,340,340,356, - 54,5130,5130,158,162,3722,340,1570,52,518, - 158,1570,52,190,2213,2815,2826,5130,5130,5130, - 164,2382,4406,169,169,2930,356,525,525,3530, - 2382,5130,169,5130,5130,521,2371,5130,5130,5130, - 5130,2994,2815,2826,494,169,340,340,5130,1002, - 169,158,158,169,1002,340,5130,1002,5130,5130, - 5130,190,190,5130,5130,5130,5130,5130,5130,5130, - 4406,4406,5130,158,3081,5130,5130,5130,158,2382, - 5130,158,5130,1869,3284,5130,5130,5130,2173,5130, - 3471,3813,5130,522,5130,5130,5130,5130,5130,5130, - 5130,5130,5130,5130,5130,5130,5130,5130,5130,5130, - 5130,5130,5130,5130,5130,5130,5130,5130,5130,5130, - 5130,5130,5130,5130,5130,5130,5130,5130,5130,5130, - 5130,5130,5130,5130,5130,5130,5130,5130,3644,3725, - 5130,5130,5130,5130,5130,5130,5130,5130,5130,5130, - 5130,5130,5130,5130,5130,5130,5130,3643,5130,5130, - 5130,5130,3273,5130,0,42,5148,0,42,5147, - 0,708,33,0,441,996,0,41,5148,0, - 41,5147,0,2519,128,0,1,431,0,445, - 1267,0,444,1773,0,708,44,0,1102,93, - 0,708,381,0,36,382,0,382,36,0, - 708,33,381,0,33,381,0,381,33,0, - 42,2638,0,1,548,0,1,5401,0,1, - 5400,0,1,5399,0,1,5398,0,1,5397, - 0,1,5396,0,1,5395,0,1,5394,0, - 1,5393,0,1,5392,0,1,5391,0,42, - 1,5148,0,42,1,5147,0,1865,1,0, - 5362,239,0,5361,239,0,5465,239,0,5464, - 239,0,5389,239,0,5388,239,0,5387,239, - 0,5386,239,0,5385,239,0,5384,239,0, - 5383,239,0,5382,239,0,5401,239,0,5400, - 239,0,5399,239,0,5398,239,0,5397,239, - 0,5396,239,0,5395,239,0,5394,239,0, - 5393,239,0,5392,239,0,5391,239,0,42, - 239,5148,0,42,239,5147,0,5171,239,0, - 53,5148,0,53,5147,0,235,997,0,48, - 5169,0,48,40,0,5148,53,0,5147,53, - 0,2519,130,0,2519,129,0,30,506,0, - 5457,432,0,1181,432,0,5171,1,0,42, - 1,0,52,40,0,1,94,0,40,52, - 0,5171,226,1,0,42,226,1,0,226, - 406,0,40,5148,0,40,5147,0,1,5148, - 2,0,1,5147,2,0,40,5148,2,0, - 40,5147,2,0,5148,39,0,5147,39,0, - 5169,50,0,50,40,0,5140,397,0,5139, - 397,0,1,721,0,1,2638,0,1,2655, - 0,226,405,0,2732,316,0,5457,97,0, - 1181,97,0,1,5457,0,1,1181,0,42, - 1,5148,2,0,42,1,5147,2,0,42, - 5148,2,0,42,5147,2,0,277,3279,0, - 1,2179,0,1,2656,0,5138,1,0,488, - 3717,0,226,1,0,226,1,3370,0,5140, - 226,0,5139,226,0,3606,226,0,8,10, - 0,226,218,0,226,217,0,187,3390,0 + 17,17,18,18,170,170,171,171,172,136, + 136,137,137,134,134,138,135,135,19,19, + 20,20,21,21,21,23,23,23,23,24, + 24,24,25,25,25,26,26,26,26,26, + 28,28,28,29,29,30,30,31,31,32, + 32,35,35,36,36,40,40,39,39,39, + 39,39,39,39,39,39,39,39,39,39, + 37,27,139,139,97,97,101,101,92,192, + 192,68,68,68,68,68,68,68,68,68, + 69,69,69,70,70,54,54,173,173,71, + 71,71,114,114,72,72,72,72,73,73, + 73,73,73,74,74,78,78,78,78,78, + 78,78,47,47,47,47,47,104,104,105, + 105,48,174,22,22,22,22,22,45,45, + 87,87,87,87,87,146,146,141,141,141, + 141,141,142,142,142,143,143,143,144,144, + 144,145,145,145,88,88,88,88,88,89, + 89,89,12,12,12,12,12,12,12,12, + 12,12,12,100,118,118,118,118,118,116, + 116,116,117,117,148,148,147,147,120,120, + 149,82,82,83,83,85,86,84,50,44, + 150,150,51,49,81,81,151,151,140,140, + 121,122,122,76,76,152,152,61,61,61, + 56,56,55,62,62,66,66,53,53,53, + 90,90,99,98,98,58,58,57,57,60, + 60,46,102,102,102,93,93,93,94,95, + 95,95,96,96,106,106,106,108,108,107, + 107,193,193,91,91,176,176,176,176,176, + 124,43,43,154,175,175,125,125,125,125, + 177,177,34,34,115,126,126,126,126,109, + 109,119,119,119,156,157,157,157,157,157, + 157,157,157,157,180,180,178,178,179,179, + 158,158,158,158,159,181,111,110,110,182, + 182,160,160,160,160,103,103,103,183,183, + 9,184,184,185,161,153,153,162,162,163, + 164,164,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,65,67,67, + 167,167,127,127,128,128,128,128,128,128, + 3,168,168,165,165,129,129,129,79,80, + 75,155,155,112,112,186,186,186,130,130, + 123,123,187,187,169,169,969,39,2095,2088, + 2032,2691,34,1065,31,35,30,32,2007,29, + 27,56,1071,110,81,82,112,1157,860,1209, + 1169,1294,1255,3182,1336,1295,1388,1376,1411,1736, + 273,1458,147,1652,1491,162,148,1071,39,991, + 36,982,3237,34,1065,337,35,418,39,2979, + 2402,39,991,36,232,2783,34,1065,31,35, + 30,32,898,29,27,56,1071,110,81,82, + 112,1157,390,1209,1169,1294,1255,486,1336,1295, + 1388,1376,2689,235,230,231,2231,39,389,4458, + 331,31,318,2015,320,673,274,1867,314,1845, + 350,1540,3639,349,1980,1469,39,441,418,3016, + 4394,242,245,248,251,2685,418,3561,1097,39, + 991,36,1956,3460,34,1065,31,35,65,32, + 344,1422,564,347,485,700,783,3187,2684,3212, + 3222,3277,4186,1552,39,991,36,2286,2783,34, + 1065,31,35,2822,32,898,29,27,56,1071, + 110,81,82,112,1157,341,1209,1169,1294,1255, + 1321,1336,1295,1388,1376,1411,776,1337,1458,147, + 1310,1168,505,148,2286,2185,39,277,126,2501, + 1213,39,991,36,3606,3308,34,1065,337,35, + 1570,97,2835,506,1552,39,991,36,2286,2783, + 34,1065,31,35,2822,32,898,29,27,56, + 1071,110,81,82,112,1157,341,1209,1169,1294, + 1255,214,1336,1295,1388,1376,1411,577,1075,1458, + 147,3125,4458,505,148,318,2015,320,2032,3557, + 2501,313,1845,1224,39,991,36,420,860,34, + 1065,44,35,3292,506,1420,3068,434,3260,3297, + 3237,358,501,302,1817,39,991,36,2286,2783, + 34,1065,31,35,2822,32,898,29,27,56, + 1071,110,81,82,112,1157,341,1209,1169,1294, + 1255,2148,1336,1295,1388,1376,1411,1748,2816,1458, + 147,2886,1041,505,148,1344,947,654,331,2608, + 2501,1028,39,991,36,448,2847,34,1065,31, + 35,63,32,501,506,1618,39,991,36,164, + 2783,34,1065,31,35,30,32,898,29,27, + 56,1071,110,81,82,112,1157,2118,1209,1169, + 1294,1255,431,1336,1295,1388,1376,1411,952,2910, + 1458,147,2886,1739,376,148,1690,39,991,36, + 2065,2783,34,1065,31,35,30,32,898,29, + 27,56,1071,110,81,82,112,1157,379,1209, + 1169,1294,1255,502,1336,1295,1388,1376,1411,1306, + 428,1458,147,327,333,376,148,1987,39,991, + 36,783,2783,34,1065,31,35,30,32,898, + 29,27,56,1071,110,81,82,112,1157,377, + 1209,1169,1294,1255,783,1336,1295,1388,1376,1411, + 1806,2900,1458,147,67,3496,162,148,1041,2192, + 380,742,947,1987,39,991,36,444,2783,34, + 1065,31,35,30,32,898,29,27,56,1071, + 110,81,82,112,1157,164,1209,1169,1294,1255, + 1916,1336,1295,1388,1376,1411,2460,397,1458,147, + 411,381,370,148,418,1784,2947,38,1987,39, + 991,36,3075,2783,34,1065,31,35,30,32, + 898,29,27,56,1071,110,81,82,112,1157, + 1611,1209,1169,1294,1255,918,1336,1295,1388,1376, + 1411,2587,31,1458,147,2652,734,370,148,2525, + 373,66,39,1664,47,1347,700,46,1065,1401, + 1987,39,991,36,1540,2783,34,1065,31,35, + 30,32,898,29,27,56,1071,110,81,82, + 112,1157,577,1209,1169,1294,1255,369,1336,1295, + 1388,1376,1411,860,1131,1458,147,4134,3347,370, + 148,418,39,2947,2961,1927,39,991,36,1540, + 2783,34,1065,31,35,30,32,898,29,27, + 56,1071,110,81,82,112,1157,946,1209,1169, + 1294,1255,368,1336,1295,1388,1376,1411,1308,1081, + 1458,147,28,3237,376,148,1752,39,991,36, + 371,2783,34,1065,31,35,30,32,898,29, + 27,56,1071,110,81,82,112,1157,1308,1209, + 1169,1294,1255,3237,1336,1295,1388,1376,1411,1063, + 92,1458,147,106,366,146,148,1987,39,991, + 36,330,2783,34,1065,31,35,30,32,898, + 29,27,56,1071,110,81,82,112,1157,860, + 1209,1169,1294,1255,3691,1336,1295,1388,1376,1411, + 1540,330,1458,147,312,1782,163,148,795,3044, + 374,1987,39,991,36,2416,2783,34,1065,31, + 35,30,32,898,29,27,56,1071,110,81, + 82,112,1157,74,1209,1169,1294,1255,3074,1336, + 1295,1388,1376,1411,154,75,1458,147,418,3095, + 159,148,1987,39,991,36,1540,2783,34,1065, + 31,35,30,32,898,29,27,56,1071,110, + 81,82,112,1157,2652,1209,1169,1294,1255,2032, + 1336,1295,1388,1376,1411,2693,233,1458,147,59, + 2648,158,148,1987,39,991,36,1540,2783,34, + 1065,31,35,30,32,898,29,27,56,1071, + 110,81,82,112,1157,390,1209,1169,1294,1255, + 2648,1336,1295,1388,1376,1411,947,512,1458,147, + 58,2648,157,148,1987,39,991,36,1027,2783, + 34,1065,31,35,30,32,898,29,27,56, + 1071,110,81,82,112,1157,447,1209,1169,1294, + 1255,1188,1336,1295,1388,1376,1411,31,285,1458, + 147,845,2035,156,148,1987,39,991,36,2376, + 2783,34,1065,31,35,30,32,898,29,27, + 56,1071,110,81,82,112,1157,512,1209,1169, + 1294,1255,2032,1336,1295,1388,1376,1411,978,93, + 1458,147,106,353,155,148,1987,39,991,36, + 520,2783,34,1065,31,35,30,32,898,29, + 27,56,1071,110,81,82,112,1157,351,1209, + 1169,1294,1255,352,1336,1295,1388,1376,1411,31, + 520,1458,147,4313,322,154,148,1987,39,991, + 36,520,2783,34,1065,31,35,30,32,898, + 29,27,56,1071,110,81,82,112,1157,4155, + 1209,1169,1294,1255,2032,1336,1295,1388,1376,1411, + 31,1561,1458,147,1993,2281,153,148,1987,39, + 991,36,1163,2783,34,1065,31,35,30,32, + 898,29,27,56,1071,110,81,82,112,1157, + 1463,1209,1169,1294,1255,3743,1336,1295,1388,1376, + 1411,31,31,1458,147,2397,2647,152,148,1987, + 39,991,36,1540,2783,34,1065,31,35,30, + 32,898,29,27,56,1071,110,81,82,112, + 1157,57,1209,1169,1294,1255,2032,1336,1295,1388, + 1376,1411,1418,31,1458,147,348,634,151,148, + 1987,39,991,36,1540,2783,34,1065,31,35, + 30,32,898,29,27,56,1071,110,81,82, + 112,1157,1308,1209,1169,1294,1255,3237,1336,1295, + 1388,1376,1411,1797,1170,1458,147,94,3237,150, + 148,1987,39,991,36,1441,2783,34,1065,31, + 35,30,32,898,29,27,56,1071,110,81, + 82,112,1157,325,1209,1169,1294,1255,1342,1336, + 1295,1388,1376,1411,31,1663,1458,147,3002,1598, + 149,148,1882,39,991,36,1663,2783,34,1065, + 31,35,30,32,898,29,27,56,1071,110, + 81,82,112,1157,390,1209,1169,1294,1255,1344, + 1336,1295,1388,1376,1411,2669,31,2925,168,3080, + 947,1987,39,991,36,161,2783,34,1065,31, + 35,30,32,898,29,27,56,1071,110,81, + 82,112,1157,1634,1209,1169,1294,1255,1980,1336, + 1295,1388,1376,1411,1040,1156,1458,147,98,326, + 144,148,1465,418,39,1698,383,1739,2387,100, + 2309,39,991,36,1616,2783,34,1065,31,35, + 30,32,898,29,27,56,1071,110,81,82, + 112,1157,75,1209,1169,1294,1255,55,1336,1295, + 1388,1376,1411,1678,52,1458,147,332,333,193, + 148,2402,39,991,36,2096,2783,34,1065,31, + 35,30,32,898,29,27,56,1071,110,81, + 82,112,1157,860,1209,1169,1294,1255,4320,1336, + 1295,1388,1376,1411,2032,1746,2925,168,2402,39, + 991,36,1789,2783,34,1065,31,35,30,32, + 898,29,27,56,1071,110,81,82,112,1157, + 2149,1209,1169,1294,1255,1239,1336,1295,1388,1376, + 1411,323,1324,2925,168,3125,860,1352,39,991, + 36,4385,2847,34,1065,31,35,62,32,2402, + 39,991,36,289,2783,34,1065,31,35,30, + 32,898,29,27,56,1071,110,81,82,112, + 1157,101,1209,1169,1294,1255,1607,1336,1295,1388, + 1376,1411,1100,384,2925,168,2402,39,991,36, + 1999,2783,34,1065,31,35,30,32,898,29, + 27,56,1071,110,81,82,112,1157,2149,1209, + 1169,1294,1255,425,1336,1295,1388,1376,1411,2032, + 395,2925,168,1395,39,991,36,2071,3460,34, + 1065,31,35,30,32,2173,499,2402,39,991, + 36,413,2783,34,1065,31,35,30,32,898, + 29,27,56,1071,110,81,82,112,1157,860, + 1209,1169,1294,1255,4398,1336,1295,1388,1376,1411, + 66,282,2925,168,2447,39,991,36,412,2783, + 34,1065,31,35,30,32,898,29,27,56, + 1071,110,81,82,112,1157,102,1209,1169,1294, + 1255,324,1336,1295,1388,1376,1411,1598,2632,2925, + 168,1097,39,991,36,2575,3460,34,1065,31, + 35,64,32,385,417,2402,39,991,36,415, + 2783,34,1065,31,35,30,32,898,29,27, + 56,1071,110,81,82,112,1157,2089,1209,1169, + 1294,1255,2149,1336,1295,1388,2644,418,39,1745, + 1704,2115,2402,39,991,36,3539,2783,34,1065, + 31,35,30,32,898,29,27,56,1071,110, + 81,82,112,1157,1972,1209,1169,1294,1255,2217, + 1336,1295,2562,2402,39,991,36,1979,2783,34, + 1065,31,35,30,32,898,29,27,56,1071, + 110,81,82,112,1157,283,1209,1169,1294,1255, + 76,1336,2577,2402,39,991,36,399,2783,34, + 1065,31,35,30,32,898,29,27,56,1071, + 110,81,82,112,1157,2103,1209,1169,1294,1255, + 1540,2507,2402,39,991,36,2460,2783,34,1065, + 31,35,30,32,898,29,27,56,1071,110, + 81,82,112,1157,2217,1209,1169,1294,2510,2402, + 39,991,36,2589,2783,34,1065,31,35,30, + 32,898,29,27,56,1071,110,81,82,112, + 1157,425,1209,1169,1294,2520,2492,39,1698,383, + 3657,2665,299,1540,2402,39,991,36,237,2783, + 34,1065,31,35,30,32,898,29,27,56, + 1071,110,81,82,112,1157,860,1209,1169,2370, + 273,4404,2402,39,991,36,2717,2783,34,1065, + 31,35,30,32,898,29,27,56,1071,110, + 81,82,112,1157,232,1209,1169,2380,2402,39, + 991,36,2733,2783,34,1065,31,35,30,32, + 898,29,27,56,1071,110,81,82,112,1157, + 248,1209,2425,235,230,231,1224,39,991,36, + 424,600,34,1065,2169,35,274,1224,39,991, + 36,386,417,34,1065,338,35,1976,3095,2217, + 682,242,245,248,251,2685,1867,1224,39,991, + 36,3639,1956,34,1065,2254,35,418,39,2947, + 276,1270,39,1698,383,1435,1802,3187,2684,3212, + 3222,3277,4186,2402,39,991,36,183,2783,34, + 1065,31,35,30,32,898,29,27,56,1071, + 110,81,82,112,1157,273,1209,1169,2381,2402, + 39,991,36,611,2783,34,1065,31,35,30, + 32,898,29,27,56,1071,110,81,82,112, + 1157,177,1209,1169,2400,526,1191,39,991,36, + 1540,3237,34,1065,337,35,2149,2182,39,279, + 31,1599,1239,229,526,1198,2092,761,160,1570, + 2644,1116,2182,39,277,2286,3237,284,2399,184, + 2715,3055,341,73,204,215,4368,160,203,212, + 213,214,216,2835,77,173,1,1139,4458,331, + 526,318,2015,320,1988,3107,2501,316,1845,187, + 171,172,174,175,176,177,178,2149,229,297, + 1094,3384,1388,160,330,31,419,349,31,947, + 1793,31,2989,2399,184,2704,3474,155,2721,204, + 215,4368,2286,203,212,213,214,216,3194,31, + 173,2188,3798,3047,342,1422,564,347,2217,185, + 229,3074,357,340,188,171,172,174,175,176, + 177,178,418,39,1698,383,1026,2230,2986,3009, + 304,206,215,4368,435,205,212,213,214,216, + 2746,418,39,281,2286,1685,199,48,2936,2511, + 2231,39,389,207,1425,3077,421,1515,1868,39, + 441,2286,229,4394,2536,1793,217,208,209,210, + 211,291,292,293,294,506,39,1698,383,2835, + 1604,3480,3478,206,215,4368,249,205,212,213, + 214,216,3708,2496,1187,1318,39,2893,1541,1189, + 2882,1877,39,1698,383,207,2833,3077,1116,55, + 2286,349,2286,3237,1344,2149,1675,2907,217,208, + 209,210,211,291,292,293,294,31,229,55, + 2835,1778,50,2936,3545,55,1675,2137,342,1422, + 564,347,1675,887,3708,2557,1540,1593,357,206, + 215,4368,232,205,212,213,214,216,2848,3321, + 3545,330,2286,2902,2986,3009,418,39,1698,383, + 2149,207,1739,3077,2194,39,2947,276,296,72, + 229,244,230,231,217,208,209,210,211,291, + 292,293,294,1537,39,1698,383,2221,567,357, + 424,206,215,4368,1540,205,212,213,214,216, + 3708,2705,329,333,2230,2986,3009,2217,2521,2533, + 438,3260,3297,207,2606,3077,1936,55,418,3130, + 2947,79,1119,295,1675,602,217,208,209,210, + 211,291,292,293,294,1054,39,991,36,2909, + 611,34,1065,337,35,198,1540,594,39,1698, + 383,2460,3708,2760,2402,39,991,36,2460,2783, + 34,1065,31,35,30,32,898,29,27,56, + 1071,110,81,82,112,1157,1523,1209,2426,71, + 526,55,1973,39,1698,383,1800,4458,1675,910, + 318,2015,320,1064,1540,265,313,1845,3724,526, + 1745,349,1540,160,2034,514,2421,478,2286,1308, + 2322,3116,513,166,3237,1540,55,229,2194,39, + 2947,3164,160,1675,53,1006,341,70,342,1422, + 564,347,2399,184,2415,3065,1683,3114,204,215, + 4368,2497,203,212,213,214,216,1720,61,173, + 707,1202,39,991,36,3606,3237,34,1065,337, + 35,2612,330,3553,171,172,174,175,176,177, + 178,418,39,1698,383,2460,1515,3612,1361,2647, + 2286,1676,2286,4408,2228,2463,471,1478,353,1976, + 3095,947,526,2975,418,39,1698,383,2835,567, + 229,435,425,4458,330,423,318,2015,320,1919, + 229,363,313,1845,160,160,2217,418,39,1698, + 383,989,400,4215,524,2399,184,1079,422,373, + 31,204,215,4368,2976,203,212,213,214,216, + 2217,2486,173,401,2197,3077,511,1344,2286,441, + 4346,440,1540,526,202,2072,180,171,172,174, + 175,176,177,178,601,31,341,357,1540,3515, + 444,229,306,310,1436,2520,160,830,200,3237, + 425,3064,3220,2986,3009,60,2399,184,430,1265, + 559,3572,204,215,4368,1957,203,212,213,214, + 216,321,3571,173,529,1739,31,2157,526,284, + 3355,2218,388,417,2394,2286,2456,191,171,172, + 174,175,176,177,178,2179,229,331,2495,3489, + 2670,160,2286,341,402,405,2132,3107,378,31, + 349,2399,184,2840,519,3162,333,204,215,4368, + 2835,203,212,213,214,216,571,2501,173,617, + 2415,31,31,526,2271,947,1340,344,1422,564, + 347,522,3627,171,172,174,175,176,177,178, + 2671,229,418,39,1698,383,160,2033,160,31, + 387,417,2653,2286,2411,2654,2399,184,1250,239, + 2172,31,204,215,4368,1370,203,212,213,214, + 216,341,1403,173,705,1623,55,1540,526,493, + 1540,31,2059,1675,1060,2286,777,194,171,172, + 174,175,176,177,178,2501,229,418,39,1698, + 383,160,2299,341,31,232,2481,1566,2286,1792, + 105,2399,184,3354,2710,491,492,204,215,4368, + 2676,203,212,213,214,216,341,2501,173,793, + 232,55,511,526,240,230,231,2116,1675,2984, + 232,1833,190,171,172,174,175,176,177,178, + 2501,229,418,39,1698,383,160,2691,3459,247, + 230,231,2692,1540,1875,186,2399,184,2704,250, + 230,231,204,215,4368,1335,203,212,213,214, + 216,2718,2703,173,881,1041,55,2736,526,947, + 418,39,290,1675,2512,232,439,197,171,172, + 174,175,176,177,178,865,229,418,39,1698, + 383,160,164,2518,31,2495,1041,947,3616,2286, + 947,2399,184,953,253,230,231,204,215,4368, + 2784,203,212,213,214,216,2786,2835,173,2788, + 160,55,2794,164,418,39,2947,280,1675,715, + 3040,201,196,171,172,174,175,176,177,178, + 2402,39,991,36,2593,2783,34,1065,31,35, + 30,32,898,29,27,56,1071,110,81,82, + 112,1157,2915,2127,2402,39,991,36,2744,2783, + 34,1065,31,35,30,32,898,29,27,56, + 1071,110,81,82,112,1157,493,2141,1526,39, + 991,36,2698,3052,34,1065,337,35,2698,2642, + 418,39,1698,383,1171,39,3200,36,3606,3237, + 34,1065,337,35,418,39,2947,278,2714,4192, + 2732,31,490,492,2873,947,31,31,2286,31, + 947,4360,518,2934,55,1765,506,39,1698,383, + 4458,1675,602,318,2015,320,229,31,160,313, + 1845,1381,2802,160,349,1344,4458,330,1139,318, + 2015,320,3247,1534,3068,313,1845,206,215,4368, + 55,205,212,213,214,216,89,1675,53,2484, + 849,342,1422,564,347,418,39,1698,383,207, + 1593,3077,2659,2790,2486,2631,2286,418,39,2947, + 3195,2777,487,208,209,210,211,291,292,293, + 294,2712,2217,1739,229,2357,39,991,36,273, + 2783,34,1065,31,35,30,32,898,29,27, + 56,1071,91,81,82,206,215,4368,57,205, + 212,213,214,216,2935,2697,1308,2810,2286,3604, + 221,3237,2217,3201,333,2796,1344,207,2800,3077, + 2217,31,408,3226,1671,2578,229,1704,2286,5017, + 508,208,209,210,211,291,292,293,294,2208, + 39,1698,383,1962,1540,275,341,206,215,4368, + 4511,205,212,213,214,216,2960,31,303,330, + 2286,3160,2231,39,389,418,39,290,1041,207, + 3727,3077,947,55,1739,31,5017,3620,229,2630, + 1675,53,305,208,209,210,211,291,292,293, + 294,594,39,1698,383,164,4276,5017,2612,206, + 215,4368,5017,205,212,213,214,216,2761,31, + 5017,5017,2286,2696,3507,333,31,5017,5017,5017, + 2748,207,1041,3077,31,55,947,2702,4176,5017, + 229,3760,1675,53,509,208,209,210,211,291, + 292,293,294,2208,39,1698,383,1540,1540,164, + 2407,206,215,4368,5017,205,212,213,214,216, + 1679,39,991,36,2909,3217,34,1065,337,35, + 31,3618,31,207,947,3077,947,55,1540,31, + 3049,3104,2217,865,1675,53,218,208,209,210, + 211,291,292,293,294,1540,1540,160,1540,160, + 5017,5017,2756,5017,5017,5017,5017,2676,5017,2490, + 3796,3159,4458,5017,4225,318,2015,320,5017,3303, + 4525,313,1845,5017,1540,5017,349,5017,2851,2858, + 5017,375,2402,39,991,36,515,2783,34,1065, + 31,35,30,32,898,29,27,56,1071,110, + 81,82,90,342,1422,564,347,4226,2402,39, + 991,36,516,2783,34,1065,31,35,30,32, + 898,29,27,56,1071,110,81,82,112,2164, + 2402,39,991,36,5017,2783,34,1065,31,35, + 30,32,898,29,27,56,1071,110,81,82, + 112,2177,2402,39,991,36,5017,2783,34,1065, + 31,35,30,32,898,29,27,56,1071,110, + 81,82,112,2225,2402,1784,991,1785,5017,2783, + 34,1065,31,35,30,32,898,29,27,56, + 1071,110,81,82,89,2402,39,991,36,5017, + 2783,34,1065,31,35,30,32,898,29,27, + 56,1071,110,81,82,88,2402,39,991,36, + 5017,2783,34,1065,31,35,30,32,898,29, + 27,56,1071,110,81,82,87,2402,39,991, + 36,5017,2783,34,1065,31,35,30,32,898, + 29,27,56,1071,110,81,82,86,2402,39, + 991,36,5017,2783,34,1065,31,35,30,32, + 898,29,27,56,1071,110,81,82,85,2402, + 39,991,36,5017,2783,34,1065,31,35,30, + 32,898,29,27,56,1071,110,81,82,84, + 2402,39,991,36,5017,2783,34,1065,31,35, + 30,32,898,29,27,56,1071,110,81,82, + 83,2262,39,991,36,5017,2783,34,1065,31, + 35,30,32,898,29,27,56,1071,110,81, + 82,108,2402,39,991,36,5017,2783,34,1065, + 31,35,30,32,898,29,27,56,1071,110, + 81,82,114,2402,39,991,36,5017,2783,34, + 1065,31,35,30,32,898,29,27,56,1071, + 110,81,82,113,2402,39,991,36,5017,2783, + 34,1065,31,35,30,32,898,29,27,56, + 1071,110,81,82,111,2402,39,991,36,5017, + 2783,34,1065,31,35,30,32,898,29,27, + 56,1071,110,81,82,109,1459,39,991,36, + 3606,1540,34,1065,337,35,2549,39,1698,383, + 5017,2665,2217,1667,39,3200,36,3606,238,34, + 1065,337,35,2217,1213,39,991,36,3606,2217, + 34,1065,337,35,3269,1304,39,991,36,3464, + 273,34,1065,337,35,2217,2217,5017,4458,1540, + 302,318,2015,320,5017,5017,5017,313,1845,5017, + 5017,4533,5017,5017,232,4458,5017,222,318,2015, + 320,5017,1079,396,313,1845,4458,5017,5017,318, + 2015,320,3324,298,195,313,1845,4458,5017,849, + 315,3192,320,236,230,231,1191,39,991,36, + 1079,3237,34,1065,337,35,274,1213,39,991, + 36,3606,5017,34,1065,337,35,306,310,5017, + 5017,243,246,249,252,2685,5017,5017,5017,5017, + 5017,5017,1956,1278,5017,5017,4209,2286,4408,5017, + 2208,39,1698,383,5017,307,310,3571,4458,331, + 5017,318,2015,320,5017,229,5017,314,1845,4458, + 5017,5017,318,2015,320,5017,1523,5017,313,1845, + 947,409,3226,5017,55,5017,989,400,4215,5017, + 2548,1675,53,3615,2286,5017,5017,2981,1543,39, + 991,36,2951,160,34,1065,337,35,401,2971, + 3077,5017,2835,166,5017,2208,39,1698,383,5017, + 5017,5017,5017,5017,2208,39,1698,383,2354,39, + 1698,383,5017,5017,2497,39,1698,383,418,39, + 1698,383,5017,5017,5017,5017,3064,5017,5017,55, + 4458,5017,5017,315,3192,320,1675,53,55,5017, + 5017,5017,55,5017,5017,1675,53,5017,55,1675, + 53,5017,55,5017,2994,1675,53,3782,5017,1675, + 1365,493,31,3017,5017,5017,526,3330,418,39, + 1698,383,5017,3665,5017,5017,5017,5017,31,402, + 404,5017,526,5017,341,5017,5017,5017,5017,160, + 31,5017,31,5017,526,5017,2286,490,492,192, + 341,1900,55,2978,5017,160,5017,31,4287,1675, + 1734,2286,341,5017,341,192,5017,160,31,31, + 5017,1523,2286,2286,4287,947,5017,192,31,341, + 2981,5017,2286,5017,5017,1523,4287,3495,2501,947, + 341,341,5017,1523,5017,5017,5017,947,160,5017, + 341,5017,1882,2501,5017,5017,31,31,166,31, + 947,947,160,947,2501,2501,5017,2293,5017,5017, + 160,31,166,31,2501,947,3747,947,497,495, + 166,5017,5017,160,160,5017,160,5017,523,5017, + 5017,5017,3748,2736,2846,5017,2894,5017,160,5017, + 160,5017,5017,5017,3778,5017,5017,5017,1874,5017, + 3824,5017,5017,5017,5017,5017,5017,5017,5017,5017, + 5017,5017,4203,5017,5017,5017,5017,5017,5017,5017, + 5017,5017,5017,5017,5017,5017,4181,5017,5017,5017, + 5017,5017,5017,5017,4229,5017,0,43,5035,0, + 43,5034,0,621,33,0,442,1072,0,42, + 5035,0,42,5034,0,2433,130,0,1,432, + 0,446,778,0,445,1329,0,621,45,0, + 1746,95,0,621,382,0,39,37,0,36, + 38,0,43,1034,0,1,548,0,1,5289, + 0,1,5288,0,1,5287,0,1,5286,0, + 1,5285,0,1,5284,0,1,5283,0,1, + 5282,0,1,5281,0,1,5280,0,1,5279, + 0,43,1,5035,0,43,1,5034,0,1081, + 1,0,5251,241,0,5250,241,0,5353,241, + 0,5352,241,0,5278,241,0,5277,241,0, + 5276,241,0,5275,241,0,5274,241,0,5273, + 241,0,5272,241,0,5271,241,0,5289,241, + 0,5288,241,0,5287,241,0,5286,241,0, + 5285,241,0,5284,241,0,5283,241,0,5282, + 241,0,5281,241,0,5280,241,0,5279,241, + 0,43,241,5035,0,43,241,5034,0,5059, + 241,0,54,5035,0,54,5034,0,237,842, + 0,383,36,0,36,383,0,382,33,0, + 33,382,0,49,5057,0,49,41,0,5035, + 54,0,5034,54,0,2433,132,0,2433,131, + 0,30,507,0,5345,433,0,1417,433,0, + 5059,1,0,43,1,0,53,41,0,1, + 96,0,41,53,0,5059,228,1,0,43, + 228,1,0,228,407,0,41,5035,0,41, + 5034,0,1,5035,2,0,1,5034,2,0, + 41,5035,2,0,41,5034,2,0,5035,40, + 0,5034,40,0,5057,51,0,51,41,0, + 5027,398,0,5026,398,0,1,720,0,1, + 1034,0,1,2904,0,228,406,0,3030,317, + 0,5345,99,0,1417,99,0,39,78,0, + 1,5345,0,1,1417,0,43,1,5035,2, + 0,43,1,5034,2,0,43,5035,2,0, + 43,5034,2,0,278,3325,0,1,616,0, + 1,2640,0,5025,1,0,489,3552,0,228, + 1,0,228,1,3363,0,5027,228,0,5026, + 228,0,3536,228,0,8,10,0,228,220, + 0,228,219,0,189,3214,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1047,309 +1024,312 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,28,29, - 30,31,32,33,34,35,0,37,38,39, - 40,41,42,43,8,45,46,47,48,49, - 50,51,52,53,54,55,56,57,58,59, - 0,61,62,63,64,0,1,2,68,69, - 70,71,7,73,74,75,76,77,78,79, - 80,0,82,83,84,85,86,0,1,2, - 3,4,5,6,7,8,9,10,11,12, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,28,29,30,31,32, - 33,34,35,0,37,38,39,40,41,42, - 43,8,45,46,47,48,49,50,51,52, - 53,54,55,56,57,58,59,66,61,62, - 63,64,0,0,0,68,69,70,71,99, - 73,74,75,76,77,78,79,80,0,82, - 83,84,85,86,0,1,2,3,4,5, - 6,7,8,9,10,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,28,29,30,31,32,33,34,35, - 0,37,38,39,40,41,42,43,65,45, - 46,47,48,49,50,51,52,53,54,55, - 56,57,58,59,0,61,62,63,64,0, - 88,89,68,69,70,11,12,73,74,75, - 76,77,78,79,80,101,82,83,84,85, - 86,0,1,2,3,4,5,6,7,8, - 9,10,11,12,13,14,15,16,17,18, - 19,20,21,22,23,24,25,26,27,28, - 29,30,31,32,33,34,35,0,37,38, - 39,40,41,42,43,66,45,46,47,48, - 49,50,51,52,53,54,55,56,57,58, - 59,0,61,62,63,64,0,1,2,68, - 69,70,0,0,73,74,75,76,77,78, - 79,80,9,82,83,84,85,86,0,1, + 0,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,57,58,59, + 60,61,62,63,64,0,1,2,68,69, + 70,71,7,73,0,75,76,77,78,79, + 80,81,8,83,84,85,86,87,0,1, 2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,0,37,38,39,40,41, - 42,43,60,45,46,47,48,49,50,51, - 52,53,54,55,56,57,58,59,0,61, - 62,63,64,0,1,2,68,69,70,0, - 87,73,74,75,76,77,78,79,80,0, - 82,83,84,85,86,0,1,2,3,4, - 5,6,7,8,9,10,11,12,13,14, - 15,16,17,18,19,20,21,22,23,24, - 25,26,27,28,29,30,31,32,33,34, - 35,0,37,38,39,40,41,42,43,60, - 45,46,47,48,49,50,51,52,53,54, - 55,56,57,58,59,66,61,62,63,64, - 0,1,2,68,69,70,0,0,73,74, - 75,76,77,78,79,80,9,82,83,84, - 85,86,0,1,2,3,4,5,6,7, - 8,9,10,11,12,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 28,29,30,31,32,33,34,35,0,37, - 38,39,40,41,42,43,60,45,46,47, - 48,49,50,51,52,53,54,55,56,57, - 58,59,0,61,62,63,64,0,0,0, - 68,69,70,4,87,73,74,75,76,77, - 78,79,80,0,82,83,84,85,86,0, - 1,2,3,4,5,6,7,8,9,10, - 11,12,13,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,29,30, - 31,32,33,34,35,0,37,38,39,40, - 41,42,43,65,45,46,47,48,49,50, - 51,52,53,54,55,56,57,58,59,0, - 61,62,63,64,0,88,89,68,69,70, - 11,12,73,74,75,76,77,78,79,80, - 0,82,83,84,85,86,0,1,2,3, + 22,23,24,25,26,27,28,29,62,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,57,58,59,60,61, + 62,63,64,0,0,30,68,69,70,71, + 0,73,8,75,76,77,78,79,80,81, + 10,83,84,85,86,87,0,1,2,3, 4,5,6,7,8,9,10,11,12,13, 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,29,30,31,32,33, - 34,35,0,37,38,39,40,41,42,43, - 50,45,46,47,48,49,50,51,52,53, - 54,55,56,57,58,59,0,61,62,63, - 64,0,88,89,68,69,70,11,12,73, - 74,75,76,77,78,79,80,0,82,83, - 84,85,86,0,1,2,3,4,5,6, - 7,8,9,10,11,12,13,14,15,16, - 17,18,19,20,21,22,23,24,25,26, - 27,28,29,30,31,32,33,34,35,0, - 37,38,39,40,41,42,43,50,45,46, - 47,48,49,50,51,52,53,54,55,56, - 57,58,59,0,61,62,63,64,0,88, - 89,68,69,70,0,36,73,74,75,76, - 77,78,79,80,10,82,83,84,85,86, + 24,25,26,27,28,29,0,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,57,58,59,60,61,62,63, + 64,88,89,30,68,69,70,0,0,73, + 0,75,76,77,78,79,80,81,0,83, + 84,85,86,87,0,1,2,3,4,5, + 6,7,8,9,10,11,12,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,28,29,0,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, + 72,57,58,59,60,61,62,63,64,97, + 98,30,68,69,70,88,89,73,0,75, + 76,77,78,79,80,81,0,83,84,85, + 86,87,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 28,29,0,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,57, + 58,59,60,61,62,63,64,0,1,2, + 68,69,70,0,0,73,37,75,76,77, + 78,79,80,81,0,83,84,85,86,87, 0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,28,29, - 30,31,32,33,34,35,0,37,38,39, - 40,41,42,43,0,45,46,47,48,49, - 50,51,52,53,54,55,56,57,58,59, - 0,61,62,63,64,0,88,89,68,69, - 70,6,0,73,74,75,76,77,78,79, - 80,0,82,83,84,85,86,0,1,2, - 3,4,5,6,7,8,0,10,11,12, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,0,27,28,29,30,31,32, - 33,34,35,0,37,38,39,40,41,42, - 43,0,45,46,47,4,49,0,51,52, - 53,54,55,0,57,58,59,0,0,62, - 0,3,0,10,0,68,69,70,0,9, - 0,3,90,3,6,121,8,9,96,11, - 12,90,0,1,2,3,4,96,6,27, - 8,44,24,25,26,0,0,1,2,4, - 4,6,6,8,8,9,100,45,46,56, - 0,49,44,51,52,53,54,55,60,57, - 58,59,0,1,2,3,66,5,60,7, - 0,71,99,65,66,67,0,1,2,71, - 72,5,60,7,0,1,2,3,4,5, - 6,7,8,0,44,87,88,89,90,91, - 92,93,94,95,96,97,98,99,100,101, - 102,103,104,105,106,107,108,109,110,111, - 112,113,60,87,0,117,118,3,120,121, - 6,95,8,9,0,11,12,67,0,1, - 2,3,0,5,60,7,4,9,24,25, - 26,67,0,1,2,3,4,5,6,7, - 8,0,1,2,26,4,0,6,44,8, - 4,0,102,0,104,105,106,107,108,109, - 110,111,112,113,60,0,44,117,3,65, - 66,67,0,1,2,71,72,5,0,1, - 2,3,4,5,6,7,8,114,115,116, - 44,87,88,89,90,91,92,93,94,95, - 96,97,98,99,100,101,102,103,104,105, - 106,107,108,109,110,111,112,113,0,1, - 2,117,118,5,120,121,0,1,2,3, - 4,5,6,7,8,9,10,0,0,13, - 14,15,16,17,18,19,20,21,22,23, - 72,0,26,27,36,0,0,1,2,3, - 9,5,36,7,0,9,0,1,2,0, - 4,45,46,0,48,49,0,51,52,53, - 54,55,26,57,58,59,0,0,62,0, - 1,2,0,0,68,69,70,71,72,73, - 36,0,36,0,1,2,0,81,0,1, - 2,3,4,5,6,7,8,9,10,0, - 0,13,14,15,16,17,18,19,20,21, - 22,23,95,0,26,27,3,44,65,36, - 114,115,116,74,36,0,0,1,2,0, - 1,2,46,45,46,49,48,49,65,51, - 52,53,54,55,44,57,58,59,0,118, - 62,3,27,97,98,0,68,69,70,71, - 72,73,36,97,98,36,93,94,101,81, - 45,46,72,60,49,0,51,52,53,54, - 55,6,57,58,59,0,0,1,2,0, - 1,2,3,4,5,6,7,8,0,0, - 1,2,114,115,116,0,1,2,3,4, - 5,6,7,8,0,10,11,12,13,14, - 15,16,17,18,19,20,21,22,23,24, - 25,0,0,28,29,30,31,32,33,34, - 35,0,37,38,39,40,41,42,43,60, - 65,66,47,0,1,2,3,4,5,6, - 7,8,63,64,0,67,91,92,63,64, - 0,1,2,9,4,5,44,7,73,0, - 1,2,3,4,5,6,7,8,47,10, - 11,12,13,14,15,16,17,18,19,20, - 21,22,23,24,25,0,36,28,29,30, - 31,32,33,34,35,0,37,38,39,40, - 41,42,43,0,9,0,47,0,1,2, - 3,100,5,0,7,71,3,0,1,2, - 0,0,63,64,65,0,1,2,3,4, - 5,6,7,8,9,10,11,12,13,14, - 15,16,17,18,19,20,21,22,23,24, - 25,66,0,28,29,30,31,32,33,34, - 35,9,37,38,39,40,41,42,43,0, - 1,2,47,4,5,50,7,72,26,72, - 63,64,87,0,1,2,0,0,1,2, - 95,4,5,72,7,9,71,0,1,2, - 3,4,5,6,7,8,9,10,11,12, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,36,0,28,29,30,31,32, - 33,34,35,0,37,38,39,40,41,42, - 43,0,1,2,47,4,0,50,0,1, - 2,3,0,5,0,7,4,71,0,0, - 1,2,3,4,5,6,7,8,71,10, - 11,12,13,14,15,16,17,18,19,20, - 21,22,23,24,25,27,0,28,29,30, - 31,32,33,34,35,9,37,38,39,40, - 41,42,43,45,46,72,47,49,60,51, - 52,53,54,55,90,57,58,59,0,65, - 96,3,63,64,0,1,2,3,4,5, - 6,7,8,0,10,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 0,0,28,29,30,31,32,33,34,35, - 0,37,38,39,40,41,42,43,0,1, - 2,47,4,87,6,0,8,0,1,2, - 0,4,0,6,4,8,4,63,64,0, - 1,2,3,4,5,6,7,8,9,10, - 11,12,13,14,15,16,17,18,19,20, - 21,22,23,24,25,65,66,28,29,30, - 31,32,33,34,35,45,37,38,39,40, - 41,42,43,0,1,2,3,4,5,6, - 7,8,0,10,11,12,13,14,15,16, - 17,18,19,20,21,22,23,24,25,0, - 0,28,29,30,31,32,33,34,35,0, - 37,38,39,40,41,42,43,0,1,2, - 47,4,5,50,7,0,44,0,3,0, - 3,0,1,2,0,4,9,3,0,1, - 2,3,4,5,6,7,8,118,10,11, + 0,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,72,57,58,59, + 60,61,62,63,64,0,1,2,68,69, + 70,88,89,73,37,75,76,77,78,79, + 80,81,0,83,84,85,86,87,0,1, + 2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,65,0,28,29,30,31, - 32,33,34,35,9,37,38,39,40,41, - 42,43,0,0,0,47,3,60,5,6, - 90,8,65,66,11,12,96,0,1,2, - 3,4,5,6,7,8,9,24,25,0, - 0,102,29,4,87,0,1,2,3,0, - 5,0,7,26,27,4,117,44,0,1, - 2,66,4,36,6,0,8,27,0,0, - 0,44,3,60,60,48,63,64,65,66, - 67,0,87,56,45,45,46,6,61,49, - 0,51,52,53,54,55,6,57,58,59, - 0,88,89,90,91,92,93,94,81,44, + 22,23,24,25,26,27,28,29,0,31, + 32,33,34,35,36,95,38,39,40,41, + 42,43,44,45,46,47,48,49,50,51, + 52,53,54,55,0,57,58,59,60,61, + 62,63,64,0,1,2,68,69,70,0, + 0,73,0,75,76,77,78,79,80,81, + 0,83,84,85,86,87,0,1,2,3, + 4,5,6,7,8,9,10,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,0,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,72,57,58,59,60,61,62,63, + 64,0,72,30,68,69,70,88,89,73, + 0,75,76,77,78,79,80,81,0,83, + 84,85,86,87,0,1,2,3,4,5, + 6,7,8,9,10,11,12,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,28,29,0,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,57,58,59,60,61,62,63,64,88, + 89,30,68,69,70,0,0,73,3,75, + 76,77,78,79,80,81,0,83,84,85, + 86,87,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 28,29,0,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,72,57, + 58,59,60,61,62,63,64,97,98,0, + 68,69,70,4,0,73,37,75,76,77, + 78,79,80,81,0,83,84,85,86,87, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 0,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,72,57,58,59, + 60,61,62,63,64,0,0,30,68,69, + 70,0,0,73,3,75,76,77,78,79, + 80,81,0,83,84,85,86,87,0,1, + 2,3,4,5,6,7,8,0,10,11, + 12,0,14,15,16,17,18,19,20,21, + 22,23,24,25,26,27,28,29,0,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,72,57,0,0,1,2, + 62,4,5,0,7,90,68,69,70,0, + 0,96,3,0,67,6,100,8,9,9, + 11,12,13,0,1,2,3,4,5,6, + 7,8,0,0,37,26,27,4,6,30, + 0,1,2,3,4,5,6,7,8,102, + 0,104,105,106,107,108,109,110,111,112, + 113,11,12,30,117,56,0,1,2,0, + 4,5,121,7,65,66,67,102,9,56, + 71,72,13,74,74,0,1,2,0,4, + 67,6,117,8,9,99,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,91,92,0,117,118,3,120, + 121,6,0,8,9,66,11,12,13,0, + 0,1,2,3,4,5,6,7,8,0, + 0,26,27,65,66,30,0,0,0,74, + 0,1,2,3,4,5,6,7,8,30, + 14,0,1,2,3,4,5,6,7,8, + 95,56,0,1,2,3,0,5,56,7, + 65,66,67,0,1,2,71,72,5,74, + 7,45,46,47,48,49,50,51,52,53, + 54,55,72,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,5,120,121,0,1,2, + 3,4,5,6,7,8,9,10,101,101, + 13,14,15,16,17,18,19,20,21,22, + 23,24,25,0,1,2,3,0,5,0, + 7,4,9,6,37,8,13,0,1,2, + 0,4,45,46,47,48,49,50,51,52, + 53,54,55,0,0,58,0,1,2,62, + 4,0,6,0,8,68,69,70,71,72, + 73,0,1,2,37,4,5,0,7,82, + 0,1,2,3,4,5,6,7,8,9, + 10,30,0,13,14,15,16,17,18,19, + 20,21,22,23,24,25,66,0,37,46, + 47,114,115,116,0,1,2,37,4,5, + 0,7,0,3,95,45,46,47,48,49, + 50,51,52,53,54,55,14,0,58,0, + 1,2,62,4,0,6,0,8,68,69, + 70,71,72,73,0,0,1,2,3,4, + 0,6,82,8,4,11,12,45,46,47, + 48,49,50,51,52,53,54,55,0,1, + 2,3,0,5,0,7,4,9,0,1, + 2,13,4,56,114,115,116,0,1,2, + 3,4,5,6,7,8,99,10,11,12, + 0,56,15,16,17,18,19,20,21,22, + 23,24,25,26,27,28,29,45,31,32, + 33,34,35,36,0,38,39,40,41,42, + 43,44,0,9,100,0,1,2,3,65, + 5,9,7,0,57,13,0,1,2,0, + 63,64,0,1,2,3,56,5,9,7, + 73,0,1,2,3,4,5,6,7,8, + 0,10,11,12,4,0,15,16,17,18, + 19,20,21,22,23,24,25,26,27,28, + 29,56,31,32,33,34,35,36,74,38, + 39,40,41,42,43,44,74,0,0,63, + 64,3,5,0,1,2,0,9,57,95, + 0,1,2,74,63,64,65,0,1,2, + 3,4,5,6,7,8,9,10,11,12, + 65,66,15,16,17,18,19,20,21,22, + 23,24,25,26,27,28,29,37,31,32, + 33,34,35,36,56,38,39,40,41,42, + 43,44,59,65,66,59,0,1,2,3, + 0,5,74,7,57,0,59,0,0,1, + 2,3,0,5,0,7,4,3,71,0, + 1,2,3,4,5,6,7,8,9,10, + 11,12,0,0,15,16,17,18,19,20, + 21,22,23,24,25,26,27,28,29,0, + 31,32,33,34,35,36,123,38,39,40, + 41,42,43,44,56,0,1,2,72,4, + 56,6,65,8,0,0,57,0,59,30, + 75,0,1,2,3,4,5,6,7,8, + 71,10,11,12,0,95,15,16,17,18, + 19,20,21,22,23,24,25,26,27,28, + 29,0,31,32,33,34,35,36,0,38, + 39,40,41,42,43,44,0,1,2,0, + 4,0,6,59,8,0,1,2,57,4, + 65,30,11,12,63,64,0,1,2,3, + 4,5,6,7,8,122,10,11,12,65, + 66,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,65,31,32,33, + 34,35,36,65,38,39,40,41,42,43, + 44,114,115,116,59,66,0,0,1,2, + 4,4,0,57,93,94,0,1,2,63, + 64,0,1,2,3,4,5,6,7,8, + 9,10,11,12,0,0,15,16,17,18, + 19,20,21,22,23,24,25,26,27,28, + 29,45,31,32,33,34,35,36,0,38, + 39,40,41,42,43,44,0,1,2,3, + 4,5,6,7,8,0,10,11,12,63, + 64,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,0,31,32,33, + 34,35,36,0,38,39,40,41,42,43, + 44,0,0,1,2,0,1,2,0,0, + 114,115,116,57,66,59,0,1,2,3, + 4,5,6,7,8,0,10,11,12,118, + 65,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,0,31,32,33, + 34,35,36,67,38,39,40,41,42,43, + 44,0,0,0,0,56,3,3,5,6, + 9,8,0,57,11,12,14,15,16,17, + 18,19,20,21,22,23,24,25,0,26, + 27,90,29,30,0,1,2,96,90,5, + 0,0,14,3,96,4,0,45,46,47, + 48,49,50,51,52,53,54,55,0,56, + 56,0,1,2,6,0,63,64,65,66, + 67,37,0,45,46,47,48,49,50,51, + 52,53,54,55,0,0,0,0,1,2, + 6,88,89,90,91,92,93,94,37,14, 97,98,99,100,101,102,103,104,105,106, - 107,108,109,110,111,112,113,0,0,60, - 3,3,5,6,0,8,0,3,11,12, - 0,0,1,2,3,4,5,6,7,8, - 9,24,25,114,115,116,29,0,1,2, - 3,0,5,95,7,65,66,26,27,0, - 0,44,91,92,0,1,2,36,0,1, - 2,91,92,0,1,2,0,60,0,48, - 63,64,65,66,67,67,0,56,0,1, - 2,65,61,0,1,2,0,1,2,0, - 36,50,71,44,36,88,89,90,91,92, - 93,94,81,0,97,98,99,100,101,102, + 107,108,109,110,111,112,113,0,0,118, + 3,56,5,6,37,8,0,9,11,12, + 45,46,47,48,49,50,51,52,53,54, + 55,0,0,26,27,3,29,30,0,91, + 92,0,1,2,0,1,2,0,1,2, + 0,0,90,0,1,2,0,0,96,3, + 9,30,0,56,13,91,92,0,1,2, + 63,64,65,66,67,0,0,0,37,71, + 0,37,66,3,37,9,9,0,56,13, + 0,1,2,6,56,88,89,90,91,92, + 93,94,0,72,97,98,99,100,101,102, 103,104,105,106,107,108,109,110,111,112, 113,0,1,2,3,4,5,6,7,8, - 62,10,11,12,13,14,15,16,17,18, - 19,20,21,22,23,24,25,44,0,28, - 29,30,31,32,33,34,35,0,37,38, - 39,40,41,42,43,0,0,1,2,4, - 4,0,0,1,2,3,4,5,6,7, - 8,60,10,11,12,13,14,15,16,17, - 18,19,20,21,22,23,24,25,122,28, - 28,29,30,31,32,33,34,35,60,37, - 38,39,40,41,42,43,50,60,0,47, - 0,1,2,3,4,5,6,7,8,0, - 10,11,12,13,14,15,16,17,18,19, - 20,21,22,23,24,25,28,0,28,29, - 30,31,32,33,34,35,9,37,38,39, - 40,41,42,43,0,1,2,3,4,5, - 6,7,8,26,10,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 0,0,28,29,30,31,32,33,34,35, - 9,37,38,39,40,41,42,43,0,1, - 2,3,4,5,6,7,8,26,10,11, - 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,44,0,28,29,30,31, - 32,33,34,35,0,37,38,39,40,41, - 42,43,0,1,2,65,4,66,0,0, - 1,2,10,0,0,13,14,15,16,17, - 18,19,20,21,22,23,0,1,2,27, - 0,0,0,93,94,0,0,0,44,3, - 0,0,10,3,0,36,9,45,46,36, - 9,49,44,51,52,53,54,55,44,57, - 58,59,0,26,62,0,1,2,36,4, - 68,69,70,65,0,10,50,3,13,14, - 15,16,17,18,19,20,21,22,23,0, - 0,0,27,0,62,5,0,67,67,3, - 0,93,94,10,119,0,44,0,3,9, - 45,46,0,0,49,3,51,52,53,54, - 55,0,57,58,59,0,26,62,87,36, - 0,0,0,68,69,70,0,0,13,14, - 15,16,17,18,19,20,21,22,23,123, - 0,44,27,0,4,62,67,66,0,0, - 1,2,3,4,5,6,7,8,9,0, - 45,46,3,0,49,44,51,52,53,54, - 55,0,57,58,59,26,27,87,0,0, - 0,3,3,72,44,36,0,1,2,3, - 4,5,6,7,8,9,0,48,72,0, - 0,0,3,3,3,56,0,0,0,66, - 61,3,26,27,0,67,0,3,0,0, - 71,3,36,24,25,0,0,0,0,0, - 81,0,0,0,48,72,3,0,67,119, - 0,119,56,0,0,0,50,61,0,0, - 0,44,72,0,0,0,50,71,0,60, - 0,0,0,0,0,28,50,81,0,1, + 0,10,11,12,4,0,15,16,17,18, + 19,20,21,22,23,24,25,26,27,28, + 29,74,31,32,33,34,35,36,0,38, + 39,40,41,42,43,44,0,9,0,1, + 2,3,4,5,6,7,8,56,10,11, + 12,0,0,15,16,17,18,19,20,21, + 22,23,24,25,26,27,28,29,0,31, + 32,33,34,35,36,0,38,39,40,41, + 42,43,44,0,1,2,0,1,2,3, + 4,5,6,7,8,57,10,11,12,71, + 0,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,65,31,32,33, + 34,35,36,0,38,39,40,41,42,43, + 44,0,1,2,3,4,5,6,7,8, + 0,10,11,12,0,0,15,16,17,18, + 19,20,21,22,23,24,25,26,27,28, + 29,0,31,32,33,34,35,36,0,38, + 39,40,41,42,43,44,0,1,2,3, + 4,5,6,7,8,0,10,11,12,0, + 67,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,66,31,32,33, + 34,35,36,0,38,39,40,41,42,43, + 44,0,1,2,0,4,0,1,2,0, + 0,10,0,4,10,14,15,16,17,18, + 19,20,21,22,23,24,25,0,59,0, + 0,0,67,3,0,4,9,3,9,30, + 13,37,0,119,119,3,45,46,47,48, + 49,50,51,52,53,54,55,0,0,1, + 2,30,4,62,0,72,62,10,10,68, + 69,70,14,15,16,17,18,19,20,21, + 22,23,24,25,0,1,2,3,4,5, + 6,7,8,9,37,66,0,13,14,3, + 71,67,0,45,46,47,48,49,50,51, + 52,53,54,55,30,0,0,0,3,62, + 62,0,26,27,3,0,68,69,70,45, + 46,47,48,49,50,51,52,53,54,55, + 56,0,1,2,3,4,5,6,7,8, + 9,0,56,0,13,14,0,0,74,3, + 9,0,0,0,3,3,3,65,0,1, 2,3,4,5,6,7,8,9,0,0, + 0,13,14,30,67,0,45,46,47,48, + 49,50,51,52,53,54,55,56,30,103, + 0,0,0,3,3,37,0,0,30,30, + 30,0,0,0,57,74,120,66,65,0, + 9,0,0,0,0,74,58,0,60,61, + 0,1,2,3,4,5,6,7,8,9, + 28,0,0,13,14,0,93,94,3,30, + 82,66,10,0,30,0,1,2,3,4, + 5,6,7,8,9,59,59,37,13,14, + 0,1,2,3,4,5,6,7,8,9, + 67,28,59,13,14,74,0,66,58,65, + 60,61,37,0,67,0,3,0,3,0, + 3,71,60,0,0,0,3,37,67,0, + 0,0,82,58,3,60,61,93,94,0, + 0,119,3,0,0,0,71,0,58,0, + 60,61,0,0,30,0,0,82,28,0, + 0,71,0,1,2,3,4,5,6,7, + 8,9,82,67,0,13,14,0,1,2, + 3,4,5,6,7,8,9,0,0,0, + 13,14,67,0,0,76,67,0,0,37, + 0,0,0,1,2,3,4,5,6,7, + 8,9,0,0,37,13,14,0,0,0, + 58,0,60,61,0,0,0,0,0,0, + 0,0,0,71,0,58,0,60,61,37, + 0,0,0,0,82,0,0,0,71,0, + 0,0,0,0,0,0,0,0,0,82, + 58,0,60,61,0,1,2,3,4,5, + 6,7,8,9,0,0,0,13,14,0, + 0,0,0,0,82,0,0,0,0,0, 1,2,3,4,5,6,7,8,9,0, - 65,72,0,67,26,27,67,66,0,67, - 0,0,103,75,36,26,27,67,0,0, - 0,0,0,0,0,36,48,0,0,120, - 0,0,95,0,56,0,0,48,0,61, - 0,0,0,0,0,56,0,0,0,71, - 61,0,0,0,0,0,0,0,0,81, - 71,0,0,0,0,0,0,0,0,0, - 81,0,1,2,3,4,5,6,7,8, - 9,0,0,1,2,3,4,5,6,7, - 8,9,0,0,0,0,0,26,27,0, - 0,0,0,0,0,0,0,36,26,27, - 0,0,0,0,0,0,0,0,36,48, - 0,0,0,0,0,0,0,56,0,0, - 48,0,61,0,0,0,0,0,56,0, - 0,0,0,61,0,0,0,0,0,0, - 0,0,81,0,1,2,3,4,5,6, - 7,8,9,81,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,26, - 27,0,0,0,0,0,0,0,0,36, + 0,37,13,14,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,48,0,0,0,0,0,0,0,56, - 0,0,0,0,61,0,0,0,0,0, + 0,0,58,0,60,61,37,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,82,58,0,60, + 61,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,82,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,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; @@ -1357,308 +1337,311 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TermAction { public final static char termAction[] = {0, - 5130,5105,5102,5102,5102,5102,5102,5102,5102,5115, + 5017,4992,4989,4989,4989,4989,4989,4989,4989,5002, + 1,1,1,4999,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5112,1,1,1, - 1,1,1,1,1,1,133,1,1,1, - 1,1,1,1,2285,1,1,1,2956,1, - 2712,1,1,1,1,1,1612,1,1,1, - 135,3361,1,1,1,41,4770,4767,1,1, - 1,5137,773,5307,2258,3458,2792,2131,2077,3368, - 3051,159,3449,1528,3402,3447,3393,8,5118,5118, - 5118,5118,5118,5118,5118,5118,5118,5118,5118,5118, - 5118,5118,5118,5118,5118,5118,5118,5118,5118,5118, - 5118,5118,5118,5118,5118,5118,5118,5118,5118,5118, - 5118,5118,5118,134,5118,5118,5118,5118,5118,5118, - 5118,2285,5118,5118,5118,5118,5118,5118,5118,5118, - 5118,5118,5118,5118,5118,5118,5118,1280,5118,5118, - 5118,5118,123,5130,139,5118,5118,5118,5118,2254, - 5118,5118,5118,5118,5118,5118,5118,5118,1,5118, - 5118,5118,5118,5118,5130,5105,5102,5102,5102,5102, - 5102,5102,5102,5109,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5017,1,1, 1,1,1,1,1,1,1,1,1,1, - 5112,1,1,1,1,1,1,1,1,1, - 5130,1,1,1,1,1,1,1,2366,1, - 1,1,2956,1,2712,1,1,1,1,1, - 1612,1,1,1,120,3361,1,1,1,502, - 2573,2599,1,1,1,2990,2965,5307,2258,3458, - 2792,2131,2077,3368,3051,2220,3449,1528,3402,3447, - 3393,5130,5105,5102,5102,5102,5102,5102,5102,5102, - 5109,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5112,1,1, - 1,1,1,1,1,1,1,5130,1,1, - 1,1,1,1,1,811,1,1,1,2956, - 1,2712,1,1,1,1,1,1612,1,1, - 1,5130,3361,1,1,1,5130,5147,5148,1, - 1,1,445,1,5307,2258,3458,2792,2131,2077, - 3368,3051,163,3449,1528,3402,3447,3393,5130,5105, - 5102,5102,5102,5102,5102,5102,5102,5109,1,1, + 1,1,1,1,1,1,5017,1,2352,3242, + 646,3327,1,1,1,42,4652,4649,1,1, + 1,5024,831,5196,135,2236,3382,2807,2054,2598, + 3345,2895,2203,3379,638,3376,3353,3370,8,5005, + 5005,5005,5005,5005,5005,5005,5005,5005,5005,5005, + 5005,5005,5005,5005,5005,5005,5005,5005,5005,5005, + 5005,5005,5005,5005,5005,5005,5005,5005,3662,5005, + 5005,5005,5005,5005,5005,5017,5005,5005,5005,5005, + 5005,5005,5005,5005,5005,5005,5005,5005,5005,5005, + 5005,5005,5005,5005,5017,5005,5005,5005,5005,5005, + 5005,5005,5005,125,136,3189,5005,5005,5005,5005, + 301,5005,2203,5005,5005,5005,5005,5005,5005,5005, + 5317,5005,5005,5005,5005,5005,5017,4992,4989,4989, + 4989,4989,4989,4989,4989,4996,1,1,1,4999, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5112,1,1,1,1,1, - 1,1,1,1,5130,1,1,1,1,1, - 1,1,4779,1,1,1,2956,1,2712,1, - 1,1,1,1,1612,1,1,1,5130,3361, - 1,1,1,5130,4943,4940,1,1,1,444, - 163,5307,2258,3458,2792,2131,2077,3368,3051,358, - 3449,1528,3402,3447,3393,5130,5105,5102,5102,5102, - 5102,5102,5102,5102,5109,1,1,1,1,1, + 1,1,1,1,1,1,5017,1,1,1, + 1,1,1,5017,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5112,1,1,1,1,1,1,1,1, - 1,5130,1,1,1,1,1,1,1,4782, - 1,1,1,2956,1,2712,1,1,1,1, - 1,1612,1,1,1,2458,3361,1,1,1, - 53,4958,4955,1,1,1,345,5130,5307,2258, - 3458,2792,2131,2077,3368,3051,5136,3449,1528,3402, - 3447,3393,5130,5105,5102,5102,5102,5102,5102,5102, - 5102,5109,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5112,1, - 1,1,1,1,1,1,1,1,5130,1, - 1,1,1,1,1,1,1784,1,1,1, - 2956,1,2712,1,1,1,1,1,1612,1, - 1,1,5130,3361,1,1,1,127,5130,42, - 1,1,1,5171,5135,5307,2258,3458,2792,2131, - 2077,3368,3051,5130,3449,1528,3402,3447,3393,5130, - 5105,5102,5102,5102,5102,5102,5102,5102,5109,1, + 1,1,133,1,2352,3242,646,3327,1,1, + 1,2348,2854,3221,1,1,1,129,5017,5196, + 5017,2236,3382,2807,2054,2598,3345,2895,5017,3379, + 638,3376,3353,3370,5017,4992,4989,4989,4989,4989, + 4989,4989,4989,4996,1,1,1,4999,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5112,1,1,1,1, - 1,1,1,1,1,5130,1,1,1,1, - 1,1,1,2457,1,1,1,2956,1,2712, - 1,1,1,1,1,1612,1,1,1,122, - 3361,1,1,1,126,2573,2599,1,1,1, - 2990,2965,5307,2258,3458,2792,2131,2077,3368,3051, - 5130,3449,1528,3402,3447,3393,5130,5105,5102,5102, - 5102,5102,5102,5102,5102,5109,1,1,1,1, + 1,1,1,1,5017,1,1,1,1,1, + 1,5017,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,5112,1,1,1,1,1,1,1, - 1,1,5130,1,1,1,1,1,1,1, - 1441,1,1,1,2956,1,2712,1,1,1, - 1,1,1612,1,1,1,121,3361,1,1, - 1,125,2573,2599,1,1,1,2990,2965,5307, - 2258,3458,2792,2131,2077,3368,3051,5130,3449,1528, - 3402,3447,3393,5130,5105,5102,5102,5102,5102,5102, - 5102,5102,5109,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5112, - 1,1,1,1,1,1,1,1,1,40, - 1,1,1,1,1,1,1,1815,1,1, - 1,2956,1,2712,1,1,1,1,1,1612, - 1,1,1,5130,3361,1,1,1,124,2573, - 2599,1,1,1,300,5169,5307,2258,3458,2792, - 2131,2077,3368,3051,5429,3449,1528,3402,3447,3393, - 5130,3370,1,1,1,1,1,1,1,5140, + 1751,1,2352,3242,646,3327,1,1,1,2259, + 2232,3244,1,1,1,2348,2854,5196,5017,2236, + 3382,2807,2054,2598,3345,2895,5017,3379,638,3376, + 3353,3370,5017,4992,4989,4989,4989,4989,4989,4989, + 4989,4996,1,1,1,4999,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5139,1,1,1, - 1,1,1,1,1,1,5130,1,1,1, - 1,1,1,1,5130,1,1,1,2956,1, - 2712,1,1,1,1,1,1612,1,1,1, - 5130,3361,1,1,1,5130,2573,2599,1,1, - 1,1946,113,5307,2258,3458,2792,2131,2077,3368, - 3051,116,3449,1528,3402,3447,3393,42,4758,4755, - 3195,1865,915,4094,2655,4116,137,1235,4072,4050, - 5393,5391,5400,5399,5395,5396,5394,5397,5398,5401, - 5392,4160,4138,5130,5385,5153,4028,579,781,5155, - 718,620,766,136,5156,5154,571,5149,5151,5152, - 5150,5130,5388,5464,1236,908,5465,5130,5382,5389, - 5361,5387,5386,300,5383,5384,5362,5130,1,5520, - 5130,2817,222,5429,5130,2502,5521,5522,382,5138, - 5130,4797,4204,3501,4797,4754,4797,4794,4226,4794, - 4794,4204,342,42,42,2817,5171,4226,1181,5385, - 5457,3315,4794,4794,4797,42,1,4979,4979,5171, - 4976,1181,1181,5457,5457,359,580,5388,5464,1639, - 5130,5465,4794,5382,5389,5361,5387,5386,1784,5383, - 5384,5362,1,5012,5008,3554,942,2638,4794,2655, - 141,5137,2254,4794,4794,4794,5130,5147,5148,4794, - 4794,2638,1784,2655,363,5012,5008,3554,1,2638, - 1,2655,1,428,3369,4794,4794,4794,4794,4794, - 4794,4794,4794,4794,4794,4794,4794,4794,4794,4794, - 4794,4794,4794,4794,4794,4794,4794,4794,4794,4794, - 4794,4794,1784,359,381,4794,4794,4807,4794,4794, - 4807,359,4807,4804,5130,4804,4804,1742,1,5012, - 5008,5042,388,5045,1784,5048,381,5140,4804,4804, - 4807,1064,5130,5083,5079,721,5171,2638,1181,2655, - 5457,431,1,1,5139,1,53,4776,4800,4776, - 5148,5130,2182,5130,1700,1658,1616,1574,1532,1490, - 1448,1406,1364,1322,4804,5130,708,3976,997,4804, - 4804,4804,5130,5147,5148,4804,4804,2634,5130,5074, - 5069,721,4976,2638,5066,2655,5063,5554,5555,5556, - 5148,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,4804,40,4988, - 4988,4804,4804,4988,4804,4804,5130,4995,4995,226, - 4991,226,226,226,226,4999,1,354,5130,1, + 1,1,5017,1,1,1,1,1,1,41, 1,1,1,1,1,1,1,1,1,1, - 2004,5130,226,1,2387,5130,1,5012,5008,721, - 5134,2638,488,2655,52,308,389,4758,4755,1, - 5171,1,1,5130,719,1,131,1,1,1, - 1,1,308,1,1,1,132,140,1,53, - 4943,4940,5130,128,1,1,1,406,226,5532, - 1059,5130,42,5130,8352,8352,333,5617,5130,4995, - 4995,226,4991,226,226,226,226,5051,1,5130, - 33,1,1,1,1,1,1,1,1,1, - 1,1,5483,344,226,1,1605,2546,2471,5169, - 5554,5555,5556,3166,488,223,48,4952,4952,40, - 4982,4982,5464,1,1,5465,719,1,4773,1, - 1,1,1,1,708,1,1,1,93,5133, - 1,4788,5385,2343,2315,5130,1,1,1,405, - 226,5532,4949,2343,2315,2377,2426,2398,2220,5617, - 5388,5464,413,1784,5465,117,5382,5389,5361,5387, - 5386,3575,5383,5384,5362,30,286,5147,5148,342, - 5083,5079,3554,5171,2638,1181,2655,5457,287,5130, - 5147,5148,5554,5555,5556,5130,1,1,1,1, - 1,1,1,1,5130,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5017,1, + 2352,3242,646,3327,1,1,1,5017,5034,5035, + 1,1,1,128,418,5196,5057,2236,3382,2807, + 2054,2598,3345,2895,5017,3379,638,3376,3353,3370, + 5017,4992,4989,4989,4989,4989,4989,4989,4989,4996, + 1,1,1,4999,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,138,5130,1,1,1,1,1,1,1, - 1,520,1,1,1,1,1,1,1,1784, - 4967,4967,1,308,5074,5069,721,4976,2638,5066, - 2655,5063,4182,1197,5130,1915,3138,3025,1,1, - 5130,4758,4755,5138,1865,4810,3477,2655,5654,1, - 4853,4849,3195,4857,915,4094,2655,4116,3252,4813, - 4072,4050,4840,4846,4819,4822,4834,4831,4837,4828, - 4825,4816,4843,4160,4138,285,799,5153,4028,579, - 781,5155,718,620,766,1,5156,5154,571,5149, - 5151,5152,5150,5130,359,5130,1236,1,5012,5008, - 721,580,2638,235,2655,5137,4946,5130,4943,4940, - 5130,417,42,42,503,42,4758,4755,3195,1865, - 915,4094,2655,4116,5138,548,4072,4050,5393,5391, - 5400,5399,5395,5396,5394,5397,5398,5401,5392,4160, - 4138,1278,397,5153,4028,579,781,5155,718,620, - 766,5036,5156,5154,571,5149,5151,5152,5150,5130, - 4758,4755,1236,1865,2638,3754,2655,1823,5039,2004, - 4182,1197,359,39,5027,5024,1,5130,4758,4755, - 359,1865,4810,2492,2655,5096,5137,42,4758,4755, - 3195,1865,915,4094,2655,4116,5138,548,4072,4050, - 5393,5391,5400,5399,5395,5396,5394,5397,5398,5401, - 5392,4160,4138,1047,115,5153,4028,579,781,5155, - 718,620,766,5130,5156,5154,571,5149,5151,5152, - 5150,5130,4758,4755,1236,5171,5130,3754,1,5012, - 5008,3554,1,2638,5130,2655,382,5137,224,143, - 4758,4755,3195,1865,915,4094,2655,4116,5137,548, - 4072,4050,5393,5391,5400,5399,5395,5396,5394,5397, - 5398,5401,5392,4160,4138,5385,1,5153,4028,579, - 781,5155,718,620,766,5136,5156,5154,571,5149, - 5151,5152,5150,5388,5464,5523,1236,5465,1784,5382, - 5389,5361,5387,5386,4204,5383,5384,5362,1,2473, - 4226,3784,42,42,1,4853,4849,3195,4857,915, - 4094,2655,4116,5130,4813,4072,4050,4840,4846,4819, - 4822,4834,4831,4837,4828,4825,4816,4843,4160,4138, - 5130,5130,5153,4028,579,781,5155,718,620,766, - 5130,5156,5154,571,5149,5151,5152,5150,432,42, - 42,1236,5171,5135,4973,5130,4970,94,1,1, - 42,1,5130,4985,5171,4985,912,42,42,42, - 4758,4755,3195,1865,915,4094,2655,4116,5134,548, - 4072,4050,5393,5391,5400,5399,5395,5396,5394,5397, - 5398,5401,5392,4160,4138,3652,2625,5153,4028,579, - 781,5155,718,620,766,1555,5156,5154,571,5149, - 5151,5152,5150,42,4758,4755,3195,1865,915,4094, - 2655,4116,5130,548,4072,4050,5393,5391,5400,5399, - 5395,5396,5394,5397,5398,5401,5392,4160,4138,5130, - 114,5153,4028,579,781,5155,718,620,766,141, - 5156,5154,571,5149,5151,5152,5150,5130,4758,4755, - 1236,1865,2638,3754,2655,5130,3480,1,3977,5130, - 2817,5130,4758,4755,5130,5171,338,3989,42,4758, - 4755,3195,1865,915,4094,2655,4116,5133,548,4072, - 4050,5393,5391,5400,5399,5395,5396,5394,5397,5398, - 5401,5392,4160,4138,5629,5130,5153,4028,579,781, - 5155,718,620,766,5136,5156,5154,571,5149,5151, - 5152,5150,5130,1,102,1236,611,1784,5586,5580, - 4204,5584,338,338,5578,5579,4226,1,5102,5102, - 226,5102,226,226,226,226,226,5609,5610,42, - 225,2182,5587,5171,338,1,5012,5008,721,5130, - 2638,5130,2655,226,8382,919,3976,5589,97,42, - 42,4622,5171,5099,5060,33,5057,5385,1,316, - 5130,3476,5054,786,4640,2956,1444,1486,5590,5611, - 5588,119,5135,2391,666,5388,5464,3575,3361,5465, - 118,5382,5389,5361,5387,5386,3575,5383,5384,5362, - 5130,5600,5599,5612,5581,5582,5605,5606,5617,4761, - 5603,5604,5583,5585,5607,5608,5613,5593,5594,5595, - 5591,5592,5601,5602,5597,5596,5598,5130,310,1784, - 611,2823,5586,5580,5130,5584,5130,4347,5578,5579, - 5130,1,5102,5102,226,5102,226,226,226,226, - 5121,5609,5610,5554,5555,5556,5587,1,5012,5008, - 5042,5130,5045,5485,5048,3664,2625,226,8382,441, - 5130,5589,3138,3025,5130,5005,5002,5099,5130,5020, - 5016,3138,3025,5130,4958,4955,5130,786,5130,2956, - 1444,1486,5590,5611,5588,1193,187,2391,389,5147, - 5148,5572,3361,5130,8285,6841,5130,8285,6841,5130, - 5169,2712,218,4764,5169,5600,5599,5612,5581,5582, - 5605,5606,5617,44,5603,5604,5583,5585,5607,5608, - 5613,5593,5594,5595,5591,5592,5601,5602,5597,5596, - 5598,42,4758,4755,3195,1865,915,4094,2655,4116, - 3598,548,4072,4050,5393,5391,5400,5399,5395,5396, - 5394,5397,5398,5401,5392,4160,4138,4785,318,5153, - 4028,579,781,5155,718,620,766,101,5156,5154, - 571,5149,5151,5152,5150,5130,5130,4758,4755,2205, - 5171,5130,42,4758,4755,3195,1865,915,4094,2655, - 4116,1780,548,4072,4050,5393,5391,5400,5399,5395, - 5396,5394,5397,5398,5401,5392,4160,4138,5127,3446, - 5153,4028,579,781,5155,718,620,766,1784,5156, - 5154,571,5149,5151,5152,5150,1563,1953,5130,1236, - 42,4758,4755,3654,1865,915,4094,2655,4116,5130, - 548,4072,4050,5393,5391,5400,5399,5395,5396,5394, - 5397,5398,5401,5392,4160,4138,3417,5130,5153,4028, - 579,781,5155,718,620,766,5140,5156,5154,571, - 5149,5151,5152,5150,42,4758,4755,3195,1865,915, - 4094,2655,4116,5139,548,4072,4050,5393,5391,5400, - 5399,5395,5396,5394,5397,5398,5401,5392,4160,4138, - 130,5130,5153,4028,579,781,5155,718,620,766, - 5140,5156,5154,571,5149,5151,5152,5150,42,4758, - 4755,3195,1865,915,4094,2655,4116,5139,548,4072, - 4050,5393,5391,5400,5399,5395,5396,5394,5397,5398, - 5401,5392,4160,4138,2546,5130,5153,4028,579,781, - 5155,718,620,766,381,5156,5154,571,5149,5151, - 5152,5150,5130,4758,4755,4961,5171,4315,129,50, - 5033,5033,1149,5130,5130,5393,5391,5400,5399,5395, - 5396,5394,5397,5398,5401,5392,5130,5147,5148,5385, - 366,364,1,2426,2398,5130,5130,1,4791,4635, - 5130,1,5090,3279,5130,5030,5140,5388,5464,3088, - 516,5465,2546,5382,5389,5361,5387,5386,708,5383, - 5384,5362,1,5139,5520,239,4933,4929,3206,4937, - 2502,5521,5522,4964,5130,1149,3487,3601,4920,4926, - 4899,4902,4914,4911,4917,4908,4905,4896,4923,409, - 5130,415,4884,1,5093,2634,105,1107,1150,4443, - 1,2426,2398,5090,3579,5130,708,5130,2732,165, - 4875,4869,277,5130,4866,5087,4893,4872,4863,4878, - 4881,435,4890,4887,4860,221,165,5520,516,3206, - 371,5130,509,2502,5521,5522,5130,5130,5393,5391, - 5400,5399,5395,5396,5394,5397,5398,5401,5392,3523, - 53,3115,5385,436,5147,5093,2093,3202,495,1, - 5102,5102,226,5102,226,226,226,226,5121,5130, - 5388,5464,4566,5130,5465,3325,5382,5389,5361,5387, - 5386,493,5383,5384,5362,226,8382,165,5130,5130, - 5130,4564,3507,2467,5147,5099,1,5102,5102,226, - 5102,226,226,226,226,5124,1,2956,2042,78, - 5130,5130,3066,4565,4613,2391,5130,2,5130,2499, - 3361,4572,226,8382,5130,4370,5130,4614,5130,5130, - 218,3208,5099,5197,5198,5130,38,1,5130,5130, - 5617,307,5130,5130,2956,5310,4643,1,4573,3579, - 497,3579,2391,5130,5130,5130,3609,3361,5130,5130, - 5130,40,3165,5130,5130,5130,3618,217,5130,3743, - 5130,5130,5130,5130,5130,3348,3670,5617,1,5102, - 5102,226,5102,226,226,226,226,5121,5130,1, - 5102,5102,226,5102,226,226,226,226,5121,5130, - 3823,5309,5130,1681,226,8382,1681,4395,5130,1873, - 5130,5130,567,3683,5099,226,8382,984,5130,5130, - 5130,5130,5130,5130,5130,5099,2956,5130,5130,653, - 5130,5130,3782,5130,2391,5130,5130,2956,5130,3361, - 5130,5130,5130,5130,5130,2391,5130,5130,5130,218, - 3361,5130,5130,5130,5130,5130,5130,5130,5130,5617, - 218,5130,5130,5130,5130,5130,5130,5130,5130,5130, - 5617,1,5102,5102,226,5102,226,226,226,226, - 226,5130,1,5102,5102,226,5102,226,226,226, - 226,226,5130,5130,5130,5130,5130,226,8382,5130, - 5130,5130,5130,5130,5130,5130,5130,5099,226,8382, - 5130,5130,5130,5130,5130,5130,5130,5130,5099,2956, - 5130,5130,5130,5130,5130,5130,5130,2391,5130,5130, - 2956,5130,3361,5130,5130,5130,5130,5130,2391,5130, - 5130,5130,5130,3361,5130,5130,5130,5130,5130,5130, - 5130,5130,5617,1,5102,5102,226,5102,226,226, - 226,226,226,5617,5130,5130,5130,5130,5130,5130, - 5130,5130,5130,5130,5130,5130,5130,5130,5130,226, - 8382,5130,5130,5130,5130,5130,5130,5130,5130,5099, - 5130,5130,5130,5130,5130,5130,5130,5130,5130,5130, - 5130,2956,5130,5130,5130,5130,5130,5130,5130,2391, - 5130,5130,5130,5130,3361,5130,5130,5130,5130,5130, - 5130,5130,5130,5130,5130,5130,5130,5130,5130,5130, - 5130,5130,5130,5130,5617 + 355,1,1,1,1,1,1,53,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,2406,1,2352,3242, + 646,3327,1,1,1,5017,4815,4812,1,1, + 1,2348,2854,5196,2417,2236,3382,2807,2054,2598, + 3345,2895,5017,3379,638,3376,3353,3370,5017,4992, + 4989,4989,4989,4989,4989,4989,4989,4996,1,1, + 1,4999,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5017,1, + 1,1,1,1,1,5371,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,5017,1,2352,3242,646,3327, + 1,1,1,54,4842,4839,1,1,1,127, + 5017,5196,5017,2236,3382,2807,2054,2598,3345,2895, + 436,3379,638,3376,3353,3370,5017,4992,4989,4989, + 4989,4989,4989,4989,4989,4996,1,1,1,4999, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,5017,1,1,1, + 1,1,1,5017,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,5411,1,2352,3242,646,3327,1,1, + 1,126,635,4482,1,1,1,2348,2854,5196, + 5017,2236,3382,2807,2054,2598,3345,2895,5017,3379, + 638,3376,3353,3370,5017,4992,4989,4989,4989,4989, + 4989,4989,4989,4996,1,1,1,4999,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,5017,1,1,1,1,1, + 1,33,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 134,1,2352,3242,646,3327,1,1,1,2348, + 2854,4643,1,1,1,5017,5017,5196,3161,2236, + 3382,2807,2054,2598,3345,2895,5017,3379,638,3376, + 3353,3370,5017,4992,4989,4989,4989,4989,4989,4989, + 4989,4996,1,1,1,4999,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,5017,1,1,1,1,1,1,5017, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1966,1, + 2352,3242,646,3327,1,1,1,2259,2232,43, + 1,1,1,5059,5017,5196,3180,2236,3382,2807, + 2054,2598,3345,2895,5017,3379,638,3376,3353,3370, + 5017,3363,1,1,1,1,1,1,1,5027, + 1,1,1,5026,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 5017,1,1,1,1,1,1,442,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,5199,1,2352,3242, + 646,3327,1,1,1,115,139,4646,1,1, + 1,5017,5017,5196,842,2236,3382,2807,2054,2598, + 3345,2895,5017,3379,638,3376,3353,3370,43,4640, + 4637,2500,1081,3924,3987,2904,4008,143,1123,3966, + 3945,5017,5274,5281,5279,5288,5287,5283,5284,5282, + 5285,5286,5289,5280,4050,4029,5040,3832,5017,718, + 847,5042,761,3575,803,143,5043,5041,706,5036, + 5038,5039,5037,5277,5352,5353,5271,5278,5250,5276, + 5275,5272,5273,5251,2988,1176,137,5017,4640,4637, + 5408,1081,4682,5017,2904,4092,980,5409,5410,37, + 1,4113,4676,5017,1671,4676,2142,4676,4676,165, + 4676,4676,4676,364,4896,4892,3448,1,1034,1, + 2904,1,119,389,648,4676,4676,382,3902,4676, + 343,4970,4966,3448,5059,1034,1417,2904,5345,580, + 122,1630,1589,1548,1507,1466,1425,1384,1343,1302, + 1261,3424,3400,621,3770,4676,5017,4640,4637,5017, + 1081,1034,4636,2904,4676,4676,4676,580,5027,1712, + 4676,4676,5026,4676,165,1,4863,4863,30,4860, + 993,1417,3770,5345,360,2173,1712,4676,4676,4676, + 4676,4676,4676,4676,4676,4676,4676,4676,4676,4676, + 4676,4676,4676,4676,4676,4676,4676,4676,4676,4676, + 4676,4676,4676,3880,3858,5017,4676,4676,4679,4676, + 4676,4679,446,4679,4679,4193,4679,4679,4679,45, + 5017,4961,4956,720,4860,1034,4953,2904,4950,5017, + 5017,4679,4679,4851,4851,4679,224,141,142,360, + 5017,4970,4966,720,5059,1034,1417,2904,5345,4667, + 5274,309,4961,4956,720,4860,1034,4953,2904,4950, + 360,4679,1,4896,4892,720,5017,1034,4661,2904, + 4679,4679,4679,5017,5034,5035,4679,4679,1034,4679, + 2904,5277,5352,5353,5271,5278,5250,5276,5275,5272, + 5273,5251,1929,4679,4679,4679,4679,4679,4679,4679, + 4679,4679,4679,4679,4679,4679,4679,4679,4679,4679, + 4679,4679,4679,4679,4679,4679,4679,4679,4679,5017, + 5034,5035,4679,4679,2818,4679,4679,5017,4879,4879, + 228,4875,228,228,228,228,4883,1,2105,2105, + 228,1,1,1,1,1,1,1,1,1, + 1,1,1,1,4896,4892,4926,43,4929,1, + 4932,5059,5027,1417,489,5345,5026,390,4640,4637, + 161,5059,1,1,1,1,1,1,1,1, + 1,1,1,5017,5017,1755,432,1,1,1, + 1,382,4658,334,4658,1,1,1,407,228, + 5420,5017,4640,4637,43,1081,4682,5017,2904,5505, + 5017,4879,4879,228,4875,228,228,228,228,4935, + 1,4673,5017,228,1,1,1,1,1,1, + 1,1,1,1,1,1,1217,138,2091,5352, + 5353,5442,5443,5444,5017,4640,4637,489,1081,1034, + 95,2904,225,4670,5373,1,1,1,1,1, + 1,1,1,1,1,1,5274,445,1755,433, + 43,43,1,5059,140,4857,5017,4854,1,1, + 1,406,228,5420,124,343,43,43,2635,5059, + 5017,1417,5505,5345,2506,3424,3400,5277,5352,5353, + 5271,5278,5250,5276,5275,5272,5273,5251,1,4896, + 4892,720,43,1034,5017,2904,5059,309,5017,4640, + 4637,309,5059,4664,5442,5443,5444,5017,1,1, + 1,1,1,1,1,1,2173,1,1,1, + 346,1712,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1863,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,360,2142,1,4896,4892,3448,2787, + 1034,167,2904,5017,1,167,5017,5034,5035,5017, + 1,1,1,4896,4892,4926,1712,4929,5023,4932, + 5542,1,4725,4721,2500,4729,3924,3987,2904,4008, + 1,4685,3966,3945,383,5017,4712,4718,4691,4694, + 4706,4703,4709,4700,4697,4688,4715,4050,4029,5040, + 3832,1712,718,847,5042,761,3575,803,360,5043, + 5041,706,5036,5038,5039,5037,167,5017,1,4071, + 1089,2635,2818,5017,5034,5035,5017,339,1176,360, + 5017,8337,8337,5022,43,43,504,43,4640,4637, + 2500,1081,3924,3987,2904,4008,5025,548,3966,3945, + 3484,3128,5281,5279,5288,5287,5283,5284,5282,5285, + 5286,5289,5280,4050,4029,5040,3832,5057,718,847, + 5042,761,3575,803,1712,5043,5041,706,5036,5038, + 5039,5037,3621,339,339,1499,1,4896,4892,720, + 1,1034,339,2904,1176,1,3779,5017,1,4896, + 4892,3448,5017,1034,1,2904,2591,2635,5024,43, + 4640,4637,2500,1081,3924,3987,2904,4008,5025,548, + 3966,3945,5017,189,5281,5279,5288,5287,5283,5284, + 5282,5285,5286,5289,5280,4050,4029,5040,3832,5017, + 718,847,5042,761,3575,803,3458,5043,5041,706, + 5036,5038,5039,5037,1712,96,1,1,1929,1, + 1712,4869,2808,4869,5017,5017,1176,429,3779,621, + 3139,145,4640,4637,2500,1081,3924,3987,2904,4008, + 5024,548,3966,3945,5017,3795,5281,5279,5288,5287, + 5283,5284,5282,5285,5286,5289,5280,4050,4029,5040, + 3832,130,718,847,5042,761,3575,803,5017,5043, + 5041,706,5036,5038,5039,5037,99,43,43,503, + 5059,123,4944,2568,4941,5017,4640,4637,1176,5059, + 2809,2459,3424,3400,43,43,1,4725,4721,2500, + 4729,3924,3987,2904,4008,5014,4685,3966,3945,3598, + 3128,4712,4718,4691,4694,4706,4703,4709,4700,4697, + 4688,4715,4050,4029,5040,3832,4655,718,847,5042, + 761,3575,803,2814,5043,5041,706,5036,5038,5039, + 5037,5442,5443,5444,1581,804,43,5017,4640,4637, + 5059,5059,5017,1176,2322,2294,5017,4815,4812,43, + 43,43,4640,4637,2500,1081,3924,3987,2904,4008, + 5021,548,3966,3945,5017,5017,5281,5279,5288,5287, + 5283,5284,5282,5285,5286,5289,5280,4050,4029,5040, + 3832,837,718,847,5042,761,3575,803,359,5043, + 5041,706,5036,5038,5039,5037,43,4640,4637,2500, + 1081,3924,3987,2904,4008,5017,548,3966,3945,4071, + 1089,5281,5279,5288,5287,5283,5284,5282,5285,5286, + 5289,5280,4050,4029,5040,3832,288,718,847,5042, + 761,3575,803,5017,5043,5041,706,5036,5038,5039, + 5037,118,54,4815,4812,287,5034,5035,117,104, + 5442,5443,5444,1176,710,3779,43,4640,4637,2500, + 1081,3924,3987,2904,4008,5017,548,3966,3945,5020, + 5517,5281,5279,5288,5287,5283,5284,5282,5285,5286, + 5289,5280,4050,4029,5040,3832,5017,718,847,5042, + 761,3575,803,1841,5043,5041,706,5036,5038,5039, + 5037,5017,223,1,345,4561,631,1582,5474,5468, + 5021,5472,5017,1176,5466,5467,5274,5281,5279,5288, + 5287,5283,5284,5282,5285,5286,5289,5280,226,5497, + 5498,4092,5475,5477,41,4872,4872,4113,4092,4872, + 237,5017,5274,4818,4113,1709,5017,5277,5352,5353, + 5271,5278,5250,5276,5275,5272,5273,5251,121,530, + 1712,49,4836,4836,3902,319,1552,1622,5478,5499, + 5476,2918,116,5277,5352,5353,5271,5278,5250,5276, + 5275,5272,5273,5251,120,227,5017,41,4866,4866, + 3902,5488,5487,5500,5469,5470,5493,5494,4833,5274, + 5491,5492,5471,5473,5495,5496,5501,5481,5482,5483, + 5479,5480,5489,5490,5485,5484,5486,5017,5017,5020, + 631,1712,5474,5468,2764,5472,286,5025,5466,5467, + 5277,5352,5353,5271,5278,5250,5276,5275,5272,5273, + 5251,33,317,5497,5498,4938,5475,5477,103,3880, + 3858,5017,4889,4886,5017,4904,4900,51,4917,4917, + 5017,398,4092,40,4911,4908,1,5017,4113,4497, + 4920,621,5017,530,4923,3880,3858,5017,4842,4839, + 1552,1622,5478,5499,5476,5017,5017,1,5057,5024, + 5017,5057,1298,3772,4914,5027,5023,5017,1712,5026, + 390,5034,5035,2571,1878,5488,5487,5500,5469,5470, + 5493,5494,5017,414,5491,5492,5471,5473,5495,5496, + 5501,5481,5482,5483,5479,5480,5489,5490,5485,5484, + 5486,43,4640,4637,2500,1081,3924,3987,2904,4008, + 5017,548,3966,3945,2087,5017,5281,5279,5288,5287, + 5283,5284,5282,5285,5286,5289,5280,4050,4029,5040, + 3832,5022,718,847,5042,761,3575,803,1,5043, + 5041,706,5036,5038,5039,5037,5017,4983,43,4640, + 4637,2500,1081,3924,3987,2904,4008,1452,548,3966, + 3945,5017,5017,5281,5279,5288,5287,5283,5284,5282, + 5285,5286,5289,5280,4050,4029,5040,3832,5017,718, + 847,5042,761,3575,803,5017,5043,5041,706,5036, + 5038,5039,5037,5017,8064,8042,43,4640,4637,3481, + 1081,3924,3987,2904,4008,1176,548,3966,3945,5024, + 5017,5281,5279,5288,5287,5283,5284,5282,5285,5286, + 5289,5280,4050,4029,5040,3832,5460,718,847,5042, + 761,3575,803,367,5043,5041,706,5036,5038,5039, + 5037,43,4640,4637,2500,1081,3924,3987,2904,4008, + 416,548,3966,3945,5017,372,5281,5279,5288,5287, + 5283,5284,5282,5285,5286,5289,5280,4050,4029,5040, + 3832,5017,718,847,5042,761,3575,803,5017,5043, + 5041,706,5036,5038,5039,5037,43,4640,4637,2500, + 1081,3924,3987,2904,4008,365,548,3966,3945,5017, + 1038,5281,5279,5288,5287,5283,5284,5282,5285,5286, + 5289,5280,4050,4029,5040,3832,627,718,847,5042, + 761,3575,803,5017,5043,5041,706,5036,5038,5039, + 5037,5017,4640,4637,1,5059,5017,8064,8042,54, + 5017,788,5017,5035,4977,5274,5281,5279,5288,5287, + 5283,5284,5282,5285,5286,5289,5280,1,3242,5017, + 5017,54,1090,4546,311,5034,5027,2565,5025,5035, + 5026,3254,5017,3512,3512,4547,5277,5352,5353,5271, + 5278,5250,5276,5275,5272,5273,5251,1,241,4805, + 4801,5034,4809,5408,5017,5198,4980,4977,788,980, + 5409,5410,4756,4792,4798,4771,4774,4786,4783,4789, + 4780,4777,4768,4795,33,382,382,4827,382,382, + 4827,382,4827,4830,3254,906,80,4827,382,988, + 5024,1135,5017,4747,4741,4738,4765,4744,4735,4750, + 4753,4762,4759,4732,4643,5017,5017,410,4549,4980, + 5408,5017,5085,5086,3325,5017,980,5409,5410,382, + 382,382,382,382,382,382,382,382,382,382, + 4830,36,383,383,4821,383,383,4821,383,4821, + 4824,5017,3486,132,4821,383,5017,521,4830,3356, + 5023,107,5017,278,3668,3030,4974,3656,1,4989, + 4989,228,4989,228,228,228,228,228,1,78, + 5017,228,8343,2459,2017,437,383,383,383,383, + 383,383,383,383,383,383,383,4824,3404,851, + 5017,5017,510,3722,3111,4986,1,5017,621,4947, + 3106,1,5017,496,3302,4824,1917,4518,4845,5017, + 517,308,5017,5017,131,5022,2352,494,2670,3327, + 1,4989,4989,228,4989,228,228,228,228,5008, + 3605,39,301,228,8343,5017,2322,2294,3428,3487, + 5505,2648,5317,5017,2459,1,4989,4989,228,4989, + 228,228,228,228,5008,3675,3709,4986,228,8343, + 1,4989,4989,228,4989,228,228,228,228,5011, + 4508,3644,3716,228,8343,517,5017,4204,2352,4848, + 2670,3327,4986,5017,4509,5017,4452,5017,4468,5017, + 2876,220,2039,5017,2,5017,4480,4986,2316,498, + 1,5017,5505,2352,3624,2670,3327,2322,2294,5017, + 5017,3512,4563,5017,5017,5017,220,5017,2352,5017, + 2670,3327,5017,5017,41,5017,5017,5505,3322,5017, + 5017,219,1,4989,4989,228,4989,228,228,228, + 228,5008,5505,2316,5017,228,8343,1,4989,4989, + 228,4989,228,228,228,228,5008,5017,5017,5017, + 228,8343,1800,5017,5017,3607,2003,5017,5017,4986, + 5017,5017,1,4989,4989,228,4989,228,228,228, + 228,228,5017,5017,4986,228,8343,5017,5017,5017, + 2352,5017,2670,3327,5017,5017,5017,5017,5017,5017, + 5017,5017,5017,220,5017,2352,5017,2670,3327,4986, + 5017,5017,5017,5017,5505,5017,5017,5017,220,5017, + 5017,5017,5017,5017,5017,5017,5017,5017,5017,5505, + 2352,5017,2670,3327,1,4989,4989,228,4989,228, + 228,228,228,228,5017,5017,5017,228,8343,5017, + 5017,5017,5017,5017,5505,5017,5017,5017,5017,1, + 4989,4989,228,4989,228,228,228,228,228,5017, + 5017,4986,228,8343,5017,5017,5017,5017,5017,5017, + 5017,5017,5017,5017,5017,5017,5017,5017,5017,5017, + 5017,5017,2352,5017,2670,3327,4986,5017,5017,5017, + 5017,5017,5017,5017,5017,5017,5017,5017,5017,5017, + 5017,5017,5017,5017,5017,5017,5505,2352,5017,2670, + 3327,5017,5017,5017,5017,5017,5017,5017,5017,5017, + 5017,5017,5017,5017,5017,5017,5017,5017,5017,5017, + 5017,5505 }; }; public final static char termAction[] = TermAction.termAction; @@ -1666,58 +1649,59 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asb { public final static char asb[] = {0, - 659,54,479,48,1104,734,734,734,734,112, - 1104,609,522,609,154,463,156,480,480,480, - 480,480,480,480,480,480,924,930,935,932, - 939,937,944,942,946,945,947,161,948,479, - 479,84,84,84,84,519,116,56,606,84, - 312,45,609,609,56,553,924,45,45,36, - 463,1063,83,792,114,905,479,907,907,1010, - 1010,116,479,480,480,480,480,480,480,480, - 480,480,480,480,480,480,480,480,480,480, - 480,480,479,479,479,479,479,479,479,479, - 479,479,479,479,480,45,592,592,592,592, - 258,45,56,208,894,905,599,905,594,905, - 596,905,889,112,519,312,312,56,480,208, - 271,848,716,715,315,112,156,312,83,479, - 517,791,516,519,518,516,45,312,932,932, - 930,930,930,937,937,937,937,935,935,942, - 939,939,945,944,946,1116,947,1104,1104,1104, - 1104,519,519,592,619,591,606,519,602,214, - 519,432,258,262,430,599,266,519,519,519, - 258,592,36,312,963,45,850,852,519,792, - 480,84,928,1,45,114,519,519,518,792, - 479,479,479,479,479,1104,734,1104,463,212, - 602,214,432,431,432,258,432,266,266,519, - 258,519,45,720,708,719,852,258,517,45, - 928,208,791,114,519,517,45,45,45,45, - 116,116,602,601,705,519,214,1116,260,1056, - 1106,214,432,432,422,519,266,705,703,704, - 519,351,479,717,717,405,405,519,846,208, - 372,45,519,928,929,928,479,1,1061,114, - 45,45,602,792,734,516,418,1108,513,1104, - 724,111,423,519,705,480,519,351,479,479, - 852,792,45,850,708,351,326,928,116,480, - 312,1061,517,229,517,432,432,513,968,208, - 727,480,1116,413,422,519,112,112,519,743, - 852,517,351,929,45,312,969,229,517,432, - 599,112,1108,513,480,480,519,519,519,743, - 45,743,591,734,361,361,969,599,443,724, - 519,1104,519,519,1104,736,743,229,799,229, - 590,590,751,444,112,519,116,853,736,701, - 972,203,1104,367,835,229,84,84,751,443, - 1116,480,1116,969,1104,1104,1104,444,1104,519, - 169,969,969,519,599,45,44,738,753,592, - 203,701,798,599,599,843,112,591,435,1104, - 435,1116,444,463,463,461,887,463,969,969, - 657,751,84,738,799,798,799,969,412,968, - 45,798,798,798,112,519,885,372,45,513, - 45,169,969,203,1104,45,751,798,479,1019, - 513,969,705,798,798,798,519,519,361,45, - 45,339,444,657,444,969,169,203,479,444, - 441,705,45,1017,705,705,519,969,590,599, - 599,1096,479,442,116,969,969,45,1017,969, - 516,444,45,116,969,704,444,45,1017,444 + 675,120,297,114,1021,734,734,734,734,110, + 1021,449,599,449,193,281,195,298,298,298, + 298,298,298,298,298,298,451,457,462,459, + 466,464,471,469,473,472,474,200,475,297, + 297,82,82,82,82,337,155,54,446,82, + 438,45,449,449,54,630,451,45,45,36, + 281,980,81,883,112,1039,297,449,451,835, + 835,155,297,298,298,298,298,298,298,298, + 298,298,298,298,298,298,298,298,298,298, + 298,298,297,297,297,297,297,297,297,297, + 297,297,297,297,298,45,1104,1104,1104,1104, + 384,45,54,247,1028,1039,576,1039,571,1039, + 573,1039,1023,110,337,438,438,54,298,247, + 397,753,586,585,512,1046,1046,110,195,438, + 81,297,335,882,334,337,336,334,45,438, + 459,459,457,457,457,464,464,464,464,462, + 462,469,466,466,472,471,473,1116,474,1021, + 1021,1021,1021,337,337,1104,1066,1103,446,337, + 442,340,337,596,384,388,594,576,392,337, + 337,337,384,1104,36,438,490,45,755,757, + 337,883,298,82,455,1,45,112,337,337, + 734,336,883,297,297,297,297,297,1021,1021, + 281,251,442,340,596,595,596,384,596,392, + 392,337,384,337,45,590,578,589,757,384, + 335,45,455,247,882,112,337,335,45,45, + 45,45,155,155,442,441,721,337,340,1116, + 386,973,1106,340,596,596,548,337,392,721, + 719,720,337,556,297,587,587,499,499,337, + 751,247,122,45,337,455,456,455,297,1, + 978,451,112,45,45,442,883,734,334,671, + 1108,331,1021,724,109,549,337,721,298,337, + 556,297,297,757,883,45,755,578,556,523, + 455,155,298,438,978,335,355,335,596,596, + 331,495,247,727,298,1116,507,548,337,110, + 110,337,743,757,335,556,456,45,438,496, + 355,335,596,576,110,1108,331,298,298,337, + 337,337,743,45,743,1103,734,48,48,496, + 576,261,724,337,1021,337,337,1021,736,743, + 355,890,355,1102,1102,795,262,110,337,155, + 758,736,717,797,242,1021,566,926,355,82, + 82,795,261,1116,298,1116,496,1021,1021,1021, + 262,1021,337,208,496,496,337,576,45,44, + 738,844,1104,242,717,889,576,576,792,110, + 1103,253,1021,253,1116,262,281,281,279,842, + 281,496,496,669,795,82,738,890,889,890, + 496,506,495,45,889,889,889,110,337,790, + 122,45,331,45,208,496,242,1021,45,795, + 889,297,936,331,496,721,889,889,889,337, + 337,48,45,45,536,262,669,262,496,208, + 242,297,262,259,721,45,934,721,721,337, + 496,1102,576,576,1013,297,260,155,496,496, + 45,934,496,334,262,45,155,496,720,262, + 45,934,262 }; }; public final static char asb[] = Asb.asb; @@ -1725,117 +1709,117 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asr { public final static byte asr[] = {0, - 96,90,11,12,91,92,88,89,44,93, + 96,90,11,12,91,92,88,89,30,93, 94,97,98,99,100,101,102,117,72,95, 67,104,105,106,107,108,109,110,111,112, - 113,118,71,26,121,65,1,2,8,6, - 4,3,60,66,87,9,0,9,72,118, - 87,26,66,121,0,30,63,31,32,64, - 7,33,34,35,37,47,38,39,40,41, - 42,28,24,25,8,6,11,12,5,29, - 65,43,3,51,13,14,62,46,15,68, - 52,27,16,53,54,17,18,55,57,19, - 20,58,69,59,10,70,21,22,49,23, - 45,1,2,4,0,9,87,13,14,30, - 15,31,32,16,17,18,33,19,20,34, - 35,37,47,38,39,10,21,22,23,40, - 41,42,28,3,24,25,8,6,11,12, - 29,4,43,5,7,1,2,64,63,0, - 65,72,95,66,118,87,71,121,13,14, - 30,63,15,31,32,16,17,18,64,33, - 19,20,34,35,37,47,38,39,10,21, - 22,23,40,41,42,28,24,25,11,12, - 29,43,9,26,7,5,3,1,2,8, - 4,6,0,81,7,114,115,116,48,9, - 3,8,6,5,72,71,26,73,51,13, - 14,62,46,15,68,52,27,16,53,54, - 17,18,55,57,19,20,58,69,59,10, - 70,21,45,22,49,23,4,1,2,36, - 0,4,50,72,0,1,2,9,71,0, - 63,64,3,10,31,35,33,30,39,14, - 23,13,19,17,18,20,21,16,15,22, - 40,43,41,42,28,38,32,37,5,7, - 4,24,25,8,6,11,12,29,34,1, - 2,118,9,0,13,14,15,16,17,18, - 19,20,21,22,23,51,46,52,27,53, - 54,55,57,58,59,45,49,26,9,87, - 7,1,2,60,3,8,6,5,4,0, - 46,47,49,9,65,95,67,66,87,0, - 65,67,66,1,2,0,1,2,123,50, - 0,51,13,14,62,46,15,68,52,27, - 16,53,54,17,18,55,57,19,20,58, - 69,59,10,70,21,45,22,49,23,1, - 2,4,95,0,74,50,65,72,95,87, - 60,3,9,66,26,67,0,50,72,74, - 0,45,1,2,4,114,115,116,0,4, - 44,50,72,0,81,114,115,116,36,72, - 119,122,71,73,74,48,56,61,76,78, - 85,83,75,80,82,84,86,50,77,79, - 9,26,51,62,46,68,52,27,53,54, - 55,57,58,69,59,70,45,49,47,63, - 64,10,31,35,33,30,39,14,23,13, - 19,17,18,20,21,16,15,22,40,43, - 41,42,28,38,32,37,24,25,11,12, - 29,34,8,6,3,4,7,5,1,2, - 0,51,13,14,62,46,15,68,52,27, - 16,53,54,17,18,55,57,19,20,58, - 69,59,10,70,21,45,22,49,23,1, - 2,4,64,63,11,12,6,91,92,99, - 8,100,5,29,44,107,108,104,105,106, - 112,111,113,89,88,109,110,97,98,93, - 94,101,102,24,25,90,103,3,60,67, - 66,65,0,36,72,4,1,2,50,0, - 47,46,7,49,5,1,2,4,74,9, - 50,72,95,118,87,71,26,121,60,3, - 120,96,103,90,24,25,8,6,11,12, - 91,92,88,89,44,93,94,97,98,99, - 100,101,102,117,104,105,106,107,108,109, - 110,111,112,113,65,66,67,0,13,14, - 30,63,15,31,32,16,17,18,64,7, - 33,19,20,34,35,37,47,38,39,10, - 21,22,23,40,41,42,1,2,3,24, - 25,8,6,11,12,5,29,4,43,73, - 28,0,67,66,71,9,0,8,6,4, - 5,7,1,2,3,60,65,67,66,9, - 87,95,0,50,66,0,72,9,60,3, - 67,66,26,44,0,46,49,74,3,50, - 72,26,47,9,65,95,67,66,87,0, - 119,0,61,51,13,14,62,46,15,68, - 52,81,27,16,53,54,17,18,55,56, - 57,19,20,58,69,59,10,70,21,48, - 45,22,49,23,9,3,8,4,26,50, - 6,7,1,2,5,36,0,71,62,46, - 15,68,52,16,53,54,17,18,55,57, - 19,20,58,69,59,70,21,45,22,49, - 23,14,13,51,9,3,8,6,26,48, - 61,81,27,36,7,1,2,5,4,10, - 56,0,50,67,0,7,5,3,60,6, - 8,95,51,13,14,46,15,68,52,27, - 16,53,54,17,18,55,57,19,20,58, - 69,59,10,70,21,45,22,49,23,1, - 2,4,87,9,62,0,75,0,10,68, - 62,69,70,14,23,13,19,17,18,20, - 21,16,15,22,74,50,4,5,2,1, - 49,45,59,58,57,7,55,54,53,27, - 52,46,51,120,103,24,25,60,3,96, - 90,6,91,92,11,12,89,88,44,93, - 94,97,98,8,99,100,101,65,95,87, - 121,67,104,105,106,107,108,109,110,111, - 112,113,72,118,71,102,117,66,26,9, - 0,62,46,15,68,52,16,53,54,17, - 18,55,57,19,20,58,69,59,10,70, - 21,45,22,49,23,14,13,51,9,3, - 8,6,26,48,56,61,81,27,44,7, - 4,36,5,1,2,0,9,71,63,64, - 47,24,25,8,6,11,12,29,34,3, - 40,43,41,42,28,38,32,37,14,23, - 13,19,17,18,20,21,16,15,22,31, - 35,33,30,39,50,7,1,2,4,10, - 5,0,63,64,24,25,11,12,29,34, - 40,43,41,42,28,38,32,37,14,23, - 13,19,17,18,20,21,16,15,22,10, - 31,35,33,30,39,8,6,4,60,7, - 5,1,2,3,0,26,9,7,5,3, + 113,118,71,13,121,65,1,2,8,6, + 4,3,56,66,74,9,0,65,67,66, + 1,2,0,31,63,32,33,64,7,34, + 35,36,38,57,39,40,41,42,43,28, + 26,27,8,6,11,12,5,29,65,44, + 3,48,15,16,62,46,17,68,49,14, + 18,50,51,19,20,52,53,21,22,54, + 69,55,10,70,23,24,47,25,45,1, + 2,4,0,9,72,118,74,13,66,121, + 0,48,15,16,62,46,17,68,49,14, + 18,50,51,19,20,52,53,21,22,54, + 69,55,10,70,23,45,24,47,25,1, + 2,4,95,0,9,74,15,16,31,17, + 32,33,18,19,20,34,21,22,35,36, + 38,57,39,40,10,23,24,25,41,42, + 43,28,3,26,27,8,6,11,12,29, + 4,44,5,7,1,2,64,63,0,65, + 72,95,66,118,74,71,121,15,16,31, + 63,17,32,33,18,19,20,64,34,21, + 22,35,36,38,57,39,40,10,23,24, + 25,41,42,43,28,26,27,11,12,29, + 44,9,13,7,5,3,1,2,8,4, + 6,0,82,114,115,116,37,72,119,122, + 71,73,75,58,60,61,77,79,86,84, + 76,81,83,85,87,59,78,80,9,13, + 48,62,46,68,49,14,50,51,52,53, + 54,69,55,70,45,47,57,63,64,10, + 32,36,34,31,40,16,25,15,21,19, + 20,22,23,18,17,24,41,44,42,43, + 28,39,33,38,26,27,11,12,29,35, + 8,6,3,4,7,5,1,2,0,82, + 7,114,115,116,58,9,3,8,6,5, + 72,71,13,73,48,15,16,62,46,17, + 68,49,14,18,50,51,19,20,52,53, + 21,22,54,69,55,10,70,23,45,24, + 47,25,4,1,2,37,0,4,59,72, + 0,1,2,9,71,0,63,64,3,10, + 32,36,34,31,40,16,25,15,21,19, + 20,22,23,18,17,24,41,44,42,43, + 28,39,33,38,5,7,4,26,27,8, + 6,11,12,29,35,1,2,118,9,0, + 57,46,7,47,5,1,2,4,75,59, + 120,103,26,27,56,3,96,90,6,91, + 92,11,12,89,88,30,93,94,97,98, + 8,99,100,101,65,95,74,121,67,104, + 105,106,107,108,109,110,111,112,113,72, + 118,71,102,117,66,13,9,0,75,59, + 65,72,95,74,56,3,9,66,13,67, + 0,15,16,17,18,19,20,21,22,23, + 24,25,48,46,49,14,50,51,52,53, + 54,55,45,47,13,9,74,7,1,2, + 56,3,8,6,5,4,0,45,1,2, + 4,114,115,116,0,46,57,47,9,65, + 95,67,66,74,0,1,2,123,59,0, + 37,72,4,1,2,59,0,8,6,4, + 5,7,1,2,3,56,65,67,66,9, + 74,95,0,4,30,59,72,0,48,15, + 16,62,46,17,68,49,14,18,50,51, + 19,20,52,53,21,22,54,69,55,10, + 70,23,45,24,47,25,1,2,4,64, + 63,11,12,6,91,92,99,8,100,5, + 29,30,65,107,108,104,105,106,112,111, + 113,89,88,109,110,97,98,93,94,101, + 102,26,27,66,90,103,3,56,67,0, + 59,72,75,0,15,16,31,63,17,32, + 33,18,19,20,64,7,34,21,22,35, + 36,38,57,39,40,10,23,24,25,41, + 42,43,1,2,3,26,27,8,6,11, + 12,5,29,4,44,73,28,0,67,66, + 71,9,0,59,66,0,72,9,56,3, + 67,66,13,30,0,46,47,75,3,59, + 72,13,57,9,65,95,67,66,74,0, + 7,5,3,56,6,8,95,48,15,16, + 46,17,68,49,14,18,50,51,19,20, + 52,53,21,22,54,69,55,10,70,23, + 45,24,47,25,1,2,4,74,9,62, + 0,59,67,0,119,0,62,46,17,68, + 49,18,50,51,19,20,52,53,21,22, + 54,69,55,10,70,23,45,24,47,25, + 16,15,48,9,3,8,6,13,58,60, + 61,82,14,30,7,4,37,5,1,2, + 0,76,0,61,48,15,16,62,46,17, + 68,49,82,14,18,50,51,19,20,52, + 60,53,21,22,54,69,55,10,70,23, + 58,45,24,47,25,9,3,8,4,13, + 59,6,7,1,2,5,37,0,71,62, + 46,17,68,49,18,50,51,19,20,52, + 53,21,22,54,69,55,70,23,45,24, + 47,25,16,15,48,9,3,8,6,13, + 58,61,82,14,37,7,1,2,5,4, + 10,60,0,9,71,63,64,57,26,27, + 8,6,11,12,29,35,3,41,44,42, + 43,28,39,33,38,16,25,15,21,19, + 20,22,23,18,17,24,32,36,34,31, + 40,59,7,1,2,4,10,5,0,63, + 64,26,27,11,12,29,35,41,44,42, + 43,28,39,33,38,16,25,15,21,19, + 20,22,23,18,17,24,10,32,36,34, + 31,40,8,6,4,56,7,5,1,2, + 3,0,10,68,62,69,70,16,25,15, + 21,19,20,22,23,18,17,24,75,59, + 72,95,118,71,121,7,53,54,55,45, + 47,1,2,52,51,50,14,49,5,4, + 46,48,9,74,13,56,3,120,96,103, + 90,26,27,8,6,11,12,91,92,88, + 89,30,93,94,97,98,99,100,101,102, + 117,104,105,106,107,108,109,110,111,112, + 113,67,66,65,0,13,9,7,5,3, 1,2,6,8,4,72,0 }; }; @@ -1844,58 +1828,59 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasb { public final static char nasb[] = {0, - 137,11,24,11,11,11,11,11,11,167, - 11,11,108,11,52,154,134,24,24,50, - 24,24,24,24,24,24,11,11,11,11, - 11,11,11,11,11,11,11,24,11,24, - 115,232,232,232,232,134,56,192,70,4, - 77,229,11,11,192,110,11,229,229,146, - 1,24,68,120,11,11,115,11,11,15, - 15,56,115,24,24,24,24,24,24,24, - 24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,24,24,24,24,24,24, - 24,24,24,115,24,229,11,11,11,11, - 33,229,22,179,205,206,11,206,132,206, - 98,206,199,167,134,77,77,22,24,179, - 73,146,83,83,11,167,134,77,232,61, - 214,46,213,10,134,213,229,77,11,11, + 180,11,40,11,11,11,11,11,11,241, + 11,11,174,11,84,126,155,40,40,214, + 40,40,40,40,40,40,11,11,11,11, + 11,11,11,11,11,11,11,40,11,40, + 142,244,244,244,244,155,54,207,45,4, + 101,190,11,11,207,176,11,190,190,162, + 1,40,88,50,11,11,142,11,11,61, + 61,54,142,40,40,40,40,40,40,40, + 40,40,40,40,40,40,40,40,40,40, + 40,40,40,40,40,40,40,40,40,40, + 40,40,40,142,40,190,11,11,11,11, + 77,190,38,90,226,227,11,227,150,227, + 72,227,220,241,155,101,101,38,40,90, + 97,162,15,15,11,11,11,241,155,101, + 244,103,23,130,22,217,155,22,190,101, 11,11,11,11,11,11,11,11,11,11, 11,11,11,11,11,11,11,11,11,11, - 11,53,10,11,11,11,176,134,192,192, - 53,192,224,192,11,11,192,224,134,10, - 11,11,174,77,11,229,169,192,134,120, - 24,232,192,12,229,11,10,134,87,120, - 24,115,115,115,115,11,11,11,22,11, - 125,162,192,192,150,119,150,192,99,10, - 119,53,229,11,142,11,171,118,53,229, - 29,176,46,11,10,53,229,229,229,229, - 56,56,192,125,44,134,184,11,11,31, - 217,162,150,150,94,53,99,44,11,11, - 53,192,24,11,11,83,83,134,142,179, - 171,229,53,192,66,11,115,176,88,11, - 229,229,125,120,11,167,192,186,188,11, - 11,167,20,224,44,24,99,125,24,24, - 192,120,229,169,208,192,11,29,56,24, - 77,88,214,192,224,192,79,210,184,179, - 11,24,11,36,158,224,167,167,10,192, - 171,214,125,66,229,77,184,171,214,79, - 59,90,188,210,24,24,10,224,224,38, - 229,192,11,11,81,81,184,59,122,11, - 224,11,10,10,11,192,38,171,194,192, - 11,11,192,101,90,10,56,227,125,11, - 194,218,11,99,31,171,232,232,64,112, - 11,24,11,184,11,11,11,113,11,99, - 182,184,184,99,85,229,229,192,192,11, - 186,11,192,11,11,11,167,11,106,11, - 11,11,113,231,231,235,11,231,184,184, - 11,192,232,38,194,192,194,184,152,11, - 229,127,192,192,167,224,11,232,229,188, - 229,237,184,192,11,229,64,127,61,24, - 188,184,44,194,127,127,224,140,81,229, - 229,192,113,11,113,184,237,188,115,113, - 106,44,229,192,44,44,140,184,11,85, - 85,142,24,11,237,184,184,229,40,184, - 213,113,229,237,184,44,113,229,40,113 + 11,11,11,152,10,11,11,11,185,155, + 207,207,152,207,171,207,11,11,207,171, + 155,10,11,11,183,101,11,190,134,207, + 155,50,40,244,207,12,190,11,10,155, + 11,116,50,40,142,142,142,142,11,11, + 38,11,57,236,207,207,108,49,108,207, + 218,10,49,152,190,11,158,11,136,48, + 152,190,32,185,130,11,217,152,190,190, + 190,190,54,54,207,57,70,155,199,11, + 11,106,229,236,108,108,112,152,218,70, + 11,11,152,207,40,11,11,15,15,155, + 158,90,136,190,152,207,80,11,142,185, + 117,11,11,190,190,57,50,11,241,207, + 201,203,11,11,241,52,171,70,40,218, + 57,40,40,207,50,190,134,17,207,11, + 32,54,40,101,117,23,207,171,207,119, + 19,199,90,11,40,11,59,28,171,241, + 241,10,207,136,23,57,80,190,101,199, + 136,23,119,75,34,203,19,40,40,10, + 171,171,95,190,207,11,11,26,26,199, + 75,192,11,171,11,10,10,11,207,95, + 136,209,207,11,11,207,121,34,10,54, + 188,57,11,209,230,11,218,106,136,244, + 244,178,139,11,40,11,199,11,11,11, + 140,11,218,197,199,199,218,110,190,190, + 207,207,11,201,11,207,11,11,11,241, + 11,93,11,11,11,140,243,243,166,11, + 243,199,199,11,207,244,95,209,207,209, + 199,82,11,190,145,207,207,241,171,11, + 244,190,203,190,168,199,207,11,190,178, + 145,103,40,203,199,70,209,145,145,171, + 195,26,190,190,207,140,11,140,199,168, + 203,142,140,93,70,190,207,70,70,195, + 199,11,110,110,158,40,11,168,199,199, + 190,66,199,22,140,190,168,199,70,140, + 190,66,140 }; }; public final static char nasb[] = Nasb.nasb; @@ -1903,30 +1888,31 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasr { public final static char nasr[] = {0, - 3,12,7,5,147,145,120,144,143,2, - 0,4,173,0,5,2,7,134,0,184, - 0,47,4,5,7,2,12,0,138,0, - 151,0,53,65,0,182,0,124,0,12, - 2,7,5,64,0,65,133,132,0,5, - 12,7,2,3,0,4,98,0,155,0, - 4,28,0,156,0,136,0,171,0,4, - 186,0,12,2,7,5,78,0,154,0, - 110,0,67,0,55,0,2,114,0,165, - 5,164,0,5,104,183,0,5,1,0, - 4,46,38,174,0,113,0,4,47,167, - 0,64,46,69,4,38,0,53,2,65, - 0,4,64,0,59,0,105,4,46,68, - 0,3,5,2,43,0,4,170,0,150, - 0,2,7,53,63,95,96,4,0,111, - 0,176,0,4,47,38,0,5,104,161, - 0,4,46,68,104,44,5,0,5,91, - 23,4,0,96,95,5,54,0,5,91, - 0,4,38,39,0,5,91,63,53,7, - 2,4,0,4,46,68,79,0,2,5, - 120,116,117,118,12,88,0,96,95,53, - 63,54,5,7,2,0,39,53,7,2, - 4,153,0,2,60,0,47,4,35,0, - 115,4,47,0,23,175,4,102,0 + 3,12,7,5,146,144,119,143,142,2, + 0,4,172,0,66,0,95,94,52,62, + 53,5,7,2,0,109,0,5,103,160, + 0,137,0,164,5,163,0,46,4,5, + 7,2,12,0,4,185,0,52,2,64, + 0,183,0,4,97,0,58,0,181,0, + 5,2,7,133,0,12,2,7,5,63, + 0,5,1,0,154,0,52,64,0,135, + 0,175,0,2,7,3,0,170,0,5, + 90,0,112,0,123,0,12,2,7,5, + 77,0,4,27,0,150,0,110,0,54, + 0,5,103,182,0,2,113,0,153,0, + 4,45,37,173,0,4,46,37,0,64, + 132,131,0,5,90,22,4,0,63,45, + 68,4,37,0,104,4,45,67,0,5, + 42,2,3,0,2,42,0,2,7,52, + 62,94,95,4,0,22,174,4,101,0, + 2,59,0,4,46,166,0,155,0,4, + 169,0,95,94,5,53,0,46,4,33, + 0,4,63,0,149,0,4,37,38,0, + 5,90,62,52,7,2,4,0,4,45, + 67,78,0,5,7,12,3,1,0,2, + 5,119,115,116,117,12,87,0,38,52, + 7,2,4,152,0,4,45,67,103,43, + 5,0,114,4,46,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -1935,14 +1921,14 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TerminalIndex { public final static char terminalIndex[] = {0, 115,116,2,32,14,11,81,10,117,102, - 12,13,50,54,62,70,76,77,88,89, - 104,107,109,8,9,122,68,114,15,57, - 63,69,86,90,92,95,96,99,101,111, - 112,113,46,20,106,56,97,105,108,3, - 49,66,72,75,78,79,85,91,100,1, + 12,13,122,68,50,54,62,70,76,77, + 88,89,104,107,109,8,9,114,15,20, + 57,63,69,86,90,92,95,96,99,101, + 111,112,113,46,106,56,108,49,66,72, + 75,78,85,91,100,1,97,105,3,79, 48,55,60,80,21,45,34,65,93,103, - 121,31,123,98,110,51,52,58,59,61, - 67,71,73,74,87,94,120,18,19,7, + 121,31,123,120,98,110,51,52,58,59, + 61,67,71,73,74,87,94,18,19,7, 16,17,22,23,33,5,24,25,26,27, 28,29,6,35,36,37,38,39,40,41, 42,43,44,82,83,84,30,119,53,4, @@ -1955,25 +1941,25 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, 132,137,139,0,0,138,235,136,0,135, - 0,146,0,134,0,0,145,151,0,0, - 152,161,182,162,163,164,165,154,166,167, - 140,168,169,170,128,171,0,133,130,172, - 0,142,141,180,0,0,155,0,0,0, - 0,0,0,158,175,0,205,0,189,0, - 148,202,206,129,0,0,207,0,174,0, - 0,0,0,0,0,0,178,127,131,0, - 0,0,0,0,0,0,0,188,0,0, - 203,213,160,209,210,211,0,0,149,0, - 0,0,208,221,181,0,0,0,212,0, - 0,0,241,150,177,191,192,193,194,195, - 197,200,0,0,215,218,220,238,0,240, - 0,143,144,147,0,0,157,159,0,173, - 0,183,184,185,186,187,190,0,196,198, - 0,199,204,0,216,217,0,222,225,227, - 229,0,232,233,234,0,236,237,239,126, - 0,153,156,176,179,201,214,219,0,223, - 224,226,228,0,230,231,242,243,0,0, - 0,0,0,0 + 0,146,134,0,0,145,151,0,0,152, + 161,182,162,163,164,165,154,166,167,168, + 169,170,128,144,171,0,133,130,172,0, + 141,140,180,0,0,155,0,0,0,0, + 0,0,158,175,0,205,0,189,0,148, + 202,206,129,0,0,207,0,174,0,0, + 0,0,0,0,0,178,127,131,0,0, + 0,0,0,0,0,0,188,0,0,203, + 213,160,209,210,211,0,0,0,0,149, + 0,208,221,181,0,0,0,212,0,0, + 0,241,150,177,191,192,193,194,195,197, + 200,0,0,215,218,220,238,0,240,0, + 142,143,147,0,0,157,159,0,173,0, + 183,184,185,186,187,190,0,196,198,0, + 199,204,0,216,217,0,222,225,227,229, + 0,232,233,234,0,236,237,239,126,0, + 153,156,176,179,201,214,219,0,223,224, + 226,228,0,230,231,242,243,0,0,0, + 0,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -2019,18 +2005,18 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeLhs { public final static char scopeLhs[] = { - 44,17,17,73,17,17,17,17,73,82, - 45,87,86,118,66,51,73,72,44,17, - 73,19,3,6,161,161,158,116,44,85, - 118,117,119,52,45,134,129,73,17,17, - 129,97,56,131,76,164,161,158,126,58, - 117,117,119,175,49,55,138,17,17,17, - 17,11,113,158,126,73,72,72,37,134, - 72,17,17,17,17,97,73,19,165,161, - 176,95,103,67,57,153,77,119,74,70, - 139,138,171,134,16,158,119,115,21,127, - 127,54,134,134,73,44,158,71,132,43, - 132,43,164,115,116,44,44,56 + 43,16,16,72,16,16,16,16,72,81, + 44,86,85,117,65,50,72,71,43,16, + 72,18,3,6,160,160,157,115,43,84, + 117,116,118,51,44,133,128,72,16,16, + 128,96,55,130,75,163,160,157,125,57, + 116,116,118,174,48,54,137,16,16,16, + 16,11,112,157,125,72,71,71,36,133, + 71,16,16,16,16,96,72,18,164,160, + 175,94,102,66,56,152,76,118,73,69, + 138,137,170,133,15,157,118,114,20,126, + 126,53,133,133,72,43,157,70,131,42, + 131,42,163,114,115,43,43,55 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -2038,18 +2024,18 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeLa { public final static byte scopeLa[] = { - 119,87,87,87,87,87,87,87,87,71, - 26,71,71,71,65,1,87,122,50,3, - 26,87,65,65,1,1,26,71,50,71, - 71,1,1,1,1,4,65,26,1,1, - 65,87,87,87,119,87,1,26,71,1, - 1,1,1,26,26,71,118,87,87,87, - 118,1,87,1,66,87,87,87,72,4, - 87,65,65,65,65,87,26,3,1,1, - 87,87,3,118,87,1,1,1,26,72, - 87,118,87,5,87,1,36,67,87,1, - 1,6,1,36,75,74,26,26,4,4, - 4,4,3,1,50,1,1,3 + 119,74,74,74,74,74,74,74,74,71, + 13,71,71,71,65,1,74,122,59,3, + 13,74,65,65,1,1,13,71,59,71, + 71,1,1,1,1,4,65,13,1,1, + 65,74,74,74,119,74,1,13,71,1, + 1,1,1,13,13,71,118,74,74,74, + 118,1,74,1,66,74,74,74,72,4, + 74,65,65,65,65,74,13,3,1,1, + 74,74,3,118,74,1,1,1,13,72, + 74,118,74,5,74,1,37,67,74,1, + 1,6,1,37,76,75,13,13,4,4, + 4,4,3,1,59,1,1,3 }; }; public final static byte scopeLa[] = ScopeLa.scopeLa; @@ -2076,71 +2062,71 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeRhs { public final static char scopeRhs[] = {0, - 312,3,47,0,128,0,311,3,119,0, - 128,175,0,128,179,74,0,217,0,290, - 128,44,126,0,21,0,292,128,44,36, + 311,3,57,0,128,0,310,3,119,0, + 128,175,0,128,178,75,0,217,0,289, + 128,30,126,0,21,0,291,128,30,37, 0,21,55,0,34,134,0,21,55,0, - 0,292,128,44,36,192,0,21,131,0, - 290,128,44,131,0,184,129,0,140,0, - 222,3,289,0,289,0,2,0,128,0, - 184,129,228,0,184,129,45,228,0,184, - 129,308,45,0,132,189,167,129,0,130, - 0,189,167,129,0,136,130,0,170,0, - 304,128,170,0,128,170,0,223,130,0, - 167,244,0,139,0,0,0,137,0,0, - 0,303,128,50,251,0,129,0,251,0, - 3,0,0,129,0,302,128,50,0,45, - 129,0,152,3,0,128,279,278,128,74, - 277,170,0,278,128,74,277,170,0,216, - 0,217,0,277,170,0,98,0,0,216, + 0,291,128,30,37,191,0,21,131,0, + 289,128,30,131,0,183,129,0,144,0, + 221,3,288,0,288,0,2,0,128,0, + 183,129,227,0,183,129,45,227,0,183, + 129,307,45,0,132,188,166,129,0,130, + 0,188,166,129,0,136,130,0,169,0, + 303,128,169,0,128,169,0,223,130,0, + 166,243,0,139,0,0,0,137,0,0, + 0,302,128,59,250,0,129,0,250,0, + 3,0,0,129,0,301,128,59,0,45, + 129,0,151,3,0,128,278,277,128,75, + 276,169,0,277,128,75,276,169,0,216, + 0,217,0,276,169,0,98,0,0,216, 0,217,0,204,98,0,0,216,0,217, - 0,278,128,277,170,0,216,0,204,0, - 0,216,0,231,128,3,0,128,0,0, - 0,0,0,231,128,3,219,0,227,3, - 0,215,128,0,209,0,189,167,177,0, - 136,0,167,129,0,11,0,0,0,217, - 60,0,127,0,231,128,3,181,0,181, + 0,277,128,276,169,0,216,0,204,0, + 0,216,0,230,128,3,0,128,0,0, + 0,0,0,230,128,3,218,0,226,3, + 0,214,128,0,209,0,188,166,176,0, + 136,0,166,129,0,11,0,0,0,216, + 56,0,127,0,230,128,3,180,0,180, 0,2,0,0,128,0,0,0,0,0, - 201,3,0,202,0,230,128,50,28,27, - 0,184,129,56,48,0,198,130,0,132, - 184,129,275,48,0,184,129,275,48,0, - 184,129,67,125,56,0,230,128,50,56, - 0,230,128,50,123,56,0,230,128,50, - 126,56,0,272,128,50,125,68,0,272, - 128,50,68,0,184,129,68,0,137,0, - 189,184,129,244,0,139,0,184,129,244, - 0,189,167,129,10,0,167,129,10,0, - 95,139,0,149,0,265,128,147,0,265, - 128,170,0,162,85,0,226,163,226,299, - 3,82,0,128,174,0,226,299,3,82, - 0,130,0,128,174,0,226,163,226,163, - 226,3,82,0,226,163,226,3,82,0, - 226,3,82,0,130,0,130,0,128,174, - 0,162,3,75,193,80,0,128,130,0, - 193,80,0,110,2,133,128,130,0,239, - 3,75,0,201,171,0,34,172,0,171, - 0,178,34,172,0,239,3,86,0,193, - 159,239,3,84,0,64,174,0,239,3, - 84,0,128,174,64,174,0,298,128,50, - 0,162,0,217,77,0,31,0,162,117, - 160,0,31,172,0,185,3,0,128,152, - 0,222,3,0,217,60,262,0,162,60, - 0,185,3,295,64,129,0,128,0,0, - 0,0,295,64,129,0,2,148,128,0, - 0,0,0,150,0,127,36,167,129,0, - 32,150,0,95,139,32,150,0,223,184, - 129,0,149,32,150,0,162,3,39,0, - 162,3,65,185,44,30,0,185,44,30, - 0,21,2,133,128,0,162,3,65,185, - 44,33,0,185,44,33,0,162,3,65, - 185,44,35,0,185,44,35,0,162,3, - 65,185,44,31,0,185,44,31,0,222, - 3,127,189,167,129,10,0,127,189,167, - 129,10,0,139,2,0,128,0,222,3, - 126,177,167,129,10,0,177,167,129,10, - 0,137,2,0,128,0,222,3,136,0, - 222,3,141,0,162,60,141,0,257,0, - 32,0,32,143,0,166,0,162,3,0 + 200,3,0,202,0,229,128,59,28,14, + 0,183,129,60,58,0,198,130,0,132, + 183,129,274,58,0,183,129,274,58,0, + 183,129,67,125,60,0,229,128,59,60, + 0,229,128,59,123,60,0,229,128,59, + 126,60,0,271,128,59,125,68,0,271, + 128,59,68,0,183,129,68,0,137,0, + 188,183,129,243,0,139,0,183,129,243, + 0,188,166,129,10,0,166,129,10,0, + 95,139,0,149,0,264,128,146,0,264, + 128,169,0,161,86,0,225,162,225,298, + 3,83,0,128,174,0,225,298,3,83, + 0,130,0,128,174,0,225,162,225,162, + 225,3,83,0,225,162,225,3,83,0, + 225,3,83,0,130,0,130,0,128,174, + 0,161,3,76,192,81,0,128,130,0, + 192,81,0,110,2,133,128,130,0,238, + 3,76,0,200,170,0,34,172,0,170, + 0,178,34,172,0,238,3,87,0,192, + 157,238,3,85,0,64,174,0,238,3, + 85,0,128,174,64,174,0,297,128,59, + 0,161,0,216,78,0,31,0,161,117, + 159,0,31,172,0,184,3,0,128,152, + 0,221,3,0,216,56,261,0,161,56, + 0,184,3,294,64,129,0,128,0,0, + 0,0,294,64,129,0,2,148,128,0, + 0,0,0,150,0,127,37,166,129,0, + 32,150,0,95,139,32,150,0,224,183, + 129,0,149,32,150,0,161,3,40,0, + 161,3,65,184,30,31,0,184,30,31, + 0,21,2,133,128,0,161,3,65,184, + 30,34,0,184,30,34,0,161,3,65, + 184,30,36,0,184,30,36,0,161,3, + 65,184,30,32,0,184,30,32,0,221, + 3,127,188,166,129,10,0,127,188,166, + 129,10,0,139,2,0,128,0,221,3, + 126,176,166,129,10,0,176,166,129,10, + 0,137,2,0,128,0,221,3,136,0, + 221,3,140,0,161,56,140,0,256,0, + 32,0,32,142,0,165,0,161,3,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -2148,36 +2134,36 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeState { public final static char scopeState[] = {0, - 3142,0,4572,0,4614,4613,4565,0,2947,3676, - 2649,1103,0,1788,1777,857,0,2499,2467,0, - 3498,3444,3390,3806,3623,3336,3282,3226,3165,2258, - 3051,2676,2622,3113,1037,0,3474,2625,3221,0, - 1221,1135,0,3202,2492,0,3171,4326,0,1173, - 711,0,3171,3945,2681,4292,4326,3929,4304,4395, - 4406,3128,4315,721,3632,3554,3015,0,3707,3243, - 0,3707,3243,2858,2793,3876,2784,2719,3823,3770, - 3717,3652,3498,3444,3390,3336,3282,3226,3165,3051, - 2676,2622,0,3707,3243,2858,2793,3876,2784,2719, - 3823,3770,3717,3652,0,912,908,0,3128,3945, - 3615,2681,4292,3805,3632,2646,3614,726,3312,3360, - 603,3468,3378,0,653,567,0,1197,0,2883, - 2475,2308,2210,4292,3360,3929,3554,3015,2817,2382, - 0,3660,525,2371,0,4559,4555,4511,4507,4503, - 4488,4484,4439,3969,3839,3713,3509,3062,4434,4418, - 2915,3624,2891,2463,2777,2854,2453,0,4559,4555, - 3341,3291,3259,4511,4507,4503,3083,2755,4488,4484, - 4439,3396,3969,2952,2809,3839,2387,2634,2377,1059, - 2394,3713,3056,3509,616,3062,4434,4418,866,2915, - 648,3624,2638,2891,2463,3660,2777,2371,2854,2453, - 3929,4304,4395,4406,3128,3171,3945,4315,2169,2080, - 2681,1991,4292,721,3632,3554,4326,3015,853,1865, - 984,1047,799,653,567,620,4270,4248,2182,2220, - 2254,580,2343,2315,2285,2599,2573,2546,2519,2426, - 2398,3575,3138,3025,2990,2965,4226,4204,4182,4160, - 4138,4116,4094,4072,4050,915,4028,1873,2131,2093, - 2042,2004,1953,1150,1107,1915,1064,811,1823,1784, - 735,673,1742,1700,1658,1616,1574,1532,1490,1448, - 1406,1364,1322,525,1280,1236,1002,942,873,1193, + 1079,0,2876,0,4480,4468,4452,0,1335,3160, + 1265,2934,0,1381,1370,1340,0,2648,635,0, + 3324,3269,3214,2858,2851,3159,3104,3049,2988,2236, + 2895,2536,2481,2975,1026,0,4360,3128,3355,0, + 1324,1075,0,627,2406,0,4368,4215,0,1778, + 634,0,4368,4276,2486,567,4215,3760,4176,4204, + 4287,2951,4193,720,3464,3448,2835,0,2978,4313, + 0,2978,4313,2748,2696,3708,2630,2578,3656,3604, + 3552,3484,3324,3269,3214,3159,3104,3049,2988,2895, + 2536,2481,0,2978,4313,2748,2696,3708,2630,2578, + 3656,3604,3552,3484,0,2591,2506,0,2951,4276, + 3606,2486,567,2698,3464,1663,2909,1652,2511,3074, + 795,1198,1168,0,1917,851,0,1089,0,2015, + 1845,1422,564,567,3074,3760,3448,2835,2635,2501, + 0,4186,526,2286,0,4404,4398,4394,4385,4320, + 3743,3691,3639,4458,4408,3460,3347,3292,3496,2882, + 3237,2847,2691,2665,2685,3182,2783,0,4404,4398, + 3017,2994,2971,4394,4385,4320,2756,2612,3743,3691, + 3639,3557,4458,3474,3384,4408,2918,2818,2764,2417, + 2421,3460,1793,3347,3545,3292,3496,2882,2137,3237, + 1131,2847,1034,2691,2665,4186,2685,2286,3182,2783, + 3760,4176,4204,4287,2951,4368,4276,4193,2407,2387, + 2486,2376,567,720,3464,3448,4215,2835,783,1081, + 2003,2091,648,1917,851,3575,4155,4134,580,2105, + 2173,2142,2259,2232,2203,2854,2348,2459,2433,2322, + 2294,3902,3880,3858,3424,3400,4113,4092,4071,4050, + 4029,4008,3987,3966,3945,3924,3832,1800,2054,2017, + 1966,1929,1878,1090,1038,1841,993,804,1751,1712, + 734,673,1671,1630,1589,1548,1507,1466,1425,1384, + 1343,1302,1261,526,1217,1176,947,906,865,1135, 0 }; }; @@ -2186,58 +2172,59 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface InSymb { public final static char inSymb[] = {0, - 0,294,128,264,39,30,33,35,31,10, - 136,126,7,131,4,3,129,34,29,5, - 12,11,6,8,25,24,141,146,149,148, - 151,150,154,153,157,156,158,47,160,66, - 3,44,44,44,44,129,3,44,171,128, - 60,3,63,64,44,7,126,185,162,171, - 128,63,64,167,166,126,3,127,126,103, - 120,3,60,90,96,12,11,92,91,6, - 94,93,65,44,88,89,8,98,97,100, + 0,293,128,263,40,31,34,36,32,10, + 136,126,7,131,4,3,129,35,29,5, + 12,11,6,8,27,26,140,145,148,147, + 150,149,153,152,155,154,156,57,159,66, + 3,30,30,30,30,129,3,30,170,128, + 56,3,63,64,30,7,126,184,161,170, + 128,63,64,166,165,126,3,125,127,103, + 120,3,56,90,96,12,11,92,91,6, + 94,93,65,30,88,89,8,98,97,100, 99,101,113,112,111,110,109,108,107,106, - 105,104,67,117,102,162,185,185,185,185, - 167,222,128,128,266,267,251,268,244,269, - 68,270,271,10,129,60,60,128,159,128, - 60,3,220,219,136,10,129,60,295,3, - 189,4,36,5,129,36,222,162,148,148, - 146,146,146,150,150,150,150,149,149,153, - 151,151,156,154,157,162,158,65,65,65, - 65,189,177,290,134,293,215,129,6,50, - 167,234,129,127,126,125,50,129,129,184, - 167,290,215,217,160,227,128,3,129,167, - 202,3,296,171,152,257,189,129,184,167, - 72,3,3,3,3,127,126,126,66,167, - 128,128,127,126,128,184,128,50,128,184, - 167,36,231,232,147,233,128,167,36,185, - 128,128,4,223,5,36,162,162,162,162, - 3,3,6,183,303,129,168,228,192,48, - 170,305,128,128,72,189,128,272,125,273, - 189,159,67,227,201,187,181,177,3,128, - 66,231,189,159,259,262,60,178,4,127, - 222,222,128,167,36,275,277,128,3,181, - 307,228,45,129,272,67,66,128,67,67, - 3,167,201,128,215,159,127,128,3,60, - 162,4,189,44,129,74,128,215,304,128, - 126,72,284,201,66,129,45,308,184,224, - 128,189,128,259,222,217,132,128,184,128, - 278,72,66,215,72,67,184,129,129,128, - 231,224,292,36,10,62,132,278,50,288, - 129,289,184,184,47,159,128,66,65,44, - 234,234,279,128,66,184,3,3,128,27, - 36,170,61,56,48,128,67,67,128,298, - 79,77,1,162,86,84,82,80,75,83, - 85,78,76,56,74,222,312,224,28,44, - 128,3,50,123,126,125,56,292,280,119, - 9,217,72,3,3,3,193,3,125,162, - 125,179,66,128,128,50,65,265,201,276, - 28,128,50,50,67,129,65,3,239,171, - 239,299,226,147,75,239,128,128,3,67, - 66,159,230,229,128,128,129,184,62,95, - 311,171,159,201,159,226,163,128,3,159, - 280,230,152,50,230,230,184,274,234,159, - 159,128,67,193,163,226,265,162,128,274, - 67,122,226,163,159,302,159,226,66,159 + 105,104,67,117,102,161,184,184,184,184, + 166,221,128,128,265,266,250,267,243,268, + 68,269,270,10,129,56,56,128,157,128, + 56,3,219,218,136,127,126,10,129,56, + 294,3,188,4,37,5,129,37,221,161, + 147,147,145,145,145,149,149,149,149,148, + 148,152,150,150,154,153,155,161,156,65, + 65,65,65,188,176,289,134,292,214,129, + 6,59,166,233,129,127,126,125,59,129, + 129,183,166,289,214,216,159,226,128,3, + 129,166,201,3,295,170,151,256,188,129, + 126,183,166,72,3,3,3,3,127,126, + 66,166,128,128,127,126,128,183,128,59, + 128,183,166,37,230,231,146,232,128,166, + 37,184,128,128,4,224,5,37,161,161, + 161,161,3,3,6,182,302,129,167,227, + 191,58,169,304,128,128,72,188,128,271, + 125,272,188,157,67,226,200,186,180,176, + 3,128,66,230,188,157,258,261,56,177, + 4,125,127,221,221,128,166,37,274,276, + 128,3,180,306,227,45,129,271,67,66, + 128,67,67,3,166,200,128,214,157,127, + 128,3,56,161,4,188,30,129,75,128, + 214,303,128,126,72,283,200,66,129,45, + 307,183,222,128,188,128,258,221,216,132, + 128,183,128,277,72,66,214,72,67,183, + 129,129,128,230,222,291,37,10,62,132, + 277,59,287,129,288,183,183,57,157,128, + 66,65,30,233,233,278,128,66,183,3, + 3,128,14,37,169,61,60,58,128,67, + 67,128,297,80,78,1,161,87,85,83, + 81,76,84,86,79,77,60,75,221,311, + 222,28,30,128,3,59,123,126,125,60, + 291,279,119,9,216,72,3,3,3,192, + 3,125,161,125,178,66,128,128,59,65, + 264,200,275,28,128,59,59,67,129,65, + 3,238,170,238,298,225,146,76,238,128, + 128,3,67,66,157,229,228,128,128,129, + 183,62,95,310,170,157,200,157,225,162, + 128,3,157,279,229,151,59,229,229,183, + 273,233,157,157,128,67,192,162,225,264, + 161,128,273,67,122,225,162,157,301,157, + 225,66,157 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2385,13 +2372,13 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab "identifier_name", "operator_function_id_name", "template_id_name", - "class_name", "nested_name_specifier", "class_or_namespace_name", "nested_name_specifier_with_tem" + "plate", "class_or_namespace_name_with_t" + "emplate", + "class_name", "postfix_expression", "simple_type_specifier", "pseudo_destructor_name", @@ -2513,20 +2500,20 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 520, + NUM_STATES = 523, NT_OFFSET = 124, - LA_STATE_OFFSET = 5654, + LA_STATE_OFFSET = 5542, MAX_LA = 2147483647, - NUM_RULES = 524, - NUM_NONTERMINALS = 194, - NUM_SYMBOLS = 318, + NUM_RULES = 525, + NUM_NONTERMINALS = 193, + NUM_SYMBOLS = 317, SEGMENT_SIZE = 8192, - START_STATE = 2921, + START_STATE = 2987, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 121, EOLT_SYMBOL = 121, - ACCEPT_ACTION = 4754, - ERROR_ACTION = 5130; + ACCEPT_ACTION = 4636, + ERROR_ACTION = 5017; 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 61d4fb724df..87a2c82bc73 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 @@ -16,85 +16,85 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp; public interface CPPSizeofExpressionParsersym { public final static int TK_asm = 61, - TK_auto = 51, - TK_bool = 13, - TK_break = 76, - TK_case = 77, + TK_auto = 48, + TK_bool = 15, + TK_break = 77, + TK_case = 78, TK_catch = 119, - TK_char = 14, + TK_char = 16, TK_class = 62, TK_const = 46, - TK_const_cast = 30, - TK_continue = 78, - TK_default = 79, + TK_const_cast = 31, + TK_continue = 79, + TK_default = 80, TK_delete = 63, - TK_do = 80, - TK_double = 15, - TK_dynamic_cast = 31, + TK_do = 81, + TK_double = 17, + TK_dynamic_cast = 32, TK_else = 122, TK_enum = 68, - TK_explicit = 52, - TK_export = 81, - TK_extern = 27, - TK_false = 32, - TK_float = 16, - TK_for = 82, - TK_friend = 53, - TK_goto = 83, - TK_if = 84, - TK_inline = 54, - TK_int = 17, - TK_long = 18, - TK_mutable = 55, - TK_namespace = 56, + TK_explicit = 49, + TK_export = 82, + TK_extern = 14, + TK_false = 33, + TK_float = 18, + TK_for = 83, + TK_friend = 50, + TK_goto = 84, + TK_if = 85, + TK_inline = 51, + TK_int = 19, + TK_long = 20, + TK_mutable = 52, + TK_namespace = 60, TK_new = 64, TK_operator = 7, TK_private = 114, TK_protected = 115, TK_public = 116, - TK_register = 57, - TK_reinterpret_cast = 33, - TK_return = 85, - TK_short = 19, - TK_signed = 20, - TK_sizeof = 34, - TK_static = 58, - TK_static_cast = 35, + TK_register = 53, + TK_reinterpret_cast = 34, + TK_return = 86, + TK_short = 21, + TK_signed = 22, + TK_sizeof = 35, + TK_static = 54, + TK_static_cast = 36, TK_struct = 69, - TK_switch = 86, - TK_template = 36, - TK_this = 37, - TK_throw = 47, - TK_try = 74, - TK_true = 38, - TK_typedef = 59, - TK_typeid = 39, + TK_switch = 87, + TK_template = 37, + TK_this = 38, + TK_throw = 57, + TK_try = 75, + TK_true = 39, + TK_typedef = 55, + TK_typeid = 40, TK_typename = 10, TK_union = 70, - TK_unsigned = 21, - TK_using = 48, + TK_unsigned = 23, + TK_using = 58, TK_virtual = 45, - TK_void = 22, - TK_volatile = 49, - TK_wchar_t = 23, - TK_while = 75, - TK_integer = 40, - TK_floating = 41, - TK_charconst = 42, + TK_void = 24, + TK_volatile = 47, + TK_wchar_t = 25, + TK_while = 76, + TK_integer = 41, + TK_floating = 42, + TK_charconst = 43, TK_stringlit = 28, TK_identifier = 1, TK_Completion = 2, TK_EndOfCompletion = 9, TK_Invalid = 124, - TK_LeftBracket = 60, + TK_LeftBracket = 56, TK_LeftParen = 3, - TK_LeftBrace = 50, + TK_LeftBrace = 59, TK_Dot = 120, TK_DotStar = 96, TK_Arrow = 103, TK_ArrowStar = 90, - TK_PlusPlus = 24, - TK_MinusMinus = 25, + TK_PlusPlus = 26, + TK_MinusMinus = 27, TK_And = 8, TK_Star = 6, TK_Plus = 11, @@ -105,7 +105,7 @@ public interface CPPSizeofExpressionParsersym { TK_Percent = 92, TK_RightShift = 88, TK_LeftShift = 89, - TK_LT = 44, + TK_LT = 30, TK_GT = 65, TK_LE = 93, TK_GE = 94, @@ -131,11 +131,11 @@ public interface CPPSizeofExpressionParsersym { TK_CaretAssign = 112, TK_OrAssign = 113, TK_Comma = 66, - TK_zero = 43, + TK_zero = 44, TK_RightBracket = 118, - TK_RightParen = 87, + TK_RightParen = 74, TK_RightBrace = 71, - TK_SemiColon = 26, + TK_SemiColon = 13, TK_ERROR_TOKEN = 73, TK_original_namespace_name = 123, TK_EOF_TOKEN = 121; @@ -154,6 +154,8 @@ public interface CPPSizeofExpressionParsersym { "typename", "Plus", "Minus", + "SemiColon", + "extern", "bool", "char", "double", @@ -167,10 +169,9 @@ public interface CPPSizeofExpressionParsersym { "wchar_t", "PlusPlus", "MinusMinus", - "SemiColon", - "extern", "stringlit", "Bang", + "LT", "const_cast", "dynamic_cast", "false", @@ -185,23 +186,22 @@ public interface CPPSizeofExpressionParsersym { "floating", "charconst", "zero", - "LT", "virtual", "const", - "throw", - "using", "volatile", - "LeftBrace", "auto", "explicit", "friend", "inline", "mutable", - "namespace", "register", "static", "typedef", "LeftBracket", + "throw", + "using", + "LeftBrace", + "namespace", "asm", "class", "delete", @@ -215,6 +215,7 @@ public interface CPPSizeofExpressionParsersym { "RightBrace", "Colon", "ERROR_TOKEN", + "RightParen", "try", "while", "break", @@ -228,7 +229,6 @@ public interface CPPSizeofExpressionParsersym { "if", "return", "switch", - "RightParen", "RightShift", "LeftShift", "ArrowStar",