pascalabcnet/Parsers/PascalABCParserNewSaushkin/ABCPascalYacc.cs
Бондарев Иван 8438ed5fc0 fix #1859
2019-03-22 13:49:10 +01:00

6800 lines
481 KiB
C#
Raw Blame History

// (see accompanying GPPGcopyright.rtf)
// GPPG version 1.3.6
// Machine: IVAN-PC
// DateTime: 22.03.2019 13:45:37
// UserName: Ivan
// 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,tkQuestionPoint=14,tkDoubleQuestion=15,tkQuestionSquareOpen=16,tkSizeOf=17,tkTypeOf=18,
tkWhere=19,tkArray=20,tkCase=21,tkClass=22,tkAuto=23,tkStatic=24,
tkConst=25,tkConstructor=26,tkDestructor=27,tkElse=28,tkExcept=29,tkFile=30,
tkFor=31,tkForeach=32,tkFunction=33,tkMatch=34,tkWhen=35,tkIf=36,
tkImplementation=37,tkInherited=38,tkInterface=39,tkProcedure=40,tkOperator=41,tkProperty=42,
tkRaise=43,tkRecord=44,tkSet=45,tkType=46,tkThen=47,tkUses=48,
tkVar=49,tkWhile=50,tkWith=51,tkNil=52,tkGoto=53,tkOf=54,
tkLabel=55,tkLock=56,tkProgram=57,tkEvent=58,tkDefault=59,tkTemplate=60,
tkPacked=61,tkExports=62,tkResourceString=63,tkThreadvar=64,tkSealed=65,tkPartial=66,
tkTo=67,tkDownto=68,tkLoop=69,tkSequence=70,tkYield=71,tkNew=72,
tkOn=73,tkName=74,tkPrivate=75,tkProtected=76,tkPublic=77,tkInternal=78,
tkRead=79,tkWrite=80,tkParseModeExpression=81,tkParseModeStatement=82,tkParseModeType=83,tkBegin=84,
tkEnd=85,tkAsmBody=86,tkILCode=87,tkError=88,INVISIBLE=89,tkRepeat=90,
tkUntil=91,tkDo=92,tkComma=93,tkFinally=94,tkTry=95,tkInitialization=96,
tkFinalization=97,tkUnit=98,tkLibrary=99,tkExternal=100,tkParams=101,tkNamespace=102,
tkAssign=103,tkPlusEqual=104,tkMinusEqual=105,tkMultEqual=106,tkDivEqual=107,tkMinus=108,
tkPlus=109,tkSlash=110,tkStar=111,tkStarStar=112,tkEqual=113,tkGreater=114,
tkGreaterEqual=115,tkLower=116,tkLowerEqual=117,tkNotEqual=118,tkCSharpStyleOr=119,tkArrow=120,
tkOr=121,tkXor=122,tkAnd=123,tkDiv=124,tkMod=125,tkShl=126,
tkShr=127,tkNot=128,tkAs=129,tkIn=130,tkIs=131,tkImplicit=132,
tkExplicit=133,tkAddressOf=134,tkDeref=135,tkIdentifier=136,tkStringLiteral=137,tkFormatStringLiteral=138,
tkAsciiChar=139,tkAbstract=140,tkForward=141,tkOverload=142,tkReintroduce=143,tkOverride=144,
tkVirtual=145,tkExtensionMethod=146,tkInteger=147,tkFloat=148,tkHex=149};
// 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[900];
private static State[] states = new State[1492];
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", "simple_term", "typed_const",
"typed_const_plus", "typed_var_init_expression", "expr", "expr_with_func_decl_lambda",
"const_expr", "elem", "range_expr", "const_elem", "array_const", "factor",
"relop_expr", "expr_dq", "expr_l1", "expr_l1_func_decl_lambda", "simple_expr",
"range_term", "range_factor", "external_directive_ident", "init_const_expr",
"case_label", "variable", "var_reference", "optional_read_expr", "simple_expr_or_nothing",
"var_question_point", "for_cycle_type", "format_expr", "format_const_expr",
"const_expr_or_nothing", "foreach_stmt", "for_stmt", "loop_stmt", "yield_stmt",
"yield_sequence_stmt", "fp_list", "fp_sect_list", "file_type", "sequence_type",
"var_address", "goto_stmt", "func_name_ident", "param_name", "const_field_name",
"func_name_with_template_args", "identifier_or_keyword", "unit_name", "exception_variable",
"const_name", "func_meth_name_ident", "label_name", "type_decl_identifier",
"template_identifier_with_equal", "program_param", "identifier", "identifier_keyword_operatorname",
"func_class_name_ident", "visibility_specifier", "property_specifier_directives",
"non_reserved", "if_stmt", "initialization_part", "template_arguments",
"label_list", "ident_or_keyword_pointseparator_list", "ident_list", "param_name_list",
"inherited_message", "implementation_part", "interface_part", "abc_interface_part",
"simple_type_list", "literal", "one_literal", "literal_list", "label_decl_sect",
"lock_stmt", "func_name", "proc_name", "optional_proc_name", "qualified_identifier",
"new_expr", "allowable_expr_as_stmt", "parts", "inclass_block", "block",
"proc_func_external_block", "exception_class_type_identifier", "simple_type_identifier",
"base_class_name", "base_classes_names_list", "optional_base_classes",
"one_compiler_directive", "optional_head_compiler_directives", "head_compiler_directives",
"program_heading_2", "optional_tk_point", "program_param_list", "optional_semicolon",
"operator_name_ident", "const_relop", "const_addop", "assign_operator",
"const_mulop", "relop", "addop", "mulop", "sign", "overload_operator",
"typecast_op", "property_specifiers", "write_property_specifiers", "read_property_specifiers",
"array_defaultproperty", "meth_modificators", "optional_method_modificators",
"optional_method_modificators1", "meth_modificator", "property_modificator",
"optional_property_initialization", "proc_call", "proc_func_constr_destr_decl",
"proc_func_decl", "inclass_proc_func_decl", "inclass_proc_func_decl_noclass",
"constr_destr_decl", "inclass_constr_destr_decl", "method_decl", "proc_func_constr_destr_decl_with_attr",
"proc_func_decl_noclass", "method_header", "proc_type_decl", "procedural_type_kind",
"proc_header", "procedural_type", "constr_destr_header", "proc_func_header",
"func_header", "method_procfunc_header", "int_func_header", "int_proc_header",
"property_interface", "program_file", "program_header", "parameter_decl",
"parameter_decl_list", "property_parameter_list", "const_set", "question_expr",
"question_constexpr", "record_const", "const_field_list_1", "const_field_list",
"const_field", "repeat_stmt", "raise_stmt", "pointer_type", "attribute_declaration",
"one_or_some_attribute", "stmt_list", "else_case", "exception_block_else_branch",
"compound_stmt", "string_type", "sizeof_expr", "simple_property_definition",
"stmt_or_expression", "unlabelled_stmt", "stmt", "case_item", "set_type",
"as_is_expr", "as_is_constexpr", "is_expr", "as_expr", "power_expr", "power_constexpr",
"unsized_array_type", "simple_type_or_", "simple_type", "simple_type_question",
"foreach_stmt_ident_dype_opt", "fptype", "type_ref", "fptype_noproctype",
"array_type", "template_param", "template_empty_param", "structured_type",
"unpacked_structured_type", "empty_template_type_reference", "simple_or_template_type_reference",
"type_ref_or_secific", "for_stmt_decl_or_assign", "type_decl_type", "type_ref_and_secific_list",
"type_decl_sect", "try_handler", "class_or_interface_keyword", "optional_tk_do",
"keyword", "reserved_keyword", "typeof_expr", "simple_fp_sect", "template_param_list",
"template_empty_param_list", "template_type_params", "template_type_empty_params",
"template_type", "try_stmt", "uses_clause", "used_units_list", "unit_file",
"used_unit_name", "unit_header", "var_decl_sect", "var_decl", "var_decl_part",
"field_definition", "var_decl_with_assign_var_tuple", "var_stmt", "where_part",
"where_part_list", "optional_where_section", "while_stmt", "with_stmt",
"variable_as_type", "dotted_identifier", "func_decl_lambda", "expl_func_decl_lambda",
"lambda_type_ref", "lambda_type_ref_noproctype", "full_lambda_fp_list",
"lambda_simple_fp_sect", "lambda_function_body", "lambda_procedure_body",
"common_lambda_body", "optional_full_lambda_fp_list", "field_in_unnamed_object",
"list_fields_in_unnamed_object", "func_class_name_ident_list", "rem_lambda",
"variable_list", "var_ident_list", "tkAssignOrEqual", "pattern", "pattern_optional_var",
"match_with", "pattern_case", "pattern_cases", "pattern_out_param", "pattern_out_param_optional_var",
"pattern_out_param_list", "pattern_out_param_list_optional_var", "$accept",
};
static GPPGParser() {
states[0] = new State(new int[]{57,1399,11,606,81,1474,83,1479,82,1486,3,-25,48,-25,84,-25,55,-25,25,-25,63,-25,46,-25,49,-25,58,-25,40,-25,33,-25,24,-25,22,-25,26,-25,27,-25,98,-197,99,-197,102,-197},new int[]{-1,1,-220,3,-221,4,-290,1411,-6,1412,-235,911,-161,1473});
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,1395,48,-12,84,-12,55,-12,25,-12,63,-12,46,-12,49,-12,58,-12,11,-12,40,-12,33,-12,24,-12,22,-12,26,-12,27,-12},new int[]{-171,5,-172,1393,-170,1398});
states[5] = new State(-36,new int[]{-288,6});
states[6] = new State(new int[]{48,14,55,-60,25,-60,63,-60,46,-60,49,-60,58,-60,11,-60,40,-60,33,-60,24,-60,22,-60,26,-60,27,-60,84,-60},new int[]{-17,7,-34,114,-38,1330,-39,1331});
states[7] = new State(new int[]{7,9,10,10,5,11,93,12,6,13,2,-24},new int[]{-174,8});
states[8] = new State(-18);
states[9] = new State(-19);
states[10] = new State(-20);
states[11] = new State(-21);
states[12] = new State(-22);
states[13] = new State(-23);
states[14] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,78,32,77,33,76,34,75,35,65,36,60,37,121,38,18,39,17,40,59,41,19,42,122,43,123,44,124,45,125,46,126,47,127,48,128,49,129,50,130,51,131,52,20,53,70,54,84,55,21,56,22,57,25,58,26,59,27,60,68,61,92,62,28,63,29,64,30,65,23,66,97,67,94,68,31,69,32,70,33,71,36,72,37,73,38,74,96,75,39,76,40,77,42,78,43,79,44,80,90,81,45,82,95,83,46,84,24,85,47,86,67,87,91,88,48,89,49,90,50,91,51,92,52,93,53,94,54,95,55,96,57,97,98,98,99,99,102,100,100,101,101,102,58,103,71,104,34,105,35,106,41,108,85,109},new int[]{-289,15,-291,113,-142,19,-123,112,-132,22,-136,24,-137,27,-278,30,-135,31,-279,107});
states[15] = new State(new int[]{10,16,93,17});
states[16] = new State(-37);
states[17] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,78,32,77,33,76,34,75,35,65,36,60,37,121,38,18,39,17,40,59,41,19,42,122,43,123,44,124,45,125,46,126,47,127,48,128,49,129,50,130,51,131,52,20,53,70,54,84,55,21,56,22,57,25,58,26,59,27,60,68,61,92,62,28,63,29,64,30,65,23,66,97,67,94,68,31,69,32,70,33,71,36,72,37,73,38,74,96,75,39,76,40,77,42,78,43,79,44,80,90,81,45,82,95,83,46,84,24,85,47,86,67,87,91,88,48,89,49,90,50,91,51,92,52,93,53,94,54,95,55,96,57,97,98,98,99,99,102,100,100,101,101,102,58,103,71,104,34,105,35,106,41,108,85,109},new int[]{-291,18,-142,19,-123,112,-132,22,-136,24,-137,27,-278,30,-135,31,-279,107});
states[18] = new State(-39);
states[19] = new State(new int[]{7,20,130,110,10,-40,93,-40});
states[20] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,78,32,77,33,76,34,75,35,65,36,60,37,121,38,18,39,17,40,59,41,19,42,122,43,123,44,124,45,125,46,126,47,127,48,128,49,129,50,130,51,131,52,20,53,70,54,84,55,21,56,22,57,25,58,26,59,27,60,68,61,92,62,28,63,29,64,30,65,23,66,97,67,94,68,31,69,32,70,33,71,36,72,37,73,38,74,96,75,39,76,40,77,42,78,43,79,44,80,90,81,45,82,95,83,46,84,24,85,47,86,67,87,91,88,48,89,49,90,50,91,51,92,52,93,53,94,54,95,55,96,57,97,98,98,99,99,102,100,100,101,101,102,58,103,71,104,34,105,35,106,41,108,85,109},new int[]{-123,21,-132,22,-136,24,-137,27,-278,30,-135,31,-279,107});
states[21] = new State(-35);
states[22] = new State(-735);
states[23] = new State(-732);
states[24] = new State(-733);
states[25] = new State(-750);
states[26] = new State(-751);
states[27] = new State(-734);
states[28] = new State(-752);
states[29] = new State(-753);
states[30] = new State(-736);
states[31] = new State(-758);
states[32] = new State(-754);
states[33] = new State(-755);
states[34] = new State(-756);
states[35] = new State(-757);
states[36] = new State(-759);
states[37] = new State(-760);
states[38] = new State(-761);
states[39] = new State(-762);
states[40] = new State(-763);
states[41] = new State(-764);
states[42] = new State(-765);
states[43] = new State(-766);
states[44] = new State(-767);
states[45] = new State(-768);
states[46] = new State(-769);
states[47] = new State(-770);
states[48] = new State(-771);
states[49] = new State(-772);
states[50] = new State(-773);
states[51] = new State(-774);
states[52] = new State(-775);
states[53] = new State(-776);
states[54] = new State(-777);
states[55] = new State(-778);
states[56] = new State(-779);
states[57] = new State(-780);
states[58] = new State(-781);
states[59] = new State(-782);
states[60] = new State(-783);
states[61] = new State(-784);
states[62] = new State(-785);
states[63] = new State(-786);
states[64] = new State(-787);
states[65] = new State(-788);
states[66] = new State(-789);
states[67] = new State(-790);
states[68] = new State(-791);
states[69] = new State(-792);
states[70] = new State(-793);
states[71] = new State(-794);
states[72] = new State(-795);
states[73] = new State(-796);
states[74] = new State(-797);
states[75] = new State(-798);
states[76] = new State(-799);
states[77] = new State(-800);
states[78] = new State(-801);
states[79] = new State(-802);
states[80] = new State(-803);
states[81] = new State(-804);
states[82] = new State(-805);
states[83] = new State(-806);
states[84] = new State(-807);
states[85] = new State(-808);
states[86] = new State(-809);
states[87] = new State(-810);
states[88] = new State(-811);
states[89] = new State(-812);
states[90] = new State(-813);
states[91] = new State(-814);
states[92] = new State(-815);
states[93] = new State(-816);
states[94] = new State(-817);
states[95] = new State(-818);
states[96] = new State(-819);
states[97] = new State(-820);
states[98] = new State(-821);
states[99] = new State(-822);
states[100] = new State(-823);
states[101] = new State(-824);
states[102] = new State(-825);
states[103] = new State(-826);
states[104] = new State(-827);
states[105] = new State(-828);
states[106] = new State(-829);
states[107] = new State(-737);
states[108] = new State(-830);
states[109] = new State(-831);
states[110] = new State(new int[]{137,111});
states[111] = new State(-41);
states[112] = new State(-34);
states[113] = new State(-38);
states[114] = new State(new int[]{84,116},new int[]{-240,115});
states[115] = new State(-32);
states[116] = new State(new int[]{134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,492,8,493,17,247,18,252,137,149,139,150,138,152,147,658,149,155,148,156,53,637,84,116,36,627,21,644,90,660,50,665,31,670,51,680,95,686,43,693,32,696,49,704,56,736,71,741,69,728,34,748,85,-476,10,-476},new int[]{-237,117,-246,656,-245,121,-4,122,-100,123,-117,337,-99,344,-132,657,-136,24,-137,27,-177,357,-242,500,-280,501,-14,633,-150,146,-152,147,-151,151,-15,153,-16,502,-54,634,-103,524,-198,635,-118,636,-240,641,-138,642,-32,643,-232,659,-302,664,-109,669,-303,679,-145,684,-287,685,-233,692,-108,695,-298,703,-55,732,-160,733,-159,734,-154,735,-111,740,-112,745,-110,746,-325,747,-128,852});
states[117] = new State(new int[]{85,118,10,119});
states[118] = new State(-512);
states[119] = new State(new int[]{134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,492,8,493,17,247,18,252,137,149,139,150,138,152,147,658,149,155,148,156,53,637,84,116,36,627,21,644,90,660,50,665,31,670,51,680,95,686,43,693,32,696,49,704,56,736,71,741,69,728,34,748,85,-476,10,-476,91,-476,94,-476,29,-476,97,-476},new int[]{-246,120,-245,121,-4,122,-100,123,-117,337,-99,344,-132,657,-136,24,-137,27,-177,357,-242,500,-280,501,-14,633,-150,146,-152,147,-151,151,-15,153,-16,502,-54,634,-103,524,-198,635,-118,636,-240,641,-138,642,-32,643,-232,659,-302,664,-109,669,-303,679,-145,684,-287,685,-233,692,-108,695,-298,703,-55,732,-160,733,-159,734,-154,735,-111,740,-112,745,-110,746,-325,747,-128,852});
states[120] = new State(-514);
states[121] = new State(-474);
states[122] = new State(-477);
states[123] = new State(new int[]{103,382,104,383,105,384,106,385,107,386,85,-510,10,-510,91,-510,94,-510,29,-510,97,-510,28,-510,93,-510,12,-510,9,-510,92,-510,80,-510,79,-510,2,-510,78,-510,77,-510,76,-510,75,-510},new int[]{-180,124});
states[124] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,507,17,247,18,252,5,576,33,620,40,818},new int[]{-82,125,-81,126,-91,127,-90,132,-89,290,-93,298,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,351,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574,-105,575,-306,618,-307,619});
states[125] = new State(-504);
states[126] = new State(-574);
states[127] = new State(new int[]{13,128,85,-576,10,-576,91,-576,94,-576,29,-576,97,-576,28,-576,93,-576,12,-576,9,-576,92,-576,80,-576,79,-576,2,-576,78,-576,77,-576,76,-576,75,-576,6,-576});
states[128] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252},new int[]{-91,129,-90,132,-89,290,-93,355,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574});
states[129] = new State(new int[]{5,130,13,128});
states[130] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252},new int[]{-91,131,-90,132,-89,290,-93,355,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574});
states[131] = new State(new int[]{13,128,85,-587,10,-587,91,-587,94,-587,29,-587,97,-587,28,-587,93,-587,12,-587,9,-587,92,-587,80,-587,79,-587,2,-587,78,-587,77,-587,76,-587,75,-587,5,-587,6,-587,47,-587,54,-587,134,-587,136,-587,74,-587,72,-587,41,-587,38,-587,8,-587,17,-587,18,-587,137,-587,139,-587,138,-587,147,-587,149,-587,148,-587,53,-587,84,-587,36,-587,21,-587,90,-587,50,-587,31,-587,51,-587,95,-587,43,-587,32,-587,49,-587,56,-587,71,-587,69,-587,34,-587,67,-587,68,-587});
states[132] = new State(new int[]{15,133,13,-578,85,-578,10,-578,91,-578,94,-578,29,-578,97,-578,28,-578,93,-578,12,-578,9,-578,92,-578,80,-578,79,-578,2,-578,78,-578,77,-578,76,-578,75,-578,5,-578,6,-578,47,-578,54,-578,134,-578,136,-578,74,-578,72,-578,41,-578,38,-578,8,-578,17,-578,18,-578,137,-578,139,-578,138,-578,147,-578,149,-578,148,-578,53,-578,84,-578,36,-578,21,-578,90,-578,50,-578,31,-578,51,-578,95,-578,43,-578,32,-578,49,-578,56,-578,71,-578,69,-578,34,-578,67,-578,68,-578});
states[133] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252},new int[]{-89,134,-93,355,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573});
states[134] = new State(new int[]{113,291,118,292,116,293,114,294,117,295,115,296,130,297,15,-583,13,-583,85,-583,10,-583,91,-583,94,-583,29,-583,97,-583,28,-583,93,-583,12,-583,9,-583,92,-583,80,-583,79,-583,2,-583,78,-583,77,-583,76,-583,75,-583,5,-583,6,-583,47,-583,54,-583,134,-583,136,-583,74,-583,72,-583,41,-583,38,-583,8,-583,17,-583,18,-583,137,-583,139,-583,138,-583,147,-583,149,-583,148,-583,53,-583,84,-583,36,-583,21,-583,90,-583,50,-583,31,-583,51,-583,95,-583,43,-583,32,-583,49,-583,56,-583,71,-583,69,-583,34,-583,67,-583,68,-583},new int[]{-182,135});
states[135] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252},new int[]{-93,136,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,580,-252,573});
states[136] = new State(new int[]{109,303,108,304,121,305,122,306,119,307,113,-605,118,-605,116,-605,114,-605,117,-605,115,-605,130,-605,15,-605,13,-605,85,-605,10,-605,91,-605,94,-605,29,-605,97,-605,28,-605,93,-605,12,-605,9,-605,92,-605,80,-605,79,-605,2,-605,78,-605,77,-605,76,-605,75,-605,5,-605,6,-605,47,-605,54,-605,134,-605,136,-605,74,-605,72,-605,41,-605,38,-605,8,-605,17,-605,18,-605,137,-605,139,-605,138,-605,147,-605,149,-605,148,-605,53,-605,84,-605,36,-605,21,-605,90,-605,50,-605,31,-605,51,-605,95,-605,43,-605,32,-605,49,-605,56,-605,71,-605,69,-605,34,-605,67,-605,68,-605},new int[]{-183,137});
states[137] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252},new int[]{-76,138,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,580,-252,573});
states[138] = new State(new int[]{131,309,129,311,111,313,110,314,124,315,125,316,126,317,127,318,123,319,5,-643,109,-643,108,-643,121,-643,122,-643,119,-643,113,-643,118,-643,116,-643,114,-643,117,-643,115,-643,130,-643,15,-643,13,-643,85,-643,10,-643,91,-643,94,-643,29,-643,97,-643,28,-643,93,-643,12,-643,9,-643,92,-643,80,-643,79,-643,2,-643,78,-643,77,-643,76,-643,75,-643,6,-643,47,-643,54,-643,134,-643,136,-643,74,-643,72,-643,41,-643,38,-643,8,-643,17,-643,18,-643,137,-643,139,-643,138,-643,147,-643,149,-643,148,-643,53,-643,84,-643,36,-643,21,-643,90,-643,50,-643,31,-643,51,-643,95,-643,43,-643,32,-643,49,-643,56,-643,71,-643,69,-643,34,-643,67,-643,68,-643},new int[]{-184,139});
states[139] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,29,41,358,38,388,8,390,17,247,18,252},new int[]{-88,140,-253,141,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-77,527});
states[140] = new State(new int[]{131,-660,129,-660,111,-660,110,-660,124,-660,125,-660,126,-660,127,-660,123,-660,5,-660,109,-660,108,-660,121,-660,122,-660,119,-660,113,-660,118,-660,116,-660,114,-660,117,-660,115,-660,130,-660,15,-660,13,-660,85,-660,10,-660,91,-660,94,-660,29,-660,97,-660,28,-660,93,-660,12,-660,9,-660,92,-660,80,-660,79,-660,2,-660,78,-660,77,-660,76,-660,75,-660,6,-660,47,-660,54,-660,134,-660,136,-660,74,-660,72,-660,41,-660,38,-660,8,-660,17,-660,18,-660,137,-660,139,-660,138,-660,147,-660,149,-660,148,-660,53,-660,84,-660,36,-660,21,-660,90,-660,50,-660,31,-660,51,-660,95,-660,43,-660,32,-660,49,-660,56,-660,71,-660,69,-660,34,-660,67,-660,68,-660,112,-655});
states[141] = new State(-661);
states[142] = new State(-672);
states[143] = new State(new int[]{7,144,131,-673,129,-673,111,-673,110,-673,124,-673,125,-673,126,-673,127,-673,123,-673,5,-673,109,-673,108,-673,121,-673,122,-673,119,-673,113,-673,118,-673,116,-673,114,-673,117,-673,115,-673,130,-673,15,-673,13,-673,85,-673,10,-673,91,-673,94,-673,29,-673,97,-673,28,-673,93,-673,12,-673,9,-673,92,-673,80,-673,79,-673,2,-673,78,-673,77,-673,76,-673,75,-673,112,-673,6,-673,47,-673,54,-673,134,-673,136,-673,74,-673,72,-673,41,-673,38,-673,8,-673,17,-673,18,-673,137,-673,139,-673,138,-673,147,-673,149,-673,148,-673,53,-673,84,-673,36,-673,21,-673,90,-673,50,-673,31,-673,51,-673,95,-673,43,-673,32,-673,49,-673,56,-673,71,-673,69,-673,34,-673,67,-673,68,-673,11,-696});
states[144] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,78,32,77,33,76,34,75,35,65,36,60,37,121,38,18,39,17,40,59,41,19,42,122,43,123,44,124,45,125,46,126,47,127,48,128,49,129,50,130,51,131,52,20,53,70,54,84,55,21,56,22,57,25,58,26,59,27,60,68,61,92,62,28,63,29,64,30,65,23,66,97,67,94,68,31,69,32,70,33,71,36,72,37,73,38,74,96,75,39,76,40,77,42,78,43,79,44,80,90,81,45,82,95,83,46,84,24,85,47,86,67,87,91,88,48,89,49,90,50,91,51,92,52,93,53,94,54,95,55,96,57,97,98,98,99,99,102,100,100,101,101,102,58,103,71,104,34,105,35,106,41,108,85,109},new int[]{-123,145,-132,22,-136,24,-137,27,-278,30,-135,31,-279,107});
states[145] = new State(-703);
states[146] = new State(-680);
states[147] = new State(new int[]{137,149,139,150,7,-721,11,-721,131,-721,129,-721,111,-721,110,-721,124,-721,125,-721,126,-721,127,-721,123,-721,5,-721,109,-721,108,-721,121,-721,122,-721,119,-721,113,-721,118,-721,116,-721,114,-721,117,-721,115,-721,130,-721,15,-721,13,-721,85,-721,10,-721,91,-721,94,-721,29,-721,97,-721,28,-721,93,-721,12,-721,9,-721,92,-721,80,-721,79,-721,2,-721,78,-721,77,-721,76,-721,75,-721,112,-721,6,-721,47,-721,54,-721,134,-721,136,-721,74,-721,72,-721,41,-721,38,-721,8,-721,17,-721,18,-721,138,-721,147,-721,149,-721,148,-721,53,-721,84,-721,36,-721,21,-721,90,-721,50,-721,31,-721,51,-721,95,-721,43,-721,32,-721,49,-721,56,-721,71,-721,69,-721,34,-721,67,-721,68,-721,120,-721,103,-721,4,-721,135,-721},new int[]{-151,148});
states[148] = new State(-724);
states[149] = new State(-719);
states[150] = new State(-720);
states[151] = new State(-723);
states[152] = new State(-722);
states[153] = new State(-681);
states[154] = new State(-176);
states[155] = new State(-177);
states[156] = new State(-178);
states[157] = new State(-674);
states[158] = new State(new int[]{8,159});
states[159] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-269,160,-166,162,-132,196,-136,24,-137,27});
states[160] = new State(new int[]{9,161});
states[161] = new State(-670);
states[162] = new State(new int[]{7,163,4,166,116,168,9,-590,129,-590,131,-590,111,-590,110,-590,124,-590,125,-590,126,-590,127,-590,123,-590,109,-590,108,-590,121,-590,122,-590,113,-590,118,-590,114,-590,117,-590,115,-590,130,-590,13,-590,6,-590,93,-590,12,-590,5,-590,85,-590,10,-590,91,-590,94,-590,29,-590,97,-590,28,-590,92,-590,80,-590,79,-590,2,-590,78,-590,77,-590,76,-590,75,-590,11,-590,8,-590,119,-590,15,-590,47,-590,54,-590,134,-590,136,-590,74,-590,72,-590,41,-590,38,-590,17,-590,18,-590,137,-590,139,-590,138,-590,147,-590,149,-590,148,-590,53,-590,84,-590,36,-590,21,-590,90,-590,50,-590,31,-590,51,-590,95,-590,43,-590,32,-590,49,-590,56,-590,71,-590,69,-590,34,-590,67,-590,68,-590,112,-590},new int[]{-284,165});
states[163] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,78,32,77,33,76,34,75,35,65,36,60,37,121,38,18,39,17,40,59,41,19,42,122,43,123,44,124,45,125,46,126,47,127,48,128,49,129,50,130,51,131,52,20,53,70,54,84,55,21,56,22,57,25,58,26,59,27,60,68,61,92,62,28,63,29,64,30,65,23,66,97,67,94,68,31,69,32,70,33,71,36,72,37,73,38,74,96,75,39,76,40,77,42,78,43,79,44,80,90,81,45,82,95,83,46,84,24,85,47,86,67,87,91,88,48,89,49,90,50,91,51,92,52,93,53,94,54,95,55,96,57,97,98,98,99,99,102,100,100,101,101,102,58,103,71,104,34,105,35,106,41,108,85,109},new int[]{-123,164,-132,22,-136,24,-137,27,-278,30,-135,31,-279,107});
states[164] = new State(-246);
states[165] = new State(-591);
states[166] = new State(new int[]{116,168},new int[]{-284,167});
states[167] = new State(-592);
states[168] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,334,108,335,137,149,139,150,138,152,8,440,20,456,44,464,45,542,30,546,70,550,61,553,40,558,33,582},new int[]{-282,169,-264,266,-257,173,-85,175,-94,267,-95,268,-166,269,-132,196,-136,24,-137,27,-15,435,-185,436,-150,439,-152,147,-151,151,-266,1281,-267,454,-263,455,-255,462,-28,463,-248,541,-115,545,-116,549,-212,1282,-210,556,-209,557,-286,1283});
states[169] = new State(new int[]{114,170,93,171});
states[170] = new State(-220);
states[171] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,334,108,335,137,149,139,150,138,152,8,440,20,456,44,464,45,542,30,546,70,550,61,553,40,558,33,582},new int[]{-264,172,-257,173,-85,175,-94,267,-95,268,-166,269,-132,196,-136,24,-137,27,-15,435,-185,436,-150,439,-152,147,-151,151,-266,1281,-267,454,-263,455,-255,462,-28,463,-248,541,-115,545,-116,549,-212,1282,-210,556,-209,557,-286,1283});
states[172] = new State(-224);
states[173] = new State(new int[]{13,174,114,-228,93,-228,113,-228,9,-228,10,-228,120,-228,103,-228,85,-228,91,-228,94,-228,29,-228,97,-228,28,-228,12,-228,92,-228,80,-228,79,-228,2,-228,78,-228,77,-228,76,-228,75,-228,130,-228});
states[174] = new State(-229);
states[175] = new State(new int[]{6,1328,109,1317,108,1318,121,1319,122,1320,13,-233,114,-233,93,-233,113,-233,9,-233,10,-233,120,-233,103,-233,85,-233,91,-233,94,-233,29,-233,97,-233,28,-233,12,-233,92,-233,80,-233,79,-233,2,-233,78,-233,77,-233,76,-233,75,-233,130,-233},new int[]{-179,176});
states[176] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,334,108,335,137,149,139,150,138,152},new int[]{-94,177,-95,268,-166,438,-132,196,-136,24,-137,27,-15,435,-185,436,-150,439,-152,147,-151,151});
states[177] = new State(new int[]{111,218,110,219,124,220,125,221,126,222,127,223,123,224,6,-237,109,-237,108,-237,121,-237,122,-237,13,-237,114,-237,93,-237,113,-237,9,-237,10,-237,120,-237,103,-237,85,-237,91,-237,94,-237,29,-237,97,-237,28,-237,12,-237,92,-237,80,-237,79,-237,2,-237,78,-237,77,-237,76,-237,75,-237,130,-237},new int[]{-181,178});
states[178] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,334,108,335,137,149,139,150,138,152},new int[]{-95,179,-166,438,-132,196,-136,24,-137,27,-15,435,-185,436,-150,439,-152,147,-151,151});
states[179] = new State(new int[]{8,180,111,-239,110,-239,124,-239,125,-239,126,-239,127,-239,123,-239,6,-239,109,-239,108,-239,121,-239,122,-239,13,-239,114,-239,93,-239,113,-239,9,-239,10,-239,120,-239,103,-239,85,-239,91,-239,94,-239,29,-239,97,-239,28,-239,12,-239,92,-239,80,-239,79,-239,2,-239,78,-239,77,-239,76,-239,75,-239,130,-239});
states[180] = new State(new int[]{136,23,79,25,80,26,74,28,72,227,137,149,139,150,138,152,147,154,149,155,148,156,38,244,17,247,18,252,11,417,52,421,134,422,8,424,128,427,109,334,108,335,9,-171},new int[]{-69,181,-67,183,-86,420,-83,186,-75,191,-12,215,-10,225,-13,201,-132,226,-136,24,-137,27,-150,242,-152,147,-151,151,-15,243,-242,246,-280,251,-225,416,-185,429,-159,431,-250,432,-254,433,-227,434});
states[181] = new State(new int[]{9,182});
states[182] = new State(-244);
states[183] = new State(new int[]{93,184,9,-170,12,-170});
states[184] = new State(new int[]{136,23,79,25,80,26,74,28,72,227,137,149,139,150,138,152,147,154,149,155,148,156,38,244,17,247,18,252,11,417,52,421,134,422,8,424,128,427,109,334,108,335},new int[]{-86,185,-83,186,-75,191,-12,215,-10,225,-13,201,-132,226,-136,24,-137,27,-150,242,-152,147,-151,151,-15,243,-242,246,-280,251,-225,416,-185,429,-159,431,-250,432,-254,433,-227,434});
states[185] = new State(-173);
states[186] = new State(new int[]{13,187,6,1301,93,-174,9,-174,12,-174,5,-174});
states[187] = new State(new int[]{136,23,79,25,80,26,74,28,72,227,137,149,139,150,138,152,147,154,149,155,148,156,38,244,17,247,18,252,11,417,52,421,134,422,8,424,128,427,109,334,108,335},new int[]{-83,188,-75,191,-12,215,-10,225,-13,201,-132,226,-136,24,-137,27,-150,242,-152,147,-151,151,-15,243,-242,246,-280,251,-225,416,-185,429,-159,431,-250,432,-254,433,-227,434});
states[188] = new State(new int[]{5,189,13,187});
states[189] = new State(new int[]{136,23,79,25,80,26,74,28,72,227,137,149,139,150,138,152,147,154,149,155,148,156,38,244,17,247,18,252,11,417,52,421,134,422,8,424,128,427,109,334,108,335},new int[]{-83,190,-75,191,-12,215,-10,225,-13,201,-132,226,-136,24,-137,27,-150,242,-152,147,-151,151,-15,243,-242,246,-280,251,-225,416,-185,429,-159,431,-250,432,-254,433,-227,434});
states[190] = new State(new int[]{13,187,6,-116,93,-116,9,-116,12,-116,5,-116,85,-116,10,-116,91,-116,94,-116,29,-116,97,-116,28,-116,92,-116,80,-116,79,-116,2,-116,78,-116,77,-116,76,-116,75,-116});
states[191] = new State(new int[]{109,1317,108,1318,121,1319,122,1320,113,1321,118,1322,116,1323,114,1324,117,1325,115,1326,130,1327,13,-113,6,-113,93,-113,9,-113,12,-113,5,-113,85,-113,10,-113,91,-113,94,-113,29,-113,97,-113,28,-113,92,-113,80,-113,79,-113,2,-113,78,-113,77,-113,76,-113,75,-113},new int[]{-179,192,-178,1315});
states[192] = new State(new int[]{136,23,79,25,80,26,74,28,72,227,137,149,139,150,138,152,147,154,149,155,148,156,38,244,17,247,18,252,11,417,52,421,134,422,8,424,128,427,109,334,108,335},new int[]{-12,193,-10,225,-13,201,-132,226,-136,24,-137,27,-150,242,-152,147,-151,151,-15,243,-242,246,-280,251,-225,416,-185,429,-159,431,-250,432,-254,433});
states[193] = new State(new int[]{129,216,131,217,111,218,110,219,124,220,125,221,126,222,127,223,123,224,109,-125,108,-125,121,-125,122,-125,113,-125,118,-125,116,-125,114,-125,117,-125,115,-125,130,-125,13,-125,6,-125,93,-125,9,-125,12,-125,5,-125,85,-125,10,-125,91,-125,94,-125,29,-125,97,-125,28,-125,92,-125,80,-125,79,-125,2,-125,78,-125,77,-125,76,-125,75,-125},new int[]{-187,194,-181,197});
states[194] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-269,195,-166,162,-132,196,-136,24,-137,27});
states[195] = new State(-130);
states[196] = new State(-245);
states[197] = new State(new int[]{136,23,79,25,80,26,74,28,72,227,137,149,139,150,138,152,147,154,149,155,148,156,38,244,17,247,18,252,11,417,52,421,134,422,8,424,128,427,109,334,108,335},new int[]{-10,198,-254,1314,-13,201,-132,226,-136,24,-137,27,-150,242,-152,147,-151,151,-15,243,-242,246,-280,251,-225,416,-185,429,-159,431});
states[198] = new State(new int[]{112,199,129,-135,131,-135,111,-135,110,-135,124,-135,125,-135,126,-135,127,-135,123,-135,109,-135,108,-135,121,-135,122,-135,113,-135,118,-135,116,-135,114,-135,117,-135,115,-135,130,-135,13,-135,6,-135,93,-135,9,-135,12,-135,5,-135,85,-135,10,-135,91,-135,94,-135,29,-135,97,-135,28,-135,92,-135,80,-135,79,-135,2,-135,78,-135,77,-135,76,-135,75,-135});
states[199] = new State(new int[]{136,23,79,25,80,26,74,28,72,227,137,149,139,150,138,152,147,154,149,155,148,156,38,244,17,247,18,252,11,417,52,421,134,422,8,424,128,427,109,334,108,335},new int[]{-10,200,-13,201,-132,226,-136,24,-137,27,-150,242,-152,147,-151,151,-15,243,-242,246,-280,251,-225,416,-185,429,-159,431});
states[200] = new State(-131);
states[201] = new State(new int[]{4,203,11,205,7,1307,135,1309,8,1310,112,-144,129,-144,131,-144,111,-144,110,-144,124,-144,125,-144,126,-144,127,-144,123,-144,109,-144,108,-144,121,-144,122,-144,113,-144,118,-144,116,-144,114,-144,117,-144,115,-144,130,-144,13,-144,6,-144,93,-144,9,-144,12,-144,5,-144,85,-144,10,-144,91,-144,94,-144,29,-144,97,-144,28,-144,92,-144,80,-144,79,-144,2,-144,78,-144,77,-144,76,-144,75,-144},new int[]{-11,202});
states[202] = new State(-161);
states[203] = new State(new int[]{116,168},new int[]{-284,204});
states[204] = new State(-162);
states[205] = new State(new int[]{136,23,79,25,80,26,74,28,72,227,137,149,139,150,138,152,147,154,149,155,148,156,38,244,17,247,18,252,11,417,52,421,134,422,8,424,128,427,109,334,108,335,5,1303,12,-171},new int[]{-106,206,-69,208,-83,210,-75,191,-12,215,-10,225,-13,201,-132,226,-136,24,-137,27,-150,242,-152,147,-151,151,-15,243,-242,246,-280,251,-225,416,-185,429,-159,431,-250,432,-254,433,-227,434,-67,183,-86,420});
states[206] = new State(new int[]{12,207});
states[207] = new State(-163);
states[208] = new State(new int[]{12,209});
states[209] = new State(-167);
states[210] = new State(new int[]{5,211,13,187,6,1301,93,-174,12,-174});
states[211] = new State(new int[]{136,23,79,25,80,26,74,28,72,227,137,149,139,150,138,152,147,154,149,155,148,156,38,244,17,247,18,252,11,417,52,421,134,422,8,424,128,427,109,334,108,335,5,-626,12,-626},new int[]{-107,212,-83,1300,-75,191,-12,215,-10,225,-13,201,-132,226,-136,24,-137,27,-150,242,-152,147,-151,151,-15,243,-242,246,-280,251,-225,416,-185,429,-159,431,-250,432,-254,433,-227,434});
states[212] = new State(new int[]{5,213,12,-631});
states[213] = new State(new int[]{136,23,79,25,80,26,74,28,72,227,137,149,139,150,138,152,147,154,149,155,148,156,38,244,17,247,18,252,11,417,52,421,134,422,8,424,128,427,109,334,108,335},new int[]{-83,214,-75,191,-12,215,-10,225,-13,201,-132,226,-136,24,-137,27,-150,242,-152,147,-151,151,-15,243,-242,246,-280,251,-225,416,-185,429,-159,431,-250,432,-254,433,-227,434});
states[214] = new State(new int[]{13,187,12,-633});
states[215] = new State(new int[]{129,216,131,217,111,218,110,219,124,220,125,221,126,222,127,223,123,224,109,-124,108,-124,121,-124,122,-124,113,-124,118,-124,116,-124,114,-124,117,-124,115,-124,130,-124,13,-124,6,-124,93,-124,9,-124,12,-124,5,-124,85,-124,10,-124,91,-124,94,-124,29,-124,97,-124,28,-124,92,-124,80,-124,79,-124,2,-124,78,-124,77,-124,76,-124,75,-124},new int[]{-187,194,-181,197});
states[216] = new State(-649);
states[217] = new State(-650);
states[218] = new State(-137);
states[219] = new State(-138);
states[220] = new State(-139);
states[221] = new State(-140);
states[222] = new State(-141);
states[223] = new State(-142);
states[224] = new State(-143);
states[225] = new State(new int[]{112,199,129,-132,131,-132,111,-132,110,-132,124,-132,125,-132,126,-132,127,-132,123,-132,109,-132,108,-132,121,-132,122,-132,113,-132,118,-132,116,-132,114,-132,117,-132,115,-132,130,-132,13,-132,6,-132,93,-132,9,-132,12,-132,5,-132,85,-132,10,-132,91,-132,94,-132,29,-132,97,-132,28,-132,92,-132,80,-132,79,-132,2,-132,78,-132,77,-132,76,-132,75,-132});
states[226] = new State(-155);
states[227] = new State(new int[]{22,1289,136,23,79,25,80,26,74,28,72,29,16,-753,8,-753,7,-753,135,-753,4,-753,14,-753,103,-753,104,-753,105,-753,106,-753,107,-753,85,-753,10,-753,11,-753,5,-753,91,-753,94,-753,29,-753,97,-753,120,-753,131,-753,129,-753,111,-753,110,-753,124,-753,125,-753,126,-753,127,-753,123,-753,109,-753,108,-753,121,-753,122,-753,119,-753,113,-753,118,-753,116,-753,114,-753,117,-753,115,-753,130,-753,15,-753,13,-753,28,-753,93,-753,12,-753,9,-753,92,-753,2,-753,78,-753,77,-753,76,-753,75,-753,112,-753,6,-753,47,-753,54,-753,134,-753,41,-753,38,-753,17,-753,18,-753,137,-753,139,-753,138,-753,147,-753,149,-753,148,-753,53,-753,84,-753,36,-753,21,-753,90,-753,50,-753,31,-753,51,-753,95,-753,43,-753,32,-753,49,-753,56,-753,71,-753,69,-753,34,-753,67,-753,68,-753},new int[]{-269,228,-166,162,-132,196,-136,24,-137,27});
states[228] = new State(new int[]{11,230,8,615,85,-602,10,-602,91,-602,94,-602,29,-602,97,-602,131,-602,129,-602,111,-602,110,-602,124,-602,125,-602,126,-602,127,-602,123,-602,5,-602,109,-602,108,-602,121,-602,122,-602,119,-602,113,-602,118,-602,116,-602,114,-602,117,-602,115,-602,130,-602,15,-602,13,-602,28,-602,93,-602,12,-602,9,-602,92,-602,80,-602,79,-602,2,-602,78,-602,77,-602,76,-602,75,-602,6,-602,47,-602,54,-602,134,-602,136,-602,74,-602,72,-602,41,-602,38,-602,17,-602,18,-602,137,-602,139,-602,138,-602,147,-602,149,-602,148,-602,53,-602,84,-602,36,-602,21,-602,90,-602,50,-602,31,-602,51,-602,95,-602,43,-602,32,-602,49,-602,56,-602,71,-602,69,-602,34,-602,67,-602,68,-602,112,-602},new int[]{-65,229});
states[229] = new State(-595);
states[230] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,507,17,247,18,252,5,576,33,620,40,818,12,-712},new int[]{-63,231,-66,348,-82,506,-81,126,-91,127,-90,132,-89,290,-93,298,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,351,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574,-105,575,-306,618,-307,619});
states[231] = new State(new int[]{12,232});
states[232] = new State(new int[]{8,234,85,-594,10,-594,91,-594,94,-594,29,-594,97,-594,131,-594,129,-594,111,-594,110,-594,124,-594,125,-594,126,-594,127,-594,123,-594,5,-594,109,-594,108,-594,121,-594,122,-594,119,-594,113,-594,118,-594,116,-594,114,-594,117,-594,115,-594,130,-594,15,-594,13,-594,28,-594,93,-594,12,-594,9,-594,92,-594,80,-594,79,-594,2,-594,78,-594,77,-594,76,-594,75,-594,6,-594,47,-594,54,-594,134,-594,136,-594,74,-594,72,-594,41,-594,38,-594,17,-594,18,-594,137,-594,139,-594,138,-594,147,-594,149,-594,148,-594,53,-594,84,-594,36,-594,21,-594,90,-594,50,-594,31,-594,51,-594,95,-594,43,-594,32,-594,49,-594,56,-594,71,-594,69,-594,34,-594,67,-594,68,-594,112,-594},new int[]{-5,233});
states[233] = new State(-596);
states[234] = new State(new int[]{136,23,79,25,80,26,74,28,72,227,137,149,139,150,138,152,147,154,149,155,148,156,38,244,17,247,18,252,11,417,52,421,134,422,8,802,128,427,109,334,108,335,59,158,9,-183},new int[]{-62,235,-61,237,-79,805,-78,240,-83,241,-75,191,-12,215,-10,225,-13,201,-132,226,-136,24,-137,27,-150,242,-152,147,-151,151,-15,243,-242,246,-280,251,-225,416,-185,429,-159,431,-250,432,-254,433,-227,434,-87,806,-228,807,-53,808});
states[235] = new State(new int[]{9,236});
states[236] = new State(-593);
states[237] = new State(new int[]{93,238,9,-184});
states[238] = new State(new int[]{136,23,79,25,80,26,74,28,72,227,137,149,139,150,138,152,147,154,149,155,148,156,38,244,17,247,18,252,11,417,52,421,134,422,8,802,128,427,109,334,108,335,59,158},new int[]{-79,239,-78,240,-83,241,-75,191,-12,215,-10,225,-13,201,-132,226,-136,24,-137,27,-150,242,-152,147,-151,151,-15,243,-242,246,-280,251,-225,416,-185,429,-159,431,-250,432,-254,433,-227,434,-87,806,-228,807,-53,808});
states[239] = new State(-186);
states[240] = new State(-404);
states[241] = new State(new int[]{13,187,93,-179,9,-179,85,-179,10,-179,91,-179,94,-179,29,-179,97,-179,28,-179,12,-179,92,-179,80,-179,79,-179,2,-179,78,-179,77,-179,76,-179,75,-179});
states[242] = new State(-156);
states[243] = new State(-157);
states[244] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-132,245,-136,24,-137,27});
states[245] = new State(-158);
states[246] = new State(-159);
states[247] = new State(new int[]{8,248});
states[248] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-269,249,-166,162,-132,196,-136,24,-137,27});
states[249] = new State(new int[]{9,250});
states[250] = new State(-584);
states[251] = new State(-160);
states[252] = new State(new int[]{8,253});
states[253] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-269,254,-268,256,-166,258,-132,196,-136,24,-137,27});
states[254] = new State(new int[]{9,255});
states[255] = new State(-585);
states[256] = new State(new int[]{9,257});
states[257] = new State(-586);
states[258] = new State(new int[]{7,163,4,259,116,261,118,1287,9,-590},new int[]{-284,165,-285,1288});
states[259] = new State(new int[]{116,261,118,1287},new int[]{-284,167,-285,260});
states[260] = new State(-589);
states[261] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,334,108,335,137,149,139,150,138,152,8,440,20,456,44,464,45,542,30,546,70,550,61,553,40,558,33,582,114,-227,93,-227},new int[]{-282,169,-283,262,-264,266,-257,173,-85,175,-94,267,-95,268,-166,269,-132,196,-136,24,-137,27,-15,435,-185,436,-150,439,-152,147,-151,151,-266,1281,-267,454,-263,455,-255,462,-28,463,-248,541,-115,545,-116,549,-212,1282,-210,556,-209,557,-286,1283,-265,1286});
states[262] = new State(new int[]{114,263,93,264});
states[263] = new State(-222);
states[264] = new State(-227,new int[]{-265,265});
states[265] = new State(-226);
states[266] = new State(-223);
states[267] = new State(new int[]{111,218,110,219,124,220,125,221,126,222,127,223,123,224,6,-236,109,-236,108,-236,121,-236,122,-236,13,-236,114,-236,93,-236,113,-236,9,-236,10,-236,120,-236,103,-236,85,-236,91,-236,94,-236,29,-236,97,-236,28,-236,12,-236,92,-236,80,-236,79,-236,2,-236,78,-236,77,-236,76,-236,75,-236,130,-236},new int[]{-181,178});
states[268] = new State(new int[]{8,180,111,-238,110,-238,124,-238,125,-238,126,-238,127,-238,123,-238,6,-238,109,-238,108,-238,121,-238,122,-238,13,-238,114,-238,93,-238,113,-238,9,-238,10,-238,120,-238,103,-238,85,-238,91,-238,94,-238,29,-238,97,-238,28,-238,12,-238,92,-238,80,-238,79,-238,2,-238,78,-238,77,-238,76,-238,75,-238,130,-238});
states[269] = new State(new int[]{7,163,120,270,116,168,8,-240,111,-240,110,-240,124,-240,125,-240,126,-240,127,-240,123,-240,6,-240,109,-240,108,-240,121,-240,122,-240,13,-240,114,-240,93,-240,113,-240,9,-240,10,-240,103,-240,85,-240,91,-240,94,-240,29,-240,97,-240,28,-240,12,-240,92,-240,80,-240,79,-240,2,-240,78,-240,77,-240,76,-240,75,-240,130,-240},new int[]{-284,614});
states[270] = new State(new int[]{8,272,136,23,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,334,108,335,137,149,139,150,138,152,20,456,44,464,45,542,30,546,70,550,61,553,40,558,33,582},new int[]{-264,271,-257,173,-85,175,-94,267,-95,268,-166,269,-132,196,-136,24,-137,27,-15,435,-185,436,-150,439,-152,147,-151,151,-266,1281,-267,454,-263,455,-255,462,-28,463,-248,541,-115,545,-116,549,-212,1282,-210,556,-209,557,-286,1283});
states[271] = new State(-275);
states[272] = new State(new int[]{9,273,136,412,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,334,108,335,137,149,139,150,138,152,8,440,135,451,20,456,44,464,45,542,30,546,70,550,61,553,40,558,33,582},new int[]{-74,278,-72,284,-261,287,-257,410,-85,175,-94,267,-95,268,-166,269,-132,196,-136,24,-137,27,-15,435,-185,436,-150,439,-152,147,-151,151,-258,442,-286,443,-241,449,-234,450,-266,453,-267,454,-263,455,-255,462,-28,463,-248,541,-115,545,-116,549,-212,555,-210,556,-209,557});
states[273] = new State(new int[]{120,274,114,-279,93,-279,113,-279,9,-279,10,-279,103,-279,85,-279,91,-279,94,-279,29,-279,97,-279,28,-279,12,-279,92,-279,80,-279,79,-279,2,-279,78,-279,77,-279,76,-279,75,-279,130,-279});
states[274] = new State(new int[]{8,276,136,23,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,334,108,335,137,149,139,150,138,152,20,456,44,464,45,542,30,546,70,550,61,553,40,558,33,582},new int[]{-264,275,-257,173,-85,175,-94,267,-95,268,-166,269,-132,196,-136,24,-137,27,-15,435,-185,436,-150,439,-152,147,-151,151,-266,1281,-267,454,-263,455,-255,462,-28,463,-248,541,-115,545,-116,549,-212,1282,-210,556,-209,557,-286,1283});
states[275] = new State(-277);
states[276] = new State(new int[]{9,277,136,412,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,334,108,335,137,149,139,150,138,152,8,440,135,451,20,456,44,464,45,542,30,546,70,550,61,553,40,558,33,582},new int[]{-74,278,-72,284,-261,287,-257,410,-85,175,-94,267,-95,268,-166,269,-132,196,-136,24,-137,27,-15,435,-185,436,-150,439,-152,147,-151,151,-258,442,-286,443,-241,449,-234,450,-266,453,-267,454,-263,455,-255,462,-28,463,-248,541,-115,545,-116,549,-212,555,-210,556,-209,557});
states[277] = new State(new int[]{120,274,114,-281,93,-281,113,-281,9,-281,10,-281,103,-281,85,-281,91,-281,94,-281,29,-281,97,-281,28,-281,12,-281,92,-281,80,-281,79,-281,2,-281,78,-281,77,-281,76,-281,75,-281,130,-281});
states[278] = new State(new int[]{9,279,93,928});
states[279] = new State(new int[]{120,280,13,-235,114,-235,93,-235,113,-235,9,-235,10,-235,103,-235,85,-235,91,-235,94,-235,29,-235,97,-235,28,-235,12,-235,92,-235,80,-235,79,-235,2,-235,78,-235,77,-235,76,-235,75,-235,130,-235});
states[280] = new State(new int[]{8,282,136,23,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,334,108,335,137,149,139,150,138,152,20,456,44,464,45,542,30,546,70,550,61,553,40,558,33,582},new int[]{-264,281,-257,173,-85,175,-94,267,-95,268,-166,269,-132,196,-136,24,-137,27,-15,435,-185,436,-150,439,-152,147,-151,151,-266,1281,-267,454,-263,455,-255,462,-28,463,-248,541,-115,545,-116,549,-212,1282,-210,556,-209,557,-286,1283});
states[281] = new State(-278);
states[282] = new State(new int[]{9,283,136,412,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,334,108,335,137,149,139,150,138,152,8,440,135,451,20,456,44,464,45,542,30,546,70,550,61,553,40,558,33,582},new int[]{-74,278,-72,284,-261,287,-257,410,-85,175,-94,267,-95,268,-166,269,-132,196,-136,24,-137,27,-15,435,-185,436,-150,439,-152,147,-151,151,-258,442,-286,443,-241,449,-234,450,-266,453,-267,454,-263,455,-255,462,-28,463,-248,541,-115,545,-116,549,-212,555,-210,556,-209,557});
states[283] = new State(new int[]{120,274,114,-282,93,-282,113,-282,9,-282,10,-282,103,-282,85,-282,91,-282,94,-282,29,-282,97,-282,28,-282,12,-282,92,-282,80,-282,79,-282,2,-282,78,-282,77,-282,76,-282,75,-282,130,-282});
states[284] = new State(new int[]{93,285});
states[285] = new State(new int[]{136,412,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,334,108,335,137,149,139,150,138,152,8,440,135,451,20,456,44,464,45,542,30,546,70,550,61,553,40,558,33,582},new int[]{-72,286,-261,287,-257,410,-85,175,-94,267,-95,268,-166,269,-132,196,-136,24,-137,27,-15,435,-185,436,-150,439,-152,147,-151,151,-258,442,-286,443,-241,449,-234,450,-266,453,-267,454,-263,455,-255,462,-28,463,-248,541,-115,545,-116,549,-212,555,-210,556,-209,557});
states[286] = new State(-247);
states[287] = new State(new int[]{113,288,93,-249,9,-249});
states[288] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252,5,576},new int[]{-81,289,-91,127,-90,132,-89,290,-93,298,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574,-105,575});
states[289] = new State(-250);
states[290] = new State(new int[]{113,291,118,292,116,293,114,294,117,295,115,296,130,297,15,-582,13,-582,85,-582,10,-582,91,-582,94,-582,29,-582,97,-582,28,-582,93,-582,12,-582,9,-582,92,-582,80,-582,79,-582,2,-582,78,-582,77,-582,76,-582,75,-582,5,-582,6,-582,47,-582,54,-582,134,-582,136,-582,74,-582,72,-582,41,-582,38,-582,8,-582,17,-582,18,-582,137,-582,139,-582,138,-582,147,-582,149,-582,148,-582,53,-582,84,-582,36,-582,21,-582,90,-582,50,-582,31,-582,51,-582,95,-582,43,-582,32,-582,49,-582,56,-582,71,-582,69,-582,34,-582,67,-582,68,-582},new int[]{-182,135});
states[291] = new State(-635);
states[292] = new State(-636);
states[293] = new State(-637);
states[294] = new State(-638);
states[295] = new State(-639);
states[296] = new State(-640);
states[297] = new State(-641);
states[298] = new State(new int[]{5,299,109,303,108,304,121,305,122,306,119,307,113,-604,118,-604,116,-604,114,-604,117,-604,115,-604,130,-604,15,-604,13,-604,85,-604,10,-604,91,-604,94,-604,29,-604,97,-604,28,-604,93,-604,12,-604,9,-604,92,-604,80,-604,79,-604,2,-604,78,-604,77,-604,76,-604,75,-604,6,-604},new int[]{-183,137});
states[299] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252,5,-624,85,-624,10,-624,91,-624,94,-624,29,-624,97,-624,28,-624,93,-624,12,-624,9,-624,92,-624,2,-624,78,-624,77,-624,76,-624,75,-624,6,-624},new int[]{-102,300,-93,581,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,580,-252,573});
states[300] = new State(new int[]{5,301,85,-627,10,-627,91,-627,94,-627,29,-627,97,-627,28,-627,93,-627,12,-627,9,-627,92,-627,80,-627,79,-627,2,-627,78,-627,77,-627,76,-627,75,-627,6,-627});
states[301] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252},new int[]{-93,302,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,580,-252,573});
states[302] = new State(new int[]{109,303,108,304,121,305,122,306,119,307,85,-629,10,-629,91,-629,94,-629,29,-629,97,-629,28,-629,93,-629,12,-629,9,-629,92,-629,80,-629,79,-629,2,-629,78,-629,77,-629,76,-629,75,-629,6,-629},new int[]{-183,137});
states[303] = new State(-644);
states[304] = new State(-645);
states[305] = new State(-646);
states[306] = new State(-647);
states[307] = new State(-648);
states[308] = new State(new int[]{131,309,129,311,111,313,110,314,124,315,125,316,126,317,127,318,123,319,5,-642,109,-642,108,-642,121,-642,122,-642,119,-642,113,-642,118,-642,116,-642,114,-642,117,-642,115,-642,130,-642,15,-642,13,-642,85,-642,10,-642,91,-642,94,-642,29,-642,97,-642,28,-642,93,-642,12,-642,9,-642,92,-642,80,-642,79,-642,2,-642,78,-642,77,-642,76,-642,75,-642,6,-642,47,-642,54,-642,134,-642,136,-642,74,-642,72,-642,41,-642,38,-642,8,-642,17,-642,18,-642,137,-642,139,-642,138,-642,147,-642,149,-642,148,-642,53,-642,84,-642,36,-642,21,-642,90,-642,50,-642,31,-642,51,-642,95,-642,43,-642,32,-642,49,-642,56,-642,71,-642,69,-642,34,-642,67,-642,68,-642},new int[]{-184,139});
states[309] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-269,310,-166,162,-132,196,-136,24,-137,27});
states[310] = new State(-654);
states[311] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-269,312,-166,162,-132,196,-136,24,-137,27});
states[312] = new State(-653);
states[313] = new State(-663);
states[314] = new State(-664);
states[315] = new State(-665);
states[316] = new State(-666);
states[317] = new State(-667);
states[318] = new State(-668);
states[319] = new State(-669);
states[320] = new State(new int[]{131,-657,129,-657,111,-657,110,-657,124,-657,125,-657,126,-657,127,-657,123,-657,5,-657,109,-657,108,-657,121,-657,122,-657,119,-657,113,-657,118,-657,116,-657,114,-657,117,-657,115,-657,130,-657,15,-657,13,-657,85,-657,10,-657,91,-657,94,-657,29,-657,97,-657,28,-657,93,-657,12,-657,9,-657,92,-657,80,-657,79,-657,2,-657,78,-657,77,-657,76,-657,75,-657,6,-657,47,-657,54,-657,134,-657,136,-657,74,-657,72,-657,41,-657,38,-657,8,-657,17,-657,18,-657,137,-657,139,-657,138,-657,147,-657,149,-657,148,-657,53,-657,84,-657,36,-657,21,-657,90,-657,50,-657,31,-657,51,-657,95,-657,43,-657,32,-657,49,-657,56,-657,71,-657,69,-657,34,-657,67,-657,68,-657,112,-655});
states[321] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252,5,576,12,-714},new int[]{-64,322,-71,324,-84,1285,-81,327,-91,127,-90,132,-89,290,-93,298,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574,-105,575});
states[322] = new State(new int[]{12,323});
states[323] = new State(-675);
states[324] = new State(new int[]{93,325,12,-713});
states[325] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252,5,576},new int[]{-84,326,-81,327,-91,127,-90,132,-89,290,-93,298,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574,-105,575});
states[326] = new State(-716);
states[327] = new State(new int[]{6,328,93,-717,12,-717});
states[328] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252,5,576},new int[]{-81,329,-91,127,-90,132,-89,290,-93,298,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574,-105,575});
states[329] = new State(-718);
states[330] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,29,41,358,38,388,8,390,17,247,18,252},new int[]{-88,331,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524});
states[331] = new State(-676);
states[332] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,29,41,358,38,388,8,390,17,247,18,252},new int[]{-88,333,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524});
states[333] = new State(-677);
states[334] = new State(-153);
states[335] = new State(-154);
states[336] = new State(-678);
states[337] = new State(new int[]{134,1284,136,23,79,25,80,26,74,28,72,29,41,358,38,388,8,390,17,247,18,252,137,149,139,150,138,152,147,154,149,155,148,156},new int[]{-99,338,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-14,633,-150,146,-152,147,-151,151,-15,153,-16,502,-54,634});
states[338] = new State(new int[]{16,339,8,345,7,962,135,964,4,965,103,-684,104,-684,105,-684,106,-684,107,-684,85,-684,10,-684,91,-684,94,-684,29,-684,97,-684,131,-684,129,-684,111,-684,110,-684,124,-684,125,-684,126,-684,127,-684,123,-684,5,-684,109,-684,108,-684,121,-684,122,-684,119,-684,113,-684,118,-684,116,-684,114,-684,117,-684,115,-684,130,-684,15,-684,13,-684,28,-684,93,-684,12,-684,9,-684,92,-684,80,-684,79,-684,2,-684,78,-684,77,-684,76,-684,75,-684,112,-684,6,-684,47,-684,54,-684,134,-684,136,-684,74,-684,72,-684,41,-684,38,-684,17,-684,18,-684,137,-684,139,-684,138,-684,147,-684,149,-684,148,-684,53,-684,84,-684,36,-684,21,-684,90,-684,50,-684,31,-684,51,-684,95,-684,43,-684,32,-684,49,-684,56,-684,71,-684,69,-684,34,-684,67,-684,68,-684,11,-695});
states[339] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252,5,576},new int[]{-105,340,-93,342,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,580,-252,573});
states[340] = new State(new int[]{12,341});
states[341] = new State(-705);
states[342] = new State(new int[]{5,299,109,303,108,304,121,305,122,306,119,307},new int[]{-183,137});
states[343] = new State(-687);
states[344] = new State(new int[]{16,339,8,345,7,962,135,964,4,965,14,968,103,-685,104,-685,105,-685,106,-685,107,-685,85,-685,10,-685,91,-685,94,-685,29,-685,97,-685,131,-685,129,-685,111,-685,110,-685,124,-685,125,-685,126,-685,127,-685,123,-685,5,-685,109,-685,108,-685,121,-685,122,-685,119,-685,113,-685,118,-685,116,-685,114,-685,117,-685,115,-685,130,-685,15,-685,13,-685,28,-685,93,-685,12,-685,9,-685,92,-685,80,-685,79,-685,2,-685,78,-685,77,-685,76,-685,75,-685,112,-685,6,-685,47,-685,54,-685,134,-685,136,-685,74,-685,72,-685,41,-685,38,-685,17,-685,18,-685,137,-685,139,-685,138,-685,147,-685,149,-685,148,-685,53,-685,84,-685,36,-685,21,-685,90,-685,50,-685,31,-685,51,-685,95,-685,43,-685,32,-685,49,-685,56,-685,71,-685,69,-685,34,-685,67,-685,68,-685,11,-695});
states[345] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,507,17,247,18,252,5,576,33,620,40,818,9,-712},new int[]{-63,346,-66,348,-82,506,-81,126,-91,127,-90,132,-89,290,-93,298,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,351,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574,-105,575,-306,618,-307,619});
states[346] = new State(new int[]{9,347});
states[347] = new State(-706);
states[348] = new State(new int[]{93,349,12,-711,9,-711});
states[349] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,507,17,247,18,252,5,576,33,620,40,818},new int[]{-82,350,-81,126,-91,127,-90,132,-89,290,-93,298,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,351,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574,-105,575,-306,618,-307,619});
states[350] = new State(-571);
states[351] = new State(new int[]{120,352,16,-697,8,-697,7,-697,135,-697,4,-697,14,-697,131,-697,129,-697,111,-697,110,-697,124,-697,125,-697,126,-697,127,-697,123,-697,5,-697,109,-697,108,-697,121,-697,122,-697,119,-697,113,-697,118,-697,116,-697,114,-697,117,-697,115,-697,130,-697,15,-697,13,-697,85,-697,10,-697,91,-697,94,-697,29,-697,97,-697,28,-697,93,-697,12,-697,9,-697,92,-697,80,-697,79,-697,2,-697,78,-697,77,-697,76,-697,75,-697,112,-697,11,-697});
states[352] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252,84,116,36,627,50,665,90,660,31,670,32,696,69,728,21,644,95,686,56,736,71,787,43,693},new int[]{-312,353,-91,354,-90,132,-89,290,-93,355,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574,-314,624,-240,625,-138,626,-302,723,-232,724,-109,725,-108,726,-110,727,-32,783,-287,784,-154,785,-111,786,-233,788});
states[353] = new State(-860);
states[354] = new State(new int[]{13,128,85,-895,10,-895,91,-895,94,-895,29,-895,97,-895,28,-895,93,-895,12,-895,9,-895,92,-895,80,-895,79,-895,2,-895,78,-895,77,-895,76,-895,75,-895});
states[355] = new State(new int[]{109,303,108,304,121,305,122,306,119,307,113,-604,118,-604,116,-604,114,-604,117,-604,115,-604,130,-604,15,-604,5,-604,13,-604,85,-604,10,-604,91,-604,94,-604,29,-604,97,-604,28,-604,93,-604,12,-604,9,-604,92,-604,80,-604,79,-604,2,-604,78,-604,77,-604,76,-604,75,-604,6,-604,47,-604,54,-604,134,-604,136,-604,74,-604,72,-604,41,-604,38,-604,8,-604,17,-604,18,-604,137,-604,139,-604,138,-604,147,-604,149,-604,148,-604,53,-604,84,-604,36,-604,21,-604,90,-604,50,-604,31,-604,51,-604,95,-604,43,-604,32,-604,49,-604,56,-604,71,-604,69,-604,34,-604,67,-604,68,-604},new int[]{-183,137});
states[356] = new State(-697);
states[357] = new State(-698);
states[358] = new State(new int[]{108,360,109,361,110,362,111,363,113,364,114,365,115,366,116,367,117,368,118,369,121,370,122,371,123,372,124,373,125,374,126,375,127,376,128,377,130,378,132,379,133,380,103,382,104,383,105,384,106,385,107,386,112,387},new int[]{-186,359,-180,381});
states[359] = new State(-725);
states[360] = new State(-832);
states[361] = new State(-833);
states[362] = new State(-834);
states[363] = new State(-835);
states[364] = new State(-836);
states[365] = new State(-837);
states[366] = new State(-838);
states[367] = new State(-839);
states[368] = new State(-840);
states[369] = new State(-841);
states[370] = new State(-842);
states[371] = new State(-843);
states[372] = new State(-844);
states[373] = new State(-845);
states[374] = new State(-846);
states[375] = new State(-847);
states[376] = new State(-848);
states[377] = new State(-849);
states[378] = new State(-850);
states[379] = new State(-851);
states[380] = new State(-852);
states[381] = new State(-853);
states[382] = new State(-855);
states[383] = new State(-856);
states[384] = new State(-857);
states[385] = new State(-858);
states[386] = new State(-859);
states[387] = new State(-854);
states[388] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-132,389,-136,24,-137,27});
states[389] = new State(-699);
states[390] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252,5,576},new int[]{-81,391,-91,393,-90,132,-89,290,-93,298,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574,-105,575});
states[391] = new State(new int[]{9,392});
states[392] = new State(-700);
states[393] = new State(new int[]{93,394,13,128,9,-576});
states[394] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252},new int[]{-73,395,-91,936,-90,132,-89,290,-93,355,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574});
states[395] = new State(new int[]{93,934,5,407,10,-879,9,-879},new int[]{-308,396});
states[396] = new State(new int[]{10,399,9,-867},new int[]{-315,397});
states[397] = new State(new int[]{9,398});
states[398] = new State(-671);
states[399] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-310,400,-311,833,-143,403,-132,713,-136,24,-137,27});
states[400] = new State(new int[]{10,401,9,-868});
states[401] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-311,402,-143,403,-132,713,-136,24,-137,27});
states[402] = new State(-877);
states[403] = new State(new int[]{93,405,5,407,10,-879,9,-879},new int[]{-308,404});
states[404] = new State(-878);
states[405] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-132,406,-136,24,-137,27});
states[406] = new State(-331);
states[407] = new State(new int[]{136,412,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,334,108,335,137,149,139,150,138,152,8,440,135,451,20,456,44,464,45,542,30,546,70,550,61,553,40,558,33,582},new int[]{-260,408,-261,409,-257,410,-85,175,-94,267,-95,268,-166,269,-132,196,-136,24,-137,27,-15,435,-185,436,-150,439,-152,147,-151,151,-258,442,-286,443,-241,449,-234,450,-266,453,-267,454,-263,455,-255,462,-28,463,-248,541,-115,545,-116,549,-212,555,-210,556,-209,557});
states[408] = new State(-880);
states[409] = new State(-468);
states[410] = new State(new int[]{13,411,113,-212,93,-212,9,-212,10,-212,120,-212,114,-212,103,-212,85,-212,91,-212,94,-212,29,-212,97,-212,28,-212,12,-212,92,-212,80,-212,79,-212,2,-212,78,-212,77,-212,76,-212,75,-212,130,-212});
states[411] = new State(-210);
states[412] = new State(new int[]{11,413,7,-732,120,-732,116,-732,8,-732,111,-732,110,-732,124,-732,125,-732,126,-732,127,-732,123,-732,6,-732,109,-732,108,-732,121,-732,122,-732,13,-732,113,-732,93,-732,9,-732,10,-732,114,-732,103,-732,85,-732,91,-732,94,-732,29,-732,97,-732,28,-732,12,-732,92,-732,80,-732,79,-732,2,-732,78,-732,77,-732,76,-732,75,-732,130,-732});
states[413] = new State(new int[]{136,23,79,25,80,26,74,28,72,227,137,149,139,150,138,152,147,154,149,155,148,156,38,244,17,247,18,252,11,417,52,421,134,422,8,424,128,427,109,334,108,335},new int[]{-83,414,-75,191,-12,215,-10,225,-13,201,-132,226,-136,24,-137,27,-150,242,-152,147,-151,151,-15,243,-242,246,-280,251,-225,416,-185,429,-159,431,-250,432,-254,433,-227,434});
states[414] = new State(new int[]{12,415,13,187});
states[415] = new State(-270);
states[416] = new State(-145);
states[417] = new State(new int[]{136,23,79,25,80,26,74,28,72,227,137,149,139,150,138,152,147,154,149,155,148,156,38,244,17,247,18,252,11,417,52,421,134,422,8,424,128,427,109,334,108,335,12,-171},new int[]{-69,418,-67,183,-86,420,-83,186,-75,191,-12,215,-10,225,-13,201,-132,226,-136,24,-137,27,-150,242,-152,147,-151,151,-15,243,-242,246,-280,251,-225,416,-185,429,-159,431,-250,432,-254,433,-227,434});
states[418] = new State(new int[]{12,419});
states[419] = new State(-152);
states[420] = new State(-172);
states[421] = new State(-146);
states[422] = new State(new int[]{136,23,79,25,80,26,74,28,72,227,137,149,139,150,138,152,147,154,149,155,148,156,38,244,17,247,18,252,11,417,52,421,134,422,8,424,128,427,109,334,108,335},new int[]{-10,423,-13,201,-132,226,-136,24,-137,27,-150,242,-152,147,-151,151,-15,243,-242,246,-280,251,-225,416,-185,429,-159,431});
states[423] = new State(-147);
states[424] = new State(new int[]{136,23,79,25,80,26,74,28,72,227,137,149,139,150,138,152,147,154,149,155,148,156,38,244,17,247,18,252,11,417,52,421,134,422,8,424,128,427,109,334,108,335},new int[]{-83,425,-75,191,-12,215,-10,225,-13,201,-132,226,-136,24,-137,27,-150,242,-152,147,-151,151,-15,243,-242,246,-280,251,-225,416,-185,429,-159,431,-250,432,-254,433,-227,434});
states[425] = new State(new int[]{9,426,13,187});
states[426] = new State(-148);
states[427] = new State(new int[]{136,23,79,25,80,26,74,28,72,227,137,149,139,150,138,152,147,154,149,155,148,156,38,244,17,247,18,252,11,417,52,421,134,422,8,424,128,427,109,334,108,335},new int[]{-10,428,-13,201,-132,226,-136,24,-137,27,-150,242,-152,147,-151,151,-15,243,-242,246,-280,251,-225,416,-185,429,-159,431});
states[428] = new State(-149);
states[429] = new State(new int[]{136,23,79,25,80,26,74,28,72,227,137,149,139,150,138,152,147,154,149,155,148,156,38,244,17,247,18,252,11,417,52,421,134,422,8,424,128,427,109,334,108,335},new int[]{-10,430,-13,201,-132,226,-136,24,-137,27,-150,242,-152,147,-151,151,-15,243,-242,246,-280,251,-225,416,-185,429,-159,431});
states[430] = new State(-150);
states[431] = new State(-151);
states[432] = new State(-133);
states[433] = new State(-134);
states[434] = new State(-115);
states[435] = new State(-241);
states[436] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,334,108,335,137,149,139,150,138,152},new int[]{-95,437,-166,438,-132,196,-136,24,-137,27,-15,435,-185,436,-150,439,-152,147,-151,151});
states[437] = new State(new int[]{8,180,111,-242,110,-242,124,-242,125,-242,126,-242,127,-242,123,-242,6,-242,109,-242,108,-242,121,-242,122,-242,13,-242,114,-242,93,-242,113,-242,9,-242,10,-242,120,-242,103,-242,85,-242,91,-242,94,-242,29,-242,97,-242,28,-242,12,-242,92,-242,80,-242,79,-242,2,-242,78,-242,77,-242,76,-242,75,-242,130,-242});
states[438] = new State(new int[]{7,163,8,-240,111,-240,110,-240,124,-240,125,-240,126,-240,127,-240,123,-240,6,-240,109,-240,108,-240,121,-240,122,-240,13,-240,114,-240,93,-240,113,-240,9,-240,10,-240,120,-240,103,-240,85,-240,91,-240,94,-240,29,-240,97,-240,28,-240,12,-240,92,-240,80,-240,79,-240,2,-240,78,-240,77,-240,76,-240,75,-240,130,-240});
states[439] = new State(-243);
states[440] = new State(new int[]{9,441,136,412,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,334,108,335,137,149,139,150,138,152,8,440,135,451,20,456,44,464,45,542,30,546,70,550,61,553,40,558,33,582},new int[]{-74,278,-72,284,-261,287,-257,410,-85,175,-94,267,-95,268,-166,269,-132,196,-136,24,-137,27,-15,435,-185,436,-150,439,-152,147,-151,151,-258,442,-286,443,-241,449,-234,450,-266,453,-267,454,-263,455,-255,462,-28,463,-248,541,-115,545,-116,549,-212,555,-210,556,-209,557});
states[441] = new State(new int[]{120,274});
states[442] = new State(-213);
states[443] = new State(new int[]{13,444,120,445,113,-218,93,-218,9,-218,10,-218,114,-218,103,-218,85,-218,91,-218,94,-218,29,-218,97,-218,28,-218,12,-218,92,-218,80,-218,79,-218,2,-218,78,-218,77,-218,76,-218,75,-218,130,-218});
states[444] = new State(-211);
states[445] = new State(new int[]{8,447,136,23,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,334,108,335,137,149,139,150,138,152,20,456,44,464,45,542,30,546,70,550,61,553,40,558,33,582},new int[]{-264,446,-257,173,-85,175,-94,267,-95,268,-166,269,-132,196,-136,24,-137,27,-15,435,-185,436,-150,439,-152,147,-151,151,-266,1281,-267,454,-263,455,-255,462,-28,463,-248,541,-115,545,-116,549,-212,1282,-210,556,-209,557,-286,1283});
states[446] = new State(-276);
states[447] = new State(new int[]{9,448,136,412,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,334,108,335,137,149,139,150,138,152,8,440,135,451,20,456,44,464,45,542,30,546,70,550,61,553,40,558,33,582},new int[]{-74,278,-72,284,-261,287,-257,410,-85,175,-94,267,-95,268,-166,269,-132,196,-136,24,-137,27,-15,435,-185,436,-150,439,-152,147,-151,151,-258,442,-286,443,-241,449,-234,450,-266,453,-267,454,-263,455,-255,462,-28,463,-248,541,-115,545,-116,549,-212,555,-210,556,-209,557});
states[448] = new State(new int[]{120,274,114,-280,93,-280,113,-280,9,-280,10,-280,103,-280,85,-280,91,-280,94,-280,29,-280,97,-280,28,-280,12,-280,92,-280,80,-280,79,-280,2,-280,78,-280,77,-280,76,-280,75,-280,130,-280});
states[449] = new State(-214);
states[450] = new State(-215);
states[451] = new State(new int[]{136,412,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,334,108,335,137,149,139,150,138,152,8,440,135,451,20,456,44,464,45,542,30,546,70,550,61,553,40,558,33,582},new int[]{-260,452,-261,409,-257,410,-85,175,-94,267,-95,268,-166,269,-132,196,-136,24,-137,27,-15,435,-185,436,-150,439,-152,147,-151,151,-258,442,-286,443,-241,449,-234,450,-266,453,-267,454,-263,455,-255,462,-28,463,-248,541,-115,545,-116,549,-212,555,-210,556,-209,557});
states[452] = new State(-251);
states[453] = new State(-216);
states[454] = new State(-252);
states[455] = new State(-254);
states[456] = new State(new int[]{11,457,54,1279});
states[457] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,334,108,335,137,149,139,150,138,152,8,925,12,-266,93,-266},new int[]{-149,458,-256,1278,-257,1277,-85,175,-94,267,-95,268,-166,438,-132,196,-136,24,-137,27,-15,435,-185,436,-150,439,-152,147,-151,151});
states[458] = new State(new int[]{12,459,93,1275});
states[459] = new State(new int[]{54,460});
states[460] = new State(new int[]{136,412,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,334,108,335,137,149,139,150,138,152,8,440,135,451,20,456,44,464,45,542,30,546,70,550,61,553,40,558,33,582},new int[]{-261,461,-257,410,-85,175,-94,267,-95,268,-166,269,-132,196,-136,24,-137,27,-15,435,-185,436,-150,439,-152,147,-151,151,-258,442,-286,443,-241,449,-234,450,-266,453,-267,454,-263,455,-255,462,-28,463,-248,541,-115,545,-116,549,-212,555,-210,556,-209,557});
states[461] = new State(-260);
states[462] = new State(-261);
states[463] = new State(-255);
states[464] = new State(new int[]{8,1149,19,-302,11,-302,85,-302,78,-302,77,-302,76,-302,75,-302,25,-302,136,-302,79,-302,80,-302,74,-302,72,-302,58,-302,24,-302,22,-302,40,-302,33,-302,26,-302,27,-302,42,-302,23,-302},new int[]{-169,465});
states[465] = new State(new int[]{19,1140,11,-309,85,-309,78,-309,77,-309,76,-309,75,-309,25,-309,136,-309,79,-309,80,-309,74,-309,72,-309,58,-309,24,-309,22,-309,40,-309,33,-309,26,-309,27,-309,42,-309,23,-309},new int[]{-301,466,-300,1138,-299,1160});
states[466] = new State(new int[]{11,606,85,-326,78,-326,77,-326,76,-326,75,-326,25,-197,136,-197,79,-197,80,-197,74,-197,72,-197,58,-197,24,-197,22,-197,40,-197,33,-197,26,-197,27,-197,42,-197,23,-197},new int[]{-22,467,-29,1118,-31,471,-41,1119,-6,1120,-235,911,-30,1231,-50,1233,-49,477,-51,1232});
states[467] = new State(new int[]{85,468,78,1114,77,1115,76,1116,75,1117},new int[]{-7,469});
states[468] = new State(-284);
states[469] = new State(new int[]{11,606,85,-326,78,-326,77,-326,76,-326,75,-326,25,-197,136,-197,79,-197,80,-197,74,-197,72,-197,58,-197,24,-197,22,-197,40,-197,33,-197,26,-197,27,-197,42,-197,23,-197},new int[]{-29,470,-31,471,-41,1119,-6,1120,-235,911,-30,1231,-50,1233,-49,477,-51,1232});
states[470] = new State(-321);
states[471] = new State(new int[]{10,473,85,-332,78,-332,77,-332,76,-332,75,-332},new int[]{-176,472});
states[472] = new State(-327);
states[473] = new State(new int[]{11,606,85,-333,78,-333,77,-333,76,-333,75,-333,25,-197,136,-197,79,-197,80,-197,74,-197,72,-197,58,-197,24,-197,22,-197,40,-197,33,-197,26,-197,27,-197,42,-197,23,-197},new int[]{-41,474,-30,475,-6,1120,-235,911,-50,1233,-49,477,-51,1232});
states[474] = new State(-335);
states[475] = new State(new int[]{11,606,85,-329,78,-329,77,-329,76,-329,75,-329,24,-197,22,-197,40,-197,33,-197,26,-197,27,-197,42,-197,23,-197},new int[]{-50,476,-49,477,-6,478,-235,911,-51,1232});
states[476] = new State(-338);
states[477] = new State(-339);
states[478] = new State(new int[]{24,1187,22,1188,40,1133,33,1168,26,1202,27,1209,11,606,42,1216,23,1225},new int[]{-208,479,-235,480,-205,481,-243,482,-3,483,-216,1189,-214,1062,-211,1132,-215,1167,-213,1190,-201,1213,-202,1214,-204,1215});
states[479] = new State(-348);
states[480] = new State(-196);
states[481] = new State(-349);
states[482] = new State(-367);
states[483] = new State(new int[]{26,485,42,1012,23,1054,40,1133,33,1168},new int[]{-216,484,-202,1011,-214,1062,-211,1132,-215,1167});
states[484] = new State(-352);
states[485] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,41,358,8,-362,103,-362,10,-362},new int[]{-157,486,-156,994,-155,995,-127,996,-122,997,-119,998,-132,1003,-136,24,-137,27,-177,1004,-318,1006,-134,1010});
states[486] = new State(new int[]{8,560,103,-452,10,-452},new int[]{-113,487});
states[487] = new State(new int[]{103,489,10,983},new int[]{-193,488});
states[488] = new State(-359);
states[489] = new State(new int[]{134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,492,8,493,17,247,18,252,137,149,139,150,138,152,147,154,149,155,148,156,53,637,84,116,36,627,21,644,90,660,50,665,31,670,51,680,95,686,43,693,32,696,49,704,56,736,71,741,69,728,34,748,10,-476},new int[]{-245,490,-4,122,-100,123,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-14,633,-150,146,-152,147,-151,151,-15,153,-16,502,-54,634,-103,524,-198,635,-118,636,-240,641,-138,642,-32,643,-232,659,-302,664,-109,669,-303,679,-145,684,-287,685,-233,692,-108,695,-298,703,-55,732,-160,733,-159,734,-154,735,-111,740,-112,745,-110,746,-325,747});
states[490] = new State(new int[]{10,491});
states[491] = new State(-411);
states[492] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,85,-552,10,-552,91,-552,94,-552,29,-552,97,-552,28,-552,93,-552,12,-552,9,-552,92,-552,2,-552,78,-552,77,-552,76,-552,75,-552},new int[]{-132,389,-136,24,-137,27});
states[493] = new State(new int[]{49,971,52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252,5,576},new int[]{-81,391,-91,393,-99,494,-90,132,-89,290,-93,298,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574,-105,575});
states[494] = new State(new int[]{93,495,16,339,8,345,7,962,135,964,4,965,14,968,131,-685,129,-685,111,-685,110,-685,124,-685,125,-685,126,-685,127,-685,123,-685,5,-685,109,-685,108,-685,121,-685,122,-685,119,-685,113,-685,118,-685,116,-685,114,-685,117,-685,115,-685,130,-685,15,-685,13,-685,9,-685,112,-685,11,-695});
states[495] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,41,358,38,388,8,390,17,247,18,252,137,149,139,150,138,152,147,154,149,155,148,156},new int[]{-320,496,-99,967,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-14,633,-150,146,-152,147,-151,151,-15,153,-16,502,-54,634});
states[496] = new State(new int[]{9,497,93,960});
states[497] = new State(new int[]{103,382,104,383,105,384,106,385,107,386},new int[]{-180,498});
states[498] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252,5,576},new int[]{-81,499,-91,127,-90,132,-89,290,-93,298,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574,-105,575});
states[499] = new State(-505);
states[500] = new State(-701);
states[501] = new State(-702);
states[502] = new State(new int[]{11,503});
states[503] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,507,17,247,18,252,5,576,33,620,40,818},new int[]{-66,504,-82,506,-81,126,-91,127,-90,132,-89,290,-93,298,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,351,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574,-105,575,-306,618,-307,619});
states[504] = new State(new int[]{12,505,93,349});
states[505] = new State(-704);
states[506] = new State(-570);
states[507] = new State(new int[]{9,937,52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252,5,576},new int[]{-81,391,-91,508,-132,941,-90,132,-89,290,-93,298,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574,-105,575});
states[508] = new State(new int[]{93,509,13,128,9,-576});
states[509] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252},new int[]{-73,510,-91,936,-90,132,-89,290,-93,355,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574});
states[510] = new State(new int[]{93,934,5,407,10,-879,9,-879},new int[]{-308,511});
states[511] = new State(new int[]{10,399,9,-867},new int[]{-315,512});
states[512] = new State(new int[]{9,513});
states[513] = new State(new int[]{5,921,7,-671,131,-671,129,-671,111,-671,110,-671,124,-671,125,-671,126,-671,127,-671,123,-671,109,-671,108,-671,121,-671,122,-671,119,-671,113,-671,118,-671,116,-671,114,-671,117,-671,115,-671,130,-671,15,-671,13,-671,85,-671,10,-671,91,-671,94,-671,29,-671,97,-671,28,-671,93,-671,12,-671,9,-671,92,-671,80,-671,79,-671,2,-671,78,-671,77,-671,76,-671,75,-671,112,-671,120,-881},new int[]{-319,514,-309,515});
states[514] = new State(-865);
states[515] = new State(new int[]{120,516});
states[516] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252,84,116,36,627,50,665,90,660,31,670,32,696,69,728,21,644,95,686,56,736,71,787,43,693},new int[]{-312,517,-91,354,-90,132,-89,290,-93,355,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574,-314,624,-240,625,-138,626,-302,723,-232,724,-109,725,-108,726,-110,727,-32,783,-287,784,-154,785,-111,786,-233,788});
states[517] = new State(-869);
states[518] = new State(new int[]{7,519,131,-679,129,-679,111,-679,110,-679,124,-679,125,-679,126,-679,127,-679,123,-679,5,-679,109,-679,108,-679,121,-679,122,-679,119,-679,113,-679,118,-679,116,-679,114,-679,117,-679,115,-679,130,-679,15,-679,13,-679,85,-679,10,-679,91,-679,94,-679,29,-679,97,-679,28,-679,93,-679,12,-679,9,-679,92,-679,80,-679,79,-679,2,-679,78,-679,77,-679,76,-679,75,-679,112,-679,6,-679,47,-679,54,-679,134,-679,136,-679,74,-679,72,-679,41,-679,38,-679,8,-679,17,-679,18,-679,137,-679,139,-679,138,-679,147,-679,149,-679,148,-679,53,-679,84,-679,36,-679,21,-679,90,-679,50,-679,31,-679,51,-679,95,-679,43,-679,32,-679,49,-679,56,-679,71,-679,69,-679,34,-679,67,-679,68,-679});
states[519] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,78,32,77,33,76,34,75,35,65,36,60,37,121,38,18,39,17,40,59,41,19,42,122,43,123,44,124,45,125,46,126,47,127,48,128,49,129,50,130,51,131,52,20,53,70,54,84,55,21,56,22,57,25,58,26,59,27,60,68,61,92,62,28,63,29,64,30,65,23,66,97,67,94,68,31,69,32,70,33,71,36,72,37,73,38,74,96,75,39,76,40,77,42,78,43,79,44,80,90,81,45,82,95,83,46,84,24,85,47,86,67,87,91,88,48,89,49,90,50,91,51,92,52,93,53,94,54,95,55,96,57,97,98,98,99,99,102,100,100,101,101,102,58,103,71,104,34,105,35,106,41,358},new int[]{-133,520,-132,521,-136,24,-137,27,-278,522,-135,31,-177,523});
states[520] = new State(-708);
states[521] = new State(-738);
states[522] = new State(-739);
states[523] = new State(-740);
states[524] = new State(-686);
states[525] = new State(-658);
states[526] = new State(-659);
states[527] = new State(new int[]{112,528});
states[528] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,29,41,358,38,388,8,390,17,247,18,252},new int[]{-88,529,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524});
states[529] = new State(-656);
states[530] = new State(-662);
states[531] = new State(new int[]{8,532,131,-651,129,-651,111,-651,110,-651,124,-651,125,-651,126,-651,127,-651,123,-651,5,-651,109,-651,108,-651,121,-651,122,-651,119,-651,113,-651,118,-651,116,-651,114,-651,117,-651,115,-651,130,-651,15,-651,13,-651,85,-651,10,-651,91,-651,94,-651,29,-651,97,-651,28,-651,93,-651,12,-651,9,-651,92,-651,80,-651,79,-651,2,-651,78,-651,77,-651,76,-651,75,-651,6,-651,47,-651,54,-651,134,-651,136,-651,74,-651,72,-651,41,-651,38,-651,17,-651,18,-651,137,-651,139,-651,138,-651,147,-651,149,-651,148,-651,53,-651,84,-651,36,-651,21,-651,90,-651,50,-651,31,-651,51,-651,95,-651,43,-651,32,-651,49,-651,56,-651,71,-651,69,-651,34,-651,67,-651,68,-651});
states[532] = new State(new int[]{49,537,136,23,79,25,80,26,74,28,72,29},new int[]{-330,533,-328,920,-323,913,-269,914,-166,162,-132,196,-136,24,-137,27});
states[533] = new State(new int[]{9,534,10,535,93,918});
states[534] = new State(-606);
states[535] = new State(new int[]{49,537,136,23,79,25,80,26,74,28,72,29},new int[]{-328,536,-323,913,-269,914,-166,162,-132,196,-136,24,-137,27});
states[536] = new State(-613);
states[537] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-132,538,-136,24,-137,27});
states[538] = new State(new int[]{5,539,9,-616,10,-616,93,-616});
states[539] = new State(new int[]{136,412,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,334,108,335,137,149,139,150,138,152,8,440,135,451,20,456,44,464,45,542,30,546,70,550,61,553,40,558,33,582},new int[]{-261,540,-257,410,-85,175,-94,267,-95,268,-166,269,-132,196,-136,24,-137,27,-15,435,-185,436,-150,439,-152,147,-151,151,-258,442,-286,443,-241,449,-234,450,-266,453,-267,454,-263,455,-255,462,-28,463,-248,541,-115,545,-116,549,-212,555,-210,556,-209,557});
states[540] = new State(-615);
states[541] = new State(-256);
states[542] = new State(new int[]{54,543});
states[543] = new State(new int[]{136,412,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,334,108,335,137,149,139,150,138,152,8,440,135,451,20,456,44,464,45,542,30,546,70,550,61,553,40,558,33,582},new int[]{-261,544,-257,410,-85,175,-94,267,-95,268,-166,269,-132,196,-136,24,-137,27,-15,435,-185,436,-150,439,-152,147,-151,151,-258,442,-286,443,-241,449,-234,450,-266,453,-267,454,-263,455,-255,462,-28,463,-248,541,-115,545,-116,549,-212,555,-210,556,-209,557});
states[544] = new State(-267);
states[545] = new State(-257);
states[546] = new State(new int[]{54,547,114,-269,93,-269,113,-269,9,-269,10,-269,120,-269,103,-269,85,-269,91,-269,94,-269,29,-269,97,-269,28,-269,12,-269,92,-269,80,-269,79,-269,2,-269,78,-269,77,-269,76,-269,75,-269,130,-269});
states[547] = new State(new int[]{136,412,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,334,108,335,137,149,139,150,138,152,8,440,135,451,20,456,44,464,45,542,30,546,70,550,61,553,40,558,33,582},new int[]{-261,548,-257,410,-85,175,-94,267,-95,268,-166,269,-132,196,-136,24,-137,27,-15,435,-185,436,-150,439,-152,147,-151,151,-258,442,-286,443,-241,449,-234,450,-266,453,-267,454,-263,455,-255,462,-28,463,-248,541,-115,545,-116,549,-212,555,-210,556,-209,557});
states[548] = new State(-268);
states[549] = new State(-258);
states[550] = new State(new int[]{54,551});
states[551] = new State(new int[]{136,412,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,334,108,335,137,149,139,150,138,152,8,440,135,451,20,456,44,464,45,542,30,546,70,550,61,553,40,558,33,582},new int[]{-261,552,-257,410,-85,175,-94,267,-95,268,-166,269,-132,196,-136,24,-137,27,-15,435,-185,436,-150,439,-152,147,-151,151,-258,442,-286,443,-241,449,-234,450,-266,453,-267,454,-263,455,-255,462,-28,463,-248,541,-115,545,-116,549,-212,555,-210,556,-209,557});
states[552] = new State(-259);
states[553] = new State(new int[]{20,456,44,464,45,542,30,546,70,550},new int[]{-267,554,-263,455,-255,462,-28,463,-248,541,-115,545,-116,549});
states[554] = new State(-253);
states[555] = new State(-217);
states[556] = new State(-271);
states[557] = new State(-272);
states[558] = new State(new int[]{8,560,114,-452,93,-452,113,-452,9,-452,10,-452,120,-452,103,-452,85,-452,91,-452,94,-452,29,-452,97,-452,28,-452,12,-452,92,-452,80,-452,79,-452,2,-452,78,-452,77,-452,76,-452,75,-452,130,-452},new int[]{-113,559});
states[559] = new State(-273);
states[560] = new State(new int[]{9,561,11,606,136,-197,79,-197,80,-197,74,-197,72,-197,49,-197,25,-197,101,-197},new int[]{-114,562,-52,912,-6,566,-235,911});
states[561] = new State(-453);
states[562] = new State(new int[]{9,563,10,564});
states[563] = new State(-454);
states[564] = new State(new int[]{11,606,136,-197,79,-197,80,-197,74,-197,72,-197,49,-197,25,-197,101,-197},new int[]{-52,565,-6,566,-235,911});
states[565] = new State(-456);
states[566] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,49,590,25,596,101,602,11,606},new int[]{-281,567,-235,480,-144,568,-120,589,-132,588,-136,24,-137,27});
states[567] = new State(-457);
states[568] = new State(new int[]{5,569,93,586});
states[569] = new State(new int[]{136,412,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,334,108,335,137,149,139,150,138,152,8,440,135,451,20,456,44,464,45,542,30,546,70,550,61,553,40,558,33,582},new int[]{-260,570,-261,409,-257,410,-85,175,-94,267,-95,268,-166,269,-132,196,-136,24,-137,27,-15,435,-185,436,-150,439,-152,147,-151,151,-258,442,-286,443,-241,449,-234,450,-266,453,-267,454,-263,455,-255,462,-28,463,-248,541,-115,545,-116,549,-212,555,-210,556,-209,557});
states[570] = new State(new int[]{103,571,9,-458,10,-458});
states[571] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252,5,576},new int[]{-81,572,-91,127,-90,132,-89,290,-93,298,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574,-105,575});
states[572] = new State(-462);
states[573] = new State(-652);
states[574] = new State(-579);
states[575] = new State(-577);
states[576] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252,5,-624,85,-624,10,-624,91,-624,94,-624,29,-624,97,-624,28,-624,93,-624,12,-624,9,-624,92,-624,2,-624,78,-624,77,-624,76,-624,75,-624,6,-624},new int[]{-102,577,-93,581,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,580,-252,573});
states[577] = new State(new int[]{5,578,85,-628,10,-628,91,-628,94,-628,29,-628,97,-628,28,-628,93,-628,12,-628,9,-628,92,-628,80,-628,79,-628,2,-628,78,-628,77,-628,76,-628,75,-628,6,-628});
states[578] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252},new int[]{-93,579,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,580,-252,573});
states[579] = new State(new int[]{109,303,108,304,121,305,122,306,119,307,85,-630,10,-630,91,-630,94,-630,29,-630,97,-630,28,-630,93,-630,12,-630,9,-630,92,-630,80,-630,79,-630,2,-630,78,-630,77,-630,76,-630,75,-630,6,-630},new int[]{-183,137});
states[580] = new State(-651);
states[581] = new State(new int[]{109,303,108,304,121,305,122,306,119,307,5,-623,85,-623,10,-623,91,-623,94,-623,29,-623,97,-623,28,-623,93,-623,12,-623,9,-623,92,-623,80,-623,79,-623,2,-623,78,-623,77,-623,76,-623,75,-623,6,-623},new int[]{-183,137});
states[582] = new State(new int[]{8,560,5,-452},new int[]{-113,583});
states[583] = new State(new int[]{5,584});
states[584] = new State(new int[]{136,412,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,334,108,335,137,149,139,150,138,152,8,440,135,451,20,456,44,464,45,542,30,546,70,550,61,553,40,558,33,582},new int[]{-260,585,-261,409,-257,410,-85,175,-94,267,-95,268,-166,269,-132,196,-136,24,-137,27,-15,435,-185,436,-150,439,-152,147,-151,151,-258,442,-286,443,-241,449,-234,450,-266,453,-267,454,-263,455,-255,462,-28,463,-248,541,-115,545,-116,549,-212,555,-210,556,-209,557});
states[585] = new State(-274);
states[586] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-120,587,-132,588,-136,24,-137,27});
states[587] = new State(-466);
states[588] = new State(-467);
states[589] = new State(-465);
states[590] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-144,591,-120,589,-132,588,-136,24,-137,27});
states[591] = new State(new int[]{5,592,93,586});
states[592] = new State(new int[]{136,412,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,334,108,335,137,149,139,150,138,152,8,440,135,451,20,456,44,464,45,542,30,546,70,550,61,553,40,558,33,582},new int[]{-260,593,-261,409,-257,410,-85,175,-94,267,-95,268,-166,269,-132,196,-136,24,-137,27,-15,435,-185,436,-150,439,-152,147,-151,151,-258,442,-286,443,-241,449,-234,450,-266,453,-267,454,-263,455,-255,462,-28,463,-248,541,-115,545,-116,549,-212,555,-210,556,-209,557});
states[593] = new State(new int[]{103,594,9,-459,10,-459});
states[594] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252,5,576},new int[]{-81,595,-91,127,-90,132,-89,290,-93,298,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574,-105,575});
states[595] = new State(-463);
states[596] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-144,597,-120,589,-132,588,-136,24,-137,27});
states[597] = new State(new int[]{5,598,93,586});
states[598] = new State(new int[]{136,412,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,334,108,335,137,149,139,150,138,152,8,440,135,451,20,456,44,464,45,542,30,546,70,550,61,553,40,558,33,582},new int[]{-260,599,-261,409,-257,410,-85,175,-94,267,-95,268,-166,269,-132,196,-136,24,-137,27,-15,435,-185,436,-150,439,-152,147,-151,151,-258,442,-286,443,-241,449,-234,450,-266,453,-267,454,-263,455,-255,462,-28,463,-248,541,-115,545,-116,549,-212,555,-210,556,-209,557});
states[599] = new State(new int[]{103,600,9,-460,10,-460});
states[600] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252,5,576},new int[]{-81,601,-91,127,-90,132,-89,290,-93,298,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574,-105,575});
states[601] = new State(-464);
states[602] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-144,603,-120,589,-132,588,-136,24,-137,27});
states[603] = new State(new int[]{5,604,93,586});
states[604] = new State(new int[]{136,412,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,334,108,335,137,149,139,150,138,152,8,440,135,451,20,456,44,464,45,542,30,546,70,550,61,553,40,558,33,582},new int[]{-260,605,-261,409,-257,410,-85,175,-94,267,-95,268,-166,269,-132,196,-136,24,-137,27,-15,435,-185,436,-150,439,-152,147,-151,151,-258,442,-286,443,-241,449,-234,450,-266,453,-267,454,-263,455,-255,462,-28,463,-248,541,-115,545,-116,549,-212,555,-210,556,-209,557});
states[605] = new State(-461);
states[606] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-236,607,-8,910,-9,611,-166,612,-132,905,-136,24,-137,27,-286,908});
states[607] = new State(new int[]{12,608,93,609});
states[608] = new State(-198);
states[609] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-8,610,-9,611,-166,612,-132,905,-136,24,-137,27,-286,908});
states[610] = new State(-200);
states[611] = new State(-201);
states[612] = new State(new int[]{7,163,8,615,116,168,12,-602,93,-602},new int[]{-65,613,-284,614});
states[613] = new State(-689);
states[614] = new State(-219);
states[615] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,507,17,247,18,252,5,576,33,620,40,818,9,-712},new int[]{-63,616,-66,348,-82,506,-81,126,-91,127,-90,132,-89,290,-93,298,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,351,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574,-105,575,-306,618,-307,619});
states[616] = new State(new int[]{9,617});
states[617] = new State(-603);
states[618] = new State(-575);
states[619] = new State(-866);
states[620] = new State(new int[]{8,895,5,407,120,-879},new int[]{-308,621});
states[621] = new State(new int[]{120,622});
states[622] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252,84,116,36,627,50,665,90,660,31,670,32,696,69,728,21,644,95,686,56,736,71,787,43,693},new int[]{-312,623,-91,354,-90,132,-89,290,-93,355,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574,-314,624,-240,625,-138,626,-302,723,-232,724,-109,725,-108,726,-110,727,-32,783,-287,784,-154,785,-111,786,-233,788});
states[623] = new State(-870);
states[624] = new State(-896);
states[625] = new State(-883);
states[626] = new State(-884);
states[627] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252},new int[]{-91,628,-90,132,-89,290,-93,355,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574});
states[628] = new State(new int[]{47,629,13,128});
states[629] = new State(new int[]{134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,492,8,493,17,247,18,252,137,149,139,150,138,152,147,154,149,155,148,156,53,637,84,116,36,627,21,644,90,660,50,665,31,670,51,680,95,686,43,693,32,696,49,704,56,736,71,741,69,728,34,748,85,-476,10,-476,91,-476,94,-476,29,-476,97,-476,28,-476,93,-476,12,-476,9,-476,92,-476,2,-476,78,-476,77,-476,76,-476,75,-476},new int[]{-245,630,-4,122,-100,123,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-14,633,-150,146,-152,147,-151,151,-15,153,-16,502,-54,634,-103,524,-198,635,-118,636,-240,641,-138,642,-32,643,-232,659,-302,664,-109,669,-303,679,-145,684,-287,685,-233,692,-108,695,-298,703,-55,732,-160,733,-159,734,-154,735,-111,740,-112,745,-110,746,-325,747});
states[630] = new State(new int[]{28,631,85,-515,10,-515,91,-515,94,-515,29,-515,97,-515,93,-515,12,-515,9,-515,92,-515,80,-515,79,-515,2,-515,78,-515,77,-515,76,-515,75,-515});
states[631] = new State(new int[]{134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,492,8,493,17,247,18,252,137,149,139,150,138,152,147,154,149,155,148,156,53,637,84,116,36,627,21,644,90,660,50,665,31,670,51,680,95,686,43,693,32,696,49,704,56,736,71,741,69,728,34,748,85,-476,10,-476,91,-476,94,-476,29,-476,97,-476,28,-476,93,-476,12,-476,9,-476,92,-476,2,-476,78,-476,77,-476,76,-476,75,-476},new int[]{-245,632,-4,122,-100,123,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-14,633,-150,146,-152,147,-151,151,-15,153,-16,502,-54,634,-103,524,-198,635,-118,636,-240,641,-138,642,-32,643,-232,659,-302,664,-109,669,-303,679,-145,684,-287,685,-233,692,-108,695,-298,703,-55,732,-160,733,-159,734,-154,735,-111,740,-112,745,-110,746,-325,747});
states[632] = new State(-516);
states[633] = new State(new int[]{7,144,11,-696});
states[634] = new State(new int[]{7,519});
states[635] = new State(-478);
states[636] = new State(-479);
states[637] = new State(new int[]{147,639,136,23,79,25,80,26,74,28,72,29},new int[]{-128,638,-132,640,-136,24,-137,27});
states[638] = new State(-511);
states[639] = new State(-92);
states[640] = new State(-93);
states[641] = new State(-480);
states[642] = new State(-481);
states[643] = new State(-482);
states[644] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252},new int[]{-91,645,-90,132,-89,290,-93,355,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574});
states[645] = new State(new int[]{54,646,13,128});
states[646] = new State(new int[]{136,23,79,25,80,26,74,28,72,227,137,149,139,150,138,152,147,154,149,155,148,156,38,244,17,247,18,252,11,417,52,421,134,422,8,424,128,427,109,334,108,335,28,654,85,-532},new int[]{-33,647,-238,892,-247,894,-68,885,-98,891,-86,890,-83,186,-75,191,-12,215,-10,225,-13,201,-132,226,-136,24,-137,27,-150,242,-152,147,-151,151,-15,243,-242,246,-280,251,-225,416,-185,429,-159,431,-250,432,-254,433,-227,434});
states[647] = new State(new int[]{10,650,28,654,85,-532},new int[]{-238,648});
states[648] = new State(new int[]{85,649});
states[649] = new State(-523);
states[650] = new State(new int[]{28,654,136,23,79,25,80,26,74,28,72,227,137,149,139,150,138,152,147,154,149,155,148,156,38,244,17,247,18,252,11,417,52,421,134,422,8,424,128,427,109,334,108,335,85,-532},new int[]{-238,651,-247,653,-68,885,-98,891,-86,890,-83,186,-75,191,-12,215,-10,225,-13,201,-132,226,-136,24,-137,27,-150,242,-152,147,-151,151,-15,243,-242,246,-280,251,-225,416,-185,429,-159,431,-250,432,-254,433,-227,434});
states[651] = new State(new int[]{85,652});
states[652] = new State(-524);
states[653] = new State(-527);
states[654] = new State(new int[]{134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,492,8,493,17,247,18,252,137,149,139,150,138,152,147,658,149,155,148,156,53,637,84,116,36,627,21,644,90,660,50,665,31,670,51,680,95,686,43,693,32,696,49,704,56,736,71,741,69,728,34,748,10,-476,85,-476},new int[]{-237,655,-246,656,-245,121,-4,122,-100,123,-117,337,-99,344,-132,657,-136,24,-137,27,-177,357,-242,500,-280,501,-14,633,-150,146,-152,147,-151,151,-15,153,-16,502,-54,634,-103,524,-198,635,-118,636,-240,641,-138,642,-32,643,-232,659,-302,664,-109,669,-303,679,-145,684,-287,685,-233,692,-108,695,-298,703,-55,732,-160,733,-159,734,-154,735,-111,740,-112,745,-110,746,-325,747,-128,852});
states[655] = new State(new int[]{10,119,85,-533});
states[656] = new State(-513);
states[657] = new State(new int[]{16,-697,8,-697,7,-697,135,-697,4,-697,14,-697,103,-697,104,-697,105,-697,106,-697,107,-697,85,-697,10,-697,11,-697,91,-697,94,-697,29,-697,97,-697,5,-93});
states[658] = new State(new int[]{7,-176,11,-176,5,-92});
states[659] = new State(-483);
states[660] = new State(new int[]{134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,492,8,493,17,247,18,252,137,149,139,150,138,152,147,658,149,155,148,156,53,637,84,116,36,627,21,644,90,660,50,665,31,670,51,680,95,686,43,693,32,696,49,704,56,736,71,741,69,728,34,748,91,-476,10,-476},new int[]{-237,661,-246,656,-245,121,-4,122,-100,123,-117,337,-99,344,-132,657,-136,24,-137,27,-177,357,-242,500,-280,501,-14,633,-150,146,-152,147,-151,151,-15,153,-16,502,-54,634,-103,524,-198,635,-118,636,-240,641,-138,642,-32,643,-232,659,-302,664,-109,669,-303,679,-145,684,-287,685,-233,692,-108,695,-298,703,-55,732,-160,733,-159,734,-154,735,-111,740,-112,745,-110,746,-325,747,-128,852});
states[661] = new State(new int[]{91,662,10,119});
states[662] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252,5,576},new int[]{-81,663,-91,127,-90,132,-89,290,-93,298,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574,-105,575});
states[663] = new State(-534);
states[664] = new State(-484);
states[665] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252},new int[]{-91,666,-90,132,-89,290,-93,355,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574});
states[666] = new State(new int[]{13,128,92,877,134,-537,136,-537,79,-537,80,-537,74,-537,72,-537,41,-537,38,-537,8,-537,17,-537,18,-537,137,-537,139,-537,138,-537,147,-537,149,-537,148,-537,53,-537,84,-537,36,-537,21,-537,90,-537,50,-537,31,-537,51,-537,95,-537,43,-537,32,-537,49,-537,56,-537,71,-537,69,-537,34,-537,85,-537,10,-537,91,-537,94,-537,29,-537,97,-537,28,-537,93,-537,12,-537,9,-537,2,-537,78,-537,77,-537,76,-537,75,-537},new int[]{-277,667});
states[667] = new State(new int[]{134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,492,8,493,17,247,18,252,137,149,139,150,138,152,147,154,149,155,148,156,53,637,84,116,36,627,21,644,90,660,50,665,31,670,51,680,95,686,43,693,32,696,49,704,56,736,71,741,69,728,34,748,85,-476,10,-476,91,-476,94,-476,29,-476,97,-476,28,-476,93,-476,12,-476,9,-476,92,-476,2,-476,78,-476,77,-476,76,-476,75,-476},new int[]{-245,668,-4,122,-100,123,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-14,633,-150,146,-152,147,-151,151,-15,153,-16,502,-54,634,-103,524,-198,635,-118,636,-240,641,-138,642,-32,643,-232,659,-302,664,-109,669,-303,679,-145,684,-287,685,-233,692,-108,695,-298,703,-55,732,-160,733,-159,734,-154,735,-111,740,-112,745,-110,746,-325,747});
states[668] = new State(-535);
states[669] = new State(-485);
states[670] = new State(new int[]{49,884,136,-546,79,-546,80,-546,74,-546,72,-546},new int[]{-18,671});
states[671] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-132,672,-136,24,-137,27});
states[672] = new State(new int[]{103,880,5,881},new int[]{-271,673});
states[673] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252},new int[]{-91,674,-90,132,-89,290,-93,355,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574});
states[674] = new State(new int[]{13,128,67,878,68,879},new int[]{-104,675});
states[675] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252},new int[]{-91,676,-90,132,-89,290,-93,355,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574});
states[676] = new State(new int[]{13,128,92,877,134,-537,136,-537,79,-537,80,-537,74,-537,72,-537,41,-537,38,-537,8,-537,17,-537,18,-537,137,-537,139,-537,138,-537,147,-537,149,-537,148,-537,53,-537,84,-537,36,-537,21,-537,90,-537,50,-537,31,-537,51,-537,95,-537,43,-537,32,-537,49,-537,56,-537,71,-537,69,-537,34,-537,85,-537,10,-537,91,-537,94,-537,29,-537,97,-537,28,-537,93,-537,12,-537,9,-537,2,-537,78,-537,77,-537,76,-537,75,-537},new int[]{-277,677});
states[677] = new State(new int[]{134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,492,8,493,17,247,18,252,137,149,139,150,138,152,147,154,149,155,148,156,53,637,84,116,36,627,21,644,90,660,50,665,31,670,51,680,95,686,43,693,32,696,49,704,56,736,71,741,69,728,34,748,85,-476,10,-476,91,-476,94,-476,29,-476,97,-476,28,-476,93,-476,12,-476,9,-476,92,-476,2,-476,78,-476,77,-476,76,-476,75,-476},new int[]{-245,678,-4,122,-100,123,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-14,633,-150,146,-152,147,-151,151,-15,153,-16,502,-54,634,-103,524,-198,635,-118,636,-240,641,-138,642,-32,643,-232,659,-302,664,-109,669,-303,679,-145,684,-287,685,-233,692,-108,695,-298,703,-55,732,-160,733,-159,734,-154,735,-111,740,-112,745,-110,746,-325,747});
states[678] = new State(-544);
states[679] = new State(-486);
states[680] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,507,17,247,18,252,5,576,33,620,40,818},new int[]{-66,681,-82,506,-81,126,-91,127,-90,132,-89,290,-93,298,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,351,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574,-105,575,-306,618,-307,619});
states[681] = new State(new int[]{92,682,93,349});
states[682] = new State(new int[]{134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,492,8,493,17,247,18,252,137,149,139,150,138,152,147,154,149,155,148,156,53,637,84,116,36,627,21,644,90,660,50,665,31,670,51,680,95,686,43,693,32,696,49,704,56,736,71,741,69,728,34,748,85,-476,10,-476,91,-476,94,-476,29,-476,97,-476,28,-476,93,-476,12,-476,9,-476,92,-476,2,-476,78,-476,77,-476,76,-476,75,-476},new int[]{-245,683,-4,122,-100,123,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-14,633,-150,146,-152,147,-151,151,-15,153,-16,502,-54,634,-103,524,-198,635,-118,636,-240,641,-138,642,-32,643,-232,659,-302,664,-109,669,-303,679,-145,684,-287,685,-233,692,-108,695,-298,703,-55,732,-160,733,-159,734,-154,735,-111,740,-112,745,-110,746,-325,747});
states[683] = new State(-551);
states[684] = new State(-487);
states[685] = new State(-488);
states[686] = new State(new int[]{134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,492,8,493,17,247,18,252,137,149,139,150,138,152,147,658,149,155,148,156,53,637,84,116,36,627,21,644,90,660,50,665,31,670,51,680,95,686,43,693,32,696,49,704,56,736,71,741,69,728,34,748,10,-476,94,-476,29,-476},new int[]{-237,687,-246,656,-245,121,-4,122,-100,123,-117,337,-99,344,-132,657,-136,24,-137,27,-177,357,-242,500,-280,501,-14,633,-150,146,-152,147,-151,151,-15,153,-16,502,-54,634,-103,524,-198,635,-118,636,-240,641,-138,642,-32,643,-232,659,-302,664,-109,669,-303,679,-145,684,-287,685,-233,692,-108,695,-298,703,-55,732,-160,733,-159,734,-154,735,-111,740,-112,745,-110,746,-325,747,-128,852});
states[687] = new State(new int[]{10,119,94,689,29,855},new int[]{-275,688});
states[688] = new State(-553);
states[689] = new State(new int[]{134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,492,8,493,17,247,18,252,137,149,139,150,138,152,147,658,149,155,148,156,53,637,84,116,36,627,21,644,90,660,50,665,31,670,51,680,95,686,43,693,32,696,49,704,56,736,71,741,69,728,34,748,85,-476,10,-476},new int[]{-237,690,-246,656,-245,121,-4,122,-100,123,-117,337,-99,344,-132,657,-136,24,-137,27,-177,357,-242,500,-280,501,-14,633,-150,146,-152,147,-151,151,-15,153,-16,502,-54,634,-103,524,-198,635,-118,636,-240,641,-138,642,-32,643,-232,659,-302,664,-109,669,-303,679,-145,684,-287,685,-233,692,-108,695,-298,703,-55,732,-160,733,-159,734,-154,735,-111,740,-112,745,-110,746,-325,747,-128,852});
states[690] = new State(new int[]{85,691,10,119});
states[691] = new State(-554);
states[692] = new State(-489);
states[693] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252,5,576,85,-568,10,-568,91,-568,94,-568,29,-568,97,-568,28,-568,93,-568,12,-568,9,-568,92,-568,2,-568,78,-568,77,-568,76,-568,75,-568},new int[]{-81,694,-91,127,-90,132,-89,290,-93,298,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574,-105,575});
states[694] = new State(-569);
states[695] = new State(-490);
states[696] = new State(new int[]{49,840,136,23,79,25,80,26,74,28,72,29},new int[]{-132,697,-136,24,-137,27});
states[697] = new State(new int[]{5,838,130,-543},new int[]{-259,698});
states[698] = new State(new int[]{130,699});
states[699] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252},new int[]{-91,700,-90,132,-89,290,-93,355,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574});
states[700] = new State(new int[]{92,701,13,128});
states[701] = new State(new int[]{134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,492,8,493,17,247,18,252,137,149,139,150,138,152,147,154,149,155,148,156,53,637,84,116,36,627,21,644,90,660,50,665,31,670,51,680,95,686,43,693,32,696,49,704,56,736,71,741,69,728,34,748,85,-476,10,-476,91,-476,94,-476,29,-476,97,-476,28,-476,93,-476,12,-476,9,-476,92,-476,2,-476,78,-476,77,-476,76,-476,75,-476},new int[]{-245,702,-4,122,-100,123,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-14,633,-150,146,-152,147,-151,151,-15,153,-16,502,-54,634,-103,524,-198,635,-118,636,-240,641,-138,642,-32,643,-232,659,-302,664,-109,669,-303,679,-145,684,-287,685,-233,692,-108,695,-298,703,-55,732,-160,733,-159,734,-154,735,-111,740,-112,745,-110,746,-325,747});
states[702] = new State(-539);
states[703] = new State(-491);
states[704] = new State(new int[]{8,706,136,23,79,25,80,26,74,28,72,29},new int[]{-295,705,-143,714,-132,713,-136,24,-137,27});
states[705] = new State(-501);
states[706] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-132,707,-136,24,-137,27});
states[707] = new State(new int[]{93,708});
states[708] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-143,709,-132,713,-136,24,-137,27});
states[709] = new State(new int[]{9,710,93,405});
states[710] = new State(new int[]{103,711});
states[711] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252,5,576},new int[]{-81,712,-91,127,-90,132,-89,290,-93,298,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574,-105,575});
states[712] = new State(-503);
states[713] = new State(-330);
states[714] = new State(new int[]{5,715,93,405,103,836});
states[715] = new State(new int[]{136,412,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,334,108,335,137,149,139,150,138,152,8,440,135,451,20,456,44,464,45,542,30,546,70,550,61,553,40,558,33,582},new int[]{-261,716,-257,410,-85,175,-94,267,-95,268,-166,269,-132,196,-136,24,-137,27,-15,435,-185,436,-150,439,-152,147,-151,151,-258,442,-286,443,-241,449,-234,450,-266,453,-267,454,-263,455,-255,462,-28,463,-248,541,-115,545,-116,549,-212,555,-210,556,-209,557});
states[716] = new State(new int[]{103,834,113,835,85,-396,10,-396,91,-396,94,-396,29,-396,97,-396,28,-396,93,-396,12,-396,9,-396,92,-396,80,-396,79,-396,2,-396,78,-396,77,-396,76,-396,75,-396},new int[]{-322,717});
states[717] = new State(new int[]{136,23,79,25,80,26,74,28,72,227,137,149,139,150,138,152,147,154,149,155,148,156,38,244,17,247,18,252,11,417,52,421,134,422,8,789,128,427,109,334,108,335,59,158,33,620,40,818},new int[]{-80,718,-79,719,-78,240,-83,241,-75,191,-12,215,-10,225,-13,201,-132,720,-136,24,-137,27,-150,242,-152,147,-151,151,-15,243,-242,246,-280,251,-225,416,-185,429,-159,431,-250,432,-254,433,-227,434,-87,806,-228,807,-53,808,-307,817});
states[718] = new State(-398);
states[719] = new State(-399);
states[720] = new State(new int[]{120,721,4,-155,11,-155,7,-155,135,-155,8,-155,112,-155,129,-155,131,-155,111,-155,110,-155,124,-155,125,-155,126,-155,127,-155,123,-155,109,-155,108,-155,121,-155,122,-155,113,-155,118,-155,116,-155,114,-155,117,-155,115,-155,130,-155,13,-155,85,-155,10,-155,91,-155,94,-155,29,-155,97,-155,28,-155,93,-155,12,-155,9,-155,92,-155,80,-155,79,-155,2,-155,78,-155,77,-155,76,-155,75,-155});
states[721] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252,84,116,36,627,50,665,90,660,31,670,32,696,69,728,21,644,95,686,56,736,71,787,43,693},new int[]{-312,722,-91,354,-90,132,-89,290,-93,355,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574,-314,624,-240,625,-138,626,-302,723,-232,724,-109,725,-108,726,-110,727,-32,783,-287,784,-154,785,-111,786,-233,788});
states[722] = new State(-401);
states[723] = new State(-885);
states[724] = new State(-886);
states[725] = new State(-887);
states[726] = new State(-888);
states[727] = new State(-889);
states[728] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252},new int[]{-91,729,-90,132,-89,290,-93,355,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574});
states[729] = new State(new int[]{92,730,13,128});
states[730] = new State(new int[]{134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,492,8,493,17,247,18,252,137,149,139,150,138,152,147,154,149,155,148,156,53,637,84,116,36,627,21,644,90,660,50,665,31,670,51,680,95,686,43,693,32,696,49,704,56,736,71,741,69,728,34,748,85,-476,10,-476,91,-476,94,-476,29,-476,97,-476,28,-476,93,-476,12,-476,9,-476,92,-476,2,-476,78,-476,77,-476,76,-476,75,-476},new int[]{-245,731,-4,122,-100,123,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-14,633,-150,146,-152,147,-151,151,-15,153,-16,502,-54,634,-103,524,-198,635,-118,636,-240,641,-138,642,-32,643,-232,659,-302,664,-109,669,-303,679,-145,684,-287,685,-233,692,-108,695,-298,703,-55,732,-160,733,-159,734,-154,735,-111,740,-112,745,-110,746,-325,747});
states[731] = new State(-498);
states[732] = new State(-492);
states[733] = new State(-572);
states[734] = new State(-573);
states[735] = new State(-493);
states[736] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252},new int[]{-91,737,-90,132,-89,290,-93,355,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574});
states[737] = new State(new int[]{92,738,13,128});
states[738] = new State(new int[]{134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,492,8,493,17,247,18,252,137,149,139,150,138,152,147,154,149,155,148,156,53,637,84,116,36,627,21,644,90,660,50,665,31,670,51,680,95,686,43,693,32,696,49,704,56,736,71,741,69,728,34,748,85,-476,10,-476,91,-476,94,-476,29,-476,97,-476,28,-476,93,-476,12,-476,9,-476,92,-476,2,-476,78,-476,77,-476,76,-476,75,-476},new int[]{-245,739,-4,122,-100,123,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-14,633,-150,146,-152,147,-151,151,-15,153,-16,502,-54,634,-103,524,-198,635,-118,636,-240,641,-138,642,-32,643,-232,659,-302,664,-109,669,-303,679,-145,684,-287,685,-233,692,-108,695,-298,703,-55,732,-160,733,-159,734,-154,735,-111,740,-112,745,-110,746,-325,747});
states[739] = new State(-538);
states[740] = new State(-494);
states[741] = new State(new int[]{70,743,52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252},new int[]{-91,742,-90,132,-89,290,-93,355,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574});
states[742] = new State(new int[]{13,128,85,-499,10,-499,91,-499,94,-499,29,-499,97,-499,28,-499,93,-499,12,-499,9,-499,92,-499,80,-499,79,-499,2,-499,78,-499,77,-499,76,-499,75,-499});
states[743] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252},new int[]{-91,744,-90,132,-89,290,-93,355,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574});
states[744] = new State(new int[]{13,128,85,-500,10,-500,91,-500,94,-500,29,-500,97,-500,28,-500,93,-500,12,-500,9,-500,92,-500,80,-500,79,-500,2,-500,78,-500,77,-500,76,-500,75,-500});
states[745] = new State(-495);
states[746] = new State(-496);
states[747] = new State(-497);
states[748] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252},new int[]{-91,749,-90,132,-89,290,-93,355,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574});
states[749] = new State(new int[]{51,750,13,128});
states[750] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-327,751,-326,782,-324,758,-269,765,-166,162,-132,196,-136,24,-137,27});
states[751] = new State(new int[]{10,754,28,654,85,-532},new int[]{-238,752});
states[752] = new State(new int[]{85,753});
states[753] = new State(-517);
states[754] = new State(new int[]{28,654,136,23,79,25,80,26,74,28,72,29,85,-532},new int[]{-238,755,-326,757,-324,758,-269,765,-166,162,-132,196,-136,24,-137,27});
states[755] = new State(new int[]{85,756});
states[756] = new State(-518);
states[757] = new State(-520);
states[758] = new State(new int[]{35,759,5,763});
states[759] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252},new int[]{-91,760,-90,132,-89,290,-93,355,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574});
states[760] = new State(new int[]{5,761,13,128});
states[761] = new State(new int[]{134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,492,8,493,17,247,18,252,137,149,139,150,138,152,147,154,149,155,148,156,53,637,84,116,36,627,21,644,90,660,50,665,31,670,51,680,95,686,43,693,32,696,49,704,56,736,71,741,69,728,34,748,10,-476,28,-476,85,-476},new int[]{-245,762,-4,122,-100,123,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-14,633,-150,146,-152,147,-151,151,-15,153,-16,502,-54,634,-103,524,-198,635,-118,636,-240,641,-138,642,-32,643,-232,659,-302,664,-109,669,-303,679,-145,684,-287,685,-233,692,-108,695,-298,703,-55,732,-160,733,-159,734,-154,735,-111,740,-112,745,-110,746,-325,747});
states[762] = new State(-521);
states[763] = new State(new int[]{134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,492,8,493,17,247,18,252,137,149,139,150,138,152,147,154,149,155,148,156,53,637,84,116,36,627,21,644,90,660,50,665,31,670,51,680,95,686,43,693,32,696,49,704,56,736,71,741,69,728,34,748,10,-476,28,-476,85,-476},new int[]{-245,764,-4,122,-100,123,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-14,633,-150,146,-152,147,-151,151,-15,153,-16,502,-54,634,-103,524,-198,635,-118,636,-240,641,-138,642,-32,643,-232,659,-302,664,-109,669,-303,679,-145,684,-287,685,-233,692,-108,695,-298,703,-55,732,-160,733,-159,734,-154,735,-111,740,-112,745,-110,746,-325,747});
states[764] = new State(-522);
states[765] = new State(new int[]{8,766});
states[766] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,49,774},new int[]{-331,767,-329,781,-132,771,-136,24,-137,27,-324,778,-269,765,-166,162});
states[767] = new State(new int[]{9,768,10,769,93,779});
states[768] = new State(-608);
states[769] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,49,774},new int[]{-329,770,-132,771,-136,24,-137,27,-324,778,-269,765,-166,162});
states[770] = new State(-610);
states[771] = new State(new int[]{5,772,9,-619,10,-619,93,-619,7,-245,4,-245,116,-245,8,-245});
states[772] = new State(new int[]{136,412,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,334,108,335,137,149,139,150,138,152,8,440,135,451,20,456,44,464,45,542,30,546,70,550,61,553,40,558,33,582},new int[]{-261,773,-257,410,-85,175,-94,267,-95,268,-166,269,-132,196,-136,24,-137,27,-15,435,-185,436,-150,439,-152,147,-151,151,-258,442,-286,443,-241,449,-234,450,-266,453,-267,454,-263,455,-255,462,-28,463,-248,541,-115,545,-116,549,-212,555,-210,556,-209,557});
states[773] = new State(-618);
states[774] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-132,775,-136,24,-137,27});
states[775] = new State(new int[]{5,776,9,-621,10,-621,93,-621});
states[776] = new State(new int[]{136,412,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,334,108,335,137,149,139,150,138,152,8,440,135,451,20,456,44,464,45,542,30,546,70,550,61,553,40,558,33,582},new int[]{-261,777,-257,410,-85,175,-94,267,-95,268,-166,269,-132,196,-136,24,-137,27,-15,435,-185,436,-150,439,-152,147,-151,151,-258,442,-286,443,-241,449,-234,450,-266,453,-267,454,-263,455,-255,462,-28,463,-248,541,-115,545,-116,549,-212,555,-210,556,-209,557});
states[777] = new State(-620);
states[778] = new State(-622);
states[779] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,49,774},new int[]{-329,780,-132,771,-136,24,-137,27,-324,778,-269,765,-166,162});
states[780] = new State(-611);
states[781] = new State(-609);
states[782] = new State(-519);
states[783] = new State(-890);
states[784] = new State(-891);
states[785] = new State(-892);
states[786] = new State(-893);
states[787] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252},new int[]{-91,742,-90,132,-89,290,-93,355,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574});
states[788] = new State(-894);
states[789] = new State(new int[]{9,797,136,23,79,25,80,26,74,28,72,227,137,149,139,150,138,152,147,154,149,155,148,156,38,244,17,247,18,252,11,417,52,421,134,422,8,802,128,427,109,334,108,335,59,158},new int[]{-83,790,-62,791,-230,795,-75,191,-12,215,-10,225,-13,201,-132,801,-136,24,-137,27,-150,242,-152,147,-151,151,-15,243,-242,246,-280,251,-225,416,-185,429,-159,431,-250,432,-254,433,-227,434,-61,237,-79,805,-78,240,-87,806,-228,807,-53,808,-229,809,-231,816,-121,812});
states[790] = new State(new int[]{9,426,13,187,93,-179});
states[791] = new State(new int[]{9,792});
states[792] = new State(new int[]{120,793,85,-182,10,-182,91,-182,94,-182,29,-182,97,-182,28,-182,93,-182,12,-182,9,-182,92,-182,80,-182,79,-182,2,-182,78,-182,77,-182,76,-182,75,-182});
states[793] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252,84,116,36,627,50,665,90,660,31,670,32,696,69,728,21,644,95,686,56,736,71,787,43,693},new int[]{-312,794,-91,354,-90,132,-89,290,-93,355,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574,-314,624,-240,625,-138,626,-302,723,-232,724,-109,725,-108,726,-110,727,-32,783,-287,784,-154,785,-111,786,-233,788});
states[794] = new State(-403);
states[795] = new State(new int[]{9,796});
states[796] = new State(-187);
states[797] = new State(new int[]{5,407,120,-879},new int[]{-308,798});
states[798] = new State(new int[]{120,799});
states[799] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252,84,116,36,627,50,665,90,660,31,670,32,696,69,728,21,644,95,686,56,736,71,787,43,693},new int[]{-312,800,-91,354,-90,132,-89,290,-93,355,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574,-314,624,-240,625,-138,626,-302,723,-232,724,-109,725,-108,726,-110,727,-32,783,-287,784,-154,785,-111,786,-233,788});
states[800] = new State(-402);
states[801] = new State(new int[]{4,-155,11,-155,7,-155,135,-155,8,-155,112,-155,129,-155,131,-155,111,-155,110,-155,124,-155,125,-155,126,-155,127,-155,123,-155,109,-155,108,-155,121,-155,122,-155,113,-155,118,-155,116,-155,114,-155,117,-155,115,-155,130,-155,9,-155,13,-155,93,-155,5,-193});
states[802] = new State(new int[]{136,23,79,25,80,26,74,28,72,227,137,149,139,150,138,152,147,154,149,155,148,156,38,244,17,247,18,252,11,417,52,421,134,422,8,802,128,427,109,334,108,335,59,158,9,-183},new int[]{-83,790,-62,803,-230,795,-75,191,-12,215,-10,225,-13,201,-132,801,-136,24,-137,27,-150,242,-152,147,-151,151,-15,243,-242,246,-280,251,-225,416,-185,429,-159,431,-250,432,-254,433,-227,434,-61,237,-79,805,-78,240,-87,806,-228,807,-53,808,-229,809,-231,816,-121,812});
states[803] = new State(new int[]{9,804});
states[804] = new State(-182);
states[805] = new State(-185);
states[806] = new State(-180);
states[807] = new State(-181);
states[808] = new State(-405);
states[809] = new State(new int[]{10,810,9,-188});
states[810] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,9,-189},new int[]{-231,811,-121,812,-132,815,-136,24,-137,27});
states[811] = new State(-191);
states[812] = new State(new int[]{5,813});
states[813] = new State(new int[]{136,23,79,25,80,26,74,28,72,227,137,149,139,150,138,152,147,154,149,155,148,156,38,244,17,247,18,252,11,417,52,421,134,422,8,802,128,427,109,334,108,335},new int[]{-78,814,-83,241,-75,191,-12,215,-10,225,-13,201,-132,226,-136,24,-137,27,-150,242,-152,147,-151,151,-15,243,-242,246,-280,251,-225,416,-185,429,-159,431,-250,432,-254,433,-227,434,-87,806,-228,807});
states[814] = new State(-192);
states[815] = new State(-193);
states[816] = new State(-190);
states[817] = new State(-400);
states[818] = new State(new int[]{120,819,8,825});
states[819] = new State(new int[]{134,343,136,23,79,25,80,26,74,28,72,29,41,358,38,388,8,822,17,247,18,252,137,149,139,150,138,152,147,154,149,155,148,156,84,116,36,627,50,665,90,660,31,670,32,696,69,728,21,644,95,686,56,736,71,787,43,693},new int[]{-313,820,-198,821,-100,123,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-14,633,-150,146,-152,147,-151,151,-15,153,-16,502,-54,634,-103,524,-4,823,-314,824,-240,625,-138,626,-302,723,-232,724,-109,725,-108,726,-110,727,-32,783,-287,784,-154,785,-111,786,-233,788});
states[820] = new State(-873);
states[821] = new State(-897);
states[822] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252,5,576},new int[]{-81,391,-91,393,-99,494,-90,132,-89,290,-93,298,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574,-105,575});
states[823] = new State(-898);
states[824] = new State(-899);
states[825] = new State(new int[]{9,826,136,23,79,25,80,26,74,28,72,29},new int[]{-310,829,-311,833,-143,403,-132,713,-136,24,-137,27});
states[826] = new State(new int[]{120,827});
states[827] = new State(new int[]{134,343,136,23,79,25,80,26,74,28,72,29,41,358,38,388,8,822,17,247,18,252,137,149,139,150,138,152,147,154,149,155,148,156,84,116,36,627,50,665,90,660,31,670,32,696,69,728,21,644,95,686,56,736,71,787,43,693},new int[]{-313,828,-198,821,-100,123,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-14,633,-150,146,-152,147,-151,151,-15,153,-16,502,-54,634,-103,524,-4,823,-314,824,-240,625,-138,626,-302,723,-232,724,-109,725,-108,726,-110,727,-32,783,-287,784,-154,785,-111,786,-233,788});
states[828] = new State(-874);
states[829] = new State(new int[]{9,830,10,401});
states[830] = new State(new int[]{120,831});
states[831] = new State(new int[]{134,343,136,23,79,25,80,26,74,28,72,29,41,358,38,388,8,822,17,247,18,252,137,149,139,150,138,152,147,154,149,155,148,156,84,116,36,627,50,665,90,660,31,670,32,696,69,728,21,644,95,686,56,736,71,787,43,693},new int[]{-313,832,-198,821,-100,123,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-14,633,-150,146,-152,147,-151,151,-15,153,-16,502,-54,634,-103,524,-4,823,-314,824,-240,625,-138,626,-302,723,-232,724,-109,725,-108,726,-110,727,-32,783,-287,784,-154,785,-111,786,-233,788});
states[832] = new State(-875);
states[833] = new State(-876);
states[834] = new State(-394);
states[835] = new State(-395);
states[836] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252,5,576},new int[]{-81,837,-91,127,-90,132,-89,290,-93,298,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574,-105,575});
states[837] = new State(-397);
states[838] = new State(new int[]{136,412,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,334,108,335,137,149,139,150,138,152,8,440,135,451,20,456,44,464,45,542,30,546,70,550,61,553,40,558,33,582},new int[]{-261,839,-257,410,-85,175,-94,267,-95,268,-166,269,-132,196,-136,24,-137,27,-15,435,-185,436,-150,439,-152,147,-151,151,-258,442,-286,443,-241,449,-234,450,-266,453,-267,454,-263,455,-255,462,-28,463,-248,541,-115,545,-116,549,-212,555,-210,556,-209,557});
states[839] = new State(-542);
states[840] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-132,841,-136,24,-137,27});
states[841] = new State(new int[]{5,842,130,848});
states[842] = new State(new int[]{136,412,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,334,108,335,137,149,139,150,138,152,8,440,135,451,20,456,44,464,45,542,30,546,70,550,61,553,40,558,33,582},new int[]{-261,843,-257,410,-85,175,-94,267,-95,268,-166,269,-132,196,-136,24,-137,27,-15,435,-185,436,-150,439,-152,147,-151,151,-258,442,-286,443,-241,449,-234,450,-266,453,-267,454,-263,455,-255,462,-28,463,-248,541,-115,545,-116,549,-212,555,-210,556,-209,557});
states[843] = new State(new int[]{130,844});
states[844] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252},new int[]{-91,845,-90,132,-89,290,-93,355,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574});
states[845] = new State(new int[]{92,846,13,128});
states[846] = new State(new int[]{134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,492,8,493,17,247,18,252,137,149,139,150,138,152,147,154,149,155,148,156,53,637,84,116,36,627,21,644,90,660,50,665,31,670,51,680,95,686,43,693,32,696,49,704,56,736,71,741,69,728,34,748,85,-476,10,-476,91,-476,94,-476,29,-476,97,-476,28,-476,93,-476,12,-476,9,-476,92,-476,2,-476,78,-476,77,-476,76,-476,75,-476},new int[]{-245,847,-4,122,-100,123,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-14,633,-150,146,-152,147,-151,151,-15,153,-16,502,-54,634,-103,524,-198,635,-118,636,-240,641,-138,642,-32,643,-232,659,-302,664,-109,669,-303,679,-145,684,-287,685,-233,692,-108,695,-298,703,-55,732,-160,733,-159,734,-154,735,-111,740,-112,745,-110,746,-325,747});
states[847] = new State(-540);
states[848] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252},new int[]{-91,849,-90,132,-89,290,-93,355,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574});
states[849] = new State(new int[]{92,850,13,128});
states[850] = new State(new int[]{134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,492,8,493,17,247,18,252,137,149,139,150,138,152,147,154,149,155,148,156,53,637,84,116,36,627,21,644,90,660,50,665,31,670,51,680,95,686,43,693,32,696,49,704,56,736,71,741,69,728,34,748,85,-476,10,-476,91,-476,94,-476,29,-476,97,-476,28,-476,93,-476,12,-476,9,-476,92,-476,2,-476,78,-476,77,-476,76,-476,75,-476},new int[]{-245,851,-4,122,-100,123,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-14,633,-150,146,-152,147,-151,151,-15,153,-16,502,-54,634,-103,524,-198,635,-118,636,-240,641,-138,642,-32,643,-232,659,-302,664,-109,669,-303,679,-145,684,-287,685,-233,692,-108,695,-298,703,-55,732,-160,733,-159,734,-154,735,-111,740,-112,745,-110,746,-325,747});
states[851] = new State(-541);
states[852] = new State(new int[]{5,853});
states[853] = new State(new int[]{134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,492,8,493,17,247,18,252,137,149,139,150,138,152,147,658,149,155,148,156,53,637,84,116,36,627,21,644,90,660,50,665,31,670,51,680,95,686,43,693,32,696,49,704,56,736,71,741,69,728,34,748,85,-476,10,-476,91,-476,94,-476,29,-476,97,-476},new int[]{-246,854,-245,121,-4,122,-100,123,-117,337,-99,344,-132,657,-136,24,-137,27,-177,357,-242,500,-280,501,-14,633,-150,146,-152,147,-151,151,-15,153,-16,502,-54,634,-103,524,-198,635,-118,636,-240,641,-138,642,-32,643,-232,659,-302,664,-109,669,-303,679,-145,684,-287,685,-233,692,-108,695,-298,703,-55,732,-160,733,-159,734,-154,735,-111,740,-112,745,-110,746,-325,747,-128,852});
states[854] = new State(-475);
states[855] = new State(new int[]{73,863,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,492,8,493,17,247,18,252,137,149,139,150,138,152,147,658,149,155,148,156,53,637,84,116,36,627,21,644,90,660,50,665,31,670,51,680,95,686,43,693,32,696,49,704,56,736,71,741,69,728,34,748,10,-476,85,-476},new int[]{-56,856,-59,858,-58,875,-237,876,-246,656,-245,121,-4,122,-100,123,-117,337,-99,344,-132,657,-136,24,-137,27,-177,357,-242,500,-280,501,-14,633,-150,146,-152,147,-151,151,-15,153,-16,502,-54,634,-103,524,-198,635,-118,636,-240,641,-138,642,-32,643,-232,659,-302,664,-109,669,-303,679,-145,684,-287,685,-233,692,-108,695,-298,703,-55,732,-160,733,-159,734,-154,735,-111,740,-112,745,-110,746,-325,747,-128,852});
states[856] = new State(new int[]{85,857});
states[857] = new State(-555);
states[858] = new State(new int[]{10,860,28,873,85,-561},new int[]{-239,859});
states[859] = new State(-556);
states[860] = new State(new int[]{73,863,28,873,85,-561},new int[]{-58,861,-239,862});
states[861] = new State(-560);
states[862] = new State(-557);
states[863] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-60,864,-165,867,-166,868,-132,869,-136,24,-137,27,-125,870});
states[864] = new State(new int[]{92,865});
states[865] = new State(new int[]{134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,492,8,493,17,247,18,252,137,149,139,150,138,152,147,154,149,155,148,156,53,637,84,116,36,627,21,644,90,660,50,665,31,670,51,680,95,686,43,693,32,696,49,704,56,736,71,741,69,728,34,748,10,-476,28,-476,85,-476},new int[]{-245,866,-4,122,-100,123,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-14,633,-150,146,-152,147,-151,151,-15,153,-16,502,-54,634,-103,524,-198,635,-118,636,-240,641,-138,642,-32,643,-232,659,-302,664,-109,669,-303,679,-145,684,-287,685,-233,692,-108,695,-298,703,-55,732,-160,733,-159,734,-154,735,-111,740,-112,745,-110,746,-325,747});
states[866] = new State(-563);
states[867] = new State(-564);
states[868] = new State(new int[]{7,163,92,-566});
states[869] = new State(new int[]{7,-245,92,-245,5,-567});
states[870] = new State(new int[]{5,871});
states[871] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-165,872,-166,868,-132,196,-136,24,-137,27});
states[872] = new State(-565);
states[873] = new State(new int[]{134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,492,8,493,17,247,18,252,137,149,139,150,138,152,147,658,149,155,148,156,53,637,84,116,36,627,21,644,90,660,50,665,31,670,51,680,95,686,43,693,32,696,49,704,56,736,71,741,69,728,34,748,10,-476,85,-476},new int[]{-237,874,-246,656,-245,121,-4,122,-100,123,-117,337,-99,344,-132,657,-136,24,-137,27,-177,357,-242,500,-280,501,-14,633,-150,146,-152,147,-151,151,-15,153,-16,502,-54,634,-103,524,-198,635,-118,636,-240,641,-138,642,-32,643,-232,659,-302,664,-109,669,-303,679,-145,684,-287,685,-233,692,-108,695,-298,703,-55,732,-160,733,-159,734,-154,735,-111,740,-112,745,-110,746,-325,747,-128,852});
states[874] = new State(new int[]{10,119,85,-562});
states[875] = new State(-559);
states[876] = new State(new int[]{10,119,85,-558});
states[877] = new State(-536);
states[878] = new State(-549);
states[879] = new State(-550);
states[880] = new State(-547);
states[881] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-166,882,-132,196,-136,24,-137,27});
states[882] = new State(new int[]{103,883,7,163});
states[883] = new State(-548);
states[884] = new State(-545);
states[885] = new State(new int[]{5,886,93,888});
states[886] = new State(new int[]{134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,492,8,493,17,247,18,252,137,149,139,150,138,152,147,154,149,155,148,156,53,637,84,116,36,627,21,644,90,660,50,665,31,670,51,680,95,686,43,693,32,696,49,704,56,736,71,741,69,728,34,748,10,-476,28,-476,85,-476},new int[]{-245,887,-4,122,-100,123,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-14,633,-150,146,-152,147,-151,151,-15,153,-16,502,-54,634,-103,524,-198,635,-118,636,-240,641,-138,642,-32,643,-232,659,-302,664,-109,669,-303,679,-145,684,-287,685,-233,692,-108,695,-298,703,-55,732,-160,733,-159,734,-154,735,-111,740,-112,745,-110,746,-325,747});
states[887] = new State(-528);
states[888] = new State(new int[]{136,23,79,25,80,26,74,28,72,227,137,149,139,150,138,152,147,154,149,155,148,156,38,244,17,247,18,252,11,417,52,421,134,422,8,424,128,427,109,334,108,335},new int[]{-98,889,-86,890,-83,186,-75,191,-12,215,-10,225,-13,201,-132,226,-136,24,-137,27,-150,242,-152,147,-151,151,-15,243,-242,246,-280,251,-225,416,-185,429,-159,431,-250,432,-254,433,-227,434});
states[889] = new State(-530);
states[890] = new State(-531);
states[891] = new State(-529);
states[892] = new State(new int[]{85,893});
states[893] = new State(-525);
states[894] = new State(-526);
states[895] = new State(new int[]{9,896,136,23,79,25,80,26,74,28,72,29},new int[]{-310,900,-311,833,-143,403,-132,713,-136,24,-137,27});
states[896] = new State(new int[]{5,407,120,-879},new int[]{-308,897});
states[897] = new State(new int[]{120,898});
states[898] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252,84,116,36,627,50,665,90,660,31,670,32,696,69,728,21,644,95,686,56,736,71,787,43,693},new int[]{-312,899,-91,354,-90,132,-89,290,-93,355,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574,-314,624,-240,625,-138,626,-302,723,-232,724,-109,725,-108,726,-110,727,-32,783,-287,784,-154,785,-111,786,-233,788});
states[899] = new State(-871);
states[900] = new State(new int[]{9,901,10,401});
states[901] = new State(new int[]{5,407,120,-879},new int[]{-308,902});
states[902] = new State(new int[]{120,903});
states[903] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252,84,116,36,627,50,665,90,660,31,670,32,696,69,728,21,644,95,686,56,736,71,787,43,693},new int[]{-312,904,-91,354,-90,132,-89,290,-93,355,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574,-314,624,-240,625,-138,626,-302,723,-232,724,-109,725,-108,726,-110,727,-32,783,-287,784,-154,785,-111,786,-233,788});
states[904] = new State(-872);
states[905] = new State(new int[]{5,906,7,-245,8,-245,116,-245,12,-245,93,-245});
states[906] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-9,907,-166,612,-132,196,-136,24,-137,27,-286,908});
states[907] = new State(-202);
states[908] = new State(new int[]{8,615,12,-602,93,-602},new int[]{-65,909});
states[909] = new State(-690);
states[910] = new State(-199);
states[911] = new State(-195);
states[912] = new State(-455);
states[913] = new State(-617);
states[914] = new State(new int[]{8,915});
states[915] = new State(new int[]{49,537,136,23,79,25,80,26,74,28,72,29},new int[]{-330,916,-328,920,-323,913,-269,914,-166,162,-132,196,-136,24,-137,27});
states[916] = new State(new int[]{9,917,10,535,93,918});
states[917] = new State(-607);
states[918] = new State(new int[]{49,537,136,23,79,25,80,26,74,28,72,29},new int[]{-328,919,-323,913,-269,914,-166,162,-132,196,-136,24,-137,27});
states[919] = new State(-614);
states[920] = new State(-612);
states[921] = new State(new int[]{136,412,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,334,108,335,137,149,139,150,138,152,8,925,135,451,20,456,44,464,45,542,30,546,70,550,61,553},new int[]{-262,922,-257,923,-85,175,-94,267,-95,268,-166,924,-132,196,-136,24,-137,27,-15,435,-185,436,-150,439,-152,147,-151,151,-241,930,-234,931,-266,932,-267,454,-263,455,-255,462,-28,463,-248,541,-115,545,-116,549,-286,933});
states[922] = new State(-882);
states[923] = new State(-469);
states[924] = new State(new int[]{7,163,116,168,8,-240,111,-240,110,-240,124,-240,125,-240,126,-240,127,-240,123,-240,6,-240,109,-240,108,-240,121,-240,122,-240,120,-240},new int[]{-284,614});
states[925] = new State(new int[]{136,412,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,334,108,335,137,149,139,150,138,152,8,440,135,451,20,456,44,464,45,542,30,546,70,550,61,553,40,558,33,582},new int[]{-74,926,-72,284,-261,287,-257,410,-85,175,-94,267,-95,268,-166,269,-132,196,-136,24,-137,27,-15,435,-185,436,-150,439,-152,147,-151,151,-258,442,-286,443,-241,449,-234,450,-266,453,-267,454,-263,455,-255,462,-28,463,-248,541,-115,545,-116,549,-212,555,-210,556,-209,557});
states[926] = new State(new int[]{9,927,93,928});
states[927] = new State(-235);
states[928] = new State(new int[]{136,412,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,334,108,335,137,149,139,150,138,152,8,440,135,451,20,456,44,464,45,542,30,546,70,550,61,553,40,558,33,582},new int[]{-72,929,-261,287,-257,410,-85,175,-94,267,-95,268,-166,269,-132,196,-136,24,-137,27,-15,435,-185,436,-150,439,-152,147,-151,151,-258,442,-286,443,-241,449,-234,450,-266,453,-267,454,-263,455,-255,462,-28,463,-248,541,-115,545,-116,549,-212,555,-210,556,-209,557});
states[929] = new State(-248);
states[930] = new State(-470);
states[931] = new State(-471);
states[932] = new State(-472);
states[933] = new State(-473);
states[934] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252},new int[]{-91,935,-90,132,-89,290,-93,355,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574});
states[935] = new State(new int[]{13,128,93,-112,5,-112,10,-112,9,-112});
states[936] = new State(new int[]{13,128,93,-111,5,-111,10,-111,9,-111});
states[937] = new State(new int[]{5,921,120,-881},new int[]{-309,938});
states[938] = new State(new int[]{120,939});
states[939] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252,84,116,36,627,50,665,90,660,31,670,32,696,69,728,21,644,95,686,56,736,71,787,43,693},new int[]{-312,940,-91,354,-90,132,-89,290,-93,355,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574,-314,624,-240,625,-138,626,-302,723,-232,724,-109,725,-108,726,-110,727,-32,783,-287,784,-154,785,-111,786,-233,788});
states[940] = new State(-861);
states[941] = new State(new int[]{5,942,10,954,16,-697,8,-697,7,-697,135,-697,4,-697,14,-697,131,-697,129,-697,111,-697,110,-697,124,-697,125,-697,126,-697,127,-697,123,-697,109,-697,108,-697,121,-697,122,-697,119,-697,113,-697,118,-697,116,-697,114,-697,117,-697,115,-697,130,-697,15,-697,93,-697,13,-697,9,-697,112,-697,11,-697});
states[942] = new State(new int[]{136,412,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,334,108,335,137,149,139,150,138,152,8,440,135,451,20,456,44,464,45,542,30,546,70,550,61,553,40,558,33,582},new int[]{-260,943,-261,409,-257,410,-85,175,-94,267,-95,268,-166,269,-132,196,-136,24,-137,27,-15,435,-185,436,-150,439,-152,147,-151,151,-258,442,-286,443,-241,449,-234,450,-266,453,-267,454,-263,455,-255,462,-28,463,-248,541,-115,545,-116,549,-212,555,-210,556,-209,557});
states[943] = new State(new int[]{9,944,10,948});
states[944] = new State(new int[]{5,921,120,-881},new int[]{-309,945});
states[945] = new State(new int[]{120,946});
states[946] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252,84,116,36,627,50,665,90,660,31,670,32,696,69,728,21,644,95,686,56,736,71,787,43,693},new int[]{-312,947,-91,354,-90,132,-89,290,-93,355,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574,-314,624,-240,625,-138,626,-302,723,-232,724,-109,725,-108,726,-110,727,-32,783,-287,784,-154,785,-111,786,-233,788});
states[947] = new State(-862);
states[948] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-310,949,-311,833,-143,403,-132,713,-136,24,-137,27});
states[949] = new State(new int[]{9,950,10,401});
states[950] = new State(new int[]{5,921,120,-881},new int[]{-309,951});
states[951] = new State(new int[]{120,952});
states[952] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252,84,116,36,627,50,665,90,660,31,670,32,696,69,728,21,644,95,686,56,736,71,787,43,693},new int[]{-312,953,-91,354,-90,132,-89,290,-93,355,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574,-314,624,-240,625,-138,626,-302,723,-232,724,-109,725,-108,726,-110,727,-32,783,-287,784,-154,785,-111,786,-233,788});
states[953] = new State(-864);
states[954] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-310,955,-311,833,-143,403,-132,713,-136,24,-137,27});
states[955] = new State(new int[]{9,956,10,401});
states[956] = new State(new int[]{5,921,120,-881},new int[]{-309,957});
states[957] = new State(new int[]{120,958});
states[958] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252,84,116,36,627,50,665,90,660,31,670,32,696,69,728,21,644,95,686,56,736,71,787,43,693},new int[]{-312,959,-91,354,-90,132,-89,290,-93,355,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574,-314,624,-240,625,-138,626,-302,723,-232,724,-109,725,-108,726,-110,727,-32,783,-287,784,-154,785,-111,786,-233,788});
states[959] = new State(-863);
states[960] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,41,358,38,388,8,390,17,247,18,252,137,149,139,150,138,152,147,154,149,155,148,156},new int[]{-99,961,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-14,633,-150,146,-152,147,-151,151,-15,153,-16,502,-54,634});
states[961] = new State(new int[]{16,339,8,345,7,962,135,964,4,965,9,-507,93,-507,11,-695});
states[962] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,78,32,77,33,76,34,75,35,65,36,60,37,121,38,18,39,17,40,59,41,19,42,122,43,123,44,124,45,125,46,126,47,127,48,128,49,129,50,130,51,131,52,20,53,70,54,84,55,21,56,22,57,25,58,26,59,27,60,68,61,92,62,28,63,29,64,30,65,23,66,97,67,94,68,31,69,32,70,33,71,36,72,37,73,38,74,96,75,39,76,40,77,42,78,43,79,44,80,90,81,45,82,95,83,46,84,24,85,47,86,67,87,91,88,48,89,49,90,50,91,51,92,52,93,53,94,54,95,55,96,57,97,98,98,99,99,102,100,100,101,101,102,58,103,71,104,34,105,35,106,41,358},new int[]{-133,963,-132,521,-136,24,-137,27,-278,522,-135,31,-177,523});
states[963] = new State(-707);
states[964] = new State(-709);
states[965] = new State(new int[]{116,168},new int[]{-284,966});
states[966] = new State(-710);
states[967] = new State(new int[]{16,339,8,345,7,962,135,964,4,965,9,-506,93,-506,11,-695});
states[968] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,41,358,38,388,8,390,17,247,18,252,137,149,139,150,138,152,147,154,149,155,148,156},new int[]{-99,969,-103,970,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-14,633,-150,146,-152,147,-151,151,-15,153,-16,502,-54,634});
states[969] = new State(new int[]{16,339,8,345,7,962,135,964,4,965,14,968,103,-682,104,-682,105,-682,106,-682,107,-682,85,-682,10,-682,91,-682,94,-682,29,-682,97,-682,131,-682,129,-682,111,-682,110,-682,124,-682,125,-682,126,-682,127,-682,123,-682,5,-682,109,-682,108,-682,121,-682,122,-682,119,-682,113,-682,118,-682,116,-682,114,-682,117,-682,115,-682,130,-682,15,-682,13,-682,28,-682,93,-682,12,-682,9,-682,92,-682,80,-682,79,-682,2,-682,78,-682,77,-682,76,-682,75,-682,112,-682,6,-682,47,-682,54,-682,134,-682,136,-682,74,-682,72,-682,41,-682,38,-682,17,-682,18,-682,137,-682,139,-682,138,-682,147,-682,149,-682,148,-682,53,-682,84,-682,36,-682,21,-682,90,-682,50,-682,31,-682,51,-682,95,-682,43,-682,32,-682,49,-682,56,-682,71,-682,69,-682,34,-682,67,-682,68,-682,11,-695});
states[970] = new State(-683);
states[971] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-132,972,-136,24,-137,27});
states[972] = new State(new int[]{93,973});
states[973] = new State(new int[]{49,981},new int[]{-321,974});
states[974] = new State(new int[]{9,975,93,978});
states[975] = new State(new int[]{103,976});
states[976] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252,5,576},new int[]{-81,977,-91,127,-90,132,-89,290,-93,298,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574,-105,575});
states[977] = new State(-502);
states[978] = new State(new int[]{49,979});
states[979] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-132,980,-136,24,-137,27});
states[980] = new State(-509);
states[981] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-132,982,-136,24,-137,27});
states[982] = new State(-508);
states[983] = new State(new int[]{140,987,142,988,143,989,144,990,146,991,145,992,100,-726,84,-726,55,-726,25,-726,63,-726,46,-726,49,-726,58,-726,11,-726,24,-726,22,-726,40,-726,33,-726,26,-726,27,-726,42,-726,23,-726,85,-726,78,-726,77,-726,76,-726,75,-726,19,-726,141,-726,37,-726},new int[]{-192,984,-195,993});
states[984] = new State(new int[]{10,985});
states[985] = new State(new int[]{140,987,142,988,143,989,144,990,146,991,145,992,100,-727,84,-727,55,-727,25,-727,63,-727,46,-727,49,-727,58,-727,11,-727,24,-727,22,-727,40,-727,33,-727,26,-727,27,-727,42,-727,23,-727,85,-727,78,-727,77,-727,76,-727,75,-727,19,-727,141,-727,37,-727},new int[]{-195,986});
states[986] = new State(-731);
states[987] = new State(-741);
states[988] = new State(-742);
states[989] = new State(-743);
states[990] = new State(-744);
states[991] = new State(-745);
states[992] = new State(-746);
states[993] = new State(-730);
states[994] = new State(-361);
states[995] = new State(-429);
states[996] = new State(-430);
states[997] = new State(new int[]{8,-435,103,-435,10,-435,5,-435,7,-432});
states[998] = new State(new int[]{116,1000,8,-438,103,-438,10,-438,7,-438,5,-438},new int[]{-140,999});
states[999] = new State(-439);
states[1000] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-143,1001,-132,713,-136,24,-137,27});
states[1001] = new State(new int[]{114,1002,93,405});
states[1002] = new State(-308);
states[1003] = new State(-440);
states[1004] = new State(new int[]{116,1000,8,-436,103,-436,10,-436,5,-436},new int[]{-140,1005});
states[1005] = new State(-437);
states[1006] = new State(new int[]{7,1007});
states[1007] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,41,358},new int[]{-127,1008,-134,1009,-122,997,-119,998,-132,1003,-136,24,-137,27,-177,1004});
states[1008] = new State(-431);
states[1009] = new State(-434);
states[1010] = new State(-433);
states[1011] = new State(-422);
states[1012] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,78,32,77,33,76,34,75,35},new int[]{-158,1013,-132,1052,-136,24,-137,27,-135,1053});
states[1013] = new State(new int[]{7,1037,11,1043,5,-379},new int[]{-219,1014,-224,1040});
states[1014] = new State(new int[]{79,1026,80,1032,10,-386},new int[]{-188,1015});
states[1015] = new State(new int[]{10,1016});
states[1016] = new State(new int[]{59,1021,145,1023,144,1024,140,1025,11,-376,24,-376,22,-376,40,-376,33,-376,26,-376,27,-376,42,-376,23,-376,85,-376,78,-376,77,-376,76,-376,75,-376},new int[]{-191,1017,-196,1018});
states[1017] = new State(-370);
states[1018] = new State(new int[]{10,1019});
states[1019] = new State(new int[]{59,1021,11,-376,24,-376,22,-376,40,-376,33,-376,26,-376,27,-376,42,-376,23,-376,85,-376,78,-376,77,-376,76,-376,75,-376},new int[]{-191,1020});
states[1020] = new State(-371);
states[1021] = new State(new int[]{10,1022});
states[1022] = new State(-377);
states[1023] = new State(-747);
states[1024] = new State(-748);
states[1025] = new State(-749);
states[1026] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,507,17,247,18,252,5,576,33,620,40,818,10,-385},new int[]{-101,1027,-82,1031,-81,126,-91,127,-90,132,-89,290,-93,298,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,351,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574,-105,575,-306,618,-307,619});
states[1027] = new State(new int[]{80,1029,10,-389},new int[]{-189,1028});
states[1028] = new State(-387);
states[1029] = new State(new int[]{134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,492,8,493,17,247,18,252,137,149,139,150,138,152,147,154,149,155,148,156,53,637,84,116,36,627,21,644,90,660,50,665,31,670,51,680,95,686,43,693,32,696,49,704,56,736,71,741,69,728,34,748,10,-476},new int[]{-245,1030,-4,122,-100,123,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-14,633,-150,146,-152,147,-151,151,-15,153,-16,502,-54,634,-103,524,-198,635,-118,636,-240,641,-138,642,-32,643,-232,659,-302,664,-109,669,-303,679,-145,684,-287,685,-233,692,-108,695,-298,703,-55,732,-160,733,-159,734,-154,735,-111,740,-112,745,-110,746,-325,747});
states[1030] = new State(-390);
states[1031] = new State(-384);
states[1032] = new State(new int[]{134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,492,8,493,17,247,18,252,137,149,139,150,138,152,147,154,149,155,148,156,53,637,84,116,36,627,21,644,90,660,50,665,31,670,51,680,95,686,43,693,32,696,49,704,56,736,71,741,69,728,34,748,10,-476},new int[]{-245,1033,-4,122,-100,123,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-14,633,-150,146,-152,147,-151,151,-15,153,-16,502,-54,634,-103,524,-198,635,-118,636,-240,641,-138,642,-32,643,-232,659,-302,664,-109,669,-303,679,-145,684,-287,685,-233,692,-108,695,-298,703,-55,732,-160,733,-159,734,-154,735,-111,740,-112,745,-110,746,-325,747});
states[1033] = new State(new int[]{79,1035,10,-391},new int[]{-190,1034});
states[1034] = new State(-388);
states[1035] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,507,17,247,18,252,5,576,33,620,40,818,10,-385},new int[]{-101,1036,-82,1031,-81,126,-91,127,-90,132,-89,290,-93,298,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,351,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574,-105,575,-306,618,-307,619});
states[1036] = new State(-392);
states[1037] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,78,32,77,33,76,34,75,35},new int[]{-132,1038,-135,1039,-136,24,-137,27});
states[1038] = new State(-365);
states[1039] = new State(-366);
states[1040] = new State(new int[]{5,1041});
states[1041] = new State(new int[]{136,412,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,334,108,335,137,149,139,150,138,152,8,440,135,451,20,456,44,464,45,542,30,546,70,550,61,553,40,558,33,582},new int[]{-260,1042,-261,409,-257,410,-85,175,-94,267,-95,268,-166,269,-132,196,-136,24,-137,27,-15,435,-185,436,-150,439,-152,147,-151,151,-258,442,-286,443,-241,449,-234,450,-266,453,-267,454,-263,455,-255,462,-28,463,-248,541,-115,545,-116,549,-212,555,-210,556,-209,557});
states[1042] = new State(-378);
states[1043] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-223,1044,-222,1051,-143,1048,-132,713,-136,24,-137,27});
states[1044] = new State(new int[]{12,1045,10,1046});
states[1045] = new State(-380);
states[1046] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-222,1047,-143,1048,-132,713,-136,24,-137,27});
states[1047] = new State(-382);
states[1048] = new State(new int[]{5,1049,93,405});
states[1049] = new State(new int[]{136,412,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,334,108,335,137,149,139,150,138,152,8,440,135,451,20,456,44,464,45,542,30,546,70,550,61,553,40,558,33,582},new int[]{-260,1050,-261,409,-257,410,-85,175,-94,267,-95,268,-166,269,-132,196,-136,24,-137,27,-15,435,-185,436,-150,439,-152,147,-151,151,-258,442,-286,443,-241,449,-234,450,-266,453,-267,454,-263,455,-255,462,-28,463,-248,541,-115,545,-116,549,-212,555,-210,556,-209,557});
states[1050] = new State(-383);
states[1051] = new State(-381);
states[1052] = new State(-363);
states[1053] = new State(-364);
states[1054] = new State(new int[]{42,1055});
states[1055] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,78,32,77,33,76,34,75,35},new int[]{-158,1056,-132,1052,-136,24,-137,27,-135,1053});
states[1056] = new State(new int[]{7,1037,11,1043,5,-379},new int[]{-219,1057,-224,1040});
states[1057] = new State(new int[]{103,1060,10,-375},new int[]{-197,1058});
states[1058] = new State(new int[]{10,1059});
states[1059] = new State(-373);
states[1060] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252,5,576},new int[]{-81,1061,-91,127,-90,132,-89,290,-93,298,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574,-105,575});
states[1061] = new State(-374);
states[1062] = new State(new int[]{100,1193,11,-355,24,-355,22,-355,40,-355,33,-355,26,-355,27,-355,42,-355,23,-355,85,-355,78,-355,77,-355,76,-355,75,-355,55,-63,25,-63,63,-63,46,-63,49,-63,58,-63,84,-63},new int[]{-162,1063,-40,1064,-36,1067,-57,1192});
states[1063] = new State(-423);
states[1064] = new State(new int[]{84,116},new int[]{-240,1065});
states[1065] = new State(new int[]{10,1066});
states[1066] = new State(-450);
states[1067] = new State(new int[]{55,1070,25,1091,63,1095,46,1256,49,1271,58,1273,84,-62},new int[]{-42,1068,-153,1069,-26,1076,-48,1093,-274,1097,-293,1258});
states[1068] = new State(-64);
states[1069] = new State(-80);
states[1070] = new State(new int[]{147,639,136,23,79,25,80,26,74,28,72,29},new int[]{-141,1071,-128,1075,-132,640,-136,24,-137,27});
states[1071] = new State(new int[]{10,1072,93,1073});
states[1072] = new State(-89);
states[1073] = new State(new int[]{147,639,136,23,79,25,80,26,74,28,72,29},new int[]{-128,1074,-132,640,-136,24,-137,27});
states[1074] = new State(-91);
states[1075] = new State(-90);
states[1076] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,55,-81,25,-81,63,-81,46,-81,49,-81,58,-81,84,-81},new int[]{-24,1077,-25,1078,-126,1080,-132,1090,-136,24,-137,27});
states[1077] = new State(-95);
states[1078] = new State(new int[]{10,1079});
states[1079] = new State(-105);
states[1080] = new State(new int[]{113,1081,5,1086});
states[1081] = new State(new int[]{136,23,79,25,80,26,74,28,72,227,137,149,139,150,138,152,147,154,149,155,148,156,38,244,17,247,18,252,11,417,52,421,134,422,8,1084,128,427,109,334,108,335},new int[]{-97,1082,-83,1083,-75,191,-12,215,-10,225,-13,201,-132,226,-136,24,-137,27,-150,242,-152,147,-151,151,-15,243,-242,246,-280,251,-225,416,-185,429,-159,431,-250,432,-254,433,-227,434,-87,1085});
states[1082] = new State(-106);
states[1083] = new State(new int[]{13,187,10,-108,85,-108,78,-108,77,-108,76,-108,75,-108});
states[1084] = new State(new int[]{136,23,79,25,80,26,74,28,72,227,137,149,139,150,138,152,147,154,149,155,148,156,38,244,17,247,18,252,11,417,52,421,134,422,8,802,128,427,109,334,108,335,59,158,9,-183},new int[]{-83,790,-62,803,-75,191,-12,215,-10,225,-13,201,-132,226,-136,24,-137,27,-150,242,-152,147,-151,151,-15,243,-242,246,-280,251,-225,416,-185,429,-159,431,-250,432,-254,433,-227,434,-61,237,-79,805,-78,240,-87,806,-228,807,-53,808});
states[1085] = new State(-109);
states[1086] = new State(new int[]{136,412,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,334,108,335,137,149,139,150,138,152,8,440,135,451,20,456,44,464,45,542,30,546,70,550,61,553,40,558,33,582},new int[]{-261,1087,-257,410,-85,175,-94,267,-95,268,-166,269,-132,196,-136,24,-137,27,-15,435,-185,436,-150,439,-152,147,-151,151,-258,442,-286,443,-241,449,-234,450,-266,453,-267,454,-263,455,-255,462,-28,463,-248,541,-115,545,-116,549,-212,555,-210,556,-209,557});
states[1087] = new State(new int[]{113,1088});
states[1088] = new State(new int[]{136,23,79,25,80,26,74,28,72,227,137,149,139,150,138,152,147,154,149,155,148,156,38,244,17,247,18,252,11,417,52,421,134,422,8,802,128,427,109,334,108,335},new int[]{-78,1089,-83,241,-75,191,-12,215,-10,225,-13,201,-132,226,-136,24,-137,27,-150,242,-152,147,-151,151,-15,243,-242,246,-280,251,-225,416,-185,429,-159,431,-250,432,-254,433,-227,434,-87,806,-228,807});
states[1089] = new State(-107);
states[1090] = new State(-110);
states[1091] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-24,1092,-25,1078,-126,1080,-132,1090,-136,24,-137,27});
states[1092] = new State(-94);
states[1093] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,55,-82,25,-82,63,-82,46,-82,49,-82,58,-82,84,-82},new int[]{-24,1094,-25,1078,-126,1080,-132,1090,-136,24,-137,27});
states[1094] = new State(-97);
states[1095] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-24,1096,-25,1078,-126,1080,-132,1090,-136,24,-137,27});
states[1096] = new State(-96);
states[1097] = new State(new int[]{11,606,55,-83,25,-83,63,-83,46,-83,49,-83,58,-83,84,-83,136,-197,79,-197,80,-197,74,-197,72,-197},new int[]{-45,1098,-6,1099,-235,911});
states[1098] = new State(-99);
states[1099] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,11,606},new int[]{-46,1100,-235,480,-129,1101,-132,1248,-136,24,-137,27,-130,1253});
states[1100] = new State(-194);
states[1101] = new State(new int[]{113,1102});
states[1102] = new State(new int[]{136,412,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,334,108,335,137,149,139,150,138,152,8,440,135,451,20,456,44,464,45,542,30,546,70,550,61,553,40,558,33,582,65,1242,66,1243,140,1244,23,1245,24,1246,22,-290,39,-290,60,-290},new int[]{-272,1103,-261,1105,-257,410,-85,175,-94,267,-95,268,-166,269,-132,196,-136,24,-137,27,-15,435,-185,436,-150,439,-152,147,-151,151,-258,442,-286,443,-241,449,-234,450,-266,453,-267,454,-263,455,-255,462,-28,463,-248,541,-115,545,-116,549,-212,555,-210,556,-209,557,-27,1106,-20,1107,-21,1240,-19,1247});
states[1103] = new State(new int[]{10,1104});
states[1104] = new State(-203);
states[1105] = new State(-208);
states[1106] = new State(-209);
states[1107] = new State(new int[]{22,1234,39,1235,60,1236},new int[]{-276,1108});
states[1108] = new State(new int[]{8,1149,19,-302,11,-302,85,-302,78,-302,77,-302,76,-302,75,-302,25,-302,136,-302,79,-302,80,-302,74,-302,72,-302,58,-302,24,-302,22,-302,40,-302,33,-302,26,-302,27,-302,42,-302,23,-302,10,-302},new int[]{-169,1109});
states[1109] = new State(new int[]{19,1140,11,-309,85,-309,78,-309,77,-309,76,-309,75,-309,25,-309,136,-309,79,-309,80,-309,74,-309,72,-309,58,-309,24,-309,22,-309,40,-309,33,-309,26,-309,27,-309,42,-309,23,-309,10,-309},new int[]{-301,1110,-300,1138,-299,1160});
states[1110] = new State(new int[]{11,606,10,-300,85,-326,78,-326,77,-326,76,-326,75,-326,25,-197,136,-197,79,-197,80,-197,74,-197,72,-197,58,-197,24,-197,22,-197,40,-197,33,-197,26,-197,27,-197,42,-197,23,-197},new int[]{-23,1111,-22,1112,-29,1118,-31,471,-41,1119,-6,1120,-235,911,-30,1231,-50,1233,-49,477,-51,1232});
states[1111] = new State(-283);
states[1112] = new State(new int[]{85,1113,78,1114,77,1115,76,1116,75,1117},new int[]{-7,469});
states[1113] = new State(-301);
states[1114] = new State(-322);
states[1115] = new State(-323);
states[1116] = new State(-324);
states[1117] = new State(-325);
states[1118] = new State(-320);
states[1119] = new State(-334);
states[1120] = new State(new int[]{25,1122,136,23,79,25,80,26,74,28,72,29,58,1126,24,1187,22,1188,11,606,40,1133,33,1168,26,1202,27,1209,42,1216,23,1225},new int[]{-47,1121,-235,480,-208,479,-205,481,-243,482,-296,1124,-295,1125,-143,714,-132,713,-136,24,-137,27,-3,1130,-216,1189,-214,1062,-211,1132,-215,1167,-213,1190,-201,1213,-202,1214,-204,1215});
states[1121] = new State(-336);
states[1122] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-25,1123,-126,1080,-132,1090,-136,24,-137,27});
states[1123] = new State(-341);
states[1124] = new State(-342);
states[1125] = new State(-346);
states[1126] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-143,1127,-132,713,-136,24,-137,27});
states[1127] = new State(new int[]{5,1128,93,405});
states[1128] = new State(new int[]{136,412,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,334,108,335,137,149,139,150,138,152,8,440,135,451,20,456,44,464,45,542,30,546,70,550,61,553,40,558,33,582},new int[]{-261,1129,-257,410,-85,175,-94,267,-95,268,-166,269,-132,196,-136,24,-137,27,-15,435,-185,436,-150,439,-152,147,-151,151,-258,442,-286,443,-241,449,-234,450,-266,453,-267,454,-263,455,-255,462,-28,463,-248,541,-115,545,-116,549,-212,555,-210,556,-209,557});
states[1129] = new State(-347);
states[1130] = new State(new int[]{26,485,42,1012,23,1054,136,23,79,25,80,26,74,28,72,29,58,1126,40,1133,33,1168},new int[]{-296,1131,-216,484,-202,1011,-295,1125,-143,714,-132,713,-136,24,-137,27,-214,1062,-211,1132,-215,1167});
states[1131] = new State(-343);
states[1132] = new State(-356);
states[1133] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,41,358},new int[]{-156,1134,-155,995,-127,996,-122,997,-119,998,-132,1003,-136,24,-137,27,-177,1004,-318,1006,-134,1010});
states[1134] = new State(new int[]{8,560,10,-452,103,-452},new int[]{-113,1135});
states[1135] = new State(new int[]{10,1165,103,-728},new int[]{-193,1136,-194,1161});
states[1136] = new State(new int[]{19,1140,100,-309,84,-309,55,-309,25,-309,63,-309,46,-309,49,-309,58,-309,11,-309,24,-309,22,-309,40,-309,33,-309,26,-309,27,-309,42,-309,23,-309,85,-309,78,-309,77,-309,76,-309,75,-309,141,-309,37,-309},new int[]{-301,1137,-300,1138,-299,1160});
states[1137] = new State(-441);
states[1138] = new State(new int[]{19,1140,11,-310,85,-310,78,-310,77,-310,76,-310,75,-310,25,-310,136,-310,79,-310,80,-310,74,-310,72,-310,58,-310,24,-310,22,-310,40,-310,33,-310,26,-310,27,-310,42,-310,23,-310,10,-310,100,-310,84,-310,55,-310,63,-310,46,-310,49,-310,141,-310,37,-310},new int[]{-299,1139});
states[1139] = new State(-312);
states[1140] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-143,1141,-132,713,-136,24,-137,27});
states[1141] = new State(new int[]{5,1142,93,405});
states[1142] = new State(new int[]{136,412,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,334,108,335,137,149,139,150,138,152,8,440,135,451,20,456,44,1148,45,542,30,546,70,550,61,553,40,558,33,582,22,1157,26,1158},new int[]{-273,1143,-270,1159,-261,1147,-257,410,-85,175,-94,267,-95,268,-166,269,-132,196,-136,24,-137,27,-15,435,-185,436,-150,439,-152,147,-151,151,-258,442,-286,443,-241,449,-234,450,-266,453,-267,454,-263,455,-255,462,-28,463,-248,541,-115,545,-116,549,-212,555,-210,556,-209,557});
states[1143] = new State(new int[]{10,1144,93,1145});
states[1144] = new State(-313);
states[1145] = new State(new int[]{136,412,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,334,108,335,137,149,139,150,138,152,8,440,135,451,20,456,44,1148,45,542,30,546,70,550,61,553,40,558,33,582,22,1157,26,1158},new int[]{-270,1146,-261,1147,-257,410,-85,175,-94,267,-95,268,-166,269,-132,196,-136,24,-137,27,-15,435,-185,436,-150,439,-152,147,-151,151,-258,442,-286,443,-241,449,-234,450,-266,453,-267,454,-263,455,-255,462,-28,463,-248,541,-115,545,-116,549,-212,555,-210,556,-209,557});
states[1146] = new State(-315);
states[1147] = new State(-316);
states[1148] = new State(new int[]{8,1149,10,-318,93,-318,19,-302,11,-302,85,-302,78,-302,77,-302,76,-302,75,-302,25,-302,136,-302,79,-302,80,-302,74,-302,72,-302,58,-302,24,-302,22,-302,40,-302,33,-302,26,-302,27,-302,42,-302,23,-302},new int[]{-169,465});
states[1149] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-168,1150,-167,1156,-166,1154,-132,196,-136,24,-137,27,-286,1155});
states[1150] = new State(new int[]{9,1151,93,1152});
states[1151] = new State(-303);
states[1152] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-167,1153,-166,1154,-132,196,-136,24,-137,27,-286,1155});
states[1153] = new State(-305);
states[1154] = new State(new int[]{7,163,116,168,9,-306,93,-306},new int[]{-284,614});
states[1155] = new State(-307);
states[1156] = new State(-304);
states[1157] = new State(-317);
states[1158] = new State(-319);
states[1159] = new State(-314);
states[1160] = new State(-311);
states[1161] = new State(new int[]{103,1162});
states[1162] = new State(new int[]{134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,492,8,493,17,247,18,252,137,149,139,150,138,152,147,154,149,155,148,156,53,637,84,116,36,627,21,644,90,660,50,665,31,670,51,680,95,686,43,693,32,696,49,704,56,736,71,741,69,728,34,748,10,-476},new int[]{-245,1163,-4,122,-100,123,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-14,633,-150,146,-152,147,-151,151,-15,153,-16,502,-54,634,-103,524,-198,635,-118,636,-240,641,-138,642,-32,643,-232,659,-302,664,-109,669,-303,679,-145,684,-287,685,-233,692,-108,695,-298,703,-55,732,-160,733,-159,734,-154,735,-111,740,-112,745,-110,746,-325,747});
states[1163] = new State(new int[]{10,1164});
states[1164] = new State(-426);
states[1165] = new State(new int[]{140,987,142,988,143,989,144,990,146,991,145,992,19,-726,100,-726,84,-726,55,-726,25,-726,63,-726,46,-726,49,-726,58,-726,11,-726,24,-726,22,-726,40,-726,33,-726,26,-726,27,-726,42,-726,23,-726,85,-726,78,-726,77,-726,76,-726,75,-726,141,-726},new int[]{-192,1166,-195,993});
states[1166] = new State(new int[]{10,985,103,-729});
states[1167] = new State(-357);
states[1168] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,41,358},new int[]{-155,1169,-127,996,-122,997,-119,998,-132,1003,-136,24,-137,27,-177,1004,-318,1006,-134,1010});
states[1169] = new State(new int[]{8,560,5,-452,10,-452,103,-452},new int[]{-113,1170});
states[1170] = new State(new int[]{5,1173,10,1165,103,-728},new int[]{-193,1171,-194,1183});
states[1171] = new State(new int[]{19,1140,100,-309,84,-309,55,-309,25,-309,63,-309,46,-309,49,-309,58,-309,11,-309,24,-309,22,-309,40,-309,33,-309,26,-309,27,-309,42,-309,23,-309,85,-309,78,-309,77,-309,76,-309,75,-309,141,-309,37,-309},new int[]{-301,1172,-300,1138,-299,1160});
states[1172] = new State(-442);
states[1173] = new State(new int[]{136,412,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,334,108,335,137,149,139,150,138,152,8,440,135,451,20,456,44,464,45,542,30,546,70,550,61,553,40,558,33,582},new int[]{-260,1174,-261,409,-257,410,-85,175,-94,267,-95,268,-166,269,-132,196,-136,24,-137,27,-15,435,-185,436,-150,439,-152,147,-151,151,-258,442,-286,443,-241,449,-234,450,-266,453,-267,454,-263,455,-255,462,-28,463,-248,541,-115,545,-116,549,-212,555,-210,556,-209,557});
states[1174] = new State(new int[]{10,1165,103,-728},new int[]{-193,1175,-194,1177});
states[1175] = new State(new int[]{19,1140,100,-309,84,-309,55,-309,25,-309,63,-309,46,-309,49,-309,58,-309,11,-309,24,-309,22,-309,40,-309,33,-309,26,-309,27,-309,42,-309,23,-309,85,-309,78,-309,77,-309,76,-309,75,-309,141,-309,37,-309},new int[]{-301,1176,-300,1138,-299,1160});
states[1176] = new State(-443);
states[1177] = new State(new int[]{103,1178});
states[1178] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,507,17,247,18,252,33,620,40,818},new int[]{-92,1179,-91,1181,-90,132,-89,290,-93,355,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,351,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574,-306,1182,-307,619});
states[1179] = new State(new int[]{10,1180});
states[1180] = new State(-424);
states[1181] = new State(new int[]{13,128,10,-580});
states[1182] = new State(-581);
states[1183] = new State(new int[]{103,1184});
states[1184] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,507,17,247,18,252,33,620,40,818},new int[]{-92,1185,-91,1181,-90,132,-89,290,-93,355,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,351,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574,-306,1182,-307,619});
states[1185] = new State(new int[]{10,1186});
states[1186] = new State(-425);
states[1187] = new State(-344);
states[1188] = new State(-345);
states[1189] = new State(-353);
states[1190] = new State(new int[]{100,1193,11,-354,24,-354,22,-354,40,-354,33,-354,26,-354,27,-354,42,-354,23,-354,85,-354,78,-354,77,-354,76,-354,75,-354,55,-63,25,-63,63,-63,46,-63,49,-63,58,-63,84,-63},new int[]{-162,1191,-40,1064,-36,1067,-57,1192});
states[1191] = new State(-409);
states[1192] = new State(-451);
states[1193] = new State(new int[]{10,1201,136,23,79,25,80,26,74,28,72,29,137,149,139,150,138,152},new int[]{-96,1194,-132,1198,-136,24,-137,27,-150,1199,-152,147,-151,151});
states[1194] = new State(new int[]{74,1195,10,1200});
states[1195] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,137,149,139,150,138,152},new int[]{-96,1196,-132,1198,-136,24,-137,27,-150,1199,-152,147,-151,151});
states[1196] = new State(new int[]{10,1197});
states[1197] = new State(-444);
states[1198] = new State(-447);
states[1199] = new State(-448);
states[1200] = new State(-445);
states[1201] = new State(-446);
states[1202] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,41,358,8,-362,103,-362,10,-362},new int[]{-157,1203,-156,994,-155,995,-127,996,-122,997,-119,998,-132,1003,-136,24,-137,27,-177,1004,-318,1006,-134,1010});
states[1203] = new State(new int[]{8,560,103,-452,10,-452},new int[]{-113,1204});
states[1204] = new State(new int[]{103,1206,10,983},new int[]{-193,1205});
states[1205] = new State(-358);
states[1206] = new State(new int[]{134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,492,8,493,17,247,18,252,137,149,139,150,138,152,147,154,149,155,148,156,53,637,84,116,36,627,21,644,90,660,50,665,31,670,51,680,95,686,43,693,32,696,49,704,56,736,71,741,69,728,34,748,10,-476},new int[]{-245,1207,-4,122,-100,123,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-14,633,-150,146,-152,147,-151,151,-15,153,-16,502,-54,634,-103,524,-198,635,-118,636,-240,641,-138,642,-32,643,-232,659,-302,664,-109,669,-303,679,-145,684,-287,685,-233,692,-108,695,-298,703,-55,732,-160,733,-159,734,-154,735,-111,740,-112,745,-110,746,-325,747});
states[1207] = new State(new int[]{10,1208});
states[1208] = new State(-410);
states[1209] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,41,358,8,-362,10,-362},new int[]{-157,1210,-156,994,-155,995,-127,996,-122,997,-119,998,-132,1003,-136,24,-137,27,-177,1004,-318,1006,-134,1010});
states[1210] = new State(new int[]{8,560,10,-452},new int[]{-113,1211});
states[1211] = new State(new int[]{10,983},new int[]{-193,1212});
states[1212] = new State(-360);
states[1213] = new State(-350);
states[1214] = new State(-421);
states[1215] = new State(-351);
states[1216] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,78,32,77,33,76,34,75,35},new int[]{-158,1217,-132,1052,-136,24,-137,27,-135,1053});
states[1217] = new State(new int[]{7,1037,11,1043,5,-379},new int[]{-219,1218,-224,1040});
states[1218] = new State(new int[]{79,1026,80,1032,10,-386},new int[]{-188,1219});
states[1219] = new State(new int[]{10,1220});
states[1220] = new State(new int[]{59,1021,145,1023,144,1024,140,1025,11,-376,24,-376,22,-376,40,-376,33,-376,26,-376,27,-376,42,-376,23,-376,85,-376,78,-376,77,-376,76,-376,75,-376},new int[]{-191,1221,-196,1222});
states[1221] = new State(-368);
states[1222] = new State(new int[]{10,1223});
states[1223] = new State(new int[]{59,1021,11,-376,24,-376,22,-376,40,-376,33,-376,26,-376,27,-376,42,-376,23,-376,85,-376,78,-376,77,-376,76,-376,75,-376},new int[]{-191,1224});
states[1224] = new State(-369);
states[1225] = new State(new int[]{42,1226});
states[1226] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,78,32,77,33,76,34,75,35},new int[]{-158,1227,-132,1052,-136,24,-137,27,-135,1053});
states[1227] = new State(new int[]{7,1037,11,1043,5,-379},new int[]{-219,1228,-224,1040});
states[1228] = new State(new int[]{103,1060,10,-375},new int[]{-197,1229});
states[1229] = new State(new int[]{10,1230});
states[1230] = new State(-372);
states[1231] = new State(new int[]{11,606,85,-328,78,-328,77,-328,76,-328,75,-328,24,-197,22,-197,40,-197,33,-197,26,-197,27,-197,42,-197,23,-197},new int[]{-50,476,-49,477,-6,478,-235,911,-51,1232});
states[1232] = new State(-340);
states[1233] = new State(-337);
states[1234] = new State(-294);
states[1235] = new State(-295);
states[1236] = new State(new int[]{22,1237,44,1238,39,1239,8,-296,19,-296,11,-296,85,-296,78,-296,77,-296,76,-296,75,-296,25,-296,136,-296,79,-296,80,-296,74,-296,72,-296,58,-296,24,-296,40,-296,33,-296,26,-296,27,-296,42,-296,23,-296,10,-296});
states[1237] = new State(-297);
states[1238] = new State(-298);
states[1239] = new State(-299);
states[1240] = new State(new int[]{65,1242,66,1243,140,1244,23,1245,24,1246,22,-291,39,-291,60,-291},new int[]{-19,1241});
states[1241] = new State(-293);
states[1242] = new State(-285);
states[1243] = new State(-286);
states[1244] = new State(-287);
states[1245] = new State(-288);
states[1246] = new State(-289);
states[1247] = new State(-292);
states[1248] = new State(new int[]{116,1250,113,-205},new int[]{-140,1249});
states[1249] = new State(-206);
states[1250] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-143,1251,-132,713,-136,24,-137,27});
states[1251] = new State(new int[]{115,1252,114,1002,93,405});
states[1252] = new State(-207);
states[1253] = new State(new int[]{136,412,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,334,108,335,137,149,139,150,138,152,8,440,135,451,20,456,44,464,45,542,30,546,70,550,61,553,40,558,33,582,65,1242,66,1243,140,1244,23,1245,24,1246,22,-290,39,-290,60,-290},new int[]{-272,1254,-261,1105,-257,410,-85,175,-94,267,-95,268,-166,269,-132,196,-136,24,-137,27,-15,435,-185,436,-150,439,-152,147,-151,151,-258,442,-286,443,-241,449,-234,450,-266,453,-267,454,-263,455,-255,462,-28,463,-248,541,-115,545,-116,549,-212,555,-210,556,-209,557,-27,1106,-20,1107,-21,1240,-19,1247});
states[1254] = new State(new int[]{10,1255});
states[1255] = new State(-204);
states[1256] = new State(new int[]{11,606,136,-197,79,-197,80,-197,74,-197,72,-197},new int[]{-45,1257,-6,1099,-235,911});
states[1257] = new State(-98);
states[1258] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,8,1263,55,-84,25,-84,63,-84,46,-84,49,-84,58,-84,84,-84},new int[]{-297,1259,-294,1260,-295,1261,-143,714,-132,713,-136,24,-137,27});
states[1259] = new State(-104);
states[1260] = new State(-100);
states[1261] = new State(new int[]{10,1262});
states[1262] = new State(-393);
states[1263] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-132,1264,-136,24,-137,27});
states[1264] = new State(new int[]{93,1265});
states[1265] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-143,1266,-132,713,-136,24,-137,27});
states[1266] = new State(new int[]{9,1267,93,405});
states[1267] = new State(new int[]{103,1268});
states[1268] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252},new int[]{-91,1269,-90,132,-89,290,-93,355,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574});
states[1269] = new State(new int[]{10,1270,13,128});
states[1270] = new State(-101);
states[1271] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,8,1263},new int[]{-297,1272,-294,1260,-295,1261,-143,714,-132,713,-136,24,-137,27});
states[1272] = new State(-102);
states[1273] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,8,1263},new int[]{-297,1274,-294,1260,-295,1261,-143,714,-132,713,-136,24,-137,27});
states[1274] = new State(-103);
states[1275] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,334,108,335,137,149,139,150,138,152,8,925,12,-266,93,-266},new int[]{-256,1276,-257,1277,-85,175,-94,267,-95,268,-166,438,-132,196,-136,24,-137,27,-15,435,-185,436,-150,439,-152,147,-151,151});
states[1276] = new State(-264);
states[1277] = new State(-265);
states[1278] = new State(-263);
states[1279] = new State(new int[]{136,412,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,334,108,335,137,149,139,150,138,152,8,440,135,451,20,456,44,464,45,542,30,546,70,550,61,553,40,558,33,582},new int[]{-261,1280,-257,410,-85,175,-94,267,-95,268,-166,269,-132,196,-136,24,-137,27,-15,435,-185,436,-150,439,-152,147,-151,151,-258,442,-286,443,-241,449,-234,450,-266,453,-267,454,-263,455,-255,462,-28,463,-248,541,-115,545,-116,549,-212,555,-210,556,-209,557});
states[1280] = new State(-262);
states[1281] = new State(-230);
states[1282] = new State(-231);
states[1283] = new State(new int[]{120,445,114,-232,93,-232,113,-232,9,-232,10,-232,103,-232,85,-232,91,-232,94,-232,29,-232,97,-232,28,-232,12,-232,92,-232,80,-232,79,-232,2,-232,78,-232,77,-232,76,-232,75,-232,130,-232});
states[1284] = new State(-688);
states[1285] = new State(-715);
states[1286] = new State(-225);
states[1287] = new State(-221);
states[1288] = new State(-588);
states[1289] = new State(new int[]{8,1290});
states[1290] = new State(new int[]{136,23,79,25,80,26,74,28,72,227,52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,41,358,38,388,8,390,17,247,18,252},new int[]{-317,1291,-316,1299,-132,1295,-136,24,-137,27,-89,1298,-93,355,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573});
states[1291] = new State(new int[]{9,1292,93,1293});
states[1292] = new State(-597);
states[1293] = new State(new int[]{136,23,79,25,80,26,74,28,72,227,52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,41,358,38,388,8,390,17,247,18,252},new int[]{-316,1294,-132,1295,-136,24,-137,27,-89,1298,-93,355,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573});
states[1294] = new State(-601);
states[1295] = new State(new int[]{103,1296,16,-697,8,-697,7,-697,135,-697,4,-697,14,-697,131,-697,129,-697,111,-697,110,-697,124,-697,125,-697,126,-697,127,-697,123,-697,109,-697,108,-697,121,-697,122,-697,119,-697,113,-697,118,-697,116,-697,114,-697,117,-697,115,-697,130,-697,9,-697,93,-697,112,-697,11,-697});
states[1296] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252},new int[]{-89,1297,-93,355,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573});
states[1297] = new State(new int[]{113,291,118,292,116,293,114,294,117,295,115,296,130,297,9,-598,93,-598},new int[]{-182,135});
states[1298] = new State(new int[]{113,291,118,292,116,293,114,294,117,295,115,296,130,297,9,-599,93,-599},new int[]{-182,135});
states[1299] = new State(-600);
states[1300] = new State(new int[]{13,187,5,-625,12,-625});
states[1301] = new State(new int[]{136,23,79,25,80,26,74,28,72,227,137,149,139,150,138,152,147,154,149,155,148,156,38,244,17,247,18,252,11,417,52,421,134,422,8,424,128,427,109,334,108,335},new int[]{-83,1302,-75,191,-12,215,-10,225,-13,201,-132,226,-136,24,-137,27,-150,242,-152,147,-151,151,-15,243,-242,246,-280,251,-225,416,-185,429,-159,431,-250,432,-254,433,-227,434});
states[1302] = new State(new int[]{13,187,93,-175,9,-175,12,-175,5,-175});
states[1303] = new State(new int[]{136,23,79,25,80,26,74,28,72,227,137,149,139,150,138,152,147,154,149,155,148,156,38,244,17,247,18,252,11,417,52,421,134,422,8,424,128,427,109,334,108,335,5,-626,12,-626},new int[]{-107,1304,-83,1300,-75,191,-12,215,-10,225,-13,201,-132,226,-136,24,-137,27,-150,242,-152,147,-151,151,-15,243,-242,246,-280,251,-225,416,-185,429,-159,431,-250,432,-254,433,-227,434});
states[1304] = new State(new int[]{5,1305,12,-632});
states[1305] = new State(new int[]{136,23,79,25,80,26,74,28,72,227,137,149,139,150,138,152,147,154,149,155,148,156,38,244,17,247,18,252,11,417,52,421,134,422,8,424,128,427,109,334,108,335},new int[]{-83,1306,-75,191,-12,215,-10,225,-13,201,-132,226,-136,24,-137,27,-150,242,-152,147,-151,151,-15,243,-242,246,-280,251,-225,416,-185,429,-159,431,-250,432,-254,433,-227,434});
states[1306] = new State(new int[]{13,187,12,-634});
states[1307] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,78,32,77,33,76,34,75,35,65,36,60,37,121,38,18,39,17,40,59,41,19,42,122,43,123,44,124,45,125,46,126,47,127,48,128,49,129,50,130,51,131,52,20,53,70,54,84,55,21,56,22,57,25,58,26,59,27,60,68,61,92,62,28,63,29,64,30,65,23,66,97,67,94,68,31,69,32,70,33,71,36,72,37,73,38,74,96,75,39,76,40,77,42,78,43,79,44,80,90,81,45,82,95,83,46,84,24,85,47,86,67,87,91,88,48,89,49,90,50,91,51,92,52,93,53,94,54,95,55,96,57,97,98,98,99,99,102,100,100,101,101,102,58,103,71,104,34,105,35,106,41,108,85,109},new int[]{-123,1308,-132,22,-136,24,-137,27,-278,30,-135,31,-279,107});
states[1308] = new State(-164);
states[1309] = new State(-165);
states[1310] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,507,17,247,18,252,5,576,33,620,40,818,9,-169},new int[]{-70,1311,-66,1313,-82,506,-81,126,-91,127,-90,132,-89,290,-93,298,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,351,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574,-105,575,-306,618,-307,619});
states[1311] = new State(new int[]{9,1312});
states[1312] = new State(-166);
states[1313] = new State(new int[]{93,349,9,-168});
states[1314] = new State(-136);
states[1315] = new State(new int[]{136,23,79,25,80,26,74,28,72,227,137,149,139,150,138,152,147,154,149,155,148,156,38,244,17,247,18,252,11,417,52,421,134,422,8,424,128,427,109,334,108,335},new int[]{-75,1316,-12,215,-10,225,-13,201,-132,226,-136,24,-137,27,-150,242,-152,147,-151,151,-15,243,-242,246,-280,251,-225,416,-185,429,-159,431,-250,432,-254,433});
states[1316] = new State(new int[]{109,1317,108,1318,121,1319,122,1320,13,-114,6,-114,93,-114,9,-114,12,-114,5,-114,85,-114,10,-114,91,-114,94,-114,29,-114,97,-114,28,-114,92,-114,80,-114,79,-114,2,-114,78,-114,77,-114,76,-114,75,-114},new int[]{-179,192});
states[1317] = new State(-126);
states[1318] = new State(-127);
states[1319] = new State(-128);
states[1320] = new State(-129);
states[1321] = new State(-117);
states[1322] = new State(-118);
states[1323] = new State(-119);
states[1324] = new State(-120);
states[1325] = new State(-121);
states[1326] = new State(-122);
states[1327] = new State(-123);
states[1328] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,334,108,335,137,149,139,150,138,152},new int[]{-85,1329,-94,267,-95,268,-166,438,-132,196,-136,24,-137,27,-15,435,-185,436,-150,439,-152,147,-151,151});
states[1329] = new State(new int[]{109,1317,108,1318,121,1319,122,1320,13,-234,114,-234,93,-234,113,-234,9,-234,10,-234,120,-234,103,-234,85,-234,91,-234,94,-234,29,-234,97,-234,28,-234,12,-234,92,-234,80,-234,79,-234,2,-234,78,-234,77,-234,76,-234,75,-234,130,-234},new int[]{-179,176});
states[1330] = new State(-33);
states[1331] = new State(new int[]{55,1070,25,1091,63,1095,46,1256,49,1271,58,1273,11,606,84,-59,85,-59,96,-59,40,-197,33,-197,24,-197,22,-197,26,-197,27,-197},new int[]{-43,1332,-153,1333,-26,1334,-48,1335,-274,1336,-293,1337,-206,1338,-6,1339,-235,911});
states[1332] = new State(-61);
states[1333] = new State(-71);
states[1334] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,55,-72,25,-72,63,-72,46,-72,49,-72,58,-72,11,-72,40,-72,33,-72,24,-72,22,-72,26,-72,27,-72,84,-72,85,-72,96,-72},new int[]{-24,1077,-25,1078,-126,1080,-132,1090,-136,24,-137,27});
states[1335] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,55,-73,25,-73,63,-73,46,-73,49,-73,58,-73,11,-73,40,-73,33,-73,24,-73,22,-73,26,-73,27,-73,84,-73,85,-73,96,-73},new int[]{-24,1094,-25,1078,-126,1080,-132,1090,-136,24,-137,27});
states[1336] = new State(new int[]{11,606,55,-74,25,-74,63,-74,46,-74,49,-74,58,-74,40,-74,33,-74,24,-74,22,-74,26,-74,27,-74,84,-74,85,-74,96,-74,136,-197,79,-197,80,-197,74,-197,72,-197},new int[]{-45,1098,-6,1099,-235,911});
states[1337] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,8,1263,55,-75,25,-75,63,-75,46,-75,49,-75,58,-75,11,-75,40,-75,33,-75,24,-75,22,-75,26,-75,27,-75,84,-75,85,-75,96,-75},new int[]{-297,1259,-294,1260,-295,1261,-143,714,-132,713,-136,24,-137,27});
states[1338] = new State(-76);
states[1339] = new State(new int[]{40,1352,33,1359,24,1187,22,1188,26,1387,27,1209,11,606},new int[]{-199,1340,-235,480,-200,1341,-207,1342,-214,1343,-211,1132,-215,1167,-3,1376,-203,1384,-213,1385});
states[1340] = new State(-79);
states[1341] = new State(-77);
states[1342] = new State(-412);
states[1343] = new State(new int[]{141,1345,100,1193,55,-60,25,-60,63,-60,46,-60,49,-60,58,-60,11,-60,40,-60,33,-60,24,-60,22,-60,26,-60,27,-60,84,-60},new int[]{-164,1344,-163,1347,-38,1348,-39,1331,-57,1351});
states[1344] = new State(-414);
states[1345] = new State(new int[]{10,1346});
states[1346] = new State(-420);
states[1347] = new State(-427);
states[1348] = new State(new int[]{84,116},new int[]{-240,1349});
states[1349] = new State(new int[]{10,1350});
states[1350] = new State(-449);
states[1351] = new State(-428);
states[1352] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,41,358},new int[]{-156,1353,-155,995,-127,996,-122,997,-119,998,-132,1003,-136,24,-137,27,-177,1004,-318,1006,-134,1010});
states[1353] = new State(new int[]{8,560,10,-452,103,-452},new int[]{-113,1354});
states[1354] = new State(new int[]{10,1165,103,-728},new int[]{-193,1136,-194,1355});
states[1355] = new State(new int[]{103,1356});
states[1356] = new State(new int[]{134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,492,8,493,17,247,18,252,137,149,139,150,138,152,147,154,149,155,148,156,53,637,84,116,36,627,21,644,90,660,50,665,31,670,51,680,95,686,43,693,32,696,49,704,56,736,71,741,69,728,34,748,10,-476},new int[]{-245,1357,-4,122,-100,123,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-14,633,-150,146,-152,147,-151,151,-15,153,-16,502,-54,634,-103,524,-198,635,-118,636,-240,641,-138,642,-32,643,-232,659,-302,664,-109,669,-303,679,-145,684,-287,685,-233,692,-108,695,-298,703,-55,732,-160,733,-159,734,-154,735,-111,740,-112,745,-110,746,-325,747});
states[1357] = new State(new int[]{10,1358});
states[1358] = new State(-419);
states[1359] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,41,358},new int[]{-155,1360,-127,996,-122,997,-119,998,-132,1003,-136,24,-137,27,-177,1004,-318,1006,-134,1010});
states[1360] = new State(new int[]{8,560,5,-452,10,-452,103,-452},new int[]{-113,1361});
states[1361] = new State(new int[]{5,1362,10,1165,103,-728},new int[]{-193,1171,-194,1370});
states[1362] = new State(new int[]{136,412,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,334,108,335,137,149,139,150,138,152,8,440,135,451,20,456,44,464,45,542,30,546,70,550,61,553,40,558,33,582},new int[]{-260,1363,-261,409,-257,410,-85,175,-94,267,-95,268,-166,269,-132,196,-136,24,-137,27,-15,435,-185,436,-150,439,-152,147,-151,151,-258,442,-286,443,-241,449,-234,450,-266,453,-267,454,-263,455,-255,462,-28,463,-248,541,-115,545,-116,549,-212,555,-210,556,-209,557});
states[1363] = new State(new int[]{10,1165,103,-728},new int[]{-193,1175,-194,1364});
states[1364] = new State(new int[]{103,1365});
states[1365] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,507,17,247,18,252,33,620,40,818},new int[]{-91,1366,-306,1368,-90,132,-89,290,-93,355,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,351,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574,-307,619});
states[1366] = new State(new int[]{10,1367,13,128});
states[1367] = new State(-415);
states[1368] = new State(new int[]{10,1369});
states[1369] = new State(-417);
states[1370] = new State(new int[]{103,1371});
states[1371] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,507,17,247,18,252,33,620,40,818},new int[]{-91,1372,-306,1374,-90,132,-89,290,-93,355,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,351,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574,-307,619});
states[1372] = new State(new int[]{10,1373,13,128});
states[1373] = new State(-416);
states[1374] = new State(new int[]{10,1375});
states[1375] = new State(-418);
states[1376] = new State(new int[]{26,1378,40,1352,33,1359},new int[]{-207,1377,-214,1343,-211,1132,-215,1167});
states[1377] = new State(-413);
states[1378] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,41,358,8,-362,103,-362,10,-362},new int[]{-157,1379,-156,994,-155,995,-127,996,-122,997,-119,998,-132,1003,-136,24,-137,27,-177,1004,-318,1006,-134,1010});
states[1379] = new State(new int[]{8,560,103,-452,10,-452},new int[]{-113,1380});
states[1380] = new State(new int[]{103,1381,10,983},new int[]{-193,488});
states[1381] = new State(new int[]{134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,492,8,493,17,247,18,252,137,149,139,150,138,152,147,154,149,155,148,156,53,637,84,116,36,627,21,644,90,660,50,665,31,670,51,680,95,686,43,693,32,696,49,704,56,736,71,741,69,728,34,748,10,-476},new int[]{-245,1382,-4,122,-100,123,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-14,633,-150,146,-152,147,-151,151,-15,153,-16,502,-54,634,-103,524,-198,635,-118,636,-240,641,-138,642,-32,643,-232,659,-302,664,-109,669,-303,679,-145,684,-287,685,-233,692,-108,695,-298,703,-55,732,-160,733,-159,734,-154,735,-111,740,-112,745,-110,746,-325,747});
states[1382] = new State(new int[]{10,1383});
states[1383] = new State(-408);
states[1384] = new State(-78);
states[1385] = new State(-60,new int[]{-163,1386,-38,1348,-39,1331});
states[1386] = new State(-406);
states[1387] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,41,358,8,-362,103,-362,10,-362},new int[]{-157,1388,-156,994,-155,995,-127,996,-122,997,-119,998,-132,1003,-136,24,-137,27,-177,1004,-318,1006,-134,1010});
states[1388] = new State(new int[]{8,560,103,-452,10,-452},new int[]{-113,1389});
states[1389] = new State(new int[]{103,1390,10,983},new int[]{-193,1205});
states[1390] = new State(new int[]{134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,492,8,493,17,247,18,252,137,149,139,150,138,152,147,154,149,155,148,156,53,637,84,116,36,627,21,644,90,660,50,665,31,670,51,680,95,686,43,693,32,696,49,704,56,736,71,741,69,728,34,748,10,-476},new int[]{-245,1391,-4,122,-100,123,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-14,633,-150,146,-152,147,-151,151,-15,153,-16,502,-54,634,-103,524,-198,635,-118,636,-240,641,-138,642,-32,643,-232,659,-302,664,-109,669,-303,679,-145,684,-287,685,-233,692,-108,695,-298,703,-55,732,-160,733,-159,734,-154,735,-111,740,-112,745,-110,746,-325,747});
states[1391] = new State(new int[]{10,1392});
states[1392] = new State(-407);
states[1393] = new State(new int[]{3,1395,48,-13,84,-13,55,-13,25,-13,63,-13,46,-13,49,-13,58,-13,11,-13,40,-13,33,-13,24,-13,22,-13,26,-13,27,-13,39,-13,85,-13,96,-13},new int[]{-170,1394});
states[1394] = new State(-15);
states[1395] = new State(new int[]{136,1396,137,1397});
states[1396] = new State(-16);
states[1397] = new State(-17);
states[1398] = new State(-14);
states[1399] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-132,1400,-136,24,-137,27});
states[1400] = new State(new int[]{10,1402,8,1403},new int[]{-173,1401});
states[1401] = new State(-26);
states[1402] = new State(-27);
states[1403] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-175,1404,-131,1410,-132,1409,-136,24,-137,27});
states[1404] = new State(new int[]{9,1405,93,1407});
states[1405] = new State(new int[]{10,1406});
states[1406] = new State(-28);
states[1407] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-131,1408,-132,1409,-136,24,-137,27});
states[1408] = new State(-30);
states[1409] = new State(-31);
states[1410] = new State(-29);
states[1411] = new State(-3);
states[1412] = new State(new int[]{98,1467,99,1468,102,1469,11,606},new int[]{-292,1413,-235,480,-2,1462});
states[1413] = new State(new int[]{39,1434,48,-36,55,-36,25,-36,63,-36,46,-36,49,-36,58,-36,11,-36,40,-36,33,-36,24,-36,22,-36,26,-36,27,-36,85,-36,96,-36,84,-36},new int[]{-147,1414,-148,1431,-288,1460});
states[1414] = new State(new int[]{37,1428},new int[]{-146,1415});
states[1415] = new State(new int[]{85,1418,96,1419,84,1425},new int[]{-139,1416});
states[1416] = new State(new int[]{7,1417});
states[1417] = new State(-42);
states[1418] = new State(-52);
states[1419] = new State(new int[]{134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,492,8,493,17,247,18,252,137,149,139,150,138,152,147,658,149,155,148,156,53,637,84,116,36,627,21,644,90,660,50,665,31,670,51,680,95,686,43,693,32,696,49,704,56,736,71,741,69,728,34,748,85,-476,97,-476,10,-476},new int[]{-237,1420,-246,656,-245,121,-4,122,-100,123,-117,337,-99,344,-132,657,-136,24,-137,27,-177,357,-242,500,-280,501,-14,633,-150,146,-152,147,-151,151,-15,153,-16,502,-54,634,-103,524,-198,635,-118,636,-240,641,-138,642,-32,643,-232,659,-302,664,-109,669,-303,679,-145,684,-287,685,-233,692,-108,695,-298,703,-55,732,-160,733,-159,734,-154,735,-111,740,-112,745,-110,746,-325,747,-128,852});
states[1420] = new State(new int[]{85,1421,97,1422,10,119});
states[1421] = new State(-53);
states[1422] = new State(new int[]{134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,492,8,493,17,247,18,252,137,149,139,150,138,152,147,658,149,155,148,156,53,637,84,116,36,627,21,644,90,660,50,665,31,670,51,680,95,686,43,693,32,696,49,704,56,736,71,741,69,728,34,748,85,-476,10,-476},new int[]{-237,1423,-246,656,-245,121,-4,122,-100,123,-117,337,-99,344,-132,657,-136,24,-137,27,-177,357,-242,500,-280,501,-14,633,-150,146,-152,147,-151,151,-15,153,-16,502,-54,634,-103,524,-198,635,-118,636,-240,641,-138,642,-32,643,-232,659,-302,664,-109,669,-303,679,-145,684,-287,685,-233,692,-108,695,-298,703,-55,732,-160,733,-159,734,-154,735,-111,740,-112,745,-110,746,-325,747,-128,852});
states[1423] = new State(new int[]{85,1424,10,119});
states[1424] = new State(-54);
states[1425] = new State(new int[]{134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,492,8,493,17,247,18,252,137,149,139,150,138,152,147,658,149,155,148,156,53,637,84,116,36,627,21,644,90,660,50,665,31,670,51,680,95,686,43,693,32,696,49,704,56,736,71,741,69,728,34,748,85,-476,10,-476},new int[]{-237,1426,-246,656,-245,121,-4,122,-100,123,-117,337,-99,344,-132,657,-136,24,-137,27,-177,357,-242,500,-280,501,-14,633,-150,146,-152,147,-151,151,-15,153,-16,502,-54,634,-103,524,-198,635,-118,636,-240,641,-138,642,-32,643,-232,659,-302,664,-109,669,-303,679,-145,684,-287,685,-233,692,-108,695,-298,703,-55,732,-160,733,-159,734,-154,735,-111,740,-112,745,-110,746,-325,747,-128,852});
states[1426] = new State(new int[]{85,1427,10,119});
states[1427] = new State(-55);
states[1428] = new State(-36,new int[]{-288,1429});
states[1429] = new State(new int[]{48,14,55,-60,25,-60,63,-60,46,-60,49,-60,58,-60,11,-60,40,-60,33,-60,24,-60,22,-60,26,-60,27,-60,85,-60,96,-60,84,-60},new int[]{-38,1430,-39,1331});
states[1430] = new State(-50);
states[1431] = new State(new int[]{85,1418,96,1419,84,1425},new int[]{-139,1432});
states[1432] = new State(new int[]{7,1433});
states[1433] = new State(-43);
states[1434] = new State(-36,new int[]{-288,1435});
states[1435] = new State(new int[]{48,14,25,-57,63,-57,46,-57,49,-57,58,-57,11,-57,40,-57,33,-57,37,-57},new int[]{-37,1436,-35,1437});
states[1436] = new State(-49);
states[1437] = new State(new int[]{25,1091,63,1095,46,1256,49,1271,58,1273,11,606,37,-56,40,-197,33,-197},new int[]{-44,1438,-26,1439,-48,1440,-274,1441,-293,1442,-218,1443,-6,1444,-235,911,-217,1459});
states[1438] = new State(-58);
states[1439] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,25,-65,63,-65,46,-65,49,-65,58,-65,11,-65,40,-65,33,-65,37,-65},new int[]{-24,1077,-25,1078,-126,1080,-132,1090,-136,24,-137,27});
states[1440] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,25,-66,63,-66,46,-66,49,-66,58,-66,11,-66,40,-66,33,-66,37,-66},new int[]{-24,1094,-25,1078,-126,1080,-132,1090,-136,24,-137,27});
states[1441] = new State(new int[]{11,606,25,-67,63,-67,46,-67,49,-67,58,-67,40,-67,33,-67,37,-67,136,-197,79,-197,80,-197,74,-197,72,-197},new int[]{-45,1098,-6,1099,-235,911});
states[1442] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,8,1263,25,-68,63,-68,46,-68,49,-68,58,-68,11,-68,40,-68,33,-68,37,-68},new int[]{-297,1259,-294,1260,-295,1261,-143,714,-132,713,-136,24,-137,27});
states[1443] = new State(-69);
states[1444] = new State(new int[]{40,1451,11,606,33,1454},new int[]{-211,1445,-235,480,-215,1448});
states[1445] = new State(new int[]{141,1446,25,-85,63,-85,46,-85,49,-85,58,-85,11,-85,40,-85,33,-85,37,-85});
states[1446] = new State(new int[]{10,1447});
states[1447] = new State(-86);
states[1448] = new State(new int[]{141,1449,25,-87,63,-87,46,-87,49,-87,58,-87,11,-87,40,-87,33,-87,37,-87});
states[1449] = new State(new int[]{10,1450});
states[1450] = new State(-88);
states[1451] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,41,358},new int[]{-156,1452,-155,995,-127,996,-122,997,-119,998,-132,1003,-136,24,-137,27,-177,1004,-318,1006,-134,1010});
states[1452] = new State(new int[]{8,560,10,-452},new int[]{-113,1453});
states[1453] = new State(new int[]{10,983},new int[]{-193,1136});
states[1454] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,41,358},new int[]{-155,1455,-127,996,-122,997,-119,998,-132,1003,-136,24,-137,27,-177,1004,-318,1006,-134,1010});
states[1455] = new State(new int[]{8,560,5,-452,10,-452},new int[]{-113,1456});
states[1456] = new State(new int[]{5,1457,10,983},new int[]{-193,1171});
states[1457] = new State(new int[]{136,412,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,334,108,335,137,149,139,150,138,152,8,440,135,451,20,456,44,464,45,542,30,546,70,550,61,553,40,558,33,582},new int[]{-260,1458,-261,409,-257,410,-85,175,-94,267,-95,268,-166,269,-132,196,-136,24,-137,27,-15,435,-185,436,-150,439,-152,147,-151,151,-258,442,-286,443,-241,449,-234,450,-266,453,-267,454,-263,455,-255,462,-28,463,-248,541,-115,545,-116,549,-212,555,-210,556,-209,557});
states[1458] = new State(new int[]{10,983},new int[]{-193,1175});
states[1459] = new State(-70);
states[1460] = new State(new int[]{48,14,55,-60,25,-60,63,-60,46,-60,49,-60,58,-60,11,-60,40,-60,33,-60,24,-60,22,-60,26,-60,27,-60,85,-60,96,-60,84,-60},new int[]{-38,1461,-39,1331});
states[1461] = new State(-51);
states[1462] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-124,1463,-132,1466,-136,24,-137,27});
states[1463] = new State(new int[]{10,1464});
states[1464] = new State(new int[]{3,1395,39,-12,85,-12,96,-12,84,-12,48,-12,55,-12,25,-12,63,-12,46,-12,49,-12,58,-12,11,-12,40,-12,33,-12,24,-12,22,-12,26,-12,27,-12},new int[]{-171,1465,-172,1393,-170,1398});
states[1465] = new State(-44);
states[1466] = new State(-48);
states[1467] = new State(-46);
states[1468] = new State(-47);
states[1469] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,78,32,77,33,76,34,75,35,65,36,60,37,121,38,18,39,17,40,59,41,19,42,122,43,123,44,124,45,125,46,126,47,127,48,128,49,129,50,130,51,131,52,20,53,70,54,84,55,21,56,22,57,25,58,26,59,27,60,68,61,92,62,28,63,29,64,30,65,23,66,97,67,94,68,31,69,32,70,33,71,36,72,37,73,38,74,96,75,39,76,40,77,42,78,43,79,44,80,90,81,45,82,95,83,46,84,24,85,47,86,67,87,91,88,48,89,49,90,50,91,51,92,52,93,53,94,54,95,55,96,57,97,98,98,99,99,102,100,100,101,101,102,58,103,71,104,34,105,35,106,41,108,85,109},new int[]{-142,1470,-123,112,-132,22,-136,24,-137,27,-278,30,-135,31,-279,107});
states[1470] = new State(new int[]{10,1471,7,20});
states[1471] = new State(new int[]{3,1395,39,-12,85,-12,96,-12,84,-12,48,-12,55,-12,25,-12,63,-12,46,-12,49,-12,58,-12,11,-12,40,-12,33,-12,24,-12,22,-12,26,-12,27,-12},new int[]{-171,1472,-172,1393,-170,1398});
states[1472] = new State(-45);
states[1473] = new State(-4);
states[1474] = new State(new int[]{46,1476,52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,390,17,247,18,252,5,576},new int[]{-81,1475,-91,127,-90,132,-89,290,-93,298,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,336,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574,-105,575});
states[1475] = new State(-5);
states[1476] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-129,1477,-132,1478,-136,24,-137,27});
states[1477] = new State(-6);
states[1478] = new State(new int[]{116,1000,2,-205},new int[]{-140,1249});
states[1479] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-304,1480,-305,1481,-132,1485,-136,24,-137,27});
states[1480] = new State(-7);
states[1481] = new State(new int[]{7,1482,116,168,2,-693},new int[]{-284,1484});
states[1482] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,78,32,77,33,76,34,75,35,65,36,60,37,121,38,18,39,17,40,59,41,19,42,122,43,123,44,124,45,125,46,126,47,127,48,128,49,129,50,130,51,131,52,20,53,70,54,84,55,21,56,22,57,25,58,26,59,27,60,68,61,92,62,28,63,29,64,30,65,23,66,97,67,94,68,31,69,32,70,33,71,36,72,37,73,38,74,96,75,39,76,40,77,42,78,43,79,44,80,90,81,45,82,95,83,46,84,24,85,47,86,67,87,91,88,48,89,49,90,50,91,51,92,52,93,53,94,54,95,55,96,57,97,98,98,99,99,102,100,100,101,101,102,58,103,71,104,34,105,35,106,41,108,85,109},new int[]{-123,1483,-132,22,-136,24,-137,27,-278,30,-135,31,-279,107});
states[1483] = new State(-692);
states[1484] = new State(-694);
states[1485] = new State(-691);
states[1486] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,321,128,330,109,334,108,335,134,343,136,23,79,25,80,26,74,28,72,227,41,358,38,388,8,493,17,247,18,252,5,576,49,704},new int[]{-244,1487,-81,1488,-91,127,-90,132,-89,290,-93,298,-76,308,-88,320,-14,143,-150,146,-152,147,-151,151,-15,153,-53,157,-185,332,-100,1489,-117,337,-99,344,-132,356,-136,24,-137,27,-177,357,-242,500,-280,501,-16,502,-54,518,-103,524,-159,525,-253,526,-77,527,-249,530,-251,531,-252,573,-226,574,-105,575,-4,1490,-298,1491});
states[1487] = new State(-8);
states[1488] = new State(-9);
states[1489] = new State(new int[]{103,382,104,383,105,384,106,385,107,386,131,-678,129,-678,111,-678,110,-678,124,-678,125,-678,126,-678,127,-678,123,-678,5,-678,109,-678,108,-678,121,-678,122,-678,119,-678,113,-678,118,-678,116,-678,114,-678,117,-678,115,-678,130,-678,15,-678,13,-678,2,-678,112,-678},new int[]{-180,124});
states[1490] = new State(-10);
states[1491] = new State(-11);
rules[1] = new Rule(-332, new int[]{-1,2});
rules[2] = new Rule(-1, new int[]{-220});
rules[3] = new Rule(-1, new int[]{-290});
rules[4] = new Rule(-1, new int[]{-161});
rules[5] = new Rule(-161, new int[]{81,-81});
rules[6] = new Rule(-161, new int[]{81,46,-129});
rules[7] = new Rule(-161, new int[]{83,-304});
rules[8] = new Rule(-161, new int[]{82,-244});
rules[9] = new Rule(-244, new int[]{-81});
rules[10] = new Rule(-244, new int[]{-4});
rules[11] = new Rule(-244, new int[]{-298});
rules[12] = new Rule(-171, new int[]{});
rules[13] = new Rule(-171, new int[]{-172});
rules[14] = new Rule(-172, new int[]{-170});
rules[15] = new Rule(-172, new int[]{-172,-170});
rules[16] = new Rule(-170, new int[]{3,136});
rules[17] = new Rule(-170, new int[]{3,137});
rules[18] = new Rule(-220, new int[]{-221,-171,-288,-17,-174});
rules[19] = new Rule(-174, new int[]{7});
rules[20] = new Rule(-174, new int[]{10});
rules[21] = new Rule(-174, new int[]{5});
rules[22] = new Rule(-174, new int[]{93});
rules[23] = new Rule(-174, new int[]{6});
rules[24] = new Rule(-174, new int[]{});
rules[25] = new Rule(-221, new int[]{});
rules[26] = new Rule(-221, new int[]{57,-132,-173});
rules[27] = new Rule(-173, new int[]{10});
rules[28] = new Rule(-173, new int[]{8,-175,9,10});
rules[29] = new Rule(-175, new int[]{-131});
rules[30] = new Rule(-175, new int[]{-175,93,-131});
rules[31] = new Rule(-131, new int[]{-132});
rules[32] = new Rule(-17, new int[]{-34,-240});
rules[33] = new Rule(-34, new int[]{-38});
rules[34] = new Rule(-142, new int[]{-123});
rules[35] = new Rule(-142, new int[]{-142,7,-123});
rules[36] = new Rule(-288, new int[]{});
rules[37] = new Rule(-288, new int[]{-288,48,-289,10});
rules[38] = new Rule(-289, new int[]{-291});
rules[39] = new Rule(-289, new int[]{-289,93,-291});
rules[40] = new Rule(-291, new int[]{-142});
rules[41] = new Rule(-291, new int[]{-142,130,137});
rules[42] = new Rule(-290, new int[]{-6,-292,-147,-146,-139,7});
rules[43] = new Rule(-290, new int[]{-6,-292,-148,-139,7});
rules[44] = new Rule(-292, new int[]{-2,-124,10,-171});
rules[45] = new Rule(-292, new int[]{102,-142,10,-171});
rules[46] = new Rule(-2, new int[]{98});
rules[47] = new Rule(-2, new int[]{99});
rules[48] = new Rule(-124, new int[]{-132});
rules[49] = new Rule(-147, new int[]{39,-288,-37});
rules[50] = new Rule(-146, new int[]{37,-288,-38});
rules[51] = new Rule(-148, new int[]{-288,-38});
rules[52] = new Rule(-139, new int[]{85});
rules[53] = new Rule(-139, new int[]{96,-237,85});
rules[54] = new Rule(-139, new int[]{96,-237,97,-237,85});
rules[55] = new Rule(-139, new int[]{84,-237,85});
rules[56] = new Rule(-37, new int[]{-35});
rules[57] = new Rule(-35, new int[]{});
rules[58] = new Rule(-35, new int[]{-35,-44});
rules[59] = new Rule(-38, new int[]{-39});
rules[60] = new Rule(-39, new int[]{});
rules[61] = new Rule(-39, new int[]{-39,-43});
rules[62] = new Rule(-40, new int[]{-36});
rules[63] = new Rule(-36, new int[]{});
rules[64] = new Rule(-36, new int[]{-36,-42});
rules[65] = new Rule(-44, new int[]{-26});
rules[66] = new Rule(-44, new int[]{-48});
rules[67] = new Rule(-44, new int[]{-274});
rules[68] = new Rule(-44, new int[]{-293});
rules[69] = new Rule(-44, new int[]{-218});
rules[70] = new Rule(-44, new int[]{-217});
rules[71] = new Rule(-43, new int[]{-153});
rules[72] = new Rule(-43, new int[]{-26});
rules[73] = new Rule(-43, new int[]{-48});
rules[74] = new Rule(-43, new int[]{-274});
rules[75] = new Rule(-43, new int[]{-293});
rules[76] = new Rule(-43, new int[]{-206});
rules[77] = new Rule(-199, new int[]{-200});
rules[78] = new Rule(-199, new int[]{-203});
rules[79] = new Rule(-206, new int[]{-6,-199});
rules[80] = new Rule(-42, new int[]{-153});
rules[81] = new Rule(-42, new int[]{-26});
rules[82] = new Rule(-42, new int[]{-48});
rules[83] = new Rule(-42, new int[]{-274});
rules[84] = new Rule(-42, new int[]{-293});
rules[85] = new Rule(-218, new int[]{-6,-211});
rules[86] = new Rule(-218, new int[]{-6,-211,141,10});
rules[87] = new Rule(-217, new int[]{-6,-215});
rules[88] = new Rule(-217, new int[]{-6,-215,141,10});
rules[89] = new Rule(-153, new int[]{55,-141,10});
rules[90] = new Rule(-141, new int[]{-128});
rules[91] = new Rule(-141, new int[]{-141,93,-128});
rules[92] = new Rule(-128, new int[]{147});
rules[93] = new Rule(-128, new int[]{-132});
rules[94] = new Rule(-26, new int[]{25,-24});
rules[95] = new Rule(-26, new int[]{-26,-24});
rules[96] = new Rule(-48, new int[]{63,-24});
rules[97] = new Rule(-48, new int[]{-48,-24});
rules[98] = new Rule(-274, new int[]{46,-45});
rules[99] = new Rule(-274, new int[]{-274,-45});
rules[100] = new Rule(-297, new int[]{-294});
rules[101] = new Rule(-297, new int[]{8,-132,93,-143,9,103,-91,10});
rules[102] = new Rule(-293, new int[]{49,-297});
rules[103] = new Rule(-293, new int[]{58,-297});
rules[104] = new Rule(-293, new int[]{-293,-297});
rules[105] = new Rule(-24, new int[]{-25,10});
rules[106] = new Rule(-25, new int[]{-126,113,-97});
rules[107] = new Rule(-25, new int[]{-126,5,-261,113,-78});
rules[108] = new Rule(-97, new int[]{-83});
rules[109] = new Rule(-97, new int[]{-87});
rules[110] = new Rule(-126, new int[]{-132});
rules[111] = new Rule(-73, new int[]{-91});
rules[112] = new Rule(-73, new int[]{-73,93,-91});
rules[113] = new Rule(-83, new int[]{-75});
rules[114] = new Rule(-83, new int[]{-75,-178,-75});
rules[115] = new Rule(-83, new int[]{-227});
rules[116] = new Rule(-227, new int[]{-83,13,-83,5,-83});
rules[117] = new Rule(-178, new int[]{113});
rules[118] = new Rule(-178, new int[]{118});
rules[119] = new Rule(-178, new int[]{116});
rules[120] = new Rule(-178, new int[]{114});
rules[121] = new Rule(-178, new int[]{117});
rules[122] = new Rule(-178, new int[]{115});
rules[123] = new Rule(-178, new int[]{130});
rules[124] = new Rule(-75, new int[]{-12});
rules[125] = new Rule(-75, new int[]{-75,-179,-12});
rules[126] = new Rule(-179, new int[]{109});
rules[127] = new Rule(-179, new int[]{108});
rules[128] = new Rule(-179, new int[]{121});
rules[129] = new Rule(-179, new int[]{122});
rules[130] = new Rule(-250, new int[]{-12,-187,-269});
rules[131] = new Rule(-254, new int[]{-10,112,-10});
rules[132] = new Rule(-12, new int[]{-10});
rules[133] = new Rule(-12, new int[]{-250});
rules[134] = new Rule(-12, new int[]{-254});
rules[135] = new Rule(-12, new int[]{-12,-181,-10});
rules[136] = new Rule(-12, new int[]{-12,-181,-254});
rules[137] = new Rule(-181, new int[]{111});
rules[138] = new Rule(-181, new int[]{110});
rules[139] = new Rule(-181, new int[]{124});
rules[140] = new Rule(-181, new int[]{125});
rules[141] = new Rule(-181, new int[]{126});
rules[142] = new Rule(-181, new int[]{127});
rules[143] = new Rule(-181, new int[]{123});
rules[144] = new Rule(-10, new int[]{-13});
rules[145] = new Rule(-10, new int[]{-225});
rules[146] = new Rule(-10, new int[]{52});
rules[147] = new Rule(-10, new int[]{134,-10});
rules[148] = new Rule(-10, new int[]{8,-83,9});
rules[149] = new Rule(-10, new int[]{128,-10});
rules[150] = new Rule(-10, new int[]{-185,-10});
rules[151] = new Rule(-10, new int[]{-159});
rules[152] = new Rule(-225, new int[]{11,-69,12});
rules[153] = new Rule(-185, new int[]{109});
rules[154] = new Rule(-185, new int[]{108});
rules[155] = new Rule(-13, new int[]{-132});
rules[156] = new Rule(-13, new int[]{-150});
rules[157] = new Rule(-13, new int[]{-15});
rules[158] = new Rule(-13, new int[]{38,-132});
rules[159] = new Rule(-13, new int[]{-242});
rules[160] = new Rule(-13, new int[]{-280});
rules[161] = new Rule(-13, new int[]{-13,-11});
rules[162] = new Rule(-13, new int[]{-13,4,-284});
rules[163] = new Rule(-13, new int[]{-13,11,-106,12});
rules[164] = new Rule(-11, new int[]{7,-123});
rules[165] = new Rule(-11, new int[]{135});
rules[166] = new Rule(-11, new int[]{8,-70,9});
rules[167] = new Rule(-11, new int[]{11,-69,12});
rules[168] = new Rule(-70, new int[]{-66});
rules[169] = new Rule(-70, new int[]{});
rules[170] = new Rule(-69, new int[]{-67});
rules[171] = new Rule(-69, new int[]{});
rules[172] = new Rule(-67, new int[]{-86});
rules[173] = new Rule(-67, new int[]{-67,93,-86});
rules[174] = new Rule(-86, new int[]{-83});
rules[175] = new Rule(-86, new int[]{-83,6,-83});
rules[176] = new Rule(-15, new int[]{147});
rules[177] = new Rule(-15, new int[]{149});
rules[178] = new Rule(-15, new int[]{148});
rules[179] = new Rule(-78, new int[]{-83});
rules[180] = new Rule(-78, new int[]{-87});
rules[181] = new Rule(-78, new int[]{-228});
rules[182] = new Rule(-87, new int[]{8,-62,9});
rules[183] = new Rule(-62, new int[]{});
rules[184] = new Rule(-62, new int[]{-61});
rules[185] = new Rule(-61, new int[]{-79});
rules[186] = new Rule(-61, new int[]{-61,93,-79});
rules[187] = new Rule(-228, new int[]{8,-230,9});
rules[188] = new Rule(-230, new int[]{-229});
rules[189] = new Rule(-230, new int[]{-229,10});
rules[190] = new Rule(-229, new int[]{-231});
rules[191] = new Rule(-229, new int[]{-229,10,-231});
rules[192] = new Rule(-231, new int[]{-121,5,-78});
rules[193] = new Rule(-121, new int[]{-132});
rules[194] = new Rule(-45, new int[]{-6,-46});
rules[195] = new Rule(-6, new int[]{-235});
rules[196] = new Rule(-6, new int[]{-6,-235});
rules[197] = new Rule(-6, new int[]{});
rules[198] = new Rule(-235, new int[]{11,-236,12});
rules[199] = new Rule(-236, new int[]{-8});
rules[200] = new Rule(-236, new int[]{-236,93,-8});
rules[201] = new Rule(-8, new int[]{-9});
rules[202] = new Rule(-8, new int[]{-132,5,-9});
rules[203] = new Rule(-46, new int[]{-129,113,-272,10});
rules[204] = new Rule(-46, new int[]{-130,-272,10});
rules[205] = new Rule(-129, new int[]{-132});
rules[206] = new Rule(-129, new int[]{-132,-140});
rules[207] = new Rule(-130, new int[]{-132,116,-143,115});
rules[208] = new Rule(-272, new int[]{-261});
rules[209] = new Rule(-272, new int[]{-27});
rules[210] = new Rule(-258, new int[]{-257,13});
rules[211] = new Rule(-258, new int[]{-286,13});
rules[212] = new Rule(-261, new int[]{-257});
rules[213] = new Rule(-261, new int[]{-258});
rules[214] = new Rule(-261, new int[]{-241});
rules[215] = new Rule(-261, new int[]{-234});
rules[216] = new Rule(-261, new int[]{-266});
rules[217] = new Rule(-261, new int[]{-212});
rules[218] = new Rule(-261, new int[]{-286});
rules[219] = new Rule(-286, new int[]{-166,-284});
rules[220] = new Rule(-284, new int[]{116,-282,114});
rules[221] = new Rule(-285, new int[]{118});
rules[222] = new Rule(-285, new int[]{116,-283,114});
rules[223] = new Rule(-282, new int[]{-264});
rules[224] = new Rule(-282, new int[]{-282,93,-264});
rules[225] = new Rule(-283, new int[]{-265});
rules[226] = new Rule(-283, new int[]{-283,93,-265});
rules[227] = new Rule(-265, new int[]{});
rules[228] = new Rule(-264, new int[]{-257});
rules[229] = new Rule(-264, new int[]{-257,13});
rules[230] = new Rule(-264, new int[]{-266});
rules[231] = new Rule(-264, new int[]{-212});
rules[232] = new Rule(-264, new int[]{-286});
rules[233] = new Rule(-257, new int[]{-85});
rules[234] = new Rule(-257, new int[]{-85,6,-85});
rules[235] = new Rule(-257, new int[]{8,-74,9});
rules[236] = new Rule(-85, new int[]{-94});
rules[237] = new Rule(-85, new int[]{-85,-179,-94});
rules[238] = new Rule(-94, new int[]{-95});
rules[239] = new Rule(-94, new int[]{-94,-181,-95});
rules[240] = new Rule(-95, new int[]{-166});
rules[241] = new Rule(-95, new int[]{-15});
rules[242] = new Rule(-95, new int[]{-185,-95});
rules[243] = new Rule(-95, new int[]{-150});
rules[244] = new Rule(-95, new int[]{-95,8,-69,9});
rules[245] = new Rule(-166, new int[]{-132});
rules[246] = new Rule(-166, new int[]{-166,7,-123});
rules[247] = new Rule(-74, new int[]{-72,93,-72});
rules[248] = new Rule(-74, new int[]{-74,93,-72});
rules[249] = new Rule(-72, new int[]{-261});
rules[250] = new Rule(-72, new int[]{-261,113,-81});
rules[251] = new Rule(-234, new int[]{135,-260});
rules[252] = new Rule(-266, new int[]{-267});
rules[253] = new Rule(-266, new int[]{61,-267});
rules[254] = new Rule(-267, new int[]{-263});
rules[255] = new Rule(-267, new int[]{-28});
rules[256] = new Rule(-267, new int[]{-248});
rules[257] = new Rule(-267, new int[]{-115});
rules[258] = new Rule(-267, new int[]{-116});
rules[259] = new Rule(-116, new int[]{70,54,-261});
rules[260] = new Rule(-263, new int[]{20,11,-149,12,54,-261});
rules[261] = new Rule(-263, new int[]{-255});
rules[262] = new Rule(-255, new int[]{20,54,-261});
rules[263] = new Rule(-149, new int[]{-256});
rules[264] = new Rule(-149, new int[]{-149,93,-256});
rules[265] = new Rule(-256, new int[]{-257});
rules[266] = new Rule(-256, new int[]{});
rules[267] = new Rule(-248, new int[]{45,54,-261});
rules[268] = new Rule(-115, new int[]{30,54,-261});
rules[269] = new Rule(-115, new int[]{30});
rules[270] = new Rule(-241, new int[]{136,11,-83,12});
rules[271] = new Rule(-212, new int[]{-210});
rules[272] = new Rule(-210, new int[]{-209});
rules[273] = new Rule(-209, new int[]{40,-113});
rules[274] = new Rule(-209, new int[]{33,-113,5,-260});
rules[275] = new Rule(-209, new int[]{-166,120,-264});
rules[276] = new Rule(-209, new int[]{-286,120,-264});
rules[277] = new Rule(-209, new int[]{8,9,120,-264});
rules[278] = new Rule(-209, new int[]{8,-74,9,120,-264});
rules[279] = new Rule(-209, new int[]{-166,120,8,9});
rules[280] = new Rule(-209, new int[]{-286,120,8,9});
rules[281] = new Rule(-209, new int[]{8,9,120,8,9});
rules[282] = new Rule(-209, new int[]{8,-74,9,120,8,9});
rules[283] = new Rule(-27, new int[]{-20,-276,-169,-301,-23});
rules[284] = new Rule(-28, new int[]{44,-169,-301,-22,85});
rules[285] = new Rule(-19, new int[]{65});
rules[286] = new Rule(-19, new int[]{66});
rules[287] = new Rule(-19, new int[]{140});
rules[288] = new Rule(-19, new int[]{23});
rules[289] = new Rule(-19, new int[]{24});
rules[290] = new Rule(-20, new int[]{});
rules[291] = new Rule(-20, new int[]{-21});
rules[292] = new Rule(-21, new int[]{-19});
rules[293] = new Rule(-21, new int[]{-21,-19});
rules[294] = new Rule(-276, new int[]{22});
rules[295] = new Rule(-276, new int[]{39});
rules[296] = new Rule(-276, new int[]{60});
rules[297] = new Rule(-276, new int[]{60,22});
rules[298] = new Rule(-276, new int[]{60,44});
rules[299] = new Rule(-276, new int[]{60,39});
rules[300] = new Rule(-23, new int[]{});
rules[301] = new Rule(-23, new int[]{-22,85});
rules[302] = new Rule(-169, new int[]{});
rules[303] = new Rule(-169, new int[]{8,-168,9});
rules[304] = new Rule(-168, new int[]{-167});
rules[305] = new Rule(-168, new int[]{-168,93,-167});
rules[306] = new Rule(-167, new int[]{-166});
rules[307] = new Rule(-167, new int[]{-286});
rules[308] = new Rule(-140, new int[]{116,-143,114});
rules[309] = new Rule(-301, new int[]{});
rules[310] = new Rule(-301, new int[]{-300});
rules[311] = new Rule(-300, new int[]{-299});
rules[312] = new Rule(-300, new int[]{-300,-299});
rules[313] = new Rule(-299, new int[]{19,-143,5,-273,10});
rules[314] = new Rule(-273, new int[]{-270});
rules[315] = new Rule(-273, new int[]{-273,93,-270});
rules[316] = new Rule(-270, new int[]{-261});
rules[317] = new Rule(-270, new int[]{22});
rules[318] = new Rule(-270, new int[]{44});
rules[319] = new Rule(-270, new int[]{26});
rules[320] = new Rule(-22, new int[]{-29});
rules[321] = new Rule(-22, new int[]{-22,-7,-29});
rules[322] = new Rule(-7, new int[]{78});
rules[323] = new Rule(-7, new int[]{77});
rules[324] = new Rule(-7, new int[]{76});
rules[325] = new Rule(-7, new int[]{75});
rules[326] = new Rule(-29, new int[]{});
rules[327] = new Rule(-29, new int[]{-31,-176});
rules[328] = new Rule(-29, new int[]{-30});
rules[329] = new Rule(-29, new int[]{-31,10,-30});
rules[330] = new Rule(-143, new int[]{-132});
rules[331] = new Rule(-143, new int[]{-143,93,-132});
rules[332] = new Rule(-176, new int[]{});
rules[333] = new Rule(-176, new int[]{10});
rules[334] = new Rule(-31, new int[]{-41});
rules[335] = new Rule(-31, new int[]{-31,10,-41});
rules[336] = new Rule(-41, new int[]{-6,-47});
rules[337] = new Rule(-30, new int[]{-50});
rules[338] = new Rule(-30, new int[]{-30,-50});
rules[339] = new Rule(-50, new int[]{-49});
rules[340] = new Rule(-50, new int[]{-51});
rules[341] = new Rule(-47, new int[]{25,-25});
rules[342] = new Rule(-47, new int[]{-296});
rules[343] = new Rule(-47, new int[]{-3,-296});
rules[344] = new Rule(-3, new int[]{24});
rules[345] = new Rule(-3, new int[]{22});
rules[346] = new Rule(-296, new int[]{-295});
rules[347] = new Rule(-296, new int[]{58,-143,5,-261});
rules[348] = new Rule(-49, new int[]{-6,-208});
rules[349] = new Rule(-49, new int[]{-6,-205});
rules[350] = new Rule(-205, new int[]{-201});
rules[351] = new Rule(-205, new int[]{-204});
rules[352] = new Rule(-208, new int[]{-3,-216});
rules[353] = new Rule(-208, new int[]{-216});
rules[354] = new Rule(-208, new int[]{-213});
rules[355] = new Rule(-216, new int[]{-214});
rules[356] = new Rule(-214, new int[]{-211});
rules[357] = new Rule(-214, new int[]{-215});
rules[358] = new Rule(-213, new int[]{26,-157,-113,-193});
rules[359] = new Rule(-213, new int[]{-3,26,-157,-113,-193});
rules[360] = new Rule(-213, new int[]{27,-157,-113,-193});
rules[361] = new Rule(-157, new int[]{-156});
rules[362] = new Rule(-157, new int[]{});
rules[363] = new Rule(-158, new int[]{-132});
rules[364] = new Rule(-158, new int[]{-135});
rules[365] = new Rule(-158, new int[]{-158,7,-132});
rules[366] = new Rule(-158, new int[]{-158,7,-135});
rules[367] = new Rule(-51, new int[]{-6,-243});
rules[368] = new Rule(-243, new int[]{42,-158,-219,-188,10,-191});
rules[369] = new Rule(-243, new int[]{42,-158,-219,-188,10,-196,10,-191});
rules[370] = new Rule(-243, new int[]{-3,42,-158,-219,-188,10,-191});
rules[371] = new Rule(-243, new int[]{-3,42,-158,-219,-188,10,-196,10,-191});
rules[372] = new Rule(-243, new int[]{23,42,-158,-219,-197,10});
rules[373] = new Rule(-243, new int[]{-3,23,42,-158,-219,-197,10});
rules[374] = new Rule(-197, new int[]{103,-81});
rules[375] = new Rule(-197, new int[]{});
rules[376] = new Rule(-191, new int[]{});
rules[377] = new Rule(-191, new int[]{59,10});
rules[378] = new Rule(-219, new int[]{-224,5,-260});
rules[379] = new Rule(-224, new int[]{});
rules[380] = new Rule(-224, new int[]{11,-223,12});
rules[381] = new Rule(-223, new int[]{-222});
rules[382] = new Rule(-223, new int[]{-223,10,-222});
rules[383] = new Rule(-222, new int[]{-143,5,-260});
rules[384] = new Rule(-101, new int[]{-82});
rules[385] = new Rule(-101, new int[]{});
rules[386] = new Rule(-188, new int[]{});
rules[387] = new Rule(-188, new int[]{79,-101,-189});
rules[388] = new Rule(-188, new int[]{80,-245,-190});
rules[389] = new Rule(-189, new int[]{});
rules[390] = new Rule(-189, new int[]{80,-245});
rules[391] = new Rule(-190, new int[]{});
rules[392] = new Rule(-190, new int[]{79,-101});
rules[393] = new Rule(-294, new int[]{-295,10});
rules[394] = new Rule(-322, new int[]{103});
rules[395] = new Rule(-322, new int[]{113});
rules[396] = new Rule(-295, new int[]{-143,5,-261});
rules[397] = new Rule(-295, new int[]{-143,103,-81});
rules[398] = new Rule(-295, new int[]{-143,5,-261,-322,-80});
rules[399] = new Rule(-80, new int[]{-79});
rules[400] = new Rule(-80, new int[]{-307});
rules[401] = new Rule(-80, new int[]{-132,120,-312});
rules[402] = new Rule(-80, new int[]{8,9,-308,120,-312});
rules[403] = new Rule(-80, new int[]{8,-62,9,120,-312});
rules[404] = new Rule(-79, new int[]{-78});
rules[405] = new Rule(-79, new int[]{-53});
rules[406] = new Rule(-203, new int[]{-213,-163});
rules[407] = new Rule(-203, new int[]{26,-157,-113,103,-245,10});
rules[408] = new Rule(-203, new int[]{-3,26,-157,-113,103,-245,10});
rules[409] = new Rule(-204, new int[]{-213,-162});
rules[410] = new Rule(-204, new int[]{26,-157,-113,103,-245,10});
rules[411] = new Rule(-204, new int[]{-3,26,-157,-113,103,-245,10});
rules[412] = new Rule(-200, new int[]{-207});
rules[413] = new Rule(-200, new int[]{-3,-207});
rules[414] = new Rule(-207, new int[]{-214,-164});
rules[415] = new Rule(-207, new int[]{33,-155,-113,5,-260,-194,103,-91,10});
rules[416] = new Rule(-207, new int[]{33,-155,-113,-194,103,-91,10});
rules[417] = new Rule(-207, new int[]{33,-155,-113,5,-260,-194,103,-306,10});
rules[418] = new Rule(-207, new int[]{33,-155,-113,-194,103,-306,10});
rules[419] = new Rule(-207, new int[]{40,-156,-113,-194,103,-245,10});
rules[420] = new Rule(-207, new int[]{-214,141,10});
rules[421] = new Rule(-201, new int[]{-202});
rules[422] = new Rule(-201, new int[]{-3,-202});
rules[423] = new Rule(-202, new int[]{-214,-162});
rules[424] = new Rule(-202, new int[]{33,-155,-113,5,-260,-194,103,-92,10});
rules[425] = new Rule(-202, new int[]{33,-155,-113,-194,103,-92,10});
rules[426] = new Rule(-202, new int[]{40,-156,-113,-194,103,-245,10});
rules[427] = new Rule(-164, new int[]{-163});
rules[428] = new Rule(-164, new int[]{-57});
rules[429] = new Rule(-156, new int[]{-155});
rules[430] = new Rule(-155, new int[]{-127});
rules[431] = new Rule(-155, new int[]{-318,7,-127});
rules[432] = new Rule(-134, new int[]{-122});
rules[433] = new Rule(-318, new int[]{-134});
rules[434] = new Rule(-318, new int[]{-318,7,-134});
rules[435] = new Rule(-127, new int[]{-122});
rules[436] = new Rule(-127, new int[]{-177});
rules[437] = new Rule(-127, new int[]{-177,-140});
rules[438] = new Rule(-122, new int[]{-119});
rules[439] = new Rule(-122, new int[]{-119,-140});
rules[440] = new Rule(-119, new int[]{-132});
rules[441] = new Rule(-211, new int[]{40,-156,-113,-193,-301});
rules[442] = new Rule(-215, new int[]{33,-155,-113,-193,-301});
rules[443] = new Rule(-215, new int[]{33,-155,-113,5,-260,-193,-301});
rules[444] = new Rule(-57, new int[]{100,-96,74,-96,10});
rules[445] = new Rule(-57, new int[]{100,-96,10});
rules[446] = new Rule(-57, new int[]{100,10});
rules[447] = new Rule(-96, new int[]{-132});
rules[448] = new Rule(-96, new int[]{-150});
rules[449] = new Rule(-163, new int[]{-38,-240,10});
rules[450] = new Rule(-162, new int[]{-40,-240,10});
rules[451] = new Rule(-162, new int[]{-57});
rules[452] = new Rule(-113, new int[]{});
rules[453] = new Rule(-113, new int[]{8,9});
rules[454] = new Rule(-113, new int[]{8,-114,9});
rules[455] = new Rule(-114, new int[]{-52});
rules[456] = new Rule(-114, new int[]{-114,10,-52});
rules[457] = new Rule(-52, new int[]{-6,-281});
rules[458] = new Rule(-281, new int[]{-144,5,-260});
rules[459] = new Rule(-281, new int[]{49,-144,5,-260});
rules[460] = new Rule(-281, new int[]{25,-144,5,-260});
rules[461] = new Rule(-281, new int[]{101,-144,5,-260});
rules[462] = new Rule(-281, new int[]{-144,5,-260,103,-81});
rules[463] = new Rule(-281, new int[]{49,-144,5,-260,103,-81});
rules[464] = new Rule(-281, new int[]{25,-144,5,-260,103,-81});
rules[465] = new Rule(-144, new int[]{-120});
rules[466] = new Rule(-144, new int[]{-144,93,-120});
rules[467] = new Rule(-120, new int[]{-132});
rules[468] = new Rule(-260, new int[]{-261});
rules[469] = new Rule(-262, new int[]{-257});
rules[470] = new Rule(-262, new int[]{-241});
rules[471] = new Rule(-262, new int[]{-234});
rules[472] = new Rule(-262, new int[]{-266});
rules[473] = new Rule(-262, new int[]{-286});
rules[474] = new Rule(-246, new int[]{-245});
rules[475] = new Rule(-246, new int[]{-128,5,-246});
rules[476] = new Rule(-245, new int[]{});
rules[477] = new Rule(-245, new int[]{-4});
rules[478] = new Rule(-245, new int[]{-198});
rules[479] = new Rule(-245, new int[]{-118});
rules[480] = new Rule(-245, new int[]{-240});
rules[481] = new Rule(-245, new int[]{-138});
rules[482] = new Rule(-245, new int[]{-32});
rules[483] = new Rule(-245, new int[]{-232});
rules[484] = new Rule(-245, new int[]{-302});
rules[485] = new Rule(-245, new int[]{-109});
rules[486] = new Rule(-245, new int[]{-303});
rules[487] = new Rule(-245, new int[]{-145});
rules[488] = new Rule(-245, new int[]{-287});
rules[489] = new Rule(-245, new int[]{-233});
rules[490] = new Rule(-245, new int[]{-108});
rules[491] = new Rule(-245, new int[]{-298});
rules[492] = new Rule(-245, new int[]{-55});
rules[493] = new Rule(-245, new int[]{-154});
rules[494] = new Rule(-245, new int[]{-111});
rules[495] = new Rule(-245, new int[]{-112});
rules[496] = new Rule(-245, new int[]{-110});
rules[497] = new Rule(-245, new int[]{-325});
rules[498] = new Rule(-110, new int[]{69,-91,92,-245});
rules[499] = new Rule(-111, new int[]{71,-91});
rules[500] = new Rule(-112, new int[]{71,70,-91});
rules[501] = new Rule(-298, new int[]{49,-295});
rules[502] = new Rule(-298, new int[]{8,49,-132,93,-321,9,103,-81});
rules[503] = new Rule(-298, new int[]{49,8,-132,93,-143,9,103,-81});
rules[504] = new Rule(-4, new int[]{-100,-180,-82});
rules[505] = new Rule(-4, new int[]{8,-99,93,-320,9,-180,-81});
rules[506] = new Rule(-320, new int[]{-99});
rules[507] = new Rule(-320, new int[]{-320,93,-99});
rules[508] = new Rule(-321, new int[]{49,-132});
rules[509] = new Rule(-321, new int[]{-321,93,49,-132});
rules[510] = new Rule(-198, new int[]{-100});
rules[511] = new Rule(-118, new int[]{53,-128});
rules[512] = new Rule(-240, new int[]{84,-237,85});
rules[513] = new Rule(-237, new int[]{-246});
rules[514] = new Rule(-237, new int[]{-237,10,-246});
rules[515] = new Rule(-138, new int[]{36,-91,47,-245});
rules[516] = new Rule(-138, new int[]{36,-91,47,-245,28,-245});
rules[517] = new Rule(-325, new int[]{34,-91,51,-327,-238,85});
rules[518] = new Rule(-325, new int[]{34,-91,51,-327,10,-238,85});
rules[519] = new Rule(-327, new int[]{-326});
rules[520] = new Rule(-327, new int[]{-327,10,-326});
rules[521] = new Rule(-326, new int[]{-324,35,-91,5,-245});
rules[522] = new Rule(-326, new int[]{-324,5,-245});
rules[523] = new Rule(-32, new int[]{21,-91,54,-33,-238,85});
rules[524] = new Rule(-32, new int[]{21,-91,54,-33,10,-238,85});
rules[525] = new Rule(-32, new int[]{21,-91,54,-238,85});
rules[526] = new Rule(-33, new int[]{-247});
rules[527] = new Rule(-33, new int[]{-33,10,-247});
rules[528] = new Rule(-247, new int[]{-68,5,-245});
rules[529] = new Rule(-68, new int[]{-98});
rules[530] = new Rule(-68, new int[]{-68,93,-98});
rules[531] = new Rule(-98, new int[]{-86});
rules[532] = new Rule(-238, new int[]{});
rules[533] = new Rule(-238, new int[]{28,-237});
rules[534] = new Rule(-232, new int[]{90,-237,91,-81});
rules[535] = new Rule(-302, new int[]{50,-91,-277,-245});
rules[536] = new Rule(-277, new int[]{92});
rules[537] = new Rule(-277, new int[]{});
rules[538] = new Rule(-154, new int[]{56,-91,92,-245});
rules[539] = new Rule(-108, new int[]{32,-132,-259,130,-91,92,-245});
rules[540] = new Rule(-108, new int[]{32,49,-132,5,-261,130,-91,92,-245});
rules[541] = new Rule(-108, new int[]{32,49,-132,130,-91,92,-245});
rules[542] = new Rule(-259, new int[]{5,-261});
rules[543] = new Rule(-259, new int[]{});
rules[544] = new Rule(-109, new int[]{31,-18,-132,-271,-91,-104,-91,-277,-245});
rules[545] = new Rule(-18, new int[]{49});
rules[546] = new Rule(-18, new int[]{});
rules[547] = new Rule(-271, new int[]{103});
rules[548] = new Rule(-271, new int[]{5,-166,103});
rules[549] = new Rule(-104, new int[]{67});
rules[550] = new Rule(-104, new int[]{68});
rules[551] = new Rule(-303, new int[]{51,-66,92,-245});
rules[552] = new Rule(-145, new int[]{38});
rules[553] = new Rule(-287, new int[]{95,-237,-275});
rules[554] = new Rule(-275, new int[]{94,-237,85});
rules[555] = new Rule(-275, new int[]{29,-56,85});
rules[556] = new Rule(-56, new int[]{-59,-239});
rules[557] = new Rule(-56, new int[]{-59,10,-239});
rules[558] = new Rule(-56, new int[]{-237});
rules[559] = new Rule(-59, new int[]{-58});
rules[560] = new Rule(-59, new int[]{-59,10,-58});
rules[561] = new Rule(-239, new int[]{});
rules[562] = new Rule(-239, new int[]{28,-237});
rules[563] = new Rule(-58, new int[]{73,-60,92,-245});
rules[564] = new Rule(-60, new int[]{-165});
rules[565] = new Rule(-60, new int[]{-125,5,-165});
rules[566] = new Rule(-165, new int[]{-166});
rules[567] = new Rule(-125, new int[]{-132});
rules[568] = new Rule(-233, new int[]{43});
rules[569] = new Rule(-233, new int[]{43,-81});
rules[570] = new Rule(-66, new int[]{-82});
rules[571] = new Rule(-66, new int[]{-66,93,-82});
rules[572] = new Rule(-55, new int[]{-160});
rules[573] = new Rule(-160, new int[]{-159});
rules[574] = new Rule(-82, new int[]{-81});
rules[575] = new Rule(-82, new int[]{-306});
rules[576] = new Rule(-81, new int[]{-91});
rules[577] = new Rule(-81, new int[]{-105});
rules[578] = new Rule(-91, new int[]{-90});
rules[579] = new Rule(-91, new int[]{-226});
rules[580] = new Rule(-92, new int[]{-91});
rules[581] = new Rule(-92, new int[]{-306});
rules[582] = new Rule(-90, new int[]{-89});
rules[583] = new Rule(-90, new int[]{-90,15,-89});
rules[584] = new Rule(-242, new int[]{17,8,-269,9});
rules[585] = new Rule(-280, new int[]{18,8,-269,9});
rules[586] = new Rule(-280, new int[]{18,8,-268,9});
rules[587] = new Rule(-226, new int[]{-91,13,-91,5,-91});
rules[588] = new Rule(-268, new int[]{-166,-285});
rules[589] = new Rule(-268, new int[]{-166,4,-285});
rules[590] = new Rule(-269, new int[]{-166});
rules[591] = new Rule(-269, new int[]{-166,-284});
rules[592] = new Rule(-269, new int[]{-166,4,-284});
rules[593] = new Rule(-5, new int[]{8,-62,9});
rules[594] = new Rule(-5, new int[]{});
rules[595] = new Rule(-159, new int[]{72,-269,-65});
rules[596] = new Rule(-159, new int[]{72,-269,11,-63,12,-5});
rules[597] = new Rule(-159, new int[]{72,22,8,-317,9});
rules[598] = new Rule(-316, new int[]{-132,103,-89});
rules[599] = new Rule(-316, new int[]{-89});
rules[600] = new Rule(-317, new int[]{-316});
rules[601] = new Rule(-317, new int[]{-317,93,-316});
rules[602] = new Rule(-65, new int[]{});
rules[603] = new Rule(-65, new int[]{8,-63,9});
rules[604] = new Rule(-89, new int[]{-93});
rules[605] = new Rule(-89, new int[]{-89,-182,-93});
rules[606] = new Rule(-89, new int[]{-251,8,-330,9});
rules[607] = new Rule(-323, new int[]{-269,8,-330,9});
rules[608] = new Rule(-324, new int[]{-269,8,-331,9});
rules[609] = new Rule(-331, new int[]{-329});
rules[610] = new Rule(-331, new int[]{-331,10,-329});
rules[611] = new Rule(-331, new int[]{-331,93,-329});
rules[612] = new Rule(-330, new int[]{-328});
rules[613] = new Rule(-330, new int[]{-330,10,-328});
rules[614] = new Rule(-330, new int[]{-330,93,-328});
rules[615] = new Rule(-328, new int[]{49,-132,5,-261});
rules[616] = new Rule(-328, new int[]{49,-132});
rules[617] = new Rule(-328, new int[]{-323});
rules[618] = new Rule(-329, new int[]{-132,5,-261});
rules[619] = new Rule(-329, new int[]{-132});
rules[620] = new Rule(-329, new int[]{49,-132,5,-261});
rules[621] = new Rule(-329, new int[]{49,-132});
rules[622] = new Rule(-329, new int[]{-324});
rules[623] = new Rule(-102, new int[]{-93});
rules[624] = new Rule(-102, new int[]{});
rules[625] = new Rule(-107, new int[]{-83});
rules[626] = new Rule(-107, new int[]{});
rules[627] = new Rule(-105, new int[]{-93,5,-102});
rules[628] = new Rule(-105, new int[]{5,-102});
rules[629] = new Rule(-105, new int[]{-93,5,-102,5,-93});
rules[630] = new Rule(-105, new int[]{5,-102,5,-93});
rules[631] = new Rule(-106, new int[]{-83,5,-107});
rules[632] = new Rule(-106, new int[]{5,-107});
rules[633] = new Rule(-106, new int[]{-83,5,-107,5,-83});
rules[634] = new Rule(-106, new int[]{5,-107,5,-83});
rules[635] = new Rule(-182, new int[]{113});
rules[636] = new Rule(-182, new int[]{118});
rules[637] = new Rule(-182, new int[]{116});
rules[638] = new Rule(-182, new int[]{114});
rules[639] = new Rule(-182, new int[]{117});
rules[640] = new Rule(-182, new int[]{115});
rules[641] = new Rule(-182, new int[]{130});
rules[642] = new Rule(-93, new int[]{-76});
rules[643] = new Rule(-93, new int[]{-93,-183,-76});
rules[644] = new Rule(-183, new int[]{109});
rules[645] = new Rule(-183, new int[]{108});
rules[646] = new Rule(-183, new int[]{121});
rules[647] = new Rule(-183, new int[]{122});
rules[648] = new Rule(-183, new int[]{119});
rules[649] = new Rule(-187, new int[]{129});
rules[650] = new Rule(-187, new int[]{131});
rules[651] = new Rule(-249, new int[]{-251});
rules[652] = new Rule(-249, new int[]{-252});
rules[653] = new Rule(-252, new int[]{-76,129,-269});
rules[654] = new Rule(-251, new int[]{-76,131,-269});
rules[655] = new Rule(-77, new int[]{-88});
rules[656] = new Rule(-253, new int[]{-77,112,-88});
rules[657] = new Rule(-76, new int[]{-88});
rules[658] = new Rule(-76, new int[]{-159});
rules[659] = new Rule(-76, new int[]{-253});
rules[660] = new Rule(-76, new int[]{-76,-184,-88});
rules[661] = new Rule(-76, new int[]{-76,-184,-253});
rules[662] = new Rule(-76, new int[]{-249});
rules[663] = new Rule(-184, new int[]{111});
rules[664] = new Rule(-184, new int[]{110});
rules[665] = new Rule(-184, new int[]{124});
rules[666] = new Rule(-184, new int[]{125});
rules[667] = new Rule(-184, new int[]{126});
rules[668] = new Rule(-184, new int[]{127});
rules[669] = new Rule(-184, new int[]{123});
rules[670] = new Rule(-53, new int[]{59,8,-269,9});
rules[671] = new Rule(-54, new int[]{8,-91,93,-73,-308,-315,9});
rules[672] = new Rule(-88, new int[]{52});
rules[673] = new Rule(-88, new int[]{-14});
rules[674] = new Rule(-88, new int[]{-53});
rules[675] = new Rule(-88, new int[]{11,-64,12});
rules[676] = new Rule(-88, new int[]{128,-88});
rules[677] = new Rule(-88, new int[]{-185,-88});
rules[678] = new Rule(-88, new int[]{-100});
rules[679] = new Rule(-88, new int[]{-54});
rules[680] = new Rule(-14, new int[]{-150});
rules[681] = new Rule(-14, new int[]{-15});
rules[682] = new Rule(-103, new int[]{-99,14,-99});
rules[683] = new Rule(-103, new int[]{-99,14,-103});
rules[684] = new Rule(-100, new int[]{-117,-99});
rules[685] = new Rule(-100, new int[]{-99});
rules[686] = new Rule(-100, new int[]{-103});
rules[687] = new Rule(-117, new int[]{134});
rules[688] = new Rule(-117, new int[]{-117,134});
rules[689] = new Rule(-9, new int[]{-166,-65});
rules[690] = new Rule(-9, new int[]{-286,-65});
rules[691] = new Rule(-305, new int[]{-132});
rules[692] = new Rule(-305, new int[]{-305,7,-123});
rules[693] = new Rule(-304, new int[]{-305});
rules[694] = new Rule(-304, new int[]{-305,-284});
rules[695] = new Rule(-16, new int[]{-99});
rules[696] = new Rule(-16, new int[]{-14});
rules[697] = new Rule(-99, new int[]{-132});
rules[698] = new Rule(-99, new int[]{-177});
rules[699] = new Rule(-99, new int[]{38,-132});
rules[700] = new Rule(-99, new int[]{8,-81,9});
rules[701] = new Rule(-99, new int[]{-242});
rules[702] = new Rule(-99, new int[]{-280});
rules[703] = new Rule(-99, new int[]{-14,7,-123});
rules[704] = new Rule(-99, new int[]{-16,11,-66,12});
rules[705] = new Rule(-99, new int[]{-99,16,-105,12});
rules[706] = new Rule(-99, new int[]{-99,8,-63,9});
rules[707] = new Rule(-99, new int[]{-99,7,-133});
rules[708] = new Rule(-99, new int[]{-54,7,-133});
rules[709] = new Rule(-99, new int[]{-99,135});
rules[710] = new Rule(-99, new int[]{-99,4,-284});
rules[711] = new Rule(-63, new int[]{-66});
rules[712] = new Rule(-63, new int[]{});
rules[713] = new Rule(-64, new int[]{-71});
rules[714] = new Rule(-64, new int[]{});
rules[715] = new Rule(-71, new int[]{-84});
rules[716] = new Rule(-71, new int[]{-71,93,-84});
rules[717] = new Rule(-84, new int[]{-81});
rules[718] = new Rule(-84, new int[]{-81,6,-81});
rules[719] = new Rule(-151, new int[]{137});
rules[720] = new Rule(-151, new int[]{139});
rules[721] = new Rule(-150, new int[]{-152});
rules[722] = new Rule(-150, new int[]{138});
rules[723] = new Rule(-152, new int[]{-151});
rules[724] = new Rule(-152, new int[]{-152,-151});
rules[725] = new Rule(-177, new int[]{41,-186});
rules[726] = new Rule(-193, new int[]{10});
rules[727] = new Rule(-193, new int[]{10,-192,10});
rules[728] = new Rule(-194, new int[]{});
rules[729] = new Rule(-194, new int[]{10,-192});
rules[730] = new Rule(-192, new int[]{-195});
rules[731] = new Rule(-192, new int[]{-192,10,-195});
rules[732] = new Rule(-132, new int[]{136});
rules[733] = new Rule(-132, new int[]{-136});
rules[734] = new Rule(-132, new int[]{-137});
rules[735] = new Rule(-123, new int[]{-132});
rules[736] = new Rule(-123, new int[]{-278});
rules[737] = new Rule(-123, new int[]{-279});
rules[738] = new Rule(-133, new int[]{-132});
rules[739] = new Rule(-133, new int[]{-278});
rules[740] = new Rule(-133, new int[]{-177});
rules[741] = new Rule(-195, new int[]{140});
rules[742] = new Rule(-195, new int[]{142});
rules[743] = new Rule(-195, new int[]{143});
rules[744] = new Rule(-195, new int[]{144});
rules[745] = new Rule(-195, new int[]{146});
rules[746] = new Rule(-195, new int[]{145});
rules[747] = new Rule(-196, new int[]{145});
rules[748] = new Rule(-196, new int[]{144});
rules[749] = new Rule(-196, new int[]{140});
rules[750] = new Rule(-136, new int[]{79});
rules[751] = new Rule(-136, new int[]{80});
rules[752] = new Rule(-137, new int[]{74});
rules[753] = new Rule(-137, new int[]{72});
rules[754] = new Rule(-135, new int[]{78});
rules[755] = new Rule(-135, new int[]{77});
rules[756] = new Rule(-135, new int[]{76});
rules[757] = new Rule(-135, new int[]{75});
rules[758] = new Rule(-278, new int[]{-135});
rules[759] = new Rule(-278, new int[]{65});
rules[760] = new Rule(-278, new int[]{60});
rules[761] = new Rule(-278, new int[]{121});
rules[762] = new Rule(-278, new int[]{18});
rules[763] = new Rule(-278, new int[]{17});
rules[764] = new Rule(-278, new int[]{59});
rules[765] = new Rule(-278, new int[]{19});
rules[766] = new Rule(-278, new int[]{122});
rules[767] = new Rule(-278, new int[]{123});
rules[768] = new Rule(-278, new int[]{124});
rules[769] = new Rule(-278, new int[]{125});
rules[770] = new Rule(-278, new int[]{126});
rules[771] = new Rule(-278, new int[]{127});
rules[772] = new Rule(-278, new int[]{128});
rules[773] = new Rule(-278, new int[]{129});
rules[774] = new Rule(-278, new int[]{130});
rules[775] = new Rule(-278, new int[]{131});
rules[776] = new Rule(-278, new int[]{20});
rules[777] = new Rule(-278, new int[]{70});
rules[778] = new Rule(-278, new int[]{84});
rules[779] = new Rule(-278, new int[]{21});
rules[780] = new Rule(-278, new int[]{22});
rules[781] = new Rule(-278, new int[]{25});
rules[782] = new Rule(-278, new int[]{26});
rules[783] = new Rule(-278, new int[]{27});
rules[784] = new Rule(-278, new int[]{68});
rules[785] = new Rule(-278, new int[]{92});
rules[786] = new Rule(-278, new int[]{28});
rules[787] = new Rule(-278, new int[]{29});
rules[788] = new Rule(-278, new int[]{30});
rules[789] = new Rule(-278, new int[]{23});
rules[790] = new Rule(-278, new int[]{97});
rules[791] = new Rule(-278, new int[]{94});
rules[792] = new Rule(-278, new int[]{31});
rules[793] = new Rule(-278, new int[]{32});
rules[794] = new Rule(-278, new int[]{33});
rules[795] = new Rule(-278, new int[]{36});
rules[796] = new Rule(-278, new int[]{37});
rules[797] = new Rule(-278, new int[]{38});
rules[798] = new Rule(-278, new int[]{96});
rules[799] = new Rule(-278, new int[]{39});
rules[800] = new Rule(-278, new int[]{40});
rules[801] = new Rule(-278, new int[]{42});
rules[802] = new Rule(-278, new int[]{43});
rules[803] = new Rule(-278, new int[]{44});
rules[804] = new Rule(-278, new int[]{90});
rules[805] = new Rule(-278, new int[]{45});
rules[806] = new Rule(-278, new int[]{95});
rules[807] = new Rule(-278, new int[]{46});
rules[808] = new Rule(-278, new int[]{24});
rules[809] = new Rule(-278, new int[]{47});
rules[810] = new Rule(-278, new int[]{67});
rules[811] = new Rule(-278, new int[]{91});
rules[812] = new Rule(-278, new int[]{48});
rules[813] = new Rule(-278, new int[]{49});
rules[814] = new Rule(-278, new int[]{50});
rules[815] = new Rule(-278, new int[]{51});
rules[816] = new Rule(-278, new int[]{52});
rules[817] = new Rule(-278, new int[]{53});
rules[818] = new Rule(-278, new int[]{54});
rules[819] = new Rule(-278, new int[]{55});
rules[820] = new Rule(-278, new int[]{57});
rules[821] = new Rule(-278, new int[]{98});
rules[822] = new Rule(-278, new int[]{99});
rules[823] = new Rule(-278, new int[]{102});
rules[824] = new Rule(-278, new int[]{100});
rules[825] = new Rule(-278, new int[]{101});
rules[826] = new Rule(-278, new int[]{58});
rules[827] = new Rule(-278, new int[]{71});
rules[828] = new Rule(-278, new int[]{34});
rules[829] = new Rule(-278, new int[]{35});
rules[830] = new Rule(-279, new int[]{41});
rules[831] = new Rule(-279, new int[]{85});
rules[832] = new Rule(-186, new int[]{108});
rules[833] = new Rule(-186, new int[]{109});
rules[834] = new Rule(-186, new int[]{110});
rules[835] = new Rule(-186, new int[]{111});
rules[836] = new Rule(-186, new int[]{113});
rules[837] = new Rule(-186, new int[]{114});
rules[838] = new Rule(-186, new int[]{115});
rules[839] = new Rule(-186, new int[]{116});
rules[840] = new Rule(-186, new int[]{117});
rules[841] = new Rule(-186, new int[]{118});
rules[842] = new Rule(-186, new int[]{121});
rules[843] = new Rule(-186, new int[]{122});
rules[844] = new Rule(-186, new int[]{123});
rules[845] = new Rule(-186, new int[]{124});
rules[846] = new Rule(-186, new int[]{125});
rules[847] = new Rule(-186, new int[]{126});
rules[848] = new Rule(-186, new int[]{127});
rules[849] = new Rule(-186, new int[]{128});
rules[850] = new Rule(-186, new int[]{130});
rules[851] = new Rule(-186, new int[]{132});
rules[852] = new Rule(-186, new int[]{133});
rules[853] = new Rule(-186, new int[]{-180});
rules[854] = new Rule(-186, new int[]{112});
rules[855] = new Rule(-180, new int[]{103});
rules[856] = new Rule(-180, new int[]{104});
rules[857] = new Rule(-180, new int[]{105});
rules[858] = new Rule(-180, new int[]{106});
rules[859] = new Rule(-180, new int[]{107});
rules[860] = new Rule(-306, new int[]{-132,120,-312});
rules[861] = new Rule(-306, new int[]{8,9,-309,120,-312});
rules[862] = new Rule(-306, new int[]{8,-132,5,-260,9,-309,120,-312});
rules[863] = new Rule(-306, new int[]{8,-132,10,-310,9,-309,120,-312});
rules[864] = new Rule(-306, new int[]{8,-132,5,-260,10,-310,9,-309,120,-312});
rules[865] = new Rule(-306, new int[]{8,-91,93,-73,-308,-315,9,-319});
rules[866] = new Rule(-306, new int[]{-307});
rules[867] = new Rule(-315, new int[]{});
rules[868] = new Rule(-315, new int[]{10,-310});
rules[869] = new Rule(-319, new int[]{-309,120,-312});
rules[870] = new Rule(-307, new int[]{33,-308,120,-312});
rules[871] = new Rule(-307, new int[]{33,8,9,-308,120,-312});
rules[872] = new Rule(-307, new int[]{33,8,-310,9,-308,120,-312});
rules[873] = new Rule(-307, new int[]{40,120,-313});
rules[874] = new Rule(-307, new int[]{40,8,9,120,-313});
rules[875] = new Rule(-307, new int[]{40,8,-310,9,120,-313});
rules[876] = new Rule(-310, new int[]{-311});
rules[877] = new Rule(-310, new int[]{-310,10,-311});
rules[878] = new Rule(-311, new int[]{-143,-308});
rules[879] = new Rule(-308, new int[]{});
rules[880] = new Rule(-308, new int[]{5,-260});
rules[881] = new Rule(-309, new int[]{});
rules[882] = new Rule(-309, new int[]{5,-262});
rules[883] = new Rule(-314, new int[]{-240});
rules[884] = new Rule(-314, new int[]{-138});
rules[885] = new Rule(-314, new int[]{-302});
rules[886] = new Rule(-314, new int[]{-232});
rules[887] = new Rule(-314, new int[]{-109});
rules[888] = new Rule(-314, new int[]{-108});
rules[889] = new Rule(-314, new int[]{-110});
rules[890] = new Rule(-314, new int[]{-32});
rules[891] = new Rule(-314, new int[]{-287});
rules[892] = new Rule(-314, new int[]{-154});
rules[893] = new Rule(-314, new int[]{-111});
rules[894] = new Rule(-314, new int[]{-233});
rules[895] = new Rule(-312, new int[]{-91});
rules[896] = new Rule(-312, new int[]{-314});
rules[897] = new Rule(-313, new int[]{-198});
rules[898] = new Rule(-313, new int[]{-4});
rules[899] = new Rule(-313, new int[]{-314});
}
protected override void Initialize() {
this.InitSpecialTokens((int)Tokens.error, (int)Tokens.EOF);
this.InitStates(states);
this.InitRules(rules);
this.InitNonTerminals(nonTerms);
}
protected override void DoAction(int action)
{
CurrentSemanticValue = new Union();
switch (action)
{
case 2: // parse_goal -> program_file
{ root = ValueStack[ValueStack.Depth-1].stn; }
break;
case 3: // parse_goal -> unit_file
{ root = ValueStack[ValueStack.Depth-1].stn; }
break;
case 4: // parse_goal -> parts
{ root = ValueStack[ValueStack.Depth-1].stn; }
break;
case 5: // parts -> tkParseModeExpression, expr
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].ex; }
break;
case 6: // parts -> tkParseModeExpression, tkType, type_decl_identifier
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].id; }
break;
case 7: // parts -> tkParseModeType, variable_as_type
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].ex; }
break;
case 8: // parts -> tkParseModeStatement, stmt_or_expression
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 9: // stmt_or_expression -> expr
{ CurrentSemanticValue.stn = new expression_as_statement(ValueStack[ValueStack.Depth-1].ex,CurrentLocationSpan);}
break;
case 10: // stmt_or_expression -> assignment
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 11: // stmt_or_expression -> var_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 12: // optional_head_compiler_directives -> /* empty */
{ CurrentSemanticValue.ob = null; }
break;
case 13: // optional_head_compiler_directives -> head_compiler_directives
{ CurrentSemanticValue.ob = null; }
break;
case 14: // head_compiler_directives -> one_compiler_directive
{ CurrentSemanticValue.ob = null; }
break;
case 15: // head_compiler_directives -> head_compiler_directives, one_compiler_directive
{ CurrentSemanticValue.ob = null; }
break;
case 16: // one_compiler_directive -> tkDirectiveName, tkIdentifier
{
parsertools.AddErrorFromResource("UNSUPPORTED_OLD_DIRECTIVES",CurrentLocationSpan);
CurrentSemanticValue.ob = null;
}
break;
case 17: // one_compiler_directive -> tkDirectiveName, tkStringLiteral
{
parsertools.AddErrorFromResource("UNSUPPORTED_OLD_DIRECTIVES",CurrentLocationSpan);
CurrentSemanticValue.ob = null;
}
break;
case 18: // program_file -> program_header, optional_head_compiler_directives, uses_clause,
// program_block, optional_tk_point
{
CurrentSemanticValue.stn = NewProgramModule(ValueStack[ValueStack.Depth-5].stn as program_name, ValueStack[ValueStack.Depth-4].ob, ValueStack[ValueStack.Depth-3].stn as uses_list, ValueStack[ValueStack.Depth-2].stn, ValueStack[ValueStack.Depth-1].ob, CurrentLocationSpan);
}
break;
case 19: // optional_tk_point -> tkPoint
{ CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-1].ti; }
break;
case 20: // optional_tk_point -> tkSemiColon
{ CurrentSemanticValue.ob = null; }
break;
case 21: // optional_tk_point -> tkColon
{ CurrentSemanticValue.ob = null; }
break;
case 22: // optional_tk_point -> tkComma
{ CurrentSemanticValue.ob = null; }
break;
case 23: // optional_tk_point -> tkDotDot
{ CurrentSemanticValue.ob = null; }
break;
case 25: // program_header -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 26: // program_header -> tkProgram, identifier, program_heading_2
{ CurrentSemanticValue.stn = new program_name(ValueStack[ValueStack.Depth-2].id,CurrentLocationSpan); }
break;
case 27: // program_heading_2 -> tkSemiColon
{ CurrentSemanticValue.ob = null; }
break;
case 28: // program_heading_2 -> tkRoundOpen, program_param_list, tkRoundClose, tkSemiColon
{ CurrentSemanticValue.ob = null; }
break;
case 29: // program_param_list -> program_param
{ CurrentSemanticValue.ob = null; }
break;
case 30: // program_param_list -> program_param_list, tkComma, program_param
{ CurrentSemanticValue.ob = null; }
break;
case 31: // program_param -> identifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 32: // program_block -> program_decl_sect_list, compound_stmt
{
CurrentSemanticValue.stn = new block(ValueStack[ValueStack.Depth-2].stn as declarations, ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan);
}
break;
case 33: // program_decl_sect_list -> decl_sect_list
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 34: // ident_or_keyword_pointseparator_list -> identifier_or_keyword
{
CurrentSemanticValue.stn = new ident_list(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan);
}
break;
case 35: // ident_or_keyword_pointseparator_list -> ident_or_keyword_pointseparator_list,
// tkPoint, identifier_or_keyword
{
CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as ident_list).Add(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan);
}
break;
case 36: // uses_clause -> /* empty */
{
CurrentSemanticValue.stn = null;
}
break;
case 37: // uses_clause -> uses_clause, tkUses, used_units_list, tkSemiColon
{
if (parsertools.build_tree_for_formatter)
{
if (ValueStack[ValueStack.Depth-4].stn == null)
{
CurrentSemanticValue.stn = new uses_closure(ValueStack[ValueStack.Depth-2].stn as uses_list,CurrentLocationSpan);
}
else {
(ValueStack[ValueStack.Depth-4].stn as uses_closure).AddUsesList(ValueStack[ValueStack.Depth-2].stn as uses_list,CurrentLocationSpan);
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-4].stn;
}
}
else
{
if (ValueStack[ValueStack.Depth-4].stn == null)
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn;
CurrentSemanticValue.stn.source_context = CurrentLocationSpan;
}
else
{
(ValueStack[ValueStack.Depth-4].stn as uses_list).AddUsesList(ValueStack[ValueStack.Depth-2].stn as uses_list,CurrentLocationSpan);
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-4].stn;
CurrentSemanticValue.stn.source_context = CurrentLocationSpan;
}
}
}
break;
case 38: // used_units_list -> used_unit_name
{
CurrentSemanticValue.stn = new uses_list(ValueStack[ValueStack.Depth-1].stn as unit_or_namespace,CurrentLocationSpan);
}
break;
case 39: // used_units_list -> used_units_list, tkComma, used_unit_name
{
CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as uses_list).Add(ValueStack[ValueStack.Depth-1].stn as unit_or_namespace, CurrentLocationSpan);
}
break;
case 40: // used_unit_name -> ident_or_keyword_pointseparator_list
{
CurrentSemanticValue.stn = new unit_or_namespace(ValueStack[ValueStack.Depth-1].stn as ident_list,CurrentLocationSpan);
}
break;
case 41: // used_unit_name -> ident_or_keyword_pointseparator_list, tkIn, tkStringLiteral
{
CurrentSemanticValue.stn = new uses_unit_in(ValueStack[ValueStack.Depth-3].stn as ident_list, ValueStack[ValueStack.Depth-1].stn as string_const, CurrentLocationSpan);
}
break;
case 42: // unit_file -> attribute_declarations, unit_header, interface_part,
// implementation_part, initialization_part, tkPoint
{
CurrentSemanticValue.stn = new unit_module(ValueStack[ValueStack.Depth-5].stn as unit_name, ValueStack[ValueStack.Depth-4].stn as interface_node, ValueStack[ValueStack.Depth-3].stn as implementation_node, (ValueStack[ValueStack.Depth-2].stn as initfinal_part).initialization_sect, (ValueStack[ValueStack.Depth-2].stn as initfinal_part).finalization_sect, ValueStack[ValueStack.Depth-6].stn as attribute_list, CurrentLocationSpan);
}
break;
case 43: // unit_file -> attribute_declarations, unit_header, abc_interface_part,
// initialization_part, tkPoint
{
CurrentSemanticValue.stn = new unit_module(ValueStack[ValueStack.Depth-4].stn as unit_name, ValueStack[ValueStack.Depth-3].stn as interface_node, null, (ValueStack[ValueStack.Depth-2].stn as initfinal_part).initialization_sect, (ValueStack[ValueStack.Depth-2].stn as initfinal_part).finalization_sect, ValueStack[ValueStack.Depth-5].stn as attribute_list, CurrentLocationSpan);
}
break;
case 44: // unit_header -> unit_key_word, unit_name, tkSemiColon,
// optional_head_compiler_directives
{
CurrentSemanticValue.stn = NewUnitHeading(new ident(ValueStack[ValueStack.Depth-4].ti.text, LocationStack[LocationStack.Depth-4]), ValueStack[ValueStack.Depth-3].id, CurrentLocationSpan);
}
break;
case 45: // unit_header -> tkNamespace, ident_or_keyword_pointseparator_list, tkSemiColon,
// optional_head_compiler_directives
{
CurrentSemanticValue.stn = NewNamespaceHeading(new ident(ValueStack[ValueStack.Depth-4].ti.text, LocationStack[LocationStack.Depth-4]), ValueStack[ValueStack.Depth-3].stn as ident_list, CurrentLocationSpan);
}
break;
case 46: // unit_key_word -> tkUnit
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 47: // unit_key_word -> tkLibrary
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 48: // unit_name -> identifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 49: // interface_part -> tkInterface, uses_clause, interface_decl_sect_list
{
CurrentSemanticValue.stn = new interface_node(ValueStack[ValueStack.Depth-1].stn as declarations, ValueStack[ValueStack.Depth-2].stn as uses_list, null, LexLocation.MergeAll(LocationStack[LocationStack.Depth-3],LocationStack[LocationStack.Depth-2],LocationStack[LocationStack.Depth-1]));
}
break;
case 50: // implementation_part -> tkImplementation, uses_clause, decl_sect_list
{
CurrentSemanticValue.stn = new implementation_node(ValueStack[ValueStack.Depth-2].stn as uses_list, ValueStack[ValueStack.Depth-1].stn as declarations, null, LexLocation.MergeAll(LocationStack[LocationStack.Depth-3],LocationStack[LocationStack.Depth-2],LocationStack[LocationStack.Depth-1]));
}
break;
case 51: // abc_interface_part -> uses_clause, decl_sect_list
{
CurrentSemanticValue.stn = new interface_node(ValueStack[ValueStack.Depth-1].stn as declarations, ValueStack[ValueStack.Depth-2].stn as uses_list, null, null);
}
break;
case 52: // initialization_part -> tkEnd
{
CurrentSemanticValue.stn = new initfinal_part();
CurrentSemanticValue.stn.source_context = CurrentLocationSpan;
}
break;
case 53: // initialization_part -> tkInitialization, stmt_list, tkEnd
{
CurrentSemanticValue.stn = new initfinal_part(ValueStack[ValueStack.Depth-3].ti, ValueStack[ValueStack.Depth-2].stn as statement_list, ValueStack[ValueStack.Depth-1].ti, null, null, CurrentLocationSpan);
}
break;
case 54: // initialization_part -> tkInitialization, stmt_list, tkFinalization, stmt_list,
// tkEnd
{
CurrentSemanticValue.stn = new initfinal_part(ValueStack[ValueStack.Depth-5].ti, ValueStack[ValueStack.Depth-4].stn as statement_list, ValueStack[ValueStack.Depth-3].ti, ValueStack[ValueStack.Depth-2].stn as statement_list, ValueStack[ValueStack.Depth-1].ti, CurrentLocationSpan);
}
break;
case 55: // initialization_part -> tkBegin, stmt_list, tkEnd
{
CurrentSemanticValue.stn = new initfinal_part(ValueStack[ValueStack.Depth-3].ti, ValueStack[ValueStack.Depth-2].stn as statement_list, ValueStack[ValueStack.Depth-1].ti, null, null, CurrentLocationSpan);
}
break;
case 56: // interface_decl_sect_list -> int_decl_sect_list1
{
if ((ValueStack[ValueStack.Depth-1].stn as declarations).Count > 0)
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
else
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
}
break;
case 57: // int_decl_sect_list1 -> /* empty */
{
CurrentSemanticValue.stn = new declarations();
if (GlobalDecls==null)
GlobalDecls = CurrentSemanticValue.stn as declarations;
}
break;
case 58: // int_decl_sect_list1 -> int_decl_sect_list1, int_decl_sect
{
CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-2].stn as declarations).Add(ValueStack[ValueStack.Depth-1].stn as declaration, CurrentLocationSpan);
}
break;
case 59: // decl_sect_list -> decl_sect_list1
{
if ((ValueStack[ValueStack.Depth-1].stn as declarations).Count > 0)
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
else
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
}
break;
case 60: // decl_sect_list1 -> /* empty */
{
CurrentSemanticValue.stn = new declarations();
if (GlobalDecls==null)
GlobalDecls = CurrentSemanticValue.stn as declarations;
}
break;
case 61: // decl_sect_list1 -> decl_sect_list1, decl_sect
{
CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-2].stn as declarations).Add(ValueStack[ValueStack.Depth-1].stn as declaration, CurrentLocationSpan);
}
break;
case 62: // inclass_decl_sect_list -> inclass_decl_sect_list1
{
if ((ValueStack[ValueStack.Depth-1].stn as declarations).Count > 0)
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
else
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
}
break;
case 63: // inclass_decl_sect_list1 -> /* empty */
{
CurrentSemanticValue.stn = new declarations();
}
break;
case 64: // inclass_decl_sect_list1 -> inclass_decl_sect_list1, abc_decl_sect
{
CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-2].stn as declarations).Add(ValueStack[ValueStack.Depth-1].stn as declaration, CurrentLocationSpan);
}
break;
case 65: // int_decl_sect -> const_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 66: // int_decl_sect -> res_str_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 67: // int_decl_sect -> type_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 68: // int_decl_sect -> var_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 69: // int_decl_sect -> int_proc_header
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].td; }
break;
case 70: // int_decl_sect -> int_func_header
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].td; }
break;
case 71: // decl_sect -> label_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 72: // decl_sect -> const_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 73: // decl_sect -> res_str_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 74: // decl_sect -> type_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 75: // decl_sect -> var_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 76: // decl_sect -> proc_func_constr_destr_decl_with_attr
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 77: // proc_func_constr_destr_decl -> proc_func_decl
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 78: // proc_func_constr_destr_decl -> constr_destr_decl
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 79: // proc_func_constr_destr_decl_with_attr -> attribute_declarations,
// proc_func_constr_destr_decl
{
(ValueStack[ValueStack.Depth-1].stn as procedure_definition).AssignAttrList(ValueStack[ValueStack.Depth-2].stn as attribute_list);
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
}
break;
case 80: // abc_decl_sect -> label_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 81: // abc_decl_sect -> const_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 82: // abc_decl_sect -> res_str_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 83: // abc_decl_sect -> type_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 84: // abc_decl_sect -> var_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 85: // int_proc_header -> attribute_declarations, proc_header
{
CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td;
(CurrentSemanticValue.td as procedure_header).attributes = ValueStack[ValueStack.Depth-2].stn as attribute_list;
}
break;
case 86: // int_proc_header -> attribute_declarations, proc_header, tkForward, tkSemiColon
{
CurrentSemanticValue.td = NewProcedureHeader(ValueStack[ValueStack.Depth-4].stn as attribute_list, ValueStack[ValueStack.Depth-3].td as procedure_header, ValueStack[ValueStack.Depth-2].id as procedure_attribute, CurrentLocationSpan);
}
break;
case 87: // int_func_header -> attribute_declarations, func_header
{
CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td;
(CurrentSemanticValue.td as procedure_header).attributes = ValueStack[ValueStack.Depth-2].stn as attribute_list;
}
break;
case 88: // int_func_header -> attribute_declarations, func_header, tkForward, tkSemiColon
{
CurrentSemanticValue.td = NewProcedureHeader(ValueStack[ValueStack.Depth-4].stn as attribute_list, ValueStack[ValueStack.Depth-3].td as procedure_header, ValueStack[ValueStack.Depth-2].id as procedure_attribute, CurrentLocationSpan);
}
break;
case 89: // label_decl_sect -> tkLabel, label_list, tkSemiColon
{
CurrentSemanticValue.stn = new label_definitions(ValueStack[ValueStack.Depth-2].stn as ident_list, CurrentLocationSpan);
}
break;
case 90: // label_list -> label_name
{
CurrentSemanticValue.stn = new ident_list(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan);
}
break;
case 91: // label_list -> label_list, tkComma, label_name
{
CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as ident_list).Add(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan);
}
break;
case 92: // label_name -> tkInteger
{
CurrentSemanticValue.id = new ident(ValueStack[ValueStack.Depth-1].ex.ToString(), CurrentLocationSpan);
}
break;
case 93: // label_name -> identifier
{
CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id;
}
break;
case 94: // const_decl_sect -> tkConst, const_decl
{
CurrentSemanticValue.stn = new consts_definitions_list(ValueStack[ValueStack.Depth-1].stn as const_definition, CurrentLocationSpan);
}
break;
case 95: // const_decl_sect -> const_decl_sect, const_decl
{
CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-2].stn as consts_definitions_list).Add(ValueStack[ValueStack.Depth-1].stn as const_definition, CurrentLocationSpan);
}
break;
case 96: // res_str_decl_sect -> tkResourceString, const_decl
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
}
break;
case 97: // res_str_decl_sect -> res_str_decl_sect, const_decl
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn;
}
break;
case 98: // type_decl_sect -> tkType, type_decl
{
CurrentSemanticValue.stn = new type_declarations(ValueStack[ValueStack.Depth-1].stn as type_declaration, CurrentLocationSpan);
}
break;
case 99: // type_decl_sect -> type_decl_sect, type_decl
{
CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-2].stn as type_declarations).Add(ValueStack[ValueStack.Depth-1].stn as type_declaration, CurrentLocationSpan);
}
break;
case 100: // var_decl_with_assign_var_tuple -> var_decl
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
}
break;
case 101: // var_decl_with_assign_var_tuple -> tkRoundOpen, identifier, tkComma, ident_list,
// tkRoundClose, tkAssign, expr_l1,
// tkSemiColon
{
(ValueStack[ValueStack.Depth-5].stn as ident_list).Insert(0,ValueStack[ValueStack.Depth-7].id);
ValueStack[ValueStack.Depth-5].stn.source_context = LexLocation.MergeAll(LocationStack[LocationStack.Depth-8],LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5],LocationStack[LocationStack.Depth-4]);
CurrentSemanticValue.stn = new var_tuple_def_statement(ValueStack[ValueStack.Depth-5].stn as ident_list, ValueStack[ValueStack.Depth-2].ex, CurrentLocationSpan);
}
break;
case 102: // var_decl_sect -> tkVar, var_decl_with_assign_var_tuple
{
CurrentSemanticValue.stn = new variable_definitions(ValueStack[ValueStack.Depth-1].stn as var_def_statement, CurrentLocationSpan);
}
break;
case 103: // var_decl_sect -> tkEvent, var_decl_with_assign_var_tuple
{
CurrentSemanticValue.stn = new variable_definitions(ValueStack[ValueStack.Depth-1].stn as var_def_statement, CurrentLocationSpan);
(ValueStack[ValueStack.Depth-1].stn as var_def_statement).is_event = true;
}
break;
case 104: // var_decl_sect -> var_decl_sect, var_decl_with_assign_var_tuple
{
CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-2].stn as variable_definitions).Add(ValueStack[ValueStack.Depth-1].stn as var_def_statement, CurrentLocationSpan);
}
break;
case 105: // const_decl -> only_const_decl, tkSemiColon
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; }
break;
case 106: // only_const_decl -> const_name, tkEqual, init_const_expr
{
CurrentSemanticValue.stn = new simple_const_definition(ValueStack[ValueStack.Depth-3].id, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 107: // only_const_decl -> const_name, tkColon, type_ref, tkEqual, typed_const
{
CurrentSemanticValue.stn = new typed_const_definition(ValueStack[ValueStack.Depth-5].id, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-3].td, CurrentLocationSpan);
}
break;
case 108: // init_const_expr -> const_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 109: // init_const_expr -> array_const
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 110: // const_name -> identifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 111: // expr_l1_list -> expr_l1
{
CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 112: // expr_l1_list -> expr_l1_list, tkComma, expr_l1
{
CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as expression_list).Add(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 113: // const_expr -> const_simple_expr
{
CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex;
}
break;
case 114: // const_expr -> const_simple_expr, const_relop, const_simple_expr
{
CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan);
}
break;
case 115: // const_expr -> question_constexpr
{
CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex;
}
break;
case 116: // question_constexpr -> const_expr, tkQuestion, const_expr, tkColon, const_expr
{ CurrentSemanticValue.ex = new question_colon_expression(ValueStack[ValueStack.Depth-5].ex, ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); }
break;
case 117: // const_relop -> tkEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 118: // const_relop -> tkNotEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 119: // const_relop -> tkLower
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 120: // const_relop -> tkGreater
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 121: // const_relop -> tkLowerEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 122: // const_relop -> tkGreaterEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 123: // const_relop -> tkIn
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 124: // const_simple_expr -> const_term
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 125: // const_simple_expr -> const_simple_expr, const_addop, const_term
{ CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); }
break;
case 126: // const_addop -> tkPlus
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 127: // const_addop -> tkMinus
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 128: // const_addop -> tkOr
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 129: // const_addop -> tkXor
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 130: // as_is_constexpr -> const_term, typecast_op, simple_or_template_type_reference
{
CurrentSemanticValue.ex = NewAsIsConstexpr(ValueStack[ValueStack.Depth-3].ex, (op_typecast)ValueStack[ValueStack.Depth-2].ob, ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan);
}
break;
case 131: // power_constexpr -> const_factor, tkStarStar, const_factor
{ CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); }
break;
case 132: // const_term -> const_factor
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 133: // const_term -> as_is_constexpr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 134: // const_term -> power_constexpr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 135: // const_term -> const_term, const_mulop, const_factor
{ CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); }
break;
case 136: // const_term -> const_term, const_mulop, power_constexpr
{ CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex,ValueStack[ValueStack.Depth-1].ex,(ValueStack[ValueStack.Depth-2].op).type, CurrentLocationSpan); }
break;
case 137: // const_mulop -> tkStar
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 138: // const_mulop -> tkSlash
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 139: // const_mulop -> tkDiv
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 140: // const_mulop -> tkMod
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 141: // const_mulop -> tkShl
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 142: // const_mulop -> tkShr
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 143: // const_mulop -> tkAnd
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 144: // const_factor -> const_variable
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 145: // const_factor -> const_set
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 146: // const_factor -> tkNil
{
CurrentSemanticValue.ex = new nil_const();
CurrentSemanticValue.ex.source_context = CurrentLocationSpan;
}
break;
case 147: // const_factor -> tkAddressOf, const_factor
{
CurrentSemanticValue.ex = new get_address(ValueStack[ValueStack.Depth-1].ex as addressed_value, CurrentLocationSpan);
}
break;
case 148: // const_factor -> tkRoundOpen, const_expr, tkRoundClose
{
CurrentSemanticValue.ex = new bracket_expr(ValueStack[ValueStack.Depth-2].ex, CurrentLocationSpan);
}
break;
case 149: // const_factor -> tkNot, const_factor
{
CurrentSemanticValue.ex = new un_expr(ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan);
}
break;
case 150: // const_factor -> sign, const_factor
{
// <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 151: // const_factor -> new_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 152: // const_set -> tkSquareOpen, const_elem_list, tkSquareClose
{
CurrentSemanticValue.ex = new pascal_set_constant(ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan);
}
break;
case 153: // sign -> tkPlus
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 154: // sign -> tkMinus
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 155: // const_variable -> identifier
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].id; }
break;
case 156: // const_variable -> literal
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 157: // const_variable -> unsigned_number
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 158: // const_variable -> tkInherited, identifier
{
CurrentSemanticValue.ex = new inherited_ident(ValueStack[ValueStack.Depth-1].id.name, CurrentLocationSpan);
}
break;
case 159: // const_variable -> sizeof_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 160: // const_variable -> typeof_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 161: // const_variable -> const_variable, const_variable_2
{
CurrentSemanticValue.ex = NewConstVariable(ValueStack[ValueStack.Depth-2].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 162: // 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 163: // 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 164: // const_variable_2 -> tkPoint, identifier_or_keyword
{
CurrentSemanticValue.ex = new dot_node(null, ValueStack[ValueStack.Depth-1].id as addressed_value, CurrentLocationSpan);
}
break;
case 165: // const_variable_2 -> tkDeref
{
CurrentSemanticValue.ex = new roof_dereference();
CurrentSemanticValue.ex.source_context = CurrentLocationSpan;
}
break;
case 166: // 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 167: // const_variable_2 -> tkSquareOpen, const_elem_list, tkSquareClose
{
CurrentSemanticValue.ex = new indexer(ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan);
}
break;
case 168: // optional_const_func_expr_list -> expr_list
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 169: // optional_const_func_expr_list -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 170: // const_elem_list -> const_elem_list1
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 172: // const_elem_list1 -> const_elem
{
CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 173: // 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 174: // const_elem -> const_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 175: // 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 176: // unsigned_number -> tkInteger
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 177: // unsigned_number -> tkHex
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 178: // unsigned_number -> tkFloat
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 179: // typed_const -> const_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 180: // typed_const -> array_const
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 181: // typed_const -> record_const
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 182: // array_const -> tkRoundOpen, typed_const_list, tkRoundClose
{
CurrentSemanticValue.ex = new array_const(ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan);
}
break;
case 184: // typed_const_list -> typed_const_list1
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
}
break;
case 185: // typed_const_list1 -> typed_const_plus
{
CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 186: // 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 187: // record_const -> tkRoundOpen, const_field_list, tkRoundClose
{
CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-2].ex;
CurrentSemanticValue.ex.source_context = CurrentLocationSpan;
}
break;
case 188: // const_field_list -> const_field_list_1
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 189: // const_field_list -> const_field_list_1, tkSemiColon
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-2].ex; }
break;
case 190: // const_field_list_1 -> const_field
{
CurrentSemanticValue.ex = new record_const(ValueStack[ValueStack.Depth-1].stn as record_const_definition, CurrentLocationSpan);
}
break;
case 191: // 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 192: // 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 193: // const_field_name -> identifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 194: // 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 195: // attribute_declarations -> attribute_declaration
{
CurrentSemanticValue.stn = new attribute_list(ValueStack[ValueStack.Depth-1].stn as simple_attribute_list, CurrentLocationSpan);
}
break;
case 196: // 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 197: // attribute_declarations -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 198: // attribute_declaration -> tkSquareOpen, one_or_some_attribute, tkSquareClose
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; }
break;
case 199: // one_or_some_attribute -> one_attribute
{
CurrentSemanticValue.stn = new simple_attribute_list(ValueStack[ValueStack.Depth-1].stn as attribute, CurrentLocationSpan);
}
break;
case 200: // 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 201: // one_attribute -> attribute_variable
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 202: // 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 203: // 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 204: // 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 205: // type_decl_identifier -> identifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 206: // 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 207: // 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 208: // type_decl_type -> type_ref
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 209: // type_decl_type -> object_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 210: // 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 211: // 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 212: // type_ref -> simple_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 213: // type_ref -> simple_type_question
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 214: // type_ref -> string_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 215: // type_ref -> pointer_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 216: // type_ref -> structured_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 217: // type_ref -> procedural_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 218: // type_ref -> template_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 219: // 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 220: // template_type_params -> tkLower, template_param_list, tkGreater
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn;
CurrentSemanticValue.stn.source_context = CurrentLocationSpan;
}
break;
case 221: // 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 222: // template_type_empty_params -> tkLower, template_empty_param_list, tkGreater
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn;
CurrentSemanticValue.stn.source_context = CurrentLocationSpan;
}
break;
case 223: // template_param_list -> template_param
{
CurrentSemanticValue.stn = new template_param_list(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan);
}
break;
case 224: // 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 225: // template_empty_param_list -> template_empty_param
{
CurrentSemanticValue.stn = new template_param_list(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan);
}
break;
case 226: // 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 227: // template_empty_param -> /* empty */
{
CurrentSemanticValue.td = new named_type_reference(new ident(""), CurrentLocationSpan);
}
break;
case 228: // template_param -> simple_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 229: // 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 230: // template_param -> structured_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 231: // template_param -> procedural_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 232: // template_param -> template_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 233: // simple_type -> range_expr
{
CurrentSemanticValue.td = parsertools.ConvertDotNodeOrIdentToNamedTypeReference(ValueStack[ValueStack.Depth-1].ex);
}
break;
case 234: // simple_type -> range_expr, tkDotDot, range_expr
{
CurrentSemanticValue.td = new diapason(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 235: // simple_type -> tkRoundOpen, enumeration_id_list, tkRoundClose
{
CurrentSemanticValue.td = new enum_type_definition(ValueStack[ValueStack.Depth-2].stn as enumerator_list, CurrentLocationSpan);
}
break;
case 236: // range_expr -> range_term
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 237: // 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 238: // range_term -> range_factor
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 239: // 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 240: // range_factor -> simple_type_identifier
{
CurrentSemanticValue.ex = parsertools.ConvertNamedTypeReferenceToDotNodeOrIdent(ValueStack[ValueStack.Depth-1].td as named_type_reference);
}
break;
case 241: // range_factor -> unsigned_number
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 242: // range_factor -> sign, range_factor
{
CurrentSemanticValue.ex = new un_expr(ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan);
}
break;
case 243: // range_factor -> literal
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 244: // 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 245: // simple_type_identifier -> identifier
{
CurrentSemanticValue.td = new named_type_reference(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan);
}
break;
case 246: // 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 247: // 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 248: // 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 249: // enumeration_id -> type_ref
{
CurrentSemanticValue.stn = new enumerator(ValueStack[ValueStack.Depth-1].td, null, CurrentLocationSpan);
}
break;
case 250: // enumeration_id -> type_ref, tkEqual, expr
{
CurrentSemanticValue.stn = new enumerator(ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 251: // pointer_type -> tkDeref, fptype
{
CurrentSemanticValue.td = new ref_type(ValueStack[ValueStack.Depth-1].td,CurrentLocationSpan);
}
break;
case 252: // structured_type -> unpacked_structured_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 253: // structured_type -> tkPacked, unpacked_structured_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 254: // unpacked_structured_type -> array_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 255: // unpacked_structured_type -> record_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 256: // unpacked_structured_type -> set_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 257: // unpacked_structured_type -> file_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 258: // unpacked_structured_type -> sequence_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 259: // sequence_type -> tkSequence, tkOf, type_ref
{
CurrentSemanticValue.td = new sequence_type(ValueStack[ValueStack.Depth-1].td,CurrentLocationSpan);
}
break;
case 260: // 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 261: // array_type -> unsized_array_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 262: // unsized_array_type -> tkArray, tkOf, type_ref
{
CurrentSemanticValue.td = new array_type(null, ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan);
}
break;
case 263: // simple_type_list -> simple_type_or_
{
CurrentSemanticValue.stn = new indexers_types(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan);
}
break;
case 264: // 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 265: // simple_type_or_ -> simple_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 266: // simple_type_or_ -> /* empty */
{ CurrentSemanticValue.td = null; }
break;
case 267: // set_type -> tkSet, tkOf, type_ref
{
CurrentSemanticValue.td = new set_type_definition(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan);
}
break;
case 268: // file_type -> tkFile, tkOf, type_ref
{
CurrentSemanticValue.td = new file_type(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan);
}
break;
case 269: // file_type -> tkFile
{
CurrentSemanticValue.td = new file_type();
CurrentSemanticValue.td.source_context = CurrentLocationSpan;
}
break;
case 270: // 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 271: // procedural_type -> procedural_type_kind
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 272: // procedural_type_kind -> proc_type_decl
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 273: // 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 274: // 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 275: // 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 276: // 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 277: // proc_type_decl -> tkRoundOpen, tkRoundClose, tkArrow, template_param
{
CurrentSemanticValue.td = new modern_proc_type(null,null,ValueStack[ValueStack.Depth-1].td,CurrentLocationSpan);
}
break;
case 278: // 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 279: // 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 280: // proc_type_decl -> template_type, tkArrow, tkRoundOpen, tkRoundClose
{
CurrentSemanticValue.td = new modern_proc_type(ValueStack[ValueStack.Depth-4].td,null,null,CurrentLocationSpan);
}
break;
case 281: // proc_type_decl -> tkRoundOpen, tkRoundClose, tkArrow, tkRoundOpen, tkRoundClose
{
CurrentSemanticValue.td = new modern_proc_type(null,null,null,CurrentLocationSpan);
}
break;
case 282: // 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 283: // object_type -> class_attributes, class_or_interface_keyword,
// optional_base_classes, optional_where_section,
// optional_component_list_seq_end
{
var cd = NewObjectType((class_attribute)ValueStack[ValueStack.Depth-5].ob, ValueStack[ValueStack.Depth-4].ti, ValueStack[ValueStack.Depth-3].stn as named_type_reference_list, ValueStack[ValueStack.Depth-2].stn as where_definition_list, ValueStack[ValueStack.Depth-1].stn as class_body_list, CurrentLocationSpan);
CurrentSemanticValue.td = cd;
var tt = cd.DescendantNodes().OfType<class_definition>().Where(cld => cld.keyword == class_keyword.Record);
if (tt.Count()>0)
{
foreach (var ttt in tt)
{
var sc = ttt.source_context;
parsertools.AddErrorFromResource("NESTED_RECORD_DEFINITIONS_ARE_FORBIDDEN", new LexLocation(sc.begin_position.line_num, sc.begin_position.column_num-1, sc.end_position.line_num, sc.end_position.column_num, sc.FileName));
}
}
}
break;
case 284: // 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 285: // class_attribute -> tkSealed
{ CurrentSemanticValue.ob = class_attribute.Sealed; }
break;
case 286: // class_attribute -> tkPartial
{ CurrentSemanticValue.ob = class_attribute.Partial; }
break;
case 287: // class_attribute -> tkAbstract
{ CurrentSemanticValue.ob = class_attribute.Abstract; }
break;
case 288: // class_attribute -> tkAuto
{ CurrentSemanticValue.ob = class_attribute.Auto; }
break;
case 289: // class_attribute -> tkStatic
{ CurrentSemanticValue.ob = class_attribute.Static; }
break;
case 290: // class_attributes -> /* empty */
{
CurrentSemanticValue.ob = class_attribute.None;
}
break;
case 291: // class_attributes -> class_attributes1
{
CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-1].ob;
}
break;
case 292: // class_attributes1 -> class_attribute
{
CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-1].ob;
}
break;
case 293: // 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 294: // class_or_interface_keyword -> tkClass
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 295: // class_or_interface_keyword -> tkInterface
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 296: // class_or_interface_keyword -> tkTemplate
{
CurrentSemanticValue.ti = NewClassOrInterfaceKeyword(ValueStack[ValueStack.Depth-1].ti);
}
break;
case 297: // class_or_interface_keyword -> tkTemplate, tkClass
{
CurrentSemanticValue.ti = NewClassOrInterfaceKeyword(ValueStack[ValueStack.Depth-2].ti, "c", CurrentLocationSpan);
}
break;
case 298: // class_or_interface_keyword -> tkTemplate, tkRecord
{
CurrentSemanticValue.ti = NewClassOrInterfaceKeyword(ValueStack[ValueStack.Depth-2].ti, "r", CurrentLocationSpan);
}
break;
case 299: // class_or_interface_keyword -> tkTemplate, tkInterface
{
CurrentSemanticValue.ti = NewClassOrInterfaceKeyword(ValueStack[ValueStack.Depth-2].ti, "i", CurrentLocationSpan);
}
break;
case 300: // optional_component_list_seq_end -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 301: // optional_component_list_seq_end -> member_list_section, tkEnd
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn;
CurrentSemanticValue.stn.source_context = CurrentLocationSpan;
}
break;
case 303: // optional_base_classes -> tkRoundOpen, base_classes_names_list, tkRoundClose
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; }
break;
case 304: // 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 305: // 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 306: // base_class_name -> simple_type_identifier
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].td; }
break;
case 307: // base_class_name -> template_type
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].td; }
break;
case 308: // template_arguments -> tkLower, ident_list, tkGreater
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn;
CurrentSemanticValue.stn.source_context = CurrentLocationSpan;
}
break;
case 309: // optional_where_section -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 310: // optional_where_section -> where_part_list
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 311: // where_part_list -> where_part
{
CurrentSemanticValue.stn = new where_definition_list(ValueStack[ValueStack.Depth-1].stn as where_definition, CurrentLocationSpan);
}
break;
case 312: // 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 313: // 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 314: // type_ref_and_secific_list -> type_ref_or_secific
{
CurrentSemanticValue.stn = new where_type_specificator_list(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan);
}
break;
case 315: // 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 316: // type_ref_or_secific -> type_ref
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 317: // type_ref_or_secific -> tkClass
{
CurrentSemanticValue.td = new declaration_specificator(DeclarationSpecificator.WhereDefClass, ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan);
}
break;
case 318: // type_ref_or_secific -> tkRecord
{
CurrentSemanticValue.td = new declaration_specificator(DeclarationSpecificator.WhereDefValueType, ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan);
}
break;
case 319: // type_ref_or_secific -> tkConstructor
{
CurrentSemanticValue.td = new declaration_specificator(DeclarationSpecificator.WhereDefConstructor, ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan);
}
break;
case 320: // member_list_section -> member_list
{
CurrentSemanticValue.stn = new class_body_list(ValueStack[ValueStack.Depth-1].stn as class_members, CurrentLocationSpan);
}
break;
case 321: // 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 322: // ot_visibility_specifier -> tkInternal
{ CurrentSemanticValue.stn = new access_modifer_node(access_modifer.internal_modifer, CurrentLocationSpan); }
break;
case 323: // ot_visibility_specifier -> tkPublic
{ CurrentSemanticValue.stn = new access_modifer_node(access_modifer.public_modifer, CurrentLocationSpan); }
break;
case 324: // ot_visibility_specifier -> tkProtected
{ CurrentSemanticValue.stn = new access_modifer_node(access_modifer.protected_modifer, CurrentLocationSpan); }
break;
case 325: // ot_visibility_specifier -> tkPrivate
{ CurrentSemanticValue.stn = new access_modifer_node(access_modifer.private_modifer, CurrentLocationSpan); }
break;
case 326: // member_list -> /* empty */
{ CurrentSemanticValue.stn = new class_members(); }
break;
case 327: // member_list -> field_or_const_definition_list, optional_semicolon
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; }
break;
case 328: // member_list -> method_decl_list
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 329: // 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 330: // ident_list -> identifier
{
CurrentSemanticValue.stn = new ident_list(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan);
}
break;
case 331: // 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 332: // optional_semicolon -> /* empty */
{ CurrentSemanticValue.ob = null; }
break;
case 333: // optional_semicolon -> tkSemiColon
{ CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-1].ti; }
break;
case 334: // field_or_const_definition_list -> field_or_const_definition
{
CurrentSemanticValue.stn = new class_members(ValueStack[ValueStack.Depth-1].stn as declaration, CurrentLocationSpan);
}
break;
case 335: // 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 336: // 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 337: // method_decl_list -> method_or_property_decl
{
CurrentSemanticValue.stn = new class_members(ValueStack[ValueStack.Depth-1].stn as declaration, CurrentLocationSpan);
}
break;
case 338: // 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 339: // method_or_property_decl -> method_decl_withattr
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 340: // method_or_property_decl -> property_definition
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 341: // simple_field_or_const_definition -> tkConst, only_const_decl
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
CurrentSemanticValue.stn.source_context = CurrentLocationSpan;
}
break;
case 342: // simple_field_or_const_definition -> field_definition
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 343: // 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 344: // class_or_static -> tkStatic
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 345: // class_or_static -> tkClass
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 346: // field_definition -> var_decl_part
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 347: // 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 348: // 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 349: // 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 350: // method_decl -> inclass_proc_func_decl
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 351: // method_decl -> inclass_constr_destr_decl
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 352: // 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 353: // method_header -> method_procfunc_header
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 354: // method_header -> constr_destr_header
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 355: // method_procfunc_header -> proc_func_header
{
CurrentSemanticValue.td = NewProcfuncHeading(ValueStack[ValueStack.Depth-1].td as procedure_header);
}
break;
case 356: // proc_func_header -> proc_header
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 357: // proc_func_header -> func_header
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 358: // 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 359: // 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 360: // 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 361: // optional_proc_name -> proc_name
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 362: // optional_proc_name -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 363: // qualified_identifier -> identifier
{ CurrentSemanticValue.stn = new method_name(null,null,ValueStack[ValueStack.Depth-1].id,null,CurrentLocationSpan); }
break;
case 364: // qualified_identifier -> visibility_specifier
{ CurrentSemanticValue.stn = new method_name(null,null,ValueStack[ValueStack.Depth-1].id,null,CurrentLocationSpan); }
break;
case 365: // 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 366: // 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 367: // 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 368: // 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 369: // 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 370: // 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 371: // 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 372: // 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 373: // 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 374: // optional_property_initialization -> tkAssign, expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 375: // optional_property_initialization -> /* empty */
{ CurrentSemanticValue.ex = null; }
break;
case 376: // array_defaultproperty -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 377: // array_defaultproperty -> tkDefault, tkSemiColon
{
CurrentSemanticValue.stn = new property_array_default();
CurrentSemanticValue.stn.source_context = CurrentLocationSpan;
}
break;
case 378: // 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 379: // property_parameter_list -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 380: // property_parameter_list -> tkSquareOpen, parameter_decl_list, tkSquareClose
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; }
break;
case 381: // parameter_decl_list -> parameter_decl
{
CurrentSemanticValue.stn = new property_parameter_list(ValueStack[ValueStack.Depth-1].stn as property_parameter, CurrentLocationSpan);
}
break;
case 382: // 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 383: // 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 384: // optional_read_expr -> expr_with_func_decl_lambda
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 385: // optional_read_expr -> /* empty */
{ CurrentSemanticValue.ex = null; }
break;
case 387: // 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 388: // 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 390: // 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 392: // 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 393: // var_decl -> var_decl_part, tkSemiColon
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; }
break;
case 396: // 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 397: // var_decl_part -> ident_list, tkAssign, expr
{
CurrentSemanticValue.stn = new var_def_statement(ValueStack[ValueStack.Depth-3].stn as ident_list, null, ValueStack[ValueStack.Depth-1].ex, definition_attribute.None, false, CurrentLocationSpan);
}
break;
case 398: // 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 399: // typed_var_init_expression -> typed_const_plus
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 400: // typed_var_init_expression -> expl_func_decl_lambda
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 401: // 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 402: // 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 403: // 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 404: // typed_const_plus -> typed_const
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 405: // typed_const_plus -> default_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 406: // 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 407: // 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 408: // 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 409: // 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 410: // 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],LocationStack[LocationStack.Depth-3]));
CurrentSemanticValue.stn = new procedure_definition(tmp as procedure_header, new block(null,new statement_list(ValueStack[ValueStack.Depth-2].stn as statement,LocationStack[LocationStack.Depth-2]),LocationStack[LocationStack.Depth-2]), CurrentLocationSpan);
if (parsertools.build_tree_for_formatter)
CurrentSemanticValue.stn = new short_func_definition(CurrentSemanticValue.stn as procedure_definition);
}
break;
case 411: // 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]), CurrentLocationSpan);
if (parsertools.build_tree_for_formatter)
CurrentSemanticValue.stn = new short_func_definition(CurrentSemanticValue.stn as procedure_definition);
}
break;
case 412: // proc_func_decl -> proc_func_decl_noclass
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 413: // 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 414: // 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 415: // 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 416: // 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 417: // 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 418: // 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 419: // 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 420: // 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 421: // inclass_proc_func_decl -> inclass_proc_func_decl_noclass
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
}
break;
case 422: // 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 423: // 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 424: // 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 425: // 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 426: // 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 427: // proc_func_external_block -> block
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 428: // proc_func_external_block -> external_block
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 429: // proc_name -> func_name
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 430: // func_name -> func_meth_name_ident
{
CurrentSemanticValue.stn = new method_name(null,null, ValueStack[ValueStack.Depth-1].id, null, CurrentLocationSpan);
}
break;
case 431: // 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 432: // func_class_name_ident -> func_name_with_template_args
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 433: // 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 434: // 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 435: // func_meth_name_ident -> func_name_with_template_args
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 436: // func_meth_name_ident -> operator_name_ident
{ CurrentSemanticValue.id = (ident)ValueStack[ValueStack.Depth-1].ex; }
break;
case 437: // 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 438: // func_name_with_template_args -> func_name_ident
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 439: // 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 440: // func_name_ident -> identifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 441: // 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 442: // 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 443: // 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 444: // 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 445: // external_block -> tkExternal, external_directive_ident, tkSemiColon
{
CurrentSemanticValue.stn = new external_directive(ValueStack[ValueStack.Depth-2].ex, null, CurrentLocationSpan);
}
break;
case 446: // external_block -> tkExternal, tkSemiColon
{
CurrentSemanticValue.stn = new external_directive(null, null, CurrentLocationSpan);
}
break;
case 447: // external_directive_ident -> identifier
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].id; }
break;
case 448: // external_directive_ident -> literal
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 449: // 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 450: // 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 451: // inclass_block -> external_block
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 452: // fp_list -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 453: // fp_list -> tkRoundOpen, tkRoundClose
{
CurrentSemanticValue.stn = null;
}
break;
case 454: // 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 455: // fp_sect_list -> fp_sect
{
CurrentSemanticValue.stn = new formal_parameters(ValueStack[ValueStack.Depth-1].stn as typed_parameters, CurrentLocationSpan);
}
break;
case 456: // 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 457: // 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 458: // 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 459: // 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 460: // 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 461: // 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 462: // 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 463: // 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 464: // 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 465: // param_name_list -> param_name
{
CurrentSemanticValue.stn = new ident_list(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan);
}
break;
case 466: // 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 467: // param_name -> identifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 468: // fptype -> type_ref
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 469: // fptype_noproctype -> simple_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 470: // fptype_noproctype -> string_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 471: // fptype_noproctype -> pointer_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 472: // fptype_noproctype -> structured_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 473: // fptype_noproctype -> template_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 474: // stmt -> unlabelled_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 475: // 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 476: // unlabelled_stmt -> /* empty */
{
CurrentSemanticValue.stn = new empty_statement();
CurrentSemanticValue.stn.source_context = null;
}
break;
case 477: // unlabelled_stmt -> assignment
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 478: // unlabelled_stmt -> proc_call
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 479: // unlabelled_stmt -> goto_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 480: // unlabelled_stmt -> compound_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 481: // unlabelled_stmt -> if_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 482: // unlabelled_stmt -> case_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 483: // unlabelled_stmt -> repeat_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 484: // unlabelled_stmt -> while_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 485: // unlabelled_stmt -> for_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 486: // unlabelled_stmt -> with_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 487: // unlabelled_stmt -> inherited_message
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 488: // unlabelled_stmt -> try_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 489: // unlabelled_stmt -> raise_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 490: // unlabelled_stmt -> foreach_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 491: // unlabelled_stmt -> var_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 492: // unlabelled_stmt -> expr_as_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 493: // unlabelled_stmt -> lock_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 494: // unlabelled_stmt -> yield_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 495: // unlabelled_stmt -> yield_sequence_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 496: // unlabelled_stmt -> loop_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 497: // unlabelled_stmt -> match_with
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 498: // 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 499: // yield_stmt -> tkYield, expr_l1
{
CurrentSemanticValue.stn = new yield_node(ValueStack[ValueStack.Depth-1].ex,CurrentLocationSpan);
}
break;
case 500: // yield_sequence_stmt -> tkYield, tkSequence, expr_l1
{
CurrentSemanticValue.stn = new yield_sequence_node(ValueStack[ValueStack.Depth-1].ex,CurrentLocationSpan);
}
break;
case 501: // var_stmt -> tkVar, var_decl_part
{
CurrentSemanticValue.stn = new var_statement(ValueStack[ValueStack.Depth-1].stn as var_def_statement, CurrentLocationSpan);
}
break;
case 502: // 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 503: // 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 504: // 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 505: // 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 506: // variable_list -> variable
{
CurrentSemanticValue.ob = new addressed_value_list(ValueStack[ValueStack.Depth-1].ex as addressed_value,LocationStack[LocationStack.Depth-1]);
}
break;
case 507: // 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 508: // var_ident_list -> tkVar, identifier
{
CurrentSemanticValue.ob = new ident_list(ValueStack[ValueStack.Depth-1].id,CurrentLocationSpan);
}
break;
case 509: // 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 510: // 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 511: // goto_stmt -> tkGoto, label_name
{
CurrentSemanticValue.stn = new goto_statement(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan);
}
break;
case 512: // 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 513: // stmt_list -> stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, LocationStack[LocationStack.Depth-1]);
}
break;
case 514: // 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 515: // 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 516: // 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 517: // 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 518: // 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 519: // pattern_cases -> pattern_case
{
CurrentSemanticValue.stn = new pattern_cases(ValueStack[ValueStack.Depth-1].stn as pattern_case);
}
break;
case 520: // 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 521: // 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 522: // pattern_case -> pattern_optional_var, tkColon, unlabelled_stmt
{
CurrentSemanticValue.stn = new pattern_case(ValueStack[ValueStack.Depth-3].stn as pattern_node, ValueStack[ValueStack.Depth-1].stn as statement, null, CurrentLocationSpan);
}
break;
case 523: // 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 524: // 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 525: // 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 526: // 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 527: // 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 528: // 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 529: // case_label_list -> case_label
{
CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 530: // 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 531: // case_label -> const_elem
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 532: // else_case -> /* empty */
{ CurrentSemanticValue.stn = null;}
break;
case 533: // else_case -> tkElse, stmt_list
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 534: // 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 535: // 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 536: // optional_tk_do -> tkDo
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 537: // optional_tk_do -> /* empty */
{ CurrentSemanticValue.ti = null; }
break;
case 538: // 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 539: // 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 540: // 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 541: // 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 542: // foreach_stmt_ident_dype_opt -> tkColon, type_ref
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 544: // 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 545: // optional_var -> tkVar
{ CurrentSemanticValue.ob = true; }
break;
case 546: // optional_var -> /* empty */
{ CurrentSemanticValue.ob = false; }
break;
case 548: // for_stmt_decl_or_assign -> tkColon, simple_type_identifier, tkAssign
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-2].td; }
break;
case 549: // for_cycle_type -> tkTo
{ CurrentSemanticValue.ob = for_cycle_type.to; }
break;
case 550: // for_cycle_type -> tkDownto
{ CurrentSemanticValue.ob = for_cycle_type.downto; }
break;
case 551: // 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 552: // inherited_message -> tkInherited
{
CurrentSemanticValue.stn = new inherited_message();
CurrentSemanticValue.stn.source_context = CurrentLocationSpan;
}
break;
case 553: // 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 554: // 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 555: // 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 556: // 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 557: // 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 558: // 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 559: // exception_handler_list -> exception_handler
{
CurrentSemanticValue.stn = new exception_handler_list(ValueStack[ValueStack.Depth-1].stn as exception_handler, CurrentLocationSpan);
}
break;
case 560: // 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 561: // exception_block_else_branch -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 562: // exception_block_else_branch -> tkElse, stmt_list
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 563: // 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 564: // exception_identifier -> exception_class_type_identifier
{
CurrentSemanticValue.stn = new exception_ident(null, (named_type_reference)ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan);
}
break;
case 565: // 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 566: // exception_class_type_identifier -> simple_type_identifier
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 567: // exception_variable -> identifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 568: // raise_stmt -> tkRaise
{
CurrentSemanticValue.stn = new raise_stmt();
CurrentSemanticValue.stn.source_context = CurrentLocationSpan;
}
break;
case 569: // raise_stmt -> tkRaise, expr
{
CurrentSemanticValue.stn = new raise_stmt(ValueStack[ValueStack.Depth-1].ex, null, CurrentLocationSpan);
}
break;
case 570: // expr_list -> expr_with_func_decl_lambda
{
CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 571: // 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 572: // expr_as_stmt -> allowable_expr_as_stmt
{
CurrentSemanticValue.stn = new expression_as_statement(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 573: // allowable_expr_as_stmt -> new_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 574: // expr_with_func_decl_lambda -> expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 575: // expr_with_func_decl_lambda -> func_decl_lambda
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 576: // expr -> expr_l1
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 577: // expr -> format_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 578: // expr_l1 -> expr_dq
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 579: // expr_l1 -> question_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 580: // expr_l1_func_decl_lambda -> expr_l1
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 581: // expr_l1_func_decl_lambda -> func_decl_lambda
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 582: // expr_dq -> relop_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 583: // 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 584: // 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 585: // 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 586: // 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 587: // question_expr -> expr_l1, tkQuestion, expr_l1, tkColon, expr_l1
{
if (ValueStack[ValueStack.Depth-3].ex is nil_const && ValueStack[ValueStack.Depth-1].ex is nil_const)
parsertools.AddErrorFromResource("TWO_NILS_IN_QUESTION_EXPR",LocationStack[LocationStack.Depth-3]);
CurrentSemanticValue.ex = new question_colon_expression(ValueStack[ValueStack.Depth-5].ex, ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 588: // 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 589: // 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 590: // simple_or_template_type_reference -> simple_type_identifier
{
CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td;
}
break;
case 591: // 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 592: // 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 593: // optional_array_initializer -> tkRoundOpen, typed_const_list, tkRoundClose
{
CurrentSemanticValue.stn = new array_const((expression_list)ValueStack[ValueStack.Depth-2].stn, CurrentLocationSpan);
}
break;
case 595: // 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 596: // 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 597: // 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 598: // 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 599: // 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 600: // 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 601: // 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 602: // optional_expr_list_with_bracket -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 603: // optional_expr_list_with_bracket -> tkRoundOpen, optional_expr_list,
// tkRoundClose
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; }
break;
case 604: // relop_expr -> simple_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 605: // 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 606: // relop_expr -> is_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_deconstructor_parameter>, isTypeCheck.type_def, CurrentLocationSpan);
CurrentSemanticValue.ex = new is_pattern_expr(isTypeCheck.expr, deconstructorPattern, CurrentLocationSpan);
}
break;
case 607: // 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_deconstructor_parameter>, ValueStack[ValueStack.Depth-4].td, CurrentLocationSpan);
}
break;
case 608: // 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_deconstructor_parameter>, ValueStack[ValueStack.Depth-4].td, CurrentLocationSpan);
}
break;
case 609: // pattern_out_param_list_optional_var -> pattern_out_param_optional_var
{
CurrentSemanticValue.ob = new List<pattern_deconstructor_parameter>();
(CurrentSemanticValue.ob as List<pattern_deconstructor_parameter>).Add(ValueStack[ValueStack.Depth-1].stn as pattern_deconstructor_parameter);
}
break;
case 610: // 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_deconstructor_parameter>;
list.Add(ValueStack[ValueStack.Depth-1].stn as pattern_deconstructor_parameter);
CurrentSemanticValue.ob = list;
}
break;
case 611: // 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_deconstructor_parameter>;
list.Add(ValueStack[ValueStack.Depth-1].stn as pattern_deconstructor_parameter);
CurrentSemanticValue.ob = list;
}
break;
case 612: // pattern_out_param_list -> pattern_out_param
{
CurrentSemanticValue.ob = new List<pattern_deconstructor_parameter>();
(CurrentSemanticValue.ob as List<pattern_deconstructor_parameter>).Add(ValueStack[ValueStack.Depth-1].stn as pattern_deconstructor_parameter);
}
break;
case 613: // pattern_out_param_list -> pattern_out_param_list, tkSemiColon,
// pattern_out_param
{
var list = ValueStack[ValueStack.Depth-3].ob as List<pattern_deconstructor_parameter>;
list.Add(ValueStack[ValueStack.Depth-1].stn as pattern_deconstructor_parameter);
CurrentSemanticValue.ob = list;
}
break;
case 614: // pattern_out_param_list -> pattern_out_param_list, tkComma, pattern_out_param
{
var list = ValueStack[ValueStack.Depth-3].ob as List<pattern_deconstructor_parameter>;
list.Add(ValueStack[ValueStack.Depth-1].stn as pattern_deconstructor_parameter);
CurrentSemanticValue.ob = list;
}
break;
case 615: // pattern_out_param -> tkVar, identifier, tkColon, type_ref
{
CurrentSemanticValue.stn = new var_deconstructor_parameter(ValueStack[ValueStack.Depth-3].id, ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan);
}
break;
case 616: // pattern_out_param -> tkVar, identifier
{
CurrentSemanticValue.stn = new var_deconstructor_parameter(ValueStack[ValueStack.Depth-1].id, null, CurrentLocationSpan);
}
break;
case 617: // pattern_out_param -> pattern
{
CurrentSemanticValue.stn = new recursive_deconstructor_parameter(ValueStack[ValueStack.Depth-1].stn as pattern_node, CurrentLocationSpan);
}
break;
case 618: // 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, CurrentLocationSpan);
}
break;
case 619: // pattern_out_param_optional_var -> identifier
{
CurrentSemanticValue.stn = new var_deconstructor_parameter(ValueStack[ValueStack.Depth-1].id, null, CurrentLocationSpan);
}
break;
case 620: // 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, CurrentLocationSpan);
}
break;
case 621: // pattern_out_param_optional_var -> tkVar, identifier
{
CurrentSemanticValue.stn = new var_deconstructor_parameter(ValueStack[ValueStack.Depth-1].id, null, CurrentLocationSpan);
}
break;
case 622: // 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 623: // simple_expr_or_nothing -> simple_expr
{
CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex;
}
break;
case 624: // simple_expr_or_nothing -> /* empty */
{
CurrentSemanticValue.ex = null;
}
break;
case 625: // const_expr_or_nothing -> const_expr
{
CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex;
}
break;
case 626: // const_expr_or_nothing -> /* empty */
{
CurrentSemanticValue.ex = null;
}
break;
case 627: // 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 628: // format_expr -> tkColon, simple_expr_or_nothing
{
CurrentSemanticValue.ex = new format_expr(null, ValueStack[ValueStack.Depth-1].ex, null, CurrentLocationSpan);
}
break;
case 629: // 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 630: // 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 631: // 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 632: // format_const_expr -> tkColon, const_expr_or_nothing
{
CurrentSemanticValue.ex = new format_expr(null, ValueStack[ValueStack.Depth-1].ex, null, CurrentLocationSpan);
}
break;
case 633: // 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 634: // 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 635: // relop -> tkEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 636: // relop -> tkNotEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 637: // relop -> tkLower
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 638: // relop -> tkGreater
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 639: // relop -> tkLowerEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 640: // relop -> tkGreaterEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 641: // relop -> tkIn
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 642: // simple_expr -> term
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 643: // simple_expr -> simple_expr, addop, term
{
CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan);
}
break;
case 644: // addop -> tkPlus
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 645: // addop -> tkMinus
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 646: // addop -> tkOr
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 647: // addop -> tkXor
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 648: // addop -> tkCSharpStyleOr
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 649: // typecast_op -> tkAs
{
CurrentSemanticValue.ob = op_typecast.as_op;
}
break;
case 650: // typecast_op -> tkIs
{
CurrentSemanticValue.ob = op_typecast.is_op;
}
break;
case 651: // as_is_expr -> is_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 652: // as_is_expr -> as_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 653: // 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 654: // is_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 655: // simple_term -> factor
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 656: // 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 657: // term -> factor
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 658: // term -> new_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 659: // term -> power_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 660: // 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 661: // 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 662: // term -> as_is_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 663: // mulop -> tkStar
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 664: // mulop -> tkSlash
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 665: // mulop -> tkDiv
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 666: // mulop -> tkMod
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 667: // mulop -> tkShl
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 668: // mulop -> tkShr
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 669: // mulop -> tkAnd
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 670: // 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 671: // 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 672: // factor -> tkNil
{
CurrentSemanticValue.ex = new nil_const();
CurrentSemanticValue.ex.source_context = CurrentLocationSpan;
}
break;
case 673: // factor -> literal_or_number
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 674: // factor -> default_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 675: // factor -> tkSquareOpen, elem_list, tkSquareClose
{
CurrentSemanticValue.ex = new pascal_set_constant(ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan);
}
break;
case 676: // factor -> tkNot, factor
{
CurrentSemanticValue.ex = new un_expr(ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan);
}
break;
case 677: // 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 678: // factor -> var_reference
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 679: // factor -> tuple
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 680: // literal_or_number -> literal
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 681: // literal_or_number -> unsigned_number
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 682: // 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 683: // 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 684: // 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 685: // var_reference -> variable
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 686: // var_reference -> var_question_point
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 687: // var_address -> tkAddressOf
{
CurrentSemanticValue.stn = NewVarAddress(CurrentLocationSpan);
}
break;
case 688: // var_address -> var_address, tkAddressOf
{
CurrentSemanticValue.stn = NewVarAddress(ValueStack[ValueStack.Depth-2].stn as get_address, CurrentLocationSpan);
}
break;
case 689: // 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 690: // 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 691: // dotted_identifier -> identifier
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].id; }
break;
case 692: // 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 693: // variable_as_type -> dotted_identifier
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex;}
break;
case 694: // 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 695: // variable_or_literal_or_number -> variable
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 696: // variable_or_literal_or_number -> literal_or_number
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 697: // variable -> identifier
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].id; }
break;
case 698: // variable -> operator_name_ident
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 699: // variable -> tkInherited, identifier
{
CurrentSemanticValue.ex = new inherited_ident(ValueStack[ValueStack.Depth-1].id.name, CurrentLocationSpan);
}
break;
case 700: // 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 701: // variable -> sizeof_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 702: // variable -> typeof_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 703: // 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 704: // 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 705: // 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 706: // 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 707: // 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 708: // 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 709: // variable -> variable, tkDeref
{
CurrentSemanticValue.ex = new roof_dereference(ValueStack[ValueStack.Depth-2].ex as addressed_value,CurrentLocationSpan);
}
break;
case 710: // 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 711: // optional_expr_list -> expr_list
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 712: // optional_expr_list -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 713: // elem_list -> elem_list1
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 714: // elem_list -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 715: // elem_list1 -> elem
{
CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 716: // 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 717: // elem -> expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 718: // elem -> expr, tkDotDot, expr
{ CurrentSemanticValue.ex = new diapason_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); }
break;
case 719: // one_literal -> tkStringLiteral
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].stn as literal; }
break;
case 720: // one_literal -> tkAsciiChar
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].stn as literal; }
break;
case 721: // literal -> literal_list
{
CurrentSemanticValue.ex = NewLiteral(ValueStack[ValueStack.Depth-1].stn as literal_const_line);
}
break;
case 722: // 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 723: // literal_list -> one_literal
{
CurrentSemanticValue.stn = new literal_const_line(ValueStack[ValueStack.Depth-1].ex as literal, CurrentLocationSpan);
}
break;
case 724: // 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 725: // 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 726: // optional_method_modificators -> tkSemiColon
{
CurrentSemanticValue.stn = new procedure_attributes_list(new List<procedure_attribute>(),CurrentLocationSpan);
}
break;
case 727: // 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 728: // optional_method_modificators1 -> /* empty */
{
CurrentSemanticValue.stn = new procedure_attributes_list(new List<procedure_attribute>(),CurrentLocationSpan);
}
break;
case 729: // 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 730: // meth_modificators -> meth_modificator
{
CurrentSemanticValue.stn = new procedure_attributes_list(ValueStack[ValueStack.Depth-1].id as procedure_attribute, CurrentLocationSpan);
}
break;
case 731: // 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 732: // identifier -> tkIdentifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 733: // identifier -> property_specifier_directives
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 734: // identifier -> non_reserved
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 735: // identifier_or_keyword -> identifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 736: // identifier_or_keyword -> keyword
{ CurrentSemanticValue.id = new ident(ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan); }
break;
case 737: // identifier_or_keyword -> reserved_keyword
{ CurrentSemanticValue.id = new ident(ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan); }
break;
case 738: // identifier_keyword_operatorname -> identifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 739: // identifier_keyword_operatorname -> keyword
{ CurrentSemanticValue.id = new ident(ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan); }
break;
case 740: // identifier_keyword_operatorname -> operator_name_ident
{ CurrentSemanticValue.id = (ident)ValueStack[ValueStack.Depth-1].ex; }
break;
case 741: // meth_modificator -> tkAbstract
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 742: // 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 743: // meth_modificator -> tkReintroduce
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 744: // meth_modificator -> tkOverride
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 745: // meth_modificator -> tkExtensionMethod
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 746: // meth_modificator -> tkVirtual
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 747: // property_modificator -> tkVirtual
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 748: // property_modificator -> tkOverride
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 749: // property_modificator -> tkAbstract
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 750: // property_specifier_directives -> tkRead
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 751: // property_specifier_directives -> tkWrite
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 752: // non_reserved -> tkName
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 753: // non_reserved -> tkNew
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 754: // visibility_specifier -> tkInternal
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 755: // visibility_specifier -> tkPublic
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 756: // visibility_specifier -> tkProtected
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 757: // visibility_specifier -> tkPrivate
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 758: // keyword -> visibility_specifier
{
CurrentSemanticValue.ti = new token_info(ValueStack[ValueStack.Depth-1].id.name, CurrentLocationSpan);
}
break;
case 759: // keyword -> tkSealed
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 760: // keyword -> tkTemplate
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 761: // keyword -> tkOr
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 762: // keyword -> tkTypeOf
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 763: // keyword -> tkSizeOf
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 764: // keyword -> tkDefault
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 765: // keyword -> tkWhere
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 766: // keyword -> tkXor
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 767: // keyword -> tkAnd
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 768: // keyword -> tkDiv
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 769: // keyword -> tkMod
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 770: // keyword -> tkShl
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 771: // keyword -> tkShr
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 772: // keyword -> tkNot
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 773: // keyword -> tkAs
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 774: // keyword -> tkIn
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 775: // keyword -> tkIs
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 776: // keyword -> tkArray
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 777: // keyword -> tkSequence
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 778: // keyword -> tkBegin
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 779: // keyword -> tkCase
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 780: // keyword -> tkClass
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 781: // keyword -> tkConst
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 782: // keyword -> tkConstructor
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 783: // keyword -> tkDestructor
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 784: // keyword -> tkDownto
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 785: // keyword -> tkDo
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 786: // keyword -> tkElse
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 787: // keyword -> tkExcept
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 788: // keyword -> tkFile
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 789: // keyword -> tkAuto
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 790: // keyword -> tkFinalization
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 791: // keyword -> tkFinally
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 792: // keyword -> tkFor
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 793: // keyword -> tkForeach
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 794: // keyword -> tkFunction
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 795: // keyword -> tkIf
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 796: // keyword -> tkImplementation
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 797: // keyword -> tkInherited
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 798: // keyword -> tkInitialization
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 799: // keyword -> tkInterface
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 800: // keyword -> tkProcedure
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 801: // keyword -> tkProperty
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 802: // keyword -> tkRaise
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 803: // keyword -> tkRecord
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 804: // keyword -> tkRepeat
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 805: // keyword -> tkSet
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 806: // keyword -> tkTry
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 807: // keyword -> tkType
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 808: // keyword -> tkStatic
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 809: // keyword -> tkThen
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 810: // keyword -> tkTo
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 811: // keyword -> tkUntil
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 812: // keyword -> tkUses
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 813: // keyword -> tkVar
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 814: // keyword -> tkWhile
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 815: // keyword -> tkWith
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 816: // keyword -> tkNil
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 817: // keyword -> tkGoto
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 818: // keyword -> tkOf
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 819: // keyword -> tkLabel
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 820: // keyword -> tkProgram
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 821: // keyword -> tkUnit
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 822: // keyword -> tkLibrary
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 823: // keyword -> tkNamespace
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 824: // keyword -> tkExternal
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 825: // keyword -> tkParams
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 826: // keyword -> tkEvent
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 827: // keyword -> tkYield
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 828: // keyword -> tkMatch
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 829: // keyword -> tkWhen
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 830: // reserved_keyword -> tkOperator
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 831: // reserved_keyword -> tkEnd
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 832: // overload_operator -> tkMinus
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 833: // overload_operator -> tkPlus
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 834: // overload_operator -> tkSlash
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 835: // overload_operator -> tkStar
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 836: // overload_operator -> tkEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 837: // overload_operator -> tkGreater
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 838: // overload_operator -> tkGreaterEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 839: // overload_operator -> tkLower
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 840: // overload_operator -> tkLowerEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 841: // overload_operator -> tkNotEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 842: // overload_operator -> tkOr
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 843: // overload_operator -> tkXor
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 844: // overload_operator -> tkAnd
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 845: // overload_operator -> tkDiv
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 846: // overload_operator -> tkMod
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 847: // overload_operator -> tkShl
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 848: // overload_operator -> tkShr
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 849: // overload_operator -> tkNot
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 850: // overload_operator -> tkIn
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 851: // overload_operator -> tkImplicit
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 852: // overload_operator -> tkExplicit
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 853: // overload_operator -> assign_operator
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 854: // overload_operator -> tkStarStar
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 855: // assign_operator -> tkAssign
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 856: // assign_operator -> tkPlusEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 857: // assign_operator -> tkMinusEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 858: // assign_operator -> tkMultEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 859: // assign_operator -> tkDivEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 860: // func_decl_lambda -> identifier, tkArrow, lambda_function_body
{
var idList = new ident_list(ValueStack[ValueStack.Depth-3].id, LocationStack[LocationStack.Depth-3]);
var formalPars = new formal_parameters(new typed_parameters(idList, new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), LocationStack[LocationStack.Depth-3]), parametr_kind.none, null, LocationStack[LocationStack.Depth-3]), LocationStack[LocationStack.Depth-3]);
CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), LocationStack[LocationStack.Depth-3]), ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan);
}
break;
case 861: // func_decl_lambda -> tkRoundOpen, tkRoundClose, lambda_type_ref_noproctype,
// tkArrow, lambda_function_body
{
CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), null, ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan);
}
break;
case 862: // func_decl_lambda -> tkRoundOpen, identifier, tkColon, fptype, tkRoundClose,
// lambda_type_ref_noproctype, tkArrow, lambda_function_body
{
var idList = new ident_list(ValueStack[ValueStack.Depth-7].id, LocationStack[LocationStack.Depth-7]);
var loc = LexLocation.MergeAll(LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5]);
var formalPars = new formal_parameters(new typed_parameters(idList, ValueStack[ValueStack.Depth-5].td, parametr_kind.none, null, loc), loc);
CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan);
}
break;
case 863: // func_decl_lambda -> tkRoundOpen, identifier, tkSemiColon, full_lambda_fp_list,
// tkRoundClose, lambda_type_ref_noproctype, tkArrow,
// lambda_function_body
{
var idList = new ident_list(ValueStack[ValueStack.Depth-7].id, LocationStack[LocationStack.Depth-7]);
var formalPars = new formal_parameters(new typed_parameters(idList, new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), null), parametr_kind.none, null, LocationStack[LocationStack.Depth-7]), LexLocation.MergeAll(LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5]));
for (int i = 0; i < (ValueStack[ValueStack.Depth-5].stn as formal_parameters).Count; i++)
formalPars.Add((ValueStack[ValueStack.Depth-5].stn as formal_parameters).params_list[i]);
CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan);
}
break;
case 864: // func_decl_lambda -> tkRoundOpen, identifier, tkColon, fptype, tkSemiColon,
// full_lambda_fp_list, tkRoundClose,
// lambda_type_ref_noproctype, tkArrow, lambda_function_body
{
var idList = new ident_list(ValueStack[ValueStack.Depth-9].id, LocationStack[LocationStack.Depth-9]);
var loc = LexLocation.MergeAll(LocationStack[LocationStack.Depth-9],LocationStack[LocationStack.Depth-8],LocationStack[LocationStack.Depth-7]);
var formalPars = new formal_parameters(new typed_parameters(idList, ValueStack[ValueStack.Depth-7].td, parametr_kind.none, null, loc), LexLocation.MergeAll(LocationStack[LocationStack.Depth-9],LocationStack[LocationStack.Depth-8],LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5]));
for (int i = 0; i < (ValueStack[ValueStack.Depth-5].stn as formal_parameters).Count; i++)
formalPars.Add((ValueStack[ValueStack.Depth-5].stn as formal_parameters).params_list[i]);
CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan);
}
break;
case 865: // func_decl_lambda -> tkRoundOpen, expr_l1, tkComma, expr_l1_list,
// lambda_type_ref, optional_full_lambda_fp_list,
// tkRoundClose, rem_lambda
{
var pair = ValueStack[ValueStack.Depth-1].ob as pair_type_stlist;
if (ValueStack[ValueStack.Depth-4].td is lambda_inferred_type)
{
var formal_pars = new formal_parameters();
var idd = ValueStack[ValueStack.Depth-7].ex as ident;
if (idd==null)
parsertools.AddErrorFromResource("ONE_TKIDENTIFIER",LocationStack[LocationStack.Depth-7]);
var lambda_inf_type = new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), null);
var new_typed_pars = new typed_parameters(new ident_list(idd, idd.source_context), lambda_inf_type, parametr_kind.none, null, idd.source_context);
formal_pars.Add(new_typed_pars);
foreach (var id in (ValueStack[ValueStack.Depth-5].stn as expression_list).expressions)
{
var idd1 = id as ident;
if (idd1==null)
parsertools.AddErrorFromResource("ONE_TKIDENTIFIER",id.source_context);
lambda_inf_type = new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), null);
new_typed_pars = new typed_parameters(new ident_list(idd1, idd1.source_context), lambda_inf_type, parametr_kind.none, null, idd1.source_context);
formal_pars.Add(new_typed_pars);
}
if (ValueStack[ValueStack.Depth-3].stn != null)
for (int i = 0; i < (ValueStack[ValueStack.Depth-3].stn as formal_parameters).Count; i++)
formal_pars.Add((ValueStack[ValueStack.Depth-3].stn as formal_parameters).params_list[i]);
formal_pars.source_context = LexLocation.MergeAll(LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5],LocationStack[LocationStack.Depth-4]);
CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formal_pars, pair.tn, pair.exprs, CurrentLocationSpan);
}
else
{
var loc = LexLocation.MergeAll(LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5]);
var idd = ValueStack[ValueStack.Depth-7].ex as ident;
if (idd==null)
parsertools.AddErrorFromResource("ONE_TKIDENTIFIER",LocationStack[LocationStack.Depth-7]);
var idList = new ident_list(idd, loc);
var iddlist = (ValueStack[ValueStack.Depth-5].stn as expression_list).expressions;
for (int j = 0; j < iddlist.Count; j++)
{
var idd2 = iddlist[j] as ident;
if (idd2==null)
parsertools.AddErrorFromResource("ONE_TKIDENTIFIER",idd2.source_context);
idList.Add(idd2);
}
var parsType = ValueStack[ValueStack.Depth-4].td;
var formalPars = new formal_parameters(new typed_parameters(idList, parsType, parametr_kind.none, null, loc), LexLocation.MergeAll(LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5],LocationStack[LocationStack.Depth-4],LocationStack[LocationStack.Depth-3]));
if (ValueStack[ValueStack.Depth-3].stn != null)
for (int i = 0; i < (ValueStack[ValueStack.Depth-3].stn as formal_parameters).Count; i++)
formalPars.Add((ValueStack[ValueStack.Depth-3].stn as formal_parameters).params_list[i]);
CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, pair.tn, pair.exprs, CurrentLocationSpan);
}
}
break;
case 866: // func_decl_lambda -> expl_func_decl_lambda
{
CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex;
}
break;
case 867: // optional_full_lambda_fp_list -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 868: // optional_full_lambda_fp_list -> tkSemiColon, full_lambda_fp_list
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
}
break;
case 869: // 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 870: // expl_func_decl_lambda -> tkFunction, lambda_type_ref, tkArrow,
// lambda_function_body
{
CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), null, ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].stn as statement_list, 1, CurrentLocationSpan);
}
break;
case 871: // expl_func_decl_lambda -> tkFunction, tkRoundOpen, tkRoundClose, lambda_type_ref,
// tkArrow, lambda_function_body
{
CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), null, ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].stn as statement_list, 1, CurrentLocationSpan);
}
break;
case 872: // expl_func_decl_lambda -> tkFunction, tkRoundOpen, full_lambda_fp_list,
// tkRoundClose, lambda_type_ref, tkArrow,
// lambda_function_body
{
CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), ValueStack[ValueStack.Depth-5].stn as formal_parameters, ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].stn as statement_list, 1, CurrentLocationSpan);
}
break;
case 873: // 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 874: // 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 875: // 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 876: // 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 877: // 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 878: // 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 879: // lambda_type_ref -> /* empty */
{
CurrentSemanticValue.td = new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), null);
}
break;
case 880: // lambda_type_ref -> tkColon, fptype
{
CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td;
}
break;
case 881: // lambda_type_ref_noproctype -> /* empty */
{
CurrentSemanticValue.td = new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), null);
}
break;
case 882: // lambda_type_ref_noproctype -> tkColon, fptype_noproctype
{
CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td;
}
break;
case 883: // common_lambda_body -> compound_stmt
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
}
break;
case 884: // common_lambda_body -> if_stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 885: // common_lambda_body -> while_stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 886: // common_lambda_body -> repeat_stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 887: // common_lambda_body -> for_stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 888: // common_lambda_body -> foreach_stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 889: // common_lambda_body -> loop_stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 890: // common_lambda_body -> case_stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 891: // common_lambda_body -> try_stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 892: // common_lambda_body -> lock_stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 893: // common_lambda_body -> yield_stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 894: // common_lambda_body -> raise_stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 895: // lambda_function_body -> expr_l1
{
var id = SyntaxVisitors.ExprHasNameVisitor.HasName(ValueStack[ValueStack.Depth-1].ex, "Result");
if (id != null)
{
parsertools.AddErrorFromResource("RESULT_IDENT_NOT_EXPECTED_IN_THIS_CONTEXT", id.source_context);
}
var sl = new statement_list(new assign("result",ValueStack[ValueStack.Depth-1].ex,CurrentLocationSpan),CurrentLocationSpan); // <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 896: // lambda_function_body -> common_lambda_body
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
}
break;
case 897: // lambda_procedure_body -> proc_call
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 898: // lambda_procedure_body -> assignment
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 899: // 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);
}
}
}