// (see accompanying GPPGcopyright.rtf) // GPPG version 1.3.6 // Machine: DESKTOP-G8V08V4 // DateTime: 24.06.2019 15:32:41 // UserName: ????????? // Input file // options: no-lines gplex using System; using System.Collections.Generic; using System.Globalization; using System.Text; using QUT.Gppg; using PascalABCCompiler.SyntaxTree; using PascalABCSavParser; using PascalABCCompiler.ParserTools; using PascalABCCompiler.Errors; using System.Linq; using SyntaxVisitors; namespace GPPGParserScanner { public enum Tokens { error=1,EOF=2,tkDirectiveName=3,tkAmpersend=4,tkColon=5,tkDotDot=6, tkPoint=7,tkRoundOpen=8,tkRoundClose=9,tkSemiColon=10,tkSquareOpen=11,tkSquareClose=12, tkQuestion=13,tkUnderscore=14,tkQuestionPoint=15,tkDoubleQuestion=16,tkQuestionSquareOpen=17,tkSizeOf=18, tkTypeOf=19,tkWhere=20,tkArray=21,tkCase=22,tkClass=23,tkAuto=24, tkStatic=25,tkConst=26,tkConstructor=27,tkDestructor=28,tkElse=29,tkExcept=30, tkFile=31,tkFor=32,tkForeach=33,tkFunction=34,tkMatch=35,tkWhen=36, tkIf=37,tkImplementation=38,tkInherited=39,tkInterface=40,tkProcedure=41,tkOperator=42, tkProperty=43,tkRaise=44,tkRecord=45,tkSet=46,tkType=47,tkThen=48, tkUses=49,tkVar=50,tkWhile=51,tkWith=52,tkNil=53,tkGoto=54, tkOf=55,tkLabel=56,tkLock=57,tkProgram=58,tkEvent=59,tkDefault=60, tkTemplate=61,tkPacked=62,tkExports=63,tkResourceString=64,tkThreadvar=65,tkSealed=66, tkPartial=67,tkTo=68,tkDownto=69,tkLoop=70,tkSequence=71,tkYield=72, tkNew=73,tkOn=74,tkName=75,tkPrivate=76,tkProtected=77,tkPublic=78, tkInternal=79,tkRead=80,tkWrite=81,tkParseModeExpression=82,tkParseModeStatement=83,tkParseModeType=84, tkBegin=85,tkEnd=86,tkAsmBody=87,tkILCode=88,tkError=89,INVISIBLE=90, tkRepeat=91,tkUntil=92,tkDo=93,tkComma=94,tkFinally=95,tkTry=96, tkInitialization=97,tkFinalization=98,tkUnit=99,tkLibrary=100,tkExternal=101,tkParams=102, tkNamespace=103,tkAssign=104,tkPlusEqual=105,tkMinusEqual=106,tkMultEqual=107,tkDivEqual=108, tkMinus=109,tkPlus=110,tkSlash=111,tkStar=112,tkStarStar=113,tkEqual=114, tkGreater=115,tkGreaterEqual=116,tkLower=117,tkLowerEqual=118,tkNotEqual=119,tkCSharpStyleOr=120, tkArrow=121,tkOr=122,tkXor=123,tkAnd=124,tkDiv=125,tkMod=126, tkShl=127,tkShr=128,tkNot=129,tkAs=130,tkIn=131,tkIs=132, tkImplicit=133,tkExplicit=134,tkAddressOf=135,tkDeref=136,tkIdentifier=137,tkStringLiteral=138, tkFormatStringLiteral=139,tkAsciiChar=140,tkAbstract=141,tkForward=142,tkOverload=143,tkReintroduce=144, tkOverride=145,tkVirtual=146,tkExtensionMethod=147,tkInteger=148,tkFloat=149,tkHex=150}; // Abstract base class for GPLEX scanners public abstract class ScanBase : AbstractScanner { private LexLocation __yylloc = new LexLocation(); public override LexLocation yylloc { get { return __yylloc; } set { __yylloc = value; } } protected virtual bool yywrap() { return true; } } public partial class GPPGParser: ShiftReduceParser { // Verbatim content from ABCPascal.y // ��� ���������� ����������� � ����� GPPGParser, �������������� ����� ������, ������������ �������� gppg public syntax_tree_node root; // �������� ���� ��������������� ������ public List errors; public string current_file_name; public int max_errors = 10; public PT parsertools; public List CompilerDirectives; public ParserLambdaHelper lambdaHelper = new ParserLambdaHelper(); public GPPGParser(AbstractScanner scanner) : base(scanner) { } // End verbatim content from ABCPascal.y #pragma warning disable 649 private static Dictionary aliasses; #pragma warning restore 649 private static Rule[] rules = new Rule[943]; private static State[] states = new State[1556]; private static string[] nonTerms = new string[] { "parse_goal", "unit_key_word", "class_or_static", "assignment", "optional_array_initializer", "attribute_declarations", "ot_visibility_specifier", "one_attribute", "attribute_variable", "const_factor", "const_variable_2", "const_term", "const_variable", "const_pattern_variable", "literal_or_number", "unsigned_number", "variable_or_literal_or_number", "program_block", "optional_var", "class_attribute", "class_attributes", "class_attributes1", "member_list_section", "optional_component_list_seq_end", "const_decl", "only_const_decl", "const_decl_sect", "object_type", "record_type", "member_list", "method_decl_list", "field_or_const_definition_list", "case_stmt", "case_list", "program_decl_sect_list", "int_decl_sect_list1", "inclass_decl_sect_list1", "interface_decl_sect_list", "decl_sect_list", "decl_sect_list1", "inclass_decl_sect_list", "field_or_const_definition", "abc_decl_sect", "decl_sect", "int_decl_sect", "type_decl", "simple_type_decl", "simple_field_or_const_definition", "res_str_decl_sect", "method_decl_withattr", "method_or_property_decl", "property_definition", "fp_sect", "default_expr", "tuple", "expr_as_stmt", "exception_block", "external_block", "exception_handler", "exception_handler_list", "exception_identifier", "typed_const_list1", "typed_const_list", "optional_expr_list", "elem_list", "optional_expr_list_with_bracket", "expr_list", "const_elem_list1", "case_label_list", "const_elem_list", "optional_const_func_expr_list", "elem_list1", "enumeration_id", "expr_l1_list", "enumeration_id_list", "const_simple_expr", "term", "simple_term", "typed_const", "typed_const_plus", "typed_var_init_expression", "expr", "expr_with_func_decl_lambda", "const_expr", "elem", "range_expr", "const_elem", "array_const", "factor", "relop_expr", "expr_dq", "expr_l1", "expr_l1_func_decl_lambda", "simple_expr", "range_term", "range_factor", "external_directive_ident", "init_const_expr", "case_label", "variable", "var_reference", "optional_read_expr", "simple_expr_or_nothing", "var_question_point", "for_cycle_type", "format_expr", "format_const_expr", "const_expr_or_nothing", "foreach_stmt", "for_stmt", "loop_stmt", "yield_stmt", "yield_sequence_stmt", "fp_list", "fp_sect_list", "file_type", "sequence_type", "var_address", "goto_stmt", "func_name_ident", "param_name", "const_field_name", "func_name_with_template_args", "identifier_or_keyword", "unit_name", "exception_variable", "const_name", "func_meth_name_ident", "label_name", "type_decl_identifier", "template_identifier_with_equal", "program_param", "identifier", "identifier_keyword_operatorname", "func_class_name_ident", "visibility_specifier", "property_specifier_directives", "non_reserved", "if_stmt", "initialization_part", "template_arguments", "label_list", "ident_or_keyword_pointseparator_list", "ident_list", "param_name_list", "inherited_message", "implementation_part", "interface_part", "abc_interface_part", "simple_type_list", "literal", "one_literal", "literal_list", "label_decl_sect", "lock_stmt", "func_name", "proc_name", "optional_proc_name", "qualified_identifier", "new_expr", "allowable_expr_as_stmt", "parts", "inclass_block", "block", "proc_func_external_block", "exception_class_type_identifier", "simple_type_identifier", "base_class_name", "base_classes_names_list", "optional_base_classes", "one_compiler_directive", "optional_head_compiler_directives", "head_compiler_directives", "program_heading_2", "optional_tk_point", "program_param_list", "optional_semicolon", "operator_name_ident", "const_relop", "const_addop", "assign_operator", "const_mulop", "relop", "addop", "mulop", "sign", "overload_operator", "typecast_op", "property_specifiers", "write_property_specifiers", "read_property_specifiers", "array_defaultproperty", "meth_modificators", "optional_method_modificators", "optional_method_modificators1", "meth_modificator", "property_modificator", "optional_property_initialization", "proc_call", "proc_func_constr_destr_decl", "proc_func_decl", "inclass_proc_func_decl", "inclass_proc_func_decl_noclass", "constr_destr_decl", "inclass_constr_destr_decl", "method_decl", "proc_func_constr_destr_decl_with_attr", "proc_func_decl_noclass", "method_header", "proc_type_decl", "procedural_type_kind", "proc_header", "procedural_type", "constr_destr_header", "proc_func_header", "func_header", "method_procfunc_header", "int_func_header", "int_proc_header", "property_interface", "program_file", "program_header", "parameter_decl", "parameter_decl_list", "property_parameter_list", "const_set", "question_expr", "question_constexpr", "record_const", "const_field_list_1", "const_field_list", "const_field", "repeat_stmt", "raise_stmt", "pointer_type", "attribute_declaration", "one_or_some_attribute", "stmt_list", "else_case", "exception_block_else_branch", "compound_stmt", "string_type", "sizeof_expr", "simple_property_definition", "stmt_or_expression", "unlabelled_stmt", "stmt", "case_item", "set_type", "as_is_expr", "as_is_constexpr", "is_type_expr", "as_expr", "power_expr", "power_constexpr", "unsized_array_type", "simple_type_or_", "simple_type", "simple_type_question", "foreach_stmt_ident_dype_opt", "fptype", "type_ref", "fptype_noproctype", "array_type", "template_param", "template_empty_param", "structured_type", "unpacked_structured_type", "empty_template_type_reference", "simple_or_template_type_reference", "type_ref_or_secific", "for_stmt_decl_or_assign", "type_decl_type", "type_ref_and_secific_list", "type_decl_sect", "try_handler", "class_or_interface_keyword", "optional_tk_do", "keyword", "reserved_keyword", "typeof_expr", "simple_fp_sect", "template_param_list", "template_empty_param_list", "template_type_params", "template_type_empty_params", "template_type", "try_stmt", "uses_clause", "used_units_list", "unit_file", "used_unit_name", "unit_header", "var_decl_sect", "var_decl", "var_decl_part", "field_definition", "var_decl_with_assign_var_tuple", "var_stmt", "where_part", "where_part_list", "optional_where_section", "while_stmt", "with_stmt", "variable_as_type", "dotted_identifier", "func_decl_lambda", "expl_func_decl_lambda", "lambda_type_ref", "lambda_type_ref_noproctype", "full_lambda_fp_list", "lambda_simple_fp_sect", "lambda_function_body", "lambda_procedure_body", "common_lambda_body", "optional_full_lambda_fp_list", "field_in_unnamed_object", "list_fields_in_unnamed_object", "func_class_name_ident_list", "rem_lambda", "variable_list", "var_ident_list", "tkAssignOrEqual", "pattern", "pattern_optional_var", "const_pattern", "collection_pattern", "tuple_pattern", "collection_pattern_list_item", "tuple_pattern_item", "collection_pattern_var_item", "match_with", "pattern_case", "pattern_cases", "pattern_out_param", "pattern_out_param_optional_var", "const_pattern_expr_list", "pattern_out_param_list", "pattern_out_param_list_optional_var", "collection_pattern_expr_list", "tuple_pattern_item_list", "const_pattern_expression", "$accept", }; static GPPGParser() { states[0] = new State(new int[]{58,1463,11,650,82,1538,84,1543,83,1550,3,-25,49,-25,85,-25,56,-25,26,-25,64,-25,47,-25,50,-25,59,-25,41,-25,34,-25,25,-25,23,-25,27,-25,28,-25,99,-200,100,-200,103,-200},new int[]{-1,1,-221,3,-222,4,-291,1475,-6,1476,-236,994,-162,1537}); states[1] = new State(new int[]{2,2}); states[2] = new State(-1); states[3] = new State(-2); states[4] = new State(new int[]{3,1459,49,-12,85,-12,56,-12,26,-12,64,-12,47,-12,50,-12,59,-12,11,-12,41,-12,34,-12,25,-12,23,-12,27,-12,28,-12},new int[]{-172,5,-173,1457,-171,1462}); states[5] = new State(-36,new int[]{-289,6}); states[6] = new State(new int[]{49,14,56,-60,26,-60,64,-60,47,-60,50,-60,59,-60,11,-60,41,-60,34,-60,25,-60,23,-60,27,-60,28,-60,85,-60},new int[]{-18,7,-35,114,-39,1394,-40,1395}); states[7] = new State(new int[]{7,9,10,10,5,11,94,12,6,13,2,-24},new int[]{-175,8}); states[8] = new State(-18); states[9] = new State(-19); states[10] = new State(-20); states[11] = new State(-21); states[12] = new State(-22); states[13] = new State(-23); states[14] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,79,32,78,33,77,34,76,35,66,36,61,37,122,38,19,39,18,40,60,41,20,42,123,43,124,44,125,45,126,46,127,47,128,48,129,49,130,50,131,51,132,52,21,53,71,54,85,55,22,56,23,57,26,58,27,59,28,60,69,61,93,62,29,63,30,64,31,65,24,66,98,67,95,68,32,69,33,70,34,71,37,72,38,73,39,74,97,75,40,76,41,77,43,78,44,79,45,80,91,81,46,82,96,83,47,84,25,85,48,86,68,87,92,88,49,89,50,90,51,91,52,92,53,93,54,94,55,95,56,96,58,97,99,98,100,99,103,100,101,101,102,102,59,103,72,104,35,105,36,106,42,108,86,109},new int[]{-290,15,-292,113,-143,19,-124,112,-133,22,-137,24,-138,27,-279,30,-136,31,-280,107}); states[15] = new State(new int[]{10,16,94,17}); states[16] = new State(-37); states[17] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,79,32,78,33,77,34,76,35,66,36,61,37,122,38,19,39,18,40,60,41,20,42,123,43,124,44,125,45,126,46,127,47,128,48,129,49,130,50,131,51,132,52,21,53,71,54,85,55,22,56,23,57,26,58,27,59,28,60,69,61,93,62,29,63,30,64,31,65,24,66,98,67,95,68,32,69,33,70,34,71,37,72,38,73,39,74,97,75,40,76,41,77,43,78,44,79,45,80,91,81,46,82,96,83,47,84,25,85,48,86,68,87,92,88,49,89,50,90,51,91,52,92,53,93,54,94,55,95,56,96,58,97,99,98,100,99,103,100,101,101,102,102,59,103,72,104,35,105,36,106,42,108,86,109},new int[]{-292,18,-143,19,-124,112,-133,22,-137,24,-138,27,-279,30,-136,31,-280,107}); states[18] = new State(-39); states[19] = new State(new int[]{7,20,131,110,10,-40,94,-40}); states[20] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,79,32,78,33,77,34,76,35,66,36,61,37,122,38,19,39,18,40,60,41,20,42,123,43,124,44,125,45,126,46,127,47,128,48,129,49,130,50,131,51,132,52,21,53,71,54,85,55,22,56,23,57,26,58,27,59,28,60,69,61,93,62,29,63,30,64,31,65,24,66,98,67,95,68,32,69,33,70,34,71,37,72,38,73,39,74,97,75,40,76,41,77,43,78,44,79,45,80,91,81,46,82,96,83,47,84,25,85,48,86,68,87,92,88,49,89,50,90,51,91,52,92,53,93,54,94,55,95,56,96,58,97,99,98,100,99,103,100,101,101,102,102,59,103,72,104,35,105,36,106,42,108,86,109},new int[]{-124,21,-133,22,-137,24,-138,27,-279,30,-136,31,-280,107}); states[21] = new State(-35); states[22] = new State(-778); states[23] = new State(-775); states[24] = new State(-776); states[25] = new State(-793); states[26] = new State(-794); states[27] = new State(-777); states[28] = new State(-795); states[29] = new State(-796); states[30] = new State(-779); states[31] = new State(-801); states[32] = new State(-797); states[33] = new State(-798); states[34] = new State(-799); states[35] = new State(-800); states[36] = new State(-802); states[37] = new State(-803); states[38] = new State(-804); states[39] = new State(-805); states[40] = new State(-806); states[41] = new State(-807); states[42] = new State(-808); states[43] = new State(-809); states[44] = new State(-810); states[45] = new State(-811); states[46] = new State(-812); states[47] = new State(-813); states[48] = new State(-814); states[49] = new State(-815); states[50] = new State(-816); states[51] = new State(-817); states[52] = new State(-818); states[53] = new State(-819); states[54] = new State(-820); states[55] = new State(-821); states[56] = new State(-822); states[57] = new State(-823); states[58] = new State(-824); states[59] = new State(-825); states[60] = new State(-826); states[61] = new State(-827); states[62] = new State(-828); states[63] = new State(-829); states[64] = new State(-830); states[65] = new State(-831); states[66] = new State(-832); states[67] = new State(-833); states[68] = new State(-834); states[69] = new State(-835); states[70] = new State(-836); states[71] = new State(-837); states[72] = new State(-838); states[73] = new State(-839); states[74] = new State(-840); states[75] = new State(-841); states[76] = new State(-842); states[77] = new State(-843); states[78] = new State(-844); states[79] = new State(-845); states[80] = new State(-846); states[81] = new State(-847); states[82] = new State(-848); states[83] = new State(-849); states[84] = new State(-850); states[85] = new State(-851); states[86] = new State(-852); states[87] = new State(-853); states[88] = new State(-854); states[89] = new State(-855); states[90] = new State(-856); states[91] = new State(-857); states[92] = new State(-858); states[93] = new State(-859); states[94] = new State(-860); states[95] = new State(-861); states[96] = new State(-862); states[97] = new State(-863); states[98] = new State(-864); states[99] = new State(-865); states[100] = new State(-866); states[101] = new State(-867); states[102] = new State(-868); states[103] = new State(-869); states[104] = new State(-870); states[105] = new State(-871); states[106] = new State(-872); states[107] = new State(-780); states[108] = new State(-873); states[109] = new State(-874); states[110] = new State(new int[]{138,111}); states[111] = new State(-41); states[112] = new State(-34); states[113] = new State(-38); states[114] = new State(new int[]{85,116},new int[]{-241,115}); states[115] = new State(-32); states[116] = new State(new int[]{135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,703,8,704,18,247,19,252,138,149,140,150,139,152,148,740,150,155,149,156,54,719,85,116,37,697,22,726,91,742,51,747,32,752,52,762,96,768,44,775,33,778,50,786,57,819,72,824,70,811,35,831,86,-479,10,-479},new int[]{-238,117,-247,738,-246,121,-4,122,-101,123,-118,441,-100,453,-133,739,-137,24,-138,27,-178,466,-243,512,-281,513,-15,687,-151,146,-153,147,-152,151,-16,153,-17,514,-55,688,-104,525,-199,717,-119,718,-241,723,-139,724,-33,725,-233,741,-303,746,-110,751,-304,761,-146,766,-288,767,-234,774,-109,777,-299,785,-56,815,-161,816,-160,817,-155,818,-112,823,-113,828,-111,829,-332,830,-129,926}); states[117] = new State(new int[]{86,118,10,119}); states[118] = new State(-515); states[119] = new State(new int[]{135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,703,8,704,18,247,19,252,138,149,140,150,139,152,148,740,150,155,149,156,54,719,85,116,37,697,22,726,91,742,51,747,32,752,52,762,96,768,44,775,33,778,50,786,57,819,72,824,70,811,35,831,86,-479,10,-479,92,-479,95,-479,30,-479,98,-479},new int[]{-247,120,-246,121,-4,122,-101,123,-118,441,-100,453,-133,739,-137,24,-138,27,-178,466,-243,512,-281,513,-15,687,-151,146,-153,147,-152,151,-16,153,-17,514,-55,688,-104,525,-199,717,-119,718,-241,723,-139,724,-33,725,-233,741,-303,746,-110,751,-304,761,-146,766,-288,767,-234,774,-109,777,-299,785,-56,815,-161,816,-160,817,-155,818,-112,823,-113,828,-111,829,-332,830,-129,926}); states[120] = new State(-517); states[121] = new State(-477); states[122] = new State(-480); states[123] = new State(new int[]{104,491,105,492,106,493,107,494,108,495,86,-513,10,-513,92,-513,95,-513,30,-513,98,-513,94,-513,12,-513,9,-513,93,-513,29,-513,81,-513,80,-513,2,-513,79,-513,78,-513,77,-513,76,-513},new int[]{-181,124}); states[124] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,499,18,247,19,252,5,624,34,664,41,669},new int[]{-83,125,-82,126,-92,127,-91,132,-90,290,-94,298,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,460,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622,-106,623,-307,662,-308,663}); states[125] = new State(-507); states[126] = new State(-581); states[127] = new State(new int[]{13,128,86,-583,10,-583,92,-583,95,-583,30,-583,98,-583,94,-583,12,-583,9,-583,93,-583,29,-583,81,-583,80,-583,2,-583,79,-583,78,-583,77,-583,76,-583,6,-583}); states[128] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,532,18,247,19,252},new int[]{-92,129,-91,132,-90,290,-94,465,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622}); states[129] = new State(new int[]{5,130,13,128}); states[130] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,532,18,247,19,252},new int[]{-92,131,-91,132,-90,290,-94,465,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622}); states[131] = new State(new int[]{13,128,86,-594,10,-594,92,-594,95,-594,30,-594,98,-594,94,-594,12,-594,9,-594,93,-594,29,-594,81,-594,80,-594,2,-594,79,-594,78,-594,77,-594,76,-594,5,-594,6,-594,48,-594,55,-594,135,-594,137,-594,75,-594,73,-594,42,-594,39,-594,8,-594,18,-594,19,-594,138,-594,140,-594,139,-594,148,-594,150,-594,149,-594,54,-594,85,-594,37,-594,22,-594,91,-594,51,-594,32,-594,52,-594,96,-594,44,-594,33,-594,50,-594,57,-594,72,-594,70,-594,35,-594,68,-594,69,-594}); states[132] = new State(new int[]{16,133,13,-585,86,-585,10,-585,92,-585,95,-585,30,-585,98,-585,94,-585,12,-585,9,-585,93,-585,29,-585,81,-585,80,-585,2,-585,79,-585,78,-585,77,-585,76,-585,5,-585,6,-585,48,-585,55,-585,135,-585,137,-585,75,-585,73,-585,42,-585,39,-585,8,-585,18,-585,19,-585,138,-585,140,-585,139,-585,148,-585,150,-585,149,-585,54,-585,85,-585,37,-585,22,-585,91,-585,51,-585,32,-585,52,-585,96,-585,44,-585,33,-585,50,-585,57,-585,72,-585,70,-585,35,-585,68,-585,69,-585}); states[133] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,532,18,247,19,252},new int[]{-90,134,-94,465,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621}); states[134] = new State(new int[]{114,291,119,292,117,293,115,294,118,295,116,296,131,297,16,-590,13,-590,86,-590,10,-590,92,-590,95,-590,30,-590,98,-590,94,-590,12,-590,9,-590,93,-590,29,-590,81,-590,80,-590,2,-590,79,-590,78,-590,77,-590,76,-590,5,-590,6,-590,48,-590,55,-590,135,-590,137,-590,75,-590,73,-590,42,-590,39,-590,8,-590,18,-590,19,-590,138,-590,140,-590,139,-590,148,-590,150,-590,149,-590,54,-590,85,-590,37,-590,22,-590,91,-590,51,-590,32,-590,52,-590,96,-590,44,-590,33,-590,50,-590,57,-590,72,-590,70,-590,35,-590,68,-590,69,-590},new int[]{-183,135}); states[135] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,532,18,247,19,252},new int[]{-94,136,-77,308,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,628,-253,621}); states[136] = new State(new int[]{110,303,109,304,122,305,123,306,120,307,114,-612,119,-612,117,-612,115,-612,118,-612,116,-612,131,-612,16,-612,13,-612,86,-612,10,-612,92,-612,95,-612,30,-612,98,-612,94,-612,12,-612,9,-612,93,-612,29,-612,81,-612,80,-612,2,-612,79,-612,78,-612,77,-612,76,-612,5,-612,6,-612,48,-612,55,-612,135,-612,137,-612,75,-612,73,-612,42,-612,39,-612,8,-612,18,-612,19,-612,138,-612,140,-612,139,-612,148,-612,150,-612,149,-612,54,-612,85,-612,37,-612,22,-612,91,-612,51,-612,32,-612,52,-612,96,-612,44,-612,33,-612,50,-612,57,-612,72,-612,70,-612,35,-612,68,-612,69,-612},new int[]{-184,137}); states[137] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,532,18,247,19,252},new int[]{-77,138,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,628,-253,621}); states[138] = new State(new int[]{132,309,130,311,112,313,111,314,125,315,126,316,127,317,128,318,124,319,5,-686,110,-686,109,-686,122,-686,123,-686,120,-686,114,-686,119,-686,117,-686,115,-686,118,-686,116,-686,131,-686,16,-686,13,-686,86,-686,10,-686,92,-686,95,-686,30,-686,98,-686,94,-686,12,-686,9,-686,93,-686,29,-686,81,-686,80,-686,2,-686,79,-686,78,-686,77,-686,76,-686,6,-686,48,-686,55,-686,135,-686,137,-686,75,-686,73,-686,42,-686,39,-686,8,-686,18,-686,19,-686,138,-686,140,-686,139,-686,148,-686,150,-686,149,-686,54,-686,85,-686,37,-686,22,-686,91,-686,51,-686,32,-686,52,-686,96,-686,44,-686,33,-686,50,-686,57,-686,72,-686,70,-686,35,-686,68,-686,69,-686},new int[]{-185,139}); states[139] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,29,42,467,39,497,8,532,18,247,19,252},new int[]{-89,140,-254,141,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-78,528}); states[140] = new State(new int[]{132,-703,130,-703,112,-703,111,-703,125,-703,126,-703,127,-703,128,-703,124,-703,5,-703,110,-703,109,-703,122,-703,123,-703,120,-703,114,-703,119,-703,117,-703,115,-703,118,-703,116,-703,131,-703,16,-703,13,-703,86,-703,10,-703,92,-703,95,-703,30,-703,98,-703,94,-703,12,-703,9,-703,93,-703,29,-703,81,-703,80,-703,2,-703,79,-703,78,-703,77,-703,76,-703,6,-703,48,-703,55,-703,135,-703,137,-703,75,-703,73,-703,42,-703,39,-703,8,-703,18,-703,19,-703,138,-703,140,-703,139,-703,148,-703,150,-703,149,-703,54,-703,85,-703,37,-703,22,-703,91,-703,51,-703,32,-703,52,-703,96,-703,44,-703,33,-703,50,-703,57,-703,72,-703,70,-703,35,-703,68,-703,69,-703,113,-698}); states[141] = new State(-704); states[142] = new State(-715); states[143] = new State(new int[]{7,144,132,-716,130,-716,112,-716,111,-716,125,-716,126,-716,127,-716,128,-716,124,-716,5,-716,110,-716,109,-716,122,-716,123,-716,120,-716,114,-716,119,-716,117,-716,115,-716,118,-716,116,-716,131,-716,16,-716,13,-716,86,-716,10,-716,92,-716,95,-716,30,-716,98,-716,94,-716,12,-716,9,-716,93,-716,29,-716,81,-716,80,-716,2,-716,79,-716,78,-716,77,-716,76,-716,113,-716,6,-716,48,-716,55,-716,135,-716,137,-716,75,-716,73,-716,42,-716,39,-716,8,-716,18,-716,19,-716,138,-716,140,-716,139,-716,148,-716,150,-716,149,-716,54,-716,85,-716,37,-716,22,-716,91,-716,51,-716,32,-716,52,-716,96,-716,44,-716,33,-716,50,-716,57,-716,72,-716,70,-716,35,-716,68,-716,69,-716,11,-739}); states[144] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,79,32,78,33,77,34,76,35,66,36,61,37,122,38,19,39,18,40,60,41,20,42,123,43,124,44,125,45,126,46,127,47,128,48,129,49,130,50,131,51,132,52,21,53,71,54,85,55,22,56,23,57,26,58,27,59,28,60,69,61,93,62,29,63,30,64,31,65,24,66,98,67,95,68,32,69,33,70,34,71,37,72,38,73,39,74,97,75,40,76,41,77,43,78,44,79,45,80,91,81,46,82,96,83,47,84,25,85,48,86,68,87,92,88,49,89,50,90,51,91,52,92,53,93,54,94,55,95,56,96,58,97,99,98,100,99,103,100,101,101,102,102,59,103,72,104,35,105,36,106,42,108,86,109},new int[]{-124,145,-133,22,-137,24,-138,27,-279,30,-136,31,-280,107}); states[145] = new State(-746); states[146] = new State(-723); states[147] = new State(new int[]{138,149,140,150,7,-764,11,-764,132,-764,130,-764,112,-764,111,-764,125,-764,126,-764,127,-764,128,-764,124,-764,5,-764,110,-764,109,-764,122,-764,123,-764,120,-764,114,-764,119,-764,117,-764,115,-764,118,-764,116,-764,131,-764,16,-764,13,-764,86,-764,10,-764,92,-764,95,-764,30,-764,98,-764,94,-764,12,-764,9,-764,93,-764,29,-764,81,-764,80,-764,2,-764,79,-764,78,-764,77,-764,76,-764,113,-764,6,-764,48,-764,55,-764,135,-764,137,-764,75,-764,73,-764,42,-764,39,-764,8,-764,18,-764,19,-764,139,-764,148,-764,150,-764,149,-764,54,-764,85,-764,37,-764,22,-764,91,-764,51,-764,32,-764,52,-764,96,-764,44,-764,33,-764,50,-764,57,-764,72,-764,70,-764,35,-764,68,-764,69,-764,121,-764,104,-764,4,-764,136,-764,36,-764},new int[]{-152,148}); states[148] = new State(-767); states[149] = new State(-762); states[150] = new State(-763); states[151] = new State(-766); states[152] = new State(-765); states[153] = new State(-724); states[154] = new State(-179); states[155] = new State(-180); states[156] = new State(-181); states[157] = new State(-717); states[158] = new State(new int[]{8,159}); states[159] = new State(new int[]{137,23,80,25,81,26,75,28,73,29},new int[]{-270,160,-167,162,-133,196,-137,24,-138,27}); states[160] = new State(new int[]{9,161}); states[161] = new State(-713); states[162] = new State(new int[]{7,163,4,166,117,168,9,-597,130,-597,132,-597,112,-597,111,-597,125,-597,126,-597,127,-597,128,-597,124,-597,110,-597,109,-597,122,-597,123,-597,114,-597,119,-597,115,-597,118,-597,116,-597,131,-597,13,-597,6,-597,94,-597,12,-597,5,-597,86,-597,10,-597,92,-597,95,-597,30,-597,98,-597,93,-597,29,-597,81,-597,80,-597,2,-597,79,-597,78,-597,77,-597,76,-597,11,-597,8,-597,120,-597,16,-597,48,-597,55,-597,135,-597,137,-597,75,-597,73,-597,42,-597,39,-597,18,-597,19,-597,138,-597,140,-597,139,-597,148,-597,150,-597,149,-597,54,-597,85,-597,37,-597,22,-597,91,-597,51,-597,32,-597,52,-597,96,-597,44,-597,33,-597,50,-597,57,-597,72,-597,70,-597,35,-597,68,-597,69,-597,113,-597},new int[]{-285,165}); states[163] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,79,32,78,33,77,34,76,35,66,36,61,37,122,38,19,39,18,40,60,41,20,42,123,43,124,44,125,45,126,46,127,47,128,48,129,49,130,50,131,51,132,52,21,53,71,54,85,55,22,56,23,57,26,58,27,59,28,60,69,61,93,62,29,63,30,64,31,65,24,66,98,67,95,68,32,69,33,70,34,71,37,72,38,73,39,74,97,75,40,76,41,77,43,78,44,79,45,80,91,81,46,82,96,83,47,84,25,85,48,86,68,87,92,88,49,89,50,90,51,91,52,92,53,93,54,94,55,95,56,96,58,97,99,98,100,99,103,100,101,101,102,102,59,103,72,104,35,105,36,106,42,108,86,109},new int[]{-124,164,-133,22,-137,24,-138,27,-279,30,-136,31,-280,107}); states[164] = new State(-249); states[165] = new State(-598); states[166] = new State(new int[]{117,168},new int[]{-285,167}); states[167] = new State(-599); states[168] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,148,154,150,155,149,156,110,377,109,378,138,149,140,150,139,152,8,388,21,405,45,413,46,550,31,554,71,558,62,561,41,566,34,594},new int[]{-283,169,-265,266,-258,173,-86,175,-95,267,-96,268,-167,269,-133,196,-137,24,-138,27,-16,383,-186,384,-151,387,-153,147,-152,151,-267,1332,-268,403,-264,404,-256,411,-29,412,-249,549,-116,553,-117,557,-213,1333,-211,564,-210,565,-287,1334}); states[169] = new State(new int[]{115,170,94,171}); states[170] = new State(-223); states[171] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,148,154,150,155,149,156,110,377,109,378,138,149,140,150,139,152,8,388,21,405,45,413,46,550,31,554,71,558,62,561,41,566,34,594},new int[]{-265,172,-258,173,-86,175,-95,267,-96,268,-167,269,-133,196,-137,24,-138,27,-16,383,-186,384,-151,387,-153,147,-152,151,-267,1332,-268,403,-264,404,-256,411,-29,412,-249,549,-116,553,-117,557,-213,1333,-211,564,-210,565,-287,1334}); states[172] = new State(-227); states[173] = new State(new int[]{13,174,115,-231,94,-231,114,-231,9,-231,10,-231,121,-231,104,-231,86,-231,92,-231,95,-231,30,-231,98,-231,12,-231,93,-231,29,-231,81,-231,80,-231,2,-231,79,-231,78,-231,77,-231,76,-231,131,-231}); states[174] = new State(-232); states[175] = new State(new int[]{6,1392,110,1381,109,1382,122,1383,123,1384,13,-236,115,-236,94,-236,114,-236,9,-236,10,-236,121,-236,104,-236,86,-236,92,-236,95,-236,30,-236,98,-236,12,-236,93,-236,29,-236,81,-236,80,-236,2,-236,79,-236,78,-236,77,-236,76,-236,131,-236},new int[]{-180,176}); states[176] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,148,154,150,155,149,156,110,377,109,378,138,149,140,150,139,152},new int[]{-95,177,-96,268,-167,386,-133,196,-137,24,-138,27,-16,383,-186,384,-151,387,-153,147,-152,151}); states[177] = new State(new int[]{112,218,111,219,125,220,126,221,127,222,128,223,124,224,6,-240,110,-240,109,-240,122,-240,123,-240,13,-240,115,-240,94,-240,114,-240,9,-240,10,-240,121,-240,104,-240,86,-240,92,-240,95,-240,30,-240,98,-240,12,-240,93,-240,29,-240,81,-240,80,-240,2,-240,79,-240,78,-240,77,-240,76,-240,131,-240},new int[]{-182,178}); states[178] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,148,154,150,155,149,156,110,377,109,378,138,149,140,150,139,152},new int[]{-96,179,-167,386,-133,196,-137,24,-138,27,-16,383,-186,384,-151,387,-153,147,-152,151}); states[179] = new State(new int[]{8,180,112,-242,111,-242,125,-242,126,-242,127,-242,128,-242,124,-242,6,-242,110,-242,109,-242,122,-242,123,-242,13,-242,115,-242,94,-242,114,-242,9,-242,10,-242,121,-242,104,-242,86,-242,92,-242,95,-242,30,-242,98,-242,12,-242,93,-242,29,-242,81,-242,80,-242,2,-242,79,-242,78,-242,77,-242,76,-242,131,-242}); states[180] = new State(new int[]{137,23,80,25,81,26,75,28,73,227,138,149,140,150,139,152,148,154,150,155,149,156,39,244,18,247,19,252,11,363,53,367,135,368,8,370,129,373,110,377,109,378,9,-174},new int[]{-70,181,-68,183,-87,366,-84,186,-76,191,-12,215,-10,225,-13,201,-133,226,-137,24,-138,27,-151,242,-153,147,-152,151,-16,243,-243,246,-281,251,-226,362,-186,375,-160,379,-251,380,-255,381,-228,382}); states[181] = new State(new int[]{9,182}); states[182] = new State(-247); states[183] = new State(new int[]{94,184,9,-173,12,-173}); states[184] = new State(new int[]{137,23,80,25,81,26,75,28,73,227,138,149,140,150,139,152,148,154,150,155,149,156,39,244,18,247,19,252,11,363,53,367,135,368,8,370,129,373,110,377,109,378},new int[]{-87,185,-84,186,-76,191,-12,215,-10,225,-13,201,-133,226,-137,24,-138,27,-151,242,-153,147,-152,151,-16,243,-243,246,-281,251,-226,362,-186,375,-160,379,-251,380,-255,381,-228,382}); states[185] = new State(-176); states[186] = new State(new int[]{13,187,6,1365,94,-177,9,-177,12,-177,5,-177}); states[187] = new State(new int[]{137,23,80,25,81,26,75,28,73,227,138,149,140,150,139,152,148,154,150,155,149,156,39,244,18,247,19,252,11,363,53,367,135,368,8,370,129,373,110,377,109,378},new int[]{-84,188,-76,191,-12,215,-10,225,-13,201,-133,226,-137,24,-138,27,-151,242,-153,147,-152,151,-16,243,-243,246,-281,251,-226,362,-186,375,-160,379,-251,380,-255,381,-228,382}); states[188] = new State(new int[]{5,189,13,187}); states[189] = new State(new int[]{137,23,80,25,81,26,75,28,73,227,138,149,140,150,139,152,148,154,150,155,149,156,39,244,18,247,19,252,11,363,53,367,135,368,8,370,129,373,110,377,109,378},new int[]{-84,190,-76,191,-12,215,-10,225,-13,201,-133,226,-137,24,-138,27,-151,242,-153,147,-152,151,-16,243,-243,246,-281,251,-226,362,-186,375,-160,379,-251,380,-255,381,-228,382}); states[190] = new State(new int[]{13,187,6,-116,94,-116,9,-116,12,-116,5,-116,86,-116,10,-116,92,-116,95,-116,30,-116,98,-116,93,-116,29,-116,81,-116,80,-116,2,-116,79,-116,78,-116,77,-116,76,-116}); states[191] = new State(new int[]{110,1381,109,1382,122,1383,123,1384,114,1385,119,1386,117,1387,115,1388,118,1389,116,1390,131,1391,13,-113,6,-113,94,-113,9,-113,12,-113,5,-113,86,-113,10,-113,92,-113,95,-113,30,-113,98,-113,93,-113,29,-113,81,-113,80,-113,2,-113,79,-113,78,-113,77,-113,76,-113},new int[]{-180,192,-179,1379}); states[192] = new State(new int[]{137,23,80,25,81,26,75,28,73,227,138,149,140,150,139,152,148,154,150,155,149,156,39,244,18,247,19,252,11,363,53,367,135,368,8,370,129,373,110,377,109,378},new int[]{-12,193,-10,225,-13,201,-133,226,-137,24,-138,27,-151,242,-153,147,-152,151,-16,243,-243,246,-281,251,-226,362,-186,375,-160,379,-251,380,-255,381}); states[193] = new State(new int[]{130,216,132,217,112,218,111,219,125,220,126,221,127,222,128,223,124,224,110,-125,109,-125,122,-125,123,-125,114,-125,119,-125,117,-125,115,-125,118,-125,116,-125,131,-125,13,-125,6,-125,94,-125,9,-125,12,-125,5,-125,86,-125,10,-125,92,-125,95,-125,30,-125,98,-125,93,-125,29,-125,81,-125,80,-125,2,-125,79,-125,78,-125,77,-125,76,-125},new int[]{-188,194,-182,197}); states[194] = new State(new int[]{137,23,80,25,81,26,75,28,73,29},new int[]{-270,195,-167,162,-133,196,-137,24,-138,27}); states[195] = new State(-130); states[196] = new State(-248); states[197] = new State(new int[]{137,23,80,25,81,26,75,28,73,227,138,149,140,150,139,152,148,154,150,155,149,156,39,244,18,247,19,252,11,363,53,367,135,368,8,370,129,373,110,377,109,378},new int[]{-10,198,-255,1378,-13,201,-133,226,-137,24,-138,27,-151,242,-153,147,-152,151,-16,243,-243,246,-281,251,-226,362,-186,375,-160,379}); states[198] = new State(new int[]{113,199,130,-135,132,-135,112,-135,111,-135,125,-135,126,-135,127,-135,128,-135,124,-135,110,-135,109,-135,122,-135,123,-135,114,-135,119,-135,117,-135,115,-135,118,-135,116,-135,131,-135,13,-135,6,-135,94,-135,9,-135,12,-135,5,-135,86,-135,10,-135,92,-135,95,-135,30,-135,98,-135,93,-135,29,-135,81,-135,80,-135,2,-135,79,-135,78,-135,77,-135,76,-135}); states[199] = new State(new int[]{137,23,80,25,81,26,75,28,73,227,138,149,140,150,139,152,148,154,150,155,149,156,39,244,18,247,19,252,11,363,53,367,135,368,8,370,129,373,110,377,109,378},new int[]{-10,200,-13,201,-133,226,-137,24,-138,27,-151,242,-153,147,-152,151,-16,243,-243,246,-281,251,-226,362,-186,375,-160,379}); states[200] = new State(-131); states[201] = new State(new int[]{4,203,11,205,7,1371,136,1373,8,1374,113,-144,130,-144,132,-144,112,-144,111,-144,125,-144,126,-144,127,-144,128,-144,124,-144,110,-144,109,-144,122,-144,123,-144,114,-144,119,-144,117,-144,115,-144,118,-144,116,-144,131,-144,13,-144,6,-144,94,-144,9,-144,12,-144,5,-144,86,-144,10,-144,92,-144,95,-144,30,-144,98,-144,93,-144,29,-144,81,-144,80,-144,2,-144,79,-144,78,-144,77,-144,76,-144},new int[]{-11,202}); states[202] = new State(-164); states[203] = new State(new int[]{117,168},new int[]{-285,204}); states[204] = new State(-165); states[205] = new State(new int[]{137,23,80,25,81,26,75,28,73,227,138,149,140,150,139,152,148,154,150,155,149,156,39,244,18,247,19,252,11,363,53,367,135,368,8,370,129,373,110,377,109,378,5,1367,12,-174},new int[]{-107,206,-70,208,-84,210,-76,191,-12,215,-10,225,-13,201,-133,226,-137,24,-138,27,-151,242,-153,147,-152,151,-16,243,-243,246,-281,251,-226,362,-186,375,-160,379,-251,380,-255,381,-228,382,-68,183,-87,366}); states[206] = new State(new int[]{12,207}); states[207] = new State(-166); states[208] = new State(new int[]{12,209}); states[209] = new State(-170); states[210] = new State(new int[]{5,211,13,187,6,1365,94,-177,12,-177}); states[211] = new State(new int[]{137,23,80,25,81,26,75,28,73,227,138,149,140,150,139,152,148,154,150,155,149,156,39,244,18,247,19,252,11,363,53,367,135,368,8,370,129,373,110,377,109,378,5,-669,12,-669},new int[]{-108,212,-84,1364,-76,191,-12,215,-10,225,-13,201,-133,226,-137,24,-138,27,-151,242,-153,147,-152,151,-16,243,-243,246,-281,251,-226,362,-186,375,-160,379,-251,380,-255,381,-228,382}); states[212] = new State(new int[]{5,213,12,-674}); states[213] = new State(new int[]{137,23,80,25,81,26,75,28,73,227,138,149,140,150,139,152,148,154,150,155,149,156,39,244,18,247,19,252,11,363,53,367,135,368,8,370,129,373,110,377,109,378},new int[]{-84,214,-76,191,-12,215,-10,225,-13,201,-133,226,-137,24,-138,27,-151,242,-153,147,-152,151,-16,243,-243,246,-281,251,-226,362,-186,375,-160,379,-251,380,-255,381,-228,382}); states[214] = new State(new int[]{13,187,12,-676}); states[215] = new State(new int[]{130,216,132,217,112,218,111,219,125,220,126,221,127,222,128,223,124,224,110,-124,109,-124,122,-124,123,-124,114,-124,119,-124,117,-124,115,-124,118,-124,116,-124,131,-124,13,-124,6,-124,94,-124,9,-124,12,-124,5,-124,86,-124,10,-124,92,-124,95,-124,30,-124,98,-124,93,-124,29,-124,81,-124,80,-124,2,-124,79,-124,78,-124,77,-124,76,-124},new int[]{-188,194,-182,197}); states[216] = new State(-692); states[217] = new State(-693); states[218] = new State(-137); states[219] = new State(-138); states[220] = new State(-139); states[221] = new State(-140); states[222] = new State(-141); states[223] = new State(-142); states[224] = new State(-143); states[225] = new State(new int[]{113,199,130,-132,132,-132,112,-132,111,-132,125,-132,126,-132,127,-132,128,-132,124,-132,110,-132,109,-132,122,-132,123,-132,114,-132,119,-132,117,-132,115,-132,118,-132,116,-132,131,-132,13,-132,6,-132,94,-132,9,-132,12,-132,5,-132,86,-132,10,-132,92,-132,95,-132,30,-132,98,-132,93,-132,29,-132,81,-132,80,-132,2,-132,79,-132,78,-132,77,-132,76,-132}); states[226] = new State(-158); states[227] = new State(new int[]{23,1353,137,23,80,25,81,26,75,28,73,29,17,-796,8,-796,7,-796,136,-796,4,-796,15,-796,104,-796,105,-796,106,-796,107,-796,108,-796,86,-796,10,-796,11,-796,5,-796,92,-796,95,-796,30,-796,98,-796,121,-796,132,-796,130,-796,112,-796,111,-796,125,-796,126,-796,127,-796,128,-796,124,-796,110,-796,109,-796,122,-796,123,-796,120,-796,114,-796,119,-796,117,-796,115,-796,118,-796,116,-796,131,-796,16,-796,13,-796,94,-796,12,-796,9,-796,93,-796,29,-796,2,-796,79,-796,78,-796,77,-796,76,-796,113,-796,6,-796,48,-796,55,-796,135,-796,42,-796,39,-796,18,-796,19,-796,138,-796,140,-796,139,-796,148,-796,150,-796,149,-796,54,-796,85,-796,37,-796,22,-796,91,-796,51,-796,32,-796,52,-796,96,-796,44,-796,33,-796,50,-796,57,-796,72,-796,70,-796,35,-796,68,-796,69,-796},new int[]{-270,228,-167,162,-133,196,-137,24,-138,27}); states[228] = new State(new int[]{11,230,8,659,86,-609,10,-609,92,-609,95,-609,30,-609,98,-609,132,-609,130,-609,112,-609,111,-609,125,-609,126,-609,127,-609,128,-609,124,-609,5,-609,110,-609,109,-609,122,-609,123,-609,120,-609,114,-609,119,-609,117,-609,115,-609,118,-609,116,-609,131,-609,16,-609,13,-609,94,-609,12,-609,9,-609,93,-609,29,-609,81,-609,80,-609,2,-609,79,-609,78,-609,77,-609,76,-609,6,-609,48,-609,55,-609,135,-609,137,-609,75,-609,73,-609,42,-609,39,-609,18,-609,19,-609,138,-609,140,-609,139,-609,148,-609,150,-609,149,-609,54,-609,85,-609,37,-609,22,-609,91,-609,51,-609,32,-609,52,-609,96,-609,44,-609,33,-609,50,-609,57,-609,72,-609,70,-609,35,-609,68,-609,69,-609,113,-609},new int[]{-66,229}); states[229] = new State(-602); states[230] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,499,18,247,19,252,5,624,34,664,41,669,12,-755},new int[]{-64,231,-67,457,-83,518,-82,126,-92,127,-91,132,-90,290,-94,298,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,460,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622,-106,623,-307,662,-308,663}); states[231] = new State(new int[]{12,232}); states[232] = new State(new int[]{8,234,86,-601,10,-601,92,-601,95,-601,30,-601,98,-601,132,-601,130,-601,112,-601,111,-601,125,-601,126,-601,127,-601,128,-601,124,-601,5,-601,110,-601,109,-601,122,-601,123,-601,120,-601,114,-601,119,-601,117,-601,115,-601,118,-601,116,-601,131,-601,16,-601,13,-601,94,-601,12,-601,9,-601,93,-601,29,-601,81,-601,80,-601,2,-601,79,-601,78,-601,77,-601,76,-601,6,-601,48,-601,55,-601,135,-601,137,-601,75,-601,73,-601,42,-601,39,-601,18,-601,19,-601,138,-601,140,-601,139,-601,148,-601,150,-601,149,-601,54,-601,85,-601,37,-601,22,-601,91,-601,51,-601,32,-601,52,-601,96,-601,44,-601,33,-601,50,-601,57,-601,72,-601,70,-601,35,-601,68,-601,69,-601,113,-601},new int[]{-5,233}); states[233] = new State(-603); states[234] = new State(new int[]{137,23,80,25,81,26,75,28,73,227,138,149,140,150,139,152,148,154,150,155,149,156,39,244,18,247,19,252,11,363,53,367,135,368,8,892,129,373,110,377,109,378,60,158,9,-186},new int[]{-63,235,-62,237,-80,895,-79,240,-84,241,-76,191,-12,215,-10,225,-13,201,-133,226,-137,24,-138,27,-151,242,-153,147,-152,151,-16,243,-243,246,-281,251,-226,362,-186,375,-160,379,-251,380,-255,381,-228,382,-88,896,-229,897,-54,898}); states[235] = new State(new int[]{9,236}); states[236] = new State(-600); states[237] = new State(new int[]{94,238,9,-187}); states[238] = new State(new int[]{137,23,80,25,81,26,75,28,73,227,138,149,140,150,139,152,148,154,150,155,149,156,39,244,18,247,19,252,11,363,53,367,135,368,8,892,129,373,110,377,109,378,60,158},new int[]{-80,239,-79,240,-84,241,-76,191,-12,215,-10,225,-13,201,-133,226,-137,24,-138,27,-151,242,-153,147,-152,151,-16,243,-243,246,-281,251,-226,362,-186,375,-160,379,-251,380,-255,381,-228,382,-88,896,-229,897,-54,898}); states[239] = new State(-189); states[240] = new State(-407); states[241] = new State(new int[]{13,187,94,-182,9,-182,86,-182,10,-182,92,-182,95,-182,30,-182,98,-182,12,-182,93,-182,29,-182,81,-182,80,-182,2,-182,79,-182,78,-182,77,-182,76,-182}); states[242] = new State(-159); states[243] = new State(-160); states[244] = new State(new int[]{137,23,80,25,81,26,75,28,73,29},new int[]{-133,245,-137,24,-138,27}); states[245] = new State(-161); states[246] = new State(-162); states[247] = new State(new int[]{8,248}); states[248] = new State(new int[]{137,23,80,25,81,26,75,28,73,29},new int[]{-270,249,-167,162,-133,196,-137,24,-138,27}); states[249] = new State(new int[]{9,250}); states[250] = new State(-591); states[251] = new State(-163); states[252] = new State(new int[]{8,253}); states[253] = new State(new int[]{137,23,80,25,81,26,75,28,73,29},new int[]{-270,254,-269,256,-167,258,-133,196,-137,24,-138,27}); states[254] = new State(new int[]{9,255}); states[255] = new State(-592); states[256] = new State(new int[]{9,257}); states[257] = new State(-593); states[258] = new State(new int[]{7,163,4,259,117,261,119,1351,9,-597},new int[]{-285,165,-286,1352}); states[259] = new State(new int[]{117,261,119,1351},new int[]{-285,167,-286,260}); states[260] = new State(-596); states[261] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,148,154,150,155,149,156,110,377,109,378,138,149,140,150,139,152,8,388,21,405,45,413,46,550,31,554,71,558,62,561,41,566,34,594,115,-230,94,-230},new int[]{-283,169,-284,262,-265,266,-258,173,-86,175,-95,267,-96,268,-167,269,-133,196,-137,24,-138,27,-16,383,-186,384,-151,387,-153,147,-152,151,-267,1332,-268,403,-264,404,-256,411,-29,412,-249,549,-116,553,-117,557,-213,1333,-211,564,-210,565,-287,1334,-266,1350}); states[262] = new State(new int[]{115,263,94,264}); states[263] = new State(-225); states[264] = new State(-230,new int[]{-266,265}); states[265] = new State(-229); states[266] = new State(-226); states[267] = new State(new int[]{112,218,111,219,125,220,126,221,127,222,128,223,124,224,6,-239,110,-239,109,-239,122,-239,123,-239,13,-239,115,-239,94,-239,114,-239,9,-239,10,-239,121,-239,104,-239,86,-239,92,-239,95,-239,30,-239,98,-239,12,-239,93,-239,29,-239,81,-239,80,-239,2,-239,79,-239,78,-239,77,-239,76,-239,131,-239},new int[]{-182,178}); states[268] = new State(new int[]{8,180,112,-241,111,-241,125,-241,126,-241,127,-241,128,-241,124,-241,6,-241,110,-241,109,-241,122,-241,123,-241,13,-241,115,-241,94,-241,114,-241,9,-241,10,-241,121,-241,104,-241,86,-241,92,-241,95,-241,30,-241,98,-241,12,-241,93,-241,29,-241,81,-241,80,-241,2,-241,79,-241,78,-241,77,-241,76,-241,131,-241}); states[269] = new State(new int[]{7,163,121,270,117,168,8,-243,112,-243,111,-243,125,-243,126,-243,127,-243,128,-243,124,-243,6,-243,110,-243,109,-243,122,-243,123,-243,13,-243,115,-243,94,-243,114,-243,9,-243,10,-243,104,-243,86,-243,92,-243,95,-243,30,-243,98,-243,12,-243,93,-243,29,-243,81,-243,80,-243,2,-243,79,-243,78,-243,77,-243,76,-243,131,-243},new int[]{-285,658}); states[270] = new State(new int[]{8,272,137,23,80,25,81,26,75,28,73,29,148,154,150,155,149,156,110,377,109,378,138,149,140,150,139,152,21,405,45,413,46,550,31,554,71,558,62,561,41,566,34,594},new int[]{-265,271,-258,173,-86,175,-95,267,-96,268,-167,269,-133,196,-137,24,-138,27,-16,383,-186,384,-151,387,-153,147,-152,151,-267,1332,-268,403,-264,404,-256,411,-29,412,-249,549,-116,553,-117,557,-213,1333,-211,564,-210,565,-287,1334}); states[271] = new State(-278); states[272] = new State(new int[]{9,273,137,358,80,25,81,26,75,28,73,29,148,154,150,155,149,156,110,377,109,378,138,149,140,150,139,152,8,388,136,399,21,405,45,413,46,550,31,554,71,558,62,561,41,566,34,594},new int[]{-75,278,-73,284,-262,287,-258,356,-86,175,-95,267,-96,268,-167,269,-133,196,-137,24,-138,27,-16,383,-186,384,-151,387,-153,147,-152,151,-259,390,-287,391,-242,397,-235,398,-267,402,-268,403,-264,404,-256,411,-29,412,-249,549,-116,553,-117,557,-213,563,-211,564,-210,565}); states[273] = new State(new int[]{121,274,115,-282,94,-282,114,-282,9,-282,10,-282,104,-282,86,-282,92,-282,95,-282,30,-282,98,-282,12,-282,93,-282,29,-282,81,-282,80,-282,2,-282,79,-282,78,-282,77,-282,76,-282,131,-282}); states[274] = new State(new int[]{8,276,137,23,80,25,81,26,75,28,73,29,148,154,150,155,149,156,110,377,109,378,138,149,140,150,139,152,21,405,45,413,46,550,31,554,71,558,62,561,41,566,34,594},new int[]{-265,275,-258,173,-86,175,-95,267,-96,268,-167,269,-133,196,-137,24,-138,27,-16,383,-186,384,-151,387,-153,147,-152,151,-267,1332,-268,403,-264,404,-256,411,-29,412,-249,549,-116,553,-117,557,-213,1333,-211,564,-210,565,-287,1334}); states[275] = new State(-280); states[276] = new State(new int[]{9,277,137,358,80,25,81,26,75,28,73,29,148,154,150,155,149,156,110,377,109,378,138,149,140,150,139,152,8,388,136,399,21,405,45,413,46,550,31,554,71,558,62,561,41,566,34,594},new int[]{-75,278,-73,284,-262,287,-258,356,-86,175,-95,267,-96,268,-167,269,-133,196,-137,24,-138,27,-16,383,-186,384,-151,387,-153,147,-152,151,-259,390,-287,391,-242,397,-235,398,-267,402,-268,403,-264,404,-256,411,-29,412,-249,549,-116,553,-117,557,-213,563,-211,564,-210,565}); states[277] = new State(new int[]{121,274,115,-284,94,-284,114,-284,9,-284,10,-284,104,-284,86,-284,92,-284,95,-284,30,-284,98,-284,12,-284,93,-284,29,-284,81,-284,80,-284,2,-284,79,-284,78,-284,77,-284,76,-284,131,-284}); states[278] = new State(new int[]{9,279,94,1006}); states[279] = new State(new int[]{121,280,13,-238,115,-238,94,-238,114,-238,9,-238,10,-238,104,-238,86,-238,92,-238,95,-238,30,-238,98,-238,12,-238,93,-238,29,-238,81,-238,80,-238,2,-238,79,-238,78,-238,77,-238,76,-238,131,-238}); states[280] = new State(new int[]{8,282,137,23,80,25,81,26,75,28,73,29,148,154,150,155,149,156,110,377,109,378,138,149,140,150,139,152,21,405,45,413,46,550,31,554,71,558,62,561,41,566,34,594},new int[]{-265,281,-258,173,-86,175,-95,267,-96,268,-167,269,-133,196,-137,24,-138,27,-16,383,-186,384,-151,387,-153,147,-152,151,-267,1332,-268,403,-264,404,-256,411,-29,412,-249,549,-116,553,-117,557,-213,1333,-211,564,-210,565,-287,1334}); states[281] = new State(-281); states[282] = new State(new int[]{9,283,137,358,80,25,81,26,75,28,73,29,148,154,150,155,149,156,110,377,109,378,138,149,140,150,139,152,8,388,136,399,21,405,45,413,46,550,31,554,71,558,62,561,41,566,34,594},new int[]{-75,278,-73,284,-262,287,-258,356,-86,175,-95,267,-96,268,-167,269,-133,196,-137,24,-138,27,-16,383,-186,384,-151,387,-153,147,-152,151,-259,390,-287,391,-242,397,-235,398,-267,402,-268,403,-264,404,-256,411,-29,412,-249,549,-116,553,-117,557,-213,563,-211,564,-210,565}); states[283] = new State(new int[]{121,274,115,-285,94,-285,114,-285,9,-285,10,-285,104,-285,86,-285,92,-285,95,-285,30,-285,98,-285,12,-285,93,-285,29,-285,81,-285,80,-285,2,-285,79,-285,78,-285,77,-285,76,-285,131,-285}); states[284] = new State(new int[]{94,285}); states[285] = new State(new int[]{137,358,80,25,81,26,75,28,73,29,148,154,150,155,149,156,110,377,109,378,138,149,140,150,139,152,8,388,136,399,21,405,45,413,46,550,31,554,71,558,62,561,41,566,34,594},new int[]{-73,286,-262,287,-258,356,-86,175,-95,267,-96,268,-167,269,-133,196,-137,24,-138,27,-16,383,-186,384,-151,387,-153,147,-152,151,-259,390,-287,391,-242,397,-235,398,-267,402,-268,403,-264,404,-256,411,-29,412,-249,549,-116,553,-117,557,-213,563,-211,564,-210,565}); states[286] = new State(-250); states[287] = new State(new int[]{114,288,94,-252,9,-252}); states[288] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,532,18,247,19,252,5,624},new int[]{-82,289,-92,127,-91,132,-90,290,-94,298,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622,-106,623}); states[289] = new State(-253); states[290] = new State(new int[]{114,291,119,292,117,293,115,294,118,295,116,296,131,297,16,-589,13,-589,86,-589,10,-589,92,-589,95,-589,30,-589,98,-589,94,-589,12,-589,9,-589,93,-589,29,-589,81,-589,80,-589,2,-589,79,-589,78,-589,77,-589,76,-589,5,-589,6,-589,48,-589,55,-589,135,-589,137,-589,75,-589,73,-589,42,-589,39,-589,8,-589,18,-589,19,-589,138,-589,140,-589,139,-589,148,-589,150,-589,149,-589,54,-589,85,-589,37,-589,22,-589,91,-589,51,-589,32,-589,52,-589,96,-589,44,-589,33,-589,50,-589,57,-589,72,-589,70,-589,35,-589,68,-589,69,-589},new int[]{-183,135}); states[291] = new State(-678); states[292] = new State(-679); states[293] = new State(-680); states[294] = new State(-681); states[295] = new State(-682); states[296] = new State(-683); states[297] = new State(-684); states[298] = new State(new int[]{5,299,110,303,109,304,122,305,123,306,120,307,114,-611,119,-611,117,-611,115,-611,118,-611,116,-611,131,-611,16,-611,13,-611,86,-611,10,-611,92,-611,95,-611,30,-611,98,-611,94,-611,12,-611,9,-611,93,-611,29,-611,81,-611,80,-611,2,-611,79,-611,78,-611,77,-611,76,-611,6,-611},new int[]{-184,137}); states[299] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,532,18,247,19,252,5,-667,86,-667,10,-667,92,-667,95,-667,30,-667,98,-667,94,-667,12,-667,9,-667,93,-667,29,-667,2,-667,79,-667,78,-667,77,-667,76,-667,6,-667},new int[]{-103,300,-94,629,-77,308,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,628,-253,621}); states[300] = new State(new int[]{5,301,86,-670,10,-670,92,-670,95,-670,30,-670,98,-670,94,-670,12,-670,9,-670,93,-670,29,-670,81,-670,80,-670,2,-670,79,-670,78,-670,77,-670,76,-670,6,-670}); states[301] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,532,18,247,19,252},new int[]{-94,302,-77,308,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,628,-253,621}); states[302] = new State(new int[]{110,303,109,304,122,305,123,306,120,307,86,-672,10,-672,92,-672,95,-672,30,-672,98,-672,94,-672,12,-672,9,-672,93,-672,29,-672,81,-672,80,-672,2,-672,79,-672,78,-672,77,-672,76,-672,6,-672},new int[]{-184,137}); states[303] = new State(-687); states[304] = new State(-688); states[305] = new State(-689); states[306] = new State(-690); states[307] = new State(-691); states[308] = new State(new int[]{132,309,130,311,112,313,111,314,125,315,126,316,127,317,128,318,124,319,110,-685,109,-685,122,-685,123,-685,120,-685,114,-685,119,-685,117,-685,115,-685,118,-685,116,-685,131,-685,16,-685,13,-685,86,-685,10,-685,92,-685,95,-685,30,-685,98,-685,94,-685,12,-685,9,-685,93,-685,29,-685,81,-685,80,-685,2,-685,79,-685,78,-685,77,-685,76,-685,5,-685,6,-685,48,-685,55,-685,135,-685,137,-685,75,-685,73,-685,42,-685,39,-685,8,-685,18,-685,19,-685,138,-685,140,-685,139,-685,148,-685,150,-685,149,-685,54,-685,85,-685,37,-685,22,-685,91,-685,51,-685,32,-685,52,-685,96,-685,44,-685,33,-685,50,-685,57,-685,72,-685,70,-685,35,-685,68,-685,69,-685},new int[]{-185,139}); states[309] = new State(new int[]{137,23,80,25,81,26,75,28,73,29},new int[]{-270,310,-167,162,-133,196,-137,24,-138,27}); states[310] = new State(-697); states[311] = new State(new int[]{137,23,80,25,81,26,75,28,73,29},new int[]{-270,312,-167,162,-133,196,-137,24,-138,27}); states[312] = new State(-696); states[313] = new State(-706); states[314] = new State(-707); states[315] = new State(-708); states[316] = new State(-709); states[317] = new State(-710); states[318] = new State(-711); states[319] = new State(-712); states[320] = new State(new int[]{132,-700,130,-700,112,-700,111,-700,125,-700,126,-700,127,-700,128,-700,124,-700,5,-700,110,-700,109,-700,122,-700,123,-700,120,-700,114,-700,119,-700,117,-700,115,-700,118,-700,116,-700,131,-700,16,-700,13,-700,86,-700,10,-700,92,-700,95,-700,30,-700,98,-700,94,-700,12,-700,9,-700,93,-700,29,-700,81,-700,80,-700,2,-700,79,-700,78,-700,77,-700,76,-700,6,-700,48,-700,55,-700,135,-700,137,-700,75,-700,73,-700,42,-700,39,-700,8,-700,18,-700,19,-700,138,-700,140,-700,139,-700,148,-700,150,-700,149,-700,54,-700,85,-700,37,-700,22,-700,91,-700,51,-700,32,-700,52,-700,96,-700,44,-700,33,-700,50,-700,57,-700,72,-700,70,-700,35,-700,68,-700,69,-700,113,-698}); states[321] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,532,18,247,19,252,5,624,12,-757},new int[]{-65,322,-72,324,-85,1349,-82,327,-92,127,-91,132,-90,290,-94,298,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622,-106,623}); states[322] = new State(new int[]{12,323}); states[323] = new State(-718); states[324] = new State(new int[]{94,325,12,-756}); states[325] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,532,18,247,19,252,5,624},new int[]{-85,326,-82,327,-92,127,-91,132,-90,290,-94,298,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622,-106,623}); states[326] = new State(-759); states[327] = new State(new int[]{6,328,94,-760,12,-760}); states[328] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,532,18,247,19,252,5,624},new int[]{-82,329,-92,127,-91,132,-90,290,-94,298,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622,-106,623}); states[329] = new State(-761); states[330] = new State(new int[]{132,331,130,311,112,313,111,314,125,315,126,316,127,317,128,318,124,319,5,-685,110,-685,109,-685,122,-685,123,-685,120,-685,114,-685,119,-685,117,-685,115,-685,118,-685,116,-685,131,-685,16,-685,13,-685,86,-685,10,-685,92,-685,95,-685,30,-685,98,-685,94,-685,12,-685,9,-685,93,-685,29,-685,81,-685,80,-685,2,-685,79,-685,78,-685,77,-685,76,-685,6,-685,48,-685,55,-685,135,-685,137,-685,75,-685,73,-685,42,-685,39,-685,8,-685,18,-685,19,-685,138,-685,140,-685,139,-685,148,-685,150,-685,149,-685,54,-685,85,-685,37,-685,22,-685,91,-685,51,-685,32,-685,52,-685,96,-685,44,-685,33,-685,50,-685,57,-685,72,-685,70,-685,35,-685,68,-685,69,-685},new int[]{-185,139}); states[331] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,11,334,8,607},new int[]{-270,310,-327,332,-328,333,-167,162,-133,196,-137,24,-138,27}); states[332] = new State(-614); states[333] = new State(-615); states[334] = new State(new int[]{138,149,140,150,139,152,148,154,150,155,149,156,50,341,14,343,137,23,80,25,81,26,75,28,73,29,11,334,8,607,6,1347},new int[]{-340,335,-329,1348,-15,339,-151,146,-153,147,-152,151,-16,153,-331,340,-325,344,-270,345,-167,162,-133,196,-137,24,-138,27,-327,1345,-328,1346}); states[335] = new State(new int[]{12,336,94,337}); states[336] = new State(-618); states[337] = new State(new int[]{138,149,140,150,139,152,148,154,150,155,149,156,50,341,14,343,137,23,80,25,81,26,75,28,73,29,11,334,8,607,6,1347},new int[]{-329,338,-15,339,-151,146,-153,147,-152,151,-16,153,-331,340,-325,344,-270,345,-167,162,-133,196,-137,24,-138,27,-327,1345,-328,1346}); states[338] = new State(-620); states[339] = new State(-621); states[340] = new State(-622); states[341] = new State(new int[]{137,23,80,25,81,26,75,28,73,29},new int[]{-133,342,-137,24,-138,27}); states[342] = new State(-628); states[343] = new State(-623); states[344] = new State(-624); states[345] = new State(new int[]{8,346}); states[346] = new State(new int[]{14,351,138,149,140,150,139,152,148,154,150,155,149,156,137,23,80,25,81,26,75,28,73,29,50,1335,11,334,8,607},new int[]{-339,347,-336,1344,-15,352,-151,146,-153,147,-152,151,-16,153,-133,353,-137,24,-138,27,-325,1339,-270,345,-167,162,-327,1340,-328,1341}); states[347] = new State(new int[]{9,348,10,349,94,1342}); states[348] = new State(-617); states[349] = new State(new int[]{14,351,138,149,140,150,139,152,148,154,150,155,149,156,137,23,80,25,81,26,75,28,73,29,50,1335,11,334,8,607},new int[]{-336,350,-15,352,-151,146,-153,147,-152,151,-16,153,-133,353,-137,24,-138,27,-325,1339,-270,345,-167,162,-327,1340,-328,1341}); states[350] = new State(-645); states[351] = new State(-657); states[352] = new State(-658); states[353] = new State(new int[]{5,354,9,-660,10,-660,94,-660,7,-248,4,-248,117,-248,8,-248}); states[354] = new State(new int[]{137,358,80,25,81,26,75,28,73,29,148,154,150,155,149,156,110,377,109,378,138,149,140,150,139,152,8,388,136,399,21,405,45,413,46,550,31,554,71,558,62,561,41,566,34,594},new int[]{-262,355,-258,356,-86,175,-95,267,-96,268,-167,269,-133,196,-137,24,-138,27,-16,383,-186,384,-151,387,-153,147,-152,151,-259,390,-287,391,-242,397,-235,398,-267,402,-268,403,-264,404,-256,411,-29,412,-249,549,-116,553,-117,557,-213,563,-211,564,-210,565}); states[355] = new State(-659); states[356] = new State(new int[]{13,357,114,-215,94,-215,9,-215,10,-215,115,-215,121,-215,104,-215,86,-215,92,-215,95,-215,30,-215,98,-215,12,-215,93,-215,29,-215,81,-215,80,-215,2,-215,79,-215,78,-215,77,-215,76,-215,131,-215}); states[357] = new State(-213); states[358] = new State(new int[]{11,359,7,-775,121,-775,117,-775,8,-775,112,-775,111,-775,125,-775,126,-775,127,-775,128,-775,124,-775,6,-775,110,-775,109,-775,122,-775,123,-775,13,-775,114,-775,94,-775,9,-775,10,-775,115,-775,104,-775,86,-775,92,-775,95,-775,30,-775,98,-775,12,-775,93,-775,29,-775,81,-775,80,-775,2,-775,79,-775,78,-775,77,-775,76,-775,131,-775}); states[359] = new State(new int[]{137,23,80,25,81,26,75,28,73,227,138,149,140,150,139,152,148,154,150,155,149,156,39,244,18,247,19,252,11,363,53,367,135,368,8,370,129,373,110,377,109,378},new int[]{-84,360,-76,191,-12,215,-10,225,-13,201,-133,226,-137,24,-138,27,-151,242,-153,147,-152,151,-16,243,-243,246,-281,251,-226,362,-186,375,-160,379,-251,380,-255,381,-228,382}); states[360] = new State(new int[]{12,361,13,187}); states[361] = new State(-273); states[362] = new State(-145); states[363] = new State(new int[]{137,23,80,25,81,26,75,28,73,227,138,149,140,150,139,152,148,154,150,155,149,156,39,244,18,247,19,252,11,363,53,367,135,368,8,370,129,373,110,377,109,378,12,-174},new int[]{-70,364,-68,183,-87,366,-84,186,-76,191,-12,215,-10,225,-13,201,-133,226,-137,24,-138,27,-151,242,-153,147,-152,151,-16,243,-243,246,-281,251,-226,362,-186,375,-160,379,-251,380,-255,381,-228,382}); states[364] = new State(new int[]{12,365}); states[365] = new State(-152); states[366] = new State(-175); states[367] = new State(-146); states[368] = new State(new int[]{137,23,80,25,81,26,75,28,73,227,138,149,140,150,139,152,148,154,150,155,149,156,39,244,18,247,19,252,11,363,53,367,135,368,8,370,129,373,110,377,109,378},new int[]{-10,369,-13,201,-133,226,-137,24,-138,27,-151,242,-153,147,-152,151,-16,243,-243,246,-281,251,-226,362,-186,375,-160,379}); states[369] = new State(-147); states[370] = new State(new int[]{137,23,80,25,81,26,75,28,73,227,138,149,140,150,139,152,148,154,150,155,149,156,39,244,18,247,19,252,11,363,53,367,135,368,8,370,129,373,110,377,109,378},new int[]{-84,371,-76,191,-12,215,-10,225,-13,201,-133,226,-137,24,-138,27,-151,242,-153,147,-152,151,-16,243,-243,246,-281,251,-226,362,-186,375,-160,379,-251,380,-255,381,-228,382}); states[371] = new State(new int[]{9,372,13,187}); states[372] = new State(-148); states[373] = new State(new int[]{137,23,80,25,81,26,75,28,73,227,138,149,140,150,139,152,148,154,150,155,149,156,39,244,18,247,19,252,11,363,53,367,135,368,8,370,129,373,110,377,109,378},new int[]{-10,374,-13,201,-133,226,-137,24,-138,27,-151,242,-153,147,-152,151,-16,243,-243,246,-281,251,-226,362,-186,375,-160,379}); states[374] = new State(-149); states[375] = new State(new int[]{137,23,80,25,81,26,75,28,73,227,138,149,140,150,139,152,148,154,150,155,149,156,39,244,18,247,19,252,11,363,53,367,135,368,8,370,129,373,110,377,109,378},new int[]{-10,376,-13,201,-133,226,-137,24,-138,27,-151,242,-153,147,-152,151,-16,243,-243,246,-281,251,-226,362,-186,375,-160,379}); states[376] = new State(-150); states[377] = new State(-153); states[378] = new State(-154); states[379] = new State(-151); states[380] = new State(-133); states[381] = new State(-134); states[382] = new State(-115); states[383] = new State(-244); states[384] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,148,154,150,155,149,156,110,377,109,378,138,149,140,150,139,152},new int[]{-96,385,-167,386,-133,196,-137,24,-138,27,-16,383,-186,384,-151,387,-153,147,-152,151}); states[385] = new State(new int[]{8,180,112,-245,111,-245,125,-245,126,-245,127,-245,128,-245,124,-245,6,-245,110,-245,109,-245,122,-245,123,-245,13,-245,115,-245,94,-245,114,-245,9,-245,10,-245,121,-245,104,-245,86,-245,92,-245,95,-245,30,-245,98,-245,12,-245,93,-245,29,-245,81,-245,80,-245,2,-245,79,-245,78,-245,77,-245,76,-245,131,-245}); states[386] = new State(new int[]{7,163,8,-243,112,-243,111,-243,125,-243,126,-243,127,-243,128,-243,124,-243,6,-243,110,-243,109,-243,122,-243,123,-243,13,-243,115,-243,94,-243,114,-243,9,-243,10,-243,121,-243,104,-243,86,-243,92,-243,95,-243,30,-243,98,-243,12,-243,93,-243,29,-243,81,-243,80,-243,2,-243,79,-243,78,-243,77,-243,76,-243,131,-243}); states[387] = new State(-246); states[388] = new State(new int[]{9,389,137,358,80,25,81,26,75,28,73,29,148,154,150,155,149,156,110,377,109,378,138,149,140,150,139,152,8,388,136,399,21,405,45,413,46,550,31,554,71,558,62,561,41,566,34,594},new int[]{-75,278,-73,284,-262,287,-258,356,-86,175,-95,267,-96,268,-167,269,-133,196,-137,24,-138,27,-16,383,-186,384,-151,387,-153,147,-152,151,-259,390,-287,391,-242,397,-235,398,-267,402,-268,403,-264,404,-256,411,-29,412,-249,549,-116,553,-117,557,-213,563,-211,564,-210,565}); states[389] = new State(new int[]{121,274}); states[390] = new State(-216); states[391] = new State(new int[]{13,392,121,393,114,-221,94,-221,9,-221,10,-221,115,-221,104,-221,86,-221,92,-221,95,-221,30,-221,98,-221,12,-221,93,-221,29,-221,81,-221,80,-221,2,-221,79,-221,78,-221,77,-221,76,-221,131,-221}); states[392] = new State(-214); states[393] = new State(new int[]{8,395,137,23,80,25,81,26,75,28,73,29,148,154,150,155,149,156,110,377,109,378,138,149,140,150,139,152,21,405,45,413,46,550,31,554,71,558,62,561,41,566,34,594},new int[]{-265,394,-258,173,-86,175,-95,267,-96,268,-167,269,-133,196,-137,24,-138,27,-16,383,-186,384,-151,387,-153,147,-152,151,-267,1332,-268,403,-264,404,-256,411,-29,412,-249,549,-116,553,-117,557,-213,1333,-211,564,-210,565,-287,1334}); states[394] = new State(-279); states[395] = new State(new int[]{9,396,137,358,80,25,81,26,75,28,73,29,148,154,150,155,149,156,110,377,109,378,138,149,140,150,139,152,8,388,136,399,21,405,45,413,46,550,31,554,71,558,62,561,41,566,34,594},new int[]{-75,278,-73,284,-262,287,-258,356,-86,175,-95,267,-96,268,-167,269,-133,196,-137,24,-138,27,-16,383,-186,384,-151,387,-153,147,-152,151,-259,390,-287,391,-242,397,-235,398,-267,402,-268,403,-264,404,-256,411,-29,412,-249,549,-116,553,-117,557,-213,563,-211,564,-210,565}); states[396] = new State(new int[]{121,274,115,-283,94,-283,114,-283,9,-283,10,-283,104,-283,86,-283,92,-283,95,-283,30,-283,98,-283,12,-283,93,-283,29,-283,81,-283,80,-283,2,-283,79,-283,78,-283,77,-283,76,-283,131,-283}); states[397] = new State(-217); states[398] = new State(-218); states[399] = new State(new int[]{137,358,80,25,81,26,75,28,73,29,148,154,150,155,149,156,110,377,109,378,138,149,140,150,139,152,8,388,136,399,21,405,45,413,46,550,31,554,71,558,62,561,41,566,34,594},new int[]{-261,400,-262,401,-258,356,-86,175,-95,267,-96,268,-167,269,-133,196,-137,24,-138,27,-16,383,-186,384,-151,387,-153,147,-152,151,-259,390,-287,391,-242,397,-235,398,-267,402,-268,403,-264,404,-256,411,-29,412,-249,549,-116,553,-117,557,-213,563,-211,564,-210,565}); states[400] = new State(-254); states[401] = new State(-471); states[402] = new State(-219); states[403] = new State(-255); states[404] = new State(-257); states[405] = new State(new int[]{11,406,55,1330}); states[406] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,148,154,150,155,149,156,110,377,109,378,138,149,140,150,139,152,8,1003,12,-269,94,-269},new int[]{-150,407,-257,1329,-258,1328,-86,175,-95,267,-96,268,-167,386,-133,196,-137,24,-138,27,-16,383,-186,384,-151,387,-153,147,-152,151}); states[407] = new State(new int[]{12,408,94,1326}); states[408] = new State(new int[]{55,409}); states[409] = new State(new int[]{137,358,80,25,81,26,75,28,73,29,148,154,150,155,149,156,110,377,109,378,138,149,140,150,139,152,8,388,136,399,21,405,45,413,46,550,31,554,71,558,62,561,41,566,34,594},new int[]{-262,410,-258,356,-86,175,-95,267,-96,268,-167,269,-133,196,-137,24,-138,27,-16,383,-186,384,-151,387,-153,147,-152,151,-259,390,-287,391,-242,397,-235,398,-267,402,-268,403,-264,404,-256,411,-29,412,-249,549,-116,553,-117,557,-213,563,-211,564,-210,565}); states[410] = new State(-263); states[411] = new State(-264); states[412] = new State(-258); states[413] = new State(new int[]{8,1202,20,-305,11,-305,86,-305,79,-305,78,-305,77,-305,76,-305,26,-305,137,-305,80,-305,81,-305,75,-305,73,-305,59,-305,25,-305,23,-305,41,-305,34,-305,27,-305,28,-305,43,-305,24,-305},new int[]{-170,414}); states[414] = new State(new int[]{20,1193,11,-312,86,-312,79,-312,78,-312,77,-312,76,-312,26,-312,137,-312,80,-312,81,-312,75,-312,73,-312,59,-312,25,-312,23,-312,41,-312,34,-312,27,-312,28,-312,43,-312,24,-312},new int[]{-302,415,-301,1191,-300,1213}); states[415] = new State(new int[]{11,650,86,-329,79,-329,78,-329,77,-329,76,-329,26,-200,137,-200,80,-200,81,-200,75,-200,73,-200,59,-200,25,-200,23,-200,41,-200,34,-200,27,-200,28,-200,43,-200,24,-200},new int[]{-23,416,-30,1171,-32,420,-42,1172,-6,1173,-236,994,-31,1282,-51,1284,-50,426,-52,1283}); states[416] = new State(new int[]{86,417,79,1167,78,1168,77,1169,76,1170},new int[]{-7,418}); states[417] = new State(-287); states[418] = new State(new int[]{11,650,86,-329,79,-329,78,-329,77,-329,76,-329,26,-200,137,-200,80,-200,81,-200,75,-200,73,-200,59,-200,25,-200,23,-200,41,-200,34,-200,27,-200,28,-200,43,-200,24,-200},new int[]{-30,419,-32,420,-42,1172,-6,1173,-236,994,-31,1282,-51,1284,-50,426,-52,1283}); states[419] = new State(-324); states[420] = new State(new int[]{10,422,86,-335,79,-335,78,-335,77,-335,76,-335},new int[]{-177,421}); states[421] = new State(-330); states[422] = new State(new int[]{11,650,86,-336,79,-336,78,-336,77,-336,76,-336,26,-200,137,-200,80,-200,81,-200,75,-200,73,-200,59,-200,25,-200,23,-200,41,-200,34,-200,27,-200,28,-200,43,-200,24,-200},new int[]{-42,423,-31,424,-6,1173,-236,994,-51,1284,-50,426,-52,1283}); states[423] = new State(-338); states[424] = new State(new int[]{11,650,86,-332,79,-332,78,-332,77,-332,76,-332,25,-200,23,-200,41,-200,34,-200,27,-200,28,-200,43,-200,24,-200},new int[]{-51,425,-50,426,-6,427,-236,994,-52,1283}); states[425] = new State(-341); states[426] = new State(-342); states[427] = new State(new int[]{25,1238,23,1239,41,1186,34,1221,27,1253,28,1260,11,650,43,1267,24,1276},new int[]{-209,428,-236,429,-206,430,-244,431,-3,432,-217,1240,-215,1115,-212,1185,-216,1220,-214,1241,-202,1264,-203,1265,-205,1266}); states[428] = new State(-351); states[429] = new State(-199); states[430] = new State(-352); states[431] = new State(-370); states[432] = new State(new int[]{27,434,43,1065,24,1107,41,1186,34,1221},new int[]{-217,433,-203,1064,-215,1115,-212,1185,-216,1220}); states[433] = new State(-355); states[434] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,42,467,8,-365,104,-365,10,-365},new int[]{-158,435,-157,1047,-156,1048,-128,1049,-123,1050,-120,1051,-133,1056,-137,24,-138,27,-178,1057,-319,1059,-135,1063}); states[435] = new State(new int[]{8,568,104,-455,10,-455},new int[]{-114,436}); states[436] = new State(new int[]{104,438,10,1036},new int[]{-194,437}); states[437] = new State(-362); states[438] = new State(new int[]{135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,703,8,704,18,247,19,252,138,149,140,150,139,152,148,154,150,155,149,156,54,719,85,116,37,697,22,726,91,742,51,747,32,752,52,762,96,768,44,775,33,778,50,786,57,819,72,824,70,811,35,831,10,-479},new int[]{-246,439,-4,122,-101,123,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-15,687,-151,146,-153,147,-152,151,-16,153,-17,514,-55,688,-104,525,-199,717,-119,718,-241,723,-139,724,-33,725,-233,741,-303,746,-110,751,-304,761,-146,766,-288,767,-234,774,-109,777,-299,785,-56,815,-161,816,-160,817,-155,818,-112,823,-113,828,-111,829,-332,830}); states[439] = new State(new int[]{10,440}); states[440] = new State(-414); states[441] = new State(new int[]{135,1035,137,23,80,25,81,26,75,28,73,29,42,467,39,497,8,532,18,247,19,252,138,149,140,150,139,152,148,154,150,155,149,156},new int[]{-100,442,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-15,687,-151,146,-153,147,-152,151,-16,153,-17,514,-55,688}); states[442] = new State(new int[]{17,443,8,454,7,682,136,684,4,685,104,-727,105,-727,106,-727,107,-727,108,-727,86,-727,10,-727,92,-727,95,-727,30,-727,98,-727,132,-727,130,-727,112,-727,111,-727,125,-727,126,-727,127,-727,128,-727,124,-727,5,-727,110,-727,109,-727,122,-727,123,-727,120,-727,114,-727,119,-727,117,-727,115,-727,118,-727,116,-727,131,-727,16,-727,13,-727,94,-727,12,-727,9,-727,93,-727,29,-727,81,-727,80,-727,2,-727,79,-727,78,-727,77,-727,76,-727,113,-727,6,-727,48,-727,55,-727,135,-727,137,-727,75,-727,73,-727,42,-727,39,-727,18,-727,19,-727,138,-727,140,-727,139,-727,148,-727,150,-727,149,-727,54,-727,85,-727,37,-727,22,-727,91,-727,51,-727,32,-727,52,-727,96,-727,44,-727,33,-727,50,-727,57,-727,72,-727,70,-727,35,-727,68,-727,69,-727,11,-738}); states[443] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,532,18,247,19,252,5,624},new int[]{-106,444,-94,446,-77,308,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,628,-253,621}); states[444] = new State(new int[]{12,445}); states[445] = new State(-748); states[446] = new State(new int[]{5,299,110,303,109,304,122,305,123,306,120,307},new int[]{-184,137}); states[447] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,29,42,467,39,497,8,532,18,247,19,252},new int[]{-89,448,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525}); states[448] = new State(-719); states[449] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,29,42,467,39,497,8,532,18,247,19,252},new int[]{-89,450,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525}); states[450] = new State(-720); states[451] = new State(-721); states[452] = new State(-730); states[453] = new State(new int[]{17,443,8,454,7,682,136,684,4,685,15,690,104,-728,105,-728,106,-728,107,-728,108,-728,86,-728,10,-728,92,-728,95,-728,30,-728,98,-728,132,-728,130,-728,112,-728,111,-728,125,-728,126,-728,127,-728,128,-728,124,-728,5,-728,110,-728,109,-728,122,-728,123,-728,120,-728,114,-728,119,-728,117,-728,115,-728,118,-728,116,-728,131,-728,16,-728,13,-728,94,-728,12,-728,9,-728,93,-728,29,-728,81,-728,80,-728,2,-728,79,-728,78,-728,77,-728,76,-728,113,-728,6,-728,48,-728,55,-728,135,-728,137,-728,75,-728,73,-728,42,-728,39,-728,18,-728,19,-728,138,-728,140,-728,139,-728,148,-728,150,-728,149,-728,54,-728,85,-728,37,-728,22,-728,91,-728,51,-728,32,-728,52,-728,96,-728,44,-728,33,-728,50,-728,57,-728,72,-728,70,-728,35,-728,68,-728,69,-728,11,-738}); states[454] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,499,18,247,19,252,5,624,34,664,41,669,9,-755},new int[]{-64,455,-67,457,-83,518,-82,126,-92,127,-91,132,-90,290,-94,298,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,460,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622,-106,623,-307,662,-308,663}); states[455] = new State(new int[]{9,456}); states[456] = new State(-749); states[457] = new State(new int[]{94,458,12,-754,9,-754}); states[458] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,499,18,247,19,252,5,624,34,664,41,669},new int[]{-83,459,-82,126,-92,127,-91,132,-90,290,-94,298,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,460,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622,-106,623,-307,662,-308,663}); states[459] = new State(-578); states[460] = new State(new int[]{121,461,17,-740,8,-740,7,-740,136,-740,4,-740,15,-740,132,-740,130,-740,112,-740,111,-740,125,-740,126,-740,127,-740,128,-740,124,-740,5,-740,110,-740,109,-740,122,-740,123,-740,120,-740,114,-740,119,-740,117,-740,115,-740,118,-740,116,-740,131,-740,16,-740,13,-740,86,-740,10,-740,92,-740,95,-740,30,-740,98,-740,94,-740,12,-740,9,-740,93,-740,29,-740,81,-740,80,-740,2,-740,79,-740,78,-740,77,-740,76,-740,113,-740,11,-740}); states[461] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,499,18,247,19,252,34,664,41,669,85,116,37,697,51,747,91,742,32,752,33,778,70,811,22,726,96,768,57,819,44,775,72,878},new int[]{-313,462,-93,463,-92,464,-91,132,-90,290,-94,465,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,460,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622,-307,668,-308,663,-315,805,-241,695,-139,696,-303,806,-233,807,-110,808,-109,809,-111,810,-33,873,-288,874,-155,875,-234,876,-112,877}); states[462] = new State(-903); states[463] = new State(-938); states[464] = new State(new int[]{13,128,86,-587,10,-587,92,-587,95,-587,30,-587,98,-587,94,-587,12,-587,9,-587,93,-587,29,-587,81,-587,80,-587,2,-587,79,-587,78,-587,77,-587,76,-587}); states[465] = new State(new int[]{110,303,109,304,122,305,123,306,120,307,114,-611,119,-611,117,-611,115,-611,118,-611,116,-611,131,-611,16,-611,5,-611,13,-611,86,-611,10,-611,92,-611,95,-611,30,-611,98,-611,94,-611,12,-611,9,-611,93,-611,29,-611,81,-611,80,-611,2,-611,79,-611,78,-611,77,-611,76,-611,6,-611,48,-611,55,-611,135,-611,137,-611,75,-611,73,-611,42,-611,39,-611,8,-611,18,-611,19,-611,138,-611,140,-611,139,-611,148,-611,150,-611,149,-611,54,-611,85,-611,37,-611,22,-611,91,-611,51,-611,32,-611,52,-611,96,-611,44,-611,33,-611,50,-611,57,-611,72,-611,70,-611,35,-611,68,-611,69,-611},new int[]{-184,137}); states[466] = new State(-741); states[467] = new State(new int[]{109,469,110,470,111,471,112,472,114,473,115,474,116,475,117,476,118,477,119,478,122,479,123,480,124,481,125,482,126,483,127,484,128,485,129,486,131,487,133,488,134,489,104,491,105,492,106,493,107,494,108,495,113,496},new int[]{-187,468,-181,490}); states[468] = new State(-768); states[469] = new State(-875); states[470] = new State(-876); states[471] = new State(-877); states[472] = new State(-878); states[473] = new State(-879); states[474] = new State(-880); states[475] = new State(-881); states[476] = new State(-882); states[477] = new State(-883); states[478] = new State(-884); states[479] = new State(-885); states[480] = new State(-886); states[481] = new State(-887); states[482] = new State(-888); states[483] = new State(-889); states[484] = new State(-890); states[485] = new State(-891); states[486] = new State(-892); states[487] = new State(-893); states[488] = new State(-894); states[489] = new State(-895); states[490] = new State(-896); states[491] = new State(-898); states[492] = new State(-899); states[493] = new State(-900); states[494] = new State(-901); states[495] = new State(-902); states[496] = new State(-897); states[497] = new State(new int[]{137,23,80,25,81,26,75,28,73,29},new int[]{-133,498,-137,24,-138,27}); states[498] = new State(-742); states[499] = new State(new int[]{9,1012,53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,532,18,247,19,252,5,624},new int[]{-82,500,-92,502,-133,1016,-91,132,-90,290,-94,298,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622,-106,623}); states[500] = new State(new int[]{9,501}); states[501] = new State(-743); states[502] = new State(new int[]{94,503,13,128,9,-583}); states[503] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,532,18,247,19,252},new int[]{-74,504,-92,998,-91,132,-90,290,-94,465,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622}); states[504] = new State(new int[]{94,996,5,547,10,-922,9,-922},new int[]{-309,505}); states[505] = new State(new int[]{10,539,9,-910},new int[]{-316,506}); states[506] = new State(new int[]{9,507}); states[507] = new State(new int[]{5,999,7,-714,132,-714,130,-714,112,-714,111,-714,125,-714,126,-714,127,-714,128,-714,124,-714,110,-714,109,-714,122,-714,123,-714,120,-714,114,-714,119,-714,117,-714,115,-714,118,-714,116,-714,131,-714,16,-714,13,-714,86,-714,10,-714,92,-714,95,-714,30,-714,98,-714,94,-714,12,-714,9,-714,93,-714,29,-714,81,-714,80,-714,2,-714,79,-714,78,-714,77,-714,76,-714,113,-714,121,-924},new int[]{-320,508,-310,509}); states[508] = new State(-908); states[509] = new State(new int[]{121,510}); states[510] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,499,18,247,19,252,34,664,41,669,85,116,37,697,51,747,91,742,32,752,33,778,70,811,22,726,96,768,57,819,44,775,72,878},new int[]{-313,511,-93,463,-92,464,-91,132,-90,290,-94,465,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,460,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622,-307,668,-308,663,-315,805,-241,695,-139,696,-303,806,-233,807,-110,808,-109,809,-111,810,-33,873,-288,874,-155,875,-234,876,-112,877}); states[511] = new State(-912); states[512] = new State(-744); states[513] = new State(-745); states[514] = new State(new int[]{11,515}); states[515] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,499,18,247,19,252,5,624,34,664,41,669},new int[]{-67,516,-83,518,-82,126,-92,127,-91,132,-90,290,-94,298,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,460,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622,-106,623,-307,662,-308,663}); states[516] = new State(new int[]{12,517,94,458}); states[517] = new State(-747); states[518] = new State(-577); states[519] = new State(new int[]{7,520,132,-722,130,-722,112,-722,111,-722,125,-722,126,-722,127,-722,128,-722,124,-722,5,-722,110,-722,109,-722,122,-722,123,-722,120,-722,114,-722,119,-722,117,-722,115,-722,118,-722,116,-722,131,-722,16,-722,13,-722,86,-722,10,-722,92,-722,95,-722,30,-722,98,-722,94,-722,12,-722,9,-722,93,-722,29,-722,81,-722,80,-722,2,-722,79,-722,78,-722,77,-722,76,-722,113,-722,6,-722,48,-722,55,-722,135,-722,137,-722,75,-722,73,-722,42,-722,39,-722,8,-722,18,-722,19,-722,138,-722,140,-722,139,-722,148,-722,150,-722,149,-722,54,-722,85,-722,37,-722,22,-722,91,-722,51,-722,32,-722,52,-722,96,-722,44,-722,33,-722,50,-722,57,-722,72,-722,70,-722,35,-722,68,-722,69,-722}); states[520] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,79,32,78,33,77,34,76,35,66,36,61,37,122,38,19,39,18,40,60,41,20,42,123,43,124,44,125,45,126,46,127,47,128,48,129,49,130,50,131,51,132,52,21,53,71,54,85,55,22,56,23,57,26,58,27,59,28,60,69,61,93,62,29,63,30,64,31,65,24,66,98,67,95,68,32,69,33,70,34,71,37,72,38,73,39,74,97,75,40,76,41,77,43,78,44,79,45,80,91,81,46,82,96,83,47,84,25,85,48,86,68,87,92,88,49,89,50,90,51,91,52,92,53,93,54,94,55,95,56,96,58,97,99,98,100,99,103,100,101,101,102,102,59,103,72,104,35,105,36,106,42,467},new int[]{-134,521,-133,522,-137,24,-138,27,-279,523,-136,31,-178,524}); states[521] = new State(-751); states[522] = new State(-781); states[523] = new State(-782); states[524] = new State(-783); states[525] = new State(-729); states[526] = new State(-701); states[527] = new State(-702); states[528] = new State(new int[]{113,529}); states[529] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,29,42,467,39,497,8,532,18,247,19,252},new int[]{-89,530,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525}); states[530] = new State(-699); states[531] = new State(-740); states[532] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,532,18,247,19,252,5,624},new int[]{-82,500,-92,533,-91,132,-90,290,-94,298,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622,-106,623}); states[533] = new State(new int[]{94,534,13,128,9,-583}); states[534] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,532,18,247,19,252},new int[]{-74,535,-92,998,-91,132,-90,290,-94,465,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622}); states[535] = new State(new int[]{94,996,5,547,10,-922,9,-922},new int[]{-309,536}); states[536] = new State(new int[]{10,539,9,-910},new int[]{-316,537}); states[537] = new State(new int[]{9,538}); states[538] = new State(-714); states[539] = new State(new int[]{137,23,80,25,81,26,75,28,73,29},new int[]{-311,540,-312,977,-144,543,-133,795,-137,24,-138,27}); states[540] = new State(new int[]{10,541,9,-911}); states[541] = new State(new int[]{137,23,80,25,81,26,75,28,73,29},new int[]{-312,542,-144,543,-133,795,-137,24,-138,27}); states[542] = new State(-920); states[543] = new State(new int[]{94,545,5,547,10,-922,9,-922},new int[]{-309,544}); states[544] = new State(-921); states[545] = new State(new int[]{137,23,80,25,81,26,75,28,73,29},new int[]{-133,546,-137,24,-138,27}); states[546] = new State(-334); states[547] = new State(new int[]{137,358,80,25,81,26,75,28,73,29,148,154,150,155,149,156,110,377,109,378,138,149,140,150,139,152,8,388,136,399,21,405,45,413,46,550,31,554,71,558,62,561,41,566,34,594},new int[]{-261,548,-262,401,-258,356,-86,175,-95,267,-96,268,-167,269,-133,196,-137,24,-138,27,-16,383,-186,384,-151,387,-153,147,-152,151,-259,390,-287,391,-242,397,-235,398,-267,402,-268,403,-264,404,-256,411,-29,412,-249,549,-116,553,-117,557,-213,563,-211,564,-210,565}); states[548] = new State(-923); states[549] = new State(-259); states[550] = new State(new int[]{55,551}); states[551] = new State(new int[]{137,358,80,25,81,26,75,28,73,29,148,154,150,155,149,156,110,377,109,378,138,149,140,150,139,152,8,388,136,399,21,405,45,413,46,550,31,554,71,558,62,561,41,566,34,594},new int[]{-262,552,-258,356,-86,175,-95,267,-96,268,-167,269,-133,196,-137,24,-138,27,-16,383,-186,384,-151,387,-153,147,-152,151,-259,390,-287,391,-242,397,-235,398,-267,402,-268,403,-264,404,-256,411,-29,412,-249,549,-116,553,-117,557,-213,563,-211,564,-210,565}); states[552] = new State(-270); states[553] = new State(-260); states[554] = new State(new int[]{55,555,115,-272,94,-272,114,-272,9,-272,10,-272,121,-272,104,-272,86,-272,92,-272,95,-272,30,-272,98,-272,12,-272,93,-272,29,-272,81,-272,80,-272,2,-272,79,-272,78,-272,77,-272,76,-272,131,-272}); states[555] = new State(new int[]{137,358,80,25,81,26,75,28,73,29,148,154,150,155,149,156,110,377,109,378,138,149,140,150,139,152,8,388,136,399,21,405,45,413,46,550,31,554,71,558,62,561,41,566,34,594},new int[]{-262,556,-258,356,-86,175,-95,267,-96,268,-167,269,-133,196,-137,24,-138,27,-16,383,-186,384,-151,387,-153,147,-152,151,-259,390,-287,391,-242,397,-235,398,-267,402,-268,403,-264,404,-256,411,-29,412,-249,549,-116,553,-117,557,-213,563,-211,564,-210,565}); states[556] = new State(-271); states[557] = new State(-261); states[558] = new State(new int[]{55,559}); states[559] = new State(new int[]{137,358,80,25,81,26,75,28,73,29,148,154,150,155,149,156,110,377,109,378,138,149,140,150,139,152,8,388,136,399,21,405,45,413,46,550,31,554,71,558,62,561,41,566,34,594},new int[]{-262,560,-258,356,-86,175,-95,267,-96,268,-167,269,-133,196,-137,24,-138,27,-16,383,-186,384,-151,387,-153,147,-152,151,-259,390,-287,391,-242,397,-235,398,-267,402,-268,403,-264,404,-256,411,-29,412,-249,549,-116,553,-117,557,-213,563,-211,564,-210,565}); states[560] = new State(-262); states[561] = new State(new int[]{21,405,45,413,46,550,31,554,71,558},new int[]{-268,562,-264,404,-256,411,-29,412,-249,549,-116,553,-117,557}); states[562] = new State(-256); states[563] = new State(-220); states[564] = new State(-274); states[565] = new State(-275); states[566] = new State(new int[]{8,568,115,-455,94,-455,114,-455,9,-455,10,-455,121,-455,104,-455,86,-455,92,-455,95,-455,30,-455,98,-455,12,-455,93,-455,29,-455,81,-455,80,-455,2,-455,79,-455,78,-455,77,-455,76,-455,131,-455},new int[]{-114,567}); states[567] = new State(-276); states[568] = new State(new int[]{9,569,11,650,137,-200,80,-200,81,-200,75,-200,73,-200,50,-200,26,-200,102,-200},new int[]{-115,570,-53,995,-6,574,-236,994}); states[569] = new State(-456); states[570] = new State(new int[]{9,571,10,572}); states[571] = new State(-457); states[572] = new State(new int[]{11,650,137,-200,80,-200,81,-200,75,-200,73,-200,50,-200,26,-200,102,-200},new int[]{-53,573,-6,574,-236,994}); states[573] = new State(-459); states[574] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,50,634,26,640,102,646,11,650},new int[]{-282,575,-236,429,-145,576,-121,633,-133,632,-137,24,-138,27}); states[575] = new State(-460); states[576] = new State(new int[]{5,577,94,630}); states[577] = new State(new int[]{137,358,80,25,81,26,75,28,73,29,148,154,150,155,149,156,110,377,109,378,138,149,140,150,139,152,8,388,136,399,21,405,45,413,46,550,31,554,71,558,62,561,41,566,34,594},new int[]{-261,578,-262,401,-258,356,-86,175,-95,267,-96,268,-167,269,-133,196,-137,24,-138,27,-16,383,-186,384,-151,387,-153,147,-152,151,-259,390,-287,391,-242,397,-235,398,-267,402,-268,403,-264,404,-256,411,-29,412,-249,549,-116,553,-117,557,-213,563,-211,564,-210,565}); states[578] = new State(new int[]{104,579,9,-461,10,-461}); states[579] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,532,18,247,19,252,5,624},new int[]{-82,580,-92,127,-91,132,-90,290,-94,298,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622,-106,623}); states[580] = new State(-465); states[581] = new State(-705); states[582] = new State(new int[]{8,583,132,-694,130,-694,112,-694,111,-694,125,-694,126,-694,127,-694,128,-694,124,-694,5,-694,110,-694,109,-694,122,-694,123,-694,120,-694,114,-694,119,-694,117,-694,115,-694,118,-694,116,-694,131,-694,16,-694,13,-694,86,-694,10,-694,92,-694,95,-694,30,-694,98,-694,94,-694,12,-694,9,-694,93,-694,29,-694,81,-694,80,-694,2,-694,79,-694,78,-694,77,-694,76,-694,6,-694,48,-694,55,-694,135,-694,137,-694,75,-694,73,-694,42,-694,39,-694,18,-694,19,-694,138,-694,140,-694,139,-694,148,-694,150,-694,149,-694,54,-694,85,-694,37,-694,22,-694,91,-694,51,-694,32,-694,52,-694,96,-694,44,-694,33,-694,50,-694,57,-694,72,-694,70,-694,35,-694,68,-694,69,-694}); states[583] = new State(new int[]{14,588,138,149,140,150,139,152,148,154,150,155,149,156,50,590,137,23,80,25,81,26,75,28,73,29,11,334,8,607},new int[]{-338,584,-335,620,-15,589,-151,146,-153,147,-152,151,-16,153,-324,598,-270,599,-167,162,-133,196,-137,24,-138,27,-327,605,-328,606}); states[584] = new State(new int[]{9,585,10,586,94,603}); states[585] = new State(-613); states[586] = new State(new int[]{14,588,138,149,140,150,139,152,148,154,150,155,149,156,50,590,137,23,80,25,81,26,75,28,73,29,11,334,8,607},new int[]{-335,587,-15,589,-151,146,-153,147,-152,151,-16,153,-324,598,-270,599,-167,162,-133,196,-137,24,-138,27,-327,605,-328,606}); states[587] = new State(-648); states[588] = new State(-650); states[589] = new State(-651); states[590] = new State(new int[]{137,23,80,25,81,26,75,28,73,29},new int[]{-133,591,-137,24,-138,27}); states[591] = new State(new int[]{5,592,9,-653,10,-653,94,-653}); states[592] = new State(new int[]{137,358,80,25,81,26,75,28,73,29,148,154,150,155,149,156,110,377,109,378,138,149,140,150,139,152,8,388,136,399,21,405,45,413,46,550,31,554,71,558,62,561,41,566,34,594},new int[]{-262,593,-258,356,-86,175,-95,267,-96,268,-167,269,-133,196,-137,24,-138,27,-16,383,-186,384,-151,387,-153,147,-152,151,-259,390,-287,391,-242,397,-235,398,-267,402,-268,403,-264,404,-256,411,-29,412,-249,549,-116,553,-117,557,-213,563,-211,564,-210,565}); states[593] = new State(-652); states[594] = new State(new int[]{8,568,5,-455},new int[]{-114,595}); states[595] = new State(new int[]{5,596}); states[596] = new State(new int[]{137,358,80,25,81,26,75,28,73,29,148,154,150,155,149,156,110,377,109,378,138,149,140,150,139,152,8,388,136,399,21,405,45,413,46,550,31,554,71,558,62,561,41,566,34,594},new int[]{-261,597,-262,401,-258,356,-86,175,-95,267,-96,268,-167,269,-133,196,-137,24,-138,27,-16,383,-186,384,-151,387,-153,147,-152,151,-259,390,-287,391,-242,397,-235,398,-267,402,-268,403,-264,404,-256,411,-29,412,-249,549,-116,553,-117,557,-213,563,-211,564,-210,565}); states[597] = new State(-277); states[598] = new State(-654); states[599] = new State(new int[]{8,600}); states[600] = new State(new int[]{14,588,138,149,140,150,139,152,148,154,150,155,149,156,50,590,137,23,80,25,81,26,75,28,73,29,11,334,8,607},new int[]{-338,601,-335,620,-15,589,-151,146,-153,147,-152,151,-16,153,-324,598,-270,599,-167,162,-133,196,-137,24,-138,27,-327,605,-328,606}); states[601] = new State(new int[]{9,602,10,586,94,603}); states[602] = new State(-616); states[603] = new State(new int[]{14,588,138,149,140,150,139,152,148,154,150,155,149,156,50,590,137,23,80,25,81,26,75,28,73,29,11,334,8,607},new int[]{-335,604,-15,589,-151,146,-153,147,-152,151,-16,153,-324,598,-270,599,-167,162,-133,196,-137,24,-138,27,-327,605,-328,606}); states[604] = new State(-649); states[605] = new State(-655); states[606] = new State(-656); states[607] = new State(new int[]{14,612,138,149,140,150,139,152,148,154,150,155,149,156,50,614,137,23,80,25,81,26,75,28,73,29,11,334,8,607},new int[]{-341,608,-330,619,-15,613,-151,146,-153,147,-152,151,-16,153,-325,616,-270,345,-167,162,-133,196,-137,24,-138,27,-327,617,-328,618}); states[608] = new State(new int[]{9,609,94,610}); states[609] = new State(-635); states[610] = new State(new int[]{14,612,138,149,140,150,139,152,148,154,150,155,149,156,50,614,137,23,80,25,81,26,75,28,73,29,11,334,8,607},new int[]{-330,611,-15,613,-151,146,-153,147,-152,151,-16,153,-325,616,-270,345,-167,162,-133,196,-137,24,-138,27,-327,617,-328,618}); states[611] = new State(-643); states[612] = new State(-636); states[613] = new State(-637); states[614] = new State(new int[]{137,23,80,25,81,26,75,28,73,29},new int[]{-133,615,-137,24,-138,27}); states[615] = new State(-638); states[616] = new State(-639); states[617] = new State(-640); states[618] = new State(-641); states[619] = new State(-642); states[620] = new State(-647); states[621] = new State(-695); states[622] = new State(-586); states[623] = new State(-584); states[624] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,532,18,247,19,252,5,-667,86,-667,10,-667,92,-667,95,-667,30,-667,98,-667,94,-667,12,-667,9,-667,93,-667,29,-667,2,-667,79,-667,78,-667,77,-667,76,-667,6,-667},new int[]{-103,625,-94,629,-77,308,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,628,-253,621}); states[625] = new State(new int[]{5,626,86,-671,10,-671,92,-671,95,-671,30,-671,98,-671,94,-671,12,-671,9,-671,93,-671,29,-671,81,-671,80,-671,2,-671,79,-671,78,-671,77,-671,76,-671,6,-671}); states[626] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,532,18,247,19,252},new int[]{-94,627,-77,308,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,628,-253,621}); states[627] = new State(new int[]{110,303,109,304,122,305,123,306,120,307,86,-673,10,-673,92,-673,95,-673,30,-673,98,-673,94,-673,12,-673,9,-673,93,-673,29,-673,81,-673,80,-673,2,-673,79,-673,78,-673,77,-673,76,-673,6,-673},new int[]{-184,137}); states[628] = new State(-694); states[629] = new State(new int[]{110,303,109,304,122,305,123,306,120,307,5,-666,86,-666,10,-666,92,-666,95,-666,30,-666,98,-666,94,-666,12,-666,9,-666,93,-666,29,-666,81,-666,80,-666,2,-666,79,-666,78,-666,77,-666,76,-666,6,-666},new int[]{-184,137}); states[630] = new State(new int[]{137,23,80,25,81,26,75,28,73,29},new int[]{-121,631,-133,632,-137,24,-138,27}); states[631] = new State(-469); states[632] = new State(-470); states[633] = new State(-468); states[634] = new State(new int[]{137,23,80,25,81,26,75,28,73,29},new int[]{-145,635,-121,633,-133,632,-137,24,-138,27}); states[635] = new State(new int[]{5,636,94,630}); states[636] = new State(new int[]{137,358,80,25,81,26,75,28,73,29,148,154,150,155,149,156,110,377,109,378,138,149,140,150,139,152,8,388,136,399,21,405,45,413,46,550,31,554,71,558,62,561,41,566,34,594},new int[]{-261,637,-262,401,-258,356,-86,175,-95,267,-96,268,-167,269,-133,196,-137,24,-138,27,-16,383,-186,384,-151,387,-153,147,-152,151,-259,390,-287,391,-242,397,-235,398,-267,402,-268,403,-264,404,-256,411,-29,412,-249,549,-116,553,-117,557,-213,563,-211,564,-210,565}); states[637] = new State(new int[]{104,638,9,-462,10,-462}); states[638] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,532,18,247,19,252,5,624},new int[]{-82,639,-92,127,-91,132,-90,290,-94,298,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622,-106,623}); states[639] = new State(-466); states[640] = new State(new int[]{137,23,80,25,81,26,75,28,73,29},new int[]{-145,641,-121,633,-133,632,-137,24,-138,27}); states[641] = new State(new int[]{5,642,94,630}); states[642] = new State(new int[]{137,358,80,25,81,26,75,28,73,29,148,154,150,155,149,156,110,377,109,378,138,149,140,150,139,152,8,388,136,399,21,405,45,413,46,550,31,554,71,558,62,561,41,566,34,594},new int[]{-261,643,-262,401,-258,356,-86,175,-95,267,-96,268,-167,269,-133,196,-137,24,-138,27,-16,383,-186,384,-151,387,-153,147,-152,151,-259,390,-287,391,-242,397,-235,398,-267,402,-268,403,-264,404,-256,411,-29,412,-249,549,-116,553,-117,557,-213,563,-211,564,-210,565}); states[643] = new State(new int[]{104,644,9,-463,10,-463}); states[644] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,532,18,247,19,252,5,624},new int[]{-82,645,-92,127,-91,132,-90,290,-94,298,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622,-106,623}); states[645] = new State(-467); states[646] = new State(new int[]{137,23,80,25,81,26,75,28,73,29},new int[]{-145,647,-121,633,-133,632,-137,24,-138,27}); states[647] = new State(new int[]{5,648,94,630}); states[648] = new State(new int[]{137,358,80,25,81,26,75,28,73,29,148,154,150,155,149,156,110,377,109,378,138,149,140,150,139,152,8,388,136,399,21,405,45,413,46,550,31,554,71,558,62,561,41,566,34,594},new int[]{-261,649,-262,401,-258,356,-86,175,-95,267,-96,268,-167,269,-133,196,-137,24,-138,27,-16,383,-186,384,-151,387,-153,147,-152,151,-259,390,-287,391,-242,397,-235,398,-267,402,-268,403,-264,404,-256,411,-29,412,-249,549,-116,553,-117,557,-213,563,-211,564,-210,565}); states[649] = new State(-464); states[650] = new State(new int[]{137,23,80,25,81,26,75,28,73,29},new int[]{-237,651,-8,993,-9,655,-167,656,-133,988,-137,24,-138,27,-287,991}); states[651] = new State(new int[]{12,652,94,653}); states[652] = new State(-201); states[653] = new State(new int[]{137,23,80,25,81,26,75,28,73,29},new int[]{-8,654,-9,655,-167,656,-133,988,-137,24,-138,27,-287,991}); states[654] = new State(-203); states[655] = new State(-204); states[656] = new State(new int[]{7,163,8,659,117,168,12,-609,94,-609},new int[]{-66,657,-285,658}); states[657] = new State(-732); states[658] = new State(-222); states[659] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,499,18,247,19,252,5,624,34,664,41,669,9,-755},new int[]{-64,660,-67,457,-83,518,-82,126,-92,127,-91,132,-90,290,-94,298,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,460,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622,-106,623,-307,662,-308,663}); states[660] = new State(new int[]{9,661}); states[661] = new State(-610); states[662] = new State(-582); states[663] = new State(-909); states[664] = new State(new int[]{8,978,5,547,121,-922},new int[]{-309,665}); states[665] = new State(new int[]{121,666}); states[666] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,499,18,247,19,252,34,664,41,669,85,116,37,697,51,747,91,742,32,752,33,778,70,811,22,726,96,768,57,819,44,775,72,878},new int[]{-313,667,-93,463,-92,464,-91,132,-90,290,-94,465,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,460,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622,-307,668,-308,663,-315,805,-241,695,-139,696,-303,806,-233,807,-110,808,-109,809,-111,810,-33,873,-288,874,-155,875,-234,876,-112,877}); states[667] = new State(-913); states[668] = new State(-588); states[669] = new State(new int[]{121,670,8,969}); states[670] = new State(new int[]{135,452,137,23,80,25,81,26,75,28,73,29,42,467,39,497,8,673,18,247,19,252,138,149,140,150,139,152,148,154,150,155,149,156,85,116,37,697,51,747,91,742,32,752,33,778,70,811,22,726,96,768,57,819,44,775,72,878},new int[]{-314,671,-199,672,-101,123,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-15,687,-151,146,-153,147,-152,151,-16,153,-17,514,-55,688,-104,525,-4,693,-315,694,-241,695,-139,696,-303,806,-233,807,-110,808,-109,809,-111,810,-33,873,-288,874,-155,875,-234,876,-112,877}); states[671] = new State(-916); states[672] = new State(-940); states[673] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,532,18,247,19,252,5,624},new int[]{-82,500,-92,533,-100,674,-91,132,-90,290,-94,298,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622,-106,623}); states[674] = new State(new int[]{94,675,17,443,8,454,7,682,136,684,4,685,15,690,132,-728,130,-728,112,-728,111,-728,125,-728,126,-728,127,-728,128,-728,124,-728,5,-728,110,-728,109,-728,122,-728,123,-728,120,-728,114,-728,119,-728,117,-728,115,-728,118,-728,116,-728,131,-728,16,-728,13,-728,9,-728,113,-728,11,-738}); states[675] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,42,467,39,497,8,532,18,247,19,252,138,149,140,150,139,152,148,154,150,155,149,156},new int[]{-321,676,-100,689,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-15,687,-151,146,-153,147,-152,151,-16,153,-17,514,-55,688}); states[676] = new State(new int[]{9,677,94,680}); states[677] = new State(new int[]{104,491,105,492,106,493,107,494,108,495},new int[]{-181,678}); states[678] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,532,18,247,19,252,5,624},new int[]{-82,679,-92,127,-91,132,-90,290,-94,298,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622,-106,623}); states[679] = new State(-508); states[680] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,42,467,39,497,8,532,18,247,19,252,138,149,140,150,139,152,148,154,150,155,149,156},new int[]{-100,681,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-15,687,-151,146,-153,147,-152,151,-16,153,-17,514,-55,688}); states[681] = new State(new int[]{17,443,8,454,7,682,136,684,4,685,9,-510,94,-510,11,-738}); states[682] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,79,32,78,33,77,34,76,35,66,36,61,37,122,38,19,39,18,40,60,41,20,42,123,43,124,44,125,45,126,46,127,47,128,48,129,49,130,50,131,51,132,52,21,53,71,54,85,55,22,56,23,57,26,58,27,59,28,60,69,61,93,62,29,63,30,64,31,65,24,66,98,67,95,68,32,69,33,70,34,71,37,72,38,73,39,74,97,75,40,76,41,77,43,78,44,79,45,80,91,81,46,82,96,83,47,84,25,85,48,86,68,87,92,88,49,89,50,90,51,91,52,92,53,93,54,94,55,95,56,96,58,97,99,98,100,99,103,100,101,101,102,102,59,103,72,104,35,105,36,106,42,467},new int[]{-134,683,-133,522,-137,24,-138,27,-279,523,-136,31,-178,524}); states[683] = new State(-750); states[684] = new State(-752); states[685] = new State(new int[]{117,168},new int[]{-285,686}); states[686] = new State(-753); states[687] = new State(new int[]{7,144,11,-739}); states[688] = new State(new int[]{7,520}); states[689] = new State(new int[]{17,443,8,454,7,682,136,684,4,685,9,-509,94,-509,11,-738}); states[690] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,42,467,39,497,8,532,18,247,19,252,138,149,140,150,139,152,148,154,150,155,149,156},new int[]{-100,691,-104,692,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-15,687,-151,146,-153,147,-152,151,-16,153,-17,514,-55,688}); states[691] = new State(new int[]{17,443,8,454,7,682,136,684,4,685,15,690,104,-725,105,-725,106,-725,107,-725,108,-725,86,-725,10,-725,92,-725,95,-725,30,-725,98,-725,132,-725,130,-725,112,-725,111,-725,125,-725,126,-725,127,-725,128,-725,124,-725,5,-725,110,-725,109,-725,122,-725,123,-725,120,-725,114,-725,119,-725,117,-725,115,-725,118,-725,116,-725,131,-725,16,-725,13,-725,94,-725,12,-725,9,-725,93,-725,29,-725,81,-725,80,-725,2,-725,79,-725,78,-725,77,-725,76,-725,113,-725,6,-725,48,-725,55,-725,135,-725,137,-725,75,-725,73,-725,42,-725,39,-725,18,-725,19,-725,138,-725,140,-725,139,-725,148,-725,150,-725,149,-725,54,-725,85,-725,37,-725,22,-725,91,-725,51,-725,32,-725,52,-725,96,-725,44,-725,33,-725,50,-725,57,-725,72,-725,70,-725,35,-725,68,-725,69,-725,11,-738}); states[692] = new State(-726); states[693] = new State(-941); states[694] = new State(-942); states[695] = new State(-926); states[696] = new State(-927); states[697] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,532,18,247,19,252},new int[]{-92,698,-91,132,-90,290,-94,465,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622}); states[698] = new State(new int[]{48,699,13,128}); states[699] = new State(new int[]{135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,703,8,704,18,247,19,252,138,149,140,150,139,152,148,154,150,155,149,156,54,719,85,116,37,697,22,726,91,742,51,747,32,752,52,762,96,768,44,775,33,778,50,786,57,819,72,824,70,811,35,831,86,-479,10,-479,92,-479,95,-479,30,-479,98,-479,94,-479,12,-479,9,-479,93,-479,29,-479,2,-479,79,-479,78,-479,77,-479,76,-479},new int[]{-246,700,-4,122,-101,123,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-15,687,-151,146,-153,147,-152,151,-16,153,-17,514,-55,688,-104,525,-199,717,-119,718,-241,723,-139,724,-33,725,-233,741,-303,746,-110,751,-304,761,-146,766,-288,767,-234,774,-109,777,-299,785,-56,815,-161,816,-160,817,-155,818,-112,823,-113,828,-111,829,-332,830}); states[700] = new State(new int[]{29,701,86,-518,10,-518,92,-518,95,-518,30,-518,98,-518,94,-518,12,-518,9,-518,93,-518,81,-518,80,-518,2,-518,79,-518,78,-518,77,-518,76,-518}); states[701] = new State(new int[]{135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,703,8,704,18,247,19,252,138,149,140,150,139,152,148,154,150,155,149,156,54,719,85,116,37,697,22,726,91,742,51,747,32,752,52,762,96,768,44,775,33,778,50,786,57,819,72,824,70,811,35,831,86,-479,10,-479,92,-479,95,-479,30,-479,98,-479,94,-479,12,-479,9,-479,93,-479,29,-479,2,-479,79,-479,78,-479,77,-479,76,-479},new int[]{-246,702,-4,122,-101,123,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-15,687,-151,146,-153,147,-152,151,-16,153,-17,514,-55,688,-104,525,-199,717,-119,718,-241,723,-139,724,-33,725,-233,741,-303,746,-110,751,-304,761,-146,766,-288,767,-234,774,-109,777,-299,785,-56,815,-161,816,-160,817,-155,818,-112,823,-113,828,-111,829,-332,830}); states[702] = new State(-519); states[703] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,86,-559,10,-559,92,-559,95,-559,30,-559,98,-559,94,-559,12,-559,9,-559,93,-559,29,-559,2,-559,79,-559,78,-559,77,-559,76,-559},new int[]{-133,498,-137,24,-138,27}); states[704] = new State(new int[]{50,705,53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,532,18,247,19,252,5,624},new int[]{-82,500,-92,533,-100,674,-91,132,-90,290,-94,298,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622,-106,623}); states[705] = new State(new int[]{137,23,80,25,81,26,75,28,73,29},new int[]{-133,706,-137,24,-138,27}); states[706] = new State(new int[]{94,707}); states[707] = new State(new int[]{50,715},new int[]{-322,708}); states[708] = new State(new int[]{9,709,94,712}); states[709] = new State(new int[]{104,710}); states[710] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,532,18,247,19,252,5,624},new int[]{-82,711,-92,127,-91,132,-90,290,-94,298,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622,-106,623}); states[711] = new State(-505); states[712] = new State(new int[]{50,713}); states[713] = new State(new int[]{137,23,80,25,81,26,75,28,73,29},new int[]{-133,714,-137,24,-138,27}); states[714] = new State(-512); states[715] = new State(new int[]{137,23,80,25,81,26,75,28,73,29},new int[]{-133,716,-137,24,-138,27}); states[716] = new State(-511); states[717] = new State(-481); states[718] = new State(-482); states[719] = new State(new int[]{148,721,137,23,80,25,81,26,75,28,73,29},new int[]{-129,720,-133,722,-137,24,-138,27}); states[720] = new State(-514); states[721] = new State(-92); states[722] = new State(-93); states[723] = new State(-483); states[724] = new State(-484); states[725] = new State(-485); states[726] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,532,18,247,19,252},new int[]{-92,727,-91,132,-90,290,-94,465,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622}); states[727] = new State(new int[]{55,728,13,128}); states[728] = new State(new int[]{137,23,80,25,81,26,75,28,73,227,138,149,140,150,139,152,148,154,150,155,149,156,39,244,18,247,19,252,11,363,53,367,135,368,8,370,129,373,110,377,109,378,29,736,86,-539},new int[]{-34,729,-239,966,-248,968,-69,959,-99,965,-87,964,-84,186,-76,191,-12,215,-10,225,-13,201,-133,226,-137,24,-138,27,-151,242,-153,147,-152,151,-16,243,-243,246,-281,251,-226,362,-186,375,-160,379,-251,380,-255,381,-228,382}); states[729] = new State(new int[]{10,732,29,736,86,-539},new int[]{-239,730}); states[730] = new State(new int[]{86,731}); states[731] = new State(-530); states[732] = new State(new int[]{29,736,137,23,80,25,81,26,75,28,73,227,138,149,140,150,139,152,148,154,150,155,149,156,39,244,18,247,19,252,11,363,53,367,135,368,8,370,129,373,110,377,109,378,86,-539},new int[]{-239,733,-248,735,-69,959,-99,965,-87,964,-84,186,-76,191,-12,215,-10,225,-13,201,-133,226,-137,24,-138,27,-151,242,-153,147,-152,151,-16,243,-243,246,-281,251,-226,362,-186,375,-160,379,-251,380,-255,381,-228,382}); states[733] = new State(new int[]{86,734}); states[734] = new State(-531); states[735] = new State(-534); states[736] = new State(new int[]{135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,703,8,704,18,247,19,252,138,149,140,150,139,152,148,740,150,155,149,156,54,719,85,116,37,697,22,726,91,742,51,747,32,752,52,762,96,768,44,775,33,778,50,786,57,819,72,824,70,811,35,831,10,-479,86,-479},new int[]{-238,737,-247,738,-246,121,-4,122,-101,123,-118,441,-100,453,-133,739,-137,24,-138,27,-178,466,-243,512,-281,513,-15,687,-151,146,-153,147,-152,151,-16,153,-17,514,-55,688,-104,525,-199,717,-119,718,-241,723,-139,724,-33,725,-233,741,-303,746,-110,751,-304,761,-146,766,-288,767,-234,774,-109,777,-299,785,-56,815,-161,816,-160,817,-155,818,-112,823,-113,828,-111,829,-332,830,-129,926}); states[737] = new State(new int[]{10,119,86,-540}); states[738] = new State(-516); states[739] = new State(new int[]{17,-740,8,-740,7,-740,136,-740,4,-740,15,-740,104,-740,105,-740,106,-740,107,-740,108,-740,86,-740,10,-740,11,-740,92,-740,95,-740,30,-740,98,-740,5,-93}); states[740] = new State(new int[]{7,-179,11,-179,5,-92}); states[741] = new State(-486); states[742] = new State(new int[]{135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,703,8,704,18,247,19,252,138,149,140,150,139,152,148,740,150,155,149,156,54,719,85,116,37,697,22,726,91,742,51,747,32,752,52,762,96,768,44,775,33,778,50,786,57,819,72,824,70,811,35,831,92,-479,10,-479},new int[]{-238,743,-247,738,-246,121,-4,122,-101,123,-118,441,-100,453,-133,739,-137,24,-138,27,-178,466,-243,512,-281,513,-15,687,-151,146,-153,147,-152,151,-16,153,-17,514,-55,688,-104,525,-199,717,-119,718,-241,723,-139,724,-33,725,-233,741,-303,746,-110,751,-304,761,-146,766,-288,767,-234,774,-109,777,-299,785,-56,815,-161,816,-160,817,-155,818,-112,823,-113,828,-111,829,-332,830,-129,926}); states[743] = new State(new int[]{92,744,10,119}); states[744] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,532,18,247,19,252,5,624},new int[]{-82,745,-92,127,-91,132,-90,290,-94,298,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622,-106,623}); states[745] = new State(-541); states[746] = new State(-487); states[747] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,532,18,247,19,252},new int[]{-92,748,-91,132,-90,290,-94,465,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622}); states[748] = new State(new int[]{13,128,93,951,135,-544,137,-544,80,-544,81,-544,75,-544,73,-544,42,-544,39,-544,8,-544,18,-544,19,-544,138,-544,140,-544,139,-544,148,-544,150,-544,149,-544,54,-544,85,-544,37,-544,22,-544,91,-544,51,-544,32,-544,52,-544,96,-544,44,-544,33,-544,50,-544,57,-544,72,-544,70,-544,35,-544,86,-544,10,-544,92,-544,95,-544,30,-544,98,-544,94,-544,12,-544,9,-544,29,-544,2,-544,79,-544,78,-544,77,-544,76,-544},new int[]{-278,749}); states[749] = new State(new int[]{135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,703,8,704,18,247,19,252,138,149,140,150,139,152,148,154,150,155,149,156,54,719,85,116,37,697,22,726,91,742,51,747,32,752,52,762,96,768,44,775,33,778,50,786,57,819,72,824,70,811,35,831,86,-479,10,-479,92,-479,95,-479,30,-479,98,-479,94,-479,12,-479,9,-479,93,-479,29,-479,2,-479,79,-479,78,-479,77,-479,76,-479},new int[]{-246,750,-4,122,-101,123,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-15,687,-151,146,-153,147,-152,151,-16,153,-17,514,-55,688,-104,525,-199,717,-119,718,-241,723,-139,724,-33,725,-233,741,-303,746,-110,751,-304,761,-146,766,-288,767,-234,774,-109,777,-299,785,-56,815,-161,816,-160,817,-155,818,-112,823,-113,828,-111,829,-332,830}); states[750] = new State(-542); states[751] = new State(-488); states[752] = new State(new int[]{50,958,137,-553,80,-553,81,-553,75,-553,73,-553},new int[]{-19,753}); states[753] = new State(new int[]{137,23,80,25,81,26,75,28,73,29},new int[]{-133,754,-137,24,-138,27}); states[754] = new State(new int[]{104,954,5,955},new int[]{-272,755}); states[755] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,532,18,247,19,252},new int[]{-92,756,-91,132,-90,290,-94,465,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622}); states[756] = new State(new int[]{13,128,68,952,69,953},new int[]{-105,757}); states[757] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,532,18,247,19,252},new int[]{-92,758,-91,132,-90,290,-94,465,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622}); states[758] = new State(new int[]{13,128,93,951,135,-544,137,-544,80,-544,81,-544,75,-544,73,-544,42,-544,39,-544,8,-544,18,-544,19,-544,138,-544,140,-544,139,-544,148,-544,150,-544,149,-544,54,-544,85,-544,37,-544,22,-544,91,-544,51,-544,32,-544,52,-544,96,-544,44,-544,33,-544,50,-544,57,-544,72,-544,70,-544,35,-544,86,-544,10,-544,92,-544,95,-544,30,-544,98,-544,94,-544,12,-544,9,-544,29,-544,2,-544,79,-544,78,-544,77,-544,76,-544},new int[]{-278,759}); states[759] = new State(new int[]{135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,703,8,704,18,247,19,252,138,149,140,150,139,152,148,154,150,155,149,156,54,719,85,116,37,697,22,726,91,742,51,747,32,752,52,762,96,768,44,775,33,778,50,786,57,819,72,824,70,811,35,831,86,-479,10,-479,92,-479,95,-479,30,-479,98,-479,94,-479,12,-479,9,-479,93,-479,29,-479,2,-479,79,-479,78,-479,77,-479,76,-479},new int[]{-246,760,-4,122,-101,123,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-15,687,-151,146,-153,147,-152,151,-16,153,-17,514,-55,688,-104,525,-199,717,-119,718,-241,723,-139,724,-33,725,-233,741,-303,746,-110,751,-304,761,-146,766,-288,767,-234,774,-109,777,-299,785,-56,815,-161,816,-160,817,-155,818,-112,823,-113,828,-111,829,-332,830}); states[760] = new State(-551); states[761] = new State(-489); states[762] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,499,18,247,19,252,5,624,34,664,41,669},new int[]{-67,763,-83,518,-82,126,-92,127,-91,132,-90,290,-94,298,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,460,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622,-106,623,-307,662,-308,663}); states[763] = new State(new int[]{93,764,94,458}); states[764] = new State(new int[]{135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,703,8,704,18,247,19,252,138,149,140,150,139,152,148,154,150,155,149,156,54,719,85,116,37,697,22,726,91,742,51,747,32,752,52,762,96,768,44,775,33,778,50,786,57,819,72,824,70,811,35,831,86,-479,10,-479,92,-479,95,-479,30,-479,98,-479,94,-479,12,-479,9,-479,93,-479,29,-479,2,-479,79,-479,78,-479,77,-479,76,-479},new int[]{-246,765,-4,122,-101,123,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-15,687,-151,146,-153,147,-152,151,-16,153,-17,514,-55,688,-104,525,-199,717,-119,718,-241,723,-139,724,-33,725,-233,741,-303,746,-110,751,-304,761,-146,766,-288,767,-234,774,-109,777,-299,785,-56,815,-161,816,-160,817,-155,818,-112,823,-113,828,-111,829,-332,830}); states[765] = new State(-558); states[766] = new State(-490); states[767] = new State(-491); states[768] = new State(new int[]{135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,703,8,704,18,247,19,252,138,149,140,150,139,152,148,740,150,155,149,156,54,719,85,116,37,697,22,726,91,742,51,747,32,752,52,762,96,768,44,775,33,778,50,786,57,819,72,824,70,811,35,831,10,-479,95,-479,30,-479},new int[]{-238,769,-247,738,-246,121,-4,122,-101,123,-118,441,-100,453,-133,739,-137,24,-138,27,-178,466,-243,512,-281,513,-15,687,-151,146,-153,147,-152,151,-16,153,-17,514,-55,688,-104,525,-199,717,-119,718,-241,723,-139,724,-33,725,-233,741,-303,746,-110,751,-304,761,-146,766,-288,767,-234,774,-109,777,-299,785,-56,815,-161,816,-160,817,-155,818,-112,823,-113,828,-111,829,-332,830,-129,926}); states[769] = new State(new int[]{10,119,95,771,30,929},new int[]{-276,770}); states[770] = new State(-560); states[771] = new State(new int[]{135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,703,8,704,18,247,19,252,138,149,140,150,139,152,148,740,150,155,149,156,54,719,85,116,37,697,22,726,91,742,51,747,32,752,52,762,96,768,44,775,33,778,50,786,57,819,72,824,70,811,35,831,86,-479,10,-479},new int[]{-238,772,-247,738,-246,121,-4,122,-101,123,-118,441,-100,453,-133,739,-137,24,-138,27,-178,466,-243,512,-281,513,-15,687,-151,146,-153,147,-152,151,-16,153,-17,514,-55,688,-104,525,-199,717,-119,718,-241,723,-139,724,-33,725,-233,741,-303,746,-110,751,-304,761,-146,766,-288,767,-234,774,-109,777,-299,785,-56,815,-161,816,-160,817,-155,818,-112,823,-113,828,-111,829,-332,830,-129,926}); states[772] = new State(new int[]{86,773,10,119}); states[773] = new State(-561); states[774] = new State(-492); states[775] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,532,18,247,19,252,5,624,86,-575,10,-575,92,-575,95,-575,30,-575,98,-575,94,-575,12,-575,9,-575,93,-575,29,-575,2,-575,79,-575,78,-575,77,-575,76,-575},new int[]{-82,776,-92,127,-91,132,-90,290,-94,298,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622,-106,623}); states[776] = new State(-576); states[777] = new State(-493); states[778] = new State(new int[]{50,914,137,23,80,25,81,26,75,28,73,29},new int[]{-133,779,-137,24,-138,27}); states[779] = new State(new int[]{5,912,131,-550},new int[]{-260,780}); states[780] = new State(new int[]{131,781}); states[781] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,532,18,247,19,252},new int[]{-92,782,-91,132,-90,290,-94,465,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622}); states[782] = new State(new int[]{93,783,13,128}); states[783] = new State(new int[]{135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,703,8,704,18,247,19,252,138,149,140,150,139,152,148,154,150,155,149,156,54,719,85,116,37,697,22,726,91,742,51,747,32,752,52,762,96,768,44,775,33,778,50,786,57,819,72,824,70,811,35,831,86,-479,10,-479,92,-479,95,-479,30,-479,98,-479,94,-479,12,-479,9,-479,93,-479,29,-479,2,-479,79,-479,78,-479,77,-479,76,-479},new int[]{-246,784,-4,122,-101,123,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-15,687,-151,146,-153,147,-152,151,-16,153,-17,514,-55,688,-104,525,-199,717,-119,718,-241,723,-139,724,-33,725,-233,741,-303,746,-110,751,-304,761,-146,766,-288,767,-234,774,-109,777,-299,785,-56,815,-161,816,-160,817,-155,818,-112,823,-113,828,-111,829,-332,830}); states[784] = new State(-546); states[785] = new State(-494); states[786] = new State(new int[]{8,788,137,23,80,25,81,26,75,28,73,29},new int[]{-296,787,-144,796,-133,795,-137,24,-138,27}); states[787] = new State(-504); states[788] = new State(new int[]{137,23,80,25,81,26,75,28,73,29},new int[]{-133,789,-137,24,-138,27}); states[789] = new State(new int[]{94,790}); states[790] = new State(new int[]{137,23,80,25,81,26,75,28,73,29},new int[]{-144,791,-133,795,-137,24,-138,27}); states[791] = new State(new int[]{9,792,94,545}); states[792] = new State(new int[]{104,793}); states[793] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,532,18,247,19,252,5,624},new int[]{-82,794,-92,127,-91,132,-90,290,-94,298,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622,-106,623}); states[794] = new State(-506); states[795] = new State(-333); states[796] = new State(new int[]{5,797,94,545,104,910}); states[797] = new State(new int[]{137,358,80,25,81,26,75,28,73,29,148,154,150,155,149,156,110,377,109,378,138,149,140,150,139,152,8,388,136,399,21,405,45,413,46,550,31,554,71,558,62,561,41,566,34,594},new int[]{-262,798,-258,356,-86,175,-95,267,-96,268,-167,269,-133,196,-137,24,-138,27,-16,383,-186,384,-151,387,-153,147,-152,151,-259,390,-287,391,-242,397,-235,398,-267,402,-268,403,-264,404,-256,411,-29,412,-249,549,-116,553,-117,557,-213,563,-211,564,-210,565}); states[798] = new State(new int[]{104,908,114,909,86,-399,10,-399,92,-399,95,-399,30,-399,98,-399,94,-399,12,-399,9,-399,93,-399,29,-399,81,-399,80,-399,2,-399,79,-399,78,-399,77,-399,76,-399},new int[]{-323,799}); states[799] = new State(new int[]{137,23,80,25,81,26,75,28,73,227,138,149,140,150,139,152,148,154,150,155,149,156,39,244,18,247,19,252,11,363,53,367,135,368,8,879,129,373,110,377,109,378,60,158,34,664,41,669},new int[]{-81,800,-80,801,-79,240,-84,241,-76,191,-12,215,-10,225,-13,201,-133,802,-137,24,-138,27,-151,242,-153,147,-152,151,-16,243,-243,246,-281,251,-226,362,-186,375,-160,379,-251,380,-255,381,-228,382,-88,896,-229,897,-54,898,-308,907}); states[800] = new State(-401); states[801] = new State(-402); states[802] = new State(new int[]{121,803,4,-158,11,-158,7,-158,136,-158,8,-158,113,-158,130,-158,132,-158,112,-158,111,-158,125,-158,126,-158,127,-158,128,-158,124,-158,110,-158,109,-158,122,-158,123,-158,114,-158,119,-158,117,-158,115,-158,118,-158,116,-158,131,-158,13,-158,86,-158,10,-158,92,-158,95,-158,30,-158,98,-158,94,-158,12,-158,9,-158,93,-158,29,-158,81,-158,80,-158,2,-158,79,-158,78,-158,77,-158,76,-158}); states[803] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,499,18,247,19,252,34,664,41,669,85,116,37,697,51,747,91,742,32,752,33,778,70,811,22,726,96,768,57,819,44,775,72,878},new int[]{-313,804,-93,463,-92,464,-91,132,-90,290,-94,465,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,460,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622,-307,668,-308,663,-315,805,-241,695,-139,696,-303,806,-233,807,-110,808,-109,809,-111,810,-33,873,-288,874,-155,875,-234,876,-112,877}); states[804] = new State(-404); states[805] = new State(-939); states[806] = new State(-928); states[807] = new State(-929); states[808] = new State(-930); states[809] = new State(-931); states[810] = new State(-932); states[811] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,532,18,247,19,252},new int[]{-92,812,-91,132,-90,290,-94,465,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622}); states[812] = new State(new int[]{93,813,13,128}); states[813] = new State(new int[]{135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,703,8,704,18,247,19,252,138,149,140,150,139,152,148,154,150,155,149,156,54,719,85,116,37,697,22,726,91,742,51,747,32,752,52,762,96,768,44,775,33,778,50,786,57,819,72,824,70,811,35,831,86,-479,10,-479,92,-479,95,-479,30,-479,98,-479,94,-479,12,-479,9,-479,93,-479,29,-479,2,-479,79,-479,78,-479,77,-479,76,-479},new int[]{-246,814,-4,122,-101,123,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-15,687,-151,146,-153,147,-152,151,-16,153,-17,514,-55,688,-104,525,-199,717,-119,718,-241,723,-139,724,-33,725,-233,741,-303,746,-110,751,-304,761,-146,766,-288,767,-234,774,-109,777,-299,785,-56,815,-161,816,-160,817,-155,818,-112,823,-113,828,-111,829,-332,830}); states[814] = new State(-501); states[815] = new State(-495); states[816] = new State(-579); states[817] = new State(-580); states[818] = new State(-496); states[819] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,532,18,247,19,252},new int[]{-92,820,-91,132,-90,290,-94,465,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622}); states[820] = new State(new int[]{93,821,13,128}); states[821] = new State(new int[]{135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,703,8,704,18,247,19,252,138,149,140,150,139,152,148,154,150,155,149,156,54,719,85,116,37,697,22,726,91,742,51,747,32,752,52,762,96,768,44,775,33,778,50,786,57,819,72,824,70,811,35,831,86,-479,10,-479,92,-479,95,-479,30,-479,98,-479,94,-479,12,-479,9,-479,93,-479,29,-479,2,-479,79,-479,78,-479,77,-479,76,-479},new int[]{-246,822,-4,122,-101,123,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-15,687,-151,146,-153,147,-152,151,-16,153,-17,514,-55,688,-104,525,-199,717,-119,718,-241,723,-139,724,-33,725,-233,741,-303,746,-110,751,-304,761,-146,766,-288,767,-234,774,-109,777,-299,785,-56,815,-161,816,-160,817,-155,818,-112,823,-113,828,-111,829,-332,830}); states[822] = new State(-545); states[823] = new State(-497); states[824] = new State(new int[]{71,826,53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,532,18,247,19,252},new int[]{-92,825,-91,132,-90,290,-94,465,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622}); states[825] = new State(new int[]{13,128,86,-502,10,-502,92,-502,95,-502,30,-502,98,-502,94,-502,12,-502,9,-502,93,-502,29,-502,81,-502,80,-502,2,-502,79,-502,78,-502,77,-502,76,-502}); states[826] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,532,18,247,19,252},new int[]{-92,827,-91,132,-90,290,-94,465,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622}); states[827] = new State(new int[]{13,128,86,-503,10,-503,92,-503,95,-503,30,-503,98,-503,94,-503,12,-503,9,-503,93,-503,29,-503,81,-503,80,-503,2,-503,79,-503,78,-503,77,-503,76,-503}); states[828] = new State(-498); states[829] = new State(-499); states[830] = new State(-500); states[831] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,532,18,247,19,252},new int[]{-92,832,-91,132,-90,290,-94,465,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622}); states[832] = new State(new int[]{52,833,13,128}); states[833] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,138,149,140,150,139,152,148,154,150,155,149,156,18,247,19,252,53,864,11,334,8,607},new int[]{-334,834,-333,872,-325,841,-270,345,-167,162,-133,848,-137,24,-138,27,-326,849,-337,856,-342,865,-15,859,-151,146,-153,147,-152,151,-16,153,-14,860,-243,862,-281,863,-327,866,-328,869}); states[834] = new State(new int[]{10,837,29,736,86,-539},new int[]{-239,835}); states[835] = new State(new int[]{86,836}); states[836] = new State(-520); states[837] = new State(new int[]{29,736,137,23,80,25,81,26,75,28,73,29,138,149,140,150,139,152,148,154,150,155,149,156,18,247,19,252,53,864,11,334,8,607,86,-539},new int[]{-239,838,-333,840,-325,841,-270,345,-167,162,-133,848,-137,24,-138,27,-326,849,-337,856,-342,865,-15,859,-151,146,-153,147,-152,151,-16,153,-14,860,-243,862,-281,863,-327,866,-328,869}); states[838] = new State(new int[]{86,839}); states[839] = new State(-521); states[840] = new State(-523); states[841] = new State(new int[]{36,842,5,846}); states[842] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,532,18,247,19,252},new int[]{-92,843,-91,132,-90,290,-94,465,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622}); states[843] = new State(new int[]{5,844,13,128}); states[844] = new State(new int[]{135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,703,8,704,18,247,19,252,138,149,140,150,139,152,148,154,150,155,149,156,54,719,85,116,37,697,22,726,91,742,51,747,32,752,52,762,96,768,44,775,33,778,50,786,57,819,72,824,70,811,35,831,10,-479,29,-479,86,-479},new int[]{-246,845,-4,122,-101,123,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-15,687,-151,146,-153,147,-152,151,-16,153,-17,514,-55,688,-104,525,-199,717,-119,718,-241,723,-139,724,-33,725,-233,741,-303,746,-110,751,-304,761,-146,766,-288,767,-234,774,-109,777,-299,785,-56,815,-161,816,-160,817,-155,818,-112,823,-113,828,-111,829,-332,830}); states[845] = new State(-524); states[846] = new State(new int[]{135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,703,8,704,18,247,19,252,138,149,140,150,139,152,148,154,150,155,149,156,54,719,85,116,37,697,22,726,91,742,51,747,32,752,52,762,96,768,44,775,33,778,50,786,57,819,72,824,70,811,35,831,10,-479,29,-479,86,-479},new int[]{-246,847,-4,122,-101,123,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-15,687,-151,146,-153,147,-152,151,-16,153,-17,514,-55,688,-104,525,-199,717,-119,718,-241,723,-139,724,-33,725,-233,741,-303,746,-110,751,-304,761,-146,766,-288,767,-234,774,-109,777,-299,785,-56,815,-161,816,-160,817,-155,818,-112,823,-113,828,-111,829,-332,830}); states[847] = new State(-525); states[848] = new State(new int[]{7,-248,4,-248,117,-248,8,-248,94,-155,36,-155,5,-155}); states[849] = new State(new int[]{36,850,5,854}); states[850] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,532,18,247,19,252},new int[]{-92,851,-91,132,-90,290,-94,465,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622}); states[851] = new State(new int[]{5,852,13,128}); states[852] = new State(new int[]{135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,703,8,704,18,247,19,252,138,149,140,150,139,152,148,154,150,155,149,156,54,719,85,116,37,697,22,726,91,742,51,747,32,752,52,762,96,768,44,775,33,778,50,786,57,819,72,824,70,811,35,831,10,-479,29,-479,86,-479},new int[]{-246,853,-4,122,-101,123,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-15,687,-151,146,-153,147,-152,151,-16,153,-17,514,-55,688,-104,525,-199,717,-119,718,-241,723,-139,724,-33,725,-233,741,-303,746,-110,751,-304,761,-146,766,-288,767,-234,774,-109,777,-299,785,-56,815,-161,816,-160,817,-155,818,-112,823,-113,828,-111,829,-332,830}); states[853] = new State(-526); states[854] = new State(new int[]{135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,703,8,704,18,247,19,252,138,149,140,150,139,152,148,154,150,155,149,156,54,719,85,116,37,697,22,726,91,742,51,747,32,752,52,762,96,768,44,775,33,778,50,786,57,819,72,824,70,811,35,831,10,-479,29,-479,86,-479},new int[]{-246,855,-4,122,-101,123,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-15,687,-151,146,-153,147,-152,151,-16,153,-17,514,-55,688,-104,525,-199,717,-119,718,-241,723,-139,724,-33,725,-233,741,-303,746,-110,751,-304,761,-146,766,-288,767,-234,774,-109,777,-299,785,-56,815,-161,816,-160,817,-155,818,-112,823,-113,828,-111,829,-332,830}); states[855] = new State(-527); states[856] = new State(new int[]{94,857,36,-629,5,-629}); states[857] = new State(new int[]{138,149,140,150,139,152,148,154,150,155,149,156,137,23,80,25,81,26,75,28,73,29,18,247,19,252,53,864},new int[]{-342,858,-15,859,-151,146,-153,147,-152,151,-16,153,-14,860,-133,861,-137,24,-138,27,-243,862,-281,863}); states[858] = new State(-631); states[859] = new State(-632); states[860] = new State(-633); states[861] = new State(-155); states[862] = new State(-156); states[863] = new State(-157); states[864] = new State(-634); states[865] = new State(-630); states[866] = new State(new int[]{5,867}); states[867] = new State(new int[]{135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,703,8,704,18,247,19,252,138,149,140,150,139,152,148,154,150,155,149,156,54,719,85,116,37,697,22,726,91,742,51,747,32,752,52,762,96,768,44,775,33,778,50,786,57,819,72,824,70,811,35,831,10,-479,29,-479,86,-479},new int[]{-246,868,-4,122,-101,123,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-15,687,-151,146,-153,147,-152,151,-16,153,-17,514,-55,688,-104,525,-199,717,-119,718,-241,723,-139,724,-33,725,-233,741,-303,746,-110,751,-304,761,-146,766,-288,767,-234,774,-109,777,-299,785,-56,815,-161,816,-160,817,-155,818,-112,823,-113,828,-111,829,-332,830}); states[868] = new State(-528); states[869] = new State(new int[]{5,870}); states[870] = new State(new int[]{135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,703,8,704,18,247,19,252,138,149,140,150,139,152,148,154,150,155,149,156,54,719,85,116,37,697,22,726,91,742,51,747,32,752,52,762,96,768,44,775,33,778,50,786,57,819,72,824,70,811,35,831,10,-479,29,-479,86,-479},new int[]{-246,871,-4,122,-101,123,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-15,687,-151,146,-153,147,-152,151,-16,153,-17,514,-55,688,-104,525,-199,717,-119,718,-241,723,-139,724,-33,725,-233,741,-303,746,-110,751,-304,761,-146,766,-288,767,-234,774,-109,777,-299,785,-56,815,-161,816,-160,817,-155,818,-112,823,-113,828,-111,829,-332,830}); states[871] = new State(-529); states[872] = new State(-522); states[873] = new State(-933); states[874] = new State(-934); states[875] = new State(-935); states[876] = new State(-936); states[877] = new State(-937); states[878] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,532,18,247,19,252},new int[]{-92,825,-91,132,-90,290,-94,465,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622}); states[879] = new State(new int[]{9,887,137,23,80,25,81,26,75,28,73,227,138,149,140,150,139,152,148,154,150,155,149,156,39,244,18,247,19,252,11,363,53,367,135,368,8,892,129,373,110,377,109,378,60,158},new int[]{-84,880,-63,881,-231,885,-76,191,-12,215,-10,225,-13,201,-133,891,-137,24,-138,27,-151,242,-153,147,-152,151,-16,243,-243,246,-281,251,-226,362,-186,375,-160,379,-251,380,-255,381,-228,382,-62,237,-80,895,-79,240,-88,896,-229,897,-54,898,-230,899,-232,906,-122,902}); states[880] = new State(new int[]{9,372,13,187,94,-182}); states[881] = new State(new int[]{9,882}); states[882] = new State(new int[]{121,883,86,-185,10,-185,92,-185,95,-185,30,-185,98,-185,94,-185,12,-185,9,-185,93,-185,29,-185,81,-185,80,-185,2,-185,79,-185,78,-185,77,-185,76,-185}); states[883] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,499,18,247,19,252,34,664,41,669,85,116,37,697,51,747,91,742,32,752,33,778,70,811,22,726,96,768,57,819,44,775,72,878},new int[]{-313,884,-93,463,-92,464,-91,132,-90,290,-94,465,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,460,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622,-307,668,-308,663,-315,805,-241,695,-139,696,-303,806,-233,807,-110,808,-109,809,-111,810,-33,873,-288,874,-155,875,-234,876,-112,877}); states[884] = new State(-406); states[885] = new State(new int[]{9,886}); states[886] = new State(-190); states[887] = new State(new int[]{5,547,121,-922},new int[]{-309,888}); states[888] = new State(new int[]{121,889}); states[889] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,499,18,247,19,252,34,664,41,669,85,116,37,697,51,747,91,742,32,752,33,778,70,811,22,726,96,768,57,819,44,775,72,878},new int[]{-313,890,-93,463,-92,464,-91,132,-90,290,-94,465,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,460,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622,-307,668,-308,663,-315,805,-241,695,-139,696,-303,806,-233,807,-110,808,-109,809,-111,810,-33,873,-288,874,-155,875,-234,876,-112,877}); states[890] = new State(-405); states[891] = new State(new int[]{4,-158,11,-158,7,-158,136,-158,8,-158,113,-158,130,-158,132,-158,112,-158,111,-158,125,-158,126,-158,127,-158,128,-158,124,-158,110,-158,109,-158,122,-158,123,-158,114,-158,119,-158,117,-158,115,-158,118,-158,116,-158,131,-158,9,-158,13,-158,94,-158,5,-196}); states[892] = new State(new int[]{137,23,80,25,81,26,75,28,73,227,138,149,140,150,139,152,148,154,150,155,149,156,39,244,18,247,19,252,11,363,53,367,135,368,8,892,129,373,110,377,109,378,60,158,9,-186},new int[]{-84,880,-63,893,-231,885,-76,191,-12,215,-10,225,-13,201,-133,891,-137,24,-138,27,-151,242,-153,147,-152,151,-16,243,-243,246,-281,251,-226,362,-186,375,-160,379,-251,380,-255,381,-228,382,-62,237,-80,895,-79,240,-88,896,-229,897,-54,898,-230,899,-232,906,-122,902}); states[893] = new State(new int[]{9,894}); states[894] = new State(-185); states[895] = new State(-188); states[896] = new State(-183); states[897] = new State(-184); states[898] = new State(-408); states[899] = new State(new int[]{10,900,9,-191}); states[900] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,9,-192},new int[]{-232,901,-122,902,-133,905,-137,24,-138,27}); states[901] = new State(-194); states[902] = new State(new int[]{5,903}); states[903] = new State(new int[]{137,23,80,25,81,26,75,28,73,227,138,149,140,150,139,152,148,154,150,155,149,156,39,244,18,247,19,252,11,363,53,367,135,368,8,892,129,373,110,377,109,378},new int[]{-79,904,-84,241,-76,191,-12,215,-10,225,-13,201,-133,226,-137,24,-138,27,-151,242,-153,147,-152,151,-16,243,-243,246,-281,251,-226,362,-186,375,-160,379,-251,380,-255,381,-228,382,-88,896,-229,897}); states[904] = new State(-195); states[905] = new State(-196); states[906] = new State(-193); states[907] = new State(-403); states[908] = new State(-397); states[909] = new State(-398); states[910] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,532,18,247,19,252,5,624},new int[]{-82,911,-92,127,-91,132,-90,290,-94,298,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622,-106,623}); states[911] = new State(-400); states[912] = new State(new int[]{137,358,80,25,81,26,75,28,73,29,148,154,150,155,149,156,110,377,109,378,138,149,140,150,139,152,8,388,136,399,21,405,45,413,46,550,31,554,71,558,62,561,41,566,34,594},new int[]{-262,913,-258,356,-86,175,-95,267,-96,268,-167,269,-133,196,-137,24,-138,27,-16,383,-186,384,-151,387,-153,147,-152,151,-259,390,-287,391,-242,397,-235,398,-267,402,-268,403,-264,404,-256,411,-29,412,-249,549,-116,553,-117,557,-213,563,-211,564,-210,565}); states[913] = new State(-549); states[914] = new State(new int[]{137,23,80,25,81,26,75,28,73,29},new int[]{-133,915,-137,24,-138,27}); states[915] = new State(new int[]{5,916,131,922}); states[916] = new State(new int[]{137,358,80,25,81,26,75,28,73,29,148,154,150,155,149,156,110,377,109,378,138,149,140,150,139,152,8,388,136,399,21,405,45,413,46,550,31,554,71,558,62,561,41,566,34,594},new int[]{-262,917,-258,356,-86,175,-95,267,-96,268,-167,269,-133,196,-137,24,-138,27,-16,383,-186,384,-151,387,-153,147,-152,151,-259,390,-287,391,-242,397,-235,398,-267,402,-268,403,-264,404,-256,411,-29,412,-249,549,-116,553,-117,557,-213,563,-211,564,-210,565}); states[917] = new State(new int[]{131,918}); states[918] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,532,18,247,19,252},new int[]{-92,919,-91,132,-90,290,-94,465,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622}); states[919] = new State(new int[]{93,920,13,128}); states[920] = new State(new int[]{135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,703,8,704,18,247,19,252,138,149,140,150,139,152,148,154,150,155,149,156,54,719,85,116,37,697,22,726,91,742,51,747,32,752,52,762,96,768,44,775,33,778,50,786,57,819,72,824,70,811,35,831,86,-479,10,-479,92,-479,95,-479,30,-479,98,-479,94,-479,12,-479,9,-479,93,-479,29,-479,2,-479,79,-479,78,-479,77,-479,76,-479},new int[]{-246,921,-4,122,-101,123,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-15,687,-151,146,-153,147,-152,151,-16,153,-17,514,-55,688,-104,525,-199,717,-119,718,-241,723,-139,724,-33,725,-233,741,-303,746,-110,751,-304,761,-146,766,-288,767,-234,774,-109,777,-299,785,-56,815,-161,816,-160,817,-155,818,-112,823,-113,828,-111,829,-332,830}); states[921] = new State(-547); states[922] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,532,18,247,19,252},new int[]{-92,923,-91,132,-90,290,-94,465,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622}); states[923] = new State(new int[]{93,924,13,128}); states[924] = new State(new int[]{135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,703,8,704,18,247,19,252,138,149,140,150,139,152,148,154,150,155,149,156,54,719,85,116,37,697,22,726,91,742,51,747,32,752,52,762,96,768,44,775,33,778,50,786,57,819,72,824,70,811,35,831,86,-479,10,-479,92,-479,95,-479,30,-479,98,-479,94,-479,12,-479,9,-479,93,-479,29,-479,2,-479,79,-479,78,-479,77,-479,76,-479},new int[]{-246,925,-4,122,-101,123,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-15,687,-151,146,-153,147,-152,151,-16,153,-17,514,-55,688,-104,525,-199,717,-119,718,-241,723,-139,724,-33,725,-233,741,-303,746,-110,751,-304,761,-146,766,-288,767,-234,774,-109,777,-299,785,-56,815,-161,816,-160,817,-155,818,-112,823,-113,828,-111,829,-332,830}); states[925] = new State(-548); states[926] = new State(new int[]{5,927}); states[927] = new State(new int[]{135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,703,8,704,18,247,19,252,138,149,140,150,139,152,148,740,150,155,149,156,54,719,85,116,37,697,22,726,91,742,51,747,32,752,52,762,96,768,44,775,33,778,50,786,57,819,72,824,70,811,35,831,86,-479,10,-479,92,-479,95,-479,30,-479,98,-479},new int[]{-247,928,-246,121,-4,122,-101,123,-118,441,-100,453,-133,739,-137,24,-138,27,-178,466,-243,512,-281,513,-15,687,-151,146,-153,147,-152,151,-16,153,-17,514,-55,688,-104,525,-199,717,-119,718,-241,723,-139,724,-33,725,-233,741,-303,746,-110,751,-304,761,-146,766,-288,767,-234,774,-109,777,-299,785,-56,815,-161,816,-160,817,-155,818,-112,823,-113,828,-111,829,-332,830,-129,926}); states[928] = new State(-478); states[929] = new State(new int[]{74,937,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,703,8,704,18,247,19,252,138,149,140,150,139,152,148,740,150,155,149,156,54,719,85,116,37,697,22,726,91,742,51,747,32,752,52,762,96,768,44,775,33,778,50,786,57,819,72,824,70,811,35,831,10,-479,86,-479},new int[]{-57,930,-60,932,-59,949,-238,950,-247,738,-246,121,-4,122,-101,123,-118,441,-100,453,-133,739,-137,24,-138,27,-178,466,-243,512,-281,513,-15,687,-151,146,-153,147,-152,151,-16,153,-17,514,-55,688,-104,525,-199,717,-119,718,-241,723,-139,724,-33,725,-233,741,-303,746,-110,751,-304,761,-146,766,-288,767,-234,774,-109,777,-299,785,-56,815,-161,816,-160,817,-155,818,-112,823,-113,828,-111,829,-332,830,-129,926}); states[930] = new State(new int[]{86,931}); states[931] = new State(-562); states[932] = new State(new int[]{10,934,29,947,86,-568},new int[]{-240,933}); states[933] = new State(-563); states[934] = new State(new int[]{74,937,29,947,86,-568},new int[]{-59,935,-240,936}); states[935] = new State(-567); states[936] = new State(-564); states[937] = new State(new int[]{137,23,80,25,81,26,75,28,73,29},new int[]{-61,938,-166,941,-167,942,-133,943,-137,24,-138,27,-126,944}); states[938] = new State(new int[]{93,939}); states[939] = new State(new int[]{135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,703,8,704,18,247,19,252,138,149,140,150,139,152,148,154,150,155,149,156,54,719,85,116,37,697,22,726,91,742,51,747,32,752,52,762,96,768,44,775,33,778,50,786,57,819,72,824,70,811,35,831,10,-479,29,-479,86,-479},new int[]{-246,940,-4,122,-101,123,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-15,687,-151,146,-153,147,-152,151,-16,153,-17,514,-55,688,-104,525,-199,717,-119,718,-241,723,-139,724,-33,725,-233,741,-303,746,-110,751,-304,761,-146,766,-288,767,-234,774,-109,777,-299,785,-56,815,-161,816,-160,817,-155,818,-112,823,-113,828,-111,829,-332,830}); states[940] = new State(-570); states[941] = new State(-571); states[942] = new State(new int[]{7,163,93,-573}); states[943] = new State(new int[]{7,-248,93,-248,5,-574}); states[944] = new State(new int[]{5,945}); states[945] = new State(new int[]{137,23,80,25,81,26,75,28,73,29},new int[]{-166,946,-167,942,-133,196,-137,24,-138,27}); states[946] = new State(-572); states[947] = new State(new int[]{135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,703,8,704,18,247,19,252,138,149,140,150,139,152,148,740,150,155,149,156,54,719,85,116,37,697,22,726,91,742,51,747,32,752,52,762,96,768,44,775,33,778,50,786,57,819,72,824,70,811,35,831,10,-479,86,-479},new int[]{-238,948,-247,738,-246,121,-4,122,-101,123,-118,441,-100,453,-133,739,-137,24,-138,27,-178,466,-243,512,-281,513,-15,687,-151,146,-153,147,-152,151,-16,153,-17,514,-55,688,-104,525,-199,717,-119,718,-241,723,-139,724,-33,725,-233,741,-303,746,-110,751,-304,761,-146,766,-288,767,-234,774,-109,777,-299,785,-56,815,-161,816,-160,817,-155,818,-112,823,-113,828,-111,829,-332,830,-129,926}); states[948] = new State(new int[]{10,119,86,-569}); states[949] = new State(-566); states[950] = new State(new int[]{10,119,86,-565}); states[951] = new State(-543); states[952] = new State(-556); states[953] = new State(-557); states[954] = new State(-554); states[955] = new State(new int[]{137,23,80,25,81,26,75,28,73,29},new int[]{-167,956,-133,196,-137,24,-138,27}); states[956] = new State(new int[]{104,957,7,163}); states[957] = new State(-555); states[958] = new State(-552); states[959] = new State(new int[]{5,960,94,962}); states[960] = new State(new int[]{135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,703,8,704,18,247,19,252,138,149,140,150,139,152,148,154,150,155,149,156,54,719,85,116,37,697,22,726,91,742,51,747,32,752,52,762,96,768,44,775,33,778,50,786,57,819,72,824,70,811,35,831,10,-479,29,-479,86,-479},new int[]{-246,961,-4,122,-101,123,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-15,687,-151,146,-153,147,-152,151,-16,153,-17,514,-55,688,-104,525,-199,717,-119,718,-241,723,-139,724,-33,725,-233,741,-303,746,-110,751,-304,761,-146,766,-288,767,-234,774,-109,777,-299,785,-56,815,-161,816,-160,817,-155,818,-112,823,-113,828,-111,829,-332,830}); states[961] = new State(-535); states[962] = new State(new int[]{137,23,80,25,81,26,75,28,73,227,138,149,140,150,139,152,148,154,150,155,149,156,39,244,18,247,19,252,11,363,53,367,135,368,8,370,129,373,110,377,109,378},new int[]{-99,963,-87,964,-84,186,-76,191,-12,215,-10,225,-13,201,-133,226,-137,24,-138,27,-151,242,-153,147,-152,151,-16,243,-243,246,-281,251,-226,362,-186,375,-160,379,-251,380,-255,381,-228,382}); states[963] = new State(-537); states[964] = new State(-538); states[965] = new State(-536); states[966] = new State(new int[]{86,967}); states[967] = new State(-532); states[968] = new State(-533); states[969] = new State(new int[]{9,970,137,23,80,25,81,26,75,28,73,29},new int[]{-311,973,-312,977,-144,543,-133,795,-137,24,-138,27}); states[970] = new State(new int[]{121,971}); states[971] = new State(new int[]{135,452,137,23,80,25,81,26,75,28,73,29,42,467,39,497,8,673,18,247,19,252,138,149,140,150,139,152,148,154,150,155,149,156,85,116,37,697,51,747,91,742,32,752,33,778,70,811,22,726,96,768,57,819,44,775,72,878},new int[]{-314,972,-199,672,-101,123,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-15,687,-151,146,-153,147,-152,151,-16,153,-17,514,-55,688,-104,525,-4,693,-315,694,-241,695,-139,696,-303,806,-233,807,-110,808,-109,809,-111,810,-33,873,-288,874,-155,875,-234,876,-112,877}); states[972] = new State(-917); states[973] = new State(new int[]{9,974,10,541}); states[974] = new State(new int[]{121,975}); states[975] = new State(new int[]{135,452,137,23,80,25,81,26,75,28,73,29,42,467,39,497,8,673,18,247,19,252,138,149,140,150,139,152,148,154,150,155,149,156,85,116,37,697,51,747,91,742,32,752,33,778,70,811,22,726,96,768,57,819,44,775,72,878},new int[]{-314,976,-199,672,-101,123,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-15,687,-151,146,-153,147,-152,151,-16,153,-17,514,-55,688,-104,525,-4,693,-315,694,-241,695,-139,696,-303,806,-233,807,-110,808,-109,809,-111,810,-33,873,-288,874,-155,875,-234,876,-112,877}); states[976] = new State(-918); states[977] = new State(-919); states[978] = new State(new int[]{9,979,137,23,80,25,81,26,75,28,73,29},new int[]{-311,983,-312,977,-144,543,-133,795,-137,24,-138,27}); states[979] = new State(new int[]{5,547,121,-922},new int[]{-309,980}); states[980] = new State(new int[]{121,981}); states[981] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,499,18,247,19,252,34,664,41,669,85,116,37,697,51,747,91,742,32,752,33,778,70,811,22,726,96,768,57,819,44,775,72,878},new int[]{-313,982,-93,463,-92,464,-91,132,-90,290,-94,465,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,460,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622,-307,668,-308,663,-315,805,-241,695,-139,696,-303,806,-233,807,-110,808,-109,809,-111,810,-33,873,-288,874,-155,875,-234,876,-112,877}); states[982] = new State(-914); states[983] = new State(new int[]{9,984,10,541}); states[984] = new State(new int[]{5,547,121,-922},new int[]{-309,985}); states[985] = new State(new int[]{121,986}); states[986] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,499,18,247,19,252,34,664,41,669,85,116,37,697,51,747,91,742,32,752,33,778,70,811,22,726,96,768,57,819,44,775,72,878},new int[]{-313,987,-93,463,-92,464,-91,132,-90,290,-94,465,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,460,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622,-307,668,-308,663,-315,805,-241,695,-139,696,-303,806,-233,807,-110,808,-109,809,-111,810,-33,873,-288,874,-155,875,-234,876,-112,877}); states[987] = new State(-915); states[988] = new State(new int[]{5,989,7,-248,8,-248,117,-248,12,-248,94,-248}); states[989] = new State(new int[]{137,23,80,25,81,26,75,28,73,29},new int[]{-9,990,-167,656,-133,196,-137,24,-138,27,-287,991}); states[990] = new State(-205); states[991] = new State(new int[]{8,659,12,-609,94,-609},new int[]{-66,992}); states[992] = new State(-733); states[993] = new State(-202); states[994] = new State(-198); states[995] = new State(-458); states[996] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,532,18,247,19,252},new int[]{-92,997,-91,132,-90,290,-94,465,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622}); states[997] = new State(new int[]{13,128,94,-112,5,-112,10,-112,9,-112}); states[998] = new State(new int[]{13,128,94,-111,5,-111,10,-111,9,-111}); states[999] = new State(new int[]{137,358,80,25,81,26,75,28,73,29,148,154,150,155,149,156,110,377,109,378,138,149,140,150,139,152,8,1003,136,399,21,405,45,413,46,550,31,554,71,558,62,561},new int[]{-263,1000,-258,1001,-86,175,-95,267,-96,268,-167,1002,-133,196,-137,24,-138,27,-16,383,-186,384,-151,387,-153,147,-152,151,-242,1008,-235,1009,-267,1010,-268,403,-264,404,-256,411,-29,412,-249,549,-116,553,-117,557,-287,1011}); states[1000] = new State(-925); states[1001] = new State(-472); states[1002] = new State(new int[]{7,163,117,168,8,-243,112,-243,111,-243,125,-243,126,-243,127,-243,128,-243,124,-243,6,-243,110,-243,109,-243,122,-243,123,-243,121,-243},new int[]{-285,658}); states[1003] = new State(new int[]{137,358,80,25,81,26,75,28,73,29,148,154,150,155,149,156,110,377,109,378,138,149,140,150,139,152,8,388,136,399,21,405,45,413,46,550,31,554,71,558,62,561,41,566,34,594},new int[]{-75,1004,-73,284,-262,287,-258,356,-86,175,-95,267,-96,268,-167,269,-133,196,-137,24,-138,27,-16,383,-186,384,-151,387,-153,147,-152,151,-259,390,-287,391,-242,397,-235,398,-267,402,-268,403,-264,404,-256,411,-29,412,-249,549,-116,553,-117,557,-213,563,-211,564,-210,565}); states[1004] = new State(new int[]{9,1005,94,1006}); states[1005] = new State(-238); states[1006] = new State(new int[]{137,358,80,25,81,26,75,28,73,29,148,154,150,155,149,156,110,377,109,378,138,149,140,150,139,152,8,388,136,399,21,405,45,413,46,550,31,554,71,558,62,561,41,566,34,594},new int[]{-73,1007,-262,287,-258,356,-86,175,-95,267,-96,268,-167,269,-133,196,-137,24,-138,27,-16,383,-186,384,-151,387,-153,147,-152,151,-259,390,-287,391,-242,397,-235,398,-267,402,-268,403,-264,404,-256,411,-29,412,-249,549,-116,553,-117,557,-213,563,-211,564,-210,565}); states[1007] = new State(-251); states[1008] = new State(-473); states[1009] = new State(-474); states[1010] = new State(-475); states[1011] = new State(-476); states[1012] = new State(new int[]{5,999,121,-924},new int[]{-310,1013}); states[1013] = new State(new int[]{121,1014}); states[1014] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,499,18,247,19,252,34,664,41,669,85,116,37,697,51,747,91,742,32,752,33,778,70,811,22,726,96,768,57,819,44,775,72,878},new int[]{-313,1015,-93,463,-92,464,-91,132,-90,290,-94,465,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,460,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622,-307,668,-308,663,-315,805,-241,695,-139,696,-303,806,-233,807,-110,808,-109,809,-111,810,-33,873,-288,874,-155,875,-234,876,-112,877}); states[1015] = new State(-904); states[1016] = new State(new int[]{5,1017,10,1029,17,-740,8,-740,7,-740,136,-740,4,-740,15,-740,132,-740,130,-740,112,-740,111,-740,125,-740,126,-740,127,-740,128,-740,124,-740,110,-740,109,-740,122,-740,123,-740,120,-740,114,-740,119,-740,117,-740,115,-740,118,-740,116,-740,131,-740,16,-740,94,-740,13,-740,9,-740,113,-740,11,-740}); states[1017] = new State(new int[]{137,358,80,25,81,26,75,28,73,29,148,154,150,155,149,156,110,377,109,378,138,149,140,150,139,152,8,388,136,399,21,405,45,413,46,550,31,554,71,558,62,561,41,566,34,594},new int[]{-261,1018,-262,401,-258,356,-86,175,-95,267,-96,268,-167,269,-133,196,-137,24,-138,27,-16,383,-186,384,-151,387,-153,147,-152,151,-259,390,-287,391,-242,397,-235,398,-267,402,-268,403,-264,404,-256,411,-29,412,-249,549,-116,553,-117,557,-213,563,-211,564,-210,565}); states[1018] = new State(new int[]{9,1019,10,1023}); states[1019] = new State(new int[]{5,999,121,-924},new int[]{-310,1020}); states[1020] = new State(new int[]{121,1021}); states[1021] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,499,18,247,19,252,34,664,41,669,85,116,37,697,51,747,91,742,32,752,33,778,70,811,22,726,96,768,57,819,44,775,72,878},new int[]{-313,1022,-93,463,-92,464,-91,132,-90,290,-94,465,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,460,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622,-307,668,-308,663,-315,805,-241,695,-139,696,-303,806,-233,807,-110,808,-109,809,-111,810,-33,873,-288,874,-155,875,-234,876,-112,877}); states[1022] = new State(-905); states[1023] = new State(new int[]{137,23,80,25,81,26,75,28,73,29},new int[]{-311,1024,-312,977,-144,543,-133,795,-137,24,-138,27}); states[1024] = new State(new int[]{9,1025,10,541}); states[1025] = new State(new int[]{5,999,121,-924},new int[]{-310,1026}); states[1026] = new State(new int[]{121,1027}); states[1027] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,499,18,247,19,252,34,664,41,669,85,116,37,697,51,747,91,742,32,752,33,778,70,811,22,726,96,768,57,819,44,775,72,878},new int[]{-313,1028,-93,463,-92,464,-91,132,-90,290,-94,465,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,460,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622,-307,668,-308,663,-315,805,-241,695,-139,696,-303,806,-233,807,-110,808,-109,809,-111,810,-33,873,-288,874,-155,875,-234,876,-112,877}); states[1028] = new State(-907); states[1029] = new State(new int[]{137,23,80,25,81,26,75,28,73,29},new int[]{-311,1030,-312,977,-144,543,-133,795,-137,24,-138,27}); states[1030] = new State(new int[]{9,1031,10,541}); states[1031] = new State(new int[]{5,999,121,-924},new int[]{-310,1032}); states[1032] = new State(new int[]{121,1033}); states[1033] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,499,18,247,19,252,34,664,41,669,85,116,37,697,51,747,91,742,32,752,33,778,70,811,22,726,96,768,57,819,44,775,72,878},new int[]{-313,1034,-93,463,-92,464,-91,132,-90,290,-94,465,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,460,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622,-307,668,-308,663,-315,805,-241,695,-139,696,-303,806,-233,807,-110,808,-109,809,-111,810,-33,873,-288,874,-155,875,-234,876,-112,877}); states[1034] = new State(-906); states[1035] = new State(-731); states[1036] = new State(new int[]{141,1040,143,1041,144,1042,145,1043,147,1044,146,1045,101,-769,85,-769,56,-769,26,-769,64,-769,47,-769,50,-769,59,-769,11,-769,25,-769,23,-769,41,-769,34,-769,27,-769,28,-769,43,-769,24,-769,86,-769,79,-769,78,-769,77,-769,76,-769,20,-769,142,-769,38,-769},new int[]{-193,1037,-196,1046}); states[1037] = new State(new int[]{10,1038}); states[1038] = new State(new int[]{141,1040,143,1041,144,1042,145,1043,147,1044,146,1045,101,-770,85,-770,56,-770,26,-770,64,-770,47,-770,50,-770,59,-770,11,-770,25,-770,23,-770,41,-770,34,-770,27,-770,28,-770,43,-770,24,-770,86,-770,79,-770,78,-770,77,-770,76,-770,20,-770,142,-770,38,-770},new int[]{-196,1039}); states[1039] = new State(-774); states[1040] = new State(-784); states[1041] = new State(-785); states[1042] = new State(-786); states[1043] = new State(-787); states[1044] = new State(-788); states[1045] = new State(-789); states[1046] = new State(-773); states[1047] = new State(-364); states[1048] = new State(-432); states[1049] = new State(-433); states[1050] = new State(new int[]{8,-438,104,-438,10,-438,5,-438,7,-435}); states[1051] = new State(new int[]{117,1053,8,-441,104,-441,10,-441,7,-441,5,-441},new int[]{-141,1052}); states[1052] = new State(-442); states[1053] = new State(new int[]{137,23,80,25,81,26,75,28,73,29},new int[]{-144,1054,-133,795,-137,24,-138,27}); states[1054] = new State(new int[]{115,1055,94,545}); states[1055] = new State(-311); states[1056] = new State(-443); states[1057] = new State(new int[]{117,1053,8,-439,104,-439,10,-439,5,-439},new int[]{-141,1058}); states[1058] = new State(-440); states[1059] = new State(new int[]{7,1060}); states[1060] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,42,467},new int[]{-128,1061,-135,1062,-123,1050,-120,1051,-133,1056,-137,24,-138,27,-178,1057}); states[1061] = new State(-434); states[1062] = new State(-437); states[1063] = new State(-436); states[1064] = new State(-425); states[1065] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,79,32,78,33,77,34,76,35},new int[]{-159,1066,-133,1105,-137,24,-138,27,-136,1106}); states[1066] = new State(new int[]{7,1090,11,1096,5,-382},new int[]{-220,1067,-225,1093}); states[1067] = new State(new int[]{80,1079,81,1085,10,-389},new int[]{-189,1068}); states[1068] = new State(new int[]{10,1069}); states[1069] = new State(new int[]{60,1074,146,1076,145,1077,141,1078,11,-379,25,-379,23,-379,41,-379,34,-379,27,-379,28,-379,43,-379,24,-379,86,-379,79,-379,78,-379,77,-379,76,-379},new int[]{-192,1070,-197,1071}); states[1070] = new State(-373); states[1071] = new State(new int[]{10,1072}); states[1072] = new State(new int[]{60,1074,11,-379,25,-379,23,-379,41,-379,34,-379,27,-379,28,-379,43,-379,24,-379,86,-379,79,-379,78,-379,77,-379,76,-379},new int[]{-192,1073}); states[1073] = new State(-374); states[1074] = new State(new int[]{10,1075}); states[1075] = new State(-380); states[1076] = new State(-790); states[1077] = new State(-791); states[1078] = new State(-792); states[1079] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,499,18,247,19,252,5,624,34,664,41,669,10,-388},new int[]{-102,1080,-83,1084,-82,126,-92,127,-91,132,-90,290,-94,298,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,460,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622,-106,623,-307,662,-308,663}); states[1080] = new State(new int[]{81,1082,10,-392},new int[]{-190,1081}); states[1081] = new State(-390); states[1082] = new State(new int[]{135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,703,8,704,18,247,19,252,138,149,140,150,139,152,148,154,150,155,149,156,54,719,85,116,37,697,22,726,91,742,51,747,32,752,52,762,96,768,44,775,33,778,50,786,57,819,72,824,70,811,35,831,10,-479},new int[]{-246,1083,-4,122,-101,123,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-15,687,-151,146,-153,147,-152,151,-16,153,-17,514,-55,688,-104,525,-199,717,-119,718,-241,723,-139,724,-33,725,-233,741,-303,746,-110,751,-304,761,-146,766,-288,767,-234,774,-109,777,-299,785,-56,815,-161,816,-160,817,-155,818,-112,823,-113,828,-111,829,-332,830}); states[1083] = new State(-393); states[1084] = new State(-387); states[1085] = new State(new int[]{135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,703,8,704,18,247,19,252,138,149,140,150,139,152,148,154,150,155,149,156,54,719,85,116,37,697,22,726,91,742,51,747,32,752,52,762,96,768,44,775,33,778,50,786,57,819,72,824,70,811,35,831,10,-479},new int[]{-246,1086,-4,122,-101,123,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-15,687,-151,146,-153,147,-152,151,-16,153,-17,514,-55,688,-104,525,-199,717,-119,718,-241,723,-139,724,-33,725,-233,741,-303,746,-110,751,-304,761,-146,766,-288,767,-234,774,-109,777,-299,785,-56,815,-161,816,-160,817,-155,818,-112,823,-113,828,-111,829,-332,830}); states[1086] = new State(new int[]{80,1088,10,-394},new int[]{-191,1087}); states[1087] = new State(-391); states[1088] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,499,18,247,19,252,5,624,34,664,41,669,10,-388},new int[]{-102,1089,-83,1084,-82,126,-92,127,-91,132,-90,290,-94,298,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,460,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622,-106,623,-307,662,-308,663}); states[1089] = new State(-395); states[1090] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,79,32,78,33,77,34,76,35},new int[]{-133,1091,-136,1092,-137,24,-138,27}); states[1091] = new State(-368); states[1092] = new State(-369); states[1093] = new State(new int[]{5,1094}); states[1094] = new State(new int[]{137,358,80,25,81,26,75,28,73,29,148,154,150,155,149,156,110,377,109,378,138,149,140,150,139,152,8,388,136,399,21,405,45,413,46,550,31,554,71,558,62,561,41,566,34,594},new int[]{-261,1095,-262,401,-258,356,-86,175,-95,267,-96,268,-167,269,-133,196,-137,24,-138,27,-16,383,-186,384,-151,387,-153,147,-152,151,-259,390,-287,391,-242,397,-235,398,-267,402,-268,403,-264,404,-256,411,-29,412,-249,549,-116,553,-117,557,-213,563,-211,564,-210,565}); states[1095] = new State(-381); states[1096] = new State(new int[]{137,23,80,25,81,26,75,28,73,29},new int[]{-224,1097,-223,1104,-144,1101,-133,795,-137,24,-138,27}); states[1097] = new State(new int[]{12,1098,10,1099}); states[1098] = new State(-383); states[1099] = new State(new int[]{137,23,80,25,81,26,75,28,73,29},new int[]{-223,1100,-144,1101,-133,795,-137,24,-138,27}); states[1100] = new State(-385); states[1101] = new State(new int[]{5,1102,94,545}); states[1102] = new State(new int[]{137,358,80,25,81,26,75,28,73,29,148,154,150,155,149,156,110,377,109,378,138,149,140,150,139,152,8,388,136,399,21,405,45,413,46,550,31,554,71,558,62,561,41,566,34,594},new int[]{-261,1103,-262,401,-258,356,-86,175,-95,267,-96,268,-167,269,-133,196,-137,24,-138,27,-16,383,-186,384,-151,387,-153,147,-152,151,-259,390,-287,391,-242,397,-235,398,-267,402,-268,403,-264,404,-256,411,-29,412,-249,549,-116,553,-117,557,-213,563,-211,564,-210,565}); states[1103] = new State(-386); states[1104] = new State(-384); states[1105] = new State(-366); states[1106] = new State(-367); states[1107] = new State(new int[]{43,1108}); states[1108] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,79,32,78,33,77,34,76,35},new int[]{-159,1109,-133,1105,-137,24,-138,27,-136,1106}); states[1109] = new State(new int[]{7,1090,11,1096,5,-382},new int[]{-220,1110,-225,1093}); states[1110] = new State(new int[]{104,1113,10,-378},new int[]{-198,1111}); states[1111] = new State(new int[]{10,1112}); states[1112] = new State(-376); states[1113] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,532,18,247,19,252,5,624},new int[]{-82,1114,-92,127,-91,132,-90,290,-94,298,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622,-106,623}); states[1114] = new State(-377); states[1115] = new State(new int[]{101,1244,11,-358,25,-358,23,-358,41,-358,34,-358,27,-358,28,-358,43,-358,24,-358,86,-358,79,-358,78,-358,77,-358,76,-358,56,-63,26,-63,64,-63,47,-63,50,-63,59,-63,85,-63},new int[]{-163,1116,-41,1117,-37,1120,-58,1243}); states[1116] = new State(-426); states[1117] = new State(new int[]{85,116},new int[]{-241,1118}); states[1118] = new State(new int[]{10,1119}); states[1119] = new State(-453); states[1120] = new State(new int[]{56,1123,26,1144,64,1148,47,1307,50,1322,59,1324,85,-62},new int[]{-43,1121,-154,1122,-27,1129,-49,1146,-275,1150,-294,1309}); states[1121] = new State(-64); states[1122] = new State(-80); states[1123] = new State(new int[]{148,721,137,23,80,25,81,26,75,28,73,29},new int[]{-142,1124,-129,1128,-133,722,-137,24,-138,27}); states[1124] = new State(new int[]{10,1125,94,1126}); states[1125] = new State(-89); states[1126] = new State(new int[]{148,721,137,23,80,25,81,26,75,28,73,29},new int[]{-129,1127,-133,722,-137,24,-138,27}); states[1127] = new State(-91); states[1128] = new State(-90); states[1129] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,56,-81,26,-81,64,-81,47,-81,50,-81,59,-81,85,-81},new int[]{-25,1130,-26,1131,-127,1133,-133,1143,-137,24,-138,27}); states[1130] = new State(-95); states[1131] = new State(new int[]{10,1132}); states[1132] = new State(-105); states[1133] = new State(new int[]{114,1134,5,1139}); states[1134] = new State(new int[]{137,23,80,25,81,26,75,28,73,227,138,149,140,150,139,152,148,154,150,155,149,156,39,244,18,247,19,252,11,363,53,367,135,368,8,1137,129,373,110,377,109,378},new int[]{-98,1135,-84,1136,-76,191,-12,215,-10,225,-13,201,-133,226,-137,24,-138,27,-151,242,-153,147,-152,151,-16,243,-243,246,-281,251,-226,362,-186,375,-160,379,-251,380,-255,381,-228,382,-88,1138}); states[1135] = new State(-106); states[1136] = new State(new int[]{13,187,10,-108,86,-108,79,-108,78,-108,77,-108,76,-108}); states[1137] = new State(new int[]{137,23,80,25,81,26,75,28,73,227,138,149,140,150,139,152,148,154,150,155,149,156,39,244,18,247,19,252,11,363,53,367,135,368,8,892,129,373,110,377,109,378,60,158,9,-186},new int[]{-84,880,-63,893,-76,191,-12,215,-10,225,-13,201,-133,226,-137,24,-138,27,-151,242,-153,147,-152,151,-16,243,-243,246,-281,251,-226,362,-186,375,-160,379,-251,380,-255,381,-228,382,-62,237,-80,895,-79,240,-88,896,-229,897,-54,898}); states[1138] = new State(-109); states[1139] = new State(new int[]{137,358,80,25,81,26,75,28,73,29,148,154,150,155,149,156,110,377,109,378,138,149,140,150,139,152,8,388,136,399,21,405,45,413,46,550,31,554,71,558,62,561,41,566,34,594},new int[]{-262,1140,-258,356,-86,175,-95,267,-96,268,-167,269,-133,196,-137,24,-138,27,-16,383,-186,384,-151,387,-153,147,-152,151,-259,390,-287,391,-242,397,-235,398,-267,402,-268,403,-264,404,-256,411,-29,412,-249,549,-116,553,-117,557,-213,563,-211,564,-210,565}); states[1140] = new State(new int[]{114,1141}); states[1141] = new State(new int[]{137,23,80,25,81,26,75,28,73,227,138,149,140,150,139,152,148,154,150,155,149,156,39,244,18,247,19,252,11,363,53,367,135,368,8,892,129,373,110,377,109,378},new int[]{-79,1142,-84,241,-76,191,-12,215,-10,225,-13,201,-133,226,-137,24,-138,27,-151,242,-153,147,-152,151,-16,243,-243,246,-281,251,-226,362,-186,375,-160,379,-251,380,-255,381,-228,382,-88,896,-229,897}); states[1142] = new State(-107); states[1143] = new State(-110); states[1144] = new State(new int[]{137,23,80,25,81,26,75,28,73,29},new int[]{-25,1145,-26,1131,-127,1133,-133,1143,-137,24,-138,27}); states[1145] = new State(-94); states[1146] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,56,-82,26,-82,64,-82,47,-82,50,-82,59,-82,85,-82},new int[]{-25,1147,-26,1131,-127,1133,-133,1143,-137,24,-138,27}); states[1147] = new State(-97); states[1148] = new State(new int[]{137,23,80,25,81,26,75,28,73,29},new int[]{-25,1149,-26,1131,-127,1133,-133,1143,-137,24,-138,27}); states[1149] = new State(-96); states[1150] = new State(new int[]{11,650,56,-83,26,-83,64,-83,47,-83,50,-83,59,-83,85,-83,137,-200,80,-200,81,-200,75,-200,73,-200},new int[]{-46,1151,-6,1152,-236,994}); states[1151] = new State(-99); states[1152] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,11,650},new int[]{-47,1153,-236,429,-130,1154,-133,1299,-137,24,-138,27,-131,1304}); states[1153] = new State(-197); states[1154] = new State(new int[]{114,1155}); states[1155] = new State(new int[]{137,358,80,25,81,26,75,28,73,29,148,154,150,155,149,156,110,377,109,378,138,149,140,150,139,152,8,388,136,399,21,405,45,413,46,550,31,554,71,558,62,561,41,566,34,594,66,1293,67,1294,141,1295,24,1296,25,1297,23,-293,40,-293,61,-293},new int[]{-273,1156,-262,1158,-258,356,-86,175,-95,267,-96,268,-167,269,-133,196,-137,24,-138,27,-16,383,-186,384,-151,387,-153,147,-152,151,-259,390,-287,391,-242,397,-235,398,-267,402,-268,403,-264,404,-256,411,-29,412,-249,549,-116,553,-117,557,-213,563,-211,564,-210,565,-28,1159,-21,1160,-22,1291,-20,1298}); states[1156] = new State(new int[]{10,1157}); states[1157] = new State(-206); states[1158] = new State(-211); states[1159] = new State(-212); states[1160] = new State(new int[]{23,1285,40,1286,61,1287},new int[]{-277,1161}); states[1161] = new State(new int[]{8,1202,20,-305,11,-305,86,-305,79,-305,78,-305,77,-305,76,-305,26,-305,137,-305,80,-305,81,-305,75,-305,73,-305,59,-305,25,-305,23,-305,41,-305,34,-305,27,-305,28,-305,43,-305,24,-305,10,-305},new int[]{-170,1162}); states[1162] = new State(new int[]{20,1193,11,-312,86,-312,79,-312,78,-312,77,-312,76,-312,26,-312,137,-312,80,-312,81,-312,75,-312,73,-312,59,-312,25,-312,23,-312,41,-312,34,-312,27,-312,28,-312,43,-312,24,-312,10,-312},new int[]{-302,1163,-301,1191,-300,1213}); states[1163] = new State(new int[]{11,650,10,-303,86,-329,79,-329,78,-329,77,-329,76,-329,26,-200,137,-200,80,-200,81,-200,75,-200,73,-200,59,-200,25,-200,23,-200,41,-200,34,-200,27,-200,28,-200,43,-200,24,-200},new int[]{-24,1164,-23,1165,-30,1171,-32,420,-42,1172,-6,1173,-236,994,-31,1282,-51,1284,-50,426,-52,1283}); states[1164] = new State(-286); states[1165] = new State(new int[]{86,1166,79,1167,78,1168,77,1169,76,1170},new int[]{-7,418}); states[1166] = new State(-304); states[1167] = new State(-325); states[1168] = new State(-326); states[1169] = new State(-327); states[1170] = new State(-328); states[1171] = new State(-323); states[1172] = new State(-337); states[1173] = new State(new int[]{26,1175,137,23,80,25,81,26,75,28,73,29,59,1179,25,1238,23,1239,11,650,41,1186,34,1221,27,1253,28,1260,43,1267,24,1276},new int[]{-48,1174,-236,429,-209,428,-206,430,-244,431,-297,1177,-296,1178,-144,796,-133,795,-137,24,-138,27,-3,1183,-217,1240,-215,1115,-212,1185,-216,1220,-214,1241,-202,1264,-203,1265,-205,1266}); states[1174] = new State(-339); states[1175] = new State(new int[]{137,23,80,25,81,26,75,28,73,29},new int[]{-26,1176,-127,1133,-133,1143,-137,24,-138,27}); states[1176] = new State(-344); states[1177] = new State(-345); states[1178] = new State(-349); states[1179] = new State(new int[]{137,23,80,25,81,26,75,28,73,29},new int[]{-144,1180,-133,795,-137,24,-138,27}); states[1180] = new State(new int[]{5,1181,94,545}); states[1181] = new State(new int[]{137,358,80,25,81,26,75,28,73,29,148,154,150,155,149,156,110,377,109,378,138,149,140,150,139,152,8,388,136,399,21,405,45,413,46,550,31,554,71,558,62,561,41,566,34,594},new int[]{-262,1182,-258,356,-86,175,-95,267,-96,268,-167,269,-133,196,-137,24,-138,27,-16,383,-186,384,-151,387,-153,147,-152,151,-259,390,-287,391,-242,397,-235,398,-267,402,-268,403,-264,404,-256,411,-29,412,-249,549,-116,553,-117,557,-213,563,-211,564,-210,565}); states[1182] = new State(-350); states[1183] = new State(new int[]{27,434,43,1065,24,1107,137,23,80,25,81,26,75,28,73,29,59,1179,41,1186,34,1221},new int[]{-297,1184,-217,433,-203,1064,-296,1178,-144,796,-133,795,-137,24,-138,27,-215,1115,-212,1185,-216,1220}); states[1184] = new State(-346); states[1185] = new State(-359); states[1186] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,42,467},new int[]{-157,1187,-156,1048,-128,1049,-123,1050,-120,1051,-133,1056,-137,24,-138,27,-178,1057,-319,1059,-135,1063}); states[1187] = new State(new int[]{8,568,10,-455,104,-455},new int[]{-114,1188}); states[1188] = new State(new int[]{10,1218,104,-771},new int[]{-194,1189,-195,1214}); states[1189] = new State(new int[]{20,1193,101,-312,85,-312,56,-312,26,-312,64,-312,47,-312,50,-312,59,-312,11,-312,25,-312,23,-312,41,-312,34,-312,27,-312,28,-312,43,-312,24,-312,86,-312,79,-312,78,-312,77,-312,76,-312,142,-312,38,-312},new int[]{-302,1190,-301,1191,-300,1213}); states[1190] = new State(-444); states[1191] = new State(new int[]{20,1193,11,-313,86,-313,79,-313,78,-313,77,-313,76,-313,26,-313,137,-313,80,-313,81,-313,75,-313,73,-313,59,-313,25,-313,23,-313,41,-313,34,-313,27,-313,28,-313,43,-313,24,-313,10,-313,101,-313,85,-313,56,-313,64,-313,47,-313,50,-313,142,-313,38,-313},new int[]{-300,1192}); states[1192] = new State(-315); states[1193] = new State(new int[]{137,23,80,25,81,26,75,28,73,29},new int[]{-144,1194,-133,795,-137,24,-138,27}); states[1194] = new State(new int[]{5,1195,94,545}); states[1195] = new State(new int[]{137,358,80,25,81,26,75,28,73,29,148,154,150,155,149,156,110,377,109,378,138,149,140,150,139,152,8,388,136,399,21,405,45,1201,46,550,31,554,71,558,62,561,41,566,34,594,23,1210,27,1211},new int[]{-274,1196,-271,1212,-262,1200,-258,356,-86,175,-95,267,-96,268,-167,269,-133,196,-137,24,-138,27,-16,383,-186,384,-151,387,-153,147,-152,151,-259,390,-287,391,-242,397,-235,398,-267,402,-268,403,-264,404,-256,411,-29,412,-249,549,-116,553,-117,557,-213,563,-211,564,-210,565}); states[1196] = new State(new int[]{10,1197,94,1198}); states[1197] = new State(-316); states[1198] = new State(new int[]{137,358,80,25,81,26,75,28,73,29,148,154,150,155,149,156,110,377,109,378,138,149,140,150,139,152,8,388,136,399,21,405,45,1201,46,550,31,554,71,558,62,561,41,566,34,594,23,1210,27,1211},new int[]{-271,1199,-262,1200,-258,356,-86,175,-95,267,-96,268,-167,269,-133,196,-137,24,-138,27,-16,383,-186,384,-151,387,-153,147,-152,151,-259,390,-287,391,-242,397,-235,398,-267,402,-268,403,-264,404,-256,411,-29,412,-249,549,-116,553,-117,557,-213,563,-211,564,-210,565}); states[1199] = new State(-318); states[1200] = new State(-319); states[1201] = new State(new int[]{8,1202,10,-321,94,-321,20,-305,11,-305,86,-305,79,-305,78,-305,77,-305,76,-305,26,-305,137,-305,80,-305,81,-305,75,-305,73,-305,59,-305,25,-305,23,-305,41,-305,34,-305,27,-305,28,-305,43,-305,24,-305},new int[]{-170,414}); states[1202] = new State(new int[]{137,23,80,25,81,26,75,28,73,29},new int[]{-169,1203,-168,1209,-167,1207,-133,196,-137,24,-138,27,-287,1208}); states[1203] = new State(new int[]{9,1204,94,1205}); states[1204] = new State(-306); states[1205] = new State(new int[]{137,23,80,25,81,26,75,28,73,29},new int[]{-168,1206,-167,1207,-133,196,-137,24,-138,27,-287,1208}); states[1206] = new State(-308); states[1207] = new State(new int[]{7,163,117,168,9,-309,94,-309},new int[]{-285,658}); states[1208] = new State(-310); states[1209] = new State(-307); states[1210] = new State(-320); states[1211] = new State(-322); states[1212] = new State(-317); states[1213] = new State(-314); states[1214] = new State(new int[]{104,1215}); states[1215] = new State(new int[]{135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,703,8,704,18,247,19,252,138,149,140,150,139,152,148,154,150,155,149,156,54,719,85,116,37,697,22,726,91,742,51,747,32,752,52,762,96,768,44,775,33,778,50,786,57,819,72,824,70,811,35,831,10,-479},new int[]{-246,1216,-4,122,-101,123,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-15,687,-151,146,-153,147,-152,151,-16,153,-17,514,-55,688,-104,525,-199,717,-119,718,-241,723,-139,724,-33,725,-233,741,-303,746,-110,751,-304,761,-146,766,-288,767,-234,774,-109,777,-299,785,-56,815,-161,816,-160,817,-155,818,-112,823,-113,828,-111,829,-332,830}); states[1216] = new State(new int[]{10,1217}); states[1217] = new State(-429); states[1218] = new State(new int[]{141,1040,143,1041,144,1042,145,1043,147,1044,146,1045,20,-769,101,-769,85,-769,56,-769,26,-769,64,-769,47,-769,50,-769,59,-769,11,-769,25,-769,23,-769,41,-769,34,-769,27,-769,28,-769,43,-769,24,-769,86,-769,79,-769,78,-769,77,-769,76,-769,142,-769},new int[]{-193,1219,-196,1046}); states[1219] = new State(new int[]{10,1038,104,-772}); states[1220] = new State(-360); states[1221] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,42,467},new int[]{-156,1222,-128,1049,-123,1050,-120,1051,-133,1056,-137,24,-138,27,-178,1057,-319,1059,-135,1063}); states[1222] = new State(new int[]{8,568,5,-455,10,-455,104,-455},new int[]{-114,1223}); states[1223] = new State(new int[]{5,1226,10,1218,104,-771},new int[]{-194,1224,-195,1234}); states[1224] = new State(new int[]{20,1193,101,-312,85,-312,56,-312,26,-312,64,-312,47,-312,50,-312,59,-312,11,-312,25,-312,23,-312,41,-312,34,-312,27,-312,28,-312,43,-312,24,-312,86,-312,79,-312,78,-312,77,-312,76,-312,142,-312,38,-312},new int[]{-302,1225,-301,1191,-300,1213}); states[1225] = new State(-445); states[1226] = new State(new int[]{137,358,80,25,81,26,75,28,73,29,148,154,150,155,149,156,110,377,109,378,138,149,140,150,139,152,8,388,136,399,21,405,45,413,46,550,31,554,71,558,62,561,41,566,34,594},new int[]{-261,1227,-262,401,-258,356,-86,175,-95,267,-96,268,-167,269,-133,196,-137,24,-138,27,-16,383,-186,384,-151,387,-153,147,-152,151,-259,390,-287,391,-242,397,-235,398,-267,402,-268,403,-264,404,-256,411,-29,412,-249,549,-116,553,-117,557,-213,563,-211,564,-210,565}); states[1227] = new State(new int[]{10,1218,104,-771},new int[]{-194,1228,-195,1230}); states[1228] = new State(new int[]{20,1193,101,-312,85,-312,56,-312,26,-312,64,-312,47,-312,50,-312,59,-312,11,-312,25,-312,23,-312,41,-312,34,-312,27,-312,28,-312,43,-312,24,-312,86,-312,79,-312,78,-312,77,-312,76,-312,142,-312,38,-312},new int[]{-302,1229,-301,1191,-300,1213}); states[1229] = new State(-446); states[1230] = new State(new int[]{104,1231}); states[1231] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,499,18,247,19,252,34,664,41,669},new int[]{-93,1232,-92,464,-91,132,-90,290,-94,465,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,460,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622,-307,668,-308,663}); states[1232] = new State(new int[]{10,1233}); states[1233] = new State(-427); states[1234] = new State(new int[]{104,1235}); states[1235] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,499,18,247,19,252,34,664,41,669},new int[]{-93,1236,-92,464,-91,132,-90,290,-94,465,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,460,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622,-307,668,-308,663}); states[1236] = new State(new int[]{10,1237}); states[1237] = new State(-428); states[1238] = new State(-347); states[1239] = new State(-348); states[1240] = new State(-356); states[1241] = new State(new int[]{101,1244,11,-357,25,-357,23,-357,41,-357,34,-357,27,-357,28,-357,43,-357,24,-357,86,-357,79,-357,78,-357,77,-357,76,-357,56,-63,26,-63,64,-63,47,-63,50,-63,59,-63,85,-63},new int[]{-163,1242,-41,1117,-37,1120,-58,1243}); states[1242] = new State(-412); states[1243] = new State(-454); states[1244] = new State(new int[]{10,1252,137,23,80,25,81,26,75,28,73,29,138,149,140,150,139,152},new int[]{-97,1245,-133,1249,-137,24,-138,27,-151,1250,-153,147,-152,151}); states[1245] = new State(new int[]{75,1246,10,1251}); states[1246] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,138,149,140,150,139,152},new int[]{-97,1247,-133,1249,-137,24,-138,27,-151,1250,-153,147,-152,151}); states[1247] = new State(new int[]{10,1248}); states[1248] = new State(-447); states[1249] = new State(-450); states[1250] = new State(-451); states[1251] = new State(-448); states[1252] = new State(-449); states[1253] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,42,467,8,-365,104,-365,10,-365},new int[]{-158,1254,-157,1047,-156,1048,-128,1049,-123,1050,-120,1051,-133,1056,-137,24,-138,27,-178,1057,-319,1059,-135,1063}); states[1254] = new State(new int[]{8,568,104,-455,10,-455},new int[]{-114,1255}); states[1255] = new State(new int[]{104,1257,10,1036},new int[]{-194,1256}); states[1256] = new State(-361); states[1257] = new State(new int[]{135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,703,8,704,18,247,19,252,138,149,140,150,139,152,148,154,150,155,149,156,54,719,85,116,37,697,22,726,91,742,51,747,32,752,52,762,96,768,44,775,33,778,50,786,57,819,72,824,70,811,35,831,10,-479},new int[]{-246,1258,-4,122,-101,123,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-15,687,-151,146,-153,147,-152,151,-16,153,-17,514,-55,688,-104,525,-199,717,-119,718,-241,723,-139,724,-33,725,-233,741,-303,746,-110,751,-304,761,-146,766,-288,767,-234,774,-109,777,-299,785,-56,815,-161,816,-160,817,-155,818,-112,823,-113,828,-111,829,-332,830}); states[1258] = new State(new int[]{10,1259}); states[1259] = new State(-413); states[1260] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,42,467,8,-365,10,-365},new int[]{-158,1261,-157,1047,-156,1048,-128,1049,-123,1050,-120,1051,-133,1056,-137,24,-138,27,-178,1057,-319,1059,-135,1063}); states[1261] = new State(new int[]{8,568,10,-455},new int[]{-114,1262}); states[1262] = new State(new int[]{10,1036},new int[]{-194,1263}); states[1263] = new State(-363); states[1264] = new State(-353); states[1265] = new State(-424); states[1266] = new State(-354); states[1267] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,79,32,78,33,77,34,76,35},new int[]{-159,1268,-133,1105,-137,24,-138,27,-136,1106}); states[1268] = new State(new int[]{7,1090,11,1096,5,-382},new int[]{-220,1269,-225,1093}); states[1269] = new State(new int[]{80,1079,81,1085,10,-389},new int[]{-189,1270}); states[1270] = new State(new int[]{10,1271}); states[1271] = new State(new int[]{60,1074,146,1076,145,1077,141,1078,11,-379,25,-379,23,-379,41,-379,34,-379,27,-379,28,-379,43,-379,24,-379,86,-379,79,-379,78,-379,77,-379,76,-379},new int[]{-192,1272,-197,1273}); states[1272] = new State(-371); states[1273] = new State(new int[]{10,1274}); states[1274] = new State(new int[]{60,1074,11,-379,25,-379,23,-379,41,-379,34,-379,27,-379,28,-379,43,-379,24,-379,86,-379,79,-379,78,-379,77,-379,76,-379},new int[]{-192,1275}); states[1275] = new State(-372); states[1276] = new State(new int[]{43,1277}); states[1277] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,79,32,78,33,77,34,76,35},new int[]{-159,1278,-133,1105,-137,24,-138,27,-136,1106}); states[1278] = new State(new int[]{7,1090,11,1096,5,-382},new int[]{-220,1279,-225,1093}); states[1279] = new State(new int[]{104,1113,10,-378},new int[]{-198,1280}); states[1280] = new State(new int[]{10,1281}); states[1281] = new State(-375); states[1282] = new State(new int[]{11,650,86,-331,79,-331,78,-331,77,-331,76,-331,25,-200,23,-200,41,-200,34,-200,27,-200,28,-200,43,-200,24,-200},new int[]{-51,425,-50,426,-6,427,-236,994,-52,1283}); states[1283] = new State(-343); states[1284] = new State(-340); states[1285] = new State(-297); states[1286] = new State(-298); states[1287] = new State(new int[]{23,1288,45,1289,40,1290,8,-299,20,-299,11,-299,86,-299,79,-299,78,-299,77,-299,76,-299,26,-299,137,-299,80,-299,81,-299,75,-299,73,-299,59,-299,25,-299,41,-299,34,-299,27,-299,28,-299,43,-299,24,-299,10,-299}); states[1288] = new State(-300); states[1289] = new State(-301); states[1290] = new State(-302); states[1291] = new State(new int[]{66,1293,67,1294,141,1295,24,1296,25,1297,23,-294,40,-294,61,-294},new int[]{-20,1292}); states[1292] = new State(-296); states[1293] = new State(-288); states[1294] = new State(-289); states[1295] = new State(-290); states[1296] = new State(-291); states[1297] = new State(-292); states[1298] = new State(-295); states[1299] = new State(new int[]{117,1301,114,-208},new int[]{-141,1300}); states[1300] = new State(-209); states[1301] = new State(new int[]{137,23,80,25,81,26,75,28,73,29},new int[]{-144,1302,-133,795,-137,24,-138,27}); states[1302] = new State(new int[]{116,1303,115,1055,94,545}); states[1303] = new State(-210); states[1304] = new State(new int[]{137,358,80,25,81,26,75,28,73,29,148,154,150,155,149,156,110,377,109,378,138,149,140,150,139,152,8,388,136,399,21,405,45,413,46,550,31,554,71,558,62,561,41,566,34,594,66,1293,67,1294,141,1295,24,1296,25,1297,23,-293,40,-293,61,-293},new int[]{-273,1305,-262,1158,-258,356,-86,175,-95,267,-96,268,-167,269,-133,196,-137,24,-138,27,-16,383,-186,384,-151,387,-153,147,-152,151,-259,390,-287,391,-242,397,-235,398,-267,402,-268,403,-264,404,-256,411,-29,412,-249,549,-116,553,-117,557,-213,563,-211,564,-210,565,-28,1159,-21,1160,-22,1291,-20,1298}); states[1305] = new State(new int[]{10,1306}); states[1306] = new State(-207); states[1307] = new State(new int[]{11,650,137,-200,80,-200,81,-200,75,-200,73,-200},new int[]{-46,1308,-6,1152,-236,994}); states[1308] = new State(-98); states[1309] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,8,1314,56,-84,26,-84,64,-84,47,-84,50,-84,59,-84,85,-84},new int[]{-298,1310,-295,1311,-296,1312,-144,796,-133,795,-137,24,-138,27}); states[1310] = new State(-104); states[1311] = new State(-100); states[1312] = new State(new int[]{10,1313}); states[1313] = new State(-396); states[1314] = new State(new int[]{137,23,80,25,81,26,75,28,73,29},new int[]{-133,1315,-137,24,-138,27}); states[1315] = new State(new int[]{94,1316}); states[1316] = new State(new int[]{137,23,80,25,81,26,75,28,73,29},new int[]{-144,1317,-133,795,-137,24,-138,27}); states[1317] = new State(new int[]{9,1318,94,545}); states[1318] = new State(new int[]{104,1319}); states[1319] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,532,18,247,19,252},new int[]{-92,1320,-91,132,-90,290,-94,465,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622}); states[1320] = new State(new int[]{10,1321,13,128}); states[1321] = new State(-101); states[1322] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,8,1314},new int[]{-298,1323,-295,1311,-296,1312,-144,796,-133,795,-137,24,-138,27}); states[1323] = new State(-102); states[1324] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,8,1314},new int[]{-298,1325,-295,1311,-296,1312,-144,796,-133,795,-137,24,-138,27}); states[1325] = new State(-103); states[1326] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,148,154,150,155,149,156,110,377,109,378,138,149,140,150,139,152,8,1003,12,-269,94,-269},new int[]{-257,1327,-258,1328,-86,175,-95,267,-96,268,-167,386,-133,196,-137,24,-138,27,-16,383,-186,384,-151,387,-153,147,-152,151}); states[1327] = new State(-267); states[1328] = new State(-268); states[1329] = new State(-266); states[1330] = new State(new int[]{137,358,80,25,81,26,75,28,73,29,148,154,150,155,149,156,110,377,109,378,138,149,140,150,139,152,8,388,136,399,21,405,45,413,46,550,31,554,71,558,62,561,41,566,34,594},new int[]{-262,1331,-258,356,-86,175,-95,267,-96,268,-167,269,-133,196,-137,24,-138,27,-16,383,-186,384,-151,387,-153,147,-152,151,-259,390,-287,391,-242,397,-235,398,-267,402,-268,403,-264,404,-256,411,-29,412,-249,549,-116,553,-117,557,-213,563,-211,564,-210,565}); states[1331] = new State(-265); states[1332] = new State(-233); states[1333] = new State(-234); states[1334] = new State(new int[]{121,393,115,-235,94,-235,114,-235,9,-235,10,-235,104,-235,86,-235,92,-235,95,-235,30,-235,98,-235,12,-235,93,-235,29,-235,81,-235,80,-235,2,-235,79,-235,78,-235,77,-235,76,-235,131,-235}); states[1335] = new State(new int[]{137,23,80,25,81,26,75,28,73,29},new int[]{-133,1336,-137,24,-138,27}); states[1336] = new State(new int[]{5,1337,9,-662,10,-662,94,-662}); states[1337] = new State(new int[]{137,358,80,25,81,26,75,28,73,29,148,154,150,155,149,156,110,377,109,378,138,149,140,150,139,152,8,388,136,399,21,405,45,413,46,550,31,554,71,558,62,561,41,566,34,594},new int[]{-262,1338,-258,356,-86,175,-95,267,-96,268,-167,269,-133,196,-137,24,-138,27,-16,383,-186,384,-151,387,-153,147,-152,151,-259,390,-287,391,-242,397,-235,398,-267,402,-268,403,-264,404,-256,411,-29,412,-249,549,-116,553,-117,557,-213,563,-211,564,-210,565}); states[1338] = new State(-661); states[1339] = new State(-663); states[1340] = new State(-664); states[1341] = new State(-665); states[1342] = new State(new int[]{14,351,138,149,140,150,139,152,148,154,150,155,149,156,137,23,80,25,81,26,75,28,73,29,50,1335,11,334,8,607},new int[]{-336,1343,-15,352,-151,146,-153,147,-152,151,-16,153,-133,353,-137,24,-138,27,-325,1339,-270,345,-167,162,-327,1340,-328,1341}); states[1343] = new State(-646); states[1344] = new State(-644); states[1345] = new State(-625); states[1346] = new State(-626); states[1347] = new State(-627); states[1348] = new State(-619); states[1349] = new State(-758); states[1350] = new State(-228); states[1351] = new State(-224); states[1352] = new State(-595); states[1353] = new State(new int[]{8,1354}); states[1354] = new State(new int[]{137,23,80,25,81,26,75,28,73,227,53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,42,467,39,497,8,532,18,247,19,252},new int[]{-318,1355,-317,1363,-133,1359,-137,24,-138,27,-90,1362,-94,465,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621}); states[1355] = new State(new int[]{9,1356,94,1357}); states[1356] = new State(-604); states[1357] = new State(new int[]{137,23,80,25,81,26,75,28,73,227,53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,42,467,39,497,8,532,18,247,19,252},new int[]{-317,1358,-133,1359,-137,24,-138,27,-90,1362,-94,465,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621}); states[1358] = new State(-608); states[1359] = new State(new int[]{104,1360,17,-740,8,-740,7,-740,136,-740,4,-740,15,-740,132,-740,130,-740,112,-740,111,-740,125,-740,126,-740,127,-740,128,-740,124,-740,110,-740,109,-740,122,-740,123,-740,120,-740,114,-740,119,-740,117,-740,115,-740,118,-740,116,-740,131,-740,9,-740,94,-740,113,-740,11,-740}); states[1360] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,532,18,247,19,252},new int[]{-90,1361,-94,465,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621}); states[1361] = new State(new int[]{114,291,119,292,117,293,115,294,118,295,116,296,131,297,9,-605,94,-605},new int[]{-183,135}); states[1362] = new State(new int[]{114,291,119,292,117,293,115,294,118,295,116,296,131,297,9,-606,94,-606},new int[]{-183,135}); states[1363] = new State(-607); states[1364] = new State(new int[]{13,187,5,-668,12,-668}); states[1365] = new State(new int[]{137,23,80,25,81,26,75,28,73,227,138,149,140,150,139,152,148,154,150,155,149,156,39,244,18,247,19,252,11,363,53,367,135,368,8,370,129,373,110,377,109,378},new int[]{-84,1366,-76,191,-12,215,-10,225,-13,201,-133,226,-137,24,-138,27,-151,242,-153,147,-152,151,-16,243,-243,246,-281,251,-226,362,-186,375,-160,379,-251,380,-255,381,-228,382}); states[1366] = new State(new int[]{13,187,94,-178,9,-178,12,-178,5,-178}); states[1367] = new State(new int[]{137,23,80,25,81,26,75,28,73,227,138,149,140,150,139,152,148,154,150,155,149,156,39,244,18,247,19,252,11,363,53,367,135,368,8,370,129,373,110,377,109,378,5,-669,12,-669},new int[]{-108,1368,-84,1364,-76,191,-12,215,-10,225,-13,201,-133,226,-137,24,-138,27,-151,242,-153,147,-152,151,-16,243,-243,246,-281,251,-226,362,-186,375,-160,379,-251,380,-255,381,-228,382}); states[1368] = new State(new int[]{5,1369,12,-675}); states[1369] = new State(new int[]{137,23,80,25,81,26,75,28,73,227,138,149,140,150,139,152,148,154,150,155,149,156,39,244,18,247,19,252,11,363,53,367,135,368,8,370,129,373,110,377,109,378},new int[]{-84,1370,-76,191,-12,215,-10,225,-13,201,-133,226,-137,24,-138,27,-151,242,-153,147,-152,151,-16,243,-243,246,-281,251,-226,362,-186,375,-160,379,-251,380,-255,381,-228,382}); states[1370] = new State(new int[]{13,187,12,-677}); states[1371] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,79,32,78,33,77,34,76,35,66,36,61,37,122,38,19,39,18,40,60,41,20,42,123,43,124,44,125,45,126,46,127,47,128,48,129,49,130,50,131,51,132,52,21,53,71,54,85,55,22,56,23,57,26,58,27,59,28,60,69,61,93,62,29,63,30,64,31,65,24,66,98,67,95,68,32,69,33,70,34,71,37,72,38,73,39,74,97,75,40,76,41,77,43,78,44,79,45,80,91,81,46,82,96,83,47,84,25,85,48,86,68,87,92,88,49,89,50,90,51,91,52,92,53,93,54,94,55,95,56,96,58,97,99,98,100,99,103,100,101,101,102,102,59,103,72,104,35,105,36,106,42,108,86,109},new int[]{-124,1372,-133,22,-137,24,-138,27,-279,30,-136,31,-280,107}); states[1372] = new State(-167); states[1373] = new State(-168); states[1374] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,499,18,247,19,252,5,624,34,664,41,669,9,-172},new int[]{-71,1375,-67,1377,-83,518,-82,126,-92,127,-91,132,-90,290,-94,298,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,460,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622,-106,623,-307,662,-308,663}); states[1375] = new State(new int[]{9,1376}); states[1376] = new State(-169); states[1377] = new State(new int[]{94,458,9,-171}); states[1378] = new State(-136); states[1379] = new State(new int[]{137,23,80,25,81,26,75,28,73,227,138,149,140,150,139,152,148,154,150,155,149,156,39,244,18,247,19,252,11,363,53,367,135,368,8,370,129,373,110,377,109,378},new int[]{-76,1380,-12,215,-10,225,-13,201,-133,226,-137,24,-138,27,-151,242,-153,147,-152,151,-16,243,-243,246,-281,251,-226,362,-186,375,-160,379,-251,380,-255,381}); states[1380] = new State(new int[]{110,1381,109,1382,122,1383,123,1384,13,-114,6,-114,94,-114,9,-114,12,-114,5,-114,86,-114,10,-114,92,-114,95,-114,30,-114,98,-114,93,-114,29,-114,81,-114,80,-114,2,-114,79,-114,78,-114,77,-114,76,-114},new int[]{-180,192}); states[1381] = new State(-126); states[1382] = new State(-127); states[1383] = new State(-128); states[1384] = new State(-129); states[1385] = new State(-117); states[1386] = new State(-118); states[1387] = new State(-119); states[1388] = new State(-120); states[1389] = new State(-121); states[1390] = new State(-122); states[1391] = new State(-123); states[1392] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,148,154,150,155,149,156,110,377,109,378,138,149,140,150,139,152},new int[]{-86,1393,-95,267,-96,268,-167,386,-133,196,-137,24,-138,27,-16,383,-186,384,-151,387,-153,147,-152,151}); states[1393] = new State(new int[]{110,1381,109,1382,122,1383,123,1384,13,-237,115,-237,94,-237,114,-237,9,-237,10,-237,121,-237,104,-237,86,-237,92,-237,95,-237,30,-237,98,-237,12,-237,93,-237,29,-237,81,-237,80,-237,2,-237,79,-237,78,-237,77,-237,76,-237,131,-237},new int[]{-180,176}); states[1394] = new State(-33); states[1395] = new State(new int[]{56,1123,26,1144,64,1148,47,1307,50,1322,59,1324,11,650,85,-59,86,-59,97,-59,41,-200,34,-200,25,-200,23,-200,27,-200,28,-200},new int[]{-44,1396,-154,1397,-27,1398,-49,1399,-275,1400,-294,1401,-207,1402,-6,1403,-236,994}); states[1396] = new State(-61); states[1397] = new State(-71); states[1398] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,56,-72,26,-72,64,-72,47,-72,50,-72,59,-72,11,-72,41,-72,34,-72,25,-72,23,-72,27,-72,28,-72,85,-72,86,-72,97,-72},new int[]{-25,1130,-26,1131,-127,1133,-133,1143,-137,24,-138,27}); states[1399] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,56,-73,26,-73,64,-73,47,-73,50,-73,59,-73,11,-73,41,-73,34,-73,25,-73,23,-73,27,-73,28,-73,85,-73,86,-73,97,-73},new int[]{-25,1147,-26,1131,-127,1133,-133,1143,-137,24,-138,27}); states[1400] = new State(new int[]{11,650,56,-74,26,-74,64,-74,47,-74,50,-74,59,-74,41,-74,34,-74,25,-74,23,-74,27,-74,28,-74,85,-74,86,-74,97,-74,137,-200,80,-200,81,-200,75,-200,73,-200},new int[]{-46,1151,-6,1152,-236,994}); states[1401] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,8,1314,56,-75,26,-75,64,-75,47,-75,50,-75,59,-75,11,-75,41,-75,34,-75,25,-75,23,-75,27,-75,28,-75,85,-75,86,-75,97,-75},new int[]{-298,1310,-295,1311,-296,1312,-144,796,-133,795,-137,24,-138,27}); states[1402] = new State(-76); states[1403] = new State(new int[]{41,1416,34,1423,25,1238,23,1239,27,1451,28,1260,11,650},new int[]{-200,1404,-236,429,-201,1405,-208,1406,-215,1407,-212,1185,-216,1220,-3,1440,-204,1448,-214,1449}); states[1404] = new State(-79); states[1405] = new State(-77); states[1406] = new State(-415); states[1407] = new State(new int[]{142,1409,101,1244,56,-60,26,-60,64,-60,47,-60,50,-60,59,-60,11,-60,41,-60,34,-60,25,-60,23,-60,27,-60,28,-60,85,-60},new int[]{-165,1408,-164,1411,-39,1412,-40,1395,-58,1415}); states[1408] = new State(-417); states[1409] = new State(new int[]{10,1410}); states[1410] = new State(-423); states[1411] = new State(-430); states[1412] = new State(new int[]{85,116},new int[]{-241,1413}); states[1413] = new State(new int[]{10,1414}); states[1414] = new State(-452); states[1415] = new State(-431); states[1416] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,42,467},new int[]{-157,1417,-156,1048,-128,1049,-123,1050,-120,1051,-133,1056,-137,24,-138,27,-178,1057,-319,1059,-135,1063}); states[1417] = new State(new int[]{8,568,10,-455,104,-455},new int[]{-114,1418}); states[1418] = new State(new int[]{10,1218,104,-771},new int[]{-194,1189,-195,1419}); states[1419] = new State(new int[]{104,1420}); states[1420] = new State(new int[]{135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,703,8,704,18,247,19,252,138,149,140,150,139,152,148,154,150,155,149,156,54,719,85,116,37,697,22,726,91,742,51,747,32,752,52,762,96,768,44,775,33,778,50,786,57,819,72,824,70,811,35,831,10,-479},new int[]{-246,1421,-4,122,-101,123,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-15,687,-151,146,-153,147,-152,151,-16,153,-17,514,-55,688,-104,525,-199,717,-119,718,-241,723,-139,724,-33,725,-233,741,-303,746,-110,751,-304,761,-146,766,-288,767,-234,774,-109,777,-299,785,-56,815,-161,816,-160,817,-155,818,-112,823,-113,828,-111,829,-332,830}); states[1421] = new State(new int[]{10,1422}); states[1422] = new State(-422); states[1423] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,42,467},new int[]{-156,1424,-128,1049,-123,1050,-120,1051,-133,1056,-137,24,-138,27,-178,1057,-319,1059,-135,1063}); states[1424] = new State(new int[]{8,568,5,-455,10,-455,104,-455},new int[]{-114,1425}); states[1425] = new State(new int[]{5,1426,10,1218,104,-771},new int[]{-194,1224,-195,1434}); states[1426] = new State(new int[]{137,358,80,25,81,26,75,28,73,29,148,154,150,155,149,156,110,377,109,378,138,149,140,150,139,152,8,388,136,399,21,405,45,413,46,550,31,554,71,558,62,561,41,566,34,594},new int[]{-261,1427,-262,401,-258,356,-86,175,-95,267,-96,268,-167,269,-133,196,-137,24,-138,27,-16,383,-186,384,-151,387,-153,147,-152,151,-259,390,-287,391,-242,397,-235,398,-267,402,-268,403,-264,404,-256,411,-29,412,-249,549,-116,553,-117,557,-213,563,-211,564,-210,565}); states[1427] = new State(new int[]{10,1218,104,-771},new int[]{-194,1228,-195,1428}); states[1428] = new State(new int[]{104,1429}); states[1429] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,499,18,247,19,252,34,664,41,669},new int[]{-92,1430,-307,1432,-91,132,-90,290,-94,465,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,460,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622,-308,663}); states[1430] = new State(new int[]{10,1431,13,128}); states[1431] = new State(-418); states[1432] = new State(new int[]{10,1433}); states[1433] = new State(-420); states[1434] = new State(new int[]{104,1435}); states[1435] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,499,18,247,19,252,34,664,41,669},new int[]{-92,1436,-307,1438,-91,132,-90,290,-94,465,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,460,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622,-308,663}); states[1436] = new State(new int[]{10,1437,13,128}); states[1437] = new State(-419); states[1438] = new State(new int[]{10,1439}); states[1439] = new State(-421); states[1440] = new State(new int[]{27,1442,41,1416,34,1423},new int[]{-208,1441,-215,1407,-212,1185,-216,1220}); states[1441] = new State(-416); states[1442] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,42,467,8,-365,104,-365,10,-365},new int[]{-158,1443,-157,1047,-156,1048,-128,1049,-123,1050,-120,1051,-133,1056,-137,24,-138,27,-178,1057,-319,1059,-135,1063}); states[1443] = new State(new int[]{8,568,104,-455,10,-455},new int[]{-114,1444}); states[1444] = new State(new int[]{104,1445,10,1036},new int[]{-194,437}); states[1445] = new State(new int[]{135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,703,8,704,18,247,19,252,138,149,140,150,139,152,148,154,150,155,149,156,54,719,85,116,37,697,22,726,91,742,51,747,32,752,52,762,96,768,44,775,33,778,50,786,57,819,72,824,70,811,35,831,10,-479},new int[]{-246,1446,-4,122,-101,123,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-15,687,-151,146,-153,147,-152,151,-16,153,-17,514,-55,688,-104,525,-199,717,-119,718,-241,723,-139,724,-33,725,-233,741,-303,746,-110,751,-304,761,-146,766,-288,767,-234,774,-109,777,-299,785,-56,815,-161,816,-160,817,-155,818,-112,823,-113,828,-111,829,-332,830}); states[1446] = new State(new int[]{10,1447}); states[1447] = new State(-411); states[1448] = new State(-78); states[1449] = new State(-60,new int[]{-164,1450,-39,1412,-40,1395}); states[1450] = new State(-409); states[1451] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,42,467,8,-365,104,-365,10,-365},new int[]{-158,1452,-157,1047,-156,1048,-128,1049,-123,1050,-120,1051,-133,1056,-137,24,-138,27,-178,1057,-319,1059,-135,1063}); states[1452] = new State(new int[]{8,568,104,-455,10,-455},new int[]{-114,1453}); states[1453] = new State(new int[]{104,1454,10,1036},new int[]{-194,1256}); states[1454] = new State(new int[]{135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,703,8,704,18,247,19,252,138,149,140,150,139,152,148,154,150,155,149,156,54,719,85,116,37,697,22,726,91,742,51,747,32,752,52,762,96,768,44,775,33,778,50,786,57,819,72,824,70,811,35,831,10,-479},new int[]{-246,1455,-4,122,-101,123,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-15,687,-151,146,-153,147,-152,151,-16,153,-17,514,-55,688,-104,525,-199,717,-119,718,-241,723,-139,724,-33,725,-233,741,-303,746,-110,751,-304,761,-146,766,-288,767,-234,774,-109,777,-299,785,-56,815,-161,816,-160,817,-155,818,-112,823,-113,828,-111,829,-332,830}); states[1455] = new State(new int[]{10,1456}); states[1456] = new State(-410); states[1457] = new State(new int[]{3,1459,49,-13,85,-13,56,-13,26,-13,64,-13,47,-13,50,-13,59,-13,11,-13,41,-13,34,-13,25,-13,23,-13,27,-13,28,-13,40,-13,86,-13,97,-13},new int[]{-171,1458}); states[1458] = new State(-15); states[1459] = new State(new int[]{137,1460,138,1461}); states[1460] = new State(-16); states[1461] = new State(-17); states[1462] = new State(-14); states[1463] = new State(new int[]{137,23,80,25,81,26,75,28,73,29},new int[]{-133,1464,-137,24,-138,27}); states[1464] = new State(new int[]{10,1466,8,1467},new int[]{-174,1465}); states[1465] = new State(-26); states[1466] = new State(-27); states[1467] = new State(new int[]{137,23,80,25,81,26,75,28,73,29},new int[]{-176,1468,-132,1474,-133,1473,-137,24,-138,27}); states[1468] = new State(new int[]{9,1469,94,1471}); states[1469] = new State(new int[]{10,1470}); states[1470] = new State(-28); states[1471] = new State(new int[]{137,23,80,25,81,26,75,28,73,29},new int[]{-132,1472,-133,1473,-137,24,-138,27}); states[1472] = new State(-30); states[1473] = new State(-31); states[1474] = new State(-29); states[1475] = new State(-3); states[1476] = new State(new int[]{99,1531,100,1532,103,1533,11,650},new int[]{-293,1477,-236,429,-2,1526}); states[1477] = new State(new int[]{40,1498,49,-36,56,-36,26,-36,64,-36,47,-36,50,-36,59,-36,11,-36,41,-36,34,-36,25,-36,23,-36,27,-36,28,-36,86,-36,97,-36,85,-36},new int[]{-148,1478,-149,1495,-289,1524}); states[1478] = new State(new int[]{38,1492},new int[]{-147,1479}); states[1479] = new State(new int[]{86,1482,97,1483,85,1489},new int[]{-140,1480}); states[1480] = new State(new int[]{7,1481}); states[1481] = new State(-42); states[1482] = new State(-52); states[1483] = new State(new int[]{135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,703,8,704,18,247,19,252,138,149,140,150,139,152,148,740,150,155,149,156,54,719,85,116,37,697,22,726,91,742,51,747,32,752,52,762,96,768,44,775,33,778,50,786,57,819,72,824,70,811,35,831,86,-479,98,-479,10,-479},new int[]{-238,1484,-247,738,-246,121,-4,122,-101,123,-118,441,-100,453,-133,739,-137,24,-138,27,-178,466,-243,512,-281,513,-15,687,-151,146,-153,147,-152,151,-16,153,-17,514,-55,688,-104,525,-199,717,-119,718,-241,723,-139,724,-33,725,-233,741,-303,746,-110,751,-304,761,-146,766,-288,767,-234,774,-109,777,-299,785,-56,815,-161,816,-160,817,-155,818,-112,823,-113,828,-111,829,-332,830,-129,926}); states[1484] = new State(new int[]{86,1485,98,1486,10,119}); states[1485] = new State(-53); states[1486] = new State(new int[]{135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,703,8,704,18,247,19,252,138,149,140,150,139,152,148,740,150,155,149,156,54,719,85,116,37,697,22,726,91,742,51,747,32,752,52,762,96,768,44,775,33,778,50,786,57,819,72,824,70,811,35,831,86,-479,10,-479},new int[]{-238,1487,-247,738,-246,121,-4,122,-101,123,-118,441,-100,453,-133,739,-137,24,-138,27,-178,466,-243,512,-281,513,-15,687,-151,146,-153,147,-152,151,-16,153,-17,514,-55,688,-104,525,-199,717,-119,718,-241,723,-139,724,-33,725,-233,741,-303,746,-110,751,-304,761,-146,766,-288,767,-234,774,-109,777,-299,785,-56,815,-161,816,-160,817,-155,818,-112,823,-113,828,-111,829,-332,830,-129,926}); states[1487] = new State(new int[]{86,1488,10,119}); states[1488] = new State(-54); states[1489] = new State(new int[]{135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,703,8,704,18,247,19,252,138,149,140,150,139,152,148,740,150,155,149,156,54,719,85,116,37,697,22,726,91,742,51,747,32,752,52,762,96,768,44,775,33,778,50,786,57,819,72,824,70,811,35,831,86,-479,10,-479},new int[]{-238,1490,-247,738,-246,121,-4,122,-101,123,-118,441,-100,453,-133,739,-137,24,-138,27,-178,466,-243,512,-281,513,-15,687,-151,146,-153,147,-152,151,-16,153,-17,514,-55,688,-104,525,-199,717,-119,718,-241,723,-139,724,-33,725,-233,741,-303,746,-110,751,-304,761,-146,766,-288,767,-234,774,-109,777,-299,785,-56,815,-161,816,-160,817,-155,818,-112,823,-113,828,-111,829,-332,830,-129,926}); states[1490] = new State(new int[]{86,1491,10,119}); states[1491] = new State(-55); states[1492] = new State(-36,new int[]{-289,1493}); states[1493] = new State(new int[]{49,14,56,-60,26,-60,64,-60,47,-60,50,-60,59,-60,11,-60,41,-60,34,-60,25,-60,23,-60,27,-60,28,-60,86,-60,97,-60,85,-60},new int[]{-39,1494,-40,1395}); states[1494] = new State(-50); states[1495] = new State(new int[]{86,1482,97,1483,85,1489},new int[]{-140,1496}); states[1496] = new State(new int[]{7,1497}); states[1497] = new State(-43); states[1498] = new State(-36,new int[]{-289,1499}); states[1499] = new State(new int[]{49,14,26,-57,64,-57,47,-57,50,-57,59,-57,11,-57,41,-57,34,-57,38,-57},new int[]{-38,1500,-36,1501}); states[1500] = new State(-49); states[1501] = new State(new int[]{26,1144,64,1148,47,1307,50,1322,59,1324,11,650,38,-56,41,-200,34,-200},new int[]{-45,1502,-27,1503,-49,1504,-275,1505,-294,1506,-219,1507,-6,1508,-236,994,-218,1523}); states[1502] = new State(-58); states[1503] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,26,-65,64,-65,47,-65,50,-65,59,-65,11,-65,41,-65,34,-65,38,-65},new int[]{-25,1130,-26,1131,-127,1133,-133,1143,-137,24,-138,27}); states[1504] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,26,-66,64,-66,47,-66,50,-66,59,-66,11,-66,41,-66,34,-66,38,-66},new int[]{-25,1147,-26,1131,-127,1133,-133,1143,-137,24,-138,27}); states[1505] = new State(new int[]{11,650,26,-67,64,-67,47,-67,50,-67,59,-67,41,-67,34,-67,38,-67,137,-200,80,-200,81,-200,75,-200,73,-200},new int[]{-46,1151,-6,1152,-236,994}); states[1506] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,8,1314,26,-68,64,-68,47,-68,50,-68,59,-68,11,-68,41,-68,34,-68,38,-68},new int[]{-298,1310,-295,1311,-296,1312,-144,796,-133,795,-137,24,-138,27}); states[1507] = new State(-69); states[1508] = new State(new int[]{41,1515,11,650,34,1518},new int[]{-212,1509,-236,429,-216,1512}); states[1509] = new State(new int[]{142,1510,26,-85,64,-85,47,-85,50,-85,59,-85,11,-85,41,-85,34,-85,38,-85}); states[1510] = new State(new int[]{10,1511}); states[1511] = new State(-86); states[1512] = new State(new int[]{142,1513,26,-87,64,-87,47,-87,50,-87,59,-87,11,-87,41,-87,34,-87,38,-87}); states[1513] = new State(new int[]{10,1514}); states[1514] = new State(-88); states[1515] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,42,467},new int[]{-157,1516,-156,1048,-128,1049,-123,1050,-120,1051,-133,1056,-137,24,-138,27,-178,1057,-319,1059,-135,1063}); states[1516] = new State(new int[]{8,568,10,-455},new int[]{-114,1517}); states[1517] = new State(new int[]{10,1036},new int[]{-194,1189}); states[1518] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,42,467},new int[]{-156,1519,-128,1049,-123,1050,-120,1051,-133,1056,-137,24,-138,27,-178,1057,-319,1059,-135,1063}); states[1519] = new State(new int[]{8,568,5,-455,10,-455},new int[]{-114,1520}); states[1520] = new State(new int[]{5,1521,10,1036},new int[]{-194,1224}); states[1521] = new State(new int[]{137,358,80,25,81,26,75,28,73,29,148,154,150,155,149,156,110,377,109,378,138,149,140,150,139,152,8,388,136,399,21,405,45,413,46,550,31,554,71,558,62,561,41,566,34,594},new int[]{-261,1522,-262,401,-258,356,-86,175,-95,267,-96,268,-167,269,-133,196,-137,24,-138,27,-16,383,-186,384,-151,387,-153,147,-152,151,-259,390,-287,391,-242,397,-235,398,-267,402,-268,403,-264,404,-256,411,-29,412,-249,549,-116,553,-117,557,-213,563,-211,564,-210,565}); states[1522] = new State(new int[]{10,1036},new int[]{-194,1228}); states[1523] = new State(-70); states[1524] = new State(new int[]{49,14,56,-60,26,-60,64,-60,47,-60,50,-60,59,-60,11,-60,41,-60,34,-60,25,-60,23,-60,27,-60,28,-60,86,-60,97,-60,85,-60},new int[]{-39,1525,-40,1395}); states[1525] = new State(-51); states[1526] = new State(new int[]{137,23,80,25,81,26,75,28,73,29},new int[]{-125,1527,-133,1530,-137,24,-138,27}); states[1527] = new State(new int[]{10,1528}); states[1528] = new State(new int[]{3,1459,40,-12,86,-12,97,-12,85,-12,49,-12,56,-12,26,-12,64,-12,47,-12,50,-12,59,-12,11,-12,41,-12,34,-12,25,-12,23,-12,27,-12,28,-12},new int[]{-172,1529,-173,1457,-171,1462}); states[1529] = new State(-44); states[1530] = new State(-48); states[1531] = new State(-46); states[1532] = new State(-47); states[1533] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,79,32,78,33,77,34,76,35,66,36,61,37,122,38,19,39,18,40,60,41,20,42,123,43,124,44,125,45,126,46,127,47,128,48,129,49,130,50,131,51,132,52,21,53,71,54,85,55,22,56,23,57,26,58,27,59,28,60,69,61,93,62,29,63,30,64,31,65,24,66,98,67,95,68,32,69,33,70,34,71,37,72,38,73,39,74,97,75,40,76,41,77,43,78,44,79,45,80,91,81,46,82,96,83,47,84,25,85,48,86,68,87,92,88,49,89,50,90,51,91,52,92,53,93,54,94,55,95,56,96,58,97,99,98,100,99,103,100,101,101,102,102,59,103,72,104,35,105,36,106,42,108,86,109},new int[]{-143,1534,-124,112,-133,22,-137,24,-138,27,-279,30,-136,31,-280,107}); states[1534] = new State(new int[]{10,1535,7,20}); states[1535] = new State(new int[]{3,1459,40,-12,86,-12,97,-12,85,-12,49,-12,56,-12,26,-12,64,-12,47,-12,50,-12,59,-12,11,-12,41,-12,34,-12,25,-12,23,-12,27,-12,28,-12},new int[]{-172,1536,-173,1457,-171,1462}); states[1536] = new State(-45); states[1537] = new State(-4); states[1538] = new State(new int[]{47,1540,53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,532,18,247,19,252,5,624},new int[]{-82,1539,-92,127,-91,132,-90,290,-94,298,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,451,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622,-106,623}); states[1539] = new State(-5); states[1540] = new State(new int[]{137,23,80,25,81,26,75,28,73,29},new int[]{-130,1541,-133,1542,-137,24,-138,27}); states[1541] = new State(-6); states[1542] = new State(new int[]{117,1053,2,-208},new int[]{-141,1300}); states[1543] = new State(new int[]{137,23,80,25,81,26,75,28,73,29},new int[]{-305,1544,-306,1545,-133,1549,-137,24,-138,27}); states[1544] = new State(-7); states[1545] = new State(new int[]{7,1546,117,168,2,-736},new int[]{-285,1548}); states[1546] = new State(new int[]{137,23,80,25,81,26,75,28,73,29,79,32,78,33,77,34,76,35,66,36,61,37,122,38,19,39,18,40,60,41,20,42,123,43,124,44,125,45,126,46,127,47,128,48,129,49,130,50,131,51,132,52,21,53,71,54,85,55,22,56,23,57,26,58,27,59,28,60,69,61,93,62,29,63,30,64,31,65,24,66,98,67,95,68,32,69,33,70,34,71,37,72,38,73,39,74,97,75,40,76,41,77,43,78,44,79,45,80,91,81,46,82,96,83,47,84,25,85,48,86,68,87,92,88,49,89,50,90,51,91,52,92,53,93,54,94,55,95,56,96,58,97,99,98,100,99,103,100,101,101,102,102,59,103,72,104,35,105,36,106,42,108,86,109},new int[]{-124,1547,-133,22,-137,24,-138,27,-279,30,-136,31,-280,107}); states[1547] = new State(-735); states[1548] = new State(-737); states[1549] = new State(-734); states[1550] = new State(new int[]{53,142,138,149,140,150,139,152,148,154,150,155,149,156,60,158,11,321,129,447,110,377,109,378,135,452,137,23,80,25,81,26,75,28,73,227,42,467,39,497,8,704,18,247,19,252,5,624,50,786},new int[]{-245,1551,-82,1552,-92,127,-91,132,-90,290,-94,298,-77,330,-89,320,-15,143,-151,146,-153,147,-152,151,-16,153,-54,157,-186,449,-101,1553,-118,441,-100,453,-133,531,-137,24,-138,27,-178,466,-243,512,-281,513,-17,514,-55,519,-104,525,-160,526,-254,527,-78,528,-250,581,-252,582,-253,621,-227,622,-106,623,-4,1554,-299,1555}); states[1551] = new State(-8); states[1552] = new State(-9); states[1553] = new State(new int[]{104,491,105,492,106,493,107,494,108,495,132,-721,130,-721,112,-721,111,-721,125,-721,126,-721,127,-721,128,-721,124,-721,5,-721,110,-721,109,-721,122,-721,123,-721,120,-721,114,-721,119,-721,117,-721,115,-721,118,-721,116,-721,131,-721,16,-721,13,-721,2,-721,113,-721},new int[]{-181,124}); states[1554] = new State(-10); states[1555] = new State(-11); rules[1] = new Rule(-343, new int[]{-1,2}); rules[2] = new Rule(-1, new int[]{-221}); rules[3] = new Rule(-1, new int[]{-291}); rules[4] = new Rule(-1, new int[]{-162}); rules[5] = new Rule(-162, new int[]{82,-82}); rules[6] = new Rule(-162, new int[]{82,47,-130}); rules[7] = new Rule(-162, new int[]{84,-305}); rules[8] = new Rule(-162, new int[]{83,-245}); rules[9] = new Rule(-245, new int[]{-82}); rules[10] = new Rule(-245, new int[]{-4}); rules[11] = new Rule(-245, new int[]{-299}); rules[12] = new Rule(-172, new int[]{}); rules[13] = new Rule(-172, new int[]{-173}); rules[14] = new Rule(-173, new int[]{-171}); rules[15] = new Rule(-173, new int[]{-173,-171}); rules[16] = new Rule(-171, new int[]{3,137}); rules[17] = new Rule(-171, new int[]{3,138}); rules[18] = new Rule(-221, new int[]{-222,-172,-289,-18,-175}); rules[19] = new Rule(-175, new int[]{7}); rules[20] = new Rule(-175, new int[]{10}); rules[21] = new Rule(-175, new int[]{5}); rules[22] = new Rule(-175, new int[]{94}); rules[23] = new Rule(-175, new int[]{6}); rules[24] = new Rule(-175, new int[]{}); rules[25] = new Rule(-222, new int[]{}); rules[26] = new Rule(-222, new int[]{58,-133,-174}); rules[27] = new Rule(-174, new int[]{10}); rules[28] = new Rule(-174, new int[]{8,-176,9,10}); rules[29] = new Rule(-176, new int[]{-132}); rules[30] = new Rule(-176, new int[]{-176,94,-132}); rules[31] = new Rule(-132, new int[]{-133}); rules[32] = new Rule(-18, new int[]{-35,-241}); rules[33] = new Rule(-35, new int[]{-39}); rules[34] = new Rule(-143, new int[]{-124}); rules[35] = new Rule(-143, new int[]{-143,7,-124}); rules[36] = new Rule(-289, new int[]{}); rules[37] = new Rule(-289, new int[]{-289,49,-290,10}); rules[38] = new Rule(-290, new int[]{-292}); rules[39] = new Rule(-290, new int[]{-290,94,-292}); rules[40] = new Rule(-292, new int[]{-143}); rules[41] = new Rule(-292, new int[]{-143,131,138}); rules[42] = new Rule(-291, new int[]{-6,-293,-148,-147,-140,7}); rules[43] = new Rule(-291, new int[]{-6,-293,-149,-140,7}); rules[44] = new Rule(-293, new int[]{-2,-125,10,-172}); rules[45] = new Rule(-293, new int[]{103,-143,10,-172}); rules[46] = new Rule(-2, new int[]{99}); rules[47] = new Rule(-2, new int[]{100}); rules[48] = new Rule(-125, new int[]{-133}); rules[49] = new Rule(-148, new int[]{40,-289,-38}); rules[50] = new Rule(-147, new int[]{38,-289,-39}); rules[51] = new Rule(-149, new int[]{-289,-39}); rules[52] = new Rule(-140, new int[]{86}); rules[53] = new Rule(-140, new int[]{97,-238,86}); rules[54] = new Rule(-140, new int[]{97,-238,98,-238,86}); rules[55] = new Rule(-140, new int[]{85,-238,86}); rules[56] = new Rule(-38, new int[]{-36}); rules[57] = new Rule(-36, new int[]{}); rules[58] = new Rule(-36, new int[]{-36,-45}); rules[59] = new Rule(-39, new int[]{-40}); rules[60] = new Rule(-40, new int[]{}); rules[61] = new Rule(-40, new int[]{-40,-44}); rules[62] = new Rule(-41, new int[]{-37}); rules[63] = new Rule(-37, new int[]{}); rules[64] = new Rule(-37, new int[]{-37,-43}); rules[65] = new Rule(-45, new int[]{-27}); rules[66] = new Rule(-45, new int[]{-49}); rules[67] = new Rule(-45, new int[]{-275}); rules[68] = new Rule(-45, new int[]{-294}); rules[69] = new Rule(-45, new int[]{-219}); rules[70] = new Rule(-45, new int[]{-218}); rules[71] = new Rule(-44, new int[]{-154}); rules[72] = new Rule(-44, new int[]{-27}); rules[73] = new Rule(-44, new int[]{-49}); rules[74] = new Rule(-44, new int[]{-275}); rules[75] = new Rule(-44, new int[]{-294}); rules[76] = new Rule(-44, new int[]{-207}); rules[77] = new Rule(-200, new int[]{-201}); rules[78] = new Rule(-200, new int[]{-204}); rules[79] = new Rule(-207, new int[]{-6,-200}); rules[80] = new Rule(-43, new int[]{-154}); rules[81] = new Rule(-43, new int[]{-27}); rules[82] = new Rule(-43, new int[]{-49}); rules[83] = new Rule(-43, new int[]{-275}); rules[84] = new Rule(-43, new int[]{-294}); rules[85] = new Rule(-219, new int[]{-6,-212}); rules[86] = new Rule(-219, new int[]{-6,-212,142,10}); rules[87] = new Rule(-218, new int[]{-6,-216}); rules[88] = new Rule(-218, new int[]{-6,-216,142,10}); rules[89] = new Rule(-154, new int[]{56,-142,10}); rules[90] = new Rule(-142, new int[]{-129}); rules[91] = new Rule(-142, new int[]{-142,94,-129}); rules[92] = new Rule(-129, new int[]{148}); rules[93] = new Rule(-129, new int[]{-133}); rules[94] = new Rule(-27, new int[]{26,-25}); rules[95] = new Rule(-27, new int[]{-27,-25}); rules[96] = new Rule(-49, new int[]{64,-25}); rules[97] = new Rule(-49, new int[]{-49,-25}); rules[98] = new Rule(-275, new int[]{47,-46}); rules[99] = new Rule(-275, new int[]{-275,-46}); rules[100] = new Rule(-298, new int[]{-295}); rules[101] = new Rule(-298, new int[]{8,-133,94,-144,9,104,-92,10}); rules[102] = new Rule(-294, new int[]{50,-298}); rules[103] = new Rule(-294, new int[]{59,-298}); rules[104] = new Rule(-294, new int[]{-294,-298}); rules[105] = new Rule(-25, new int[]{-26,10}); rules[106] = new Rule(-26, new int[]{-127,114,-98}); rules[107] = new Rule(-26, new int[]{-127,5,-262,114,-79}); rules[108] = new Rule(-98, new int[]{-84}); rules[109] = new Rule(-98, new int[]{-88}); rules[110] = new Rule(-127, new int[]{-133}); rules[111] = new Rule(-74, new int[]{-92}); rules[112] = new Rule(-74, new int[]{-74,94,-92}); rules[113] = new Rule(-84, new int[]{-76}); rules[114] = new Rule(-84, new int[]{-76,-179,-76}); rules[115] = new Rule(-84, new int[]{-228}); rules[116] = new Rule(-228, new int[]{-84,13,-84,5,-84}); rules[117] = new Rule(-179, new int[]{114}); rules[118] = new Rule(-179, new int[]{119}); rules[119] = new Rule(-179, new int[]{117}); rules[120] = new Rule(-179, new int[]{115}); rules[121] = new Rule(-179, new int[]{118}); rules[122] = new Rule(-179, new int[]{116}); rules[123] = new Rule(-179, new int[]{131}); rules[124] = new Rule(-76, new int[]{-12}); rules[125] = new Rule(-76, new int[]{-76,-180,-12}); rules[126] = new Rule(-180, new int[]{110}); rules[127] = new Rule(-180, new int[]{109}); rules[128] = new Rule(-180, new int[]{122}); rules[129] = new Rule(-180, new int[]{123}); rules[130] = new Rule(-251, new int[]{-12,-188,-270}); rules[131] = new Rule(-255, new int[]{-10,113,-10}); rules[132] = new Rule(-12, new int[]{-10}); rules[133] = new Rule(-12, new int[]{-251}); rules[134] = new Rule(-12, new int[]{-255}); rules[135] = new Rule(-12, new int[]{-12,-182,-10}); rules[136] = new Rule(-12, new int[]{-12,-182,-255}); rules[137] = new Rule(-182, new int[]{112}); rules[138] = new Rule(-182, new int[]{111}); rules[139] = new Rule(-182, new int[]{125}); rules[140] = new Rule(-182, new int[]{126}); rules[141] = new Rule(-182, new int[]{127}); rules[142] = new Rule(-182, new int[]{128}); rules[143] = new Rule(-182, new int[]{124}); rules[144] = new Rule(-10, new int[]{-13}); rules[145] = new Rule(-10, new int[]{-226}); rules[146] = new Rule(-10, new int[]{53}); rules[147] = new Rule(-10, new int[]{135,-10}); rules[148] = new Rule(-10, new int[]{8,-84,9}); rules[149] = new Rule(-10, new int[]{129,-10}); rules[150] = new Rule(-10, new int[]{-186,-10}); rules[151] = new Rule(-10, new int[]{-160}); rules[152] = new Rule(-226, new int[]{11,-70,12}); rules[153] = new Rule(-186, new int[]{110}); rules[154] = new Rule(-186, new int[]{109}); rules[155] = new Rule(-14, new int[]{-133}); rules[156] = new Rule(-14, new int[]{-243}); rules[157] = new Rule(-14, new int[]{-281}); rules[158] = new Rule(-13, new int[]{-133}); rules[159] = new Rule(-13, new int[]{-151}); rules[160] = new Rule(-13, new int[]{-16}); rules[161] = new Rule(-13, new int[]{39,-133}); rules[162] = new Rule(-13, new int[]{-243}); rules[163] = new Rule(-13, new int[]{-281}); rules[164] = new Rule(-13, new int[]{-13,-11}); rules[165] = new Rule(-13, new int[]{-13,4,-285}); rules[166] = new Rule(-13, new int[]{-13,11,-107,12}); rules[167] = new Rule(-11, new int[]{7,-124}); rules[168] = new Rule(-11, new int[]{136}); rules[169] = new Rule(-11, new int[]{8,-71,9}); rules[170] = new Rule(-11, new int[]{11,-70,12}); rules[171] = new Rule(-71, new int[]{-67}); rules[172] = new Rule(-71, new int[]{}); rules[173] = new Rule(-70, new int[]{-68}); rules[174] = new Rule(-70, new int[]{}); rules[175] = new Rule(-68, new int[]{-87}); rules[176] = new Rule(-68, new int[]{-68,94,-87}); rules[177] = new Rule(-87, new int[]{-84}); rules[178] = new Rule(-87, new int[]{-84,6,-84}); rules[179] = new Rule(-16, new int[]{148}); rules[180] = new Rule(-16, new int[]{150}); rules[181] = new Rule(-16, new int[]{149}); rules[182] = new Rule(-79, new int[]{-84}); rules[183] = new Rule(-79, new int[]{-88}); rules[184] = new Rule(-79, new int[]{-229}); rules[185] = new Rule(-88, new int[]{8,-63,9}); rules[186] = new Rule(-63, new int[]{}); rules[187] = new Rule(-63, new int[]{-62}); rules[188] = new Rule(-62, new int[]{-80}); rules[189] = new Rule(-62, new int[]{-62,94,-80}); rules[190] = new Rule(-229, new int[]{8,-231,9}); rules[191] = new Rule(-231, new int[]{-230}); rules[192] = new Rule(-231, new int[]{-230,10}); rules[193] = new Rule(-230, new int[]{-232}); rules[194] = new Rule(-230, new int[]{-230,10,-232}); rules[195] = new Rule(-232, new int[]{-122,5,-79}); rules[196] = new Rule(-122, new int[]{-133}); rules[197] = new Rule(-46, new int[]{-6,-47}); rules[198] = new Rule(-6, new int[]{-236}); rules[199] = new Rule(-6, new int[]{-6,-236}); rules[200] = new Rule(-6, new int[]{}); rules[201] = new Rule(-236, new int[]{11,-237,12}); rules[202] = new Rule(-237, new int[]{-8}); rules[203] = new Rule(-237, new int[]{-237,94,-8}); rules[204] = new Rule(-8, new int[]{-9}); rules[205] = new Rule(-8, new int[]{-133,5,-9}); rules[206] = new Rule(-47, new int[]{-130,114,-273,10}); rules[207] = new Rule(-47, new int[]{-131,-273,10}); rules[208] = new Rule(-130, new int[]{-133}); rules[209] = new Rule(-130, new int[]{-133,-141}); rules[210] = new Rule(-131, new int[]{-133,117,-144,116}); rules[211] = new Rule(-273, new int[]{-262}); rules[212] = new Rule(-273, new int[]{-28}); rules[213] = new Rule(-259, new int[]{-258,13}); rules[214] = new Rule(-259, new int[]{-287,13}); rules[215] = new Rule(-262, new int[]{-258}); rules[216] = new Rule(-262, new int[]{-259}); rules[217] = new Rule(-262, new int[]{-242}); rules[218] = new Rule(-262, new int[]{-235}); rules[219] = new Rule(-262, new int[]{-267}); rules[220] = new Rule(-262, new int[]{-213}); rules[221] = new Rule(-262, new int[]{-287}); rules[222] = new Rule(-287, new int[]{-167,-285}); rules[223] = new Rule(-285, new int[]{117,-283,115}); rules[224] = new Rule(-286, new int[]{119}); rules[225] = new Rule(-286, new int[]{117,-284,115}); rules[226] = new Rule(-283, new int[]{-265}); rules[227] = new Rule(-283, new int[]{-283,94,-265}); rules[228] = new Rule(-284, new int[]{-266}); rules[229] = new Rule(-284, new int[]{-284,94,-266}); rules[230] = new Rule(-266, new int[]{}); rules[231] = new Rule(-265, new int[]{-258}); rules[232] = new Rule(-265, new int[]{-258,13}); rules[233] = new Rule(-265, new int[]{-267}); rules[234] = new Rule(-265, new int[]{-213}); rules[235] = new Rule(-265, new int[]{-287}); rules[236] = new Rule(-258, new int[]{-86}); rules[237] = new Rule(-258, new int[]{-86,6,-86}); rules[238] = new Rule(-258, new int[]{8,-75,9}); rules[239] = new Rule(-86, new int[]{-95}); rules[240] = new Rule(-86, new int[]{-86,-180,-95}); rules[241] = new Rule(-95, new int[]{-96}); rules[242] = new Rule(-95, new int[]{-95,-182,-96}); rules[243] = new Rule(-96, new int[]{-167}); rules[244] = new Rule(-96, new int[]{-16}); rules[245] = new Rule(-96, new int[]{-186,-96}); rules[246] = new Rule(-96, new int[]{-151}); rules[247] = new Rule(-96, new int[]{-96,8,-70,9}); rules[248] = new Rule(-167, new int[]{-133}); rules[249] = new Rule(-167, new int[]{-167,7,-124}); rules[250] = new Rule(-75, new int[]{-73,94,-73}); rules[251] = new Rule(-75, new int[]{-75,94,-73}); rules[252] = new Rule(-73, new int[]{-262}); rules[253] = new Rule(-73, new int[]{-262,114,-82}); rules[254] = new Rule(-235, new int[]{136,-261}); rules[255] = new Rule(-267, new int[]{-268}); rules[256] = new Rule(-267, new int[]{62,-268}); rules[257] = new Rule(-268, new int[]{-264}); rules[258] = new Rule(-268, new int[]{-29}); rules[259] = new Rule(-268, new int[]{-249}); rules[260] = new Rule(-268, new int[]{-116}); rules[261] = new Rule(-268, new int[]{-117}); rules[262] = new Rule(-117, new int[]{71,55,-262}); rules[263] = new Rule(-264, new int[]{21,11,-150,12,55,-262}); rules[264] = new Rule(-264, new int[]{-256}); rules[265] = new Rule(-256, new int[]{21,55,-262}); rules[266] = new Rule(-150, new int[]{-257}); rules[267] = new Rule(-150, new int[]{-150,94,-257}); rules[268] = new Rule(-257, new int[]{-258}); rules[269] = new Rule(-257, new int[]{}); rules[270] = new Rule(-249, new int[]{46,55,-262}); rules[271] = new Rule(-116, new int[]{31,55,-262}); rules[272] = new Rule(-116, new int[]{31}); rules[273] = new Rule(-242, new int[]{137,11,-84,12}); rules[274] = new Rule(-213, new int[]{-211}); rules[275] = new Rule(-211, new int[]{-210}); rules[276] = new Rule(-210, new int[]{41,-114}); rules[277] = new Rule(-210, new int[]{34,-114,5,-261}); rules[278] = new Rule(-210, new int[]{-167,121,-265}); rules[279] = new Rule(-210, new int[]{-287,121,-265}); rules[280] = new Rule(-210, new int[]{8,9,121,-265}); rules[281] = new Rule(-210, new int[]{8,-75,9,121,-265}); rules[282] = new Rule(-210, new int[]{-167,121,8,9}); rules[283] = new Rule(-210, new int[]{-287,121,8,9}); rules[284] = new Rule(-210, new int[]{8,9,121,8,9}); rules[285] = new Rule(-210, new int[]{8,-75,9,121,8,9}); rules[286] = new Rule(-28, new int[]{-21,-277,-170,-302,-24}); rules[287] = new Rule(-29, new int[]{45,-170,-302,-23,86}); rules[288] = new Rule(-20, new int[]{66}); rules[289] = new Rule(-20, new int[]{67}); rules[290] = new Rule(-20, new int[]{141}); rules[291] = new Rule(-20, new int[]{24}); rules[292] = new Rule(-20, new int[]{25}); rules[293] = new Rule(-21, new int[]{}); rules[294] = new Rule(-21, new int[]{-22}); rules[295] = new Rule(-22, new int[]{-20}); rules[296] = new Rule(-22, new int[]{-22,-20}); rules[297] = new Rule(-277, new int[]{23}); rules[298] = new Rule(-277, new int[]{40}); rules[299] = new Rule(-277, new int[]{61}); rules[300] = new Rule(-277, new int[]{61,23}); rules[301] = new Rule(-277, new int[]{61,45}); rules[302] = new Rule(-277, new int[]{61,40}); rules[303] = new Rule(-24, new int[]{}); rules[304] = new Rule(-24, new int[]{-23,86}); rules[305] = new Rule(-170, new int[]{}); rules[306] = new Rule(-170, new int[]{8,-169,9}); rules[307] = new Rule(-169, new int[]{-168}); rules[308] = new Rule(-169, new int[]{-169,94,-168}); rules[309] = new Rule(-168, new int[]{-167}); rules[310] = new Rule(-168, new int[]{-287}); rules[311] = new Rule(-141, new int[]{117,-144,115}); rules[312] = new Rule(-302, new int[]{}); rules[313] = new Rule(-302, new int[]{-301}); rules[314] = new Rule(-301, new int[]{-300}); rules[315] = new Rule(-301, new int[]{-301,-300}); rules[316] = new Rule(-300, new int[]{20,-144,5,-274,10}); rules[317] = new Rule(-274, new int[]{-271}); rules[318] = new Rule(-274, new int[]{-274,94,-271}); rules[319] = new Rule(-271, new int[]{-262}); rules[320] = new Rule(-271, new int[]{23}); rules[321] = new Rule(-271, new int[]{45}); rules[322] = new Rule(-271, new int[]{27}); rules[323] = new Rule(-23, new int[]{-30}); rules[324] = new Rule(-23, new int[]{-23,-7,-30}); rules[325] = new Rule(-7, new int[]{79}); rules[326] = new Rule(-7, new int[]{78}); rules[327] = new Rule(-7, new int[]{77}); rules[328] = new Rule(-7, new int[]{76}); rules[329] = new Rule(-30, new int[]{}); rules[330] = new Rule(-30, new int[]{-32,-177}); rules[331] = new Rule(-30, new int[]{-31}); rules[332] = new Rule(-30, new int[]{-32,10,-31}); rules[333] = new Rule(-144, new int[]{-133}); rules[334] = new Rule(-144, new int[]{-144,94,-133}); rules[335] = new Rule(-177, new int[]{}); rules[336] = new Rule(-177, new int[]{10}); rules[337] = new Rule(-32, new int[]{-42}); rules[338] = new Rule(-32, new int[]{-32,10,-42}); rules[339] = new Rule(-42, new int[]{-6,-48}); rules[340] = new Rule(-31, new int[]{-51}); rules[341] = new Rule(-31, new int[]{-31,-51}); rules[342] = new Rule(-51, new int[]{-50}); rules[343] = new Rule(-51, new int[]{-52}); rules[344] = new Rule(-48, new int[]{26,-26}); rules[345] = new Rule(-48, new int[]{-297}); rules[346] = new Rule(-48, new int[]{-3,-297}); rules[347] = new Rule(-3, new int[]{25}); rules[348] = new Rule(-3, new int[]{23}); rules[349] = new Rule(-297, new int[]{-296}); rules[350] = new Rule(-297, new int[]{59,-144,5,-262}); rules[351] = new Rule(-50, new int[]{-6,-209}); rules[352] = new Rule(-50, new int[]{-6,-206}); rules[353] = new Rule(-206, new int[]{-202}); rules[354] = new Rule(-206, new int[]{-205}); rules[355] = new Rule(-209, new int[]{-3,-217}); rules[356] = new Rule(-209, new int[]{-217}); rules[357] = new Rule(-209, new int[]{-214}); rules[358] = new Rule(-217, new int[]{-215}); rules[359] = new Rule(-215, new int[]{-212}); rules[360] = new Rule(-215, new int[]{-216}); rules[361] = new Rule(-214, new int[]{27,-158,-114,-194}); rules[362] = new Rule(-214, new int[]{-3,27,-158,-114,-194}); rules[363] = new Rule(-214, new int[]{28,-158,-114,-194}); rules[364] = new Rule(-158, new int[]{-157}); rules[365] = new Rule(-158, new int[]{}); rules[366] = new Rule(-159, new int[]{-133}); rules[367] = new Rule(-159, new int[]{-136}); rules[368] = new Rule(-159, new int[]{-159,7,-133}); rules[369] = new Rule(-159, new int[]{-159,7,-136}); rules[370] = new Rule(-52, new int[]{-6,-244}); rules[371] = new Rule(-244, new int[]{43,-159,-220,-189,10,-192}); rules[372] = new Rule(-244, new int[]{43,-159,-220,-189,10,-197,10,-192}); rules[373] = new Rule(-244, new int[]{-3,43,-159,-220,-189,10,-192}); rules[374] = new Rule(-244, new int[]{-3,43,-159,-220,-189,10,-197,10,-192}); rules[375] = new Rule(-244, new int[]{24,43,-159,-220,-198,10}); rules[376] = new Rule(-244, new int[]{-3,24,43,-159,-220,-198,10}); rules[377] = new Rule(-198, new int[]{104,-82}); rules[378] = new Rule(-198, new int[]{}); rules[379] = new Rule(-192, new int[]{}); rules[380] = new Rule(-192, new int[]{60,10}); rules[381] = new Rule(-220, new int[]{-225,5,-261}); rules[382] = new Rule(-225, new int[]{}); rules[383] = new Rule(-225, new int[]{11,-224,12}); rules[384] = new Rule(-224, new int[]{-223}); rules[385] = new Rule(-224, new int[]{-224,10,-223}); rules[386] = new Rule(-223, new int[]{-144,5,-261}); rules[387] = new Rule(-102, new int[]{-83}); rules[388] = new Rule(-102, new int[]{}); rules[389] = new Rule(-189, new int[]{}); rules[390] = new Rule(-189, new int[]{80,-102,-190}); rules[391] = new Rule(-189, new int[]{81,-246,-191}); rules[392] = new Rule(-190, new int[]{}); rules[393] = new Rule(-190, new int[]{81,-246}); rules[394] = new Rule(-191, new int[]{}); rules[395] = new Rule(-191, new int[]{80,-102}); rules[396] = new Rule(-295, new int[]{-296,10}); rules[397] = new Rule(-323, new int[]{104}); rules[398] = new Rule(-323, new int[]{114}); rules[399] = new Rule(-296, new int[]{-144,5,-262}); rules[400] = new Rule(-296, new int[]{-144,104,-82}); rules[401] = new Rule(-296, new int[]{-144,5,-262,-323,-81}); rules[402] = new Rule(-81, new int[]{-80}); rules[403] = new Rule(-81, new int[]{-308}); rules[404] = new Rule(-81, new int[]{-133,121,-313}); rules[405] = new Rule(-81, new int[]{8,9,-309,121,-313}); rules[406] = new Rule(-81, new int[]{8,-63,9,121,-313}); rules[407] = new Rule(-80, new int[]{-79}); rules[408] = new Rule(-80, new int[]{-54}); rules[409] = new Rule(-204, new int[]{-214,-164}); rules[410] = new Rule(-204, new int[]{27,-158,-114,104,-246,10}); rules[411] = new Rule(-204, new int[]{-3,27,-158,-114,104,-246,10}); rules[412] = new Rule(-205, new int[]{-214,-163}); rules[413] = new Rule(-205, new int[]{27,-158,-114,104,-246,10}); rules[414] = new Rule(-205, new int[]{-3,27,-158,-114,104,-246,10}); rules[415] = new Rule(-201, new int[]{-208}); rules[416] = new Rule(-201, new int[]{-3,-208}); rules[417] = new Rule(-208, new int[]{-215,-165}); rules[418] = new Rule(-208, new int[]{34,-156,-114,5,-261,-195,104,-92,10}); rules[419] = new Rule(-208, new int[]{34,-156,-114,-195,104,-92,10}); rules[420] = new Rule(-208, new int[]{34,-156,-114,5,-261,-195,104,-307,10}); rules[421] = new Rule(-208, new int[]{34,-156,-114,-195,104,-307,10}); rules[422] = new Rule(-208, new int[]{41,-157,-114,-195,104,-246,10}); rules[423] = new Rule(-208, new int[]{-215,142,10}); rules[424] = new Rule(-202, new int[]{-203}); rules[425] = new Rule(-202, new int[]{-3,-203}); rules[426] = new Rule(-203, new int[]{-215,-163}); rules[427] = new Rule(-203, new int[]{34,-156,-114,5,-261,-195,104,-93,10}); rules[428] = new Rule(-203, new int[]{34,-156,-114,-195,104,-93,10}); rules[429] = new Rule(-203, new int[]{41,-157,-114,-195,104,-246,10}); rules[430] = new Rule(-165, new int[]{-164}); rules[431] = new Rule(-165, new int[]{-58}); rules[432] = new Rule(-157, new int[]{-156}); rules[433] = new Rule(-156, new int[]{-128}); rules[434] = new Rule(-156, new int[]{-319,7,-128}); rules[435] = new Rule(-135, new int[]{-123}); rules[436] = new Rule(-319, new int[]{-135}); rules[437] = new Rule(-319, new int[]{-319,7,-135}); rules[438] = new Rule(-128, new int[]{-123}); rules[439] = new Rule(-128, new int[]{-178}); rules[440] = new Rule(-128, new int[]{-178,-141}); rules[441] = new Rule(-123, new int[]{-120}); rules[442] = new Rule(-123, new int[]{-120,-141}); rules[443] = new Rule(-120, new int[]{-133}); rules[444] = new Rule(-212, new int[]{41,-157,-114,-194,-302}); rules[445] = new Rule(-216, new int[]{34,-156,-114,-194,-302}); rules[446] = new Rule(-216, new int[]{34,-156,-114,5,-261,-194,-302}); rules[447] = new Rule(-58, new int[]{101,-97,75,-97,10}); rules[448] = new Rule(-58, new int[]{101,-97,10}); rules[449] = new Rule(-58, new int[]{101,10}); rules[450] = new Rule(-97, new int[]{-133}); rules[451] = new Rule(-97, new int[]{-151}); rules[452] = new Rule(-164, new int[]{-39,-241,10}); rules[453] = new Rule(-163, new int[]{-41,-241,10}); rules[454] = new Rule(-163, new int[]{-58}); rules[455] = new Rule(-114, new int[]{}); rules[456] = new Rule(-114, new int[]{8,9}); rules[457] = new Rule(-114, new int[]{8,-115,9}); rules[458] = new Rule(-115, new int[]{-53}); rules[459] = new Rule(-115, new int[]{-115,10,-53}); rules[460] = new Rule(-53, new int[]{-6,-282}); rules[461] = new Rule(-282, new int[]{-145,5,-261}); rules[462] = new Rule(-282, new int[]{50,-145,5,-261}); rules[463] = new Rule(-282, new int[]{26,-145,5,-261}); rules[464] = new Rule(-282, new int[]{102,-145,5,-261}); rules[465] = new Rule(-282, new int[]{-145,5,-261,104,-82}); rules[466] = new Rule(-282, new int[]{50,-145,5,-261,104,-82}); rules[467] = new Rule(-282, new int[]{26,-145,5,-261,104,-82}); rules[468] = new Rule(-145, new int[]{-121}); rules[469] = new Rule(-145, new int[]{-145,94,-121}); rules[470] = new Rule(-121, new int[]{-133}); rules[471] = new Rule(-261, new int[]{-262}); rules[472] = new Rule(-263, new int[]{-258}); rules[473] = new Rule(-263, new int[]{-242}); rules[474] = new Rule(-263, new int[]{-235}); rules[475] = new Rule(-263, new int[]{-267}); rules[476] = new Rule(-263, new int[]{-287}); rules[477] = new Rule(-247, new int[]{-246}); rules[478] = new Rule(-247, new int[]{-129,5,-247}); rules[479] = new Rule(-246, new int[]{}); rules[480] = new Rule(-246, new int[]{-4}); rules[481] = new Rule(-246, new int[]{-199}); rules[482] = new Rule(-246, new int[]{-119}); rules[483] = new Rule(-246, new int[]{-241}); rules[484] = new Rule(-246, new int[]{-139}); rules[485] = new Rule(-246, new int[]{-33}); rules[486] = new Rule(-246, new int[]{-233}); rules[487] = new Rule(-246, new int[]{-303}); rules[488] = new Rule(-246, new int[]{-110}); rules[489] = new Rule(-246, new int[]{-304}); rules[490] = new Rule(-246, new int[]{-146}); rules[491] = new Rule(-246, new int[]{-288}); rules[492] = new Rule(-246, new int[]{-234}); rules[493] = new Rule(-246, new int[]{-109}); rules[494] = new Rule(-246, new int[]{-299}); rules[495] = new Rule(-246, new int[]{-56}); rules[496] = new Rule(-246, new int[]{-155}); rules[497] = new Rule(-246, new int[]{-112}); rules[498] = new Rule(-246, new int[]{-113}); rules[499] = new Rule(-246, new int[]{-111}); rules[500] = new Rule(-246, new int[]{-332}); rules[501] = new Rule(-111, new int[]{70,-92,93,-246}); rules[502] = new Rule(-112, new int[]{72,-92}); rules[503] = new Rule(-113, new int[]{72,71,-92}); rules[504] = new Rule(-299, new int[]{50,-296}); rules[505] = new Rule(-299, new int[]{8,50,-133,94,-322,9,104,-82}); rules[506] = new Rule(-299, new int[]{50,8,-133,94,-144,9,104,-82}); rules[507] = new Rule(-4, new int[]{-101,-181,-83}); rules[508] = new Rule(-4, new int[]{8,-100,94,-321,9,-181,-82}); rules[509] = new Rule(-321, new int[]{-100}); rules[510] = new Rule(-321, new int[]{-321,94,-100}); rules[511] = new Rule(-322, new int[]{50,-133}); rules[512] = new Rule(-322, new int[]{-322,94,50,-133}); rules[513] = new Rule(-199, new int[]{-101}); rules[514] = new Rule(-119, new int[]{54,-129}); rules[515] = new Rule(-241, new int[]{85,-238,86}); rules[516] = new Rule(-238, new int[]{-247}); rules[517] = new Rule(-238, new int[]{-238,10,-247}); rules[518] = new Rule(-139, new int[]{37,-92,48,-246}); rules[519] = new Rule(-139, new int[]{37,-92,48,-246,29,-246}); rules[520] = new Rule(-332, new int[]{35,-92,52,-334,-239,86}); rules[521] = new Rule(-332, new int[]{35,-92,52,-334,10,-239,86}); rules[522] = new Rule(-334, new int[]{-333}); rules[523] = new Rule(-334, new int[]{-334,10,-333}); rules[524] = new Rule(-333, new int[]{-325,36,-92,5,-246}); rules[525] = new Rule(-333, new int[]{-325,5,-246}); rules[526] = new Rule(-333, new int[]{-326,36,-92,5,-246}); rules[527] = new Rule(-333, new int[]{-326,5,-246}); rules[528] = new Rule(-333, new int[]{-327,5,-246}); rules[529] = new Rule(-333, new int[]{-328,5,-246}); rules[530] = new Rule(-33, new int[]{22,-92,55,-34,-239,86}); rules[531] = new Rule(-33, new int[]{22,-92,55,-34,10,-239,86}); rules[532] = new Rule(-33, new int[]{22,-92,55,-239,86}); rules[533] = new Rule(-34, new int[]{-248}); rules[534] = new Rule(-34, new int[]{-34,10,-248}); rules[535] = new Rule(-248, new int[]{-69,5,-246}); rules[536] = new Rule(-69, new int[]{-99}); rules[537] = new Rule(-69, new int[]{-69,94,-99}); rules[538] = new Rule(-99, new int[]{-87}); rules[539] = new Rule(-239, new int[]{}); rules[540] = new Rule(-239, new int[]{29,-238}); rules[541] = new Rule(-233, new int[]{91,-238,92,-82}); rules[542] = new Rule(-303, new int[]{51,-92,-278,-246}); rules[543] = new Rule(-278, new int[]{93}); rules[544] = new Rule(-278, new int[]{}); rules[545] = new Rule(-155, new int[]{57,-92,93,-246}); rules[546] = new Rule(-109, new int[]{33,-133,-260,131,-92,93,-246}); rules[547] = new Rule(-109, new int[]{33,50,-133,5,-262,131,-92,93,-246}); rules[548] = new Rule(-109, new int[]{33,50,-133,131,-92,93,-246}); rules[549] = new Rule(-260, new int[]{5,-262}); rules[550] = new Rule(-260, new int[]{}); rules[551] = new Rule(-110, new int[]{32,-19,-133,-272,-92,-105,-92,-278,-246}); rules[552] = new Rule(-19, new int[]{50}); rules[553] = new Rule(-19, new int[]{}); rules[554] = new Rule(-272, new int[]{104}); rules[555] = new Rule(-272, new int[]{5,-167,104}); rules[556] = new Rule(-105, new int[]{68}); rules[557] = new Rule(-105, new int[]{69}); rules[558] = new Rule(-304, new int[]{52,-67,93,-246}); rules[559] = new Rule(-146, new int[]{39}); rules[560] = new Rule(-288, new int[]{96,-238,-276}); rules[561] = new Rule(-276, new int[]{95,-238,86}); rules[562] = new Rule(-276, new int[]{30,-57,86}); rules[563] = new Rule(-57, new int[]{-60,-240}); rules[564] = new Rule(-57, new int[]{-60,10,-240}); rules[565] = new Rule(-57, new int[]{-238}); rules[566] = new Rule(-60, new int[]{-59}); rules[567] = new Rule(-60, new int[]{-60,10,-59}); rules[568] = new Rule(-240, new int[]{}); rules[569] = new Rule(-240, new int[]{29,-238}); rules[570] = new Rule(-59, new int[]{74,-61,93,-246}); rules[571] = new Rule(-61, new int[]{-166}); rules[572] = new Rule(-61, new int[]{-126,5,-166}); rules[573] = new Rule(-166, new int[]{-167}); rules[574] = new Rule(-126, new int[]{-133}); rules[575] = new Rule(-234, new int[]{44}); rules[576] = new Rule(-234, new int[]{44,-82}); rules[577] = new Rule(-67, new int[]{-83}); rules[578] = new Rule(-67, new int[]{-67,94,-83}); rules[579] = new Rule(-56, new int[]{-161}); rules[580] = new Rule(-161, new int[]{-160}); rules[581] = new Rule(-83, new int[]{-82}); rules[582] = new Rule(-83, new int[]{-307}); rules[583] = new Rule(-82, new int[]{-92}); rules[584] = new Rule(-82, new int[]{-106}); rules[585] = new Rule(-92, new int[]{-91}); rules[586] = new Rule(-92, new int[]{-227}); rules[587] = new Rule(-93, new int[]{-92}); rules[588] = new Rule(-93, new int[]{-307}); rules[589] = new Rule(-91, new int[]{-90}); rules[590] = new Rule(-91, new int[]{-91,16,-90}); rules[591] = new Rule(-243, new int[]{18,8,-270,9}); rules[592] = new Rule(-281, new int[]{19,8,-270,9}); rules[593] = new Rule(-281, new int[]{19,8,-269,9}); rules[594] = new Rule(-227, new int[]{-92,13,-92,5,-92}); rules[595] = new Rule(-269, new int[]{-167,-286}); rules[596] = new Rule(-269, new int[]{-167,4,-286}); rules[597] = new Rule(-270, new int[]{-167}); rules[598] = new Rule(-270, new int[]{-167,-285}); rules[599] = new Rule(-270, new int[]{-167,4,-285}); rules[600] = new Rule(-5, new int[]{8,-63,9}); rules[601] = new Rule(-5, new int[]{}); rules[602] = new Rule(-160, new int[]{73,-270,-66}); rules[603] = new Rule(-160, new int[]{73,-270,11,-64,12,-5}); rules[604] = new Rule(-160, new int[]{73,23,8,-318,9}); rules[605] = new Rule(-317, new int[]{-133,104,-90}); rules[606] = new Rule(-317, new int[]{-90}); rules[607] = new Rule(-318, new int[]{-317}); rules[608] = new Rule(-318, new int[]{-318,94,-317}); rules[609] = new Rule(-66, new int[]{}); rules[610] = new Rule(-66, new int[]{8,-64,9}); rules[611] = new Rule(-90, new int[]{-94}); rules[612] = new Rule(-90, new int[]{-90,-183,-94}); rules[613] = new Rule(-90, new int[]{-252,8,-338,9}); rules[614] = new Rule(-90, new int[]{-77,132,-327}); rules[615] = new Rule(-90, new int[]{-77,132,-328}); rules[616] = new Rule(-324, new int[]{-270,8,-338,9}); rules[617] = new Rule(-325, new int[]{-270,8,-339,9}); rules[618] = new Rule(-327, new int[]{11,-340,12}); rules[619] = new Rule(-340, new int[]{-329}); rules[620] = new Rule(-340, new int[]{-340,94,-329}); rules[621] = new Rule(-329, new int[]{-15}); rules[622] = new Rule(-329, new int[]{-331}); rules[623] = new Rule(-329, new int[]{14}); rules[624] = new Rule(-329, new int[]{-325}); rules[625] = new Rule(-329, new int[]{-327}); rules[626] = new Rule(-329, new int[]{-328}); rules[627] = new Rule(-329, new int[]{6}); rules[628] = new Rule(-331, new int[]{50,-133}); rules[629] = new Rule(-326, new int[]{-337}); rules[630] = new Rule(-337, new int[]{-342}); rules[631] = new Rule(-337, new int[]{-337,94,-342}); rules[632] = new Rule(-342, new int[]{-15}); rules[633] = new Rule(-342, new int[]{-14}); rules[634] = new Rule(-342, new int[]{53}); rules[635] = new Rule(-328, new int[]{8,-341,9}); rules[636] = new Rule(-330, new int[]{14}); rules[637] = new Rule(-330, new int[]{-15}); rules[638] = new Rule(-330, new int[]{50,-133}); rules[639] = new Rule(-330, new int[]{-325}); rules[640] = new Rule(-330, new int[]{-327}); rules[641] = new Rule(-330, new int[]{-328}); rules[642] = new Rule(-341, new int[]{-330}); rules[643] = new Rule(-341, new int[]{-341,94,-330}); rules[644] = new Rule(-339, new int[]{-336}); rules[645] = new Rule(-339, new int[]{-339,10,-336}); rules[646] = new Rule(-339, new int[]{-339,94,-336}); rules[647] = new Rule(-338, new int[]{-335}); rules[648] = new Rule(-338, new int[]{-338,10,-335}); rules[649] = new Rule(-338, new int[]{-338,94,-335}); rules[650] = new Rule(-335, new int[]{14}); rules[651] = new Rule(-335, new int[]{-15}); rules[652] = new Rule(-335, new int[]{50,-133,5,-262}); rules[653] = new Rule(-335, new int[]{50,-133}); rules[654] = new Rule(-335, new int[]{-324}); rules[655] = new Rule(-335, new int[]{-327}); rules[656] = new Rule(-335, new int[]{-328}); rules[657] = new Rule(-336, new int[]{14}); rules[658] = new Rule(-336, new int[]{-15}); rules[659] = new Rule(-336, new int[]{-133,5,-262}); rules[660] = new Rule(-336, new int[]{-133}); rules[661] = new Rule(-336, new int[]{50,-133,5,-262}); rules[662] = new Rule(-336, new int[]{50,-133}); rules[663] = new Rule(-336, new int[]{-325}); rules[664] = new Rule(-336, new int[]{-327}); rules[665] = new Rule(-336, new int[]{-328}); rules[666] = new Rule(-103, new int[]{-94}); rules[667] = new Rule(-103, new int[]{}); rules[668] = new Rule(-108, new int[]{-84}); rules[669] = new Rule(-108, new int[]{}); rules[670] = new Rule(-106, new int[]{-94,5,-103}); rules[671] = new Rule(-106, new int[]{5,-103}); rules[672] = new Rule(-106, new int[]{-94,5,-103,5,-94}); rules[673] = new Rule(-106, new int[]{5,-103,5,-94}); rules[674] = new Rule(-107, new int[]{-84,5,-108}); rules[675] = new Rule(-107, new int[]{5,-108}); rules[676] = new Rule(-107, new int[]{-84,5,-108,5,-84}); rules[677] = new Rule(-107, new int[]{5,-108,5,-84}); rules[678] = new Rule(-183, new int[]{114}); rules[679] = new Rule(-183, new int[]{119}); rules[680] = new Rule(-183, new int[]{117}); rules[681] = new Rule(-183, new int[]{115}); rules[682] = new Rule(-183, new int[]{118}); rules[683] = new Rule(-183, new int[]{116}); rules[684] = new Rule(-183, new int[]{131}); rules[685] = new Rule(-94, new int[]{-77}); rules[686] = new Rule(-94, new int[]{-94,-184,-77}); rules[687] = new Rule(-184, new int[]{110}); rules[688] = new Rule(-184, new int[]{109}); rules[689] = new Rule(-184, new int[]{122}); rules[690] = new Rule(-184, new int[]{123}); rules[691] = new Rule(-184, new int[]{120}); rules[692] = new Rule(-188, new int[]{130}); rules[693] = new Rule(-188, new int[]{132}); rules[694] = new Rule(-250, new int[]{-252}); rules[695] = new Rule(-250, new int[]{-253}); rules[696] = new Rule(-253, new int[]{-77,130,-270}); rules[697] = new Rule(-252, new int[]{-77,132,-270}); rules[698] = new Rule(-78, new int[]{-89}); rules[699] = new Rule(-254, new int[]{-78,113,-89}); rules[700] = new Rule(-77, new int[]{-89}); rules[701] = new Rule(-77, new int[]{-160}); rules[702] = new Rule(-77, new int[]{-254}); rules[703] = new Rule(-77, new int[]{-77,-185,-89}); rules[704] = new Rule(-77, new int[]{-77,-185,-254}); rules[705] = new Rule(-77, new int[]{-250}); rules[706] = new Rule(-185, new int[]{112}); rules[707] = new Rule(-185, new int[]{111}); rules[708] = new Rule(-185, new int[]{125}); rules[709] = new Rule(-185, new int[]{126}); rules[710] = new Rule(-185, new int[]{127}); rules[711] = new Rule(-185, new int[]{128}); rules[712] = new Rule(-185, new int[]{124}); rules[713] = new Rule(-54, new int[]{60,8,-270,9}); rules[714] = new Rule(-55, new int[]{8,-92,94,-74,-309,-316,9}); rules[715] = new Rule(-89, new int[]{53}); rules[716] = new Rule(-89, new int[]{-15}); rules[717] = new Rule(-89, new int[]{-54}); rules[718] = new Rule(-89, new int[]{11,-65,12}); rules[719] = new Rule(-89, new int[]{129,-89}); rules[720] = new Rule(-89, new int[]{-186,-89}); rules[721] = new Rule(-89, new int[]{-101}); rules[722] = new Rule(-89, new int[]{-55}); rules[723] = new Rule(-15, new int[]{-151}); rules[724] = new Rule(-15, new int[]{-16}); rules[725] = new Rule(-104, new int[]{-100,15,-100}); rules[726] = new Rule(-104, new int[]{-100,15,-104}); rules[727] = new Rule(-101, new int[]{-118,-100}); rules[728] = new Rule(-101, new int[]{-100}); rules[729] = new Rule(-101, new int[]{-104}); rules[730] = new Rule(-118, new int[]{135}); rules[731] = new Rule(-118, new int[]{-118,135}); rules[732] = new Rule(-9, new int[]{-167,-66}); rules[733] = new Rule(-9, new int[]{-287,-66}); rules[734] = new Rule(-306, new int[]{-133}); rules[735] = new Rule(-306, new int[]{-306,7,-124}); rules[736] = new Rule(-305, new int[]{-306}); rules[737] = new Rule(-305, new int[]{-306,-285}); rules[738] = new Rule(-17, new int[]{-100}); rules[739] = new Rule(-17, new int[]{-15}); rules[740] = new Rule(-100, new int[]{-133}); rules[741] = new Rule(-100, new int[]{-178}); rules[742] = new Rule(-100, new int[]{39,-133}); rules[743] = new Rule(-100, new int[]{8,-82,9}); rules[744] = new Rule(-100, new int[]{-243}); rules[745] = new Rule(-100, new int[]{-281}); rules[746] = new Rule(-100, new int[]{-15,7,-124}); rules[747] = new Rule(-100, new int[]{-17,11,-67,12}); rules[748] = new Rule(-100, new int[]{-100,17,-106,12}); rules[749] = new Rule(-100, new int[]{-100,8,-64,9}); rules[750] = new Rule(-100, new int[]{-100,7,-134}); rules[751] = new Rule(-100, new int[]{-55,7,-134}); rules[752] = new Rule(-100, new int[]{-100,136}); rules[753] = new Rule(-100, new int[]{-100,4,-285}); rules[754] = new Rule(-64, new int[]{-67}); rules[755] = new Rule(-64, new int[]{}); rules[756] = new Rule(-65, new int[]{-72}); rules[757] = new Rule(-65, new int[]{}); rules[758] = new Rule(-72, new int[]{-85}); rules[759] = new Rule(-72, new int[]{-72,94,-85}); rules[760] = new Rule(-85, new int[]{-82}); rules[761] = new Rule(-85, new int[]{-82,6,-82}); rules[762] = new Rule(-152, new int[]{138}); rules[763] = new Rule(-152, new int[]{140}); rules[764] = new Rule(-151, new int[]{-153}); rules[765] = new Rule(-151, new int[]{139}); rules[766] = new Rule(-153, new int[]{-152}); rules[767] = new Rule(-153, new int[]{-153,-152}); rules[768] = new Rule(-178, new int[]{42,-187}); rules[769] = new Rule(-194, new int[]{10}); rules[770] = new Rule(-194, new int[]{10,-193,10}); rules[771] = new Rule(-195, new int[]{}); rules[772] = new Rule(-195, new int[]{10,-193}); rules[773] = new Rule(-193, new int[]{-196}); rules[774] = new Rule(-193, new int[]{-193,10,-196}); rules[775] = new Rule(-133, new int[]{137}); rules[776] = new Rule(-133, new int[]{-137}); rules[777] = new Rule(-133, new int[]{-138}); rules[778] = new Rule(-124, new int[]{-133}); rules[779] = new Rule(-124, new int[]{-279}); rules[780] = new Rule(-124, new int[]{-280}); rules[781] = new Rule(-134, new int[]{-133}); rules[782] = new Rule(-134, new int[]{-279}); rules[783] = new Rule(-134, new int[]{-178}); rules[784] = new Rule(-196, new int[]{141}); rules[785] = new Rule(-196, new int[]{143}); rules[786] = new Rule(-196, new int[]{144}); rules[787] = new Rule(-196, new int[]{145}); rules[788] = new Rule(-196, new int[]{147}); rules[789] = new Rule(-196, new int[]{146}); rules[790] = new Rule(-197, new int[]{146}); rules[791] = new Rule(-197, new int[]{145}); rules[792] = new Rule(-197, new int[]{141}); rules[793] = new Rule(-137, new int[]{80}); rules[794] = new Rule(-137, new int[]{81}); rules[795] = new Rule(-138, new int[]{75}); rules[796] = new Rule(-138, new int[]{73}); rules[797] = new Rule(-136, new int[]{79}); rules[798] = new Rule(-136, new int[]{78}); rules[799] = new Rule(-136, new int[]{77}); rules[800] = new Rule(-136, new int[]{76}); rules[801] = new Rule(-279, new int[]{-136}); rules[802] = new Rule(-279, new int[]{66}); rules[803] = new Rule(-279, new int[]{61}); rules[804] = new Rule(-279, new int[]{122}); rules[805] = new Rule(-279, new int[]{19}); rules[806] = new Rule(-279, new int[]{18}); rules[807] = new Rule(-279, new int[]{60}); rules[808] = new Rule(-279, new int[]{20}); rules[809] = new Rule(-279, new int[]{123}); rules[810] = new Rule(-279, new int[]{124}); rules[811] = new Rule(-279, new int[]{125}); rules[812] = new Rule(-279, new int[]{126}); rules[813] = new Rule(-279, new int[]{127}); rules[814] = new Rule(-279, new int[]{128}); rules[815] = new Rule(-279, new int[]{129}); rules[816] = new Rule(-279, new int[]{130}); rules[817] = new Rule(-279, new int[]{131}); rules[818] = new Rule(-279, new int[]{132}); rules[819] = new Rule(-279, new int[]{21}); rules[820] = new Rule(-279, new int[]{71}); rules[821] = new Rule(-279, new int[]{85}); rules[822] = new Rule(-279, new int[]{22}); rules[823] = new Rule(-279, new int[]{23}); rules[824] = new Rule(-279, new int[]{26}); rules[825] = new Rule(-279, new int[]{27}); rules[826] = new Rule(-279, new int[]{28}); rules[827] = new Rule(-279, new int[]{69}); rules[828] = new Rule(-279, new int[]{93}); rules[829] = new Rule(-279, new int[]{29}); rules[830] = new Rule(-279, new int[]{30}); rules[831] = new Rule(-279, new int[]{31}); rules[832] = new Rule(-279, new int[]{24}); rules[833] = new Rule(-279, new int[]{98}); rules[834] = new Rule(-279, new int[]{95}); rules[835] = new Rule(-279, new int[]{32}); rules[836] = new Rule(-279, new int[]{33}); rules[837] = new Rule(-279, new int[]{34}); rules[838] = new Rule(-279, new int[]{37}); rules[839] = new Rule(-279, new int[]{38}); rules[840] = new Rule(-279, new int[]{39}); rules[841] = new Rule(-279, new int[]{97}); rules[842] = new Rule(-279, new int[]{40}); rules[843] = new Rule(-279, new int[]{41}); rules[844] = new Rule(-279, new int[]{43}); rules[845] = new Rule(-279, new int[]{44}); rules[846] = new Rule(-279, new int[]{45}); rules[847] = new Rule(-279, new int[]{91}); rules[848] = new Rule(-279, new int[]{46}); rules[849] = new Rule(-279, new int[]{96}); rules[850] = new Rule(-279, new int[]{47}); rules[851] = new Rule(-279, new int[]{25}); rules[852] = new Rule(-279, new int[]{48}); rules[853] = new Rule(-279, new int[]{68}); rules[854] = new Rule(-279, new int[]{92}); rules[855] = new Rule(-279, new int[]{49}); rules[856] = new Rule(-279, new int[]{50}); rules[857] = new Rule(-279, new int[]{51}); rules[858] = new Rule(-279, new int[]{52}); rules[859] = new Rule(-279, new int[]{53}); rules[860] = new Rule(-279, new int[]{54}); rules[861] = new Rule(-279, new int[]{55}); rules[862] = new Rule(-279, new int[]{56}); rules[863] = new Rule(-279, new int[]{58}); rules[864] = new Rule(-279, new int[]{99}); rules[865] = new Rule(-279, new int[]{100}); rules[866] = new Rule(-279, new int[]{103}); rules[867] = new Rule(-279, new int[]{101}); rules[868] = new Rule(-279, new int[]{102}); rules[869] = new Rule(-279, new int[]{59}); rules[870] = new Rule(-279, new int[]{72}); rules[871] = new Rule(-279, new int[]{35}); rules[872] = new Rule(-279, new int[]{36}); rules[873] = new Rule(-280, new int[]{42}); rules[874] = new Rule(-280, new int[]{86}); rules[875] = new Rule(-187, new int[]{109}); rules[876] = new Rule(-187, new int[]{110}); rules[877] = new Rule(-187, new int[]{111}); rules[878] = new Rule(-187, new int[]{112}); rules[879] = new Rule(-187, new int[]{114}); rules[880] = new Rule(-187, new int[]{115}); rules[881] = new Rule(-187, new int[]{116}); rules[882] = new Rule(-187, new int[]{117}); rules[883] = new Rule(-187, new int[]{118}); rules[884] = new Rule(-187, new int[]{119}); rules[885] = new Rule(-187, new int[]{122}); rules[886] = new Rule(-187, new int[]{123}); rules[887] = new Rule(-187, new int[]{124}); rules[888] = new Rule(-187, new int[]{125}); rules[889] = new Rule(-187, new int[]{126}); rules[890] = new Rule(-187, new int[]{127}); rules[891] = new Rule(-187, new int[]{128}); rules[892] = new Rule(-187, new int[]{129}); rules[893] = new Rule(-187, new int[]{131}); rules[894] = new Rule(-187, new int[]{133}); rules[895] = new Rule(-187, new int[]{134}); rules[896] = new Rule(-187, new int[]{-181}); rules[897] = new Rule(-187, new int[]{113}); rules[898] = new Rule(-181, new int[]{104}); rules[899] = new Rule(-181, new int[]{105}); rules[900] = new Rule(-181, new int[]{106}); rules[901] = new Rule(-181, new int[]{107}); rules[902] = new Rule(-181, new int[]{108}); rules[903] = new Rule(-307, new int[]{-133,121,-313}); rules[904] = new Rule(-307, new int[]{8,9,-310,121,-313}); rules[905] = new Rule(-307, new int[]{8,-133,5,-261,9,-310,121,-313}); rules[906] = new Rule(-307, new int[]{8,-133,10,-311,9,-310,121,-313}); rules[907] = new Rule(-307, new int[]{8,-133,5,-261,10,-311,9,-310,121,-313}); rules[908] = new Rule(-307, new int[]{8,-92,94,-74,-309,-316,9,-320}); rules[909] = new Rule(-307, new int[]{-308}); rules[910] = new Rule(-316, new int[]{}); rules[911] = new Rule(-316, new int[]{10,-311}); rules[912] = new Rule(-320, new int[]{-310,121,-313}); rules[913] = new Rule(-308, new int[]{34,-309,121,-313}); rules[914] = new Rule(-308, new int[]{34,8,9,-309,121,-313}); rules[915] = new Rule(-308, new int[]{34,8,-311,9,-309,121,-313}); rules[916] = new Rule(-308, new int[]{41,121,-314}); rules[917] = new Rule(-308, new int[]{41,8,9,121,-314}); rules[918] = new Rule(-308, new int[]{41,8,-311,9,121,-314}); rules[919] = new Rule(-311, new int[]{-312}); rules[920] = new Rule(-311, new int[]{-311,10,-312}); rules[921] = new Rule(-312, new int[]{-144,-309}); rules[922] = new Rule(-309, new int[]{}); rules[923] = new Rule(-309, new int[]{5,-261}); rules[924] = new Rule(-310, new int[]{}); rules[925] = new Rule(-310, new int[]{5,-263}); rules[926] = new Rule(-315, new int[]{-241}); rules[927] = new Rule(-315, new int[]{-139}); rules[928] = new Rule(-315, new int[]{-303}); rules[929] = new Rule(-315, new int[]{-233}); rules[930] = new Rule(-315, new int[]{-110}); rules[931] = new Rule(-315, new int[]{-109}); rules[932] = new Rule(-315, new int[]{-111}); rules[933] = new Rule(-315, new int[]{-33}); rules[934] = new Rule(-315, new int[]{-288}); rules[935] = new Rule(-315, new int[]{-155}); rules[936] = new Rule(-315, new int[]{-234}); rules[937] = new Rule(-315, new int[]{-112}); rules[938] = new Rule(-313, new int[]{-93}); rules[939] = new Rule(-313, new int[]{-315}); rules[940] = new Rule(-314, new int[]{-199}); rules[941] = new Rule(-314, new int[]{-4}); rules[942] = new Rule(-314, new int[]{-315}); } protected override void Initialize() { this.InitSpecialTokens((int)Tokens.error, (int)Tokens.EOF); this.InitStates(states); this.InitRules(rules); this.InitNonTerminals(nonTerms); } protected override void DoAction(int action) { CurrentSemanticValue = new Union(); switch (action) { case 2: // parse_goal -> program_file { root = ValueStack[ValueStack.Depth-1].stn; } break; case 3: // parse_goal -> unit_file { root = ValueStack[ValueStack.Depth-1].stn; } break; case 4: // parse_goal -> parts { root = ValueStack[ValueStack.Depth-1].stn; } break; case 5: // parts -> tkParseModeExpression, expr { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].ex; } break; case 6: // parts -> tkParseModeExpression, tkType, type_decl_identifier { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].id; } break; case 7: // parts -> tkParseModeType, variable_as_type { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].ex; } break; case 8: // parts -> tkParseModeStatement, stmt_or_expression { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 9: // stmt_or_expression -> expr { CurrentSemanticValue.stn = new expression_as_statement(ValueStack[ValueStack.Depth-1].ex,CurrentLocationSpan);} break; case 10: // stmt_or_expression -> assignment { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 11: // stmt_or_expression -> var_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 12: // optional_head_compiler_directives -> /* empty */ { CurrentSemanticValue.ob = null; } break; case 13: // optional_head_compiler_directives -> head_compiler_directives { CurrentSemanticValue.ob = null; } break; case 14: // head_compiler_directives -> one_compiler_directive { CurrentSemanticValue.ob = null; } break; case 15: // head_compiler_directives -> head_compiler_directives, one_compiler_directive { CurrentSemanticValue.ob = null; } break; case 16: // one_compiler_directive -> tkDirectiveName, tkIdentifier { parsertools.AddErrorFromResource("UNSUPPORTED_OLD_DIRECTIVES",CurrentLocationSpan); CurrentSemanticValue.ob = null; } break; case 17: // one_compiler_directive -> tkDirectiveName, tkStringLiteral { parsertools.AddErrorFromResource("UNSUPPORTED_OLD_DIRECTIVES",CurrentLocationSpan); CurrentSemanticValue.ob = null; } break; case 18: // program_file -> program_header, optional_head_compiler_directives, uses_clause, // program_block, optional_tk_point { CurrentSemanticValue.stn = NewProgramModule(ValueStack[ValueStack.Depth-5].stn as program_name, ValueStack[ValueStack.Depth-4].ob, ValueStack[ValueStack.Depth-3].stn as uses_list, ValueStack[ValueStack.Depth-2].stn, ValueStack[ValueStack.Depth-1].ob, CurrentLocationSpan); } break; case 19: // optional_tk_point -> tkPoint { CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-1].ti; } break; case 20: // optional_tk_point -> tkSemiColon { CurrentSemanticValue.ob = null; } break; case 21: // optional_tk_point -> tkColon { CurrentSemanticValue.ob = null; } break; case 22: // optional_tk_point -> tkComma { CurrentSemanticValue.ob = null; } break; case 23: // optional_tk_point -> tkDotDot { CurrentSemanticValue.ob = null; } break; case 25: // program_header -> /* empty */ { CurrentSemanticValue.stn = null; } break; case 26: // program_header -> tkProgram, identifier, program_heading_2 { CurrentSemanticValue.stn = new program_name(ValueStack[ValueStack.Depth-2].id,CurrentLocationSpan); } break; case 27: // program_heading_2 -> tkSemiColon { CurrentSemanticValue.ob = null; } break; case 28: // program_heading_2 -> tkRoundOpen, program_param_list, tkRoundClose, tkSemiColon { CurrentSemanticValue.ob = null; } break; case 29: // program_param_list -> program_param { CurrentSemanticValue.ob = null; } break; case 30: // program_param_list -> program_param_list, tkComma, program_param { CurrentSemanticValue.ob = null; } break; case 31: // program_param -> identifier { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 32: // program_block -> program_decl_sect_list, compound_stmt { CurrentSemanticValue.stn = new block(ValueStack[ValueStack.Depth-2].stn as declarations, ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan); } break; case 33: // program_decl_sect_list -> decl_sect_list { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 34: // ident_or_keyword_pointseparator_list -> identifier_or_keyword { CurrentSemanticValue.stn = new ident_list(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); } break; case 35: // ident_or_keyword_pointseparator_list -> ident_or_keyword_pointseparator_list, // tkPoint, identifier_or_keyword { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as ident_list).Add(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); } break; case 36: // uses_clause -> /* empty */ { CurrentSemanticValue.stn = null; } break; case 37: // uses_clause -> uses_clause, tkUses, used_units_list, tkSemiColon { if (parsertools.build_tree_for_formatter) { if (ValueStack[ValueStack.Depth-4].stn == null) { CurrentSemanticValue.stn = new uses_closure(ValueStack[ValueStack.Depth-2].stn as uses_list,CurrentLocationSpan); } else { (ValueStack[ValueStack.Depth-4].stn as uses_closure).AddUsesList(ValueStack[ValueStack.Depth-2].stn as uses_list,CurrentLocationSpan); CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-4].stn; } } else { if (ValueStack[ValueStack.Depth-4].stn == null) { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; CurrentSemanticValue.stn.source_context = CurrentLocationSpan; } else { (ValueStack[ValueStack.Depth-4].stn as uses_list).AddUsesList(ValueStack[ValueStack.Depth-2].stn as uses_list,CurrentLocationSpan); CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-4].stn; CurrentSemanticValue.stn.source_context = CurrentLocationSpan; } } } break; case 38: // used_units_list -> used_unit_name { CurrentSemanticValue.stn = new uses_list(ValueStack[ValueStack.Depth-1].stn as unit_or_namespace,CurrentLocationSpan); } break; case 39: // used_units_list -> used_units_list, tkComma, used_unit_name { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as uses_list).Add(ValueStack[ValueStack.Depth-1].stn as unit_or_namespace, CurrentLocationSpan); } break; case 40: // used_unit_name -> ident_or_keyword_pointseparator_list { CurrentSemanticValue.stn = new unit_or_namespace(ValueStack[ValueStack.Depth-1].stn as ident_list,CurrentLocationSpan); } break; case 41: // used_unit_name -> ident_or_keyword_pointseparator_list, tkIn, tkStringLiteral { CurrentSemanticValue.stn = new uses_unit_in(ValueStack[ValueStack.Depth-3].stn as ident_list, ValueStack[ValueStack.Depth-1].stn as string_const, CurrentLocationSpan); } break; case 42: // unit_file -> attribute_declarations, unit_header, interface_part, // implementation_part, initialization_part, tkPoint { CurrentSemanticValue.stn = new unit_module(ValueStack[ValueStack.Depth-5].stn as unit_name, ValueStack[ValueStack.Depth-4].stn as interface_node, ValueStack[ValueStack.Depth-3].stn as implementation_node, (ValueStack[ValueStack.Depth-2].stn as initfinal_part).initialization_sect, (ValueStack[ValueStack.Depth-2].stn as initfinal_part).finalization_sect, ValueStack[ValueStack.Depth-6].stn as attribute_list, CurrentLocationSpan); } break; case 43: // unit_file -> attribute_declarations, unit_header, abc_interface_part, // initialization_part, tkPoint { CurrentSemanticValue.stn = new unit_module(ValueStack[ValueStack.Depth-4].stn as unit_name, ValueStack[ValueStack.Depth-3].stn as interface_node, null, (ValueStack[ValueStack.Depth-2].stn as initfinal_part).initialization_sect, (ValueStack[ValueStack.Depth-2].stn as initfinal_part).finalization_sect, ValueStack[ValueStack.Depth-5].stn as attribute_list, CurrentLocationSpan); } break; case 44: // unit_header -> unit_key_word, unit_name, tkSemiColon, // optional_head_compiler_directives { CurrentSemanticValue.stn = NewUnitHeading(new ident(ValueStack[ValueStack.Depth-4].ti.text, LocationStack[LocationStack.Depth-4]), ValueStack[ValueStack.Depth-3].id, CurrentLocationSpan); } break; case 45: // unit_header -> tkNamespace, ident_or_keyword_pointseparator_list, tkSemiColon, // optional_head_compiler_directives { CurrentSemanticValue.stn = NewNamespaceHeading(new ident(ValueStack[ValueStack.Depth-4].ti.text, LocationStack[LocationStack.Depth-4]), ValueStack[ValueStack.Depth-3].stn as ident_list, CurrentLocationSpan); } break; case 46: // unit_key_word -> tkUnit { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 47: // unit_key_word -> tkLibrary { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 48: // unit_name -> identifier { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 49: // interface_part -> tkInterface, uses_clause, interface_decl_sect_list { CurrentSemanticValue.stn = new interface_node(ValueStack[ValueStack.Depth-1].stn as declarations, ValueStack[ValueStack.Depth-2].stn as uses_list, null, LexLocation.MergeAll(LocationStack[LocationStack.Depth-3],LocationStack[LocationStack.Depth-2],LocationStack[LocationStack.Depth-1])); } break; case 50: // implementation_part -> tkImplementation, uses_clause, decl_sect_list { CurrentSemanticValue.stn = new implementation_node(ValueStack[ValueStack.Depth-2].stn as uses_list, ValueStack[ValueStack.Depth-1].stn as declarations, null, LexLocation.MergeAll(LocationStack[LocationStack.Depth-3],LocationStack[LocationStack.Depth-2],LocationStack[LocationStack.Depth-1])); } break; case 51: // abc_interface_part -> uses_clause, decl_sect_list { CurrentSemanticValue.stn = new interface_node(ValueStack[ValueStack.Depth-1].stn as declarations, ValueStack[ValueStack.Depth-2].stn as uses_list, null, null); } break; case 52: // initialization_part -> tkEnd { CurrentSemanticValue.stn = new initfinal_part(); CurrentSemanticValue.stn.source_context = CurrentLocationSpan; } break; case 53: // initialization_part -> tkInitialization, stmt_list, tkEnd { CurrentSemanticValue.stn = new initfinal_part(ValueStack[ValueStack.Depth-3].ti, ValueStack[ValueStack.Depth-2].stn as statement_list, ValueStack[ValueStack.Depth-1].ti, null, null, CurrentLocationSpan); } break; case 54: // initialization_part -> tkInitialization, stmt_list, tkFinalization, stmt_list, // tkEnd { CurrentSemanticValue.stn = new initfinal_part(ValueStack[ValueStack.Depth-5].ti, ValueStack[ValueStack.Depth-4].stn as statement_list, ValueStack[ValueStack.Depth-3].ti, ValueStack[ValueStack.Depth-2].stn as statement_list, ValueStack[ValueStack.Depth-1].ti, CurrentLocationSpan); } break; case 55: // initialization_part -> tkBegin, stmt_list, tkEnd { CurrentSemanticValue.stn = new initfinal_part(ValueStack[ValueStack.Depth-3].ti, ValueStack[ValueStack.Depth-2].stn as statement_list, ValueStack[ValueStack.Depth-1].ti, null, null, CurrentLocationSpan); } break; case 56: // interface_decl_sect_list -> int_decl_sect_list1 { if ((ValueStack[ValueStack.Depth-1].stn as declarations).Count > 0) CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; else CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 57: // int_decl_sect_list1 -> /* empty */ { CurrentSemanticValue.stn = new declarations(); if (GlobalDecls==null) GlobalDecls = CurrentSemanticValue.stn as declarations; } break; case 58: // int_decl_sect_list1 -> int_decl_sect_list1, int_decl_sect { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-2].stn as declarations).Add(ValueStack[ValueStack.Depth-1].stn as declaration, CurrentLocationSpan); } break; case 59: // decl_sect_list -> decl_sect_list1 { if ((ValueStack[ValueStack.Depth-1].stn as declarations).Count > 0) CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; else CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 60: // decl_sect_list1 -> /* empty */ { CurrentSemanticValue.stn = new declarations(); if (GlobalDecls==null) GlobalDecls = CurrentSemanticValue.stn as declarations; } break; case 61: // decl_sect_list1 -> decl_sect_list1, decl_sect { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-2].stn as declarations).Add(ValueStack[ValueStack.Depth-1].stn as declaration, CurrentLocationSpan); } break; case 62: // inclass_decl_sect_list -> inclass_decl_sect_list1 { if ((ValueStack[ValueStack.Depth-1].stn as declarations).Count > 0) CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; else CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 63: // inclass_decl_sect_list1 -> /* empty */ { CurrentSemanticValue.stn = new declarations(); } break; case 64: // inclass_decl_sect_list1 -> inclass_decl_sect_list1, abc_decl_sect { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-2].stn as declarations).Add(ValueStack[ValueStack.Depth-1].stn as declaration, CurrentLocationSpan); } break; case 65: // int_decl_sect -> const_decl_sect { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 66: // int_decl_sect -> res_str_decl_sect { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 67: // int_decl_sect -> type_decl_sect { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 68: // int_decl_sect -> var_decl_sect { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 69: // int_decl_sect -> int_proc_header { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].td; } break; case 70: // int_decl_sect -> int_func_header { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].td; } break; case 71: // decl_sect -> label_decl_sect { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 72: // decl_sect -> const_decl_sect { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 73: // decl_sect -> res_str_decl_sect { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 74: // decl_sect -> type_decl_sect { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 75: // decl_sect -> var_decl_sect { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 76: // decl_sect -> proc_func_constr_destr_decl_with_attr { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 77: // proc_func_constr_destr_decl -> proc_func_decl { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 78: // proc_func_constr_destr_decl -> constr_destr_decl { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 79: // proc_func_constr_destr_decl_with_attr -> attribute_declarations, // proc_func_constr_destr_decl { (ValueStack[ValueStack.Depth-1].stn as procedure_definition).AssignAttrList(ValueStack[ValueStack.Depth-2].stn as attribute_list); CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 80: // abc_decl_sect -> label_decl_sect { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 81: // abc_decl_sect -> const_decl_sect { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 82: // abc_decl_sect -> res_str_decl_sect { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 83: // abc_decl_sect -> type_decl_sect { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 84: // abc_decl_sect -> var_decl_sect { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 85: // int_proc_header -> attribute_declarations, proc_header { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; (CurrentSemanticValue.td as procedure_header).attributes = ValueStack[ValueStack.Depth-2].stn as attribute_list; } break; case 86: // int_proc_header -> attribute_declarations, proc_header, tkForward, tkSemiColon { CurrentSemanticValue.td = NewProcedureHeader(ValueStack[ValueStack.Depth-4].stn as attribute_list, ValueStack[ValueStack.Depth-3].td as procedure_header, ValueStack[ValueStack.Depth-2].id as procedure_attribute, CurrentLocationSpan); } break; case 87: // int_func_header -> attribute_declarations, func_header { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; (CurrentSemanticValue.td as procedure_header).attributes = ValueStack[ValueStack.Depth-2].stn as attribute_list; } break; case 88: // int_func_header -> attribute_declarations, func_header, tkForward, tkSemiColon { CurrentSemanticValue.td = NewProcedureHeader(ValueStack[ValueStack.Depth-4].stn as attribute_list, ValueStack[ValueStack.Depth-3].td as procedure_header, ValueStack[ValueStack.Depth-2].id as procedure_attribute, CurrentLocationSpan); } break; case 89: // label_decl_sect -> tkLabel, label_list, tkSemiColon { CurrentSemanticValue.stn = new label_definitions(ValueStack[ValueStack.Depth-2].stn as ident_list, CurrentLocationSpan); } break; case 90: // label_list -> label_name { CurrentSemanticValue.stn = new ident_list(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); } break; case 91: // label_list -> label_list, tkComma, label_name { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as ident_list).Add(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); } break; case 92: // label_name -> tkInteger { CurrentSemanticValue.id = new ident(ValueStack[ValueStack.Depth-1].ex.ToString(), CurrentLocationSpan); } break; case 93: // label_name -> identifier { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 94: // const_decl_sect -> tkConst, const_decl { CurrentSemanticValue.stn = new consts_definitions_list(ValueStack[ValueStack.Depth-1].stn as const_definition, CurrentLocationSpan); } break; case 95: // const_decl_sect -> const_decl_sect, const_decl { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-2].stn as consts_definitions_list).Add(ValueStack[ValueStack.Depth-1].stn as const_definition, CurrentLocationSpan); } break; case 96: // res_str_decl_sect -> tkResourceString, const_decl { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 97: // res_str_decl_sect -> res_str_decl_sect, const_decl { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; } break; case 98: // type_decl_sect -> tkType, type_decl { CurrentSemanticValue.stn = new type_declarations(ValueStack[ValueStack.Depth-1].stn as type_declaration, CurrentLocationSpan); } break; case 99: // type_decl_sect -> type_decl_sect, type_decl { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-2].stn as type_declarations).Add(ValueStack[ValueStack.Depth-1].stn as type_declaration, CurrentLocationSpan); } break; case 100: // var_decl_with_assign_var_tuple -> var_decl { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 101: // var_decl_with_assign_var_tuple -> tkRoundOpen, identifier, tkComma, ident_list, // tkRoundClose, tkAssign, expr_l1, // tkSemiColon { (ValueStack[ValueStack.Depth-5].stn as ident_list).Insert(0,ValueStack[ValueStack.Depth-7].id); ValueStack[ValueStack.Depth-5].stn.source_context = LexLocation.MergeAll(LocationStack[LocationStack.Depth-8],LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5],LocationStack[LocationStack.Depth-4]); CurrentSemanticValue.stn = new var_tuple_def_statement(ValueStack[ValueStack.Depth-5].stn as ident_list, ValueStack[ValueStack.Depth-2].ex, CurrentLocationSpan); } break; case 102: // var_decl_sect -> tkVar, var_decl_with_assign_var_tuple { CurrentSemanticValue.stn = new variable_definitions(ValueStack[ValueStack.Depth-1].stn as var_def_statement, CurrentLocationSpan); } break; case 103: // var_decl_sect -> tkEvent, var_decl_with_assign_var_tuple { CurrentSemanticValue.stn = new variable_definitions(ValueStack[ValueStack.Depth-1].stn as var_def_statement, CurrentLocationSpan); (ValueStack[ValueStack.Depth-1].stn as var_def_statement).is_event = true; } break; case 104: // var_decl_sect -> var_decl_sect, var_decl_with_assign_var_tuple { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-2].stn as variable_definitions).Add(ValueStack[ValueStack.Depth-1].stn as var_def_statement, CurrentLocationSpan); } break; case 105: // const_decl -> only_const_decl, tkSemiColon { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; } break; case 106: // only_const_decl -> const_name, tkEqual, init_const_expr { CurrentSemanticValue.stn = new simple_const_definition(ValueStack[ValueStack.Depth-3].id, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 107: // only_const_decl -> const_name, tkColon, type_ref, tkEqual, typed_const { CurrentSemanticValue.stn = new typed_const_definition(ValueStack[ValueStack.Depth-5].id, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-3].td, CurrentLocationSpan); } break; case 108: // init_const_expr -> const_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 109: // init_const_expr -> array_const { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 110: // const_name -> identifier { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 111: // expr_l1_list -> expr_l1 { CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 112: // expr_l1_list -> expr_l1_list, tkComma, expr_l1 { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as expression_list).Add(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 113: // const_expr -> const_simple_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 114: // const_expr -> const_simple_expr, const_relop, const_simple_expr { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; case 115: // const_expr -> question_constexpr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 116: // question_constexpr -> const_expr, tkQuestion, const_expr, tkColon, const_expr { CurrentSemanticValue.ex = new question_colon_expression(ValueStack[ValueStack.Depth-5].ex, ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 117: // const_relop -> tkEqual { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 118: // const_relop -> tkNotEqual { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 119: // const_relop -> tkLower { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 120: // const_relop -> tkGreater { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 121: // const_relop -> tkLowerEqual { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 122: // const_relop -> tkGreaterEqual { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 123: // const_relop -> tkIn { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 124: // const_simple_expr -> const_term { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 125: // const_simple_expr -> const_simple_expr, const_addop, const_term { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; case 126: // const_addop -> tkPlus { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 127: // const_addop -> tkMinus { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 128: // const_addop -> tkOr { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 129: // const_addop -> tkXor { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 130: // as_is_constexpr -> const_term, typecast_op, simple_or_template_type_reference { CurrentSemanticValue.ex = NewAsIsConstexpr(ValueStack[ValueStack.Depth-3].ex, (op_typecast)ValueStack[ValueStack.Depth-2].ob, ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 131: // power_constexpr -> const_factor, tkStarStar, const_factor { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; case 132: // const_term -> const_factor { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 133: // const_term -> as_is_constexpr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 134: // const_term -> power_constexpr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 135: // const_term -> const_term, const_mulop, const_factor { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; case 136: // const_term -> const_term, const_mulop, power_constexpr { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex,ValueStack[ValueStack.Depth-1].ex,(ValueStack[ValueStack.Depth-2].op).type, CurrentLocationSpan); } break; case 137: // const_mulop -> tkStar { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 138: // const_mulop -> tkSlash { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 139: // const_mulop -> tkDiv { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 140: // const_mulop -> tkMod { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 141: // const_mulop -> tkShl { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 142: // const_mulop -> tkShr { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 143: // const_mulop -> tkAnd { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 144: // const_factor -> const_variable { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 145: // const_factor -> const_set { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 146: // const_factor -> tkNil { CurrentSemanticValue.ex = new nil_const(); CurrentSemanticValue.ex.source_context = CurrentLocationSpan; } break; case 147: // const_factor -> tkAddressOf, const_factor { CurrentSemanticValue.ex = new get_address(ValueStack[ValueStack.Depth-1].ex as addressed_value, CurrentLocationSpan); } break; case 148: // const_factor -> tkRoundOpen, const_expr, tkRoundClose { CurrentSemanticValue.ex = new bracket_expr(ValueStack[ValueStack.Depth-2].ex, CurrentLocationSpan); } break; case 149: // const_factor -> tkNot, const_factor { CurrentSemanticValue.ex = new un_expr(ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; case 150: // const_factor -> sign, const_factor { // ������ ��������� ����� �������� if (ValueStack[ValueStack.Depth-2].op.type == Operators.Minus) { var i64 = ValueStack[ValueStack.Depth-1].ex as int64_const; if (i64 != null && i64.val == (Int64)Int32.MaxValue + 1) { CurrentSemanticValue.ex = new int32_const(Int32.MinValue,CurrentLocationSpan); break; } var ui64 = ValueStack[ValueStack.Depth-1].ex as uint64_const; if (ui64 != null && ui64.val == (UInt64)Int64.MaxValue + 1) { CurrentSemanticValue.ex = new int64_const(Int64.MinValue,CurrentLocationSpan); break; } if (ui64 != null && ui64.val > (UInt64)Int64.MaxValue + 1) { parsertools.AddErrorFromResource("BAD_INT2",CurrentLocationSpan); break; } // ����� ������� ���������� ��������� � �������������� ������� } CurrentSemanticValue.ex = new un_expr(ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; case 151: // const_factor -> new_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 152: // const_set -> tkSquareOpen, const_elem_list, tkSquareClose { CurrentSemanticValue.ex = new pascal_set_constant(ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan); } break; case 153: // sign -> tkPlus { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 154: // sign -> tkMinus { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 155: // const_pattern_variable -> identifier { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].id; } break; case 156: // const_pattern_variable -> sizeof_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 157: // const_pattern_variable -> typeof_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 158: // const_variable -> identifier { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].id; } break; case 159: // const_variable -> literal { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 160: // const_variable -> unsigned_number { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 161: // const_variable -> tkInherited, identifier { CurrentSemanticValue.ex = new inherited_ident(ValueStack[ValueStack.Depth-1].id.name, CurrentLocationSpan); } break; case 162: // const_variable -> sizeof_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 163: // const_variable -> typeof_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 164: // const_variable -> const_variable, const_variable_2 { CurrentSemanticValue.ex = NewConstVariable(ValueStack[ValueStack.Depth-2].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 165: // const_variable -> const_variable, tkAmpersend, template_type_params { CurrentSemanticValue.ex = new ident_with_templateparams(ValueStack[ValueStack.Depth-3].ex as addressed_value, ValueStack[ValueStack.Depth-1].stn as template_param_list, CurrentLocationSpan); } break; case 166: // const_variable -> const_variable, tkSquareOpen, format_const_expr, // tkSquareClose { var fe = ValueStack[ValueStack.Depth-2].ex as format_expr; if (!parsertools.build_tree_for_formatter) { if (fe.expr == null) fe.expr = new int32_const(int.MaxValue,LocationStack[LocationStack.Depth-2]); if (fe.format1 == null) fe.format1 = new int32_const(int.MaxValue,LocationStack[LocationStack.Depth-2]); } CurrentSemanticValue.ex = new slice_expr(ValueStack[ValueStack.Depth-4].ex as addressed_value,fe.expr,fe.format1,fe.format2,CurrentLocationSpan); } break; case 167: // const_variable_2 -> tkPoint, identifier_or_keyword { CurrentSemanticValue.ex = new dot_node(null, ValueStack[ValueStack.Depth-1].id as addressed_value, CurrentLocationSpan); } break; case 168: // const_variable_2 -> tkDeref { CurrentSemanticValue.ex = new roof_dereference(); CurrentSemanticValue.ex.source_context = CurrentLocationSpan; } break; case 169: // const_variable_2 -> tkRoundOpen, optional_const_func_expr_list, tkRoundClose { CurrentSemanticValue.ex = new method_call(ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan); } break; case 170: // const_variable_2 -> tkSquareOpen, const_elem_list, tkSquareClose { CurrentSemanticValue.ex = new indexer(ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan); } break; case 171: // optional_const_func_expr_list -> expr_list { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 172: // optional_const_func_expr_list -> /* empty */ { CurrentSemanticValue.stn = null; } break; case 173: // const_elem_list -> const_elem_list1 { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 175: // const_elem_list1 -> const_elem { CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 176: // const_elem_list1 -> const_elem_list1, tkComma, const_elem { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as expression_list).Add(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 177: // const_elem -> const_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 178: // const_elem -> const_expr, tkDotDot, const_expr { CurrentSemanticValue.ex = new diapason_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 179: // unsigned_number -> tkInteger { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 180: // unsigned_number -> tkHex { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 181: // unsigned_number -> tkFloat { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 182: // typed_const -> const_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 183: // typed_const -> array_const { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 184: // typed_const -> record_const { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 185: // array_const -> tkRoundOpen, typed_const_list, tkRoundClose { CurrentSemanticValue.ex = new array_const(ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan); } break; case 187: // typed_const_list -> typed_const_list1 { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 188: // typed_const_list1 -> typed_const_plus { CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 189: // typed_const_list1 -> typed_const_list1, tkComma, typed_const_plus { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as expression_list).Add(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 190: // record_const -> tkRoundOpen, const_field_list, tkRoundClose { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-2].ex; CurrentSemanticValue.ex.source_context = CurrentLocationSpan; } break; case 191: // const_field_list -> const_field_list_1 { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 192: // const_field_list -> const_field_list_1, tkSemiColon { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-2].ex; } break; case 193: // const_field_list_1 -> const_field { CurrentSemanticValue.ex = new record_const(ValueStack[ValueStack.Depth-1].stn as record_const_definition, CurrentLocationSpan); } break; case 194: // const_field_list_1 -> const_field_list_1, tkSemiColon, const_field { CurrentSemanticValue.ex = (ValueStack[ValueStack.Depth-3].ex as record_const).Add(ValueStack[ValueStack.Depth-1].stn as record_const_definition, CurrentLocationSpan); } break; case 195: // const_field -> const_field_name, tkColon, typed_const { CurrentSemanticValue.stn = new record_const_definition(ValueStack[ValueStack.Depth-3].id, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 196: // const_field_name -> identifier { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 197: // type_decl -> attribute_declarations, simple_type_decl { (ValueStack[ValueStack.Depth-1].stn as declaration).attributes = ValueStack[ValueStack.Depth-2].stn as attribute_list; CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; CurrentSemanticValue.stn.source_context = LocationStack[LocationStack.Depth-1]; } break; case 198: // attribute_declarations -> attribute_declaration { CurrentSemanticValue.stn = new attribute_list(ValueStack[ValueStack.Depth-1].stn as simple_attribute_list, CurrentLocationSpan); } break; case 199: // attribute_declarations -> attribute_declarations, attribute_declaration { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-2].stn as attribute_list).Add(ValueStack[ValueStack.Depth-1].stn as simple_attribute_list, CurrentLocationSpan); } break; case 200: // attribute_declarations -> /* empty */ { CurrentSemanticValue.stn = null; } break; case 201: // attribute_declaration -> tkSquareOpen, one_or_some_attribute, tkSquareClose { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; } break; case 202: // one_or_some_attribute -> one_attribute { CurrentSemanticValue.stn = new simple_attribute_list(ValueStack[ValueStack.Depth-1].stn as attribute, CurrentLocationSpan); } break; case 203: // one_or_some_attribute -> one_or_some_attribute, tkComma, one_attribute { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as simple_attribute_list).Add(ValueStack[ValueStack.Depth-1].stn as attribute, CurrentLocationSpan); } break; case 204: // one_attribute -> attribute_variable { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 205: // one_attribute -> identifier, tkColon, attribute_variable { (ValueStack[ValueStack.Depth-1].stn as attribute).qualifier = ValueStack[ValueStack.Depth-3].id; CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; CurrentSemanticValue.stn.source_context = CurrentLocationSpan; } break; case 206: // simple_type_decl -> type_decl_identifier, tkEqual, type_decl_type, tkSemiColon { CurrentSemanticValue.stn = new type_declaration(ValueStack[ValueStack.Depth-4].id, ValueStack[ValueStack.Depth-2].td, CurrentLocationSpan); } break; case 207: // simple_type_decl -> template_identifier_with_equal, type_decl_type, tkSemiColon { CurrentSemanticValue.stn = new type_declaration(ValueStack[ValueStack.Depth-3].id, ValueStack[ValueStack.Depth-2].td, CurrentLocationSpan); } break; case 208: // type_decl_identifier -> identifier { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 209: // type_decl_identifier -> identifier, template_arguments { CurrentSemanticValue.id = new template_type_name(ValueStack[ValueStack.Depth-2].id.name, ValueStack[ValueStack.Depth-1].stn as ident_list, CurrentLocationSpan); } break; case 210: // template_identifier_with_equal -> identifier, tkLower, ident_list, // tkGreaterEqual { CurrentSemanticValue.id = new template_type_name(ValueStack[ValueStack.Depth-4].id.name, ValueStack[ValueStack.Depth-2].stn as ident_list, CurrentLocationSpan); } break; case 211: // type_decl_type -> type_ref { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 212: // type_decl_type -> object_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 213: // simple_type_question -> simple_type, tkQuestion { if (parsertools.build_tree_for_formatter) { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-2].td; } else { var l = new List(); l.Add(new ident("System")); l.Add(new ident("Nullable")); CurrentSemanticValue.td = new template_type_reference(new named_type_reference(l), new template_param_list(ValueStack[ValueStack.Depth-2].td), CurrentLocationSpan); } } break; case 214: // simple_type_question -> template_type, tkQuestion { if (parsertools.build_tree_for_formatter) { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-2].td; } else { var l = new List(); l.Add(new ident("System")); l.Add(new ident("Nullable")); CurrentSemanticValue.td = new template_type_reference(new named_type_reference(l), new template_param_list(ValueStack[ValueStack.Depth-2].td), CurrentLocationSpan); } } break; case 215: // type_ref -> simple_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 216: // type_ref -> simple_type_question { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 217: // type_ref -> string_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 218: // type_ref -> pointer_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 219: // type_ref -> structured_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 220: // type_ref -> procedural_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 221: // type_ref -> template_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 222: // template_type -> simple_type_identifier, template_type_params { CurrentSemanticValue.td = new template_type_reference(ValueStack[ValueStack.Depth-2].td as named_type_reference, ValueStack[ValueStack.Depth-1].stn as template_param_list, CurrentLocationSpan); } break; case 223: // template_type_params -> tkLower, template_param_list, tkGreater { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; CurrentSemanticValue.stn.source_context = CurrentLocationSpan; } break; case 224: // template_type_empty_params -> tkNotEqual { var ntr = new named_type_reference(new ident(""), CurrentLocationSpan); CurrentSemanticValue.stn = new template_param_list(ntr, CurrentLocationSpan); ntr.source_context = new SourceContext(CurrentSemanticValue.stn.source_context.end_position.line_num, CurrentSemanticValue.stn.source_context.end_position.column_num, CurrentSemanticValue.stn.source_context.begin_position.line_num, CurrentSemanticValue.stn.source_context.begin_position.column_num); } break; case 225: // template_type_empty_params -> tkLower, template_empty_param_list, tkGreater { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; CurrentSemanticValue.stn.source_context = CurrentLocationSpan; } break; case 226: // template_param_list -> template_param { CurrentSemanticValue.stn = new template_param_list(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 227: // template_param_list -> template_param_list, tkComma, template_param { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as template_param_list).Add(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 228: // template_empty_param_list -> template_empty_param { CurrentSemanticValue.stn = new template_param_list(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 229: // template_empty_param_list -> template_empty_param_list, tkComma, // template_empty_param { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as template_param_list).Add(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 230: // template_empty_param -> /* empty */ { CurrentSemanticValue.td = new named_type_reference(new ident(""), CurrentLocationSpan); } break; case 231: // template_param -> simple_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 232: // template_param -> simple_type, tkQuestion { if (parsertools.build_tree_for_formatter) { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-2].td; } else { var l = new List(); l.Add(new ident("System")); l.Add(new ident("Nullable")); CurrentSemanticValue.td = new template_type_reference(new named_type_reference(l), new template_param_list(ValueStack[ValueStack.Depth-2].td), CurrentLocationSpan); } } break; case 233: // template_param -> structured_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 234: // template_param -> procedural_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 235: // template_param -> template_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 236: // simple_type -> range_expr { CurrentSemanticValue.td = parsertools.ConvertDotNodeOrIdentToNamedTypeReference(ValueStack[ValueStack.Depth-1].ex); } break; case 237: // simple_type -> range_expr, tkDotDot, range_expr { CurrentSemanticValue.td = new diapason(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 238: // simple_type -> tkRoundOpen, enumeration_id_list, tkRoundClose { CurrentSemanticValue.td = new enum_type_definition(ValueStack[ValueStack.Depth-2].stn as enumerator_list, CurrentLocationSpan); } break; case 239: // range_expr -> range_term { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 240: // range_expr -> range_expr, const_addop, range_term { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; case 241: // range_term -> range_factor { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 242: // range_term -> range_term, const_mulop, range_factor { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; case 243: // range_factor -> simple_type_identifier { CurrentSemanticValue.ex = parsertools.ConvertNamedTypeReferenceToDotNodeOrIdent(ValueStack[ValueStack.Depth-1].td as named_type_reference); } break; case 244: // range_factor -> unsigned_number { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 245: // range_factor -> sign, range_factor { CurrentSemanticValue.ex = new un_expr(ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; case 246: // range_factor -> literal { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 247: // range_factor -> range_factor, tkRoundOpen, const_elem_list, tkRoundClose { CurrentSemanticValue.ex = new method_call(ValueStack[ValueStack.Depth-4].ex as addressed_value, ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan); } break; case 248: // simple_type_identifier -> identifier { CurrentSemanticValue.td = new named_type_reference(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); } break; case 249: // simple_type_identifier -> simple_type_identifier, tkPoint, // identifier_or_keyword { CurrentSemanticValue.td = (ValueStack[ValueStack.Depth-3].td as named_type_reference).Add(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); } break; case 250: // enumeration_id_list -> enumeration_id, tkComma, enumeration_id { CurrentSemanticValue.stn = new enumerator_list(ValueStack[ValueStack.Depth-3].stn as enumerator, CurrentLocationSpan); (CurrentSemanticValue.stn as enumerator_list).Add(ValueStack[ValueStack.Depth-1].stn as enumerator, CurrentLocationSpan); } break; case 251: // enumeration_id_list -> enumeration_id_list, tkComma, enumeration_id { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as enumerator_list).Add(ValueStack[ValueStack.Depth-1].stn as enumerator, CurrentLocationSpan); } break; case 252: // enumeration_id -> type_ref { CurrentSemanticValue.stn = new enumerator(ValueStack[ValueStack.Depth-1].td, null, CurrentLocationSpan); } break; case 253: // enumeration_id -> type_ref, tkEqual, expr { CurrentSemanticValue.stn = new enumerator(ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 254: // pointer_type -> tkDeref, fptype { CurrentSemanticValue.td = new ref_type(ValueStack[ValueStack.Depth-1].td,CurrentLocationSpan); } break; case 255: // structured_type -> unpacked_structured_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 256: // structured_type -> tkPacked, unpacked_structured_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 257: // unpacked_structured_type -> array_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 258: // unpacked_structured_type -> record_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 259: // unpacked_structured_type -> set_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 260: // unpacked_structured_type -> file_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 261: // unpacked_structured_type -> sequence_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 262: // sequence_type -> tkSequence, tkOf, type_ref { CurrentSemanticValue.td = new sequence_type(ValueStack[ValueStack.Depth-1].td,CurrentLocationSpan); } break; case 263: // array_type -> tkArray, tkSquareOpen, simple_type_list, tkSquareClose, tkOf, // type_ref { CurrentSemanticValue.td = new array_type(ValueStack[ValueStack.Depth-4].stn as indexers_types, ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 264: // array_type -> unsized_array_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 265: // unsized_array_type -> tkArray, tkOf, type_ref { CurrentSemanticValue.td = new array_type(null, ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 266: // simple_type_list -> simple_type_or_ { CurrentSemanticValue.stn = new indexers_types(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 267: // simple_type_list -> simple_type_list, tkComma, simple_type_or_ { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as indexers_types).Add(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 268: // simple_type_or_ -> simple_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 269: // simple_type_or_ -> /* empty */ { CurrentSemanticValue.td = null; } break; case 270: // set_type -> tkSet, tkOf, type_ref { CurrentSemanticValue.td = new set_type_definition(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 271: // file_type -> tkFile, tkOf, type_ref { CurrentSemanticValue.td = new file_type(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 272: // file_type -> tkFile { CurrentSemanticValue.td = new file_type(); CurrentSemanticValue.td.source_context = CurrentLocationSpan; } break; case 273: // string_type -> tkIdentifier, tkSquareOpen, const_expr, tkSquareClose { CurrentSemanticValue.td = new string_num_definition(ValueStack[ValueStack.Depth-2].ex, ValueStack[ValueStack.Depth-4].id, CurrentLocationSpan); } break; case 274: // procedural_type -> procedural_type_kind { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 275: // procedural_type_kind -> proc_type_decl { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 276: // proc_type_decl -> tkProcedure, fp_list { CurrentSemanticValue.td = new procedure_header(ValueStack[ValueStack.Depth-1].stn as formal_parameters,null,null,false,false,null,null,CurrentLocationSpan); } break; case 277: // proc_type_decl -> tkFunction, fp_list, tkColon, fptype { CurrentSemanticValue.td = new function_header(ValueStack[ValueStack.Depth-3].stn as formal_parameters, null, null, null, ValueStack[ValueStack.Depth-1].td as type_definition, CurrentLocationSpan); } break; case 278: // proc_type_decl -> simple_type_identifier, tkArrow, template_param { CurrentSemanticValue.td = new modern_proc_type(ValueStack[ValueStack.Depth-3].td,null,ValueStack[ValueStack.Depth-1].td,CurrentLocationSpan); } break; case 279: // proc_type_decl -> template_type, tkArrow, template_param { CurrentSemanticValue.td = new modern_proc_type(ValueStack[ValueStack.Depth-3].td,null,ValueStack[ValueStack.Depth-1].td,CurrentLocationSpan); } break; case 280: // proc_type_decl -> tkRoundOpen, tkRoundClose, tkArrow, template_param { CurrentSemanticValue.td = new modern_proc_type(null,null,ValueStack[ValueStack.Depth-1].td,CurrentLocationSpan); } break; case 281: // proc_type_decl -> tkRoundOpen, enumeration_id_list, tkRoundClose, tkArrow, // template_param { CurrentSemanticValue.td = new modern_proc_type(null,ValueStack[ValueStack.Depth-4].stn as enumerator_list,ValueStack[ValueStack.Depth-1].td,CurrentLocationSpan); } break; case 282: // proc_type_decl -> simple_type_identifier, tkArrow, tkRoundOpen, tkRoundClose { CurrentSemanticValue.td = new modern_proc_type(ValueStack[ValueStack.Depth-4].td,null,null,CurrentLocationSpan); } break; case 283: // proc_type_decl -> template_type, tkArrow, tkRoundOpen, tkRoundClose { CurrentSemanticValue.td = new modern_proc_type(ValueStack[ValueStack.Depth-4].td,null,null,CurrentLocationSpan); } break; case 284: // proc_type_decl -> tkRoundOpen, tkRoundClose, tkArrow, tkRoundOpen, tkRoundClose { CurrentSemanticValue.td = new modern_proc_type(null,null,null,CurrentLocationSpan); } break; case 285: // proc_type_decl -> tkRoundOpen, enumeration_id_list, tkRoundClose, tkArrow, // tkRoundOpen, tkRoundClose { CurrentSemanticValue.td = new modern_proc_type(null,ValueStack[ValueStack.Depth-5].stn as enumerator_list,null,CurrentLocationSpan); } break; case 286: // object_type -> class_attributes, class_or_interface_keyword, // optional_base_classes, optional_where_section, // optional_component_list_seq_end { var cd = NewObjectType((class_attribute)ValueStack[ValueStack.Depth-5].ob, ValueStack[ValueStack.Depth-4].ti, ValueStack[ValueStack.Depth-3].stn as named_type_reference_list, ValueStack[ValueStack.Depth-2].stn as where_definition_list, ValueStack[ValueStack.Depth-1].stn as class_body_list, CurrentLocationSpan); CurrentSemanticValue.td = cd; var tt = cd.DescendantNodes().OfType().Where(cld => cld.keyword == class_keyword.Record); if (tt.Count()>0) { foreach (var ttt in tt) { var sc = ttt.source_context; parsertools.AddErrorFromResource("NESTED_RECORD_DEFINITIONS_ARE_FORBIDDEN", new LexLocation(sc.begin_position.line_num, sc.begin_position.column_num-1, sc.end_position.line_num, sc.end_position.column_num, sc.FileName)); } } } break; case 287: // record_type -> tkRecord, optional_base_classes, optional_where_section, // member_list_section, tkEnd { var nnrt = new class_definition(ValueStack[ValueStack.Depth-4].stn as named_type_reference_list, ValueStack[ValueStack.Depth-2].stn as class_body_list, class_keyword.Record, null, ValueStack[ValueStack.Depth-3].stn as where_definition_list, class_attribute.None, false, CurrentLocationSpan); if (/*nnrt.body!=null && nnrt.body.class_def_blocks!=null && nnrt.body.class_def_blocks.Count>0 &&*/ nnrt.body.class_def_blocks[0].access_mod==null) { nnrt.body.class_def_blocks[0].access_mod = new access_modifer_node(access_modifer.public_modifer); } CurrentSemanticValue.td = nnrt; } break; case 288: // class_attribute -> tkSealed { CurrentSemanticValue.ob = class_attribute.Sealed; } break; case 289: // class_attribute -> tkPartial { CurrentSemanticValue.ob = class_attribute.Partial; } break; case 290: // class_attribute -> tkAbstract { CurrentSemanticValue.ob = class_attribute.Abstract; } break; case 291: // class_attribute -> tkAuto { CurrentSemanticValue.ob = class_attribute.Auto; } break; case 292: // class_attribute -> tkStatic { CurrentSemanticValue.ob = class_attribute.Static; } break; case 293: // class_attributes -> /* empty */ { CurrentSemanticValue.ob = class_attribute.None; } break; case 294: // class_attributes -> class_attributes1 { CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-1].ob; } break; case 295: // class_attributes1 -> class_attribute { CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-1].ob; } break; case 296: // class_attributes1 -> class_attributes1, class_attribute { if (((class_attribute)ValueStack[ValueStack.Depth-2].ob & (class_attribute)ValueStack[ValueStack.Depth-1].ob) == (class_attribute)ValueStack[ValueStack.Depth-1].ob) parsertools.AddErrorFromResource("ATTRIBUTE_REDECLARED",LocationStack[LocationStack.Depth-1]); CurrentSemanticValue.ob = ((class_attribute)ValueStack[ValueStack.Depth-2].ob) | ((class_attribute)ValueStack[ValueStack.Depth-1].ob); //$$ = $1; } break; case 297: // class_or_interface_keyword -> tkClass { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 298: // class_or_interface_keyword -> tkInterface { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 299: // class_or_interface_keyword -> tkTemplate { CurrentSemanticValue.ti = NewClassOrInterfaceKeyword(ValueStack[ValueStack.Depth-1].ti); } break; case 300: // class_or_interface_keyword -> tkTemplate, tkClass { CurrentSemanticValue.ti = NewClassOrInterfaceKeyword(ValueStack[ValueStack.Depth-2].ti, "c", CurrentLocationSpan); } break; case 301: // class_or_interface_keyword -> tkTemplate, tkRecord { CurrentSemanticValue.ti = NewClassOrInterfaceKeyword(ValueStack[ValueStack.Depth-2].ti, "r", CurrentLocationSpan); } break; case 302: // class_or_interface_keyword -> tkTemplate, tkInterface { CurrentSemanticValue.ti = NewClassOrInterfaceKeyword(ValueStack[ValueStack.Depth-2].ti, "i", CurrentLocationSpan); } break; case 303: // optional_component_list_seq_end -> /* empty */ { CurrentSemanticValue.stn = null; } break; case 304: // optional_component_list_seq_end -> member_list_section, tkEnd { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; CurrentSemanticValue.stn.source_context = CurrentLocationSpan; } break; case 306: // optional_base_classes -> tkRoundOpen, base_classes_names_list, tkRoundClose { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; } break; case 307: // base_classes_names_list -> base_class_name { CurrentSemanticValue.stn = new named_type_reference_list(ValueStack[ValueStack.Depth-1].stn as named_type_reference, CurrentLocationSpan); } break; case 308: // base_classes_names_list -> base_classes_names_list, tkComma, base_class_name { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as named_type_reference_list).Add(ValueStack[ValueStack.Depth-1].stn as named_type_reference, CurrentLocationSpan); } break; case 309: // base_class_name -> simple_type_identifier { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].td; } break; case 310: // base_class_name -> template_type { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].td; } break; case 311: // template_arguments -> tkLower, ident_list, tkGreater { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; CurrentSemanticValue.stn.source_context = CurrentLocationSpan; } break; case 312: // optional_where_section -> /* empty */ { CurrentSemanticValue.stn = null; } break; case 313: // optional_where_section -> where_part_list { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 314: // where_part_list -> where_part { CurrentSemanticValue.stn = new where_definition_list(ValueStack[ValueStack.Depth-1].stn as where_definition, CurrentLocationSpan); } break; case 315: // where_part_list -> where_part_list, where_part { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-2].stn as where_definition_list).Add(ValueStack[ValueStack.Depth-1].stn as where_definition, CurrentLocationSpan); } break; case 316: // where_part -> tkWhere, ident_list, tkColon, type_ref_and_secific_list, // tkSemiColon { CurrentSemanticValue.stn = new where_definition(ValueStack[ValueStack.Depth-4].stn as ident_list, ValueStack[ValueStack.Depth-2].stn as where_type_specificator_list, CurrentLocationSpan); } break; case 317: // type_ref_and_secific_list -> type_ref_or_secific { CurrentSemanticValue.stn = new where_type_specificator_list(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 318: // type_ref_and_secific_list -> type_ref_and_secific_list, tkComma, // type_ref_or_secific { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as where_type_specificator_list).Add(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 319: // type_ref_or_secific -> type_ref { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 320: // type_ref_or_secific -> tkClass { CurrentSemanticValue.td = new declaration_specificator(DeclarationSpecificator.WhereDefClass, ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan); } break; case 321: // type_ref_or_secific -> tkRecord { CurrentSemanticValue.td = new declaration_specificator(DeclarationSpecificator.WhereDefValueType, ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan); } break; case 322: // type_ref_or_secific -> tkConstructor { CurrentSemanticValue.td = new declaration_specificator(DeclarationSpecificator.WhereDefConstructor, ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan); } break; case 323: // member_list_section -> member_list { CurrentSemanticValue.stn = new class_body_list(ValueStack[ValueStack.Depth-1].stn as class_members, CurrentLocationSpan); } break; case 324: // member_list_section -> member_list_section, ot_visibility_specifier, // member_list { (ValueStack[ValueStack.Depth-1].stn as class_members).access_mod = ValueStack[ValueStack.Depth-2].stn as access_modifer_node; (ValueStack[ValueStack.Depth-3].stn as class_body_list).Add(ValueStack[ValueStack.Depth-1].stn as class_members,CurrentLocationSpan); if ((ValueStack[ValueStack.Depth-3].stn as class_body_list).class_def_blocks[0].Count == 0) (ValueStack[ValueStack.Depth-3].stn as class_body_list).class_def_blocks.RemoveAt(0); CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-3].stn; } break; case 325: // ot_visibility_specifier -> tkInternal { CurrentSemanticValue.stn = new access_modifer_node(access_modifer.internal_modifer, CurrentLocationSpan); } break; case 326: // ot_visibility_specifier -> tkPublic { CurrentSemanticValue.stn = new access_modifer_node(access_modifer.public_modifer, CurrentLocationSpan); } break; case 327: // ot_visibility_specifier -> tkProtected { CurrentSemanticValue.stn = new access_modifer_node(access_modifer.protected_modifer, CurrentLocationSpan); } break; case 328: // ot_visibility_specifier -> tkPrivate { CurrentSemanticValue.stn = new access_modifer_node(access_modifer.private_modifer, CurrentLocationSpan); } break; case 329: // member_list -> /* empty */ { CurrentSemanticValue.stn = new class_members(); } break; case 330: // member_list -> field_or_const_definition_list, optional_semicolon { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; } break; case 331: // member_list -> method_decl_list { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 332: // member_list -> field_or_const_definition_list, tkSemiColon, method_decl_list { (ValueStack[ValueStack.Depth-3].stn as class_members).members.AddRange((ValueStack[ValueStack.Depth-1].stn as class_members).members); (ValueStack[ValueStack.Depth-3].stn as class_members).source_context = CurrentLocationSpan; CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-3].stn; } break; case 333: // ident_list -> identifier { CurrentSemanticValue.stn = new ident_list(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); } break; case 334: // ident_list -> ident_list, tkComma, identifier { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as ident_list).Add(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); } break; case 335: // optional_semicolon -> /* empty */ { CurrentSemanticValue.ob = null; } break; case 336: // optional_semicolon -> tkSemiColon { CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-1].ti; } break; case 337: // field_or_const_definition_list -> field_or_const_definition { CurrentSemanticValue.stn = new class_members(ValueStack[ValueStack.Depth-1].stn as declaration, CurrentLocationSpan); } break; case 338: // field_or_const_definition_list -> field_or_const_definition_list, tkSemiColon, // field_or_const_definition { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as class_members).Add(ValueStack[ValueStack.Depth-1].stn as declaration, CurrentLocationSpan); } break; case 339: // field_or_const_definition -> attribute_declarations, // simple_field_or_const_definition { (ValueStack[ValueStack.Depth-1].stn as declaration).attributes = ValueStack[ValueStack.Depth-2].stn as attribute_list; CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 340: // method_decl_list -> method_or_property_decl { CurrentSemanticValue.stn = new class_members(ValueStack[ValueStack.Depth-1].stn as declaration, CurrentLocationSpan); } break; case 341: // method_decl_list -> method_decl_list, method_or_property_decl { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-2].stn as class_members).Add(ValueStack[ValueStack.Depth-1].stn as declaration, CurrentLocationSpan); } break; case 342: // method_or_property_decl -> method_decl_withattr { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 343: // method_or_property_decl -> property_definition { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 344: // simple_field_or_const_definition -> tkConst, only_const_decl { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; CurrentSemanticValue.stn.source_context = CurrentLocationSpan; } break; case 345: // simple_field_or_const_definition -> field_definition { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 346: // simple_field_or_const_definition -> class_or_static, field_definition { (ValueStack[ValueStack.Depth-1].stn as var_def_statement).var_attr = definition_attribute.Static; (ValueStack[ValueStack.Depth-1].stn as var_def_statement).source_context = CurrentLocationSpan; CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 347: // class_or_static -> tkStatic { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 348: // class_or_static -> tkClass { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 349: // field_definition -> var_decl_part { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 350: // field_definition -> tkEvent, ident_list, tkColon, type_ref { CurrentSemanticValue.stn = new var_def_statement(ValueStack[ValueStack.Depth-3].stn as ident_list, ValueStack[ValueStack.Depth-1].td, null, definition_attribute.None, true, CurrentLocationSpan); } break; case 351: // method_decl_withattr -> attribute_declarations, method_header { (ValueStack[ValueStack.Depth-1].td as declaration).attributes = ValueStack[ValueStack.Depth-2].stn as attribute_list; CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].td; } break; case 352: // method_decl_withattr -> attribute_declarations, method_decl { (ValueStack[ValueStack.Depth-1].stn as declaration).attributes = ValueStack[ValueStack.Depth-2].stn as attribute_list; if (ValueStack[ValueStack.Depth-1].stn is procedure_definition && (ValueStack[ValueStack.Depth-1].stn as procedure_definition).proc_header != null) (ValueStack[ValueStack.Depth-1].stn as procedure_definition).proc_header.attributes = ValueStack[ValueStack.Depth-2].stn as attribute_list; CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 353: // method_decl -> inclass_proc_func_decl { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 354: // method_decl -> inclass_constr_destr_decl { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 355: // method_header -> class_or_static, method_procfunc_header { (ValueStack[ValueStack.Depth-1].td as procedure_header).class_keyword = true; CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 356: // method_header -> method_procfunc_header { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 357: // method_header -> constr_destr_header { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 358: // method_procfunc_header -> proc_func_header { CurrentSemanticValue.td = NewProcfuncHeading(ValueStack[ValueStack.Depth-1].td as procedure_header); } break; case 359: // proc_func_header -> proc_header { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 360: // proc_func_header -> func_header { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 361: // constr_destr_header -> tkConstructor, optional_proc_name, fp_list, // optional_method_modificators { CurrentSemanticValue.td = new constructor(null,ValueStack[ValueStack.Depth-2].stn as formal_parameters,ValueStack[ValueStack.Depth-1].stn as procedure_attributes_list,ValueStack[ValueStack.Depth-3].stn as method_name,false,false,null,null,CurrentLocationSpan); } break; case 362: // constr_destr_header -> class_or_static, tkConstructor, optional_proc_name, // fp_list, optional_method_modificators { CurrentSemanticValue.td = new constructor(null,ValueStack[ValueStack.Depth-2].stn as formal_parameters,ValueStack[ValueStack.Depth-1].stn as procedure_attributes_list,ValueStack[ValueStack.Depth-3].stn as method_name,false,true,null,null,CurrentLocationSpan); } break; case 363: // constr_destr_header -> tkDestructor, optional_proc_name, fp_list, // optional_method_modificators { CurrentSemanticValue.td = new destructor(null,ValueStack[ValueStack.Depth-2].stn as formal_parameters,ValueStack[ValueStack.Depth-1].stn as procedure_attributes_list,ValueStack[ValueStack.Depth-3].stn as method_name, false,false,null,null,CurrentLocationSpan); } break; case 364: // optional_proc_name -> proc_name { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 365: // optional_proc_name -> /* empty */ { CurrentSemanticValue.stn = null; } break; case 366: // qualified_identifier -> identifier { CurrentSemanticValue.stn = new method_name(null,null,ValueStack[ValueStack.Depth-1].id,null,CurrentLocationSpan); } break; case 367: // qualified_identifier -> visibility_specifier { CurrentSemanticValue.stn = new method_name(null,null,ValueStack[ValueStack.Depth-1].id,null,CurrentLocationSpan); } break; case 368: // qualified_identifier -> qualified_identifier, tkPoint, identifier { CurrentSemanticValue.stn = NewQualifiedIdentifier(ValueStack[ValueStack.Depth-3].stn as method_name, ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); } break; case 369: // qualified_identifier -> qualified_identifier, tkPoint, visibility_specifier { CurrentSemanticValue.stn = NewQualifiedIdentifier(ValueStack[ValueStack.Depth-3].stn as method_name, ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); } break; case 370: // property_definition -> attribute_declarations, simple_property_definition { CurrentSemanticValue.stn = NewPropertyDefinition(ValueStack[ValueStack.Depth-2].stn as attribute_list, ValueStack[ValueStack.Depth-1].stn as declaration, LocationStack[LocationStack.Depth-1]); } break; case 371: // simple_property_definition -> tkProperty, qualified_identifier, // property_interface, property_specifiers, // tkSemiColon, array_defaultproperty { CurrentSemanticValue.stn = NewSimplePropertyDefinition(ValueStack[ValueStack.Depth-5].stn as method_name, ValueStack[ValueStack.Depth-4].stn as property_interface, ValueStack[ValueStack.Depth-3].stn as property_accessors, proc_attribute.attr_none, ValueStack[ValueStack.Depth-1].stn as property_array_default, CurrentLocationSpan); } break; case 372: // simple_property_definition -> tkProperty, qualified_identifier, // property_interface, property_specifiers, // tkSemiColon, property_modificator, tkSemiColon, // array_defaultproperty { proc_attribute pa = proc_attribute.attr_none; if (ValueStack[ValueStack.Depth-3].id.name.ToLower() == "virtual") pa = proc_attribute.attr_virtual; else if (ValueStack[ValueStack.Depth-3].id.name.ToLower() == "override") pa = proc_attribute.attr_override; else if (ValueStack[ValueStack.Depth-3].id.name.ToLower() == "abstract") pa = proc_attribute.attr_abstract; CurrentSemanticValue.stn = NewSimplePropertyDefinition(ValueStack[ValueStack.Depth-7].stn as method_name, ValueStack[ValueStack.Depth-6].stn as property_interface, ValueStack[ValueStack.Depth-5].stn as property_accessors, pa, ValueStack[ValueStack.Depth-1].stn as property_array_default, CurrentLocationSpan); } break; case 373: // simple_property_definition -> class_or_static, tkProperty, qualified_identifier, // property_interface, property_specifiers, // tkSemiColon, array_defaultproperty { CurrentSemanticValue.stn = NewSimplePropertyDefinition(ValueStack[ValueStack.Depth-5].stn as method_name, ValueStack[ValueStack.Depth-4].stn as property_interface, ValueStack[ValueStack.Depth-3].stn as property_accessors, proc_attribute.attr_none, ValueStack[ValueStack.Depth-1].stn as property_array_default, CurrentLocationSpan); (CurrentSemanticValue.stn as simple_property).attr = definition_attribute.Static; } break; case 374: // simple_property_definition -> class_or_static, tkProperty, qualified_identifier, // property_interface, property_specifiers, // tkSemiColon, property_modificator, tkSemiColon, // array_defaultproperty { parsertools.AddErrorFromResource("STATIC_PROPERTIES_CANNOT_HAVE_ATTRBUTE_{0}",LocationStack[LocationStack.Depth-3],ValueStack[ValueStack.Depth-3].id.name); } break; case 375: // simple_property_definition -> tkAuto, tkProperty, qualified_identifier, // property_interface, // optional_property_initialization, tkSemiColon { CurrentSemanticValue.stn = NewSimplePropertyDefinition(ValueStack[ValueStack.Depth-4].stn as method_name, ValueStack[ValueStack.Depth-3].stn as property_interface, null, proc_attribute.attr_none, null, CurrentLocationSpan); (CurrentSemanticValue.stn as simple_property).is_auto = true; (CurrentSemanticValue.stn as simple_property).initial_value = ValueStack[ValueStack.Depth-2].ex; } break; case 376: // simple_property_definition -> class_or_static, tkAuto, tkProperty, // qualified_identifier, property_interface, // optional_property_initialization, tkSemiColon { CurrentSemanticValue.stn = NewSimplePropertyDefinition(ValueStack[ValueStack.Depth-4].stn as method_name, ValueStack[ValueStack.Depth-3].stn as property_interface, null, proc_attribute.attr_none, null, CurrentLocationSpan); (CurrentSemanticValue.stn as simple_property).is_auto = true; (CurrentSemanticValue.stn as simple_property).attr = definition_attribute.Static; (CurrentSemanticValue.stn as simple_property).initial_value = ValueStack[ValueStack.Depth-2].ex; } break; case 377: // optional_property_initialization -> tkAssign, expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 378: // optional_property_initialization -> /* empty */ { CurrentSemanticValue.ex = null; } break; case 379: // array_defaultproperty -> /* empty */ { CurrentSemanticValue.stn = null; } break; case 380: // array_defaultproperty -> tkDefault, tkSemiColon { CurrentSemanticValue.stn = new property_array_default(); CurrentSemanticValue.stn.source_context = CurrentLocationSpan; } break; case 381: // property_interface -> property_parameter_list, tkColon, fptype { CurrentSemanticValue.stn = new property_interface(ValueStack[ValueStack.Depth-3].stn as property_parameter_list, ValueStack[ValueStack.Depth-1].td, null, CurrentLocationSpan); } break; case 382: // property_parameter_list -> /* empty */ { CurrentSemanticValue.stn = null; } break; case 383: // property_parameter_list -> tkSquareOpen, parameter_decl_list, tkSquareClose { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; } break; case 384: // parameter_decl_list -> parameter_decl { CurrentSemanticValue.stn = new property_parameter_list(ValueStack[ValueStack.Depth-1].stn as property_parameter, CurrentLocationSpan); } break; case 385: // parameter_decl_list -> parameter_decl_list, tkSemiColon, parameter_decl { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as property_parameter_list).Add(ValueStack[ValueStack.Depth-1].stn as property_parameter, CurrentLocationSpan); } break; case 386: // parameter_decl -> ident_list, tkColon, fptype { CurrentSemanticValue.stn = new property_parameter(ValueStack[ValueStack.Depth-3].stn as ident_list, ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 387: // optional_read_expr -> expr_with_func_decl_lambda { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 388: // optional_read_expr -> /* empty */ { CurrentSemanticValue.ex = null; } break; case 390: // property_specifiers -> tkRead, optional_read_expr, write_property_specifiers { if (ValueStack[ValueStack.Depth-2].ex == null || ValueStack[ValueStack.Depth-2].ex is ident) // ����������� �������� { CurrentSemanticValue.stn = NewPropertySpecifiersRead(ValueStack[ValueStack.Depth-3].id, ValueStack[ValueStack.Depth-2].ex as ident, null, null, ValueStack[ValueStack.Depth-1].stn as property_accessors, CurrentLocationSpan); } else // ����������� �������� { var id = NewId("#GetGen", LocationStack[LocationStack.Depth-2]); procedure_definition pr = null; if (!parsertools.build_tree_for_formatter) pr = CreateAndAddToClassReadFunc(ValueStack[ValueStack.Depth-2].ex, id, LocationStack[LocationStack.Depth-2]); CurrentSemanticValue.stn = NewPropertySpecifiersRead(ValueStack[ValueStack.Depth-3].id, id, pr, ValueStack[ValueStack.Depth-2].ex, ValueStack[ValueStack.Depth-1].stn as property_accessors, CurrentLocationSpan); // $2 ��������� ��� �������������� } } break; case 391: // property_specifiers -> tkWrite, unlabelled_stmt, read_property_specifiers { if (ValueStack[ValueStack.Depth-2].stn is empty_statement) { CurrentSemanticValue.stn = NewPropertySpecifiersWrite(ValueStack[ValueStack.Depth-3].id, null, null, null, ValueStack[ValueStack.Depth-1].stn as property_accessors, CurrentLocationSpan); } else if (ValueStack[ValueStack.Depth-2].stn is procedure_call && (ValueStack[ValueStack.Depth-2].stn as procedure_call).is_ident) // ����������� �������� { CurrentSemanticValue.stn = NewPropertySpecifiersWrite(ValueStack[ValueStack.Depth-3].id, (ValueStack[ValueStack.Depth-2].stn as procedure_call).func_name as ident, null, null, ValueStack[ValueStack.Depth-1].stn as property_accessors, CurrentLocationSpan); // ������ �������� - � ��������������� } else // ����������� �������� { var id = NewId("#SetGen", LocationStack[LocationStack.Depth-2]); procedure_definition pr = null; if (!parsertools.build_tree_for_formatter) pr = CreateAndAddToClassWriteProc(ValueStack[ValueStack.Depth-2].stn as statement,id,LocationStack[LocationStack.Depth-2]); if (parsertools.build_tree_for_formatter) CurrentSemanticValue.stn = NewPropertySpecifiersWrite(ValueStack[ValueStack.Depth-3].id, id, pr, ValueStack[ValueStack.Depth-2].stn as statement, ValueStack[ValueStack.Depth-1].stn as property_accessors, CurrentLocationSpan); // $2 ��������� ��� �������������� else CurrentSemanticValue.stn = NewPropertySpecifiersWrite(ValueStack[ValueStack.Depth-3].id, id, pr, null, ValueStack[ValueStack.Depth-1].stn as property_accessors, CurrentLocationSpan); } } break; case 393: // write_property_specifiers -> tkWrite, unlabelled_stmt { if (ValueStack[ValueStack.Depth-1].stn is empty_statement) { CurrentSemanticValue.stn = NewPropertySpecifiersWrite(ValueStack[ValueStack.Depth-2].id, null, null, null, null, CurrentLocationSpan); } else if (ValueStack[ValueStack.Depth-1].stn is procedure_call && (ValueStack[ValueStack.Depth-1].stn as procedure_call).is_ident) { CurrentSemanticValue.stn = NewPropertySpecifiersWrite(ValueStack[ValueStack.Depth-2].id, (ValueStack[ValueStack.Depth-1].stn as procedure_call).func_name as ident, null, null, null, CurrentLocationSpan); // ������ �������� - � ��������������� } else { var id = NewId("#SetGen", LocationStack[LocationStack.Depth-1]); procedure_definition pr = null; if (!parsertools.build_tree_for_formatter) pr = CreateAndAddToClassWriteProc(ValueStack[ValueStack.Depth-1].stn as statement,id,LocationStack[LocationStack.Depth-1]); if (parsertools.build_tree_for_formatter) CurrentSemanticValue.stn = NewPropertySpecifiersWrite(ValueStack[ValueStack.Depth-2].id, id, pr, ValueStack[ValueStack.Depth-1].stn as statement, null, CurrentLocationSpan); else CurrentSemanticValue.stn = NewPropertySpecifiersWrite(ValueStack[ValueStack.Depth-2].id, id, pr, null, null, CurrentLocationSpan); } } break; case 395: // read_property_specifiers -> tkRead, optional_read_expr { if (ValueStack[ValueStack.Depth-1].ex == null || ValueStack[ValueStack.Depth-1].ex is ident) { CurrentSemanticValue.stn = NewPropertySpecifiersRead(ValueStack[ValueStack.Depth-2].id, ValueStack[ValueStack.Depth-1].ex as ident, null, null, null, CurrentLocationSpan); } else { var id = NewId("#GetGen", LocationStack[LocationStack.Depth-1]); procedure_definition pr = null; if (!parsertools.build_tree_for_formatter) pr = CreateAndAddToClassReadFunc(ValueStack[ValueStack.Depth-1].ex,id,LocationStack[LocationStack.Depth-1]); CurrentSemanticValue.stn = NewPropertySpecifiersRead(ValueStack[ValueStack.Depth-2].id, id, pr, ValueStack[ValueStack.Depth-1].ex, null, CurrentLocationSpan); } } break; case 396: // var_decl -> var_decl_part, tkSemiColon { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; } break; case 399: // var_decl_part -> ident_list, tkColon, type_ref { CurrentSemanticValue.stn = new var_def_statement(ValueStack[ValueStack.Depth-3].stn as ident_list, ValueStack[ValueStack.Depth-1].td, null, definition_attribute.None, false, CurrentLocationSpan); } break; case 400: // var_decl_part -> ident_list, tkAssign, expr { CurrentSemanticValue.stn = new var_def_statement(ValueStack[ValueStack.Depth-3].stn as ident_list, null, ValueStack[ValueStack.Depth-1].ex, definition_attribute.None, false, CurrentLocationSpan); } break; case 401: // var_decl_part -> ident_list, tkColon, type_ref, tkAssignOrEqual, // typed_var_init_expression { CurrentSemanticValue.stn = new var_def_statement(ValueStack[ValueStack.Depth-5].stn as ident_list, ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].ex, definition_attribute.None, false, CurrentLocationSpan); } break; case 402: // typed_var_init_expression -> typed_const_plus { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 403: // typed_var_init_expression -> expl_func_decl_lambda { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 404: // typed_var_init_expression -> identifier, tkArrow, lambda_function_body { var idList = new ident_list(ValueStack[ValueStack.Depth-3].id, LocationStack[LocationStack.Depth-3]); var formalPars = new formal_parameters(new typed_parameters(idList, new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), LocationStack[LocationStack.Depth-3]), parametr_kind.none, null, LocationStack[LocationStack.Depth-3]), LocationStack[LocationStack.Depth-3]); CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), LocationStack[LocationStack.Depth-3]), ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan); } break; case 405: // typed_var_init_expression -> tkRoundOpen, tkRoundClose, lambda_type_ref, // tkArrow, lambda_function_body { CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), null, ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan); } break; case 406: // typed_var_init_expression -> tkRoundOpen, typed_const_list, tkRoundClose, // tkArrow, lambda_function_body { var el = ValueStack[ValueStack.Depth-4].stn as expression_list; var cnt = el.Count; var idList = new ident_list(); idList.source_context = LocationStack[LocationStack.Depth-4]; for (int j = 0; j < cnt; j++) { if (!(el.expressions[j] is ident)) parsertools.AddErrorFromResource("ONE_TKIDENTIFIER",el.expressions[j].source_context); idList.idents.Add(el.expressions[j] as ident); } var any = new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), LocationStack[LocationStack.Depth-4]); var formalPars = new formal_parameters(new typed_parameters(idList, any, parametr_kind.none, null, LocationStack[LocationStack.Depth-4]), LocationStack[LocationStack.Depth-4]); CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, any, ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan); } break; case 407: // typed_const_plus -> typed_const { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 408: // typed_const_plus -> default_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 409: // constr_destr_decl -> constr_destr_header, block { CurrentSemanticValue.stn = new procedure_definition(ValueStack[ValueStack.Depth-2].td as procedure_header, ValueStack[ValueStack.Depth-1].stn as block, CurrentLocationSpan); } break; case 410: // constr_destr_decl -> tkConstructor, optional_proc_name, fp_list, tkAssign, // unlabelled_stmt, tkSemiColon { if (ValueStack[ValueStack.Depth-2].stn is empty_statement) parsertools.AddErrorFromResource("EMPTY_STATEMENT_IN_SHORT_PROC_DEFINITION",LocationStack[LocationStack.Depth-1]); var tmp = new constructor(null,ValueStack[ValueStack.Depth-4].stn as formal_parameters,new procedure_attributes_list(new List(),CurrentLocationSpan),ValueStack[ValueStack.Depth-5].stn as method_name,false,false,null,null,LexLocation.MergeAll(LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5],LocationStack[LocationStack.Depth-4])); CurrentSemanticValue.stn = new procedure_definition(tmp as procedure_header, new block(null,new statement_list(ValueStack[ValueStack.Depth-2].stn as statement,LocationStack[LocationStack.Depth-2]),LocationStack[LocationStack.Depth-2]), LocationStack[LocationStack.Depth-6].Merge(LocationStack[LocationStack.Depth-2])); if (parsertools.build_tree_for_formatter) CurrentSemanticValue.stn = new short_func_definition(CurrentSemanticValue.stn as procedure_definition); } break; case 411: // constr_destr_decl -> class_or_static, tkConstructor, optional_proc_name, // fp_list, tkAssign, unlabelled_stmt, tkSemiColon { if (ValueStack[ValueStack.Depth-2].stn is empty_statement) parsertools.AddErrorFromResource("EMPTY_STATEMENT_IN_SHORT_PROC_DEFINITION",LocationStack[LocationStack.Depth-1]); var tmp = new constructor(null,ValueStack[ValueStack.Depth-4].stn as formal_parameters,new procedure_attributes_list(new List(),CurrentLocationSpan),ValueStack[ValueStack.Depth-5].stn as method_name,false,true,null,null,LexLocation.MergeAll(LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5],LocationStack[LocationStack.Depth-4])); CurrentSemanticValue.stn = new procedure_definition(tmp as procedure_header, new block(null,new statement_list(ValueStack[ValueStack.Depth-2].stn as statement,LocationStack[LocationStack.Depth-2]),LocationStack[LocationStack.Depth-2]), LocationStack[LocationStack.Depth-7].Merge(LocationStack[LocationStack.Depth-2])); if (parsertools.build_tree_for_formatter) CurrentSemanticValue.stn = new short_func_definition(CurrentSemanticValue.stn as procedure_definition); } break; case 412: // inclass_constr_destr_decl -> constr_destr_header, inclass_block { CurrentSemanticValue.stn = new procedure_definition(ValueStack[ValueStack.Depth-2].td as procedure_header, ValueStack[ValueStack.Depth-1].stn as block, CurrentLocationSpan); } break; case 413: // inclass_constr_destr_decl -> tkConstructor, optional_proc_name, fp_list, // tkAssign, unlabelled_stmt, tkSemiColon { if (ValueStack[ValueStack.Depth-2].stn is empty_statement) parsertools.AddErrorFromResource("EMPTY_STATEMENT_IN_SHORT_PROC_DEFINITION",LocationStack[LocationStack.Depth-1]); var tmp = new constructor(null,ValueStack[ValueStack.Depth-4].stn as formal_parameters,new procedure_attributes_list(new List(),CurrentLocationSpan),ValueStack[ValueStack.Depth-5].stn as method_name,false,false,null,null,LexLocation.MergeAll(LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5],LocationStack[LocationStack.Depth-4],LocationStack[LocationStack.Depth-3])); CurrentSemanticValue.stn = new procedure_definition(tmp as procedure_header, new block(null,new statement_list(ValueStack[ValueStack.Depth-2].stn as statement,LocationStack[LocationStack.Depth-2]),LocationStack[LocationStack.Depth-2]), CurrentLocationSpan); if (parsertools.build_tree_for_formatter) CurrentSemanticValue.stn = new short_func_definition(CurrentSemanticValue.stn as procedure_definition); } break; case 414: // inclass_constr_destr_decl -> class_or_static, tkConstructor, optional_proc_name, // fp_list, tkAssign, unlabelled_stmt, tkSemiColon { if (ValueStack[ValueStack.Depth-2].stn is empty_statement) parsertools.AddErrorFromResource("EMPTY_STATEMENT_IN_SHORT_PROC_DEFINITION",LocationStack[LocationStack.Depth-1]); var tmp = new constructor(null,ValueStack[ValueStack.Depth-4].stn as formal_parameters,new procedure_attributes_list(new List(),CurrentLocationSpan),ValueStack[ValueStack.Depth-5].stn as method_name,false,true,null,null,LexLocation.MergeAll(LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5],LocationStack[LocationStack.Depth-4])); CurrentSemanticValue.stn = new procedure_definition(tmp as procedure_header, new block(null,new statement_list(ValueStack[ValueStack.Depth-2].stn as statement,LocationStack[LocationStack.Depth-2]),LocationStack[LocationStack.Depth-2]), CurrentLocationSpan); if (parsertools.build_tree_for_formatter) CurrentSemanticValue.stn = new short_func_definition(CurrentSemanticValue.stn as procedure_definition); } break; case 415: // proc_func_decl -> proc_func_decl_noclass { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 416: // proc_func_decl -> class_or_static, proc_func_decl_noclass { (ValueStack[ValueStack.Depth-1].stn as procedure_definition).proc_header.class_keyword = true; CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 417: // proc_func_decl_noclass -> proc_func_header, proc_func_external_block { CurrentSemanticValue.stn = new procedure_definition(ValueStack[ValueStack.Depth-2].td as procedure_header, ValueStack[ValueStack.Depth-1].stn as proc_block, CurrentLocationSpan); } break; case 418: // proc_func_decl_noclass -> tkFunction, func_name, fp_list, tkColon, fptype, // optional_method_modificators1, tkAssign, expr_l1, // tkSemiColon { CurrentSemanticValue.stn = SyntaxTreeBuilder.BuildShortFuncDefinition(ValueStack[ValueStack.Depth-7].stn as formal_parameters, ValueStack[ValueStack.Depth-4].stn as procedure_attributes_list, ValueStack[ValueStack.Depth-8].stn as method_name, ValueStack[ValueStack.Depth-5].td as type_definition, ValueStack[ValueStack.Depth-2].ex, LocationStack[LocationStack.Depth-9].Merge(LocationStack[LocationStack.Depth-4])); } break; case 419: // proc_func_decl_noclass -> tkFunction, func_name, fp_list, // optional_method_modificators1, tkAssign, expr_l1, // tkSemiColon { if (ValueStack[ValueStack.Depth-2].ex is dot_question_node) parsertools.AddErrorFromResource("DOT_QUECTION_IN_SHORT_FUN",LocationStack[LocationStack.Depth-2]); CurrentSemanticValue.stn = SyntaxTreeBuilder.BuildShortFuncDefinition(ValueStack[ValueStack.Depth-5].stn as formal_parameters, ValueStack[ValueStack.Depth-4].stn as procedure_attributes_list, ValueStack[ValueStack.Depth-6].stn as method_name, null, ValueStack[ValueStack.Depth-2].ex, LocationStack[LocationStack.Depth-7].Merge(LocationStack[LocationStack.Depth-4])); } break; case 420: // proc_func_decl_noclass -> tkFunction, func_name, fp_list, tkColon, fptype, // optional_method_modificators1, tkAssign, // func_decl_lambda, tkSemiColon { CurrentSemanticValue.stn = SyntaxTreeBuilder.BuildShortFuncDefinition(ValueStack[ValueStack.Depth-7].stn as formal_parameters, ValueStack[ValueStack.Depth-4].stn as procedure_attributes_list, ValueStack[ValueStack.Depth-8].stn as method_name, ValueStack[ValueStack.Depth-5].td as type_definition, ValueStack[ValueStack.Depth-2].ex, LocationStack[LocationStack.Depth-9].Merge(LocationStack[LocationStack.Depth-4])); } break; case 421: // proc_func_decl_noclass -> tkFunction, func_name, fp_list, // optional_method_modificators1, tkAssign, // func_decl_lambda, tkSemiColon { CurrentSemanticValue.stn = SyntaxTreeBuilder.BuildShortFuncDefinition(ValueStack[ValueStack.Depth-5].stn as formal_parameters, ValueStack[ValueStack.Depth-4].stn as procedure_attributes_list, ValueStack[ValueStack.Depth-6].stn as method_name, null, ValueStack[ValueStack.Depth-2].ex, LocationStack[LocationStack.Depth-7].Merge(LocationStack[LocationStack.Depth-4])); } break; case 422: // proc_func_decl_noclass -> tkProcedure, proc_name, fp_list, // optional_method_modificators1, tkAssign, // unlabelled_stmt, tkSemiColon { if (ValueStack[ValueStack.Depth-2].stn is empty_statement) parsertools.AddErrorFromResource("EMPTY_STATEMENT_IN_SHORT_PROC_DEFINITION",LocationStack[LocationStack.Depth-2]); CurrentSemanticValue.stn = SyntaxTreeBuilder.BuildShortProcDefinition(ValueStack[ValueStack.Depth-5].stn as formal_parameters, ValueStack[ValueStack.Depth-4].stn as procedure_attributes_list, ValueStack[ValueStack.Depth-6].stn as method_name, ValueStack[ValueStack.Depth-2].stn as statement, LocationStack[LocationStack.Depth-7].Merge(LocationStack[LocationStack.Depth-4])); } break; case 423: // proc_func_decl_noclass -> proc_func_header, tkForward, tkSemiColon { CurrentSemanticValue.stn = new procedure_definition(ValueStack[ValueStack.Depth-3].td as procedure_header, null, CurrentLocationSpan); (CurrentSemanticValue.stn as procedure_definition).proc_header.proc_attributes.Add((procedure_attribute)ValueStack[ValueStack.Depth-2].id, ValueStack[ValueStack.Depth-2].id.source_context); } break; case 424: // inclass_proc_func_decl -> inclass_proc_func_decl_noclass { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 425: // inclass_proc_func_decl -> class_or_static, inclass_proc_func_decl_noclass { if ((ValueStack[ValueStack.Depth-1].stn as procedure_definition).proc_header != null) (ValueStack[ValueStack.Depth-1].stn as procedure_definition).proc_header.class_keyword = true; CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 426: // inclass_proc_func_decl_noclass -> proc_func_header, inclass_block { CurrentSemanticValue.stn = new procedure_definition(ValueStack[ValueStack.Depth-2].td as procedure_header, ValueStack[ValueStack.Depth-1].stn as proc_block, CurrentLocationSpan); } break; case 427: // inclass_proc_func_decl_noclass -> tkFunction, func_name, fp_list, tkColon, // fptype, optional_method_modificators1, // tkAssign, expr_l1_func_decl_lambda, // tkSemiColon { CurrentSemanticValue.stn = SyntaxTreeBuilder.BuildShortFuncDefinition(ValueStack[ValueStack.Depth-7].stn as formal_parameters, ValueStack[ValueStack.Depth-4].stn as procedure_attributes_list, ValueStack[ValueStack.Depth-8].stn as method_name, ValueStack[ValueStack.Depth-5].td as type_definition, ValueStack[ValueStack.Depth-2].ex, LocationStack[LocationStack.Depth-9].Merge(LocationStack[LocationStack.Depth-4])); if (parsertools.build_tree_for_formatter) CurrentSemanticValue.stn = new short_func_definition(CurrentSemanticValue.stn as procedure_definition); } break; case 428: // inclass_proc_func_decl_noclass -> tkFunction, func_name, fp_list, // optional_method_modificators1, tkAssign, // expr_l1_func_decl_lambda, tkSemiColon { CurrentSemanticValue.stn = SyntaxTreeBuilder.BuildShortFuncDefinition(ValueStack[ValueStack.Depth-5].stn as formal_parameters, ValueStack[ValueStack.Depth-4].stn as procedure_attributes_list, ValueStack[ValueStack.Depth-6].stn as method_name, null, ValueStack[ValueStack.Depth-2].ex, LocationStack[LocationStack.Depth-7].Merge(LocationStack[LocationStack.Depth-4])); if (parsertools.build_tree_for_formatter) CurrentSemanticValue.stn = new short_func_definition(CurrentSemanticValue.stn as procedure_definition); } break; case 429: // inclass_proc_func_decl_noclass -> tkProcedure, proc_name, fp_list, // optional_method_modificators1, tkAssign, // unlabelled_stmt, tkSemiColon { CurrentSemanticValue.stn = SyntaxTreeBuilder.BuildShortProcDefinition(ValueStack[ValueStack.Depth-5].stn as formal_parameters, ValueStack[ValueStack.Depth-4].stn as procedure_attributes_list, ValueStack[ValueStack.Depth-6].stn as method_name, ValueStack[ValueStack.Depth-2].stn as statement, LocationStack[LocationStack.Depth-7].Merge(LocationStack[LocationStack.Depth-4])); if (parsertools.build_tree_for_formatter) CurrentSemanticValue.stn = new short_func_definition(CurrentSemanticValue.stn as procedure_definition); } break; case 430: // proc_func_external_block -> block { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 431: // proc_func_external_block -> external_block { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 432: // proc_name -> func_name { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 433: // func_name -> func_meth_name_ident { CurrentSemanticValue.stn = new method_name(null,null, ValueStack[ValueStack.Depth-1].id, null, CurrentLocationSpan); } break; case 434: // func_name -> func_class_name_ident_list, tkPoint, func_meth_name_ident { var ln = ValueStack[ValueStack.Depth-3].ob as List; var cnt = ln.Count; if (cnt == 1) CurrentSemanticValue.stn = new method_name(null, ln[cnt-1], ValueStack[ValueStack.Depth-1].id, null, CurrentLocationSpan); else CurrentSemanticValue.stn = new method_name(ln, ln[cnt-1], ValueStack[ValueStack.Depth-1].id, null, CurrentLocationSpan); } break; case 435: // func_class_name_ident -> func_name_with_template_args { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 436: // func_class_name_ident_list -> func_class_name_ident { CurrentSemanticValue.ob = new List(); (CurrentSemanticValue.ob as List).Add(ValueStack[ValueStack.Depth-1].id); } break; case 437: // func_class_name_ident_list -> func_class_name_ident_list, tkPoint, // func_class_name_ident { (ValueStack[ValueStack.Depth-3].ob as List).Add(ValueStack[ValueStack.Depth-1].id); CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-3].ob; } break; case 438: // func_meth_name_ident -> func_name_with_template_args { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 439: // func_meth_name_ident -> operator_name_ident { CurrentSemanticValue.id = (ident)ValueStack[ValueStack.Depth-1].ex; } break; case 440: // func_meth_name_ident -> operator_name_ident, template_arguments { CurrentSemanticValue.id = new template_operator_name(null, ValueStack[ValueStack.Depth-1].stn as ident_list, ValueStack[ValueStack.Depth-2].ex as operator_name_ident, CurrentLocationSpan); } break; case 441: // func_name_with_template_args -> func_name_ident { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 442: // func_name_with_template_args -> func_name_ident, template_arguments { CurrentSemanticValue.id = new template_type_name(ValueStack[ValueStack.Depth-2].id.name, ValueStack[ValueStack.Depth-1].stn as ident_list, CurrentLocationSpan); } break; case 443: // func_name_ident -> identifier { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 444: // proc_header -> tkProcedure, proc_name, fp_list, optional_method_modificators, // optional_where_section { CurrentSemanticValue.td = new procedure_header(ValueStack[ValueStack.Depth-3].stn as formal_parameters, ValueStack[ValueStack.Depth-2].stn as procedure_attributes_list, ValueStack[ValueStack.Depth-4].stn as method_name, ValueStack[ValueStack.Depth-1].stn as where_definition_list, CurrentLocationSpan); } break; case 445: // func_header -> tkFunction, func_name, fp_list, optional_method_modificators, // optional_where_section { CurrentSemanticValue.td = new function_header(ValueStack[ValueStack.Depth-3].stn as formal_parameters, ValueStack[ValueStack.Depth-2].stn as procedure_attributes_list, ValueStack[ValueStack.Depth-4].stn as method_name, ValueStack[ValueStack.Depth-1].stn as where_definition_list, null, CurrentLocationSpan); } break; case 446: // func_header -> tkFunction, func_name, fp_list, tkColon, fptype, // optional_method_modificators, optional_where_section { CurrentSemanticValue.td = new function_header(ValueStack[ValueStack.Depth-5].stn as formal_parameters, ValueStack[ValueStack.Depth-2].stn as procedure_attributes_list, ValueStack[ValueStack.Depth-6].stn as method_name, ValueStack[ValueStack.Depth-1].stn as where_definition_list, ValueStack[ValueStack.Depth-3].td as type_definition, CurrentLocationSpan); } break; case 447: // external_block -> tkExternal, external_directive_ident, tkName, // external_directive_ident, tkSemiColon { CurrentSemanticValue.stn = new external_directive(ValueStack[ValueStack.Depth-4].ex, ValueStack[ValueStack.Depth-2].ex, CurrentLocationSpan); } break; case 448: // external_block -> tkExternal, external_directive_ident, tkSemiColon { CurrentSemanticValue.stn = new external_directive(ValueStack[ValueStack.Depth-2].ex, null, CurrentLocationSpan); } break; case 449: // external_block -> tkExternal, tkSemiColon { CurrentSemanticValue.stn = new external_directive(null, null, CurrentLocationSpan); } break; case 450: // external_directive_ident -> identifier { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].id; } break; case 451: // external_directive_ident -> literal { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 452: // block -> decl_sect_list, compound_stmt, tkSemiColon { CurrentSemanticValue.stn = new block(ValueStack[ValueStack.Depth-3].stn as declarations, ValueStack[ValueStack.Depth-2].stn as statement_list, CurrentLocationSpan); } break; case 453: // inclass_block -> inclass_decl_sect_list, compound_stmt, tkSemiColon { CurrentSemanticValue.stn = new block(ValueStack[ValueStack.Depth-3].stn as declarations, ValueStack[ValueStack.Depth-2].stn as statement_list, CurrentLocationSpan); } break; case 454: // inclass_block -> external_block { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 455: // fp_list -> /* empty */ { CurrentSemanticValue.stn = null; } break; case 456: // fp_list -> tkRoundOpen, tkRoundClose { CurrentSemanticValue.stn = null; } break; case 457: // fp_list -> tkRoundOpen, fp_sect_list, tkRoundClose { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; if (CurrentSemanticValue.stn != null) CurrentSemanticValue.stn.source_context = CurrentLocationSpan; } break; case 458: // fp_sect_list -> fp_sect { CurrentSemanticValue.stn = new formal_parameters(ValueStack[ValueStack.Depth-1].stn as typed_parameters, CurrentLocationSpan); } break; case 459: // fp_sect_list -> fp_sect_list, tkSemiColon, fp_sect { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as formal_parameters).Add(ValueStack[ValueStack.Depth-1].stn as typed_parameters, CurrentLocationSpan); } break; case 460: // fp_sect -> attribute_declarations, simple_fp_sect { (ValueStack[ValueStack.Depth-1].stn as declaration).attributes = ValueStack[ValueStack.Depth-2].stn as attribute_list; CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 461: // simple_fp_sect -> param_name_list, tkColon, fptype { CurrentSemanticValue.stn = new typed_parameters(ValueStack[ValueStack.Depth-3].stn as ident_list, ValueStack[ValueStack.Depth-1].td, parametr_kind.none, null, CurrentLocationSpan); } break; case 462: // simple_fp_sect -> tkVar, param_name_list, tkColon, fptype { CurrentSemanticValue.stn = new typed_parameters(ValueStack[ValueStack.Depth-3].stn as ident_list, ValueStack[ValueStack.Depth-1].td, parametr_kind.var_parametr, null, CurrentLocationSpan); } break; case 463: // simple_fp_sect -> tkConst, param_name_list, tkColon, fptype { CurrentSemanticValue.stn = new typed_parameters(ValueStack[ValueStack.Depth-3].stn as ident_list, ValueStack[ValueStack.Depth-1].td, parametr_kind.const_parametr, null, CurrentLocationSpan); } break; case 464: // simple_fp_sect -> tkParams, param_name_list, tkColon, fptype { CurrentSemanticValue.stn = new typed_parameters(ValueStack[ValueStack.Depth-3].stn as ident_list, ValueStack[ValueStack.Depth-1].td,parametr_kind.params_parametr,null, CurrentLocationSpan); } break; case 465: // simple_fp_sect -> param_name_list, tkColon, fptype, tkAssign, expr { CurrentSemanticValue.stn = new typed_parameters(ValueStack[ValueStack.Depth-5].stn as ident_list, ValueStack[ValueStack.Depth-3].td, parametr_kind.none, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 466: // simple_fp_sect -> tkVar, param_name_list, tkColon, fptype, tkAssign, expr { CurrentSemanticValue.stn = new typed_parameters(ValueStack[ValueStack.Depth-5].stn as ident_list, ValueStack[ValueStack.Depth-3].td, parametr_kind.var_parametr, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 467: // simple_fp_sect -> tkConst, param_name_list, tkColon, fptype, tkAssign, expr { CurrentSemanticValue.stn = new typed_parameters(ValueStack[ValueStack.Depth-5].stn as ident_list, ValueStack[ValueStack.Depth-3].td, parametr_kind.const_parametr, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 468: // param_name_list -> param_name { CurrentSemanticValue.stn = new ident_list(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); } break; case 469: // param_name_list -> param_name_list, tkComma, param_name { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as ident_list).Add(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); } break; case 470: // param_name -> identifier { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 471: // fptype -> type_ref { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 472: // fptype_noproctype -> simple_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 473: // fptype_noproctype -> string_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 474: // fptype_noproctype -> pointer_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 475: // fptype_noproctype -> structured_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 476: // fptype_noproctype -> template_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 477: // stmt -> unlabelled_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 478: // stmt -> label_name, tkColon, stmt { CurrentSemanticValue.stn = new labeled_statement(ValueStack[ValueStack.Depth-3].id, ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 479: // unlabelled_stmt -> /* empty */ { CurrentSemanticValue.stn = new empty_statement(); CurrentSemanticValue.stn.source_context = null; } break; case 480: // unlabelled_stmt -> assignment { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 481: // unlabelled_stmt -> proc_call { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 482: // unlabelled_stmt -> goto_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 483: // unlabelled_stmt -> compound_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 484: // unlabelled_stmt -> if_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 485: // unlabelled_stmt -> case_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 486: // unlabelled_stmt -> repeat_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 487: // unlabelled_stmt -> while_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 488: // unlabelled_stmt -> for_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 489: // unlabelled_stmt -> with_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 490: // unlabelled_stmt -> inherited_message { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 491: // unlabelled_stmt -> try_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 492: // unlabelled_stmt -> raise_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 493: // unlabelled_stmt -> foreach_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 494: // unlabelled_stmt -> var_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 495: // unlabelled_stmt -> expr_as_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 496: // unlabelled_stmt -> lock_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 497: // unlabelled_stmt -> yield_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 498: // unlabelled_stmt -> yield_sequence_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 499: // unlabelled_stmt -> loop_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 500: // unlabelled_stmt -> match_with { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 501: // loop_stmt -> tkLoop, expr_l1, tkDo, unlabelled_stmt { CurrentSemanticValue.stn = new loop_stmt(ValueStack[ValueStack.Depth-3].ex,ValueStack[ValueStack.Depth-1].stn as statement,CurrentLocationSpan); } break; case 502: // yield_stmt -> tkYield, expr_l1 { CurrentSemanticValue.stn = new yield_node(ValueStack[ValueStack.Depth-1].ex,CurrentLocationSpan); } break; case 503: // yield_sequence_stmt -> tkYield, tkSequence, expr_l1 { CurrentSemanticValue.stn = new yield_sequence_node(ValueStack[ValueStack.Depth-1].ex,CurrentLocationSpan); } break; case 504: // var_stmt -> tkVar, var_decl_part { CurrentSemanticValue.stn = new var_statement(ValueStack[ValueStack.Depth-1].stn as var_def_statement, CurrentLocationSpan); } break; case 505: // var_stmt -> tkRoundOpen, tkVar, identifier, tkComma, var_ident_list, // tkRoundClose, tkAssign, expr { (ValueStack[ValueStack.Depth-4].ob as ident_list).Insert(0,ValueStack[ValueStack.Depth-6].id); (ValueStack[ValueStack.Depth-4].ob as syntax_tree_node).source_context = LexLocation.MergeAll(LocationStack[LocationStack.Depth-8],LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5],LocationStack[LocationStack.Depth-4],LocationStack[LocationStack.Depth-3]); CurrentSemanticValue.stn = new assign_var_tuple(ValueStack[ValueStack.Depth-4].ob as ident_list, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 506: // var_stmt -> tkVar, tkRoundOpen, identifier, tkComma, ident_list, tkRoundClose, // tkAssign, expr { (ValueStack[ValueStack.Depth-4].stn as ident_list).Insert(0,ValueStack[ValueStack.Depth-6].id); ValueStack[ValueStack.Depth-4].stn.source_context = LexLocation.MergeAll(LocationStack[LocationStack.Depth-8],LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5],LocationStack[LocationStack.Depth-4],LocationStack[LocationStack.Depth-3]); CurrentSemanticValue.stn = new assign_var_tuple(ValueStack[ValueStack.Depth-4].stn as ident_list, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 507: // assignment -> var_reference, assign_operator, expr_with_func_decl_lambda { CurrentSemanticValue.stn = new assign(ValueStack[ValueStack.Depth-3].ex as addressed_value, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; case 508: // assignment -> tkRoundOpen, variable, tkComma, variable_list, tkRoundClose, // assign_operator, expr { if (ValueStack[ValueStack.Depth-2].op.type != Operators.Assignment) parsertools.AddErrorFromResource("ONLY_BASE_ASSIGNMENT_FOR_TUPLE",LocationStack[LocationStack.Depth-2]); (ValueStack[ValueStack.Depth-4].ob as addressed_value_list).Insert(0,ValueStack[ValueStack.Depth-6].ex as addressed_value); (ValueStack[ValueStack.Depth-4].ob as syntax_tree_node).source_context = LexLocation.MergeAll(LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5],LocationStack[LocationStack.Depth-4],LocationStack[LocationStack.Depth-3]); CurrentSemanticValue.stn = new assign_tuple(ValueStack[ValueStack.Depth-4].ob as addressed_value_list, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 509: // variable_list -> variable { CurrentSemanticValue.ob = new addressed_value_list(ValueStack[ValueStack.Depth-1].ex as addressed_value,LocationStack[LocationStack.Depth-1]); } break; case 510: // variable_list -> variable_list, tkComma, variable { (ValueStack[ValueStack.Depth-3].ob as addressed_value_list).Add(ValueStack[ValueStack.Depth-1].ex as addressed_value); (ValueStack[ValueStack.Depth-3].ob as syntax_tree_node).source_context = LexLocation.MergeAll(LocationStack[LocationStack.Depth-3],LocationStack[LocationStack.Depth-2],LocationStack[LocationStack.Depth-1]); CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-3].ob; } break; case 511: // var_ident_list -> tkVar, identifier { CurrentSemanticValue.ob = new ident_list(ValueStack[ValueStack.Depth-1].id,CurrentLocationSpan); } break; case 512: // var_ident_list -> var_ident_list, tkComma, tkVar, identifier { (ValueStack[ValueStack.Depth-4].ob as ident_list).Add(ValueStack[ValueStack.Depth-1].id); (ValueStack[ValueStack.Depth-4].ob as ident_list).source_context = LexLocation.MergeAll(LocationStack[LocationStack.Depth-4],LocationStack[LocationStack.Depth-3],LocationStack[LocationStack.Depth-2],LocationStack[LocationStack.Depth-1]); CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-4].ob; } break; case 513: // proc_call -> var_reference { CurrentSemanticValue.stn = new procedure_call(ValueStack[ValueStack.Depth-1].ex as addressed_value, ValueStack[ValueStack.Depth-1].ex is ident, CurrentLocationSpan); } break; case 514: // goto_stmt -> tkGoto, label_name { CurrentSemanticValue.stn = new goto_statement(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); } break; case 515: // compound_stmt -> tkBegin, stmt_list, tkEnd { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; (CurrentSemanticValue.stn as statement_list).left_logical_bracket = ValueStack[ValueStack.Depth-3].ti; (CurrentSemanticValue.stn as statement_list).right_logical_bracket = ValueStack[ValueStack.Depth-1].ti; CurrentSemanticValue.stn.source_context = CurrentLocationSpan; } break; case 516: // stmt_list -> stmt { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, LocationStack[LocationStack.Depth-1]); } break; case 517: // stmt_list -> stmt_list, tkSemiColon, stmt { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as statement_list).Add(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 518: // if_stmt -> tkIf, expr_l1, tkThen, unlabelled_stmt { CurrentSemanticValue.stn = new if_node(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].stn as statement, null, CurrentLocationSpan); } break; case 519: // if_stmt -> tkIf, expr_l1, tkThen, unlabelled_stmt, tkElse, unlabelled_stmt { CurrentSemanticValue.stn = new if_node(ValueStack[ValueStack.Depth-5].ex, ValueStack[ValueStack.Depth-3].stn as statement, ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 520: // match_with -> tkMatch, expr_l1, tkWith, pattern_cases, else_case, tkEnd { CurrentSemanticValue.stn = new match_with(ValueStack[ValueStack.Depth-5].ex, ValueStack[ValueStack.Depth-3].stn as pattern_cases, ValueStack[ValueStack.Depth-2].stn as statement, CurrentLocationSpan); } break; case 521: // match_with -> tkMatch, expr_l1, tkWith, pattern_cases, tkSemiColon, else_case, // tkEnd { CurrentSemanticValue.stn = new match_with(ValueStack[ValueStack.Depth-6].ex, ValueStack[ValueStack.Depth-4].stn as pattern_cases, ValueStack[ValueStack.Depth-2].stn as statement, CurrentLocationSpan); } break; case 522: // pattern_cases -> pattern_case { CurrentSemanticValue.stn = new pattern_cases(ValueStack[ValueStack.Depth-1].stn as pattern_case); } break; case 523: // pattern_cases -> pattern_cases, tkSemiColon, pattern_case { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as pattern_cases).Add(ValueStack[ValueStack.Depth-1].stn as pattern_case); } break; case 524: // pattern_case -> pattern_optional_var, tkWhen, expr_l1, tkColon, unlabelled_stmt { CurrentSemanticValue.stn = new pattern_case(ValueStack[ValueStack.Depth-5].stn as pattern_node, ValueStack[ValueStack.Depth-1].stn as statement, ValueStack[ValueStack.Depth-3].ex, CurrentLocationSpan); } break; case 525: // pattern_case -> pattern_optional_var, tkColon, unlabelled_stmt { CurrentSemanticValue.stn = new pattern_case(ValueStack[ValueStack.Depth-3].stn as pattern_node, ValueStack[ValueStack.Depth-1].stn as statement, null, CurrentLocationSpan); } break; case 526: // pattern_case -> const_pattern, tkWhen, expr_l1, tkColon, unlabelled_stmt { CurrentSemanticValue.stn = new pattern_case(ValueStack[ValueStack.Depth-5].stn as pattern_node, ValueStack[ValueStack.Depth-1].stn as statement, ValueStack[ValueStack.Depth-3].ex, CurrentLocationSpan); } break; case 527: // pattern_case -> const_pattern, tkColon, unlabelled_stmt { CurrentSemanticValue.stn = new pattern_case(ValueStack[ValueStack.Depth-3].stn as pattern_node, ValueStack[ValueStack.Depth-1].stn as statement, null, CurrentLocationSpan); } break; case 528: // pattern_case -> collection_pattern, tkColon, unlabelled_stmt { CurrentSemanticValue.stn = new pattern_case(ValueStack[ValueStack.Depth-3].stn as pattern_node, ValueStack[ValueStack.Depth-1].stn as statement, null, CurrentLocationSpan); } break; case 529: // pattern_case -> tuple_pattern, tkColon, unlabelled_stmt { CurrentSemanticValue.stn = new pattern_case(ValueStack[ValueStack.Depth-3].stn as pattern_node, ValueStack[ValueStack.Depth-1].stn as statement, null, CurrentLocationSpan); } break; case 530: // case_stmt -> tkCase, expr_l1, tkOf, case_list, else_case, tkEnd { CurrentSemanticValue.stn = new case_node(ValueStack[ValueStack.Depth-5].ex, ValueStack[ValueStack.Depth-3].stn as case_variants, ValueStack[ValueStack.Depth-2].stn as statement, CurrentLocationSpan); } break; case 531: // case_stmt -> tkCase, expr_l1, tkOf, case_list, tkSemiColon, else_case, tkEnd { CurrentSemanticValue.stn = new case_node(ValueStack[ValueStack.Depth-6].ex, ValueStack[ValueStack.Depth-4].stn as case_variants, ValueStack[ValueStack.Depth-2].stn as statement, CurrentLocationSpan); } break; case 532: // case_stmt -> tkCase, expr_l1, tkOf, else_case, tkEnd { CurrentSemanticValue.stn = new case_node(ValueStack[ValueStack.Depth-4].ex, NewCaseItem(new empty_statement(), null), ValueStack[ValueStack.Depth-2].stn as statement, CurrentLocationSpan); } break; case 533: // case_list -> case_item { if (ValueStack[ValueStack.Depth-1].stn is empty_statement) CurrentSemanticValue.stn = NewCaseItem(ValueStack[ValueStack.Depth-1].stn, null); else CurrentSemanticValue.stn = NewCaseItem(ValueStack[ValueStack.Depth-1].stn, CurrentLocationSpan); } break; case 534: // case_list -> case_list, tkSemiColon, case_item { CurrentSemanticValue.stn = AddCaseItem(ValueStack[ValueStack.Depth-3].stn as case_variants, ValueStack[ValueStack.Depth-1].stn, CurrentLocationSpan); } break; case 535: // case_item -> case_label_list, tkColon, unlabelled_stmt { CurrentSemanticValue.stn = new case_variant(ValueStack[ValueStack.Depth-3].stn as expression_list, ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 536: // case_label_list -> case_label { CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 537: // case_label_list -> case_label_list, tkComma, case_label { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as expression_list).Add(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 538: // case_label -> const_elem { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 539: // else_case -> /* empty */ { CurrentSemanticValue.stn = null;} break; case 540: // else_case -> tkElse, stmt_list { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 541: // repeat_stmt -> tkRepeat, stmt_list, tkUntil, expr { CurrentSemanticValue.stn = new repeat_node(ValueStack[ValueStack.Depth-3].stn as statement_list, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); (ValueStack[ValueStack.Depth-3].stn as statement_list).left_logical_bracket = ValueStack[ValueStack.Depth-4].ti; (ValueStack[ValueStack.Depth-3].stn as statement_list).right_logical_bracket = ValueStack[ValueStack.Depth-2].ti; ValueStack[ValueStack.Depth-3].stn.source_context = LocationStack[LocationStack.Depth-4].Merge(LocationStack[LocationStack.Depth-2]); } break; case 542: // while_stmt -> tkWhile, expr_l1, optional_tk_do, unlabelled_stmt { CurrentSemanticValue.stn = NewWhileStmt(ValueStack[ValueStack.Depth-4].ti, ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-2].ti, ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 543: // optional_tk_do -> tkDo { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 544: // optional_tk_do -> /* empty */ { CurrentSemanticValue.ti = null; } break; case 545: // lock_stmt -> tkLock, expr_l1, tkDo, unlabelled_stmt { CurrentSemanticValue.stn = new lock_stmt(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 546: // foreach_stmt -> tkForeach, identifier, foreach_stmt_ident_dype_opt, tkIn, // expr_l1, tkDo, unlabelled_stmt { CurrentSemanticValue.stn = new foreach_stmt(ValueStack[ValueStack.Depth-6].id, ValueStack[ValueStack.Depth-5].td, ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); if (ValueStack[ValueStack.Depth-5].td == null) parsertools.AddWarningFromResource("USING_UNLOCAL_FOREACH_VARIABLE", ValueStack[ValueStack.Depth-6].id.source_context); } break; case 547: // foreach_stmt -> tkForeach, tkVar, identifier, tkColon, type_ref, tkIn, expr_l1, // tkDo, unlabelled_stmt { CurrentSemanticValue.stn = new foreach_stmt(ValueStack[ValueStack.Depth-7].id, ValueStack[ValueStack.Depth-5].td, ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 548: // foreach_stmt -> tkForeach, tkVar, identifier, tkIn, expr_l1, tkDo, // unlabelled_stmt { CurrentSemanticValue.stn = new foreach_stmt(ValueStack[ValueStack.Depth-5].id, new no_type_foreach(), ValueStack[ValueStack.Depth-3].ex, (statement)ValueStack[ValueStack.Depth-1].stn, CurrentLocationSpan); } break; case 549: // foreach_stmt_ident_dype_opt -> tkColon, type_ref { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 551: // for_stmt -> tkFor, optional_var, identifier, for_stmt_decl_or_assign, expr_l1, // for_cycle_type, expr_l1, optional_tk_do, unlabelled_stmt { CurrentSemanticValue.stn = NewForStmt((bool)ValueStack[ValueStack.Depth-8].ob, ValueStack[ValueStack.Depth-7].id, ValueStack[ValueStack.Depth-6].td, ValueStack[ValueStack.Depth-5].ex, (for_cycle_type)ValueStack[ValueStack.Depth-4].ob, ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-2].ti, ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 552: // optional_var -> tkVar { CurrentSemanticValue.ob = true; } break; case 553: // optional_var -> /* empty */ { CurrentSemanticValue.ob = false; } break; case 555: // for_stmt_decl_or_assign -> tkColon, simple_type_identifier, tkAssign { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-2].td; } break; case 556: // for_cycle_type -> tkTo { CurrentSemanticValue.ob = for_cycle_type.to; } break; case 557: // for_cycle_type -> tkDownto { CurrentSemanticValue.ob = for_cycle_type.downto; } break; case 558: // with_stmt -> tkWith, expr_list, tkDo, unlabelled_stmt { CurrentSemanticValue.stn = new with_statement(ValueStack[ValueStack.Depth-1].stn as statement, ValueStack[ValueStack.Depth-3].stn as expression_list, CurrentLocationSpan); } break; case 559: // inherited_message -> tkInherited { CurrentSemanticValue.stn = new inherited_message(); CurrentSemanticValue.stn.source_context = CurrentLocationSpan; } break; case 560: // try_stmt -> tkTry, stmt_list, try_handler { CurrentSemanticValue.stn = new try_stmt(ValueStack[ValueStack.Depth-2].stn as statement_list, ValueStack[ValueStack.Depth-1].stn as try_handler, CurrentLocationSpan); (ValueStack[ValueStack.Depth-2].stn as statement_list).left_logical_bracket = ValueStack[ValueStack.Depth-3].ti; ValueStack[ValueStack.Depth-2].stn.source_context = LocationStack[LocationStack.Depth-3].Merge(LocationStack[LocationStack.Depth-2]); } break; case 561: // try_handler -> tkFinally, stmt_list, tkEnd { CurrentSemanticValue.stn = new try_handler_finally(ValueStack[ValueStack.Depth-2].stn as statement_list, CurrentLocationSpan); (ValueStack[ValueStack.Depth-2].stn as statement_list).left_logical_bracket = ValueStack[ValueStack.Depth-3].ti; (ValueStack[ValueStack.Depth-2].stn as statement_list).right_logical_bracket = ValueStack[ValueStack.Depth-1].ti; } break; case 562: // try_handler -> tkExcept, exception_block, tkEnd { CurrentSemanticValue.stn = new try_handler_except((exception_block)ValueStack[ValueStack.Depth-2].stn, CurrentLocationSpan); if ((ValueStack[ValueStack.Depth-2].stn as exception_block).stmt_list != null) { (ValueStack[ValueStack.Depth-2].stn as exception_block).stmt_list.source_context = CurrentLocationSpan; (ValueStack[ValueStack.Depth-2].stn as exception_block).source_context = CurrentLocationSpan; } } break; case 563: // exception_block -> exception_handler_list, exception_block_else_branch { CurrentSemanticValue.stn = new exception_block(null, (exception_handler_list)ValueStack[ValueStack.Depth-2].stn, (statement_list)ValueStack[ValueStack.Depth-1].stn, CurrentLocationSpan); } break; case 564: // exception_block -> exception_handler_list, tkSemiColon, // exception_block_else_branch { CurrentSemanticValue.stn = new exception_block(null, (exception_handler_list)ValueStack[ValueStack.Depth-3].stn, (statement_list)ValueStack[ValueStack.Depth-1].stn, CurrentLocationSpan); } break; case 565: // exception_block -> stmt_list { CurrentSemanticValue.stn = new exception_block(ValueStack[ValueStack.Depth-1].stn as statement_list, null, null, LocationStack[LocationStack.Depth-1]); } break; case 566: // exception_handler_list -> exception_handler { CurrentSemanticValue.stn = new exception_handler_list(ValueStack[ValueStack.Depth-1].stn as exception_handler, CurrentLocationSpan); } break; case 567: // exception_handler_list -> exception_handler_list, tkSemiColon, // exception_handler { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as exception_handler_list).Add(ValueStack[ValueStack.Depth-1].stn as exception_handler, CurrentLocationSpan); } break; case 568: // exception_block_else_branch -> /* empty */ { CurrentSemanticValue.stn = null; } break; case 569: // exception_block_else_branch -> tkElse, stmt_list { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 570: // exception_handler -> tkOn, exception_identifier, tkDo, unlabelled_stmt { CurrentSemanticValue.stn = new exception_handler((ValueStack[ValueStack.Depth-3].stn as exception_ident).variable, (ValueStack[ValueStack.Depth-3].stn as exception_ident).type_name, ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 571: // exception_identifier -> exception_class_type_identifier { CurrentSemanticValue.stn = new exception_ident(null, (named_type_reference)ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 572: // exception_identifier -> exception_variable, tkColon, // exception_class_type_identifier { CurrentSemanticValue.stn = new exception_ident(ValueStack[ValueStack.Depth-3].id, (named_type_reference)ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 573: // exception_class_type_identifier -> simple_type_identifier { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 574: // exception_variable -> identifier { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 575: // raise_stmt -> tkRaise { CurrentSemanticValue.stn = new raise_stmt(); CurrentSemanticValue.stn.source_context = CurrentLocationSpan; } break; case 576: // raise_stmt -> tkRaise, expr { CurrentSemanticValue.stn = new raise_stmt(ValueStack[ValueStack.Depth-1].ex, null, CurrentLocationSpan); } break; case 577: // expr_list -> expr_with_func_decl_lambda { CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 578: // expr_list -> expr_list, tkComma, expr_with_func_decl_lambda { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as expression_list).Add(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 579: // expr_as_stmt -> allowable_expr_as_stmt { CurrentSemanticValue.stn = new expression_as_statement(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 580: // allowable_expr_as_stmt -> new_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 581: // expr_with_func_decl_lambda -> expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 582: // expr_with_func_decl_lambda -> func_decl_lambda { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 583: // expr -> expr_l1 { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 584: // expr -> format_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 585: // expr_l1 -> expr_dq { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 586: // expr_l1 -> question_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 587: // expr_l1_func_decl_lambda -> expr_l1 { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 588: // expr_l1_func_decl_lambda -> func_decl_lambda { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 589: // expr_dq -> relop_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 590: // expr_dq -> expr_dq, tkDoubleQuestion, relop_expr { CurrentSemanticValue.ex = new double_question_node(ValueStack[ValueStack.Depth-3].ex as expression, ValueStack[ValueStack.Depth-1].ex as expression, CurrentLocationSpan);} break; case 591: // sizeof_expr -> tkSizeOf, tkRoundOpen, simple_or_template_type_reference, // tkRoundClose { CurrentSemanticValue.ex = new sizeof_operator((named_type_reference)ValueStack[ValueStack.Depth-2].td, null, CurrentLocationSpan); } break; case 592: // typeof_expr -> tkTypeOf, tkRoundOpen, simple_or_template_type_reference, // tkRoundClose { CurrentSemanticValue.ex = new typeof_operator((named_type_reference)ValueStack[ValueStack.Depth-2].td, CurrentLocationSpan); } break; case 593: // typeof_expr -> tkTypeOf, tkRoundOpen, empty_template_type_reference, // tkRoundClose { CurrentSemanticValue.ex = new typeof_operator((named_type_reference)ValueStack[ValueStack.Depth-2].td, CurrentLocationSpan); } break; case 594: // question_expr -> expr_l1, tkQuestion, expr_l1, tkColon, expr_l1 { if (ValueStack[ValueStack.Depth-3].ex is nil_const && ValueStack[ValueStack.Depth-1].ex is nil_const) parsertools.AddErrorFromResource("TWO_NILS_IN_QUESTION_EXPR",LocationStack[LocationStack.Depth-3]); CurrentSemanticValue.ex = new question_colon_expression(ValueStack[ValueStack.Depth-5].ex, ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 595: // empty_template_type_reference -> simple_type_identifier, // template_type_empty_params { CurrentSemanticValue.td = new template_type_reference((named_type_reference)ValueStack[ValueStack.Depth-2].td, (template_param_list)ValueStack[ValueStack.Depth-1].stn, CurrentLocationSpan); } break; case 596: // empty_template_type_reference -> simple_type_identifier, tkAmpersend, // template_type_empty_params { CurrentSemanticValue.td = new template_type_reference((named_type_reference)ValueStack[ValueStack.Depth-3].td, (template_param_list)ValueStack[ValueStack.Depth-1].stn, CurrentLocationSpan); } break; case 597: // simple_or_template_type_reference -> simple_type_identifier { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 598: // simple_or_template_type_reference -> simple_type_identifier, // template_type_params { CurrentSemanticValue.td = new template_type_reference((named_type_reference)ValueStack[ValueStack.Depth-2].td, (template_param_list)ValueStack[ValueStack.Depth-1].stn, CurrentLocationSpan); } break; case 599: // simple_or_template_type_reference -> simple_type_identifier, tkAmpersend, // template_type_params { CurrentSemanticValue.td = new template_type_reference((named_type_reference)ValueStack[ValueStack.Depth-3].td, (template_param_list)ValueStack[ValueStack.Depth-1].stn, CurrentLocationSpan); } break; case 600: // optional_array_initializer -> tkRoundOpen, typed_const_list, tkRoundClose { CurrentSemanticValue.stn = new array_const((expression_list)ValueStack[ValueStack.Depth-2].stn, CurrentLocationSpan); } break; case 602: // new_expr -> tkNew, simple_or_template_type_reference, // optional_expr_list_with_bracket { CurrentSemanticValue.ex = new new_expr(ValueStack[ValueStack.Depth-2].td, ValueStack[ValueStack.Depth-1].stn as expression_list, false, null, CurrentLocationSpan); } break; case 603: // new_expr -> tkNew, simple_or_template_type_reference, tkSquareOpen, // optional_expr_list, tkSquareClose, optional_array_initializer { var el = ValueStack[ValueStack.Depth-3].stn as expression_list; if (el == null) { var cnt = 0; var ac = ValueStack[ValueStack.Depth-1].stn as array_const; if (ac != null && ac.elements != null) cnt = ac.elements.Count; else parsertools.AddErrorFromResource("WITHOUT_INIT_AND_SIZE",LocationStack[LocationStack.Depth-2]); el = new expression_list(new int32_const(cnt),LocationStack[LocationStack.Depth-6]); } CurrentSemanticValue.ex = new new_expr(ValueStack[ValueStack.Depth-5].td, el, true, ValueStack[ValueStack.Depth-1].stn as array_const, CurrentLocationSpan); } break; case 604: // new_expr -> tkNew, tkClass, tkRoundOpen, list_fields_in_unnamed_object, // tkRoundClose { // sugared node var l = ValueStack[ValueStack.Depth-2].ob as name_assign_expr_list; var exprs = l.name_expr.Select(x=>x.expr).ToList(); var typename = "AnonymousType#"+Guid(); var type = new named_type_reference(typename,LocationStack[LocationStack.Depth-5]); // node new_expr - for code generation of new node var ne = new new_expr(type, new expression_list(exprs), CurrentLocationSpan); // node unnamed_type_object - for formatting and code generation (new node and Anonymous class) CurrentSemanticValue.ex = new unnamed_type_object(l, true, ne, CurrentLocationSpan); } break; case 605: // field_in_unnamed_object -> identifier, tkAssign, relop_expr { if (ValueStack[ValueStack.Depth-1].ex is nil_const) parsertools.AddErrorFromResource("NIL_IN_UNNAMED_OBJECT",CurrentLocationSpan); CurrentSemanticValue.ob = new name_assign_expr(ValueStack[ValueStack.Depth-3].id,ValueStack[ValueStack.Depth-1].ex,CurrentLocationSpan); } break; case 606: // field_in_unnamed_object -> relop_expr { ident name = null; var id = ValueStack[ValueStack.Depth-1].ex as ident; dot_node dot; if (id != null) name = id; else { dot = ValueStack[ValueStack.Depth-1].ex as dot_node; if (dot != null) { name = dot.right as ident; } } if (name == null) parsertools.errors.Add(new bad_anon_type(parsertools.CurrentFileName, LocationStack[LocationStack.Depth-1], null)); CurrentSemanticValue.ob = new name_assign_expr(name,ValueStack[ValueStack.Depth-1].ex,CurrentLocationSpan); } break; case 607: // list_fields_in_unnamed_object -> field_in_unnamed_object { var l = new name_assign_expr_list(); CurrentSemanticValue.ob = l.Add(ValueStack[ValueStack.Depth-1].ob as name_assign_expr); } break; case 608: // list_fields_in_unnamed_object -> list_fields_in_unnamed_object, tkComma, // field_in_unnamed_object { var nel = ValueStack[ValueStack.Depth-3].ob as name_assign_expr_list; var ss = nel.name_expr.Select(ne=>ne.name.name).FirstOrDefault(x=>string.Compare(x,(ValueStack[ValueStack.Depth-1].ob as name_assign_expr).name.name,true)==0); if (ss != null) parsertools.errors.Add(new anon_type_duplicate_name(parsertools.CurrentFileName, LocationStack[LocationStack.Depth-1], null)); nel.Add(ValueStack[ValueStack.Depth-1].ob as name_assign_expr); CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-3].ob; } break; case 609: // optional_expr_list_with_bracket -> /* empty */ { CurrentSemanticValue.stn = null; } break; case 610: // optional_expr_list_with_bracket -> tkRoundOpen, optional_expr_list, // tkRoundClose { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; } break; case 611: // relop_expr -> simple_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 612: // relop_expr -> relop_expr, relop, simple_expr { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; case 613: // relop_expr -> is_type_expr, tkRoundOpen, pattern_out_param_list, tkRoundClose { var isTypeCheck = ValueStack[ValueStack.Depth-4].ex as typecast_node; var deconstructorPattern = new deconstructor_pattern(ValueStack[ValueStack.Depth-2].ob as List, isTypeCheck.type_def, null, CurrentLocationSpan); CurrentSemanticValue.ex = new is_pattern_expr(isTypeCheck.expr, deconstructorPattern, CurrentLocationSpan); } break; case 614: // relop_expr -> term, tkIs, collection_pattern { CurrentSemanticValue.ex = new is_pattern_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].stn as pattern_node, CurrentLocationSpan); } break; case 615: // relop_expr -> term, tkIs, tuple_pattern { CurrentSemanticValue.ex = new is_pattern_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].stn as pattern_node, CurrentLocationSpan); } break; case 616: // pattern -> simple_or_template_type_reference, tkRoundOpen, // pattern_out_param_list, tkRoundClose { CurrentSemanticValue.stn = new deconstructor_pattern(ValueStack[ValueStack.Depth-2].ob as List, ValueStack[ValueStack.Depth-4].td, null, CurrentLocationSpan); } break; case 617: // pattern_optional_var -> simple_or_template_type_reference, tkRoundOpen, // pattern_out_param_list_optional_var, tkRoundClose { CurrentSemanticValue.stn = new deconstructor_pattern(ValueStack[ValueStack.Depth-2].ob as List, ValueStack[ValueStack.Depth-4].td, null, CurrentLocationSpan); } break; case 618: // collection_pattern -> tkSquareOpen, collection_pattern_expr_list, tkSquareClose { CurrentSemanticValue.stn = new collection_pattern(ValueStack[ValueStack.Depth-2].ob as List, CurrentLocationSpan); } break; case 619: // collection_pattern_expr_list -> collection_pattern_list_item { CurrentSemanticValue.ob = new List(); (CurrentSemanticValue.ob as List).Add(ValueStack[ValueStack.Depth-1].stn as pattern_parameter); } break; case 620: // collection_pattern_expr_list -> collection_pattern_expr_list, tkComma, // collection_pattern_list_item { var list = ValueStack[ValueStack.Depth-3].ob as List; list.Add(ValueStack[ValueStack.Depth-1].stn as pattern_parameter); CurrentSemanticValue.ob = list; } break; case 621: // collection_pattern_list_item -> literal_or_number { CurrentSemanticValue.stn = new const_pattern_parameter(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 622: // collection_pattern_list_item -> collection_pattern_var_item { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 623: // collection_pattern_list_item -> tkUnderscore { CurrentSemanticValue.stn = new collection_pattern_wild_card(CurrentLocationSpan); } break; case 624: // collection_pattern_list_item -> pattern_optional_var { CurrentSemanticValue.stn = new recursive_deconstructor_parameter(ValueStack[ValueStack.Depth-1].stn as pattern_node, CurrentLocationSpan); } break; case 625: // collection_pattern_list_item -> collection_pattern { CurrentSemanticValue.stn = new recursive_collection_parameter(ValueStack[ValueStack.Depth-1].stn as pattern_node, CurrentLocationSpan); } break; case 626: // collection_pattern_list_item -> tuple_pattern { CurrentSemanticValue.stn = new recursive_tuple_parameter(ValueStack[ValueStack.Depth-1].stn as pattern_node, CurrentLocationSpan); } break; case 627: // collection_pattern_list_item -> tkDotDot { CurrentSemanticValue.stn = new collection_pattern_gap_parameter(CurrentLocationSpan); } break; case 628: // collection_pattern_var_item -> tkVar, identifier { CurrentSemanticValue.stn = new collection_pattern_var_parameter(ValueStack[ValueStack.Depth-1].id, null, CurrentLocationSpan); } break; case 629: // const_pattern -> const_pattern_expr_list { CurrentSemanticValue.stn = new const_pattern(ValueStack[ValueStack.Depth-1].stn as expression_list, CurrentLocationSpan); } break; case 630: // const_pattern_expr_list -> const_pattern_expression { CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 631: // const_pattern_expr_list -> const_pattern_expr_list, tkComma, // const_pattern_expression { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as expression_list).Add(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 632: // const_pattern_expression -> literal_or_number { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 633: // const_pattern_expression -> const_pattern_variable { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 634: // const_pattern_expression -> tkNil { CurrentSemanticValue.ex = new nil_const(); CurrentSemanticValue.ex.source_context = CurrentLocationSpan; } break; case 635: // tuple_pattern -> tkRoundOpen, tuple_pattern_item_list, tkRoundClose { if ((ValueStack[ValueStack.Depth-2].ob as List).Count>6) parsertools.AddErrorFromResource("TUPLE_ELEMENTS_COUNT_MUST_BE_LESSEQUAL_7",CurrentLocationSpan); CurrentSemanticValue.stn = new tuple_pattern(ValueStack[ValueStack.Depth-2].ob as List, CurrentLocationSpan); } break; case 636: // tuple_pattern_item -> tkUnderscore { CurrentSemanticValue.stn = new tuple_pattern_wild_card(CurrentLocationSpan); } break; case 637: // tuple_pattern_item -> literal_or_number { CurrentSemanticValue.stn = new const_pattern_parameter(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 638: // tuple_pattern_item -> tkVar, identifier { CurrentSemanticValue.stn = new tuple_pattern_var_parameter(ValueStack[ValueStack.Depth-1].id, null, CurrentLocationSpan); } break; case 639: // tuple_pattern_item -> pattern_optional_var { CurrentSemanticValue.stn = new recursive_deconstructor_parameter(ValueStack[ValueStack.Depth-1].stn as pattern_node, CurrentLocationSpan); } break; case 640: // tuple_pattern_item -> collection_pattern { CurrentSemanticValue.stn = new recursive_collection_parameter(ValueStack[ValueStack.Depth-1].stn as pattern_node, CurrentLocationSpan); } break; case 641: // tuple_pattern_item -> tuple_pattern { CurrentSemanticValue.stn = new recursive_tuple_parameter(ValueStack[ValueStack.Depth-1].stn as pattern_node, CurrentLocationSpan); } break; case 642: // tuple_pattern_item_list -> tuple_pattern_item { CurrentSemanticValue.ob = new List(); (CurrentSemanticValue.ob as List).Add(ValueStack[ValueStack.Depth-1].stn as pattern_parameter); } break; case 643: // tuple_pattern_item_list -> tuple_pattern_item_list, tkComma, tuple_pattern_item { var list = ValueStack[ValueStack.Depth-3].ob as List; list.Add(ValueStack[ValueStack.Depth-1].stn as pattern_parameter); CurrentSemanticValue.ob = list; } break; case 644: // pattern_out_param_list_optional_var -> pattern_out_param_optional_var { CurrentSemanticValue.ob = new List(); (CurrentSemanticValue.ob as List).Add(ValueStack[ValueStack.Depth-1].stn as pattern_parameter); } break; case 645: // pattern_out_param_list_optional_var -> pattern_out_param_list_optional_var, // tkSemiColon, // pattern_out_param_optional_var { var list = ValueStack[ValueStack.Depth-3].ob as List; list.Add(ValueStack[ValueStack.Depth-1].stn as pattern_parameter); CurrentSemanticValue.ob = list; } break; case 646: // pattern_out_param_list_optional_var -> pattern_out_param_list_optional_var, // tkComma, // pattern_out_param_optional_var { var list = ValueStack[ValueStack.Depth-3].ob as List; list.Add(ValueStack[ValueStack.Depth-1].stn as pattern_parameter); CurrentSemanticValue.ob = list; } break; case 647: // pattern_out_param_list -> pattern_out_param { CurrentSemanticValue.ob = new List(); (CurrentSemanticValue.ob as List).Add(ValueStack[ValueStack.Depth-1].stn as pattern_parameter); } break; case 648: // pattern_out_param_list -> pattern_out_param_list, tkSemiColon, // pattern_out_param { var list = ValueStack[ValueStack.Depth-3].ob as List; list.Add(ValueStack[ValueStack.Depth-1].stn as pattern_parameter); CurrentSemanticValue.ob = list; } break; case 649: // pattern_out_param_list -> pattern_out_param_list, tkComma, pattern_out_param { var list = ValueStack[ValueStack.Depth-3].ob as List; list.Add(ValueStack[ValueStack.Depth-1].stn as pattern_parameter); CurrentSemanticValue.ob = list; } break; case 650: // pattern_out_param -> tkUnderscore { CurrentSemanticValue.stn = new wild_card_deconstructor_parameter(CurrentLocationSpan); } break; case 651: // pattern_out_param -> literal_or_number { CurrentSemanticValue.stn = new const_pattern_parameter(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 652: // pattern_out_param -> tkVar, identifier, tkColon, type_ref { CurrentSemanticValue.stn = new var_deconstructor_parameter(ValueStack[ValueStack.Depth-3].id, ValueStack[ValueStack.Depth-1].td, true, CurrentLocationSpan); } break; case 653: // pattern_out_param -> tkVar, identifier { CurrentSemanticValue.stn = new var_deconstructor_parameter(ValueStack[ValueStack.Depth-1].id, null, true, CurrentLocationSpan); } break; case 654: // pattern_out_param -> pattern { CurrentSemanticValue.stn = new recursive_deconstructor_parameter(ValueStack[ValueStack.Depth-1].stn as pattern_node, CurrentLocationSpan); } break; case 655: // pattern_out_param -> collection_pattern { CurrentSemanticValue.stn = new recursive_collection_parameter(ValueStack[ValueStack.Depth-1].stn as pattern_node, CurrentLocationSpan); } break; case 656: // pattern_out_param -> tuple_pattern { CurrentSemanticValue.stn = new recursive_tuple_parameter(ValueStack[ValueStack.Depth-1].stn as pattern_node, CurrentLocationSpan); } break; case 657: // pattern_out_param_optional_var -> tkUnderscore { CurrentSemanticValue.stn = new wild_card_deconstructor_parameter(CurrentLocationSpan); } break; case 658: // pattern_out_param_optional_var -> literal_or_number { CurrentSemanticValue.stn = new const_pattern_parameter(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 659: // pattern_out_param_optional_var -> identifier, tkColon, type_ref { CurrentSemanticValue.stn = new var_deconstructor_parameter(ValueStack[ValueStack.Depth-3].id, ValueStack[ValueStack.Depth-1].td, false, CurrentLocationSpan); } break; case 660: // pattern_out_param_optional_var -> identifier { CurrentSemanticValue.stn = new var_deconstructor_parameter(ValueStack[ValueStack.Depth-1].id, null, false, CurrentLocationSpan); } break; case 661: // pattern_out_param_optional_var -> tkVar, identifier, tkColon, type_ref { CurrentSemanticValue.stn = new var_deconstructor_parameter(ValueStack[ValueStack.Depth-3].id, ValueStack[ValueStack.Depth-1].td, true, CurrentLocationSpan); } break; case 662: // pattern_out_param_optional_var -> tkVar, identifier { CurrentSemanticValue.stn = new var_deconstructor_parameter(ValueStack[ValueStack.Depth-1].id, null, true, CurrentLocationSpan); } break; case 663: // pattern_out_param_optional_var -> pattern_optional_var { CurrentSemanticValue.stn = new recursive_deconstructor_parameter(ValueStack[ValueStack.Depth-1].stn as pattern_node, CurrentLocationSpan); } break; case 664: // pattern_out_param_optional_var -> collection_pattern { CurrentSemanticValue.stn = new recursive_collection_parameter(ValueStack[ValueStack.Depth-1].stn as pattern_node, CurrentLocationSpan); } break; case 665: // pattern_out_param_optional_var -> tuple_pattern { CurrentSemanticValue.stn = new recursive_tuple_parameter(ValueStack[ValueStack.Depth-1].stn as pattern_node, CurrentLocationSpan); } break; case 666: // simple_expr_or_nothing -> simple_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 667: // simple_expr_or_nothing -> /* empty */ { CurrentSemanticValue.ex = null; } break; case 668: // const_expr_or_nothing -> const_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 669: // const_expr_or_nothing -> /* empty */ { CurrentSemanticValue.ex = null; } break; case 670: // format_expr -> simple_expr, tkColon, simple_expr_or_nothing { CurrentSemanticValue.ex = new format_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, null, CurrentLocationSpan); } break; case 671: // format_expr -> tkColon, simple_expr_or_nothing { CurrentSemanticValue.ex = new format_expr(null, ValueStack[ValueStack.Depth-1].ex, null, CurrentLocationSpan); } break; case 672: // format_expr -> simple_expr, tkColon, simple_expr_or_nothing, tkColon, // simple_expr { CurrentSemanticValue.ex = new format_expr(ValueStack[ValueStack.Depth-5].ex, ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 673: // format_expr -> tkColon, simple_expr_or_nothing, tkColon, simple_expr { CurrentSemanticValue.ex = new format_expr(null, ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 674: // format_const_expr -> const_expr, tkColon, const_expr_or_nothing { CurrentSemanticValue.ex = new format_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, null, CurrentLocationSpan); } break; case 675: // format_const_expr -> tkColon, const_expr_or_nothing { CurrentSemanticValue.ex = new format_expr(null, ValueStack[ValueStack.Depth-1].ex, null, CurrentLocationSpan); } break; case 676: // format_const_expr -> const_expr, tkColon, const_expr_or_nothing, tkColon, // const_expr { CurrentSemanticValue.ex = new format_expr(ValueStack[ValueStack.Depth-5].ex, ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 677: // format_const_expr -> tkColon, const_expr_or_nothing, tkColon, const_expr { CurrentSemanticValue.ex = new format_expr(null, ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 678: // relop -> tkEqual { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 679: // relop -> tkNotEqual { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 680: // relop -> tkLower { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 681: // relop -> tkGreater { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 682: // relop -> tkLowerEqual { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 683: // relop -> tkGreaterEqual { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 684: // relop -> tkIn { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 685: // simple_expr -> term { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 686: // simple_expr -> simple_expr, addop, term { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; case 687: // addop -> tkPlus { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 688: // addop -> tkMinus { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 689: // addop -> tkOr { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 690: // addop -> tkXor { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 691: // addop -> tkCSharpStyleOr { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 692: // typecast_op -> tkAs { CurrentSemanticValue.ob = op_typecast.as_op; } break; case 693: // typecast_op -> tkIs { CurrentSemanticValue.ob = op_typecast.is_op; } break; case 694: // as_is_expr -> is_type_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 695: // as_is_expr -> as_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 696: // as_expr -> term, tkAs, simple_or_template_type_reference { CurrentSemanticValue.ex = NewAsIsExpr(ValueStack[ValueStack.Depth-3].ex, op_typecast.as_op, ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 697: // is_type_expr -> term, tkIs, simple_or_template_type_reference { CurrentSemanticValue.ex = NewAsIsExpr(ValueStack[ValueStack.Depth-3].ex, op_typecast.is_op, ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 698: // simple_term -> factor { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 699: // power_expr -> simple_term, tkStarStar, factor { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex,ValueStack[ValueStack.Depth-1].ex,(ValueStack[ValueStack.Depth-2].op).type, CurrentLocationSpan); } break; case 700: // term -> factor { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 701: // term -> new_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 702: // term -> power_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 703: // term -> term, mulop, factor { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex,ValueStack[ValueStack.Depth-1].ex,(ValueStack[ValueStack.Depth-2].op).type, CurrentLocationSpan); } break; case 704: // term -> term, mulop, power_expr { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex,ValueStack[ValueStack.Depth-1].ex,(ValueStack[ValueStack.Depth-2].op).type, CurrentLocationSpan); } break; case 705: // term -> as_is_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 706: // mulop -> tkStar { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 707: // mulop -> tkSlash { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 708: // mulop -> tkDiv { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 709: // mulop -> tkMod { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 710: // mulop -> tkShl { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 711: // mulop -> tkShr { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 712: // mulop -> tkAnd { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 713: // default_expr -> tkDefault, tkRoundOpen, simple_or_template_type_reference, // tkRoundClose { CurrentSemanticValue.ex = new default_operator(ValueStack[ValueStack.Depth-2].td as named_type_reference, CurrentLocationSpan); } break; case 714: // tuple -> tkRoundOpen, expr_l1, tkComma, expr_l1_list, lambda_type_ref, // optional_full_lambda_fp_list, tkRoundClose { /*if ($5 != null) parsertools.AddErrorFromResource("BAD_TUPLE",@5); if ($6 != null) parsertools.AddErrorFromResource("BAD_TUPLE",@6);*/ if ((ValueStack[ValueStack.Depth-4].stn as expression_list).Count>6) parsertools.AddErrorFromResource("TUPLE_ELEMENTS_COUNT_MUST_BE_LESSEQUAL_7",CurrentLocationSpan); (ValueStack[ValueStack.Depth-4].stn as expression_list).Insert(0,ValueStack[ValueStack.Depth-6].ex); CurrentSemanticValue.ex = new tuple_node(ValueStack[ValueStack.Depth-4].stn as expression_list,CurrentLocationSpan); } break; case 715: // factor -> tkNil { CurrentSemanticValue.ex = new nil_const(); CurrentSemanticValue.ex.source_context = CurrentLocationSpan; } break; case 716: // factor -> literal_or_number { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 717: // factor -> default_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 718: // factor -> tkSquareOpen, elem_list, tkSquareClose { CurrentSemanticValue.ex = new pascal_set_constant(ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan); } break; case 719: // factor -> tkNot, factor { CurrentSemanticValue.ex = new un_expr(ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; case 720: // factor -> sign, factor { if (ValueStack[ValueStack.Depth-2].op.type == Operators.Minus) { var i64 = ValueStack[ValueStack.Depth-1].ex as int64_const; if (i64 != null && i64.val == (Int64)Int32.MaxValue + 1) { CurrentSemanticValue.ex = new int32_const(Int32.MinValue,CurrentLocationSpan); break; } var ui64 = ValueStack[ValueStack.Depth-1].ex as uint64_const; if (ui64 != null && ui64.val == (UInt64)Int64.MaxValue + 1) { CurrentSemanticValue.ex = new int64_const(Int64.MinValue,CurrentLocationSpan); break; } if (ui64 != null && ui64.val > (UInt64)Int64.MaxValue + 1) { parsertools.AddErrorFromResource("BAD_INT2",CurrentLocationSpan); break; } // ����� ������� ���������� ��������� � �������������� ������� } CurrentSemanticValue.ex = new un_expr(ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; case 721: // factor -> var_reference { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 722: // factor -> tuple { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 723: // literal_or_number -> literal { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 724: // literal_or_number -> unsigned_number { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 725: // var_question_point -> variable, tkQuestionPoint, variable { CurrentSemanticValue.ex = new dot_question_node(ValueStack[ValueStack.Depth-3].ex as addressed_value,ValueStack[ValueStack.Depth-1].ex as addressed_value,CurrentLocationSpan); } break; case 726: // var_question_point -> variable, tkQuestionPoint, var_question_point { CurrentSemanticValue.ex = new dot_question_node(ValueStack[ValueStack.Depth-3].ex as addressed_value,ValueStack[ValueStack.Depth-1].ex as addressed_value,CurrentLocationSpan); } break; case 727: // var_reference -> var_address, variable { CurrentSemanticValue.ex = NewVarReference(ValueStack[ValueStack.Depth-2].stn as get_address, ValueStack[ValueStack.Depth-1].ex as addressed_value, CurrentLocationSpan); } break; case 728: // var_reference -> variable { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 729: // var_reference -> var_question_point { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 730: // var_address -> tkAddressOf { CurrentSemanticValue.stn = NewVarAddress(CurrentLocationSpan); } break; case 731: // var_address -> var_address, tkAddressOf { CurrentSemanticValue.stn = NewVarAddress(ValueStack[ValueStack.Depth-2].stn as get_address, CurrentLocationSpan); } break; case 732: // attribute_variable -> simple_type_identifier, optional_expr_list_with_bracket { CurrentSemanticValue.stn = new attribute(null, ValueStack[ValueStack.Depth-2].td as named_type_reference, ValueStack[ValueStack.Depth-1].stn as expression_list, CurrentLocationSpan); } break; case 733: // attribute_variable -> template_type, optional_expr_list_with_bracket { CurrentSemanticValue.stn = new attribute(null, ValueStack[ValueStack.Depth-2].td as named_type_reference, ValueStack[ValueStack.Depth-1].stn as expression_list, CurrentLocationSpan); } break; case 734: // dotted_identifier -> identifier { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].id; } break; case 735: // dotted_identifier -> dotted_identifier, tkPoint, identifier_or_keyword { CurrentSemanticValue.ex = new dot_node(ValueStack[ValueStack.Depth-3].ex as addressed_value, ValueStack[ValueStack.Depth-1].id as addressed_value, CurrentLocationSpan); } break; case 736: // variable_as_type -> dotted_identifier { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex;} break; case 737: // variable_as_type -> dotted_identifier, template_type_params { CurrentSemanticValue.ex = new ident_with_templateparams(ValueStack[ValueStack.Depth-2].ex as addressed_value, ValueStack[ValueStack.Depth-1].stn as template_param_list, CurrentLocationSpan); } break; case 738: // variable_or_literal_or_number -> variable { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 739: // variable_or_literal_or_number -> literal_or_number { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 740: // variable -> identifier { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].id; } break; case 741: // variable -> operator_name_ident { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 742: // variable -> tkInherited, identifier { CurrentSemanticValue.ex = new inherited_ident(ValueStack[ValueStack.Depth-1].id.name, CurrentLocationSpan); } break; case 743: // variable -> tkRoundOpen, expr, tkRoundClose { if (!parsertools.build_tree_for_formatter) { ValueStack[ValueStack.Depth-2].ex.source_context = CurrentLocationSpan; CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-2].ex; } else CurrentSemanticValue.ex = new bracket_expr(ValueStack[ValueStack.Depth-2].ex, CurrentLocationSpan); } break; case 744: // variable -> sizeof_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 745: // variable -> typeof_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 746: // variable -> literal_or_number, tkPoint, identifier_or_keyword { CurrentSemanticValue.ex = new dot_node(ValueStack[ValueStack.Depth-3].ex as addressed_value, ValueStack[ValueStack.Depth-1].id as addressed_value, CurrentLocationSpan); } break; case 747: // variable -> variable_or_literal_or_number, tkSquareOpen, expr_list, // tkSquareClose { var el = ValueStack[ValueStack.Depth-2].stn as expression_list; // SSM 10/03/16 if (el.Count==1 && el.expressions[0] is format_expr) { var fe = el.expressions[0] as format_expr; if (!parsertools.build_tree_for_formatter) { if (fe.expr == null) fe.expr = new int32_const(int.MaxValue,LocationStack[LocationStack.Depth-2]); if (fe.format1 == null) fe.format1 = new int32_const(int.MaxValue,LocationStack[LocationStack.Depth-2]); } CurrentSemanticValue.ex = new slice_expr(ValueStack[ValueStack.Depth-4].ex as addressed_value,fe.expr,fe.format1,fe.format2,CurrentLocationSpan); } else CurrentSemanticValue.ex = new indexer(ValueStack[ValueStack.Depth-4].ex as addressed_value,el, CurrentLocationSpan); } break; case 748: // variable -> variable, tkQuestionSquareOpen, format_expr, tkSquareClose { var fe = ValueStack[ValueStack.Depth-2].ex as format_expr; // SSM 9/01/17 if (!parsertools.build_tree_for_formatter) { if (fe.expr == null) fe.expr = new int32_const(int.MaxValue,LocationStack[LocationStack.Depth-2]); if (fe.format1 == null) fe.format1 = new int32_const(int.MaxValue,LocationStack[LocationStack.Depth-2]); } CurrentSemanticValue.ex = new slice_expr_question(ValueStack[ValueStack.Depth-4].ex as addressed_value,fe.expr,fe.format1,fe.format2,CurrentLocationSpan); } break; case 749: // variable -> variable, tkRoundOpen, optional_expr_list, tkRoundClose { CurrentSemanticValue.ex = new method_call(ValueStack[ValueStack.Depth-4].ex as addressed_value,ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan); } break; case 750: // variable -> variable, tkPoint, identifier_keyword_operatorname { CurrentSemanticValue.ex = new dot_node(ValueStack[ValueStack.Depth-3].ex as addressed_value, ValueStack[ValueStack.Depth-1].id as addressed_value, CurrentLocationSpan); } break; case 751: // variable -> tuple, tkPoint, identifier_keyword_operatorname { CurrentSemanticValue.ex = new dot_node(ValueStack[ValueStack.Depth-3].ex as addressed_value, ValueStack[ValueStack.Depth-1].id as addressed_value, CurrentLocationSpan); } break; case 752: // variable -> variable, tkDeref { CurrentSemanticValue.ex = new roof_dereference(ValueStack[ValueStack.Depth-2].ex as addressed_value,CurrentLocationSpan); } break; case 753: // variable -> variable, tkAmpersend, template_type_params { CurrentSemanticValue.ex = new ident_with_templateparams(ValueStack[ValueStack.Depth-3].ex as addressed_value, ValueStack[ValueStack.Depth-1].stn as template_param_list, CurrentLocationSpan); } break; case 754: // optional_expr_list -> expr_list { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 755: // optional_expr_list -> /* empty */ { CurrentSemanticValue.stn = null; } break; case 756: // elem_list -> elem_list1 { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 757: // elem_list -> /* empty */ { CurrentSemanticValue.stn = null; } break; case 758: // elem_list1 -> elem { CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 759: // elem_list1 -> elem_list1, tkComma, elem { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as expression_list).Add(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 760: // elem -> expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 761: // elem -> expr, tkDotDot, expr { CurrentSemanticValue.ex = new diapason_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 762: // one_literal -> tkStringLiteral { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].stn as literal; } break; case 763: // one_literal -> tkAsciiChar { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].stn as literal; } break; case 764: // literal -> literal_list { CurrentSemanticValue.ex = NewLiteral(ValueStack[ValueStack.Depth-1].stn as literal_const_line); } break; case 765: // literal -> tkFormatStringLiteral { if (parsertools.build_tree_for_formatter) { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].stn as string_const; } else { CurrentSemanticValue.ex = NewFormatString(ValueStack[ValueStack.Depth-1].stn as string_const); } } break; case 766: // literal_list -> one_literal { CurrentSemanticValue.stn = new literal_const_line(ValueStack[ValueStack.Depth-1].ex as literal, CurrentLocationSpan); } break; case 767: // literal_list -> literal_list, one_literal { var line = ValueStack[ValueStack.Depth-2].stn as literal_const_line; if (line.literals.Last() is string_const && ValueStack[ValueStack.Depth-1].ex is string_const) parsertools.AddErrorFromResource("TWO_STRING_LITERALS_IN_SUCCESSION",LocationStack[LocationStack.Depth-1]); CurrentSemanticValue.stn = line.Add(ValueStack[ValueStack.Depth-1].ex as literal, CurrentLocationSpan); } break; case 768: // operator_name_ident -> tkOperator, overload_operator { CurrentSemanticValue.ex = new operator_name_ident((ValueStack[ValueStack.Depth-1].op as op_type_node).text, (ValueStack[ValueStack.Depth-1].op as op_type_node).type, CurrentLocationSpan); } break; case 769: // optional_method_modificators -> tkSemiColon { CurrentSemanticValue.stn = new procedure_attributes_list(new List(),CurrentLocationSpan); } break; case 770: // optional_method_modificators -> tkSemiColon, meth_modificators, tkSemiColon { //parsertools.AddModifier((procedure_attributes_list)$2, proc_attribute.attr_overload); CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; } break; case 771: // optional_method_modificators1 -> /* empty */ { CurrentSemanticValue.stn = new procedure_attributes_list(new List(),CurrentLocationSpan); } break; case 772: // optional_method_modificators1 -> tkSemiColon, meth_modificators { //parsertools.AddModifier((procedure_attributes_list)$2, proc_attribute.attr_overload); CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 773: // meth_modificators -> meth_modificator { CurrentSemanticValue.stn = new procedure_attributes_list(ValueStack[ValueStack.Depth-1].id as procedure_attribute, CurrentLocationSpan); } break; case 774: // meth_modificators -> meth_modificators, tkSemiColon, meth_modificator { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as procedure_attributes_list).Add(ValueStack[ValueStack.Depth-1].id as procedure_attribute, CurrentLocationSpan); } break; case 775: // identifier -> tkIdentifier { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 776: // identifier -> property_specifier_directives { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 777: // identifier -> non_reserved { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 778: // identifier_or_keyword -> identifier { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 779: // identifier_or_keyword -> keyword { CurrentSemanticValue.id = new ident(ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan); } break; case 780: // identifier_or_keyword -> reserved_keyword { CurrentSemanticValue.id = new ident(ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan); } break; case 781: // identifier_keyword_operatorname -> identifier { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 782: // identifier_keyword_operatorname -> keyword { CurrentSemanticValue.id = new ident(ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan); } break; case 783: // identifier_keyword_operatorname -> operator_name_ident { CurrentSemanticValue.id = (ident)ValueStack[ValueStack.Depth-1].ex; } break; case 784: // meth_modificator -> tkAbstract { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 785: // meth_modificator -> tkOverload { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; parsertools.AddWarningFromResource("OVERLOAD_IS_NOT_USED", ValueStack[ValueStack.Depth-1].id.source_context); } break; case 786: // meth_modificator -> tkReintroduce { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 787: // meth_modificator -> tkOverride { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 788: // meth_modificator -> tkExtensionMethod { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 789: // meth_modificator -> tkVirtual { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 790: // property_modificator -> tkVirtual { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 791: // property_modificator -> tkOverride { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 792: // property_modificator -> tkAbstract { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 793: // property_specifier_directives -> tkRead { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 794: // property_specifier_directives -> tkWrite { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 795: // non_reserved -> tkName { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 796: // non_reserved -> tkNew { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 797: // visibility_specifier -> tkInternal { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 798: // visibility_specifier -> tkPublic { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 799: // visibility_specifier -> tkProtected { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 800: // visibility_specifier -> tkPrivate { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 801: // keyword -> visibility_specifier { CurrentSemanticValue.ti = new token_info(ValueStack[ValueStack.Depth-1].id.name, CurrentLocationSpan); } break; case 802: // keyword -> tkSealed { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 803: // keyword -> tkTemplate { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 804: // keyword -> tkOr { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; } break; case 805: // keyword -> tkTypeOf { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 806: // keyword -> tkSizeOf { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 807: // keyword -> tkDefault { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 808: // keyword -> tkWhere { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 809: // keyword -> tkXor { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; } break; case 810: // keyword -> tkAnd { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; } break; case 811: // keyword -> tkDiv { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; } break; case 812: // keyword -> tkMod { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; } break; case 813: // keyword -> tkShl { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; } break; case 814: // keyword -> tkShr { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; } break; case 815: // keyword -> tkNot { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; } break; case 816: // keyword -> tkAs { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; } break; case 817: // keyword -> tkIn { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; } break; case 818: // keyword -> tkIs { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; } break; case 819: // keyword -> tkArray { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 820: // keyword -> tkSequence { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 821: // keyword -> tkBegin { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 822: // keyword -> tkCase { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 823: // keyword -> tkClass { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 824: // keyword -> tkConst { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 825: // keyword -> tkConstructor { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 826: // keyword -> tkDestructor { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 827: // keyword -> tkDownto { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 828: // keyword -> tkDo { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 829: // keyword -> tkElse { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 830: // keyword -> tkExcept { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 831: // keyword -> tkFile { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 832: // keyword -> tkAuto { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 833: // keyword -> tkFinalization { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 834: // keyword -> tkFinally { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 835: // keyword -> tkFor { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 836: // keyword -> tkForeach { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 837: // keyword -> tkFunction { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 838: // keyword -> tkIf { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 839: // keyword -> tkImplementation { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 840: // keyword -> tkInherited { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 841: // keyword -> tkInitialization { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 842: // keyword -> tkInterface { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 843: // keyword -> tkProcedure { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 844: // keyword -> tkProperty { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 845: // keyword -> tkRaise { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 846: // keyword -> tkRecord { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 847: // keyword -> tkRepeat { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 848: // keyword -> tkSet { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 849: // keyword -> tkTry { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 850: // keyword -> tkType { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 851: // keyword -> tkStatic { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 852: // keyword -> tkThen { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 853: // keyword -> tkTo { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 854: // keyword -> tkUntil { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 855: // keyword -> tkUses { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 856: // keyword -> tkVar { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 857: // keyword -> tkWhile { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 858: // keyword -> tkWith { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 859: // keyword -> tkNil { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 860: // keyword -> tkGoto { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 861: // keyword -> tkOf { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 862: // keyword -> tkLabel { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 863: // keyword -> tkProgram { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 864: // keyword -> tkUnit { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 865: // keyword -> tkLibrary { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 866: // keyword -> tkNamespace { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 867: // keyword -> tkExternal { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 868: // keyword -> tkParams { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 869: // keyword -> tkEvent { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 870: // keyword -> tkYield { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 871: // keyword -> tkMatch { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 872: // keyword -> tkWhen { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 873: // reserved_keyword -> tkOperator { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 874: // reserved_keyword -> tkEnd { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 875: // overload_operator -> tkMinus { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 876: // overload_operator -> tkPlus { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 877: // overload_operator -> tkSlash { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 878: // overload_operator -> tkStar { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 879: // overload_operator -> tkEqual { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 880: // overload_operator -> tkGreater { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 881: // overload_operator -> tkGreaterEqual { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 882: // overload_operator -> tkLower { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 883: // overload_operator -> tkLowerEqual { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 884: // overload_operator -> tkNotEqual { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 885: // overload_operator -> tkOr { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 886: // overload_operator -> tkXor { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 887: // overload_operator -> tkAnd { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 888: // overload_operator -> tkDiv { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 889: // overload_operator -> tkMod { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 890: // overload_operator -> tkShl { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 891: // overload_operator -> tkShr { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 892: // overload_operator -> tkNot { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 893: // overload_operator -> tkIn { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 894: // overload_operator -> tkImplicit { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 895: // overload_operator -> tkExplicit { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 896: // overload_operator -> assign_operator { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 897: // overload_operator -> tkStarStar { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 898: // assign_operator -> tkAssign { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 899: // assign_operator -> tkPlusEqual { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 900: // assign_operator -> tkMinusEqual { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 901: // assign_operator -> tkMultEqual { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 902: // assign_operator -> tkDivEqual { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 903: // func_decl_lambda -> identifier, tkArrow, lambda_function_body { var idList = new ident_list(ValueStack[ValueStack.Depth-3].id, LocationStack[LocationStack.Depth-3]); var formalPars = new formal_parameters(new typed_parameters(idList, new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), LocationStack[LocationStack.Depth-3]), parametr_kind.none, null, LocationStack[LocationStack.Depth-3]), LocationStack[LocationStack.Depth-3]); CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), LocationStack[LocationStack.Depth-3]), ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan); } break; case 904: // func_decl_lambda -> tkRoundOpen, tkRoundClose, lambda_type_ref_noproctype, // tkArrow, lambda_function_body { CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), null, ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan); } break; case 905: // func_decl_lambda -> tkRoundOpen, identifier, tkColon, fptype, tkRoundClose, // lambda_type_ref_noproctype, tkArrow, lambda_function_body { var idList = new ident_list(ValueStack[ValueStack.Depth-7].id, LocationStack[LocationStack.Depth-7]); var loc = LexLocation.MergeAll(LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5]); var formalPars = new formal_parameters(new typed_parameters(idList, ValueStack[ValueStack.Depth-5].td, parametr_kind.none, null, loc), loc); CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan); } break; case 906: // func_decl_lambda -> tkRoundOpen, identifier, tkSemiColon, full_lambda_fp_list, // tkRoundClose, lambda_type_ref_noproctype, tkArrow, // lambda_function_body { var idList = new ident_list(ValueStack[ValueStack.Depth-7].id, LocationStack[LocationStack.Depth-7]); var formalPars = new formal_parameters(new typed_parameters(idList, new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), null), parametr_kind.none, null, LocationStack[LocationStack.Depth-7]), LexLocation.MergeAll(LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5])); for (int i = 0; i < (ValueStack[ValueStack.Depth-5].stn as formal_parameters).Count; i++) formalPars.Add((ValueStack[ValueStack.Depth-5].stn as formal_parameters).params_list[i]); CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan); } break; case 907: // func_decl_lambda -> tkRoundOpen, identifier, tkColon, fptype, tkSemiColon, // full_lambda_fp_list, tkRoundClose, // lambda_type_ref_noproctype, tkArrow, lambda_function_body { var idList = new ident_list(ValueStack[ValueStack.Depth-9].id, LocationStack[LocationStack.Depth-9]); var loc = LexLocation.MergeAll(LocationStack[LocationStack.Depth-9],LocationStack[LocationStack.Depth-8],LocationStack[LocationStack.Depth-7]); var formalPars = new formal_parameters(new typed_parameters(idList, ValueStack[ValueStack.Depth-7].td, parametr_kind.none, null, loc), LexLocation.MergeAll(LocationStack[LocationStack.Depth-9],LocationStack[LocationStack.Depth-8],LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5])); for (int i = 0; i < (ValueStack[ValueStack.Depth-5].stn as formal_parameters).Count; i++) formalPars.Add((ValueStack[ValueStack.Depth-5].stn as formal_parameters).params_list[i]); CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan); } break; case 908: // func_decl_lambda -> tkRoundOpen, expr_l1, tkComma, expr_l1_list, // lambda_type_ref, optional_full_lambda_fp_list, // tkRoundClose, rem_lambda { var pair = ValueStack[ValueStack.Depth-1].ob as pair_type_stlist; if (ValueStack[ValueStack.Depth-4].td is lambda_inferred_type) { var formal_pars = new formal_parameters(); var idd = ValueStack[ValueStack.Depth-7].ex as ident; if (idd==null) parsertools.AddErrorFromResource("ONE_TKIDENTIFIER",LocationStack[LocationStack.Depth-7]); var lambda_inf_type = new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), null); var new_typed_pars = new typed_parameters(new ident_list(idd, idd.source_context), lambda_inf_type, parametr_kind.none, null, idd.source_context); formal_pars.Add(new_typed_pars); foreach (var id in (ValueStack[ValueStack.Depth-5].stn as expression_list).expressions) { var idd1 = id as ident; if (idd1==null) parsertools.AddErrorFromResource("ONE_TKIDENTIFIER",id.source_context); lambda_inf_type = new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), null); new_typed_pars = new typed_parameters(new ident_list(idd1, idd1.source_context), lambda_inf_type, parametr_kind.none, null, idd1.source_context); formal_pars.Add(new_typed_pars); } if (ValueStack[ValueStack.Depth-3].stn != null) for (int i = 0; i < (ValueStack[ValueStack.Depth-3].stn as formal_parameters).Count; i++) formal_pars.Add((ValueStack[ValueStack.Depth-3].stn as formal_parameters).params_list[i]); formal_pars.source_context = LexLocation.MergeAll(LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5],LocationStack[LocationStack.Depth-4]); CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formal_pars, pair.tn, pair.exprs, CurrentLocationSpan); } else { var loc = LexLocation.MergeAll(LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5]); var idd = ValueStack[ValueStack.Depth-7].ex as ident; if (idd==null) parsertools.AddErrorFromResource("ONE_TKIDENTIFIER",LocationStack[LocationStack.Depth-7]); var idList = new ident_list(idd, loc); var iddlist = (ValueStack[ValueStack.Depth-5].stn as expression_list).expressions; for (int j = 0; j < iddlist.Count; j++) { var idd2 = iddlist[j] as ident; if (idd2==null) parsertools.AddErrorFromResource("ONE_TKIDENTIFIER",idd2.source_context); idList.Add(idd2); } var parsType = ValueStack[ValueStack.Depth-4].td; var formalPars = new formal_parameters(new typed_parameters(idList, parsType, parametr_kind.none, null, loc), LexLocation.MergeAll(LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5],LocationStack[LocationStack.Depth-4],LocationStack[LocationStack.Depth-3])); if (ValueStack[ValueStack.Depth-3].stn != null) for (int i = 0; i < (ValueStack[ValueStack.Depth-3].stn as formal_parameters).Count; i++) formalPars.Add((ValueStack[ValueStack.Depth-3].stn as formal_parameters).params_list[i]); CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, pair.tn, pair.exprs, CurrentLocationSpan); } } break; case 909: // func_decl_lambda -> expl_func_decl_lambda { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 910: // optional_full_lambda_fp_list -> /* empty */ { CurrentSemanticValue.stn = null; } break; case 911: // optional_full_lambda_fp_list -> tkSemiColon, full_lambda_fp_list { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 912: // rem_lambda -> lambda_type_ref_noproctype, tkArrow, lambda_function_body { CurrentSemanticValue.ob = new pair_type_stlist(ValueStack[ValueStack.Depth-3].td,ValueStack[ValueStack.Depth-1].stn as statement_list); } break; case 913: // expl_func_decl_lambda -> tkFunction, lambda_type_ref, tkArrow, // lambda_function_body { CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), null, ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].stn as statement_list, 1, CurrentLocationSpan); } break; case 914: // expl_func_decl_lambda -> tkFunction, tkRoundOpen, tkRoundClose, lambda_type_ref, // tkArrow, lambda_function_body { CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), null, ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].stn as statement_list, 1, CurrentLocationSpan); } break; case 915: // expl_func_decl_lambda -> tkFunction, tkRoundOpen, full_lambda_fp_list, // tkRoundClose, lambda_type_ref, tkArrow, // lambda_function_body { CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), ValueStack[ValueStack.Depth-5].stn as formal_parameters, ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].stn as statement_list, 1, CurrentLocationSpan); } break; case 916: // expl_func_decl_lambda -> tkProcedure, tkArrow, lambda_procedure_body { CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), null, null, ValueStack[ValueStack.Depth-1].stn as statement_list, 2, CurrentLocationSpan); } break; case 917: // expl_func_decl_lambda -> tkProcedure, tkRoundOpen, tkRoundClose, tkArrow, // lambda_procedure_body { CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), null, null, ValueStack[ValueStack.Depth-1].stn as statement_list, 2, CurrentLocationSpan); } break; case 918: // expl_func_decl_lambda -> tkProcedure, tkRoundOpen, full_lambda_fp_list, // tkRoundClose, tkArrow, lambda_procedure_body { CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), ValueStack[ValueStack.Depth-4].stn as formal_parameters, null, ValueStack[ValueStack.Depth-1].stn as statement_list, 2, CurrentLocationSpan); } break; case 919: // full_lambda_fp_list -> lambda_simple_fp_sect { var typed_pars = ValueStack[ValueStack.Depth-1].stn as typed_parameters; if (typed_pars.vars_type is lambda_inferred_type) { CurrentSemanticValue.stn = new formal_parameters(); foreach (var id in typed_pars.idents.idents) { var lambda_inf_type = new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), null); var new_typed_pars = new typed_parameters(new ident_list(id, id.source_context), lambda_inf_type, parametr_kind.none, null, id.source_context); (CurrentSemanticValue.stn as formal_parameters).Add(new_typed_pars); } CurrentSemanticValue.stn.source_context = CurrentLocationSpan; } else { CurrentSemanticValue.stn = new formal_parameters(typed_pars, CurrentLocationSpan); } } break; case 920: // full_lambda_fp_list -> full_lambda_fp_list, tkSemiColon, lambda_simple_fp_sect { CurrentSemanticValue.stn =(ValueStack[ValueStack.Depth-3].stn as formal_parameters).Add(ValueStack[ValueStack.Depth-1].stn as typed_parameters, CurrentLocationSpan); } break; case 921: // lambda_simple_fp_sect -> ident_list, lambda_type_ref { CurrentSemanticValue.stn = new typed_parameters(ValueStack[ValueStack.Depth-2].stn as ident_list, ValueStack[ValueStack.Depth-1].td, parametr_kind.none, null, CurrentLocationSpan); } break; case 922: // lambda_type_ref -> /* empty */ { CurrentSemanticValue.td = new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), null); } break; case 923: // lambda_type_ref -> tkColon, fptype { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 924: // lambda_type_ref_noproctype -> /* empty */ { CurrentSemanticValue.td = new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), null); } break; case 925: // lambda_type_ref_noproctype -> tkColon, fptype_noproctype { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 926: // common_lambda_body -> compound_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 927: // common_lambda_body -> if_stmt { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 928: // common_lambda_body -> while_stmt { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 929: // common_lambda_body -> repeat_stmt { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 930: // common_lambda_body -> for_stmt { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 931: // common_lambda_body -> foreach_stmt { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 932: // common_lambda_body -> loop_stmt { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 933: // common_lambda_body -> case_stmt { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 934: // common_lambda_body -> try_stmt { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 935: // common_lambda_body -> lock_stmt { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 936: // common_lambda_body -> raise_stmt { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 937: // common_lambda_body -> yield_stmt { parsertools.AddErrorFromResource("YIELD_STATEMENT_CANNOT_BE_USED_IN_LAMBDA_BODY", CurrentLocationSpan); } break; case 938: // lambda_function_body -> expr_l1_func_decl_lambda { var id = SyntaxVisitors.ExprHasNameVisitor.HasName(ValueStack[ValueStack.Depth-1].ex, "Result"); if (id != null) { parsertools.AddErrorFromResource("RESULT_IDENT_NOT_EXPECTED_IN_THIS_CONTEXT", id.source_context); } var sl = new statement_list(new assign("result",ValueStack[ValueStack.Depth-1].ex,CurrentLocationSpan),CurrentLocationSpan); // ���� �������� ��� � assign ��� ������������������� ��� ������ - ����� ��������� ����� Result sl.expr_lambda_body = true; CurrentSemanticValue.stn = sl; } break; case 939: // lambda_function_body -> common_lambda_body { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 940: // lambda_procedure_body -> proc_call { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 941: // lambda_procedure_body -> assignment { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 942: // lambda_procedure_body -> common_lambda_body { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; } } protected override string TerminalToString(int terminal) { if (aliasses != null && aliasses.ContainsKey(terminal)) return aliasses[terminal]; else if (((Tokens)terminal).ToString() != terminal.ToString(CultureInfo.InvariantCulture)) return ((Tokens)terminal).ToString(); else return CharToString((char)terminal); } } }