pascalabcnet/Parsers/PascalABCParserNewSaushkin/ABCPascalYacc.cs
Mikhalkovich Stanislav 490ddaa43a var q := (a,b: integer; c: real) -> begin
end;

теперь работает
2020-08-12 15:22:16 +03:00

7390 lines
530 KiB
C#
Raw Blame History

// (see accompanying GPPGcopyright.rtf)
// GPPG version 1.3.6
// Machine: DESKTOP-G8V08V4
// DateTime: 12.08.2020 15:06:57
// UserName: ?????????
// 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 PascalABCSavParser;
using PascalABCCompiler.ParserTools;
using PascalABCCompiler.Errors;
using System.Linq;
using SyntaxVisitors;
namespace GPPGParserScanner
{
public enum Tokens {
error=1,EOF=2,tkDirectiveName=3,tkAmpersend=4,tkColon=5,tkDotDot=6,
tkPoint=7,tkRoundOpen=8,tkRoundClose=9,tkSemiColon=10,tkSquareOpen=11,tkSquareClose=12,
tkQuestion=13,tkUnderscore=14,tkQuestionPoint=15,tkDoubleQuestion=16,tkQuestionSquareOpen=17,tkSizeOf=18,
tkTypeOf=19,tkWhere=20,tkArray=21,tkCase=22,tkClass=23,tkAuto=24,
tkStatic=25,tkConst=26,tkConstructor=27,tkDestructor=28,tkElse=29,tkExcept=30,
tkFile=31,tkFor=32,tkForeach=33,tkFunction=34,tkMatch=35,tkWhen=36,
tkIf=37,tkImplementation=38,tkInherited=39,tkInterface=40,tkProcedure=41,tkOperator=42,
tkProperty=43,tkRaise=44,tkRecord=45,tkSet=46,tkType=47,tkThen=48,
tkUses=49,tkVar=50,tkWhile=51,tkWith=52,tkNil=53,tkGoto=54,
tkOf=55,tkLabel=56,tkLock=57,tkProgram=58,tkEvent=59,tkDefault=60,
tkTemplate=61,tkPacked=62,tkExports=63,tkResourceString=64,tkThreadvar=65,tkSealed=66,
tkPartial=67,tkTo=68,tkDownto=69,tkLoop=70,tkSequence=71,tkYield=72,
tkShortProgram=73,tkVertParen=74,tkShortSFProgram=75,tkNew=76,tkOn=77,tkName=78,
tkPrivate=79,tkProtected=80,tkPublic=81,tkInternal=82,tkRead=83,tkWrite=84,
tkParseModeExpression=85,tkParseModeStatement=86,tkParseModeType=87,tkBegin=88,tkEnd=89,tkAsmBody=90,
tkILCode=91,tkError=92,INVISIBLE=93,tkRepeat=94,tkUntil=95,tkDo=96,
tkComma=97,tkFinally=98,tkTry=99,tkInitialization=100,tkFinalization=101,tkUnit=102,
tkLibrary=103,tkExternal=104,tkParams=105,tkNamespace=106,tkAssign=107,tkPlusEqual=108,
tkMinusEqual=109,tkMultEqual=110,tkDivEqual=111,tkMinus=112,tkPlus=113,tkSlash=114,
tkStar=115,tkStarStar=116,tkEqual=117,tkGreater=118,tkGreaterEqual=119,tkLower=120,
tkLowerEqual=121,tkNotEqual=122,tkCSharpStyleOr=123,tkArrow=124,tkOr=125,tkXor=126,
tkAnd=127,tkDiv=128,tkMod=129,tkShl=130,tkShr=131,tkNot=132,
tkAs=133,tkIn=134,tkIs=135,tkImplicit=136,tkExplicit=137,tkAddressOf=138,
tkDeref=139,tkIdentifier=140,tkStringLiteral=141,tkFormatStringLiteral=142,tkAsciiChar=143,tkAbstract=144,
tkForward=145,tkOverload=146,tkReintroduce=147,tkOverride=148,tkVirtual=149,tkExtensionMethod=150,
tkInteger=151,tkFloat=152,tkHex=153,tkUnknown=154};
// Abstract base class for GPLEX scanners
public abstract class ScanBase : AbstractScanner<PascalABCSavParser.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<PascalABCSavParser.Union, LexLocation>
{
// Verbatim content from ABCPascal.y
// <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> GPPGParser, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> gppg
public syntax_tree_node root; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
public List<Error> errors;
public string current_file_name;
public int max_errors = 10;
public PT parsertools;
public List<compiler_directive> CompilerDirectives;
public ParserLambdaHelper lambdaHelper = new ParserLambdaHelper();
public GPPGParser(AbstractScanner<PascalABCSavParser.Union, LexLocation> scanner) : base(scanner) { }
// 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[976];
private static State[] states = new State[1609];
private static string[] nonTerms = new string[] {
"parse_goal", "unit_key_word", "class_or_static", "assignment", "optional_array_initializer",
"attribute_declarations", "ot_visibility_specifier", "one_attribute", "attribute_variable",
"const_factor", "const_variable_2", "const_term", "const_variable", "literal_or_number",
"unsigned_number", "variable_or_literal_or_number", "program_block", "optional_var",
"class_attribute", "class_attributes", "class_attributes1", "member_list_section",
"optional_component_list_seq_end", "const_decl", "only_const_decl", "const_decl_sect",
"object_type", "record_type", "member_list", "method_decl_list", "field_or_const_definition_list",
"case_stmt", "case_list", "program_decl_sect_list", "int_decl_sect_list1",
"inclass_decl_sect_list1", "interface_decl_sect_list", "decl_sect_list",
"decl_sect_list1", "inclass_decl_sect_list", "field_or_const_definition",
"abc_decl_sect", "decl_sect", "int_decl_sect", "type_decl", "simple_type_decl",
"simple_field_or_const_definition", "res_str_decl_sect", "method_decl_withattr",
"method_or_property_decl", "property_definition", "fp_sect", "default_expr",
"tuple", "expr_as_stmt", "exception_block", "external_block", "exception_handler",
"exception_handler_list", "exception_identifier", "typed_const_list1",
"typed_const_list", "optional_expr_list", "elem_list", "optional_expr_list_with_bracket",
"expr_list", "const_elem_list1", "case_label_list", "const_elem_list",
"optional_const_func_expr_list", "elem_list1", "enumeration_id", "expr_l1_list",
"enumeration_id_list", "const_simple_expr", "term", "term1", "simple_term",
"typed_const", "typed_const_plus", "typed_var_init_expression", "expr",
"expr_with_func_decl_lambda", "const_expr", "elem", "range_expr", "const_elem",
"array_const", "factor", "relop_expr", "expr_dq", "expr_l1", "expr_l1_func_decl_lambda",
"expr_l1_for_lambda", "simple_expr", "range_term", "range_factor", "external_directive_ident",
"init_const_expr", "case_label", "variable", "var_reference", "optional_read_expr",
"simple_expr_or_nothing", "var_question_point", "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", "qualified_identifier",
"new_expr", "allowable_expr_as_stmt", "parts", "inclass_block", "block",
"proc_func_external_block", "exception_class_type_identifier", "simple_type_identifier",
"base_class_name", "base_classes_names_list", "optional_base_classes",
"one_compiler_directive", "optional_head_compiler_directives", "head_compiler_directives",
"program_heading_2", "optional_tk_point", "program_param_list", "optional_semicolon",
"operator_name_ident", "const_relop", "const_addop", "assign_operator",
"const_mulop", "relop", "addop", "mulop", "sign", "overload_operator",
"typecast_op", "property_specifiers", "write_property_specifiers", "read_property_specifiers",
"array_defaultproperty", "meth_modificators", "optional_method_modificators",
"optional_method_modificators1", "meth_modificator", "property_modificator",
"optional_property_initialization", "proc_call", "proc_func_constr_destr_decl",
"proc_func_decl", "inclass_proc_func_decl", "inclass_proc_func_decl_noclass",
"constr_destr_decl", "inclass_constr_destr_decl", "method_decl", "proc_func_constr_destr_decl_with_attr",
"proc_func_decl_noclass", "method_header", "proc_type_decl", "procedural_type_kind",
"proc_header", "procedural_type", "constr_destr_header", "proc_func_header",
"func_header", "method_procfunc_header", "int_func_header", "int_proc_header",
"property_interface", "program_file", "program_header", "parameter_decl",
"parameter_decl_list", "property_parameter_list", "const_set", "question_expr",
"question_constexpr", "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", "foreach_stmt_ident_dype_opt", "fptype",
"type_ref", "fptype_noproctype", "array_type", "template_param", "template_empty_param",
"structured_type", "unpacked_structured_type", "empty_template_type_reference",
"simple_or_template_type_reference", "type_ref_or_secific", "for_stmt_decl_or_assign",
"type_decl_type", "type_ref_and_secific_list", "type_decl_sect", "try_handler",
"class_or_interface_keyword", "optional_tk_do", "keyword", "reserved_keyword",
"typeof_expr", "simple_fp_sect", "template_param_list", "template_empty_param_list",
"template_type_params", "template_type_empty_params", "template_type",
"try_stmt", "uses_clause", "used_units_list", "unit_file", "used_unit_name",
"unit_header", "var_decl_sect", "var_decl", "var_decl_part", "field_definition",
"var_decl_with_assign_var_tuple", "var_stmt", "where_part", "where_part_list",
"optional_where_section", "while_stmt", "with_stmt", "variable_as_type",
"dotted_identifier", "func_decl_lambda", "expl_func_decl_lambda", "lambda_type_ref",
"lambda_type_ref_noproctype", "full_lambda_fp_list", "lambda_simple_fp_sect",
"lambda_function_body", "lambda_procedure_body", "common_lambda_body",
"optional_full_lambda_fp_list", "field_in_unnamed_object", "list_fields_in_unnamed_object",
"func_class_name_ident_list", "rem_lambda", "variable_list", "var_ident_list",
"tkAssignOrEqual", "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", "$accept", };
static GPPGParser() {
states[0] = new State(new int[]{58,1512,11,829,85,1587,87,1592,86,1599,73,1605,75,1607,3,-27,49,-27,88,-27,56,-27,26,-27,64,-27,47,-27,50,-27,59,-27,41,-27,34,-27,25,-27,23,-27,27,-27,28,-27,102,-200,103,-200,106,-200},new int[]{-1,1,-224,3,-225,4,-295,1524,-6,1525,-240,848,-165,1586});
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,1508,49,-14,88,-14,56,-14,26,-14,64,-14,47,-14,50,-14,59,-14,11,-14,41,-14,34,-14,25,-14,23,-14,27,-14,28,-14},new int[]{-175,5,-176,1506,-174,1511});
states[5] = new State(-38,new int[]{-293,6});
states[6] = new State(new int[]{49,14,56,-62,26,-62,64,-62,47,-62,50,-62,59,-62,11,-62,41,-62,34,-62,25,-62,23,-62,27,-62,28,-62,88,-62},new int[]{-17,7,-34,127,-38,1443,-39,1444});
states[7] = new State(new int[]{7,9,10,10,5,11,97,12,6,13,2,-26},new int[]{-178,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(new int[]{140,23,83,25,84,26,78,28,76,29,82,32,81,33,80,34,79,35,66,36,61,37,125,38,19,39,18,40,60,41,20,42,126,43,127,44,128,45,129,46,130,47,131,48,132,49,133,50,134,51,135,52,21,53,71,54,88,55,22,56,23,57,26,58,27,59,28,60,69,61,96,62,29,63,89,64,30,65,31,66,24,67,101,68,98,69,32,70,33,71,34,72,37,73,38,74,39,75,100,76,40,77,41,78,43,79,44,80,45,81,94,82,46,83,99,84,47,85,25,86,48,87,68,88,95,89,49,90,50,91,51,92,52,93,53,94,54,95,55,96,56,97,58,98,102,99,103,100,106,101,104,102,105,103,59,104,72,105,35,106,36,107,67,108,144,109,57,110,136,111,137,112,77,113,149,114,148,115,70,116,150,117,146,118,147,119,145,120,42,122},new int[]{-294,15,-296,126,-146,19,-127,125,-136,22,-140,24,-141,27,-283,30,-139,31,-284,121});
states[15] = new State(new int[]{10,16,97,17});
states[16] = new State(-39);
states[17] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,82,32,81,33,80,34,79,35,66,36,61,37,125,38,19,39,18,40,60,41,20,42,126,43,127,44,128,45,129,46,130,47,131,48,132,49,133,50,134,51,135,52,21,53,71,54,88,55,22,56,23,57,26,58,27,59,28,60,69,61,96,62,29,63,89,64,30,65,31,66,24,67,101,68,98,69,32,70,33,71,34,72,37,73,38,74,39,75,100,76,40,77,41,78,43,79,44,80,45,81,94,82,46,83,99,84,47,85,25,86,48,87,68,88,95,89,49,90,50,91,51,92,52,93,53,94,54,95,55,96,56,97,58,98,102,99,103,100,106,101,104,102,105,103,59,104,72,105,35,106,36,107,67,108,144,109,57,110,136,111,137,112,77,113,149,114,148,115,70,116,150,117,146,118,147,119,145,120,42,122},new int[]{-296,18,-146,19,-127,125,-136,22,-140,24,-141,27,-283,30,-139,31,-284,121});
states[18] = new State(-41);
states[19] = new State(new int[]{7,20,134,123,10,-42,97,-42});
states[20] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,82,32,81,33,80,34,79,35,66,36,61,37,125,38,19,39,18,40,60,41,20,42,126,43,127,44,128,45,129,46,130,47,131,48,132,49,133,50,134,51,135,52,21,53,71,54,88,55,22,56,23,57,26,58,27,59,28,60,69,61,96,62,29,63,89,64,30,65,31,66,24,67,101,68,98,69,32,70,33,71,34,72,37,73,38,74,39,75,100,76,40,77,41,78,43,79,44,80,45,81,94,82,46,83,99,84,47,85,25,86,48,87,68,88,95,89,49,90,50,91,51,92,52,93,53,94,54,95,55,96,56,97,58,98,102,99,103,100,106,101,104,102,105,103,59,104,72,105,35,106,36,107,67,108,144,109,57,110,136,111,137,112,77,113,149,114,148,115,70,116,150,117,146,118,147,119,145,120,42,122},new int[]{-127,21,-136,22,-140,24,-141,27,-283,30,-139,31,-284,121});
states[21] = new State(-37);
states[22] = new State(-797);
states[23] = new State(-794);
states[24] = new State(-795);
states[25] = new State(-813);
states[26] = new State(-814);
states[27] = new State(-796);
states[28] = new State(-815);
states[29] = new State(-816);
states[30] = new State(-798);
states[31] = new State(-821);
states[32] = new State(-817);
states[33] = new State(-818);
states[34] = new State(-819);
states[35] = new State(-820);
states[36] = new State(-822);
states[37] = new State(-823);
states[38] = new State(-824);
states[39] = new State(-825);
states[40] = new State(-826);
states[41] = new State(-827);
states[42] = new State(-828);
states[43] = new State(-829);
states[44] = new State(-830);
states[45] = new State(-831);
states[46] = new State(-832);
states[47] = new State(-833);
states[48] = new State(-834);
states[49] = new State(-835);
states[50] = new State(-836);
states[51] = new State(-837);
states[52] = new State(-838);
states[53] = new State(-839);
states[54] = new State(-840);
states[55] = new State(-841);
states[56] = new State(-842);
states[57] = new State(-843);
states[58] = new State(-844);
states[59] = new State(-845);
states[60] = new State(-846);
states[61] = new State(-847);
states[62] = new State(-848);
states[63] = new State(-849);
states[64] = new State(-850);
states[65] = new State(-851);
states[66] = new State(-852);
states[67] = new State(-853);
states[68] = new State(-854);
states[69] = new State(-855);
states[70] = new State(-856);
states[71] = new State(-857);
states[72] = new State(-858);
states[73] = new State(-859);
states[74] = new State(-860);
states[75] = new State(-861);
states[76] = new State(-862);
states[77] = new State(-863);
states[78] = new State(-864);
states[79] = new State(-865);
states[80] = new State(-866);
states[81] = new State(-867);
states[82] = new State(-868);
states[83] = new State(-869);
states[84] = new State(-870);
states[85] = new State(-871);
states[86] = new State(-872);
states[87] = new State(-873);
states[88] = new State(-874);
states[89] = new State(-875);
states[90] = new State(-876);
states[91] = new State(-877);
states[92] = new State(-878);
states[93] = new State(-879);
states[94] = new State(-880);
states[95] = new State(-881);
states[96] = new State(-882);
states[97] = new State(-883);
states[98] = new State(-884);
states[99] = new State(-885);
states[100] = new State(-886);
states[101] = new State(-887);
states[102] = new State(-888);
states[103] = new State(-889);
states[104] = new State(-890);
states[105] = new State(-891);
states[106] = new State(-892);
states[107] = new State(-893);
states[108] = new State(-894);
states[109] = new State(-895);
states[110] = new State(-896);
states[111] = new State(-897);
states[112] = new State(-898);
states[113] = new State(-899);
states[114] = new State(-900);
states[115] = new State(-901);
states[116] = new State(-902);
states[117] = new State(-903);
states[118] = new State(-904);
states[119] = new State(-905);
states[120] = new State(-906);
states[121] = new State(-799);
states[122] = new State(-907);
states[123] = new State(new int[]{141,124});
states[124] = new State(-43);
states[125] = new State(-36);
states[126] = new State(-40);
states[127] = new State(new int[]{88,129},new int[]{-245,128});
states[128] = new State(-34);
states[129] = new State(new int[]{138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,585,8,586,18,259,19,264,141,161,143,162,142,164,151,637,153,167,152,168,74,425,54,610,88,129,37,616,22,623,94,639,51,644,32,649,52,659,99,665,44,672,33,675,50,683,57,731,72,736,70,723,35,745,89,-479,10,-479},new int[]{-242,130,-251,635,-250,134,-4,135,-102,136,-121,352,-101,544,-136,636,-140,24,-141,27,-181,372,-247,418,-285,419,-14,583,-154,158,-156,159,-155,163,-15,165,-16,420,-54,584,-105,468,-202,608,-122,609,-245,614,-142,615,-32,622,-237,638,-307,643,-113,648,-308,658,-149,663,-292,664,-238,671,-112,674,-303,682,-55,727,-164,728,-163,729,-158,730,-115,735,-116,742,-114,743,-337,744,-132,1017});
states[130] = new State(new int[]{89,131,10,132});
states[131] = new State(-516);
states[132] = new State(new int[]{138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,585,8,586,18,259,19,264,141,161,143,162,142,164,151,637,153,167,152,168,74,425,54,610,88,129,37,616,22,623,94,639,51,644,32,649,52,659,99,665,44,672,33,675,50,683,57,731,72,736,70,723,35,745,89,-479,10,-479,95,-479,98,-479,30,-479,101,-479,2,-479},new int[]{-251,133,-250,134,-4,135,-102,136,-121,352,-101,544,-136,636,-140,24,-141,27,-181,372,-247,418,-285,419,-14,583,-154,158,-156,159,-155,163,-15,165,-16,420,-54,584,-105,468,-202,608,-122,609,-245,614,-142,615,-32,622,-237,638,-307,643,-113,648,-308,658,-149,663,-292,664,-238,671,-112,674,-303,682,-55,727,-164,728,-163,729,-158,730,-115,735,-116,742,-114,743,-337,744,-132,1017});
states[133] = new State(-518);
states[134] = new State(-477);
states[135] = new State(-480);
states[136] = new State(new int[]{107,397,108,398,109,399,110,400,111,401,89,-514,10,-514,95,-514,98,-514,30,-514,101,-514,2,-514,29,-514,97,-514,12,-514,9,-514,96,-514,82,-514,81,-514,80,-514,79,-514,84,-514,83,-514},new int[]{-184,137});
states[137] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,405,18,259,19,264,74,425,37,560,5,569,34,705,41,709},new int[]{-83,138,-82,139,-92,140,-91,141,-90,302,-95,310,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,366,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559,-109,568,-311,841,-312,704});
states[138] = new State(-507);
states[139] = new State(-581);
states[140] = new State(-583);
states[141] = new State(new int[]{16,142,89,-585,10,-585,95,-585,98,-585,30,-585,101,-585,2,-585,29,-585,97,-585,12,-585,9,-585,96,-585,82,-585,81,-585,80,-585,79,-585,84,-585,83,-585,6,-585,74,-585,5,-585,48,-585,55,-585,138,-585,140,-585,78,-585,76,-585,42,-585,39,-585,8,-585,18,-585,19,-585,141,-585,143,-585,142,-585,151,-585,153,-585,152,-585,54,-585,88,-585,37,-585,22,-585,94,-585,51,-585,32,-585,52,-585,99,-585,44,-585,33,-585,50,-585,57,-585,72,-585,70,-585,35,-585,68,-585,69,-585,13,-588});
states[142] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,430,18,259,19,264,74,425},new int[]{-90,143,-95,371,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550});
states[143] = new State(new int[]{117,303,122,304,120,305,118,306,121,307,119,308,134,309,16,-598,89,-598,10,-598,95,-598,98,-598,30,-598,101,-598,2,-598,29,-598,97,-598,12,-598,9,-598,96,-598,82,-598,81,-598,80,-598,79,-598,84,-598,83,-598,13,-598,6,-598,74,-598,5,-598,48,-598,55,-598,138,-598,140,-598,78,-598,76,-598,42,-598,39,-598,8,-598,18,-598,19,-598,141,-598,143,-598,142,-598,151,-598,153,-598,152,-598,54,-598,88,-598,37,-598,22,-598,94,-598,51,-598,32,-598,52,-598,99,-598,44,-598,33,-598,50,-598,57,-598,72,-598,70,-598,35,-598,68,-598,69,-598,113,-598,112,-598,125,-598,126,-598,123,-598,135,-598,133,-598,115,-598,114,-598,128,-598,129,-598,130,-598,131,-598,127,-598},new int[]{-186,144});
states[144] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,430,18,259,19,264,74,425,37,560},new int[]{-95,145,-232,1442,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,573,-257,550});
states[145] = new State(new int[]{6,146,117,-621,122,-621,120,-621,118,-621,121,-621,119,-621,134,-621,16,-621,89,-621,10,-621,95,-621,98,-621,30,-621,101,-621,2,-621,29,-621,97,-621,12,-621,9,-621,96,-621,82,-621,81,-621,80,-621,79,-621,84,-621,83,-621,13,-621,74,-621,5,-621,48,-621,55,-621,138,-621,140,-621,78,-621,76,-621,42,-621,39,-621,8,-621,18,-621,19,-621,141,-621,143,-621,142,-621,151,-621,153,-621,152,-621,54,-621,88,-621,37,-621,22,-621,94,-621,51,-621,32,-621,52,-621,99,-621,44,-621,33,-621,50,-621,57,-621,72,-621,70,-621,35,-621,68,-621,69,-621,113,-621,112,-621,125,-621,126,-621,123,-621,135,-621,133,-621,115,-621,114,-621,128,-621,129,-621,130,-621,131,-621,127,-621});
states[146] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,430,18,259,19,264,74,425},new int[]{-77,147,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,573,-257,550});
states[147] = new State(new int[]{113,316,112,317,125,318,126,319,123,320,6,-699,5,-699,117,-699,122,-699,120,-699,118,-699,121,-699,119,-699,134,-699,16,-699,89,-699,10,-699,95,-699,98,-699,30,-699,101,-699,2,-699,29,-699,97,-699,12,-699,9,-699,96,-699,82,-699,81,-699,80,-699,79,-699,84,-699,83,-699,13,-699,74,-699,48,-699,55,-699,138,-699,140,-699,78,-699,76,-699,42,-699,39,-699,8,-699,18,-699,19,-699,141,-699,143,-699,142,-699,151,-699,153,-699,152,-699,54,-699,88,-699,37,-699,22,-699,94,-699,51,-699,32,-699,52,-699,99,-699,44,-699,33,-699,50,-699,57,-699,72,-699,70,-699,35,-699,68,-699,69,-699,135,-699,133,-699,115,-699,114,-699,128,-699,129,-699,130,-699,131,-699,127,-699},new int[]{-187,148});
states[148] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,430,18,259,19,264,74,425,37,560},new int[]{-76,149,-232,1441,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,573,-257,550});
states[149] = new State(new int[]{135,322,133,324,115,326,114,327,128,328,129,329,130,330,131,331,127,332,113,-701,112,-701,125,-701,126,-701,123,-701,6,-701,5,-701,117,-701,122,-701,120,-701,118,-701,121,-701,119,-701,134,-701,16,-701,89,-701,10,-701,95,-701,98,-701,30,-701,101,-701,2,-701,29,-701,97,-701,12,-701,9,-701,96,-701,82,-701,81,-701,80,-701,79,-701,84,-701,83,-701,13,-701,74,-701,48,-701,55,-701,138,-701,140,-701,78,-701,76,-701,42,-701,39,-701,8,-701,18,-701,19,-701,141,-701,143,-701,142,-701,151,-701,153,-701,152,-701,54,-701,88,-701,37,-701,22,-701,94,-701,51,-701,32,-701,52,-701,99,-701,44,-701,33,-701,50,-701,57,-701,72,-701,70,-701,35,-701,68,-701,69,-701},new int[]{-188,150});
states[150] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,29,42,373,39,403,8,430,18,259,19,264,74,425,37,560},new int[]{-89,151,-258,152,-232,153,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-78,471});
states[151] = new State(new int[]{135,-719,133,-719,115,-719,114,-719,128,-719,129,-719,130,-719,131,-719,127,-719,113,-719,112,-719,125,-719,126,-719,123,-719,6,-719,5,-719,117,-719,122,-719,120,-719,118,-719,121,-719,119,-719,134,-719,16,-719,89,-719,10,-719,95,-719,98,-719,30,-719,101,-719,2,-719,29,-719,97,-719,12,-719,9,-719,96,-719,82,-719,81,-719,80,-719,79,-719,84,-719,83,-719,13,-719,74,-719,48,-719,55,-719,138,-719,140,-719,78,-719,76,-719,42,-719,39,-719,8,-719,18,-719,19,-719,141,-719,143,-719,142,-719,151,-719,153,-719,152,-719,54,-719,88,-719,37,-719,22,-719,94,-719,51,-719,32,-719,52,-719,99,-719,44,-719,33,-719,50,-719,57,-719,72,-719,70,-719,35,-719,68,-719,69,-719,116,-714});
states[152] = new State(-720);
states[153] = new State(-721);
states[154] = new State(-732);
states[155] = new State(new int[]{7,156,135,-733,133,-733,115,-733,114,-733,128,-733,129,-733,130,-733,131,-733,127,-733,113,-733,112,-733,125,-733,126,-733,123,-733,6,-733,5,-733,117,-733,122,-733,120,-733,118,-733,121,-733,119,-733,134,-733,16,-733,89,-733,10,-733,95,-733,98,-733,30,-733,101,-733,2,-733,29,-733,97,-733,12,-733,9,-733,96,-733,82,-733,81,-733,80,-733,79,-733,84,-733,83,-733,13,-733,116,-733,74,-733,48,-733,55,-733,138,-733,140,-733,78,-733,76,-733,42,-733,39,-733,8,-733,18,-733,19,-733,141,-733,143,-733,142,-733,151,-733,153,-733,152,-733,54,-733,88,-733,37,-733,22,-733,94,-733,51,-733,32,-733,52,-733,99,-733,44,-733,33,-733,50,-733,57,-733,72,-733,70,-733,35,-733,68,-733,69,-733,11,-757});
states[156] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,82,32,81,33,80,34,79,35,66,36,61,37,125,38,19,39,18,40,60,41,20,42,126,43,127,44,128,45,129,46,130,47,131,48,132,49,133,50,134,51,135,52,21,53,71,54,88,55,22,56,23,57,26,58,27,59,28,60,69,61,96,62,29,63,89,64,30,65,31,66,24,67,101,68,98,69,32,70,33,71,34,72,37,73,38,74,39,75,100,76,40,77,41,78,43,79,44,80,45,81,94,82,46,83,99,84,47,85,25,86,48,87,68,88,95,89,49,90,50,91,51,92,52,93,53,94,54,95,55,96,56,97,58,98,102,99,103,100,106,101,104,102,105,103,59,104,72,105,35,106,36,107,67,108,144,109,57,110,136,111,137,112,77,113,149,114,148,115,70,116,150,117,146,118,147,119,145,120,42,122},new int[]{-127,157,-136,22,-140,24,-141,27,-283,30,-139,31,-284,121});
states[157] = new State(-764);
states[158] = new State(-741);
states[159] = new State(new int[]{141,161,143,162,7,-783,11,-783,135,-783,133,-783,115,-783,114,-783,128,-783,129,-783,130,-783,131,-783,127,-783,113,-783,112,-783,125,-783,126,-783,123,-783,6,-783,5,-783,117,-783,122,-783,120,-783,118,-783,121,-783,119,-783,134,-783,16,-783,89,-783,10,-783,95,-783,98,-783,30,-783,101,-783,2,-783,29,-783,97,-783,12,-783,9,-783,96,-783,82,-783,81,-783,80,-783,79,-783,84,-783,83,-783,13,-783,116,-783,74,-783,48,-783,55,-783,138,-783,140,-783,78,-783,76,-783,42,-783,39,-783,8,-783,18,-783,19,-783,142,-783,151,-783,153,-783,152,-783,54,-783,88,-783,37,-783,22,-783,94,-783,51,-783,32,-783,52,-783,99,-783,44,-783,33,-783,50,-783,57,-783,72,-783,70,-783,35,-783,68,-783,69,-783,124,-783,107,-783,4,-783,139,-783},new int[]{-155,160});
states[160] = new State(-786);
states[161] = new State(-781);
states[162] = new State(-782);
states[163] = new State(-785);
states[164] = new State(-784);
states[165] = new State(-742);
states[166] = new State(-179);
states[167] = new State(-180);
states[168] = new State(-181);
states[169] = new State(-734);
states[170] = new State(new int[]{8,171});
states[171] = new State(new int[]{140,23,83,25,84,26,78,28,76,29},new int[]{-274,172,-170,174,-136,208,-140,24,-141,27});
states[172] = new State(new int[]{9,173});
states[173] = new State(-730);
states[174] = new State(new int[]{7,175,4,178,120,180,9,-606,133,-606,135,-606,115,-606,114,-606,128,-606,129,-606,130,-606,131,-606,127,-606,113,-606,112,-606,125,-606,126,-606,117,-606,122,-606,118,-606,121,-606,119,-606,134,-606,13,-606,6,-606,97,-606,12,-606,5,-606,89,-606,10,-606,95,-606,98,-606,30,-606,101,-606,2,-606,29,-606,96,-606,82,-606,81,-606,80,-606,79,-606,84,-606,83,-606,11,-606,8,-606,123,-606,16,-606,74,-606,48,-606,55,-606,138,-606,140,-606,78,-606,76,-606,42,-606,39,-606,18,-606,19,-606,141,-606,143,-606,142,-606,151,-606,153,-606,152,-606,54,-606,88,-606,37,-606,22,-606,94,-606,51,-606,32,-606,52,-606,99,-606,44,-606,33,-606,50,-606,57,-606,72,-606,70,-606,35,-606,68,-606,69,-606,116,-606},new int[]{-289,177});
states[175] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,82,32,81,33,80,34,79,35,66,36,61,37,125,38,19,39,18,40,60,41,20,42,126,43,127,44,128,45,129,46,130,47,131,48,132,49,133,50,134,51,135,52,21,53,71,54,88,55,22,56,23,57,26,58,27,59,28,60,69,61,96,62,29,63,89,64,30,65,31,66,24,67,101,68,98,69,32,70,33,71,34,72,37,73,38,74,39,75,100,76,40,77,41,78,43,79,44,80,45,81,94,82,46,83,99,84,47,85,25,86,48,87,68,88,95,89,49,90,50,91,51,92,52,93,53,94,54,95,55,96,56,97,58,98,102,99,103,100,106,101,104,102,105,103,59,104,72,105,35,106,36,107,67,108,144,109,57,110,136,111,137,112,77,113,149,114,148,115,70,116,150,117,146,118,147,119,145,120,42,122},new int[]{-127,176,-136,22,-140,24,-141,27,-283,30,-139,31,-284,121});
states[176] = new State(-249);
states[177] = new State(-607);
states[178] = new State(new int[]{120,180},new int[]{-289,179});
states[179] = new State(-608);
states[180] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,151,166,153,167,152,168,113,347,112,348,141,161,143,162,142,164,8,492,21,508,45,516,46,774,31,778,71,782,62,785,41,790,34,805},new int[]{-287,181,-269,278,-262,185,-86,187,-96,279,-97,280,-170,281,-136,208,-140,24,-141,27,-15,487,-189,488,-154,491,-156,159,-155,163,-271,1357,-272,506,-268,507,-260,514,-28,515,-253,773,-119,777,-120,781,-216,1358,-214,788,-213,789,-291,1359});
states[181] = new State(new int[]{118,182,97,183});
states[182] = new State(-223);
states[183] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,151,166,153,167,152,168,113,347,112,348,141,161,143,162,142,164,8,492,21,508,45,516,46,774,31,778,71,782,62,785,41,790,34,805},new int[]{-269,184,-262,185,-86,187,-96,279,-97,280,-170,281,-136,208,-140,24,-141,27,-15,487,-189,488,-154,491,-156,159,-155,163,-271,1357,-272,506,-268,507,-260,514,-28,515,-253,773,-119,777,-120,781,-216,1358,-214,788,-213,789,-291,1359});
states[184] = new State(-227);
states[185] = new State(new int[]{13,186,118,-231,97,-231,117,-231,9,-231,10,-231,124,-231,107,-231,89,-231,95,-231,98,-231,30,-231,101,-231,2,-231,29,-231,12,-231,96,-231,82,-231,81,-231,80,-231,79,-231,84,-231,83,-231,134,-231});
states[186] = new State(-232);
states[187] = new State(new int[]{6,1439,113,1428,112,1429,125,1430,126,1431,13,-236,118,-236,97,-236,117,-236,9,-236,10,-236,124,-236,107,-236,89,-236,95,-236,98,-236,30,-236,101,-236,2,-236,29,-236,12,-236,96,-236,82,-236,81,-236,80,-236,79,-236,84,-236,83,-236,134,-236},new int[]{-183,188});
states[188] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,151,166,153,167,152,168,113,347,112,348,141,161,143,162,142,164},new int[]{-96,189,-97,280,-170,490,-136,208,-140,24,-141,27,-15,487,-189,488,-154,491,-156,159,-155,163});
states[189] = new State(new int[]{115,230,114,231,128,232,129,233,130,234,131,235,127,236,6,-240,113,-240,112,-240,125,-240,126,-240,13,-240,118,-240,97,-240,117,-240,9,-240,10,-240,124,-240,107,-240,89,-240,95,-240,98,-240,30,-240,101,-240,2,-240,29,-240,12,-240,96,-240,82,-240,81,-240,80,-240,79,-240,84,-240,83,-240,134,-240},new int[]{-185,190});
states[190] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,151,166,153,167,152,168,113,347,112,348,141,161,143,162,142,164},new int[]{-97,191,-170,490,-136,208,-140,24,-141,27,-15,487,-189,488,-154,491,-156,159,-155,163});
states[191] = new State(new int[]{8,192,115,-242,114,-242,128,-242,129,-242,130,-242,131,-242,127,-242,6,-242,113,-242,112,-242,125,-242,126,-242,13,-242,118,-242,97,-242,117,-242,9,-242,10,-242,124,-242,107,-242,89,-242,95,-242,98,-242,30,-242,101,-242,2,-242,29,-242,12,-242,96,-242,82,-242,81,-242,80,-242,79,-242,84,-242,83,-242,134,-242});
states[192] = new State(new int[]{140,23,83,25,84,26,78,28,76,239,141,161,143,162,142,164,151,166,153,167,152,168,39,256,18,259,19,264,11,455,74,459,53,956,138,957,8,959,132,962,113,347,112,348,9,-174},new int[]{-69,193,-67,195,-87,458,-84,198,-75,203,-12,227,-10,237,-13,213,-136,238,-140,24,-141,27,-154,254,-156,159,-155,163,-15,255,-247,258,-285,263,-229,454,-189,964,-163,966,-255,967,-259,968,-231,969});
states[193] = new State(new int[]{9,194});
states[194] = new State(-247);
states[195] = new State(new int[]{97,196,9,-173,12,-173});
states[196] = new State(new int[]{140,23,83,25,84,26,78,28,76,239,141,161,143,162,142,164,151,166,153,167,152,168,39,256,18,259,19,264,11,455,74,459,53,956,138,957,8,959,132,962,113,347,112,348},new int[]{-87,197,-84,198,-75,203,-12,227,-10,237,-13,213,-136,238,-140,24,-141,27,-154,254,-156,159,-155,163,-15,255,-247,258,-285,263,-229,454,-189,964,-163,966,-255,967,-259,968,-231,969});
states[197] = new State(-176);
states[198] = new State(new int[]{13,199,6,1412,97,-177,9,-177,12,-177,5,-177});
states[199] = new State(new int[]{140,23,83,25,84,26,78,28,76,239,141,161,143,162,142,164,151,166,153,167,152,168,39,256,18,259,19,264,11,455,74,459,53,956,138,957,8,959,132,962,113,347,112,348},new int[]{-84,200,-75,203,-12,227,-10,237,-13,213,-136,238,-140,24,-141,27,-154,254,-156,159,-155,163,-15,255,-247,258,-285,263,-229,454,-189,964,-163,966,-255,967,-259,968,-231,969});
states[200] = new State(new int[]{5,201,13,199});
states[201] = new State(new int[]{140,23,83,25,84,26,78,28,76,239,141,161,143,162,142,164,151,166,153,167,152,168,39,256,18,259,19,264,11,455,74,459,53,956,138,957,8,959,132,962,113,347,112,348},new int[]{-84,202,-75,203,-12,227,-10,237,-13,213,-136,238,-140,24,-141,27,-154,254,-156,159,-155,163,-15,255,-247,258,-285,263,-229,454,-189,964,-163,966,-255,967,-259,968,-231,969});
states[202] = new State(new int[]{13,199,6,-118,97,-118,9,-118,12,-118,5,-118,89,-118,10,-118,95,-118,98,-118,30,-118,101,-118,2,-118,29,-118,96,-118,82,-118,81,-118,80,-118,79,-118,84,-118,83,-118});
states[203] = new State(new int[]{113,1428,112,1429,125,1430,126,1431,117,1432,122,1433,120,1434,118,1435,121,1436,119,1437,134,1438,13,-115,6,-115,97,-115,9,-115,12,-115,5,-115,89,-115,10,-115,95,-115,98,-115,30,-115,101,-115,2,-115,29,-115,96,-115,82,-115,81,-115,80,-115,79,-115,84,-115,83,-115},new int[]{-183,204,-182,1426});
states[204] = new State(new int[]{140,23,83,25,84,26,78,28,76,239,141,161,143,162,142,164,151,166,153,167,152,168,39,256,18,259,19,264,11,455,74,459,53,956,138,957,8,959,132,962,113,347,112,348},new int[]{-12,205,-10,237,-13,213,-136,238,-140,24,-141,27,-154,254,-156,159,-155,163,-15,255,-247,258,-285,263,-229,454,-189,964,-163,966,-255,967,-259,968});
states[205] = new State(new int[]{133,228,135,229,115,230,114,231,128,232,129,233,130,234,131,235,127,236,113,-127,112,-127,125,-127,126,-127,117,-127,122,-127,120,-127,118,-127,121,-127,119,-127,134,-127,13,-127,6,-127,97,-127,9,-127,12,-127,5,-127,89,-127,10,-127,95,-127,98,-127,30,-127,101,-127,2,-127,29,-127,96,-127,82,-127,81,-127,80,-127,79,-127,84,-127,83,-127},new int[]{-191,206,-185,209});
states[206] = new State(new int[]{140,23,83,25,84,26,78,28,76,29},new int[]{-274,207,-170,174,-136,208,-140,24,-141,27});
states[207] = new State(-132);
states[208] = new State(-248);
states[209] = new State(new int[]{140,23,83,25,84,26,78,28,76,239,141,161,143,162,142,164,151,166,153,167,152,168,39,256,18,259,19,264,11,455,74,459,53,956,138,957,8,959,132,962,113,347,112,348},new int[]{-10,210,-259,1425,-13,213,-136,238,-140,24,-141,27,-154,254,-156,159,-155,163,-15,255,-247,258,-285,263,-229,454,-189,964,-163,966});
states[210] = new State(new int[]{116,211,133,-137,135,-137,115,-137,114,-137,128,-137,129,-137,130,-137,131,-137,127,-137,113,-137,112,-137,125,-137,126,-137,117,-137,122,-137,120,-137,118,-137,121,-137,119,-137,134,-137,13,-137,6,-137,97,-137,9,-137,12,-137,5,-137,89,-137,10,-137,95,-137,98,-137,30,-137,101,-137,2,-137,29,-137,96,-137,82,-137,81,-137,80,-137,79,-137,84,-137,83,-137});
states[211] = new State(new int[]{140,23,83,25,84,26,78,28,76,239,141,161,143,162,142,164,151,166,153,167,152,168,39,256,18,259,19,264,11,455,74,459,53,956,138,957,8,959,132,962,113,347,112,348},new int[]{-10,212,-13,213,-136,238,-140,24,-141,27,-154,254,-156,159,-155,163,-15,255,-247,258,-285,263,-229,454,-189,964,-163,966});
states[212] = new State(-133);
states[213] = new State(new int[]{4,215,11,217,7,1418,139,1420,8,1421,116,-146,133,-146,135,-146,115,-146,114,-146,128,-146,129,-146,130,-146,131,-146,127,-146,113,-146,112,-146,125,-146,126,-146,117,-146,122,-146,120,-146,118,-146,121,-146,119,-146,134,-146,13,-146,6,-146,97,-146,9,-146,12,-146,5,-146,89,-146,10,-146,95,-146,98,-146,30,-146,101,-146,2,-146,29,-146,96,-146,82,-146,81,-146,80,-146,79,-146,84,-146,83,-146},new int[]{-11,214});
states[214] = new State(-164);
states[215] = new State(new int[]{120,180},new int[]{-289,216});
states[216] = new State(-165);
states[217] = new State(new int[]{140,23,83,25,84,26,78,28,76,239,141,161,143,162,142,164,151,166,153,167,152,168,39,256,18,259,19,264,11,455,74,459,53,956,138,957,8,959,132,962,113,347,112,348,5,1414,12,-174},new int[]{-110,218,-69,220,-84,222,-75,203,-12,227,-10,237,-13,213,-136,238,-140,24,-141,27,-154,254,-156,159,-155,163,-15,255,-247,258,-285,263,-229,454,-189,964,-163,966,-255,967,-259,968,-231,969,-67,195,-87,458});
states[218] = new State(new int[]{12,219});
states[219] = new State(-166);
states[220] = new State(new int[]{12,221});
states[221] = new State(-170);
states[222] = new State(new int[]{5,223,13,199,6,1412,97,-177,12,-177});
states[223] = new State(new int[]{140,23,83,25,84,26,78,28,76,239,141,161,143,162,142,164,151,166,153,167,152,168,39,256,18,259,19,264,11,455,74,459,53,956,138,957,8,959,132,962,113,347,112,348,5,-682,12,-682},new int[]{-111,224,-84,1411,-75,203,-12,227,-10,237,-13,213,-136,238,-140,24,-141,27,-154,254,-156,159,-155,163,-15,255,-247,258,-285,263,-229,454,-189,964,-163,966,-255,967,-259,968,-231,969});
states[224] = new State(new int[]{5,225,12,-687});
states[225] = new State(new int[]{140,23,83,25,84,26,78,28,76,239,141,161,143,162,142,164,151,166,153,167,152,168,39,256,18,259,19,264,11,455,74,459,53,956,138,957,8,959,132,962,113,347,112,348},new int[]{-84,226,-75,203,-12,227,-10,237,-13,213,-136,238,-140,24,-141,27,-154,254,-156,159,-155,163,-15,255,-247,258,-285,263,-229,454,-189,964,-163,966,-255,967,-259,968,-231,969});
states[226] = new State(new int[]{13,199,12,-689});
states[227] = new State(new int[]{133,228,135,229,115,230,114,231,128,232,129,233,130,234,131,235,127,236,113,-126,112,-126,125,-126,126,-126,117,-126,122,-126,120,-126,118,-126,121,-126,119,-126,134,-126,13,-126,6,-126,97,-126,9,-126,12,-126,5,-126,89,-126,10,-126,95,-126,98,-126,30,-126,101,-126,2,-126,29,-126,96,-126,82,-126,81,-126,80,-126,79,-126,84,-126,83,-126},new int[]{-191,206,-185,209});
states[228] = new State(-708);
states[229] = new State(-709);
states[230] = new State(-139);
states[231] = new State(-140);
states[232] = new State(-141);
states[233] = new State(-142);
states[234] = new State(-143);
states[235] = new State(-144);
states[236] = new State(-145);
states[237] = new State(new int[]{116,211,133,-134,135,-134,115,-134,114,-134,128,-134,129,-134,130,-134,131,-134,127,-134,113,-134,112,-134,125,-134,126,-134,117,-134,122,-134,120,-134,118,-134,121,-134,119,-134,134,-134,13,-134,6,-134,97,-134,9,-134,12,-134,5,-134,89,-134,10,-134,95,-134,98,-134,30,-134,101,-134,2,-134,29,-134,96,-134,82,-134,81,-134,80,-134,79,-134,84,-134,83,-134});
states[238] = new State(-158);
states[239] = new State(new int[]{23,1400,140,23,83,25,84,26,78,28,76,29,17,-816,8,-816,7,-816,139,-816,4,-816,15,-816,107,-816,108,-816,109,-816,110,-816,111,-816,89,-816,10,-816,11,-816,5,-816,95,-816,98,-816,30,-816,101,-816,2,-816,124,-816,135,-816,133,-816,115,-816,114,-816,128,-816,129,-816,130,-816,131,-816,127,-816,113,-816,112,-816,125,-816,126,-816,123,-816,6,-816,117,-816,122,-816,120,-816,118,-816,121,-816,119,-816,134,-816,16,-816,29,-816,97,-816,12,-816,9,-816,96,-816,82,-816,81,-816,80,-816,79,-816,13,-816,116,-816,74,-816,48,-816,55,-816,138,-816,42,-816,39,-816,18,-816,19,-816,141,-816,143,-816,142,-816,151,-816,153,-816,152,-816,54,-816,88,-816,37,-816,22,-816,94,-816,51,-816,32,-816,52,-816,99,-816,44,-816,33,-816,50,-816,57,-816,72,-816,70,-816,35,-816,68,-816,69,-816},new int[]{-274,240,-170,174,-136,208,-140,24,-141,27});
states[240] = new State(new int[]{11,242,8,838,89,-618,10,-618,95,-618,98,-618,30,-618,101,-618,2,-618,135,-618,133,-618,115,-618,114,-618,128,-618,129,-618,130,-618,131,-618,127,-618,113,-618,112,-618,125,-618,126,-618,123,-618,6,-618,5,-618,117,-618,122,-618,120,-618,118,-618,121,-618,119,-618,134,-618,16,-618,29,-618,97,-618,12,-618,9,-618,96,-618,82,-618,81,-618,80,-618,79,-618,84,-618,83,-618,13,-618,74,-618,48,-618,55,-618,138,-618,140,-618,78,-618,76,-618,42,-618,39,-618,18,-618,19,-618,141,-618,143,-618,142,-618,151,-618,153,-618,152,-618,54,-618,88,-618,37,-618,22,-618,94,-618,51,-618,32,-618,52,-618,99,-618,44,-618,33,-618,50,-618,57,-618,72,-618,70,-618,35,-618,68,-618,69,-618,116,-618},new int[]{-65,241});
states[241] = new State(-611);
states[242] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,405,18,259,19,264,74,425,37,560,5,569,34,705,41,709,12,-774},new int[]{-63,243,-66,363,-83,424,-82,139,-92,140,-91,141,-90,302,-95,310,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,366,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559,-109,568,-311,841,-312,704});
states[243] = new State(new int[]{12,244});
states[244] = new State(new int[]{8,246,89,-610,10,-610,95,-610,98,-610,30,-610,101,-610,2,-610,135,-610,133,-610,115,-610,114,-610,128,-610,129,-610,130,-610,131,-610,127,-610,113,-610,112,-610,125,-610,126,-610,123,-610,6,-610,5,-610,117,-610,122,-610,120,-610,118,-610,121,-610,119,-610,134,-610,16,-610,29,-610,97,-610,12,-610,9,-610,96,-610,82,-610,81,-610,80,-610,79,-610,84,-610,83,-610,13,-610,74,-610,48,-610,55,-610,138,-610,140,-610,78,-610,76,-610,42,-610,39,-610,18,-610,19,-610,141,-610,143,-610,142,-610,151,-610,153,-610,152,-610,54,-610,88,-610,37,-610,22,-610,94,-610,51,-610,32,-610,52,-610,99,-610,44,-610,33,-610,50,-610,57,-610,72,-610,70,-610,35,-610,68,-610,69,-610,116,-610},new int[]{-5,245});
states[245] = new State(-612);
states[246] = new State(new int[]{140,23,83,25,84,26,78,28,76,239,141,161,143,162,142,164,151,166,153,167,152,168,39,256,18,259,19,264,11,455,74,459,53,956,138,957,8,983,132,962,113,347,112,348,60,170,9,-186},new int[]{-62,247,-61,249,-80,986,-79,252,-84,253,-75,203,-12,227,-10,237,-13,213,-136,238,-140,24,-141,27,-154,254,-156,159,-155,163,-15,255,-247,258,-285,263,-229,454,-189,964,-163,966,-255,967,-259,968,-231,969,-88,987,-233,988,-53,989});
states[247] = new State(new int[]{9,248});
states[248] = new State(-609);
states[249] = new State(new int[]{97,250,9,-187});
states[250] = new State(new int[]{140,23,83,25,84,26,78,28,76,239,141,161,143,162,142,164,151,166,153,167,152,168,39,256,18,259,19,264,11,455,74,459,53,956,138,957,8,983,132,962,113,347,112,348,60,170},new int[]{-80,251,-79,252,-84,253,-75,203,-12,227,-10,237,-13,213,-136,238,-140,24,-141,27,-154,254,-156,159,-155,163,-15,255,-247,258,-285,263,-229,454,-189,964,-163,966,-255,967,-259,968,-231,969,-88,987,-233,988,-53,989});
states[251] = new State(-189);
states[252] = new State(-407);
states[253] = new State(new int[]{13,199,97,-182,9,-182,89,-182,10,-182,95,-182,98,-182,30,-182,101,-182,2,-182,29,-182,12,-182,96,-182,82,-182,81,-182,80,-182,79,-182,84,-182,83,-182});
states[254] = new State(-159);
states[255] = new State(-160);
states[256] = new State(new int[]{140,23,83,25,84,26,78,28,76,29},new int[]{-136,257,-140,24,-141,27});
states[257] = new State(-161);
states[258] = new State(-162);
states[259] = new State(new int[]{8,260});
states[260] = new State(new int[]{140,23,83,25,84,26,78,28,76,29},new int[]{-274,261,-170,174,-136,208,-140,24,-141,27});
states[261] = new State(new int[]{9,262});
states[262] = new State(-599);
states[263] = new State(-163);
states[264] = new State(new int[]{8,265});
states[265] = new State(new int[]{140,23,83,25,84,26,78,28,76,29},new int[]{-274,266,-273,268,-170,270,-136,208,-140,24,-141,27});
states[266] = new State(new int[]{9,267});
states[267] = new State(-600);
states[268] = new State(new int[]{9,269});
states[269] = new State(-601);
states[270] = new State(new int[]{7,175,4,271,120,273,122,1398,9,-606},new int[]{-289,177,-290,1399});
states[271] = new State(new int[]{120,273,122,1398},new int[]{-289,179,-290,272});
states[272] = new State(-605);
states[273] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,151,166,153,167,152,168,113,347,112,348,141,161,143,162,142,164,8,492,21,508,45,516,46,774,31,778,71,782,62,785,41,790,34,805,118,-230,97,-230},new int[]{-287,181,-288,274,-269,278,-262,185,-86,187,-96,279,-97,280,-170,281,-136,208,-140,24,-141,27,-15,487,-189,488,-154,491,-156,159,-155,163,-271,1357,-272,506,-268,507,-260,514,-28,515,-253,773,-119,777,-120,781,-216,1358,-214,788,-213,789,-291,1359,-270,1397});
states[274] = new State(new int[]{118,275,97,276});
states[275] = new State(-225);
states[276] = new State(-230,new int[]{-270,277});
states[277] = new State(-229);
states[278] = new State(-226);
states[279] = new State(new int[]{115,230,114,231,128,232,129,233,130,234,131,235,127,236,6,-239,113,-239,112,-239,125,-239,126,-239,13,-239,118,-239,97,-239,117,-239,9,-239,10,-239,124,-239,107,-239,89,-239,95,-239,98,-239,30,-239,101,-239,2,-239,29,-239,12,-239,96,-239,82,-239,81,-239,80,-239,79,-239,84,-239,83,-239,134,-239},new int[]{-185,190});
states[280] = new State(new int[]{8,192,115,-241,114,-241,128,-241,129,-241,130,-241,131,-241,127,-241,6,-241,113,-241,112,-241,125,-241,126,-241,13,-241,118,-241,97,-241,117,-241,9,-241,10,-241,124,-241,107,-241,89,-241,95,-241,98,-241,30,-241,101,-241,2,-241,29,-241,12,-241,96,-241,82,-241,81,-241,80,-241,79,-241,84,-241,83,-241,134,-241});
states[281] = new State(new int[]{7,175,124,282,120,180,8,-243,115,-243,114,-243,128,-243,129,-243,130,-243,131,-243,127,-243,6,-243,113,-243,112,-243,125,-243,126,-243,13,-243,118,-243,97,-243,117,-243,9,-243,10,-243,107,-243,89,-243,95,-243,98,-243,30,-243,101,-243,2,-243,29,-243,12,-243,96,-243,82,-243,81,-243,80,-243,79,-243,84,-243,83,-243,134,-243},new int[]{-289,837});
states[282] = new State(new int[]{8,284,140,23,83,25,84,26,78,28,76,29,151,166,153,167,152,168,113,347,112,348,141,161,143,162,142,164,21,508,45,516,46,774,31,778,71,782,62,785,41,790,34,805},new int[]{-269,283,-262,185,-86,187,-96,279,-97,280,-170,281,-136,208,-140,24,-141,27,-15,487,-189,488,-154,491,-156,159,-155,163,-271,1357,-272,506,-268,507,-260,514,-28,515,-253,773,-119,777,-120,781,-216,1358,-214,788,-213,789,-291,1359});
states[283] = new State(-278);
states[284] = new State(new int[]{9,285,140,450,83,25,84,26,78,28,76,29,151,166,153,167,152,168,113,347,112,348,141,161,143,162,142,164,8,492,139,503,21,508,45,516,46,774,31,778,71,782,62,785,41,790,34,805},new int[]{-74,290,-72,296,-266,299,-262,448,-86,187,-96,279,-97,280,-170,281,-136,208,-140,24,-141,27,-15,487,-189,488,-154,491,-156,159,-155,163,-263,494,-291,495,-246,501,-239,502,-271,505,-272,506,-268,507,-260,514,-28,515,-253,773,-119,777,-120,781,-216,787,-214,788,-213,789});
states[285] = new State(new int[]{124,286,118,-282,97,-282,117,-282,9,-282,10,-282,107,-282,89,-282,95,-282,98,-282,30,-282,101,-282,2,-282,29,-282,12,-282,96,-282,82,-282,81,-282,80,-282,79,-282,84,-282,83,-282,134,-282});
states[286] = new State(new int[]{8,288,140,23,83,25,84,26,78,28,76,29,151,166,153,167,152,168,113,347,112,348,141,161,143,162,142,164,21,508,45,516,46,774,31,778,71,782,62,785,41,790,34,805},new int[]{-269,287,-262,185,-86,187,-96,279,-97,280,-170,281,-136,208,-140,24,-141,27,-15,487,-189,488,-154,491,-156,159,-155,163,-271,1357,-272,506,-268,507,-260,514,-28,515,-253,773,-119,777,-120,781,-216,1358,-214,788,-213,789,-291,1359});
states[287] = new State(-280);
states[288] = new State(new int[]{9,289,140,450,83,25,84,26,78,28,76,29,151,166,153,167,152,168,113,347,112,348,141,161,143,162,142,164,8,492,139,503,21,508,45,516,46,774,31,778,71,782,62,785,41,790,34,805},new int[]{-74,290,-72,296,-266,299,-262,448,-86,187,-96,279,-97,280,-170,281,-136,208,-140,24,-141,27,-15,487,-189,488,-154,491,-156,159,-155,163,-263,494,-291,495,-246,501,-239,502,-271,505,-272,506,-268,507,-260,514,-28,515,-253,773,-119,777,-120,781,-216,787,-214,788,-213,789});
states[289] = new State(new int[]{124,286,118,-284,97,-284,117,-284,9,-284,10,-284,107,-284,89,-284,95,-284,98,-284,30,-284,101,-284,2,-284,29,-284,12,-284,96,-284,82,-284,81,-284,80,-284,79,-284,84,-284,83,-284,134,-284});
states[290] = new State(new int[]{9,291,97,945});
states[291] = new State(new int[]{124,292,13,-238,118,-238,97,-238,117,-238,9,-238,10,-238,107,-238,89,-238,95,-238,98,-238,30,-238,101,-238,2,-238,29,-238,12,-238,96,-238,82,-238,81,-238,80,-238,79,-238,84,-238,83,-238,134,-238});
states[292] = new State(new int[]{8,294,140,23,83,25,84,26,78,28,76,29,151,166,153,167,152,168,113,347,112,348,141,161,143,162,142,164,21,508,45,516,46,774,31,778,71,782,62,785,41,790,34,805},new int[]{-269,293,-262,185,-86,187,-96,279,-97,280,-170,281,-136,208,-140,24,-141,27,-15,487,-189,488,-154,491,-156,159,-155,163,-271,1357,-272,506,-268,507,-260,514,-28,515,-253,773,-119,777,-120,781,-216,1358,-214,788,-213,789,-291,1359});
states[293] = new State(-281);
states[294] = new State(new int[]{9,295,140,450,83,25,84,26,78,28,76,29,151,166,153,167,152,168,113,347,112,348,141,161,143,162,142,164,8,492,139,503,21,508,45,516,46,774,31,778,71,782,62,785,41,790,34,805},new int[]{-74,290,-72,296,-266,299,-262,448,-86,187,-96,279,-97,280,-170,281,-136,208,-140,24,-141,27,-15,487,-189,488,-154,491,-156,159,-155,163,-263,494,-291,495,-246,501,-239,502,-271,505,-272,506,-268,507,-260,514,-28,515,-253,773,-119,777,-120,781,-216,787,-214,788,-213,789});
states[295] = new State(new int[]{124,286,118,-285,97,-285,117,-285,9,-285,10,-285,107,-285,89,-285,95,-285,98,-285,30,-285,101,-285,2,-285,29,-285,12,-285,96,-285,82,-285,81,-285,80,-285,79,-285,84,-285,83,-285,134,-285});
states[296] = new State(new int[]{97,297});
states[297] = new State(new int[]{140,450,83,25,84,26,78,28,76,29,151,166,153,167,152,168,113,347,112,348,141,161,143,162,142,164,8,492,139,503,21,508,45,516,46,774,31,778,71,782,62,785,41,790,34,805},new int[]{-72,298,-266,299,-262,448,-86,187,-96,279,-97,280,-170,281,-136,208,-140,24,-141,27,-15,487,-189,488,-154,491,-156,159,-155,163,-263,494,-291,495,-246,501,-239,502,-271,505,-272,506,-268,507,-260,514,-28,515,-253,773,-119,777,-120,781,-216,787,-214,788,-213,789});
states[298] = new State(-250);
states[299] = new State(new int[]{117,300,97,-252,9,-252});
states[300] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,430,18,259,19,264,74,425,37,560,5,569},new int[]{-82,301,-92,140,-91,141,-90,302,-95,310,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559,-109,568});
states[301] = new State(-253);
states[302] = new State(new int[]{117,303,122,304,120,305,118,306,121,307,119,308,134,309,16,-597,89,-597,10,-597,95,-597,98,-597,30,-597,101,-597,2,-597,29,-597,97,-597,12,-597,9,-597,96,-597,82,-597,81,-597,80,-597,79,-597,84,-597,83,-597,13,-597,6,-597,74,-597,5,-597,48,-597,55,-597,138,-597,140,-597,78,-597,76,-597,42,-597,39,-597,8,-597,18,-597,19,-597,141,-597,143,-597,142,-597,151,-597,153,-597,152,-597,54,-597,88,-597,37,-597,22,-597,94,-597,51,-597,32,-597,52,-597,99,-597,44,-597,33,-597,50,-597,57,-597,72,-597,70,-597,35,-597,68,-597,69,-597,113,-597,112,-597,125,-597,126,-597,123,-597,135,-597,133,-597,115,-597,114,-597,128,-597,129,-597,130,-597,131,-597,127,-597},new int[]{-186,144});
states[303] = new State(-691);
states[304] = new State(-692);
states[305] = new State(-693);
states[306] = new State(-694);
states[307] = new State(-695);
states[308] = new State(-696);
states[309] = new State(-697);
states[310] = new State(new int[]{6,146,5,311,117,-620,122,-620,120,-620,118,-620,121,-620,119,-620,134,-620,16,-620,89,-620,10,-620,95,-620,98,-620,30,-620,101,-620,2,-620,29,-620,97,-620,12,-620,9,-620,96,-620,82,-620,81,-620,80,-620,79,-620,84,-620,83,-620,13,-620,74,-620});
states[311] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,430,18,259,19,264,74,425,5,-680,89,-680,10,-680,95,-680,98,-680,30,-680,101,-680,2,-680,29,-680,97,-680,12,-680,9,-680,96,-680,82,-680,81,-680,80,-680,79,-680,6,-680},new int[]{-104,312,-95,574,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,573,-257,550});
states[312] = new State(new int[]{5,313,89,-683,10,-683,95,-683,98,-683,30,-683,101,-683,2,-683,29,-683,97,-683,12,-683,9,-683,96,-683,82,-683,81,-683,80,-683,79,-683,84,-683,83,-683,6,-683,74,-683});
states[313] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,430,18,259,19,264,74,425},new int[]{-95,314,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,573,-257,550});
states[314] = new State(new int[]{6,146,89,-685,10,-685,95,-685,98,-685,30,-685,101,-685,2,-685,29,-685,97,-685,12,-685,9,-685,96,-685,82,-685,81,-685,80,-685,79,-685,84,-685,83,-685,74,-685});
states[315] = new State(new int[]{113,316,112,317,125,318,126,319,123,320,6,-698,5,-698,117,-698,122,-698,120,-698,118,-698,121,-698,119,-698,134,-698,16,-698,89,-698,10,-698,95,-698,98,-698,30,-698,101,-698,2,-698,29,-698,97,-698,12,-698,9,-698,96,-698,82,-698,81,-698,80,-698,79,-698,84,-698,83,-698,13,-698,74,-698,48,-698,55,-698,138,-698,140,-698,78,-698,76,-698,42,-698,39,-698,8,-698,18,-698,19,-698,141,-698,143,-698,142,-698,151,-698,153,-698,152,-698,54,-698,88,-698,37,-698,22,-698,94,-698,51,-698,32,-698,52,-698,99,-698,44,-698,33,-698,50,-698,57,-698,72,-698,70,-698,35,-698,68,-698,69,-698,135,-698,133,-698,115,-698,114,-698,128,-698,129,-698,130,-698,131,-698,127,-698},new int[]{-187,148});
states[316] = new State(-703);
states[317] = new State(-704);
states[318] = new State(-705);
states[319] = new State(-706);
states[320] = new State(-707);
states[321] = new State(new int[]{135,322,133,324,115,326,114,327,128,328,129,329,130,330,131,331,127,332,113,-700,112,-700,125,-700,126,-700,123,-700,6,-700,5,-700,117,-700,122,-700,120,-700,118,-700,121,-700,119,-700,134,-700,16,-700,89,-700,10,-700,95,-700,98,-700,30,-700,101,-700,2,-700,29,-700,97,-700,12,-700,9,-700,96,-700,82,-700,81,-700,80,-700,79,-700,84,-700,83,-700,13,-700,74,-700,48,-700,55,-700,138,-700,140,-700,78,-700,76,-700,42,-700,39,-700,8,-700,18,-700,19,-700,141,-700,143,-700,142,-700,151,-700,153,-700,152,-700,54,-700,88,-700,37,-700,22,-700,94,-700,51,-700,32,-700,52,-700,99,-700,44,-700,33,-700,50,-700,57,-700,72,-700,70,-700,35,-700,68,-700,69,-700},new int[]{-188,150});
states[322] = new State(new int[]{140,23,83,25,84,26,78,28,76,29},new int[]{-274,323,-170,174,-136,208,-140,24,-141,27});
states[323] = new State(-713);
states[324] = new State(new int[]{140,23,83,25,84,26,78,28,76,29},new int[]{-274,325,-170,174,-136,208,-140,24,-141,27});
states[325] = new State(-712);
states[326] = new State(-723);
states[327] = new State(-724);
states[328] = new State(-725);
states[329] = new State(-726);
states[330] = new State(-727);
states[331] = new State(-728);
states[332] = new State(-729);
states[333] = new State(new int[]{135,-716,133,-716,115,-716,114,-716,128,-716,129,-716,130,-716,131,-716,127,-716,113,-716,112,-716,125,-716,126,-716,123,-716,6,-716,5,-716,117,-716,122,-716,120,-716,118,-716,121,-716,119,-716,134,-716,16,-716,89,-716,10,-716,95,-716,98,-716,30,-716,101,-716,2,-716,29,-716,97,-716,12,-716,9,-716,96,-716,82,-716,81,-716,80,-716,79,-716,84,-716,83,-716,13,-716,74,-716,48,-716,55,-716,138,-716,140,-716,78,-716,76,-716,42,-716,39,-716,8,-716,18,-716,19,-716,141,-716,143,-716,142,-716,151,-716,153,-716,152,-716,54,-716,88,-716,37,-716,22,-716,94,-716,51,-716,32,-716,52,-716,99,-716,44,-716,33,-716,50,-716,57,-716,72,-716,70,-716,35,-716,68,-716,69,-716,116,-714});
states[334] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,430,18,259,19,264,74,425,37,560,5,569,12,-776},new int[]{-64,335,-71,337,-85,428,-82,340,-92,140,-91,141,-90,302,-95,310,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559,-109,568});
states[335] = new State(new int[]{12,336});
states[336] = new State(-735);
states[337] = new State(new int[]{97,338,12,-775,74,-775});
states[338] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,430,18,259,19,264,74,425,37,560,5,569},new int[]{-85,339,-82,340,-92,140,-91,141,-90,302,-95,310,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559,-109,568});
states[339] = new State(-778);
states[340] = new State(new int[]{6,341,97,-779,12,-779,74,-779});
states[341] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,430,18,259,19,264,74,425,37,560,5,569},new int[]{-82,342,-92,140,-91,141,-90,302,-95,310,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559,-109,568});
states[342] = new State(-780);
states[343] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,29,42,373,39,403,8,430,18,259,19,264,74,425},new int[]{-89,344,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468});
states[344] = new State(-736);
states[345] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,29,42,373,39,403,8,430,18,259,19,264,74,425},new int[]{-89,346,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468});
states[346] = new State(-737);
states[347] = new State(-156);
states[348] = new State(-157);
states[349] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,29,42,373,39,403,8,430,18,259,19,264,74,425},new int[]{-89,350,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468});
states[350] = new State(-738);
states[351] = new State(-739);
states[352] = new State(new int[]{138,1396,140,23,83,25,84,26,78,28,76,29,42,373,39,403,8,430,18,259,19,264,141,161,143,162,142,164,151,166,153,167,152,168,74,425},new int[]{-101,353,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-14,583,-154,158,-156,159,-155,163,-15,165,-16,420,-54,584});
states[353] = new State(new int[]{17,354,8,360,7,575,139,577,4,578,107,-745,108,-745,109,-745,110,-745,111,-745,89,-745,10,-745,95,-745,98,-745,30,-745,101,-745,2,-745,135,-745,133,-745,115,-745,114,-745,128,-745,129,-745,130,-745,131,-745,127,-745,113,-745,112,-745,125,-745,126,-745,123,-745,6,-745,5,-745,117,-745,122,-745,120,-745,118,-745,121,-745,119,-745,134,-745,16,-745,29,-745,97,-745,12,-745,9,-745,96,-745,82,-745,81,-745,80,-745,79,-745,84,-745,83,-745,13,-745,116,-745,74,-745,48,-745,55,-745,138,-745,140,-745,78,-745,76,-745,42,-745,39,-745,18,-745,19,-745,141,-745,143,-745,142,-745,151,-745,153,-745,152,-745,54,-745,88,-745,37,-745,22,-745,94,-745,51,-745,32,-745,52,-745,99,-745,44,-745,33,-745,50,-745,57,-745,72,-745,70,-745,35,-745,68,-745,69,-745,11,-756});
states[354] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,430,18,259,19,264,74,425,5,569},new int[]{-109,355,-95,357,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,573,-257,550});
states[355] = new State(new int[]{12,356});
states[356] = new State(-766);
states[357] = new State(new int[]{5,311,6,146});
states[358] = new State(-748);
states[359] = new State(new int[]{17,354,8,360,7,575,139,577,4,578,15,580,135,-746,133,-746,115,-746,114,-746,128,-746,129,-746,130,-746,131,-746,127,-746,113,-746,112,-746,125,-746,126,-746,123,-746,6,-746,5,-746,117,-746,122,-746,120,-746,118,-746,121,-746,119,-746,134,-746,16,-746,89,-746,10,-746,95,-746,98,-746,30,-746,101,-746,2,-746,29,-746,97,-746,12,-746,9,-746,96,-746,82,-746,81,-746,80,-746,79,-746,84,-746,83,-746,13,-746,116,-746,74,-746,48,-746,55,-746,138,-746,140,-746,78,-746,76,-746,42,-746,39,-746,18,-746,19,-746,141,-746,143,-746,142,-746,151,-746,153,-746,152,-746,54,-746,88,-746,37,-746,22,-746,94,-746,51,-746,32,-746,52,-746,99,-746,44,-746,33,-746,50,-746,57,-746,72,-746,70,-746,35,-746,68,-746,69,-746,11,-756});
states[360] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,405,18,259,19,264,74,425,37,560,5,569,34,705,41,709,9,-774},new int[]{-63,361,-66,363,-83,424,-82,139,-92,140,-91,141,-90,302,-95,310,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,366,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559,-109,568,-311,841,-312,704});
states[361] = new State(new int[]{9,362});
states[362] = new State(-768);
states[363] = new State(new int[]{97,364,12,-773,9,-773});
states[364] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,405,18,259,19,264,74,425,37,560,5,569,34,705,41,709},new int[]{-83,365,-82,139,-92,140,-91,141,-90,302,-95,310,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,366,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559,-109,568,-311,841,-312,704});
states[365] = new State(-578);
states[366] = new State(new int[]{124,367,17,-758,8,-758,7,-758,139,-758,4,-758,15,-758,135,-758,133,-758,115,-758,114,-758,128,-758,129,-758,130,-758,131,-758,127,-758,113,-758,112,-758,125,-758,126,-758,123,-758,6,-758,5,-758,117,-758,122,-758,120,-758,118,-758,121,-758,119,-758,134,-758,16,-758,89,-758,10,-758,95,-758,98,-758,30,-758,101,-758,2,-758,29,-758,97,-758,12,-758,9,-758,96,-758,82,-758,81,-758,80,-758,79,-758,84,-758,83,-758,13,-758,116,-758,11,-758});
states[367] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,405,18,259,19,264,74,425,34,705,41,709,88,129,37,616,51,644,94,639,32,649,33,675,70,723,22,623,99,665,57,731,44,672,72,922},new int[]{-317,368,-94,369,-91,370,-90,302,-95,371,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,366,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,702,-106,552,-311,703,-312,704,-319,932,-245,716,-142,717,-307,718,-237,719,-113,720,-112,721,-114,722,-32,917,-292,918,-158,919,-238,920,-115,921});
states[368] = new State(-936);
states[369] = new State(-971);
states[370] = new State(new int[]{16,142,89,-594,10,-594,95,-594,98,-594,30,-594,101,-594,2,-594,29,-594,97,-594,12,-594,9,-594,96,-594,82,-594,81,-594,80,-594,79,-594,84,-594,83,-594,13,-588});
states[371] = new State(new int[]{6,146,117,-620,122,-620,120,-620,118,-620,121,-620,119,-620,134,-620,16,-620,89,-620,10,-620,95,-620,98,-620,30,-620,101,-620,2,-620,29,-620,97,-620,12,-620,9,-620,96,-620,82,-620,81,-620,80,-620,79,-620,84,-620,83,-620,13,-620,74,-620,5,-620,48,-620,55,-620,138,-620,140,-620,78,-620,76,-620,42,-620,39,-620,8,-620,18,-620,19,-620,141,-620,143,-620,142,-620,151,-620,153,-620,152,-620,54,-620,88,-620,37,-620,22,-620,94,-620,51,-620,32,-620,52,-620,99,-620,44,-620,33,-620,50,-620,57,-620,72,-620,70,-620,35,-620,68,-620,69,-620,113,-620,112,-620,125,-620,126,-620,123,-620,135,-620,133,-620,115,-620,114,-620,128,-620,129,-620,130,-620,131,-620,127,-620});
states[372] = new State(-759);
states[373] = new State(new int[]{112,375,113,376,114,377,115,378,117,379,118,380,119,381,120,382,121,383,122,384,125,385,126,386,127,387,128,388,129,389,130,390,131,391,132,392,134,393,136,394,137,395,107,397,108,398,109,399,110,400,111,401,116,402},new int[]{-190,374,-184,396});
states[374] = new State(-787);
states[375] = new State(-908);
states[376] = new State(-909);
states[377] = new State(-910);
states[378] = new State(-911);
states[379] = new State(-912);
states[380] = new State(-913);
states[381] = new State(-914);
states[382] = new State(-915);
states[383] = new State(-916);
states[384] = new State(-917);
states[385] = new State(-918);
states[386] = new State(-919);
states[387] = new State(-920);
states[388] = new State(-921);
states[389] = new State(-922);
states[390] = new State(-923);
states[391] = new State(-924);
states[392] = new State(-925);
states[393] = new State(-926);
states[394] = new State(-927);
states[395] = new State(-928);
states[396] = new State(-929);
states[397] = new State(-931);
states[398] = new State(-932);
states[399] = new State(-933);
states[400] = new State(-934);
states[401] = new State(-935);
states[402] = new State(-930);
states[403] = new State(new int[]{140,23,83,25,84,26,78,28,76,29},new int[]{-136,404,-140,24,-141,27});
states[404] = new State(-760);
states[405] = new State(new int[]{9,1373,53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,430,18,259,19,264,74,425,37,560,5,569},new int[]{-82,406,-92,408,-136,1377,-91,141,-90,302,-95,310,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559,-109,568});
states[406] = new State(new int[]{9,407});
states[407] = new State(-761);
states[408] = new State(new int[]{97,409,9,-583});
states[409] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,430,18,259,19,264,74,425,37,560},new int[]{-73,410,-92,1372,-91,141,-90,302,-95,371,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559});
states[410] = new State(new int[]{97,1370,5,445,10,-955,9,-955},new int[]{-313,411});
states[411] = new State(new int[]{10,437,9,-943},new int[]{-320,412});
states[412] = new State(new int[]{9,413});
states[413] = new State(new int[]{5,938,7,-731,135,-731,133,-731,115,-731,114,-731,128,-731,129,-731,130,-731,131,-731,127,-731,113,-731,112,-731,125,-731,126,-731,123,-731,6,-731,117,-731,122,-731,120,-731,118,-731,121,-731,119,-731,134,-731,16,-731,89,-731,10,-731,95,-731,98,-731,30,-731,101,-731,2,-731,29,-731,97,-731,12,-731,9,-731,96,-731,82,-731,81,-731,80,-731,79,-731,84,-731,83,-731,13,-731,116,-731,124,-957},new int[]{-324,414,-314,415});
states[414] = new State(-941);
states[415] = new State(new int[]{124,416});
states[416] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,405,18,259,19,264,74,425,34,705,41,709,88,129,37,616,51,644,94,639,32,649,33,675,70,723,22,623,99,665,57,731,44,672,72,922},new int[]{-317,417,-94,369,-91,370,-90,302,-95,371,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,366,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,702,-106,552,-311,703,-312,704,-319,932,-245,716,-142,717,-307,718,-237,719,-113,720,-112,721,-114,722,-32,917,-292,918,-158,919,-238,920,-115,921});
states[417] = new State(-945);
states[418] = new State(-762);
states[419] = new State(-763);
states[420] = new State(new int[]{11,421});
states[421] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,405,18,259,19,264,74,425,37,560,5,569,34,705,41,709},new int[]{-66,422,-83,424,-82,139,-92,140,-91,141,-90,302,-95,310,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,366,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559,-109,568,-311,841,-312,704});
states[422] = new State(new int[]{12,423,97,364});
states[423] = new State(-765);
states[424] = new State(-577);
states[425] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,430,18,259,19,264,74,425,37,560,5,569},new int[]{-64,426,-71,337,-85,428,-82,340,-92,140,-91,141,-90,302,-95,310,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559,-109,568});
states[426] = new State(new int[]{74,427});
states[427] = new State(-767);
states[428] = new State(-777);
states[429] = new State(-758);
states[430] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,430,18,259,19,264,74,425,37,560,5,569},new int[]{-82,406,-92,431,-91,141,-90,302,-95,310,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559,-109,568});
states[431] = new State(new int[]{97,432,9,-583});
states[432] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,430,18,259,19,264,74,425,37,560},new int[]{-73,433,-92,1372,-91,141,-90,302,-95,371,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559});
states[433] = new State(new int[]{97,1370,5,445,10,-955,9,-955},new int[]{-313,434});
states[434] = new State(new int[]{10,437,9,-943},new int[]{-320,435});
states[435] = new State(new int[]{9,436});
states[436] = new State(-731);
states[437] = new State(new int[]{140,23,83,25,84,26,78,28,76,29},new int[]{-315,438,-316,931,-147,441,-136,692,-140,24,-141,27});
states[438] = new State(new int[]{10,439,9,-944});
states[439] = new State(new int[]{140,23,83,25,84,26,78,28,76,29},new int[]{-316,440,-147,441,-136,692,-140,24,-141,27});
states[440] = new State(-953);
states[441] = new State(new int[]{97,443,5,445,10,-955,9,-955},new int[]{-313,442});
states[442] = new State(-954);
states[443] = new State(new int[]{140,23,83,25,84,26,78,28,76,29},new int[]{-136,444,-140,24,-141,27});
states[444] = new State(-334);
states[445] = new State(new int[]{140,450,83,25,84,26,78,28,76,29,151,166,153,167,152,168,113,347,112,348,141,161,143,162,142,164,8,492,139,503,21,508,45,516,46,774,31,778,71,782,62,785,41,790,34,805},new int[]{-265,446,-266,447,-262,448,-86,187,-96,279,-97,280,-170,281,-136,208,-140,24,-141,27,-15,487,-189,488,-154,491,-156,159,-155,163,-263,494,-291,495,-246,501,-239,502,-271,505,-272,506,-268,507,-260,514,-28,515,-253,773,-119,777,-120,781,-216,787,-214,788,-213,789});
states[446] = new State(-956);
states[447] = new State(-471);
states[448] = new State(new int[]{13,449,117,-215,97,-215,9,-215,10,-215,124,-215,118,-215,107,-215,89,-215,95,-215,98,-215,30,-215,101,-215,2,-215,29,-215,12,-215,96,-215,82,-215,81,-215,80,-215,79,-215,84,-215,83,-215,134,-215});
states[449] = new State(-213);
states[450] = new State(new int[]{11,451,7,-794,124,-794,120,-794,8,-794,115,-794,114,-794,128,-794,129,-794,130,-794,131,-794,127,-794,6,-794,113,-794,112,-794,125,-794,126,-794,13,-794,117,-794,97,-794,9,-794,10,-794,118,-794,107,-794,89,-794,95,-794,98,-794,30,-794,101,-794,2,-794,29,-794,12,-794,96,-794,82,-794,81,-794,80,-794,79,-794,84,-794,83,-794,134,-794});
states[451] = new State(new int[]{140,23,83,25,84,26,78,28,76,239,141,161,143,162,142,164,151,166,153,167,152,168,39,256,18,259,19,264,11,455,74,459,53,956,138,957,8,959,132,962,113,347,112,348},new int[]{-84,452,-75,203,-12,227,-10,237,-13,213,-136,238,-140,24,-141,27,-154,254,-156,159,-155,163,-15,255,-247,258,-285,263,-229,454,-189,964,-163,966,-255,967,-259,968,-231,969});
states[452] = new State(new int[]{12,453,13,199});
states[453] = new State(-273);
states[454] = new State(-147);
states[455] = new State(new int[]{140,23,83,25,84,26,78,28,76,239,141,161,143,162,142,164,151,166,153,167,152,168,39,256,18,259,19,264,11,455,74,459,53,956,138,957,8,959,132,962,113,347,112,348,12,-174},new int[]{-69,456,-67,195,-87,458,-84,198,-75,203,-12,227,-10,237,-13,213,-136,238,-140,24,-141,27,-154,254,-156,159,-155,163,-15,255,-247,258,-285,263,-229,454,-189,964,-163,966,-255,967,-259,968,-231,969});
states[456] = new State(new int[]{12,457});
states[457] = new State(-154);
states[458] = new State(-175);
states[459] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,430,18,259,19,264,74,425,37,560,5,569},new int[]{-64,460,-71,337,-85,428,-82,340,-92,140,-91,141,-90,302,-95,310,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559,-109,568});
states[460] = new State(new int[]{74,461});
states[461] = new State(-155);
states[462] = new State(new int[]{7,463,135,-740,133,-740,115,-740,114,-740,128,-740,129,-740,130,-740,131,-740,127,-740,113,-740,112,-740,125,-740,126,-740,123,-740,6,-740,5,-740,117,-740,122,-740,120,-740,118,-740,121,-740,119,-740,134,-740,16,-740,89,-740,10,-740,95,-740,98,-740,30,-740,101,-740,2,-740,29,-740,97,-740,12,-740,9,-740,96,-740,82,-740,81,-740,80,-740,79,-740,84,-740,83,-740,13,-740,116,-740,74,-740,48,-740,55,-740,138,-740,140,-740,78,-740,76,-740,42,-740,39,-740,8,-740,18,-740,19,-740,141,-740,143,-740,142,-740,151,-740,153,-740,152,-740,54,-740,88,-740,37,-740,22,-740,94,-740,51,-740,32,-740,52,-740,99,-740,44,-740,33,-740,50,-740,57,-740,72,-740,70,-740,35,-740,68,-740,69,-740});
states[463] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,82,32,81,33,80,34,79,35,66,36,61,37,125,38,19,39,18,40,60,41,20,42,126,43,127,44,128,45,129,46,130,47,131,48,132,49,133,50,134,51,135,52,21,53,71,54,88,55,22,56,23,57,26,58,27,59,28,60,69,61,96,62,29,63,89,64,30,65,31,66,24,67,101,68,98,69,32,70,33,71,34,72,37,73,38,74,39,75,100,76,40,77,41,78,43,79,44,80,45,81,94,82,46,83,99,84,47,85,25,86,48,87,68,88,95,89,49,90,50,91,51,92,52,93,53,94,54,95,55,96,56,97,58,98,102,99,103,100,106,101,104,102,105,103,59,104,72,105,35,106,36,107,67,108,144,109,57,110,136,111,137,112,77,113,149,114,148,115,70,116,150,117,146,118,147,119,145,120,42,373},new int[]{-137,464,-136,465,-140,24,-141,27,-283,466,-139,31,-181,467});
states[464] = new State(-770);
states[465] = new State(-800);
states[466] = new State(-801);
states[467] = new State(-802);
states[468] = new State(-747);
states[469] = new State(-717);
states[470] = new State(-718);
states[471] = new State(new int[]{116,472});
states[472] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,29,42,373,39,403,8,430,18,259,19,264,74,425},new int[]{-89,473,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468});
states[473] = new State(-715);
states[474] = new State(-722);
states[475] = new State(new int[]{8,476,135,-710,133,-710,115,-710,114,-710,128,-710,129,-710,130,-710,131,-710,127,-710,113,-710,112,-710,125,-710,126,-710,123,-710,6,-710,5,-710,117,-710,122,-710,120,-710,118,-710,121,-710,119,-710,134,-710,16,-710,89,-710,10,-710,95,-710,98,-710,30,-710,101,-710,2,-710,29,-710,97,-710,12,-710,9,-710,96,-710,82,-710,81,-710,80,-710,79,-710,84,-710,83,-710,13,-710,74,-710,48,-710,55,-710,138,-710,140,-710,78,-710,76,-710,42,-710,39,-710,18,-710,19,-710,141,-710,143,-710,142,-710,151,-710,153,-710,152,-710,54,-710,88,-710,37,-710,22,-710,94,-710,51,-710,32,-710,52,-710,99,-710,44,-710,33,-710,50,-710,57,-710,72,-710,70,-710,35,-710,68,-710,69,-710});
states[476] = new State(new int[]{14,481,141,161,143,162,142,164,151,166,153,167,152,168,50,483,140,23,83,25,84,26,78,28,76,29,11,862,8,875},new int[]{-342,477,-340,1369,-14,482,-154,158,-156,159,-155,163,-15,165,-329,1360,-274,1361,-170,174,-136,208,-140,24,-141,27,-332,1367,-333,1368});
states[477] = new State(new int[]{9,478,10,479,97,1365});
states[478] = new State(-623);
states[479] = new State(new int[]{14,481,141,161,143,162,142,164,151,166,153,167,152,168,50,483,140,23,83,25,84,26,78,28,76,29,11,862,8,875},new int[]{-340,480,-14,482,-154,158,-156,159,-155,163,-15,165,-329,1360,-274,1361,-170,174,-136,208,-140,24,-141,27,-332,1367,-333,1368});
states[480] = new State(-660);
states[481] = new State(-662);
states[482] = new State(-663);
states[483] = new State(new int[]{140,23,83,25,84,26,78,28,76,29},new int[]{-136,484,-140,24,-141,27});
states[484] = new State(new int[]{5,485,9,-665,10,-665,97,-665});
states[485] = new State(new int[]{140,450,83,25,84,26,78,28,76,29,151,166,153,167,152,168,113,347,112,348,141,161,143,162,142,164,8,492,139,503,21,508,45,516,46,774,31,778,71,782,62,785,41,790,34,805},new int[]{-266,486,-262,448,-86,187,-96,279,-97,280,-170,281,-136,208,-140,24,-141,27,-15,487,-189,488,-154,491,-156,159,-155,163,-263,494,-291,495,-246,501,-239,502,-271,505,-272,506,-268,507,-260,514,-28,515,-253,773,-119,777,-120,781,-216,787,-214,788,-213,789});
states[486] = new State(-664);
states[487] = new State(-244);
states[488] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,151,166,153,167,152,168,113,347,112,348,141,161,143,162,142,164},new int[]{-97,489,-170,490,-136,208,-140,24,-141,27,-15,487,-189,488,-154,491,-156,159,-155,163});
states[489] = new State(new int[]{8,192,115,-245,114,-245,128,-245,129,-245,130,-245,131,-245,127,-245,6,-245,113,-245,112,-245,125,-245,126,-245,13,-245,118,-245,97,-245,117,-245,9,-245,10,-245,124,-245,107,-245,89,-245,95,-245,98,-245,30,-245,101,-245,2,-245,29,-245,12,-245,96,-245,82,-245,81,-245,80,-245,79,-245,84,-245,83,-245,134,-245});
states[490] = new State(new int[]{7,175,8,-243,115,-243,114,-243,128,-243,129,-243,130,-243,131,-243,127,-243,6,-243,113,-243,112,-243,125,-243,126,-243,13,-243,118,-243,97,-243,117,-243,9,-243,10,-243,124,-243,107,-243,89,-243,95,-243,98,-243,30,-243,101,-243,2,-243,29,-243,12,-243,96,-243,82,-243,81,-243,80,-243,79,-243,84,-243,83,-243,134,-243});
states[491] = new State(-246);
states[492] = new State(new int[]{9,493,140,450,83,25,84,26,78,28,76,29,151,166,153,167,152,168,113,347,112,348,141,161,143,162,142,164,8,492,139,503,21,508,45,516,46,774,31,778,71,782,62,785,41,790,34,805},new int[]{-74,290,-72,296,-266,299,-262,448,-86,187,-96,279,-97,280,-170,281,-136,208,-140,24,-141,27,-15,487,-189,488,-154,491,-156,159,-155,163,-263,494,-291,495,-246,501,-239,502,-271,505,-272,506,-268,507,-260,514,-28,515,-253,773,-119,777,-120,781,-216,787,-214,788,-213,789});
states[493] = new State(new int[]{124,286});
states[494] = new State(-216);
states[495] = new State(new int[]{13,496,124,497,117,-221,97,-221,9,-221,10,-221,118,-221,107,-221,89,-221,95,-221,98,-221,30,-221,101,-221,2,-221,29,-221,12,-221,96,-221,82,-221,81,-221,80,-221,79,-221,84,-221,83,-221,134,-221});
states[496] = new State(-214);
states[497] = new State(new int[]{8,499,140,23,83,25,84,26,78,28,76,29,151,166,153,167,152,168,113,347,112,348,141,161,143,162,142,164,21,508,45,516,46,774,31,778,71,782,62,785,41,790,34,805},new int[]{-269,498,-262,185,-86,187,-96,279,-97,280,-170,281,-136,208,-140,24,-141,27,-15,487,-189,488,-154,491,-156,159,-155,163,-271,1357,-272,506,-268,507,-260,514,-28,515,-253,773,-119,777,-120,781,-216,1358,-214,788,-213,789,-291,1359});
states[498] = new State(-279);
states[499] = new State(new int[]{9,500,140,450,83,25,84,26,78,28,76,29,151,166,153,167,152,168,113,347,112,348,141,161,143,162,142,164,8,492,139,503,21,508,45,516,46,774,31,778,71,782,62,785,41,790,34,805},new int[]{-74,290,-72,296,-266,299,-262,448,-86,187,-96,279,-97,280,-170,281,-136,208,-140,24,-141,27,-15,487,-189,488,-154,491,-156,159,-155,163,-263,494,-291,495,-246,501,-239,502,-271,505,-272,506,-268,507,-260,514,-28,515,-253,773,-119,777,-120,781,-216,787,-214,788,-213,789});
states[500] = new State(new int[]{124,286,118,-283,97,-283,117,-283,9,-283,10,-283,107,-283,89,-283,95,-283,98,-283,30,-283,101,-283,2,-283,29,-283,12,-283,96,-283,82,-283,81,-283,80,-283,79,-283,84,-283,83,-283,134,-283});
states[501] = new State(-217);
states[502] = new State(-218);
states[503] = new State(new int[]{140,450,83,25,84,26,78,28,76,29,151,166,153,167,152,168,113,347,112,348,141,161,143,162,142,164,8,492,139,503,21,508,45,516,46,774,31,778,71,782,62,785,41,790,34,805},new int[]{-265,504,-266,447,-262,448,-86,187,-96,279,-97,280,-170,281,-136,208,-140,24,-141,27,-15,487,-189,488,-154,491,-156,159,-155,163,-263,494,-291,495,-246,501,-239,502,-271,505,-272,506,-268,507,-260,514,-28,515,-253,773,-119,777,-120,781,-216,787,-214,788,-213,789});
states[504] = new State(-254);
states[505] = new State(-219);
states[506] = new State(-255);
states[507] = new State(-257);
states[508] = new State(new int[]{11,509,55,1355});
states[509] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,151,166,153,167,152,168,113,347,112,348,141,161,143,162,142,164,8,942,12,-269,97,-269},new int[]{-153,510,-261,1354,-262,1353,-86,187,-96,279,-97,280,-170,490,-136,208,-140,24,-141,27,-15,487,-189,488,-154,491,-156,159,-155,163});
states[510] = new State(new int[]{12,511,97,1351});
states[511] = new State(new int[]{55,512});
states[512] = new State(new int[]{140,450,83,25,84,26,78,28,76,29,151,166,153,167,152,168,113,347,112,348,141,161,143,162,142,164,8,492,139,503,21,508,45,516,46,774,31,778,71,782,62,785,41,790,34,805},new int[]{-266,513,-262,448,-86,187,-96,279,-97,280,-170,281,-136,208,-140,24,-141,27,-15,487,-189,488,-154,491,-156,159,-155,163,-263,494,-291,495,-246,501,-239,502,-271,505,-272,506,-268,507,-260,514,-28,515,-253,773,-119,777,-120,781,-216,787,-214,788,-213,789});
states[513] = new State(-263);
states[514] = new State(-264);
states[515] = new State(-258);
states[516] = new State(new int[]{8,1227,20,-305,11,-305,89,-305,82,-305,81,-305,80,-305,79,-305,26,-305,140,-305,83,-305,84,-305,78,-305,76,-305,59,-305,25,-305,23,-305,41,-305,34,-305,27,-305,28,-305,43,-305,24,-305},new int[]{-173,517});
states[517] = new State(new int[]{20,1218,11,-312,89,-312,82,-312,81,-312,80,-312,79,-312,26,-312,140,-312,83,-312,84,-312,78,-312,76,-312,59,-312,25,-312,23,-312,41,-312,34,-312,27,-312,28,-312,43,-312,24,-312},new int[]{-306,518,-305,1216,-304,1238});
states[518] = new State(new int[]{11,829,89,-329,82,-329,81,-329,80,-329,79,-329,26,-200,140,-200,83,-200,84,-200,78,-200,76,-200,59,-200,25,-200,23,-200,41,-200,34,-200,27,-200,28,-200,43,-200,24,-200},new int[]{-22,519,-29,1196,-31,523,-41,1197,-6,1198,-240,848,-30,1307,-50,1309,-49,529,-51,1308});
states[519] = new State(new int[]{89,520,82,1192,81,1193,80,1194,79,1195},new int[]{-7,521});
states[520] = new State(-287);
states[521] = new State(new int[]{11,829,89,-329,82,-329,81,-329,80,-329,79,-329,26,-200,140,-200,83,-200,84,-200,78,-200,76,-200,59,-200,25,-200,23,-200,41,-200,34,-200,27,-200,28,-200,43,-200,24,-200},new int[]{-29,522,-31,523,-41,1197,-6,1198,-240,848,-30,1307,-50,1309,-49,529,-51,1308});
states[522] = new State(-324);
states[523] = new State(new int[]{10,525,89,-335,82,-335,81,-335,80,-335,79,-335},new int[]{-180,524});
states[524] = new State(-330);
states[525] = new State(new int[]{11,829,89,-336,82,-336,81,-336,80,-336,79,-336,26,-200,140,-200,83,-200,84,-200,78,-200,76,-200,59,-200,25,-200,23,-200,41,-200,34,-200,27,-200,28,-200,43,-200,24,-200},new int[]{-41,526,-30,527,-6,1198,-240,848,-50,1309,-49,529,-51,1308});
states[526] = new State(-338);
states[527] = new State(new int[]{11,829,89,-332,82,-332,81,-332,80,-332,79,-332,25,-200,23,-200,41,-200,34,-200,27,-200,28,-200,43,-200,24,-200},new int[]{-50,528,-49,529,-6,530,-240,848,-51,1308});
states[528] = new State(-341);
states[529] = new State(-342);
states[530] = new State(new int[]{25,1263,23,1264,41,1211,34,1246,27,1278,28,1285,11,829,43,1292,24,1301},new int[]{-212,531,-240,532,-209,533,-248,534,-3,535,-220,1265,-218,1140,-215,1210,-219,1245,-217,1266,-205,1289,-206,1290,-208,1291});
states[531] = new State(-351);
states[532] = new State(-199);
states[533] = new State(-352);
states[534] = new State(-370);
states[535] = new State(new int[]{27,537,43,1089,24,1132,41,1211,34,1246},new int[]{-220,536,-206,1088,-218,1140,-215,1210,-219,1245});
states[536] = new State(-355);
states[537] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,42,373,8,-365,107,-365,10,-365},new int[]{-161,538,-160,1071,-159,1072,-131,1073,-126,1074,-123,1075,-136,1080,-140,24,-141,27,-181,1081,-323,1083,-138,1087});
states[538] = new State(new int[]{8,792,107,-455,10,-455},new int[]{-117,539});
states[539] = new State(new int[]{107,541,10,1060},new int[]{-197,540});
states[540] = new State(-362);
states[541] = new State(new int[]{138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,585,8,586,18,259,19,264,141,161,143,162,142,164,151,166,153,167,152,168,74,425,54,610,88,129,37,616,22,623,94,639,51,644,32,649,52,659,99,665,44,672,33,675,50,683,57,731,72,736,70,723,35,745,10,-479},new int[]{-250,542,-4,135,-102,136,-121,352,-101,544,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-14,583,-154,158,-156,159,-155,163,-15,165,-16,420,-54,584,-105,468,-202,608,-122,609,-245,614,-142,615,-32,622,-237,638,-307,643,-113,648,-308,658,-149,663,-292,664,-238,671,-112,674,-303,682,-55,727,-164,728,-163,729,-158,730,-115,735,-116,742,-114,743,-337,744});
states[542] = new State(new int[]{10,543});
states[543] = new State(-414);
states[544] = new State(new int[]{17,545,8,360,7,575,139,577,4,578,15,580,107,-746,108,-746,109,-746,110,-746,111,-746,89,-746,10,-746,95,-746,98,-746,30,-746,101,-746,2,-746,29,-746,97,-746,12,-746,9,-746,96,-746,82,-746,81,-746,80,-746,79,-746,84,-746,83,-746,135,-746,133,-746,115,-746,114,-746,128,-746,129,-746,130,-746,131,-746,127,-746,113,-746,112,-746,125,-746,126,-746,123,-746,6,-746,5,-746,117,-746,122,-746,120,-746,118,-746,121,-746,119,-746,134,-746,16,-746,13,-746,116,-746,11,-756});
states[545] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,430,18,259,19,264,74,425,5,569},new int[]{-109,546,-95,357,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,573,-257,550});
states[546] = new State(new int[]{12,547});
states[547] = new State(new int[]{107,397,108,398,109,399,110,400,111,401,17,-766,8,-766,7,-766,139,-766,4,-766,15,-766,89,-766,10,-766,11,-766,95,-766,98,-766,30,-766,101,-766,2,-766,29,-766,97,-766,12,-766,9,-766,96,-766,82,-766,81,-766,80,-766,79,-766,84,-766,83,-766,135,-766,133,-766,115,-766,114,-766,128,-766,129,-766,130,-766,131,-766,127,-766,113,-766,112,-766,125,-766,126,-766,123,-766,6,-766,5,-766,117,-766,122,-766,120,-766,118,-766,121,-766,119,-766,134,-766,16,-766,13,-766,116,-766},new int[]{-184,548});
states[548] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,430,18,259,19,264,74,425,37,560,5,569},new int[]{-82,549,-92,140,-91,141,-90,302,-95,310,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559,-109,568});
states[549] = new State(-509);
states[550] = new State(-711);
states[551] = new State(new int[]{89,-586,10,-586,95,-586,98,-586,30,-586,101,-586,2,-586,29,-586,97,-586,12,-586,9,-586,96,-586,82,-586,81,-586,80,-586,79,-586,84,-586,83,-586,6,-586,74,-586,5,-586,48,-586,55,-586,138,-586,140,-586,78,-586,76,-586,42,-586,39,-586,8,-586,18,-586,19,-586,141,-586,143,-586,142,-586,151,-586,153,-586,152,-586,54,-586,88,-586,37,-586,22,-586,94,-586,51,-586,32,-586,52,-586,99,-586,44,-586,33,-586,50,-586,57,-586,72,-586,70,-586,35,-586,68,-586,69,-586,13,-589});
states[552] = new State(new int[]{13,553});
states[553] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,430,18,259,19,264,74,425},new int[]{-106,554,-91,557,-90,302,-95,371,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,558});
states[554] = new State(new int[]{5,555,13,553});
states[555] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,430,18,259,19,264,74,425},new int[]{-106,556,-91,557,-90,302,-95,371,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,558});
states[556] = new State(new int[]{13,553,89,-602,10,-602,95,-602,98,-602,30,-602,101,-602,2,-602,29,-602,97,-602,12,-602,9,-602,96,-602,82,-602,81,-602,80,-602,79,-602,84,-602,83,-602,6,-602,74,-602,5,-602,48,-602,55,-602,138,-602,140,-602,78,-602,76,-602,42,-602,39,-602,8,-602,18,-602,19,-602,141,-602,143,-602,142,-602,151,-602,153,-602,152,-602,54,-602,88,-602,37,-602,22,-602,94,-602,51,-602,32,-602,52,-602,99,-602,44,-602,33,-602,50,-602,57,-602,72,-602,70,-602,35,-602,68,-602,69,-602});
states[557] = new State(new int[]{16,142,5,-588,13,-588,89,-588,10,-588,95,-588,98,-588,30,-588,101,-588,2,-588,29,-588,97,-588,12,-588,9,-588,96,-588,82,-588,81,-588,80,-588,79,-588,84,-588,83,-588,6,-588,74,-588,48,-588,55,-588,138,-588,140,-588,78,-588,76,-588,42,-588,39,-588,8,-588,18,-588,19,-588,141,-588,143,-588,142,-588,151,-588,153,-588,152,-588,54,-588,88,-588,37,-588,22,-588,94,-588,51,-588,32,-588,52,-588,99,-588,44,-588,33,-588,50,-588,57,-588,72,-588,70,-588,35,-588,68,-588,69,-588});
states[558] = new State(-589);
states[559] = new State(-587);
states[560] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,430,18,259,19,264,74,425,37,560},new int[]{-107,561,-91,566,-90,302,-95,371,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-232,567});
states[561] = new State(new int[]{48,562});
states[562] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,430,18,259,19,264,74,425,37,560},new int[]{-107,563,-91,566,-90,302,-95,371,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-232,567});
states[563] = new State(new int[]{29,564});
states[564] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,430,18,259,19,264,74,425,37,560},new int[]{-107,565,-91,566,-90,302,-95,371,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-232,567});
states[565] = new State(-603);
states[566] = new State(new int[]{16,142,48,-590,29,-590,117,-590,122,-590,120,-590,118,-590,121,-590,119,-590,134,-590,89,-590,10,-590,95,-590,98,-590,30,-590,101,-590,2,-590,97,-590,12,-590,9,-590,96,-590,82,-590,81,-590,80,-590,79,-590,84,-590,83,-590,13,-590,6,-590,74,-590,5,-590,55,-590,138,-590,140,-590,78,-590,76,-590,42,-590,39,-590,8,-590,18,-590,19,-590,141,-590,143,-590,142,-590,151,-590,153,-590,152,-590,54,-590,88,-590,37,-590,22,-590,94,-590,51,-590,32,-590,52,-590,99,-590,44,-590,33,-590,50,-590,57,-590,72,-590,70,-590,35,-590,68,-590,69,-590,113,-590,112,-590,125,-590,126,-590,123,-590,135,-590,133,-590,115,-590,114,-590,128,-590,129,-590,130,-590,131,-590,127,-590});
states[567] = new State(-591);
states[568] = new State(-584);
states[569] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,430,18,259,19,264,74,425,5,-680,89,-680,10,-680,95,-680,98,-680,30,-680,101,-680,2,-680,29,-680,97,-680,12,-680,9,-680,96,-680,82,-680,81,-680,80,-680,79,-680,6,-680},new int[]{-104,570,-95,574,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,573,-257,550});
states[570] = new State(new int[]{5,571,89,-684,10,-684,95,-684,98,-684,30,-684,101,-684,2,-684,29,-684,97,-684,12,-684,9,-684,96,-684,82,-684,81,-684,80,-684,79,-684,84,-684,83,-684,6,-684,74,-684});
states[571] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,430,18,259,19,264,74,425},new int[]{-95,572,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,573,-257,550});
states[572] = new State(new int[]{6,146,89,-686,10,-686,95,-686,98,-686,30,-686,101,-686,2,-686,29,-686,97,-686,12,-686,9,-686,96,-686,82,-686,81,-686,80,-686,79,-686,84,-686,83,-686,74,-686});
states[573] = new State(-710);
states[574] = new State(new int[]{6,146,5,-679,89,-679,10,-679,95,-679,98,-679,30,-679,101,-679,2,-679,29,-679,97,-679,12,-679,9,-679,96,-679,82,-679,81,-679,80,-679,79,-679,84,-679,83,-679,74,-679});
states[575] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,82,32,81,33,80,34,79,35,66,36,61,37,125,38,19,39,18,40,60,41,20,42,126,43,127,44,128,45,129,46,130,47,131,48,132,49,133,50,134,51,135,52,21,53,71,54,88,55,22,56,23,57,26,58,27,59,28,60,69,61,96,62,29,63,89,64,30,65,31,66,24,67,101,68,98,69,32,70,33,71,34,72,37,73,38,74,39,75,100,76,40,77,41,78,43,79,44,80,45,81,94,82,46,83,99,84,47,85,25,86,48,87,68,88,95,89,49,90,50,91,51,92,52,93,53,94,54,95,55,96,56,97,58,98,102,99,103,100,106,101,104,102,105,103,59,104,72,105,35,106,36,107,67,108,144,109,57,110,136,111,137,112,77,113,149,114,148,115,70,116,150,117,146,118,147,119,145,120,42,373},new int[]{-137,576,-136,465,-140,24,-141,27,-283,466,-139,31,-181,467});
states[576] = new State(-769);
states[577] = new State(-771);
states[578] = new State(new int[]{120,180},new int[]{-289,579});
states[579] = new State(-772);
states[580] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,42,373,39,403,8,430,18,259,19,264,141,161,143,162,142,164,151,166,153,167,152,168,74,425},new int[]{-101,581,-105,582,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-14,583,-154,158,-156,159,-155,163,-15,165,-16,420,-54,584});
states[581] = new State(new int[]{17,354,8,360,7,575,139,577,4,578,15,580,107,-743,108,-743,109,-743,110,-743,111,-743,89,-743,10,-743,95,-743,98,-743,30,-743,101,-743,2,-743,135,-743,133,-743,115,-743,114,-743,128,-743,129,-743,130,-743,131,-743,127,-743,113,-743,112,-743,125,-743,126,-743,123,-743,6,-743,5,-743,117,-743,122,-743,120,-743,118,-743,121,-743,119,-743,134,-743,16,-743,29,-743,97,-743,12,-743,9,-743,96,-743,82,-743,81,-743,80,-743,79,-743,84,-743,83,-743,13,-743,116,-743,74,-743,48,-743,55,-743,138,-743,140,-743,78,-743,76,-743,42,-743,39,-743,18,-743,19,-743,141,-743,143,-743,142,-743,151,-743,153,-743,152,-743,54,-743,88,-743,37,-743,22,-743,94,-743,51,-743,32,-743,52,-743,99,-743,44,-743,33,-743,50,-743,57,-743,72,-743,70,-743,35,-743,68,-743,69,-743,11,-756});
states[582] = new State(-744);
states[583] = new State(new int[]{7,156,11,-757});
states[584] = new State(new int[]{7,463});
states[585] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,89,-559,10,-559,95,-559,98,-559,30,-559,101,-559,2,-559,29,-559,97,-559,12,-559,9,-559,96,-559,82,-559,81,-559,80,-559,79,-559},new int[]{-136,404,-140,24,-141,27});
states[586] = new State(new int[]{50,596,53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,430,18,259,19,264,74,425,37,560,5,569},new int[]{-82,406,-92,431,-101,587,-91,141,-90,302,-95,310,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559,-109,568});
states[587] = new State(new int[]{97,588,17,354,8,360,7,575,139,577,4,578,15,580,135,-746,133,-746,115,-746,114,-746,128,-746,129,-746,130,-746,131,-746,127,-746,113,-746,112,-746,125,-746,126,-746,123,-746,6,-746,5,-746,117,-746,122,-746,120,-746,118,-746,121,-746,119,-746,134,-746,16,-746,9,-746,13,-746,116,-746,11,-756});
states[588] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,42,373,39,403,8,430,18,259,19,264,141,161,143,162,142,164,151,166,153,167,152,168,74,425},new int[]{-325,589,-101,595,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-14,583,-154,158,-156,159,-155,163,-15,165,-16,420,-54,584});
states[589] = new State(new int[]{9,590,97,593});
states[590] = new State(new int[]{107,397,108,398,109,399,110,400,111,401},new int[]{-184,591});
states[591] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,430,18,259,19,264,74,425,37,560,5,569},new int[]{-82,592,-92,140,-91,141,-90,302,-95,310,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559,-109,568});
states[592] = new State(-508);
states[593] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,42,373,39,403,8,430,18,259,19,264,141,161,143,162,142,164,151,166,153,167,152,168,74,425},new int[]{-101,594,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-14,583,-154,158,-156,159,-155,163,-15,165,-16,420,-54,584});
states[594] = new State(new int[]{17,354,8,360,7,575,139,577,4,578,9,-511,97,-511,11,-756});
states[595] = new State(new int[]{17,354,8,360,7,575,139,577,4,578,9,-510,97,-510,11,-756});
states[596] = new State(new int[]{140,23,83,25,84,26,78,28,76,29},new int[]{-136,597,-140,24,-141,27});
states[597] = new State(new int[]{97,598});
states[598] = new State(new int[]{50,606},new int[]{-326,599});
states[599] = new State(new int[]{9,600,97,603});
states[600] = new State(new int[]{107,601});
states[601] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,430,18,259,19,264,74,425,37,560,5,569},new int[]{-82,602,-92,140,-91,141,-90,302,-95,310,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559,-109,568});
states[602] = new State(-505);
states[603] = new State(new int[]{50,604});
states[604] = new State(new int[]{140,23,83,25,84,26,78,28,76,29},new int[]{-136,605,-140,24,-141,27});
states[605] = new State(-513);
states[606] = new State(new int[]{140,23,83,25,84,26,78,28,76,29},new int[]{-136,607,-140,24,-141,27});
states[607] = new State(-512);
states[608] = new State(-481);
states[609] = new State(-482);
states[610] = new State(new int[]{151,612,140,23,83,25,84,26,78,28,76,29},new int[]{-132,611,-136,613,-140,24,-141,27});
states[611] = new State(-515);
states[612] = new State(-94);
states[613] = new State(-95);
states[614] = new State(-483);
states[615] = new State(-484);
states[616] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,430,18,259,19,264,74,425,37,560},new int[]{-92,617,-91,141,-90,302,-95,371,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559});
states[617] = new State(new int[]{48,618});
states[618] = new State(new int[]{138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,585,8,586,18,259,19,264,141,161,143,162,142,164,151,166,153,167,152,168,74,425,54,610,88,129,37,616,22,623,94,639,51,644,32,649,52,659,99,665,44,672,33,675,50,683,57,731,72,736,70,723,35,745,89,-479,10,-479,95,-479,98,-479,30,-479,101,-479,2,-479,29,-479,97,-479,12,-479,9,-479,96,-479,82,-479,81,-479,80,-479,79,-479},new int[]{-250,619,-4,135,-102,136,-121,352,-101,544,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-14,583,-154,158,-156,159,-155,163,-15,165,-16,420,-54,584,-105,468,-202,608,-122,609,-245,614,-142,615,-32,622,-237,638,-307,643,-113,648,-308,658,-149,663,-292,664,-238,671,-112,674,-303,682,-55,727,-164,728,-163,729,-158,730,-115,735,-116,742,-114,743,-337,744});
states[619] = new State(new int[]{29,620,89,-519,10,-519,95,-519,98,-519,30,-519,101,-519,2,-519,97,-519,12,-519,9,-519,96,-519,82,-519,81,-519,80,-519,79,-519,84,-519,83,-519});
states[620] = new State(new int[]{138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,585,8,586,18,259,19,264,141,161,143,162,142,164,151,166,153,167,152,168,74,425,54,610,88,129,37,616,22,623,94,639,51,644,32,649,52,659,99,665,44,672,33,675,50,683,57,731,72,736,70,723,35,745,89,-479,10,-479,95,-479,98,-479,30,-479,101,-479,2,-479,29,-479,97,-479,12,-479,9,-479,96,-479,82,-479,81,-479,80,-479,79,-479},new int[]{-250,621,-4,135,-102,136,-121,352,-101,544,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-14,583,-154,158,-156,159,-155,163,-15,165,-16,420,-54,584,-105,468,-202,608,-122,609,-245,614,-142,615,-32,622,-237,638,-307,643,-113,648,-308,658,-149,663,-292,664,-238,671,-112,674,-303,682,-55,727,-164,728,-163,729,-158,730,-115,735,-116,742,-114,743,-337,744});
states[621] = new State(-520);
states[622] = new State(-485);
states[623] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,430,18,259,19,264,74,425,37,560},new int[]{-92,624,-91,141,-90,302,-95,371,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559});
states[624] = new State(new int[]{55,625});
states[625] = new State(new int[]{140,23,83,25,84,26,78,28,76,239,141,161,143,162,142,164,151,166,153,167,152,168,39,256,18,259,19,264,11,455,74,459,53,956,138,957,8,959,132,962,113,347,112,348,29,633,89,-539},new int[]{-33,626,-243,1057,-252,1059,-68,1050,-100,1056,-87,1055,-84,198,-75,203,-12,227,-10,237,-13,213,-136,238,-140,24,-141,27,-154,254,-156,159,-155,163,-15,255,-247,258,-285,263,-229,454,-189,964,-163,966,-255,967,-259,968,-231,969});
states[626] = new State(new int[]{10,629,29,633,89,-539},new int[]{-243,627});
states[627] = new State(new int[]{89,628});
states[628] = new State(-530);
states[629] = new State(new int[]{29,633,140,23,83,25,84,26,78,28,76,239,141,161,143,162,142,164,151,166,153,167,152,168,39,256,18,259,19,264,11,455,74,459,53,956,138,957,8,959,132,962,113,347,112,348,89,-539},new int[]{-243,630,-252,632,-68,1050,-100,1056,-87,1055,-84,198,-75,203,-12,227,-10,237,-13,213,-136,238,-140,24,-141,27,-154,254,-156,159,-155,163,-15,255,-247,258,-285,263,-229,454,-189,964,-163,966,-255,967,-259,968,-231,969});
states[630] = new State(new int[]{89,631});
states[631] = new State(-531);
states[632] = new State(-534);
states[633] = new State(new int[]{138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,585,8,586,18,259,19,264,141,161,143,162,142,164,151,637,153,167,152,168,74,425,54,610,88,129,37,616,22,623,94,639,51,644,32,649,52,659,99,665,44,672,33,675,50,683,57,731,72,736,70,723,35,745,10,-479,89,-479},new int[]{-242,634,-251,635,-250,134,-4,135,-102,136,-121,352,-101,544,-136,636,-140,24,-141,27,-181,372,-247,418,-285,419,-14,583,-154,158,-156,159,-155,163,-15,165,-16,420,-54,584,-105,468,-202,608,-122,609,-245,614,-142,615,-32,622,-237,638,-307,643,-113,648,-308,658,-149,663,-292,664,-238,671,-112,674,-303,682,-55,727,-164,728,-163,729,-158,730,-115,735,-116,742,-114,743,-337,744,-132,1017});
states[634] = new State(new int[]{10,132,89,-540});
states[635] = new State(-517);
states[636] = new State(new int[]{17,-758,8,-758,7,-758,139,-758,4,-758,15,-758,107,-758,108,-758,109,-758,110,-758,111,-758,89,-758,10,-758,11,-758,95,-758,98,-758,30,-758,101,-758,2,-758,5,-95});
states[637] = new State(new int[]{7,-179,11,-179,5,-94});
states[638] = new State(-486);
states[639] = new State(new int[]{138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,585,8,586,18,259,19,264,141,161,143,162,142,164,151,637,153,167,152,168,74,425,54,610,88,129,37,616,22,623,94,639,51,644,32,649,52,659,99,665,44,672,33,675,50,683,57,731,72,736,70,723,35,745,95,-479,10,-479},new int[]{-242,640,-251,635,-250,134,-4,135,-102,136,-121,352,-101,544,-136,636,-140,24,-141,27,-181,372,-247,418,-285,419,-14,583,-154,158,-156,159,-155,163,-15,165,-16,420,-54,584,-105,468,-202,608,-122,609,-245,614,-142,615,-32,622,-237,638,-307,643,-113,648,-308,658,-149,663,-292,664,-238,671,-112,674,-303,682,-55,727,-164,728,-163,729,-158,730,-115,735,-116,742,-114,743,-337,744,-132,1017});
states[640] = new State(new int[]{95,641,10,132});
states[641] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,430,18,259,19,264,74,425,37,560,5,569},new int[]{-82,642,-92,140,-91,141,-90,302,-95,310,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559,-109,568});
states[642] = new State(-541);
states[643] = new State(-487);
states[644] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,430,18,259,19,264,74,425,37,560},new int[]{-92,645,-91,141,-90,302,-95,371,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559});
states[645] = new State(new int[]{96,1042,138,-544,140,-544,83,-544,84,-544,78,-544,76,-544,42,-544,39,-544,8,-544,18,-544,19,-544,141,-544,143,-544,142,-544,151,-544,153,-544,152,-544,74,-544,54,-544,88,-544,37,-544,22,-544,94,-544,51,-544,32,-544,52,-544,99,-544,44,-544,33,-544,50,-544,57,-544,72,-544,70,-544,35,-544,89,-544,10,-544,95,-544,98,-544,30,-544,101,-544,2,-544,29,-544,97,-544,12,-544,9,-544,82,-544,81,-544,80,-544,79,-544},new int[]{-282,646});
states[646] = new State(new int[]{138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,585,8,586,18,259,19,264,141,161,143,162,142,164,151,166,153,167,152,168,74,425,54,610,88,129,37,616,22,623,94,639,51,644,32,649,52,659,99,665,44,672,33,675,50,683,57,731,72,736,70,723,35,745,89,-479,10,-479,95,-479,98,-479,30,-479,101,-479,2,-479,29,-479,97,-479,12,-479,9,-479,96,-479,82,-479,81,-479,80,-479,79,-479},new int[]{-250,647,-4,135,-102,136,-121,352,-101,544,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-14,583,-154,158,-156,159,-155,163,-15,165,-16,420,-54,584,-105,468,-202,608,-122,609,-245,614,-142,615,-32,622,-237,638,-307,643,-113,648,-308,658,-149,663,-292,664,-238,671,-112,674,-303,682,-55,727,-164,728,-163,729,-158,730,-115,735,-116,742,-114,743,-337,744});
states[647] = new State(-542);
states[648] = new State(-488);
states[649] = new State(new int[]{50,1049,140,-553,83,-553,84,-553,78,-553,76,-553},new int[]{-18,650});
states[650] = new State(new int[]{140,23,83,25,84,26,78,28,76,29},new int[]{-136,651,-140,24,-141,27});
states[651] = new State(new int[]{107,1045,5,1046},new int[]{-276,652});
states[652] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,430,18,259,19,264,74,425,37,560},new int[]{-92,653,-91,141,-90,302,-95,371,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559});
states[653] = new State(new int[]{68,1043,69,1044},new int[]{-108,654});
states[654] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,430,18,259,19,264,74,425,37,560},new int[]{-92,655,-91,141,-90,302,-95,371,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559});
states[655] = new State(new int[]{96,1042,138,-544,140,-544,83,-544,84,-544,78,-544,76,-544,42,-544,39,-544,8,-544,18,-544,19,-544,141,-544,143,-544,142,-544,151,-544,153,-544,152,-544,74,-544,54,-544,88,-544,37,-544,22,-544,94,-544,51,-544,32,-544,52,-544,99,-544,44,-544,33,-544,50,-544,57,-544,72,-544,70,-544,35,-544,89,-544,10,-544,95,-544,98,-544,30,-544,101,-544,2,-544,29,-544,97,-544,12,-544,9,-544,82,-544,81,-544,80,-544,79,-544},new int[]{-282,656});
states[656] = new State(new int[]{138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,585,8,586,18,259,19,264,141,161,143,162,142,164,151,166,153,167,152,168,74,425,54,610,88,129,37,616,22,623,94,639,51,644,32,649,52,659,99,665,44,672,33,675,50,683,57,731,72,736,70,723,35,745,89,-479,10,-479,95,-479,98,-479,30,-479,101,-479,2,-479,29,-479,97,-479,12,-479,9,-479,96,-479,82,-479,81,-479,80,-479,79,-479},new int[]{-250,657,-4,135,-102,136,-121,352,-101,544,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-14,583,-154,158,-156,159,-155,163,-15,165,-16,420,-54,584,-105,468,-202,608,-122,609,-245,614,-142,615,-32,622,-237,638,-307,643,-113,648,-308,658,-149,663,-292,664,-238,671,-112,674,-303,682,-55,727,-164,728,-163,729,-158,730,-115,735,-116,742,-114,743,-337,744});
states[657] = new State(-551);
states[658] = new State(-489);
states[659] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,405,18,259,19,264,74,425,37,560,5,569,34,705,41,709},new int[]{-66,660,-83,424,-82,139,-92,140,-91,141,-90,302,-95,310,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,366,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559,-109,568,-311,841,-312,704});
states[660] = new State(new int[]{96,661,97,364});
states[661] = new State(new int[]{138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,585,8,586,18,259,19,264,141,161,143,162,142,164,151,166,153,167,152,168,74,425,54,610,88,129,37,616,22,623,94,639,51,644,32,649,52,659,99,665,44,672,33,675,50,683,57,731,72,736,70,723,35,745,89,-479,10,-479,95,-479,98,-479,30,-479,101,-479,2,-479,29,-479,97,-479,12,-479,9,-479,96,-479,82,-479,81,-479,80,-479,79,-479},new int[]{-250,662,-4,135,-102,136,-121,352,-101,544,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-14,583,-154,158,-156,159,-155,163,-15,165,-16,420,-54,584,-105,468,-202,608,-122,609,-245,614,-142,615,-32,622,-237,638,-307,643,-113,648,-308,658,-149,663,-292,664,-238,671,-112,674,-303,682,-55,727,-164,728,-163,729,-158,730,-115,735,-116,742,-114,743,-337,744});
states[662] = new State(-558);
states[663] = new State(-490);
states[664] = new State(-491);
states[665] = new State(new int[]{138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,585,8,586,18,259,19,264,141,161,143,162,142,164,151,637,153,167,152,168,74,425,54,610,88,129,37,616,22,623,94,639,51,644,32,649,52,659,99,665,44,672,33,675,50,683,57,731,72,736,70,723,35,745,10,-479,98,-479,30,-479},new int[]{-242,666,-251,635,-250,134,-4,135,-102,136,-121,352,-101,544,-136,636,-140,24,-141,27,-181,372,-247,418,-285,419,-14,583,-154,158,-156,159,-155,163,-15,165,-16,420,-54,584,-105,468,-202,608,-122,609,-245,614,-142,615,-32,622,-237,638,-307,643,-113,648,-308,658,-149,663,-292,664,-238,671,-112,674,-303,682,-55,727,-164,728,-163,729,-158,730,-115,735,-116,742,-114,743,-337,744,-132,1017});
states[666] = new State(new int[]{10,132,98,668,30,1020},new int[]{-280,667});
states[667] = new State(-560);
states[668] = new State(new int[]{138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,585,8,586,18,259,19,264,141,161,143,162,142,164,151,637,153,167,152,168,74,425,54,610,88,129,37,616,22,623,94,639,51,644,32,649,52,659,99,665,44,672,33,675,50,683,57,731,72,736,70,723,35,745,89,-479,10,-479},new int[]{-242,669,-251,635,-250,134,-4,135,-102,136,-121,352,-101,544,-136,636,-140,24,-141,27,-181,372,-247,418,-285,419,-14,583,-154,158,-156,159,-155,163,-15,165,-16,420,-54,584,-105,468,-202,608,-122,609,-245,614,-142,615,-32,622,-237,638,-307,643,-113,648,-308,658,-149,663,-292,664,-238,671,-112,674,-303,682,-55,727,-164,728,-163,729,-158,730,-115,735,-116,742,-114,743,-337,744,-132,1017});
states[669] = new State(new int[]{89,670,10,132});
states[670] = new State(-561);
states[671] = new State(-492);
states[672] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,430,18,259,19,264,74,425,37,560,5,569,89,-575,10,-575,95,-575,98,-575,30,-575,101,-575,2,-575,29,-575,97,-575,12,-575,9,-575,96,-575,82,-575,81,-575,80,-575,79,-575},new int[]{-82,673,-92,140,-91,141,-90,302,-95,310,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559,-109,568});
states[673] = new State(-576);
states[674] = new State(-493);
states[675] = new State(new int[]{50,1005,140,23,83,25,84,26,78,28,76,29},new int[]{-136,676,-140,24,-141,27});
states[676] = new State(new int[]{5,1003,134,-550},new int[]{-264,677});
states[677] = new State(new int[]{134,678});
states[678] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,430,18,259,19,264,74,425,37,560},new int[]{-92,679,-91,141,-90,302,-95,371,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559});
states[679] = new State(new int[]{96,680});
states[680] = new State(new int[]{138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,585,8,586,18,259,19,264,141,161,143,162,142,164,151,166,153,167,152,168,74,425,54,610,88,129,37,616,22,623,94,639,51,644,32,649,52,659,99,665,44,672,33,675,50,683,57,731,72,736,70,723,35,745,89,-479,10,-479,95,-479,98,-479,30,-479,101,-479,2,-479,29,-479,97,-479,12,-479,9,-479,96,-479,82,-479,81,-479,80,-479,79,-479},new int[]{-250,681,-4,135,-102,136,-121,352,-101,544,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-14,583,-154,158,-156,159,-155,163,-15,165,-16,420,-54,584,-105,468,-202,608,-122,609,-245,614,-142,615,-32,622,-237,638,-307,643,-113,648,-308,658,-149,663,-292,664,-238,671,-112,674,-303,682,-55,727,-164,728,-163,729,-158,730,-115,735,-116,742,-114,743,-337,744});
states[681] = new State(-546);
states[682] = new State(-494);
states[683] = new State(new int[]{8,685,140,23,83,25,84,26,78,28,76,29},new int[]{-300,684,-147,693,-136,692,-140,24,-141,27});
states[684] = new State(-504);
states[685] = new State(new int[]{140,23,83,25,84,26,78,28,76,29},new int[]{-136,686,-140,24,-141,27});
states[686] = new State(new int[]{97,687});
states[687] = new State(new int[]{140,23,83,25,84,26,78,28,76,29},new int[]{-147,688,-136,692,-140,24,-141,27});
states[688] = new State(new int[]{9,689,97,443});
states[689] = new State(new int[]{107,690});
states[690] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,430,18,259,19,264,74,425,37,560,5,569},new int[]{-82,691,-92,140,-91,141,-90,302,-95,310,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559,-109,568});
states[691] = new State(-506);
states[692] = new State(-333);
states[693] = new State(new int[]{5,694,97,443,107,1001});
states[694] = new State(new int[]{140,450,83,25,84,26,78,28,76,29,151,166,153,167,152,168,113,347,112,348,141,161,143,162,142,164,8,492,139,503,21,508,45,516,46,774,31,778,71,782,62,785,41,790,34,805},new int[]{-266,695,-262,448,-86,187,-96,279,-97,280,-170,281,-136,208,-140,24,-141,27,-15,487,-189,488,-154,491,-156,159,-155,163,-263,494,-291,495,-246,501,-239,502,-271,505,-272,506,-268,507,-260,514,-28,515,-253,773,-119,777,-120,781,-216,787,-214,788,-213,789});
states[695] = new State(new int[]{107,999,117,1000,89,-399,10,-399,95,-399,98,-399,30,-399,101,-399,2,-399,29,-399,97,-399,12,-399,9,-399,96,-399,82,-399,81,-399,80,-399,79,-399,84,-399,83,-399},new int[]{-327,696});
states[696] = new State(new int[]{140,23,83,25,84,26,78,28,76,239,141,161,143,162,142,164,151,166,153,167,152,168,39,256,18,259,19,264,11,455,74,459,53,956,138,957,8,970,132,962,113,347,112,348,60,170,34,705,41,709},new int[]{-81,697,-80,698,-79,252,-84,253,-75,203,-12,227,-10,237,-13,213,-136,699,-140,24,-141,27,-154,254,-156,159,-155,163,-15,255,-247,258,-285,263,-229,454,-189,964,-163,966,-255,967,-259,968,-231,969,-88,987,-233,988,-53,989,-312,998});
states[697] = new State(-401);
states[698] = new State(-402);
states[699] = new State(new int[]{124,700,4,-158,11,-158,7,-158,139,-158,8,-158,116,-158,133,-158,135,-158,115,-158,114,-158,128,-158,129,-158,130,-158,131,-158,127,-158,113,-158,112,-158,125,-158,126,-158,117,-158,122,-158,120,-158,118,-158,121,-158,119,-158,134,-158,13,-158,89,-158,10,-158,95,-158,98,-158,30,-158,101,-158,2,-158,29,-158,97,-158,12,-158,9,-158,96,-158,82,-158,81,-158,80,-158,79,-158,84,-158,83,-158});
states[700] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,405,18,259,19,264,74,425,34,705,41,709,88,129,37,616,51,644,94,639,32,649,33,675,70,723,22,623,99,665,57,731,44,672,72,922},new int[]{-317,701,-94,369,-91,370,-90,302,-95,371,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,366,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,702,-106,552,-311,703,-312,704,-319,932,-245,716,-142,717,-307,718,-237,719,-113,720,-112,721,-114,722,-32,917,-292,918,-158,919,-238,920,-115,921});
states[701] = new State(-404);
states[702] = new State(new int[]{89,-595,10,-595,95,-595,98,-595,30,-595,101,-595,2,-595,29,-595,97,-595,12,-595,9,-595,96,-595,82,-595,81,-595,80,-595,79,-595,84,-595,83,-595,13,-589});
states[703] = new State(-596);
states[704] = new State(-942);
states[705] = new State(new int[]{8,933,5,938,124,-957},new int[]{-314,706});
states[706] = new State(new int[]{124,707});
states[707] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,405,18,259,19,264,74,425,34,705,41,709,88,129,37,616,51,644,94,639,32,649,33,675,70,723,22,623,99,665,57,731,44,672,72,922},new int[]{-317,708,-94,369,-91,370,-90,302,-95,371,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,366,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,702,-106,552,-311,703,-312,704,-319,932,-245,716,-142,717,-307,718,-237,719,-113,720,-112,721,-114,722,-32,917,-292,918,-158,919,-238,920,-115,921});
states[708] = new State(-946);
states[709] = new State(new int[]{124,710,8,923});
states[710] = new State(new int[]{138,358,140,23,83,25,84,26,78,28,76,29,42,373,39,403,8,713,18,259,19,264,141,161,143,162,142,164,151,166,153,167,152,168,74,425,88,129,37,616,51,644,94,639,32,649,33,675,70,723,22,623,99,665,57,731,44,672,72,922},new int[]{-318,711,-202,712,-102,136,-121,352,-101,544,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-14,583,-154,158,-156,159,-155,163,-15,165,-16,420,-54,584,-105,468,-4,714,-319,715,-245,716,-142,717,-307,718,-237,719,-113,720,-112,721,-114,722,-32,917,-292,918,-158,919,-238,920,-115,921});
states[711] = new State(-949);
states[712] = new State(-973);
states[713] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,430,18,259,19,264,74,425,37,560,5,569},new int[]{-82,406,-92,431,-101,587,-91,141,-90,302,-95,310,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559,-109,568});
states[714] = new State(-974);
states[715] = new State(-975);
states[716] = new State(-959);
states[717] = new State(-960);
states[718] = new State(-961);
states[719] = new State(-962);
states[720] = new State(-963);
states[721] = new State(-964);
states[722] = new State(-965);
states[723] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,430,18,259,19,264,74,425,37,560},new int[]{-92,724,-91,141,-90,302,-95,371,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559});
states[724] = new State(new int[]{96,725});
states[725] = new State(new int[]{138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,585,8,586,18,259,19,264,141,161,143,162,142,164,151,166,153,167,152,168,74,425,54,610,88,129,37,616,22,623,94,639,51,644,32,649,52,659,99,665,44,672,33,675,50,683,57,731,72,736,70,723,35,745,89,-479,10,-479,95,-479,98,-479,30,-479,101,-479,2,-479,29,-479,97,-479,12,-479,9,-479,96,-479,82,-479,81,-479,80,-479,79,-479},new int[]{-250,726,-4,135,-102,136,-121,352,-101,544,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-14,583,-154,158,-156,159,-155,163,-15,165,-16,420,-54,584,-105,468,-202,608,-122,609,-245,614,-142,615,-32,622,-237,638,-307,643,-113,648,-308,658,-149,663,-292,664,-238,671,-112,674,-303,682,-55,727,-164,728,-163,729,-158,730,-115,735,-116,742,-114,743,-337,744});
states[726] = new State(-501);
states[727] = new State(-495);
states[728] = new State(-579);
states[729] = new State(-580);
states[730] = new State(-496);
states[731] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,430,18,259,19,264,74,425,37,560},new int[]{-92,732,-91,141,-90,302,-95,371,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559});
states[732] = new State(new int[]{96,733});
states[733] = new State(new int[]{138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,585,8,586,18,259,19,264,141,161,143,162,142,164,151,166,153,167,152,168,74,425,54,610,88,129,37,616,22,623,94,639,51,644,32,649,52,659,99,665,44,672,33,675,50,683,57,731,72,736,70,723,35,745,89,-479,10,-479,95,-479,98,-479,30,-479,101,-479,2,-479,29,-479,97,-479,12,-479,9,-479,96,-479,82,-479,81,-479,80,-479,79,-479},new int[]{-250,734,-4,135,-102,136,-121,352,-101,544,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-14,583,-154,158,-156,159,-155,163,-15,165,-16,420,-54,584,-105,468,-202,608,-122,609,-245,614,-142,615,-32,622,-237,638,-307,643,-113,648,-308,658,-149,663,-292,664,-238,671,-112,674,-303,682,-55,727,-164,728,-163,729,-158,730,-115,735,-116,742,-114,743,-337,744});
states[734] = new State(-545);
states[735] = new State(-497);
states[736] = new State(new int[]{71,738,53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,405,18,259,19,264,74,425,37,560,34,705,41,709},new int[]{-93,737,-92,740,-91,141,-90,302,-95,371,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,366,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559,-311,741,-312,704});
states[737] = new State(-502);
states[738] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,405,18,259,19,264,74,425,37,560,34,705,41,709},new int[]{-93,739,-92,740,-91,141,-90,302,-95,371,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,366,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559,-311,741,-312,704});
states[739] = new State(-503);
states[740] = new State(-592);
states[741] = new State(-593);
states[742] = new State(-498);
states[743] = new State(-499);
states[744] = new State(-500);
states[745] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,430,18,259,19,264,74,425,37,560},new int[]{-92,746,-91,141,-90,302,-95,371,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559});
states[746] = new State(new int[]{52,747});
states[747] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,141,161,143,162,142,164,151,166,153,167,152,168,53,902,18,259,19,264,11,862,8,875},new int[]{-339,748,-338,916,-331,755,-274,760,-170,174,-136,208,-140,24,-141,27,-330,894,-346,897,-328,905,-14,900,-154,158,-156,159,-155,163,-15,165,-247,903,-285,904,-332,906,-333,909});
states[748] = new State(new int[]{10,751,29,633,89,-539},new int[]{-243,749});
states[749] = new State(new int[]{89,750});
states[750] = new State(-521);
states[751] = new State(new int[]{29,633,140,23,83,25,84,26,78,28,76,29,141,161,143,162,142,164,151,166,153,167,152,168,53,902,18,259,19,264,11,862,8,875,89,-539},new int[]{-243,752,-338,754,-331,755,-274,760,-170,174,-136,208,-140,24,-141,27,-330,894,-346,897,-328,905,-14,900,-154,158,-156,159,-155,163,-15,165,-247,903,-285,904,-332,906,-333,909});
states[752] = new State(new int[]{89,753});
states[753] = new State(-522);
states[754] = new State(-524);
states[755] = new State(new int[]{36,756});
states[756] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,430,18,259,19,264,74,425,37,560},new int[]{-92,757,-91,141,-90,302,-95,371,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559});
states[757] = new State(new int[]{5,758});
states[758] = new State(new int[]{138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,585,8,586,18,259,19,264,141,161,143,162,142,164,151,166,153,167,152,168,74,425,54,610,88,129,37,616,22,623,94,639,51,644,32,649,52,659,99,665,44,672,33,675,50,683,57,731,72,736,70,723,35,745,10,-479,29,-479,89,-479},new int[]{-250,759,-4,135,-102,136,-121,352,-101,544,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-14,583,-154,158,-156,159,-155,163,-15,165,-16,420,-54,584,-105,468,-202,608,-122,609,-245,614,-142,615,-32,622,-237,638,-307,643,-113,648,-308,658,-149,663,-292,664,-238,671,-112,674,-303,682,-55,727,-164,728,-163,729,-158,730,-115,735,-116,742,-114,743,-337,744});
states[759] = new State(-525);
states[760] = new State(new int[]{8,761,97,-631,5,-631});
states[761] = new State(new int[]{14,766,141,161,143,162,142,164,151,166,153,167,152,168,113,347,112,348,140,23,83,25,84,26,78,28,76,29,50,850,11,862,8,875},new int[]{-343,762,-341,893,-14,767,-154,158,-156,159,-155,163,-15,165,-189,768,-136,770,-140,24,-141,27,-331,854,-274,855,-170,174,-332,861,-333,892});
states[762] = new State(new int[]{9,763,10,764,97,859});
states[763] = new State(new int[]{36,-625,5,-626});
states[764] = new State(new int[]{14,766,141,161,143,162,142,164,151,166,153,167,152,168,113,347,112,348,140,23,83,25,84,26,78,28,76,29,50,850,11,862,8,875},new int[]{-341,765,-14,767,-154,158,-156,159,-155,163,-15,165,-189,768,-136,770,-140,24,-141,27,-331,854,-274,855,-170,174,-332,861,-333,892});
states[765] = new State(-657);
states[766] = new State(-669);
states[767] = new State(-670);
states[768] = new State(new int[]{141,161,143,162,142,164,151,166,153,167,152,168},new int[]{-14,769,-154,158,-156,159,-155,163,-15,165});
states[769] = new State(-671);
states[770] = new State(new int[]{5,771,9,-673,10,-673,97,-673,7,-248,4,-248,120,-248,8,-248});
states[771] = new State(new int[]{140,450,83,25,84,26,78,28,76,29,151,166,153,167,152,168,113,347,112,348,141,161,143,162,142,164,8,492,139,503,21,508,45,516,46,774,31,778,71,782,62,785,41,790,34,805},new int[]{-266,772,-262,448,-86,187,-96,279,-97,280,-170,281,-136,208,-140,24,-141,27,-15,487,-189,488,-154,491,-156,159,-155,163,-263,494,-291,495,-246,501,-239,502,-271,505,-272,506,-268,507,-260,514,-28,515,-253,773,-119,777,-120,781,-216,787,-214,788,-213,789});
states[772] = new State(-672);
states[773] = new State(-259);
states[774] = new State(new int[]{55,775});
states[775] = new State(new int[]{140,450,83,25,84,26,78,28,76,29,151,166,153,167,152,168,113,347,112,348,141,161,143,162,142,164,8,492,139,503,21,508,45,516,46,774,31,778,71,782,62,785,41,790,34,805},new int[]{-266,776,-262,448,-86,187,-96,279,-97,280,-170,281,-136,208,-140,24,-141,27,-15,487,-189,488,-154,491,-156,159,-155,163,-263,494,-291,495,-246,501,-239,502,-271,505,-272,506,-268,507,-260,514,-28,515,-253,773,-119,777,-120,781,-216,787,-214,788,-213,789});
states[776] = new State(-270);
states[777] = new State(-260);
states[778] = new State(new int[]{55,779,118,-272,97,-272,117,-272,9,-272,10,-272,124,-272,107,-272,89,-272,95,-272,98,-272,30,-272,101,-272,2,-272,29,-272,12,-272,96,-272,82,-272,81,-272,80,-272,79,-272,84,-272,83,-272,134,-272});
states[779] = new State(new int[]{140,450,83,25,84,26,78,28,76,29,151,166,153,167,152,168,113,347,112,348,141,161,143,162,142,164,8,492,139,503,21,508,45,516,46,774,31,778,71,782,62,785,41,790,34,805},new int[]{-266,780,-262,448,-86,187,-96,279,-97,280,-170,281,-136,208,-140,24,-141,27,-15,487,-189,488,-154,491,-156,159,-155,163,-263,494,-291,495,-246,501,-239,502,-271,505,-272,506,-268,507,-260,514,-28,515,-253,773,-119,777,-120,781,-216,787,-214,788,-213,789});
states[780] = new State(-271);
states[781] = new State(-261);
states[782] = new State(new int[]{55,783});
states[783] = new State(new int[]{140,450,83,25,84,26,78,28,76,29,151,166,153,167,152,168,113,347,112,348,141,161,143,162,142,164,8,492,139,503,21,508,45,516,46,774,31,778,71,782,62,785,41,790,34,805},new int[]{-266,784,-262,448,-86,187,-96,279,-97,280,-170,281,-136,208,-140,24,-141,27,-15,487,-189,488,-154,491,-156,159,-155,163,-263,494,-291,495,-246,501,-239,502,-271,505,-272,506,-268,507,-260,514,-28,515,-253,773,-119,777,-120,781,-216,787,-214,788,-213,789});
states[784] = new State(-262);
states[785] = new State(new int[]{21,508,45,516,46,774,31,778,71,782},new int[]{-272,786,-268,507,-260,514,-28,515,-253,773,-119,777,-120,781});
states[786] = new State(-256);
states[787] = new State(-220);
states[788] = new State(-274);
states[789] = new State(-275);
states[790] = new State(new int[]{8,792,118,-455,97,-455,117,-455,9,-455,10,-455,124,-455,107,-455,89,-455,95,-455,98,-455,30,-455,101,-455,2,-455,29,-455,12,-455,96,-455,82,-455,81,-455,80,-455,79,-455,84,-455,83,-455,134,-455},new int[]{-117,791});
states[791] = new State(-276);
states[792] = new State(new int[]{9,793,11,829,140,-200,83,-200,84,-200,78,-200,76,-200,50,-200,26,-200,105,-200},new int[]{-118,794,-52,849,-6,798,-240,848});
states[793] = new State(-456);
states[794] = new State(new int[]{9,795,10,796});
states[795] = new State(-457);
states[796] = new State(new int[]{11,829,140,-200,83,-200,84,-200,78,-200,76,-200,50,-200,26,-200,105,-200},new int[]{-52,797,-6,798,-240,848});
states[797] = new State(-459);
states[798] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,50,813,26,819,105,825,11,829},new int[]{-286,799,-240,532,-148,800,-124,812,-136,811,-140,24,-141,27});
states[799] = new State(-460);
states[800] = new State(new int[]{5,801,97,809});
states[801] = new State(new int[]{140,450,83,25,84,26,78,28,76,29,151,166,153,167,152,168,113,347,112,348,141,161,143,162,142,164,8,492,139,503,21,508,45,516,46,774,31,778,71,782,62,785,41,790,34,805},new int[]{-265,802,-266,447,-262,448,-86,187,-96,279,-97,280,-170,281,-136,208,-140,24,-141,27,-15,487,-189,488,-154,491,-156,159,-155,163,-263,494,-291,495,-246,501,-239,502,-271,505,-272,506,-268,507,-260,514,-28,515,-253,773,-119,777,-120,781,-216,787,-214,788,-213,789});
states[802] = new State(new int[]{107,803,9,-461,10,-461});
states[803] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,430,18,259,19,264,74,425,37,560,5,569},new int[]{-82,804,-92,140,-91,141,-90,302,-95,310,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559,-109,568});
states[804] = new State(-465);
states[805] = new State(new int[]{8,792,5,-455},new int[]{-117,806});
states[806] = new State(new int[]{5,807});
states[807] = new State(new int[]{140,450,83,25,84,26,78,28,76,29,151,166,153,167,152,168,113,347,112,348,141,161,143,162,142,164,8,492,139,503,21,508,45,516,46,774,31,778,71,782,62,785,41,790,34,805},new int[]{-265,808,-266,447,-262,448,-86,187,-96,279,-97,280,-170,281,-136,208,-140,24,-141,27,-15,487,-189,488,-154,491,-156,159,-155,163,-263,494,-291,495,-246,501,-239,502,-271,505,-272,506,-268,507,-260,514,-28,515,-253,773,-119,777,-120,781,-216,787,-214,788,-213,789});
states[808] = new State(-277);
states[809] = new State(new int[]{140,23,83,25,84,26,78,28,76,29},new int[]{-124,810,-136,811,-140,24,-141,27});
states[810] = new State(-469);
states[811] = new State(-470);
states[812] = new State(-468);
states[813] = new State(new int[]{140,23,83,25,84,26,78,28,76,29},new int[]{-148,814,-124,812,-136,811,-140,24,-141,27});
states[814] = new State(new int[]{5,815,97,809});
states[815] = new State(new int[]{140,450,83,25,84,26,78,28,76,29,151,166,153,167,152,168,113,347,112,348,141,161,143,162,142,164,8,492,139,503,21,508,45,516,46,774,31,778,71,782,62,785,41,790,34,805},new int[]{-265,816,-266,447,-262,448,-86,187,-96,279,-97,280,-170,281,-136,208,-140,24,-141,27,-15,487,-189,488,-154,491,-156,159,-155,163,-263,494,-291,495,-246,501,-239,502,-271,505,-272,506,-268,507,-260,514,-28,515,-253,773,-119,777,-120,781,-216,787,-214,788,-213,789});
states[816] = new State(new int[]{107,817,9,-462,10,-462});
states[817] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,430,18,259,19,264,74,425,37,560,5,569},new int[]{-82,818,-92,140,-91,141,-90,302,-95,310,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559,-109,568});
states[818] = new State(-466);
states[819] = new State(new int[]{140,23,83,25,84,26,78,28,76,29},new int[]{-148,820,-124,812,-136,811,-140,24,-141,27});
states[820] = new State(new int[]{5,821,97,809});
states[821] = new State(new int[]{140,450,83,25,84,26,78,28,76,29,151,166,153,167,152,168,113,347,112,348,141,161,143,162,142,164,8,492,139,503,21,508,45,516,46,774,31,778,71,782,62,785,41,790,34,805},new int[]{-265,822,-266,447,-262,448,-86,187,-96,279,-97,280,-170,281,-136,208,-140,24,-141,27,-15,487,-189,488,-154,491,-156,159,-155,163,-263,494,-291,495,-246,501,-239,502,-271,505,-272,506,-268,507,-260,514,-28,515,-253,773,-119,777,-120,781,-216,787,-214,788,-213,789});
states[822] = new State(new int[]{107,823,9,-463,10,-463});
states[823] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,430,18,259,19,264,74,425,37,560,5,569},new int[]{-82,824,-92,140,-91,141,-90,302,-95,310,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559,-109,568});
states[824] = new State(-467);
states[825] = new State(new int[]{140,23,83,25,84,26,78,28,76,29},new int[]{-148,826,-124,812,-136,811,-140,24,-141,27});
states[826] = new State(new int[]{5,827,97,809});
states[827] = new State(new int[]{140,450,83,25,84,26,78,28,76,29,151,166,153,167,152,168,113,347,112,348,141,161,143,162,142,164,8,492,139,503,21,508,45,516,46,774,31,778,71,782,62,785,41,790,34,805},new int[]{-265,828,-266,447,-262,448,-86,187,-96,279,-97,280,-170,281,-136,208,-140,24,-141,27,-15,487,-189,488,-154,491,-156,159,-155,163,-263,494,-291,495,-246,501,-239,502,-271,505,-272,506,-268,507,-260,514,-28,515,-253,773,-119,777,-120,781,-216,787,-214,788,-213,789});
states[828] = new State(-464);
states[829] = new State(new int[]{140,23,83,25,84,26,78,28,76,29},new int[]{-241,830,-8,847,-9,834,-170,835,-136,842,-140,24,-141,27,-291,845});
states[830] = new State(new int[]{12,831,97,832});
states[831] = new State(-201);
states[832] = new State(new int[]{140,23,83,25,84,26,78,28,76,29},new int[]{-8,833,-9,834,-170,835,-136,842,-140,24,-141,27,-291,845});
states[833] = new State(-203);
states[834] = new State(-204);
states[835] = new State(new int[]{7,175,8,838,120,180,12,-618,97,-618},new int[]{-65,836,-289,837});
states[836] = new State(-750);
states[837] = new State(-222);
states[838] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,405,18,259,19,264,74,425,37,560,5,569,34,705,41,709,9,-774},new int[]{-63,839,-66,363,-83,424,-82,139,-92,140,-91,141,-90,302,-95,310,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,366,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559,-109,568,-311,841,-312,704});
states[839] = new State(new int[]{9,840});
states[840] = new State(-619);
states[841] = new State(-582);
states[842] = new State(new int[]{5,843,7,-248,8,-248,120,-248,12,-248,97,-248});
states[843] = new State(new int[]{140,23,83,25,84,26,78,28,76,29},new int[]{-9,844,-170,835,-136,208,-140,24,-141,27,-291,845});
states[844] = new State(-205);
states[845] = new State(new int[]{8,838,12,-618,97,-618},new int[]{-65,846});
states[846] = new State(-751);
states[847] = new State(-202);
states[848] = new State(-198);
states[849] = new State(-458);
states[850] = new State(new int[]{140,23,83,25,84,26,78,28,76,29},new int[]{-136,851,-140,24,-141,27});
states[851] = new State(new int[]{5,852,9,-675,10,-675,97,-675});
states[852] = new State(new int[]{140,450,83,25,84,26,78,28,76,29,151,166,153,167,152,168,113,347,112,348,141,161,143,162,142,164,8,492,139,503,21,508,45,516,46,774,31,778,71,782,62,785,41,790,34,805},new int[]{-266,853,-262,448,-86,187,-96,279,-97,280,-170,281,-136,208,-140,24,-141,27,-15,487,-189,488,-154,491,-156,159,-155,163,-263,494,-291,495,-246,501,-239,502,-271,505,-272,506,-268,507,-260,514,-28,515,-253,773,-119,777,-120,781,-216,787,-214,788,-213,789});
states[853] = new State(-674);
states[854] = new State(-676);
states[855] = new State(new int[]{8,856});
states[856] = new State(new int[]{14,766,141,161,143,162,142,164,151,166,153,167,152,168,113,347,112,348,140,23,83,25,84,26,78,28,76,29,50,850,11,862,8,875},new int[]{-343,857,-341,893,-14,767,-154,158,-156,159,-155,163,-15,165,-189,768,-136,770,-140,24,-141,27,-331,854,-274,855,-170,174,-332,861,-333,892});
states[857] = new State(new int[]{9,858,10,764,97,859});
states[858] = new State(-625);
states[859] = new State(new int[]{14,766,141,161,143,162,142,164,151,166,153,167,152,168,113,347,112,348,140,23,83,25,84,26,78,28,76,29,50,850,11,862,8,875},new int[]{-341,860,-14,767,-154,158,-156,159,-155,163,-15,165,-189,768,-136,770,-140,24,-141,27,-331,854,-274,855,-170,174,-332,861,-333,892});
states[860] = new State(-658);
states[861] = new State(-677);
states[862] = new State(new int[]{141,161,143,162,142,164,151,166,153,167,152,168,50,869,14,871,140,23,83,25,84,26,78,28,76,29,11,862,8,875,6,890},new int[]{-344,863,-334,891,-14,867,-154,158,-156,159,-155,163,-15,165,-336,868,-331,872,-274,855,-170,174,-136,208,-140,24,-141,27,-332,873,-333,874});
states[863] = new State(new int[]{12,864,97,865});
states[864] = new State(-635);
states[865] = new State(new int[]{141,161,143,162,142,164,151,166,153,167,152,168,50,869,14,871,140,23,83,25,84,26,78,28,76,29,11,862,8,875,6,890},new int[]{-334,866,-14,867,-154,158,-156,159,-155,163,-15,165,-336,868,-331,872,-274,855,-170,174,-136,208,-140,24,-141,27,-332,873,-333,874});
states[866] = new State(-637);
states[867] = new State(-638);
states[868] = new State(-639);
states[869] = new State(new int[]{140,23,83,25,84,26,78,28,76,29},new int[]{-136,870,-140,24,-141,27});
states[870] = new State(-645);
states[871] = new State(-640);
states[872] = new State(-641);
states[873] = new State(-642);
states[874] = new State(-643);
states[875] = new State(new int[]{14,880,141,161,143,162,142,164,151,166,153,167,152,168,113,347,112,348,50,884,140,23,83,25,84,26,78,28,76,29,11,862,8,875},new int[]{-345,876,-335,889,-14,881,-154,158,-156,159,-155,163,-15,165,-189,882,-331,886,-274,855,-170,174,-136,208,-140,24,-141,27,-332,887,-333,888});
states[876] = new State(new int[]{9,877,97,878});
states[877] = new State(-646);
states[878] = new State(new int[]{14,880,141,161,143,162,142,164,151,166,153,167,152,168,113,347,112,348,50,884,140,23,83,25,84,26,78,28,76,29,11,862,8,875},new int[]{-335,879,-14,881,-154,158,-156,159,-155,163,-15,165,-189,882,-331,886,-274,855,-170,174,-136,208,-140,24,-141,27,-332,887,-333,888});
states[879] = new State(-655);
states[880] = new State(-647);
states[881] = new State(-648);
states[882] = new State(new int[]{141,161,143,162,142,164,151,166,153,167,152,168},new int[]{-14,883,-154,158,-156,159,-155,163,-15,165});
states[883] = new State(-649);
states[884] = new State(new int[]{140,23,83,25,84,26,78,28,76,29},new int[]{-136,885,-140,24,-141,27});
states[885] = new State(-650);
states[886] = new State(-651);
states[887] = new State(-652);
states[888] = new State(-653);
states[889] = new State(-654);
states[890] = new State(-644);
states[891] = new State(-636);
states[892] = new State(-678);
states[893] = new State(-656);
states[894] = new State(new int[]{5,895});
states[895] = new State(new int[]{138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,585,8,586,18,259,19,264,141,161,143,162,142,164,151,166,153,167,152,168,74,425,54,610,88,129,37,616,22,623,94,639,51,644,32,649,52,659,99,665,44,672,33,675,50,683,57,731,72,736,70,723,35,745,10,-479,29,-479,89,-479},new int[]{-250,896,-4,135,-102,136,-121,352,-101,544,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-14,583,-154,158,-156,159,-155,163,-15,165,-16,420,-54,584,-105,468,-202,608,-122,609,-245,614,-142,615,-32,622,-237,638,-307,643,-113,648,-308,658,-149,663,-292,664,-238,671,-112,674,-303,682,-55,727,-164,728,-163,729,-158,730,-115,735,-116,742,-114,743,-337,744});
states[896] = new State(-526);
states[897] = new State(new int[]{97,898,5,-627});
states[898] = new State(new int[]{141,161,143,162,142,164,151,166,153,167,152,168,140,23,83,25,84,26,78,28,76,29,53,902,18,259,19,264},new int[]{-328,899,-14,900,-154,158,-156,159,-155,163,-15,165,-274,901,-170,174,-136,208,-140,24,-141,27,-247,903,-285,904});
states[899] = new State(-629);
states[900] = new State(-630);
states[901] = new State(-631);
states[902] = new State(-632);
states[903] = new State(-633);
states[904] = new State(-634);
states[905] = new State(-628);
states[906] = new State(new int[]{5,907});
states[907] = new State(new int[]{138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,585,8,586,18,259,19,264,141,161,143,162,142,164,151,166,153,167,152,168,74,425,54,610,88,129,37,616,22,623,94,639,51,644,32,649,52,659,99,665,44,672,33,675,50,683,57,731,72,736,70,723,35,745,10,-479,29,-479,89,-479},new int[]{-250,908,-4,135,-102,136,-121,352,-101,544,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-14,583,-154,158,-156,159,-155,163,-15,165,-16,420,-54,584,-105,468,-202,608,-122,609,-245,614,-142,615,-32,622,-237,638,-307,643,-113,648,-308,658,-149,663,-292,664,-238,671,-112,674,-303,682,-55,727,-164,728,-163,729,-158,730,-115,735,-116,742,-114,743,-337,744});
states[908] = new State(-527);
states[909] = new State(new int[]{36,910,5,914});
states[910] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,430,18,259,19,264,74,425,37,560},new int[]{-92,911,-91,141,-90,302,-95,371,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559});
states[911] = new State(new int[]{5,912});
states[912] = new State(new int[]{138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,585,8,586,18,259,19,264,141,161,143,162,142,164,151,166,153,167,152,168,74,425,54,610,88,129,37,616,22,623,94,639,51,644,32,649,52,659,99,665,44,672,33,675,50,683,57,731,72,736,70,723,35,745,10,-479,29,-479,89,-479},new int[]{-250,913,-4,135,-102,136,-121,352,-101,544,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-14,583,-154,158,-156,159,-155,163,-15,165,-16,420,-54,584,-105,468,-202,608,-122,609,-245,614,-142,615,-32,622,-237,638,-307,643,-113,648,-308,658,-149,663,-292,664,-238,671,-112,674,-303,682,-55,727,-164,728,-163,729,-158,730,-115,735,-116,742,-114,743,-337,744});
states[913] = new State(-528);
states[914] = new State(new int[]{138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,585,8,586,18,259,19,264,141,161,143,162,142,164,151,166,153,167,152,168,74,425,54,610,88,129,37,616,22,623,94,639,51,644,32,649,52,659,99,665,44,672,33,675,50,683,57,731,72,736,70,723,35,745,10,-479,29,-479,89,-479},new int[]{-250,915,-4,135,-102,136,-121,352,-101,544,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-14,583,-154,158,-156,159,-155,163,-15,165,-16,420,-54,584,-105,468,-202,608,-122,609,-245,614,-142,615,-32,622,-237,638,-307,643,-113,648,-308,658,-149,663,-292,664,-238,671,-112,674,-303,682,-55,727,-164,728,-163,729,-158,730,-115,735,-116,742,-114,743,-337,744});
states[915] = new State(-529);
states[916] = new State(-523);
states[917] = new State(-966);
states[918] = new State(-967);
states[919] = new State(-968);
states[920] = new State(-969);
states[921] = new State(-970);
states[922] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,405,18,259,19,264,74,425,37,560,34,705,41,709},new int[]{-93,737,-92,740,-91,141,-90,302,-95,371,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,366,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559,-311,741,-312,704});
states[923] = new State(new int[]{9,924,140,23,83,25,84,26,78,28,76,29},new int[]{-315,927,-316,931,-147,441,-136,692,-140,24,-141,27});
states[924] = new State(new int[]{124,925});
states[925] = new State(new int[]{138,358,140,23,83,25,84,26,78,28,76,29,42,373,39,403,8,713,18,259,19,264,141,161,143,162,142,164,151,166,153,167,152,168,74,425,88,129,37,616,51,644,94,639,32,649,33,675,70,723,22,623,99,665,57,731,44,672,72,922},new int[]{-318,926,-202,712,-102,136,-121,352,-101,544,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-14,583,-154,158,-156,159,-155,163,-15,165,-16,420,-54,584,-105,468,-4,714,-319,715,-245,716,-142,717,-307,718,-237,719,-113,720,-112,721,-114,722,-32,917,-292,918,-158,919,-238,920,-115,921});
states[926] = new State(-950);
states[927] = new State(new int[]{9,928,10,439});
states[928] = new State(new int[]{124,929});
states[929] = new State(new int[]{138,358,140,23,83,25,84,26,78,28,76,29,42,373,39,403,8,713,18,259,19,264,141,161,143,162,142,164,151,166,153,167,152,168,74,425,88,129,37,616,51,644,94,639,32,649,33,675,70,723,22,623,99,665,57,731,44,672,72,922},new int[]{-318,930,-202,712,-102,136,-121,352,-101,544,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-14,583,-154,158,-156,159,-155,163,-15,165,-16,420,-54,584,-105,468,-4,714,-319,715,-245,716,-142,717,-307,718,-237,719,-113,720,-112,721,-114,722,-32,917,-292,918,-158,919,-238,920,-115,921});
states[930] = new State(-951);
states[931] = new State(-952);
states[932] = new State(-972);
states[933] = new State(new int[]{9,934,140,23,83,25,84,26,78,28,76,29},new int[]{-315,951,-316,931,-147,441,-136,692,-140,24,-141,27});
states[934] = new State(new int[]{5,938,124,-957},new int[]{-314,935});
states[935] = new State(new int[]{124,936});
states[936] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,405,18,259,19,264,74,425,34,705,41,709,88,129,37,616,51,644,94,639,32,649,33,675,70,723,22,623,99,665,57,731,44,672,72,922},new int[]{-317,937,-94,369,-91,370,-90,302,-95,371,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,366,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,702,-106,552,-311,703,-312,704,-319,932,-245,716,-142,717,-307,718,-237,719,-113,720,-112,721,-114,722,-32,917,-292,918,-158,919,-238,920,-115,921});
states[937] = new State(-947);
states[938] = new State(new int[]{140,450,83,25,84,26,78,28,76,29,151,166,153,167,152,168,113,347,112,348,141,161,143,162,142,164,8,942,139,503,21,508,45,516,46,774,31,778,71,782,62,785},new int[]{-267,939,-262,940,-86,187,-96,279,-97,280,-170,941,-136,208,-140,24,-141,27,-15,487,-189,488,-154,491,-156,159,-155,163,-246,947,-239,948,-271,949,-272,506,-268,507,-260,514,-28,515,-253,773,-119,777,-120,781,-291,950});
states[939] = new State(-958);
states[940] = new State(-472);
states[941] = new State(new int[]{7,175,120,180,8,-243,115,-243,114,-243,128,-243,129,-243,130,-243,131,-243,127,-243,6,-243,113,-243,112,-243,125,-243,126,-243,124,-243},new int[]{-289,837});
states[942] = new State(new int[]{140,450,83,25,84,26,78,28,76,29,151,166,153,167,152,168,113,347,112,348,141,161,143,162,142,164,8,492,139,503,21,508,45,516,46,774,31,778,71,782,62,785,41,790,34,805},new int[]{-74,943,-72,296,-266,299,-262,448,-86,187,-96,279,-97,280,-170,281,-136,208,-140,24,-141,27,-15,487,-189,488,-154,491,-156,159,-155,163,-263,494,-291,495,-246,501,-239,502,-271,505,-272,506,-268,507,-260,514,-28,515,-253,773,-119,777,-120,781,-216,787,-214,788,-213,789});
states[943] = new State(new int[]{9,944,97,945});
states[944] = new State(-238);
states[945] = new State(new int[]{140,450,83,25,84,26,78,28,76,29,151,166,153,167,152,168,113,347,112,348,141,161,143,162,142,164,8,492,139,503,21,508,45,516,46,774,31,778,71,782,62,785,41,790,34,805},new int[]{-72,946,-266,299,-262,448,-86,187,-96,279,-97,280,-170,281,-136,208,-140,24,-141,27,-15,487,-189,488,-154,491,-156,159,-155,163,-263,494,-291,495,-246,501,-239,502,-271,505,-272,506,-268,507,-260,514,-28,515,-253,773,-119,777,-120,781,-216,787,-214,788,-213,789});
states[946] = new State(-251);
states[947] = new State(-473);
states[948] = new State(-474);
states[949] = new State(-475);
states[950] = new State(-476);
states[951] = new State(new int[]{9,952,10,439});
states[952] = new State(new int[]{5,938,124,-957},new int[]{-314,953});
states[953] = new State(new int[]{124,954});
states[954] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,405,18,259,19,264,74,425,34,705,41,709,88,129,37,616,51,644,94,639,32,649,33,675,70,723,22,623,99,665,57,731,44,672,72,922},new int[]{-317,955,-94,369,-91,370,-90,302,-95,371,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,366,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,702,-106,552,-311,703,-312,704,-319,932,-245,716,-142,717,-307,718,-237,719,-113,720,-112,721,-114,722,-32,917,-292,918,-158,919,-238,920,-115,921});
states[955] = new State(-948);
states[956] = new State(-148);
states[957] = new State(new int[]{140,23,83,25,84,26,78,28,76,239,141,161,143,162,142,164,151,166,153,167,152,168,39,256,18,259,19,264,11,455,74,459,53,956,138,957,8,959,132,962,113,347,112,348},new int[]{-10,958,-13,213,-136,238,-140,24,-141,27,-154,254,-156,159,-155,163,-15,255,-247,258,-285,263,-229,454,-189,964,-163,966});
states[958] = new State(-149);
states[959] = new State(new int[]{140,23,83,25,84,26,78,28,76,239,141,161,143,162,142,164,151,166,153,167,152,168,39,256,18,259,19,264,11,455,74,459,53,956,138,957,8,959,132,962,113,347,112,348},new int[]{-84,960,-75,203,-12,227,-10,237,-13,213,-136,238,-140,24,-141,27,-154,254,-156,159,-155,163,-15,255,-247,258,-285,263,-229,454,-189,964,-163,966,-255,967,-259,968,-231,969});
states[960] = new State(new int[]{9,961,13,199});
states[961] = new State(-150);
states[962] = new State(new int[]{140,23,83,25,84,26,78,28,76,239,141,161,143,162,142,164,151,166,153,167,152,168,39,256,18,259,19,264,11,455,74,459,53,956,138,957,8,959,132,962,113,347,112,348},new int[]{-10,963,-13,213,-136,238,-140,24,-141,27,-154,254,-156,159,-155,163,-15,255,-247,258,-285,263,-229,454,-189,964,-163,966});
states[963] = new State(-151);
states[964] = new State(new int[]{140,23,83,25,84,26,78,28,76,239,141,161,143,162,142,164,151,166,153,167,152,168,39,256,18,259,19,264,11,455,74,459,53,956,138,957,8,959,132,962,113,347,112,348},new int[]{-10,965,-13,213,-136,238,-140,24,-141,27,-154,254,-156,159,-155,163,-15,255,-247,258,-285,263,-229,454,-189,964,-163,966});
states[965] = new State(-152);
states[966] = new State(-153);
states[967] = new State(-135);
states[968] = new State(-136);
states[969] = new State(-117);
states[970] = new State(new int[]{9,978,140,23,83,25,84,26,78,28,76,239,141,161,143,162,142,164,151,166,153,167,152,168,39,256,18,259,19,264,11,455,74,459,53,956,138,957,8,983,132,962,113,347,112,348,60,170},new int[]{-84,971,-62,972,-235,976,-75,203,-12,227,-10,237,-13,213,-136,982,-140,24,-141,27,-154,254,-156,159,-155,163,-15,255,-247,258,-285,263,-229,454,-189,964,-163,966,-255,967,-259,968,-231,969,-61,249,-80,986,-79,252,-88,987,-233,988,-53,989,-234,990,-236,997,-125,993});
states[971] = new State(new int[]{9,961,13,199,97,-182});
states[972] = new State(new int[]{9,973});
states[973] = new State(new int[]{124,974,89,-185,10,-185,95,-185,98,-185,30,-185,101,-185,2,-185,29,-185,97,-185,12,-185,9,-185,96,-185,82,-185,81,-185,80,-185,79,-185,84,-185,83,-185});
states[974] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,405,18,259,19,264,74,425,34,705,41,709,88,129,37,616,51,644,94,639,32,649,33,675,70,723,22,623,99,665,57,731,44,672,72,922},new int[]{-317,975,-94,369,-91,370,-90,302,-95,371,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,366,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,702,-106,552,-311,703,-312,704,-319,932,-245,716,-142,717,-307,718,-237,719,-113,720,-112,721,-114,722,-32,917,-292,918,-158,919,-238,920,-115,921});
states[975] = new State(-406);
states[976] = new State(new int[]{9,977});
states[977] = new State(-190);
states[978] = new State(new int[]{5,445,124,-955},new int[]{-313,979});
states[979] = new State(new int[]{124,980});
states[980] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,405,18,259,19,264,74,425,34,705,41,709,88,129,37,616,51,644,94,639,32,649,33,675,70,723,22,623,99,665,57,731,44,672,72,922},new int[]{-317,981,-94,369,-91,370,-90,302,-95,371,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,366,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,702,-106,552,-311,703,-312,704,-319,932,-245,716,-142,717,-307,718,-237,719,-113,720,-112,721,-114,722,-32,917,-292,918,-158,919,-238,920,-115,921});
states[981] = new State(-405);
states[982] = new State(new int[]{4,-158,11,-158,7,-158,139,-158,8,-158,116,-158,133,-158,135,-158,115,-158,114,-158,128,-158,129,-158,130,-158,131,-158,127,-158,113,-158,112,-158,125,-158,126,-158,117,-158,122,-158,120,-158,118,-158,121,-158,119,-158,134,-158,9,-158,13,-158,97,-158,5,-196});
states[983] = new State(new int[]{140,23,83,25,84,26,78,28,76,239,141,161,143,162,142,164,151,166,153,167,152,168,39,256,18,259,19,264,11,455,74,459,53,956,138,957,8,983,132,962,113,347,112,348,60,170,9,-186},new int[]{-84,971,-62,984,-235,976,-75,203,-12,227,-10,237,-13,213,-136,982,-140,24,-141,27,-154,254,-156,159,-155,163,-15,255,-247,258,-285,263,-229,454,-189,964,-163,966,-255,967,-259,968,-231,969,-61,249,-80,986,-79,252,-88,987,-233,988,-53,989,-234,990,-236,997,-125,993});
states[984] = new State(new int[]{9,985});
states[985] = new State(-185);
states[986] = new State(-188);
states[987] = new State(-183);
states[988] = new State(-184);
states[989] = new State(-408);
states[990] = new State(new int[]{10,991,9,-191});
states[991] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,9,-192},new int[]{-236,992,-125,993,-136,996,-140,24,-141,27});
states[992] = new State(-194);
states[993] = new State(new int[]{5,994});
states[994] = new State(new int[]{140,23,83,25,84,26,78,28,76,239,141,161,143,162,142,164,151,166,153,167,152,168,39,256,18,259,19,264,11,455,74,459,53,956,138,957,8,983,132,962,113,347,112,348},new int[]{-79,995,-84,253,-75,203,-12,227,-10,237,-13,213,-136,238,-140,24,-141,27,-154,254,-156,159,-155,163,-15,255,-247,258,-285,263,-229,454,-189,964,-163,966,-255,967,-259,968,-231,969,-88,987,-233,988});
states[995] = new State(-195);
states[996] = new State(-196);
states[997] = new State(-193);
states[998] = new State(-403);
states[999] = new State(-397);
states[1000] = new State(-398);
states[1001] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,405,18,259,19,264,74,425,37,560,5,569,34,705,41,709},new int[]{-83,1002,-82,139,-92,140,-91,141,-90,302,-95,310,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,366,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559,-109,568,-311,841,-312,704});
states[1002] = new State(-400);
states[1003] = new State(new int[]{140,450,83,25,84,26,78,28,76,29,151,166,153,167,152,168,113,347,112,348,141,161,143,162,142,164,8,492,139,503,21,508,45,516,46,774,31,778,71,782,62,785,41,790,34,805},new int[]{-266,1004,-262,448,-86,187,-96,279,-97,280,-170,281,-136,208,-140,24,-141,27,-15,487,-189,488,-154,491,-156,159,-155,163,-263,494,-291,495,-246,501,-239,502,-271,505,-272,506,-268,507,-260,514,-28,515,-253,773,-119,777,-120,781,-216,787,-214,788,-213,789});
states[1004] = new State(-549);
states[1005] = new State(new int[]{140,23,83,25,84,26,78,28,76,29},new int[]{-136,1006,-140,24,-141,27});
states[1006] = new State(new int[]{5,1007,134,1013});
states[1007] = new State(new int[]{140,450,83,25,84,26,78,28,76,29,151,166,153,167,152,168,113,347,112,348,141,161,143,162,142,164,8,492,139,503,21,508,45,516,46,774,31,778,71,782,62,785,41,790,34,805},new int[]{-266,1008,-262,448,-86,187,-96,279,-97,280,-170,281,-136,208,-140,24,-141,27,-15,487,-189,488,-154,491,-156,159,-155,163,-263,494,-291,495,-246,501,-239,502,-271,505,-272,506,-268,507,-260,514,-28,515,-253,773,-119,777,-120,781,-216,787,-214,788,-213,789});
states[1008] = new State(new int[]{134,1009});
states[1009] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,430,18,259,19,264,74,425,37,560},new int[]{-92,1010,-91,141,-90,302,-95,371,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559});
states[1010] = new State(new int[]{96,1011});
states[1011] = new State(new int[]{138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,585,8,586,18,259,19,264,141,161,143,162,142,164,151,166,153,167,152,168,74,425,54,610,88,129,37,616,22,623,94,639,51,644,32,649,52,659,99,665,44,672,33,675,50,683,57,731,72,736,70,723,35,745,89,-479,10,-479,95,-479,98,-479,30,-479,101,-479,2,-479,29,-479,97,-479,12,-479,9,-479,96,-479,82,-479,81,-479,80,-479,79,-479},new int[]{-250,1012,-4,135,-102,136,-121,352,-101,544,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-14,583,-154,158,-156,159,-155,163,-15,165,-16,420,-54,584,-105,468,-202,608,-122,609,-245,614,-142,615,-32,622,-237,638,-307,643,-113,648,-308,658,-149,663,-292,664,-238,671,-112,674,-303,682,-55,727,-164,728,-163,729,-158,730,-115,735,-116,742,-114,743,-337,744});
states[1012] = new State(-547);
states[1013] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,430,18,259,19,264,74,425,37,560},new int[]{-92,1014,-91,141,-90,302,-95,371,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559});
states[1014] = new State(new int[]{96,1015});
states[1015] = new State(new int[]{138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,585,8,586,18,259,19,264,141,161,143,162,142,164,151,166,153,167,152,168,74,425,54,610,88,129,37,616,22,623,94,639,51,644,32,649,52,659,99,665,44,672,33,675,50,683,57,731,72,736,70,723,35,745,89,-479,10,-479,95,-479,98,-479,30,-479,101,-479,2,-479,29,-479,97,-479,12,-479,9,-479,96,-479,82,-479,81,-479,80,-479,79,-479},new int[]{-250,1016,-4,135,-102,136,-121,352,-101,544,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-14,583,-154,158,-156,159,-155,163,-15,165,-16,420,-54,584,-105,468,-202,608,-122,609,-245,614,-142,615,-32,622,-237,638,-307,643,-113,648,-308,658,-149,663,-292,664,-238,671,-112,674,-303,682,-55,727,-164,728,-163,729,-158,730,-115,735,-116,742,-114,743,-337,744});
states[1016] = new State(-548);
states[1017] = new State(new int[]{5,1018});
states[1018] = new State(new int[]{138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,585,8,586,18,259,19,264,141,161,143,162,142,164,151,637,153,167,152,168,74,425,54,610,88,129,37,616,22,623,94,639,51,644,32,649,52,659,99,665,44,672,33,675,50,683,57,731,72,736,70,723,35,745,89,-479,10,-479,95,-479,98,-479,30,-479,101,-479,2,-479},new int[]{-251,1019,-250,134,-4,135,-102,136,-121,352,-101,544,-136,636,-140,24,-141,27,-181,372,-247,418,-285,419,-14,583,-154,158,-156,159,-155,163,-15,165,-16,420,-54,584,-105,468,-202,608,-122,609,-245,614,-142,615,-32,622,-237,638,-307,643,-113,648,-308,658,-149,663,-292,664,-238,671,-112,674,-303,682,-55,727,-164,728,-163,729,-158,730,-115,735,-116,742,-114,743,-337,744,-132,1017});
states[1019] = new State(-478);
states[1020] = new State(new int[]{77,1028,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,585,8,586,18,259,19,264,141,161,143,162,142,164,151,637,153,167,152,168,74,425,54,610,88,129,37,616,22,623,94,639,51,644,32,649,52,659,99,665,44,672,33,675,50,683,57,731,72,736,70,723,35,745,10,-479,89,-479},new int[]{-56,1021,-59,1023,-58,1040,-242,1041,-251,635,-250,134,-4,135,-102,136,-121,352,-101,544,-136,636,-140,24,-141,27,-181,372,-247,418,-285,419,-14,583,-154,158,-156,159,-155,163,-15,165,-16,420,-54,584,-105,468,-202,608,-122,609,-245,614,-142,615,-32,622,-237,638,-307,643,-113,648,-308,658,-149,663,-292,664,-238,671,-112,674,-303,682,-55,727,-164,728,-163,729,-158,730,-115,735,-116,742,-114,743,-337,744,-132,1017});
states[1021] = new State(new int[]{89,1022});
states[1022] = new State(-562);
states[1023] = new State(new int[]{10,1025,29,1038,89,-568},new int[]{-244,1024});
states[1024] = new State(-563);
states[1025] = new State(new int[]{77,1028,29,1038,89,-568},new int[]{-58,1026,-244,1027});
states[1026] = new State(-567);
states[1027] = new State(-564);
states[1028] = new State(new int[]{140,23,83,25,84,26,78,28,76,29},new int[]{-60,1029,-169,1032,-170,1033,-136,1034,-140,24,-141,27,-129,1035});
states[1029] = new State(new int[]{96,1030});
states[1030] = new State(new int[]{138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,585,8,586,18,259,19,264,141,161,143,162,142,164,151,166,153,167,152,168,74,425,54,610,88,129,37,616,22,623,94,639,51,644,32,649,52,659,99,665,44,672,33,675,50,683,57,731,72,736,70,723,35,745,10,-479,29,-479,89,-479},new int[]{-250,1031,-4,135,-102,136,-121,352,-101,544,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-14,583,-154,158,-156,159,-155,163,-15,165,-16,420,-54,584,-105,468,-202,608,-122,609,-245,614,-142,615,-32,622,-237,638,-307,643,-113,648,-308,658,-149,663,-292,664,-238,671,-112,674,-303,682,-55,727,-164,728,-163,729,-158,730,-115,735,-116,742,-114,743,-337,744});
states[1031] = new State(-570);
states[1032] = new State(-571);
states[1033] = new State(new int[]{7,175,96,-573});
states[1034] = new State(new int[]{7,-248,96,-248,5,-574});
states[1035] = new State(new int[]{5,1036});
states[1036] = new State(new int[]{140,23,83,25,84,26,78,28,76,29},new int[]{-169,1037,-170,1033,-136,208,-140,24,-141,27});
states[1037] = new State(-572);
states[1038] = new State(new int[]{138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,585,8,586,18,259,19,264,141,161,143,162,142,164,151,637,153,167,152,168,74,425,54,610,88,129,37,616,22,623,94,639,51,644,32,649,52,659,99,665,44,672,33,675,50,683,57,731,72,736,70,723,35,745,10,-479,89,-479},new int[]{-242,1039,-251,635,-250,134,-4,135,-102,136,-121,352,-101,544,-136,636,-140,24,-141,27,-181,372,-247,418,-285,419,-14,583,-154,158,-156,159,-155,163,-15,165,-16,420,-54,584,-105,468,-202,608,-122,609,-245,614,-142,615,-32,622,-237,638,-307,643,-113,648,-308,658,-149,663,-292,664,-238,671,-112,674,-303,682,-55,727,-164,728,-163,729,-158,730,-115,735,-116,742,-114,743,-337,744,-132,1017});
states[1039] = new State(new int[]{10,132,89,-569});
states[1040] = new State(-566);
states[1041] = new State(new int[]{10,132,89,-565});
states[1042] = new State(-543);
states[1043] = new State(-556);
states[1044] = new State(-557);
states[1045] = new State(-554);
states[1046] = new State(new int[]{140,23,83,25,84,26,78,28,76,29},new int[]{-170,1047,-136,208,-140,24,-141,27});
states[1047] = new State(new int[]{107,1048,7,175});
states[1048] = new State(-555);
states[1049] = new State(-552);
states[1050] = new State(new int[]{5,1051,97,1053});
states[1051] = new State(new int[]{138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,585,8,586,18,259,19,264,141,161,143,162,142,164,151,166,153,167,152,168,74,425,54,610,88,129,37,616,22,623,94,639,51,644,32,649,52,659,99,665,44,672,33,675,50,683,57,731,72,736,70,723,35,745,10,-479,29,-479,89,-479},new int[]{-250,1052,-4,135,-102,136,-121,352,-101,544,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-14,583,-154,158,-156,159,-155,163,-15,165,-16,420,-54,584,-105,468,-202,608,-122,609,-245,614,-142,615,-32,622,-237,638,-307,643,-113,648,-308,658,-149,663,-292,664,-238,671,-112,674,-303,682,-55,727,-164,728,-163,729,-158,730,-115,735,-116,742,-114,743,-337,744});
states[1052] = new State(-535);
states[1053] = new State(new int[]{140,23,83,25,84,26,78,28,76,239,141,161,143,162,142,164,151,166,153,167,152,168,39,256,18,259,19,264,11,455,74,459,53,956,138,957,8,959,132,962,113,347,112,348},new int[]{-100,1054,-87,1055,-84,198,-75,203,-12,227,-10,237,-13,213,-136,238,-140,24,-141,27,-154,254,-156,159,-155,163,-15,255,-247,258,-285,263,-229,454,-189,964,-163,966,-255,967,-259,968,-231,969});
states[1054] = new State(-537);
states[1055] = new State(-538);
states[1056] = new State(-536);
states[1057] = new State(new int[]{89,1058});
states[1058] = new State(-532);
states[1059] = new State(-533);
states[1060] = new State(new int[]{144,1064,146,1065,147,1066,148,1067,150,1068,149,1069,104,-788,88,-788,56,-788,26,-788,64,-788,47,-788,50,-788,59,-788,11,-788,25,-788,23,-788,41,-788,34,-788,27,-788,28,-788,43,-788,24,-788,89,-788,82,-788,81,-788,80,-788,79,-788,20,-788,145,-788,38,-788},new int[]{-196,1061,-199,1070});
states[1061] = new State(new int[]{10,1062});
states[1062] = new State(new int[]{144,1064,146,1065,147,1066,148,1067,150,1068,149,1069,104,-789,88,-789,56,-789,26,-789,64,-789,47,-789,50,-789,59,-789,11,-789,25,-789,23,-789,41,-789,34,-789,27,-789,28,-789,43,-789,24,-789,89,-789,82,-789,81,-789,80,-789,79,-789,20,-789,145,-789,38,-789},new int[]{-199,1063});
states[1063] = new State(-793);
states[1064] = new State(-803);
states[1065] = new State(-804);
states[1066] = new State(-805);
states[1067] = new State(-806);
states[1068] = new State(-807);
states[1069] = new State(-808);
states[1070] = new State(-792);
states[1071] = new State(-364);
states[1072] = new State(-432);
states[1073] = new State(-433);
states[1074] = new State(new int[]{8,-438,107,-438,10,-438,5,-438,7,-435});
states[1075] = new State(new int[]{120,1077,8,-441,107,-441,10,-441,7,-441,5,-441},new int[]{-144,1076});
states[1076] = new State(-442);
states[1077] = new State(new int[]{140,23,83,25,84,26,78,28,76,29},new int[]{-147,1078,-136,692,-140,24,-141,27});
states[1078] = new State(new int[]{118,1079,97,443});
states[1079] = new State(-311);
states[1080] = new State(-443);
states[1081] = new State(new int[]{120,1077,8,-439,107,-439,10,-439,5,-439},new int[]{-144,1082});
states[1082] = new State(-440);
states[1083] = new State(new int[]{7,1084});
states[1084] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,42,373},new int[]{-131,1085,-138,1086,-126,1074,-123,1075,-136,1080,-140,24,-141,27,-181,1081});
states[1085] = new State(-434);
states[1086] = new State(-437);
states[1087] = new State(-436);
states[1088] = new State(-425);
states[1089] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,82,32,81,33,80,34,79,35},new int[]{-162,1090,-136,1130,-140,24,-141,27,-139,1131});
states[1090] = new State(new int[]{7,1115,11,1121,5,-382},new int[]{-223,1091,-228,1118});
states[1091] = new State(new int[]{83,1104,84,1110,10,-389},new int[]{-192,1092});
states[1092] = new State(new int[]{10,1093});
states[1093] = new State(new int[]{60,1098,149,1100,148,1101,144,1102,147,1103,11,-379,25,-379,23,-379,41,-379,34,-379,27,-379,28,-379,43,-379,24,-379,89,-379,82,-379,81,-379,80,-379,79,-379},new int[]{-195,1094,-200,1095});
states[1094] = new State(-373);
states[1095] = new State(new int[]{10,1096});
states[1096] = new State(new int[]{60,1098,11,-379,25,-379,23,-379,41,-379,34,-379,27,-379,28,-379,43,-379,24,-379,89,-379,82,-379,81,-379,80,-379,79,-379},new int[]{-195,1097});
states[1097] = new State(-374);
states[1098] = new State(new int[]{10,1099});
states[1099] = new State(-380);
states[1100] = new State(-809);
states[1101] = new State(-810);
states[1102] = new State(-811);
states[1103] = new State(-812);
states[1104] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,405,18,259,19,264,74,425,37,560,5,569,34,705,41,709,10,-388},new int[]{-103,1105,-83,1109,-82,139,-92,140,-91,141,-90,302,-95,310,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,366,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559,-109,568,-311,841,-312,704});
states[1105] = new State(new int[]{84,1107,10,-392},new int[]{-193,1106});
states[1106] = new State(-390);
states[1107] = new State(new int[]{138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,585,8,586,18,259,19,264,141,161,143,162,142,164,151,166,153,167,152,168,74,425,54,610,88,129,37,616,22,623,94,639,51,644,32,649,52,659,99,665,44,672,33,675,50,683,57,731,72,736,70,723,35,745,10,-479},new int[]{-250,1108,-4,135,-102,136,-121,352,-101,544,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-14,583,-154,158,-156,159,-155,163,-15,165,-16,420,-54,584,-105,468,-202,608,-122,609,-245,614,-142,615,-32,622,-237,638,-307,643,-113,648,-308,658,-149,663,-292,664,-238,671,-112,674,-303,682,-55,727,-164,728,-163,729,-158,730,-115,735,-116,742,-114,743,-337,744});
states[1108] = new State(-393);
states[1109] = new State(-387);
states[1110] = new State(new int[]{138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,585,8,586,18,259,19,264,141,161,143,162,142,164,151,166,153,167,152,168,74,425,54,610,88,129,37,616,22,623,94,639,51,644,32,649,52,659,99,665,44,672,33,675,50,683,57,731,72,736,70,723,35,745,10,-479},new int[]{-250,1111,-4,135,-102,136,-121,352,-101,544,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-14,583,-154,158,-156,159,-155,163,-15,165,-16,420,-54,584,-105,468,-202,608,-122,609,-245,614,-142,615,-32,622,-237,638,-307,643,-113,648,-308,658,-149,663,-292,664,-238,671,-112,674,-303,682,-55,727,-164,728,-163,729,-158,730,-115,735,-116,742,-114,743,-337,744});
states[1111] = new State(new int[]{83,1113,10,-394},new int[]{-194,1112});
states[1112] = new State(-391);
states[1113] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,405,18,259,19,264,74,425,37,560,5,569,34,705,41,709,10,-388},new int[]{-103,1114,-83,1109,-82,139,-92,140,-91,141,-90,302,-95,310,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,366,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559,-109,568,-311,841,-312,704});
states[1114] = new State(-395);
states[1115] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,82,32,81,33,80,34,79,35},new int[]{-136,1116,-139,1117,-140,24,-141,27});
states[1116] = new State(-368);
states[1117] = new State(-369);
states[1118] = new State(new int[]{5,1119});
states[1119] = new State(new int[]{140,450,83,25,84,26,78,28,76,29,151,166,153,167,152,168,113,347,112,348,141,161,143,162,142,164,8,492,139,503,21,508,45,516,46,774,31,778,71,782,62,785,41,790,34,805},new int[]{-265,1120,-266,447,-262,448,-86,187,-96,279,-97,280,-170,281,-136,208,-140,24,-141,27,-15,487,-189,488,-154,491,-156,159,-155,163,-263,494,-291,495,-246,501,-239,502,-271,505,-272,506,-268,507,-260,514,-28,515,-253,773,-119,777,-120,781,-216,787,-214,788,-213,789});
states[1120] = new State(-381);
states[1121] = new State(new int[]{140,23,83,25,84,26,78,28,76,29},new int[]{-227,1122,-226,1129,-147,1126,-136,692,-140,24,-141,27});
states[1122] = new State(new int[]{12,1123,10,1124});
states[1123] = new State(-383);
states[1124] = new State(new int[]{140,23,83,25,84,26,78,28,76,29},new int[]{-226,1125,-147,1126,-136,692,-140,24,-141,27});
states[1125] = new State(-385);
states[1126] = new State(new int[]{5,1127,97,443});
states[1127] = new State(new int[]{140,450,83,25,84,26,78,28,76,29,151,166,153,167,152,168,113,347,112,348,141,161,143,162,142,164,8,492,139,503,21,508,45,516,46,774,31,778,71,782,62,785,41,790,34,805},new int[]{-265,1128,-266,447,-262,448,-86,187,-96,279,-97,280,-170,281,-136,208,-140,24,-141,27,-15,487,-189,488,-154,491,-156,159,-155,163,-263,494,-291,495,-246,501,-239,502,-271,505,-272,506,-268,507,-260,514,-28,515,-253,773,-119,777,-120,781,-216,787,-214,788,-213,789});
states[1128] = new State(-386);
states[1129] = new State(-384);
states[1130] = new State(-366);
states[1131] = new State(-367);
states[1132] = new State(new int[]{43,1133});
states[1133] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,82,32,81,33,80,34,79,35},new int[]{-162,1134,-136,1130,-140,24,-141,27,-139,1131});
states[1134] = new State(new int[]{7,1115,11,1121,5,-382},new int[]{-223,1135,-228,1118});
states[1135] = new State(new int[]{107,1138,10,-378},new int[]{-201,1136});
states[1136] = new State(new int[]{10,1137});
states[1137] = new State(-376);
states[1138] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,430,18,259,19,264,74,425,37,560,5,569},new int[]{-82,1139,-92,140,-91,141,-90,302,-95,310,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559,-109,568});
states[1139] = new State(-377);
states[1140] = new State(new int[]{104,1269,11,-358,25,-358,23,-358,41,-358,34,-358,27,-358,28,-358,43,-358,24,-358,89,-358,82,-358,81,-358,80,-358,79,-358,56,-65,26,-65,64,-65,47,-65,50,-65,59,-65,88,-65},new int[]{-166,1141,-40,1142,-36,1145,-57,1268});
states[1141] = new State(-426);
states[1142] = new State(new int[]{88,129},new int[]{-245,1143});
states[1143] = new State(new int[]{10,1144});
states[1144] = new State(-453);
states[1145] = new State(new int[]{56,1148,26,1169,64,1173,47,1332,50,1347,59,1349,88,-64},new int[]{-42,1146,-157,1147,-26,1154,-48,1171,-279,1175,-298,1334});
states[1146] = new State(-66);
states[1147] = new State(-82);
states[1148] = new State(new int[]{151,612,140,23,83,25,84,26,78,28,76,29},new int[]{-145,1149,-132,1153,-136,613,-140,24,-141,27});
states[1149] = new State(new int[]{10,1150,97,1151});
states[1150] = new State(-91);
states[1151] = new State(new int[]{151,612,140,23,83,25,84,26,78,28,76,29},new int[]{-132,1152,-136,613,-140,24,-141,27});
states[1152] = new State(-93);
states[1153] = new State(-92);
states[1154] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,56,-83,26,-83,64,-83,47,-83,50,-83,59,-83,88,-83},new int[]{-24,1155,-25,1156,-130,1158,-136,1168,-140,24,-141,27});
states[1155] = new State(-97);
states[1156] = new State(new int[]{10,1157});
states[1157] = new State(-107);
states[1158] = new State(new int[]{117,1159,5,1164});
states[1159] = new State(new int[]{140,23,83,25,84,26,78,28,76,239,141,161,143,162,142,164,151,166,153,167,152,168,39,256,18,259,19,264,11,455,74,459,53,956,138,957,8,1162,132,962,113,347,112,348},new int[]{-99,1160,-84,1161,-75,203,-12,227,-10,237,-13,213,-136,238,-140,24,-141,27,-154,254,-156,159,-155,163,-15,255,-247,258,-285,263,-229,454,-189,964,-163,966,-255,967,-259,968,-231,969,-88,1163});
states[1160] = new State(-108);
states[1161] = new State(new int[]{13,199,10,-110,89,-110,82,-110,81,-110,80,-110,79,-110});
states[1162] = new State(new int[]{140,23,83,25,84,26,78,28,76,239,141,161,143,162,142,164,151,166,153,167,152,168,39,256,18,259,19,264,11,455,74,459,53,956,138,957,8,983,132,962,113,347,112,348,60,170,9,-186},new int[]{-84,971,-62,984,-75,203,-12,227,-10,237,-13,213,-136,238,-140,24,-141,27,-154,254,-156,159,-155,163,-15,255,-247,258,-285,263,-229,454,-189,964,-163,966,-255,967,-259,968,-231,969,-61,249,-80,986,-79,252,-88,987,-233,988,-53,989});
states[1163] = new State(-111);
states[1164] = new State(new int[]{140,450,83,25,84,26,78,28,76,29,151,166,153,167,152,168,113,347,112,348,141,161,143,162,142,164,8,492,139,503,21,508,45,516,46,774,31,778,71,782,62,785,41,790,34,805},new int[]{-266,1165,-262,448,-86,187,-96,279,-97,280,-170,281,-136,208,-140,24,-141,27,-15,487,-189,488,-154,491,-156,159,-155,163,-263,494,-291,495,-246,501,-239,502,-271,505,-272,506,-268,507,-260,514,-28,515,-253,773,-119,777,-120,781,-216,787,-214,788,-213,789});
states[1165] = new State(new int[]{117,1166});
states[1166] = new State(new int[]{140,23,83,25,84,26,78,28,76,239,141,161,143,162,142,164,151,166,153,167,152,168,39,256,18,259,19,264,11,455,74,459,53,956,138,957,8,983,132,962,113,347,112,348},new int[]{-79,1167,-84,253,-75,203,-12,227,-10,237,-13,213,-136,238,-140,24,-141,27,-154,254,-156,159,-155,163,-15,255,-247,258,-285,263,-229,454,-189,964,-163,966,-255,967,-259,968,-231,969,-88,987,-233,988});
states[1167] = new State(-109);
states[1168] = new State(-112);
states[1169] = new State(new int[]{140,23,83,25,84,26,78,28,76,29},new int[]{-24,1170,-25,1156,-130,1158,-136,1168,-140,24,-141,27});
states[1170] = new State(-96);
states[1171] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,56,-84,26,-84,64,-84,47,-84,50,-84,59,-84,88,-84},new int[]{-24,1172,-25,1156,-130,1158,-136,1168,-140,24,-141,27});
states[1172] = new State(-99);
states[1173] = new State(new int[]{140,23,83,25,84,26,78,28,76,29},new int[]{-24,1174,-25,1156,-130,1158,-136,1168,-140,24,-141,27});
states[1174] = new State(-98);
states[1175] = new State(new int[]{11,829,56,-85,26,-85,64,-85,47,-85,50,-85,59,-85,88,-85,140,-200,83,-200,84,-200,78,-200,76,-200},new int[]{-45,1176,-6,1177,-240,848});
states[1176] = new State(-101);
states[1177] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,11,829},new int[]{-46,1178,-240,532,-133,1179,-136,1324,-140,24,-141,27,-134,1329});
states[1178] = new State(-197);
states[1179] = new State(new int[]{117,1180});
states[1180] = new State(new int[]{140,450,83,25,84,26,78,28,76,29,151,166,153,167,152,168,113,347,112,348,141,161,143,162,142,164,8,492,139,503,21,508,45,516,46,774,31,778,71,782,62,785,41,790,34,805,66,1318,67,1319,144,1320,24,1321,25,1322,23,-293,40,-293,61,-293},new int[]{-277,1181,-266,1183,-262,448,-86,187,-96,279,-97,280,-170,281,-136,208,-140,24,-141,27,-15,487,-189,488,-154,491,-156,159,-155,163,-263,494,-291,495,-246,501,-239,502,-271,505,-272,506,-268,507,-260,514,-28,515,-253,773,-119,777,-120,781,-216,787,-214,788,-213,789,-27,1184,-20,1185,-21,1316,-19,1323});
states[1181] = new State(new int[]{10,1182});
states[1182] = new State(-206);
states[1183] = new State(-211);
states[1184] = new State(-212);
states[1185] = new State(new int[]{23,1310,40,1311,61,1312},new int[]{-281,1186});
states[1186] = new State(new int[]{8,1227,20,-305,11,-305,89,-305,82,-305,81,-305,80,-305,79,-305,26,-305,140,-305,83,-305,84,-305,78,-305,76,-305,59,-305,25,-305,23,-305,41,-305,34,-305,27,-305,28,-305,43,-305,24,-305,10,-305},new int[]{-173,1187});
states[1187] = new State(new int[]{20,1218,11,-312,89,-312,82,-312,81,-312,80,-312,79,-312,26,-312,140,-312,83,-312,84,-312,78,-312,76,-312,59,-312,25,-312,23,-312,41,-312,34,-312,27,-312,28,-312,43,-312,24,-312,10,-312},new int[]{-306,1188,-305,1216,-304,1238});
states[1188] = new State(new int[]{11,829,10,-303,89,-329,82,-329,81,-329,80,-329,79,-329,26,-200,140,-200,83,-200,84,-200,78,-200,76,-200,59,-200,25,-200,23,-200,41,-200,34,-200,27,-200,28,-200,43,-200,24,-200},new int[]{-23,1189,-22,1190,-29,1196,-31,523,-41,1197,-6,1198,-240,848,-30,1307,-50,1309,-49,529,-51,1308});
states[1189] = new State(-286);
states[1190] = new State(new int[]{89,1191,82,1192,81,1193,80,1194,79,1195},new int[]{-7,521});
states[1191] = new State(-304);
states[1192] = new State(-325);
states[1193] = new State(-326);
states[1194] = new State(-327);
states[1195] = new State(-328);
states[1196] = new State(-323);
states[1197] = new State(-337);
states[1198] = new State(new int[]{26,1200,140,23,83,25,84,26,78,28,76,29,59,1204,25,1263,23,1264,11,829,41,1211,34,1246,27,1278,28,1285,43,1292,24,1301},new int[]{-47,1199,-240,532,-212,531,-209,533,-248,534,-301,1202,-300,1203,-147,693,-136,692,-140,24,-141,27,-3,1208,-220,1265,-218,1140,-215,1210,-219,1245,-217,1266,-205,1289,-206,1290,-208,1291});
states[1199] = new State(-339);
states[1200] = new State(new int[]{140,23,83,25,84,26,78,28,76,29},new int[]{-25,1201,-130,1158,-136,1168,-140,24,-141,27});
states[1201] = new State(-344);
states[1202] = new State(-345);
states[1203] = new State(-349);
states[1204] = new State(new int[]{140,23,83,25,84,26,78,28,76,29},new int[]{-147,1205,-136,692,-140,24,-141,27});
states[1205] = new State(new int[]{5,1206,97,443});
states[1206] = new State(new int[]{140,450,83,25,84,26,78,28,76,29,151,166,153,167,152,168,113,347,112,348,141,161,143,162,142,164,8,492,139,503,21,508,45,516,46,774,31,778,71,782,62,785,41,790,34,805},new int[]{-266,1207,-262,448,-86,187,-96,279,-97,280,-170,281,-136,208,-140,24,-141,27,-15,487,-189,488,-154,491,-156,159,-155,163,-263,494,-291,495,-246,501,-239,502,-271,505,-272,506,-268,507,-260,514,-28,515,-253,773,-119,777,-120,781,-216,787,-214,788,-213,789});
states[1207] = new State(-350);
states[1208] = new State(new int[]{27,537,43,1089,24,1132,140,23,83,25,84,26,78,28,76,29,59,1204,41,1211,34,1246},new int[]{-301,1209,-220,536,-206,1088,-300,1203,-147,693,-136,692,-140,24,-141,27,-218,1140,-215,1210,-219,1245});
states[1209] = new State(-346);
states[1210] = new State(-359);
states[1211] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,42,373},new int[]{-160,1212,-159,1072,-131,1073,-126,1074,-123,1075,-136,1080,-140,24,-141,27,-181,1081,-323,1083,-138,1087});
states[1212] = new State(new int[]{8,792,10,-455,107,-455},new int[]{-117,1213});
states[1213] = new State(new int[]{10,1243,107,-790},new int[]{-197,1214,-198,1239});
states[1214] = new State(new int[]{20,1218,104,-312,88,-312,56,-312,26,-312,64,-312,47,-312,50,-312,59,-312,11,-312,25,-312,23,-312,41,-312,34,-312,27,-312,28,-312,43,-312,24,-312,89,-312,82,-312,81,-312,80,-312,79,-312,145,-312,38,-312},new int[]{-306,1215,-305,1216,-304,1238});
states[1215] = new State(-444);
states[1216] = new State(new int[]{20,1218,11,-313,89,-313,82,-313,81,-313,80,-313,79,-313,26,-313,140,-313,83,-313,84,-313,78,-313,76,-313,59,-313,25,-313,23,-313,41,-313,34,-313,27,-313,28,-313,43,-313,24,-313,10,-313,104,-313,88,-313,56,-313,64,-313,47,-313,50,-313,145,-313,38,-313},new int[]{-304,1217});
states[1217] = new State(-315);
states[1218] = new State(new int[]{140,23,83,25,84,26,78,28,76,29},new int[]{-147,1219,-136,692,-140,24,-141,27});
states[1219] = new State(new int[]{5,1220,97,443});
states[1220] = new State(new int[]{140,450,83,25,84,26,78,28,76,29,151,166,153,167,152,168,113,347,112,348,141,161,143,162,142,164,8,492,139,503,21,508,45,1226,46,774,31,778,71,782,62,785,41,790,34,805,23,1235,27,1236},new int[]{-278,1221,-275,1237,-266,1225,-262,448,-86,187,-96,279,-97,280,-170,281,-136,208,-140,24,-141,27,-15,487,-189,488,-154,491,-156,159,-155,163,-263,494,-291,495,-246,501,-239,502,-271,505,-272,506,-268,507,-260,514,-28,515,-253,773,-119,777,-120,781,-216,787,-214,788,-213,789});
states[1221] = new State(new int[]{10,1222,97,1223});
states[1222] = new State(-316);
states[1223] = new State(new int[]{140,450,83,25,84,26,78,28,76,29,151,166,153,167,152,168,113,347,112,348,141,161,143,162,142,164,8,492,139,503,21,508,45,1226,46,774,31,778,71,782,62,785,41,790,34,805,23,1235,27,1236},new int[]{-275,1224,-266,1225,-262,448,-86,187,-96,279,-97,280,-170,281,-136,208,-140,24,-141,27,-15,487,-189,488,-154,491,-156,159,-155,163,-263,494,-291,495,-246,501,-239,502,-271,505,-272,506,-268,507,-260,514,-28,515,-253,773,-119,777,-120,781,-216,787,-214,788,-213,789});
states[1224] = new State(-318);
states[1225] = new State(-319);
states[1226] = new State(new int[]{8,1227,10,-321,97,-321,20,-305,11,-305,89,-305,82,-305,81,-305,80,-305,79,-305,26,-305,140,-305,83,-305,84,-305,78,-305,76,-305,59,-305,25,-305,23,-305,41,-305,34,-305,27,-305,28,-305,43,-305,24,-305},new int[]{-173,517});
states[1227] = new State(new int[]{140,23,83,25,84,26,78,28,76,29},new int[]{-172,1228,-171,1234,-170,1232,-136,208,-140,24,-141,27,-291,1233});
states[1228] = new State(new int[]{9,1229,97,1230});
states[1229] = new State(-306);
states[1230] = new State(new int[]{140,23,83,25,84,26,78,28,76,29},new int[]{-171,1231,-170,1232,-136,208,-140,24,-141,27,-291,1233});
states[1231] = new State(-308);
states[1232] = new State(new int[]{7,175,120,180,9,-309,97,-309},new int[]{-289,837});
states[1233] = new State(-310);
states[1234] = new State(-307);
states[1235] = new State(-320);
states[1236] = new State(-322);
states[1237] = new State(-317);
states[1238] = new State(-314);
states[1239] = new State(new int[]{107,1240});
states[1240] = new State(new int[]{138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,585,8,586,18,259,19,264,141,161,143,162,142,164,151,166,153,167,152,168,74,425,54,610,88,129,37,616,22,623,94,639,51,644,32,649,52,659,99,665,44,672,33,675,50,683,57,731,72,736,70,723,35,745,10,-479},new int[]{-250,1241,-4,135,-102,136,-121,352,-101,544,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-14,583,-154,158,-156,159,-155,163,-15,165,-16,420,-54,584,-105,468,-202,608,-122,609,-245,614,-142,615,-32,622,-237,638,-307,643,-113,648,-308,658,-149,663,-292,664,-238,671,-112,674,-303,682,-55,727,-164,728,-163,729,-158,730,-115,735,-116,742,-114,743,-337,744});
states[1241] = new State(new int[]{10,1242});
states[1242] = new State(-429);
states[1243] = new State(new int[]{144,1064,146,1065,147,1066,148,1067,150,1068,149,1069,20,-788,104,-788,88,-788,56,-788,26,-788,64,-788,47,-788,50,-788,59,-788,11,-788,25,-788,23,-788,41,-788,34,-788,27,-788,28,-788,43,-788,24,-788,89,-788,82,-788,81,-788,80,-788,79,-788,145,-788},new int[]{-196,1244,-199,1070});
states[1244] = new State(new int[]{10,1062,107,-791});
states[1245] = new State(-360);
states[1246] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,42,373},new int[]{-159,1247,-131,1073,-126,1074,-123,1075,-136,1080,-140,24,-141,27,-181,1081,-323,1083,-138,1087});
states[1247] = new State(new int[]{8,792,5,-455,10,-455,107,-455},new int[]{-117,1248});
states[1248] = new State(new int[]{5,1251,10,1243,107,-790},new int[]{-197,1249,-198,1259});
states[1249] = new State(new int[]{20,1218,104,-312,88,-312,56,-312,26,-312,64,-312,47,-312,50,-312,59,-312,11,-312,25,-312,23,-312,41,-312,34,-312,27,-312,28,-312,43,-312,24,-312,89,-312,82,-312,81,-312,80,-312,79,-312,145,-312,38,-312},new int[]{-306,1250,-305,1216,-304,1238});
states[1250] = new State(-445);
states[1251] = new State(new int[]{140,450,83,25,84,26,78,28,76,29,151,166,153,167,152,168,113,347,112,348,141,161,143,162,142,164,8,492,139,503,21,508,45,516,46,774,31,778,71,782,62,785,41,790,34,805},new int[]{-265,1252,-266,447,-262,448,-86,187,-96,279,-97,280,-170,281,-136,208,-140,24,-141,27,-15,487,-189,488,-154,491,-156,159,-155,163,-263,494,-291,495,-246,501,-239,502,-271,505,-272,506,-268,507,-260,514,-28,515,-253,773,-119,777,-120,781,-216,787,-214,788,-213,789});
states[1252] = new State(new int[]{10,1243,107,-790},new int[]{-197,1253,-198,1255});
states[1253] = new State(new int[]{20,1218,104,-312,88,-312,56,-312,26,-312,64,-312,47,-312,50,-312,59,-312,11,-312,25,-312,23,-312,41,-312,34,-312,27,-312,28,-312,43,-312,24,-312,89,-312,82,-312,81,-312,80,-312,79,-312,145,-312,38,-312},new int[]{-306,1254,-305,1216,-304,1238});
states[1254] = new State(-446);
states[1255] = new State(new int[]{107,1256});
states[1256] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,405,18,259,19,264,74,425,37,560,34,705,41,709},new int[]{-93,1257,-92,740,-91,141,-90,302,-95,371,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,366,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559,-311,741,-312,704});
states[1257] = new State(new int[]{10,1258});
states[1258] = new State(-427);
states[1259] = new State(new int[]{107,1260});
states[1260] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,405,18,259,19,264,74,425,37,560,34,705,41,709},new int[]{-93,1261,-92,740,-91,141,-90,302,-95,371,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,366,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559,-311,741,-312,704});
states[1261] = new State(new int[]{10,1262});
states[1262] = new State(-428);
states[1263] = new State(-347);
states[1264] = new State(-348);
states[1265] = new State(-356);
states[1266] = new State(new int[]{104,1269,11,-357,25,-357,23,-357,41,-357,34,-357,27,-357,28,-357,43,-357,24,-357,89,-357,82,-357,81,-357,80,-357,79,-357,56,-65,26,-65,64,-65,47,-65,50,-65,59,-65,88,-65},new int[]{-166,1267,-40,1142,-36,1145,-57,1268});
states[1267] = new State(-412);
states[1268] = new State(-454);
states[1269] = new State(new int[]{10,1277,140,23,83,25,84,26,78,28,76,29,141,161,143,162,142,164},new int[]{-98,1270,-136,1274,-140,24,-141,27,-154,1275,-156,159,-155,163});
states[1270] = new State(new int[]{78,1271,10,1276});
states[1271] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,141,161,143,162,142,164},new int[]{-98,1272,-136,1274,-140,24,-141,27,-154,1275,-156,159,-155,163});
states[1272] = new State(new int[]{10,1273});
states[1273] = new State(-447);
states[1274] = new State(-450);
states[1275] = new State(-451);
states[1276] = new State(-448);
states[1277] = new State(-449);
states[1278] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,42,373,8,-365,107,-365,10,-365},new int[]{-161,1279,-160,1071,-159,1072,-131,1073,-126,1074,-123,1075,-136,1080,-140,24,-141,27,-181,1081,-323,1083,-138,1087});
states[1279] = new State(new int[]{8,792,107,-455,10,-455},new int[]{-117,1280});
states[1280] = new State(new int[]{107,1282,10,1060},new int[]{-197,1281});
states[1281] = new State(-361);
states[1282] = new State(new int[]{138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,585,8,586,18,259,19,264,141,161,143,162,142,164,151,166,153,167,152,168,74,425,54,610,88,129,37,616,22,623,94,639,51,644,32,649,52,659,99,665,44,672,33,675,50,683,57,731,72,736,70,723,35,745,10,-479},new int[]{-250,1283,-4,135,-102,136,-121,352,-101,544,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-14,583,-154,158,-156,159,-155,163,-15,165,-16,420,-54,584,-105,468,-202,608,-122,609,-245,614,-142,615,-32,622,-237,638,-307,643,-113,648,-308,658,-149,663,-292,664,-238,671,-112,674,-303,682,-55,727,-164,728,-163,729,-158,730,-115,735,-116,742,-114,743,-337,744});
states[1283] = new State(new int[]{10,1284});
states[1284] = new State(-413);
states[1285] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,42,373,8,-365,10,-365},new int[]{-161,1286,-160,1071,-159,1072,-131,1073,-126,1074,-123,1075,-136,1080,-140,24,-141,27,-181,1081,-323,1083,-138,1087});
states[1286] = new State(new int[]{8,792,10,-455},new int[]{-117,1287});
states[1287] = new State(new int[]{10,1060},new int[]{-197,1288});
states[1288] = new State(-363);
states[1289] = new State(-353);
states[1290] = new State(-424);
states[1291] = new State(-354);
states[1292] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,82,32,81,33,80,34,79,35},new int[]{-162,1293,-136,1130,-140,24,-141,27,-139,1131});
states[1293] = new State(new int[]{7,1115,11,1121,5,-382},new int[]{-223,1294,-228,1118});
states[1294] = new State(new int[]{83,1104,84,1110,10,-389},new int[]{-192,1295});
states[1295] = new State(new int[]{10,1296});
states[1296] = new State(new int[]{60,1098,149,1100,148,1101,144,1102,147,1103,11,-379,25,-379,23,-379,41,-379,34,-379,27,-379,28,-379,43,-379,24,-379,89,-379,82,-379,81,-379,80,-379,79,-379},new int[]{-195,1297,-200,1298});
states[1297] = new State(-371);
states[1298] = new State(new int[]{10,1299});
states[1299] = new State(new int[]{60,1098,11,-379,25,-379,23,-379,41,-379,34,-379,27,-379,28,-379,43,-379,24,-379,89,-379,82,-379,81,-379,80,-379,79,-379},new int[]{-195,1300});
states[1300] = new State(-372);
states[1301] = new State(new int[]{43,1302});
states[1302] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,82,32,81,33,80,34,79,35},new int[]{-162,1303,-136,1130,-140,24,-141,27,-139,1131});
states[1303] = new State(new int[]{7,1115,11,1121,5,-382},new int[]{-223,1304,-228,1118});
states[1304] = new State(new int[]{107,1138,10,-378},new int[]{-201,1305});
states[1305] = new State(new int[]{10,1306});
states[1306] = new State(-375);
states[1307] = new State(new int[]{11,829,89,-331,82,-331,81,-331,80,-331,79,-331,25,-200,23,-200,41,-200,34,-200,27,-200,28,-200,43,-200,24,-200},new int[]{-50,528,-49,529,-6,530,-240,848,-51,1308});
states[1308] = new State(-343);
states[1309] = new State(-340);
states[1310] = new State(-297);
states[1311] = new State(-298);
states[1312] = new State(new int[]{23,1313,45,1314,40,1315,8,-299,20,-299,11,-299,89,-299,82,-299,81,-299,80,-299,79,-299,26,-299,140,-299,83,-299,84,-299,78,-299,76,-299,59,-299,25,-299,41,-299,34,-299,27,-299,28,-299,43,-299,24,-299,10,-299});
states[1313] = new State(-300);
states[1314] = new State(-301);
states[1315] = new State(-302);
states[1316] = new State(new int[]{66,1318,67,1319,144,1320,24,1321,25,1322,23,-294,40,-294,61,-294},new int[]{-19,1317});
states[1317] = new State(-296);
states[1318] = new State(-288);
states[1319] = new State(-289);
states[1320] = new State(-290);
states[1321] = new State(-291);
states[1322] = new State(-292);
states[1323] = new State(-295);
states[1324] = new State(new int[]{120,1326,117,-208},new int[]{-144,1325});
states[1325] = new State(-209);
states[1326] = new State(new int[]{140,23,83,25,84,26,78,28,76,29},new int[]{-147,1327,-136,692,-140,24,-141,27});
states[1327] = new State(new int[]{119,1328,118,1079,97,443});
states[1328] = new State(-210);
states[1329] = new State(new int[]{140,450,83,25,84,26,78,28,76,29,151,166,153,167,152,168,113,347,112,348,141,161,143,162,142,164,8,492,139,503,21,508,45,516,46,774,31,778,71,782,62,785,41,790,34,805,66,1318,67,1319,144,1320,24,1321,25,1322,23,-293,40,-293,61,-293},new int[]{-277,1330,-266,1183,-262,448,-86,187,-96,279,-97,280,-170,281,-136,208,-140,24,-141,27,-15,487,-189,488,-154,491,-156,159,-155,163,-263,494,-291,495,-246,501,-239,502,-271,505,-272,506,-268,507,-260,514,-28,515,-253,773,-119,777,-120,781,-216,787,-214,788,-213,789,-27,1184,-20,1185,-21,1316,-19,1323});
states[1330] = new State(new int[]{10,1331});
states[1331] = new State(-207);
states[1332] = new State(new int[]{11,829,140,-200,83,-200,84,-200,78,-200,76,-200},new int[]{-45,1333,-6,1177,-240,848});
states[1333] = new State(-100);
states[1334] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,8,1339,56,-86,26,-86,64,-86,47,-86,50,-86,59,-86,88,-86},new int[]{-302,1335,-299,1336,-300,1337,-147,693,-136,692,-140,24,-141,27});
states[1335] = new State(-106);
states[1336] = new State(-102);
states[1337] = new State(new int[]{10,1338});
states[1338] = new State(-396);
states[1339] = new State(new int[]{140,23,83,25,84,26,78,28,76,29},new int[]{-136,1340,-140,24,-141,27});
states[1340] = new State(new int[]{97,1341});
states[1341] = new State(new int[]{140,23,83,25,84,26,78,28,76,29},new int[]{-147,1342,-136,692,-140,24,-141,27});
states[1342] = new State(new int[]{9,1343,97,443});
states[1343] = new State(new int[]{107,1344});
states[1344] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,430,18,259,19,264,74,425,37,560},new int[]{-92,1345,-91,141,-90,302,-95,371,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559});
states[1345] = new State(new int[]{10,1346});
states[1346] = new State(-103);
states[1347] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,8,1339},new int[]{-302,1348,-299,1336,-300,1337,-147,693,-136,692,-140,24,-141,27});
states[1348] = new State(-104);
states[1349] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,8,1339},new int[]{-302,1350,-299,1336,-300,1337,-147,693,-136,692,-140,24,-141,27});
states[1350] = new State(-105);
states[1351] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,151,166,153,167,152,168,113,347,112,348,141,161,143,162,142,164,8,942,12,-269,97,-269},new int[]{-261,1352,-262,1353,-86,187,-96,279,-97,280,-170,490,-136,208,-140,24,-141,27,-15,487,-189,488,-154,491,-156,159,-155,163});
states[1352] = new State(-267);
states[1353] = new State(-268);
states[1354] = new State(-266);
states[1355] = new State(new int[]{140,450,83,25,84,26,78,28,76,29,151,166,153,167,152,168,113,347,112,348,141,161,143,162,142,164,8,492,139,503,21,508,45,516,46,774,31,778,71,782,62,785,41,790,34,805},new int[]{-266,1356,-262,448,-86,187,-96,279,-97,280,-170,281,-136,208,-140,24,-141,27,-15,487,-189,488,-154,491,-156,159,-155,163,-263,494,-291,495,-246,501,-239,502,-271,505,-272,506,-268,507,-260,514,-28,515,-253,773,-119,777,-120,781,-216,787,-214,788,-213,789});
states[1356] = new State(-265);
states[1357] = new State(-233);
states[1358] = new State(-234);
states[1359] = new State(new int[]{124,497,118,-235,97,-235,117,-235,9,-235,10,-235,107,-235,89,-235,95,-235,98,-235,30,-235,101,-235,2,-235,29,-235,12,-235,96,-235,82,-235,81,-235,80,-235,79,-235,84,-235,83,-235,134,-235});
states[1360] = new State(-666);
states[1361] = new State(new int[]{8,1362});
states[1362] = new State(new int[]{14,481,141,161,143,162,142,164,151,166,153,167,152,168,50,483,140,23,83,25,84,26,78,28,76,29,11,862,8,875},new int[]{-342,1363,-340,1369,-14,482,-154,158,-156,159,-155,163,-15,165,-329,1360,-274,1361,-170,174,-136,208,-140,24,-141,27,-332,1367,-333,1368});
states[1363] = new State(new int[]{9,1364,10,479,97,1365});
states[1364] = new State(-624);
states[1365] = new State(new int[]{14,481,141,161,143,162,142,164,151,166,153,167,152,168,50,483,140,23,83,25,84,26,78,28,76,29,11,862,8,875},new int[]{-340,1366,-14,482,-154,158,-156,159,-155,163,-15,165,-329,1360,-274,1361,-170,174,-136,208,-140,24,-141,27,-332,1367,-333,1368});
states[1366] = new State(-661);
states[1367] = new State(-667);
states[1368] = new State(-668);
states[1369] = new State(-659);
states[1370] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,430,18,259,19,264,74,425,37,560},new int[]{-92,1371,-91,141,-90,302,-95,371,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559});
states[1371] = new State(-114);
states[1372] = new State(-113);
states[1373] = new State(new int[]{5,938,124,-957},new int[]{-314,1374});
states[1374] = new State(new int[]{124,1375});
states[1375] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,405,18,259,19,264,74,425,34,705,41,709,88,129,37,616,51,644,94,639,32,649,33,675,70,723,22,623,99,665,57,731,44,672,72,922},new int[]{-317,1376,-94,369,-91,370,-90,302,-95,371,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,366,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,702,-106,552,-311,703,-312,704,-319,932,-245,716,-142,717,-307,718,-237,719,-113,720,-112,721,-114,722,-32,917,-292,918,-158,919,-238,920,-115,921});
states[1376] = new State(-937);
states[1377] = new State(new int[]{5,1378,10,1390,17,-758,8,-758,7,-758,139,-758,4,-758,15,-758,135,-758,133,-758,115,-758,114,-758,128,-758,129,-758,130,-758,131,-758,127,-758,113,-758,112,-758,125,-758,126,-758,123,-758,6,-758,117,-758,122,-758,120,-758,118,-758,121,-758,119,-758,134,-758,16,-758,97,-758,9,-758,13,-758,116,-758,11,-758});
states[1378] = new State(new int[]{140,450,83,25,84,26,78,28,76,29,151,166,153,167,152,168,113,347,112,348,141,161,143,162,142,164,8,492,139,503,21,508,45,516,46,774,31,778,71,782,62,785,41,790,34,805},new int[]{-265,1379,-266,447,-262,448,-86,187,-96,279,-97,280,-170,281,-136,208,-140,24,-141,27,-15,487,-189,488,-154,491,-156,159,-155,163,-263,494,-291,495,-246,501,-239,502,-271,505,-272,506,-268,507,-260,514,-28,515,-253,773,-119,777,-120,781,-216,787,-214,788,-213,789});
states[1379] = new State(new int[]{9,1380,10,1384});
states[1380] = new State(new int[]{5,938,124,-957},new int[]{-314,1381});
states[1381] = new State(new int[]{124,1382});
states[1382] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,405,18,259,19,264,74,425,34,705,41,709,88,129,37,616,51,644,94,639,32,649,33,675,70,723,22,623,99,665,57,731,44,672,72,922},new int[]{-317,1383,-94,369,-91,370,-90,302,-95,371,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,366,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,702,-106,552,-311,703,-312,704,-319,932,-245,716,-142,717,-307,718,-237,719,-113,720,-112,721,-114,722,-32,917,-292,918,-158,919,-238,920,-115,921});
states[1383] = new State(-938);
states[1384] = new State(new int[]{140,23,83,25,84,26,78,28,76,29},new int[]{-315,1385,-316,931,-147,441,-136,692,-140,24,-141,27});
states[1385] = new State(new int[]{9,1386,10,439});
states[1386] = new State(new int[]{5,938,124,-957},new int[]{-314,1387});
states[1387] = new State(new int[]{124,1388});
states[1388] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,405,18,259,19,264,74,425,34,705,41,709,88,129,37,616,51,644,94,639,32,649,33,675,70,723,22,623,99,665,57,731,44,672,72,922},new int[]{-317,1389,-94,369,-91,370,-90,302,-95,371,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,366,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,702,-106,552,-311,703,-312,704,-319,932,-245,716,-142,717,-307,718,-237,719,-113,720,-112,721,-114,722,-32,917,-292,918,-158,919,-238,920,-115,921});
states[1389] = new State(-940);
states[1390] = new State(new int[]{140,23,83,25,84,26,78,28,76,29},new int[]{-315,1391,-316,931,-147,441,-136,692,-140,24,-141,27});
states[1391] = new State(new int[]{9,1392,10,439});
states[1392] = new State(new int[]{5,938,124,-957},new int[]{-314,1393});
states[1393] = new State(new int[]{124,1394});
states[1394] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,405,18,259,19,264,74,425,34,705,41,709,88,129,37,616,51,644,94,639,32,649,33,675,70,723,22,623,99,665,57,731,44,672,72,922},new int[]{-317,1395,-94,369,-91,370,-90,302,-95,371,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,366,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,702,-106,552,-311,703,-312,704,-319,932,-245,716,-142,717,-307,718,-237,719,-113,720,-112,721,-114,722,-32,917,-292,918,-158,919,-238,920,-115,921});
states[1395] = new State(-939);
states[1396] = new State(-749);
states[1397] = new State(-228);
states[1398] = new State(-224);
states[1399] = new State(-604);
states[1400] = new State(new int[]{8,1401});
states[1401] = new State(new int[]{140,23,83,25,84,26,78,28,76,239,53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,42,373,39,403,8,430,18,259,19,264,74,425},new int[]{-322,1402,-321,1410,-136,1406,-140,24,-141,27,-90,1409,-95,371,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550});
states[1402] = new State(new int[]{9,1403,97,1404});
states[1403] = new State(-613);
states[1404] = new State(new int[]{140,23,83,25,84,26,78,28,76,239,53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,42,373,39,403,8,430,18,259,19,264,74,425},new int[]{-321,1405,-136,1406,-140,24,-141,27,-90,1409,-95,371,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550});
states[1405] = new State(-617);
states[1406] = new State(new int[]{107,1407,17,-758,8,-758,7,-758,139,-758,4,-758,15,-758,135,-758,133,-758,115,-758,114,-758,128,-758,129,-758,130,-758,131,-758,127,-758,113,-758,112,-758,125,-758,126,-758,123,-758,6,-758,117,-758,122,-758,120,-758,118,-758,121,-758,119,-758,134,-758,9,-758,97,-758,116,-758,11,-758});
states[1407] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,430,18,259,19,264,74,425},new int[]{-90,1408,-95,371,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550});
states[1408] = new State(new int[]{117,303,122,304,120,305,118,306,121,307,119,308,134,309,9,-614,97,-614},new int[]{-186,144});
states[1409] = new State(new int[]{117,303,122,304,120,305,118,306,121,307,119,308,134,309,9,-615,97,-615},new int[]{-186,144});
states[1410] = new State(-616);
states[1411] = new State(new int[]{13,199,5,-681,12,-681});
states[1412] = new State(new int[]{140,23,83,25,84,26,78,28,76,239,141,161,143,162,142,164,151,166,153,167,152,168,39,256,18,259,19,264,11,455,74,459,53,956,138,957,8,959,132,962,113,347,112,348},new int[]{-84,1413,-75,203,-12,227,-10,237,-13,213,-136,238,-140,24,-141,27,-154,254,-156,159,-155,163,-15,255,-247,258,-285,263,-229,454,-189,964,-163,966,-255,967,-259,968,-231,969});
states[1413] = new State(new int[]{13,199,97,-178,9,-178,12,-178,5,-178});
states[1414] = new State(new int[]{140,23,83,25,84,26,78,28,76,239,141,161,143,162,142,164,151,166,153,167,152,168,39,256,18,259,19,264,11,455,74,459,53,956,138,957,8,959,132,962,113,347,112,348,5,-682,12,-682},new int[]{-111,1415,-84,1411,-75,203,-12,227,-10,237,-13,213,-136,238,-140,24,-141,27,-154,254,-156,159,-155,163,-15,255,-247,258,-285,263,-229,454,-189,964,-163,966,-255,967,-259,968,-231,969});
states[1415] = new State(new int[]{5,1416,12,-688});
states[1416] = new State(new int[]{140,23,83,25,84,26,78,28,76,239,141,161,143,162,142,164,151,166,153,167,152,168,39,256,18,259,19,264,11,455,74,459,53,956,138,957,8,959,132,962,113,347,112,348},new int[]{-84,1417,-75,203,-12,227,-10,237,-13,213,-136,238,-140,24,-141,27,-154,254,-156,159,-155,163,-15,255,-247,258,-285,263,-229,454,-189,964,-163,966,-255,967,-259,968,-231,969});
states[1417] = new State(new int[]{13,199,12,-690});
states[1418] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,82,32,81,33,80,34,79,35,66,36,61,37,125,38,19,39,18,40,60,41,20,42,126,43,127,44,128,45,129,46,130,47,131,48,132,49,133,50,134,51,135,52,21,53,71,54,88,55,22,56,23,57,26,58,27,59,28,60,69,61,96,62,29,63,89,64,30,65,31,66,24,67,101,68,98,69,32,70,33,71,34,72,37,73,38,74,39,75,100,76,40,77,41,78,43,79,44,80,45,81,94,82,46,83,99,84,47,85,25,86,48,87,68,88,95,89,49,90,50,91,51,92,52,93,53,94,54,95,55,96,56,97,58,98,102,99,103,100,106,101,104,102,105,103,59,104,72,105,35,106,36,107,67,108,144,109,57,110,136,111,137,112,77,113,149,114,148,115,70,116,150,117,146,118,147,119,145,120,42,122},new int[]{-127,1419,-136,22,-140,24,-141,27,-283,30,-139,31,-284,121});
states[1419] = new State(-167);
states[1420] = new State(-168);
states[1421] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,405,18,259,19,264,74,425,37,560,5,569,34,705,41,709,9,-172},new int[]{-70,1422,-66,1424,-83,424,-82,139,-92,140,-91,141,-90,302,-95,310,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,366,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559,-109,568,-311,841,-312,704});
states[1422] = new State(new int[]{9,1423});
states[1423] = new State(-169);
states[1424] = new State(new int[]{97,364,9,-171});
states[1425] = new State(-138);
states[1426] = new State(new int[]{140,23,83,25,84,26,78,28,76,239,141,161,143,162,142,164,151,166,153,167,152,168,39,256,18,259,19,264,11,455,74,459,53,956,138,957,8,959,132,962,113,347,112,348},new int[]{-75,1427,-12,227,-10,237,-13,213,-136,238,-140,24,-141,27,-154,254,-156,159,-155,163,-15,255,-247,258,-285,263,-229,454,-189,964,-163,966,-255,967,-259,968});
states[1427] = new State(new int[]{113,1428,112,1429,125,1430,126,1431,13,-116,6,-116,97,-116,9,-116,12,-116,5,-116,89,-116,10,-116,95,-116,98,-116,30,-116,101,-116,2,-116,29,-116,96,-116,82,-116,81,-116,80,-116,79,-116,84,-116,83,-116},new int[]{-183,204});
states[1428] = new State(-128);
states[1429] = new State(-129);
states[1430] = new State(-130);
states[1431] = new State(-131);
states[1432] = new State(-119);
states[1433] = new State(-120);
states[1434] = new State(-121);
states[1435] = new State(-122);
states[1436] = new State(-123);
states[1437] = new State(-124);
states[1438] = new State(-125);
states[1439] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,151,166,153,167,152,168,113,347,112,348,141,161,143,162,142,164},new int[]{-86,1440,-96,279,-97,280,-170,490,-136,208,-140,24,-141,27,-15,487,-189,488,-154,491,-156,159,-155,163});
states[1440] = new State(new int[]{113,1428,112,1429,125,1430,126,1431,13,-237,118,-237,97,-237,117,-237,9,-237,10,-237,124,-237,107,-237,89,-237,95,-237,98,-237,30,-237,101,-237,2,-237,29,-237,12,-237,96,-237,82,-237,81,-237,80,-237,79,-237,84,-237,83,-237,134,-237},new int[]{-183,188});
states[1441] = new State(-702);
states[1442] = new State(-622);
states[1443] = new State(-35);
states[1444] = new State(new int[]{56,1148,26,1169,64,1173,47,1332,50,1347,59,1349,11,829,88,-61,89,-61,100,-61,41,-200,34,-200,25,-200,23,-200,27,-200,28,-200},new int[]{-43,1445,-157,1446,-26,1447,-48,1448,-279,1449,-298,1450,-210,1451,-6,1452,-240,848});
states[1445] = new State(-63);
states[1446] = new State(-73);
states[1447] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,56,-74,26,-74,64,-74,47,-74,50,-74,59,-74,11,-74,41,-74,34,-74,25,-74,23,-74,27,-74,28,-74,88,-74,89,-74,100,-74},new int[]{-24,1155,-25,1156,-130,1158,-136,1168,-140,24,-141,27});
states[1448] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,56,-75,26,-75,64,-75,47,-75,50,-75,59,-75,11,-75,41,-75,34,-75,25,-75,23,-75,27,-75,28,-75,88,-75,89,-75,100,-75},new int[]{-24,1172,-25,1156,-130,1158,-136,1168,-140,24,-141,27});
states[1449] = new State(new int[]{11,829,56,-76,26,-76,64,-76,47,-76,50,-76,59,-76,41,-76,34,-76,25,-76,23,-76,27,-76,28,-76,88,-76,89,-76,100,-76,140,-200,83,-200,84,-200,78,-200,76,-200},new int[]{-45,1176,-6,1177,-240,848});
states[1450] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,8,1339,56,-77,26,-77,64,-77,47,-77,50,-77,59,-77,11,-77,41,-77,34,-77,25,-77,23,-77,27,-77,28,-77,88,-77,89,-77,100,-77},new int[]{-302,1335,-299,1336,-300,1337,-147,693,-136,692,-140,24,-141,27});
states[1451] = new State(-78);
states[1452] = new State(new int[]{41,1465,34,1472,25,1263,23,1264,27,1500,28,1285,11,829},new int[]{-203,1453,-240,532,-204,1454,-211,1455,-218,1456,-215,1210,-219,1245,-3,1489,-207,1497,-217,1498});
states[1453] = new State(-81);
states[1454] = new State(-79);
states[1455] = new State(-415);
states[1456] = new State(new int[]{145,1458,104,1269,56,-62,26,-62,64,-62,47,-62,50,-62,59,-62,11,-62,41,-62,34,-62,25,-62,23,-62,27,-62,28,-62,88,-62},new int[]{-168,1457,-167,1460,-38,1461,-39,1444,-57,1464});
states[1457] = new State(-417);
states[1458] = new State(new int[]{10,1459});
states[1459] = new State(-423);
states[1460] = new State(-430);
states[1461] = new State(new int[]{88,129},new int[]{-245,1462});
states[1462] = new State(new int[]{10,1463});
states[1463] = new State(-452);
states[1464] = new State(-431);
states[1465] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,42,373},new int[]{-160,1466,-159,1072,-131,1073,-126,1074,-123,1075,-136,1080,-140,24,-141,27,-181,1081,-323,1083,-138,1087});
states[1466] = new State(new int[]{8,792,10,-455,107,-455},new int[]{-117,1467});
states[1467] = new State(new int[]{10,1243,107,-790},new int[]{-197,1214,-198,1468});
states[1468] = new State(new int[]{107,1469});
states[1469] = new State(new int[]{138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,585,8,586,18,259,19,264,141,161,143,162,142,164,151,166,153,167,152,168,74,425,54,610,88,129,37,616,22,623,94,639,51,644,32,649,52,659,99,665,44,672,33,675,50,683,57,731,72,736,70,723,35,745,10,-479},new int[]{-250,1470,-4,135,-102,136,-121,352,-101,544,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-14,583,-154,158,-156,159,-155,163,-15,165,-16,420,-54,584,-105,468,-202,608,-122,609,-245,614,-142,615,-32,622,-237,638,-307,643,-113,648,-308,658,-149,663,-292,664,-238,671,-112,674,-303,682,-55,727,-164,728,-163,729,-158,730,-115,735,-116,742,-114,743,-337,744});
states[1470] = new State(new int[]{10,1471});
states[1471] = new State(-422);
states[1472] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,42,373},new int[]{-159,1473,-131,1073,-126,1074,-123,1075,-136,1080,-140,24,-141,27,-181,1081,-323,1083,-138,1087});
states[1473] = new State(new int[]{8,792,5,-455,10,-455,107,-455},new int[]{-117,1474});
states[1474] = new State(new int[]{5,1475,10,1243,107,-790},new int[]{-197,1249,-198,1483});
states[1475] = new State(new int[]{140,450,83,25,84,26,78,28,76,29,151,166,153,167,152,168,113,347,112,348,141,161,143,162,142,164,8,492,139,503,21,508,45,516,46,774,31,778,71,782,62,785,41,790,34,805},new int[]{-265,1476,-266,447,-262,448,-86,187,-96,279,-97,280,-170,281,-136,208,-140,24,-141,27,-15,487,-189,488,-154,491,-156,159,-155,163,-263,494,-291,495,-246,501,-239,502,-271,505,-272,506,-268,507,-260,514,-28,515,-253,773,-119,777,-120,781,-216,787,-214,788,-213,789});
states[1476] = new State(new int[]{10,1243,107,-790},new int[]{-197,1253,-198,1477});
states[1477] = new State(new int[]{107,1478});
states[1478] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,405,18,259,19,264,74,425,37,560,34,705,41,709},new int[]{-92,1479,-311,1481,-91,141,-90,302,-95,371,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,366,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559,-312,704});
states[1479] = new State(new int[]{10,1480});
states[1480] = new State(-418);
states[1481] = new State(new int[]{10,1482});
states[1482] = new State(-420);
states[1483] = new State(new int[]{107,1484});
states[1484] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,405,18,259,19,264,74,425,37,560,34,705,41,709},new int[]{-92,1485,-311,1487,-91,141,-90,302,-95,371,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,366,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559,-312,704});
states[1485] = new State(new int[]{10,1486});
states[1486] = new State(-419);
states[1487] = new State(new int[]{10,1488});
states[1488] = new State(-421);
states[1489] = new State(new int[]{27,1491,41,1465,34,1472},new int[]{-211,1490,-218,1456,-215,1210,-219,1245});
states[1490] = new State(-416);
states[1491] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,42,373,8,-365,107,-365,10,-365},new int[]{-161,1492,-160,1071,-159,1072,-131,1073,-126,1074,-123,1075,-136,1080,-140,24,-141,27,-181,1081,-323,1083,-138,1087});
states[1492] = new State(new int[]{8,792,107,-455,10,-455},new int[]{-117,1493});
states[1493] = new State(new int[]{107,1494,10,1060},new int[]{-197,540});
states[1494] = new State(new int[]{138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,585,8,586,18,259,19,264,141,161,143,162,142,164,151,166,153,167,152,168,74,425,54,610,88,129,37,616,22,623,94,639,51,644,32,649,52,659,99,665,44,672,33,675,50,683,57,731,72,736,70,723,35,745,10,-479},new int[]{-250,1495,-4,135,-102,136,-121,352,-101,544,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-14,583,-154,158,-156,159,-155,163,-15,165,-16,420,-54,584,-105,468,-202,608,-122,609,-245,614,-142,615,-32,622,-237,638,-307,643,-113,648,-308,658,-149,663,-292,664,-238,671,-112,674,-303,682,-55,727,-164,728,-163,729,-158,730,-115,735,-116,742,-114,743,-337,744});
states[1495] = new State(new int[]{10,1496});
states[1496] = new State(-411);
states[1497] = new State(-80);
states[1498] = new State(-62,new int[]{-167,1499,-38,1461,-39,1444});
states[1499] = new State(-409);
states[1500] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,42,373,8,-365,107,-365,10,-365},new int[]{-161,1501,-160,1071,-159,1072,-131,1073,-126,1074,-123,1075,-136,1080,-140,24,-141,27,-181,1081,-323,1083,-138,1087});
states[1501] = new State(new int[]{8,792,107,-455,10,-455},new int[]{-117,1502});
states[1502] = new State(new int[]{107,1503,10,1060},new int[]{-197,1281});
states[1503] = new State(new int[]{138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,585,8,586,18,259,19,264,141,161,143,162,142,164,151,166,153,167,152,168,74,425,54,610,88,129,37,616,22,623,94,639,51,644,32,649,52,659,99,665,44,672,33,675,50,683,57,731,72,736,70,723,35,745,10,-479},new int[]{-250,1504,-4,135,-102,136,-121,352,-101,544,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-14,583,-154,158,-156,159,-155,163,-15,165,-16,420,-54,584,-105,468,-202,608,-122,609,-245,614,-142,615,-32,622,-237,638,-307,643,-113,648,-308,658,-149,663,-292,664,-238,671,-112,674,-303,682,-55,727,-164,728,-163,729,-158,730,-115,735,-116,742,-114,743,-337,744});
states[1504] = new State(new int[]{10,1505});
states[1505] = new State(-410);
states[1506] = new State(new int[]{3,1508,49,-15,88,-15,56,-15,26,-15,64,-15,47,-15,50,-15,59,-15,11,-15,41,-15,34,-15,25,-15,23,-15,27,-15,28,-15,40,-15,89,-15,100,-15},new int[]{-174,1507});
states[1507] = new State(-17);
states[1508] = new State(new int[]{140,1509,141,1510});
states[1509] = new State(-18);
states[1510] = new State(-19);
states[1511] = new State(-16);
states[1512] = new State(new int[]{140,23,83,25,84,26,78,28,76,29},new int[]{-136,1513,-140,24,-141,27});
states[1513] = new State(new int[]{10,1515,8,1516},new int[]{-177,1514});
states[1514] = new State(-28);
states[1515] = new State(-29);
states[1516] = new State(new int[]{140,23,83,25,84,26,78,28,76,29},new int[]{-179,1517,-135,1523,-136,1522,-140,24,-141,27});
states[1517] = new State(new int[]{9,1518,97,1520});
states[1518] = new State(new int[]{10,1519});
states[1519] = new State(-30);
states[1520] = new State(new int[]{140,23,83,25,84,26,78,28,76,29},new int[]{-135,1521,-136,1522,-140,24,-141,27});
states[1521] = new State(-32);
states[1522] = new State(-33);
states[1523] = new State(-31);
states[1524] = new State(-3);
states[1525] = new State(new int[]{102,1580,103,1581,106,1582,11,829},new int[]{-297,1526,-240,532,-2,1575});
states[1526] = new State(new int[]{40,1547,49,-38,56,-38,26,-38,64,-38,47,-38,50,-38,59,-38,11,-38,41,-38,34,-38,25,-38,23,-38,27,-38,28,-38,89,-38,100,-38,88,-38},new int[]{-151,1527,-152,1544,-293,1573});
states[1527] = new State(new int[]{38,1541},new int[]{-150,1528});
states[1528] = new State(new int[]{89,1531,100,1532,88,1538},new int[]{-143,1529});
states[1529] = new State(new int[]{7,1530});
states[1530] = new State(-44);
states[1531] = new State(-54);
states[1532] = new State(new int[]{138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,585,8,586,18,259,19,264,141,161,143,162,142,164,151,637,153,167,152,168,74,425,54,610,88,129,37,616,22,623,94,639,51,644,32,649,52,659,99,665,44,672,33,675,50,683,57,731,72,736,70,723,35,745,89,-479,101,-479,10,-479},new int[]{-242,1533,-251,635,-250,134,-4,135,-102,136,-121,352,-101,544,-136,636,-140,24,-141,27,-181,372,-247,418,-285,419,-14,583,-154,158,-156,159,-155,163,-15,165,-16,420,-54,584,-105,468,-202,608,-122,609,-245,614,-142,615,-32,622,-237,638,-307,643,-113,648,-308,658,-149,663,-292,664,-238,671,-112,674,-303,682,-55,727,-164,728,-163,729,-158,730,-115,735,-116,742,-114,743,-337,744,-132,1017});
states[1533] = new State(new int[]{89,1534,101,1535,10,132});
states[1534] = new State(-55);
states[1535] = new State(new int[]{138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,585,8,586,18,259,19,264,141,161,143,162,142,164,151,637,153,167,152,168,74,425,54,610,88,129,37,616,22,623,94,639,51,644,32,649,52,659,99,665,44,672,33,675,50,683,57,731,72,736,70,723,35,745,89,-479,10,-479},new int[]{-242,1536,-251,635,-250,134,-4,135,-102,136,-121,352,-101,544,-136,636,-140,24,-141,27,-181,372,-247,418,-285,419,-14,583,-154,158,-156,159,-155,163,-15,165,-16,420,-54,584,-105,468,-202,608,-122,609,-245,614,-142,615,-32,622,-237,638,-307,643,-113,648,-308,658,-149,663,-292,664,-238,671,-112,674,-303,682,-55,727,-164,728,-163,729,-158,730,-115,735,-116,742,-114,743,-337,744,-132,1017});
states[1536] = new State(new int[]{89,1537,10,132});
states[1537] = new State(-56);
states[1538] = new State(new int[]{138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,585,8,586,18,259,19,264,141,161,143,162,142,164,151,637,153,167,152,168,74,425,54,610,88,129,37,616,22,623,94,639,51,644,32,649,52,659,99,665,44,672,33,675,50,683,57,731,72,736,70,723,35,745,89,-479,10,-479},new int[]{-242,1539,-251,635,-250,134,-4,135,-102,136,-121,352,-101,544,-136,636,-140,24,-141,27,-181,372,-247,418,-285,419,-14,583,-154,158,-156,159,-155,163,-15,165,-16,420,-54,584,-105,468,-202,608,-122,609,-245,614,-142,615,-32,622,-237,638,-307,643,-113,648,-308,658,-149,663,-292,664,-238,671,-112,674,-303,682,-55,727,-164,728,-163,729,-158,730,-115,735,-116,742,-114,743,-337,744,-132,1017});
states[1539] = new State(new int[]{89,1540,10,132});
states[1540] = new State(-57);
states[1541] = new State(-38,new int[]{-293,1542});
states[1542] = new State(new int[]{49,14,56,-62,26,-62,64,-62,47,-62,50,-62,59,-62,11,-62,41,-62,34,-62,25,-62,23,-62,27,-62,28,-62,89,-62,100,-62,88,-62},new int[]{-38,1543,-39,1444});
states[1543] = new State(-52);
states[1544] = new State(new int[]{89,1531,100,1532,88,1538},new int[]{-143,1545});
states[1545] = new State(new int[]{7,1546});
states[1546] = new State(-45);
states[1547] = new State(-38,new int[]{-293,1548});
states[1548] = new State(new int[]{49,14,26,-59,64,-59,47,-59,50,-59,59,-59,11,-59,41,-59,34,-59,38,-59},new int[]{-37,1549,-35,1550});
states[1549] = new State(-51);
states[1550] = new State(new int[]{26,1169,64,1173,47,1332,50,1347,59,1349,11,829,38,-58,41,-200,34,-200},new int[]{-44,1551,-26,1552,-48,1553,-279,1554,-298,1555,-222,1556,-6,1557,-240,848,-221,1572});
states[1551] = new State(-60);
states[1552] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,26,-67,64,-67,47,-67,50,-67,59,-67,11,-67,41,-67,34,-67,38,-67},new int[]{-24,1155,-25,1156,-130,1158,-136,1168,-140,24,-141,27});
states[1553] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,26,-68,64,-68,47,-68,50,-68,59,-68,11,-68,41,-68,34,-68,38,-68},new int[]{-24,1172,-25,1156,-130,1158,-136,1168,-140,24,-141,27});
states[1554] = new State(new int[]{11,829,26,-69,64,-69,47,-69,50,-69,59,-69,41,-69,34,-69,38,-69,140,-200,83,-200,84,-200,78,-200,76,-200},new int[]{-45,1176,-6,1177,-240,848});
states[1555] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,8,1339,26,-70,64,-70,47,-70,50,-70,59,-70,11,-70,41,-70,34,-70,38,-70},new int[]{-302,1335,-299,1336,-300,1337,-147,693,-136,692,-140,24,-141,27});
states[1556] = new State(-71);
states[1557] = new State(new int[]{41,1564,11,829,34,1567},new int[]{-215,1558,-240,532,-219,1561});
states[1558] = new State(new int[]{145,1559,26,-87,64,-87,47,-87,50,-87,59,-87,11,-87,41,-87,34,-87,38,-87});
states[1559] = new State(new int[]{10,1560});
states[1560] = new State(-88);
states[1561] = new State(new int[]{145,1562,26,-89,64,-89,47,-89,50,-89,59,-89,11,-89,41,-89,34,-89,38,-89});
states[1562] = new State(new int[]{10,1563});
states[1563] = new State(-90);
states[1564] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,42,373},new int[]{-160,1565,-159,1072,-131,1073,-126,1074,-123,1075,-136,1080,-140,24,-141,27,-181,1081,-323,1083,-138,1087});
states[1565] = new State(new int[]{8,792,10,-455},new int[]{-117,1566});
states[1566] = new State(new int[]{10,1060},new int[]{-197,1214});
states[1567] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,42,373},new int[]{-159,1568,-131,1073,-126,1074,-123,1075,-136,1080,-140,24,-141,27,-181,1081,-323,1083,-138,1087});
states[1568] = new State(new int[]{8,792,5,-455,10,-455},new int[]{-117,1569});
states[1569] = new State(new int[]{5,1570,10,1060},new int[]{-197,1249});
states[1570] = new State(new int[]{140,450,83,25,84,26,78,28,76,29,151,166,153,167,152,168,113,347,112,348,141,161,143,162,142,164,8,492,139,503,21,508,45,516,46,774,31,778,71,782,62,785,41,790,34,805},new int[]{-265,1571,-266,447,-262,448,-86,187,-96,279,-97,280,-170,281,-136,208,-140,24,-141,27,-15,487,-189,488,-154,491,-156,159,-155,163,-263,494,-291,495,-246,501,-239,502,-271,505,-272,506,-268,507,-260,514,-28,515,-253,773,-119,777,-120,781,-216,787,-214,788,-213,789});
states[1571] = new State(new int[]{10,1060},new int[]{-197,1253});
states[1572] = new State(-72);
states[1573] = new State(new int[]{49,14,56,-62,26,-62,64,-62,47,-62,50,-62,59,-62,11,-62,41,-62,34,-62,25,-62,23,-62,27,-62,28,-62,89,-62,100,-62,88,-62},new int[]{-38,1574,-39,1444});
states[1574] = new State(-53);
states[1575] = new State(new int[]{140,23,83,25,84,26,78,28,76,29},new int[]{-128,1576,-136,1579,-140,24,-141,27});
states[1576] = new State(new int[]{10,1577});
states[1577] = new State(new int[]{3,1508,40,-14,89,-14,100,-14,88,-14,49,-14,56,-14,26,-14,64,-14,47,-14,50,-14,59,-14,11,-14,41,-14,34,-14,25,-14,23,-14,27,-14,28,-14},new int[]{-175,1578,-176,1506,-174,1511});
states[1578] = new State(-46);
states[1579] = new State(-50);
states[1580] = new State(-48);
states[1581] = new State(-49);
states[1582] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,82,32,81,33,80,34,79,35,66,36,61,37,125,38,19,39,18,40,60,41,20,42,126,43,127,44,128,45,129,46,130,47,131,48,132,49,133,50,134,51,135,52,21,53,71,54,88,55,22,56,23,57,26,58,27,59,28,60,69,61,96,62,29,63,89,64,30,65,31,66,24,67,101,68,98,69,32,70,33,71,34,72,37,73,38,74,39,75,100,76,40,77,41,78,43,79,44,80,45,81,94,82,46,83,99,84,47,85,25,86,48,87,68,88,95,89,49,90,50,91,51,92,52,93,53,94,54,95,55,96,56,97,58,98,102,99,103,100,106,101,104,102,105,103,59,104,72,105,35,106,36,107,67,108,144,109,57,110,136,111,137,112,77,113,149,114,148,115,70,116,150,117,146,118,147,119,145,120,42,122},new int[]{-146,1583,-127,125,-136,22,-140,24,-141,27,-283,30,-139,31,-284,121});
states[1583] = new State(new int[]{10,1584,7,20});
states[1584] = new State(new int[]{3,1508,40,-14,89,-14,100,-14,88,-14,49,-14,56,-14,26,-14,64,-14,47,-14,50,-14,59,-14,11,-14,41,-14,34,-14,25,-14,23,-14,27,-14,28,-14},new int[]{-175,1585,-176,1506,-174,1511});
states[1585] = new State(-47);
states[1586] = new State(-4);
states[1587] = new State(new int[]{47,1589,53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,430,18,259,19,264,74,425,37,560,5,569},new int[]{-82,1588,-92,140,-91,141,-90,302,-95,310,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,351,-121,352,-101,359,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559,-109,568});
states[1588] = new State(-7);
states[1589] = new State(new int[]{140,23,83,25,84,26,78,28,76,29},new int[]{-133,1590,-136,1591,-140,24,-141,27});
states[1590] = new State(-8);
states[1591] = new State(new int[]{120,1077,2,-208},new int[]{-144,1325});
states[1592] = new State(new int[]{140,23,83,25,84,26,78,28,76,29},new int[]{-309,1593,-310,1594,-136,1598,-140,24,-141,27});
states[1593] = new State(-9);
states[1594] = new State(new int[]{7,1595,120,180,2,-754},new int[]{-289,1597});
states[1595] = new State(new int[]{140,23,83,25,84,26,78,28,76,29,82,32,81,33,80,34,79,35,66,36,61,37,125,38,19,39,18,40,60,41,20,42,126,43,127,44,128,45,129,46,130,47,131,48,132,49,133,50,134,51,135,52,21,53,71,54,88,55,22,56,23,57,26,58,27,59,28,60,69,61,96,62,29,63,89,64,30,65,31,66,24,67,101,68,98,69,32,70,33,71,34,72,37,73,38,74,39,75,100,76,40,77,41,78,43,79,44,80,45,81,94,82,46,83,99,84,47,85,25,86,48,87,68,88,95,89,49,90,50,91,51,92,52,93,53,94,54,95,55,96,56,97,58,98,102,99,103,100,106,101,104,102,105,103,59,104,72,105,35,106,36,107,67,108,144,109,57,110,136,111,137,112,77,113,149,114,148,115,70,116,150,117,146,118,147,119,145,120,42,122},new int[]{-127,1596,-136,22,-140,24,-141,27,-283,30,-139,31,-284,121});
states[1596] = new State(-753);
states[1597] = new State(-755);
states[1598] = new State(-752);
states[1599] = new State(new int[]{53,154,141,161,143,162,142,164,151,166,153,167,152,168,60,170,11,334,132,343,113,347,112,348,139,349,138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,403,8,586,18,259,19,264,74,425,37,560,5,569,50,683},new int[]{-249,1600,-82,1601,-92,140,-91,141,-90,302,-95,310,-77,315,-76,321,-89,333,-14,155,-154,158,-156,159,-155,163,-15,165,-53,169,-189,345,-102,1602,-121,352,-101,544,-136,429,-140,24,-141,27,-181,372,-247,418,-285,419,-16,420,-54,462,-105,468,-163,469,-258,470,-78,471,-254,474,-256,475,-257,550,-230,551,-106,552,-232,559,-109,568,-4,1603,-303,1604});
states[1600] = new State(-10);
states[1601] = new State(-11);
states[1602] = new State(new int[]{107,397,108,398,109,399,110,400,111,401,135,-739,133,-739,115,-739,114,-739,128,-739,129,-739,130,-739,131,-739,127,-739,113,-739,112,-739,125,-739,126,-739,123,-739,6,-739,5,-739,117,-739,122,-739,120,-739,118,-739,121,-739,119,-739,134,-739,16,-739,2,-739,13,-739,116,-739},new int[]{-184,137});
states[1603] = new State(-12);
states[1604] = new State(-13);
states[1605] = new State(new int[]{138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,585,8,586,18,259,19,264,141,161,143,162,142,164,151,637,153,167,152,168,74,425,54,610,88,129,37,616,22,623,94,639,51,644,32,649,52,659,99,665,44,672,33,675,50,683,57,731,72,736,70,723,35,745,10,-479,2,-479},new int[]{-242,1606,-251,635,-250,134,-4,135,-102,136,-121,352,-101,544,-136,636,-140,24,-141,27,-181,372,-247,418,-285,419,-14,583,-154,158,-156,159,-155,163,-15,165,-16,420,-54,584,-105,468,-202,608,-122,609,-245,614,-142,615,-32,622,-237,638,-307,643,-113,648,-308,658,-149,663,-292,664,-238,671,-112,674,-303,682,-55,727,-164,728,-163,729,-158,730,-115,735,-116,742,-114,743,-337,744,-132,1017});
states[1606] = new State(new int[]{10,132,2,-5});
states[1607] = new State(new int[]{138,358,140,23,83,25,84,26,78,28,76,239,42,373,39,585,8,586,18,259,19,264,141,161,143,162,142,164,151,637,153,167,152,168,74,425,54,610,88,129,37,616,22,623,94,639,51,644,32,649,52,659,99,665,44,672,33,675,50,683,57,731,72,736,70,723,35,745,10,-479,2,-479},new int[]{-242,1608,-251,635,-250,134,-4,135,-102,136,-121,352,-101,544,-136,636,-140,24,-141,27,-181,372,-247,418,-285,419,-14,583,-154,158,-156,159,-155,163,-15,165,-16,420,-54,584,-105,468,-202,608,-122,609,-245,614,-142,615,-32,622,-237,638,-307,643,-113,648,-308,658,-149,663,-292,664,-238,671,-112,674,-303,682,-55,727,-164,728,-163,729,-158,730,-115,735,-116,742,-114,743,-337,744,-132,1017});
states[1608] = new State(new int[]{10,132,2,-6});
rules[1] = new Rule(-347, new int[]{-1,2});
rules[2] = new Rule(-1, new int[]{-224});
rules[3] = new Rule(-1, new int[]{-295});
rules[4] = new Rule(-1, new int[]{-165});
rules[5] = new Rule(-1, new int[]{73,-242});
rules[6] = new Rule(-1, new int[]{75,-242});
rules[7] = new Rule(-165, new int[]{85,-82});
rules[8] = new Rule(-165, new int[]{85,47,-133});
rules[9] = new Rule(-165, new int[]{87,-309});
rules[10] = new Rule(-165, new int[]{86,-249});
rules[11] = new Rule(-249, new int[]{-82});
rules[12] = new Rule(-249, new int[]{-4});
rules[13] = new Rule(-249, new int[]{-303});
rules[14] = new Rule(-175, new int[]{});
rules[15] = new Rule(-175, new int[]{-176});
rules[16] = new Rule(-176, new int[]{-174});
rules[17] = new Rule(-176, new int[]{-176,-174});
rules[18] = new Rule(-174, new int[]{3,140});
rules[19] = new Rule(-174, new int[]{3,141});
rules[20] = new Rule(-224, new int[]{-225,-175,-293,-17,-178});
rules[21] = new Rule(-178, new int[]{7});
rules[22] = new Rule(-178, new int[]{10});
rules[23] = new Rule(-178, new int[]{5});
rules[24] = new Rule(-178, new int[]{97});
rules[25] = new Rule(-178, new int[]{6});
rules[26] = new Rule(-178, new int[]{});
rules[27] = new Rule(-225, new int[]{});
rules[28] = new Rule(-225, new int[]{58,-136,-177});
rules[29] = new Rule(-177, new int[]{10});
rules[30] = new Rule(-177, new int[]{8,-179,9,10});
rules[31] = new Rule(-179, new int[]{-135});
rules[32] = new Rule(-179, new int[]{-179,97,-135});
rules[33] = new Rule(-135, new int[]{-136});
rules[34] = new Rule(-17, new int[]{-34,-245});
rules[35] = new Rule(-34, new int[]{-38});
rules[36] = new Rule(-146, new int[]{-127});
rules[37] = new Rule(-146, new int[]{-146,7,-127});
rules[38] = new Rule(-293, new int[]{});
rules[39] = new Rule(-293, new int[]{-293,49,-294,10});
rules[40] = new Rule(-294, new int[]{-296});
rules[41] = new Rule(-294, new int[]{-294,97,-296});
rules[42] = new Rule(-296, new int[]{-146});
rules[43] = new Rule(-296, new int[]{-146,134,141});
rules[44] = new Rule(-295, new int[]{-6,-297,-151,-150,-143,7});
rules[45] = new Rule(-295, new int[]{-6,-297,-152,-143,7});
rules[46] = new Rule(-297, new int[]{-2,-128,10,-175});
rules[47] = new Rule(-297, new int[]{106,-146,10,-175});
rules[48] = new Rule(-2, new int[]{102});
rules[49] = new Rule(-2, new int[]{103});
rules[50] = new Rule(-128, new int[]{-136});
rules[51] = new Rule(-151, new int[]{40,-293,-37});
rules[52] = new Rule(-150, new int[]{38,-293,-38});
rules[53] = new Rule(-152, new int[]{-293,-38});
rules[54] = new Rule(-143, new int[]{89});
rules[55] = new Rule(-143, new int[]{100,-242,89});
rules[56] = new Rule(-143, new int[]{100,-242,101,-242,89});
rules[57] = new Rule(-143, new int[]{88,-242,89});
rules[58] = new Rule(-37, new int[]{-35});
rules[59] = new Rule(-35, new int[]{});
rules[60] = new Rule(-35, new int[]{-35,-44});
rules[61] = new Rule(-38, new int[]{-39});
rules[62] = new Rule(-39, new int[]{});
rules[63] = new Rule(-39, new int[]{-39,-43});
rules[64] = new Rule(-40, new int[]{-36});
rules[65] = new Rule(-36, new int[]{});
rules[66] = new Rule(-36, new int[]{-36,-42});
rules[67] = new Rule(-44, new int[]{-26});
rules[68] = new Rule(-44, new int[]{-48});
rules[69] = new Rule(-44, new int[]{-279});
rules[70] = new Rule(-44, new int[]{-298});
rules[71] = new Rule(-44, new int[]{-222});
rules[72] = new Rule(-44, new int[]{-221});
rules[73] = new Rule(-43, new int[]{-157});
rules[74] = new Rule(-43, new int[]{-26});
rules[75] = new Rule(-43, new int[]{-48});
rules[76] = new Rule(-43, new int[]{-279});
rules[77] = new Rule(-43, new int[]{-298});
rules[78] = new Rule(-43, new int[]{-210});
rules[79] = new Rule(-203, new int[]{-204});
rules[80] = new Rule(-203, new int[]{-207});
rules[81] = new Rule(-210, new int[]{-6,-203});
rules[82] = new Rule(-42, new int[]{-157});
rules[83] = new Rule(-42, new int[]{-26});
rules[84] = new Rule(-42, new int[]{-48});
rules[85] = new Rule(-42, new int[]{-279});
rules[86] = new Rule(-42, new int[]{-298});
rules[87] = new Rule(-222, new int[]{-6,-215});
rules[88] = new Rule(-222, new int[]{-6,-215,145,10});
rules[89] = new Rule(-221, new int[]{-6,-219});
rules[90] = new Rule(-221, new int[]{-6,-219,145,10});
rules[91] = new Rule(-157, new int[]{56,-145,10});
rules[92] = new Rule(-145, new int[]{-132});
rules[93] = new Rule(-145, new int[]{-145,97,-132});
rules[94] = new Rule(-132, new int[]{151});
rules[95] = new Rule(-132, new int[]{-136});
rules[96] = new Rule(-26, new int[]{26,-24});
rules[97] = new Rule(-26, new int[]{-26,-24});
rules[98] = new Rule(-48, new int[]{64,-24});
rules[99] = new Rule(-48, new int[]{-48,-24});
rules[100] = new Rule(-279, new int[]{47,-45});
rules[101] = new Rule(-279, new int[]{-279,-45});
rules[102] = new Rule(-302, new int[]{-299});
rules[103] = new Rule(-302, new int[]{8,-136,97,-147,9,107,-92,10});
rules[104] = new Rule(-298, new int[]{50,-302});
rules[105] = new Rule(-298, new int[]{59,-302});
rules[106] = new Rule(-298, new int[]{-298,-302});
rules[107] = new Rule(-24, new int[]{-25,10});
rules[108] = new Rule(-25, new int[]{-130,117,-99});
rules[109] = new Rule(-25, new int[]{-130,5,-266,117,-79});
rules[110] = new Rule(-99, new int[]{-84});
rules[111] = new Rule(-99, new int[]{-88});
rules[112] = new Rule(-130, new int[]{-136});
rules[113] = new Rule(-73, new int[]{-92});
rules[114] = new Rule(-73, new int[]{-73,97,-92});
rules[115] = new Rule(-84, new int[]{-75});
rules[116] = new Rule(-84, new int[]{-75,-182,-75});
rules[117] = new Rule(-84, new int[]{-231});
rules[118] = new Rule(-231, new int[]{-84,13,-84,5,-84});
rules[119] = new Rule(-182, new int[]{117});
rules[120] = new Rule(-182, new int[]{122});
rules[121] = new Rule(-182, new int[]{120});
rules[122] = new Rule(-182, new int[]{118});
rules[123] = new Rule(-182, new int[]{121});
rules[124] = new Rule(-182, new int[]{119});
rules[125] = new Rule(-182, new int[]{134});
rules[126] = new Rule(-75, new int[]{-12});
rules[127] = new Rule(-75, new int[]{-75,-183,-12});
rules[128] = new Rule(-183, new int[]{113});
rules[129] = new Rule(-183, new int[]{112});
rules[130] = new Rule(-183, new int[]{125});
rules[131] = new Rule(-183, new int[]{126});
rules[132] = new Rule(-255, new int[]{-12,-191,-274});
rules[133] = new Rule(-259, new int[]{-10,116,-10});
rules[134] = new Rule(-12, new int[]{-10});
rules[135] = new Rule(-12, new int[]{-255});
rules[136] = new Rule(-12, new int[]{-259});
rules[137] = new Rule(-12, new int[]{-12,-185,-10});
rules[138] = new Rule(-12, new int[]{-12,-185,-259});
rules[139] = new Rule(-185, new int[]{115});
rules[140] = new Rule(-185, new int[]{114});
rules[141] = new Rule(-185, new int[]{128});
rules[142] = new Rule(-185, new int[]{129});
rules[143] = new Rule(-185, new int[]{130});
rules[144] = new Rule(-185, new int[]{131});
rules[145] = new Rule(-185, new int[]{127});
rules[146] = new Rule(-10, new int[]{-13});
rules[147] = new Rule(-10, new int[]{-229});
rules[148] = new Rule(-10, new int[]{53});
rules[149] = new Rule(-10, new int[]{138,-10});
rules[150] = new Rule(-10, new int[]{8,-84,9});
rules[151] = new Rule(-10, new int[]{132,-10});
rules[152] = new Rule(-10, new int[]{-189,-10});
rules[153] = new Rule(-10, new int[]{-163});
rules[154] = new Rule(-229, new int[]{11,-69,12});
rules[155] = new Rule(-229, new int[]{74,-64,74});
rules[156] = new Rule(-189, new int[]{113});
rules[157] = new Rule(-189, new int[]{112});
rules[158] = new Rule(-13, new int[]{-136});
rules[159] = new Rule(-13, new int[]{-154});
rules[160] = new Rule(-13, new int[]{-15});
rules[161] = new Rule(-13, new int[]{39,-136});
rules[162] = new Rule(-13, new int[]{-247});
rules[163] = new Rule(-13, new int[]{-285});
rules[164] = new Rule(-13, new int[]{-13,-11});
rules[165] = new Rule(-13, new int[]{-13,4,-289});
rules[166] = new Rule(-13, new int[]{-13,11,-110,12});
rules[167] = new Rule(-11, new int[]{7,-127});
rules[168] = new Rule(-11, new int[]{139});
rules[169] = new Rule(-11, new int[]{8,-70,9});
rules[170] = new Rule(-11, new int[]{11,-69,12});
rules[171] = new Rule(-70, new int[]{-66});
rules[172] = new Rule(-70, new int[]{});
rules[173] = new Rule(-69, new int[]{-67});
rules[174] = new Rule(-69, new int[]{});
rules[175] = new Rule(-67, new int[]{-87});
rules[176] = new Rule(-67, new int[]{-67,97,-87});
rules[177] = new Rule(-87, new int[]{-84});
rules[178] = new Rule(-87, new int[]{-84,6,-84});
rules[179] = new Rule(-15, new int[]{151});
rules[180] = new Rule(-15, new int[]{153});
rules[181] = new Rule(-15, new int[]{152});
rules[182] = new Rule(-79, new int[]{-84});
rules[183] = new Rule(-79, new int[]{-88});
rules[184] = new Rule(-79, new int[]{-233});
rules[185] = new Rule(-88, new int[]{8,-62,9});
rules[186] = new Rule(-62, new int[]{});
rules[187] = new Rule(-62, new int[]{-61});
rules[188] = new Rule(-61, new int[]{-80});
rules[189] = new Rule(-61, new int[]{-61,97,-80});
rules[190] = new Rule(-233, new int[]{8,-235,9});
rules[191] = new Rule(-235, new int[]{-234});
rules[192] = new Rule(-235, new int[]{-234,10});
rules[193] = new Rule(-234, new int[]{-236});
rules[194] = new Rule(-234, new int[]{-234,10,-236});
rules[195] = new Rule(-236, new int[]{-125,5,-79});
rules[196] = new Rule(-125, new int[]{-136});
rules[197] = new Rule(-45, new int[]{-6,-46});
rules[198] = new Rule(-6, new int[]{-240});
rules[199] = new Rule(-6, new int[]{-6,-240});
rules[200] = new Rule(-6, new int[]{});
rules[201] = new Rule(-240, new int[]{11,-241,12});
rules[202] = new Rule(-241, new int[]{-8});
rules[203] = new Rule(-241, new int[]{-241,97,-8});
rules[204] = new Rule(-8, new int[]{-9});
rules[205] = new Rule(-8, new int[]{-136,5,-9});
rules[206] = new Rule(-46, new int[]{-133,117,-277,10});
rules[207] = new Rule(-46, new int[]{-134,-277,10});
rules[208] = new Rule(-133, new int[]{-136});
rules[209] = new Rule(-133, new int[]{-136,-144});
rules[210] = new Rule(-134, new int[]{-136,120,-147,119});
rules[211] = new Rule(-277, new int[]{-266});
rules[212] = new Rule(-277, new int[]{-27});
rules[213] = new Rule(-263, new int[]{-262,13});
rules[214] = new Rule(-263, new int[]{-291,13});
rules[215] = new Rule(-266, new int[]{-262});
rules[216] = new Rule(-266, new int[]{-263});
rules[217] = new Rule(-266, new int[]{-246});
rules[218] = new Rule(-266, new int[]{-239});
rules[219] = new Rule(-266, new int[]{-271});
rules[220] = new Rule(-266, new int[]{-216});
rules[221] = new Rule(-266, new int[]{-291});
rules[222] = new Rule(-291, new int[]{-170,-289});
rules[223] = new Rule(-289, new int[]{120,-287,118});
rules[224] = new Rule(-290, new int[]{122});
rules[225] = new Rule(-290, new int[]{120,-288,118});
rules[226] = new Rule(-287, new int[]{-269});
rules[227] = new Rule(-287, new int[]{-287,97,-269});
rules[228] = new Rule(-288, new int[]{-270});
rules[229] = new Rule(-288, new int[]{-288,97,-270});
rules[230] = new Rule(-270, new int[]{});
rules[231] = new Rule(-269, new int[]{-262});
rules[232] = new Rule(-269, new int[]{-262,13});
rules[233] = new Rule(-269, new int[]{-271});
rules[234] = new Rule(-269, new int[]{-216});
rules[235] = new Rule(-269, new int[]{-291});
rules[236] = new Rule(-262, new int[]{-86});
rules[237] = new Rule(-262, new int[]{-86,6,-86});
rules[238] = new Rule(-262, new int[]{8,-74,9});
rules[239] = new Rule(-86, new int[]{-96});
rules[240] = new Rule(-86, new int[]{-86,-183,-96});
rules[241] = new Rule(-96, new int[]{-97});
rules[242] = new Rule(-96, new int[]{-96,-185,-97});
rules[243] = new Rule(-97, new int[]{-170});
rules[244] = new Rule(-97, new int[]{-15});
rules[245] = new Rule(-97, new int[]{-189,-97});
rules[246] = new Rule(-97, new int[]{-154});
rules[247] = new Rule(-97, new int[]{-97,8,-69,9});
rules[248] = new Rule(-170, new int[]{-136});
rules[249] = new Rule(-170, new int[]{-170,7,-127});
rules[250] = new Rule(-74, new int[]{-72,97,-72});
rules[251] = new Rule(-74, new int[]{-74,97,-72});
rules[252] = new Rule(-72, new int[]{-266});
rules[253] = new Rule(-72, new int[]{-266,117,-82});
rules[254] = new Rule(-239, new int[]{139,-265});
rules[255] = new Rule(-271, new int[]{-272});
rules[256] = new Rule(-271, new int[]{62,-272});
rules[257] = new Rule(-272, new int[]{-268});
rules[258] = new Rule(-272, new int[]{-28});
rules[259] = new Rule(-272, new int[]{-253});
rules[260] = new Rule(-272, new int[]{-119});
rules[261] = new Rule(-272, new int[]{-120});
rules[262] = new Rule(-120, new int[]{71,55,-266});
rules[263] = new Rule(-268, new int[]{21,11,-153,12,55,-266});
rules[264] = new Rule(-268, new int[]{-260});
rules[265] = new Rule(-260, new int[]{21,55,-266});
rules[266] = new Rule(-153, new int[]{-261});
rules[267] = new Rule(-153, new int[]{-153,97,-261});
rules[268] = new Rule(-261, new int[]{-262});
rules[269] = new Rule(-261, new int[]{});
rules[270] = new Rule(-253, new int[]{46,55,-266});
rules[271] = new Rule(-119, new int[]{31,55,-266});
rules[272] = new Rule(-119, new int[]{31});
rules[273] = new Rule(-246, new int[]{140,11,-84,12});
rules[274] = new Rule(-216, new int[]{-214});
rules[275] = new Rule(-214, new int[]{-213});
rules[276] = new Rule(-213, new int[]{41,-117});
rules[277] = new Rule(-213, new int[]{34,-117,5,-265});
rules[278] = new Rule(-213, new int[]{-170,124,-269});
rules[279] = new Rule(-213, new int[]{-291,124,-269});
rules[280] = new Rule(-213, new int[]{8,9,124,-269});
rules[281] = new Rule(-213, new int[]{8,-74,9,124,-269});
rules[282] = new Rule(-213, new int[]{-170,124,8,9});
rules[283] = new Rule(-213, new int[]{-291,124,8,9});
rules[284] = new Rule(-213, new int[]{8,9,124,8,9});
rules[285] = new Rule(-213, new int[]{8,-74,9,124,8,9});
rules[286] = new Rule(-27, new int[]{-20,-281,-173,-306,-23});
rules[287] = new Rule(-28, new int[]{45,-173,-306,-22,89});
rules[288] = new Rule(-19, new int[]{66});
rules[289] = new Rule(-19, new int[]{67});
rules[290] = new Rule(-19, new int[]{144});
rules[291] = new Rule(-19, new int[]{24});
rules[292] = new Rule(-19, new int[]{25});
rules[293] = new Rule(-20, new int[]{});
rules[294] = new Rule(-20, new int[]{-21});
rules[295] = new Rule(-21, new int[]{-19});
rules[296] = new Rule(-21, new int[]{-21,-19});
rules[297] = new Rule(-281, new int[]{23});
rules[298] = new Rule(-281, new int[]{40});
rules[299] = new Rule(-281, new int[]{61});
rules[300] = new Rule(-281, new int[]{61,23});
rules[301] = new Rule(-281, new int[]{61,45});
rules[302] = new Rule(-281, new int[]{61,40});
rules[303] = new Rule(-23, new int[]{});
rules[304] = new Rule(-23, new int[]{-22,89});
rules[305] = new Rule(-173, new int[]{});
rules[306] = new Rule(-173, new int[]{8,-172,9});
rules[307] = new Rule(-172, new int[]{-171});
rules[308] = new Rule(-172, new int[]{-172,97,-171});
rules[309] = new Rule(-171, new int[]{-170});
rules[310] = new Rule(-171, new int[]{-291});
rules[311] = new Rule(-144, new int[]{120,-147,118});
rules[312] = new Rule(-306, new int[]{});
rules[313] = new Rule(-306, new int[]{-305});
rules[314] = new Rule(-305, new int[]{-304});
rules[315] = new Rule(-305, new int[]{-305,-304});
rules[316] = new Rule(-304, new int[]{20,-147,5,-278,10});
rules[317] = new Rule(-278, new int[]{-275});
rules[318] = new Rule(-278, new int[]{-278,97,-275});
rules[319] = new Rule(-275, new int[]{-266});
rules[320] = new Rule(-275, new int[]{23});
rules[321] = new Rule(-275, new int[]{45});
rules[322] = new Rule(-275, new int[]{27});
rules[323] = new Rule(-22, new int[]{-29});
rules[324] = new Rule(-22, new int[]{-22,-7,-29});
rules[325] = new Rule(-7, new int[]{82});
rules[326] = new Rule(-7, new int[]{81});
rules[327] = new Rule(-7, new int[]{80});
rules[328] = new Rule(-7, new int[]{79});
rules[329] = new Rule(-29, new int[]{});
rules[330] = new Rule(-29, new int[]{-31,-180});
rules[331] = new Rule(-29, new int[]{-30});
rules[332] = new Rule(-29, new int[]{-31,10,-30});
rules[333] = new Rule(-147, new int[]{-136});
rules[334] = new Rule(-147, new int[]{-147,97,-136});
rules[335] = new Rule(-180, new int[]{});
rules[336] = new Rule(-180, new int[]{10});
rules[337] = new Rule(-31, new int[]{-41});
rules[338] = new Rule(-31, new int[]{-31,10,-41});
rules[339] = new Rule(-41, new int[]{-6,-47});
rules[340] = new Rule(-30, new int[]{-50});
rules[341] = new Rule(-30, new int[]{-30,-50});
rules[342] = new Rule(-50, new int[]{-49});
rules[343] = new Rule(-50, new int[]{-51});
rules[344] = new Rule(-47, new int[]{26,-25});
rules[345] = new Rule(-47, new int[]{-301});
rules[346] = new Rule(-47, new int[]{-3,-301});
rules[347] = new Rule(-3, new int[]{25});
rules[348] = new Rule(-3, new int[]{23});
rules[349] = new Rule(-301, new int[]{-300});
rules[350] = new Rule(-301, new int[]{59,-147,5,-266});
rules[351] = new Rule(-49, new int[]{-6,-212});
rules[352] = new Rule(-49, new int[]{-6,-209});
rules[353] = new Rule(-209, new int[]{-205});
rules[354] = new Rule(-209, new int[]{-208});
rules[355] = new Rule(-212, new int[]{-3,-220});
rules[356] = new Rule(-212, new int[]{-220});
rules[357] = new Rule(-212, new int[]{-217});
rules[358] = new Rule(-220, new int[]{-218});
rules[359] = new Rule(-218, new int[]{-215});
rules[360] = new Rule(-218, new int[]{-219});
rules[361] = new Rule(-217, new int[]{27,-161,-117,-197});
rules[362] = new Rule(-217, new int[]{-3,27,-161,-117,-197});
rules[363] = new Rule(-217, new int[]{28,-161,-117,-197});
rules[364] = new Rule(-161, new int[]{-160});
rules[365] = new Rule(-161, new int[]{});
rules[366] = new Rule(-162, new int[]{-136});
rules[367] = new Rule(-162, new int[]{-139});
rules[368] = new Rule(-162, new int[]{-162,7,-136});
rules[369] = new Rule(-162, new int[]{-162,7,-139});
rules[370] = new Rule(-51, new int[]{-6,-248});
rules[371] = new Rule(-248, new int[]{43,-162,-223,-192,10,-195});
rules[372] = new Rule(-248, new int[]{43,-162,-223,-192,10,-200,10,-195});
rules[373] = new Rule(-248, new int[]{-3,43,-162,-223,-192,10,-195});
rules[374] = new Rule(-248, new int[]{-3,43,-162,-223,-192,10,-200,10,-195});
rules[375] = new Rule(-248, new int[]{24,43,-162,-223,-201,10});
rules[376] = new Rule(-248, new int[]{-3,24,43,-162,-223,-201,10});
rules[377] = new Rule(-201, new int[]{107,-82});
rules[378] = new Rule(-201, new int[]{});
rules[379] = new Rule(-195, new int[]{});
rules[380] = new Rule(-195, new int[]{60,10});
rules[381] = new Rule(-223, new int[]{-228,5,-265});
rules[382] = new Rule(-228, new int[]{});
rules[383] = new Rule(-228, new int[]{11,-227,12});
rules[384] = new Rule(-227, new int[]{-226});
rules[385] = new Rule(-227, new int[]{-227,10,-226});
rules[386] = new Rule(-226, new int[]{-147,5,-265});
rules[387] = new Rule(-103, new int[]{-83});
rules[388] = new Rule(-103, new int[]{});
rules[389] = new Rule(-192, new int[]{});
rules[390] = new Rule(-192, new int[]{83,-103,-193});
rules[391] = new Rule(-192, new int[]{84,-250,-194});
rules[392] = new Rule(-193, new int[]{});
rules[393] = new Rule(-193, new int[]{84,-250});
rules[394] = new Rule(-194, new int[]{});
rules[395] = new Rule(-194, new int[]{83,-103});
rules[396] = new Rule(-299, new int[]{-300,10});
rules[397] = new Rule(-327, new int[]{107});
rules[398] = new Rule(-327, new int[]{117});
rules[399] = new Rule(-300, new int[]{-147,5,-266});
rules[400] = new Rule(-300, new int[]{-147,107,-83});
rules[401] = new Rule(-300, new int[]{-147,5,-266,-327,-81});
rules[402] = new Rule(-81, new int[]{-80});
rules[403] = new Rule(-81, new int[]{-312});
rules[404] = new Rule(-81, new int[]{-136,124,-317});
rules[405] = new Rule(-81, new int[]{8,9,-313,124,-317});
rules[406] = new Rule(-81, new int[]{8,-62,9,124,-317});
rules[407] = new Rule(-80, new int[]{-79});
rules[408] = new Rule(-80, new int[]{-53});
rules[409] = new Rule(-207, new int[]{-217,-167});
rules[410] = new Rule(-207, new int[]{27,-161,-117,107,-250,10});
rules[411] = new Rule(-207, new int[]{-3,27,-161,-117,107,-250,10});
rules[412] = new Rule(-208, new int[]{-217,-166});
rules[413] = new Rule(-208, new int[]{27,-161,-117,107,-250,10});
rules[414] = new Rule(-208, new int[]{-3,27,-161,-117,107,-250,10});
rules[415] = new Rule(-204, new int[]{-211});
rules[416] = new Rule(-204, new int[]{-3,-211});
rules[417] = new Rule(-211, new int[]{-218,-168});
rules[418] = new Rule(-211, new int[]{34,-159,-117,5,-265,-198,107,-92,10});
rules[419] = new Rule(-211, new int[]{34,-159,-117,-198,107,-92,10});
rules[420] = new Rule(-211, new int[]{34,-159,-117,5,-265,-198,107,-311,10});
rules[421] = new Rule(-211, new int[]{34,-159,-117,-198,107,-311,10});
rules[422] = new Rule(-211, new int[]{41,-160,-117,-198,107,-250,10});
rules[423] = new Rule(-211, new int[]{-218,145,10});
rules[424] = new Rule(-205, new int[]{-206});
rules[425] = new Rule(-205, new int[]{-3,-206});
rules[426] = new Rule(-206, new int[]{-218,-166});
rules[427] = new Rule(-206, new int[]{34,-159,-117,5,-265,-198,107,-93,10});
rules[428] = new Rule(-206, new int[]{34,-159,-117,-198,107,-93,10});
rules[429] = new Rule(-206, new int[]{41,-160,-117,-198,107,-250,10});
rules[430] = new Rule(-168, new int[]{-167});
rules[431] = new Rule(-168, new int[]{-57});
rules[432] = new Rule(-160, new int[]{-159});
rules[433] = new Rule(-159, new int[]{-131});
rules[434] = new Rule(-159, new int[]{-323,7,-131});
rules[435] = new Rule(-138, new int[]{-126});
rules[436] = new Rule(-323, new int[]{-138});
rules[437] = new Rule(-323, new int[]{-323,7,-138});
rules[438] = new Rule(-131, new int[]{-126});
rules[439] = new Rule(-131, new int[]{-181});
rules[440] = new Rule(-131, new int[]{-181,-144});
rules[441] = new Rule(-126, new int[]{-123});
rules[442] = new Rule(-126, new int[]{-123,-144});
rules[443] = new Rule(-123, new int[]{-136});
rules[444] = new Rule(-215, new int[]{41,-160,-117,-197,-306});
rules[445] = new Rule(-219, new int[]{34,-159,-117,-197,-306});
rules[446] = new Rule(-219, new int[]{34,-159,-117,5,-265,-197,-306});
rules[447] = new Rule(-57, new int[]{104,-98,78,-98,10});
rules[448] = new Rule(-57, new int[]{104,-98,10});
rules[449] = new Rule(-57, new int[]{104,10});
rules[450] = new Rule(-98, new int[]{-136});
rules[451] = new Rule(-98, new int[]{-154});
rules[452] = new Rule(-167, new int[]{-38,-245,10});
rules[453] = new Rule(-166, new int[]{-40,-245,10});
rules[454] = new Rule(-166, new int[]{-57});
rules[455] = new Rule(-117, new int[]{});
rules[456] = new Rule(-117, new int[]{8,9});
rules[457] = new Rule(-117, new int[]{8,-118,9});
rules[458] = new Rule(-118, new int[]{-52});
rules[459] = new Rule(-118, new int[]{-118,10,-52});
rules[460] = new Rule(-52, new int[]{-6,-286});
rules[461] = new Rule(-286, new int[]{-148,5,-265});
rules[462] = new Rule(-286, new int[]{50,-148,5,-265});
rules[463] = new Rule(-286, new int[]{26,-148,5,-265});
rules[464] = new Rule(-286, new int[]{105,-148,5,-265});
rules[465] = new Rule(-286, new int[]{-148,5,-265,107,-82});
rules[466] = new Rule(-286, new int[]{50,-148,5,-265,107,-82});
rules[467] = new Rule(-286, new int[]{26,-148,5,-265,107,-82});
rules[468] = new Rule(-148, new int[]{-124});
rules[469] = new Rule(-148, new int[]{-148,97,-124});
rules[470] = new Rule(-124, new int[]{-136});
rules[471] = new Rule(-265, new int[]{-266});
rules[472] = new Rule(-267, new int[]{-262});
rules[473] = new Rule(-267, new int[]{-246});
rules[474] = new Rule(-267, new int[]{-239});
rules[475] = new Rule(-267, new int[]{-271});
rules[476] = new Rule(-267, new int[]{-291});
rules[477] = new Rule(-251, new int[]{-250});
rules[478] = new Rule(-251, new int[]{-132,5,-251});
rules[479] = new Rule(-250, new int[]{});
rules[480] = new Rule(-250, new int[]{-4});
rules[481] = new Rule(-250, new int[]{-202});
rules[482] = new Rule(-250, new int[]{-122});
rules[483] = new Rule(-250, new int[]{-245});
rules[484] = new Rule(-250, new int[]{-142});
rules[485] = new Rule(-250, new int[]{-32});
rules[486] = new Rule(-250, new int[]{-237});
rules[487] = new Rule(-250, new int[]{-307});
rules[488] = new Rule(-250, new int[]{-113});
rules[489] = new Rule(-250, new int[]{-308});
rules[490] = new Rule(-250, new int[]{-149});
rules[491] = new Rule(-250, new int[]{-292});
rules[492] = new Rule(-250, new int[]{-238});
rules[493] = new Rule(-250, new int[]{-112});
rules[494] = new Rule(-250, new int[]{-303});
rules[495] = new Rule(-250, new int[]{-55});
rules[496] = new Rule(-250, new int[]{-158});
rules[497] = new Rule(-250, new int[]{-115});
rules[498] = new Rule(-250, new int[]{-116});
rules[499] = new Rule(-250, new int[]{-114});
rules[500] = new Rule(-250, new int[]{-337});
rules[501] = new Rule(-114, new int[]{70,-92,96,-250});
rules[502] = new Rule(-115, new int[]{72,-93});
rules[503] = new Rule(-116, new int[]{72,71,-93});
rules[504] = new Rule(-303, new int[]{50,-300});
rules[505] = new Rule(-303, new int[]{8,50,-136,97,-326,9,107,-82});
rules[506] = new Rule(-303, new int[]{50,8,-136,97,-147,9,107,-82});
rules[507] = new Rule(-4, new int[]{-102,-184,-83});
rules[508] = new Rule(-4, new int[]{8,-101,97,-325,9,-184,-82});
rules[509] = new Rule(-4, new int[]{-101,17,-109,12,-184,-82});
rules[510] = new Rule(-325, new int[]{-101});
rules[511] = new Rule(-325, new int[]{-325,97,-101});
rules[512] = new Rule(-326, new int[]{50,-136});
rules[513] = new Rule(-326, new int[]{-326,97,50,-136});
rules[514] = new Rule(-202, new int[]{-102});
rules[515] = new Rule(-122, new int[]{54,-132});
rules[516] = new Rule(-245, new int[]{88,-242,89});
rules[517] = new Rule(-242, new int[]{-251});
rules[518] = new Rule(-242, new int[]{-242,10,-251});
rules[519] = new Rule(-142, new int[]{37,-92,48,-250});
rules[520] = new Rule(-142, new int[]{37,-92,48,-250,29,-250});
rules[521] = new Rule(-337, new int[]{35,-92,52,-339,-243,89});
rules[522] = new Rule(-337, new int[]{35,-92,52,-339,10,-243,89});
rules[523] = new Rule(-339, new int[]{-338});
rules[524] = new Rule(-339, new int[]{-339,10,-338});
rules[525] = new Rule(-338, new int[]{-331,36,-92,5,-250});
rules[526] = new Rule(-338, new int[]{-330,5,-250});
rules[527] = new Rule(-338, new int[]{-332,5,-250});
rules[528] = new Rule(-338, new int[]{-333,36,-92,5,-250});
rules[529] = new Rule(-338, new int[]{-333,5,-250});
rules[530] = new Rule(-32, new int[]{22,-92,55,-33,-243,89});
rules[531] = new Rule(-32, new int[]{22,-92,55,-33,10,-243,89});
rules[532] = new Rule(-32, new int[]{22,-92,55,-243,89});
rules[533] = new Rule(-33, new int[]{-252});
rules[534] = new Rule(-33, new int[]{-33,10,-252});
rules[535] = new Rule(-252, new int[]{-68,5,-250});
rules[536] = new Rule(-68, new int[]{-100});
rules[537] = new Rule(-68, new int[]{-68,97,-100});
rules[538] = new Rule(-100, new int[]{-87});
rules[539] = new Rule(-243, new int[]{});
rules[540] = new Rule(-243, new int[]{29,-242});
rules[541] = new Rule(-237, new int[]{94,-242,95,-82});
rules[542] = new Rule(-307, new int[]{51,-92,-282,-250});
rules[543] = new Rule(-282, new int[]{96});
rules[544] = new Rule(-282, new int[]{});
rules[545] = new Rule(-158, new int[]{57,-92,96,-250});
rules[546] = new Rule(-112, new int[]{33,-136,-264,134,-92,96,-250});
rules[547] = new Rule(-112, new int[]{33,50,-136,5,-266,134,-92,96,-250});
rules[548] = new Rule(-112, new int[]{33,50,-136,134,-92,96,-250});
rules[549] = new Rule(-264, new int[]{5,-266});
rules[550] = new Rule(-264, new int[]{});
rules[551] = new Rule(-113, new int[]{32,-18,-136,-276,-92,-108,-92,-282,-250});
rules[552] = new Rule(-18, new int[]{50});
rules[553] = new Rule(-18, new int[]{});
rules[554] = new Rule(-276, new int[]{107});
rules[555] = new Rule(-276, new int[]{5,-170,107});
rules[556] = new Rule(-108, new int[]{68});
rules[557] = new Rule(-108, new int[]{69});
rules[558] = new Rule(-308, new int[]{52,-66,96,-250});
rules[559] = new Rule(-149, new int[]{39});
rules[560] = new Rule(-292, new int[]{99,-242,-280});
rules[561] = new Rule(-280, new int[]{98,-242,89});
rules[562] = new Rule(-280, new int[]{30,-56,89});
rules[563] = new Rule(-56, new int[]{-59,-244});
rules[564] = new Rule(-56, new int[]{-59,10,-244});
rules[565] = new Rule(-56, new int[]{-242});
rules[566] = new Rule(-59, new int[]{-58});
rules[567] = new Rule(-59, new int[]{-59,10,-58});
rules[568] = new Rule(-244, new int[]{});
rules[569] = new Rule(-244, new int[]{29,-242});
rules[570] = new Rule(-58, new int[]{77,-60,96,-250});
rules[571] = new Rule(-60, new int[]{-169});
rules[572] = new Rule(-60, new int[]{-129,5,-169});
rules[573] = new Rule(-169, new int[]{-170});
rules[574] = new Rule(-129, new int[]{-136});
rules[575] = new Rule(-238, new int[]{44});
rules[576] = new Rule(-238, new int[]{44,-82});
rules[577] = new Rule(-66, new int[]{-83});
rules[578] = new Rule(-66, new int[]{-66,97,-83});
rules[579] = new Rule(-55, new int[]{-164});
rules[580] = new Rule(-164, new int[]{-163});
rules[581] = new Rule(-83, new int[]{-82});
rules[582] = new Rule(-83, new int[]{-311});
rules[583] = new Rule(-82, new int[]{-92});
rules[584] = new Rule(-82, new int[]{-109});
rules[585] = new Rule(-92, new int[]{-91});
rules[586] = new Rule(-92, new int[]{-230});
rules[587] = new Rule(-92, new int[]{-232});
rules[588] = new Rule(-106, new int[]{-91});
rules[589] = new Rule(-106, new int[]{-230});
rules[590] = new Rule(-107, new int[]{-91});
rules[591] = new Rule(-107, new int[]{-232});
rules[592] = new Rule(-93, new int[]{-92});
rules[593] = new Rule(-93, new int[]{-311});
rules[594] = new Rule(-94, new int[]{-91});
rules[595] = new Rule(-94, new int[]{-230});
rules[596] = new Rule(-94, new int[]{-311});
rules[597] = new Rule(-91, new int[]{-90});
rules[598] = new Rule(-91, new int[]{-91,16,-90});
rules[599] = new Rule(-247, new int[]{18,8,-274,9});
rules[600] = new Rule(-285, new int[]{19,8,-274,9});
rules[601] = new Rule(-285, new int[]{19,8,-273,9});
rules[602] = new Rule(-230, new int[]{-106,13,-106,5,-106});
rules[603] = new Rule(-232, new int[]{37,-107,48,-107,29,-107});
rules[604] = new Rule(-273, new int[]{-170,-290});
rules[605] = new Rule(-273, new int[]{-170,4,-290});
rules[606] = new Rule(-274, new int[]{-170});
rules[607] = new Rule(-274, new int[]{-170,-289});
rules[608] = new Rule(-274, new int[]{-170,4,-289});
rules[609] = new Rule(-5, new int[]{8,-62,9});
rules[610] = new Rule(-5, new int[]{});
rules[611] = new Rule(-163, new int[]{76,-274,-65});
rules[612] = new Rule(-163, new int[]{76,-274,11,-63,12,-5});
rules[613] = new Rule(-163, new int[]{76,23,8,-322,9});
rules[614] = new Rule(-321, new int[]{-136,107,-90});
rules[615] = new Rule(-321, new int[]{-90});
rules[616] = new Rule(-322, new int[]{-321});
rules[617] = new Rule(-322, new int[]{-322,97,-321});
rules[618] = new Rule(-65, new int[]{});
rules[619] = new Rule(-65, new int[]{8,-63,9});
rules[620] = new Rule(-90, new int[]{-95});
rules[621] = new Rule(-90, new int[]{-90,-186,-95});
rules[622] = new Rule(-90, new int[]{-90,-186,-232});
rules[623] = new Rule(-90, new int[]{-256,8,-342,9});
rules[624] = new Rule(-329, new int[]{-274,8,-342,9});
rules[625] = new Rule(-331, new int[]{-274,8,-343,9});
rules[626] = new Rule(-330, new int[]{-274,8,-343,9});
rules[627] = new Rule(-330, new int[]{-346});
rules[628] = new Rule(-346, new int[]{-328});
rules[629] = new Rule(-346, new int[]{-346,97,-328});
rules[630] = new Rule(-328, new int[]{-14});
rules[631] = new Rule(-328, new int[]{-274});
rules[632] = new Rule(-328, new int[]{53});
rules[633] = new Rule(-328, new int[]{-247});
rules[634] = new Rule(-328, new int[]{-285});
rules[635] = new Rule(-332, new int[]{11,-344,12});
rules[636] = new Rule(-344, new int[]{-334});
rules[637] = new Rule(-344, new int[]{-344,97,-334});
rules[638] = new Rule(-334, new int[]{-14});
rules[639] = new Rule(-334, new int[]{-336});
rules[640] = new Rule(-334, new int[]{14});
rules[641] = new Rule(-334, new int[]{-331});
rules[642] = new Rule(-334, new int[]{-332});
rules[643] = new Rule(-334, new int[]{-333});
rules[644] = new Rule(-334, new int[]{6});
rules[645] = new Rule(-336, new int[]{50,-136});
rules[646] = new Rule(-333, new int[]{8,-345,9});
rules[647] = new Rule(-335, new int[]{14});
rules[648] = new Rule(-335, new int[]{-14});
rules[649] = new Rule(-335, new int[]{-189,-14});
rules[650] = new Rule(-335, new int[]{50,-136});
rules[651] = new Rule(-335, new int[]{-331});
rules[652] = new Rule(-335, new int[]{-332});
rules[653] = new Rule(-335, new int[]{-333});
rules[654] = new Rule(-345, new int[]{-335});
rules[655] = new Rule(-345, new int[]{-345,97,-335});
rules[656] = new Rule(-343, new int[]{-341});
rules[657] = new Rule(-343, new int[]{-343,10,-341});
rules[658] = new Rule(-343, new int[]{-343,97,-341});
rules[659] = new Rule(-342, new int[]{-340});
rules[660] = new Rule(-342, new int[]{-342,10,-340});
rules[661] = new Rule(-342, new int[]{-342,97,-340});
rules[662] = new Rule(-340, new int[]{14});
rules[663] = new Rule(-340, new int[]{-14});
rules[664] = new Rule(-340, new int[]{50,-136,5,-266});
rules[665] = new Rule(-340, new int[]{50,-136});
rules[666] = new Rule(-340, new int[]{-329});
rules[667] = new Rule(-340, new int[]{-332});
rules[668] = new Rule(-340, new int[]{-333});
rules[669] = new Rule(-341, new int[]{14});
rules[670] = new Rule(-341, new int[]{-14});
rules[671] = new Rule(-341, new int[]{-189,-14});
rules[672] = new Rule(-341, new int[]{-136,5,-266});
rules[673] = new Rule(-341, new int[]{-136});
rules[674] = new Rule(-341, new int[]{50,-136,5,-266});
rules[675] = new Rule(-341, new int[]{50,-136});
rules[676] = new Rule(-341, new int[]{-331});
rules[677] = new Rule(-341, new int[]{-332});
rules[678] = new Rule(-341, new int[]{-333});
rules[679] = new Rule(-104, new int[]{-95});
rules[680] = new Rule(-104, new int[]{});
rules[681] = new Rule(-111, new int[]{-84});
rules[682] = new Rule(-111, new int[]{});
rules[683] = new Rule(-109, new int[]{-95,5,-104});
rules[684] = new Rule(-109, new int[]{5,-104});
rules[685] = new Rule(-109, new int[]{-95,5,-104,5,-95});
rules[686] = new Rule(-109, new int[]{5,-104,5,-95});
rules[687] = new Rule(-110, new int[]{-84,5,-111});
rules[688] = new Rule(-110, new int[]{5,-111});
rules[689] = new Rule(-110, new int[]{-84,5,-111,5,-84});
rules[690] = new Rule(-110, new int[]{5,-111,5,-84});
rules[691] = new Rule(-186, new int[]{117});
rules[692] = new Rule(-186, new int[]{122});
rules[693] = new Rule(-186, new int[]{120});
rules[694] = new Rule(-186, new int[]{118});
rules[695] = new Rule(-186, new int[]{121});
rules[696] = new Rule(-186, new int[]{119});
rules[697] = new Rule(-186, new int[]{134});
rules[698] = new Rule(-95, new int[]{-77});
rules[699] = new Rule(-95, new int[]{-95,6,-77});
rules[700] = new Rule(-77, new int[]{-76});
rules[701] = new Rule(-77, new int[]{-77,-187,-76});
rules[702] = new Rule(-77, new int[]{-77,-187,-232});
rules[703] = new Rule(-187, new int[]{113});
rules[704] = new Rule(-187, new int[]{112});
rules[705] = new Rule(-187, new int[]{125});
rules[706] = new Rule(-187, new int[]{126});
rules[707] = new Rule(-187, new int[]{123});
rules[708] = new Rule(-191, new int[]{133});
rules[709] = new Rule(-191, new int[]{135});
rules[710] = new Rule(-254, new int[]{-256});
rules[711] = new Rule(-254, new int[]{-257});
rules[712] = new Rule(-257, new int[]{-76,133,-274});
rules[713] = new Rule(-256, new int[]{-76,135,-274});
rules[714] = new Rule(-78, new int[]{-89});
rules[715] = new Rule(-258, new int[]{-78,116,-89});
rules[716] = new Rule(-76, new int[]{-89});
rules[717] = new Rule(-76, new int[]{-163});
rules[718] = new Rule(-76, new int[]{-258});
rules[719] = new Rule(-76, new int[]{-76,-188,-89});
rules[720] = new Rule(-76, new int[]{-76,-188,-258});
rules[721] = new Rule(-76, new int[]{-76,-188,-232});
rules[722] = new Rule(-76, new int[]{-254});
rules[723] = new Rule(-188, new int[]{115});
rules[724] = new Rule(-188, new int[]{114});
rules[725] = new Rule(-188, new int[]{128});
rules[726] = new Rule(-188, new int[]{129});
rules[727] = new Rule(-188, new int[]{130});
rules[728] = new Rule(-188, new int[]{131});
rules[729] = new Rule(-188, new int[]{127});
rules[730] = new Rule(-53, new int[]{60,8,-274,9});
rules[731] = new Rule(-54, new int[]{8,-92,97,-73,-313,-320,9});
rules[732] = new Rule(-89, new int[]{53});
rules[733] = new Rule(-89, new int[]{-14});
rules[734] = new Rule(-89, new int[]{-53});
rules[735] = new Rule(-89, new int[]{11,-64,12});
rules[736] = new Rule(-89, new int[]{132,-89});
rules[737] = new Rule(-89, new int[]{-189,-89});
rules[738] = new Rule(-89, new int[]{139,-89});
rules[739] = new Rule(-89, new int[]{-102});
rules[740] = new Rule(-89, new int[]{-54});
rules[741] = new Rule(-14, new int[]{-154});
rules[742] = new Rule(-14, new int[]{-15});
rules[743] = new Rule(-105, new int[]{-101,15,-101});
rules[744] = new Rule(-105, new int[]{-101,15,-105});
rules[745] = new Rule(-102, new int[]{-121,-101});
rules[746] = new Rule(-102, new int[]{-101});
rules[747] = new Rule(-102, new int[]{-105});
rules[748] = new Rule(-121, new int[]{138});
rules[749] = new Rule(-121, new int[]{-121,138});
rules[750] = new Rule(-9, new int[]{-170,-65});
rules[751] = new Rule(-9, new int[]{-291,-65});
rules[752] = new Rule(-310, new int[]{-136});
rules[753] = new Rule(-310, new int[]{-310,7,-127});
rules[754] = new Rule(-309, new int[]{-310});
rules[755] = new Rule(-309, new int[]{-310,-289});
rules[756] = new Rule(-16, new int[]{-101});
rules[757] = new Rule(-16, new int[]{-14});
rules[758] = new Rule(-101, new int[]{-136});
rules[759] = new Rule(-101, new int[]{-181});
rules[760] = new Rule(-101, new int[]{39,-136});
rules[761] = new Rule(-101, new int[]{8,-82,9});
rules[762] = new Rule(-101, new int[]{-247});
rules[763] = new Rule(-101, new int[]{-285});
rules[764] = new Rule(-101, new int[]{-14,7,-127});
rules[765] = new Rule(-101, new int[]{-16,11,-66,12});
rules[766] = new Rule(-101, new int[]{-101,17,-109,12});
rules[767] = new Rule(-101, new int[]{74,-64,74});
rules[768] = new Rule(-101, new int[]{-101,8,-63,9});
rules[769] = new Rule(-101, new int[]{-101,7,-137});
rules[770] = new Rule(-101, new int[]{-54,7,-137});
rules[771] = new Rule(-101, new int[]{-101,139});
rules[772] = new Rule(-101, new int[]{-101,4,-289});
rules[773] = new Rule(-63, new int[]{-66});
rules[774] = new Rule(-63, new int[]{});
rules[775] = new Rule(-64, new int[]{-71});
rules[776] = new Rule(-64, new int[]{});
rules[777] = new Rule(-71, new int[]{-85});
rules[778] = new Rule(-71, new int[]{-71,97,-85});
rules[779] = new Rule(-85, new int[]{-82});
rules[780] = new Rule(-85, new int[]{-82,6,-82});
rules[781] = new Rule(-155, new int[]{141});
rules[782] = new Rule(-155, new int[]{143});
rules[783] = new Rule(-154, new int[]{-156});
rules[784] = new Rule(-154, new int[]{142});
rules[785] = new Rule(-156, new int[]{-155});
rules[786] = new Rule(-156, new int[]{-156,-155});
rules[787] = new Rule(-181, new int[]{42,-190});
rules[788] = new Rule(-197, new int[]{10});
rules[789] = new Rule(-197, new int[]{10,-196,10});
rules[790] = new Rule(-198, new int[]{});
rules[791] = new Rule(-198, new int[]{10,-196});
rules[792] = new Rule(-196, new int[]{-199});
rules[793] = new Rule(-196, new int[]{-196,10,-199});
rules[794] = new Rule(-136, new int[]{140});
rules[795] = new Rule(-136, new int[]{-140});
rules[796] = new Rule(-136, new int[]{-141});
rules[797] = new Rule(-127, new int[]{-136});
rules[798] = new Rule(-127, new int[]{-283});
rules[799] = new Rule(-127, new int[]{-284});
rules[800] = new Rule(-137, new int[]{-136});
rules[801] = new Rule(-137, new int[]{-283});
rules[802] = new Rule(-137, new int[]{-181});
rules[803] = new Rule(-199, new int[]{144});
rules[804] = new Rule(-199, new int[]{146});
rules[805] = new Rule(-199, new int[]{147});
rules[806] = new Rule(-199, new int[]{148});
rules[807] = new Rule(-199, new int[]{150});
rules[808] = new Rule(-199, new int[]{149});
rules[809] = new Rule(-200, new int[]{149});
rules[810] = new Rule(-200, new int[]{148});
rules[811] = new Rule(-200, new int[]{144});
rules[812] = new Rule(-200, new int[]{147});
rules[813] = new Rule(-140, new int[]{83});
rules[814] = new Rule(-140, new int[]{84});
rules[815] = new Rule(-141, new int[]{78});
rules[816] = new Rule(-141, new int[]{76});
rules[817] = new Rule(-139, new int[]{82});
rules[818] = new Rule(-139, new int[]{81});
rules[819] = new Rule(-139, new int[]{80});
rules[820] = new Rule(-139, new int[]{79});
rules[821] = new Rule(-283, new int[]{-139});
rules[822] = new Rule(-283, new int[]{66});
rules[823] = new Rule(-283, new int[]{61});
rules[824] = new Rule(-283, new int[]{125});
rules[825] = new Rule(-283, new int[]{19});
rules[826] = new Rule(-283, new int[]{18});
rules[827] = new Rule(-283, new int[]{60});
rules[828] = new Rule(-283, new int[]{20});
rules[829] = new Rule(-283, new int[]{126});
rules[830] = new Rule(-283, new int[]{127});
rules[831] = new Rule(-283, new int[]{128});
rules[832] = new Rule(-283, new int[]{129});
rules[833] = new Rule(-283, new int[]{130});
rules[834] = new Rule(-283, new int[]{131});
rules[835] = new Rule(-283, new int[]{132});
rules[836] = new Rule(-283, new int[]{133});
rules[837] = new Rule(-283, new int[]{134});
rules[838] = new Rule(-283, new int[]{135});
rules[839] = new Rule(-283, new int[]{21});
rules[840] = new Rule(-283, new int[]{71});
rules[841] = new Rule(-283, new int[]{88});
rules[842] = new Rule(-283, new int[]{22});
rules[843] = new Rule(-283, new int[]{23});
rules[844] = new Rule(-283, new int[]{26});
rules[845] = new Rule(-283, new int[]{27});
rules[846] = new Rule(-283, new int[]{28});
rules[847] = new Rule(-283, new int[]{69});
rules[848] = new Rule(-283, new int[]{96});
rules[849] = new Rule(-283, new int[]{29});
rules[850] = new Rule(-283, new int[]{89});
rules[851] = new Rule(-283, new int[]{30});
rules[852] = new Rule(-283, new int[]{31});
rules[853] = new Rule(-283, new int[]{24});
rules[854] = new Rule(-283, new int[]{101});
rules[855] = new Rule(-283, new int[]{98});
rules[856] = new Rule(-283, new int[]{32});
rules[857] = new Rule(-283, new int[]{33});
rules[858] = new Rule(-283, new int[]{34});
rules[859] = new Rule(-283, new int[]{37});
rules[860] = new Rule(-283, new int[]{38});
rules[861] = new Rule(-283, new int[]{39});
rules[862] = new Rule(-283, new int[]{100});
rules[863] = new Rule(-283, new int[]{40});
rules[864] = new Rule(-283, new int[]{41});
rules[865] = new Rule(-283, new int[]{43});
rules[866] = new Rule(-283, new int[]{44});
rules[867] = new Rule(-283, new int[]{45});
rules[868] = new Rule(-283, new int[]{94});
rules[869] = new Rule(-283, new int[]{46});
rules[870] = new Rule(-283, new int[]{99});
rules[871] = new Rule(-283, new int[]{47});
rules[872] = new Rule(-283, new int[]{25});
rules[873] = new Rule(-283, new int[]{48});
rules[874] = new Rule(-283, new int[]{68});
rules[875] = new Rule(-283, new int[]{95});
rules[876] = new Rule(-283, new int[]{49});
rules[877] = new Rule(-283, new int[]{50});
rules[878] = new Rule(-283, new int[]{51});
rules[879] = new Rule(-283, new int[]{52});
rules[880] = new Rule(-283, new int[]{53});
rules[881] = new Rule(-283, new int[]{54});
rules[882] = new Rule(-283, new int[]{55});
rules[883] = new Rule(-283, new int[]{56});
rules[884] = new Rule(-283, new int[]{58});
rules[885] = new Rule(-283, new int[]{102});
rules[886] = new Rule(-283, new int[]{103});
rules[887] = new Rule(-283, new int[]{106});
rules[888] = new Rule(-283, new int[]{104});
rules[889] = new Rule(-283, new int[]{105});
rules[890] = new Rule(-283, new int[]{59});
rules[891] = new Rule(-283, new int[]{72});
rules[892] = new Rule(-283, new int[]{35});
rules[893] = new Rule(-283, new int[]{36});
rules[894] = new Rule(-283, new int[]{67});
rules[895] = new Rule(-283, new int[]{144});
rules[896] = new Rule(-283, new int[]{57});
rules[897] = new Rule(-283, new int[]{136});
rules[898] = new Rule(-283, new int[]{137});
rules[899] = new Rule(-283, new int[]{77});
rules[900] = new Rule(-283, new int[]{149});
rules[901] = new Rule(-283, new int[]{148});
rules[902] = new Rule(-283, new int[]{70});
rules[903] = new Rule(-283, new int[]{150});
rules[904] = new Rule(-283, new int[]{146});
rules[905] = new Rule(-283, new int[]{147});
rules[906] = new Rule(-283, new int[]{145});
rules[907] = new Rule(-284, new int[]{42});
rules[908] = new Rule(-190, new int[]{112});
rules[909] = new Rule(-190, new int[]{113});
rules[910] = new Rule(-190, new int[]{114});
rules[911] = new Rule(-190, new int[]{115});
rules[912] = new Rule(-190, new int[]{117});
rules[913] = new Rule(-190, new int[]{118});
rules[914] = new Rule(-190, new int[]{119});
rules[915] = new Rule(-190, new int[]{120});
rules[916] = new Rule(-190, new int[]{121});
rules[917] = new Rule(-190, new int[]{122});
rules[918] = new Rule(-190, new int[]{125});
rules[919] = new Rule(-190, new int[]{126});
rules[920] = new Rule(-190, new int[]{127});
rules[921] = new Rule(-190, new int[]{128});
rules[922] = new Rule(-190, new int[]{129});
rules[923] = new Rule(-190, new int[]{130});
rules[924] = new Rule(-190, new int[]{131});
rules[925] = new Rule(-190, new int[]{132});
rules[926] = new Rule(-190, new int[]{134});
rules[927] = new Rule(-190, new int[]{136});
rules[928] = new Rule(-190, new int[]{137});
rules[929] = new Rule(-190, new int[]{-184});
rules[930] = new Rule(-190, new int[]{116});
rules[931] = new Rule(-184, new int[]{107});
rules[932] = new Rule(-184, new int[]{108});
rules[933] = new Rule(-184, new int[]{109});
rules[934] = new Rule(-184, new int[]{110});
rules[935] = new Rule(-184, new int[]{111});
rules[936] = new Rule(-311, new int[]{-136,124,-317});
rules[937] = new Rule(-311, new int[]{8,9,-314,124,-317});
rules[938] = new Rule(-311, new int[]{8,-136,5,-265,9,-314,124,-317});
rules[939] = new Rule(-311, new int[]{8,-136,10,-315,9,-314,124,-317});
rules[940] = new Rule(-311, new int[]{8,-136,5,-265,10,-315,9,-314,124,-317});
rules[941] = new Rule(-311, new int[]{8,-92,97,-73,-313,-320,9,-324});
rules[942] = new Rule(-311, new int[]{-312});
rules[943] = new Rule(-320, new int[]{});
rules[944] = new Rule(-320, new int[]{10,-315});
rules[945] = new Rule(-324, new int[]{-314,124,-317});
rules[946] = new Rule(-312, new int[]{34,-314,124,-317});
rules[947] = new Rule(-312, new int[]{34,8,9,-314,124,-317});
rules[948] = new Rule(-312, new int[]{34,8,-315,9,-314,124,-317});
rules[949] = new Rule(-312, new int[]{41,124,-318});
rules[950] = new Rule(-312, new int[]{41,8,9,124,-318});
rules[951] = new Rule(-312, new int[]{41,8,-315,9,124,-318});
rules[952] = new Rule(-315, new int[]{-316});
rules[953] = new Rule(-315, new int[]{-315,10,-316});
rules[954] = new Rule(-316, new int[]{-147,-313});
rules[955] = new Rule(-313, new int[]{});
rules[956] = new Rule(-313, new int[]{5,-265});
rules[957] = new Rule(-314, new int[]{});
rules[958] = new Rule(-314, new int[]{5,-267});
rules[959] = new Rule(-319, new int[]{-245});
rules[960] = new Rule(-319, new int[]{-142});
rules[961] = new Rule(-319, new int[]{-307});
rules[962] = new Rule(-319, new int[]{-237});
rules[963] = new Rule(-319, new int[]{-113});
rules[964] = new Rule(-319, new int[]{-112});
rules[965] = new Rule(-319, new int[]{-114});
rules[966] = new Rule(-319, new int[]{-32});
rules[967] = new Rule(-319, new int[]{-292});
rules[968] = new Rule(-319, new int[]{-158});
rules[969] = new Rule(-319, new int[]{-238});
rules[970] = new Rule(-319, new int[]{-115});
rules[971] = new Rule(-317, new int[]{-94});
rules[972] = new Rule(-317, new int[]{-319});
rules[973] = new Rule(-318, new int[]{-202});
rules[974] = new Rule(-318, new int[]{-4});
rules[975] = new Rule(-318, new int[]{-319});
}
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, stmt_list
{
var stl = ValueStack[ValueStack.Depth-1].stn as statement_list;
stl.left_logical_bracket = ValueStack[ValueStack.Depth-2].ti;
stl.right_logical_bracket = new token_info("");
root = CurrentSemanticValue.stn = NewProgramModule(null, null, null, new block(null, stl, CurrentLocationSpan), new token_info(""), CurrentLocationSpan);
}
break;
case 6: // parse_goal -> tkShortSFProgram, stmt_list
{
var stl = ValueStack[ValueStack.Depth-1].stn as statement_list;
stl.left_logical_bracket = ValueStack[ValueStack.Depth-2].ti;
var un = new unit_or_namespace(new ident_list("SF"),null);
var ul = new uses_list(un,null);
root = CurrentSemanticValue.stn = NewProgramModule(null, null, ul, new block(null, stl, CurrentLocationSpan), new token_info(""), CurrentLocationSpan);
}
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 -> /* empty */
{
CurrentSemanticValue.stn = null;
}
break;
case 39: // uses_clause -> uses_clause, tkUses, used_units_list, tkSemiColon
{
if (parsertools.build_tree_for_formatter)
{
if (ValueStack[ValueStack.Depth-4].stn == null)
{
CurrentSemanticValue.stn = new uses_closure(ValueStack[ValueStack.Depth-2].stn as uses_list,CurrentLocationSpan);
}
else {
(ValueStack[ValueStack.Depth-4].stn as uses_closure).AddUsesList(ValueStack[ValueStack.Depth-2].stn as uses_list,CurrentLocationSpan);
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-4].stn;
}
}
else
{
if (ValueStack[ValueStack.Depth-4].stn == null)
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn;
CurrentSemanticValue.stn.source_context = CurrentLocationSpan;
}
else
{
(ValueStack[ValueStack.Depth-4].stn as uses_list).AddUsesList(ValueStack[ValueStack.Depth-2].stn as uses_list,CurrentLocationSpan);
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-4].stn;
CurrentSemanticValue.stn.source_context = CurrentLocationSpan;
}
}
}
break;
case 40: // used_units_list -> used_unit_name
{
CurrentSemanticValue.stn = new uses_list(ValueStack[ValueStack.Depth-1].stn as unit_or_namespace,CurrentLocationSpan);
}
break;
case 41: // 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 42: // 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 43: // 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 44: // unit_file -> attribute_declarations, unit_header, interface_part,
// implementation_part, initialization_part, tkPoint
{
CurrentSemanticValue.stn = new unit_module(ValueStack[ValueStack.Depth-5].stn as unit_name, ValueStack[ValueStack.Depth-4].stn as interface_node, ValueStack[ValueStack.Depth-3].stn as implementation_node, (ValueStack[ValueStack.Depth-2].stn as initfinal_part).initialization_sect, (ValueStack[ValueStack.Depth-2].stn as initfinal_part).finalization_sect, ValueStack[ValueStack.Depth-6].stn as attribute_list, CurrentLocationSpan);
}
break;
case 45: // unit_file -> attribute_declarations, unit_header, abc_interface_part,
// initialization_part, tkPoint
{
CurrentSemanticValue.stn = new unit_module(ValueStack[ValueStack.Depth-4].stn as unit_name, ValueStack[ValueStack.Depth-3].stn as interface_node, null, (ValueStack[ValueStack.Depth-2].stn as initfinal_part).initialization_sect, (ValueStack[ValueStack.Depth-2].stn as initfinal_part).finalization_sect, ValueStack[ValueStack.Depth-5].stn as attribute_list, CurrentLocationSpan);
}
break;
case 46: // 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 47: // 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 48: // unit_key_word -> tkUnit
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 49: // unit_key_word -> tkLibrary
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 50: // unit_name -> identifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 51: // 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 52: // 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 53: // 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 54: // initialization_part -> tkEnd
{
CurrentSemanticValue.stn = new initfinal_part();
CurrentSemanticValue.stn.source_context = CurrentLocationSpan;
}
break;
case 55: // 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 56: // 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 57: // 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 58: // 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 59: // int_decl_sect_list1 -> /* empty */
{
CurrentSemanticValue.stn = new declarations();
if (GlobalDecls==null)
GlobalDecls = CurrentSemanticValue.stn as declarations;
}
break;
case 60: // 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 61: // 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 62: // decl_sect_list1 -> /* empty */
{
CurrentSemanticValue.stn = new declarations();
if (GlobalDecls==null)
GlobalDecls = CurrentSemanticValue.stn as declarations;
}
break;
case 63: // 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 64: // 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 65: // inclass_decl_sect_list1 -> /* empty */
{
CurrentSemanticValue.stn = new declarations();
}
break;
case 66: // 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 67: // int_decl_sect -> const_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 68: // int_decl_sect -> res_str_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 69: // int_decl_sect -> type_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 70: // int_decl_sect -> var_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 71: // int_decl_sect -> int_proc_header
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].td; }
break;
case 72: // int_decl_sect -> int_func_header
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].td; }
break;
case 73: // decl_sect -> label_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 74: // decl_sect -> const_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 75: // decl_sect -> res_str_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 76: // decl_sect -> type_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 77: // decl_sect -> var_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 78: // decl_sect -> proc_func_constr_destr_decl_with_attr
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 79: // proc_func_constr_destr_decl -> proc_func_decl
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 80: // proc_func_constr_destr_decl -> constr_destr_decl
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 81: // 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 82: // abc_decl_sect -> label_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 83: // abc_decl_sect -> const_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 84: // abc_decl_sect -> res_str_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 85: // abc_decl_sect -> type_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 86: // abc_decl_sect -> var_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 87: // 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 88: // 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 89: // 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 90: // 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 91: // label_decl_sect -> tkLabel, label_list, tkSemiColon
{
CurrentSemanticValue.stn = new label_definitions(ValueStack[ValueStack.Depth-2].stn as ident_list, CurrentLocationSpan);
}
break;
case 92: // label_list -> label_name
{
CurrentSemanticValue.stn = new ident_list(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan);
}
break;
case 93: // 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 94: // label_name -> tkInteger
{
CurrentSemanticValue.id = new ident(ValueStack[ValueStack.Depth-1].ex.ToString(), CurrentLocationSpan);
}
break;
case 95: // label_name -> identifier
{
CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id;
}
break;
case 96: // const_decl_sect -> tkConst, const_decl
{
CurrentSemanticValue.stn = new consts_definitions_list(ValueStack[ValueStack.Depth-1].stn as const_definition, CurrentLocationSpan);
}
break;
case 97: // 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 98: // res_str_decl_sect -> tkResourceString, const_decl
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
}
break;
case 99: // res_str_decl_sect -> res_str_decl_sect, const_decl
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn;
}
break;
case 100: // type_decl_sect -> tkType, type_decl
{
CurrentSemanticValue.stn = new type_declarations(ValueStack[ValueStack.Depth-1].stn as type_declaration, CurrentLocationSpan);
}
break;
case 101: // 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 102: // var_decl_with_assign_var_tuple -> var_decl
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
}
break;
case 103: // 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 104: // 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 105: // 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 106: // 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 107: // const_decl -> only_const_decl, tkSemiColon
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; }
break;
case 108: // 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 109: // 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 110: // init_const_expr -> const_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 111: // init_const_expr -> array_const
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 112: // const_name -> identifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 113: // expr_l1_list -> expr_l1
{
CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 114: // expr_l1_list -> expr_l1_list, tkComma, expr_l1
{
CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as expression_list).Add(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 115: // const_expr -> const_simple_expr
{
CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex;
}
break;
case 116: // const_expr -> const_simple_expr, const_relop, const_simple_expr
{
CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan);
}
break;
case 117: // const_expr -> question_constexpr
{
CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex;
}
break;
case 118: // 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 119: // const_relop -> tkEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 120: // const_relop -> tkNotEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 121: // const_relop -> tkLower
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 122: // const_relop -> tkGreater
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 123: // const_relop -> tkLowerEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 124: // const_relop -> tkGreaterEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 125: // const_relop -> tkIn
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 126: // const_simple_expr -> const_term
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 127: // 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 128: // const_addop -> tkPlus
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 129: // const_addop -> tkMinus
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 130: // const_addop -> tkOr
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 131: // const_addop -> tkXor
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 132: // 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 133: // power_constexpr -> const_factor, tkStarStar, const_factor
{ CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); }
break;
case 134: // const_term -> const_factor
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 135: // const_term -> as_is_constexpr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 136: // const_term -> power_constexpr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 137: // 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 138: // 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 139: // const_mulop -> tkStar
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 140: // const_mulop -> tkSlash
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 141: // const_mulop -> tkDiv
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 142: // const_mulop -> tkMod
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 143: // const_mulop -> tkShl
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 144: // const_mulop -> tkShr
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 145: // const_mulop -> tkAnd
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 146: // const_factor -> const_variable
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 147: // const_factor -> const_set
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 148: // const_factor -> tkNil
{
CurrentSemanticValue.ex = new nil_const();
CurrentSemanticValue.ex.source_context = CurrentLocationSpan;
}
break;
case 149: // const_factor -> tkAddressOf, const_factor
{
CurrentSemanticValue.ex = new get_address(ValueStack[ValueStack.Depth-1].ex as addressed_value, CurrentLocationSpan);
}
break;
case 150: // const_factor -> tkRoundOpen, const_expr, tkRoundClose
{
CurrentSemanticValue.ex = new bracket_expr(ValueStack[ValueStack.Depth-2].ex, CurrentLocationSpan);
}
break;
case 151: // const_factor -> tkNot, const_factor
{
CurrentSemanticValue.ex = new un_expr(ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan);
}
break;
case 152: // const_factor -> sign, const_factor
{
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
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;
}
// <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
CurrentSemanticValue.ex = new un_expr(ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan);
}
break;
case 153: // const_factor -> new_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 154: // const_set -> tkSquareOpen, const_elem_list, tkSquareClose
{
CurrentSemanticValue.ex = new pascal_set_constant(ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan);
}
break;
case 155: // const_set -> tkVertParen, elem_list, tkVertParen
{
CurrentSemanticValue.ex = new array_const_new(ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan);
}
break;
case 156: // sign -> tkPlus
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 157: // sign -> tkMinus
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 158: // const_variable -> identifier
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].id; }
break;
case 159: // const_variable -> literal
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 160: // const_variable -> unsigned_number
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 161: // const_variable -> tkInherited, identifier
{
CurrentSemanticValue.ex = new inherited_ident(ValueStack[ValueStack.Depth-1].id.name, CurrentLocationSpan);
}
break;
case 162: // const_variable -> sizeof_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 163: // const_variable -> typeof_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 164: // const_variable -> const_variable, const_variable_2
{
CurrentSemanticValue.ex = NewConstVariable(ValueStack[ValueStack.Depth-2].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 165: // const_variable -> const_variable, tkAmpersend, template_type_params
{
CurrentSemanticValue.ex = new ident_with_templateparams(ValueStack[ValueStack.Depth-3].ex as addressed_value, ValueStack[ValueStack.Depth-1].stn as template_param_list, CurrentLocationSpan);
}
break;
case 166: // const_variable -> const_variable, tkSquareOpen, format_const_expr,
// tkSquareClose
{
var fe = ValueStack[ValueStack.Depth-2].ex as format_expr;
if (!parsertools.build_tree_for_formatter)
{
if (fe.expr == null)
fe.expr = new int32_const(int.MaxValue,LocationStack[LocationStack.Depth-2]);
if (fe.format1 == null)
fe.format1 = new int32_const(int.MaxValue,LocationStack[LocationStack.Depth-2]);
}
CurrentSemanticValue.ex = new slice_expr(ValueStack[ValueStack.Depth-4].ex as addressed_value,fe.expr,fe.format1,fe.format2,CurrentLocationSpan);
}
break;
case 167: // const_variable_2 -> tkPoint, identifier_or_keyword
{
CurrentSemanticValue.ex = new dot_node(null, ValueStack[ValueStack.Depth-1].id as addressed_value, CurrentLocationSpan);
}
break;
case 168: // const_variable_2 -> tkDeref
{
CurrentSemanticValue.ex = new roof_dereference();
CurrentSemanticValue.ex.source_context = CurrentLocationSpan;
}
break;
case 169: // const_variable_2 -> tkRoundOpen, optional_const_func_expr_list, tkRoundClose
{
CurrentSemanticValue.ex = new method_call(ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan);
}
break;
case 170: // const_variable_2 -> tkSquareOpen, const_elem_list, tkSquareClose
{
CurrentSemanticValue.ex = new indexer(ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan);
}
break;
case 171: // optional_const_func_expr_list -> expr_list
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 172: // optional_const_func_expr_list -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 173: // const_elem_list -> const_elem_list1
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 175: // const_elem_list1 -> const_elem
{
CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 176: // const_elem_list1 -> const_elem_list1, tkComma, const_elem
{
CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as expression_list).Add(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 177: // const_elem -> const_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 178: // const_elem -> const_expr, tkDotDot, const_expr
{
CurrentSemanticValue.ex = new diapason_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 179: // unsigned_number -> tkInteger
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 180: // unsigned_number -> tkHex
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 181: // unsigned_number -> tkFloat
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 182: // typed_const -> const_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 183: // typed_const -> array_const
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 184: // typed_const -> record_const
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 185: // array_const -> tkRoundOpen, typed_const_list, tkRoundClose
{
CurrentSemanticValue.ex = new array_const(ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan);
}
break;
case 187: // typed_const_list -> typed_const_list1
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
}
break;
case 188: // typed_const_list1 -> typed_const_plus
{
CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 189: // typed_const_list1 -> typed_const_list1, tkComma, typed_const_plus
{
CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as expression_list).Add(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 190: // record_const -> tkRoundOpen, const_field_list, tkRoundClose
{
CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-2].ex;
CurrentSemanticValue.ex.source_context = CurrentLocationSpan;
}
break;
case 191: // const_field_list -> const_field_list_1
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 192: // const_field_list -> const_field_list_1, tkSemiColon
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-2].ex; }
break;
case 193: // const_field_list_1 -> const_field
{
CurrentSemanticValue.ex = new record_const(ValueStack[ValueStack.Depth-1].stn as record_const_definition, CurrentLocationSpan);
}
break;
case 194: // const_field_list_1 -> const_field_list_1, tkSemiColon, const_field
{
CurrentSemanticValue.ex = (ValueStack[ValueStack.Depth-3].ex as record_const).Add(ValueStack[ValueStack.Depth-1].stn as record_const_definition, CurrentLocationSpan);
}
break;
case 195: // const_field -> const_field_name, tkColon, typed_const
{
CurrentSemanticValue.stn = new record_const_definition(ValueStack[ValueStack.Depth-3].id, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 196: // const_field_name -> identifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 197: // type_decl -> attribute_declarations, simple_type_decl
{
(ValueStack[ValueStack.Depth-1].stn as declaration).attributes = ValueStack[ValueStack.Depth-2].stn as attribute_list;
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
CurrentSemanticValue.stn.source_context = LocationStack[LocationStack.Depth-1];
}
break;
case 198: // attribute_declarations -> attribute_declaration
{
CurrentSemanticValue.stn = new attribute_list(ValueStack[ValueStack.Depth-1].stn as simple_attribute_list, CurrentLocationSpan);
}
break;
case 199: // attribute_declarations -> attribute_declarations, attribute_declaration
{
CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-2].stn as attribute_list).Add(ValueStack[ValueStack.Depth-1].stn as simple_attribute_list, CurrentLocationSpan);
}
break;
case 200: // attribute_declarations -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 201: // attribute_declaration -> tkSquareOpen, one_or_some_attribute, tkSquareClose
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; }
break;
case 202: // one_or_some_attribute -> one_attribute
{
CurrentSemanticValue.stn = new simple_attribute_list(ValueStack[ValueStack.Depth-1].stn as attribute, CurrentLocationSpan);
}
break;
case 203: // one_or_some_attribute -> one_or_some_attribute, tkComma, one_attribute
{
CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as simple_attribute_list).Add(ValueStack[ValueStack.Depth-1].stn as attribute, CurrentLocationSpan);
}
break;
case 204: // one_attribute -> attribute_variable
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 205: // one_attribute -> identifier, tkColon, attribute_variable
{
(ValueStack[ValueStack.Depth-1].stn as attribute).qualifier = ValueStack[ValueStack.Depth-3].id;
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
CurrentSemanticValue.stn.source_context = CurrentLocationSpan;
}
break;
case 206: // simple_type_decl -> type_decl_identifier, tkEqual, type_decl_type, tkSemiColon
{
CurrentSemanticValue.stn = new type_declaration(ValueStack[ValueStack.Depth-4].id, ValueStack[ValueStack.Depth-2].td, CurrentLocationSpan);
}
break;
case 207: // simple_type_decl -> template_identifier_with_equal, type_decl_type, tkSemiColon
{
CurrentSemanticValue.stn = new type_declaration(ValueStack[ValueStack.Depth-3].id, ValueStack[ValueStack.Depth-2].td, CurrentLocationSpan);
}
break;
case 208: // type_decl_identifier -> identifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 209: // type_decl_identifier -> identifier, template_arguments
{
CurrentSemanticValue.id = new template_type_name(ValueStack[ValueStack.Depth-2].id.name, ValueStack[ValueStack.Depth-1].stn as ident_list, CurrentLocationSpan);
}
break;
case 210: // template_identifier_with_equal -> identifier, tkLower, ident_list,
// tkGreaterEqual
{
CurrentSemanticValue.id = new template_type_name(ValueStack[ValueStack.Depth-4].id.name, ValueStack[ValueStack.Depth-2].stn as ident_list, CurrentLocationSpan);
}
break;
case 211: // type_decl_type -> type_ref
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 212: // type_decl_type -> object_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 213: // simple_type_question -> simple_type, tkQuestion
{
if (parsertools.build_tree_for_formatter)
{
CurrentSemanticValue.td = ValueStack[ValueStack.Depth-2].td;
}
else
{
var l = new List<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 214: // simple_type_question -> template_type, tkQuestion
{
if (parsertools.build_tree_for_formatter)
{
CurrentSemanticValue.td = ValueStack[ValueStack.Depth-2].td;
}
else
{
var l = new List<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 215: // type_ref -> simple_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 216: // type_ref -> simple_type_question
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 217: // type_ref -> string_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 218: // type_ref -> pointer_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 219: // type_ref -> structured_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 220: // type_ref -> procedural_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 221: // type_ref -> template_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 222: // template_type -> simple_type_identifier, template_type_params
{
CurrentSemanticValue.td = new template_type_reference(ValueStack[ValueStack.Depth-2].td as named_type_reference, ValueStack[ValueStack.Depth-1].stn as template_param_list, CurrentLocationSpan);
}
break;
case 223: // template_type_params -> tkLower, template_param_list, tkGreater
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn;
CurrentSemanticValue.stn.source_context = CurrentLocationSpan;
}
break;
case 224: // template_type_empty_params -> tkNotEqual
{
var ntr = new named_type_reference(new ident(""), CurrentLocationSpan);
CurrentSemanticValue.stn = new template_param_list(ntr, CurrentLocationSpan);
ntr.source_context = new SourceContext(CurrentSemanticValue.stn.source_context.end_position.line_num, CurrentSemanticValue.stn.source_context.end_position.column_num, CurrentSemanticValue.stn.source_context.begin_position.line_num, CurrentSemanticValue.stn.source_context.begin_position.column_num);
}
break;
case 225: // template_type_empty_params -> tkLower, template_empty_param_list, tkGreater
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn;
CurrentSemanticValue.stn.source_context = CurrentLocationSpan;
}
break;
case 226: // template_param_list -> template_param
{
CurrentSemanticValue.stn = new template_param_list(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan);
}
break;
case 227: // template_param_list -> template_param_list, tkComma, template_param
{
CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as template_param_list).Add(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan);
}
break;
case 228: // template_empty_param_list -> template_empty_param
{
CurrentSemanticValue.stn = new template_param_list(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan);
}
break;
case 229: // template_empty_param_list -> template_empty_param_list, tkComma,
// template_empty_param
{
CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as template_param_list).Add(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan);
}
break;
case 230: // template_empty_param -> /* empty */
{
CurrentSemanticValue.td = new named_type_reference(new ident(""), CurrentLocationSpan);
}
break;
case 231: // template_param -> simple_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 232: // template_param -> simple_type, tkQuestion
{
if (parsertools.build_tree_for_formatter)
{
CurrentSemanticValue.td = ValueStack[ValueStack.Depth-2].td;
}
else
{
var l = new List<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 233: // template_param -> structured_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 234: // template_param -> procedural_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 235: // template_param -> template_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 236: // simple_type -> range_expr
{
CurrentSemanticValue.td = parsertools.ConvertDotNodeOrIdentToNamedTypeReference(ValueStack[ValueStack.Depth-1].ex);
}
break;
case 237: // simple_type -> range_expr, tkDotDot, range_expr
{
CurrentSemanticValue.td = new diapason(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 238: // simple_type -> tkRoundOpen, enumeration_id_list, tkRoundClose
{
CurrentSemanticValue.td = new enum_type_definition(ValueStack[ValueStack.Depth-2].stn as enumerator_list, CurrentLocationSpan);
}
break;
case 239: // range_expr -> range_term
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 240: // range_expr -> range_expr, const_addop, range_term
{
CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan);
}
break;
case 241: // range_term -> range_factor
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 242: // range_term -> range_term, const_mulop, range_factor
{
CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan);
}
break;
case 243: // range_factor -> simple_type_identifier
{
CurrentSemanticValue.ex = parsertools.ConvertNamedTypeReferenceToDotNodeOrIdent(ValueStack[ValueStack.Depth-1].td as named_type_reference);
}
break;
case 244: // range_factor -> unsigned_number
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 245: // range_factor -> sign, range_factor
{
CurrentSemanticValue.ex = new un_expr(ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan);
}
break;
case 246: // range_factor -> literal
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 247: // range_factor -> range_factor, tkRoundOpen, const_elem_list, tkRoundClose
{
CurrentSemanticValue.ex = new method_call(ValueStack[ValueStack.Depth-4].ex as addressed_value, ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan);
}
break;
case 248: // simple_type_identifier -> identifier
{
CurrentSemanticValue.td = new named_type_reference(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan);
}
break;
case 249: // simple_type_identifier -> simple_type_identifier, tkPoint,
// identifier_or_keyword
{
CurrentSemanticValue.td = (ValueStack[ValueStack.Depth-3].td as named_type_reference).Add(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan);
}
break;
case 250: // enumeration_id_list -> enumeration_id, tkComma, enumeration_id
{
CurrentSemanticValue.stn = new enumerator_list(ValueStack[ValueStack.Depth-3].stn as enumerator, CurrentLocationSpan);
(CurrentSemanticValue.stn as enumerator_list).Add(ValueStack[ValueStack.Depth-1].stn as enumerator, CurrentLocationSpan);
}
break;
case 251: // enumeration_id_list -> enumeration_id_list, tkComma, enumeration_id
{
CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as enumerator_list).Add(ValueStack[ValueStack.Depth-1].stn as enumerator, CurrentLocationSpan);
}
break;
case 252: // enumeration_id -> type_ref
{
CurrentSemanticValue.stn = new enumerator(ValueStack[ValueStack.Depth-1].td, null, CurrentLocationSpan);
}
break;
case 253: // enumeration_id -> type_ref, tkEqual, expr
{
CurrentSemanticValue.stn = new enumerator(ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 254: // pointer_type -> tkDeref, fptype
{
CurrentSemanticValue.td = new ref_type(ValueStack[ValueStack.Depth-1].td,CurrentLocationSpan);
}
break;
case 255: // structured_type -> unpacked_structured_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 256: // structured_type -> tkPacked, unpacked_structured_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 257: // unpacked_structured_type -> array_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 258: // unpacked_structured_type -> record_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 259: // unpacked_structured_type -> set_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 260: // unpacked_structured_type -> file_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 261: // unpacked_structured_type -> sequence_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 262: // sequence_type -> tkSequence, tkOf, type_ref
{
CurrentSemanticValue.td = new sequence_type(ValueStack[ValueStack.Depth-1].td,CurrentLocationSpan);
}
break;
case 263: // array_type -> tkArray, tkSquareOpen, simple_type_list, tkSquareClose, tkOf,
// type_ref
{
CurrentSemanticValue.td = new array_type(ValueStack[ValueStack.Depth-4].stn as indexers_types, ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan);
}
break;
case 264: // array_type -> unsized_array_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 265: // unsized_array_type -> tkArray, tkOf, type_ref
{
CurrentSemanticValue.td = new array_type(null, ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan);
}
break;
case 266: // simple_type_list -> simple_type_or_
{
CurrentSemanticValue.stn = new indexers_types(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan);
}
break;
case 267: // simple_type_list -> simple_type_list, tkComma, simple_type_or_
{
CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as indexers_types).Add(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan);
}
break;
case 268: // simple_type_or_ -> simple_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 269: // simple_type_or_ -> /* empty */
{ CurrentSemanticValue.td = null; }
break;
case 270: // set_type -> tkSet, tkOf, type_ref
{
CurrentSemanticValue.td = new set_type_definition(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan);
}
break;
case 271: // file_type -> tkFile, tkOf, type_ref
{
CurrentSemanticValue.td = new file_type(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan);
}
break;
case 272: // file_type -> tkFile
{
CurrentSemanticValue.td = new file_type();
CurrentSemanticValue.td.source_context = CurrentLocationSpan;
}
break;
case 273: // string_type -> tkIdentifier, tkSquareOpen, const_expr, tkSquareClose
{
CurrentSemanticValue.td = new string_num_definition(ValueStack[ValueStack.Depth-2].ex, ValueStack[ValueStack.Depth-4].id, CurrentLocationSpan);
}
break;
case 274: // procedural_type -> procedural_type_kind
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 275: // procedural_type_kind -> proc_type_decl
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 276: // proc_type_decl -> tkProcedure, fp_list
{
CurrentSemanticValue.td = new procedure_header(ValueStack[ValueStack.Depth-1].stn as formal_parameters,null,null,false,false,null,null,CurrentLocationSpan);
}
break;
case 277: // proc_type_decl -> tkFunction, fp_list, tkColon, fptype
{
CurrentSemanticValue.td = new function_header(ValueStack[ValueStack.Depth-3].stn as formal_parameters, null, null, null, ValueStack[ValueStack.Depth-1].td as type_definition, CurrentLocationSpan);
}
break;
case 278: // proc_type_decl -> simple_type_identifier, tkArrow, template_param
{
CurrentSemanticValue.td = new modern_proc_type(ValueStack[ValueStack.Depth-3].td,null,ValueStack[ValueStack.Depth-1].td,CurrentLocationSpan);
}
break;
case 279: // proc_type_decl -> template_type, tkArrow, template_param
{
CurrentSemanticValue.td = new modern_proc_type(ValueStack[ValueStack.Depth-3].td,null,ValueStack[ValueStack.Depth-1].td,CurrentLocationSpan);
}
break;
case 280: // proc_type_decl -> tkRoundOpen, tkRoundClose, tkArrow, template_param
{
CurrentSemanticValue.td = new modern_proc_type(null,null,ValueStack[ValueStack.Depth-1].td,CurrentLocationSpan);
}
break;
case 281: // proc_type_decl -> tkRoundOpen, enumeration_id_list, tkRoundClose, tkArrow,
// template_param
{
CurrentSemanticValue.td = new modern_proc_type(null,ValueStack[ValueStack.Depth-4].stn as enumerator_list,ValueStack[ValueStack.Depth-1].td,CurrentLocationSpan);
}
break;
case 282: // proc_type_decl -> simple_type_identifier, tkArrow, tkRoundOpen, tkRoundClose
{
CurrentSemanticValue.td = new modern_proc_type(ValueStack[ValueStack.Depth-4].td,null,null,CurrentLocationSpan);
}
break;
case 283: // proc_type_decl -> template_type, tkArrow, tkRoundOpen, tkRoundClose
{
CurrentSemanticValue.td = new modern_proc_type(ValueStack[ValueStack.Depth-4].td,null,null,CurrentLocationSpan);
}
break;
case 284: // proc_type_decl -> tkRoundOpen, tkRoundClose, tkArrow, tkRoundOpen, tkRoundClose
{
CurrentSemanticValue.td = new modern_proc_type(null,null,null,CurrentLocationSpan);
}
break;
case 285: // proc_type_decl -> tkRoundOpen, enumeration_id_list, tkRoundClose, tkArrow,
// tkRoundOpen, tkRoundClose
{
CurrentSemanticValue.td = new modern_proc_type(null,ValueStack[ValueStack.Depth-5].stn as enumerator_list,null,CurrentLocationSpan);
}
break;
case 286: // object_type -> class_attributes, class_or_interface_keyword,
// optional_base_classes, optional_where_section,
// optional_component_list_seq_end
{
var cd = NewObjectType((class_attribute)ValueStack[ValueStack.Depth-5].ob, ValueStack[ValueStack.Depth-4].ti, ValueStack[ValueStack.Depth-3].stn as named_type_reference_list, ValueStack[ValueStack.Depth-2].stn as where_definition_list, ValueStack[ValueStack.Depth-1].stn as class_body_list, CurrentLocationSpan);
CurrentSemanticValue.td = cd;
}
break;
case 287: // record_type -> tkRecord, optional_base_classes, optional_where_section,
// member_list_section, tkEnd
{
var nnrt = new class_definition(ValueStack[ValueStack.Depth-4].stn as named_type_reference_list, ValueStack[ValueStack.Depth-2].stn as class_body_list, class_keyword.Record, null, ValueStack[ValueStack.Depth-3].stn as where_definition_list, class_attribute.None, false, CurrentLocationSpan);
if (/*nnrt.body!=null && nnrt.body.class_def_blocks!=null &&
nnrt.body.class_def_blocks.Count>0 &&*/
nnrt.body.class_def_blocks[0].access_mod==null)
{
nnrt.body.class_def_blocks[0].access_mod = new access_modifer_node(access_modifer.public_modifer);
}
CurrentSemanticValue.td = nnrt;
}
break;
case 288: // class_attribute -> tkSealed
{ CurrentSemanticValue.ob = class_attribute.Sealed; }
break;
case 289: // class_attribute -> tkPartial
{ CurrentSemanticValue.ob = class_attribute.Partial; }
break;
case 290: // class_attribute -> tkAbstract
{ CurrentSemanticValue.ob = class_attribute.Abstract; }
break;
case 291: // class_attribute -> tkAuto
{ CurrentSemanticValue.ob = class_attribute.Auto; }
break;
case 292: // class_attribute -> tkStatic
{ CurrentSemanticValue.ob = class_attribute.Static; }
break;
case 293: // class_attributes -> /* empty */
{
CurrentSemanticValue.ob = class_attribute.None;
}
break;
case 294: // class_attributes -> class_attributes1
{
CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-1].ob;
}
break;
case 295: // class_attributes1 -> class_attribute
{
CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-1].ob;
}
break;
case 296: // class_attributes1 -> class_attributes1, class_attribute
{
if (((class_attribute)ValueStack[ValueStack.Depth-2].ob & (class_attribute)ValueStack[ValueStack.Depth-1].ob) == (class_attribute)ValueStack[ValueStack.Depth-1].ob)
parsertools.AddErrorFromResource("ATTRIBUTE_REDECLARED",LocationStack[LocationStack.Depth-1]);
CurrentSemanticValue.ob = ((class_attribute)ValueStack[ValueStack.Depth-2].ob) | ((class_attribute)ValueStack[ValueStack.Depth-1].ob);
//$$ = $1;
}
break;
case 297: // class_or_interface_keyword -> tkClass
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 298: // class_or_interface_keyword -> tkInterface
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 299: // class_or_interface_keyword -> tkTemplate
{
CurrentSemanticValue.ti = NewClassOrInterfaceKeyword(ValueStack[ValueStack.Depth-1].ti);
}
break;
case 300: // class_or_interface_keyword -> tkTemplate, tkClass
{
CurrentSemanticValue.ti = NewClassOrInterfaceKeyword(ValueStack[ValueStack.Depth-2].ti, "c", CurrentLocationSpan);
}
break;
case 301: // class_or_interface_keyword -> tkTemplate, tkRecord
{
CurrentSemanticValue.ti = NewClassOrInterfaceKeyword(ValueStack[ValueStack.Depth-2].ti, "r", CurrentLocationSpan);
}
break;
case 302: // class_or_interface_keyword -> tkTemplate, tkInterface
{
CurrentSemanticValue.ti = NewClassOrInterfaceKeyword(ValueStack[ValueStack.Depth-2].ti, "i", CurrentLocationSpan);
}
break;
case 303: // optional_component_list_seq_end -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 304: // optional_component_list_seq_end -> member_list_section, tkEnd
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn;
CurrentSemanticValue.stn.source_context = CurrentLocationSpan;
}
break;
case 306: // optional_base_classes -> tkRoundOpen, base_classes_names_list, tkRoundClose
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; }
break;
case 307: // base_classes_names_list -> base_class_name
{
CurrentSemanticValue.stn = new named_type_reference_list(ValueStack[ValueStack.Depth-1].stn as named_type_reference, CurrentLocationSpan);
}
break;
case 308: // base_classes_names_list -> base_classes_names_list, tkComma, base_class_name
{
CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as named_type_reference_list).Add(ValueStack[ValueStack.Depth-1].stn as named_type_reference, CurrentLocationSpan);
}
break;
case 309: // base_class_name -> simple_type_identifier
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].td; }
break;
case 310: // base_class_name -> template_type
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].td; }
break;
case 311: // template_arguments -> tkLower, ident_list, tkGreater
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn;
CurrentSemanticValue.stn.source_context = CurrentLocationSpan;
}
break;
case 312: // optional_where_section -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 313: // optional_where_section -> where_part_list
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 314: // where_part_list -> where_part
{
CurrentSemanticValue.stn = new where_definition_list(ValueStack[ValueStack.Depth-1].stn as where_definition, CurrentLocationSpan);
}
break;
case 315: // where_part_list -> where_part_list, where_part
{
CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-2].stn as where_definition_list).Add(ValueStack[ValueStack.Depth-1].stn as where_definition, CurrentLocationSpan);
}
break;
case 316: // where_part -> tkWhere, ident_list, tkColon, type_ref_and_secific_list,
// tkSemiColon
{
CurrentSemanticValue.stn = new where_definition(ValueStack[ValueStack.Depth-4].stn as ident_list, ValueStack[ValueStack.Depth-2].stn as where_type_specificator_list, CurrentLocationSpan);
}
break;
case 317: // type_ref_and_secific_list -> type_ref_or_secific
{
CurrentSemanticValue.stn = new where_type_specificator_list(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan);
}
break;
case 318: // type_ref_and_secific_list -> type_ref_and_secific_list, tkComma,
// type_ref_or_secific
{
CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as where_type_specificator_list).Add(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan);
}
break;
case 319: // type_ref_or_secific -> type_ref
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 320: // type_ref_or_secific -> tkClass
{
CurrentSemanticValue.td = new declaration_specificator(DeclarationSpecificator.WhereDefClass, ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan);
}
break;
case 321: // type_ref_or_secific -> tkRecord
{
CurrentSemanticValue.td = new declaration_specificator(DeclarationSpecificator.WhereDefValueType, ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan);
}
break;
case 322: // type_ref_or_secific -> tkConstructor
{
CurrentSemanticValue.td = new declaration_specificator(DeclarationSpecificator.WhereDefConstructor, ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan);
}
break;
case 323: // member_list_section -> member_list
{
CurrentSemanticValue.stn = new class_body_list(ValueStack[ValueStack.Depth-1].stn as class_members, CurrentLocationSpan);
}
break;
case 324: // member_list_section -> member_list_section, ot_visibility_specifier,
// member_list
{
(ValueStack[ValueStack.Depth-1].stn as class_members).access_mod = ValueStack[ValueStack.Depth-2].stn as access_modifer_node;
(ValueStack[ValueStack.Depth-3].stn as class_body_list).Add(ValueStack[ValueStack.Depth-1].stn as class_members,CurrentLocationSpan);
if ((ValueStack[ValueStack.Depth-3].stn as class_body_list).class_def_blocks[0].Count == 0)
(ValueStack[ValueStack.Depth-3].stn as class_body_list).class_def_blocks.RemoveAt(0);
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-3].stn;
}
break;
case 325: // ot_visibility_specifier -> tkInternal
{ CurrentSemanticValue.stn = new access_modifer_node(access_modifer.internal_modifer, CurrentLocationSpan); }
break;
case 326: // ot_visibility_specifier -> tkPublic
{ CurrentSemanticValue.stn = new access_modifer_node(access_modifer.public_modifer, CurrentLocationSpan); }
break;
case 327: // ot_visibility_specifier -> tkProtected
{ CurrentSemanticValue.stn = new access_modifer_node(access_modifer.protected_modifer, CurrentLocationSpan); }
break;
case 328: // ot_visibility_specifier -> tkPrivate
{ CurrentSemanticValue.stn = new access_modifer_node(access_modifer.private_modifer, CurrentLocationSpan); }
break;
case 329: // member_list -> /* empty */
{ CurrentSemanticValue.stn = new class_members(); }
break;
case 330: // member_list -> field_or_const_definition_list, optional_semicolon
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; }
break;
case 331: // member_list -> method_decl_list
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 332: // member_list -> field_or_const_definition_list, tkSemiColon, method_decl_list
{
(ValueStack[ValueStack.Depth-3].stn as class_members).members.AddRange((ValueStack[ValueStack.Depth-1].stn as class_members).members);
(ValueStack[ValueStack.Depth-3].stn as class_members).source_context = CurrentLocationSpan;
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-3].stn;
}
break;
case 333: // ident_list -> identifier
{
CurrentSemanticValue.stn = new ident_list(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan);
}
break;
case 334: // ident_list -> ident_list, tkComma, identifier
{
CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as ident_list).Add(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan);
}
break;
case 335: // optional_semicolon -> /* empty */
{ CurrentSemanticValue.ob = null; }
break;
case 336: // optional_semicolon -> tkSemiColon
{ CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-1].ti; }
break;
case 337: // field_or_const_definition_list -> field_or_const_definition
{
CurrentSemanticValue.stn = new class_members(ValueStack[ValueStack.Depth-1].stn as declaration, CurrentLocationSpan);
}
break;
case 338: // field_or_const_definition_list -> field_or_const_definition_list, tkSemiColon,
// field_or_const_definition
{
CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as class_members).Add(ValueStack[ValueStack.Depth-1].stn as declaration, CurrentLocationSpan);
}
break;
case 339: // field_or_const_definition -> attribute_declarations,
// simple_field_or_const_definition
{
(ValueStack[ValueStack.Depth-1].stn as declaration).attributes = ValueStack[ValueStack.Depth-2].stn as attribute_list;
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
}
break;
case 340: // method_decl_list -> method_or_property_decl
{
CurrentSemanticValue.stn = new class_members(ValueStack[ValueStack.Depth-1].stn as declaration, CurrentLocationSpan);
}
break;
case 341: // method_decl_list -> method_decl_list, method_or_property_decl
{
CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-2].stn as class_members).Add(ValueStack[ValueStack.Depth-1].stn as declaration, CurrentLocationSpan);
}
break;
case 342: // method_or_property_decl -> method_decl_withattr
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 343: // method_or_property_decl -> property_definition
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 344: // simple_field_or_const_definition -> tkConst, only_const_decl
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
CurrentSemanticValue.stn.source_context = CurrentLocationSpan;
}
break;
case 345: // simple_field_or_const_definition -> field_definition
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 346: // simple_field_or_const_definition -> class_or_static, field_definition
{
(ValueStack[ValueStack.Depth-1].stn as var_def_statement).var_attr = definition_attribute.Static;
(ValueStack[ValueStack.Depth-1].stn as var_def_statement).source_context = CurrentLocationSpan;
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
}
break;
case 347: // class_or_static -> tkStatic
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 348: // class_or_static -> tkClass
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 349: // field_definition -> var_decl_part
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 350: // field_definition -> tkEvent, ident_list, tkColon, type_ref
{
CurrentSemanticValue.stn = new var_def_statement(ValueStack[ValueStack.Depth-3].stn as ident_list, ValueStack[ValueStack.Depth-1].td, null, definition_attribute.None, true, CurrentLocationSpan);
}
break;
case 351: // method_decl_withattr -> attribute_declarations, method_header
{
(ValueStack[ValueStack.Depth-1].td as declaration).attributes = ValueStack[ValueStack.Depth-2].stn as attribute_list;
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].td;
}
break;
case 352: // method_decl_withattr -> attribute_declarations, method_decl
{
(ValueStack[ValueStack.Depth-1].stn as declaration).attributes = ValueStack[ValueStack.Depth-2].stn as attribute_list;
if (ValueStack[ValueStack.Depth-1].stn is procedure_definition && (ValueStack[ValueStack.Depth-1].stn as procedure_definition).proc_header != null)
(ValueStack[ValueStack.Depth-1].stn as procedure_definition).proc_header.attributes = ValueStack[ValueStack.Depth-2].stn as attribute_list;
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
}
break;
case 353: // method_decl -> inclass_proc_func_decl
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 354: // method_decl -> inclass_constr_destr_decl
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 355: // method_header -> class_or_static, method_procfunc_header
{
(ValueStack[ValueStack.Depth-1].td as procedure_header).class_keyword = true;
CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td;
}
break;
case 356: // method_header -> method_procfunc_header
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 357: // method_header -> constr_destr_header
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 358: // method_procfunc_header -> proc_func_header
{
CurrentSemanticValue.td = NewProcfuncHeading(ValueStack[ValueStack.Depth-1].td as procedure_header);
}
break;
case 359: // proc_func_header -> proc_header
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 360: // proc_func_header -> func_header
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 361: // constr_destr_header -> tkConstructor, optional_proc_name, fp_list,
// optional_method_modificators
{
CurrentSemanticValue.td = new constructor(null,ValueStack[ValueStack.Depth-2].stn as formal_parameters,ValueStack[ValueStack.Depth-1].stn as procedure_attributes_list,ValueStack[ValueStack.Depth-3].stn as method_name,false,false,null,null,CurrentLocationSpan);
}
break;
case 362: // constr_destr_header -> class_or_static, tkConstructor, optional_proc_name,
// fp_list, optional_method_modificators
{
CurrentSemanticValue.td = new constructor(null,ValueStack[ValueStack.Depth-2].stn as formal_parameters,ValueStack[ValueStack.Depth-1].stn as procedure_attributes_list,ValueStack[ValueStack.Depth-3].stn as method_name,false,true,null,null,CurrentLocationSpan);
}
break;
case 363: // constr_destr_header -> tkDestructor, optional_proc_name, fp_list,
// optional_method_modificators
{
CurrentSemanticValue.td = new destructor(null,ValueStack[ValueStack.Depth-2].stn as formal_parameters,ValueStack[ValueStack.Depth-1].stn as procedure_attributes_list,ValueStack[ValueStack.Depth-3].stn as method_name, false,false,null,null,CurrentLocationSpan);
}
break;
case 364: // optional_proc_name -> proc_name
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 365: // optional_proc_name -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 366: // qualified_identifier -> identifier
{ CurrentSemanticValue.stn = new method_name(null,null,ValueStack[ValueStack.Depth-1].id,null,CurrentLocationSpan); }
break;
case 367: // qualified_identifier -> visibility_specifier
{ CurrentSemanticValue.stn = new method_name(null,null,ValueStack[ValueStack.Depth-1].id,null,CurrentLocationSpan); }
break;
case 368: // qualified_identifier -> qualified_identifier, tkPoint, identifier
{
CurrentSemanticValue.stn = NewQualifiedIdentifier(ValueStack[ValueStack.Depth-3].stn as method_name, ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan);
}
break;
case 369: // qualified_identifier -> qualified_identifier, tkPoint, visibility_specifier
{
CurrentSemanticValue.stn = NewQualifiedIdentifier(ValueStack[ValueStack.Depth-3].stn as method_name, ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan);
}
break;
case 370: // property_definition -> attribute_declarations, simple_property_definition
{
CurrentSemanticValue.stn = NewPropertyDefinition(ValueStack[ValueStack.Depth-2].stn as attribute_list, ValueStack[ValueStack.Depth-1].stn as declaration, LocationStack[LocationStack.Depth-1]);
}
break;
case 371: // simple_property_definition -> tkProperty, qualified_identifier,
// property_interface, property_specifiers,
// tkSemiColon, array_defaultproperty
{
CurrentSemanticValue.stn = NewSimplePropertyDefinition(ValueStack[ValueStack.Depth-5].stn as method_name, ValueStack[ValueStack.Depth-4].stn as property_interface, ValueStack[ValueStack.Depth-3].stn as property_accessors, proc_attribute.attr_none, ValueStack[ValueStack.Depth-1].stn as property_array_default, CurrentLocationSpan);
}
break;
case 372: // simple_property_definition -> tkProperty, qualified_identifier,
// property_interface, property_specifiers,
// tkSemiColon, property_modificator, tkSemiColon,
// array_defaultproperty
{
proc_attribute pa = proc_attribute.attr_none;
if (ValueStack[ValueStack.Depth-3].id.name.ToLower() == "virtual")
pa = proc_attribute.attr_virtual;
else if (ValueStack[ValueStack.Depth-3].id.name.ToLower() == "override")
pa = proc_attribute.attr_override;
else if (ValueStack[ValueStack.Depth-3].id.name.ToLower() == "abstract")
pa = proc_attribute.attr_abstract;
CurrentSemanticValue.stn = NewSimplePropertyDefinition(ValueStack[ValueStack.Depth-7].stn as method_name, ValueStack[ValueStack.Depth-6].stn as property_interface, ValueStack[ValueStack.Depth-5].stn as property_accessors, pa, ValueStack[ValueStack.Depth-1].stn as property_array_default, CurrentLocationSpan);
}
break;
case 373: // simple_property_definition -> class_or_static, tkProperty, qualified_identifier,
// property_interface, property_specifiers,
// tkSemiColon, array_defaultproperty
{
CurrentSemanticValue.stn = NewSimplePropertyDefinition(ValueStack[ValueStack.Depth-5].stn as method_name, ValueStack[ValueStack.Depth-4].stn as property_interface, ValueStack[ValueStack.Depth-3].stn as property_accessors, proc_attribute.attr_none, ValueStack[ValueStack.Depth-1].stn as property_array_default, CurrentLocationSpan);
(CurrentSemanticValue.stn as simple_property).attr = definition_attribute.Static;
}
break;
case 374: // simple_property_definition -> class_or_static, tkProperty, qualified_identifier,
// property_interface, property_specifiers,
// tkSemiColon, property_modificator, tkSemiColon,
// array_defaultproperty
{
parsertools.AddErrorFromResource("STATIC_PROPERTIES_CANNOT_HAVE_ATTRBUTE_{0}",LocationStack[LocationStack.Depth-3],ValueStack[ValueStack.Depth-3].id.name);
}
break;
case 375: // simple_property_definition -> tkAuto, tkProperty, qualified_identifier,
// property_interface,
// optional_property_initialization, tkSemiColon
{
CurrentSemanticValue.stn = NewSimplePropertyDefinition(ValueStack[ValueStack.Depth-4].stn as method_name, ValueStack[ValueStack.Depth-3].stn as property_interface, null, proc_attribute.attr_none, null, CurrentLocationSpan);
(CurrentSemanticValue.stn as simple_property).is_auto = true;
(CurrentSemanticValue.stn as simple_property).initial_value = ValueStack[ValueStack.Depth-2].ex;
}
break;
case 376: // simple_property_definition -> class_or_static, tkAuto, tkProperty,
// qualified_identifier, property_interface,
// optional_property_initialization, tkSemiColon
{
CurrentSemanticValue.stn = NewSimplePropertyDefinition(ValueStack[ValueStack.Depth-4].stn as method_name, ValueStack[ValueStack.Depth-3].stn as property_interface, null, proc_attribute.attr_none, null, CurrentLocationSpan);
(CurrentSemanticValue.stn as simple_property).is_auto = true;
(CurrentSemanticValue.stn as simple_property).attr = definition_attribute.Static;
(CurrentSemanticValue.stn as simple_property).initial_value = ValueStack[ValueStack.Depth-2].ex;
}
break;
case 377: // optional_property_initialization -> tkAssign, expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 378: // optional_property_initialization -> /* empty */
{ CurrentSemanticValue.ex = null; }
break;
case 379: // array_defaultproperty -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 380: // array_defaultproperty -> tkDefault, tkSemiColon
{
CurrentSemanticValue.stn = new property_array_default();
CurrentSemanticValue.stn.source_context = CurrentLocationSpan;
}
break;
case 381: // property_interface -> property_parameter_list, tkColon, fptype
{
CurrentSemanticValue.stn = new property_interface(ValueStack[ValueStack.Depth-3].stn as property_parameter_list, ValueStack[ValueStack.Depth-1].td, null, CurrentLocationSpan);
}
break;
case 382: // property_parameter_list -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 383: // property_parameter_list -> tkSquareOpen, parameter_decl_list, tkSquareClose
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; }
break;
case 384: // parameter_decl_list -> parameter_decl
{
CurrentSemanticValue.stn = new property_parameter_list(ValueStack[ValueStack.Depth-1].stn as property_parameter, CurrentLocationSpan);
}
break;
case 385: // parameter_decl_list -> parameter_decl_list, tkSemiColon, parameter_decl
{
CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as property_parameter_list).Add(ValueStack[ValueStack.Depth-1].stn as property_parameter, CurrentLocationSpan);
}
break;
case 386: // parameter_decl -> ident_list, tkColon, fptype
{
CurrentSemanticValue.stn = new property_parameter(ValueStack[ValueStack.Depth-3].stn as ident_list, ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan);
}
break;
case 387: // optional_read_expr -> expr_with_func_decl_lambda
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 388: // optional_read_expr -> /* empty */
{ CurrentSemanticValue.ex = null; }
break;
case 390: // property_specifiers -> tkRead, optional_read_expr, write_property_specifiers
{
if (ValueStack[ValueStack.Depth-2].ex == null || ValueStack[ValueStack.Depth-2].ex is ident) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
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><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
var id = NewId("#GetGen", LocationStack[LocationStack.Depth-2]);
procedure_definition pr = null;
if (!parsertools.build_tree_for_formatter)
pr = CreateAndAddToClassReadFunc(ValueStack[ValueStack.Depth-2].ex, id, LocationStack[LocationStack.Depth-2]);
CurrentSemanticValue.stn = NewPropertySpecifiersRead(ValueStack[ValueStack.Depth-3].id, id, pr, ValueStack[ValueStack.Depth-2].ex, ValueStack[ValueStack.Depth-1].stn as property_accessors, CurrentLocationSpan); // $2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
}
break;
case 391: // property_specifiers -> tkWrite, unlabelled_stmt, read_property_specifiers
{
if (ValueStack[ValueStack.Depth-2].stn is empty_statement)
{
CurrentSemanticValue.stn = NewPropertySpecifiersWrite(ValueStack[ValueStack.Depth-3].id, null, null, null, ValueStack[ValueStack.Depth-1].stn as property_accessors, CurrentLocationSpan);
}
else if (ValueStack[ValueStack.Depth-2].stn is procedure_call && (ValueStack[ValueStack.Depth-2].stn as procedure_call).is_ident) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
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); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
else // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
var id = NewId("#SetGen", LocationStack[LocationStack.Depth-2]);
procedure_definition pr = null;
if (!parsertools.build_tree_for_formatter)
pr = CreateAndAddToClassWriteProc(ValueStack[ValueStack.Depth-2].stn as statement,id,LocationStack[LocationStack.Depth-2]);
if (parsertools.build_tree_for_formatter)
CurrentSemanticValue.stn = NewPropertySpecifiersWrite(ValueStack[ValueStack.Depth-3].id, id, pr, ValueStack[ValueStack.Depth-2].stn as statement, ValueStack[ValueStack.Depth-1].stn as property_accessors, CurrentLocationSpan); // $2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
else CurrentSemanticValue.stn = NewPropertySpecifiersWrite(ValueStack[ValueStack.Depth-3].id, id, pr, null, ValueStack[ValueStack.Depth-1].stn as property_accessors, CurrentLocationSpan);
}
}
break;
case 393: // write_property_specifiers -> tkWrite, unlabelled_stmt
{
if (ValueStack[ValueStack.Depth-1].stn is empty_statement)
{
CurrentSemanticValue.stn = NewPropertySpecifiersWrite(ValueStack[ValueStack.Depth-2].id, null, null, null, null, CurrentLocationSpan);
}
else if (ValueStack[ValueStack.Depth-1].stn is procedure_call && (ValueStack[ValueStack.Depth-1].stn as procedure_call).is_ident)
{
CurrentSemanticValue.stn = NewPropertySpecifiersWrite(ValueStack[ValueStack.Depth-2].id, (ValueStack[ValueStack.Depth-1].stn as procedure_call).func_name as ident, null, null, null, CurrentLocationSpan); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
else
{
var id = NewId("#SetGen", LocationStack[LocationStack.Depth-1]);
procedure_definition pr = null;
if (!parsertools.build_tree_for_formatter)
pr = CreateAndAddToClassWriteProc(ValueStack[ValueStack.Depth-1].stn as statement,id,LocationStack[LocationStack.Depth-1]);
if (parsertools.build_tree_for_formatter)
CurrentSemanticValue.stn = NewPropertySpecifiersWrite(ValueStack[ValueStack.Depth-2].id, id, pr, ValueStack[ValueStack.Depth-1].stn as statement, null, CurrentLocationSpan);
else CurrentSemanticValue.stn = NewPropertySpecifiersWrite(ValueStack[ValueStack.Depth-2].id, id, pr, null, null, CurrentLocationSpan);
}
}
break;
case 395: // read_property_specifiers -> tkRead, optional_read_expr
{
if (ValueStack[ValueStack.Depth-1].ex == null || ValueStack[ValueStack.Depth-1].ex is ident)
{
CurrentSemanticValue.stn = NewPropertySpecifiersRead(ValueStack[ValueStack.Depth-2].id, ValueStack[ValueStack.Depth-1].ex as ident, null, null, null, CurrentLocationSpan);
}
else
{
var id = NewId("#GetGen", LocationStack[LocationStack.Depth-1]);
procedure_definition pr = null;
if (!parsertools.build_tree_for_formatter)
pr = CreateAndAddToClassReadFunc(ValueStack[ValueStack.Depth-1].ex,id,LocationStack[LocationStack.Depth-1]);
CurrentSemanticValue.stn = NewPropertySpecifiersRead(ValueStack[ValueStack.Depth-2].id, id, pr, ValueStack[ValueStack.Depth-1].ex, null, CurrentLocationSpan);
}
}
break;
case 396: // var_decl -> var_decl_part, tkSemiColon
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; }
break;
case 399: // var_decl_part -> ident_list, tkColon, type_ref
{
CurrentSemanticValue.stn = new var_def_statement(ValueStack[ValueStack.Depth-3].stn as ident_list, ValueStack[ValueStack.Depth-1].td, null, definition_attribute.None, false, CurrentLocationSpan);
}
break;
case 400: // var_decl_part -> ident_list, tkAssign, expr_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 401: // var_decl_part -> ident_list, tkColon, type_ref, tkAssignOrEqual,
// typed_var_init_expression
{
CurrentSemanticValue.stn = new var_def_statement(ValueStack[ValueStack.Depth-5].stn as ident_list, ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].ex, definition_attribute.None, false, CurrentLocationSpan);
}
break;
case 402: // typed_var_init_expression -> typed_const_plus
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 403: // typed_var_init_expression -> expl_func_decl_lambda
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 404: // typed_var_init_expression -> identifier, tkArrow, lambda_function_body
{
var idList = new ident_list(ValueStack[ValueStack.Depth-3].id, LocationStack[LocationStack.Depth-3]);
var formalPars = new formal_parameters(new typed_parameters(idList, new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), LocationStack[LocationStack.Depth-3]), parametr_kind.none, null, LocationStack[LocationStack.Depth-3]), LocationStack[LocationStack.Depth-3]);
CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), LocationStack[LocationStack.Depth-3]), ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan);
}
break;
case 405: // typed_var_init_expression -> tkRoundOpen, tkRoundClose, lambda_type_ref,
// tkArrow, lambda_function_body
{
CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), null, ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan);
}
break;
case 406: // typed_var_init_expression -> tkRoundOpen, typed_const_list, tkRoundClose,
// tkArrow, lambda_function_body
{
var el = ValueStack[ValueStack.Depth-4].stn as expression_list;
var cnt = el.Count;
var idList = new ident_list();
idList.source_context = LocationStack[LocationStack.Depth-4];
for (int j = 0; j < cnt; j++)
{
if (!(el.expressions[j] is ident))
parsertools.AddErrorFromResource("ONE_TKIDENTIFIER",el.expressions[j].source_context);
idList.idents.Add(el.expressions[j] as ident);
}
var any = new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), LocationStack[LocationStack.Depth-4]);
var formalPars = new formal_parameters(new typed_parameters(idList, any, parametr_kind.none, null, LocationStack[LocationStack.Depth-4]), LocationStack[LocationStack.Depth-4]);
CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, any, ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan);
}
break;
case 407: // typed_const_plus -> typed_const
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 408: // typed_const_plus -> default_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 409: // constr_destr_decl -> constr_destr_header, block
{
CurrentSemanticValue.stn = new procedure_definition(ValueStack[ValueStack.Depth-2].td as procedure_header, ValueStack[ValueStack.Depth-1].stn as block, CurrentLocationSpan);
}
break;
case 410: // constr_destr_decl -> tkConstructor, optional_proc_name, fp_list, tkAssign,
// unlabelled_stmt, tkSemiColon
{
if (ValueStack[ValueStack.Depth-2].stn is empty_statement)
parsertools.AddErrorFromResource("EMPTY_STATEMENT_IN_SHORT_PROC_DEFINITION",LocationStack[LocationStack.Depth-1]);
var tmp = new constructor(null,ValueStack[ValueStack.Depth-4].stn as formal_parameters,new procedure_attributes_list(new List<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.build_tree_for_formatter)
CurrentSemanticValue.stn = new short_func_definition(CurrentSemanticValue.stn as procedure_definition);
}
break;
case 411: // constr_destr_decl -> class_or_static, tkConstructor, optional_proc_name,
// fp_list, tkAssign, unlabelled_stmt, tkSemiColon
{
if (ValueStack[ValueStack.Depth-2].stn is empty_statement)
parsertools.AddErrorFromResource("EMPTY_STATEMENT_IN_SHORT_PROC_DEFINITION",LocationStack[LocationStack.Depth-1]);
var tmp = new constructor(null,ValueStack[ValueStack.Depth-4].stn as formal_parameters,new procedure_attributes_list(new List<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.build_tree_for_formatter)
CurrentSemanticValue.stn = new short_func_definition(CurrentSemanticValue.stn as procedure_definition);
}
break;
case 412: // inclass_constr_destr_decl -> constr_destr_header, inclass_block
{
CurrentSemanticValue.stn = new procedure_definition(ValueStack[ValueStack.Depth-2].td as procedure_header, ValueStack[ValueStack.Depth-1].stn as block, CurrentLocationSpan);
}
break;
case 413: // inclass_constr_destr_decl -> tkConstructor, optional_proc_name, fp_list,
// tkAssign, unlabelled_stmt, tkSemiColon
{
if (ValueStack[ValueStack.Depth-2].stn is empty_statement)
parsertools.AddErrorFromResource("EMPTY_STATEMENT_IN_SHORT_PROC_DEFINITION",LocationStack[LocationStack.Depth-1]);
var tmp = new constructor(null,ValueStack[ValueStack.Depth-4].stn as formal_parameters,new procedure_attributes_list(new List<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.build_tree_for_formatter)
CurrentSemanticValue.stn = new short_func_definition(CurrentSemanticValue.stn as procedure_definition);
}
break;
case 414: // inclass_constr_destr_decl -> class_or_static, tkConstructor, optional_proc_name,
// fp_list, tkAssign, unlabelled_stmt, tkSemiColon
{
if (ValueStack[ValueStack.Depth-2].stn is empty_statement)
parsertools.AddErrorFromResource("EMPTY_STATEMENT_IN_SHORT_PROC_DEFINITION",LocationStack[LocationStack.Depth-1]);
var tmp = new constructor(null,ValueStack[ValueStack.Depth-4].stn as formal_parameters,new procedure_attributes_list(new List<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.build_tree_for_formatter)
CurrentSemanticValue.stn = new short_func_definition(CurrentSemanticValue.stn as procedure_definition);
}
break;
case 415: // proc_func_decl -> proc_func_decl_noclass
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 416: // proc_func_decl -> class_or_static, proc_func_decl_noclass
{
(ValueStack[ValueStack.Depth-1].stn as procedure_definition).proc_header.class_keyword = true;
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
}
break;
case 417: // proc_func_decl_noclass -> proc_func_header, proc_func_external_block
{
CurrentSemanticValue.stn = new procedure_definition(ValueStack[ValueStack.Depth-2].td as procedure_header, ValueStack[ValueStack.Depth-1].stn as proc_block, CurrentLocationSpan);
}
break;
case 418: // proc_func_decl_noclass -> tkFunction, func_name, fp_list, tkColon, fptype,
// optional_method_modificators1, tkAssign, expr_l1,
// tkSemiColon
{
CurrentSemanticValue.stn = SyntaxTreeBuilder.BuildShortFuncDefinition(ValueStack[ValueStack.Depth-7].stn as formal_parameters, ValueStack[ValueStack.Depth-4].stn as procedure_attributes_list, ValueStack[ValueStack.Depth-8].stn as method_name, ValueStack[ValueStack.Depth-5].td as type_definition, ValueStack[ValueStack.Depth-2].ex, LocationStack[LocationStack.Depth-9].Merge(LocationStack[LocationStack.Depth-4]));
}
break;
case 419: // proc_func_decl_noclass -> tkFunction, func_name, fp_list,
// optional_method_modificators1, tkAssign, expr_l1,
// tkSemiColon
{
if (ValueStack[ValueStack.Depth-2].ex is dot_question_node)
parsertools.AddErrorFromResource("DOT_QUECTION_IN_SHORT_FUN",LocationStack[LocationStack.Depth-2]);
CurrentSemanticValue.stn = SyntaxTreeBuilder.BuildShortFuncDefinition(ValueStack[ValueStack.Depth-5].stn as formal_parameters, ValueStack[ValueStack.Depth-4].stn as procedure_attributes_list, ValueStack[ValueStack.Depth-6].stn as method_name, null, ValueStack[ValueStack.Depth-2].ex, LocationStack[LocationStack.Depth-7].Merge(LocationStack[LocationStack.Depth-4]));
}
break;
case 420: // proc_func_decl_noclass -> tkFunction, func_name, fp_list, tkColon, fptype,
// optional_method_modificators1, tkAssign,
// func_decl_lambda, tkSemiColon
{
CurrentSemanticValue.stn = SyntaxTreeBuilder.BuildShortFuncDefinition(ValueStack[ValueStack.Depth-7].stn as formal_parameters, ValueStack[ValueStack.Depth-4].stn as procedure_attributes_list, ValueStack[ValueStack.Depth-8].stn as method_name, ValueStack[ValueStack.Depth-5].td as type_definition, ValueStack[ValueStack.Depth-2].ex, LocationStack[LocationStack.Depth-9].Merge(LocationStack[LocationStack.Depth-4]));
}
break;
case 421: // proc_func_decl_noclass -> tkFunction, func_name, fp_list,
// optional_method_modificators1, tkAssign,
// func_decl_lambda, tkSemiColon
{
CurrentSemanticValue.stn = SyntaxTreeBuilder.BuildShortFuncDefinition(ValueStack[ValueStack.Depth-5].stn as formal_parameters, ValueStack[ValueStack.Depth-4].stn as procedure_attributes_list, ValueStack[ValueStack.Depth-6].stn as method_name, null, ValueStack[ValueStack.Depth-2].ex, LocationStack[LocationStack.Depth-7].Merge(LocationStack[LocationStack.Depth-4]));
}
break;
case 422: // proc_func_decl_noclass -> tkProcedure, proc_name, fp_list,
// optional_method_modificators1, tkAssign,
// unlabelled_stmt, tkSemiColon
{
if (ValueStack[ValueStack.Depth-2].stn is empty_statement)
parsertools.AddErrorFromResource("EMPTY_STATEMENT_IN_SHORT_PROC_DEFINITION",LocationStack[LocationStack.Depth-2]);
CurrentSemanticValue.stn = SyntaxTreeBuilder.BuildShortProcDefinition(ValueStack[ValueStack.Depth-5].stn as formal_parameters, ValueStack[ValueStack.Depth-4].stn as procedure_attributes_list, ValueStack[ValueStack.Depth-6].stn as method_name, ValueStack[ValueStack.Depth-2].stn as statement, LocationStack[LocationStack.Depth-7].Merge(LocationStack[LocationStack.Depth-4]));
}
break;
case 423: // proc_func_decl_noclass -> proc_func_header, tkForward, tkSemiColon
{
CurrentSemanticValue.stn = new procedure_definition(ValueStack[ValueStack.Depth-3].td as procedure_header, null, CurrentLocationSpan);
(CurrentSemanticValue.stn as procedure_definition).proc_header.proc_attributes.Add((procedure_attribute)ValueStack[ValueStack.Depth-2].id, ValueStack[ValueStack.Depth-2].id.source_context);
}
break;
case 424: // inclass_proc_func_decl -> inclass_proc_func_decl_noclass
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
}
break;
case 425: // inclass_proc_func_decl -> class_or_static, inclass_proc_func_decl_noclass
{
if ((ValueStack[ValueStack.Depth-1].stn as procedure_definition).proc_header != null)
(ValueStack[ValueStack.Depth-1].stn as procedure_definition).proc_header.class_keyword = true;
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
}
break;
case 426: // inclass_proc_func_decl_noclass -> proc_func_header, inclass_block
{
CurrentSemanticValue.stn = new procedure_definition(ValueStack[ValueStack.Depth-2].td as procedure_header, ValueStack[ValueStack.Depth-1].stn as proc_block, CurrentLocationSpan);
}
break;
case 427: // inclass_proc_func_decl_noclass -> tkFunction, func_name, fp_list, tkColon,
// fptype, optional_method_modificators1,
// tkAssign, expr_l1_func_decl_lambda,
// tkSemiColon
{
CurrentSemanticValue.stn = SyntaxTreeBuilder.BuildShortFuncDefinition(ValueStack[ValueStack.Depth-7].stn as formal_parameters, ValueStack[ValueStack.Depth-4].stn as procedure_attributes_list, ValueStack[ValueStack.Depth-8].stn as method_name, ValueStack[ValueStack.Depth-5].td as type_definition, ValueStack[ValueStack.Depth-2].ex, LocationStack[LocationStack.Depth-9].Merge(LocationStack[LocationStack.Depth-4]));
if (parsertools.build_tree_for_formatter)
CurrentSemanticValue.stn = new short_func_definition(CurrentSemanticValue.stn as procedure_definition);
}
break;
case 428: // inclass_proc_func_decl_noclass -> tkFunction, func_name, fp_list,
// optional_method_modificators1, tkAssign,
// expr_l1_func_decl_lambda, tkSemiColon
{
CurrentSemanticValue.stn = SyntaxTreeBuilder.BuildShortFuncDefinition(ValueStack[ValueStack.Depth-5].stn as formal_parameters, ValueStack[ValueStack.Depth-4].stn as procedure_attributes_list, ValueStack[ValueStack.Depth-6].stn as method_name, null, ValueStack[ValueStack.Depth-2].ex, LocationStack[LocationStack.Depth-7].Merge(LocationStack[LocationStack.Depth-4]));
if (parsertools.build_tree_for_formatter)
CurrentSemanticValue.stn = new short_func_definition(CurrentSemanticValue.stn as procedure_definition);
}
break;
case 429: // inclass_proc_func_decl_noclass -> tkProcedure, proc_name, fp_list,
// optional_method_modificators1, tkAssign,
// unlabelled_stmt, tkSemiColon
{
CurrentSemanticValue.stn = SyntaxTreeBuilder.BuildShortProcDefinition(ValueStack[ValueStack.Depth-5].stn as formal_parameters, ValueStack[ValueStack.Depth-4].stn as procedure_attributes_list, ValueStack[ValueStack.Depth-6].stn as method_name, ValueStack[ValueStack.Depth-2].stn as statement, LocationStack[LocationStack.Depth-7].Merge(LocationStack[LocationStack.Depth-4]));
if (parsertools.build_tree_for_formatter)
CurrentSemanticValue.stn = new short_func_definition(CurrentSemanticValue.stn as procedure_definition);
}
break;
case 430: // proc_func_external_block -> block
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 431: // proc_func_external_block -> external_block
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 432: // proc_name -> func_name
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 433: // func_name -> func_meth_name_ident
{
CurrentSemanticValue.stn = new method_name(null,null, ValueStack[ValueStack.Depth-1].id, null, CurrentLocationSpan);
}
break;
case 434: // func_name -> func_class_name_ident_list, tkPoint, func_meth_name_ident
{
var ln = ValueStack[ValueStack.Depth-3].ob as List<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 435: // func_class_name_ident -> func_name_with_template_args
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 436: // func_class_name_ident_list -> func_class_name_ident
{
CurrentSemanticValue.ob = new List<ident>();
(CurrentSemanticValue.ob as List<ident>).Add(ValueStack[ValueStack.Depth-1].id);
}
break;
case 437: // func_class_name_ident_list -> func_class_name_ident_list, tkPoint,
// func_class_name_ident
{
(ValueStack[ValueStack.Depth-3].ob as List<ident>).Add(ValueStack[ValueStack.Depth-1].id);
CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-3].ob;
}
break;
case 438: // func_meth_name_ident -> func_name_with_template_args
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 439: // func_meth_name_ident -> operator_name_ident
{ CurrentSemanticValue.id = (ident)ValueStack[ValueStack.Depth-1].ex; }
break;
case 440: // func_meth_name_ident -> operator_name_ident, template_arguments
{ CurrentSemanticValue.id = new template_operator_name(null, ValueStack[ValueStack.Depth-1].stn as ident_list, ValueStack[ValueStack.Depth-2].ex as operator_name_ident, CurrentLocationSpan); }
break;
case 441: // func_name_with_template_args -> func_name_ident
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 442: // func_name_with_template_args -> func_name_ident, template_arguments
{
CurrentSemanticValue.id = new template_type_name(ValueStack[ValueStack.Depth-2].id.name, ValueStack[ValueStack.Depth-1].stn as ident_list, CurrentLocationSpan);
}
break;
case 443: // func_name_ident -> identifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 444: // proc_header -> tkProcedure, proc_name, fp_list, optional_method_modificators,
// optional_where_section
{
CurrentSemanticValue.td = new procedure_header(ValueStack[ValueStack.Depth-3].stn as formal_parameters, ValueStack[ValueStack.Depth-2].stn as procedure_attributes_list, ValueStack[ValueStack.Depth-4].stn as method_name, ValueStack[ValueStack.Depth-1].stn as where_definition_list, CurrentLocationSpan);
}
break;
case 445: // func_header -> tkFunction, func_name, fp_list, optional_method_modificators,
// optional_where_section
{
CurrentSemanticValue.td = new function_header(ValueStack[ValueStack.Depth-3].stn as formal_parameters, ValueStack[ValueStack.Depth-2].stn as procedure_attributes_list, ValueStack[ValueStack.Depth-4].stn as method_name, ValueStack[ValueStack.Depth-1].stn as where_definition_list, null, CurrentLocationSpan);
}
break;
case 446: // func_header -> tkFunction, func_name, fp_list, tkColon, fptype,
// optional_method_modificators, optional_where_section
{
CurrentSemanticValue.td = new function_header(ValueStack[ValueStack.Depth-5].stn as formal_parameters, ValueStack[ValueStack.Depth-2].stn as procedure_attributes_list, ValueStack[ValueStack.Depth-6].stn as method_name, ValueStack[ValueStack.Depth-1].stn as where_definition_list, ValueStack[ValueStack.Depth-3].td as type_definition, CurrentLocationSpan);
}
break;
case 447: // external_block -> tkExternal, external_directive_ident, tkName,
// external_directive_ident, tkSemiColon
{
CurrentSemanticValue.stn = new external_directive(ValueStack[ValueStack.Depth-4].ex, ValueStack[ValueStack.Depth-2].ex, CurrentLocationSpan);
}
break;
case 448: // external_block -> tkExternal, external_directive_ident, tkSemiColon
{
CurrentSemanticValue.stn = new external_directive(ValueStack[ValueStack.Depth-2].ex, null, CurrentLocationSpan);
}
break;
case 449: // external_block -> tkExternal, tkSemiColon
{
CurrentSemanticValue.stn = new external_directive(null, null, CurrentLocationSpan);
}
break;
case 450: // external_directive_ident -> identifier
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].id; }
break;
case 451: // external_directive_ident -> literal
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 452: // block -> decl_sect_list, compound_stmt, tkSemiColon
{
CurrentSemanticValue.stn = new block(ValueStack[ValueStack.Depth-3].stn as declarations, ValueStack[ValueStack.Depth-2].stn as statement_list, CurrentLocationSpan);
}
break;
case 453: // inclass_block -> inclass_decl_sect_list, compound_stmt, tkSemiColon
{
CurrentSemanticValue.stn = new block(ValueStack[ValueStack.Depth-3].stn as declarations, ValueStack[ValueStack.Depth-2].stn as statement_list, CurrentLocationSpan);
}
break;
case 454: // inclass_block -> external_block
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 455: // fp_list -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 456: // fp_list -> tkRoundOpen, tkRoundClose
{
CurrentSemanticValue.stn = null;
}
break;
case 457: // fp_list -> tkRoundOpen, fp_sect_list, tkRoundClose
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn;
if (CurrentSemanticValue.stn != null)
CurrentSemanticValue.stn.source_context = CurrentLocationSpan;
}
break;
case 458: // fp_sect_list -> fp_sect
{
CurrentSemanticValue.stn = new formal_parameters(ValueStack[ValueStack.Depth-1].stn as typed_parameters, CurrentLocationSpan);
}
break;
case 459: // fp_sect_list -> fp_sect_list, tkSemiColon, fp_sect
{
CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as formal_parameters).Add(ValueStack[ValueStack.Depth-1].stn as typed_parameters, CurrentLocationSpan);
}
break;
case 460: // fp_sect -> attribute_declarations, simple_fp_sect
{
(ValueStack[ValueStack.Depth-1].stn as declaration).attributes = ValueStack[ValueStack.Depth-2].stn as attribute_list;
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
}
break;
case 461: // simple_fp_sect -> param_name_list, tkColon, fptype
{
CurrentSemanticValue.stn = new typed_parameters(ValueStack[ValueStack.Depth-3].stn as ident_list, ValueStack[ValueStack.Depth-1].td, parametr_kind.none, null, CurrentLocationSpan);
}
break;
case 462: // simple_fp_sect -> tkVar, param_name_list, tkColon, fptype
{
CurrentSemanticValue.stn = new typed_parameters(ValueStack[ValueStack.Depth-3].stn as ident_list, ValueStack[ValueStack.Depth-1].td, parametr_kind.var_parametr, null, CurrentLocationSpan);
}
break;
case 463: // simple_fp_sect -> tkConst, param_name_list, tkColon, fptype
{
CurrentSemanticValue.stn = new typed_parameters(ValueStack[ValueStack.Depth-3].stn as ident_list, ValueStack[ValueStack.Depth-1].td, parametr_kind.const_parametr, null, CurrentLocationSpan);
}
break;
case 464: // simple_fp_sect -> tkParams, param_name_list, tkColon, fptype
{
CurrentSemanticValue.stn = new typed_parameters(ValueStack[ValueStack.Depth-3].stn as ident_list, ValueStack[ValueStack.Depth-1].td,parametr_kind.params_parametr,null, CurrentLocationSpan);
}
break;
case 465: // simple_fp_sect -> param_name_list, tkColon, fptype, tkAssign, expr
{
CurrentSemanticValue.stn = new typed_parameters(ValueStack[ValueStack.Depth-5].stn as ident_list, ValueStack[ValueStack.Depth-3].td, parametr_kind.none, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 466: // simple_fp_sect -> tkVar, param_name_list, tkColon, fptype, tkAssign, expr
{
CurrentSemanticValue.stn = new typed_parameters(ValueStack[ValueStack.Depth-5].stn as ident_list, ValueStack[ValueStack.Depth-3].td, parametr_kind.var_parametr, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 467: // simple_fp_sect -> tkConst, param_name_list, tkColon, fptype, tkAssign, expr
{
CurrentSemanticValue.stn = new typed_parameters(ValueStack[ValueStack.Depth-5].stn as ident_list, ValueStack[ValueStack.Depth-3].td, parametr_kind.const_parametr, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 468: // param_name_list -> param_name
{
CurrentSemanticValue.stn = new ident_list(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan);
}
break;
case 469: // param_name_list -> param_name_list, tkComma, param_name
{
CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as ident_list).Add(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan);
}
break;
case 470: // param_name -> identifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 471: // fptype -> type_ref
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 472: // fptype_noproctype -> simple_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 473: // fptype_noproctype -> string_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 474: // fptype_noproctype -> pointer_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 475: // fptype_noproctype -> structured_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 476: // fptype_noproctype -> template_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 477: // stmt -> unlabelled_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 478: // stmt -> label_name, tkColon, stmt
{
CurrentSemanticValue.stn = new labeled_statement(ValueStack[ValueStack.Depth-3].id, ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 479: // unlabelled_stmt -> /* empty */
{
CurrentSemanticValue.stn = new empty_statement();
CurrentSemanticValue.stn.source_context = null;
}
break;
case 480: // unlabelled_stmt -> assignment
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 481: // unlabelled_stmt -> proc_call
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 482: // unlabelled_stmt -> goto_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 483: // unlabelled_stmt -> compound_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 484: // unlabelled_stmt -> if_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 485: // unlabelled_stmt -> case_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 486: // unlabelled_stmt -> repeat_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 487: // unlabelled_stmt -> while_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 488: // unlabelled_stmt -> for_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 489: // unlabelled_stmt -> with_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 490: // unlabelled_stmt -> inherited_message
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 491: // unlabelled_stmt -> try_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 492: // unlabelled_stmt -> raise_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 493: // unlabelled_stmt -> foreach_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 494: // unlabelled_stmt -> var_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 495: // unlabelled_stmt -> expr_as_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 496: // unlabelled_stmt -> lock_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 497: // unlabelled_stmt -> yield_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 498: // unlabelled_stmt -> yield_sequence_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 499: // unlabelled_stmt -> loop_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 500: // unlabelled_stmt -> match_with
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 501: // loop_stmt -> tkLoop, expr_l1, tkDo, unlabelled_stmt
{
CurrentSemanticValue.stn = new loop_stmt(ValueStack[ValueStack.Depth-3].ex,ValueStack[ValueStack.Depth-1].stn as statement,CurrentLocationSpan);
}
break;
case 502: // yield_stmt -> tkYield, expr_l1_func_decl_lambda
{
CurrentSemanticValue.stn = new yield_node(ValueStack[ValueStack.Depth-1].ex,CurrentLocationSpan);
}
break;
case 503: // yield_sequence_stmt -> tkYield, tkSequence, expr_l1_func_decl_lambda
{
CurrentSemanticValue.stn = new yield_sequence_node(ValueStack[ValueStack.Depth-1].ex,CurrentLocationSpan);
}
break;
case 504: // var_stmt -> tkVar, var_decl_part
{
CurrentSemanticValue.stn = new var_statement(ValueStack[ValueStack.Depth-1].stn as var_def_statement, CurrentLocationSpan);
}
break;
case 505: // var_stmt -> tkRoundOpen, tkVar, identifier, tkComma, var_ident_list,
// tkRoundClose, tkAssign, expr
{
(ValueStack[ValueStack.Depth-4].ob as ident_list).Insert(0,ValueStack[ValueStack.Depth-6].id);
(ValueStack[ValueStack.Depth-4].ob as syntax_tree_node).source_context = LexLocation.MergeAll(LocationStack[LocationStack.Depth-8],LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5],LocationStack[LocationStack.Depth-4],LocationStack[LocationStack.Depth-3]);
CurrentSemanticValue.stn = new assign_var_tuple(ValueStack[ValueStack.Depth-4].ob as ident_list, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 506: // var_stmt -> tkVar, tkRoundOpen, identifier, tkComma, ident_list, tkRoundClose,
// tkAssign, expr
{
(ValueStack[ValueStack.Depth-4].stn as ident_list).Insert(0,ValueStack[ValueStack.Depth-6].id);
ValueStack[ValueStack.Depth-4].stn.source_context = LexLocation.MergeAll(LocationStack[LocationStack.Depth-8],LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5],LocationStack[LocationStack.Depth-4],LocationStack[LocationStack.Depth-3]);
CurrentSemanticValue.stn = new assign_var_tuple(ValueStack[ValueStack.Depth-4].stn as ident_list, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 507: // assignment -> var_reference, assign_operator, expr_with_func_decl_lambda
{
CurrentSemanticValue.stn = new assign(ValueStack[ValueStack.Depth-3].ex as addressed_value, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan);
}
break;
case 508: // assignment -> tkRoundOpen, variable, tkComma, variable_list, tkRoundClose,
// assign_operator, expr
{
if (ValueStack[ValueStack.Depth-2].op.type != Operators.Assignment)
parsertools.AddErrorFromResource("ONLY_BASE_ASSIGNMENT_FOR_TUPLE",LocationStack[LocationStack.Depth-2]);
(ValueStack[ValueStack.Depth-4].ob as addressed_value_list).Insert(0,ValueStack[ValueStack.Depth-6].ex as addressed_value);
(ValueStack[ValueStack.Depth-4].ob as syntax_tree_node).source_context = LexLocation.MergeAll(LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5],LocationStack[LocationStack.Depth-4],LocationStack[LocationStack.Depth-3]);
CurrentSemanticValue.stn = new assign_tuple(ValueStack[ValueStack.Depth-4].ob as addressed_value_list, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 509: // assignment -> variable, tkQuestionSquareOpen, format_expr, tkSquareClose,
// assign_operator, expr
{
var fe = ValueStack[ValueStack.Depth-4].ex as format_expr;
if (!parsertools.build_tree_for_formatter)
{
if (fe.expr == null)
fe.expr = new int32_const(int.MaxValue,LocationStack[LocationStack.Depth-4]);
if (fe.format1 == null)
fe.format1 = new int32_const(int.MaxValue,LocationStack[LocationStack.Depth-4]);
}
var left = new slice_expr_question(ValueStack[ValueStack.Depth-6].ex as addressed_value,fe.expr,fe.format1,fe.format2,CurrentLocationSpan);
CurrentSemanticValue.stn = new assign(left, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan);
}
break;
case 510: // variable_list -> variable
{
CurrentSemanticValue.ob = new addressed_value_list(ValueStack[ValueStack.Depth-1].ex as addressed_value,LocationStack[LocationStack.Depth-1]);
}
break;
case 511: // 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 512: // var_ident_list -> tkVar, identifier
{
CurrentSemanticValue.ob = new ident_list(ValueStack[ValueStack.Depth-1].id,CurrentLocationSpan);
}
break;
case 513: // 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 514: // 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 515: // goto_stmt -> tkGoto, label_name
{
CurrentSemanticValue.stn = new goto_statement(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan);
}
break;
case 516: // 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 517: // stmt_list -> stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, LocationStack[LocationStack.Depth-1]);
}
break;
case 518: // 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 519: // 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 520: // 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 521: // 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 522: // 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 523: // pattern_cases -> pattern_case
{
CurrentSemanticValue.stn = new pattern_cases(ValueStack[ValueStack.Depth-1].stn as pattern_case);
}
break;
case 524: // 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 525: // 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 526: // 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 527: // 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 528: // 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 529: // pattern_case -> tuple_pattern, tkColon, unlabelled_stmt
{
CurrentSemanticValue.stn = new pattern_case(ValueStack[ValueStack.Depth-3].stn as pattern_node, ValueStack[ValueStack.Depth-1].stn as statement, null, CurrentLocationSpan);
}
break;
case 530: // case_stmt -> tkCase, expr_l1, tkOf, case_list, else_case, tkEnd
{
CurrentSemanticValue.stn = new case_node(ValueStack[ValueStack.Depth-5].ex, ValueStack[ValueStack.Depth-3].stn as case_variants, ValueStack[ValueStack.Depth-2].stn as statement, CurrentLocationSpan);
}
break;
case 531: // case_stmt -> tkCase, expr_l1, tkOf, case_list, tkSemiColon, else_case, tkEnd
{
CurrentSemanticValue.stn = new case_node(ValueStack[ValueStack.Depth-6].ex, ValueStack[ValueStack.Depth-4].stn as case_variants, ValueStack[ValueStack.Depth-2].stn as statement, CurrentLocationSpan);
}
break;
case 532: // case_stmt -> tkCase, expr_l1, tkOf, else_case, tkEnd
{
CurrentSemanticValue.stn = new case_node(ValueStack[ValueStack.Depth-4].ex, NewCaseItem(new empty_statement(), null), ValueStack[ValueStack.Depth-2].stn as statement, CurrentLocationSpan);
}
break;
case 533: // case_list -> case_item
{
if (ValueStack[ValueStack.Depth-1].stn is empty_statement)
CurrentSemanticValue.stn = NewCaseItem(ValueStack[ValueStack.Depth-1].stn, null);
else CurrentSemanticValue.stn = NewCaseItem(ValueStack[ValueStack.Depth-1].stn, CurrentLocationSpan);
}
break;
case 534: // case_list -> case_list, tkSemiColon, case_item
{
CurrentSemanticValue.stn = AddCaseItem(ValueStack[ValueStack.Depth-3].stn as case_variants, ValueStack[ValueStack.Depth-1].stn, CurrentLocationSpan);
}
break;
case 535: // case_item -> case_label_list, tkColon, unlabelled_stmt
{
CurrentSemanticValue.stn = new case_variant(ValueStack[ValueStack.Depth-3].stn as expression_list, ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 536: // case_label_list -> case_label
{
CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 537: // case_label_list -> case_label_list, tkComma, case_label
{
CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as expression_list).Add(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 538: // case_label -> const_elem
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 539: // else_case -> /* empty */
{ CurrentSemanticValue.stn = null;}
break;
case 540: // else_case -> tkElse, stmt_list
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 541: // repeat_stmt -> tkRepeat, stmt_list, tkUntil, expr
{
CurrentSemanticValue.stn = new repeat_node(ValueStack[ValueStack.Depth-3].stn as statement_list, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
(ValueStack[ValueStack.Depth-3].stn as statement_list).left_logical_bracket = ValueStack[ValueStack.Depth-4].ti;
(ValueStack[ValueStack.Depth-3].stn as statement_list).right_logical_bracket = ValueStack[ValueStack.Depth-2].ti;
ValueStack[ValueStack.Depth-3].stn.source_context = LocationStack[LocationStack.Depth-4].Merge(LocationStack[LocationStack.Depth-2]);
}
break;
case 542: // while_stmt -> tkWhile, expr_l1, optional_tk_do, unlabelled_stmt
{
CurrentSemanticValue.stn = NewWhileStmt(ValueStack[ValueStack.Depth-4].ti, ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-2].ti, ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 543: // optional_tk_do -> tkDo
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 544: // optional_tk_do -> /* empty */
{ CurrentSemanticValue.ti = null; }
break;
case 545: // lock_stmt -> tkLock, expr_l1, tkDo, unlabelled_stmt
{
CurrentSemanticValue.stn = new lock_stmt(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 546: // foreach_stmt -> tkForeach, identifier, foreach_stmt_ident_dype_opt, tkIn,
// expr_l1, tkDo, unlabelled_stmt
{
CurrentSemanticValue.stn = new foreach_stmt(ValueStack[ValueStack.Depth-6].id, ValueStack[ValueStack.Depth-5].td, ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
if (ValueStack[ValueStack.Depth-5].td == null)
parsertools.AddWarningFromResource("USING_UNLOCAL_FOREACH_VARIABLE", ValueStack[ValueStack.Depth-6].id.source_context);
}
break;
case 547: // foreach_stmt -> tkForeach, tkVar, identifier, tkColon, type_ref, tkIn, expr_l1,
// tkDo, unlabelled_stmt
{
CurrentSemanticValue.stn = new foreach_stmt(ValueStack[ValueStack.Depth-7].id, ValueStack[ValueStack.Depth-5].td, ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 548: // foreach_stmt -> tkForeach, tkVar, identifier, tkIn, expr_l1, tkDo,
// unlabelled_stmt
{
CurrentSemanticValue.stn = new foreach_stmt(ValueStack[ValueStack.Depth-5].id, new no_type_foreach(), ValueStack[ValueStack.Depth-3].ex, (statement)ValueStack[ValueStack.Depth-1].stn, CurrentLocationSpan);
}
break;
case 549: // foreach_stmt_ident_dype_opt -> tkColon, type_ref
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 551: // for_stmt -> tkFor, optional_var, identifier, for_stmt_decl_or_assign, expr_l1,
// for_cycle_type, expr_l1, optional_tk_do, unlabelled_stmt
{
CurrentSemanticValue.stn = NewForStmt((bool)ValueStack[ValueStack.Depth-8].ob, ValueStack[ValueStack.Depth-7].id, ValueStack[ValueStack.Depth-6].td, ValueStack[ValueStack.Depth-5].ex, (for_cycle_type)ValueStack[ValueStack.Depth-4].ob, ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-2].ti, ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 552: // optional_var -> tkVar
{ CurrentSemanticValue.ob = true; }
break;
case 553: // optional_var -> /* empty */
{ CurrentSemanticValue.ob = false; }
break;
case 555: // for_stmt_decl_or_assign -> tkColon, simple_type_identifier, tkAssign
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-2].td; }
break;
case 556: // for_cycle_type -> tkTo
{ CurrentSemanticValue.ob = for_cycle_type.to; }
break;
case 557: // for_cycle_type -> tkDownto
{ CurrentSemanticValue.ob = for_cycle_type.downto; }
break;
case 558: // with_stmt -> tkWith, expr_list, tkDo, unlabelled_stmt
{
CurrentSemanticValue.stn = new with_statement(ValueStack[ValueStack.Depth-1].stn as statement, ValueStack[ValueStack.Depth-3].stn as expression_list, CurrentLocationSpan);
}
break;
case 559: // inherited_message -> tkInherited
{
CurrentSemanticValue.stn = new inherited_message();
CurrentSemanticValue.stn.source_context = CurrentLocationSpan;
}
break;
case 560: // try_stmt -> tkTry, stmt_list, try_handler
{
CurrentSemanticValue.stn = new try_stmt(ValueStack[ValueStack.Depth-2].stn as statement_list, ValueStack[ValueStack.Depth-1].stn as try_handler, CurrentLocationSpan);
(ValueStack[ValueStack.Depth-2].stn as statement_list).left_logical_bracket = ValueStack[ValueStack.Depth-3].ti;
ValueStack[ValueStack.Depth-2].stn.source_context = LocationStack[LocationStack.Depth-3].Merge(LocationStack[LocationStack.Depth-2]);
}
break;
case 561: // try_handler -> tkFinally, stmt_list, tkEnd
{
CurrentSemanticValue.stn = new try_handler_finally(ValueStack[ValueStack.Depth-2].stn as statement_list, CurrentLocationSpan);
(ValueStack[ValueStack.Depth-2].stn as statement_list).left_logical_bracket = ValueStack[ValueStack.Depth-3].ti;
(ValueStack[ValueStack.Depth-2].stn as statement_list).right_logical_bracket = ValueStack[ValueStack.Depth-1].ti;
}
break;
case 562: // try_handler -> tkExcept, exception_block, tkEnd
{
CurrentSemanticValue.stn = new try_handler_except((exception_block)ValueStack[ValueStack.Depth-2].stn, CurrentLocationSpan);
if ((ValueStack[ValueStack.Depth-2].stn as exception_block).stmt_list != null)
{
(ValueStack[ValueStack.Depth-2].stn as exception_block).stmt_list.source_context = CurrentLocationSpan;
(ValueStack[ValueStack.Depth-2].stn as exception_block).source_context = CurrentLocationSpan;
}
}
break;
case 563: // exception_block -> exception_handler_list, exception_block_else_branch
{
CurrentSemanticValue.stn = new exception_block(null, (exception_handler_list)ValueStack[ValueStack.Depth-2].stn, (statement_list)ValueStack[ValueStack.Depth-1].stn, CurrentLocationSpan);
}
break;
case 564: // exception_block -> exception_handler_list, tkSemiColon,
// exception_block_else_branch
{
CurrentSemanticValue.stn = new exception_block(null, (exception_handler_list)ValueStack[ValueStack.Depth-3].stn, (statement_list)ValueStack[ValueStack.Depth-1].stn, CurrentLocationSpan);
}
break;
case 565: // exception_block -> stmt_list
{
CurrentSemanticValue.stn = new exception_block(ValueStack[ValueStack.Depth-1].stn as statement_list, null, null, LocationStack[LocationStack.Depth-1]);
}
break;
case 566: // exception_handler_list -> exception_handler
{
CurrentSemanticValue.stn = new exception_handler_list(ValueStack[ValueStack.Depth-1].stn as exception_handler, CurrentLocationSpan);
}
break;
case 567: // exception_handler_list -> exception_handler_list, tkSemiColon,
// exception_handler
{
CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as exception_handler_list).Add(ValueStack[ValueStack.Depth-1].stn as exception_handler, CurrentLocationSpan);
}
break;
case 568: // exception_block_else_branch -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 569: // exception_block_else_branch -> tkElse, stmt_list
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 570: // exception_handler -> tkOn, exception_identifier, tkDo, unlabelled_stmt
{
CurrentSemanticValue.stn = new exception_handler((ValueStack[ValueStack.Depth-3].stn as exception_ident).variable, (ValueStack[ValueStack.Depth-3].stn as exception_ident).type_name, ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 571: // exception_identifier -> exception_class_type_identifier
{
CurrentSemanticValue.stn = new exception_ident(null, (named_type_reference)ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan);
}
break;
case 572: // exception_identifier -> exception_variable, tkColon,
// exception_class_type_identifier
{
CurrentSemanticValue.stn = new exception_ident(ValueStack[ValueStack.Depth-3].id, (named_type_reference)ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan);
}
break;
case 573: // exception_class_type_identifier -> simple_type_identifier
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 574: // exception_variable -> identifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 575: // raise_stmt -> tkRaise
{
CurrentSemanticValue.stn = new raise_stmt();
CurrentSemanticValue.stn.source_context = CurrentLocationSpan;
}
break;
case 576: // raise_stmt -> tkRaise, expr
{
CurrentSemanticValue.stn = new raise_stmt(ValueStack[ValueStack.Depth-1].ex, null, CurrentLocationSpan);
}
break;
case 577: // expr_list -> expr_with_func_decl_lambda
{
CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 578: // expr_list -> expr_list, tkComma, expr_with_func_decl_lambda
{
CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as expression_list).Add(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 579: // expr_as_stmt -> allowable_expr_as_stmt
{
CurrentSemanticValue.stn = new expression_as_statement(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 580: // allowable_expr_as_stmt -> new_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 581: // expr_with_func_decl_lambda -> expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 582: // expr_with_func_decl_lambda -> func_decl_lambda
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 583: // expr -> expr_l1
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 584: // expr -> format_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 585: // expr_l1 -> expr_dq
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 586: // expr_l1 -> question_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 587: // expr_l1 -> new_question_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 588: // expr_l1_for_question_expr -> expr_dq
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 589: // expr_l1_for_question_expr -> question_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 590: // expr_l1_for_new_question_expr -> expr_dq
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 591: // expr_l1_for_new_question_expr -> new_question_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 592: // expr_l1_func_decl_lambda -> expr_l1
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 593: // expr_l1_func_decl_lambda -> func_decl_lambda
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 594: // expr_l1_for_lambda -> expr_dq
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 595: // expr_l1_for_lambda -> question_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 596: // expr_l1_for_lambda -> func_decl_lambda
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 597: // expr_dq -> relop_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 598: // 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 599: // 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 600: // 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 601: // 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 602: // 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 603: // 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.build_tree_for_formatter)
{
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 604: // 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 605: // 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 606: // simple_or_template_type_reference -> simple_type_identifier
{
CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td;
}
break;
case 607: // 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 608: // 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 609: // optional_array_initializer -> tkRoundOpen, typed_const_list, tkRoundClose
{
CurrentSemanticValue.stn = new array_const((expression_list)ValueStack[ValueStack.Depth-2].stn, CurrentLocationSpan);
}
break;
case 611: // new_expr -> tkNew, simple_or_template_type_reference,
// optional_expr_list_with_bracket
{
CurrentSemanticValue.ex = new new_expr(ValueStack[ValueStack.Depth-2].td, ValueStack[ValueStack.Depth-1].stn as expression_list, false, null, CurrentLocationSpan);
}
break;
case 612: // 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 613: // new_expr -> tkNew, tkClass, tkRoundOpen, list_fields_in_unnamed_object,
// tkRoundClose
{
// sugared node
var l = ValueStack[ValueStack.Depth-2].ob as name_assign_expr_list;
var exprs = l.name_expr.Select(x=>x.expr).ToList();
var typename = "AnonymousType#"+Guid();
var type = new named_type_reference(typename,LocationStack[LocationStack.Depth-5]);
// node new_expr - for code generation of new node
var ne = new new_expr(type, new expression_list(exprs), CurrentLocationSpan);
// node unnamed_type_object - for formatting and code generation (new node and Anonymous class)
CurrentSemanticValue.ex = new unnamed_type_object(l, true, ne, CurrentLocationSpan);
}
break;
case 614: // field_in_unnamed_object -> identifier, tkAssign, relop_expr
{
if (ValueStack[ValueStack.Depth-1].ex is nil_const)
parsertools.AddErrorFromResource("NIL_IN_UNNAMED_OBJECT",CurrentLocationSpan);
CurrentSemanticValue.ob = new name_assign_expr(ValueStack[ValueStack.Depth-3].id,ValueStack[ValueStack.Depth-1].ex,CurrentLocationSpan);
}
break;
case 615: // field_in_unnamed_object -> relop_expr
{
ident name = null;
var id = ValueStack[ValueStack.Depth-1].ex as ident;
dot_node dot;
if (id != null)
name = id;
else
{
dot = ValueStack[ValueStack.Depth-1].ex as dot_node;
if (dot != null)
{
name = dot.right as ident;
}
}
if (name == null)
parsertools.errors.Add(new bad_anon_type(parsertools.CurrentFileName, LocationStack[LocationStack.Depth-1], null));
CurrentSemanticValue.ob = new name_assign_expr(name,ValueStack[ValueStack.Depth-1].ex,CurrentLocationSpan);
}
break;
case 616: // 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 617: // 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 618: // optional_expr_list_with_bracket -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 619: // optional_expr_list_with_bracket -> tkRoundOpen, optional_expr_list,
// tkRoundClose
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; }
break;
case 620: // relop_expr -> simple_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 621: // relop_expr -> relop_expr, relop, simple_expr
{
CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan);
}
break;
case 622: // relop_expr -> relop_expr, relop, 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 623: // 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 624: // 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 625: // 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 626: // 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 627: // 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 628: // 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 629: // 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 630: // const_pattern_expression -> literal_or_number
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].ex; }
break;
case 631: // const_pattern_expression -> simple_or_template_type_reference
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].td; }
break;
case 632: // const_pattern_expression -> tkNil
{
CurrentSemanticValue.stn = new nil_const();
CurrentSemanticValue.stn.source_context = CurrentLocationSpan;
}
break;
case 633: // const_pattern_expression -> sizeof_expr
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].ex; }
break;
case 634: // const_pattern_expression -> typeof_expr
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].ex; }
break;
case 635: // 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 636: // 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 637: // 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 638: // collection_pattern_list_item -> literal_or_number
{
CurrentSemanticValue.stn = new const_pattern_parameter(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 639: // collection_pattern_list_item -> collection_pattern_var_item
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
}
break;
case 640: // collection_pattern_list_item -> tkUnderscore
{
CurrentSemanticValue.stn = new collection_pattern_wild_card(CurrentLocationSpan);
}
break;
case 641: // collection_pattern_list_item -> pattern_optional_var
{
CurrentSemanticValue.stn = new recursive_deconstructor_parameter(ValueStack[ValueStack.Depth-1].stn as pattern_node, CurrentLocationSpan);
}
break;
case 642: // collection_pattern_list_item -> collection_pattern
{
CurrentSemanticValue.stn = new recursive_collection_parameter(ValueStack[ValueStack.Depth-1].stn as pattern_node, CurrentLocationSpan);
}
break;
case 643: // collection_pattern_list_item -> tuple_pattern
{
CurrentSemanticValue.stn = new recursive_tuple_parameter(ValueStack[ValueStack.Depth-1].stn as pattern_node, CurrentLocationSpan);
}
break;
case 644: // collection_pattern_list_item -> tkDotDot
{
CurrentSemanticValue.stn = new collection_pattern_gap_parameter(CurrentLocationSpan);
}
break;
case 645: // collection_pattern_var_item -> tkVar, identifier
{
CurrentSemanticValue.stn = new collection_pattern_var_parameter(ValueStack[ValueStack.Depth-1].id, null, CurrentLocationSpan);
}
break;
case 646: // 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 647: // tuple_pattern_item -> tkUnderscore
{
CurrentSemanticValue.stn = new tuple_pattern_wild_card(CurrentLocationSpan);
}
break;
case 648: // tuple_pattern_item -> literal_or_number
{
CurrentSemanticValue.stn = new const_pattern_parameter(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 649: // 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 650: // tuple_pattern_item -> tkVar, identifier
{
CurrentSemanticValue.stn = new tuple_pattern_var_parameter(ValueStack[ValueStack.Depth-1].id, null, CurrentLocationSpan);
}
break;
case 651: // tuple_pattern_item -> pattern_optional_var
{
CurrentSemanticValue.stn = new recursive_deconstructor_parameter(ValueStack[ValueStack.Depth-1].stn as pattern_node, CurrentLocationSpan);
}
break;
case 652: // tuple_pattern_item -> collection_pattern
{
CurrentSemanticValue.stn = new recursive_collection_parameter(ValueStack[ValueStack.Depth-1].stn as pattern_node, CurrentLocationSpan);
}
break;
case 653: // tuple_pattern_item -> tuple_pattern
{
CurrentSemanticValue.stn = new recursive_tuple_parameter(ValueStack[ValueStack.Depth-1].stn as pattern_node, CurrentLocationSpan);
}
break;
case 654: // 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 655: // 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 656: // 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 657: // 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 658: // 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 659: // 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 660: // 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 661: // 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 662: // pattern_out_param -> tkUnderscore
{
CurrentSemanticValue.stn = new wild_card_deconstructor_parameter(CurrentLocationSpan);
}
break;
case 663: // pattern_out_param -> literal_or_number
{
CurrentSemanticValue.stn = new const_pattern_parameter(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 664: // 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 665: // pattern_out_param -> tkVar, identifier
{
CurrentSemanticValue.stn = new var_deconstructor_parameter(ValueStack[ValueStack.Depth-1].id, null, true, CurrentLocationSpan);
}
break;
case 666: // pattern_out_param -> pattern
{
CurrentSemanticValue.stn = new recursive_deconstructor_parameter(ValueStack[ValueStack.Depth-1].stn as pattern_node, CurrentLocationSpan);
}
break;
case 667: // pattern_out_param -> collection_pattern
{
CurrentSemanticValue.stn = new recursive_collection_parameter(ValueStack[ValueStack.Depth-1].stn as pattern_node, CurrentLocationSpan);
}
break;
case 668: // pattern_out_param -> tuple_pattern
{
CurrentSemanticValue.stn = new recursive_tuple_parameter(ValueStack[ValueStack.Depth-1].stn as pattern_node, CurrentLocationSpan);
}
break;
case 669: // pattern_out_param_optional_var -> tkUnderscore
{
CurrentSemanticValue.stn = new wild_card_deconstructor_parameter(CurrentLocationSpan);
}
break;
case 670: // pattern_out_param_optional_var -> literal_or_number
{
CurrentSemanticValue.stn = new const_pattern_parameter(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 671: // 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 672: // 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 673: // pattern_out_param_optional_var -> identifier
{
CurrentSemanticValue.stn = new var_deconstructor_parameter(ValueStack[ValueStack.Depth-1].id, null, false, CurrentLocationSpan);
}
break;
case 674: // 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 675: // pattern_out_param_optional_var -> tkVar, identifier
{
CurrentSemanticValue.stn = new var_deconstructor_parameter(ValueStack[ValueStack.Depth-1].id, null, true, CurrentLocationSpan);
}
break;
case 676: // 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 677: // pattern_out_param_optional_var -> collection_pattern
{
CurrentSemanticValue.stn = new recursive_collection_parameter(ValueStack[ValueStack.Depth-1].stn as pattern_node, CurrentLocationSpan);
}
break;
case 678: // pattern_out_param_optional_var -> tuple_pattern
{
CurrentSemanticValue.stn = new recursive_tuple_parameter(ValueStack[ValueStack.Depth-1].stn as pattern_node, CurrentLocationSpan);
}
break;
case 679: // simple_expr_or_nothing -> simple_expr
{
CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex;
}
break;
case 680: // simple_expr_or_nothing -> /* empty */
{
CurrentSemanticValue.ex = null;
}
break;
case 681: // const_expr_or_nothing -> const_expr
{
CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex;
}
break;
case 682: // const_expr_or_nothing -> /* empty */
{
CurrentSemanticValue.ex = null;
}
break;
case 683: // 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 684: // format_expr -> tkColon, simple_expr_or_nothing
{
CurrentSemanticValue.ex = new format_expr(null, ValueStack[ValueStack.Depth-1].ex, null, CurrentLocationSpan);
}
break;
case 685: // 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 686: // 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 687: // 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 688: // format_const_expr -> tkColon, const_expr_or_nothing
{
CurrentSemanticValue.ex = new format_expr(null, ValueStack[ValueStack.Depth-1].ex, null, CurrentLocationSpan);
}
break;
case 689: // 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 690: // 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 691: // relop -> tkEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 692: // relop -> tkNotEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 693: // relop -> tkLower
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 694: // relop -> tkGreater
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 695: // relop -> tkLowerEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 696: // relop -> tkGreaterEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 697: // relop -> tkIn
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 698: // simple_expr -> term1
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 699: // simple_expr -> simple_expr, tkDotDot, term1
{
if (parsertools.build_tree_for_formatter)
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 700: // term1 -> term
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 701: // 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 702: // 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 703: // addop -> tkPlus
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 704: // addop -> tkMinus
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 705: // addop -> tkOr
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 706: // addop -> tkXor
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 707: // addop -> tkCSharpStyleOr
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 708: // typecast_op -> tkAs
{
CurrentSemanticValue.ob = op_typecast.as_op;
}
break;
case 709: // typecast_op -> tkIs
{
CurrentSemanticValue.ob = op_typecast.is_op;
}
break;
case 710: // as_is_expr -> is_type_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 711: // as_is_expr -> as_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 712: // 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 713: // 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 714: // simple_term -> factor
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 715: // power_expr -> simple_term, tkStarStar, factor
{ CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex,ValueStack[ValueStack.Depth-1].ex,(ValueStack[ValueStack.Depth-2].op).type, CurrentLocationSpan); }
break;
case 716: // term -> factor
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 717: // term -> new_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 718: // term -> power_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 719: // 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 720: // 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 721: // 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 722: // term -> as_is_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 723: // mulop -> tkStar
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 724: // mulop -> tkSlash
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 725: // mulop -> tkDiv
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 726: // mulop -> tkMod
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 727: // mulop -> tkShl
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 728: // mulop -> tkShr
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 729: // mulop -> tkAnd
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 730: // default_expr -> tkDefault, tkRoundOpen, simple_or_template_type_reference,
// tkRoundClose
{
CurrentSemanticValue.ex = new default_operator(ValueStack[ValueStack.Depth-2].td as named_type_reference, CurrentLocationSpan);
}
break;
case 731: // tuple -> tkRoundOpen, expr_l1, tkComma, expr_l1_list, lambda_type_ref,
// optional_full_lambda_fp_list, tkRoundClose
{
/*if ($5 != null)
parsertools.AddErrorFromResource("BAD_TUPLE",@5);
if ($6 != null)
parsertools.AddErrorFromResource("BAD_TUPLE",@6);*/
if ((ValueStack[ValueStack.Depth-4].stn as expression_list).Count>6)
parsertools.AddErrorFromResource("TUPLE_ELEMENTS_COUNT_MUST_BE_LESSEQUAL_7",CurrentLocationSpan);
(ValueStack[ValueStack.Depth-4].stn as expression_list).Insert(0,ValueStack[ValueStack.Depth-6].ex);
CurrentSemanticValue.ex = new tuple_node(ValueStack[ValueStack.Depth-4].stn as expression_list,CurrentLocationSpan);
}
break;
case 732: // factor -> tkNil
{
CurrentSemanticValue.ex = new nil_const();
CurrentSemanticValue.ex.source_context = CurrentLocationSpan;
}
break;
case 733: // factor -> literal_or_number
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 734: // factor -> default_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 735: // factor -> tkSquareOpen, elem_list, tkSquareClose
{
CurrentSemanticValue.ex = new pascal_set_constant(ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan);
}
break;
case 736: // factor -> tkNot, factor
{
CurrentSemanticValue.ex = new un_expr(ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan);
}
break;
case 737: // 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;
}
// <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
CurrentSemanticValue.ex = new un_expr(ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan);
}
break;
case 738: // factor -> tkDeref, factor
{
CurrentSemanticValue.ex = new index(ValueStack[ValueStack.Depth-1].ex, true, CurrentLocationSpan);
}
break;
case 739: // factor -> var_reference
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 740: // factor -> tuple
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 741: // literal_or_number -> literal
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 742: // literal_or_number -> unsigned_number
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 743: // 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 744: // 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 745: // 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 746: // var_reference -> variable
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 747: // var_reference -> var_question_point
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 748: // var_address -> tkAddressOf
{
CurrentSemanticValue.stn = NewVarAddress(CurrentLocationSpan);
}
break;
case 749: // var_address -> var_address, tkAddressOf
{
CurrentSemanticValue.stn = NewVarAddress(ValueStack[ValueStack.Depth-2].stn as get_address, CurrentLocationSpan);
}
break;
case 750: // 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 751: // 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 752: // dotted_identifier -> identifier
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].id; }
break;
case 753: // dotted_identifier -> dotted_identifier, tkPoint, identifier_or_keyword
{
CurrentSemanticValue.ex = new dot_node(ValueStack[ValueStack.Depth-3].ex as addressed_value, ValueStack[ValueStack.Depth-1].id as addressed_value, CurrentLocationSpan);
}
break;
case 754: // variable_as_type -> dotted_identifier
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex;}
break;
case 755: // 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 756: // variable_or_literal_or_number -> variable
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 757: // variable_or_literal_or_number -> literal_or_number
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 758: // variable -> identifier
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].id; }
break;
case 759: // variable -> operator_name_ident
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 760: // variable -> tkInherited, identifier
{
CurrentSemanticValue.ex = new inherited_ident(ValueStack[ValueStack.Depth-1].id.name, CurrentLocationSpan);
}
break;
case 761: // variable -> tkRoundOpen, expr, tkRoundClose
{
if (!parsertools.build_tree_for_formatter)
{
ValueStack[ValueStack.Depth-2].ex.source_context = CurrentLocationSpan;
CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-2].ex;
}
else CurrentSemanticValue.ex = new bracket_expr(ValueStack[ValueStack.Depth-2].ex, CurrentLocationSpan);
}
break;
case 762: // variable -> sizeof_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 763: // variable -> typeof_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 764: // variable -> literal_or_number, tkPoint, identifier_or_keyword
{
CurrentSemanticValue.ex = new dot_node(ValueStack[ValueStack.Depth-3].ex as addressed_value, ValueStack[ValueStack.Depth-1].id as addressed_value, CurrentLocationSpan);
}
break;
case 765: // variable -> variable_or_literal_or_number, tkSquareOpen, expr_list,
// tkSquareClose
{
var el = ValueStack[ValueStack.Depth-2].stn as expression_list; // SSM 10/03/16
if (el.Count==1 && el.expressions[0] is format_expr)
{
var fe = el.expressions[0] as format_expr;
if (!parsertools.build_tree_for_formatter)
{
if (fe.expr == null)
fe.expr = new int32_const(int.MaxValue,LocationStack[LocationStack.Depth-2]);
if (fe.format1 == null)
fe.format1 = new int32_const(int.MaxValue,LocationStack[LocationStack.Depth-2]);
}
CurrentSemanticValue.ex = new slice_expr(ValueStack[ValueStack.Depth-4].ex as addressed_value,fe.expr,fe.format1,fe.format2,CurrentLocationSpan);
}
else CurrentSemanticValue.ex = new indexer(ValueStack[ValueStack.Depth-4].ex as addressed_value, el, CurrentLocationSpan);
}
break;
case 766: // variable -> variable, tkQuestionSquareOpen, format_expr, tkSquareClose
{
var fe = ValueStack[ValueStack.Depth-2].ex as format_expr; // SSM 9/01/17
if (!parsertools.build_tree_for_formatter)
{
if (fe.expr == null)
fe.expr = new int32_const(int.MaxValue,LocationStack[LocationStack.Depth-2]);
if (fe.format1 == null)
fe.format1 = new int32_const(int.MaxValue,LocationStack[LocationStack.Depth-2]);
}
CurrentSemanticValue.ex = new slice_expr_question(ValueStack[ValueStack.Depth-4].ex as addressed_value,fe.expr,fe.format1,fe.format2,CurrentLocationSpan);
}
break;
case 767: // variable -> tkVertParen, elem_list, tkVertParen
{
CurrentSemanticValue.ex = new array_const_new(ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan);
}
break;
case 768: // variable -> variable, tkRoundOpen, optional_expr_list, tkRoundClose
{
CurrentSemanticValue.ex = new method_call(ValueStack[ValueStack.Depth-4].ex as addressed_value,ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan);
}
break;
case 769: // variable -> variable, tkPoint, identifier_keyword_operatorname
{
CurrentSemanticValue.ex = new dot_node(ValueStack[ValueStack.Depth-3].ex as addressed_value, ValueStack[ValueStack.Depth-1].id as addressed_value, CurrentLocationSpan);
}
break;
case 770: // 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 771: // variable -> variable, tkDeref
{
CurrentSemanticValue.ex = new roof_dereference(ValueStack[ValueStack.Depth-2].ex as addressed_value,CurrentLocationSpan);
}
break;
case 772: // 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 773: // optional_expr_list -> expr_list
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 774: // optional_expr_list -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 775: // elem_list -> elem_list1
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 776: // elem_list -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 777: // elem_list1 -> elem
{
CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 778: // 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 779: // elem -> expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 780: // elem -> expr, tkDotDot, expr
{ CurrentSemanticValue.ex = new diapason_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); }
break;
case 781: // one_literal -> tkStringLiteral
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].stn as literal; }
break;
case 782: // one_literal -> tkAsciiChar
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].stn as literal; }
break;
case 783: // literal -> literal_list
{
CurrentSemanticValue.ex = NewLiteral(ValueStack[ValueStack.Depth-1].stn as literal_const_line);
}
break;
case 784: // literal -> tkFormatStringLiteral
{
if (parsertools.build_tree_for_formatter)
{
CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].stn as string_const;
}
else
{
CurrentSemanticValue.ex = NewFormatString(ValueStack[ValueStack.Depth-1].stn as string_const);
}
}
break;
case 785: // literal_list -> one_literal
{
CurrentSemanticValue.stn = new literal_const_line(ValueStack[ValueStack.Depth-1].ex as literal, CurrentLocationSpan);
}
break;
case 786: // 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 787: // 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 788: // optional_method_modificators -> tkSemiColon
{
CurrentSemanticValue.stn = new procedure_attributes_list(new List<procedure_attribute>(),CurrentLocationSpan);
}
break;
case 789: // 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 790: // optional_method_modificators1 -> /* empty */
{
CurrentSemanticValue.stn = new procedure_attributes_list(new List<procedure_attribute>(),CurrentLocationSpan);
}
break;
case 791: // 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 792: // meth_modificators -> meth_modificator
{
CurrentSemanticValue.stn = new procedure_attributes_list(ValueStack[ValueStack.Depth-1].id as procedure_attribute, CurrentLocationSpan);
}
break;
case 793: // 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 794: // identifier -> tkIdentifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 795: // identifier -> property_specifier_directives
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 796: // identifier -> non_reserved
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 797: // identifier_or_keyword -> identifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 798: // identifier_or_keyword -> keyword
{ CurrentSemanticValue.id = new ident(ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan); }
break;
case 799: // identifier_or_keyword -> reserved_keyword
{ CurrentSemanticValue.id = new ident(ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan); }
break;
case 800: // identifier_keyword_operatorname -> identifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 801: // identifier_keyword_operatorname -> keyword
{ CurrentSemanticValue.id = new ident(ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan); }
break;
case 802: // identifier_keyword_operatorname -> operator_name_ident
{ CurrentSemanticValue.id = (ident)ValueStack[ValueStack.Depth-1].ex; }
break;
case 803: // meth_modificator -> tkAbstract
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 804: // 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 805: // meth_modificator -> tkReintroduce
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 806: // meth_modificator -> tkOverride
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 807: // meth_modificator -> tkExtensionMethod
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 808: // meth_modificator -> tkVirtual
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 809: // property_modificator -> tkVirtual
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 810: // property_modificator -> tkOverride
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 811: // property_modificator -> tkAbstract
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 812: // property_modificator -> tkReintroduce
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 813: // property_specifier_directives -> tkRead
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 814: // property_specifier_directives -> tkWrite
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 815: // non_reserved -> tkName
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 816: // non_reserved -> tkNew
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 817: // visibility_specifier -> tkInternal
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 818: // visibility_specifier -> tkPublic
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 819: // visibility_specifier -> tkProtected
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 820: // visibility_specifier -> tkPrivate
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 821: // keyword -> visibility_specifier
{
CurrentSemanticValue.ti = new token_info(ValueStack[ValueStack.Depth-1].id.name, CurrentLocationSpan);
}
break;
case 822: // keyword -> tkSealed
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 823: // keyword -> tkTemplate
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 824: // keyword -> tkOr
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 825: // keyword -> tkTypeOf
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 826: // keyword -> tkSizeOf
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 827: // keyword -> tkDefault
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 828: // keyword -> tkWhere
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 829: // keyword -> tkXor
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 830: // keyword -> tkAnd
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 831: // keyword -> tkDiv
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 832: // keyword -> tkMod
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 833: // keyword -> tkShl
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 834: // keyword -> tkShr
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 835: // keyword -> tkNot
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 836: // keyword -> tkAs
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 837: // keyword -> tkIn
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 838: // keyword -> tkIs
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 839: // keyword -> tkArray
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 840: // keyword -> tkSequence
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 841: // keyword -> tkBegin
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 842: // keyword -> tkCase
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 843: // keyword -> tkClass
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 844: // keyword -> tkConst
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 845: // keyword -> tkConstructor
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 846: // keyword -> tkDestructor
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 847: // keyword -> tkDownto
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 848: // keyword -> tkDo
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 849: // keyword -> tkElse
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 850: // keyword -> tkEnd
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 851: // keyword -> tkExcept
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 852: // keyword -> tkFile
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 853: // keyword -> tkAuto
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 854: // keyword -> tkFinalization
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 855: // keyword -> tkFinally
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 856: // keyword -> tkFor
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 857: // keyword -> tkForeach
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 858: // keyword -> tkFunction
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 859: // keyword -> tkIf
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 860: // keyword -> tkImplementation
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 861: // keyword -> tkInherited
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 862: // keyword -> tkInitialization
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 863: // keyword -> tkInterface
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 864: // keyword -> tkProcedure
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 865: // keyword -> tkProperty
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 866: // keyword -> tkRaise
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 867: // keyword -> tkRecord
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 868: // keyword -> tkRepeat
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 869: // keyword -> tkSet
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 870: // keyword -> tkTry
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 871: // keyword -> tkType
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 872: // keyword -> tkStatic
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 873: // keyword -> tkThen
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 874: // keyword -> tkTo
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 875: // keyword -> tkUntil
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 876: // keyword -> tkUses
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 877: // keyword -> tkVar
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 878: // keyword -> tkWhile
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 879: // keyword -> tkWith
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 880: // keyword -> tkNil
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 881: // keyword -> tkGoto
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 882: // keyword -> tkOf
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 883: // keyword -> tkLabel
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 884: // keyword -> tkProgram
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 885: // keyword -> tkUnit
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 886: // keyword -> tkLibrary
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 887: // keyword -> tkNamespace
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 888: // keyword -> tkExternal
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 889: // keyword -> tkParams
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 890: // keyword -> tkEvent
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 891: // keyword -> tkYield
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 892: // keyword -> tkMatch
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 893: // keyword -> tkWhen
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 894: // keyword -> tkPartial
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 895: // keyword -> tkAbstract
{ CurrentSemanticValue.ti = new token_info(ValueStack[ValueStack.Depth-1].id.name, CurrentLocationSpan); }
break;
case 896: // keyword -> tkLock
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 897: // keyword -> tkImplicit
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 898: // keyword -> tkExplicit
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 899: // keyword -> tkOn
{ CurrentSemanticValue.ti = new token_info(ValueStack[ValueStack.Depth-1].id.name, CurrentLocationSpan); }
break;
case 900: // keyword -> tkVirtual
{ CurrentSemanticValue.ti = new token_info(ValueStack[ValueStack.Depth-1].id.name, CurrentLocationSpan); }
break;
case 901: // keyword -> tkOverride
{ CurrentSemanticValue.ti = new token_info(ValueStack[ValueStack.Depth-1].id.name, CurrentLocationSpan); }
break;
case 902: // keyword -> tkLoop
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 903: // keyword -> tkExtensionMethod
{ CurrentSemanticValue.ti = new token_info(ValueStack[ValueStack.Depth-1].id.name, CurrentLocationSpan); }
break;
case 904: // keyword -> tkOverload
{ CurrentSemanticValue.ti = new token_info(ValueStack[ValueStack.Depth-1].id.name, CurrentLocationSpan); }
break;
case 905: // keyword -> tkReintroduce
{ CurrentSemanticValue.ti = new token_info(ValueStack[ValueStack.Depth-1].id.name, CurrentLocationSpan); }
break;
case 906: // keyword -> tkForward
{ CurrentSemanticValue.ti = new token_info(ValueStack[ValueStack.Depth-1].id.name, CurrentLocationSpan); }
break;
case 907: // reserved_keyword -> tkOperator
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 908: // overload_operator -> tkMinus
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 909: // overload_operator -> tkPlus
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 910: // overload_operator -> tkSlash
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 911: // overload_operator -> tkStar
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 912: // overload_operator -> tkEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 913: // overload_operator -> tkGreater
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 914: // overload_operator -> tkGreaterEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 915: // overload_operator -> tkLower
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 916: // overload_operator -> tkLowerEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 917: // overload_operator -> tkNotEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 918: // overload_operator -> tkOr
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 919: // overload_operator -> tkXor
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 920: // overload_operator -> tkAnd
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 921: // overload_operator -> tkDiv
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 922: // overload_operator -> tkMod
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 923: // overload_operator -> tkShl
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 924: // overload_operator -> tkShr
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 925: // overload_operator -> tkNot
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 926: // overload_operator -> tkIn
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 927: // overload_operator -> tkImplicit
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 928: // overload_operator -> tkExplicit
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 929: // overload_operator -> assign_operator
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 930: // overload_operator -> tkStarStar
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 931: // assign_operator -> tkAssign
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 932: // assign_operator -> tkPlusEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 933: // assign_operator -> tkMinusEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 934: // assign_operator -> tkMultEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 935: // assign_operator -> tkDivEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 936: // func_decl_lambda -> identifier, tkArrow, lambda_function_body
{
var idList = new ident_list(ValueStack[ValueStack.Depth-3].id, LocationStack[LocationStack.Depth-3]);
var formalPars = new formal_parameters(new typed_parameters(idList, new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), LocationStack[LocationStack.Depth-3]), parametr_kind.none, null, LocationStack[LocationStack.Depth-3]), LocationStack[LocationStack.Depth-3]);
//var sl = $3 as statement_list;
//if (sl.expr_lambda_body || SyntaxVisitors.HasNameVisitor.HasName($3, "Result") != null) // <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Result, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), LocationStack[LocationStack.Depth-3]), ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan);
//else
//$$ = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, null, $3 as statement_list, @$);
}
break;
case 937: // func_decl_lambda -> tkRoundOpen, tkRoundClose, lambda_type_ref_noproctype,
// tkArrow, lambda_function_body
{
// <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> lambda_inferred_type, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> null!
var sl = ValueStack[ValueStack.Depth-1].stn as statement_list;
if (sl.expr_lambda_body || SyntaxVisitors.HasNameVisitor.HasName(sl, "result") != null) // <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
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 938: // 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><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
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 939: // func_decl_lambda -> tkRoundOpen, identifier, tkSemiColon, full_lambda_fp_list,
// tkRoundClose, lambda_type_ref_noproctype, tkArrow,
// lambda_function_body
{
var idList = new ident_list(ValueStack[ValueStack.Depth-7].id, LocationStack[LocationStack.Depth-7]);
var formalPars = new formal_parameters(new typed_parameters(idList, new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), null), parametr_kind.none, null, LocationStack[LocationStack.Depth-7]), LexLocation.MergeAll(LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5]));
for (int i = 0; i < (ValueStack[ValueStack.Depth-5].stn as formal_parameters).Count; i++)
formalPars.Add((ValueStack[ValueStack.Depth-5].stn as formal_parameters).params_list[i]);
var sl = ValueStack[ValueStack.Depth-1].stn as statement_list;
if (sl.expr_lambda_body || SyntaxVisitors.HasNameVisitor.HasName(sl, "result") != null) // <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
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 940: // 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><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
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 941: // func_decl_lambda -> tkRoundOpen, expr_l1, tkComma, expr_l1_list,
// lambda_type_ref, optional_full_lambda_fp_list,
// tkRoundClose, rem_lambda
{
var pair = ValueStack[ValueStack.Depth-1].ob as pair_type_stlist;
if (ValueStack[ValueStack.Depth-4].td is lambda_inferred_type)
{
var formal_pars = new formal_parameters();
var idd = ValueStack[ValueStack.Depth-7].ex as ident;
if (idd==null)
parsertools.AddErrorFromResource("ONE_TKIDENTIFIER",LocationStack[LocationStack.Depth-7]);
var lambda_inf_type = new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), null);
var new_typed_pars = new typed_parameters(new ident_list(idd, idd.source_context), lambda_inf_type, parametr_kind.none, null, idd.source_context);
formal_pars.Add(new_typed_pars);
foreach (var id in (ValueStack[ValueStack.Depth-5].stn as expression_list).expressions)
{
var idd1 = id as ident;
if (idd1==null)
parsertools.AddErrorFromResource("ONE_TKIDENTIFIER",id.source_context);
lambda_inf_type = new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), null);
new_typed_pars = new typed_parameters(new ident_list(idd1, idd1.source_context), lambda_inf_type, parametr_kind.none, null, idd1.source_context);
formal_pars.Add(new_typed_pars);
}
if (ValueStack[ValueStack.Depth-3].stn != null)
for (int i = 0; i < (ValueStack[ValueStack.Depth-3].stn as formal_parameters).Count; i++)
formal_pars.Add((ValueStack[ValueStack.Depth-3].stn as formal_parameters).params_list[i]);
formal_pars.source_context = LexLocation.MergeAll(LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5],LocationStack[LocationStack.Depth-4]);
var sl = pair.exprs;
if (sl.expr_lambda_body || SyntaxVisitors.HasNameVisitor.HasName(sl, "result") != null) // <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
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, loc), LexLocation.MergeAll(LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5],LocationStack[LocationStack.Depth-4],LocationStack[LocationStack.Depth-3]));
if (ValueStack[ValueStack.Depth-3].stn != null)
for (int i = 0; i < (ValueStack[ValueStack.Depth-3].stn as formal_parameters).Count; i++)
formalPars.Add((ValueStack[ValueStack.Depth-3].stn as formal_parameters).params_list[i]);
var sl = pair.exprs;
if (sl.expr_lambda_body || SyntaxVisitors.HasNameVisitor.HasName(sl, "result") != null) // <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
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 942: // func_decl_lambda -> expl_func_decl_lambda
{
CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex;
}
break;
case 943: // optional_full_lambda_fp_list -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 944: // optional_full_lambda_fp_list -> tkSemiColon, full_lambda_fp_list
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
}
break;
case 945: // 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 946: // 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 947: // 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 948: // 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 949: // 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 950: // 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 951: // 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 952: // full_lambda_fp_list -> lambda_simple_fp_sect
{
var typed_pars = ValueStack[ValueStack.Depth-1].stn as typed_parameters;
if (typed_pars.vars_type is lambda_inferred_type)
{
CurrentSemanticValue.stn = new formal_parameters();
foreach (var id in typed_pars.idents.idents)
{
var lambda_inf_type = new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), null);
var new_typed_pars = new typed_parameters(new ident_list(id, id.source_context), lambda_inf_type, parametr_kind.none, null, id.source_context);
(CurrentSemanticValue.stn as formal_parameters).Add(new_typed_pars);
}
CurrentSemanticValue.stn.source_context = CurrentLocationSpan;
}
else
{
CurrentSemanticValue.stn = new formal_parameters(typed_pars, CurrentLocationSpan);
}
}
break;
case 953: // 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 954: // 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 955: // lambda_type_ref -> /* empty */
{
CurrentSemanticValue.td = new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), null);
}
break;
case 956: // lambda_type_ref -> tkColon, fptype
{
CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td;
}
break;
case 957: // lambda_type_ref_noproctype -> /* empty */
{
CurrentSemanticValue.td = new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), null);
}
break;
case 958: // lambda_type_ref_noproctype -> tkColon, fptype_noproctype
{
CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td;
}
break;
case 959: // common_lambda_body -> compound_stmt
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
}
break;
case 960: // common_lambda_body -> if_stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 961: // common_lambda_body -> while_stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 962: // common_lambda_body -> repeat_stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 963: // common_lambda_body -> for_stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 964: // common_lambda_body -> foreach_stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 965: // common_lambda_body -> loop_stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 966: // common_lambda_body -> case_stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 967: // common_lambda_body -> try_stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 968: // common_lambda_body -> lock_stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 969: // common_lambda_body -> raise_stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 970: // common_lambda_body -> yield_stmt
{
parsertools.AddErrorFromResource("YIELD_STATEMENT_CANNOT_BE_USED_IN_LAMBDA_BODY", CurrentLocationSpan);
}
break;
case 971: // 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); // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> assign <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> Result
sl.expr_lambda_body = true;
CurrentSemanticValue.stn = sl;
}
break;
case 972: // lambda_function_body -> common_lambda_body
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
}
break;
case 973: // lambda_procedure_body -> proc_call
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 974: // lambda_procedure_body -> assignment
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 975: // 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);
}
}
}