pascalabcnet/Parsers/PascalABCParserNewSaushkin/ABCPascalYacc.cs
Mikhalkovich Stanislav a7b113e6f8 В конструкторах разрешены именованные аргументы.
Интересно, почему раньше были запрещены

ML - первая версия GradientBoostingClassifier
2026-02-22 21:01:14 +03:00

8044 lines
599 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// (see accompanying GPPGcopyright.rtf)
// GPPG version 1.3.6
// Machine: DESKTOP-L2INHKG
// DateTime: 22.02.2026 20:16:29
// UserName: user
// Input file <ABCPascal.y>
// options: no-lines gplex
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Text;
using QUT.Gppg;
using PascalABCCompiler.SyntaxTree;
using Languages.Pascal.Frontend.Errors;
using PascalABCCompiler.ParserTools;
using System.Linq;
namespace Languages.Pascal.Frontend.Core
{
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,tkBackSlashRoundOpen=18,
tkAsync=19,tkAwait=20,tkSizeOf=21,tkTypeOf=22,tkWhere=23,tkArray=24,
tkCase=25,tkClass=26,tkAuto=27,tkStatic=28,tkConst=29,tkConstructor=30,
tkDestructor=31,tkElse=32,tkExcept=33,tkFile=34,tkFor=35,tkForeach=36,
tkFunction=37,tkMatch=38,tkWhen=39,tkIf=40,tkImplementation=41,tkInherited=42,
tkInterface=43,tkProcedure=44,tkOperator=45,tkProperty=46,tkRaise=47,tkRecord=48,
tkSet=49,tkType=50,tkThen=51,tkUses=52,tkVar=53,tkWhile=54,
tkWith=55,tkNil=56,tkGoto=57,tkOf=58,tkLabel=59,tkLock=60,
tkProgram=61,tkEvent=62,tkDefault=63,tkTemplate=64,tkExports=65,tkResourceString=66,
tkThreadvar=67,tkSealed=68,tkPartial=69,tkTo=70,tkDownto=71,tkLoop=72,
tkSequence=73,tkYield=74,tkShortProgram=75,tkVertParen=76,tkShortSFProgram=77,tkNew=78,
tkOn=79,tkName=80,tkPrivate=81,tkProtected=82,tkPublic=83,tkInternal=84,
tkRead=85,tkWrite=86,tkIndex=87,tkParseModeExpression=88,tkParseModeStatement=89,tkParseModeType=90,
tkBegin=91,tkEnd=92,tkAsmBody=93,tkILCode=94,tkError=95,INVISIBLE=96,
tkRepeat=97,tkUntil=98,tkDo=99,tkComma=100,tkFinally=101,tkTry=102,
tkInitialization=103,tkFinalization=104,tkUnit=105,tkLibrary=106,tkExternal=107,tkParams=108,
tkNamespace=109,tkAssign=110,tkPlusEqual=111,tkMinusEqual=112,tkMultEqual=113,tkDivEqual=114,
tkMinus=115,tkPlus=116,tkSlash=117,tkStar=118,tkStarStar=119,tkEqual=120,
tkGreater=121,tkGreaterEqual=122,tkLower=123,tkLowerEqual=124,tkNotEqual=125,tkCSharpStyleOr=126,
tkArrow=127,tkOr=128,tkXor=129,tkAnd=130,tkDiv=131,tkMod=132,
tkShl=133,tkShr=134,tkNot=135,tkAs=136,tkIn=137,tkIs=138,
tkImplicit=139,tkExplicit=140,tkAddressOf=141,tkDeref=142,tkIdentifier=143,tkStringLiteral=144,
tkFormatStringLiteral=145,tkMultilineStringLiteral=146,tkAsciiChar=147,tkAbstract=148,tkForward=149,tkOverload=150,
tkReintroduce=151,tkOverride=152,tkVirtual=153,tkExtensionMethod=154,tkInteger=155,tkBigInteger=156,
tkFloat=157,tkHex=158,tkUnknown=159,tkStep=160};
// Abstract base class for GPLEX scanners
public abstract class ScanBase : AbstractScanner<PascalABCCompiler.ParserTools.Union,LexLocation> {
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<PascalABCCompiler.ParserTools.Union, LexLocation>
{
// Verbatim content from ABCPascal.y
// Э<>об<D0BE>?явления добавля<D0BB>?<3F>?ся в класс GPPGParser, п<>?едс<D0B4>?авля<D0BB>?<3F>?ий собой па<D0BF>?се<D181>?, гене<D0BD><>?<3F>?ем<D0B5>сис<D0B8>?емой gppg
public syntax_tree_node root; // <20>?о<>?невой <20>?зел син<D0B8>?акси<D181>?еского де<D0B4>?ева
// private int maxErrors = 10;
private PascalParserTools parserTools;
private ParserLambdaHelper lambdaHelper = new ParserLambdaHelper();
public GPPGParser(AbstractScanner<PascalABCCompiler.ParserTools.Union, LexLocation> scanner, PascalParserTools parserTools) : base(scanner)
{
this.parserTools = parserTools;
}
// End verbatim content from ABCPascal.y
#pragma warning disable 649
private static Dictionary<int, string> aliasses;
#pragma warning restore 649
private static Rule[] rules = new Rule[1030];
private static State[] states = new State[1708];
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_factor_without_unary_op", "const_variable_2", "const_term",
"const_variable", "literal_or_number", "unsigned_number", "program_block",
"optional_var", "class_attribute", "class_attributes", "class_attributes1",
"lambda_unpacked_params_or_id", "lambda_list_of_unpacked_params_or_id",
"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",
"decl_sect_list_proc_func_only", "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",
"optional_expr_list_func_param", "elem_list", "optional_expr_list_with_bracket",
"optional_expr_list_func_param_with_bracket", "expr_list", "expr_list_func_param",
"const_elem_list1", "case_label_list", "const_elem_list", "optional_const_func_expr_list",
"elem_list1", "enumeration_id", "expr_l1_or_unpacked_list", "enumeration_id_list",
"const_simple_expr", "term", "term1", "typed_const", "typed_const_plus",
"typed_var_init_expression", "expr", "expr_with_func_decl_lambda", "expr_with_func_decl_lambda_ass",
"const_expr", "const_relop_expr", "elem", "range_expr", "const_elem", "array_const",
"factor", "factor_without_unary_op", "relop_expr", "expr_dq", "lambda_unpacked_params",
"expr_l1", "expr_l1_or_unpacked", "expr_l1_func_decl_lambda", "expr_l1_for_lambda",
"simple_expr", "range_term", "range_factor", "external_directive_ident",
"init_const_expr", "case_label", "variable", "proc_func_call", "var_reference",
"optional_read_expr", "simple_expr_or_nothing", "var_question_point", "expr_l1_for_question_expr",
"expr_l1_for_new_question_expr", "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", "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_without_modifiers", "constr_destr_decl", "inclass_constr_destr_decl",
"method_decl", "proc_func_constr_destr_decl_with_attr", "proc_func_decl_without_modifiers",
"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", "pascal_set_const", "question_expr",
"question_constexpr", "new_question_expr", "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", "optional_type_specification", "fptype",
"type_ref", "fptype_noproctype", "array_type", "template_param", "template_empty_param",
"structured_type", "empty_template_type_reference", "simple_or_template_type_reference",
"simple_or_template_or_question_type_reference", "type_ref_or_secific",
"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", "uses_clause_one", "uses_clause_one_or_empty",
"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", "const_pattern_expression",
"pattern", "deconstruction_or_const_pattern", "pattern_optional_var", "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", "pattern_out_param_list",
"pattern_out_param_list_optional_var", "collection_pattern_expr_list",
"tuple_pattern_item_list", "const_pattern_expr_list", "var_with_init_for_expr_with_let",
"var_with_init_for_expr_with_let_list", "index_or_nothing", "$accept",
};
static GPPGParser() {
states[0] = new State(new int[]{61,1607,105,1674,106,1675,109,1676,88,1681,90,1686,89,1693,75,1698,77,1704,3,-27,52,-27,91,-27,59,-27,29,-27,66,-27,50,-27,53,-27,62,-27,11,-27,44,-27,37,-27,28,-27,26,-27,19,-27,30,-27,31,-27},new int[]{-1,1,-234,3,-235,4,-307,1619,-309,1620,-2,1669,-175,1680});
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,1603,52,-14,91,-14,59,-14,29,-14,66,-14,50,-14,53,-14,62,-14,11,-14,44,-14,37,-14,28,-14,26,-14,19,-14,30,-14,31,-14},new int[]{-185,5,-186,1601,-184,1606});
states[5] = new State(-41,new int[]{-303,6});
states[6] = new State(new int[]{52,1589,59,-67,29,-67,66,-67,50,-67,53,-67,62,-67,11,-67,44,-67,37,-67,28,-67,26,-67,19,-67,30,-67,31,-67,91,-67},new int[]{-17,7,-305,14,-36,15,-40,1524,-41,1525});
states[7] = new State(new int[]{7,9,10,10,5,11,100,12,6,13,2,-26},new int[]{-188,8});
states[8] = new State(-20);
states[9] = new State(-21);
states[10] = new State(-22);
states[11] = new State(-23);
states[12] = new State(-24);
states[13] = new State(-25);
states[14] = new State(-42);
states[15] = new State(new int[]{91,17},new int[]{-256,16});
states[16] = new State(-34);
states[17] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,752,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,92,-493,10,-493},new int[]{-253,18,-262,750,-261,22,-4,23,-113,24,-132,391,-111,399,-147,751,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885,-143,1040});
states[18] = new State(new int[]{92,19,10,20});
states[19] = new State(-529);
states[20] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,752,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,92,-493,10,-493,98,-493,101,-493,33,-493,104,-493,2,-493},new int[]{-262,21,-261,22,-4,23,-113,24,-132,391,-111,399,-147,751,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885,-143,1040});
states[21] = new State(-531);
states[22] = new State(-491);
states[23] = new State(-494);
states[24] = new State(new int[]{110,429,111,430,112,431,113,432,114,433,92,-527,10,-527,98,-527,101,-527,33,-527,104,-527,2,-527,9,-527,12,-527,100,-527,99,-527,32,-527,85,-527,84,-527,83,-527,82,-527,81,-527,86,-527},new int[]{-194,25});
states[25] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,833,8,713,21,294,22,299,76,446,11,368,40,589,5,598,18,669,37,678,44,682},new int[]{-88,26,-87,27,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597,-323,834,-100,659,-324,677});
states[26] = new State(-521);
states[27] = new State(new int[]{70,28,92,-597,10,-597,98,-597,101,-597,33,-597,104,-597,2,-597,9,-597,12,-597,100,-597,99,-597,32,-597,85,-597,84,-597,83,-597,82,-597,81,-597,86,-597});
states[28] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589},new int[]{-101,29,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588});
states[29] = new State(-606);
states[30] = new State(new int[]{16,31,70,-607,92,-607,10,-607,98,-607,101,-607,33,-607,104,-607,2,-607,9,-607,12,-607,100,-607,99,-607,32,-607,85,-607,84,-607,83,-607,82,-607,81,-607,86,-607,6,-607,76,-607,5,-607,51,-607,58,-607,141,-607,143,-607,80,-607,78,-607,160,-607,87,-607,45,-607,42,-607,8,-607,21,-607,22,-607,144,-607,147,-607,145,-607,146,-607,155,-607,158,-607,157,-607,156,-607,11,-607,57,-607,91,-607,40,-607,25,-607,97,-607,54,-607,35,-607,55,-607,102,-607,47,-607,36,-607,53,-607,60,-607,74,-607,72,-607,38,-607,71,-607,13,-610});
states[31] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368},new int[]{-98,32,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578});
states[32] = new State(new int[]{120,157,125,158,123,159,121,160,124,161,122,162,137,163,135,164,16,-620,70,-620,92,-620,10,-620,98,-620,101,-620,33,-620,104,-620,2,-620,9,-620,12,-620,100,-620,99,-620,32,-620,85,-620,84,-620,83,-620,82,-620,81,-620,86,-620,13,-620,6,-620,76,-620,5,-620,51,-620,58,-620,141,-620,143,-620,80,-620,78,-620,160,-620,87,-620,45,-620,42,-620,8,-620,21,-620,22,-620,144,-620,147,-620,145,-620,146,-620,155,-620,158,-620,157,-620,156,-620,11,-620,57,-620,91,-620,40,-620,25,-620,97,-620,54,-620,35,-620,55,-620,102,-620,47,-620,36,-620,53,-620,60,-620,74,-620,72,-620,38,-620,71,-620,116,-620,115,-620,128,-620,129,-620,126,-620,138,-620,136,-620,118,-620,117,-620,131,-620,132,-620,133,-620,134,-620,130,-620},new int[]{-196,33});
states[33] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589},new int[]{-105,34,-243,1523,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,602,-268,578});
states[34] = new State(new int[]{6,35,120,-647,125,-647,123,-647,121,-647,124,-647,122,-647,137,-647,135,-647,16,-647,70,-647,92,-647,10,-647,98,-647,101,-647,33,-647,104,-647,2,-647,9,-647,12,-647,100,-647,99,-647,32,-647,85,-647,84,-647,83,-647,82,-647,81,-647,86,-647,13,-647,76,-647,5,-647,51,-647,58,-647,141,-647,143,-647,80,-647,78,-647,160,-647,87,-647,45,-647,42,-647,8,-647,21,-647,22,-647,144,-647,147,-647,145,-647,146,-647,155,-647,158,-647,157,-647,156,-647,11,-647,57,-647,91,-647,40,-647,25,-647,97,-647,54,-647,35,-647,55,-647,102,-647,47,-647,36,-647,53,-647,60,-647,74,-647,72,-647,38,-647,71,-647,116,-647,115,-647,128,-647,129,-647,126,-647,138,-647,136,-647,118,-647,117,-647,131,-647,132,-647,133,-647,134,-647,130,-647});
states[35] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368},new int[]{-83,36,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,602,-268,578});
states[36] = new State(new int[]{116,172,115,173,128,174,129,175,126,176,6,-726,5,-726,120,-726,125,-726,123,-726,121,-726,124,-726,122,-726,137,-726,135,-726,16,-726,70,-726,92,-726,10,-726,98,-726,101,-726,33,-726,104,-726,2,-726,9,-726,12,-726,100,-726,99,-726,32,-726,85,-726,84,-726,83,-726,82,-726,81,-726,86,-726,13,-726,76,-726,51,-726,58,-726,141,-726,143,-726,80,-726,78,-726,160,-726,87,-726,45,-726,42,-726,8,-726,21,-726,22,-726,144,-726,147,-726,145,-726,146,-726,155,-726,158,-726,157,-726,156,-726,11,-726,57,-726,91,-726,40,-726,25,-726,97,-726,54,-726,35,-726,55,-726,102,-726,47,-726,36,-726,53,-726,60,-726,74,-726,72,-726,38,-726,71,-726,138,-726,136,-726,118,-726,117,-726,131,-726,132,-726,133,-726,134,-726,130,-726},new int[]{-197,37});
states[37] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589},new int[]{-82,38,-243,1522,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,602,-268,578});
states[38] = new State(new int[]{138,178,136,1512,118,1515,117,1516,131,1517,132,1518,133,1519,134,1520,130,1521,116,-728,115,-728,128,-728,129,-728,126,-728,6,-728,5,-728,120,-728,125,-728,123,-728,121,-728,124,-728,122,-728,137,-728,135,-728,16,-728,70,-728,92,-728,10,-728,98,-728,101,-728,33,-728,104,-728,2,-728,9,-728,12,-728,100,-728,99,-728,32,-728,85,-728,84,-728,83,-728,82,-728,81,-728,86,-728,13,-728,76,-728,51,-728,58,-728,141,-728,143,-728,80,-728,78,-728,160,-728,87,-728,45,-728,42,-728,8,-728,21,-728,22,-728,144,-728,147,-728,145,-728,146,-728,155,-728,158,-728,157,-728,156,-728,11,-728,57,-728,91,-728,40,-728,25,-728,97,-728,54,-728,35,-728,55,-728,102,-728,47,-728,36,-728,53,-728,60,-728,74,-728,72,-728,38,-728,71,-728},new int[]{-198,39});
states[39] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589},new int[]{-96,40,-269,41,-243,42,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-97,461});
states[40] = new State(-749);
states[41] = new State(-750);
states[42] = new State(-751);
states[43] = new State(-764);
states[44] = new State(new int[]{7,45,11,150,17,380,138,-765,136,-765,118,-765,117,-765,131,-765,132,-765,133,-765,134,-765,130,-765,116,-765,115,-765,128,-765,129,-765,126,-765,6,-765,5,-765,120,-765,125,-765,123,-765,121,-765,124,-765,122,-765,137,-765,135,-765,16,-765,70,-765,92,-765,10,-765,98,-765,101,-765,33,-765,104,-765,2,-765,9,-765,12,-765,100,-765,99,-765,32,-765,85,-765,84,-765,83,-765,82,-765,81,-765,86,-765,13,-765,76,-765,51,-765,58,-765,141,-765,143,-765,80,-765,78,-765,160,-765,87,-765,45,-765,42,-765,8,-765,21,-765,22,-765,144,-765,147,-765,145,-765,146,-765,155,-765,158,-765,157,-765,156,-765,57,-765,91,-765,40,-765,25,-765,97,-765,54,-765,35,-765,55,-765,102,-765,47,-765,36,-765,53,-765,60,-765,74,-765,72,-765,38,-765,71,-765,119,-762});
states[45] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,84,59,83,60,82,61,81,62,68,63,64,64,128,65,22,66,21,67,63,68,23,69,129,70,130,71,131,72,132,73,133,74,134,75,135,76,136,77,137,78,138,79,24,80,73,81,91,82,25,83,26,84,29,85,30,86,31,87,71,88,99,89,32,90,92,91,33,92,34,93,27,94,104,95,101,96,35,97,36,98,37,99,40,100,41,101,42,102,103,103,43,104,44,105,46,106,47,107,48,108,97,109,49,110,102,111,50,112,28,113,51,114,70,115,98,116,52,117,53,118,54,119,55,120,56,121,57,122,58,123,59,124,61,125,105,126,106,127,109,128,107,129,108,130,62,131,74,132,38,133,39,134,69,135,148,136,60,137,139,138,140,139,79,140,153,141,152,142,72,143,154,144,150,145,151,146,149,147,45,149},new int[]{-138,46,-147,47,-151,49,-152,52,-293,57,-150,58,-294,148});
states[46] = new State(-799);
states[47] = new State(-840);
states[48] = new State(-835);
states[49] = new State(-836);
states[50] = new State(-856);
states[51] = new State(-857);
states[52] = new State(-837);
states[53] = new State(-858);
states[54] = new State(-859);
states[55] = new State(-838);
states[56] = new State(-839);
states[57] = new State(-841);
states[58] = new State(-864);
states[59] = new State(-860);
states[60] = new State(-861);
states[61] = new State(-862);
states[62] = new State(-863);
states[63] = new State(-865);
states[64] = new State(-866);
states[65] = new State(-867);
states[66] = new State(-868);
states[67] = new State(-869);
states[68] = new State(-870);
states[69] = new State(-871);
states[70] = new State(-872);
states[71] = new State(-873);
states[72] = new State(-874);
states[73] = new State(-875);
states[74] = new State(-876);
states[75] = new State(-877);
states[76] = new State(-878);
states[77] = new State(-879);
states[78] = new State(-880);
states[79] = new State(-881);
states[80] = new State(-882);
states[81] = new State(-883);
states[82] = new State(-884);
states[83] = new State(-885);
states[84] = new State(-886);
states[85] = new State(-887);
states[86] = new State(-888);
states[87] = new State(-889);
states[88] = new State(-890);
states[89] = new State(-891);
states[90] = new State(-892);
states[91] = new State(-893);
states[92] = new State(-894);
states[93] = new State(-895);
states[94] = new State(-896);
states[95] = new State(-897);
states[96] = new State(-898);
states[97] = new State(-899);
states[98] = new State(-900);
states[99] = new State(-901);
states[100] = new State(-902);
states[101] = new State(-903);
states[102] = new State(-904);
states[103] = new State(-905);
states[104] = new State(-906);
states[105] = new State(-907);
states[106] = new State(-908);
states[107] = new State(-909);
states[108] = new State(-910);
states[109] = new State(-911);
states[110] = new State(-912);
states[111] = new State(-913);
states[112] = new State(-914);
states[113] = new State(-915);
states[114] = new State(-916);
states[115] = new State(-917);
states[116] = new State(-918);
states[117] = new State(-919);
states[118] = new State(-920);
states[119] = new State(-921);
states[120] = new State(-922);
states[121] = new State(-923);
states[122] = new State(-924);
states[123] = new State(-925);
states[124] = new State(-926);
states[125] = new State(-927);
states[126] = new State(-928);
states[127] = new State(-929);
states[128] = new State(-930);
states[129] = new State(-931);
states[130] = new State(-932);
states[131] = new State(-933);
states[132] = new State(-934);
states[133] = new State(-935);
states[134] = new State(-936);
states[135] = new State(-937);
states[136] = new State(-938);
states[137] = new State(-939);
states[138] = new State(-940);
states[139] = new State(-941);
states[140] = new State(-942);
states[141] = new State(-943);
states[142] = new State(-944);
states[143] = new State(-945);
states[144] = new State(-946);
states[145] = new State(-947);
states[146] = new State(-948);
states[147] = new State(-949);
states[148] = new State(-842);
states[149] = new State(-950);
states[150] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,833,8,713,21,294,22,299,76,446,11,368,40,589,5,598,18,669,37,678,44,682},new int[]{-71,151,-88,396,-87,27,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597,-323,834,-100,659,-324,677});
states[151] = new State(new int[]{12,152,100,153});
states[152] = new State(-801);
states[153] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,833,8,713,21,294,22,299,76,446,11,368,40,589,5,598,18,669,37,678,44,682},new int[]{-88,154,-87,27,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597,-323,834,-100,659,-324,677});
states[154] = new State(-592);
states[155] = new State(-604);
states[156] = new State(new int[]{120,157,125,158,123,159,121,160,124,161,122,162,137,163,135,164,16,-619,70,-619,92,-619,10,-619,98,-619,101,-619,33,-619,104,-619,2,-619,9,-619,12,-619,100,-619,99,-619,32,-619,85,-619,84,-619,83,-619,82,-619,81,-619,86,-619,13,-619,6,-619,76,-619,5,-619,51,-619,58,-619,141,-619,143,-619,80,-619,78,-619,160,-619,87,-619,45,-619,42,-619,8,-619,21,-619,22,-619,144,-619,147,-619,145,-619,146,-619,155,-619,158,-619,157,-619,156,-619,11,-619,57,-619,91,-619,40,-619,25,-619,97,-619,54,-619,35,-619,55,-619,102,-619,47,-619,36,-619,53,-619,60,-619,74,-619,72,-619,38,-619,71,-619,116,-619,115,-619,128,-619,129,-619,126,-619,138,-619,136,-619,118,-619,117,-619,131,-619,132,-619,133,-619,134,-619,130,-619},new int[]{-196,33});
states[157] = new State(-717);
states[158] = new State(-718);
states[159] = new State(-719);
states[160] = new State(-720);
states[161] = new State(-721);
states[162] = new State(-722);
states[163] = new State(-723);
states[164] = new State(new int[]{137,165});
states[165] = new State(-724);
states[166] = new State(new int[]{6,35,5,167,120,-646,125,-646,123,-646,121,-646,124,-646,122,-646,137,-646,135,-646,16,-646,70,-646,92,-646,10,-646,98,-646,101,-646,33,-646,104,-646,2,-646,9,-646,12,-646,100,-646,99,-646,32,-646,85,-646,84,-646,83,-646,82,-646,81,-646,86,-646,13,-646,76,-646});
states[167] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,5,-706,70,-706,92,-706,10,-706,98,-706,101,-706,33,-706,104,-706,2,-706,9,-706,12,-706,100,-706,99,-706,32,-706,84,-706,83,-706,82,-706,81,-706,6,-706},new int[]{-115,168,-105,603,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,602,-268,578});
states[168] = new State(new int[]{5,169,70,-709,92,-709,10,-709,98,-709,101,-709,33,-709,104,-709,2,-709,9,-709,12,-709,100,-709,99,-709,32,-709,85,-709,84,-709,83,-709,82,-709,81,-709,86,-709,6,-709,76,-709});
states[169] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368},new int[]{-105,170,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,602,-268,578});
states[170] = new State(new int[]{6,35,70,-711,92,-711,10,-711,98,-711,101,-711,33,-711,104,-711,2,-711,9,-711,12,-711,100,-711,99,-711,32,-711,85,-711,84,-711,83,-711,82,-711,81,-711,86,-711,76,-711});
states[171] = new State(new int[]{116,172,115,173,128,174,129,175,126,176,6,-725,5,-725,120,-725,125,-725,123,-725,121,-725,124,-725,122,-725,137,-725,135,-725,16,-725,70,-725,92,-725,10,-725,98,-725,101,-725,33,-725,104,-725,2,-725,9,-725,12,-725,100,-725,99,-725,32,-725,85,-725,84,-725,83,-725,82,-725,81,-725,86,-725,13,-725,76,-725,51,-725,58,-725,141,-725,143,-725,80,-725,78,-725,160,-725,87,-725,45,-725,42,-725,8,-725,21,-725,22,-725,144,-725,147,-725,145,-725,146,-725,155,-725,158,-725,157,-725,156,-725,11,-725,57,-725,91,-725,40,-725,25,-725,97,-725,54,-725,35,-725,55,-725,102,-725,47,-725,36,-725,53,-725,60,-725,74,-725,72,-725,38,-725,71,-725,138,-725,136,-725,118,-725,117,-725,131,-725,132,-725,133,-725,134,-725,130,-725},new int[]{-197,37});
states[172] = new State(-730);
states[173] = new State(-731);
states[174] = new State(-732);
states[175] = new State(-733);
states[176] = new State(-734);
states[177] = new State(new int[]{138,178,136,1512,118,1515,117,1516,131,1517,132,1518,133,1519,134,1520,130,1521,116,-727,115,-727,128,-727,129,-727,126,-727,6,-727,5,-727,120,-727,125,-727,123,-727,121,-727,124,-727,122,-727,137,-727,135,-727,16,-727,70,-727,92,-727,10,-727,98,-727,101,-727,33,-727,104,-727,2,-727,9,-727,12,-727,100,-727,99,-727,32,-727,85,-727,84,-727,83,-727,82,-727,81,-727,86,-727,13,-727,76,-727,51,-727,58,-727,141,-727,143,-727,80,-727,78,-727,160,-727,87,-727,45,-727,42,-727,8,-727,21,-727,22,-727,144,-727,147,-727,145,-727,146,-727,155,-727,158,-727,157,-727,156,-727,11,-727,57,-727,91,-727,40,-727,25,-727,97,-727,54,-727,35,-727,55,-727,102,-727,47,-727,36,-727,53,-727,60,-727,74,-727,72,-727,38,-727,71,-727},new int[]{-198,39});
states[178] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,24,494},new int[]{-284,179,-279,180,-180,181,-147,218,-151,49,-152,52,-271,500});
states[179] = new State(-741);
states[180] = new State(-742);
states[181] = new State(new int[]{7,182,4,185,123,187,8,-628,138,-628,136,-628,118,-628,117,-628,131,-628,132,-628,133,-628,134,-628,130,-628,116,-628,115,-628,128,-628,129,-628,126,-628,6,-628,5,-628,120,-628,125,-628,121,-628,124,-628,122,-628,137,-628,135,-628,16,-628,70,-628,92,-628,10,-628,98,-628,101,-628,33,-628,104,-628,2,-628,9,-628,12,-628,100,-628,99,-628,32,-628,85,-628,84,-628,83,-628,82,-628,81,-628,86,-628,13,-628,76,-628,51,-628,58,-628,141,-628,143,-628,80,-628,78,-628,160,-628,87,-628,45,-628,42,-628,21,-628,22,-628,144,-628,147,-628,145,-628,146,-628,155,-628,158,-628,157,-628,156,-628,11,-628,57,-628,91,-628,40,-628,25,-628,97,-628,54,-628,35,-628,55,-628,102,-628,47,-628,36,-628,53,-628,60,-628,74,-628,72,-628,38,-628,71,-628},new int[]{-299,184});
states[182] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,84,59,83,60,82,61,81,62,68,63,64,64,128,65,22,66,21,67,63,68,23,69,129,70,130,71,131,72,132,73,133,74,134,75,135,76,136,77,137,78,138,79,24,80,73,81,91,82,25,83,26,84,29,85,30,86,31,87,71,88,99,89,32,90,92,91,33,92,34,93,27,94,104,95,101,96,35,97,36,98,37,99,40,100,41,101,42,102,103,103,43,104,44,105,46,106,47,107,48,108,97,109,49,110,102,111,50,112,28,113,51,114,70,115,98,116,52,117,53,118,54,119,55,120,56,121,57,122,58,123,59,124,61,125,105,126,106,127,109,128,107,129,108,130,62,131,74,132,38,133,39,134,69,135,148,136,60,137,139,138,140,139,79,140,153,141,152,142,72,143,154,144,150,145,151,146,149,147,45,149},new int[]{-138,183,-147,47,-151,49,-152,52,-293,57,-150,58,-294,148});
states[183] = new State(-262);
states[184] = new State(-629);
states[185] = new State(new int[]{123,187},new int[]{-299,186});
states[186] = new State(-630);
states[187] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-297,188,-280,313,-273,192,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-282,1470,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,1471,-224,561,-223,562,-301,1472});
states[188] = new State(new int[]{121,189,100,190});
states[189] = new State(-236);
states[190] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-280,191,-273,192,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-282,1470,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,1471,-224,561,-223,562,-301,1472});
states[191] = new State(-240);
states[192] = new State(new int[]{13,193,121,-244,100,-244,120,-244,9,-244,10,-244,8,-244,138,-244,136,-244,118,-244,117,-244,131,-244,132,-244,133,-244,134,-244,130,-244,116,-244,115,-244,128,-244,129,-244,126,-244,6,-244,5,-244,125,-244,123,-244,124,-244,122,-244,137,-244,135,-244,16,-244,70,-244,92,-244,98,-244,101,-244,33,-244,104,-244,2,-244,12,-244,99,-244,32,-244,85,-244,84,-244,83,-244,82,-244,81,-244,86,-244,76,-244,51,-244,58,-244,141,-244,143,-244,80,-244,78,-244,160,-244,87,-244,45,-244,42,-244,21,-244,22,-244,144,-244,147,-244,145,-244,146,-244,155,-244,158,-244,157,-244,156,-244,11,-244,57,-244,91,-244,40,-244,25,-244,97,-244,54,-244,35,-244,55,-244,102,-244,47,-244,36,-244,53,-244,60,-244,74,-244,72,-244,38,-244,71,-244,127,-244,110,-244});
states[193] = new State(-245);
states[194] = new State(new int[]{6,1510,116,247,115,248,128,249,129,250,13,-249,121,-249,100,-249,120,-249,9,-249,10,-249,8,-249,138,-249,136,-249,118,-249,117,-249,131,-249,132,-249,133,-249,134,-249,130,-249,126,-249,5,-249,125,-249,123,-249,124,-249,122,-249,137,-249,135,-249,16,-249,70,-249,92,-249,98,-249,101,-249,33,-249,104,-249,2,-249,12,-249,99,-249,32,-249,85,-249,84,-249,83,-249,82,-249,81,-249,86,-249,76,-249,51,-249,58,-249,141,-249,143,-249,80,-249,78,-249,160,-249,87,-249,45,-249,42,-249,21,-249,22,-249,144,-249,147,-249,145,-249,146,-249,155,-249,158,-249,157,-249,156,-249,11,-249,57,-249,91,-249,40,-249,25,-249,97,-249,54,-249,35,-249,55,-249,102,-249,47,-249,36,-249,53,-249,60,-249,74,-249,72,-249,38,-249,71,-249,127,-249,110,-249},new int[]{-193,195});
states[195] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285},new int[]{-106,196,-107,315,-180,352,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283});
states[196] = new State(new int[]{118,254,117,255,131,256,132,257,133,258,134,259,130,260,6,-253,116,-253,115,-253,128,-253,129,-253,13,-253,121,-253,100,-253,120,-253,9,-253,10,-253,8,-253,138,-253,136,-253,126,-253,5,-253,125,-253,123,-253,124,-253,122,-253,137,-253,135,-253,16,-253,70,-253,92,-253,98,-253,101,-253,33,-253,104,-253,2,-253,12,-253,99,-253,32,-253,85,-253,84,-253,83,-253,82,-253,81,-253,86,-253,76,-253,51,-253,58,-253,141,-253,143,-253,80,-253,78,-253,160,-253,87,-253,45,-253,42,-253,21,-253,22,-253,144,-253,147,-253,145,-253,146,-253,155,-253,158,-253,157,-253,156,-253,11,-253,57,-253,91,-253,40,-253,25,-253,97,-253,54,-253,35,-253,55,-253,102,-253,47,-253,36,-253,53,-253,60,-253,74,-253,72,-253,38,-253,71,-253,127,-253,110,-253},new int[]{-195,197});
states[197] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285},new int[]{-107,198,-180,352,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283});
states[198] = new State(new int[]{8,199,118,-255,117,-255,131,-255,132,-255,133,-255,134,-255,130,-255,6,-255,116,-255,115,-255,128,-255,129,-255,13,-255,121,-255,100,-255,120,-255,9,-255,10,-255,138,-255,136,-255,126,-255,5,-255,125,-255,123,-255,124,-255,122,-255,137,-255,135,-255,16,-255,70,-255,92,-255,98,-255,101,-255,33,-255,104,-255,2,-255,12,-255,99,-255,32,-255,85,-255,84,-255,83,-255,82,-255,81,-255,86,-255,76,-255,51,-255,58,-255,141,-255,143,-255,80,-255,78,-255,160,-255,87,-255,45,-255,42,-255,21,-255,22,-255,144,-255,147,-255,145,-255,146,-255,155,-255,158,-255,157,-255,156,-255,11,-255,57,-255,91,-255,40,-255,25,-255,97,-255,54,-255,35,-255,55,-255,102,-255,47,-255,36,-255,53,-255,60,-255,74,-255,72,-255,38,-255,71,-255,127,-255,110,-255});
states[199] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,838,135,841,116,353,115,354,63,339,9,-186},new int[]{-75,200,-73,202,-94,1509,-90,205,-91,236,-81,246,-13,251,-10,261,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849,-242,855});
states[200] = new State(new int[]{9,201});
states[201] = new State(-260);
states[202] = new State(new int[]{100,203,9,-185,12,-185});
states[203] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,838,135,841,116,353,115,354,63,339},new int[]{-94,204,-90,205,-91,236,-81,246,-13,251,-10,261,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849,-242,855});
states[204] = new State(-188);
states[205] = new State(new int[]{13,206,16,210,6,1503,100,-189,9,-189,12,-189,5,-189});
states[206] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,838,135,841,116,353,115,354,63,339},new int[]{-90,207,-91,236,-81,246,-13,251,-10,261,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849,-242,855});
states[207] = new State(new int[]{5,208,13,206,16,210});
states[208] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,838,135,841,116,353,115,354,63,339},new int[]{-90,209,-91,236,-81,246,-13,251,-10,261,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849,-242,855});
states[209] = new State(new int[]{13,206,16,210,6,-123,100,-123,9,-123,12,-123,5,-123,92,-123,10,-123,98,-123,101,-123,33,-123,104,-123,2,-123,99,-123,32,-123,85,-123,84,-123,83,-123,82,-123,81,-123,86,-123});
states[210] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,838,135,841,116,353,115,354,63,339},new int[]{-91,211,-81,246,-13,251,-10,261,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849});
states[211] = new State(new int[]{120,237,125,238,123,239,121,240,124,241,122,242,137,243,135,244,13,-122,16,-122,6,-122,100,-122,9,-122,12,-122,5,-122,92,-122,10,-122,98,-122,101,-122,33,-122,104,-122,2,-122,99,-122,32,-122,85,-122,84,-122,83,-122,82,-122,81,-122,86,-122},new int[]{-192,212});
states[212] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,838,135,841,116,353,115,354,63,339},new int[]{-81,213,-13,251,-10,261,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849});
states[213] = new State(new int[]{116,247,115,248,128,249,129,250,120,-119,125,-119,123,-119,121,-119,124,-119,122,-119,137,-119,135,-119,13,-119,16,-119,6,-119,100,-119,9,-119,12,-119,5,-119,92,-119,10,-119,98,-119,101,-119,33,-119,104,-119,2,-119,99,-119,32,-119,85,-119,84,-119,83,-119,82,-119,81,-119,86,-119},new int[]{-193,214});
states[214] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,838,135,841,116,353,115,354,63,339},new int[]{-13,215,-10,261,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849});
states[215] = new State(new int[]{136,252,138,253,118,254,117,255,131,256,132,257,133,258,134,259,130,260,116,-133,115,-133,128,-133,129,-133,120,-133,125,-133,123,-133,121,-133,124,-133,122,-133,137,-133,135,-133,13,-133,16,-133,6,-133,100,-133,9,-133,12,-133,5,-133,92,-133,10,-133,98,-133,101,-133,33,-133,104,-133,2,-133,99,-133,32,-133,85,-133,84,-133,83,-133,82,-133,81,-133,86,-133},new int[]{-201,216,-195,219});
states[216] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-284,217,-180,181,-147,218,-151,49,-152,52});
states[217] = new State(-138);
states[218] = new State(-261);
states[219] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,838,135,841,116,353,115,354,63,339},new int[]{-10,220,-270,221,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-11,849});
states[220] = new State(-145);
states[221] = new State(-146);
states[222] = new State(new int[]{4,224,11,226,7,826,142,828,8,829,136,-156,138,-156,118,-156,117,-156,131,-156,132,-156,133,-156,134,-156,130,-156,116,-156,115,-156,128,-156,129,-156,120,-156,125,-156,123,-156,121,-156,124,-156,122,-156,137,-156,135,-156,13,-156,16,-156,6,-156,100,-156,9,-156,12,-156,5,-156,92,-156,10,-156,98,-156,101,-156,33,-156,104,-156,2,-156,99,-156,32,-156,85,-156,84,-156,83,-156,82,-156,81,-156,86,-156,119,-154},new int[]{-12,223});
states[223] = new State(-176);
states[224] = new State(new int[]{123,187},new int[]{-299,225});
states[225] = new State(-177);
states[226] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,838,135,841,116,353,115,354,63,339,5,1505,12,-186},new int[]{-121,227,-75,229,-90,231,-91,236,-81,246,-13,251,-10,261,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849,-242,855,-73,202,-94,1509});
states[227] = new State(new int[]{12,228});
states[228] = new State(-178);
states[229] = new State(new int[]{12,230});
states[230] = new State(-182);
states[231] = new State(new int[]{5,232,13,206,16,210,6,1503,100,-189,12,-189});
states[232] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,838,135,841,116,353,115,354,63,339,5,-708,12,-708},new int[]{-122,233,-90,1502,-91,236,-81,246,-13,251,-10,261,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849,-242,855});
states[233] = new State(new int[]{5,234,12,-713});
states[234] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,838,135,841,116,353,115,354,63,339},new int[]{-90,235,-91,236,-81,246,-13,251,-10,261,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849,-242,855});
states[235] = new State(new int[]{13,206,16,210,12,-715});
states[236] = new State(new int[]{120,237,125,238,123,239,121,240,124,241,122,242,137,243,135,244,13,-120,16,-120,6,-120,100,-120,9,-120,12,-120,5,-120,92,-120,10,-120,98,-120,101,-120,33,-120,104,-120,2,-120,99,-120,32,-120,85,-120,84,-120,83,-120,82,-120,81,-120,86,-120},new int[]{-192,212});
states[237] = new State(-124);
states[238] = new State(-125);
states[239] = new State(-126);
states[240] = new State(-127);
states[241] = new State(-128);
states[242] = new State(-129);
states[243] = new State(-130);
states[244] = new State(new int[]{137,245});
states[245] = new State(-131);
states[246] = new State(new int[]{116,247,115,248,128,249,129,250,120,-118,125,-118,123,-118,121,-118,124,-118,122,-118,137,-118,135,-118,13,-118,16,-118,6,-118,100,-118,9,-118,12,-118,5,-118,92,-118,10,-118,98,-118,101,-118,33,-118,104,-118,2,-118,99,-118,32,-118,85,-118,84,-118,83,-118,82,-118,81,-118,86,-118},new int[]{-193,214});
states[247] = new State(-134);
states[248] = new State(-135);
states[249] = new State(-136);
states[250] = new State(-137);
states[251] = new State(new int[]{136,252,138,253,118,254,117,255,131,256,132,257,133,258,134,259,130,260,116,-132,115,-132,128,-132,129,-132,120,-132,125,-132,123,-132,121,-132,124,-132,122,-132,137,-132,135,-132,13,-132,16,-132,6,-132,100,-132,9,-132,12,-132,5,-132,92,-132,10,-132,98,-132,101,-132,33,-132,104,-132,2,-132,99,-132,32,-132,85,-132,84,-132,83,-132,82,-132,81,-132,86,-132},new int[]{-201,216,-195,219});
states[252] = new State(-735);
states[253] = new State(-736);
states[254] = new State(-147);
states[255] = new State(-148);
states[256] = new State(-149);
states[257] = new State(-150);
states[258] = new State(-151);
states[259] = new State(-152);
states[260] = new State(-153);
states[261] = new State(-142);
states[262] = new State(-170);
states[263] = new State(new int[]{26,1491,143,48,85,50,86,51,80,53,78,54,160,55,87,56,11,-859,17,-859,8,-859,7,-859,142,-859,4,-859,15,-859,110,-859,111,-859,112,-859,113,-859,114,-859,92,-859,10,-859,5,-859,98,-859,101,-859,33,-859,104,-859,2,-859,127,-859,138,-859,136,-859,118,-859,117,-859,131,-859,132,-859,133,-859,134,-859,130,-859,116,-859,115,-859,128,-859,129,-859,126,-859,6,-859,120,-859,125,-859,123,-859,121,-859,124,-859,122,-859,137,-859,135,-859,16,-859,70,-859,9,-859,12,-859,100,-859,99,-859,32,-859,84,-859,83,-859,82,-859,81,-859,13,-859,119,-859,76,-859,51,-859,58,-859,141,-859,45,-859,42,-859,21,-859,22,-859,144,-859,147,-859,145,-859,146,-859,155,-859,158,-859,157,-859,156,-859,57,-859,91,-859,40,-859,25,-859,97,-859,54,-859,35,-859,55,-859,102,-859,47,-859,36,-859,53,-859,60,-859,74,-859,72,-859,38,-859,71,-859},new int[]{-284,264,-180,181,-147,218,-151,49,-152,52});
states[264] = new State(new int[]{11,266,8,1488,92,-644,10,-644,98,-644,101,-644,33,-644,104,-644,2,-644,138,-644,136,-644,118,-644,117,-644,131,-644,132,-644,133,-644,134,-644,130,-644,116,-644,115,-644,128,-644,129,-644,126,-644,6,-644,5,-644,120,-644,125,-644,123,-644,121,-644,124,-644,122,-644,137,-644,135,-644,16,-644,70,-644,9,-644,12,-644,100,-644,99,-644,32,-644,85,-644,84,-644,83,-644,82,-644,81,-644,86,-644,13,-644,76,-644,51,-644,58,-644,141,-644,143,-644,80,-644,78,-644,160,-644,87,-644,45,-644,42,-644,21,-644,22,-644,144,-644,147,-644,145,-644,146,-644,155,-644,158,-644,157,-644,156,-644,57,-644,91,-644,40,-644,25,-644,97,-644,54,-644,35,-644,55,-644,102,-644,47,-644,36,-644,53,-644,60,-644,74,-644,72,-644,38,-644,71,-644},new int[]{-70,265});
states[265] = new State(-635);
states[266] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,833,8,713,21,294,22,299,76,446,11,368,40,589,5,598,18,669,37,678,44,682,12,-812},new int[]{-66,267,-71,640,-88,396,-87,27,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597,-323,834,-100,659,-324,677});
states[267] = new State(new int[]{12,268});
states[268] = new State(new int[]{8,270,92,-634,10,-634,98,-634,101,-634,33,-634,104,-634,2,-634,138,-634,136,-634,118,-634,117,-634,131,-634,132,-634,133,-634,134,-634,130,-634,116,-634,115,-634,128,-634,129,-634,126,-634,6,-634,5,-634,120,-634,125,-634,123,-634,121,-634,124,-634,122,-634,137,-634,135,-634,16,-634,70,-634,9,-634,12,-634,100,-634,99,-634,32,-634,85,-634,84,-634,83,-634,82,-634,81,-634,86,-634,13,-634,76,-634,51,-634,58,-634,141,-634,143,-634,80,-634,78,-634,160,-634,87,-634,45,-634,42,-634,21,-634,22,-634,144,-634,147,-634,145,-634,146,-634,155,-634,158,-634,157,-634,156,-634,11,-634,57,-634,91,-634,40,-634,25,-634,97,-634,54,-634,35,-634,55,-634,102,-634,47,-634,36,-634,53,-634,60,-634,74,-634,72,-634,38,-634,71,-634},new int[]{-5,269});
states[269] = new State(-636);
states[270] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,1000,135,841,116,353,115,354,63,339,9,-199},new int[]{-65,271,-64,273,-85,1003,-84,276,-90,277,-91,236,-81,246,-13,251,-10,261,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849,-242,855,-95,1004,-244,1005});
states[271] = new State(new int[]{9,272});
states[272] = new State(-633);
states[273] = new State(new int[]{100,274,9,-200});
states[274] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,1000,135,841,116,353,115,354,63,339},new int[]{-85,275,-84,276,-90,277,-91,236,-81,246,-13,251,-10,261,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849,-242,855,-95,1004,-244,1005});
states[275] = new State(-202);
states[276] = new State(-418);
states[277] = new State(new int[]{13,206,16,210,100,-195,9,-195,92,-195,10,-195,98,-195,101,-195,33,-195,104,-195,2,-195,12,-195,99,-195,32,-195,85,-195,84,-195,83,-195,82,-195,81,-195,86,-195});
states[278] = new State(-171);
states[279] = new State(new int[]{144,281,147,282,7,-823,11,-823,17,-823,138,-823,136,-823,118,-823,117,-823,131,-823,132,-823,133,-823,134,-823,130,-823,116,-823,115,-823,128,-823,129,-823,126,-823,6,-823,5,-823,120,-823,125,-823,123,-823,121,-823,124,-823,122,-823,137,-823,135,-823,16,-823,70,-823,92,-823,10,-823,98,-823,101,-823,33,-823,104,-823,2,-823,9,-823,12,-823,100,-823,99,-823,32,-823,85,-823,84,-823,83,-823,82,-823,81,-823,86,-823,13,-823,119,-823,76,-823,51,-823,58,-823,141,-823,143,-823,80,-823,78,-823,160,-823,87,-823,45,-823,42,-823,8,-823,21,-823,22,-823,145,-823,146,-823,155,-823,158,-823,157,-823,156,-823,57,-823,91,-823,40,-823,25,-823,97,-823,54,-823,35,-823,55,-823,102,-823,47,-823,36,-823,53,-823,60,-823,74,-823,72,-823,38,-823,71,-823,127,-823,110,-823,4,-823,142,-823},new int[]{-166,280});
states[280] = new State(-827);
states[281] = new State(-821);
states[282] = new State(-822);
states[283] = new State(-826);
states[284] = new State(-824);
states[285] = new State(-825);
states[286] = new State(-172);
states[287] = new State(-191);
states[288] = new State(-192);
states[289] = new State(-193);
states[290] = new State(-194);
states[291] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-147,292,-151,49,-152,52});
states[292] = new State(-173);
states[293] = new State(-174);
states[294] = new State(new int[]{8,295});
states[295] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-284,296,-180,181,-147,218,-151,49,-152,52});
states[296] = new State(new int[]{9,297});
states[297] = new State(-621);
states[298] = new State(-175);
states[299] = new State(new int[]{8,300});
states[300] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-284,301,-283,303,-180,305,-147,218,-151,49,-152,52});
states[301] = new State(new int[]{9,302});
states[302] = new State(-622);
states[303] = new State(new int[]{9,304});
states[304] = new State(-623);
states[305] = new State(new int[]{7,182,4,306,123,308,125,1486,9,-628},new int[]{-299,184,-300,1487});
states[306] = new State(new int[]{123,308,125,1486},new int[]{-299,186,-300,307});
states[307] = new State(-627);
states[308] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,24,494,48,502,49,549,34,553,73,557,44,563,37,604,121,-243,100,-243},new int[]{-297,188,-298,309,-280,313,-273,192,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-282,1470,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,1471,-224,561,-223,562,-301,1472,-281,1485});
states[309] = new State(new int[]{121,310,100,311});
states[310] = new State(-238);
states[311] = new State(-243,new int[]{-281,312});
states[312] = new State(-242);
states[313] = new State(-239);
states[314] = new State(new int[]{118,254,117,255,131,256,132,257,133,258,134,259,130,260,6,-252,116,-252,115,-252,128,-252,129,-252,13,-252,121,-252,100,-252,120,-252,9,-252,10,-252,8,-252,138,-252,136,-252,126,-252,5,-252,125,-252,123,-252,124,-252,122,-252,137,-252,135,-252,16,-252,70,-252,92,-252,98,-252,101,-252,33,-252,104,-252,2,-252,12,-252,99,-252,32,-252,85,-252,84,-252,83,-252,82,-252,81,-252,86,-252,76,-252,51,-252,58,-252,141,-252,143,-252,80,-252,78,-252,160,-252,87,-252,45,-252,42,-252,21,-252,22,-252,144,-252,147,-252,145,-252,146,-252,155,-252,158,-252,157,-252,156,-252,11,-252,57,-252,91,-252,40,-252,25,-252,97,-252,54,-252,35,-252,55,-252,102,-252,47,-252,36,-252,53,-252,60,-252,74,-252,72,-252,38,-252,71,-252,127,-252,110,-252},new int[]{-195,197});
states[315] = new State(new int[]{8,199,118,-254,117,-254,131,-254,132,-254,133,-254,134,-254,130,-254,6,-254,116,-254,115,-254,128,-254,129,-254,13,-254,121,-254,100,-254,120,-254,9,-254,10,-254,138,-254,136,-254,126,-254,5,-254,125,-254,123,-254,124,-254,122,-254,137,-254,135,-254,16,-254,70,-254,92,-254,98,-254,101,-254,33,-254,104,-254,2,-254,12,-254,99,-254,32,-254,85,-254,84,-254,83,-254,82,-254,81,-254,86,-254,76,-254,51,-254,58,-254,141,-254,143,-254,80,-254,78,-254,160,-254,87,-254,45,-254,42,-254,21,-254,22,-254,144,-254,147,-254,145,-254,146,-254,155,-254,158,-254,157,-254,156,-254,11,-254,57,-254,91,-254,40,-254,25,-254,97,-254,54,-254,35,-254,55,-254,102,-254,47,-254,36,-254,53,-254,60,-254,74,-254,72,-254,38,-254,71,-254,127,-254,110,-254});
states[316] = new State(new int[]{7,182,127,317,123,187,8,-256,118,-256,117,-256,131,-256,132,-256,133,-256,134,-256,130,-256,6,-256,116,-256,115,-256,128,-256,129,-256,13,-256,121,-256,100,-256,120,-256,9,-256,10,-256,138,-256,136,-256,126,-256,5,-256,125,-256,124,-256,122,-256,137,-256,135,-256,16,-256,70,-256,92,-256,98,-256,101,-256,33,-256,104,-256,2,-256,12,-256,99,-256,32,-256,85,-256,84,-256,83,-256,82,-256,81,-256,86,-256,76,-256,51,-256,58,-256,141,-256,143,-256,80,-256,78,-256,160,-256,87,-256,45,-256,42,-256,21,-256,22,-256,144,-256,147,-256,145,-256,146,-256,155,-256,158,-256,157,-256,156,-256,11,-256,57,-256,91,-256,40,-256,25,-256,97,-256,54,-256,35,-256,55,-256,102,-256,47,-256,36,-256,53,-256,60,-256,74,-256,72,-256,38,-256,71,-256,110,-256},new int[]{-299,636});
states[317] = new State(new int[]{8,319,143,48,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-280,318,-273,192,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-282,1470,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,1471,-224,561,-223,562,-301,1472});
states[318] = new State(-289);
states[319] = new State(new int[]{9,320,143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-80,325,-78,331,-277,332,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562});
states[320] = new State(new int[]{127,321,121,-293,100,-293,120,-293,9,-293,10,-293,8,-293,138,-293,136,-293,118,-293,117,-293,131,-293,132,-293,133,-293,134,-293,130,-293,116,-293,115,-293,128,-293,129,-293,126,-293,6,-293,5,-293,125,-293,123,-293,124,-293,122,-293,137,-293,135,-293,16,-293,70,-293,92,-293,98,-293,101,-293,33,-293,104,-293,2,-293,12,-293,99,-293,32,-293,85,-293,84,-293,83,-293,82,-293,81,-293,86,-293,13,-293,76,-293,51,-293,58,-293,141,-293,143,-293,80,-293,78,-293,160,-293,87,-293,45,-293,42,-293,21,-293,22,-293,144,-293,147,-293,145,-293,146,-293,155,-293,158,-293,157,-293,156,-293,11,-293,57,-293,91,-293,40,-293,25,-293,97,-293,54,-293,35,-293,55,-293,102,-293,47,-293,36,-293,53,-293,60,-293,74,-293,72,-293,38,-293,71,-293,110,-293});
states[321] = new State(new int[]{8,323,143,48,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-280,322,-273,192,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-282,1470,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,1471,-224,561,-223,562,-301,1472});
states[322] = new State(-291);
states[323] = new State(new int[]{9,324,143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-80,325,-78,331,-277,332,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562});
states[324] = new State(new int[]{127,321,121,-295,100,-295,120,-295,9,-295,10,-295,8,-295,138,-295,136,-295,118,-295,117,-295,131,-295,132,-295,133,-295,134,-295,130,-295,116,-295,115,-295,128,-295,129,-295,126,-295,6,-295,5,-295,125,-295,123,-295,124,-295,122,-295,137,-295,135,-295,16,-295,70,-295,92,-295,98,-295,101,-295,33,-295,104,-295,2,-295,12,-295,99,-295,32,-295,85,-295,84,-295,83,-295,82,-295,81,-295,86,-295,13,-295,76,-295,51,-295,58,-295,141,-295,143,-295,80,-295,78,-295,160,-295,87,-295,45,-295,42,-295,21,-295,22,-295,144,-295,147,-295,145,-295,146,-295,155,-295,158,-295,157,-295,156,-295,11,-295,57,-295,91,-295,40,-295,25,-295,97,-295,54,-295,35,-295,55,-295,102,-295,47,-295,36,-295,53,-295,60,-295,74,-295,72,-295,38,-295,71,-295,110,-295});
states[325] = new State(new int[]{9,326,100,359});
states[326] = new State(new int[]{127,327,13,-251,121,-251,100,-251,120,-251,9,-251,10,-251,8,-251,138,-251,136,-251,118,-251,117,-251,131,-251,132,-251,133,-251,134,-251,130,-251,116,-251,115,-251,128,-251,129,-251,126,-251,6,-251,5,-251,125,-251,123,-251,124,-251,122,-251,137,-251,135,-251,16,-251,70,-251,92,-251,98,-251,101,-251,33,-251,104,-251,2,-251,12,-251,99,-251,32,-251,85,-251,84,-251,83,-251,82,-251,81,-251,86,-251,76,-251,51,-251,58,-251,141,-251,143,-251,80,-251,78,-251,160,-251,87,-251,45,-251,42,-251,21,-251,22,-251,144,-251,147,-251,145,-251,146,-251,155,-251,158,-251,157,-251,156,-251,11,-251,57,-251,91,-251,40,-251,25,-251,97,-251,54,-251,35,-251,55,-251,102,-251,47,-251,36,-251,53,-251,60,-251,74,-251,72,-251,38,-251,71,-251,110,-251});
states[327] = new State(new int[]{8,329,143,48,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-280,328,-273,192,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-282,1470,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,1471,-224,561,-223,562,-301,1472});
states[328] = new State(-292);
states[329] = new State(new int[]{9,330,143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-80,325,-78,331,-277,332,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562});
states[330] = new State(new int[]{127,321,121,-296,100,-296,120,-296,9,-296,10,-296,8,-296,138,-296,136,-296,118,-296,117,-296,131,-296,132,-296,133,-296,134,-296,130,-296,116,-296,115,-296,128,-296,129,-296,126,-296,6,-296,5,-296,125,-296,123,-296,124,-296,122,-296,137,-296,135,-296,16,-296,70,-296,92,-296,98,-296,101,-296,33,-296,104,-296,2,-296,12,-296,99,-296,32,-296,85,-296,84,-296,83,-296,82,-296,81,-296,86,-296,13,-296,76,-296,51,-296,58,-296,141,-296,143,-296,80,-296,78,-296,160,-296,87,-296,45,-296,42,-296,21,-296,22,-296,144,-296,147,-296,145,-296,146,-296,155,-296,158,-296,157,-296,156,-296,11,-296,57,-296,91,-296,40,-296,25,-296,97,-296,54,-296,35,-296,55,-296,102,-296,47,-296,36,-296,53,-296,60,-296,74,-296,72,-296,38,-296,71,-296,110,-296});
states[331] = new State(-263);
states[332] = new State(new int[]{120,333,9,-265,100,-265});
states[333] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589,5,598},new int[]{-87,334,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597});
states[334] = new State(new int[]{70,28,9,-266,100,-266});
states[335] = new State(-746);
states[336] = new State(-772);
states[337] = new State(-773);
states[338] = new State(-766);
states[339] = new State(new int[]{8,340});
states[340] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,356},new int[]{-285,341,-284,343,-180,344,-147,218,-151,49,-152,52,-274,346,-273,347,-93,194,-106,314,-107,315,-16,349,-199,350,-165,355,-167,279,-166,283,-301,1484});
states[341] = new State(new int[]{9,342});
states[342] = new State(-760);
states[343] = new State(-631);
states[344] = new State(new int[]{7,182,4,185,123,187,9,-628,8,-256,118,-256,117,-256,131,-256,132,-256,133,-256,134,-256,130,-256,6,-256,116,-256,115,-256,128,-256,129,-256,13,-256},new int[]{-299,345});
states[345] = new State(new int[]{9,-629,13,-235});
states[346] = new State(-632);
states[347] = new State(new int[]{13,348});
states[348] = new State(-226);
states[349] = new State(-257);
states[350] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285},new int[]{-107,351,-180,352,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283});
states[351] = new State(new int[]{8,199,118,-258,117,-258,131,-258,132,-258,133,-258,134,-258,130,-258,6,-258,116,-258,115,-258,128,-258,129,-258,13,-258,121,-258,100,-258,120,-258,9,-258,10,-258,138,-258,136,-258,126,-258,5,-258,125,-258,123,-258,124,-258,122,-258,137,-258,135,-258,16,-258,70,-258,92,-258,98,-258,101,-258,33,-258,104,-258,2,-258,12,-258,99,-258,32,-258,85,-258,84,-258,83,-258,82,-258,81,-258,86,-258,76,-258,51,-258,58,-258,141,-258,143,-258,80,-258,78,-258,160,-258,87,-258,45,-258,42,-258,21,-258,22,-258,144,-258,147,-258,145,-258,146,-258,155,-258,158,-258,157,-258,156,-258,11,-258,57,-258,91,-258,40,-258,25,-258,97,-258,54,-258,35,-258,55,-258,102,-258,47,-258,36,-258,53,-258,60,-258,74,-258,72,-258,38,-258,71,-258,127,-258,110,-258});
states[352] = new State(new int[]{7,182,8,-256,118,-256,117,-256,131,-256,132,-256,133,-256,134,-256,130,-256,6,-256,116,-256,115,-256,128,-256,129,-256,13,-256,121,-256,100,-256,120,-256,9,-256,10,-256,138,-256,136,-256,126,-256,5,-256,125,-256,123,-256,124,-256,122,-256,137,-256,135,-256,16,-256,70,-256,92,-256,98,-256,101,-256,33,-256,104,-256,2,-256,12,-256,99,-256,32,-256,85,-256,84,-256,83,-256,82,-256,81,-256,86,-256,76,-256,51,-256,58,-256,141,-256,143,-256,80,-256,78,-256,160,-256,87,-256,45,-256,42,-256,21,-256,22,-256,144,-256,147,-256,145,-256,146,-256,155,-256,158,-256,157,-256,156,-256,11,-256,57,-256,91,-256,40,-256,25,-256,97,-256,54,-256,35,-256,55,-256,102,-256,47,-256,36,-256,53,-256,60,-256,74,-256,72,-256,38,-256,71,-256,127,-256,110,-256});
states[353] = new State(-168);
states[354] = new State(-169);
states[355] = new State(-259);
states[356] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-80,357,-78,331,-277,332,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562});
states[357] = new State(new int[]{9,358,100,359});
states[358] = new State(-251);
states[359] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-78,360,-277,332,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562});
states[360] = new State(-264);
states[361] = new State(new int[]{13,348,120,-228,9,-228,100,-228,10,-228,121,-228,8,-228,138,-228,136,-228,118,-228,117,-228,131,-228,132,-228,133,-228,134,-228,130,-228,116,-228,115,-228,128,-228,129,-228,126,-228,6,-228,5,-228,125,-228,123,-228,124,-228,122,-228,137,-228,135,-228,16,-228,70,-228,92,-228,98,-228,101,-228,33,-228,104,-228,2,-228,12,-228,99,-228,32,-228,85,-228,84,-228,83,-228,82,-228,81,-228,86,-228,76,-228,51,-228,58,-228,141,-228,143,-228,80,-228,78,-228,160,-228,87,-228,45,-228,42,-228,21,-228,22,-228,144,-228,147,-228,145,-228,146,-228,155,-228,158,-228,157,-228,156,-228,11,-228,57,-228,91,-228,40,-228,25,-228,97,-228,54,-228,35,-228,55,-228,102,-228,47,-228,36,-228,53,-228,60,-228,74,-228,72,-228,38,-228,71,-228,127,-228,110,-228});
states[362] = new State(new int[]{11,363,7,-835,127,-835,123,-835,8,-835,118,-835,117,-835,131,-835,132,-835,133,-835,134,-835,130,-835,6,-835,116,-835,115,-835,128,-835,129,-835,13,-835,120,-835,9,-835,100,-835,10,-835,121,-835,138,-835,136,-835,126,-835,5,-835,125,-835,124,-835,122,-835,137,-835,135,-835,16,-835,70,-835,92,-835,98,-835,101,-835,33,-835,104,-835,2,-835,12,-835,99,-835,32,-835,85,-835,84,-835,83,-835,82,-835,81,-835,86,-835,76,-835,51,-835,58,-835,141,-835,143,-835,80,-835,78,-835,160,-835,87,-835,45,-835,42,-835,21,-835,22,-835,144,-835,147,-835,145,-835,146,-835,155,-835,158,-835,157,-835,156,-835,57,-835,91,-835,40,-835,25,-835,97,-835,54,-835,35,-835,55,-835,102,-835,47,-835,36,-835,53,-835,60,-835,74,-835,72,-835,38,-835,71,-835,110,-835});
states[363] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,838,135,841,116,353,115,354,63,339},new int[]{-90,364,-91,236,-81,246,-13,251,-10,261,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849,-242,855});
states[364] = new State(new int[]{12,365,13,206,16,210});
states[365] = new State(-284);
states[366] = new State(-157);
states[367] = new State(-166);
states[368] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589,5,598,12,-816},new int[]{-68,369,-77,371,-92,449,-87,374,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597});
states[369] = new State(new int[]{12,370});
states[370] = new State(-165);
states[371] = new State(new int[]{100,372,12,-815,76,-815});
states[372] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589,5,598},new int[]{-92,373,-87,374,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597});
states[373] = new State(-818);
states[374] = new State(new int[]{70,28,6,375,100,-819,12,-819,76,-819});
states[375] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589,5,598},new int[]{-87,376,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597});
states[376] = new State(new int[]{70,28,100,-820,12,-820,76,-820});
states[377] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368},new int[]{-96,378,-15,379,-165,336,-167,279,-166,283,-16,337,-56,338,-199,389,-113,390,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458});
states[378] = new State(-767);
states[379] = new State(new int[]{7,45,11,150,17,380,138,-765,136,-765,118,-765,117,-765,131,-765,132,-765,133,-765,134,-765,130,-765,116,-765,115,-765,128,-765,129,-765,126,-765,6,-765,5,-765,120,-765,125,-765,123,-765,121,-765,124,-765,122,-765,137,-765,135,-765,16,-765,70,-765,92,-765,10,-765,98,-765,101,-765,33,-765,104,-765,2,-765,9,-765,12,-765,100,-765,99,-765,32,-765,85,-765,84,-765,83,-765,82,-765,81,-765,86,-765,13,-765,76,-765,51,-765,58,-765,141,-765,143,-765,80,-765,78,-765,160,-765,87,-765,45,-765,42,-765,8,-765,21,-765,22,-765,144,-765,147,-765,145,-765,146,-765,155,-765,158,-765,157,-765,156,-765,57,-765,91,-765,40,-765,25,-765,97,-765,54,-765,35,-765,55,-765,102,-765,47,-765,36,-765,53,-765,60,-765,74,-765,72,-765,38,-765,71,-765});
states[380] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,5,598},new int[]{-120,381,-105,383,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,602,-268,578});
states[381] = new State(new int[]{12,382});
states[382] = new State(-803);
states[383] = new State(new int[]{5,167,6,35});
states[384] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368},new int[]{-96,385,-269,386,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-97,461});
states[385] = new State(-768);
states[386] = new State(-745);
states[387] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368},new int[]{-96,388,-15,379,-165,336,-167,279,-166,283,-16,337,-56,338,-199,389,-113,390,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458});
states[388] = new State(-769);
states[389] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368},new int[]{-96,385,-15,379,-165,336,-167,279,-166,283,-16,337,-56,338,-199,389,-113,390,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458});
states[390] = new State(-770);
states[391] = new State(new int[]{141,1483,143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405,42,435,8,1113,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368},new int[]{-111,392,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728});
states[392] = new State(new int[]{11,393,17,400,8,702,7,1108,142,1110,4,1111,110,-776,111,-776,112,-776,113,-776,114,-776,92,-776,10,-776,98,-776,101,-776,33,-776,104,-776,2,-776,138,-776,136,-776,118,-776,117,-776,131,-776,132,-776,133,-776,134,-776,130,-776,116,-776,115,-776,128,-776,129,-776,126,-776,6,-776,5,-776,120,-776,125,-776,123,-776,121,-776,124,-776,122,-776,137,-776,135,-776,16,-776,70,-776,9,-776,12,-776,100,-776,99,-776,32,-776,85,-776,84,-776,83,-776,82,-776,81,-776,86,-776,13,-776,119,-776,76,-776,51,-776,58,-776,141,-776,143,-776,80,-776,78,-776,160,-776,87,-776,45,-776,42,-776,21,-776,22,-776,144,-776,147,-776,145,-776,146,-776,155,-776,158,-776,157,-776,156,-776,57,-776,91,-776,40,-776,25,-776,97,-776,54,-776,35,-776,55,-776,102,-776,47,-776,36,-776,53,-776,60,-776,74,-776,72,-776,38,-776,71,-776});
states[393] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,833,8,713,21,294,22,299,76,446,11,368,40,589,5,598,18,669,37,678,44,682},new int[]{-71,394,-88,396,-87,27,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597,-323,834,-100,659,-324,677});
states[394] = new State(new int[]{12,395,100,153});
states[395] = new State(-800);
states[396] = new State(-591);
states[397] = new State(new int[]{138,-770,136,-770,118,-770,117,-770,131,-770,132,-770,133,-770,134,-770,130,-770,116,-770,115,-770,128,-770,129,-770,126,-770,6,-770,5,-770,120,-770,125,-770,123,-770,121,-770,124,-770,122,-770,137,-770,135,-770,16,-770,70,-770,92,-770,10,-770,98,-770,101,-770,33,-770,104,-770,2,-770,9,-770,12,-770,100,-770,99,-770,32,-770,85,-770,84,-770,83,-770,82,-770,81,-770,86,-770,13,-770,76,-770,51,-770,58,-770,141,-770,143,-770,80,-770,78,-770,160,-770,87,-770,45,-770,42,-770,8,-770,21,-770,22,-770,144,-770,147,-770,145,-770,146,-770,155,-770,158,-770,157,-770,156,-770,11,-770,57,-770,91,-770,40,-770,25,-770,97,-770,54,-770,35,-770,55,-770,102,-770,47,-770,36,-770,53,-770,60,-770,74,-770,72,-770,38,-770,71,-770,119,-763});
states[398] = new State(-780);
states[399] = new State(new int[]{11,393,17,400,8,702,7,1108,142,1110,4,1111,15,1118,110,-777,111,-777,112,-777,113,-777,114,-777,92,-777,10,-777,98,-777,101,-777,33,-777,104,-777,2,-777,138,-777,136,-777,118,-777,117,-777,131,-777,132,-777,133,-777,134,-777,130,-777,116,-777,115,-777,128,-777,129,-777,126,-777,6,-777,5,-777,120,-777,125,-777,123,-777,121,-777,124,-777,122,-777,137,-777,135,-777,16,-777,70,-777,9,-777,12,-777,100,-777,99,-777,32,-777,85,-777,84,-777,83,-777,82,-777,81,-777,86,-777,13,-777,119,-777,76,-777,51,-777,58,-777,141,-777,143,-777,80,-777,78,-777,160,-777,87,-777,45,-777,42,-777,21,-777,22,-777,144,-777,147,-777,145,-777,146,-777,155,-777,158,-777,157,-777,156,-777,57,-777,91,-777,40,-777,25,-777,97,-777,54,-777,35,-777,55,-777,102,-777,47,-777,36,-777,53,-777,60,-777,74,-777,72,-777,38,-777,71,-777});
states[400] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,5,598},new int[]{-120,401,-105,383,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,602,-268,578});
states[401] = new State(new int[]{12,402});
states[402] = new State(-802);
states[403] = new State(-792);
states[404] = new State(-793);
states[405] = new State(new int[]{115,407,116,408,117,409,118,410,120,411,121,412,122,413,123,414,124,415,125,416,128,417,129,418,130,419,131,420,132,421,133,422,134,423,135,424,137,425,139,426,140,427,110,429,111,430,112,431,113,432,114,433,119,434},new int[]{-200,406,-194,428});
states[406] = new State(-828);
states[407] = new State(-951);
states[408] = new State(-952);
states[409] = new State(-953);
states[410] = new State(-954);
states[411] = new State(-955);
states[412] = new State(-956);
states[413] = new State(-957);
states[414] = new State(-958);
states[415] = new State(-959);
states[416] = new State(-960);
states[417] = new State(-961);
states[418] = new State(-962);
states[419] = new State(-963);
states[420] = new State(-964);
states[421] = new State(-965);
states[422] = new State(-966);
states[423] = new State(-967);
states[424] = new State(-968);
states[425] = new State(-969);
states[426] = new State(-970);
states[427] = new State(-971);
states[428] = new State(-972);
states[429] = new State(-974);
states[430] = new State(-975);
states[431] = new State(-976);
states[432] = new State(-977);
states[433] = new State(-978);
states[434] = new State(-973);
states[435] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-147,436,-151,49,-152,52});
states[436] = new State(-794);
states[437] = new State(new int[]{53,687,56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589,5,598,18,669},new int[]{-87,438,-360,440,-102,532,-101,1103,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597,-359,1104,-100,1105});
states[438] = new State(new int[]{9,439,70,28});
states[439] = new State(-795);
states[440] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589,5,598,53,1114},new int[]{-87,441,-359,443,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597});
states[441] = new State(new int[]{9,442,70,28});
states[442] = new State(-796);
states[443] = new State(-790);
states[444] = new State(-797);
states[445] = new State(-798);
states[446] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589,5,598},new int[]{-68,447,-77,371,-92,449,-87,374,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597});
states[447] = new State(new int[]{76,448});
states[448] = new State(-804);
states[449] = new State(-817);
states[450] = new State(-805);
states[451] = new State(-806);
states[452] = new State(new int[]{7,453,138,-771,136,-771,118,-771,117,-771,131,-771,132,-771,133,-771,134,-771,130,-771,116,-771,115,-771,128,-771,129,-771,126,-771,6,-771,5,-771,120,-771,125,-771,123,-771,121,-771,124,-771,122,-771,137,-771,135,-771,16,-771,70,-771,92,-771,10,-771,98,-771,101,-771,33,-771,104,-771,2,-771,9,-771,12,-771,100,-771,99,-771,32,-771,85,-771,84,-771,83,-771,82,-771,81,-771,86,-771,13,-771,76,-771,51,-771,58,-771,141,-771,143,-771,80,-771,78,-771,160,-771,87,-771,45,-771,42,-771,8,-771,21,-771,22,-771,144,-771,147,-771,145,-771,146,-771,155,-771,158,-771,157,-771,156,-771,11,-771,57,-771,91,-771,40,-771,25,-771,97,-771,54,-771,35,-771,55,-771,102,-771,47,-771,36,-771,53,-771,60,-771,74,-771,72,-771,38,-771,71,-771});
states[453] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,84,59,83,60,82,61,81,62,68,63,64,64,128,65,22,66,21,67,63,68,23,69,129,70,130,71,131,72,132,73,133,74,134,75,135,76,136,77,137,78,138,79,24,80,73,81,91,82,25,83,26,84,29,85,30,86,31,87,71,88,99,89,32,90,92,91,33,92,34,93,27,94,104,95,101,96,35,97,36,98,37,99,40,100,41,101,42,102,103,103,43,104,44,105,46,106,47,107,48,108,97,109,49,110,102,111,50,112,28,113,51,114,70,115,98,116,52,117,53,118,54,119,55,120,56,121,57,122,58,123,59,124,61,125,105,126,106,127,109,128,107,129,108,130,62,131,74,132,38,133,39,134,69,135,148,136,60,137,139,138,140,139,79,140,153,141,152,142,72,143,154,144,150,145,151,146,149,147,45,405},new int[]{-148,454,-147,455,-151,49,-152,52,-293,456,-150,58,-191,457});
states[454] = new State(-808);
states[455] = new State(-843);
states[456] = new State(-844);
states[457] = new State(-845);
states[458] = new State(-778);
states[459] = new State(-747);
states[460] = new State(-748);
states[461] = new State(new int[]{119,462});
states[462] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368},new int[]{-96,463,-269,464,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-97,461});
states[463] = new State(-743);
states[464] = new State(-744);
states[465] = new State(-752);
states[466] = new State(new int[]{8,467,138,-737,136,-737,118,-737,117,-737,131,-737,132,-737,133,-737,134,-737,130,-737,116,-737,115,-737,128,-737,129,-737,126,-737,6,-737,5,-737,120,-737,125,-737,123,-737,121,-737,124,-737,122,-737,137,-737,135,-737,16,-737,70,-737,92,-737,10,-737,98,-737,101,-737,33,-737,104,-737,2,-737,9,-737,12,-737,100,-737,99,-737,32,-737,85,-737,84,-737,83,-737,82,-737,81,-737,86,-737,13,-737,76,-737,51,-737,58,-737,141,-737,143,-737,80,-737,78,-737,160,-737,87,-737,45,-737,42,-737,21,-737,22,-737,144,-737,147,-737,145,-737,146,-737,155,-737,158,-737,157,-737,156,-737,11,-737,57,-737,91,-737,40,-737,25,-737,97,-737,54,-737,35,-737,55,-737,102,-737,47,-737,36,-737,53,-737,60,-737,74,-737,72,-737,38,-737,71,-737});
states[467] = new State(new int[]{14,472,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,53,474,143,48,85,50,86,51,80,53,78,54,160,55,87,56,11,926,8,939},new int[]{-354,468,-352,1482,-15,473,-165,336,-167,279,-166,283,-16,337,-341,1473,-284,1474,-180,181,-147,218,-151,49,-152,52,-344,1480,-345,1481});
states[468] = new State(new int[]{9,469,10,470,100,1478});
states[469] = new State(-649);
states[470] = new State(new int[]{14,472,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,53,474,143,48,85,50,86,51,80,53,78,54,160,55,87,56,11,926,8,939},new int[]{-352,471,-15,473,-165,336,-167,279,-166,283,-16,337,-341,1473,-284,1474,-180,181,-147,218,-151,49,-152,52,-344,1480,-345,1481});
states[471] = new State(-686);
states[472] = new State(-688);
states[473] = new State(-689);
states[474] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-147,475,-151,49,-152,52});
states[475] = new State(new int[]{5,476,9,-691,10,-691,100,-691});
states[476] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-277,477,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562});
states[477] = new State(-690);
states[478] = new State(new int[]{9,479,143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-80,325,-78,331,-277,332,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562});
states[479] = new State(new int[]{127,321});
states[480] = new State(-229);
states[481] = new State(new int[]{13,482,127,483,120,-234,9,-234,100,-234,10,-234,121,-234,8,-234,138,-234,136,-234,118,-234,117,-234,131,-234,132,-234,133,-234,134,-234,130,-234,116,-234,115,-234,128,-234,129,-234,126,-234,6,-234,5,-234,125,-234,123,-234,124,-234,122,-234,137,-234,135,-234,16,-234,70,-234,92,-234,98,-234,101,-234,33,-234,104,-234,2,-234,12,-234,99,-234,32,-234,85,-234,84,-234,83,-234,82,-234,81,-234,86,-234,76,-234,51,-234,58,-234,141,-234,143,-234,80,-234,78,-234,160,-234,87,-234,45,-234,42,-234,21,-234,22,-234,144,-234,147,-234,145,-234,146,-234,155,-234,158,-234,157,-234,156,-234,11,-234,57,-234,91,-234,40,-234,25,-234,97,-234,54,-234,35,-234,55,-234,102,-234,47,-234,36,-234,53,-234,60,-234,74,-234,72,-234,38,-234,71,-234,110,-234});
states[482] = new State(-227);
states[483] = new State(new int[]{8,485,143,48,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-280,484,-273,192,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-282,1470,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,1471,-224,561,-223,562,-301,1472});
states[484] = new State(-290);
states[485] = new State(new int[]{9,486,143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-80,325,-78,331,-277,332,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562});
states[486] = new State(new int[]{127,321,121,-294,100,-294,120,-294,9,-294,10,-294,8,-294,138,-294,136,-294,118,-294,117,-294,131,-294,132,-294,133,-294,134,-294,130,-294,116,-294,115,-294,128,-294,129,-294,126,-294,6,-294,5,-294,125,-294,123,-294,124,-294,122,-294,137,-294,135,-294,16,-294,70,-294,92,-294,98,-294,101,-294,33,-294,104,-294,2,-294,12,-294,99,-294,32,-294,85,-294,84,-294,83,-294,82,-294,81,-294,86,-294,13,-294,76,-294,51,-294,58,-294,141,-294,143,-294,80,-294,78,-294,160,-294,87,-294,45,-294,42,-294,21,-294,22,-294,144,-294,147,-294,145,-294,146,-294,155,-294,158,-294,157,-294,156,-294,11,-294,57,-294,91,-294,40,-294,25,-294,97,-294,54,-294,35,-294,55,-294,102,-294,47,-294,36,-294,53,-294,60,-294,74,-294,72,-294,38,-294,71,-294,110,-294});
states[487] = new State(-230);
states[488] = new State(-231);
states[489] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-276,490,-277,491,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562});
states[490] = new State(-267);
states[491] = new State(-485);
states[492] = new State(-232);
states[493] = new State(-268);
states[494] = new State(new int[]{11,495,58,1468});
states[495] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,356,12,-280,100,-280},new int[]{-164,496,-272,1467,-273,1466,-93,194,-106,314,-107,315,-180,352,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283});
states[496] = new State(new int[]{12,497,100,1464});
states[497] = new State(new int[]{58,498});
states[498] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-277,499,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562});
states[499] = new State(-274);
states[500] = new State(-275);
states[501] = new State(-269);
states[502] = new State(new int[]{8,1344,23,-316,11,-316,92,-316,84,-316,83,-316,82,-316,81,-316,29,-316,143,-316,85,-316,86,-316,80,-316,78,-316,160,-316,87,-316,62,-316,28,-316,26,-316,44,-316,37,-316,19,-316,30,-316,31,-316,46,-316,27,-316},new int[]{-183,503});
states[503] = new State(new int[]{23,1335,11,-323,92,-323,84,-323,83,-323,82,-323,81,-323,29,-323,143,-323,85,-323,86,-323,80,-323,78,-323,160,-323,87,-323,62,-323,28,-323,26,-323,44,-323,37,-323,19,-323,30,-323,31,-323,46,-323,27,-323},new int[]{-318,504,-317,1333,-316,1355});
states[504] = new State(new int[]{11,628,92,-340,84,-340,83,-340,82,-340,81,-340,29,-213,143,-213,85,-213,86,-213,80,-213,78,-213,160,-213,87,-213,62,-213,28,-213,26,-213,44,-213,37,-213,19,-213,30,-213,31,-213,46,-213,27,-213},new int[]{-24,505,-31,1256,-33,509,-44,1257,-6,1258,-251,1155,-32,1420,-53,1422,-52,515,-54,1421});
states[505] = new State(new int[]{92,506,84,1252,83,1253,82,1254,81,1255},new int[]{-7,507});
states[506] = new State(-298);
states[507] = new State(new int[]{11,628,92,-340,84,-340,83,-340,82,-340,81,-340,29,-213,143,-213,85,-213,86,-213,80,-213,78,-213,160,-213,87,-213,62,-213,28,-213,26,-213,44,-213,37,-213,19,-213,30,-213,31,-213,46,-213,27,-213},new int[]{-31,508,-33,509,-44,1257,-6,1258,-251,1155,-32,1420,-53,1422,-52,515,-54,1421});
states[508] = new State(-335);
states[509] = new State(new int[]{10,511,92,-346,84,-346,83,-346,82,-346,81,-346},new int[]{-190,510});
states[510] = new State(-341);
states[511] = new State(new int[]{11,628,92,-347,84,-347,83,-347,82,-347,81,-347,29,-213,143,-213,85,-213,86,-213,80,-213,78,-213,160,-213,87,-213,62,-213,28,-213,26,-213,44,-213,37,-213,19,-213,30,-213,31,-213,46,-213,27,-213},new int[]{-44,512,-32,513,-6,1258,-251,1155,-53,1422,-52,515,-54,1421});
states[512] = new State(-349);
states[513] = new State(new int[]{11,628,92,-343,84,-343,83,-343,82,-343,81,-343,28,-213,26,-213,44,-213,37,-213,19,-213,30,-213,31,-213,46,-213,27,-213},new int[]{-53,514,-52,515,-6,516,-251,1155,-54,1421});
states[514] = new State(-352);
states[515] = new State(-353);
states[516] = new State(new int[]{28,1380,26,1381,44,1328,37,1363,19,1383,30,1391,31,1398,11,628,46,1405,27,1414},new int[]{-222,517,-251,518,-219,519,-259,520,-3,521,-230,1382,-228,1316,-225,1327,-229,1362,-227,1389,-215,1402,-216,1403,-218,1404});
states[517] = new State(-362);
states[518] = new State(-212);
states[519] = new State(-363);
states[520] = new State(-379);
states[521] = new State(new int[]{30,523,19,1198,46,1270,27,1308,44,1328,37,1363},new int[]{-230,522,-216,1197,-228,1316,-225,1327,-229,1362});
states[522] = new State(-366);
states[523] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405,8,-378,110,-378,10,-378},new int[]{-172,524,-171,1180,-170,1181,-142,1182,-137,1183,-134,1184,-147,1189,-151,49,-152,52,-191,1190,-335,1192,-149,1196});
states[524] = new State(new int[]{8,565,110,-469,10,-469},new int[]{-128,525});
states[525] = new State(new int[]{110,527,10,1169},new int[]{-207,526});
states[526] = new State(-375);
states[527] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,10,-493},new int[]{-261,528,-4,23,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885});
states[528] = new State(new int[]{10,529});
states[529] = new State(-424);
states[530] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,92,-573,10,-573,98,-573,101,-573,33,-573,104,-573,2,-573,9,-573,12,-573,100,-573,99,-573,32,-573,84,-573,83,-573,82,-573,81,-573},new int[]{-147,436,-151,49,-152,52});
states[531] = new State(new int[]{53,1157,56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589,5,598,18,669},new int[]{-87,438,-360,440,-102,532,-111,694,-101,1103,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597,-359,1104,-100,1105});
states[532] = new State(new int[]{100,533});
states[533] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589,18,669},new int[]{-79,534,-102,1148,-101,1147,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-100,1105});
states[534] = new State(new int[]{100,1145,5,546,10,-1008,9,-1008},new int[]{-325,535});
states[535] = new State(new int[]{10,538,9,-996},new int[]{-332,536});
states[536] = new State(new int[]{9,537});
states[537] = new State(-761);
states[538] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-327,539,-328,1096,-158,542,-147,809,-151,49,-152,52});
states[539] = new State(new int[]{10,540,9,-997});
states[540] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-328,541,-158,542,-147,809,-151,49,-152,52});
states[541] = new State(-1006);
states[542] = new State(new int[]{100,544,5,546,10,-1008,9,-1008},new int[]{-325,543});
states[543] = new State(-1007);
states[544] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-147,545,-151,49,-152,52});
states[545] = new State(-345);
states[546] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-276,547,-277,491,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562});
states[547] = new State(-1009);
states[548] = new State(-270);
states[549] = new State(new int[]{58,550});
states[550] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-277,551,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562});
states[551] = new State(-281);
states[552] = new State(-271);
states[553] = new State(new int[]{58,554,121,-283,100,-283,120,-283,9,-283,10,-283,8,-283,138,-283,136,-283,118,-283,117,-283,131,-283,132,-283,133,-283,134,-283,130,-283,116,-283,115,-283,128,-283,129,-283,126,-283,6,-283,5,-283,125,-283,123,-283,124,-283,122,-283,137,-283,135,-283,16,-283,70,-283,92,-283,98,-283,101,-283,33,-283,104,-283,2,-283,12,-283,99,-283,32,-283,85,-283,84,-283,83,-283,82,-283,81,-283,86,-283,13,-283,76,-283,51,-283,141,-283,143,-283,80,-283,78,-283,160,-283,87,-283,45,-283,42,-283,21,-283,22,-283,144,-283,147,-283,145,-283,146,-283,155,-283,158,-283,157,-283,156,-283,11,-283,57,-283,91,-283,40,-283,25,-283,97,-283,54,-283,35,-283,55,-283,102,-283,47,-283,36,-283,53,-283,60,-283,74,-283,72,-283,38,-283,71,-283,127,-283,110,-283});
states[554] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-277,555,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562});
states[555] = new State(-282);
states[556] = new State(-272);
states[557] = new State(new int[]{58,558});
states[558] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-277,559,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562});
states[559] = new State(-273);
states[560] = new State(-233);
states[561] = new State(-285);
states[562] = new State(-286);
states[563] = new State(new int[]{8,565,121,-469,100,-469,120,-469,9,-469,10,-469,138,-469,136,-469,118,-469,117,-469,131,-469,132,-469,133,-469,134,-469,130,-469,116,-469,115,-469,128,-469,129,-469,126,-469,6,-469,5,-469,125,-469,123,-469,124,-469,122,-469,137,-469,135,-469,16,-469,70,-469,92,-469,98,-469,101,-469,33,-469,104,-469,2,-469,12,-469,99,-469,32,-469,85,-469,84,-469,83,-469,82,-469,81,-469,86,-469,13,-469,76,-469,51,-469,58,-469,141,-469,143,-469,80,-469,78,-469,160,-469,87,-469,45,-469,42,-469,21,-469,22,-469,144,-469,147,-469,145,-469,146,-469,155,-469,158,-469,157,-469,156,-469,11,-469,57,-469,91,-469,40,-469,25,-469,97,-469,54,-469,35,-469,55,-469,102,-469,47,-469,36,-469,53,-469,60,-469,74,-469,72,-469,38,-469,71,-469,127,-469,110,-469},new int[]{-128,564});
states[564] = new State(-287);
states[565] = new State(new int[]{9,566,11,628,143,-213,85,-213,86,-213,80,-213,78,-213,160,-213,87,-213,53,-213,29,-213,108,-213},new int[]{-129,567,-55,1156,-6,571,-251,1155});
states[566] = new State(-470);
states[567] = new State(new int[]{9,568,10,569});
states[568] = new State(-471);
states[569] = new State(new int[]{11,628,143,-213,85,-213,86,-213,80,-213,78,-213,160,-213,87,-213,53,-213,29,-213,108,-213},new int[]{-55,570,-6,571,-251,1155});
states[570] = new State(-473);
states[571] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,53,612,29,618,108,624,11,628},new int[]{-296,572,-251,518,-159,573,-135,611,-147,610,-151,49,-152,52});
states[572] = new State(-474);
states[573] = new State(new int[]{5,574,100,608});
states[574] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-276,575,-277,491,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562});
states[575] = new State(new int[]{110,576,9,-475,10,-475});
states[576] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589,5,598},new int[]{-87,577,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597});
states[577] = new State(new int[]{70,28,9,-479,10,-479});
states[578] = new State(-738);
states[579] = new State(new int[]{70,-608,92,-608,10,-608,98,-608,101,-608,33,-608,104,-608,2,-608,9,-608,12,-608,100,-608,99,-608,32,-608,85,-608,84,-608,83,-608,82,-608,81,-608,86,-608,6,-608,76,-608,5,-608,51,-608,58,-608,141,-608,143,-608,80,-608,78,-608,160,-608,87,-608,45,-608,42,-608,8,-608,21,-608,22,-608,144,-608,147,-608,145,-608,146,-608,155,-608,158,-608,157,-608,156,-608,11,-608,57,-608,91,-608,40,-608,25,-608,97,-608,54,-608,35,-608,55,-608,102,-608,47,-608,36,-608,53,-608,60,-608,74,-608,72,-608,38,-608,71,-608,13,-611});
states[580] = new State(new int[]{13,581});
states[581] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368},new int[]{-117,582,-99,585,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,587});
states[582] = new State(new int[]{5,583,13,581});
states[583] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368},new int[]{-117,584,-99,585,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,587});
states[584] = new State(new int[]{13,581,70,-624,92,-624,10,-624,98,-624,101,-624,33,-624,104,-624,2,-624,9,-624,12,-624,100,-624,99,-624,32,-624,85,-624,84,-624,83,-624,82,-624,81,-624,86,-624,6,-624,76,-624,5,-624,51,-624,58,-624,141,-624,143,-624,80,-624,78,-624,160,-624,87,-624,45,-624,42,-624,8,-624,21,-624,22,-624,144,-624,147,-624,145,-624,146,-624,155,-624,158,-624,157,-624,156,-624,11,-624,57,-624,91,-624,40,-624,25,-624,97,-624,54,-624,35,-624,55,-624,102,-624,47,-624,36,-624,53,-624,60,-624,74,-624,72,-624,38,-624,71,-624});
states[585] = new State(new int[]{16,31,5,-610,13,-610,70,-610,92,-610,10,-610,98,-610,101,-610,33,-610,104,-610,2,-610,9,-610,12,-610,100,-610,99,-610,32,-610,85,-610,84,-610,83,-610,82,-610,81,-610,86,-610,6,-610,76,-610,51,-610,58,-610,141,-610,143,-610,80,-610,78,-610,160,-610,87,-610,45,-610,42,-610,8,-610,21,-610,22,-610,144,-610,147,-610,145,-610,146,-610,155,-610,158,-610,157,-610,156,-610,11,-610,57,-610,91,-610,40,-610,25,-610,97,-610,54,-610,35,-610,55,-610,102,-610,47,-610,36,-610,53,-610,60,-610,74,-610,72,-610,38,-610,71,-610});
states[586] = new State(new int[]{6,35,120,-646,125,-646,123,-646,121,-646,124,-646,122,-646,137,-646,135,-646,16,-646,70,-646,92,-646,10,-646,98,-646,101,-646,33,-646,104,-646,2,-646,9,-646,12,-646,100,-646,99,-646,32,-646,85,-646,84,-646,83,-646,82,-646,81,-646,86,-646,76,-646,13,-646,5,-646,51,-646,58,-646,141,-646,143,-646,80,-646,78,-646,160,-646,87,-646,45,-646,42,-646,8,-646,21,-646,22,-646,144,-646,147,-646,145,-646,146,-646,155,-646,158,-646,157,-646,156,-646,11,-646,57,-646,91,-646,40,-646,25,-646,97,-646,54,-646,35,-646,55,-646,102,-646,47,-646,36,-646,53,-646,60,-646,74,-646,72,-646,38,-646,71,-646,116,-646,115,-646,128,-646,129,-646,126,-646,138,-646,136,-646,118,-646,117,-646,131,-646,132,-646,133,-646,134,-646,130,-646});
states[587] = new State(-611);
states[588] = new State(-609);
states[589] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589},new int[]{-118,590,-99,595,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-243,596});
states[590] = new State(new int[]{51,591});
states[591] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589},new int[]{-118,592,-99,595,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-243,596});
states[592] = new State(new int[]{32,593});
states[593] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589},new int[]{-118,594,-99,595,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-243,596});
states[594] = new State(-625);
states[595] = new State(new int[]{16,31,51,-612,32,-612,120,-612,125,-612,123,-612,121,-612,124,-612,122,-612,137,-612,135,-612,70,-612,92,-612,10,-612,98,-612,101,-612,33,-612,104,-612,2,-612,9,-612,12,-612,100,-612,99,-612,85,-612,84,-612,83,-612,82,-612,81,-612,86,-612,13,-612,6,-612,76,-612,5,-612,58,-612,141,-612,143,-612,80,-612,78,-612,160,-612,87,-612,45,-612,42,-612,8,-612,21,-612,22,-612,144,-612,147,-612,145,-612,146,-612,155,-612,158,-612,157,-612,156,-612,11,-612,57,-612,91,-612,40,-612,25,-612,97,-612,54,-612,35,-612,55,-612,102,-612,47,-612,36,-612,53,-612,60,-612,74,-612,72,-612,38,-612,71,-612,116,-612,115,-612,128,-612,129,-612,126,-612,138,-612,136,-612,118,-612,117,-612,131,-612,132,-612,133,-612,134,-612,130,-612});
states[596] = new State(-613);
states[597] = new State(-605);
states[598] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,5,-706,70,-706,92,-706,10,-706,98,-706,101,-706,33,-706,104,-706,2,-706,9,-706,12,-706,100,-706,99,-706,32,-706,84,-706,83,-706,82,-706,81,-706,6,-706},new int[]{-115,599,-105,603,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,602,-268,578});
states[599] = new State(new int[]{5,600,70,-710,92,-710,10,-710,98,-710,101,-710,33,-710,104,-710,2,-710,9,-710,12,-710,100,-710,99,-710,32,-710,85,-710,84,-710,83,-710,82,-710,81,-710,86,-710,6,-710,76,-710});
states[600] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368},new int[]{-105,601,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,602,-268,578});
states[601] = new State(new int[]{6,35,70,-712,92,-712,10,-712,98,-712,101,-712,33,-712,104,-712,2,-712,9,-712,12,-712,100,-712,99,-712,32,-712,85,-712,84,-712,83,-712,82,-712,81,-712,86,-712,76,-712});
states[602] = new State(-737);
states[603] = new State(new int[]{6,35,5,-705,70,-705,92,-705,10,-705,98,-705,101,-705,33,-705,104,-705,2,-705,9,-705,12,-705,100,-705,99,-705,32,-705,85,-705,84,-705,83,-705,82,-705,81,-705,86,-705,76,-705});
states[604] = new State(new int[]{8,565,5,-469},new int[]{-128,605});
states[605] = new State(new int[]{5,606});
states[606] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-276,607,-277,491,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562});
states[607] = new State(-288);
states[608] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-135,609,-147,610,-151,49,-152,52});
states[609] = new State(-483);
states[610] = new State(-484);
states[611] = new State(-482);
states[612] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-159,613,-135,611,-147,610,-151,49,-152,52});
states[613] = new State(new int[]{5,614,100,608});
states[614] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-276,615,-277,491,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562});
states[615] = new State(new int[]{110,616,9,-476,10,-476});
states[616] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589,5,598},new int[]{-87,617,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597});
states[617] = new State(new int[]{70,28,9,-480,10,-480});
states[618] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-159,619,-135,611,-147,610,-151,49,-152,52});
states[619] = new State(new int[]{5,620,100,608});
states[620] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-276,621,-277,491,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562});
states[621] = new State(new int[]{110,622,9,-477,10,-477});
states[622] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589,5,598},new int[]{-87,623,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597});
states[623] = new State(new int[]{70,28,9,-481,10,-481});
states[624] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-159,625,-135,611,-147,610,-151,49,-152,52});
states[625] = new State(new int[]{5,626,100,608});
states[626] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-276,627,-277,491,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562});
states[627] = new State(-478);
states[628] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-252,629,-8,1154,-9,633,-180,634,-147,1149,-151,49,-152,52,-301,1152});
states[629] = new State(new int[]{12,630,100,631});
states[630] = new State(-214);
states[631] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-8,632,-9,633,-180,634,-147,1149,-151,49,-152,52,-301,1152});
states[632] = new State(-216);
states[633] = new State(-217);
states[634] = new State(new int[]{7,182,8,637,123,187,12,-642,100,-642},new int[]{-69,635,-299,636});
states[635] = new State(-782);
states[636] = new State(-235);
states[637] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,833,8,713,21,294,22,299,76,446,11,368,40,589,5,598,18,669,37,678,44,682,9,-812},new int[]{-66,638,-71,640,-88,396,-87,27,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597,-323,834,-100,659,-324,677});
states[638] = new State(new int[]{9,639});
states[639] = new State(-643);
states[640] = new State(new int[]{100,153,12,-811,9,-811});
states[641] = new State(new int[]{127,642,11,-792,17,-792,8,-792,7,-792,142,-792,4,-792,15,-792,138,-792,136,-792,118,-792,117,-792,131,-792,132,-792,133,-792,134,-792,130,-792,116,-792,115,-792,128,-792,129,-792,126,-792,6,-792,5,-792,120,-792,125,-792,123,-792,121,-792,124,-792,122,-792,137,-792,135,-792,16,-792,70,-792,92,-792,10,-792,98,-792,101,-792,33,-792,104,-792,2,-792,9,-792,12,-792,100,-792,99,-792,32,-792,85,-792,84,-792,83,-792,82,-792,81,-792,86,-792,13,-792,119,-792});
states[642] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,646,21,294,22,299,76,446,11,368,18,669,37,678,44,682,91,17,40,721,54,759,97,754,35,764,36,791,72,864,25,738,102,781,60,872,47,788,74,986},new int[]{-329,643,-104,644,-99,645,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,657,-117,580,-323,658,-100,659,-324,677,-331,718,-256,719,-153,720,-319,859,-248,860,-124,861,-123,862,-125,863,-34,981,-302,982,-169,983,-249,984,-126,985});
states[643] = new State(-988);
states[644] = new State(-1025);
states[645] = new State(new int[]{16,31,92,-616,10,-616,98,-616,101,-616,33,-616,104,-616,2,-616,9,-616,12,-616,100,-616,99,-616,32,-616,85,-616,84,-616,83,-616,82,-616,81,-616,86,-616,13,-610});
states[646] = new State(new int[]{53,687,9,714,56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,1124,21,294,22,299,76,446,11,368,40,589,5,598,18,669},new int[]{-87,438,-360,440,-102,647,-147,1083,-4,1121,-101,1103,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,1123,-132,391,-111,399,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597,-359,1104,-100,1105});
states[647] = new State(new int[]{100,648});
states[648] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589,18,669},new int[]{-79,649,-102,1148,-101,1147,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-100,1105});
states[649] = new State(new int[]{100,1145,5,546,10,-1008,9,-1008},new int[]{-325,650});
states[650] = new State(new int[]{10,538,9,-996},new int[]{-332,651});
states[651] = new State(new int[]{9,652});
states[652] = new State(new int[]{5,661,7,-761,138,-761,136,-761,118,-761,117,-761,131,-761,132,-761,133,-761,134,-761,130,-761,116,-761,115,-761,128,-761,129,-761,126,-761,6,-761,120,-761,125,-761,123,-761,121,-761,124,-761,122,-761,137,-761,135,-761,16,-761,70,-761,92,-761,10,-761,98,-761,101,-761,33,-761,104,-761,2,-761,9,-761,12,-761,100,-761,99,-761,32,-761,85,-761,84,-761,83,-761,82,-761,81,-761,86,-761,13,-761,127,-1010},new int[]{-336,653,-326,654});
states[653] = new State(-993);
states[654] = new State(new int[]{127,655});
states[655] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,646,21,294,22,299,76,446,11,368,18,669,37,678,44,682,91,17,40,721,54,759,97,754,35,764,36,791,72,864,25,738,102,781,60,872,47,788,74,986},new int[]{-329,656,-104,644,-99,645,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,657,-117,580,-323,658,-100,659,-324,677,-331,718,-256,719,-153,720,-319,859,-248,860,-124,861,-123,862,-125,863,-34,981,-302,982,-169,983,-249,984,-126,985});
states[656] = new State(-998);
states[657] = new State(new int[]{92,-617,10,-617,98,-617,101,-617,33,-617,104,-617,2,-617,9,-617,12,-617,100,-617,99,-617,32,-617,85,-617,84,-617,83,-617,82,-617,81,-617,86,-617,13,-611});
states[658] = new State(-618);
states[659] = new State(new int[]{5,661,127,-1010},new int[]{-336,660,-326,654});
states[660] = new State(-994);
states[661] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,356,142,489,24,494,48,502,49,549,34,553,73,557},new int[]{-278,662,-273,663,-93,194,-106,314,-107,315,-180,664,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-257,665,-250,666,-282,667,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-301,668});
states[662] = new State(-1011);
states[663] = new State(-486);
states[664] = new State(new int[]{7,182,123,187,8,-256,118,-256,117,-256,131,-256,132,-256,133,-256,134,-256,130,-256,6,-256,116,-256,115,-256,128,-256,129,-256,127,-256},new int[]{-299,636});
states[665] = new State(-487);
states[666] = new State(-488);
states[667] = new State(-489);
states[668] = new State(-490);
states[669] = new State(new int[]{18,669,143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-23,670,-22,676,-100,674,-147,675,-151,49,-152,52});
states[670] = new State(new int[]{100,671});
states[671] = new State(new int[]{18,669,143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-22,672,-100,674,-147,675,-151,49,-152,52});
states[672] = new State(new int[]{9,673,100,-983});
states[673] = new State(-979);
states[674] = new State(-980);
states[675] = new State(-981);
states[676] = new State(-982);
states[677] = new State(-995);
states[678] = new State(new int[]{8,1135,5,661,127,-1010},new int[]{-326,679});
states[679] = new State(new int[]{127,680});
states[680] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,646,21,294,22,299,76,446,11,368,18,669,37,678,44,682,91,17,40,721,54,759,97,754,35,764,36,791,72,864,25,738,102,781,60,872,47,788,74,986},new int[]{-329,681,-104,644,-99,645,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,657,-117,580,-323,658,-100,659,-324,677,-331,718,-256,719,-153,720,-319,859,-248,860,-124,861,-123,862,-125,863,-34,981,-302,982,-169,983,-249,984,-126,985});
states[681] = new State(-999);
states[682] = new State(new int[]{127,683,8,1127});
states[683] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405,42,435,8,686,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,91,17,40,721,54,759,97,754,35,764,36,791,72,864,25,738,102,781,60,872,47,788,74,986},new int[]{-330,684,-212,685,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-4,1125,-331,1126,-256,719,-153,720,-319,859,-248,860,-124,861,-123,862,-125,863,-34,981,-302,982,-169,983,-249,984,-126,985});
states[684] = new State(-1002);
states[685] = new State(-1027);
states[686] = new State(new int[]{53,687,56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,1124,21,294,22,299,76,446,11,368,40,589,5,598,18,669},new int[]{-87,438,-360,440,-102,532,-111,694,-4,1121,-101,1103,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,1123,-132,391,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597,-359,1104,-100,1105});
states[687] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-147,688,-151,49,-152,52});
states[688] = new State(new int[]{110,689});
states[689] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589,5,598},new int[]{-99,690,-87,692,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-101,155,-241,579,-117,580,-243,588,-120,597});
states[690] = new State(new int[]{9,691,16,31,10,-607,70,-607,13,-610});
states[691] = new State(-779);
states[692] = new State(new int[]{10,693,70,28});
states[693] = new State(-788);
states[694] = new State(new int[]{100,695,11,393,17,400,8,702,7,1108,142,1110,4,1111,15,1118,138,-777,136,-777,118,-777,117,-777,131,-777,132,-777,133,-777,134,-777,130,-777,116,-777,115,-777,128,-777,129,-777,126,-777,6,-777,5,-777,120,-777,125,-777,123,-777,121,-777,124,-777,122,-777,137,-777,135,-777,16,-777,9,-777,70,-777,13,-777,119,-777,110,-777,111,-777,112,-777,113,-777,114,-777});
states[695] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405,42,435,8,1113,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368},new int[]{-337,696,-111,1117,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728});
states[696] = new State(new int[]{9,697,100,700});
states[697] = new State(new int[]{110,429,111,430,112,431,113,432,114,433},new int[]{-194,698});
states[698] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589,5,598},new int[]{-87,699,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597});
states[699] = new State(new int[]{70,28,92,-522,10,-522,98,-522,101,-522,33,-522,104,-522,2,-522,9,-522,12,-522,100,-522,99,-522,32,-522,85,-522,84,-522,83,-522,82,-522,81,-522,86,-522});
states[700] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405,42,435,8,1113,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368},new int[]{-111,701,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728});
states[701] = new State(new int[]{11,393,17,400,8,702,7,1108,142,1110,4,1111,9,-524,100,-524});
states[702] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,712,8,713,21,294,22,299,76,446,11,368,40,589,5,598,18,669,37,678,44,682,9,-814},new int[]{-67,703,-72,705,-89,1107,-87,708,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,709,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597,-323,1106,-100,659,-324,677});
states[703] = new State(new int[]{9,704});
states[704] = new State(-791);
states[705] = new State(new int[]{100,706,9,-813});
states[706] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,712,8,713,21,294,22,299,76,446,11,368,40,589,5,598,18,669,37,678,44,682},new int[]{-89,707,-87,708,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,709,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597,-323,1106,-100,659,-324,677});
states[707] = new State(-594);
states[708] = new State(new int[]{70,28,100,-600,9,-600});
states[709] = new State(new int[]{110,710,127,642,11,-792,17,-792,8,-792,7,-792,142,-792,4,-792,15,-792,138,-792,136,-792,118,-792,117,-792,131,-792,132,-792,133,-792,134,-792,130,-792,116,-792,115,-792,128,-792,129,-792,126,-792,6,-792,5,-792,120,-792,125,-792,123,-792,121,-792,124,-792,122,-792,137,-792,135,-792,16,-792,70,-792,100,-792,9,-792,13,-792,119,-792});
states[710] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589},new int[]{-101,711,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588});
states[711] = new State(-601);
states[712] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,100,-603,9,-603},new int[]{-147,436,-151,49,-152,52});
states[713] = new State(new int[]{53,687,9,714,56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589,5,598,18,669},new int[]{-87,438,-360,440,-102,647,-147,1083,-101,1103,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597,-359,1104,-100,1105});
states[714] = new State(new int[]{5,661,127,-1010},new int[]{-326,715});
states[715] = new State(new int[]{127,716});
states[716] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,646,21,294,22,299,76,446,11,368,18,669,37,678,44,682,91,17,40,721,54,759,97,754,35,764,36,791,72,864,25,738,102,781,60,872,47,788,74,986},new int[]{-329,717,-104,644,-99,645,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,657,-117,580,-323,658,-100,659,-324,677,-331,718,-256,719,-153,720,-319,859,-248,860,-124,861,-123,862,-125,863,-34,981,-302,982,-169,983,-249,984,-126,985});
states[717] = new State(-989);
states[718] = new State(-1026);
states[719] = new State(-1012);
states[720] = new State(-1013);
states[721] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589},new int[]{-101,722,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588});
states[722] = new State(new int[]{51,723});
states[723] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,92,-493,10,-493,98,-493,101,-493,33,-493,104,-493,2,-493,9,-493,12,-493,100,-493,99,-493,32,-493,84,-493,83,-493,82,-493,81,-493},new int[]{-261,724,-4,23,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885});
states[724] = new State(new int[]{32,725,92,-532,10,-532,98,-532,101,-532,33,-532,104,-532,2,-532,9,-532,12,-532,100,-532,99,-532,85,-532,84,-532,83,-532,82,-532,81,-532,86,-532});
states[725] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,92,-493,10,-493,98,-493,101,-493,33,-493,104,-493,2,-493,9,-493,12,-493,100,-493,99,-493,32,-493,84,-493,83,-493,82,-493,81,-493},new int[]{-261,726,-4,23,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885});
states[726] = new State(-533);
states[727] = new State(new int[]{7,45,11,150,17,380});
states[728] = new State(new int[]{7,453});
states[729] = new State(-495);
states[730] = new State(-496);
states[731] = new State(new int[]{155,733,143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-143,732,-147,734,-151,49,-152,52});
states[732] = new State(-528);
states[733] = new State(-99);
states[734] = new State(-100);
states[735] = new State(-497);
states[736] = new State(-498);
states[737] = new State(-499);
states[738] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589},new int[]{-101,739,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588});
states[739] = new State(new int[]{58,740});
states[740] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,838,135,841,116,353,115,354,63,339,32,748,92,-552},new int[]{-35,741,-254,1080,-263,1082,-74,1073,-110,1079,-94,1078,-90,205,-91,236,-81,246,-13,251,-10,261,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849,-242,855});
states[741] = new State(new int[]{10,744,32,748,92,-552},new int[]{-254,742});
states[742] = new State(new int[]{92,743});
states[743] = new State(-543);
states[744] = new State(new int[]{32,748,143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,838,135,841,116,353,115,354,63,339,92,-552},new int[]{-254,745,-263,747,-74,1073,-110,1079,-94,1078,-90,205,-91,236,-81,246,-13,251,-10,261,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849,-242,855});
states[745] = new State(new int[]{92,746});
states[746] = new State(-544);
states[747] = new State(-547);
states[748] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,752,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,10,-493,92,-493},new int[]{-253,749,-262,750,-261,22,-4,23,-113,24,-132,391,-111,399,-147,751,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885,-143,1040});
states[749] = new State(new int[]{10,20,92,-553});
states[750] = new State(-530);
states[751] = new State(new int[]{11,-792,17,-792,8,-792,7,-792,142,-792,4,-792,15,-792,110,-792,111,-792,112,-792,113,-792,114,-792,92,-792,10,-792,98,-792,101,-792,33,-792,104,-792,2,-792,5,-100});
states[752] = new State(new int[]{7,-191,11,-191,17,-191,5,-99});
states[753] = new State(-500);
states[754] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,752,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,98,-493,10,-493},new int[]{-253,755,-262,750,-261,22,-4,23,-113,24,-132,391,-111,399,-147,751,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885,-143,1040});
states[755] = new State(new int[]{98,756,10,20});
states[756] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589,5,598},new int[]{-87,757,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597});
states[757] = new State(new int[]{70,28,92,-554,10,-554,98,-554,101,-554,33,-554,104,-554,2,-554,9,-554,12,-554,100,-554,99,-554,32,-554,85,-554,84,-554,83,-554,82,-554,81,-554,86,-554});
states[758] = new State(-501);
states[759] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589},new int[]{-101,760,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588});
states[760] = new State(new int[]{99,1069,141,-557,143,-557,85,-557,86,-557,80,-557,78,-557,160,-557,87,-557,45,-557,42,-557,8,-557,21,-557,22,-557,144,-557,147,-557,145,-557,146,-557,155,-557,158,-557,157,-557,156,-557,76,-557,11,-557,57,-557,91,-557,40,-557,25,-557,97,-557,54,-557,35,-557,55,-557,102,-557,47,-557,36,-557,53,-557,60,-557,74,-557,72,-557,38,-557,92,-557,10,-557,98,-557,101,-557,33,-557,104,-557,2,-557,9,-557,12,-557,100,-557,32,-557,84,-557,83,-557,82,-557,81,-557},new int[]{-292,761});
states[761] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,92,-493,10,-493,98,-493,101,-493,33,-493,104,-493,2,-493,9,-493,12,-493,100,-493,99,-493,32,-493,84,-493,83,-493,82,-493,81,-493},new int[]{-261,762,-4,23,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885});
states[762] = new State(-555);
states[763] = new State(-502);
states[764] = new State(new int[]{53,1072,143,-564,85,-564,86,-564,80,-564,78,-564,160,-564,87,-564},new int[]{-18,765});
states[765] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-147,766,-151,49,-152,52});
states[766] = new State(new int[]{5,1022,110,-562},new int[]{-275,767});
states[767] = new State(new int[]{110,768});
states[768] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589},new int[]{-101,769,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588});
states[769] = new State(new int[]{70,1070,71,1071},new int[]{-119,770});
states[770] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589},new int[]{-101,771,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588});
states[771] = new State(new int[]{160,1065,99,1069,141,-557,143,-557,85,-557,86,-557,80,-557,78,-557,87,-557,45,-557,42,-557,8,-557,21,-557,22,-557,144,-557,147,-557,145,-557,146,-557,155,-557,158,-557,157,-557,156,-557,76,-557,11,-557,57,-557,91,-557,40,-557,25,-557,97,-557,54,-557,35,-557,55,-557,102,-557,47,-557,36,-557,53,-557,60,-557,74,-557,72,-557,38,-557,92,-557,10,-557,98,-557,101,-557,33,-557,104,-557,2,-557,9,-557,12,-557,100,-557,32,-557,84,-557,83,-557,82,-557,81,-557},new int[]{-292,772});
states[772] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,92,-493,10,-493,98,-493,101,-493,33,-493,104,-493,2,-493,9,-493,12,-493,100,-493,99,-493,32,-493,84,-493,83,-493,82,-493,81,-493},new int[]{-261,773,-4,23,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885});
states[773] = new State(-570);
states[774] = new State(-503);
states[775] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,833,8,713,21,294,22,299,76,446,11,368,40,589,5,598,18,669,37,678,44,682},new int[]{-71,776,-88,396,-87,27,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597,-323,834,-100,659,-324,677});
states[776] = new State(new int[]{99,777,100,153});
states[777] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,92,-493,10,-493,98,-493,101,-493,33,-493,104,-493,2,-493,9,-493,12,-493,100,-493,99,-493,32,-493,84,-493,83,-493,82,-493,81,-493},new int[]{-261,778,-4,23,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885});
states[778] = new State(-572);
states[779] = new State(-504);
states[780] = new State(-505);
states[781] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,752,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,10,-493,101,-493,33,-493},new int[]{-253,782,-262,750,-261,22,-4,23,-113,24,-132,391,-111,399,-147,751,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885,-143,1040});
states[782] = new State(new int[]{10,20,101,784,33,1043},new int[]{-290,783});
states[783] = new State(-574);
states[784] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,752,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,92,-493,10,-493},new int[]{-253,785,-262,750,-261,22,-4,23,-113,24,-132,391,-111,399,-147,751,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885,-143,1040});
states[785] = new State(new int[]{92,786,10,20});
states[786] = new State(-575);
states[787] = new State(-506);
states[788] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589,5,598,92,-589,10,-589,98,-589,101,-589,33,-589,104,-589,2,-589,9,-589,12,-589,100,-589,99,-589,32,-589,84,-589,83,-589,82,-589,81,-589},new int[]{-87,789,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597});
states[789] = new State(new int[]{70,28,92,-590,10,-590,98,-590,101,-590,33,-590,104,-590,2,-590,9,-590,12,-590,100,-590,99,-590,32,-590,85,-590,84,-590,83,-590,82,-590,81,-590,86,-590});
states[790] = new State(-507);
states[791] = new State(new int[]{53,1024,143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-147,792,-151,49,-152,52});
states[792] = new State(new int[]{5,1022,137,-562},new int[]{-275,793});
states[793] = new State(new int[]{137,794});
states[794] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589},new int[]{-101,795,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588});
states[795] = new State(new int[]{87,1020,99,-560},new int[]{-361,796});
states[796] = new State(new int[]{99,797});
states[797] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,92,-493,10,-493,98,-493,101,-493,33,-493,104,-493,2,-493,9,-493,12,-493,100,-493,99,-493,32,-493,84,-493,83,-493,82,-493,81,-493},new int[]{-261,798,-4,23,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885});
states[798] = new State(-567);
states[799] = new State(-508);
states[800] = new State(new int[]{8,802,143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-312,801,-158,810,-147,809,-151,49,-152,52});
states[801] = new State(-518);
states[802] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-147,803,-151,49,-152,52});
states[803] = new State(new int[]{100,804});
states[804] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-158,805,-147,809,-151,49,-152,52});
states[805] = new State(new int[]{9,806,100,544});
states[806] = new State(new int[]{110,807});
states[807] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589,5,598},new int[]{-87,808,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597});
states[808] = new State(new int[]{70,28,92,-520,10,-520,98,-520,101,-520,33,-520,104,-520,2,-520,9,-520,12,-520,100,-520,99,-520,32,-520,85,-520,84,-520,83,-520,82,-520,81,-520,86,-520});
states[809] = new State(-344);
states[810] = new State(new int[]{5,811,100,544,110,1018});
states[811] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-277,812,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562});
states[812] = new State(new int[]{110,1016,120,1017,92,-408,10,-408,98,-408,101,-408,33,-408,104,-408,2,-408,9,-408,12,-408,100,-408,99,-408,32,-408,85,-408,84,-408,83,-408,82,-408,81,-408,86,-408},new int[]{-339,813});
states[813] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,987,135,841,116,353,115,354,63,339,37,678,44,682,40,589},new int[]{-86,814,-85,815,-84,276,-90,277,-91,236,-81,816,-13,251,-10,261,-14,222,-147,856,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849,-242,855,-95,1004,-244,1005,-324,1014,-243,1015});
states[814] = new State(-410);
states[815] = new State(-411);
states[816] = new State(new int[]{6,817,116,247,115,248,128,249,129,250,120,-118,125,-118,123,-118,121,-118,124,-118,122,-118,137,-118,135,-118,13,-118,16,-118,92,-118,10,-118,98,-118,101,-118,33,-118,104,-118,2,-118,9,-118,12,-118,100,-118,99,-118,32,-118,85,-118,84,-118,83,-118,82,-118,81,-118,86,-118},new int[]{-193,214});
states[817] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,838,135,841,116,353,115,354,63,339},new int[]{-13,818,-10,261,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849});
states[818] = new State(new int[]{136,252,138,253,118,254,117,255,131,256,132,257,133,258,134,259,130,260,92,-412,10,-412,98,-412,101,-412,33,-412,104,-412,2,-412,9,-412,12,-412,100,-412,99,-412,32,-412,85,-412,84,-412,83,-412,82,-412,81,-412,86,-412},new int[]{-201,216,-195,219});
states[819] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589,5,598},new int[]{-68,820,-77,371,-92,449,-87,374,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597});
states[820] = new State(new int[]{76,821});
states[821] = new State(-167);
states[822] = new State(-158);
states[823] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,835,135,841,116,353,115,354,63,339},new int[]{-10,824,-14,825,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,843,-173,845,-56,846});
states[824] = new State(-159);
states[825] = new State(new int[]{4,224,11,226,7,826,142,828,8,829,136,-156,138,-156,118,-156,117,-156,131,-156,132,-156,133,-156,134,-156,130,-156,116,-156,115,-156,128,-156,129,-156,120,-156,125,-156,123,-156,121,-156,124,-156,122,-156,137,-156,135,-156,13,-156,16,-156,6,-156,100,-156,9,-156,12,-156,5,-156,92,-156,10,-156,98,-156,101,-156,33,-156,104,-156,2,-156,99,-156,32,-156,85,-156,84,-156,83,-156,82,-156,81,-156,86,-156},new int[]{-12,223});
states[826] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,84,59,83,60,82,61,81,62,68,63,64,64,128,65,22,66,21,67,63,68,23,69,129,70,130,71,131,72,132,73,133,74,134,75,135,76,136,77,137,78,138,79,24,80,73,81,91,82,25,83,26,84,29,85,30,86,31,87,71,88,99,89,32,90,92,91,33,92,34,93,27,94,104,95,101,96,35,97,36,98,37,99,40,100,41,101,42,102,103,103,43,104,44,105,46,106,47,107,48,108,97,109,49,110,102,111,50,112,28,113,51,114,70,115,98,116,52,117,53,118,54,119,55,120,56,121,57,122,58,123,59,124,61,125,105,126,106,127,109,128,107,129,108,130,62,131,74,132,38,133,39,134,69,135,148,136,60,137,139,138,140,139,79,140,153,141,152,142,72,143,154,144,150,145,151,146,149,147,45,149},new int[]{-138,827,-147,47,-151,49,-152,52,-293,57,-150,58,-294,148});
states[827] = new State(-179);
states[828] = new State(-180);
states[829] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,833,8,713,21,294,22,299,76,446,11,368,40,589,5,598,18,669,37,678,44,682,9,-184},new int[]{-76,830,-71,832,-88,396,-87,27,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597,-323,834,-100,659,-324,677});
states[830] = new State(new int[]{9,831});
states[831] = new State(-181);
states[832] = new State(new int[]{100,153,9,-183});
states[833] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,92,-599,10,-599,98,-599,101,-599,33,-599,104,-599,2,-599,9,-599,12,-599,100,-599,99,-599,32,-599,84,-599,83,-599,82,-599,81,-599},new int[]{-147,436,-151,49,-152,52});
states[834] = new State(-598);
states[835] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,838,135,841,116,353,115,354,63,339},new int[]{-90,836,-91,236,-81,246,-13,251,-10,261,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849,-242,855});
states[836] = new State(new int[]{9,837,13,206,16,210});
states[837] = new State(-160);
states[838] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,838,135,841,116,353,115,354,63,339},new int[]{-90,839,-91,236,-81,246,-13,251,-10,261,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849,-242,855});
states[839] = new State(new int[]{9,840,13,206,16,210});
states[840] = new State(new int[]{136,-160,138,-160,118,-160,117,-160,131,-160,132,-160,133,-160,134,-160,130,-160,116,-160,115,-160,128,-160,129,-160,120,-160,125,-160,123,-160,121,-160,124,-160,122,-160,137,-160,135,-160,13,-160,16,-160,6,-160,100,-160,9,-160,12,-160,5,-160,92,-160,10,-160,98,-160,101,-160,33,-160,104,-160,2,-160,99,-160,32,-160,85,-160,84,-160,83,-160,82,-160,81,-160,86,-160,119,-155});
states[841] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,835,135,841,116,353,115,354,63,339},new int[]{-10,842,-14,825,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,843,-173,845,-56,846});
states[842] = new State(-161);
states[843] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,835,135,841,116,353,115,354,63,339},new int[]{-10,844,-14,825,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,843,-173,845,-56,846});
states[844] = new State(-162);
states[845] = new State(-163);
states[846] = new State(-164);
states[847] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,838,135,841,116,353,115,354,63,339},new int[]{-10,844,-270,848,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-11,849});
states[848] = new State(-141);
states[849] = new State(new int[]{119,850});
states[850] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,838,135,841,116,353,115,354,63,339},new int[]{-10,851,-270,852,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-11,849});
states[851] = new State(-139);
states[852] = new State(-140);
states[853] = new State(-143);
states[854] = new State(-144);
states[855] = new State(-121);
states[856] = new State(new int[]{127,857,4,-170,11,-170,7,-170,142,-170,8,-170,136,-170,138,-170,118,-170,117,-170,131,-170,132,-170,133,-170,134,-170,130,-170,6,-170,116,-170,115,-170,128,-170,129,-170,120,-170,125,-170,123,-170,121,-170,124,-170,122,-170,137,-170,135,-170,13,-170,16,-170,92,-170,10,-170,98,-170,101,-170,33,-170,104,-170,2,-170,9,-170,12,-170,100,-170,99,-170,32,-170,85,-170,84,-170,83,-170,82,-170,81,-170,86,-170,119,-170});
states[857] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,646,21,294,22,299,76,446,11,368,18,669,37,678,44,682,91,17,40,721,54,759,97,754,35,764,36,791,72,864,25,738,102,781,60,872,47,788,74,986},new int[]{-329,858,-104,644,-99,645,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,657,-117,580,-323,658,-100,659,-324,677,-331,718,-256,719,-153,720,-319,859,-248,860,-124,861,-123,862,-125,863,-34,981,-302,982,-169,983,-249,984,-126,985});
states[858] = new State(-414);
states[859] = new State(-1014);
states[860] = new State(-1015);
states[861] = new State(-1016);
states[862] = new State(-1017);
states[863] = new State(-1018);
states[864] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589},new int[]{-101,865,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588});
states[865] = new State(new int[]{99,866});
states[866] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,92,-493,10,-493,98,-493,101,-493,33,-493,104,-493,2,-493,9,-493,12,-493,100,-493,99,-493,32,-493,84,-493,83,-493,82,-493,81,-493},new int[]{-261,867,-4,23,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885});
states[867] = new State(-515);
states[868] = new State(-509);
states[869] = new State(-595);
states[870] = new State(-596);
states[871] = new State(-510);
states[872] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589},new int[]{-101,873,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588});
states[873] = new State(new int[]{99,874});
states[874] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,92,-493,10,-493,98,-493,101,-493,33,-493,104,-493,2,-493,9,-493,12,-493,100,-493,99,-493,32,-493,84,-493,83,-493,82,-493,81,-493},new int[]{-261,875,-4,23,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885});
states[875] = new State(-558);
states[876] = new State(-511);
states[877] = new State(new int[]{73,879,56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,713,21,294,22,299,76,446,11,368,40,589,18,669,37,678,44,682},new int[]{-103,878,-101,881,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-323,882,-100,659,-324,677});
states[878] = new State(-516);
states[879] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,713,21,294,22,299,76,446,11,368,40,589,18,669,37,678,44,682},new int[]{-103,880,-101,881,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-323,882,-100,659,-324,677});
states[880] = new State(-517);
states[881] = new State(-614);
states[882] = new State(-615);
states[883] = new State(-512);
states[884] = new State(-513);
states[885] = new State(-514);
states[886] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589},new int[]{-101,887,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588});
states[887] = new State(new int[]{55,888});
states[888] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,56,966,21,294,22,299,11,926,8,939},new int[]{-351,889,-350,980,-343,896,-284,901,-180,181,-147,218,-151,49,-152,52,-342,958,-358,961,-340,969,-15,964,-165,336,-167,279,-166,283,-16,337,-258,967,-295,968,-344,970,-345,973});
states[889] = new State(new int[]{10,892,32,748,92,-552},new int[]{-254,890});
states[890] = new State(new int[]{92,891});
states[891] = new State(-534);
states[892] = new State(new int[]{32,748,143,48,85,50,86,51,80,53,78,54,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,56,966,21,294,22,299,11,926,8,939,92,-552},new int[]{-254,893,-350,895,-343,896,-284,901,-180,181,-147,218,-151,49,-152,52,-342,958,-358,961,-340,969,-15,964,-165,336,-167,279,-166,283,-16,337,-258,967,-295,968,-344,970,-345,973});
states[893] = new State(new int[]{92,894});
states[894] = new State(-535);
states[895] = new State(-537);
states[896] = new State(new int[]{39,897});
states[897] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589},new int[]{-101,898,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588});
states[898] = new State(new int[]{5,899});
states[899] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,10,-493,32,-493,92,-493},new int[]{-261,900,-4,23,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885});
states[900] = new State(-538);
states[901] = new State(new int[]{8,902,100,-657,5,-657});
states[902] = new State(new int[]{14,907,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,116,353,115,354,143,48,85,50,86,51,80,53,78,54,160,55,87,56,53,914,11,926,8,939},new int[]{-355,903,-353,957,-15,908,-165,336,-167,279,-166,283,-16,337,-199,909,-147,911,-151,49,-152,52,-343,918,-284,919,-180,181,-344,925,-345,956});
states[903] = new State(new int[]{9,904,10,905,100,923});
states[904] = new State(new int[]{39,-651,5,-652});
states[905] = new State(new int[]{14,907,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,116,353,115,354,143,48,85,50,86,51,80,53,78,54,160,55,87,56,53,914,11,926,8,939},new int[]{-353,906,-15,908,-165,336,-167,279,-166,283,-16,337,-199,909,-147,911,-151,49,-152,52,-343,918,-284,919,-180,181,-344,925,-345,956});
states[906] = new State(-683);
states[907] = new State(-695);
states[908] = new State(-696);
states[909] = new State(new int[]{144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290},new int[]{-15,910,-165,336,-167,279,-166,283,-16,337});
states[910] = new State(-697);
states[911] = new State(new int[]{5,912,9,-699,10,-699,100,-699,7,-261,4,-261,123,-261,8,-261});
states[912] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-277,913,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562});
states[913] = new State(-698);
states[914] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-147,915,-151,49,-152,52});
states[915] = new State(new int[]{5,916,9,-701,10,-701,100,-701});
states[916] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-277,917,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562});
states[917] = new State(-700);
states[918] = new State(-702);
states[919] = new State(new int[]{8,920});
states[920] = new State(new int[]{14,907,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,116,353,115,354,143,48,85,50,86,51,80,53,78,54,160,55,87,56,53,914,11,926,8,939},new int[]{-355,921,-353,957,-15,908,-165,336,-167,279,-166,283,-16,337,-199,909,-147,911,-151,49,-152,52,-343,918,-284,919,-180,181,-344,925,-345,956});
states[921] = new State(new int[]{9,922,10,905,100,923});
states[922] = new State(-651);
states[923] = new State(new int[]{14,907,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,116,353,115,354,143,48,85,50,86,51,80,53,78,54,160,55,87,56,53,914,11,926,8,939},new int[]{-353,924,-15,908,-165,336,-167,279,-166,283,-16,337,-199,909,-147,911,-151,49,-152,52,-343,918,-284,919,-180,181,-344,925,-345,956});
states[924] = new State(-684);
states[925] = new State(-703);
states[926] = new State(new int[]{144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,53,933,14,935,143,48,85,50,86,51,80,53,78,54,160,55,87,56,11,926,8,939,6,954},new int[]{-356,927,-346,955,-15,931,-165,336,-167,279,-166,283,-16,337,-348,932,-343,936,-284,919,-180,181,-147,218,-151,49,-152,52,-344,937,-345,938});
states[927] = new State(new int[]{12,928,100,929});
states[928] = new State(-661);
states[929] = new State(new int[]{144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,53,933,14,935,143,48,85,50,86,51,80,53,78,54,160,55,87,56,11,926,8,939,6,954},new int[]{-346,930,-15,931,-165,336,-167,279,-166,283,-16,337,-348,932,-343,936,-284,919,-180,181,-147,218,-151,49,-152,52,-344,937,-345,938});
states[930] = new State(-663);
states[931] = new State(-664);
states[932] = new State(-665);
states[933] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-147,934,-151,49,-152,52});
states[934] = new State(-671);
states[935] = new State(-666);
states[936] = new State(-667);
states[937] = new State(-668);
states[938] = new State(-669);
states[939] = new State(new int[]{14,944,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,116,353,115,354,53,948,143,48,85,50,86,51,80,53,78,54,160,55,87,56,11,926,8,939},new int[]{-357,940,-347,953,-15,945,-165,336,-167,279,-166,283,-16,337,-199,946,-343,950,-284,919,-180,181,-147,218,-151,49,-152,52,-344,951,-345,952});
states[940] = new State(new int[]{9,941,100,942});
states[941] = new State(-672);
states[942] = new State(new int[]{14,944,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,116,353,115,354,53,948,143,48,85,50,86,51,80,53,78,54,160,55,87,56,11,926,8,939},new int[]{-347,943,-15,945,-165,336,-167,279,-166,283,-16,337,-199,946,-343,950,-284,919,-180,181,-147,218,-151,49,-152,52,-344,951,-345,952});
states[943] = new State(-681);
states[944] = new State(-673);
states[945] = new State(-674);
states[946] = new State(new int[]{144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290},new int[]{-15,947,-165,336,-167,279,-166,283,-16,337});
states[947] = new State(-675);
states[948] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-147,949,-151,49,-152,52});
states[949] = new State(-676);
states[950] = new State(-677);
states[951] = new State(-678);
states[952] = new State(-679);
states[953] = new State(-680);
states[954] = new State(-670);
states[955] = new State(-662);
states[956] = new State(-704);
states[957] = new State(-682);
states[958] = new State(new int[]{5,959});
states[959] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,10,-493,32,-493,92,-493},new int[]{-261,960,-4,23,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885});
states[960] = new State(-539);
states[961] = new State(new int[]{100,962,5,-653});
states[962] = new State(new int[]{144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,143,48,85,50,86,51,80,53,78,54,160,55,87,56,56,966,21,294,22,299},new int[]{-340,963,-15,964,-165,336,-167,279,-166,283,-16,337,-284,965,-180,181,-147,218,-151,49,-152,52,-258,967,-295,968});
states[963] = new State(-655);
states[964] = new State(-656);
states[965] = new State(-657);
states[966] = new State(-658);
states[967] = new State(-659);
states[968] = new State(-660);
states[969] = new State(-654);
states[970] = new State(new int[]{5,971});
states[971] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,10,-493,32,-493,92,-493},new int[]{-261,972,-4,23,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885});
states[972] = new State(-540);
states[973] = new State(new int[]{39,974,5,978});
states[974] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589},new int[]{-101,975,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588});
states[975] = new State(new int[]{5,976});
states[976] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,10,-493,32,-493,92,-493},new int[]{-261,977,-4,23,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885});
states[977] = new State(-541);
states[978] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,10,-493,32,-493,92,-493},new int[]{-261,979,-4,23,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885});
states[979] = new State(-542);
states[980] = new State(-536);
states[981] = new State(-1019);
states[982] = new State(-1020);
states[983] = new State(-1021);
states[984] = new State(-1022);
states[985] = new State(-1023);
states[986] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,713,21,294,22,299,76,446,11,368,40,589,18,669,37,678,44,682},new int[]{-103,878,-101,881,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-323,882,-100,659,-324,677});
states[987] = new State(new int[]{9,995,143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,1000,135,841,116,353,115,354,63,339},new int[]{-90,988,-65,989,-246,993,-91,236,-81,246,-13,251,-10,261,-14,222,-147,999,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849,-242,855,-64,273,-85,1003,-84,276,-95,1004,-244,1005,-245,1006,-247,1013,-136,1009});
states[988] = new State(new int[]{9,840,13,206,16,210,100,-195});
states[989] = new State(new int[]{9,990});
states[990] = new State(new int[]{127,991,92,-198,10,-198,98,-198,101,-198,33,-198,104,-198,2,-198,9,-198,12,-198,100,-198,99,-198,32,-198,85,-198,84,-198,83,-198,82,-198,81,-198,86,-198});
states[991] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,646,21,294,22,299,76,446,11,368,18,669,37,678,44,682,91,17,40,721,54,759,97,754,35,764,36,791,72,864,25,738,102,781,60,872,47,788,74,986},new int[]{-329,992,-104,644,-99,645,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,657,-117,580,-323,658,-100,659,-324,677,-331,718,-256,719,-153,720,-319,859,-248,860,-124,861,-123,862,-125,863,-34,981,-302,982,-169,983,-249,984,-126,985});
states[992] = new State(-416);
states[993] = new State(new int[]{9,994});
states[994] = new State(-203);
states[995] = new State(new int[]{5,546,127,-1008},new int[]{-325,996});
states[996] = new State(new int[]{127,997});
states[997] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,646,21,294,22,299,76,446,11,368,18,669,37,678,44,682,91,17,40,721,54,759,97,754,35,764,36,791,72,864,25,738,102,781,60,872,47,788,74,986},new int[]{-329,998,-104,644,-99,645,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,657,-117,580,-323,658,-100,659,-324,677,-331,718,-256,719,-153,720,-319,859,-248,860,-124,861,-123,862,-125,863,-34,981,-302,982,-169,983,-249,984,-126,985});
states[998] = new State(-415);
states[999] = new State(new int[]{4,-170,11,-170,7,-170,142,-170,8,-170,136,-170,138,-170,118,-170,117,-170,131,-170,132,-170,133,-170,134,-170,130,-170,116,-170,115,-170,128,-170,129,-170,120,-170,125,-170,123,-170,121,-170,124,-170,122,-170,137,-170,135,-170,9,-170,13,-170,16,-170,100,-170,119,-170,5,-209});
states[1000] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,1000,135,841,116,353,115,354,63,339,9,-199},new int[]{-90,988,-65,1001,-246,993,-91,236,-81,246,-13,251,-10,261,-14,222,-147,999,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849,-242,855,-64,273,-85,1003,-84,276,-95,1004,-244,1005,-245,1006,-247,1013,-136,1009});
states[1001] = new State(new int[]{9,1002});
states[1002] = new State(-198);
states[1003] = new State(-201);
states[1004] = new State(-196);
states[1005] = new State(-197);
states[1006] = new State(new int[]{10,1007,9,-204});
states[1007] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,9,-205},new int[]{-247,1008,-136,1009,-147,1012,-151,49,-152,52});
states[1008] = new State(-207);
states[1009] = new State(new int[]{5,1010});
states[1010] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,1000,135,841,116,353,115,354,63,339},new int[]{-84,1011,-90,277,-91,236,-81,246,-13,251,-10,261,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849,-242,855,-95,1004,-244,1005});
states[1011] = new State(-208);
states[1012] = new State(-209);
states[1013] = new State(-206);
states[1014] = new State(-413);
states[1015] = new State(-417);
states[1016] = new State(-406);
states[1017] = new State(-407);
states[1018] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,833,8,713,21,294,22,299,76,446,11,368,40,589,5,598,18,669,37,678,44,682},new int[]{-88,1019,-87,27,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597,-323,834,-100,659,-324,677});
states[1019] = new State(-409);
states[1020] = new State(new int[]{143,1021});
states[1021] = new State(-559);
states[1022] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-277,1023,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562});
states[1023] = new State(-561);
states[1024] = new State(new int[]{8,1032,143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-147,1025,-151,49,-152,52});
states[1025] = new State(new int[]{5,1022,137,-562},new int[]{-275,1026});
states[1026] = new State(new int[]{137,1027});
states[1027] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589},new int[]{-101,1028,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588});
states[1028] = new State(new int[]{87,1020,99,-560},new int[]{-361,1029});
states[1029] = new State(new int[]{99,1030});
states[1030] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,92,-493,10,-493,98,-493,101,-493,33,-493,104,-493,2,-493,9,-493,12,-493,100,-493,99,-493,32,-493,84,-493,83,-493,82,-493,81,-493},new int[]{-261,1031,-4,23,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885});
states[1031] = new State(-568);
states[1032] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-158,1033,-147,809,-151,49,-152,52});
states[1033] = new State(new int[]{9,1034,100,544});
states[1034] = new State(new int[]{137,1035});
states[1035] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589},new int[]{-101,1036,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588});
states[1036] = new State(new int[]{87,1020,99,-560},new int[]{-361,1037});
states[1037] = new State(new int[]{99,1038});
states[1038] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,92,-493,10,-493,98,-493,101,-493,33,-493,104,-493,2,-493,9,-493,12,-493,100,-493,99,-493,32,-493,84,-493,83,-493,82,-493,81,-493},new int[]{-261,1039,-4,23,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885});
states[1039] = new State(-569);
states[1040] = new State(new int[]{5,1041});
states[1041] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,752,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,92,-493,10,-493,98,-493,101,-493,33,-493,104,-493,2,-493},new int[]{-262,1042,-261,22,-4,23,-113,24,-132,391,-111,399,-147,751,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885,-143,1040});
states[1042] = new State(-492);
states[1043] = new State(new int[]{79,1051,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,752,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,10,-493,92,-493},new int[]{-59,1044,-62,1046,-61,1063,-253,1064,-262,750,-261,22,-4,23,-113,24,-132,391,-111,399,-147,751,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885,-143,1040});
states[1044] = new State(new int[]{92,1045});
states[1045] = new State(-576);
states[1046] = new State(new int[]{10,1048,32,1061,92,-582},new int[]{-255,1047});
states[1047] = new State(-577);
states[1048] = new State(new int[]{79,1051,32,1061,92,-582},new int[]{-61,1049,-255,1050});
states[1049] = new State(-581);
states[1050] = new State(-578);
states[1051] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-63,1052,-179,1055,-180,1056,-147,1057,-151,49,-152,52,-140,1058});
states[1052] = new State(new int[]{99,1053});
states[1053] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,10,-493,32,-493,92,-493},new int[]{-261,1054,-4,23,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885});
states[1054] = new State(-584);
states[1055] = new State(-585);
states[1056] = new State(new int[]{7,182,99,-587});
states[1057] = new State(new int[]{7,-261,99,-261,5,-588});
states[1058] = new State(new int[]{5,1059});
states[1059] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-179,1060,-180,1056,-147,218,-151,49,-152,52});
states[1060] = new State(-586);
states[1061] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,752,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,10,-493,92,-493},new int[]{-253,1062,-262,750,-261,22,-4,23,-113,24,-132,391,-111,399,-147,751,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885,-143,1040});
states[1062] = new State(new int[]{10,20,92,-583});
states[1063] = new State(-580);
states[1064] = new State(new int[]{10,20,92,-579});
states[1065] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589},new int[]{-101,1066,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588});
states[1066] = new State(new int[]{99,1067});
states[1067] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,92,-493,10,-493,98,-493,101,-493,33,-493,104,-493,2,-493,9,-493,12,-493,100,-493,99,-493,32,-493,84,-493,83,-493,82,-493,81,-493},new int[]{-261,1068,-4,23,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885});
states[1068] = new State(-571);
states[1069] = new State(-556);
states[1070] = new State(-565);
states[1071] = new State(-566);
states[1072] = new State(-563);
states[1073] = new State(new int[]{5,1074,100,1076});
states[1074] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,10,-493,32,-493,92,-493},new int[]{-261,1075,-4,23,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885});
states[1075] = new State(-548);
states[1076] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,838,135,841,116,353,115,354,63,339},new int[]{-110,1077,-94,1078,-90,205,-91,236,-81,246,-13,251,-10,261,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849,-242,855});
states[1077] = new State(-550);
states[1078] = new State(-551);
states[1079] = new State(-549);
states[1080] = new State(new int[]{92,1081});
states[1081] = new State(-545);
states[1082] = new State(-546);
states[1083] = new State(new int[]{5,1084,10,1097,11,-792,17,-792,8,-792,7,-792,142,-792,4,-792,15,-792,110,-792,111,-792,112,-792,113,-792,114,-792,138,-792,136,-792,118,-792,117,-792,131,-792,132,-792,133,-792,134,-792,130,-792,116,-792,115,-792,128,-792,129,-792,126,-792,6,-792,120,-792,125,-792,123,-792,121,-792,124,-792,122,-792,137,-792,135,-792,16,-792,9,-792,70,-792,100,-792,13,-792,119,-792});
states[1084] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-276,1085,-277,491,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562});
states[1085] = new State(new int[]{9,1086,10,1090});
states[1086] = new State(new int[]{5,661,127,-1010},new int[]{-326,1087});
states[1087] = new State(new int[]{127,1088});
states[1088] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,646,21,294,22,299,76,446,11,368,18,669,37,678,44,682,91,17,40,721,54,759,97,754,35,764,36,791,72,864,25,738,102,781,60,872,47,788,74,986},new int[]{-329,1089,-104,644,-99,645,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,657,-117,580,-323,658,-100,659,-324,677,-331,718,-256,719,-153,720,-319,859,-248,860,-124,861,-123,862,-125,863,-34,981,-302,982,-169,983,-249,984,-126,985});
states[1089] = new State(-990);
states[1090] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-327,1091,-328,1096,-158,542,-147,809,-151,49,-152,52});
states[1091] = new State(new int[]{9,1092,10,540});
states[1092] = new State(new int[]{5,661,127,-1010},new int[]{-326,1093});
states[1093] = new State(new int[]{127,1094});
states[1094] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,646,21,294,22,299,76,446,11,368,18,669,37,678,44,682,91,17,40,721,54,759,97,754,35,764,36,791,72,864,25,738,102,781,60,872,47,788,74,986},new int[]{-329,1095,-104,644,-99,645,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,657,-117,580,-323,658,-100,659,-324,677,-331,718,-256,719,-153,720,-319,859,-248,860,-124,861,-123,862,-125,863,-34,981,-302,982,-169,983,-249,984,-126,985});
states[1095] = new State(-992);
states[1096] = new State(-1005);
states[1097] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-327,1098,-328,1096,-158,542,-147,809,-151,49,-152,52});
states[1098] = new State(new int[]{9,1099,10,540});
states[1099] = new State(new int[]{5,661,127,-1010},new int[]{-326,1100});
states[1100] = new State(new int[]{127,1101});
states[1101] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,646,21,294,22,299,76,446,11,368,18,669,37,678,44,682,91,17,40,721,54,759,97,754,35,764,36,791,72,864,25,738,102,781,60,872,47,788,74,986},new int[]{-329,1102,-104,644,-99,645,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,657,-117,580,-323,658,-100,659,-324,677,-331,718,-256,719,-153,720,-319,859,-248,860,-124,861,-123,862,-125,863,-34,981,-302,982,-169,983,-249,984,-126,985});
states[1102] = new State(-991);
states[1103] = new State(new int[]{9,-604,70,-604,100,-984});
states[1104] = new State(-789);
states[1105] = new State(-985);
states[1106] = new State(-602);
states[1107] = new State(-593);
states[1108] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,84,59,83,60,82,61,81,62,68,63,64,64,128,65,22,66,21,67,63,68,23,69,129,70,130,71,131,72,132,73,133,74,134,75,135,76,136,77,137,78,138,79,24,80,73,81,91,82,25,83,26,84,29,85,30,86,31,87,71,88,99,89,32,90,92,91,33,92,34,93,27,94,104,95,101,96,35,97,36,98,37,99,40,100,41,101,42,102,103,103,43,104,44,105,46,106,47,107,48,108,97,109,49,110,102,111,50,112,28,113,51,114,70,115,98,116,52,117,53,118,54,119,55,120,56,121,57,122,58,123,59,124,61,125,105,126,106,127,109,128,107,129,108,130,62,131,74,132,38,133,39,134,69,135,148,136,60,137,139,138,140,139,79,140,153,141,152,142,72,143,154,144,150,145,151,146,149,147,45,405},new int[]{-148,1109,-147,455,-151,49,-152,52,-293,456,-150,58,-191,457});
states[1109] = new State(-807);
states[1110] = new State(-809);
states[1111] = new State(new int[]{123,187},new int[]{-299,1112});
states[1112] = new State(-810);
states[1113] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589,5,598,53,1114,18,669},new int[]{-87,438,-360,440,-102,532,-101,1103,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597,-359,1104,-100,1105});
states[1114] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-147,1115,-151,49,-152,52});
states[1115] = new State(new int[]{110,1116});
states[1116] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589,5,598},new int[]{-87,692,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597});
states[1117] = new State(new int[]{11,393,17,400,8,702,7,1108,142,1110,4,1111,9,-523,100,-523});
states[1118] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405,42,435,8,1113,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368},new int[]{-111,1119,-116,1120,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728});
states[1119] = new State(new int[]{11,393,17,400,8,702,7,1108,142,1110,4,1111,15,1118,110,-774,111,-774,112,-774,113,-774,114,-774,92,-774,10,-774,98,-774,101,-774,33,-774,104,-774,2,-774,138,-774,136,-774,118,-774,117,-774,131,-774,132,-774,133,-774,134,-774,130,-774,116,-774,115,-774,128,-774,129,-774,126,-774,6,-774,5,-774,120,-774,125,-774,123,-774,121,-774,124,-774,122,-774,137,-774,135,-774,16,-774,70,-774,9,-774,12,-774,100,-774,99,-774,32,-774,85,-774,84,-774,83,-774,82,-774,81,-774,86,-774,13,-774,119,-774,76,-774,51,-774,58,-774,141,-774,143,-774,80,-774,78,-774,160,-774,87,-774,45,-774,42,-774,21,-774,22,-774,144,-774,147,-774,145,-774,146,-774,155,-774,158,-774,157,-774,156,-774,57,-774,91,-774,40,-774,25,-774,97,-774,54,-774,35,-774,55,-774,102,-774,47,-774,36,-774,53,-774,60,-774,74,-774,72,-774,38,-774,71,-774});
states[1120] = new State(-775);
states[1121] = new State(new int[]{9,1122});
states[1122] = new State(-1024);
states[1123] = new State(new int[]{110,429,111,430,112,431,113,432,114,433,138,-770,136,-770,118,-770,117,-770,131,-770,132,-770,133,-770,134,-770,130,-770,116,-770,115,-770,128,-770,129,-770,126,-770,6,-770,5,-770,120,-770,125,-770,123,-770,121,-770,124,-770,122,-770,137,-770,135,-770,16,-770,9,-770,70,-770,100,-770,13,-770,2,-770,119,-763},new int[]{-194,25});
states[1124] = new State(new int[]{53,687,56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589,5,598,18,669},new int[]{-87,438,-360,440,-102,532,-111,694,-101,1103,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597,-359,1104,-100,1105});
states[1125] = new State(-1028);
states[1126] = new State(-1029);
states[1127] = new State(new int[]{9,1128,143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-327,1131,-328,1096,-158,542,-147,809,-151,49,-152,52});
states[1128] = new State(new int[]{127,1129});
states[1129] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405,42,435,8,686,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,91,17,40,721,54,759,97,754,35,764,36,791,72,864,25,738,102,781,60,872,47,788,74,986},new int[]{-330,1130,-212,685,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-4,1125,-331,1126,-256,719,-153,720,-319,859,-248,860,-124,861,-123,862,-125,863,-34,981,-302,982,-169,983,-249,984,-126,985});
states[1130] = new State(-1003);
states[1131] = new State(new int[]{9,1132,10,540});
states[1132] = new State(new int[]{127,1133});
states[1133] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405,42,435,8,686,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,91,17,40,721,54,759,97,754,35,764,36,791,72,864,25,738,102,781,60,872,47,788,74,986},new int[]{-330,1134,-212,685,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-4,1125,-331,1126,-256,719,-153,720,-319,859,-248,860,-124,861,-123,862,-125,863,-34,981,-302,982,-169,983,-249,984,-126,985});
states[1134] = new State(-1004);
states[1135] = new State(new int[]{9,1136,143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-327,1140,-328,1096,-158,542,-147,809,-151,49,-152,52});
states[1136] = new State(new int[]{5,661,127,-1010},new int[]{-326,1137});
states[1137] = new State(new int[]{127,1138});
states[1138] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,646,21,294,22,299,76,446,11,368,18,669,37,678,44,682,91,17,40,721,54,759,97,754,35,764,36,791,72,864,25,738,102,781,60,872,47,788,74,986},new int[]{-329,1139,-104,644,-99,645,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,657,-117,580,-323,658,-100,659,-324,677,-331,718,-256,719,-153,720,-319,859,-248,860,-124,861,-123,862,-125,863,-34,981,-302,982,-169,983,-249,984,-126,985});
states[1139] = new State(-1000);
states[1140] = new State(new int[]{9,1141,10,540});
states[1141] = new State(new int[]{5,661,127,-1010},new int[]{-326,1142});
states[1142] = new State(new int[]{127,1143});
states[1143] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,646,21,294,22,299,76,446,11,368,18,669,37,678,44,682,91,17,40,721,54,759,97,754,35,764,36,791,72,864,25,738,102,781,60,872,47,788,74,986},new int[]{-329,1144,-104,644,-99,645,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,657,-117,580,-323,658,-100,659,-324,677,-331,718,-256,719,-153,720,-319,859,-248,860,-124,861,-123,862,-125,863,-34,981,-302,982,-169,983,-249,984,-126,985});
states[1144] = new State(-1001);
states[1145] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589,18,669},new int[]{-102,1146,-101,1147,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-100,1105});
states[1146] = new State(-987);
states[1147] = new State(-984);
states[1148] = new State(-986);
states[1149] = new State(new int[]{5,1150,7,-261,8,-261,123,-261,12,-261,100,-261});
states[1150] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-9,1151,-180,634,-147,218,-151,49,-152,52,-301,1152});
states[1151] = new State(-218);
states[1152] = new State(new int[]{8,637,12,-642,100,-642},new int[]{-69,1153});
states[1153] = new State(-783);
states[1154] = new State(-215);
states[1155] = new State(-211);
states[1156] = new State(-472);
states[1157] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-147,1158,-151,49,-152,52});
states[1158] = new State(new int[]{110,689,100,1159});
states[1159] = new State(new int[]{53,1167},new int[]{-338,1160});
states[1160] = new State(new int[]{9,1161,100,1164});
states[1161] = new State(new int[]{110,1162});
states[1162] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589,5,598},new int[]{-87,1163,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597});
states[1163] = new State(new int[]{70,28,92,-519,10,-519,98,-519,101,-519,33,-519,104,-519,2,-519,9,-519,12,-519,100,-519,99,-519,32,-519,85,-519,84,-519,83,-519,82,-519,81,-519,86,-519});
states[1164] = new State(new int[]{53,1165});
states[1165] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-147,1166,-151,49,-152,52});
states[1166] = new State(-526);
states[1167] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-147,1168,-151,49,-152,52});
states[1168] = new State(-525);
states[1169] = new State(new int[]{148,1173,150,1174,151,1175,152,1176,154,1177,153,1178,107,-829,91,-829,59,-829,29,-829,66,-829,50,-829,53,-829,62,-829,11,-829,28,-829,26,-829,44,-829,37,-829,19,-829,30,-829,31,-829,46,-829,27,-829,92,-829,84,-829,83,-829,82,-829,81,-829,23,-829,149,-829,41,-829},new int[]{-206,1170,-209,1179});
states[1170] = new State(new int[]{10,1171});
states[1171] = new State(new int[]{148,1173,150,1174,151,1175,152,1176,154,1177,153,1178,107,-830,91,-830,59,-830,29,-830,66,-830,50,-830,53,-830,62,-830,11,-830,28,-830,26,-830,44,-830,37,-830,19,-830,30,-830,31,-830,46,-830,27,-830,92,-830,84,-830,83,-830,82,-830,81,-830,23,-830,149,-830,41,-830},new int[]{-209,1172});
states[1172] = new State(-834);
states[1173] = new State(-846);
states[1174] = new State(-847);
states[1175] = new State(-848);
states[1176] = new State(-849);
states[1177] = new State(-850);
states[1178] = new State(-851);
states[1179] = new State(-833);
states[1180] = new State(-377);
states[1181] = new State(-446);
states[1182] = new State(-447);
states[1183] = new State(new int[]{8,-452,110,-452,10,-452,11,-452,5,-452,7,-449});
states[1184] = new State(new int[]{123,1186,8,-455,110,-455,10,-455,7,-455,11,-455,5,-455},new int[]{-155,1185});
states[1185] = new State(-456);
states[1186] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-158,1187,-147,809,-151,49,-152,52});
states[1187] = new State(new int[]{121,1188,100,544});
states[1188] = new State(-322);
states[1189] = new State(-457);
states[1190] = new State(new int[]{123,1186,8,-453,110,-453,10,-453,11,-453,5,-453},new int[]{-155,1191});
states[1191] = new State(-454);
states[1192] = new State(new int[]{7,1193});
states[1193] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405},new int[]{-142,1194,-149,1195,-137,1183,-134,1184,-147,1189,-151,49,-152,52,-191,1190});
states[1194] = new State(-448);
states[1195] = new State(-451);
states[1196] = new State(-450);
states[1197] = new State(-432);
states[1198] = new State(new int[]{44,1328,37,1363},new int[]{-216,1199,-228,1200,-225,1327,-229,1362});
states[1199] = new State(-434);
states[1200] = new State(new int[]{107,1318,59,-70,29,-70,66,-70,50,-70,53,-70,62,-70,91,-70},new int[]{-176,1201,-42,1202,-38,1205,-60,1317});
states[1201] = new State(-440);
states[1202] = new State(new int[]{91,17},new int[]{-256,1203});
states[1203] = new State(new int[]{10,1204});
states[1204] = new State(-467);
states[1205] = new State(new int[]{59,1208,29,1229,66,1233,50,1445,53,1460,62,1462,91,-69},new int[]{-45,1206,-168,1207,-28,1214,-51,1231,-289,1235,-310,1447});
states[1206] = new State(-71);
states[1207] = new State(-87);
states[1208] = new State(new int[]{155,733,143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-156,1209,-143,1213,-147,734,-151,49,-152,52});
states[1209] = new State(new int[]{10,1210,100,1211});
states[1210] = new State(-96);
states[1211] = new State(new int[]{155,733,143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-143,1212,-147,734,-151,49,-152,52});
states[1212] = new State(-98);
states[1213] = new State(-97);
states[1214] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,59,-88,29,-88,66,-88,50,-88,53,-88,62,-88,91,-88},new int[]{-26,1215,-27,1216,-141,1218,-147,1228,-151,49,-152,52});
states[1215] = new State(-102);
states[1216] = new State(new int[]{10,1217});
states[1217] = new State(-112);
states[1218] = new State(new int[]{120,1219,5,1224});
states[1219] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,1222,135,841,116,353,115,354,63,339},new int[]{-109,1220,-90,1221,-91,236,-81,246,-13,251,-10,261,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849,-242,855,-95,1223});
states[1220] = new State(-113);
states[1221] = new State(new int[]{13,206,16,210,10,-115,92,-115,84,-115,83,-115,82,-115,81,-115});
states[1222] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,1000,135,841,116,353,115,354,63,339,9,-199},new int[]{-90,988,-65,1001,-91,236,-81,246,-13,251,-10,261,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849,-242,855,-64,273,-85,1003,-84,276,-95,1004,-244,1005});
states[1223] = new State(-116);
states[1224] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-277,1225,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562});
states[1225] = new State(new int[]{120,1226});
states[1226] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,1000,135,841,116,353,115,354,63,339},new int[]{-84,1227,-90,277,-91,236,-81,246,-13,251,-10,261,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849,-242,855,-95,1004,-244,1005});
states[1227] = new State(-114);
states[1228] = new State(-117);
states[1229] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-26,1230,-27,1216,-141,1218,-147,1228,-151,49,-152,52});
states[1230] = new State(-101);
states[1231] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,59,-89,29,-89,66,-89,50,-89,53,-89,62,-89,91,-89},new int[]{-26,1232,-27,1216,-141,1218,-147,1228,-151,49,-152,52});
states[1232] = new State(-104);
states[1233] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-26,1234,-27,1216,-141,1218,-147,1228,-151,49,-152,52});
states[1234] = new State(-103);
states[1235] = new State(new int[]{11,628,59,-90,29,-90,66,-90,50,-90,53,-90,62,-90,91,-90,143,-213,85,-213,86,-213,80,-213,78,-213,160,-213,87,-213},new int[]{-48,1236,-6,1237,-251,1155});
states[1236] = new State(-106);
states[1237] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,11,628},new int[]{-49,1238,-251,518,-144,1239,-147,1437,-151,49,-152,52,-145,1442});
states[1238] = new State(-210);
states[1239] = new State(new int[]{120,1240});
states[1240] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604,68,1431,69,1432,148,1433,27,1434,28,1435,26,-304,43,-304,64,-304},new int[]{-287,1241,-277,1243,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562,-29,1244,-20,1245,-21,1429,-19,1436});
states[1241] = new State(new int[]{10,1242});
states[1242] = new State(-219);
states[1243] = new State(-224);
states[1244] = new State(-225);
states[1245] = new State(new int[]{26,1423,43,1424,64,1425},new int[]{-291,1246});
states[1246] = new State(new int[]{8,1344,23,-316,11,-316,92,-316,84,-316,83,-316,82,-316,81,-316,29,-316,143,-316,85,-316,86,-316,80,-316,78,-316,160,-316,87,-316,62,-316,28,-316,26,-316,44,-316,37,-316,19,-316,30,-316,31,-316,46,-316,27,-316,10,-316},new int[]{-183,1247});
states[1247] = new State(new int[]{23,1335,11,-323,92,-323,84,-323,83,-323,82,-323,81,-323,29,-323,143,-323,85,-323,86,-323,80,-323,78,-323,160,-323,87,-323,62,-323,28,-323,26,-323,44,-323,37,-323,19,-323,30,-323,31,-323,46,-323,27,-323,10,-323},new int[]{-318,1248,-317,1333,-316,1355});
states[1248] = new State(new int[]{11,628,10,-314,92,-340,84,-340,83,-340,82,-340,81,-340,29,-213,143,-213,85,-213,86,-213,80,-213,78,-213,160,-213,87,-213,62,-213,28,-213,26,-213,44,-213,37,-213,19,-213,30,-213,31,-213,46,-213,27,-213},new int[]{-25,1249,-24,1250,-31,1256,-33,509,-44,1257,-6,1258,-251,1155,-32,1420,-53,1422,-52,515,-54,1421});
states[1249] = new State(-297);
states[1250] = new State(new int[]{92,1251,84,1252,83,1253,82,1254,81,1255},new int[]{-7,507});
states[1251] = new State(-315);
states[1252] = new State(-336);
states[1253] = new State(-337);
states[1254] = new State(-338);
states[1255] = new State(-339);
states[1256] = new State(-334);
states[1257] = new State(-348);
states[1258] = new State(new int[]{29,1260,143,48,85,50,86,51,80,53,78,54,160,55,87,56,62,1264,28,1380,26,1381,11,628,44,1328,37,1363,19,1383,30,1391,31,1398,46,1405,27,1414},new int[]{-50,1259,-251,518,-222,517,-219,519,-259,520,-313,1262,-312,1263,-158,810,-147,809,-151,49,-152,52,-3,1268,-230,1382,-228,1316,-225,1327,-229,1362,-227,1389,-215,1402,-216,1403,-218,1404});
states[1259] = new State(-350);
states[1260] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-27,1261,-141,1218,-147,1228,-151,49,-152,52});
states[1261] = new State(-355);
states[1262] = new State(-356);
states[1263] = new State(-360);
states[1264] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-158,1265,-147,809,-151,49,-152,52});
states[1265] = new State(new int[]{5,1266,100,544});
states[1266] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-277,1267,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562});
states[1267] = new State(-361);
states[1268] = new State(new int[]{30,523,19,1198,46,1270,27,1308,143,48,85,50,86,51,80,53,78,54,160,55,87,56,62,1264,44,1328,37,1363},new int[]{-313,1269,-230,522,-216,1197,-312,1263,-158,810,-147,809,-151,49,-152,52,-228,1316,-225,1327,-229,1362});
states[1269] = new State(-357);
states[1270] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405},new int[]{-170,1271,-142,1182,-137,1183,-134,1184,-147,1189,-151,49,-152,52,-191,1190,-335,1192,-149,1196});
states[1271] = new State(new int[]{11,1299,5,-391},new int[]{-233,1272,-238,1296});
states[1272] = new State(new int[]{85,1285,86,1291,10,-398},new int[]{-202,1273});
states[1273] = new State(new int[]{10,1274});
states[1274] = new State(new int[]{63,1279,153,1281,152,1282,148,1283,151,1284,11,-388,28,-388,26,-388,44,-388,37,-388,19,-388,30,-388,31,-388,46,-388,27,-388,92,-388,84,-388,83,-388,82,-388,81,-388},new int[]{-205,1275,-210,1276});
states[1275] = new State(-382);
states[1276] = new State(new int[]{10,1277});
states[1277] = new State(new int[]{63,1279,11,-388,28,-388,26,-388,44,-388,37,-388,19,-388,30,-388,31,-388,46,-388,27,-388,92,-388,84,-388,83,-388,82,-388,81,-388},new int[]{-205,1278});
states[1278] = new State(-383);
states[1279] = new State(new int[]{10,1280});
states[1280] = new State(-389);
states[1281] = new State(-852);
states[1282] = new State(-853);
states[1283] = new State(-854);
states[1284] = new State(-855);
states[1285] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,833,8,713,21,294,22,299,76,446,11,368,40,589,5,598,18,669,37,678,44,682,10,-397},new int[]{-114,1286,-88,1290,-87,27,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597,-323,834,-100,659,-324,677});
states[1286] = new State(new int[]{86,1288,10,-401},new int[]{-203,1287});
states[1287] = new State(-399);
states[1288] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,10,-493},new int[]{-261,1289,-4,23,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885});
states[1289] = new State(-402);
states[1290] = new State(-396);
states[1291] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,10,-493},new int[]{-261,1292,-4,23,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885});
states[1292] = new State(new int[]{85,1294,10,-403},new int[]{-204,1293});
states[1293] = new State(-400);
states[1294] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,833,8,713,21,294,22,299,76,446,11,368,40,589,5,598,18,669,37,678,44,682,10,-397},new int[]{-114,1295,-88,1290,-87,27,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597,-323,834,-100,659,-324,677});
states[1295] = new State(-404);
states[1296] = new State(new int[]{5,1297});
states[1297] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-276,1298,-277,491,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562});
states[1298] = new State(-390);
states[1299] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-237,1300,-236,1307,-158,1304,-147,809,-151,49,-152,52});
states[1300] = new State(new int[]{12,1301,10,1302});
states[1301] = new State(-392);
states[1302] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-236,1303,-158,1304,-147,809,-151,49,-152,52});
states[1303] = new State(-394);
states[1304] = new State(new int[]{5,1305,100,544});
states[1305] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-276,1306,-277,491,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562});
states[1306] = new State(-395);
states[1307] = new State(-393);
states[1308] = new State(new int[]{46,1309});
states[1309] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405},new int[]{-170,1310,-142,1182,-137,1183,-134,1184,-147,1189,-151,49,-152,52,-191,1190,-335,1192,-149,1196});
states[1310] = new State(new int[]{11,1299,5,-391},new int[]{-233,1311,-238,1296});
states[1311] = new State(new int[]{110,1314,10,-387},new int[]{-211,1312});
states[1312] = new State(new int[]{10,1313});
states[1313] = new State(-385);
states[1314] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589,5,598},new int[]{-87,1315,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597});
states[1315] = new State(new int[]{70,28,10,-386});
states[1316] = new State(new int[]{107,1318,11,-371,28,-371,26,-371,44,-371,37,-371,19,-371,30,-371,31,-371,46,-371,27,-371,92,-371,84,-371,83,-371,82,-371,81,-371,59,-70,29,-70,66,-70,50,-70,53,-70,62,-70,91,-70},new int[]{-176,1201,-42,1202,-38,1205,-60,1317});
states[1317] = new State(-468);
states[1318] = new State(new int[]{10,1326,143,48,85,50,86,51,80,53,78,54,160,55,87,56,144,281,147,282,145,284,146,285},new int[]{-108,1319,-147,1323,-151,49,-152,52,-165,1324,-167,279,-166,283});
states[1319] = new State(new int[]{80,1320,10,1325});
states[1320] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,144,281,147,282,145,284,146,285},new int[]{-108,1321,-147,1323,-151,49,-152,52,-165,1324,-167,279,-166,283});
states[1321] = new State(new int[]{10,1322});
states[1322] = new State(-461);
states[1323] = new State(-464);
states[1324] = new State(-465);
states[1325] = new State(-462);
states[1326] = new State(-463);
states[1327] = new State(-372);
states[1328] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405},new int[]{-171,1329,-170,1181,-142,1182,-137,1183,-134,1184,-147,1189,-151,49,-152,52,-191,1190,-335,1192,-149,1196});
states[1329] = new State(new int[]{8,565,10,-469,110,-469},new int[]{-128,1330});
states[1330] = new State(new int[]{10,1360,110,-831},new int[]{-207,1331,-208,1356});
states[1331] = new State(new int[]{23,1335,107,-323,91,-323,59,-323,29,-323,66,-323,50,-323,53,-323,62,-323,11,-323,28,-323,26,-323,44,-323,37,-323,19,-323,30,-323,31,-323,46,-323,27,-323,92,-323,84,-323,83,-323,82,-323,81,-323,149,-323,41,-323},new int[]{-318,1332,-317,1333,-316,1355});
states[1332] = new State(-458);
states[1333] = new State(new int[]{23,1335,11,-324,92,-324,84,-324,83,-324,82,-324,81,-324,29,-324,143,-324,85,-324,86,-324,80,-324,78,-324,160,-324,87,-324,62,-324,28,-324,26,-324,44,-324,37,-324,19,-324,30,-324,31,-324,46,-324,27,-324,10,-324,107,-324,91,-324,59,-324,66,-324,50,-324,53,-324,149,-324,41,-324},new int[]{-316,1334});
states[1334] = new State(-326);
states[1335] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-158,1336,-147,809,-151,49,-152,52});
states[1336] = new State(new int[]{5,1337,100,544});
states[1337] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,1343,49,549,34,553,73,557,44,563,37,604,26,1352,30,1353},new int[]{-288,1338,-286,1354,-277,1342,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562});
states[1338] = new State(new int[]{10,1339,100,1340});
states[1339] = new State(-327);
states[1340] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,1343,49,549,34,553,73,557,44,563,37,604,26,1352,30,1353},new int[]{-286,1341,-277,1342,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562});
states[1341] = new State(-329);
states[1342] = new State(-330);
states[1343] = new State(new int[]{8,1344,10,-332,100,-332,23,-316,11,-316,92,-316,84,-316,83,-316,82,-316,81,-316,29,-316,143,-316,85,-316,86,-316,80,-316,78,-316,160,-316,87,-316,62,-316,28,-316,26,-316,44,-316,37,-316,19,-316,30,-316,31,-316,46,-316,27,-316},new int[]{-183,503});
states[1344] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-182,1345,-181,1351,-180,1349,-147,218,-151,49,-152,52,-301,1350});
states[1345] = new State(new int[]{9,1346,100,1347});
states[1346] = new State(-317);
states[1347] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-181,1348,-180,1349,-147,218,-151,49,-152,52,-301,1350});
states[1348] = new State(-319);
states[1349] = new State(new int[]{7,182,123,187,9,-320,100,-320},new int[]{-299,636});
states[1350] = new State(-321);
states[1351] = new State(-318);
states[1352] = new State(-331);
states[1353] = new State(-333);
states[1354] = new State(-328);
states[1355] = new State(-325);
states[1356] = new State(new int[]{110,1357});
states[1357] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,10,-493},new int[]{-261,1358,-4,23,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885});
states[1358] = new State(new int[]{10,1359});
states[1359] = new State(-443);
states[1360] = new State(new int[]{148,1173,150,1174,151,1175,152,1176,154,1177,153,1178,23,-829,107,-829,91,-829,59,-829,29,-829,66,-829,50,-829,53,-829,62,-829,11,-829,28,-829,26,-829,44,-829,37,-829,19,-829,30,-829,31,-829,46,-829,27,-829,92,-829,84,-829,83,-829,82,-829,81,-829,149,-829},new int[]{-206,1361,-209,1179});
states[1361] = new State(new int[]{10,1171,110,-832});
states[1362] = new State(-373);
states[1363] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405},new int[]{-170,1364,-142,1182,-137,1183,-134,1184,-147,1189,-151,49,-152,52,-191,1190,-335,1192,-149,1196});
states[1364] = new State(new int[]{8,565,5,-469,10,-469,110,-469},new int[]{-128,1365});
states[1365] = new State(new int[]{5,1368,10,1360,110,-831},new int[]{-207,1366,-208,1376});
states[1366] = new State(new int[]{23,1335,107,-323,91,-323,59,-323,29,-323,66,-323,50,-323,53,-323,62,-323,11,-323,28,-323,26,-323,44,-323,37,-323,19,-323,30,-323,31,-323,46,-323,27,-323,92,-323,84,-323,83,-323,82,-323,81,-323,149,-323,41,-323},new int[]{-318,1367,-317,1333,-316,1355});
states[1367] = new State(-459);
states[1368] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-276,1369,-277,491,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562});
states[1369] = new State(new int[]{10,1360,110,-831},new int[]{-207,1370,-208,1372});
states[1370] = new State(new int[]{23,1335,107,-323,91,-323,59,-323,29,-323,66,-323,50,-323,53,-323,62,-323,11,-323,28,-323,26,-323,44,-323,37,-323,19,-323,30,-323,31,-323,46,-323,27,-323,92,-323,84,-323,83,-323,82,-323,81,-323,149,-323,41,-323},new int[]{-318,1371,-317,1333,-316,1355});
states[1371] = new State(-460);
states[1372] = new State(new int[]{110,1373});
states[1373] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,713,21,294,22,299,76,446,11,368,40,589,18,669,37,678,44,682},new int[]{-103,1374,-101,881,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-323,882,-100,659,-324,677});
states[1374] = new State(new int[]{10,1375});
states[1375] = new State(-441);
states[1376] = new State(new int[]{110,1377});
states[1377] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,713,21,294,22,299,76,446,11,368,40,589,18,669,37,678,44,682},new int[]{-103,1378,-101,881,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-323,882,-100,659,-324,677});
states[1378] = new State(new int[]{10,1379});
states[1379] = new State(-442);
states[1380] = new State(-358);
states[1381] = new State(-359);
states[1382] = new State(-367);
states[1383] = new State(new int[]{28,1380,26,1381,44,1328,37,1363},new int[]{-3,1384,-230,1387,-216,1388,-228,1316,-225,1327,-229,1362});
states[1384] = new State(new int[]{44,1328,37,1363},new int[]{-230,1385,-216,1386,-228,1316,-225,1327,-229,1362});
states[1385] = new State(-368);
states[1386] = new State(-433);
states[1387] = new State(-369);
states[1388] = new State(-431);
states[1389] = new State(new int[]{107,1318,11,-370,28,-370,26,-370,44,-370,37,-370,19,-370,30,-370,31,-370,46,-370,27,-370,92,-370,84,-370,83,-370,82,-370,81,-370,59,-70,29,-70,66,-70,50,-70,53,-70,62,-70,91,-70},new int[]{-176,1390,-42,1202,-38,1205,-60,1317});
states[1390] = new State(-422);
states[1391] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405,8,-378,110,-378,10,-378},new int[]{-172,1392,-171,1180,-170,1181,-142,1182,-137,1183,-134,1184,-147,1189,-151,49,-152,52,-191,1190,-335,1192,-149,1196});
states[1392] = new State(new int[]{8,565,110,-469,10,-469},new int[]{-128,1393});
states[1393] = new State(new int[]{110,1395,10,1169},new int[]{-207,1394});
states[1394] = new State(-374);
states[1395] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,10,-493},new int[]{-261,1396,-4,23,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885});
states[1396] = new State(new int[]{10,1397});
states[1397] = new State(-423);
states[1398] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405,8,-378,10,-378},new int[]{-172,1399,-171,1180,-170,1181,-142,1182,-137,1183,-134,1184,-147,1189,-151,49,-152,52,-191,1190,-335,1192,-149,1196});
states[1399] = new State(new int[]{8,565,10,-469},new int[]{-128,1400});
states[1400] = new State(new int[]{10,1169},new int[]{-207,1401});
states[1401] = new State(-376);
states[1402] = new State(-364);
states[1403] = new State(-430);
states[1404] = new State(-365);
states[1405] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405},new int[]{-170,1406,-142,1182,-137,1183,-134,1184,-147,1189,-151,49,-152,52,-191,1190,-335,1192,-149,1196});
states[1406] = new State(new int[]{11,1299,5,-391},new int[]{-233,1407,-238,1296});
states[1407] = new State(new int[]{85,1285,86,1291,10,-398},new int[]{-202,1408});
states[1408] = new State(new int[]{10,1409});
states[1409] = new State(new int[]{63,1279,153,1281,152,1282,148,1283,151,1284,11,-388,28,-388,26,-388,44,-388,37,-388,19,-388,30,-388,31,-388,46,-388,27,-388,92,-388,84,-388,83,-388,82,-388,81,-388},new int[]{-205,1410,-210,1411});
states[1410] = new State(-380);
states[1411] = new State(new int[]{10,1412});
states[1412] = new State(new int[]{63,1279,11,-388,28,-388,26,-388,44,-388,37,-388,19,-388,30,-388,31,-388,46,-388,27,-388,92,-388,84,-388,83,-388,82,-388,81,-388},new int[]{-205,1413});
states[1413] = new State(-381);
states[1414] = new State(new int[]{46,1415});
states[1415] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405},new int[]{-170,1416,-142,1182,-137,1183,-134,1184,-147,1189,-151,49,-152,52,-191,1190,-335,1192,-149,1196});
states[1416] = new State(new int[]{11,1299,5,-391},new int[]{-233,1417,-238,1296});
states[1417] = new State(new int[]{110,1314,10,-387},new int[]{-211,1418});
states[1418] = new State(new int[]{10,1419});
states[1419] = new State(-384);
states[1420] = new State(new int[]{11,628,92,-342,84,-342,83,-342,82,-342,81,-342,28,-213,26,-213,44,-213,37,-213,19,-213,30,-213,31,-213,46,-213,27,-213},new int[]{-53,514,-52,515,-6,516,-251,1155,-54,1421});
states[1421] = new State(-354);
states[1422] = new State(-351);
states[1423] = new State(-308);
states[1424] = new State(-309);
states[1425] = new State(new int[]{26,1426,48,1427,43,1428,8,-310,23,-310,11,-310,92,-310,84,-310,83,-310,82,-310,81,-310,29,-310,143,-310,85,-310,86,-310,80,-310,78,-310,160,-310,87,-310,62,-310,28,-310,44,-310,37,-310,19,-310,30,-310,31,-310,46,-310,27,-310,10,-310});
states[1426] = new State(-311);
states[1427] = new State(-312);
states[1428] = new State(-313);
states[1429] = new State(new int[]{68,1431,69,1432,148,1433,27,1434,28,1435,26,-305,43,-305,64,-305},new int[]{-19,1430});
states[1430] = new State(-307);
states[1431] = new State(-299);
states[1432] = new State(-300);
states[1433] = new State(-301);
states[1434] = new State(-302);
states[1435] = new State(-303);
states[1436] = new State(-306);
states[1437] = new State(new int[]{123,1439,120,-221},new int[]{-155,1438});
states[1438] = new State(-222);
states[1439] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-158,1440,-147,809,-151,49,-152,52});
states[1440] = new State(new int[]{122,1441,121,1188,100,544});
states[1441] = new State(-223);
states[1442] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604,68,1431,69,1432,148,1433,27,1434,28,1435,26,-304,43,-304,64,-304},new int[]{-287,1443,-277,1243,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562,-29,1244,-20,1245,-21,1429,-19,1436});
states[1443] = new State(new int[]{10,1444});
states[1444] = new State(-220);
states[1445] = new State(new int[]{11,628,143,-213,85,-213,86,-213,80,-213,78,-213,160,-213,87,-213},new int[]{-48,1446,-6,1237,-251,1155});
states[1446] = new State(-105);
states[1447] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,8,1452,59,-91,29,-91,66,-91,50,-91,53,-91,62,-91,91,-91},new int[]{-314,1448,-311,1449,-312,1450,-158,810,-147,809,-151,49,-152,52});
states[1448] = new State(-111);
states[1449] = new State(-107);
states[1450] = new State(new int[]{10,1451});
states[1451] = new State(-405);
states[1452] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-147,1453,-151,49,-152,52});
states[1453] = new State(new int[]{100,1454});
states[1454] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-158,1455,-147,809,-151,49,-152,52});
states[1455] = new State(new int[]{9,1456,100,544});
states[1456] = new State(new int[]{110,1457});
states[1457] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589},new int[]{-101,1458,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588});
states[1458] = new State(new int[]{10,1459});
states[1459] = new State(-108);
states[1460] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,8,1452},new int[]{-314,1461,-311,1449,-312,1450,-158,810,-147,809,-151,49,-152,52});
states[1461] = new State(-109);
states[1462] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,8,1452},new int[]{-314,1463,-311,1449,-312,1450,-158,810,-147,809,-151,49,-152,52});
states[1463] = new State(-110);
states[1464] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,356,12,-280,100,-280},new int[]{-272,1465,-273,1466,-93,194,-106,314,-107,315,-180,352,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283});
states[1465] = new State(-278);
states[1466] = new State(-279);
states[1467] = new State(-277);
states[1468] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-277,1469,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562});
states[1469] = new State(-276);
states[1470] = new State(-246);
states[1471] = new State(-247);
states[1472] = new State(new int[]{127,483,121,-248,100,-248,120,-248,9,-248,10,-248,8,-248,138,-248,136,-248,118,-248,117,-248,131,-248,132,-248,133,-248,134,-248,130,-248,116,-248,115,-248,128,-248,129,-248,126,-248,6,-248,5,-248,125,-248,123,-248,124,-248,122,-248,137,-248,135,-248,16,-248,70,-248,92,-248,98,-248,101,-248,33,-248,104,-248,2,-248,12,-248,99,-248,32,-248,85,-248,84,-248,83,-248,82,-248,81,-248,86,-248,13,-248,76,-248,51,-248,58,-248,141,-248,143,-248,80,-248,78,-248,160,-248,87,-248,45,-248,42,-248,21,-248,22,-248,144,-248,147,-248,145,-248,146,-248,155,-248,158,-248,157,-248,156,-248,11,-248,57,-248,91,-248,40,-248,25,-248,97,-248,54,-248,35,-248,55,-248,102,-248,47,-248,36,-248,53,-248,60,-248,74,-248,72,-248,38,-248,71,-248,110,-248});
states[1473] = new State(-692);
states[1474] = new State(new int[]{8,1475});
states[1475] = new State(new int[]{14,472,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,53,474,143,48,85,50,86,51,80,53,78,54,160,55,87,56,11,926,8,939},new int[]{-354,1476,-352,1482,-15,473,-165,336,-167,279,-166,283,-16,337,-341,1473,-284,1474,-180,181,-147,218,-151,49,-152,52,-344,1480,-345,1481});
states[1476] = new State(new int[]{9,1477,10,470,100,1478});
states[1477] = new State(-650);
states[1478] = new State(new int[]{14,472,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,53,474,143,48,85,50,86,51,80,53,78,54,160,55,87,56,11,926,8,939},new int[]{-352,1479,-15,473,-165,336,-167,279,-166,283,-16,337,-341,1473,-284,1474,-180,181,-147,218,-151,49,-152,52,-344,1480,-345,1481});
states[1479] = new State(-687);
states[1480] = new State(-693);
states[1481] = new State(-694);
states[1482] = new State(-685);
states[1483] = new State(-781);
states[1484] = new State(new int[]{13,482});
states[1485] = new State(-241);
states[1486] = new State(-237);
states[1487] = new State(-626);
states[1488] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,712,8,713,21,294,22,299,76,446,11,368,40,589,5,598,18,669,37,678,44,682,9,-814},new int[]{-67,1489,-72,705,-89,1107,-87,708,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,709,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597,-323,1106,-100,659,-324,677});
states[1489] = new State(new int[]{9,1490});
states[1490] = new State(-645);
states[1491] = new State(new int[]{8,1492});
states[1492] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589},new int[]{-334,1493,-333,1501,-147,1497,-151,49,-152,52,-101,1500,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588});
states[1493] = new State(new int[]{9,1494,100,1495});
states[1494] = new State(-637);
states[1495] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589},new int[]{-333,1496,-147,1497,-151,49,-152,52,-101,1500,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588});
states[1496] = new State(-641);
states[1497] = new State(new int[]{110,1498,11,-792,17,-792,8,-792,7,-792,142,-792,4,-792,15,-792,138,-792,136,-792,118,-792,117,-792,131,-792,132,-792,133,-792,134,-792,130,-792,116,-792,115,-792,128,-792,129,-792,126,-792,6,-792,120,-792,125,-792,123,-792,121,-792,124,-792,122,-792,137,-792,135,-792,16,-792,9,-792,100,-792,13,-792,119,-792});
states[1498] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589},new int[]{-101,1499,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588});
states[1499] = new State(-638);
states[1500] = new State(-639);
states[1501] = new State(-640);
states[1502] = new State(new int[]{13,206,16,210,5,-707,12,-707});
states[1503] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,838,135,841,116,353,115,354,63,339},new int[]{-90,1504,-91,236,-81,246,-13,251,-10,261,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849,-242,855});
states[1504] = new State(new int[]{13,206,16,210,100,-190,9,-190,12,-190,5,-190});
states[1505] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,838,135,841,116,353,115,354,63,339,5,-708,12,-708},new int[]{-122,1506,-90,1502,-91,236,-81,246,-13,251,-10,261,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849,-242,855});
states[1506] = new State(new int[]{5,1507,12,-714});
states[1507] = new State(new int[]{143,48,85,50,86,51,80,53,78,263,160,55,87,56,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,42,291,21,294,22,299,11,368,76,819,56,822,141,823,8,838,135,841,116,353,115,354,63,339},new int[]{-90,1508,-91,236,-81,246,-13,251,-10,261,-14,222,-147,262,-151,49,-152,52,-165,278,-167,279,-166,283,-16,286,-258,293,-295,298,-239,366,-240,367,-199,847,-173,845,-56,846,-266,853,-270,854,-11,849,-242,855});
states[1508] = new State(new int[]{13,206,16,210,12,-716});
states[1509] = new State(-187);
states[1510] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285},new int[]{-93,1511,-106,314,-107,315,-180,352,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283});
states[1511] = new State(new int[]{116,247,115,248,128,249,129,250,13,-250,121,-250,100,-250,120,-250,9,-250,10,-250,8,-250,138,-250,136,-250,118,-250,117,-250,131,-250,132,-250,133,-250,134,-250,130,-250,126,-250,6,-250,5,-250,125,-250,123,-250,124,-250,122,-250,137,-250,135,-250,16,-250,70,-250,92,-250,98,-250,101,-250,33,-250,104,-250,2,-250,12,-250,99,-250,32,-250,85,-250,84,-250,83,-250,82,-250,81,-250,86,-250,76,-250,51,-250,58,-250,141,-250,143,-250,80,-250,78,-250,160,-250,87,-250,45,-250,42,-250,21,-250,22,-250,144,-250,147,-250,145,-250,146,-250,155,-250,158,-250,157,-250,156,-250,11,-250,57,-250,91,-250,40,-250,25,-250,97,-250,54,-250,35,-250,55,-250,102,-250,47,-250,36,-250,53,-250,60,-250,74,-250,72,-250,38,-250,71,-250,127,-250,110,-250},new int[]{-193,195});
states[1512] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,24,494},new int[]{-284,1513,-279,1514,-180,181,-147,218,-151,49,-152,52,-271,500});
states[1513] = new State(-739);
states[1514] = new State(-740);
states[1515] = new State(-753);
states[1516] = new State(-754);
states[1517] = new State(-755);
states[1518] = new State(-756);
states[1519] = new State(-757);
states[1520] = new State(-758);
states[1521] = new State(-759);
states[1522] = new State(-729);
states[1523] = new State(-648);
states[1524] = new State(-35);
states[1525] = new State(new int[]{59,1208,29,1229,66,1233,50,1445,53,1460,62,1462,11,628,91,-64,92,-64,103,-64,44,-213,37,-213,28,-213,26,-213,19,-213,30,-213,31,-213},new int[]{-46,1526,-168,1527,-28,1528,-51,1529,-289,1530,-310,1531,-220,1532,-6,1533,-251,1155});
states[1526] = new State(-68);
states[1527] = new State(-78);
states[1528] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,59,-79,29,-79,66,-79,50,-79,53,-79,62,-79,11,-79,44,-79,37,-79,28,-79,26,-79,19,-79,30,-79,31,-79,91,-79,92,-79,103,-79},new int[]{-26,1215,-27,1216,-141,1218,-147,1228,-151,49,-152,52});
states[1529] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,59,-80,29,-80,66,-80,50,-80,53,-80,62,-80,11,-80,44,-80,37,-80,28,-80,26,-80,19,-80,30,-80,31,-80,91,-80,92,-80,103,-80},new int[]{-26,1232,-27,1216,-141,1218,-147,1228,-151,49,-152,52});
states[1530] = new State(new int[]{11,628,59,-81,29,-81,66,-81,50,-81,53,-81,62,-81,44,-81,37,-81,28,-81,26,-81,19,-81,30,-81,31,-81,91,-81,92,-81,103,-81,143,-213,85,-213,86,-213,80,-213,78,-213,160,-213,87,-213},new int[]{-48,1236,-6,1237,-251,1155});
states[1531] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,8,1452,59,-82,29,-82,66,-82,50,-82,53,-82,62,-82,11,-82,44,-82,37,-82,28,-82,26,-82,19,-82,30,-82,31,-82,91,-82,92,-82,103,-82},new int[]{-314,1448,-311,1449,-312,1450,-158,810,-147,809,-151,49,-152,52});
states[1532] = new State(-83);
states[1533] = new State(new int[]{44,1546,37,1553,28,1380,26,1381,19,1576,30,1583,31,1398,11,628},new int[]{-213,1534,-251,518,-214,1535,-221,1536,-228,1537,-225,1327,-229,1362,-3,1566,-217,1580,-227,1581});
states[1534] = new State(-86);
states[1535] = new State(-84);
states[1536] = new State(-425);
states[1537] = new State(new int[]{149,1539,107,1318,59,-67,29,-67,66,-67,50,-67,53,-67,62,-67,11,-67,44,-67,37,-67,28,-67,26,-67,19,-67,30,-67,31,-67,91,-67},new int[]{-178,1538,-177,1541,-40,1542,-41,1525,-60,1545});
states[1538] = new State(-435);
states[1539] = new State(new int[]{10,1540});
states[1540] = new State(-436);
states[1541] = new State(-444);
states[1542] = new State(new int[]{91,17},new int[]{-256,1543});
states[1543] = new State(new int[]{10,1544});
states[1544] = new State(-466);
states[1545] = new State(-445);
states[1546] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405},new int[]{-171,1547,-170,1181,-142,1182,-137,1183,-134,1184,-147,1189,-151,49,-152,52,-191,1190,-335,1192,-149,1196});
states[1547] = new State(new int[]{8,565,10,-469,110,-469},new int[]{-128,1548});
states[1548] = new State(new int[]{10,1360,110,-831},new int[]{-207,1331,-208,1549});
states[1549] = new State(new int[]{110,1550});
states[1550] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,10,-493},new int[]{-261,1551,-4,23,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885});
states[1551] = new State(new int[]{10,1552});
states[1552] = new State(-439);
states[1553] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405},new int[]{-170,1554,-142,1182,-137,1183,-134,1184,-147,1189,-151,49,-152,52,-191,1190,-335,1192,-149,1196});
states[1554] = new State(new int[]{8,565,5,-469,10,-469,110,-469},new int[]{-128,1555});
states[1555] = new State(new int[]{5,1556,10,1360,110,-831},new int[]{-207,1366,-208,1562});
states[1556] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-276,1557,-277,491,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562});
states[1557] = new State(new int[]{10,1360,110,-831},new int[]{-207,1370,-208,1558});
states[1558] = new State(new int[]{110,1559});
states[1559] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,713,21,294,22,299,76,446,11,368,40,589,18,669,37,678,44,682},new int[]{-103,1560,-101,881,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-323,882,-100,659,-324,677});
states[1560] = new State(new int[]{10,1561});
states[1561] = new State(-437);
states[1562] = new State(new int[]{110,1563});
states[1563] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,713,21,294,22,299,76,446,11,368,40,589,18,669,37,678,44,682},new int[]{-103,1564,-101,881,-99,30,-98,156,-105,586,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,641,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-323,882,-100,659,-324,677});
states[1564] = new State(new int[]{10,1565});
states[1565] = new State(-438);
states[1566] = new State(new int[]{19,1568,30,1570,44,1546,37,1553},new int[]{-221,1567,-228,1537,-225,1327,-229,1362});
states[1567] = new State(-426);
states[1568] = new State(new int[]{44,1546,37,1553},new int[]{-221,1569,-228,1537,-225,1327,-229,1362});
states[1569] = new State(-429);
states[1570] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405,8,-378,110,-378,10,-378},new int[]{-172,1571,-171,1180,-170,1181,-142,1182,-137,1183,-134,1184,-147,1189,-151,49,-152,52,-191,1190,-335,1192,-149,1196});
states[1571] = new State(new int[]{8,565,110,-469,10,-469},new int[]{-128,1572});
states[1572] = new State(new int[]{110,1573,10,1169},new int[]{-207,526});
states[1573] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,10,-493},new int[]{-261,1574,-4,23,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885});
states[1574] = new State(new int[]{10,1575});
states[1575] = new State(-421);
states[1576] = new State(new int[]{44,1546,37,1553,28,1380,26,1381},new int[]{-221,1577,-3,1578,-228,1537,-225,1327,-229,1362});
states[1577] = new State(-427);
states[1578] = new State(new int[]{44,1546,37,1553},new int[]{-221,1579,-228,1537,-225,1327,-229,1362});
states[1579] = new State(-428);
states[1580] = new State(-85);
states[1581] = new State(-67,new int[]{-177,1582,-40,1542,-41,1525});
states[1582] = new State(-419);
states[1583] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405,8,-378,110,-378,10,-378},new int[]{-172,1584,-171,1180,-170,1181,-142,1182,-137,1183,-134,1184,-147,1189,-151,49,-152,52,-191,1190,-335,1192,-149,1196});
states[1584] = new State(new int[]{8,565,110,-469,10,-469},new int[]{-128,1585});
states[1585] = new State(new int[]{110,1586,10,1169},new int[]{-207,1394});
states[1586] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,10,-493},new int[]{-261,1587,-4,23,-113,24,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885});
states[1587] = new State(new int[]{10,1588});
states[1588] = new State(-420);
states[1589] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,84,59,83,60,82,61,81,62,68,63,64,64,128,65,22,66,21,67,63,68,23,69,129,70,130,71,131,72,132,73,133,74,134,75,135,76,136,77,137,78,138,79,24,80,73,81,91,82,25,83,26,84,29,85,30,86,31,87,71,88,99,89,32,90,92,91,33,92,34,93,27,94,104,95,101,96,35,97,36,98,37,99,40,100,41,101,42,102,103,103,43,104,44,105,46,106,47,107,48,108,97,109,49,110,102,111,50,112,28,113,51,114,70,115,98,116,52,117,53,118,54,119,55,120,56,121,57,122,58,123,59,124,61,125,105,126,106,127,109,128,107,129,108,130,62,131,74,132,38,133,39,134,69,135,148,136,60,137,139,138,140,139,79,140,153,141,152,142,72,143,154,144,150,145,151,146,149,147,45,149},new int[]{-304,1590,-308,1600,-157,1594,-138,1599,-147,47,-151,49,-152,52,-293,57,-150,58,-294,148});
states[1590] = new State(new int[]{10,1591,100,1592});
states[1591] = new State(-38);
states[1592] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,84,59,83,60,82,61,81,62,68,63,64,64,128,65,22,66,21,67,63,68,23,69,129,70,130,71,131,72,132,73,133,74,134,75,135,76,136,77,137,78,138,79,24,80,73,81,91,82,25,83,26,84,29,85,30,86,31,87,71,88,99,89,32,90,92,91,33,92,34,93,27,94,104,95,101,96,35,97,36,98,37,99,40,100,41,101,42,102,103,103,43,104,44,105,46,106,47,107,48,108,97,109,49,110,102,111,50,112,28,113,51,114,70,115,98,116,52,117,53,118,54,119,55,120,56,121,57,122,58,123,59,124,61,125,105,126,106,127,109,128,107,129,108,130,62,131,74,132,38,133,39,134,69,135,148,136,60,137,139,138,140,139,79,140,153,141,152,142,72,143,154,144,150,145,151,146,149,147,45,149},new int[]{-308,1593,-157,1594,-138,1599,-147,47,-151,49,-152,52,-293,57,-150,58,-294,148});
states[1593] = new State(-44);
states[1594] = new State(new int[]{7,1595,137,1597,10,-45,100,-45});
states[1595] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,84,59,83,60,82,61,81,62,68,63,64,64,128,65,22,66,21,67,63,68,23,69,129,70,130,71,131,72,132,73,133,74,134,75,135,76,136,77,137,78,138,79,24,80,73,81,91,82,25,83,26,84,29,85,30,86,31,87,71,88,99,89,32,90,92,91,33,92,34,93,27,94,104,95,101,96,35,97,36,98,37,99,40,100,41,101,42,102,103,103,43,104,44,105,46,106,47,107,48,108,97,109,49,110,102,111,50,112,28,113,51,114,70,115,98,116,52,117,53,118,54,119,55,120,56,121,57,122,58,123,59,124,61,125,105,126,106,127,109,128,107,129,108,130,62,131,74,132,38,133,39,134,69,135,148,136,60,137,139,138,140,139,79,140,153,141,152,142,72,143,154,144,150,145,151,146,149,147,45,149},new int[]{-138,1596,-147,47,-151,49,-152,52,-293,57,-150,58,-294,148});
states[1596] = new State(-37);
states[1597] = new State(new int[]{144,1598});
states[1598] = new State(-46);
states[1599] = new State(-36);
states[1600] = new State(-43);
states[1601] = new State(new int[]{3,1603,52,-15,91,-15,59,-15,29,-15,66,-15,50,-15,53,-15,62,-15,11,-15,44,-15,37,-15,28,-15,26,-15,19,-15,30,-15,31,-15,43,-15,92,-15,103,-15},new int[]{-184,1602});
states[1602] = new State(-17);
states[1603] = new State(new int[]{143,1604,144,1605});
states[1604] = new State(-18);
states[1605] = new State(-19);
states[1606] = new State(-16);
states[1607] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-147,1608,-151,49,-152,52});
states[1608] = new State(new int[]{10,1610,8,1611},new int[]{-187,1609});
states[1609] = new State(-28);
states[1610] = new State(-29);
states[1611] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-189,1612,-146,1618,-147,1617,-151,49,-152,52});
states[1612] = new State(new int[]{9,1613,100,1615});
states[1613] = new State(new int[]{10,1614});
states[1614] = new State(-30);
states[1615] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-146,1616,-147,1617,-151,49,-152,52});
states[1616] = new State(-32);
states[1617] = new State(-33);
states[1618] = new State(-31);
states[1619] = new State(-3);
states[1620] = new State(new int[]{43,1641,52,-41,59,-41,29,-41,66,-41,50,-41,53,-41,62,-41,11,-41,44,-41,37,-41,28,-41,26,-41,19,-41,30,-41,31,-41,92,-41,103,-41,91,-41},new int[]{-162,1621,-163,1638,-303,1667});
states[1621] = new State(new int[]{41,1635},new int[]{-161,1622});
states[1622] = new State(new int[]{92,1625,103,1626,91,1632},new int[]{-154,1623});
states[1623] = new State(new int[]{7,1624});
states[1624] = new State(-47);
states[1625] = new State(-57);
states[1626] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,752,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,92,-493,104,-493,10,-493},new int[]{-253,1627,-262,750,-261,22,-4,23,-113,24,-132,391,-111,399,-147,751,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885,-143,1040});
states[1627] = new State(new int[]{92,1628,104,1629,10,20});
states[1628] = new State(-58);
states[1629] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,752,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,92,-493,10,-493},new int[]{-253,1630,-262,750,-261,22,-4,23,-113,24,-132,391,-111,399,-147,751,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885,-143,1040});
states[1630] = new State(new int[]{92,1631,10,20});
states[1631] = new State(-59);
states[1632] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,752,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,92,-493,10,-493},new int[]{-253,1633,-262,750,-261,22,-4,23,-113,24,-132,391,-111,399,-147,751,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885,-143,1040});
states[1633] = new State(new int[]{92,1634,10,20});
states[1634] = new State(-60);
states[1635] = new State(-41,new int[]{-303,1636});
states[1636] = new State(new int[]{52,1589,59,-67,29,-67,66,-67,50,-67,53,-67,62,-67,11,-67,44,-67,37,-67,28,-67,26,-67,19,-67,30,-67,31,-67,92,-67,103,-67,91,-67},new int[]{-40,1637,-305,14,-41,1525});
states[1637] = new State(-55);
states[1638] = new State(new int[]{92,1625,103,1626,91,1632},new int[]{-154,1639});
states[1639] = new State(new int[]{7,1640});
states[1640] = new State(-48);
states[1641] = new State(-41,new int[]{-303,1642});
states[1642] = new State(new int[]{52,1589,29,-62,66,-62,50,-62,53,-62,62,-62,11,-62,44,-62,37,-62,41,-62},new int[]{-39,1643,-305,14,-37,1644});
states[1643] = new State(-54);
states[1644] = new State(new int[]{29,1229,66,1233,50,1445,53,1460,62,1462,11,628,41,-61,44,-213,37,-213},new int[]{-47,1645,-28,1646,-51,1647,-289,1648,-310,1649,-232,1650,-6,1651,-251,1155,-231,1666});
states[1645] = new State(-63);
states[1646] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,29,-72,66,-72,50,-72,53,-72,62,-72,11,-72,44,-72,37,-72,41,-72},new int[]{-26,1215,-27,1216,-141,1218,-147,1228,-151,49,-152,52});
states[1647] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,29,-73,66,-73,50,-73,53,-73,62,-73,11,-73,44,-73,37,-73,41,-73},new int[]{-26,1232,-27,1216,-141,1218,-147,1228,-151,49,-152,52});
states[1648] = new State(new int[]{11,628,29,-74,66,-74,50,-74,53,-74,62,-74,44,-74,37,-74,41,-74,143,-213,85,-213,86,-213,80,-213,78,-213,160,-213,87,-213},new int[]{-48,1236,-6,1237,-251,1155});
states[1649] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,8,1452,29,-75,66,-75,50,-75,53,-75,62,-75,11,-75,44,-75,37,-75,41,-75},new int[]{-314,1448,-311,1449,-312,1450,-158,810,-147,809,-151,49,-152,52});
states[1650] = new State(-76);
states[1651] = new State(new int[]{44,1658,11,628,37,1661},new int[]{-225,1652,-251,518,-229,1655});
states[1652] = new State(new int[]{149,1653,29,-92,66,-92,50,-92,53,-92,62,-92,11,-92,44,-92,37,-92,41,-92});
states[1653] = new State(new int[]{10,1654});
states[1654] = new State(-93);
states[1655] = new State(new int[]{149,1656,29,-94,66,-94,50,-94,53,-94,62,-94,11,-94,44,-94,37,-94,41,-94});
states[1656] = new State(new int[]{10,1657});
states[1657] = new State(-95);
states[1658] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405},new int[]{-171,1659,-170,1181,-142,1182,-137,1183,-134,1184,-147,1189,-151,49,-152,52,-191,1190,-335,1192,-149,1196});
states[1659] = new State(new int[]{8,565,10,-469},new int[]{-128,1660});
states[1660] = new State(new int[]{10,1169},new int[]{-207,1331});
states[1661] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,45,405},new int[]{-170,1662,-142,1182,-137,1183,-134,1184,-147,1189,-151,49,-152,52,-191,1190,-335,1192,-149,1196});
states[1662] = new State(new int[]{8,565,5,-469,10,-469},new int[]{-128,1663});
states[1663] = new State(new int[]{5,1664,10,1169},new int[]{-207,1366});
states[1664] = new State(new int[]{143,362,85,50,86,51,80,53,78,54,160,55,87,56,155,287,158,288,157,289,156,290,116,353,115,354,144,281,147,282,145,284,146,285,8,478,142,489,24,494,48,502,49,549,34,553,73,557,44,563,37,604},new int[]{-276,1665,-277,491,-273,361,-93,194,-106,314,-107,315,-180,316,-147,218,-151,49,-152,52,-16,349,-199,350,-165,355,-167,279,-166,283,-274,480,-301,481,-257,487,-250,488,-282,492,-279,493,-271,500,-30,501,-264,548,-130,552,-131,556,-226,560,-224,561,-223,562});
states[1665] = new State(new int[]{10,1169},new int[]{-207,1370});
states[1666] = new State(-77);
states[1667] = new State(new int[]{52,1589,59,-67,29,-67,66,-67,50,-67,53,-67,62,-67,11,-67,44,-67,37,-67,28,-67,26,-67,19,-67,30,-67,31,-67,92,-67,103,-67,91,-67},new int[]{-40,1668,-305,14,-41,1525});
states[1668] = new State(-56);
states[1669] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-139,1670,-147,1673,-151,49,-152,52});
states[1670] = new State(new int[]{10,1671});
states[1671] = new State(new int[]{3,1603,43,-14,92,-14,103,-14,91,-14,52,-14,59,-14,29,-14,66,-14,50,-14,53,-14,62,-14,11,-14,44,-14,37,-14,28,-14,26,-14,19,-14,30,-14,31,-14},new int[]{-185,1672,-186,1601,-184,1606});
states[1672] = new State(-49);
states[1673] = new State(-53);
states[1674] = new State(-51);
states[1675] = new State(-52);
states[1676] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,84,59,83,60,82,61,81,62,68,63,64,64,128,65,22,66,21,67,63,68,23,69,129,70,130,71,131,72,132,73,133,74,134,75,135,76,136,77,137,78,138,79,24,80,73,81,91,82,25,83,26,84,29,85,30,86,31,87,71,88,99,89,32,90,92,91,33,92,34,93,27,94,104,95,101,96,35,97,36,98,37,99,40,100,41,101,42,102,103,103,43,104,44,105,46,106,47,107,48,108,97,109,49,110,102,111,50,112,28,113,51,114,70,115,98,116,52,117,53,118,54,119,55,120,56,121,57,122,58,123,59,124,61,125,105,126,106,127,109,128,107,129,108,130,62,131,74,132,38,133,39,134,69,135,148,136,60,137,139,138,140,139,79,140,153,141,152,142,72,143,154,144,150,145,151,146,149,147,45,149},new int[]{-157,1677,-138,1599,-147,47,-151,49,-152,52,-293,57,-150,58,-294,148});
states[1677] = new State(new int[]{10,1678,7,1595});
states[1678] = new State(new int[]{3,1603,43,-14,92,-14,103,-14,91,-14,52,-14,59,-14,29,-14,66,-14,50,-14,53,-14,62,-14,11,-14,44,-14,37,-14,28,-14,26,-14,19,-14,30,-14,31,-14},new int[]{-185,1679,-186,1601,-184,1606});
states[1679] = new State(-50);
states[1680] = new State(-4);
states[1681] = new State(new int[]{50,1683,56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,437,21,294,22,299,76,446,11,368,40,589,5,598},new int[]{-87,1682,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,397,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597});
states[1682] = new State(new int[]{70,28,2,-7});
states[1683] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-144,1684,-147,1685,-151,49,-152,52});
states[1684] = new State(-8);
states[1685] = new State(new int[]{123,1186,2,-221},new int[]{-155,1438});
states[1686] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56},new int[]{-321,1687,-322,1688,-147,1692,-151,49,-152,52});
states[1687] = new State(-9);
states[1688] = new State(new int[]{7,1689,123,187,2,-786},new int[]{-299,1691});
states[1689] = new State(new int[]{143,48,85,50,86,51,80,53,78,54,160,55,87,56,84,59,83,60,82,61,81,62,68,63,64,64,128,65,22,66,21,67,63,68,23,69,129,70,130,71,131,72,132,73,133,74,134,75,135,76,136,77,137,78,138,79,24,80,73,81,91,82,25,83,26,84,29,85,30,86,31,87,71,88,99,89,32,90,92,91,33,92,34,93,27,94,104,95,101,96,35,97,36,98,37,99,40,100,41,101,42,102,103,103,43,104,44,105,46,106,47,107,48,108,97,109,49,110,102,111,50,112,28,113,51,114,70,115,98,116,52,117,53,118,54,119,55,120,56,121,57,122,58,123,59,124,61,125,105,126,106,127,109,128,107,129,108,130,62,131,74,132,38,133,39,134,69,135,148,136,60,137,139,138,140,139,79,140,153,141,152,142,72,143,154,144,150,145,151,146,149,147,45,149},new int[]{-138,1690,-147,47,-151,49,-152,52,-293,57,-150,58,-294,148});
states[1690] = new State(-785);
states[1691] = new State(-787);
states[1692] = new State(-784);
states[1693] = new State(new int[]{56,43,144,281,147,282,145,284,146,285,155,287,158,288,157,289,156,290,63,339,135,377,116,353,115,354,142,387,141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,435,8,531,21,294,22,299,76,446,11,368,40,589,5,598,53,800},new int[]{-260,1694,-87,1695,-101,155,-99,30,-98,156,-105,166,-83,171,-82,177,-96,335,-15,44,-165,336,-167,279,-166,283,-16,337,-56,338,-199,384,-113,1123,-132,391,-111,399,-147,403,-151,49,-152,52,-191,404,-258,444,-295,445,-240,450,-112,451,-57,452,-116,458,-173,459,-269,460,-97,461,-265,465,-267,466,-268,578,-241,579,-117,580,-243,588,-120,597,-4,1696,-315,1697});
states[1694] = new State(-10);
states[1695] = new State(new int[]{70,28,2,-11});
states[1696] = new State(-12);
states[1697] = new State(-13);
states[1698] = new State(new int[]{52,1589,141,-39,143,-39,85,-39,86,-39,80,-39,78,-39,160,-39,87,-39,45,-39,42,-39,8,-39,21,-39,22,-39,144,-39,147,-39,145,-39,146,-39,155,-39,158,-39,157,-39,156,-39,76,-39,11,-39,57,-39,91,-39,40,-39,25,-39,97,-39,54,-39,35,-39,55,-39,102,-39,47,-39,36,-39,53,-39,60,-39,74,-39,72,-39,38,-39,44,-39,37,-39,10,-39,2,-39},new int[]{-306,1699,-305,1703});
states[1699] = new State(-65,new int[]{-43,1700});
states[1700] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,752,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,44,1546,37,1553,10,-493,2,-493},new int[]{-253,1701,-221,1702,-262,750,-261,22,-4,23,-113,24,-132,391,-111,399,-147,751,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885,-143,1040,-228,1537,-225,1327,-229,1362});
states[1701] = new State(new int[]{10,20,2,-5});
states[1702] = new State(-66);
states[1703] = new State(-40);
states[1704] = new State(new int[]{52,1589,141,-39,143,-39,85,-39,86,-39,80,-39,78,-39,160,-39,87,-39,45,-39,42,-39,8,-39,21,-39,22,-39,144,-39,147,-39,145,-39,146,-39,155,-39,158,-39,157,-39,156,-39,76,-39,11,-39,57,-39,91,-39,40,-39,25,-39,97,-39,54,-39,35,-39,55,-39,102,-39,47,-39,36,-39,53,-39,60,-39,74,-39,72,-39,38,-39,44,-39,37,-39,10,-39,2,-39},new int[]{-306,1705,-305,1703});
states[1705] = new State(-65,new int[]{-43,1706});
states[1706] = new State(new int[]{141,398,143,48,85,50,86,51,80,53,78,263,160,55,87,56,45,405,42,530,8,531,21,294,22,299,144,281,147,282,145,284,146,285,155,752,158,288,157,289,156,290,76,446,11,368,57,731,91,17,40,721,25,738,97,754,54,759,35,764,55,775,102,781,47,788,36,791,53,800,60,872,74,877,72,864,38,886,44,1546,37,1553,10,-493,2,-493},new int[]{-253,1707,-221,1702,-262,750,-261,22,-4,23,-113,24,-132,391,-111,399,-147,751,-151,49,-152,52,-191,404,-258,444,-295,445,-15,727,-165,336,-167,279,-166,283,-16,337,-240,450,-112,451,-57,728,-116,458,-212,729,-133,730,-256,735,-153,736,-34,737,-248,753,-319,758,-124,763,-320,774,-160,779,-302,780,-249,787,-123,790,-315,799,-58,868,-174,869,-173,870,-169,871,-126,876,-127,883,-125,884,-349,885,-143,1040,-228,1537,-225,1327,-229,1362});
states[1707] = new State(new int[]{10,20,2,-6});
rules[1] = new Rule(-362, new int[]{-1,2});
rules[2] = new Rule(-1, new int[]{-234});
rules[3] = new Rule(-1, new int[]{-307});
rules[4] = new Rule(-1, new int[]{-175});
rules[5] = new Rule(-1, new int[]{75,-306,-43,-253});
rules[6] = new Rule(-1, new int[]{77,-306,-43,-253});
rules[7] = new Rule(-175, new int[]{88,-87});
rules[8] = new Rule(-175, new int[]{88,50,-144});
rules[9] = new Rule(-175, new int[]{90,-321});
rules[10] = new Rule(-175, new int[]{89,-260});
rules[11] = new Rule(-260, new int[]{-87});
rules[12] = new Rule(-260, new int[]{-4});
rules[13] = new Rule(-260, new int[]{-315});
rules[14] = new Rule(-185, new int[]{});
rules[15] = new Rule(-185, new int[]{-186});
rules[16] = new Rule(-186, new int[]{-184});
rules[17] = new Rule(-186, new int[]{-186,-184});
rules[18] = new Rule(-184, new int[]{3,143});
rules[19] = new Rule(-184, new int[]{3,144});
rules[20] = new Rule(-234, new int[]{-235,-185,-303,-17,-188});
rules[21] = new Rule(-188, new int[]{7});
rules[22] = new Rule(-188, new int[]{10});
rules[23] = new Rule(-188, new int[]{5});
rules[24] = new Rule(-188, new int[]{100});
rules[25] = new Rule(-188, new int[]{6});
rules[26] = new Rule(-188, new int[]{});
rules[27] = new Rule(-235, new int[]{});
rules[28] = new Rule(-235, new int[]{61,-147,-187});
rules[29] = new Rule(-187, new int[]{10});
rules[30] = new Rule(-187, new int[]{8,-189,9,10});
rules[31] = new Rule(-189, new int[]{-146});
rules[32] = new Rule(-189, new int[]{-189,100,-146});
rules[33] = new Rule(-146, new int[]{-147});
rules[34] = new Rule(-17, new int[]{-36,-256});
rules[35] = new Rule(-36, new int[]{-40});
rules[36] = new Rule(-157, new int[]{-138});
rules[37] = new Rule(-157, new int[]{-157,7,-138});
rules[38] = new Rule(-305, new int[]{52,-304,10});
rules[39] = new Rule(-306, new int[]{});
rules[40] = new Rule(-306, new int[]{-305});
rules[41] = new Rule(-303, new int[]{});
rules[42] = new Rule(-303, new int[]{-303,-305});
rules[43] = new Rule(-304, new int[]{-308});
rules[44] = new Rule(-304, new int[]{-304,100,-308});
rules[45] = new Rule(-308, new int[]{-157});
rules[46] = new Rule(-308, new int[]{-157,137,144});
rules[47] = new Rule(-307, new int[]{-309,-162,-161,-154,7});
rules[48] = new Rule(-307, new int[]{-309,-163,-154,7});
rules[49] = new Rule(-309, new int[]{-2,-139,10,-185});
rules[50] = new Rule(-309, new int[]{109,-157,10,-185});
rules[51] = new Rule(-2, new int[]{105});
rules[52] = new Rule(-2, new int[]{106});
rules[53] = new Rule(-139, new int[]{-147});
rules[54] = new Rule(-162, new int[]{43,-303,-39});
rules[55] = new Rule(-161, new int[]{41,-303,-40});
rules[56] = new Rule(-163, new int[]{-303,-40});
rules[57] = new Rule(-154, new int[]{92});
rules[58] = new Rule(-154, new int[]{103,-253,92});
rules[59] = new Rule(-154, new int[]{103,-253,104,-253,92});
rules[60] = new Rule(-154, new int[]{91,-253,92});
rules[61] = new Rule(-39, new int[]{-37});
rules[62] = new Rule(-37, new int[]{});
rules[63] = new Rule(-37, new int[]{-37,-47});
rules[64] = new Rule(-40, new int[]{-41});
rules[65] = new Rule(-43, new int[]{});
rules[66] = new Rule(-43, new int[]{-43,-221});
rules[67] = new Rule(-41, new int[]{});
rules[68] = new Rule(-41, new int[]{-41,-46});
rules[69] = new Rule(-42, new int[]{-38});
rules[70] = new Rule(-38, new int[]{});
rules[71] = new Rule(-38, new int[]{-38,-45});
rules[72] = new Rule(-47, new int[]{-28});
rules[73] = new Rule(-47, new int[]{-51});
rules[74] = new Rule(-47, new int[]{-289});
rules[75] = new Rule(-47, new int[]{-310});
rules[76] = new Rule(-47, new int[]{-232});
rules[77] = new Rule(-47, new int[]{-231});
rules[78] = new Rule(-46, new int[]{-168});
rules[79] = new Rule(-46, new int[]{-28});
rules[80] = new Rule(-46, new int[]{-51});
rules[81] = new Rule(-46, new int[]{-289});
rules[82] = new Rule(-46, new int[]{-310});
rules[83] = new Rule(-46, new int[]{-220});
rules[84] = new Rule(-213, new int[]{-214});
rules[85] = new Rule(-213, new int[]{-217});
rules[86] = new Rule(-220, new int[]{-6,-213});
rules[87] = new Rule(-45, new int[]{-168});
rules[88] = new Rule(-45, new int[]{-28});
rules[89] = new Rule(-45, new int[]{-51});
rules[90] = new Rule(-45, new int[]{-289});
rules[91] = new Rule(-45, new int[]{-310});
rules[92] = new Rule(-232, new int[]{-6,-225});
rules[93] = new Rule(-232, new int[]{-6,-225,149,10});
rules[94] = new Rule(-231, new int[]{-6,-229});
rules[95] = new Rule(-231, new int[]{-6,-229,149,10});
rules[96] = new Rule(-168, new int[]{59,-156,10});
rules[97] = new Rule(-156, new int[]{-143});
rules[98] = new Rule(-156, new int[]{-156,100,-143});
rules[99] = new Rule(-143, new int[]{155});
rules[100] = new Rule(-143, new int[]{-147});
rules[101] = new Rule(-28, new int[]{29,-26});
rules[102] = new Rule(-28, new int[]{-28,-26});
rules[103] = new Rule(-51, new int[]{66,-26});
rules[104] = new Rule(-51, new int[]{-51,-26});
rules[105] = new Rule(-289, new int[]{50,-48});
rules[106] = new Rule(-289, new int[]{-289,-48});
rules[107] = new Rule(-314, new int[]{-311});
rules[108] = new Rule(-314, new int[]{8,-147,100,-158,9,110,-101,10});
rules[109] = new Rule(-310, new int[]{53,-314});
rules[110] = new Rule(-310, new int[]{62,-314});
rules[111] = new Rule(-310, new int[]{-310,-314});
rules[112] = new Rule(-26, new int[]{-27,10});
rules[113] = new Rule(-27, new int[]{-141,120,-109});
rules[114] = new Rule(-27, new int[]{-141,5,-277,120,-84});
rules[115] = new Rule(-109, new int[]{-90});
rules[116] = new Rule(-109, new int[]{-95});
rules[117] = new Rule(-141, new int[]{-147});
rules[118] = new Rule(-91, new int[]{-81});
rules[119] = new Rule(-91, new int[]{-91,-192,-81});
rules[120] = new Rule(-90, new int[]{-91});
rules[121] = new Rule(-90, new int[]{-242});
rules[122] = new Rule(-90, new int[]{-90,16,-91});
rules[123] = new Rule(-242, new int[]{-90,13,-90,5,-90});
rules[124] = new Rule(-192, new int[]{120});
rules[125] = new Rule(-192, new int[]{125});
rules[126] = new Rule(-192, new int[]{123});
rules[127] = new Rule(-192, new int[]{121});
rules[128] = new Rule(-192, new int[]{124});
rules[129] = new Rule(-192, new int[]{122});
rules[130] = new Rule(-192, new int[]{137});
rules[131] = new Rule(-192, new int[]{135,137});
rules[132] = new Rule(-81, new int[]{-13});
rules[133] = new Rule(-81, new int[]{-81,-193,-13});
rules[134] = new Rule(-193, new int[]{116});
rules[135] = new Rule(-193, new int[]{115});
rules[136] = new Rule(-193, new int[]{128});
rules[137] = new Rule(-193, new int[]{129});
rules[138] = new Rule(-266, new int[]{-13,-201,-284});
rules[139] = new Rule(-270, new int[]{-11,119,-10});
rules[140] = new Rule(-270, new int[]{-11,119,-270});
rules[141] = new Rule(-270, new int[]{-199,-270});
rules[142] = new Rule(-13, new int[]{-10});
rules[143] = new Rule(-13, new int[]{-266});
rules[144] = new Rule(-13, new int[]{-270});
rules[145] = new Rule(-13, new int[]{-13,-195,-10});
rules[146] = new Rule(-13, new int[]{-13,-195,-270});
rules[147] = new Rule(-195, new int[]{118});
rules[148] = new Rule(-195, new int[]{117});
rules[149] = new Rule(-195, new int[]{131});
rules[150] = new Rule(-195, new int[]{132});
rules[151] = new Rule(-195, new int[]{133});
rules[152] = new Rule(-195, new int[]{134});
rules[153] = new Rule(-195, new int[]{130});
rules[154] = new Rule(-11, new int[]{-14});
rules[155] = new Rule(-11, new int[]{8,-90,9});
rules[156] = new Rule(-10, new int[]{-14});
rules[157] = new Rule(-10, new int[]{-239});
rules[158] = new Rule(-10, new int[]{56});
rules[159] = new Rule(-10, new int[]{141,-10});
rules[160] = new Rule(-10, new int[]{8,-90,9});
rules[161] = new Rule(-10, new int[]{135,-10});
rules[162] = new Rule(-10, new int[]{-199,-10});
rules[163] = new Rule(-10, new int[]{-173});
rules[164] = new Rule(-10, new int[]{-56});
rules[165] = new Rule(-240, new int[]{11,-68,12});
rules[166] = new Rule(-239, new int[]{-240});
rules[167] = new Rule(-239, new int[]{76,-68,76});
rules[168] = new Rule(-199, new int[]{116});
rules[169] = new Rule(-199, new int[]{115});
rules[170] = new Rule(-14, new int[]{-147});
rules[171] = new Rule(-14, new int[]{-165});
rules[172] = new Rule(-14, new int[]{-16});
rules[173] = new Rule(-14, new int[]{42,-147});
rules[174] = new Rule(-14, new int[]{-258});
rules[175] = new Rule(-14, new int[]{-295});
rules[176] = new Rule(-14, new int[]{-14,-12});
rules[177] = new Rule(-14, new int[]{-14,4,-299});
rules[178] = new Rule(-14, new int[]{-14,11,-121,12});
rules[179] = new Rule(-12, new int[]{7,-138});
rules[180] = new Rule(-12, new int[]{142});
rules[181] = new Rule(-12, new int[]{8,-76,9});
rules[182] = new Rule(-12, new int[]{11,-75,12});
rules[183] = new Rule(-76, new int[]{-71});
rules[184] = new Rule(-76, new int[]{});
rules[185] = new Rule(-75, new int[]{-73});
rules[186] = new Rule(-75, new int[]{});
rules[187] = new Rule(-73, new int[]{-94});
rules[188] = new Rule(-73, new int[]{-73,100,-94});
rules[189] = new Rule(-94, new int[]{-90});
rules[190] = new Rule(-94, new int[]{-90,6,-90});
rules[191] = new Rule(-16, new int[]{155});
rules[192] = new Rule(-16, new int[]{158});
rules[193] = new Rule(-16, new int[]{157});
rules[194] = new Rule(-16, new int[]{156});
rules[195] = new Rule(-84, new int[]{-90});
rules[196] = new Rule(-84, new int[]{-95});
rules[197] = new Rule(-84, new int[]{-244});
rules[198] = new Rule(-95, new int[]{8,-65,9});
rules[199] = new Rule(-65, new int[]{});
rules[200] = new Rule(-65, new int[]{-64});
rules[201] = new Rule(-64, new int[]{-85});
rules[202] = new Rule(-64, new int[]{-64,100,-85});
rules[203] = new Rule(-244, new int[]{8,-246,9});
rules[204] = new Rule(-246, new int[]{-245});
rules[205] = new Rule(-246, new int[]{-245,10});
rules[206] = new Rule(-245, new int[]{-247});
rules[207] = new Rule(-245, new int[]{-245,10,-247});
rules[208] = new Rule(-247, new int[]{-136,5,-84});
rules[209] = new Rule(-136, new int[]{-147});
rules[210] = new Rule(-48, new int[]{-6,-49});
rules[211] = new Rule(-6, new int[]{-251});
rules[212] = new Rule(-6, new int[]{-6,-251});
rules[213] = new Rule(-6, new int[]{});
rules[214] = new Rule(-251, new int[]{11,-252,12});
rules[215] = new Rule(-252, new int[]{-8});
rules[216] = new Rule(-252, new int[]{-252,100,-8});
rules[217] = new Rule(-8, new int[]{-9});
rules[218] = new Rule(-8, new int[]{-147,5,-9});
rules[219] = new Rule(-49, new int[]{-144,120,-287,10});
rules[220] = new Rule(-49, new int[]{-145,-287,10});
rules[221] = new Rule(-144, new int[]{-147});
rules[222] = new Rule(-144, new int[]{-147,-155});
rules[223] = new Rule(-145, new int[]{-147,123,-158,122});
rules[224] = new Rule(-287, new int[]{-277});
rules[225] = new Rule(-287, new int[]{-29});
rules[226] = new Rule(-274, new int[]{-273,13});
rules[227] = new Rule(-274, new int[]{-301,13});
rules[228] = new Rule(-277, new int[]{-273});
rules[229] = new Rule(-277, new int[]{-274});
rules[230] = new Rule(-277, new int[]{-257});
rules[231] = new Rule(-277, new int[]{-250});
rules[232] = new Rule(-277, new int[]{-282});
rules[233] = new Rule(-277, new int[]{-226});
rules[234] = new Rule(-277, new int[]{-301});
rules[235] = new Rule(-301, new int[]{-180,-299});
rules[236] = new Rule(-299, new int[]{123,-297,121});
rules[237] = new Rule(-300, new int[]{125});
rules[238] = new Rule(-300, new int[]{123,-298,121});
rules[239] = new Rule(-297, new int[]{-280});
rules[240] = new Rule(-297, new int[]{-297,100,-280});
rules[241] = new Rule(-298, new int[]{-281});
rules[242] = new Rule(-298, new int[]{-298,100,-281});
rules[243] = new Rule(-281, new int[]{});
rules[244] = new Rule(-280, new int[]{-273});
rules[245] = new Rule(-280, new int[]{-273,13});
rules[246] = new Rule(-280, new int[]{-282});
rules[247] = new Rule(-280, new int[]{-226});
rules[248] = new Rule(-280, new int[]{-301});
rules[249] = new Rule(-273, new int[]{-93});
rules[250] = new Rule(-273, new int[]{-93,6,-93});
rules[251] = new Rule(-273, new int[]{8,-80,9});
rules[252] = new Rule(-93, new int[]{-106});
rules[253] = new Rule(-93, new int[]{-93,-193,-106});
rules[254] = new Rule(-106, new int[]{-107});
rules[255] = new Rule(-106, new int[]{-106,-195,-107});
rules[256] = new Rule(-107, new int[]{-180});
rules[257] = new Rule(-107, new int[]{-16});
rules[258] = new Rule(-107, new int[]{-199,-107});
rules[259] = new Rule(-107, new int[]{-165});
rules[260] = new Rule(-107, new int[]{-107,8,-75,9});
rules[261] = new Rule(-180, new int[]{-147});
rules[262] = new Rule(-180, new int[]{-180,7,-138});
rules[263] = new Rule(-80, new int[]{-78});
rules[264] = new Rule(-80, new int[]{-80,100,-78});
rules[265] = new Rule(-78, new int[]{-277});
rules[266] = new Rule(-78, new int[]{-277,120,-87});
rules[267] = new Rule(-250, new int[]{142,-276});
rules[268] = new Rule(-282, new int[]{-279});
rules[269] = new Rule(-282, new int[]{-30});
rules[270] = new Rule(-282, new int[]{-264});
rules[271] = new Rule(-282, new int[]{-130});
rules[272] = new Rule(-282, new int[]{-131});
rules[273] = new Rule(-131, new int[]{73,58,-277});
rules[274] = new Rule(-279, new int[]{24,11,-164,12,58,-277});
rules[275] = new Rule(-279, new int[]{-271});
rules[276] = new Rule(-271, new int[]{24,58,-277});
rules[277] = new Rule(-164, new int[]{-272});
rules[278] = new Rule(-164, new int[]{-164,100,-272});
rules[279] = new Rule(-272, new int[]{-273});
rules[280] = new Rule(-272, new int[]{});
rules[281] = new Rule(-264, new int[]{49,58,-277});
rules[282] = new Rule(-130, new int[]{34,58,-277});
rules[283] = new Rule(-130, new int[]{34});
rules[284] = new Rule(-257, new int[]{143,11,-90,12});
rules[285] = new Rule(-226, new int[]{-224});
rules[286] = new Rule(-224, new int[]{-223});
rules[287] = new Rule(-223, new int[]{44,-128});
rules[288] = new Rule(-223, new int[]{37,-128,5,-276});
rules[289] = new Rule(-223, new int[]{-180,127,-280});
rules[290] = new Rule(-223, new int[]{-301,127,-280});
rules[291] = new Rule(-223, new int[]{8,9,127,-280});
rules[292] = new Rule(-223, new int[]{8,-80,9,127,-280});
rules[293] = new Rule(-223, new int[]{-180,127,8,9});
rules[294] = new Rule(-223, new int[]{-301,127,8,9});
rules[295] = new Rule(-223, new int[]{8,9,127,8,9});
rules[296] = new Rule(-223, new int[]{8,-80,9,127,8,9});
rules[297] = new Rule(-29, new int[]{-20,-291,-183,-318,-25});
rules[298] = new Rule(-30, new int[]{48,-183,-318,-24,92});
rules[299] = new Rule(-19, new int[]{68});
rules[300] = new Rule(-19, new int[]{69});
rules[301] = new Rule(-19, new int[]{148});
rules[302] = new Rule(-19, new int[]{27});
rules[303] = new Rule(-19, new int[]{28});
rules[304] = new Rule(-20, new int[]{});
rules[305] = new Rule(-20, new int[]{-21});
rules[306] = new Rule(-21, new int[]{-19});
rules[307] = new Rule(-21, new int[]{-21,-19});
rules[308] = new Rule(-291, new int[]{26});
rules[309] = new Rule(-291, new int[]{43});
rules[310] = new Rule(-291, new int[]{64});
rules[311] = new Rule(-291, new int[]{64,26});
rules[312] = new Rule(-291, new int[]{64,48});
rules[313] = new Rule(-291, new int[]{64,43});
rules[314] = new Rule(-25, new int[]{});
rules[315] = new Rule(-25, new int[]{-24,92});
rules[316] = new Rule(-183, new int[]{});
rules[317] = new Rule(-183, new int[]{8,-182,9});
rules[318] = new Rule(-182, new int[]{-181});
rules[319] = new Rule(-182, new int[]{-182,100,-181});
rules[320] = new Rule(-181, new int[]{-180});
rules[321] = new Rule(-181, new int[]{-301});
rules[322] = new Rule(-155, new int[]{123,-158,121});
rules[323] = new Rule(-318, new int[]{});
rules[324] = new Rule(-318, new int[]{-317});
rules[325] = new Rule(-317, new int[]{-316});
rules[326] = new Rule(-317, new int[]{-317,-316});
rules[327] = new Rule(-316, new int[]{23,-158,5,-288,10});
rules[328] = new Rule(-288, new int[]{-286});
rules[329] = new Rule(-288, new int[]{-288,100,-286});
rules[330] = new Rule(-286, new int[]{-277});
rules[331] = new Rule(-286, new int[]{26});
rules[332] = new Rule(-286, new int[]{48});
rules[333] = new Rule(-286, new int[]{30});
rules[334] = new Rule(-24, new int[]{-31});
rules[335] = new Rule(-24, new int[]{-24,-7,-31});
rules[336] = new Rule(-7, new int[]{84});
rules[337] = new Rule(-7, new int[]{83});
rules[338] = new Rule(-7, new int[]{82});
rules[339] = new Rule(-7, new int[]{81});
rules[340] = new Rule(-31, new int[]{});
rules[341] = new Rule(-31, new int[]{-33,-190});
rules[342] = new Rule(-31, new int[]{-32});
rules[343] = new Rule(-31, new int[]{-33,10,-32});
rules[344] = new Rule(-158, new int[]{-147});
rules[345] = new Rule(-158, new int[]{-158,100,-147});
rules[346] = new Rule(-190, new int[]{});
rules[347] = new Rule(-190, new int[]{10});
rules[348] = new Rule(-33, new int[]{-44});
rules[349] = new Rule(-33, new int[]{-33,10,-44});
rules[350] = new Rule(-44, new int[]{-6,-50});
rules[351] = new Rule(-32, new int[]{-53});
rules[352] = new Rule(-32, new int[]{-32,-53});
rules[353] = new Rule(-53, new int[]{-52});
rules[354] = new Rule(-53, new int[]{-54});
rules[355] = new Rule(-50, new int[]{29,-27});
rules[356] = new Rule(-50, new int[]{-313});
rules[357] = new Rule(-50, new int[]{-3,-313});
rules[358] = new Rule(-3, new int[]{28});
rules[359] = new Rule(-3, new int[]{26});
rules[360] = new Rule(-313, new int[]{-312});
rules[361] = new Rule(-313, new int[]{62,-158,5,-277});
rules[362] = new Rule(-52, new int[]{-6,-222});
rules[363] = new Rule(-52, new int[]{-6,-219});
rules[364] = new Rule(-219, new int[]{-215});
rules[365] = new Rule(-219, new int[]{-218});
rules[366] = new Rule(-222, new int[]{-3,-230});
rules[367] = new Rule(-222, new int[]{-230});
rules[368] = new Rule(-222, new int[]{19,-3,-230});
rules[369] = new Rule(-222, new int[]{19,-230});
rules[370] = new Rule(-222, new int[]{-227});
rules[371] = new Rule(-230, new int[]{-228});
rules[372] = new Rule(-228, new int[]{-225});
rules[373] = new Rule(-228, new int[]{-229});
rules[374] = new Rule(-227, new int[]{30,-172,-128,-207});
rules[375] = new Rule(-227, new int[]{-3,30,-172,-128,-207});
rules[376] = new Rule(-227, new int[]{31,-172,-128,-207});
rules[377] = new Rule(-172, new int[]{-171});
rules[378] = new Rule(-172, new int[]{});
rules[379] = new Rule(-54, new int[]{-6,-259});
rules[380] = new Rule(-259, new int[]{46,-170,-233,-202,10,-205});
rules[381] = new Rule(-259, new int[]{46,-170,-233,-202,10,-210,10,-205});
rules[382] = new Rule(-259, new int[]{-3,46,-170,-233,-202,10,-205});
rules[383] = new Rule(-259, new int[]{-3,46,-170,-233,-202,10,-210,10,-205});
rules[384] = new Rule(-259, new int[]{27,46,-170,-233,-211,10});
rules[385] = new Rule(-259, new int[]{-3,27,46,-170,-233,-211,10});
rules[386] = new Rule(-211, new int[]{110,-87});
rules[387] = new Rule(-211, new int[]{});
rules[388] = new Rule(-205, new int[]{});
rules[389] = new Rule(-205, new int[]{63,10});
rules[390] = new Rule(-233, new int[]{-238,5,-276});
rules[391] = new Rule(-238, new int[]{});
rules[392] = new Rule(-238, new int[]{11,-237,12});
rules[393] = new Rule(-237, new int[]{-236});
rules[394] = new Rule(-237, new int[]{-237,10,-236});
rules[395] = new Rule(-236, new int[]{-158,5,-276});
rules[396] = new Rule(-114, new int[]{-88});
rules[397] = new Rule(-114, new int[]{});
rules[398] = new Rule(-202, new int[]{});
rules[399] = new Rule(-202, new int[]{85,-114,-203});
rules[400] = new Rule(-202, new int[]{86,-261,-204});
rules[401] = new Rule(-203, new int[]{});
rules[402] = new Rule(-203, new int[]{86,-261});
rules[403] = new Rule(-204, new int[]{});
rules[404] = new Rule(-204, new int[]{85,-114});
rules[405] = new Rule(-311, new int[]{-312,10});
rules[406] = new Rule(-339, new int[]{110});
rules[407] = new Rule(-339, new int[]{120});
rules[408] = new Rule(-312, new int[]{-158,5,-277});
rules[409] = new Rule(-312, new int[]{-158,110,-88});
rules[410] = new Rule(-312, new int[]{-158,5,-277,-339,-86});
rules[411] = new Rule(-86, new int[]{-85});
rules[412] = new Rule(-86, new int[]{-81,6,-13});
rules[413] = new Rule(-86, new int[]{-324});
rules[414] = new Rule(-86, new int[]{-147,127,-329});
rules[415] = new Rule(-86, new int[]{8,9,-325,127,-329});
rules[416] = new Rule(-86, new int[]{8,-65,9,127,-329});
rules[417] = new Rule(-86, new int[]{-243});
rules[418] = new Rule(-85, new int[]{-84});
rules[419] = new Rule(-217, new int[]{-227,-177});
rules[420] = new Rule(-217, new int[]{30,-172,-128,110,-261,10});
rules[421] = new Rule(-217, new int[]{-3,30,-172,-128,110,-261,10});
rules[422] = new Rule(-218, new int[]{-227,-176});
rules[423] = new Rule(-218, new int[]{30,-172,-128,110,-261,10});
rules[424] = new Rule(-218, new int[]{-3,30,-172,-128,110,-261,10});
rules[425] = new Rule(-214, new int[]{-221});
rules[426] = new Rule(-214, new int[]{-3,-221});
rules[427] = new Rule(-214, new int[]{19,-221});
rules[428] = new Rule(-214, new int[]{19,-3,-221});
rules[429] = new Rule(-214, new int[]{-3,19,-221});
rules[430] = new Rule(-215, new int[]{-216});
rules[431] = new Rule(-215, new int[]{19,-216});
rules[432] = new Rule(-215, new int[]{-3,-216});
rules[433] = new Rule(-215, new int[]{19,-3,-216});
rules[434] = new Rule(-215, new int[]{-3,19,-216});
rules[435] = new Rule(-221, new int[]{-228,-178});
rules[436] = new Rule(-221, new int[]{-228,149,10});
rules[437] = new Rule(-221, new int[]{37,-170,-128,5,-276,-208,110,-103,10});
rules[438] = new Rule(-221, new int[]{37,-170,-128,-208,110,-103,10});
rules[439] = new Rule(-221, new int[]{44,-171,-128,-208,110,-261,10});
rules[440] = new Rule(-216, new int[]{-228,-176});
rules[441] = new Rule(-216, new int[]{37,-170,-128,5,-276,-208,110,-103,10});
rules[442] = new Rule(-216, new int[]{37,-170,-128,-208,110,-103,10});
rules[443] = new Rule(-216, new int[]{44,-171,-128,-208,110,-261,10});
rules[444] = new Rule(-178, new int[]{-177});
rules[445] = new Rule(-178, new int[]{-60});
rules[446] = new Rule(-171, new int[]{-170});
rules[447] = new Rule(-170, new int[]{-142});
rules[448] = new Rule(-170, new int[]{-335,7,-142});
rules[449] = new Rule(-149, new int[]{-137});
rules[450] = new Rule(-335, new int[]{-149});
rules[451] = new Rule(-335, new int[]{-335,7,-149});
rules[452] = new Rule(-142, new int[]{-137});
rules[453] = new Rule(-142, new int[]{-191});
rules[454] = new Rule(-142, new int[]{-191,-155});
rules[455] = new Rule(-137, new int[]{-134});
rules[456] = new Rule(-137, new int[]{-134,-155});
rules[457] = new Rule(-134, new int[]{-147});
rules[458] = new Rule(-225, new int[]{44,-171,-128,-207,-318});
rules[459] = new Rule(-229, new int[]{37,-170,-128,-207,-318});
rules[460] = new Rule(-229, new int[]{37,-170,-128,5,-276,-207,-318});
rules[461] = new Rule(-60, new int[]{107,-108,80,-108,10});
rules[462] = new Rule(-60, new int[]{107,-108,10});
rules[463] = new Rule(-60, new int[]{107,10});
rules[464] = new Rule(-108, new int[]{-147});
rules[465] = new Rule(-108, new int[]{-165});
rules[466] = new Rule(-177, new int[]{-40,-256,10});
rules[467] = new Rule(-176, new int[]{-42,-256,10});
rules[468] = new Rule(-176, new int[]{-60});
rules[469] = new Rule(-128, new int[]{});
rules[470] = new Rule(-128, new int[]{8,9});
rules[471] = new Rule(-128, new int[]{8,-129,9});
rules[472] = new Rule(-129, new int[]{-55});
rules[473] = new Rule(-129, new int[]{-129,10,-55});
rules[474] = new Rule(-55, new int[]{-6,-296});
rules[475] = new Rule(-296, new int[]{-159,5,-276});
rules[476] = new Rule(-296, new int[]{53,-159,5,-276});
rules[477] = new Rule(-296, new int[]{29,-159,5,-276});
rules[478] = new Rule(-296, new int[]{108,-159,5,-276});
rules[479] = new Rule(-296, new int[]{-159,5,-276,110,-87});
rules[480] = new Rule(-296, new int[]{53,-159,5,-276,110,-87});
rules[481] = new Rule(-296, new int[]{29,-159,5,-276,110,-87});
rules[482] = new Rule(-159, new int[]{-135});
rules[483] = new Rule(-159, new int[]{-159,100,-135});
rules[484] = new Rule(-135, new int[]{-147});
rules[485] = new Rule(-276, new int[]{-277});
rules[486] = new Rule(-278, new int[]{-273});
rules[487] = new Rule(-278, new int[]{-257});
rules[488] = new Rule(-278, new int[]{-250});
rules[489] = new Rule(-278, new int[]{-282});
rules[490] = new Rule(-278, new int[]{-301});
rules[491] = new Rule(-262, new int[]{-261});
rules[492] = new Rule(-262, new int[]{-143,5,-262});
rules[493] = new Rule(-261, new int[]{});
rules[494] = new Rule(-261, new int[]{-4});
rules[495] = new Rule(-261, new int[]{-212});
rules[496] = new Rule(-261, new int[]{-133});
rules[497] = new Rule(-261, new int[]{-256});
rules[498] = new Rule(-261, new int[]{-153});
rules[499] = new Rule(-261, new int[]{-34});
rules[500] = new Rule(-261, new int[]{-248});
rules[501] = new Rule(-261, new int[]{-319});
rules[502] = new Rule(-261, new int[]{-124});
rules[503] = new Rule(-261, new int[]{-320});
rules[504] = new Rule(-261, new int[]{-160});
rules[505] = new Rule(-261, new int[]{-302});
rules[506] = new Rule(-261, new int[]{-249});
rules[507] = new Rule(-261, new int[]{-123});
rules[508] = new Rule(-261, new int[]{-315});
rules[509] = new Rule(-261, new int[]{-58});
rules[510] = new Rule(-261, new int[]{-169});
rules[511] = new Rule(-261, new int[]{-126});
rules[512] = new Rule(-261, new int[]{-127});
rules[513] = new Rule(-261, new int[]{-125});
rules[514] = new Rule(-261, new int[]{-349});
rules[515] = new Rule(-125, new int[]{72,-101,99,-261});
rules[516] = new Rule(-126, new int[]{74,-103});
rules[517] = new Rule(-127, new int[]{74,73,-103});
rules[518] = new Rule(-315, new int[]{53,-312});
rules[519] = new Rule(-315, new int[]{8,53,-147,100,-338,9,110,-87});
rules[520] = new Rule(-315, new int[]{53,8,-147,100,-158,9,110,-87});
rules[521] = new Rule(-4, new int[]{-113,-194,-88});
rules[522] = new Rule(-4, new int[]{8,-111,100,-337,9,-194,-87});
rules[523] = new Rule(-337, new int[]{-111});
rules[524] = new Rule(-337, new int[]{-337,100,-111});
rules[525] = new Rule(-338, new int[]{53,-147});
rules[526] = new Rule(-338, new int[]{-338,100,53,-147});
rules[527] = new Rule(-212, new int[]{-113});
rules[528] = new Rule(-133, new int[]{57,-143});
rules[529] = new Rule(-256, new int[]{91,-253,92});
rules[530] = new Rule(-253, new int[]{-262});
rules[531] = new Rule(-253, new int[]{-253,10,-262});
rules[532] = new Rule(-153, new int[]{40,-101,51,-261});
rules[533] = new Rule(-153, new int[]{40,-101,51,-261,32,-261});
rules[534] = new Rule(-349, new int[]{38,-101,55,-351,-254,92});
rules[535] = new Rule(-349, new int[]{38,-101,55,-351,10,-254,92});
rules[536] = new Rule(-351, new int[]{-350});
rules[537] = new Rule(-351, new int[]{-351,10,-350});
rules[538] = new Rule(-350, new int[]{-343,39,-101,5,-261});
rules[539] = new Rule(-350, new int[]{-342,5,-261});
rules[540] = new Rule(-350, new int[]{-344,5,-261});
rules[541] = new Rule(-350, new int[]{-345,39,-101,5,-261});
rules[542] = new Rule(-350, new int[]{-345,5,-261});
rules[543] = new Rule(-34, new int[]{25,-101,58,-35,-254,92});
rules[544] = new Rule(-34, new int[]{25,-101,58,-35,10,-254,92});
rules[545] = new Rule(-34, new int[]{25,-101,58,-254,92});
rules[546] = new Rule(-35, new int[]{-263});
rules[547] = new Rule(-35, new int[]{-35,10,-263});
rules[548] = new Rule(-263, new int[]{-74,5,-261});
rules[549] = new Rule(-74, new int[]{-110});
rules[550] = new Rule(-74, new int[]{-74,100,-110});
rules[551] = new Rule(-110, new int[]{-94});
rules[552] = new Rule(-254, new int[]{});
rules[553] = new Rule(-254, new int[]{32,-253});
rules[554] = new Rule(-248, new int[]{97,-253,98,-87});
rules[555] = new Rule(-319, new int[]{54,-101,-292,-261});
rules[556] = new Rule(-292, new int[]{99});
rules[557] = new Rule(-292, new int[]{});
rules[558] = new Rule(-169, new int[]{60,-101,99,-261});
rules[559] = new Rule(-361, new int[]{87,143});
rules[560] = new Rule(-361, new int[]{});
rules[561] = new Rule(-275, new int[]{5,-277});
rules[562] = new Rule(-275, new int[]{});
rules[563] = new Rule(-18, new int[]{53});
rules[564] = new Rule(-18, new int[]{});
rules[565] = new Rule(-119, new int[]{70});
rules[566] = new Rule(-119, new int[]{71});
rules[567] = new Rule(-123, new int[]{36,-147,-275,137,-101,-361,99,-261});
rules[568] = new Rule(-123, new int[]{36,53,-147,-275,137,-101,-361,99,-261});
rules[569] = new Rule(-123, new int[]{36,53,8,-158,9,137,-101,-361,99,-261});
rules[570] = new Rule(-124, new int[]{35,-18,-147,-275,110,-101,-119,-101,-292,-261});
rules[571] = new Rule(-124, new int[]{35,-18,-147,-275,110,-101,-119,-101,160,-101,99,-261});
rules[572] = new Rule(-320, new int[]{55,-71,99,-261});
rules[573] = new Rule(-160, new int[]{42});
rules[574] = new Rule(-302, new int[]{102,-253,-290});
rules[575] = new Rule(-290, new int[]{101,-253,92});
rules[576] = new Rule(-290, new int[]{33,-59,92});
rules[577] = new Rule(-59, new int[]{-62,-255});
rules[578] = new Rule(-59, new int[]{-62,10,-255});
rules[579] = new Rule(-59, new int[]{-253});
rules[580] = new Rule(-62, new int[]{-61});
rules[581] = new Rule(-62, new int[]{-62,10,-61});
rules[582] = new Rule(-255, new int[]{});
rules[583] = new Rule(-255, new int[]{32,-253});
rules[584] = new Rule(-61, new int[]{79,-63,99,-261});
rules[585] = new Rule(-63, new int[]{-179});
rules[586] = new Rule(-63, new int[]{-140,5,-179});
rules[587] = new Rule(-179, new int[]{-180});
rules[588] = new Rule(-140, new int[]{-147});
rules[589] = new Rule(-249, new int[]{47});
rules[590] = new Rule(-249, new int[]{47,-87});
rules[591] = new Rule(-71, new int[]{-88});
rules[592] = new Rule(-71, new int[]{-71,100,-88});
rules[593] = new Rule(-72, new int[]{-89});
rules[594] = new Rule(-72, new int[]{-72,100,-89});
rules[595] = new Rule(-58, new int[]{-174});
rules[596] = new Rule(-174, new int[]{-173});
rules[597] = new Rule(-88, new int[]{-87});
rules[598] = new Rule(-88, new int[]{-323});
rules[599] = new Rule(-88, new int[]{42});
rules[600] = new Rule(-89, new int[]{-87});
rules[601] = new Rule(-89, new int[]{-147,110,-101});
rules[602] = new Rule(-89, new int[]{-323});
rules[603] = new Rule(-89, new int[]{42});
rules[604] = new Rule(-87, new int[]{-101});
rules[605] = new Rule(-87, new int[]{-120});
rules[606] = new Rule(-87, new int[]{-87,70,-101});
rules[607] = new Rule(-101, new int[]{-99});
rules[608] = new Rule(-101, new int[]{-241});
rules[609] = new Rule(-101, new int[]{-243});
rules[610] = new Rule(-117, new int[]{-99});
rules[611] = new Rule(-117, new int[]{-241});
rules[612] = new Rule(-118, new int[]{-99});
rules[613] = new Rule(-118, new int[]{-243});
rules[614] = new Rule(-103, new int[]{-101});
rules[615] = new Rule(-103, new int[]{-323});
rules[616] = new Rule(-104, new int[]{-99});
rules[617] = new Rule(-104, new int[]{-241});
rules[618] = new Rule(-104, new int[]{-323});
rules[619] = new Rule(-99, new int[]{-98});
rules[620] = new Rule(-99, new int[]{-99,16,-98});
rules[621] = new Rule(-258, new int[]{21,8,-284,9});
rules[622] = new Rule(-295, new int[]{22,8,-284,9});
rules[623] = new Rule(-295, new int[]{22,8,-283,9});
rules[624] = new Rule(-241, new int[]{-117,13,-117,5,-117});
rules[625] = new Rule(-243, new int[]{40,-118,51,-118,32,-118});
rules[626] = new Rule(-283, new int[]{-180,-300});
rules[627] = new Rule(-283, new int[]{-180,4,-300});
rules[628] = new Rule(-284, new int[]{-180});
rules[629] = new Rule(-284, new int[]{-180,-299});
rules[630] = new Rule(-284, new int[]{-180,4,-299});
rules[631] = new Rule(-285, new int[]{-284});
rules[632] = new Rule(-285, new int[]{-274});
rules[633] = new Rule(-5, new int[]{8,-65,9});
rules[634] = new Rule(-5, new int[]{});
rules[635] = new Rule(-173, new int[]{78,-284,-70});
rules[636] = new Rule(-173, new int[]{78,-284,11,-66,12,-5});
rules[637] = new Rule(-173, new int[]{78,26,8,-334,9});
rules[638] = new Rule(-333, new int[]{-147,110,-101});
rules[639] = new Rule(-333, new int[]{-101});
rules[640] = new Rule(-334, new int[]{-333});
rules[641] = new Rule(-334, new int[]{-334,100,-333});
rules[642] = new Rule(-69, new int[]{});
rules[643] = new Rule(-69, new int[]{8,-66,9});
rules[644] = new Rule(-70, new int[]{});
rules[645] = new Rule(-70, new int[]{8,-67,9});
rules[646] = new Rule(-98, new int[]{-105});
rules[647] = new Rule(-98, new int[]{-98,-196,-105});
rules[648] = new Rule(-98, new int[]{-98,-196,-243});
rules[649] = new Rule(-98, new int[]{-267,8,-354,9});
rules[650] = new Rule(-341, new int[]{-284,8,-354,9});
rules[651] = new Rule(-343, new int[]{-284,8,-355,9});
rules[652] = new Rule(-342, new int[]{-284,8,-355,9});
rules[653] = new Rule(-342, new int[]{-358});
rules[654] = new Rule(-358, new int[]{-340});
rules[655] = new Rule(-358, new int[]{-358,100,-340});
rules[656] = new Rule(-340, new int[]{-15});
rules[657] = new Rule(-340, new int[]{-284});
rules[658] = new Rule(-340, new int[]{56});
rules[659] = new Rule(-340, new int[]{-258});
rules[660] = new Rule(-340, new int[]{-295});
rules[661] = new Rule(-344, new int[]{11,-356,12});
rules[662] = new Rule(-356, new int[]{-346});
rules[663] = new Rule(-356, new int[]{-356,100,-346});
rules[664] = new Rule(-346, new int[]{-15});
rules[665] = new Rule(-346, new int[]{-348});
rules[666] = new Rule(-346, new int[]{14});
rules[667] = new Rule(-346, new int[]{-343});
rules[668] = new Rule(-346, new int[]{-344});
rules[669] = new Rule(-346, new int[]{-345});
rules[670] = new Rule(-346, new int[]{6});
rules[671] = new Rule(-348, new int[]{53,-147});
rules[672] = new Rule(-345, new int[]{8,-357,9});
rules[673] = new Rule(-347, new int[]{14});
rules[674] = new Rule(-347, new int[]{-15});
rules[675] = new Rule(-347, new int[]{-199,-15});
rules[676] = new Rule(-347, new int[]{53,-147});
rules[677] = new Rule(-347, new int[]{-343});
rules[678] = new Rule(-347, new int[]{-344});
rules[679] = new Rule(-347, new int[]{-345});
rules[680] = new Rule(-357, new int[]{-347});
rules[681] = new Rule(-357, new int[]{-357,100,-347});
rules[682] = new Rule(-355, new int[]{-353});
rules[683] = new Rule(-355, new int[]{-355,10,-353});
rules[684] = new Rule(-355, new int[]{-355,100,-353});
rules[685] = new Rule(-354, new int[]{-352});
rules[686] = new Rule(-354, new int[]{-354,10,-352});
rules[687] = new Rule(-354, new int[]{-354,100,-352});
rules[688] = new Rule(-352, new int[]{14});
rules[689] = new Rule(-352, new int[]{-15});
rules[690] = new Rule(-352, new int[]{53,-147,5,-277});
rules[691] = new Rule(-352, new int[]{53,-147});
rules[692] = new Rule(-352, new int[]{-341});
rules[693] = new Rule(-352, new int[]{-344});
rules[694] = new Rule(-352, new int[]{-345});
rules[695] = new Rule(-353, new int[]{14});
rules[696] = new Rule(-353, new int[]{-15});
rules[697] = new Rule(-353, new int[]{-199,-15});
rules[698] = new Rule(-353, new int[]{-147,5,-277});
rules[699] = new Rule(-353, new int[]{-147});
rules[700] = new Rule(-353, new int[]{53,-147,5,-277});
rules[701] = new Rule(-353, new int[]{53,-147});
rules[702] = new Rule(-353, new int[]{-343});
rules[703] = new Rule(-353, new int[]{-344});
rules[704] = new Rule(-353, new int[]{-345});
rules[705] = new Rule(-115, new int[]{-105});
rules[706] = new Rule(-115, new int[]{});
rules[707] = new Rule(-122, new int[]{-90});
rules[708] = new Rule(-122, new int[]{});
rules[709] = new Rule(-120, new int[]{-105,5,-115});
rules[710] = new Rule(-120, new int[]{5,-115});
rules[711] = new Rule(-120, new int[]{-105,5,-115,5,-105});
rules[712] = new Rule(-120, new int[]{5,-115,5,-105});
rules[713] = new Rule(-121, new int[]{-90,5,-122});
rules[714] = new Rule(-121, new int[]{5,-122});
rules[715] = new Rule(-121, new int[]{-90,5,-122,5,-90});
rules[716] = new Rule(-121, new int[]{5,-122,5,-90});
rules[717] = new Rule(-196, new int[]{120});
rules[718] = new Rule(-196, new int[]{125});
rules[719] = new Rule(-196, new int[]{123});
rules[720] = new Rule(-196, new int[]{121});
rules[721] = new Rule(-196, new int[]{124});
rules[722] = new Rule(-196, new int[]{122});
rules[723] = new Rule(-196, new int[]{137});
rules[724] = new Rule(-196, new int[]{135,137});
rules[725] = new Rule(-105, new int[]{-83});
rules[726] = new Rule(-105, new int[]{-105,6,-83});
rules[727] = new Rule(-83, new int[]{-82});
rules[728] = new Rule(-83, new int[]{-83,-197,-82});
rules[729] = new Rule(-83, new int[]{-83,-197,-243});
rules[730] = new Rule(-197, new int[]{116});
rules[731] = new Rule(-197, new int[]{115});
rules[732] = new Rule(-197, new int[]{128});
rules[733] = new Rule(-197, new int[]{129});
rules[734] = new Rule(-197, new int[]{126});
rules[735] = new Rule(-201, new int[]{136});
rules[736] = new Rule(-201, new int[]{138});
rules[737] = new Rule(-265, new int[]{-267});
rules[738] = new Rule(-265, new int[]{-268});
rules[739] = new Rule(-268, new int[]{-82,136,-284});
rules[740] = new Rule(-268, new int[]{-82,136,-279});
rules[741] = new Rule(-267, new int[]{-82,138,-284});
rules[742] = new Rule(-267, new int[]{-82,138,-279});
rules[743] = new Rule(-269, new int[]{-97,119,-96});
rules[744] = new Rule(-269, new int[]{-97,119,-269});
rules[745] = new Rule(-269, new int[]{-199,-269});
rules[746] = new Rule(-82, new int[]{-96});
rules[747] = new Rule(-82, new int[]{-173});
rules[748] = new Rule(-82, new int[]{-269});
rules[749] = new Rule(-82, new int[]{-82,-198,-96});
rules[750] = new Rule(-82, new int[]{-82,-198,-269});
rules[751] = new Rule(-82, new int[]{-82,-198,-243});
rules[752] = new Rule(-82, new int[]{-265});
rules[753] = new Rule(-198, new int[]{118});
rules[754] = new Rule(-198, new int[]{117});
rules[755] = new Rule(-198, new int[]{131});
rules[756] = new Rule(-198, new int[]{132});
rules[757] = new Rule(-198, new int[]{133});
rules[758] = new Rule(-198, new int[]{134});
rules[759] = new Rule(-198, new int[]{130});
rules[760] = new Rule(-56, new int[]{63,8,-285,9});
rules[761] = new Rule(-57, new int[]{8,-102,100,-79,-325,-332,9});
rules[762] = new Rule(-97, new int[]{-15});
rules[763] = new Rule(-97, new int[]{-113});
rules[764] = new Rule(-96, new int[]{56});
rules[765] = new Rule(-96, new int[]{-15});
rules[766] = new Rule(-96, new int[]{-56});
rules[767] = new Rule(-96, new int[]{135,-96});
rules[768] = new Rule(-96, new int[]{-199,-96});
rules[769] = new Rule(-96, new int[]{142,-96});
rules[770] = new Rule(-96, new int[]{-113});
rules[771] = new Rule(-96, new int[]{-57});
rules[772] = new Rule(-15, new int[]{-165});
rules[773] = new Rule(-15, new int[]{-16});
rules[774] = new Rule(-116, new int[]{-111,15,-111});
rules[775] = new Rule(-116, new int[]{-111,15,-116});
rules[776] = new Rule(-113, new int[]{-132,-111});
rules[777] = new Rule(-113, new int[]{-111});
rules[778] = new Rule(-113, new int[]{-116});
rules[779] = new Rule(-113, new int[]{8,53,-147,110,-99,9});
rules[780] = new Rule(-132, new int[]{141});
rules[781] = new Rule(-132, new int[]{-132,141});
rules[782] = new Rule(-9, new int[]{-180,-69});
rules[783] = new Rule(-9, new int[]{-301,-69});
rules[784] = new Rule(-322, new int[]{-147});
rules[785] = new Rule(-322, new int[]{-322,7,-138});
rules[786] = new Rule(-321, new int[]{-322});
rules[787] = new Rule(-321, new int[]{-322,-299});
rules[788] = new Rule(-359, new int[]{53,-147,110,-87,10});
rules[789] = new Rule(-360, new int[]{-359});
rules[790] = new Rule(-360, new int[]{-360,-359});
rules[791] = new Rule(-112, new int[]{-111,8,-67,9});
rules[792] = new Rule(-111, new int[]{-147});
rules[793] = new Rule(-111, new int[]{-191});
rules[794] = new Rule(-111, new int[]{42,-147});
rules[795] = new Rule(-111, new int[]{8,-87,9});
rules[796] = new Rule(-111, new int[]{8,-360,-87,9});
rules[797] = new Rule(-111, new int[]{-258});
rules[798] = new Rule(-111, new int[]{-295});
rules[799] = new Rule(-111, new int[]{-15,7,-138});
rules[800] = new Rule(-111, new int[]{-111,11,-71,12});
rules[801] = new Rule(-111, new int[]{-15,11,-71,12});
rules[802] = new Rule(-111, new int[]{-111,17,-120,12});
rules[803] = new Rule(-111, new int[]{-15,17,-120,12});
rules[804] = new Rule(-111, new int[]{76,-68,76});
rules[805] = new Rule(-111, new int[]{-240});
rules[806] = new Rule(-111, new int[]{-112});
rules[807] = new Rule(-111, new int[]{-111,7,-148});
rules[808] = new Rule(-111, new int[]{-57,7,-148});
rules[809] = new Rule(-111, new int[]{-111,142});
rules[810] = new Rule(-111, new int[]{-111,4,-299});
rules[811] = new Rule(-66, new int[]{-71});
rules[812] = new Rule(-66, new int[]{});
rules[813] = new Rule(-67, new int[]{-72});
rules[814] = new Rule(-67, new int[]{});
rules[815] = new Rule(-68, new int[]{-77});
rules[816] = new Rule(-68, new int[]{});
rules[817] = new Rule(-77, new int[]{-92});
rules[818] = new Rule(-77, new int[]{-77,100,-92});
rules[819] = new Rule(-92, new int[]{-87});
rules[820] = new Rule(-92, new int[]{-87,6,-87});
rules[821] = new Rule(-166, new int[]{144});
rules[822] = new Rule(-166, new int[]{147});
rules[823] = new Rule(-165, new int[]{-167});
rules[824] = new Rule(-165, new int[]{145});
rules[825] = new Rule(-165, new int[]{146});
rules[826] = new Rule(-167, new int[]{-166});
rules[827] = new Rule(-167, new int[]{-167,-166});
rules[828] = new Rule(-191, new int[]{45,-200});
rules[829] = new Rule(-207, new int[]{10});
rules[830] = new Rule(-207, new int[]{10,-206,10});
rules[831] = new Rule(-208, new int[]{});
rules[832] = new Rule(-208, new int[]{10,-206});
rules[833] = new Rule(-206, new int[]{-209});
rules[834] = new Rule(-206, new int[]{-206,10,-209});
rules[835] = new Rule(-147, new int[]{143});
rules[836] = new Rule(-147, new int[]{-151});
rules[837] = new Rule(-147, new int[]{-152});
rules[838] = new Rule(-147, new int[]{160});
rules[839] = new Rule(-147, new int[]{87});
rules[840] = new Rule(-138, new int[]{-147});
rules[841] = new Rule(-138, new int[]{-293});
rules[842] = new Rule(-138, new int[]{-294});
rules[843] = new Rule(-148, new int[]{-147});
rules[844] = new Rule(-148, new int[]{-293});
rules[845] = new Rule(-148, new int[]{-191});
rules[846] = new Rule(-209, new int[]{148});
rules[847] = new Rule(-209, new int[]{150});
rules[848] = new Rule(-209, new int[]{151});
rules[849] = new Rule(-209, new int[]{152});
rules[850] = new Rule(-209, new int[]{154});
rules[851] = new Rule(-209, new int[]{153});
rules[852] = new Rule(-210, new int[]{153});
rules[853] = new Rule(-210, new int[]{152});
rules[854] = new Rule(-210, new int[]{148});
rules[855] = new Rule(-210, new int[]{151});
rules[856] = new Rule(-151, new int[]{85});
rules[857] = new Rule(-151, new int[]{86});
rules[858] = new Rule(-152, new int[]{80});
rules[859] = new Rule(-152, new int[]{78});
rules[860] = new Rule(-150, new int[]{84});
rules[861] = new Rule(-150, new int[]{83});
rules[862] = new Rule(-150, new int[]{82});
rules[863] = new Rule(-150, new int[]{81});
rules[864] = new Rule(-293, new int[]{-150});
rules[865] = new Rule(-293, new int[]{68});
rules[866] = new Rule(-293, new int[]{64});
rules[867] = new Rule(-293, new int[]{128});
rules[868] = new Rule(-293, new int[]{22});
rules[869] = new Rule(-293, new int[]{21});
rules[870] = new Rule(-293, new int[]{63});
rules[871] = new Rule(-293, new int[]{23});
rules[872] = new Rule(-293, new int[]{129});
rules[873] = new Rule(-293, new int[]{130});
rules[874] = new Rule(-293, new int[]{131});
rules[875] = new Rule(-293, new int[]{132});
rules[876] = new Rule(-293, new int[]{133});
rules[877] = new Rule(-293, new int[]{134});
rules[878] = new Rule(-293, new int[]{135});
rules[879] = new Rule(-293, new int[]{136});
rules[880] = new Rule(-293, new int[]{137});
rules[881] = new Rule(-293, new int[]{138});
rules[882] = new Rule(-293, new int[]{24});
rules[883] = new Rule(-293, new int[]{73});
rules[884] = new Rule(-293, new int[]{91});
rules[885] = new Rule(-293, new int[]{25});
rules[886] = new Rule(-293, new int[]{26});
rules[887] = new Rule(-293, new int[]{29});
rules[888] = new Rule(-293, new int[]{30});
rules[889] = new Rule(-293, new int[]{31});
rules[890] = new Rule(-293, new int[]{71});
rules[891] = new Rule(-293, new int[]{99});
rules[892] = new Rule(-293, new int[]{32});
rules[893] = new Rule(-293, new int[]{92});
rules[894] = new Rule(-293, new int[]{33});
rules[895] = new Rule(-293, new int[]{34});
rules[896] = new Rule(-293, new int[]{27});
rules[897] = new Rule(-293, new int[]{104});
rules[898] = new Rule(-293, new int[]{101});
rules[899] = new Rule(-293, new int[]{35});
rules[900] = new Rule(-293, new int[]{36});
rules[901] = new Rule(-293, new int[]{37});
rules[902] = new Rule(-293, new int[]{40});
rules[903] = new Rule(-293, new int[]{41});
rules[904] = new Rule(-293, new int[]{42});
rules[905] = new Rule(-293, new int[]{103});
rules[906] = new Rule(-293, new int[]{43});
rules[907] = new Rule(-293, new int[]{44});
rules[908] = new Rule(-293, new int[]{46});
rules[909] = new Rule(-293, new int[]{47});
rules[910] = new Rule(-293, new int[]{48});
rules[911] = new Rule(-293, new int[]{97});
rules[912] = new Rule(-293, new int[]{49});
rules[913] = new Rule(-293, new int[]{102});
rules[914] = new Rule(-293, new int[]{50});
rules[915] = new Rule(-293, new int[]{28});
rules[916] = new Rule(-293, new int[]{51});
rules[917] = new Rule(-293, new int[]{70});
rules[918] = new Rule(-293, new int[]{98});
rules[919] = new Rule(-293, new int[]{52});
rules[920] = new Rule(-293, new int[]{53});
rules[921] = new Rule(-293, new int[]{54});
rules[922] = new Rule(-293, new int[]{55});
rules[923] = new Rule(-293, new int[]{56});
rules[924] = new Rule(-293, new int[]{57});
rules[925] = new Rule(-293, new int[]{58});
rules[926] = new Rule(-293, new int[]{59});
rules[927] = new Rule(-293, new int[]{61});
rules[928] = new Rule(-293, new int[]{105});
rules[929] = new Rule(-293, new int[]{106});
rules[930] = new Rule(-293, new int[]{109});
rules[931] = new Rule(-293, new int[]{107});
rules[932] = new Rule(-293, new int[]{108});
rules[933] = new Rule(-293, new int[]{62});
rules[934] = new Rule(-293, new int[]{74});
rules[935] = new Rule(-293, new int[]{38});
rules[936] = new Rule(-293, new int[]{39});
rules[937] = new Rule(-293, new int[]{69});
rules[938] = new Rule(-293, new int[]{148});
rules[939] = new Rule(-293, new int[]{60});
rules[940] = new Rule(-293, new int[]{139});
rules[941] = new Rule(-293, new int[]{140});
rules[942] = new Rule(-293, new int[]{79});
rules[943] = new Rule(-293, new int[]{153});
rules[944] = new Rule(-293, new int[]{152});
rules[945] = new Rule(-293, new int[]{72});
rules[946] = new Rule(-293, new int[]{154});
rules[947] = new Rule(-293, new int[]{150});
rules[948] = new Rule(-293, new int[]{151});
rules[949] = new Rule(-293, new int[]{149});
rules[950] = new Rule(-294, new int[]{45});
rules[951] = new Rule(-200, new int[]{115});
rules[952] = new Rule(-200, new int[]{116});
rules[953] = new Rule(-200, new int[]{117});
rules[954] = new Rule(-200, new int[]{118});
rules[955] = new Rule(-200, new int[]{120});
rules[956] = new Rule(-200, new int[]{121});
rules[957] = new Rule(-200, new int[]{122});
rules[958] = new Rule(-200, new int[]{123});
rules[959] = new Rule(-200, new int[]{124});
rules[960] = new Rule(-200, new int[]{125});
rules[961] = new Rule(-200, new int[]{128});
rules[962] = new Rule(-200, new int[]{129});
rules[963] = new Rule(-200, new int[]{130});
rules[964] = new Rule(-200, new int[]{131});
rules[965] = new Rule(-200, new int[]{132});
rules[966] = new Rule(-200, new int[]{133});
rules[967] = new Rule(-200, new int[]{134});
rules[968] = new Rule(-200, new int[]{135});
rules[969] = new Rule(-200, new int[]{137});
rules[970] = new Rule(-200, new int[]{139});
rules[971] = new Rule(-200, new int[]{140});
rules[972] = new Rule(-200, new int[]{-194});
rules[973] = new Rule(-200, new int[]{119});
rules[974] = new Rule(-194, new int[]{110});
rules[975] = new Rule(-194, new int[]{111});
rules[976] = new Rule(-194, new int[]{112});
rules[977] = new Rule(-194, new int[]{113});
rules[978] = new Rule(-194, new int[]{114});
rules[979] = new Rule(-100, new int[]{18,-23,100,-22,9});
rules[980] = new Rule(-22, new int[]{-100});
rules[981] = new Rule(-22, new int[]{-147});
rules[982] = new Rule(-23, new int[]{-22});
rules[983] = new Rule(-23, new int[]{-23,100,-22});
rules[984] = new Rule(-102, new int[]{-101});
rules[985] = new Rule(-102, new int[]{-100});
rules[986] = new Rule(-79, new int[]{-102});
rules[987] = new Rule(-79, new int[]{-79,100,-102});
rules[988] = new Rule(-323, new int[]{-147,127,-329});
rules[989] = new Rule(-323, new int[]{8,9,-326,127,-329});
rules[990] = new Rule(-323, new int[]{8,-147,5,-276,9,-326,127,-329});
rules[991] = new Rule(-323, new int[]{8,-147,10,-327,9,-326,127,-329});
rules[992] = new Rule(-323, new int[]{8,-147,5,-276,10,-327,9,-326,127,-329});
rules[993] = new Rule(-323, new int[]{8,-102,100,-79,-325,-332,9,-336});
rules[994] = new Rule(-323, new int[]{-100,-336});
rules[995] = new Rule(-323, new int[]{-324});
rules[996] = new Rule(-332, new int[]{});
rules[997] = new Rule(-332, new int[]{10,-327});
rules[998] = new Rule(-336, new int[]{-326,127,-329});
rules[999] = new Rule(-324, new int[]{37,-326,127,-329});
rules[1000] = new Rule(-324, new int[]{37,8,9,-326,127,-329});
rules[1001] = new Rule(-324, new int[]{37,8,-327,9,-326,127,-329});
rules[1002] = new Rule(-324, new int[]{44,127,-330});
rules[1003] = new Rule(-324, new int[]{44,8,9,127,-330});
rules[1004] = new Rule(-324, new int[]{44,8,-327,9,127,-330});
rules[1005] = new Rule(-327, new int[]{-328});
rules[1006] = new Rule(-327, new int[]{-327,10,-328});
rules[1007] = new Rule(-328, new int[]{-158,-325});
rules[1008] = new Rule(-325, new int[]{});
rules[1009] = new Rule(-325, new int[]{5,-276});
rules[1010] = new Rule(-326, new int[]{});
rules[1011] = new Rule(-326, new int[]{5,-278});
rules[1012] = new Rule(-331, new int[]{-256});
rules[1013] = new Rule(-331, new int[]{-153});
rules[1014] = new Rule(-331, new int[]{-319});
rules[1015] = new Rule(-331, new int[]{-248});
rules[1016] = new Rule(-331, new int[]{-124});
rules[1017] = new Rule(-331, new int[]{-123});
rules[1018] = new Rule(-331, new int[]{-125});
rules[1019] = new Rule(-331, new int[]{-34});
rules[1020] = new Rule(-331, new int[]{-302});
rules[1021] = new Rule(-331, new int[]{-169});
rules[1022] = new Rule(-331, new int[]{-249});
rules[1023] = new Rule(-331, new int[]{-126});
rules[1024] = new Rule(-331, new int[]{8,-4,9});
rules[1025] = new Rule(-329, new int[]{-104});
rules[1026] = new Rule(-329, new int[]{-331});
rules[1027] = new Rule(-330, new int[]{-212});
rules[1028] = new Rule(-330, new int[]{-4});
rules[1029] = new Rule(-330, new int[]{-331});
}
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: // parse_goal -> tkShortProgram, uses_clause_one_or_empty,
// decl_sect_list_proc_func_only, stmt_list
{
var stl = ValueStack[ValueStack.Depth-1].stn as statement_list;
stl.left_logical_bracket = new token_info("");
stl.right_logical_bracket = new token_info("");
var ul = ValueStack[ValueStack.Depth-3].stn as uses_list;
root = CurrentSemanticValue.stn = NewProgramModule(null, null, ul, new block(ValueStack[ValueStack.Depth-2].stn as declarations, stl, LocationStack[LocationStack.Depth-1]), new token_info(""), LexLocation.MergeAll(LocationStack[LocationStack.Depth-3],LocationStack[LocationStack.Depth-2],LocationStack[LocationStack.Depth-1]));
}
break;
case 6: // parse_goal -> tkShortSFProgram, uses_clause_one_or_empty,
// decl_sect_list_proc_func_only, stmt_list
{
var stl = ValueStack[ValueStack.Depth-1].stn as statement_list;
stl.left_logical_bracket = new token_info("");
stl.right_logical_bracket = new token_info("");
var un = new unit_or_namespace(new ident_list("SF"),null);
var ul = ValueStack[ValueStack.Depth-3].stn as uses_list;
if (ul == null)
//var un1 = new unit_or_namespace(new ident_list("School"),null);
ul = new uses_list(un,null);
else ul.Insert(0,un);
//ul.Add(un1);
root = CurrentSemanticValue.stn = NewProgramModule(null, null, ul, new block(ValueStack[ValueStack.Depth-2].stn as declarations, stl, CurrentLocationSpan), new token_info(""), LexLocation.MergeAll(LocationStack[LocationStack.Depth-3],LocationStack[LocationStack.Depth-2],LocationStack[LocationStack.Depth-1]));
}
break;
case 7: // parts -> tkParseModeExpression, expr
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].ex; }
break;
case 8: // parts -> tkParseModeExpression, tkType, type_decl_identifier
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].id; }
break;
case 9: // parts -> tkParseModeType, variable_as_type
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].ex; }
break;
case 10: // parts -> tkParseModeStatement, stmt_or_expression
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 11: // stmt_or_expression -> expr
{ CurrentSemanticValue.stn = new expression_as_statement(ValueStack[ValueStack.Depth-1].ex,CurrentLocationSpan);}
break;
case 12: // stmt_or_expression -> assignment
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 13: // stmt_or_expression -> var_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 14: // optional_head_compiler_directives -> /* empty */
{ CurrentSemanticValue.ob = null; }
break;
case 15: // optional_head_compiler_directives -> head_compiler_directives
{ CurrentSemanticValue.ob = null; }
break;
case 16: // head_compiler_directives -> one_compiler_directive
{ CurrentSemanticValue.ob = null; }
break;
case 17: // head_compiler_directives -> head_compiler_directives, one_compiler_directive
{ CurrentSemanticValue.ob = null; }
break;
case 18: // one_compiler_directive -> tkDirectiveName, tkIdentifier
{
parserTools.AddErrorFromResource("UNSUPPORTED_OLD_DIRECTIVES",CurrentLocationSpan);
CurrentSemanticValue.ob = null;
}
break;
case 19: // one_compiler_directive -> tkDirectiveName, tkStringLiteral
{
parserTools.AddErrorFromResource("UNSUPPORTED_OLD_DIRECTIVES",CurrentLocationSpan);
CurrentSemanticValue.ob = null;
}
break;
case 20: // 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 21: // optional_tk_point -> tkPoint
{ CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-1].ti; }
break;
case 22: // optional_tk_point -> tkSemiColon
{ CurrentSemanticValue.ob = null; }
break;
case 23: // optional_tk_point -> tkColon
{ CurrentSemanticValue.ob = null; }
break;
case 24: // optional_tk_point -> tkComma
{ CurrentSemanticValue.ob = null; }
break;
case 25: // optional_tk_point -> tkDotDot
{ CurrentSemanticValue.ob = null; }
break;
case 27: // program_header -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 28: // program_header -> tkProgram, identifier, program_heading_2
{ CurrentSemanticValue.stn = new program_name(ValueStack[ValueStack.Depth-2].id,CurrentLocationSpan); }
break;
case 29: // program_heading_2 -> tkSemiColon
{ CurrentSemanticValue.ob = null; }
break;
case 30: // program_heading_2 -> tkRoundOpen, program_param_list, tkRoundClose, tkSemiColon
{ CurrentSemanticValue.ob = null; }
break;
case 31: // program_param_list -> program_param
{ CurrentSemanticValue.ob = null; }
break;
case 32: // program_param_list -> program_param_list, tkComma, program_param
{ CurrentSemanticValue.ob = null; }
break;
case 33: // program_param -> identifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 34: // 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 35: // program_decl_sect_list -> decl_sect_list
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 36: // ident_or_keyword_pointseparator_list -> identifier_or_keyword
{
CurrentSemanticValue.stn = new ident_list(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan);
}
break;
case 37: // 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 38: // uses_clause_one -> tkUses, used_units_list, tkSemiColon
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn;
CurrentSemanticValue.stn.source_context = CurrentLocationSpan;
}
break;
case 39: // uses_clause_one_or_empty -> /* empty */
{
CurrentSemanticValue.stn = null;
}
break;
case 40: // uses_clause_one_or_empty -> uses_clause_one
{
if (parserTools.buildTreeForFormatter)
CurrentSemanticValue.stn = new uses_closure(ValueStack[ValueStack.Depth-1].stn as uses_list,CurrentLocationSpan);
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
}
break;
case 41: // uses_clause -> /* empty */
{
CurrentSemanticValue.stn = null;
}
break;
case 42: // uses_clause -> uses_clause, uses_clause_one
{
if (parserTools.buildTreeForFormatter)
{
if (ValueStack[ValueStack.Depth-2].stn == null)
{
CurrentSemanticValue.stn = new uses_closure(ValueStack[ValueStack.Depth-1].stn as uses_list,CurrentLocationSpan);
}
else {
(ValueStack[ValueStack.Depth-2].stn as uses_closure).AddUsesList(ValueStack[ValueStack.Depth-1].stn as uses_list,CurrentLocationSpan);
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn;
}
}
else
{
if (ValueStack[ValueStack.Depth-2].stn == null)
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
CurrentSemanticValue.stn.source_context = CurrentLocationSpan;
}
else
{
(ValueStack[ValueStack.Depth-2].stn as uses_list).AddUsesList(ValueStack[ValueStack.Depth-1].stn as uses_list,CurrentLocationSpan);
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn;
CurrentSemanticValue.stn.source_context = CurrentLocationSpan;
}
}
}
break;
case 43: // used_units_list -> used_unit_name
{
CurrentSemanticValue.stn = new uses_list(ValueStack[ValueStack.Depth-1].stn as unit_or_namespace,CurrentLocationSpan);
}
break;
case 44: // 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 45: // 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 46: // used_unit_name -> ident_or_keyword_pointseparator_list, tkIn, tkStringLiteral
{
if (ValueStack[ValueStack.Depth-1].stn is char_const _cc)
ValueStack[ValueStack.Depth-1].stn = new string_const(_cc.cconst.ToString());
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 47: // unit_file -> 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, /*$1 as attribute_list*/ null, CurrentLocationSpan);
}
break;
case 48: // unit_file -> 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, /*$1 as attribute_list*/ null, CurrentLocationSpan);
}
break;
case 49: // 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 50: // 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 51: // unit_key_word -> tkUnit
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 52: // unit_key_word -> tkLibrary
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 53: // unit_name -> identifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 54: // 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 55: // 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 56: // 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 57: // initialization_part -> tkEnd
{
CurrentSemanticValue.stn = new initfinal_part();
CurrentSemanticValue.stn.source_context = CurrentLocationSpan;
}
break;
case 58: // 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 59: // 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 60: // 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 61: // 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 62: // int_decl_sect_list1 -> /* empty */
{
CurrentSemanticValue.stn = new declarations();
if (GlobalDecls==null)
GlobalDecls = CurrentSemanticValue.stn as declarations;
}
break;
case 63: // 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 64: // 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 65: // decl_sect_list_proc_func_only -> /* empty */
{
CurrentSemanticValue.stn = new declarations();
if (GlobalDecls==null)
GlobalDecls = CurrentSemanticValue.stn as declarations;
}
break;
case 66: // decl_sect_list_proc_func_only -> decl_sect_list_proc_func_only,
// proc_func_decl_without_modifiers
{
var dcl = ValueStack[ValueStack.Depth-2].stn as declarations;
//($2 as procedure_definition).AssignAttrList($2 as attribute_list);
if (dcl.Count == 0)
CurrentSemanticValue.stn = dcl.Add(ValueStack[ValueStack.Depth-1].stn as declaration, LocationStack[LocationStack.Depth-1]);
else
{
var sc = dcl.source_context;
sc = sc.Merge(ValueStack[ValueStack.Depth-1].stn.source_context);
CurrentSemanticValue.stn = dcl.Add(ValueStack[ValueStack.Depth-1].stn as declaration, LocationStack[LocationStack.Depth-1]);
CurrentSemanticValue.stn.source_context = sc;
}
}
break;
case 67: // decl_sect_list1 -> /* empty */
{
CurrentSemanticValue.stn = new declarations();
if (GlobalDecls==null)
GlobalDecls = CurrentSemanticValue.stn as declarations;
}
break;
case 68: // 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 69: // 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 70: // inclass_decl_sect_list1 -> /* empty */
{
CurrentSemanticValue.stn = new declarations();
}
break;
case 71: // 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 72: // int_decl_sect -> const_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 73: // int_decl_sect -> res_str_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 74: // int_decl_sect -> type_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 75: // int_decl_sect -> var_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 76: // int_decl_sect -> int_proc_header
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].td; }
break;
case 77: // int_decl_sect -> int_func_header
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].td; }
break;
case 78: // decl_sect -> label_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 79: // decl_sect -> const_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 80: // decl_sect -> res_str_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 81: // decl_sect -> type_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 82: // decl_sect -> var_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 83: // decl_sect -> proc_func_constr_destr_decl_with_attr
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 84: // proc_func_constr_destr_decl -> proc_func_decl
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 85: // proc_func_constr_destr_decl -> constr_destr_decl
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 86: // 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 87: // abc_decl_sect -> label_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 88: // abc_decl_sect -> const_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 89: // abc_decl_sect -> res_str_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 90: // abc_decl_sect -> type_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 91: // abc_decl_sect -> var_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 92: // 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 93: // 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 94: // 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 95: // 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 96: // label_decl_sect -> tkLabel, label_list, tkSemiColon
{
CurrentSemanticValue.stn = new label_definitions(ValueStack[ValueStack.Depth-2].stn as ident_list, CurrentLocationSpan);
}
break;
case 97: // label_list -> label_name
{
CurrentSemanticValue.stn = new ident_list(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan);
}
break;
case 98: // 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 99: // label_name -> tkInteger
{
CurrentSemanticValue.id = new ident(ValueStack[ValueStack.Depth-1].ex.ToString(), CurrentLocationSpan);
}
break;
case 100: // label_name -> identifier
{
CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id;
}
break;
case 101: // const_decl_sect -> tkConst, const_decl
{
CurrentSemanticValue.stn = new consts_definitions_list(ValueStack[ValueStack.Depth-1].stn as const_definition, CurrentLocationSpan);
}
break;
case 102: // 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 103: // res_str_decl_sect -> tkResourceString, const_decl
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
}
break;
case 104: // res_str_decl_sect -> res_str_decl_sect, const_decl
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn;
}
break;
case 105: // type_decl_sect -> tkType, type_decl
{
CurrentSemanticValue.stn = new type_declarations(ValueStack[ValueStack.Depth-1].stn as type_declaration, CurrentLocationSpan);
}
break;
case 106: // 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 107: // var_decl_with_assign_var_tuple -> var_decl
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
}
break;
case 108: // 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 109: // 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 110: // 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 111: // 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 112: // const_decl -> only_const_decl, tkSemiColon
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; }
break;
case 113: // 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 114: // 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 115: // init_const_expr -> const_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 116: // init_const_expr -> array_const
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 117: // const_name -> identifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 118: // const_relop_expr -> const_simple_expr
{
CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex;
}
break;
case 119: // const_relop_expr -> const_relop_expr, const_relop, const_simple_expr
{
if (ValueStack[ValueStack.Depth-2].op.type == Operators.NotIn)
CurrentSemanticValue.ex = new un_expr(new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, Operators.In, CurrentLocationSpan),Operators.LogicalNOT,CurrentLocationSpan);
else
CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan);
}
break;
case 120: // const_expr -> const_relop_expr
{
CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex;
}
break;
case 121: // const_expr -> question_constexpr
{
CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex;
}
break;
case 122: // const_expr -> const_expr, tkDoubleQuestion, const_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 123: // 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 124: // const_relop -> tkEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 125: // const_relop -> tkNotEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 126: // const_relop -> tkLower
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 127: // const_relop -> tkGreater
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 128: // const_relop -> tkLowerEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 129: // const_relop -> tkGreaterEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 130: // const_relop -> tkIn
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 131: // const_relop -> tkNot, tkIn
{
if (parserTools.buildTreeForFormatter)
CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op;
else
{
CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op;
CurrentSemanticValue.op.type = Operators.NotIn;
}
}
break;
case 132: // const_simple_expr -> const_term
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 133: // 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 134: // const_addop -> tkPlus
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 135: // const_addop -> tkMinus
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 136: // const_addop -> tkOr
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 137: // const_addop -> tkXor
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 138: // 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 139: // power_constexpr -> const_factor_without_unary_op, 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 140: // power_constexpr -> const_factor_without_unary_op, tkStarStar, 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 141: // power_constexpr -> sign, power_constexpr
{ CurrentSemanticValue.ex = new un_expr(ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); }
break;
case 142: // const_term -> const_factor
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 143: // const_term -> as_is_constexpr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 144: // const_term -> power_constexpr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 145: // 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 146: // 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 147: // const_mulop -> tkStar
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 148: // const_mulop -> tkSlash
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 149: // const_mulop -> tkDiv
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 150: // const_mulop -> tkMod
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 151: // const_mulop -> tkShl
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 152: // const_mulop -> tkShr
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 153: // const_mulop -> tkAnd
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 154: // const_factor_without_unary_op -> const_variable
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 155: // const_factor_without_unary_op -> tkRoundOpen, const_expr, tkRoundClose
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-2].ex; }
break;
case 156: // const_factor -> const_variable
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 157: // const_factor -> const_set
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 158: // const_factor -> tkNil
{
CurrentSemanticValue.ex = new nil_const();
CurrentSemanticValue.ex.source_context = CurrentLocationSpan;
}
break;
case 159: // const_factor -> tkAddressOf, const_factor
{
CurrentSemanticValue.ex = new get_address(ValueStack[ValueStack.Depth-1].ex as addressed_value, CurrentLocationSpan);
}
break;
case 160: // const_factor -> tkRoundOpen, const_expr, tkRoundClose
{
CurrentSemanticValue.ex = new bracket_expr(ValueStack[ValueStack.Depth-2].ex, CurrentLocationSpan);
}
break;
case 161: // const_factor -> tkNot, const_factor
{
CurrentSemanticValue.ex = new un_expr(ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan);
}
break;
case 162: // const_factor -> sign, const_factor
{
// <20>?<3F>?<3F>?наЯ ко<D0BA>?<3F>?ек<D0B5>?иЯ <20>?ел<D0B5>?<3F>? конс<D0BD>?ан<D0B0>?
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;
}
// можно сдела<D0BB>?<3F>? в<>?<3F>?исление конс<D0BD>?ан<D0B0>?<3F>? с вмон<D0BE><>?ованн<D0BD>?м мин<D0B8>?сом
}
CurrentSemanticValue.ex = new un_expr(ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan);
}
break;
case 163: // const_factor -> new_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 164: // const_factor -> default_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 165: // pascal_set_const -> tkSquareOpen, elem_list, tkSquareClose
{
// <20>?сли elem_list п<>?с<>? или соде<D0B4>?жи<D0B6>? диапазон, <20>?о э<>?о множес<D0B5>?во, ина<D0BD>?е массив. С PascalABC.NET 3.10
var is_set = false;
var el = ValueStack[ValueStack.Depth-2].stn as expression_list;
if (el == null || el.Count == 0)
is_set = true;
else if (el.expressions.Count(x => x is diapason_expr_new) > 0)
is_set = true;
if (is_set)
CurrentSemanticValue.ex = new pascal_set_constant(ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan);
else CurrentSemanticValue.ex = new array_const_new(ValueStack[ValueStack.Depth-2].stn as expression_list, '[', CurrentLocationSpan);
}
break;
case 166: // const_set -> pascal_set_const
{
CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex;
}
break;
case 167: // const_set -> tkVertParen, elem_list, tkVertParen
{
CurrentSemanticValue.ex = new array_const_new(ValueStack[ValueStack.Depth-2].stn as expression_list, '|', CurrentLocationSpan);
}
break;
case 168: // sign -> tkPlus
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 169: // sign -> tkMinus
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 170: // const_variable -> identifier
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].id; }
break;
case 171: // const_variable -> literal
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 172: // const_variable -> unsigned_number
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 173: // const_variable -> tkInherited, identifier
{
CurrentSemanticValue.ex = new inherited_ident(ValueStack[ValueStack.Depth-1].id.name, CurrentLocationSpan);
}
break;
case 174: // const_variable -> sizeof_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 175: // const_variable -> typeof_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 176: // const_variable -> const_variable, const_variable_2
{
CurrentSemanticValue.ex = NewConstVariable(ValueStack[ValueStack.Depth-2].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 177: // 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 178: // const_variable -> const_variable, tkSquareOpen, format_const_expr,
// tkSquareClose
{
var fe = ValueStack[ValueStack.Depth-2].ex as format_expr;
if (!parserTools.buildTreeForFormatter)
{
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 179: // const_variable_2 -> tkPoint, identifier_or_keyword
{
CurrentSemanticValue.ex = new dot_node(null, ValueStack[ValueStack.Depth-1].id as addressed_value, CurrentLocationSpan);
}
break;
case 180: // const_variable_2 -> tkDeref
{
CurrentSemanticValue.ex = new roof_dereference();
CurrentSemanticValue.ex.source_context = CurrentLocationSpan;
}
break;
case 181: // 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 182: // const_variable_2 -> tkSquareOpen, const_elem_list, tkSquareClose
{
CurrentSemanticValue.ex = new indexer(ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan);
}
break;
case 183: // optional_const_func_expr_list -> expr_list
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 184: // optional_const_func_expr_list -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 185: // const_elem_list -> const_elem_list1
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 187: // const_elem_list1 -> const_elem
{
CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 188: // 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 189: // const_elem -> const_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 190: // 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 191: // unsigned_number -> tkInteger
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 192: // unsigned_number -> tkHex
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 193: // unsigned_number -> tkFloat
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 194: // unsigned_number -> tkBigInteger
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 195: // typed_const -> const_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 196: // typed_const -> array_const
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 197: // typed_const -> record_const
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 198: // array_const -> tkRoundOpen, typed_const_list, tkRoundClose
{
CurrentSemanticValue.ex = new array_const(ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan);
}
break;
case 200: // typed_const_list -> typed_const_list1
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
}
break;
case 201: // typed_const_list1 -> typed_const_plus
{
CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 202: // 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 203: // record_const -> tkRoundOpen, const_field_list, tkRoundClose
{
CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-2].ex;
CurrentSemanticValue.ex.source_context = CurrentLocationSpan;
}
break;
case 204: // const_field_list -> const_field_list_1
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 205: // const_field_list -> const_field_list_1, tkSemiColon
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-2].ex; }
break;
case 206: // const_field_list_1 -> const_field
{
CurrentSemanticValue.ex = new record_const(ValueStack[ValueStack.Depth-1].stn as record_const_definition, CurrentLocationSpan);
}
break;
case 207: // 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 208: // 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 209: // const_field_name -> identifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 210: // 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 211: // attribute_declarations -> attribute_declaration
{
CurrentSemanticValue.stn = new attribute_list(ValueStack[ValueStack.Depth-1].stn as simple_attribute_list, CurrentLocationSpan);
}
break;
case 212: // 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 213: // attribute_declarations -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 214: // attribute_declaration -> tkSquareOpen, one_or_some_attribute, tkSquareClose
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; }
break;
case 215: // one_or_some_attribute -> one_attribute
{
CurrentSemanticValue.stn = new simple_attribute_list(ValueStack[ValueStack.Depth-1].stn as attribute, CurrentLocationSpan);
}
break;
case 216: // 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 217: // one_attribute -> attribute_variable
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 218: // 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 219: // 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 220: // 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 221: // type_decl_identifier -> identifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 222: // 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 223: // 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 224: // type_decl_type -> type_ref
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 225: // type_decl_type -> object_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 226: // simple_type_question -> simple_type, tkQuestion
{
if (parserTools.buildTreeForFormatter)
{
CurrentSemanticValue.td = ValueStack[ValueStack.Depth-2].td;
}
else
{
var l = new List<ident>();
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 227: // simple_type_question -> template_type, tkQuestion
{
if (parserTools.buildTreeForFormatter)
{
CurrentSemanticValue.td = ValueStack[ValueStack.Depth-2].td;
}
else
{
var l = new List<ident>();
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 228: // type_ref -> simple_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 229: // type_ref -> simple_type_question
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 230: // type_ref -> string_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 231: // type_ref -> pointer_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 232: // type_ref -> structured_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 233: // type_ref -> procedural_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 234: // type_ref -> template_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 235: // 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 236: // template_type_params -> tkLower, template_param_list, tkGreater
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn;
CurrentSemanticValue.stn.source_context = CurrentLocationSpan;
}
break;
case 237: // 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 238: // template_type_empty_params -> tkLower, template_empty_param_list, tkGreater
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn;
CurrentSemanticValue.stn.source_context = CurrentLocationSpan;
}
break;
case 239: // template_param_list -> template_param
{
CurrentSemanticValue.stn = new template_param_list(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan);
}
break;
case 240: // 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 241: // template_empty_param_list -> template_empty_param
{
CurrentSemanticValue.stn = new template_param_list(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan);
}
break;
case 242: // 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 243: // template_empty_param -> /* empty */
{
CurrentSemanticValue.td = new named_type_reference(new ident(""), CurrentLocationSpan);
}
break;
case 244: // template_param -> simple_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 245: // template_param -> simple_type, tkQuestion
{
if (parserTools.buildTreeForFormatter)
{
CurrentSemanticValue.td = ValueStack[ValueStack.Depth-2].td;
}
else
{
var l = new List<ident>();
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 246: // template_param -> structured_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 247: // template_param -> procedural_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 248: // template_param -> template_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 249: // simple_type -> range_expr
{
CurrentSemanticValue.td = parserTools.ConvertDotNodeOrIdentToNamedTypeReference(ValueStack[ValueStack.Depth-1].ex);
}
break;
case 250: // simple_type -> range_expr, tkDotDot, range_expr
{
CurrentSemanticValue.td = new diapason(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 251: // simple_type -> tkRoundOpen, enumeration_id_list, tkRoundClose
{
CurrentSemanticValue.td = new enum_type_definition(ValueStack[ValueStack.Depth-2].stn as enumerator_list, CurrentLocationSpan);
}
break;
case 252: // range_expr -> range_term
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 253: // 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 254: // range_term -> range_factor
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 255: // 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 256: // range_factor -> simple_type_identifier
{
CurrentSemanticValue.ex = parserTools.ConvertNamedTypeReferenceToDotNodeOrIdent(ValueStack[ValueStack.Depth-1].td as named_type_reference);
}
break;
case 257: // range_factor -> unsigned_number
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 258: // range_factor -> sign, range_factor
{
CurrentSemanticValue.ex = new un_expr(ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan);
}
break;
case 259: // range_factor -> literal
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 260: // 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 261: // simple_type_identifier -> identifier
{
CurrentSemanticValue.td = new named_type_reference(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan);
}
break;
case 262: // 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 263: // enumeration_id_list -> enumeration_id
{
CurrentSemanticValue.stn = new enumerator_list(ValueStack[ValueStack.Depth-1].stn as enumerator, CurrentLocationSpan);
}
break;
case 264: // 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 265: // enumeration_id -> type_ref
{
CurrentSemanticValue.stn = new enumerator(ValueStack[ValueStack.Depth-1].td, null, CurrentLocationSpan);
}
break;
case 266: // enumeration_id -> type_ref, tkEqual, expr
{
CurrentSemanticValue.stn = new enumerator(ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 267: // pointer_type -> tkDeref, fptype
{
CurrentSemanticValue.td = new ref_type(ValueStack[ValueStack.Depth-1].td,CurrentLocationSpan);
}
break;
case 268: // structured_type -> array_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 269: // structured_type -> record_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 270: // structured_type -> set_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 271: // structured_type -> file_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 272: // structured_type -> sequence_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 273: // sequence_type -> tkSequence, tkOf, type_ref
{
CurrentSemanticValue.td = new sequence_type(ValueStack[ValueStack.Depth-1].td,CurrentLocationSpan);
}
break;
case 274: // 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 275: // array_type -> unsized_array_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 276: // unsized_array_type -> tkArray, tkOf, type_ref
{
CurrentSemanticValue.td = new array_type(null, ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan);
}
break;
case 277: // simple_type_list -> simple_type_or_
{
CurrentSemanticValue.stn = new indexers_types(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan);
}
break;
case 278: // 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 279: // simple_type_or_ -> simple_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 280: // simple_type_or_ -> /* empty */
{ CurrentSemanticValue.td = null; }
break;
case 281: // set_type -> tkSet, tkOf, type_ref
{
CurrentSemanticValue.td = new set_type_definition(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan);
}
break;
case 282: // file_type -> tkFile, tkOf, type_ref
{
CurrentSemanticValue.td = new file_type(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan);
}
break;
case 283: // file_type -> tkFile
{
CurrentSemanticValue.td = new file_type();
CurrentSemanticValue.td.source_context = CurrentLocationSpan;
}
break;
case 284: // 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 285: // procedural_type -> procedural_type_kind
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 286: // procedural_type_kind -> proc_type_decl
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 287: // 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 288: // 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 289: // 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 290: // 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 291: // proc_type_decl -> tkRoundOpen, tkRoundClose, tkArrow, template_param
{
CurrentSemanticValue.td = new modern_proc_type(null,null,ValueStack[ValueStack.Depth-1].td,CurrentLocationSpan);
}
break;
case 292: // 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 293: // 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 294: // proc_type_decl -> template_type, tkArrow, tkRoundOpen, tkRoundClose
{
CurrentSemanticValue.td = new modern_proc_type(ValueStack[ValueStack.Depth-4].td,null,null,CurrentLocationSpan);
}
break;
case 295: // proc_type_decl -> tkRoundOpen, tkRoundClose, tkArrow, tkRoundOpen, tkRoundClose
{
CurrentSemanticValue.td = new modern_proc_type(null,null,null,CurrentLocationSpan);
}
break;
case 296: // 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 297: // 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;
}
break;
case 298: // 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 299: // class_attribute -> tkSealed
{ CurrentSemanticValue.ob = class_attribute.Sealed; }
break;
case 300: // class_attribute -> tkPartial
{ CurrentSemanticValue.ob = class_attribute.Partial; }
break;
case 301: // class_attribute -> tkAbstract
{ CurrentSemanticValue.ob = class_attribute.Abstract; }
break;
case 302: // class_attribute -> tkAuto
{ CurrentSemanticValue.ob = class_attribute.Auto; }
break;
case 303: // class_attribute -> tkStatic
{ CurrentSemanticValue.ob = class_attribute.Static; }
break;
case 304: // class_attributes -> /* empty */
{
CurrentSemanticValue.ob = class_attribute.None;
}
break;
case 305: // class_attributes -> class_attributes1
{
CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-1].ob;
}
break;
case 306: // class_attributes1 -> class_attribute
{
CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-1].ob;
}
break;
case 307: // 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 308: // class_or_interface_keyword -> tkClass
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 309: // class_or_interface_keyword -> tkInterface
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 310: // class_or_interface_keyword -> tkTemplate
{
CurrentSemanticValue.ti = NewClassOrInterfaceKeyword(ValueStack[ValueStack.Depth-1].ti);
}
break;
case 311: // class_or_interface_keyword -> tkTemplate, tkClass
{
CurrentSemanticValue.ti = NewClassOrInterfaceKeyword(ValueStack[ValueStack.Depth-2].ti, "c", CurrentLocationSpan);
}
break;
case 312: // class_or_interface_keyword -> tkTemplate, tkRecord
{
CurrentSemanticValue.ti = NewClassOrInterfaceKeyword(ValueStack[ValueStack.Depth-2].ti, "r", CurrentLocationSpan);
}
break;
case 313: // class_or_interface_keyword -> tkTemplate, tkInterface
{
CurrentSemanticValue.ti = NewClassOrInterfaceKeyword(ValueStack[ValueStack.Depth-2].ti, "i", CurrentLocationSpan);
}
break;
case 314: // optional_component_list_seq_end -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 315: // optional_component_list_seq_end -> member_list_section, tkEnd
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn;
CurrentSemanticValue.stn.source_context = CurrentLocationSpan;
}
break;
case 317: // optional_base_classes -> tkRoundOpen, base_classes_names_list, tkRoundClose
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; }
break;
case 318: // 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 319: // 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 320: // base_class_name -> simple_type_identifier
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].td; }
break;
case 321: // base_class_name -> template_type
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].td; }
break;
case 322: // template_arguments -> tkLower, ident_list, tkGreater
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn;
CurrentSemanticValue.stn.source_context = CurrentLocationSpan;
}
break;
case 323: // optional_where_section -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 324: // optional_where_section -> where_part_list
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 325: // where_part_list -> where_part
{
CurrentSemanticValue.stn = new where_definition_list(ValueStack[ValueStack.Depth-1].stn as where_definition, CurrentLocationSpan);
}
break;
case 326: // 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 327: // 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 328: // type_ref_and_secific_list -> type_ref_or_secific
{
CurrentSemanticValue.stn = new where_type_specificator_list(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan);
}
break;
case 329: // 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 330: // type_ref_or_secific -> type_ref
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 331: // type_ref_or_secific -> tkClass
{
CurrentSemanticValue.td = new declaration_specificator(DeclarationSpecificator.WhereDefClass, ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan);
}
break;
case 332: // type_ref_or_secific -> tkRecord
{
CurrentSemanticValue.td = new declaration_specificator(DeclarationSpecificator.WhereDefValueType, ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan);
}
break;
case 333: // type_ref_or_secific -> tkConstructor
{
CurrentSemanticValue.td = new declaration_specificator(DeclarationSpecificator.WhereDefConstructor, ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan);
}
break;
case 334: // member_list_section -> member_list
{
CurrentSemanticValue.stn = new class_body_list(ValueStack[ValueStack.Depth-1].stn as class_members, CurrentLocationSpan);
}
break;
case 335: // 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 336: // ot_visibility_specifier -> tkInternal
{ CurrentSemanticValue.stn = new access_modifer_node(access_modifer.internal_modifer, CurrentLocationSpan); }
break;
case 337: // ot_visibility_specifier -> tkPublic
{ CurrentSemanticValue.stn = new access_modifer_node(access_modifer.public_modifer, CurrentLocationSpan); }
break;
case 338: // ot_visibility_specifier -> tkProtected
{ CurrentSemanticValue.stn = new access_modifer_node(access_modifer.protected_modifer, CurrentLocationSpan); }
break;
case 339: // ot_visibility_specifier -> tkPrivate
{ CurrentSemanticValue.stn = new access_modifer_node(access_modifer.private_modifer, CurrentLocationSpan); }
break;
case 340: // member_list -> /* empty */
{ CurrentSemanticValue.stn = new class_members(); }
break;
case 341: // member_list -> field_or_const_definition_list, optional_semicolon
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; }
break;
case 342: // member_list -> method_decl_list
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 343: // 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 344: // ident_list -> identifier
{
CurrentSemanticValue.stn = new ident_list(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan);
}
break;
case 345: // 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 346: // optional_semicolon -> /* empty */
{ CurrentSemanticValue.ob = null; }
break;
case 347: // optional_semicolon -> tkSemiColon
{ CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-1].ti; }
break;
case 348: // field_or_const_definition_list -> field_or_const_definition
{
CurrentSemanticValue.stn = new class_members(ValueStack[ValueStack.Depth-1].stn as declaration, CurrentLocationSpan);
}
break;
case 349: // 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 350: // 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 351: // method_decl_list -> method_or_property_decl
{
CurrentSemanticValue.stn = new class_members(ValueStack[ValueStack.Depth-1].stn as declaration, CurrentLocationSpan);
}
break;
case 352: // 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 353: // method_or_property_decl -> method_decl_withattr
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 354: // method_or_property_decl -> property_definition
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 355: // simple_field_or_const_definition -> tkConst, only_const_decl
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
CurrentSemanticValue.stn.source_context = CurrentLocationSpan;
}
break;
case 356: // simple_field_or_const_definition -> field_definition
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 357: // 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 358: // class_or_static -> tkStatic
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 359: // class_or_static -> tkClass
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 360: // field_definition -> var_decl_part
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 361: // 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 362: // 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 363: // 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 364: // method_decl -> inclass_proc_func_decl
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 365: // method_decl -> inclass_constr_destr_decl
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 366: // 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 367: // method_header -> method_procfunc_header
{
CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td;
}
break;
case 368: // method_header -> tkAsync, class_or_static, method_procfunc_header
{
(ValueStack[ValueStack.Depth-1].td as procedure_header).class_keyword = true;
(ValueStack[ValueStack.Depth-1].td as procedure_header).IsAsync = true;
CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td;
}
break;
case 369: // method_header -> tkAsync, method_procfunc_header
{
(ValueStack[ValueStack.Depth-1].td as procedure_header).IsAsync = true;
CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td;
}
break;
case 370: // method_header -> constr_destr_header
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 371: // method_procfunc_header -> proc_func_header
{
CurrentSemanticValue.td = NewProcfuncHeading(ValueStack[ValueStack.Depth-1].td as procedure_header);
}
break;
case 372: // proc_func_header -> proc_header
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 373: // proc_func_header -> func_header
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 374: // 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 375: // 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 376: // 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 377: // optional_proc_name -> proc_name
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 378: // optional_proc_name -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 379: // 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 380: // simple_property_definition -> tkProperty, func_name, 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 381: // simple_property_definition -> tkProperty, func_name, 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 382: // simple_property_definition -> class_or_static, tkProperty, func_name,
// 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 383: // simple_property_definition -> class_or_static, tkProperty, func_name,
// 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 384: // simple_property_definition -> tkAuto, tkProperty, func_name, 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 385: // simple_property_definition -> class_or_static, tkAuto, tkProperty, func_name,
// 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 386: // optional_property_initialization -> tkAssign, expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 387: // optional_property_initialization -> /* empty */
{ CurrentSemanticValue.ex = null; }
break;
case 388: // array_defaultproperty -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 389: // array_defaultproperty -> tkDefault, tkSemiColon
{
CurrentSemanticValue.stn = new property_array_default();
CurrentSemanticValue.stn.source_context = CurrentLocationSpan;
}
break;
case 390: // 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 391: // property_parameter_list -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 392: // property_parameter_list -> tkSquareOpen, parameter_decl_list, tkSquareClose
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; }
break;
case 393: // parameter_decl_list -> parameter_decl
{
CurrentSemanticValue.stn = new property_parameter_list(ValueStack[ValueStack.Depth-1].stn as property_parameter, CurrentLocationSpan);
}
break;
case 394: // 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 395: // 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 396: // optional_read_expr -> expr_with_func_decl_lambda
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 397: // optional_read_expr -> /* empty */
{ CurrentSemanticValue.ex = null; }
break;
case 399: // property_specifiers -> tkRead, optional_read_expr, write_property_specifiers
{
if (ValueStack[ValueStack.Depth-2].ex == null || ValueStack[ValueStack.Depth-2].ex is ident) // с<>?анда<D0B4>?<3F><>?е свойс<D0B9>?ва
{
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 // <20>?ас<D0B0><>?енн<D0BD>?е свойс<D0B9>?ва
{
var id = NewId("#GetGen", LocationStack[LocationStack.Depth-2]);
procedure_definition pr = null;
if (!parserTools.buildTreeForFormatter)
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 пе<D0BF>?еда<D0B4>?<3F>?ся для <20>?о<>а<D0BC><>?ования
}
}
break;
case 400: // 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) // с<>?анда<D0B4>?<3F><>?е свойс<D0B9>?ва
{
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); // с<>?а<>?<3F>?е свойс<D0B9>?ва - с иден<D0B5><>?ика<D0BA>?о<>?ом
}
else // <20>?ас<D0B0><>?енн<D0BD>?е свойс<D0B9>?ва
{
var id = NewId("#SetGen", LocationStack[LocationStack.Depth-2]);
procedure_definition pr = null;
if (!parserTools.buildTreeForFormatter)
pr = CreateAndAddToClassWriteProc(ValueStack[ValueStack.Depth-2].stn as statement,id,LocationStack[LocationStack.Depth-2]);
if (parserTools.buildTreeForFormatter)
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 пе<D0BF>?еда<D0B4>?<3F>?ся для <20>?о<>а<D0BC><>?ования
else CurrentSemanticValue.stn = NewPropertySpecifiersWrite(ValueStack[ValueStack.Depth-3].id, id, pr, null, ValueStack[ValueStack.Depth-1].stn as property_accessors, CurrentLocationSpan);
}
}
break;
case 402: // 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); // с<>?а<>?<3F>?е свойс<D0B9>?ва - с иден<D0B5><>?ика<D0BA>?о<>?ом
}
else
{
var id = NewId("#SetGen", LocationStack[LocationStack.Depth-1]);
procedure_definition pr = null;
if (!parserTools.buildTreeForFormatter)
pr = CreateAndAddToClassWriteProc(ValueStack[ValueStack.Depth-1].stn as statement,id,LocationStack[LocationStack.Depth-1]);
if (parserTools.buildTreeForFormatter)
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 404: // 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.buildTreeForFormatter)
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 405: // var_decl -> var_decl_part, tkSemiColon
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; }
break;
case 408: // 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 409: // var_decl_part -> ident_list, tkAssign, expr_with_func_decl_lambda
{
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 410: // 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 411: // typed_var_init_expression -> typed_const_plus
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 412: // typed_var_init_expression -> const_simple_expr, tkDotDot, const_term
{
if (parserTools.buildTreeForFormatter)
CurrentSemanticValue.ex = new diapason_expr(ValueStack[ValueStack.Depth-3].ex,ValueStack[ValueStack.Depth-1].ex,CurrentLocationSpan);
else
CurrentSemanticValue.ex = new diapason_expr_new(ValueStack[ValueStack.Depth-3].ex,ValueStack[ValueStack.Depth-1].ex,CurrentLocationSpan);
}
break;
case 413: // typed_var_init_expression -> expl_func_decl_lambda
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 414: // 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 lambda_any_type_node_syntax(), 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 lambda_any_type_node_syntax(), LocationStack[LocationStack.Depth-3]), ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan);
}
break;
case 415: // 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 416: // 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 lambda_any_type_node_syntax(), 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 417: // typed_var_init_expression -> new_question_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 418: // typed_const_plus -> typed_const
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 419: // 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 420: // 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<procedure_attribute>(),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.buildTreeForFormatter)
CurrentSemanticValue.stn = new short_func_definition(CurrentSemanticValue.stn as procedure_definition);
}
break;
case 421: // 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<procedure_attribute>(),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.buildTreeForFormatter)
CurrentSemanticValue.stn = new short_func_definition(CurrentSemanticValue.stn as procedure_definition);
}
break;
case 422: // 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 423: // 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<procedure_attribute>(),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.buildTreeForFormatter)
CurrentSemanticValue.stn = new short_func_definition(CurrentSemanticValue.stn as procedure_definition);
}
break;
case 424: // 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<procedure_attribute>(),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.buildTreeForFormatter)
CurrentSemanticValue.stn = new short_func_definition(CurrentSemanticValue.stn as procedure_definition);
}
break;
case 425: // proc_func_decl -> proc_func_decl_without_modifiers
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 426: // proc_func_decl -> class_or_static, proc_func_decl_without_modifiers
{
(ValueStack[ValueStack.Depth-1].stn as procedure_definition).proc_header.class_keyword = true;
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
}
break;
case 427: // proc_func_decl -> tkAsync, proc_func_decl_without_modifiers
{
(ValueStack[ValueStack.Depth-1].stn as procedure_definition).proc_header.IsAsync = true;
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
}
break;
case 428: // proc_func_decl -> tkAsync, class_or_static, proc_func_decl_without_modifiers
{
(ValueStack[ValueStack.Depth-1].stn as procedure_definition).proc_header.IsAsync = true;
(ValueStack[ValueStack.Depth-1].stn as procedure_definition).proc_header.class_keyword = true;
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
}
break;
case 429: // proc_func_decl -> class_or_static, tkAsync, proc_func_decl_without_modifiers
{
(ValueStack[ValueStack.Depth-1].stn as procedure_definition).proc_header.IsAsync = true;
(ValueStack[ValueStack.Depth-1].stn as procedure_definition).proc_header.class_keyword = true;
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
}
break;
case 430: // inclass_proc_func_decl -> inclass_proc_func_decl_without_modifiers
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
}
break;
case 431: // inclass_proc_func_decl -> tkAsync, inclass_proc_func_decl_without_modifiers
{
(ValueStack[ValueStack.Depth-1].stn as procedure_definition).proc_header.IsAsync = true;
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
}
break;
case 432: // inclass_proc_func_decl -> class_or_static,
// inclass_proc_func_decl_without_modifiers
{
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 433: // inclass_proc_func_decl -> tkAsync, class_or_static,
// inclass_proc_func_decl_without_modifiers
{
if ((ValueStack[ValueStack.Depth-1].stn as procedure_definition).proc_header != null)
{
(ValueStack[ValueStack.Depth-1].stn as procedure_definition).proc_header.IsAsync = true;
(ValueStack[ValueStack.Depth-1].stn as procedure_definition).proc_header.class_keyword = true;
}
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
}
break;
case 434: // inclass_proc_func_decl -> class_or_static, tkAsync,
// inclass_proc_func_decl_without_modifiers
{
if ((ValueStack[ValueStack.Depth-1].stn as procedure_definition).proc_header != null)
{
(ValueStack[ValueStack.Depth-1].stn as procedure_definition).proc_header.IsAsync = true;
(ValueStack[ValueStack.Depth-1].stn as procedure_definition).proc_header.class_keyword = true;
}
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
}
break;
case 435: // proc_func_decl_without_modifiers -> proc_func_header, proc_func_external_block
{
var ph = ValueStack[ValueStack.Depth-2].td as procedure_header;
var pal = ph.proc_attributes;
var mn = ph.name;
if (mn.meth_name is operator_name_ident && mn.class_name == null &&
!pal.proc_attributes.Select(p => p.attribute_type).Contains(proc_attribute.attr_extension))
{
pal.proc_attributes.Add(new procedure_attribute(proc_attribute.attr_extension));
}
CurrentSemanticValue.stn = new procedure_definition(ph, ValueStack[ValueStack.Depth-1].stn as proc_block, CurrentLocationSpan);
}
break;
case 436: // proc_func_decl_without_modifiers -> 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 437: // proc_func_decl_without_modifiers -> tkFunction, func_name, fp_list, tkColon,
// fptype, optional_method_modificators1,
// tkAssign, expr_l1_func_decl_lambda,
// tkSemiColon
{
var pal = ValueStack[ValueStack.Depth-4].stn as procedure_attributes_list;
var mn = ValueStack[ValueStack.Depth-8].stn as method_name;
if (mn.meth_name is operator_name_ident && mn.class_name == null &&
!pal.proc_attributes.Select(p => p.attribute_type).Contains(proc_attribute.attr_extension))
{
pal.proc_attributes.Add(new procedure_attribute(proc_attribute.attr_extension));
}
CurrentSemanticValue.stn = SyntaxTreeBuilder.BuildShortFuncDefinition(ValueStack[ValueStack.Depth-7].stn as formal_parameters, pal, mn, ValueStack[ValueStack.Depth-5].td as type_definition, ValueStack[ValueStack.Depth-2].ex, LocationStack[LocationStack.Depth-9].Merge(LocationStack[LocationStack.Depth-4]));
}
break;
case 438: // proc_func_decl_without_modifiers -> tkFunction, func_name, fp_list,
// optional_method_modificators1, tkAssign,
// expr_l1_func_decl_lambda, tkSemiColon
{
if (ValueStack[ValueStack.Depth-2].ex is dot_question_node)
parserTools.AddErrorFromResource("DOT_QUECTION_IN_SHORT_FUN",LocationStack[LocationStack.Depth-2]);
var pal = ValueStack[ValueStack.Depth-4].stn as procedure_attributes_list;
var mn = ValueStack[ValueStack.Depth-6].stn as method_name;
if (mn.meth_name is operator_name_ident && mn.class_name == null &&
!pal.proc_attributes.Select(p => p.attribute_type).Contains(proc_attribute.attr_extension))
{
pal.proc_attributes.Add(new procedure_attribute(proc_attribute.attr_extension));
}
CurrentSemanticValue.stn = SyntaxTreeBuilder.BuildShortFuncDefinition(ValueStack[ValueStack.Depth-5].stn as formal_parameters, pal, mn, null, ValueStack[ValueStack.Depth-2].ex, LocationStack[LocationStack.Depth-7].Merge(LocationStack[LocationStack.Depth-4]));
}
break;
case 439: // proc_func_decl_without_modifiers -> 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 440: // inclass_proc_func_decl_without_modifiers -> 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 441: // inclass_proc_func_decl_without_modifiers -> 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.buildTreeForFormatter) // э<>?о <20>?ол<D0BE>?ко в inclass надо писа<D181>?<3F>? - в об<D0BE>?<3F>?ном proc_func_decl_without_modifiers - не надо! <20>?о<>?ем<D0B5>? - <20>?же <20>?<3F>?<3F>?а<>?ено
CurrentSemanticValue.stn = new short_func_definition(CurrentSemanticValue.stn as procedure_definition);
}
break;
case 442: // inclass_proc_func_decl_without_modifiers -> tkFunction, func_name, fp_list,
// optional_method_modificators1,
// tkAssign,
// expr_l1_func_decl_lambda,
// 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]));
if (parserTools.buildTreeForFormatter)
CurrentSemanticValue.stn = new short_func_definition(CurrentSemanticValue.stn as procedure_definition);
}
break;
case 443: // inclass_proc_func_decl_without_modifiers -> 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]));
if (parserTools.buildTreeForFormatter)
CurrentSemanticValue.stn = new short_func_definition(CurrentSemanticValue.stn as procedure_definition);
}
break;
case 444: // proc_func_external_block -> block
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 445: // proc_func_external_block -> external_block
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 446: // proc_name -> func_name
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 447: // func_name -> func_meth_name_ident
{
CurrentSemanticValue.stn = new method_name(null,null, ValueStack[ValueStack.Depth-1].id, null, CurrentLocationSpan);
}
break;
case 448: // func_name -> func_class_name_ident_list, tkPoint, func_meth_name_ident
{
var ln = ValueStack[ValueStack.Depth-3].ob as List<ident>;
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 449: // func_class_name_ident -> func_name_with_template_args
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 450: // func_class_name_ident_list -> func_class_name_ident
{
CurrentSemanticValue.ob = new List<ident>();
(CurrentSemanticValue.ob as List<ident>).Add(ValueStack[ValueStack.Depth-1].id);
}
break;
case 451: // func_class_name_ident_list -> func_class_name_ident_list, tkPoint,
// func_class_name_ident
{
(ValueStack[ValueStack.Depth-3].ob as List<ident>).Add(ValueStack[ValueStack.Depth-1].id);
CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-3].ob;
}
break;
case 452: // func_meth_name_ident -> func_name_with_template_args
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 453: // func_meth_name_ident -> operator_name_ident
{ CurrentSemanticValue.id = (ident)ValueStack[ValueStack.Depth-1].ex; }
break;
case 454: // 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 455: // func_name_with_template_args -> func_name_ident
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 456: // 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 457: // func_name_ident -> identifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 458: // 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 459: // 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 460: // 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 461: // 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 462: // external_block -> tkExternal, external_directive_ident, tkSemiColon
{
CurrentSemanticValue.stn = new external_directive(ValueStack[ValueStack.Depth-2].ex, null, CurrentLocationSpan);
}
break;
case 463: // external_block -> tkExternal, tkSemiColon
{
CurrentSemanticValue.stn = new external_directive(null, null, CurrentLocationSpan);
}
break;
case 464: // external_directive_ident -> identifier
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].id; }
break;
case 465: // external_directive_ident -> literal
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 466: // 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 467: // 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 468: // inclass_block -> external_block
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 469: // fp_list -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 470: // fp_list -> tkRoundOpen, tkRoundClose
{
CurrentSemanticValue.stn = null;
}
break;
case 471: // 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 472: // fp_sect_list -> fp_sect
{
CurrentSemanticValue.stn = new formal_parameters(ValueStack[ValueStack.Depth-1].stn as typed_parameters, CurrentLocationSpan);
}
break;
case 473: // 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 474: // 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 475: // 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 476: // 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 477: // 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 478: // 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 479: // 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 480: // 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 481: // 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 482: // param_name_list -> param_name
{
CurrentSemanticValue.stn = new ident_list(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan);
}
break;
case 483: // 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 484: // param_name -> identifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 485: // fptype -> type_ref
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 486: // fptype_noproctype -> simple_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 487: // fptype_noproctype -> string_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 488: // fptype_noproctype -> pointer_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 489: // fptype_noproctype -> structured_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 490: // fptype_noproctype -> template_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 491: // stmt -> unlabelled_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 492: // 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 493: // unlabelled_stmt -> /* empty */
{
CurrentSemanticValue.stn = new empty_statement();
CurrentSemanticValue.stn.source_context = null;
}
break;
case 494: // unlabelled_stmt -> assignment
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 495: // unlabelled_stmt -> proc_call
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 496: // unlabelled_stmt -> goto_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 497: // unlabelled_stmt -> compound_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 498: // unlabelled_stmt -> if_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 499: // unlabelled_stmt -> case_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 500: // unlabelled_stmt -> repeat_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 501: // unlabelled_stmt -> while_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 502: // unlabelled_stmt -> for_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 503: // unlabelled_stmt -> with_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 504: // unlabelled_stmt -> inherited_message
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 505: // unlabelled_stmt -> try_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 506: // unlabelled_stmt -> raise_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 507: // unlabelled_stmt -> foreach_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 508: // unlabelled_stmt -> var_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 509: // unlabelled_stmt -> expr_as_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 510: // unlabelled_stmt -> lock_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 511: // unlabelled_stmt -> yield_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 512: // unlabelled_stmt -> yield_sequence_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 513: // unlabelled_stmt -> loop_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 514: // unlabelled_stmt -> match_with
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 515: // 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 516: // yield_stmt -> tkYield, expr_l1_func_decl_lambda
{
CurrentSemanticValue.stn = new yield_node(ValueStack[ValueStack.Depth-1].ex,CurrentLocationSpan);
}
break;
case 517: // yield_sequence_stmt -> tkYield, tkSequence, expr_l1_func_decl_lambda
{
CurrentSemanticValue.stn = new yield_sequence_node(ValueStack[ValueStack.Depth-1].ex,CurrentLocationSpan);
}
break;
case 518: // var_stmt -> tkVar, var_decl_part
{
CurrentSemanticValue.stn = new var_statement(ValueStack[ValueStack.Depth-1].stn as var_def_statement, CurrentLocationSpan);
}
break;
case 519: // 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 520: // 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 521: // assignment -> var_reference, assign_operator, expr_with_func_decl_lambda
{
if (!(ValueStack[ValueStack.Depth-3].ex is addressed_value))
parserTools.AddErrorFromResource("LEFT_SIDE_CANNOT_BE_ASSIGNED_TO",CurrentLocationSpan);
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 522: // 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 523: // variable_list -> variable
{
CurrentSemanticValue.ob = new addressed_value_list(ValueStack[ValueStack.Depth-1].ex as addressed_value,LocationStack[LocationStack.Depth-1]);
}
break;
case 524: // 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 525: // var_ident_list -> tkVar, identifier
{
CurrentSemanticValue.ob = new ident_list(ValueStack[ValueStack.Depth-1].id,CurrentLocationSpan);
}
break;
case 526: // 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 527: // 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 528: // goto_stmt -> tkGoto, label_name
{
CurrentSemanticValue.stn = new goto_statement(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan);
}
break;
case 529: // 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 530: // stmt_list -> stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, LocationStack[LocationStack.Depth-1]);
}
break;
case 531: // 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 532: // 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 533: // 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 534: // 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 535: // 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 536: // pattern_cases -> pattern_case
{
CurrentSemanticValue.stn = new pattern_cases(ValueStack[ValueStack.Depth-1].stn as pattern_case);
}
break;
case 537: // 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 538: // 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 539: // pattern_case -> deconstruction_or_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 540: // 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 541: // pattern_case -> tuple_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 542: // 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 543: // 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 544: // 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 545: // 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 546: // 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 547: // 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 548: // 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 549: // case_label_list -> case_label
{
CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 550: // 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 551: // case_label -> const_elem
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 552: // else_case -> /* empty */
{ CurrentSemanticValue.stn = null;}
break;
case 553: // else_case -> tkElse, stmt_list
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 554: // 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 555: // 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 556: // optional_tk_do -> tkDo
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 557: // optional_tk_do -> /* empty */
{ CurrentSemanticValue.ti = null; }
break;
case 558: // 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 559: // index_or_nothing -> tkIndex, tkIdentifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 560: // index_or_nothing -> /* empty */
{ CurrentSemanticValue.id = null; }
break;
case 561: // optional_type_specification -> tkColon, type_ref
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 562: // optional_type_specification -> /* empty */
{ CurrentSemanticValue.td = null; }
break;
case 563: // optional_var -> tkVar
{ CurrentSemanticValue.ob = true; }
break;
case 564: // optional_var -> /* empty */
{ CurrentSemanticValue.ob = false; }
break;
case 565: // for_cycle_type -> tkTo
{ CurrentSemanticValue.ob = for_cycle_type.to; }
break;
case 566: // for_cycle_type -> tkDownto
{ CurrentSemanticValue.ob = for_cycle_type.downto; }
break;
case 567: // foreach_stmt -> tkForeach, identifier, optional_type_specification, tkIn,
// expr_l1, index_or_nothing, tkDo, unlabelled_stmt
{
CurrentSemanticValue.stn = new foreach_stmt(ValueStack[ValueStack.Depth-7].id, ValueStack[ValueStack.Depth-6].td, ValueStack[ValueStack.Depth-4].ex, ValueStack[ValueStack.Depth-1].stn as statement, ValueStack[ValueStack.Depth-3].id, CurrentLocationSpan);
if (ValueStack[ValueStack.Depth-6].td == null)
parserTools.AddWarningFromResource("USING_UNLOCAL_FOREACH_VARIABLE", ValueStack[ValueStack.Depth-7].id.source_context);
}
break;
case 568: // foreach_stmt -> tkForeach, tkVar, identifier, optional_type_specification, tkIn,
// expr_l1, index_or_nothing, tkDo, unlabelled_stmt
{
if (ValueStack[ValueStack.Depth-6].td == null)
CurrentSemanticValue.stn = new foreach_stmt(ValueStack[ValueStack.Depth-7].id, new no_type_foreach(), ValueStack[ValueStack.Depth-4].ex, ValueStack[ValueStack.Depth-1].stn as statement, ValueStack[ValueStack.Depth-3].id, CurrentLocationSpan);
else CurrentSemanticValue.stn = new foreach_stmt(ValueStack[ValueStack.Depth-7].id, ValueStack[ValueStack.Depth-6].td, ValueStack[ValueStack.Depth-4].ex, ValueStack[ValueStack.Depth-1].stn as statement, ValueStack[ValueStack.Depth-3].id, CurrentLocationSpan);
}
break;
case 569: // foreach_stmt -> tkForeach, tkVar, tkRoundOpen, ident_list, tkRoundClose, tkIn,
// expr_l1, index_or_nothing, tkDo, unlabelled_stmt
{
if (parserTools.buildTreeForFormatter)
{
var il = ValueStack[ValueStack.Depth-7].stn as ident_list;
il.source_context = LexLocation.MergeAll(LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6]); // н<>?жно для <20>?о<>а<D0BC><>?ования
CurrentSemanticValue.stn = new foreach_stmt_formatting(il,ValueStack[ValueStack.Depth-4].ex,ValueStack[ValueStack.Depth-1].stn as statement,ValueStack[ValueStack.Depth-3].id,CurrentLocationSpan);
}
else
{
// <20>?с<>?<3F>? п<>?облема - непоня<D0BD>?но, где здес<D0B5>? сдела<D0BB>?<3F>? семан<D0B0>?<3F>?еский <20>?зел для п<>?ове<D0B2>?ки
// <20>?<3F>?ове<D0B2><>?<3F>? можно и в foreach, но где-<2D>?о должен б<>?<3F>?<3F>? ма<D0BC>е<D0BA>?, <20>?<3F>?о э<>?о са<D181>?а<><><20>?зел
// Нап<D0B0>?име<D0BC>?, иден<D0B5><>?ика<D0BA>?о<>? #fe - но э<>?о пло<D0BB>?ая идея
var id = NewId("#fe",LocationStack[LocationStack.Depth-7]);
var tttt = new assign_var_tuple(ValueStack[ValueStack.Depth-7].stn as ident_list, id, CurrentLocationSpan);
statement_list nine = ValueStack[ValueStack.Depth-1].stn is statement_list ? ValueStack[ValueStack.Depth-1].stn as statement_list : new statement_list(ValueStack[ValueStack.Depth-1].stn as statement,LocationStack[LocationStack.Depth-2]);
nine.Insert(0,tttt);
var fe = new foreach_stmt(id, new no_type_foreach(), ValueStack[ValueStack.Depth-4].ex, nine, ValueStack[ValueStack.Depth-3].id, CurrentLocationSpan);
fe.ext = ValueStack[ValueStack.Depth-7].stn as ident_list;
CurrentSemanticValue.stn = fe;
}
}
break;
case 570: // for_stmt -> tkFor, optional_var, identifier, optional_type_specification,
// tkAssign, expr_l1, for_cycle_type, expr_l1, optional_tk_do,
// unlabelled_stmt
{
CurrentSemanticValue.stn = NewForStmt((bool)ValueStack[ValueStack.Depth-9].ob, ValueStack[ValueStack.Depth-8].id, ValueStack[ValueStack.Depth-7].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, null, CurrentLocationSpan);
}
break;
case 571: // for_stmt -> tkFor, optional_var, identifier, optional_type_specification,
// tkAssign, expr_l1, for_cycle_type, expr_l1, tkStep, expr_l1, tkDo,
// unlabelled_stmt
{
CurrentSemanticValue.stn = NewForStmt((bool)ValueStack[ValueStack.Depth-11].ob, ValueStack[ValueStack.Depth-10].id, ValueStack[ValueStack.Depth-9].td, ValueStack[ValueStack.Depth-7].ex, (for_cycle_type)ValueStack[ValueStack.Depth-6].ob, ValueStack[ValueStack.Depth-5].ex, ValueStack[ValueStack.Depth-4].ti, ValueStack[ValueStack.Depth-1].stn as statement, ValueStack[ValueStack.Depth-3].ex, CurrentLocationSpan);
}
break;
case 572: // 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 573: // inherited_message -> tkInherited
{
CurrentSemanticValue.stn = new inherited_message();
CurrentSemanticValue.stn.source_context = CurrentLocationSpan;
}
break;
case 574: // 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 575: // 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 576: // 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 577: // 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 578: // 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 579: // 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 580: // exception_handler_list -> exception_handler
{
CurrentSemanticValue.stn = new exception_handler_list(ValueStack[ValueStack.Depth-1].stn as exception_handler, CurrentLocationSpan);
}
break;
case 581: // 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 582: // exception_block_else_branch -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 583: // exception_block_else_branch -> tkElse, stmt_list
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 584: // 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 585: // exception_identifier -> exception_class_type_identifier
{
CurrentSemanticValue.stn = new exception_ident(null, (named_type_reference)ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan);
}
break;
case 586: // 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 587: // exception_class_type_identifier -> simple_type_identifier
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 588: // exception_variable -> identifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 589: // raise_stmt -> tkRaise
{
CurrentSemanticValue.stn = new raise_stmt();
CurrentSemanticValue.stn.source_context = CurrentLocationSpan;
}
break;
case 590: // raise_stmt -> tkRaise, expr
{
CurrentSemanticValue.stn = new raise_stmt(ValueStack[ValueStack.Depth-1].ex, null, CurrentLocationSpan);
}
break;
case 591: // expr_list -> expr_with_func_decl_lambda
{
CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 592: // 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 593: // expr_list_func_param -> expr_with_func_decl_lambda_ass
{
CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 594: // expr_list_func_param -> expr_list_func_param, tkComma,
// expr_with_func_decl_lambda_ass
{
CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as expression_list).Add(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 595: // expr_as_stmt -> allowable_expr_as_stmt
{
CurrentSemanticValue.stn = new expression_as_statement(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 596: // allowable_expr_as_stmt -> new_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 597: // expr_with_func_decl_lambda -> expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 598: // expr_with_func_decl_lambda -> func_decl_lambda
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 599: // expr_with_func_decl_lambda -> tkInherited
{ CurrentSemanticValue.ex = new inherited_ident("", CurrentLocationSpan); }
break;
case 600: // expr_with_func_decl_lambda_ass -> expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 601: // expr_with_func_decl_lambda_ass -> identifier, tkAssign, expr_l1
{ CurrentSemanticValue.ex = new name_assign_expr(ValueStack[ValueStack.Depth-3].id,ValueStack[ValueStack.Depth-1].ex,CurrentLocationSpan); }
break;
case 602: // expr_with_func_decl_lambda_ass -> func_decl_lambda
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 603: // expr_with_func_decl_lambda_ass -> tkInherited
{ CurrentSemanticValue.ex = new inherited_ident("", CurrentLocationSpan); }
break;
case 604: // expr -> expr_l1
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 605: // expr -> format_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 606: // expr -> expr, tkTo, expr_l1
{ CurrentSemanticValue.ex = new to_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); }
break;
case 607: // expr_l1 -> expr_dq
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 608: // expr_l1 -> question_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 609: // expr_l1 -> new_question_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 610: // expr_l1_for_question_expr -> expr_dq
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 611: // expr_l1_for_question_expr -> question_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 612: // expr_l1_for_new_question_expr -> expr_dq
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 613: // expr_l1_for_new_question_expr -> new_question_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 614: // expr_l1_func_decl_lambda -> expr_l1
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 615: // expr_l1_func_decl_lambda -> func_decl_lambda
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 616: // expr_l1_for_lambda -> expr_dq
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 617: // expr_l1_for_lambda -> question_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 618: // expr_l1_for_lambda -> func_decl_lambda
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 619: // expr_dq -> relop_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 620: // 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 621: // 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 622: // 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 623: // 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 624: // question_expr -> expr_l1_for_question_expr, tkQuestion,
// expr_l1_for_question_expr, tkColon,
// expr_l1_for_question_expr
{
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 625: // new_question_expr -> tkIf, expr_l1_for_new_question_expr, tkThen,
// expr_l1_for_new_question_expr, tkElse,
// expr_l1_for_new_question_expr
{
if (parserTools.buildTreeForFormatter)
{
CurrentSemanticValue.ex = new if_expr_new(ValueStack[ValueStack.Depth-5].ex, ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
else
{
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 626: // 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 627: // 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 628: // simple_or_template_type_reference -> simple_type_identifier
{
CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td;
}
break;
case 629: // 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 630: // 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 631: // simple_or_template_or_question_type_reference ->
// simple_or_template_type_reference
{
CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td;
}
break;
case 632: // simple_or_template_or_question_type_reference -> simple_type_question
{
CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td;
}
break;
case 633: // optional_array_initializer -> tkRoundOpen, typed_const_list, tkRoundClose
{
CurrentSemanticValue.stn = new array_const((expression_list)ValueStack[ValueStack.Depth-2].stn, CurrentLocationSpan);
}
break;
case 635: // new_expr -> tkNew, simple_or_template_type_reference,
// optional_expr_list_func_param_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 636: // 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 637: // 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.Clone() as expression).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 638: // field_in_unnamed_object -> identifier, tkAssign, expr_l1
{
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 639: // field_in_unnamed_object -> expr_l1
{
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 640: // 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 641: // 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 642: // optional_expr_list_with_bracket -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 643: // optional_expr_list_with_bracket -> tkRoundOpen, optional_expr_list,
// tkRoundClose
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; }
break;
case 644: // optional_expr_list_func_param_with_bracket -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 645: // optional_expr_list_func_param_with_bracket -> tkRoundOpen,
// optional_expr_list_func_param,
// tkRoundClose
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; }
break;
case 646: // relop_expr -> simple_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 647: // relop_expr -> relop_expr, relop, simple_expr
{
if (ValueStack[ValueStack.Depth-2].op.type == Operators.NotIn)
CurrentSemanticValue.ex = new un_expr(new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, Operators.In, CurrentLocationSpan),Operators.LogicalNOT,CurrentLocationSpan);
else
CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan);
}
break;
case 648: // relop_expr -> relop_expr, relop, new_question_expr
{
if (ValueStack[ValueStack.Depth-2].op.type == Operators.NotIn)
CurrentSemanticValue.ex = new un_expr(new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, Operators.In, CurrentLocationSpan),Operators.LogicalNOT,CurrentLocationSpan);
else
CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan);
}
break;
case 649: // 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<pattern_parameter>, isTypeCheck.type_def, null, CurrentLocationSpan);
CurrentSemanticValue.ex = new is_pattern_expr(isTypeCheck.expr, deconstructorPattern, CurrentLocationSpan);
}
break;
case 650: // pattern -> simple_or_template_type_reference, tkRoundOpen,
// pattern_out_param_list, tkRoundClose
{
CurrentSemanticValue.stn = new deconstructor_pattern(ValueStack[ValueStack.Depth-2].ob as List<pattern_parameter>, ValueStack[ValueStack.Depth-4].td, null, CurrentLocationSpan);
}
break;
case 651: // 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<pattern_parameter>, ValueStack[ValueStack.Depth-4].td, null, CurrentLocationSpan);
}
break;
case 652: // deconstruction_or_const_pattern -> 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<pattern_parameter>, ValueStack[ValueStack.Depth-4].td, null, CurrentLocationSpan);
}
break;
case 653: // deconstruction_or_const_pattern -> const_pattern_expr_list
{
CurrentSemanticValue.stn = new const_pattern(ValueStack[ValueStack.Depth-1].ob as List<syntax_tree_node>, CurrentLocationSpan);
}
break;
case 654: // const_pattern_expr_list -> const_pattern_expression
{
CurrentSemanticValue.ob = new List<syntax_tree_node>();
(CurrentSemanticValue.ob as List<syntax_tree_node>).Add(ValueStack[ValueStack.Depth-1].stn);
}
break;
case 655: // const_pattern_expr_list -> const_pattern_expr_list, tkComma,
// const_pattern_expression
{
var list = ValueStack[ValueStack.Depth-3].ob as List<syntax_tree_node>;
list.Add(ValueStack[ValueStack.Depth-1].stn);
CurrentSemanticValue.ob = list;
}
break;
case 656: // const_pattern_expression -> literal_or_number
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].ex; }
break;
case 657: // const_pattern_expression -> simple_or_template_type_reference
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].td; }
break;
case 658: // const_pattern_expression -> tkNil
{
CurrentSemanticValue.stn = new nil_const();
CurrentSemanticValue.stn.source_context = CurrentLocationSpan;
}
break;
case 659: // const_pattern_expression -> sizeof_expr
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].ex; }
break;
case 660: // const_pattern_expression -> typeof_expr
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].ex; }
break;
case 661: // collection_pattern -> tkSquareOpen, collection_pattern_expr_list, tkSquareClose
{
CurrentSemanticValue.stn = new collection_pattern(ValueStack[ValueStack.Depth-2].ob as List<pattern_parameter>, CurrentLocationSpan);
}
break;
case 662: // collection_pattern_expr_list -> collection_pattern_list_item
{
CurrentSemanticValue.ob = new List<pattern_parameter>();
(CurrentSemanticValue.ob as List<pattern_parameter>).Add(ValueStack[ValueStack.Depth-1].stn as pattern_parameter);
}
break;
case 663: // collection_pattern_expr_list -> collection_pattern_expr_list, tkComma,
// collection_pattern_list_item
{
var list = ValueStack[ValueStack.Depth-3].ob as List<pattern_parameter>;
list.Add(ValueStack[ValueStack.Depth-1].stn as pattern_parameter);
CurrentSemanticValue.ob = list;
}
break;
case 664: // collection_pattern_list_item -> literal_or_number
{
CurrentSemanticValue.stn = new const_pattern_parameter(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 665: // collection_pattern_list_item -> collection_pattern_var_item
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
}
break;
case 666: // collection_pattern_list_item -> tkUnderscore
{
CurrentSemanticValue.stn = new collection_pattern_wild_card(CurrentLocationSpan);
}
break;
case 667: // collection_pattern_list_item -> pattern_optional_var
{
CurrentSemanticValue.stn = new recursive_deconstructor_parameter(ValueStack[ValueStack.Depth-1].stn as pattern_node, CurrentLocationSpan);
}
break;
case 668: // collection_pattern_list_item -> collection_pattern
{
CurrentSemanticValue.stn = new recursive_collection_parameter(ValueStack[ValueStack.Depth-1].stn as pattern_node, CurrentLocationSpan);
}
break;
case 669: // collection_pattern_list_item -> tuple_pattern
{
CurrentSemanticValue.stn = new recursive_tuple_parameter(ValueStack[ValueStack.Depth-1].stn as pattern_node, CurrentLocationSpan);
}
break;
case 670: // collection_pattern_list_item -> tkDotDot
{
CurrentSemanticValue.stn = new collection_pattern_gap_parameter(CurrentLocationSpan);
}
break;
case 671: // collection_pattern_var_item -> tkVar, identifier
{
CurrentSemanticValue.stn = new collection_pattern_var_parameter(ValueStack[ValueStack.Depth-1].id, null, CurrentLocationSpan);
}
break;
case 672: // tuple_pattern -> tkRoundOpen, tuple_pattern_item_list, tkRoundClose
{
if ((ValueStack[ValueStack.Depth-2].ob as List<pattern_parameter>).Count>6)
parserTools.AddErrorFromResource("TUPLE_ELEMENTS_COUNT_MUST_BE_LESSEQUAL_7",CurrentLocationSpan);
CurrentSemanticValue.stn = new tuple_pattern(ValueStack[ValueStack.Depth-2].ob as List<pattern_parameter>, CurrentLocationSpan);
}
break;
case 673: // tuple_pattern_item -> tkUnderscore
{
CurrentSemanticValue.stn = new tuple_pattern_wild_card(CurrentLocationSpan);
}
break;
case 674: // tuple_pattern_item -> literal_or_number
{
CurrentSemanticValue.stn = new const_pattern_parameter(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 675: // tuple_pattern_item -> sign, literal_or_number
{
CurrentSemanticValue.stn = new const_pattern_parameter(new un_expr(ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan), CurrentLocationSpan);
}
break;
case 676: // tuple_pattern_item -> tkVar, identifier
{
CurrentSemanticValue.stn = new tuple_pattern_var_parameter(ValueStack[ValueStack.Depth-1].id, null, CurrentLocationSpan);
}
break;
case 677: // tuple_pattern_item -> pattern_optional_var
{
CurrentSemanticValue.stn = new recursive_deconstructor_parameter(ValueStack[ValueStack.Depth-1].stn as pattern_node, CurrentLocationSpan);
}
break;
case 678: // tuple_pattern_item -> collection_pattern
{
CurrentSemanticValue.stn = new recursive_collection_parameter(ValueStack[ValueStack.Depth-1].stn as pattern_node, CurrentLocationSpan);
}
break;
case 679: // tuple_pattern_item -> tuple_pattern
{
CurrentSemanticValue.stn = new recursive_tuple_parameter(ValueStack[ValueStack.Depth-1].stn as pattern_node, CurrentLocationSpan);
}
break;
case 680: // tuple_pattern_item_list -> tuple_pattern_item
{
CurrentSemanticValue.ob = new List<pattern_parameter>();
(CurrentSemanticValue.ob as List<pattern_parameter>).Add(ValueStack[ValueStack.Depth-1].stn as pattern_parameter);
}
break;
case 681: // tuple_pattern_item_list -> tuple_pattern_item_list, tkComma, tuple_pattern_item
{
var list = ValueStack[ValueStack.Depth-3].ob as List<pattern_parameter>;
list.Add(ValueStack[ValueStack.Depth-1].stn as pattern_parameter);
CurrentSemanticValue.ob = list;
}
break;
case 682: // pattern_out_param_list_optional_var -> pattern_out_param_optional_var
{
CurrentSemanticValue.ob = new List<pattern_parameter>();
(CurrentSemanticValue.ob as List<pattern_parameter>).Add(ValueStack[ValueStack.Depth-1].stn as pattern_parameter);
}
break;
case 683: // 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<pattern_parameter>;
list.Add(ValueStack[ValueStack.Depth-1].stn as pattern_parameter);
CurrentSemanticValue.ob = list;
}
break;
case 684: // 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<pattern_parameter>;
list.Add(ValueStack[ValueStack.Depth-1].stn as pattern_parameter);
CurrentSemanticValue.ob = list;
}
break;
case 685: // pattern_out_param_list -> pattern_out_param
{
CurrentSemanticValue.ob = new List<pattern_parameter>();
(CurrentSemanticValue.ob as List<pattern_parameter>).Add(ValueStack[ValueStack.Depth-1].stn as pattern_parameter);
}
break;
case 686: // pattern_out_param_list -> pattern_out_param_list, tkSemiColon,
// pattern_out_param
{
var list = ValueStack[ValueStack.Depth-3].ob as List<pattern_parameter>;
list.Add(ValueStack[ValueStack.Depth-1].stn as pattern_parameter);
CurrentSemanticValue.ob = list;
}
break;
case 687: // pattern_out_param_list -> pattern_out_param_list, tkComma, pattern_out_param
{
var list = ValueStack[ValueStack.Depth-3].ob as List<pattern_parameter>;
list.Add(ValueStack[ValueStack.Depth-1].stn as pattern_parameter);
CurrentSemanticValue.ob = list;
}
break;
case 688: // pattern_out_param -> tkUnderscore
{
CurrentSemanticValue.stn = new wild_card_deconstructor_parameter(CurrentLocationSpan);
}
break;
case 689: // pattern_out_param -> literal_or_number
{
CurrentSemanticValue.stn = new const_pattern_parameter(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 690: // 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 691: // pattern_out_param -> tkVar, identifier
{
CurrentSemanticValue.stn = new var_deconstructor_parameter(ValueStack[ValueStack.Depth-1].id, null, true, CurrentLocationSpan);
}
break;
case 692: // pattern_out_param -> pattern
{
CurrentSemanticValue.stn = new recursive_deconstructor_parameter(ValueStack[ValueStack.Depth-1].stn as pattern_node, CurrentLocationSpan);
}
break;
case 693: // pattern_out_param -> collection_pattern
{
CurrentSemanticValue.stn = new recursive_collection_parameter(ValueStack[ValueStack.Depth-1].stn as pattern_node, CurrentLocationSpan);
}
break;
case 694: // pattern_out_param -> tuple_pattern
{
CurrentSemanticValue.stn = new recursive_tuple_parameter(ValueStack[ValueStack.Depth-1].stn as pattern_node, CurrentLocationSpan);
}
break;
case 695: // pattern_out_param_optional_var -> tkUnderscore
{
CurrentSemanticValue.stn = new wild_card_deconstructor_parameter(CurrentLocationSpan);
}
break;
case 696: // pattern_out_param_optional_var -> literal_or_number
{
CurrentSemanticValue.stn = new const_pattern_parameter(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 697: // pattern_out_param_optional_var -> sign, literal_or_number
{
CurrentSemanticValue.stn = new const_pattern_parameter(new un_expr(ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan), CurrentLocationSpan);
}
break;
case 698: // 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 699: // pattern_out_param_optional_var -> identifier
{
CurrentSemanticValue.stn = new var_deconstructor_parameter(ValueStack[ValueStack.Depth-1].id, null, false, CurrentLocationSpan);
}
break;
case 700: // 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 701: // pattern_out_param_optional_var -> tkVar, identifier
{
CurrentSemanticValue.stn = new var_deconstructor_parameter(ValueStack[ValueStack.Depth-1].id, null, true, CurrentLocationSpan);
}
break;
case 702: // 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 703: // pattern_out_param_optional_var -> collection_pattern
{
CurrentSemanticValue.stn = new recursive_collection_parameter(ValueStack[ValueStack.Depth-1].stn as pattern_node, CurrentLocationSpan);
}
break;
case 704: // pattern_out_param_optional_var -> tuple_pattern
{
CurrentSemanticValue.stn = new recursive_tuple_parameter(ValueStack[ValueStack.Depth-1].stn as pattern_node, CurrentLocationSpan);
}
break;
case 705: // simple_expr_or_nothing -> simple_expr
{
CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex;
}
break;
case 706: // simple_expr_or_nothing -> /* empty */
{
CurrentSemanticValue.ex = null;
}
break;
case 707: // const_expr_or_nothing -> const_expr
{
CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex;
}
break;
case 708: // const_expr_or_nothing -> /* empty */
{
CurrentSemanticValue.ex = null;
}
break;
case 709: // 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 710: // format_expr -> tkColon, simple_expr_or_nothing
{
CurrentSemanticValue.ex = new format_expr(null, ValueStack[ValueStack.Depth-1].ex, null, CurrentLocationSpan);
}
break;
case 711: // 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 712: // 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 713: // 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 714: // format_const_expr -> tkColon, const_expr_or_nothing
{
CurrentSemanticValue.ex = new format_expr(null, ValueStack[ValueStack.Depth-1].ex, null, CurrentLocationSpan);
}
break;
case 715: // 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 716: // 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 717: // relop -> tkEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 718: // relop -> tkNotEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 719: // relop -> tkLower
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 720: // relop -> tkGreater
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 721: // relop -> tkLowerEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 722: // relop -> tkGreaterEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 723: // relop -> tkIn
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 724: // relop -> tkNot, tkIn
{
if (parserTools.buildTreeForFormatter)
CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op;
else
{
CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op;
CurrentSemanticValue.op.type = Operators.NotIn;
}
}
break;
case 725: // simple_expr -> term1
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 726: // simple_expr -> simple_expr, tkDotDot, term1
{
if (parserTools.buildTreeForFormatter)
CurrentSemanticValue.ex = new diapason_expr(ValueStack[ValueStack.Depth-3].ex,ValueStack[ValueStack.Depth-1].ex,CurrentLocationSpan);
else
CurrentSemanticValue.ex = new diapason_expr_new(ValueStack[ValueStack.Depth-3].ex,ValueStack[ValueStack.Depth-1].ex,CurrentLocationSpan);
}
break;
case 727: // term1 -> term
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 728: // term1 -> term1, 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 729: // term1 -> term1, addop, new_question_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 730: // addop -> tkPlus
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 731: // addop -> tkMinus
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 732: // addop -> tkOr
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 733: // addop -> tkXor
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 734: // addop -> tkCSharpStyleOr
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 735: // typecast_op -> tkAs
{
CurrentSemanticValue.ob = op_typecast.as_op;
}
break;
case 736: // typecast_op -> tkIs
{
CurrentSemanticValue.ob = op_typecast.is_op;
}
break;
case 737: // as_is_expr -> is_type_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 738: // as_is_expr -> as_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 739: // 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 740: // as_expr -> term, tkAs, array_type
{
CurrentSemanticValue.ex = NewAsIsExpr(ValueStack[ValueStack.Depth-3].ex, op_typecast.as_op, ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan);
}
break;
case 741: // 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 742: // is_type_expr -> term, tkIs, array_type
{
CurrentSemanticValue.ex = NewAsIsExpr(ValueStack[ValueStack.Depth-3].ex, op_typecast.is_op, ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan);
}
break;
case 743: // power_expr -> factor_without_unary_op, 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 744: // power_expr -> factor_without_unary_op, tkStarStar, 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 745: // power_expr -> sign, power_expr
{ CurrentSemanticValue.ex = new un_expr(ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); }
break;
case 746: // term -> factor
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 747: // term -> new_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 748: // term -> power_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 749: // 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 750: // 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 751: // term -> term, mulop, new_question_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 752: // term -> as_is_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 753: // mulop -> tkStar
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 754: // mulop -> tkSlash
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 755: // mulop -> tkDiv
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 756: // mulop -> tkMod
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 757: // mulop -> tkShl
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 758: // mulop -> tkShr
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 759: // mulop -> tkAnd
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 760: // default_expr -> tkDefault, tkRoundOpen,
// simple_or_template_or_question_type_reference, tkRoundClose
{
CurrentSemanticValue.ex = new default_operator(ValueStack[ValueStack.Depth-2].td as named_type_reference, CurrentLocationSpan);
}
break;
case 761: // tuple -> tkRoundOpen, expr_l1_or_unpacked, tkComma, expr_l1_or_unpacked_list,
// lambda_type_ref, optional_full_lambda_fp_list, tkRoundClose
{
if (ValueStack[ValueStack.Depth-6].ex is unpacked_list_of_ident_or_list)
parserTools.AddErrorFromResource("EXPRESSION_EXPECTED",LocationStack[LocationStack.Depth-6]);
foreach (var ex in (ValueStack[ValueStack.Depth-4].stn as expression_list).expressions)
if (ex is unpacked_list_of_ident_or_list)
parserTools.AddErrorFromResource("EXPRESSION_EXPECTED",ex.source_context);
if (!(ValueStack[ValueStack.Depth-3].td is lambda_inferred_type))
parserTools.AddErrorFromResource("BAD_TUPLE",LocationStack[LocationStack.Depth-3]);
if (ValueStack[ValueStack.Depth-2].stn != null)
parserTools.AddErrorFromResource("BAD_TUPLE",LocationStack[LocationStack.Depth-2]);
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 762: // factor_without_unary_op -> literal_or_number
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 763: // factor_without_unary_op -> var_reference
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 764: // factor -> tkNil
{
CurrentSemanticValue.ex = new nil_const();
CurrentSemanticValue.ex.source_context = CurrentLocationSpan;
}
break;
case 765: // factor -> literal_or_number
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 766: // factor -> default_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 767: // factor -> tkNot, factor
{
CurrentSemanticValue.ex = new un_expr(ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan);
}
break;
case 768: // 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;
}
// можно сдела<D0BB>?<3F>? в<>?<3F>?исление конс<D0BD>?ан<D0B0>?<3F>? с вмон<D0BE><>?ованн<D0BD>?м мин<D0B8>?сом
}
CurrentSemanticValue.ex = new un_expr(ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan);
}
break;
case 769: // factor -> tkDeref, factor
{
CurrentSemanticValue.ex = new index(ValueStack[ValueStack.Depth-1].ex, true, CurrentLocationSpan);
}
break;
case 770: // factor -> var_reference
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 771: // factor -> tuple
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 772: // literal_or_number -> literal
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 773: // literal_or_number -> unsigned_number
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 774: // 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 775: // 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 776: // 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 777: // var_reference -> variable
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 778: // var_reference -> var_question_point
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 779: // var_reference -> tkRoundOpen, tkVar, identifier, tkAssign, expr_dq,
// tkRoundClose
{ CurrentSemanticValue.ex = new let_var_expr(ValueStack[ValueStack.Depth-4].id,ValueStack[ValueStack.Depth-2].ex,CurrentLocationSpan); }
break;
case 780: // var_address -> tkAddressOf
{
CurrentSemanticValue.stn = NewVarAddress(CurrentLocationSpan);
}
break;
case 781: // var_address -> var_address, tkAddressOf
{
CurrentSemanticValue.stn = NewVarAddress(ValueStack[ValueStack.Depth-2].stn as get_address, CurrentLocationSpan);
}
break;
case 782: // 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 783: // 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 784: // dotted_identifier -> identifier
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].id; }
break;
case 785: // dotted_identifier -> dotted_identifier, tkPoint, identifier_or_keyword
{
if (ValueStack[ValueStack.Depth-3].ex is index)
parserTools.AddErrorFromResource("UNEXPECTED_SYMBOL{0}", LocationStack[LocationStack.Depth-3], "^");
CurrentSemanticValue.ex = new dot_node(ValueStack[ValueStack.Depth-3].ex as addressed_value, ValueStack[ValueStack.Depth-1].id as addressed_value, CurrentLocationSpan);
}
break;
case 786: // variable_as_type -> dotted_identifier
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex;}
break;
case 787: // 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 788: // var_with_init_for_expr_with_let -> tkVar, identifier, tkAssign, expr,
// tkSemiColon
{
CurrentSemanticValue.stn = new assign(ValueStack[ValueStack.Depth-4].id as addressed_value, ValueStack[ValueStack.Depth-2].ex, Operators.Assignment, CurrentLocationSpan);
}
break;
case 789: // var_with_init_for_expr_with_let_list -> var_with_init_for_expr_with_let
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 790: // var_with_init_for_expr_with_let_list -> var_with_init_for_expr_with_let_list,
// var_with_init_for_expr_with_let
{
ValueStack[ValueStack.Depth-2].stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn;
}
break;
case 791: // proc_func_call -> variable, tkRoundOpen, optional_expr_list_func_param,
// tkRoundClose
{
if (ValueStack[ValueStack.Depth-4].ex is index)
parserTools.AddErrorFromResource("UNEXPECTED_SYMBOL{0}", LocationStack[LocationStack.Depth-4], "^");
CurrentSemanticValue.ex = new method_call(ValueStack[ValueStack.Depth-4].ex as addressed_value,ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan);
}
break;
case 792: // variable -> identifier
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].id; }
break;
case 793: // variable -> operator_name_ident
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 794: // variable -> tkInherited, identifier
{
CurrentSemanticValue.ex = new inherited_ident(ValueStack[ValueStack.Depth-1].id.name, CurrentLocationSpan);
}
break;
case 795: // variable -> tkRoundOpen, expr, tkRoundClose
{
if (!parserTools.buildTreeForFormatter)
{
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 796: // variable -> tkRoundOpen, var_with_init_for_expr_with_let_list, expr,
// tkRoundClose
{
if (!parserTools.buildTreeForFormatter)
{
ValueStack[ValueStack.Depth-2].ex.source_context = CurrentLocationSpan;
CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-2].ex;
}
else CurrentSemanticValue.ex = new expression_with_let(ValueStack[ValueStack.Depth-3].stn as statement_list, ValueStack[ValueStack.Depth-3].stn as expression, CurrentLocationSpan);
}
break;
case 797: // variable -> sizeof_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 798: // variable -> typeof_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 799: // variable -> literal_or_number, tkPoint, identifier_or_keyword
{
if (ValueStack[ValueStack.Depth-3].ex is index)
parserTools.AddErrorFromResource("UNEXPECTED_SYMBOL{0}", LocationStack[LocationStack.Depth-3], "^");
CurrentSemanticValue.ex = new dot_node(ValueStack[ValueStack.Depth-3].ex as addressed_value, ValueStack[ValueStack.Depth-1].id as addressed_value, CurrentLocationSpan);
}
break;
case 800: // variable -> variable, tkSquareOpen, expr_list, tkSquareClose
{
CurrentSemanticValue.ex = NewIndexerOrSlice(ValueStack[ValueStack.Depth-4].ex as addressed_value,ValueStack[ValueStack.Depth-2].stn as expression_list,CurrentLocationSpan);
}
break;
case 801: // variable -> literal_or_number, tkSquareOpen, expr_list, tkSquareClose
{
CurrentSemanticValue.ex = NewIndexerOrSlice(ValueStack[ValueStack.Depth-4].ex as addressed_value,ValueStack[ValueStack.Depth-2].stn as expression_list,CurrentLocationSpan);
/*var el = $3 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.buildTreeForFormatter)
{
if (fe.expr == null)
fe.expr = new int32_const(int.MaxValue,@3);
if (fe.format1 == null)
fe.format1 = new int32_const(int.MaxValue,@3);
}
$$ = new slice_expr($1 as addressed_value,fe.expr,fe.format1,fe.format2,@$);
}
// многоме<D0BC><>?е с<>?ез<D0B5>?
else if (el.expressions.Any(e => e is format_expr))
{
if (el.expressions.Count > 4)
parserTools.AddErrorFromResource("SLICES_OF MULTIDIMENSIONAL_ARRAYS_ALLOW_ONLY_FOR_RANK_LT_5",@$); // С<>?ез<D0B5>? многоме<D0BC><>?<3F>? массивов <20>?аз<D0B0>?е<>?ен<D0B5>? <20>?ол<D0BE>?ко для массивов <20>?азме<D0BC>ос<D0BE>?и < 5
var ll = new List<Tuple<expression, expression, expression>>();
foreach (var ex in el.expressions)
{
if (ex is format_expr fe)
{
if (fe.expr == null)
fe.expr = new int32_const(int.MaxValue, fe.source_context);
if (fe.format1 == null)
fe.format1 = new int32_const(int.MaxValue, fe.source_context);
if (fe.format2 == null)
fe.format2 = new int32_const(1, fe.source_context);
ll.Add(Tuple.Create(fe.expr, fe.format1, fe.format2));
}
else
{
ll.Add(Tuple.Create(ex, (expression)new int32_const(0, ex.source_context), (expression)new int32_const(int.MaxValue, ex.source_context))); // скаля<D0BB>?ное зна<D0BD>?ение вмес<D0B5>?о с<>?еза
}
}
var sle = new slice_expr($1 as addressed_value,null,null,null,@$);
sle.slices = ll;
$$ = sle;
}
else $$ = new indexer($1 as addressed_value, el, @$);*/
}
break;
case 802: // variable -> variable, tkQuestionSquareOpen, format_expr, tkSquareClose
{
var fe = ValueStack[ValueStack.Depth-2].ex as format_expr; // SSM 9/01/17
if (!parserTools.buildTreeForFormatter)
{
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 803: // variable -> literal_or_number, tkQuestionSquareOpen, format_expr, tkSquareClose
{
var fe = ValueStack[ValueStack.Depth-2].ex as format_expr; // SSM 9/01/17
if (!parserTools.buildTreeForFormatter)
{
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 804: // variable -> tkVertParen, elem_list, tkVertParen
{
CurrentSemanticValue.ex = new array_const_new(ValueStack[ValueStack.Depth-2].stn as expression_list, '|', CurrentLocationSpan);
}
break;
case 805: // variable -> pascal_set_const
{
CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex;
}
break;
case 806: // variable -> proc_func_call
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 807: // variable -> variable, tkPoint, identifier_keyword_operatorname
{
if (ValueStack[ValueStack.Depth-3].ex is index)
parserTools.AddErrorFromResource("UNEXPECTED_SYMBOL{0}", LocationStack[LocationStack.Depth-3], "^");
CurrentSemanticValue.ex = new dot_node(ValueStack[ValueStack.Depth-3].ex as addressed_value, ValueStack[ValueStack.Depth-1].id as addressed_value, CurrentLocationSpan);
}
break;
case 808: // 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 809: // variable -> variable, tkDeref
{
CurrentSemanticValue.ex = new roof_dereference(ValueStack[ValueStack.Depth-2].ex as addressed_value,CurrentLocationSpan);
}
break;
case 810: // 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 811: // optional_expr_list -> expr_list
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 812: // optional_expr_list -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 813: // optional_expr_list_func_param -> expr_list_func_param
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 814: // optional_expr_list_func_param -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 815: // elem_list -> elem_list1
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 816: // elem_list -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 817: // elem_list1 -> elem
{
CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 818: // 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 819: // elem -> expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 820: // elem -> expr, tkDotDot, expr
{ CurrentSemanticValue.ex = new diapason_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); }
break;
case 821: // one_literal -> tkStringLiteral
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].stn as literal; }
break;
case 822: // one_literal -> tkAsciiChar
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].stn as literal; }
break;
case 823: // literal -> literal_list
{
CurrentSemanticValue.ex = NewLiteral(ValueStack[ValueStack.Depth-1].stn as literal_const_line);
}
break;
case 824: // literal -> tkFormatStringLiteral
{
if (parserTools.buildTreeForFormatter)
{
CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].stn as string_const;
}
else
{
CurrentSemanticValue.ex = NewFormatString(ValueStack[ValueStack.Depth-1].stn as string_const);
}
}
break;
case 825: // literal -> tkMultilineStringLiteral
{
if (parserTools.buildTreeForFormatter)
{
var sc = ValueStack[ValueStack.Depth-1].stn as string_const;
sc.IsMultiline = true;
CurrentSemanticValue.ex = sc;
}
else
{
CurrentSemanticValue.ex = NewLiteral(new literal_const_line(ValueStack[ValueStack.Depth-1].stn as literal, CurrentLocationSpan));
}
}
break;
case 826: // literal_list -> one_literal
{
CurrentSemanticValue.stn = new literal_const_line(ValueStack[ValueStack.Depth-1].ex as literal, CurrentLocationSpan);
}
break;
case 827: // 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 828: // 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 829: // optional_method_modificators -> tkSemiColon
{
CurrentSemanticValue.stn = new procedure_attributes_list(new List<procedure_attribute>(),CurrentLocationSpan);
}
break;
case 830: // 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 831: // optional_method_modificators1 -> /* empty */
{
CurrentSemanticValue.stn = new procedure_attributes_list(new List<procedure_attribute>(),CurrentLocationSpan);
}
break;
case 832: // 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 833: // meth_modificators -> meth_modificator
{
CurrentSemanticValue.stn = new procedure_attributes_list(ValueStack[ValueStack.Depth-1].id as procedure_attribute, CurrentLocationSpan);
}
break;
case 834: // 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 835: // identifier -> tkIdentifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 836: // identifier -> property_specifier_directives
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 837: // identifier -> non_reserved
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 838: // identifier -> tkStep
{ CurrentSemanticValue.id = new ident(ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan); }
break;
case 839: // identifier -> tkIndex
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 840: // identifier_or_keyword -> identifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 841: // identifier_or_keyword -> keyword
{ CurrentSemanticValue.id = new ident(ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan); }
break;
case 842: // identifier_or_keyword -> reserved_keyword
{ CurrentSemanticValue.id = new ident(ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan); }
break;
case 843: // identifier_keyword_operatorname -> identifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 844: // identifier_keyword_operatorname -> keyword
{ CurrentSemanticValue.id = new ident(ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan); }
break;
case 845: // identifier_keyword_operatorname -> operator_name_ident
{ CurrentSemanticValue.id = (ident)ValueStack[ValueStack.Depth-1].ex; }
break;
case 846: // meth_modificator -> tkAbstract
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 847: // 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 848: // meth_modificator -> tkReintroduce
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 849: // meth_modificator -> tkOverride
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 850: // meth_modificator -> tkExtensionMethod
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 851: // meth_modificator -> tkVirtual
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 852: // property_modificator -> tkVirtual
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 853: // property_modificator -> tkOverride
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 854: // property_modificator -> tkAbstract
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 855: // property_modificator -> tkReintroduce
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 856: // property_specifier_directives -> tkRead
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 857: // property_specifier_directives -> tkWrite
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 858: // non_reserved -> tkName
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 859: // non_reserved -> tkNew
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 860: // visibility_specifier -> tkInternal
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 861: // visibility_specifier -> tkPublic
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 862: // visibility_specifier -> tkProtected
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 863: // visibility_specifier -> tkPrivate
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 864: // keyword -> visibility_specifier
{
CurrentSemanticValue.ti = new token_info(ValueStack[ValueStack.Depth-1].id.name, CurrentLocationSpan);
}
break;
case 865: // keyword -> tkSealed
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 866: // keyword -> tkTemplate
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 867: // keyword -> tkOr
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 868: // keyword -> tkTypeOf
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 869: // keyword -> tkSizeOf
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 870: // keyword -> tkDefault
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 871: // keyword -> tkWhere
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 872: // keyword -> tkXor
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 873: // keyword -> tkAnd
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 874: // keyword -> tkDiv
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 875: // keyword -> tkMod
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 876: // keyword -> tkShl
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 877: // keyword -> tkShr
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 878: // keyword -> tkNot
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 879: // keyword -> tkAs
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 880: // keyword -> tkIn
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 881: // keyword -> tkIs
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 882: // keyword -> tkArray
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 883: // keyword -> tkSequence
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 884: // keyword -> tkBegin
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 885: // keyword -> tkCase
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 886: // keyword -> tkClass
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 887: // keyword -> tkConst
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 888: // keyword -> tkConstructor
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 889: // keyword -> tkDestructor
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 890: // keyword -> tkDownto
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 891: // keyword -> tkDo
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 892: // keyword -> tkElse
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 893: // keyword -> tkEnd
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 894: // keyword -> tkExcept
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 895: // keyword -> tkFile
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 896: // keyword -> tkAuto
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 897: // keyword -> tkFinalization
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 898: // keyword -> tkFinally
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 899: // keyword -> tkFor
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 900: // keyword -> tkForeach
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 901: // keyword -> tkFunction
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 902: // keyword -> tkIf
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 903: // keyword -> tkImplementation
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 904: // keyword -> tkInherited
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 905: // keyword -> tkInitialization
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 906: // keyword -> tkInterface
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 907: // keyword -> tkProcedure
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 908: // keyword -> tkProperty
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 909: // keyword -> tkRaise
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 910: // keyword -> tkRecord
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 911: // keyword -> tkRepeat
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 912: // keyword -> tkSet
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 913: // keyword -> tkTry
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 914: // keyword -> tkType
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 915: // keyword -> tkStatic
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 916: // keyword -> tkThen
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 917: // keyword -> tkTo
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 918: // keyword -> tkUntil
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 919: // keyword -> tkUses
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 920: // keyword -> tkVar
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 921: // keyword -> tkWhile
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 922: // keyword -> tkWith
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 923: // keyword -> tkNil
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 924: // keyword -> tkGoto
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 925: // keyword -> tkOf
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 926: // keyword -> tkLabel
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 927: // keyword -> tkProgram
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 928: // keyword -> tkUnit
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 929: // keyword -> tkLibrary
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 930: // keyword -> tkNamespace
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 931: // keyword -> tkExternal
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 932: // keyword -> tkParams
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 933: // keyword -> tkEvent
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 934: // keyword -> tkYield
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 935: // keyword -> tkMatch
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 936: // keyword -> tkWhen
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 937: // keyword -> tkPartial
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 938: // keyword -> tkAbstract
{ CurrentSemanticValue.ti = new token_info(ValueStack[ValueStack.Depth-1].id.name, CurrentLocationSpan); }
break;
case 939: // keyword -> tkLock
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 940: // keyword -> tkImplicit
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 941: // keyword -> tkExplicit
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 942: // keyword -> tkOn
{ CurrentSemanticValue.ti = new token_info(ValueStack[ValueStack.Depth-1].id.name, CurrentLocationSpan); }
break;
case 943: // keyword -> tkVirtual
{ CurrentSemanticValue.ti = new token_info(ValueStack[ValueStack.Depth-1].id.name, CurrentLocationSpan); }
break;
case 944: // keyword -> tkOverride
{ CurrentSemanticValue.ti = new token_info(ValueStack[ValueStack.Depth-1].id.name, CurrentLocationSpan); }
break;
case 945: // keyword -> tkLoop
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 946: // keyword -> tkExtensionMethod
{ CurrentSemanticValue.ti = new token_info(ValueStack[ValueStack.Depth-1].id.name, CurrentLocationSpan); }
break;
case 947: // keyword -> tkOverload
{ CurrentSemanticValue.ti = new token_info(ValueStack[ValueStack.Depth-1].id.name, CurrentLocationSpan); }
break;
case 948: // keyword -> tkReintroduce
{ CurrentSemanticValue.ti = new token_info(ValueStack[ValueStack.Depth-1].id.name, CurrentLocationSpan); }
break;
case 949: // keyword -> tkForward
{ CurrentSemanticValue.ti = new token_info(ValueStack[ValueStack.Depth-1].id.name, CurrentLocationSpan); }
break;
case 950: // reserved_keyword -> tkOperator
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 951: // overload_operator -> tkMinus
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 952: // overload_operator -> tkPlus
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 953: // overload_operator -> tkSlash
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 954: // overload_operator -> tkStar
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 955: // overload_operator -> tkEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 956: // overload_operator -> tkGreater
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 957: // overload_operator -> tkGreaterEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 958: // overload_operator -> tkLower
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 959: // overload_operator -> tkLowerEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 960: // overload_operator -> tkNotEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 961: // overload_operator -> tkOr
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 962: // overload_operator -> tkXor
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 963: // overload_operator -> tkAnd
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 964: // overload_operator -> tkDiv
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 965: // overload_operator -> tkMod
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 966: // overload_operator -> tkShl
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 967: // overload_operator -> tkShr
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 968: // overload_operator -> tkNot
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 969: // overload_operator -> tkIn
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 970: // overload_operator -> tkImplicit
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 971: // overload_operator -> tkExplicit
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 972: // overload_operator -> assign_operator
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 973: // overload_operator -> tkStarStar
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 974: // assign_operator -> tkAssign
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 975: // assign_operator -> tkPlusEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 976: // assign_operator -> tkMinusEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 977: // assign_operator -> tkMultEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 978: // assign_operator -> tkDivEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 979: // lambda_unpacked_params -> tkBackSlashRoundOpen,
// lambda_list_of_unpacked_params_or_id, tkComma,
// lambda_unpacked_params_or_id, tkRoundClose
{
// <20>?ез<D0B5><>?<3F>?а<>? надо п<>свои<D0BE>?<3F>? каком<D0BE>? <20>?о са<D181>?а<>ом<D0BE>? пол<D0BE>? в function_lambda_definition
(ValueStack[ValueStack.Depth-4].ob as unpacked_list_of_ident_or_list).Add(ValueStack[ValueStack.Depth-2].ob as ident_or_list);
CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-4].ob as unpacked_list_of_ident_or_list;
}
break;
case 980: // lambda_unpacked_params_or_id -> lambda_unpacked_params
{
CurrentSemanticValue.ob = new ident_or_list(ValueStack[ValueStack.Depth-1].ex as unpacked_list_of_ident_or_list);
}
break;
case 981: // lambda_unpacked_params_or_id -> identifier
{
CurrentSemanticValue.ob = new ident_or_list(ValueStack[ValueStack.Depth-1].id as ident);
}
break;
case 982: // lambda_list_of_unpacked_params_or_id -> lambda_unpacked_params_or_id
{
CurrentSemanticValue.ob = new unpacked_list_of_ident_or_list();
(CurrentSemanticValue.ob as unpacked_list_of_ident_or_list).Add(ValueStack[ValueStack.Depth-1].ob as ident_or_list);
(CurrentSemanticValue.ob as unpacked_list_of_ident_or_list).source_context = LocationStack[LocationStack.Depth-1];
}
break;
case 983: // lambda_list_of_unpacked_params_or_id -> lambda_list_of_unpacked_params_or_id,
// tkComma, lambda_unpacked_params_or_id
{
CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-3].ob;
(CurrentSemanticValue.ob as unpacked_list_of_ident_or_list).Add(ValueStack[ValueStack.Depth-1].ob as ident_or_list);
(CurrentSemanticValue.ob as unpacked_list_of_ident_or_list).source_context = LexLocation.MergeAll(LocationStack[LocationStack.Depth-3],LocationStack[LocationStack.Depth-1]);
}
break;
case 984: // expr_l1_or_unpacked -> expr_l1
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 985: // expr_l1_or_unpacked -> lambda_unpacked_params
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 986: // expr_l1_or_unpacked_list -> expr_l1_or_unpacked
{
CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 987: // expr_l1_or_unpacked_list -> expr_l1_or_unpacked_list, tkComma,
// expr_l1_or_unpacked
{
CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as expression_list).Add(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 988: // 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 lambda_any_type_node_syntax(), LocationStack[LocationStack.Depth-3]), parametr_kind.none, null, LocationStack[LocationStack.Depth-3]), LocationStack[LocationStack.Depth-3]);
//var sl = $3 as statement_list;
//if (sl.expr_lambda_body || SyntaxVisitors.HasNameVisitor.HasName($3, "Result") != null) // если э<>?о б<>?ло в<>?<3F>?ажение или ес<D0B5>?<3F>? пе<D0BF>?еменная Result, <20>?о ав<D0B0>?ов<D0BE>?вод <20>?ипа
CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, new lambda_inferred_type(new lambda_any_type_node_syntax(), LocationStack[LocationStack.Depth-3]), ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan);
//else
//$$ = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, null, $3 as statement_list, @$);
}
break;
case 989: // func_decl_lambda -> tkRoundOpen, tkRoundClose, lambda_type_ref_noproctype,
// tkArrow, lambda_function_body
{
// <20>ес<D0B5>? надо анализи<D0B7>?ова<D0B2>?<3F>? по <20>?ел<D0B5>? и либо ос<D0BE>?авля<D0BB>?<3F>? lambda_inferred_type, либо дела<D0BB>?<3F>? его null!
var sl = ValueStack[ValueStack.Depth-1].stn as statement_list;
if (sl.expr_lambda_body || SyntaxVisitors.HasNameVisitor.HasName(sl, "result") != null) // <20>?о надо в<>оди<D0B4>?<3F>?
CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), null, ValueStack[ValueStack.Depth-3].td, sl, CurrentLocationSpan);
else CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), null, null, sl, CurrentLocationSpan);
}
break;
case 990: // 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);
var sl = ValueStack[ValueStack.Depth-1].stn as statement_list;
if (sl.expr_lambda_body || SyntaxVisitors.HasNameVisitor.HasName(sl, "result") != null) // <20>?о надо в<>оди<D0B4>?<3F>?
CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, ValueStack[ValueStack.Depth-3].td, sl, CurrentLocationSpan);
else CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, null, sl, CurrentLocationSpan);
}
break;
case 991: // 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 lambda_any_type_node_syntax(), 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]);
var sl = ValueStack[ValueStack.Depth-1].stn as statement_list;
if (sl.expr_lambda_body || SyntaxVisitors.HasNameVisitor.HasName(sl, "result") != null) // <20>?о надо в<>оди<D0B4>?<3F>?
CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, ValueStack[ValueStack.Depth-3].td, sl, CurrentLocationSpan);
else CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, null, sl, CurrentLocationSpan);
}
break;
case 992: // 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]);
var sl = ValueStack[ValueStack.Depth-1].stn as statement_list;
if (sl.expr_lambda_body || SyntaxVisitors.HasNameVisitor.HasName(sl, "result") != null) // <20>?о надо в<>оди<D0B4>?<3F>?
CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, ValueStack[ValueStack.Depth-3].td, sl, CurrentLocationSpan);
else CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, null, sl, CurrentLocationSpan);
}
break;
case 993: // func_decl_lambda -> tkRoundOpen, expr_l1_or_unpacked, tkComma,
// expr_l1_or_unpacked_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)
{
// добавим с<>?да \(x,y)
// <20>?<3F>?ой<D0BE>с<D0B8>? по всем expr_list1. <20>?сли <20>?о<>б<>? одна - <20>?ипа ident_or_list <20>?о пой<D0BE>?и по э<>?ой ве<D0B2>?ке и в<><>
// <20>?беди<D0B4>?<3F>?ся, <20>?<3F>?о $6 = null
// с<>?о<>?ми<D0BC>?ова<D0B2>?<3F>? List<expression> для unpacked_params и п<>свои<D0BE>?<3F>?
var has_unpacked = false;
if (ValueStack[ValueStack.Depth-7].ex is unpacked_list_of_ident_or_list)
has_unpacked = true;
if (!has_unpacked)
foreach (var x in (ValueStack[ValueStack.Depth-5].stn as expression_list).expressions)
{
if (x is unpacked_list_of_ident_or_list)
{
has_unpacked = true;
break;
}
}
if (has_unpacked) // <20>?<3F>?<3F>? новая ве<D0B2>?ка
{
if (ValueStack[ValueStack.Depth-3].stn != null)
{
parserTools.AddErrorFromResource("SEMICOLON_IN_PARAMS",LocationStack[LocationStack.Depth-3]);
}
var lst_ex = new List<expression>();
lst_ex.Add(ValueStack[ValueStack.Depth-7].ex as expression);
foreach (var x in (ValueStack[ValueStack.Depth-5].stn as expression_list).expressions)
lst_ex.Add(x);
function_lambda_definition fld = null; //= new function_lambda_definition(lambdaHelper.CreateLambdaName(), null,
//new lambda_inferred_type(new lambda_any_type_node_syntax(), @2), pair.exprs, @$);
var sl1 = pair.exprs;
if (sl1.expr_lambda_body || SyntaxVisitors.HasNameVisitor.HasName(sl1, "result") != null) // <20>?о надо в<>оди<D0B4>?<3F>?
fld = new function_lambda_definition(lambdaHelper.CreateLambdaName(), null, pair.tn, pair.exprs, CurrentLocationSpan);
else fld = new function_lambda_definition(lambdaHelper.CreateLambdaName(), null, null, pair.exprs, CurrentLocationSpan);
fld.unpacked_params = lst_ex;
CurrentSemanticValue.ex = fld;
return;
}
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 lambda_any_type_node_syntax(), 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 lambda_any_type_node_syntax(), 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]);
var sl = pair.exprs;
if (sl.expr_lambda_body || SyntaxVisitors.HasNameVisitor.HasName(sl, "result") != null) // <20>?о надо в<>оди<D0B4>?<3F>?
CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formal_pars, pair.tn, pair.exprs, CurrentLocationSpan);
else CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formal_pars, null, 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, LexLocation.MergeAll(LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5],LocationStack[LocationStack.Depth-4])), 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]);
var sl = pair.exprs;
if (sl.expr_lambda_body || SyntaxVisitors.HasNameVisitor.HasName(sl, "result") != null) // <20>?о надо в<>оди<D0B4>?<3F>?
CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, pair.tn, pair.exprs, CurrentLocationSpan);
else CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, null, pair.exprs, CurrentLocationSpan);
}
}
break;
case 994: // func_decl_lambda -> lambda_unpacked_params, rem_lambda
{
var pair = ValueStack[ValueStack.Depth-1].ob as pair_type_stlist;
// пока <20>?о<>ал<D0B0><>?е па<D0BF>?аме<D0BC>?<3F>?<3F>? - null. Раск<D181>?оем и<>? са<D181>?а<><>?м визи<D0B7>?о<>?ом
CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), null,
new lambda_inferred_type(new lambda_any_type_node_syntax(), LocationStack[LocationStack.Depth-2]), pair.exprs, CurrentLocationSpan);
// unpacked_params - э<>?о для одного па<D0BF>?аме<D0BC>?<3F>?а. <20>?ля нескол<D0BE>?ки<D0BA>? - надо д<>?<3F>?г<>?<3F>? с<>?<3F>?<3F><>?<3F>?<3F>?<3F>?. <20>?озможно, список списков
var lst_ex = new List<expression>();
lst_ex.Add(ValueStack[ValueStack.Depth-2].ex as unpacked_list_of_ident_or_list);
(CurrentSemanticValue.ex as function_lambda_definition).unpacked_params = lst_ex;
}
break;
case 995: // func_decl_lambda -> expl_func_decl_lambda
{
CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex;
}
break;
case 996: // optional_full_lambda_fp_list -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 997: // optional_full_lambda_fp_list -> tkSemiColon, full_lambda_fp_list
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
}
break;
case 998: // 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 999: // expl_func_decl_lambda -> tkFunction, 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, 1, CurrentLocationSpan);
}
break;
case 1000: // expl_func_decl_lambda -> tkFunction, 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, 1, CurrentLocationSpan);
}
break;
case 1001: // expl_func_decl_lambda -> tkFunction, tkRoundOpen, full_lambda_fp_list,
// tkRoundClose, lambda_type_ref_noproctype, 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 1002: // 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 1003: // 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 1004: // 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 1005: // 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 lambda_any_type_node_syntax(), 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 1006: // 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 1007: // 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 1008: // lambda_type_ref -> /* empty */
{
CurrentSemanticValue.td = new lambda_inferred_type(new lambda_any_type_node_syntax(), null);
}
break;
case 1009: // lambda_type_ref -> tkColon, fptype
{
CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td;
}
break;
case 1010: // lambda_type_ref_noproctype -> /* empty */
{
CurrentSemanticValue.td = new lambda_inferred_type(new lambda_any_type_node_syntax(), null);
}
break;
case 1011: // lambda_type_ref_noproctype -> tkColon, fptype_noproctype
{
CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td;
}
break;
case 1012: // common_lambda_body -> compound_stmt
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
}
break;
case 1013: // common_lambda_body -> if_stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 1014: // common_lambda_body -> while_stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 1015: // common_lambda_body -> repeat_stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 1016: // common_lambda_body -> for_stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 1017: // common_lambda_body -> foreach_stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 1018: // common_lambda_body -> loop_stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 1019: // common_lambda_body -> case_stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 1020: // common_lambda_body -> try_stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 1021: // common_lambda_body -> lock_stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 1022: // common_lambda_body -> raise_stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 1023: // common_lambda_body -> yield_stmt
{
parserTools.AddErrorFromResource("YIELD_STATEMENT_CANNOT_BE_USED_IN_LAMBDA_BODY", CurrentLocationSpan);
}
break;
case 1024: // common_lambda_body -> tkRoundOpen, assignment, tkRoundClose
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-2].stn as statement, LocationStack[LocationStack.Depth-2]);
}
break;
case 1025: // lambda_function_body -> expr_l1_for_lambda
{
var id = SyntaxVisitors.HasNameVisitor.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); // надо поме<D0BC>?а<>?<3F>? е<>?<3F>? и assign как ав<D0B0>?осгене<D0BD><>?ованн<D0BD>?й для лямбд<D0B1>? - <20>?<3F>?об<D0BE>? зап<D0B0>?е<><>?<3F>? явн<D0B2>?й Result
sl.expr_lambda_body = true;
CurrentSemanticValue.stn = sl;
}
break;
case 1026: // lambda_function_body -> common_lambda_body
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
}
break;
case 1027: // lambda_procedure_body -> proc_call
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 1028: // lambda_procedure_body -> assignment
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 1029: // 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);
}
}
}