pascalabcnet/Parsers/PascalABCParserNewSaushkin/ABCPascalYacc.cs

6691 lines
468 KiB
C#
Raw Blame History

// (see accompanying GPPGcopyright.rtf)
// GPPG version 1.3.6
// Machine: DESKTOP-A6LT9RI
// DateTime: 16.09.2018 5:06:06
// UserName: ?????????
// Input file <ABCPascal.y>
// options: no-lines gplex
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Text;
using QUT.Gppg;
using PascalABCCompiler.SyntaxTree;
using PascalABCSavParser;
using PascalABCCompiler.ParserTools;
using PascalABCCompiler.Errors;
using System.Linq;
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,tkConst=24,
tkConstructor=25,tkDestructor=26,tkElse=27,tkExcept=28,tkFile=29,tkFor=30,
tkForeach=31,tkFunction=32,tkMatch=33,tkWhen=34,tkIf=35,tkImplementation=36,
tkInherited=37,tkInterface=38,tkProcedure=39,tkOperator=40,tkProperty=41,tkRaise=42,
tkRecord=43,tkSet=44,tkType=45,tkThen=46,tkUses=47,tkVar=48,
tkWhile=49,tkWith=50,tkNil=51,tkGoto=52,tkOf=53,tkLabel=54,
tkLock=55,tkProgram=56,tkEvent=57,tkDefault=58,tkTemplate=59,tkPacked=60,
tkExports=61,tkResourceString=62,tkThreadvar=63,tkSealed=64,tkPartial=65,tkTo=66,
tkDownto=67,tkLoop=68,tkSequence=69,tkYield=70,tkNew=71,tkOn=72,
tkName=73,tkPrivate=74,tkProtected=75,tkPublic=76,tkInternal=77,tkRead=78,
tkWrite=79,tkParseModeExpression=80,tkParseModeStatement=81,tkParseModeType=82,tkBegin=83,tkEnd=84,
tkAsmBody=85,tkILCode=86,tkError=87,INVISIBLE=88,tkRepeat=89,tkUntil=90,
tkDo=91,tkComma=92,tkFinally=93,tkTry=94,tkInitialization=95,tkFinalization=96,
tkUnit=97,tkLibrary=98,tkExternal=99,tkParams=100,tkNamespace=101,tkAssign=102,
tkPlusEqual=103,tkMinusEqual=104,tkMultEqual=105,tkDivEqual=106,tkMinus=107,tkPlus=108,
tkSlash=109,tkStar=110,tkStarStar=111,tkEqual=112,tkGreater=113,tkGreaterEqual=114,
tkLower=115,tkLowerEqual=116,tkNotEqual=117,tkCSharpStyleOr=118,tkArrow=119,tkOr=120,
tkXor=121,tkAnd=122,tkDiv=123,tkMod=124,tkShl=125,tkShr=126,
tkNot=127,tkAs=128,tkIn=129,tkIs=130,tkImplicit=131,tkExplicit=132,
tkAddressOf=133,tkDeref=134,tkIdentifier=135,tkStringLiteral=136,tkFormatStringLiteral=137,tkAsciiChar=138,
tkAbstract=139,tkForward=140,tkOverload=141,tkReintroduce=142,tkOverride=143,tkVirtual=144,
tkExtensionMethod=145,tkInteger=146,tkFloat=147,tkHex=148};
// 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[884];
private static State[] states = new State[1451];
private static string[] nonTerms = new string[] {
"parse_goal", "unit_key_word", "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", "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", "const_func_expr_list",
"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", "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", "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_prim_property_definition",
"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", "foreach_stmt_ident_dype_opt", "fptype", "type_ref", "fptype_noproctype",
"array_type", "template_param", "structured_type", "unpacked_structured_type",
"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_type_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_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", "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[]{56,1361,11,760,80,1436,82,1438,81,1445,3,-24,47,-24,83,-24,54,-24,24,-24,62,-24,45,-24,48,-24,57,-24,39,-24,32,-24,22,-24,25,-24,26,-24,97,-199,98,-199,101,-199},new int[]{-1,1,-216,3,-217,4,-282,1373,-5,1374,-231,872,-158,1435});
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,1357,47,-11,83,-11,54,-11,24,-11,62,-11,45,-11,48,-11,57,-11,11,-11,39,-11,32,-11,22,-11,25,-11,26,-11},new int[]{-168,5,-169,1355,-167,1360});
states[5] = new State(-35,new int[]{-280,6});
states[6] = new State(new int[]{47,14,54,-59,24,-59,62,-59,45,-59,48,-59,57,-59,11,-59,39,-59,32,-59,22,-59,25,-59,26,-59,83,-59},new int[]{-15,7,-32,113,-36,1292,-37,1293});
states[7] = new State(new int[]{7,9,10,10,5,11,92,12,6,13,2,-23},new int[]{-171,8});
states[8] = new State(-17);
states[9] = new State(-18);
states[10] = new State(-19);
states[11] = new State(-20);
states[12] = new State(-21);
states[13] = new State(-22);
states[14] = new State(new int[]{135,23,78,25,79,26,73,28,71,29,77,32,76,33,75,34,74,35,64,36,59,37,120,38,18,39,17,40,58,41,19,42,121,43,122,44,123,45,124,46,125,47,126,48,127,49,128,50,129,51,130,52,20,53,69,54,83,55,21,56,22,57,24,58,25,59,26,60,67,61,91,62,27,63,28,64,29,65,23,66,96,67,93,68,30,69,31,70,32,71,35,72,36,73,37,74,95,75,38,76,39,77,41,78,42,79,43,80,89,81,44,82,94,83,45,84,46,85,66,86,90,87,47,88,48,89,49,90,50,91,51,92,52,93,53,94,54,95,56,96,97,97,98,98,101,99,99,100,100,101,57,102,70,103,33,104,34,105,40,107,84,108},new int[]{-281,15,-283,112,-139,19,-120,111,-129,22,-133,24,-134,27,-272,30,-132,31,-273,106});
states[15] = new State(new int[]{10,16,92,17});
states[16] = new State(-36);
states[17] = new State(new int[]{135,23,78,25,79,26,73,28,71,29,77,32,76,33,75,34,74,35,64,36,59,37,120,38,18,39,17,40,58,41,19,42,121,43,122,44,123,45,124,46,125,47,126,48,127,49,128,50,129,51,130,52,20,53,69,54,83,55,21,56,22,57,24,58,25,59,26,60,67,61,91,62,27,63,28,64,29,65,23,66,96,67,93,68,30,69,31,70,32,71,35,72,36,73,37,74,95,75,38,76,39,77,41,78,42,79,43,80,89,81,44,82,94,83,45,84,46,85,66,86,90,87,47,88,48,89,49,90,50,91,51,92,52,93,53,94,54,95,56,96,97,97,98,98,101,99,99,100,100,101,57,102,70,103,33,104,34,105,40,107,84,108},new int[]{-283,18,-139,19,-120,111,-129,22,-133,24,-134,27,-272,30,-132,31,-273,106});
states[18] = new State(-38);
states[19] = new State(new int[]{7,20,129,109,10,-39,92,-39});
states[20] = new State(new int[]{135,23,78,25,79,26,73,28,71,29,77,32,76,33,75,34,74,35,64,36,59,37,120,38,18,39,17,40,58,41,19,42,121,43,122,44,123,45,124,46,125,47,126,48,127,49,128,50,129,51,130,52,20,53,69,54,83,55,21,56,22,57,24,58,25,59,26,60,67,61,91,62,27,63,28,64,29,65,23,66,96,67,93,68,30,69,31,70,32,71,35,72,36,73,37,74,95,75,38,76,39,77,41,78,42,79,43,80,89,81,44,82,94,83,45,84,46,85,66,86,90,87,47,88,48,89,49,90,50,91,51,92,52,93,53,94,54,95,56,96,97,97,98,98,101,99,99,100,100,101,57,102,70,103,33,104,34,105,40,107,84,108},new int[]{-120,21,-129,22,-133,24,-134,27,-272,30,-132,31,-273,106});
states[21] = new State(-34);
states[22] = new State(-713);
states[23] = new State(-710);
states[24] = new State(-711);
states[25] = new State(-728);
states[26] = new State(-729);
states[27] = new State(-712);
states[28] = new State(-730);
states[29] = new State(-731);
states[30] = new State(-714);
states[31] = new State(-736);
states[32] = new State(-732);
states[33] = new State(-733);
states[34] = new State(-734);
states[35] = new State(-735);
states[36] = new State(-737);
states[37] = new State(-738);
states[38] = new State(-739);
states[39] = new State(-740);
states[40] = new State(-741);
states[41] = new State(-742);
states[42] = new State(-743);
states[43] = new State(-744);
states[44] = new State(-745);
states[45] = new State(-746);
states[46] = new State(-747);
states[47] = new State(-748);
states[48] = new State(-749);
states[49] = new State(-750);
states[50] = new State(-751);
states[51] = new State(-752);
states[52] = new State(-753);
states[53] = new State(-754);
states[54] = new State(-755);
states[55] = new State(-756);
states[56] = new State(-757);
states[57] = new State(-758);
states[58] = new State(-759);
states[59] = new State(-760);
states[60] = new State(-761);
states[61] = new State(-762);
states[62] = new State(-763);
states[63] = new State(-764);
states[64] = new State(-765);
states[65] = new State(-766);
states[66] = new State(-767);
states[67] = new State(-768);
states[68] = new State(-769);
states[69] = new State(-770);
states[70] = new State(-771);
states[71] = new State(-772);
states[72] = new State(-773);
states[73] = new State(-774);
states[74] = new State(-775);
states[75] = new State(-776);
states[76] = new State(-777);
states[77] = new State(-778);
states[78] = new State(-779);
states[79] = new State(-780);
states[80] = new State(-781);
states[81] = new State(-782);
states[82] = new State(-783);
states[83] = new State(-784);
states[84] = new State(-785);
states[85] = new State(-786);
states[86] = new State(-787);
states[87] = new State(-788);
states[88] = new State(-789);
states[89] = new State(-790);
states[90] = new State(-791);
states[91] = new State(-792);
states[92] = new State(-793);
states[93] = new State(-794);
states[94] = new State(-795);
states[95] = new State(-796);
states[96] = new State(-797);
states[97] = new State(-798);
states[98] = new State(-799);
states[99] = new State(-800);
states[100] = new State(-801);
states[101] = new State(-802);
states[102] = new State(-803);
states[103] = new State(-804);
states[104] = new State(-805);
states[105] = new State(-806);
states[106] = new State(-715);
states[107] = new State(-807);
states[108] = new State(-808);
states[109] = new State(new int[]{136,110});
states[110] = new State(-40);
states[111] = new State(-33);
states[112] = new State(-37);
states[113] = new State(new int[]{83,115},new int[]{-236,114});
states[114] = new State(-31);
states[115] = new State(new int[]{133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,516,8,517,17,243,18,248,136,148,138,149,137,151,146,577,148,154,147,578,52,555,83,115,35,545,21,563,89,580,49,585,30,590,50,600,94,606,42,613,31,616,48,624,55,650,70,659,68,665,33,670,84,-465,10,-465},new int[]{-233,116,-243,575,-242,120,-3,121,-99,122,-114,346,-98,353,-129,576,-133,24,-134,27,-174,359,-238,437,-274,438,-13,551,-147,145,-149,146,-148,150,-14,152,-52,552,-102,445,-194,553,-115,554,-236,560,-135,561,-30,562,-228,579,-293,584,-106,589,-294,599,-142,604,-279,605,-229,612,-105,615,-289,623,-53,654,-157,655,-156,656,-151,657,-108,658,-109,663,-107,664,-315,669,-125,911});
states[116] = new State(new int[]{84,117,10,118});
states[117] = new State(-501);
states[118] = new State(new int[]{133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,516,8,517,17,243,18,248,136,148,138,149,137,151,146,577,148,154,147,578,52,555,83,115,35,545,21,563,89,580,49,585,30,590,50,600,94,606,42,613,31,616,48,624,55,650,70,659,68,665,33,670,84,-465,10,-465,90,-465,93,-465,28,-465,96,-465},new int[]{-243,119,-242,120,-3,121,-99,122,-114,346,-98,353,-129,576,-133,24,-134,27,-174,359,-238,437,-274,438,-13,551,-147,145,-149,146,-148,150,-14,152,-52,552,-102,445,-194,553,-115,554,-236,560,-135,561,-30,562,-228,579,-293,584,-106,589,-294,599,-142,604,-279,605,-229,612,-105,615,-289,623,-53,654,-157,655,-156,656,-151,657,-108,658,-109,663,-107,664,-315,669,-125,911});
states[119] = new State(-503);
states[120] = new State(-463);
states[121] = new State(-466);
states[122] = new State(new int[]{102,384,103,385,104,386,105,387,106,388,84,-499,10,-499,90,-499,93,-499,28,-499,96,-499,27,-499,92,-499,12,-499,9,-499,91,-499,79,-499,78,-499,2,-499,77,-499,76,-499,75,-499,74,-499},new int[]{-177,123});
states[123] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,772,17,243,18,248,5,527,32,827,39,841},new int[]{-81,124,-80,125,-90,126,-89,131,-88,301,-92,309,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,538,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525,-104,526,-297,825,-298,826});
states[124] = new State(-493);
states[125] = new State(-563);
states[126] = new State(new int[]{13,127,84,-565,10,-565,90,-565,93,-565,28,-565,96,-565,27,-565,92,-565,12,-565,9,-565,91,-565,79,-565,78,-565,2,-565,77,-565,76,-565,75,-565,74,-565,6,-565});
states[127] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248},new int[]{-90,128,-89,131,-88,301,-92,542,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525});
states[128] = new State(new int[]{5,129,13,127});
states[129] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248},new int[]{-90,130,-89,131,-88,301,-92,542,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525});
states[130] = new State(new int[]{13,127,84,-575,10,-575,90,-575,93,-575,28,-575,96,-575,27,-575,92,-575,12,-575,9,-575,91,-575,79,-575,78,-575,2,-575,77,-575,76,-575,75,-575,74,-575,5,-575,6,-575,46,-575,53,-575,133,-575,135,-575,73,-575,71,-575,40,-575,37,-575,8,-575,17,-575,18,-575,136,-575,138,-575,137,-575,146,-575,148,-575,147,-575,52,-575,83,-575,35,-575,21,-575,89,-575,49,-575,30,-575,50,-575,94,-575,42,-575,31,-575,48,-575,55,-575,70,-575,68,-575,33,-575,66,-575,67,-575});
states[131] = new State(new int[]{15,132,13,-567,84,-567,10,-567,90,-567,93,-567,28,-567,96,-567,27,-567,92,-567,12,-567,9,-567,91,-567,79,-567,78,-567,2,-567,77,-567,76,-567,75,-567,74,-567,5,-567,6,-567,46,-567,53,-567,133,-567,135,-567,73,-567,71,-567,40,-567,37,-567,8,-567,17,-567,18,-567,136,-567,138,-567,137,-567,146,-567,148,-567,147,-567,52,-567,83,-567,35,-567,21,-567,89,-567,49,-567,30,-567,50,-567,94,-567,42,-567,31,-567,48,-567,55,-567,70,-567,68,-567,33,-567,66,-567,67,-567});
states[132] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248},new int[]{-88,133,-92,542,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524});
states[133] = new State(new int[]{112,302,117,303,115,304,113,305,116,306,114,307,129,308,15,-572,13,-572,84,-572,10,-572,90,-572,93,-572,28,-572,96,-572,27,-572,92,-572,12,-572,9,-572,91,-572,79,-572,78,-572,2,-572,77,-572,76,-572,75,-572,74,-572,5,-572,6,-572,46,-572,53,-572,133,-572,135,-572,73,-572,71,-572,40,-572,37,-572,8,-572,17,-572,18,-572,136,-572,138,-572,137,-572,146,-572,148,-572,147,-572,52,-572,83,-572,35,-572,21,-572,89,-572,49,-572,30,-572,50,-572,94,-572,42,-572,31,-572,48,-572,55,-572,70,-572,68,-572,33,-572,66,-572,67,-572},new int[]{-179,134});
states[134] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248},new int[]{-92,135,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,531,-249,524});
states[135] = new State(new int[]{108,314,107,315,120,316,121,317,118,318,112,-591,117,-591,115,-591,113,-591,116,-591,114,-591,129,-591,15,-591,13,-591,84,-591,10,-591,90,-591,93,-591,28,-591,96,-591,27,-591,92,-591,12,-591,9,-591,91,-591,79,-591,78,-591,2,-591,77,-591,76,-591,75,-591,74,-591,5,-591,6,-591,46,-591,53,-591,133,-591,135,-591,73,-591,71,-591,40,-591,37,-591,8,-591,17,-591,18,-591,136,-591,138,-591,137,-591,146,-591,148,-591,147,-591,52,-591,83,-591,35,-591,21,-591,89,-591,49,-591,30,-591,50,-591,94,-591,42,-591,31,-591,48,-591,55,-591,70,-591,68,-591,33,-591,66,-591,67,-591},new int[]{-180,136});
states[136] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248},new int[]{-75,137,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,531,-249,524});
states[137] = new State(new int[]{130,320,128,322,110,324,109,325,123,326,124,327,125,328,126,329,122,330,5,-623,108,-623,107,-623,120,-623,121,-623,118,-623,112,-623,117,-623,115,-623,113,-623,116,-623,114,-623,129,-623,15,-623,13,-623,84,-623,10,-623,90,-623,93,-623,28,-623,96,-623,27,-623,92,-623,12,-623,9,-623,91,-623,79,-623,78,-623,2,-623,77,-623,76,-623,75,-623,74,-623,6,-623,46,-623,53,-623,133,-623,135,-623,73,-623,71,-623,40,-623,37,-623,8,-623,17,-623,18,-623,136,-623,138,-623,137,-623,146,-623,148,-623,147,-623,52,-623,83,-623,35,-623,21,-623,89,-623,49,-623,30,-623,50,-623,94,-623,42,-623,31,-623,48,-623,55,-623,70,-623,68,-623,33,-623,66,-623,67,-623},new int[]{-181,138});
states[138] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,29,40,360,37,390,8,392,17,243,18,248},new int[]{-87,139,-250,140,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-76,448});
states[139] = new State(new int[]{130,-640,128,-640,110,-640,109,-640,123,-640,124,-640,125,-640,126,-640,122,-640,5,-640,108,-640,107,-640,120,-640,121,-640,118,-640,112,-640,117,-640,115,-640,113,-640,116,-640,114,-640,129,-640,15,-640,13,-640,84,-640,10,-640,90,-640,93,-640,28,-640,96,-640,27,-640,92,-640,12,-640,9,-640,91,-640,79,-640,78,-640,2,-640,77,-640,76,-640,75,-640,74,-640,6,-640,46,-640,53,-640,133,-640,135,-640,73,-640,71,-640,40,-640,37,-640,8,-640,17,-640,18,-640,136,-640,138,-640,137,-640,146,-640,148,-640,147,-640,52,-640,83,-640,35,-640,21,-640,89,-640,49,-640,30,-640,50,-640,94,-640,42,-640,31,-640,48,-640,55,-640,70,-640,68,-640,33,-640,66,-640,67,-640,111,-635});
states[140] = new State(-641);
states[141] = new State(-652);
states[142] = new State(new int[]{7,143,130,-653,128,-653,110,-653,109,-653,123,-653,124,-653,125,-653,126,-653,122,-653,5,-653,108,-653,107,-653,120,-653,121,-653,118,-653,112,-653,117,-653,115,-653,113,-653,116,-653,114,-653,129,-653,15,-653,13,-653,84,-653,10,-653,90,-653,93,-653,28,-653,96,-653,27,-653,92,-653,12,-653,9,-653,91,-653,79,-653,78,-653,2,-653,77,-653,76,-653,75,-653,74,-653,111,-653,6,-653,46,-653,53,-653,133,-653,135,-653,73,-653,71,-653,40,-653,37,-653,8,-653,17,-653,18,-653,136,-653,138,-653,137,-653,146,-653,148,-653,147,-653,52,-653,83,-653,35,-653,21,-653,89,-653,49,-653,30,-653,50,-653,94,-653,42,-653,31,-653,48,-653,55,-653,70,-653,68,-653,33,-653,66,-653,67,-653});
states[143] = new State(new int[]{135,23,78,25,79,26,73,28,71,29,77,32,76,33,75,34,74,35,64,36,59,37,120,38,18,39,17,40,58,41,19,42,121,43,122,44,123,45,124,46,125,47,126,48,127,49,128,50,129,51,130,52,20,53,69,54,83,55,21,56,22,57,24,58,25,59,26,60,67,61,91,62,27,63,28,64,29,65,23,66,96,67,93,68,30,69,31,70,32,71,35,72,36,73,37,74,95,75,38,76,39,77,41,78,42,79,43,80,89,81,44,82,94,83,45,84,46,85,66,86,90,87,47,88,48,89,49,90,50,91,51,92,52,93,53,94,54,95,56,96,97,97,98,98,101,99,99,100,100,101,57,102,70,103,33,104,34,105,40,107,84,108},new int[]{-120,144,-129,22,-133,24,-134,27,-272,30,-132,31,-273,106});
states[144] = new State(-681);
states[145] = new State(-660);
states[146] = new State(new int[]{136,148,138,149,7,-699,130,-699,128,-699,110,-699,109,-699,123,-699,124,-699,125,-699,126,-699,122,-699,5,-699,108,-699,107,-699,120,-699,121,-699,118,-699,112,-699,117,-699,115,-699,113,-699,116,-699,114,-699,129,-699,15,-699,13,-699,84,-699,10,-699,90,-699,93,-699,28,-699,96,-699,27,-699,92,-699,12,-699,9,-699,91,-699,79,-699,78,-699,2,-699,77,-699,76,-699,75,-699,74,-699,111,-699,6,-699,46,-699,53,-699,133,-699,135,-699,73,-699,71,-699,40,-699,37,-699,8,-699,17,-699,18,-699,137,-699,146,-699,148,-699,147,-699,52,-699,83,-699,35,-699,21,-699,89,-699,49,-699,30,-699,50,-699,94,-699,42,-699,31,-699,48,-699,55,-699,70,-699,68,-699,33,-699,66,-699,67,-699,119,-699,102,-699},new int[]{-148,147});
states[147] = new State(-702);
states[148] = new State(-697);
states[149] = new State(-698);
states[150] = new State(-701);
states[151] = new State(-700);
states[152] = new State(-661);
states[153] = new State(-176);
states[154] = new State(-177);
states[155] = new State(-178);
states[156] = new State(-654);
states[157] = new State(new int[]{8,158});
states[158] = new State(new int[]{135,23,78,25,79,26,73,28,71,29},new int[]{-263,159,-163,161,-129,195,-133,24,-134,27});
states[159] = new State(new int[]{9,160});
states[160] = new State(-650);
states[161] = new State(new int[]{7,162,4,165,115,167,9,-576,128,-576,130,-576,110,-576,109,-576,123,-576,124,-576,125,-576,126,-576,122,-576,108,-576,107,-576,120,-576,121,-576,112,-576,117,-576,113,-576,116,-576,114,-576,129,-576,13,-576,6,-576,92,-576,12,-576,5,-576,10,-576,84,-576,90,-576,93,-576,28,-576,96,-576,27,-576,91,-576,79,-576,78,-576,2,-576,77,-576,76,-576,75,-576,74,-576,11,-576,8,-576,118,-576,15,-576,46,-576,53,-576,133,-576,135,-576,73,-576,71,-576,40,-576,37,-576,17,-576,18,-576,136,-576,138,-576,137,-576,146,-576,148,-576,147,-576,52,-576,83,-576,35,-576,21,-576,89,-576,49,-576,30,-576,50,-576,94,-576,42,-576,31,-576,48,-576,55,-576,70,-576,68,-576,33,-576,66,-576,67,-576,111,-576},new int[]{-277,164});
states[162] = new State(new int[]{135,23,78,25,79,26,73,28,71,29,77,32,76,33,75,34,74,35,64,36,59,37,120,38,18,39,17,40,58,41,19,42,121,43,122,44,123,45,124,46,125,47,126,48,127,49,128,50,129,51,130,52,20,53,69,54,83,55,21,56,22,57,24,58,25,59,26,60,67,61,91,62,27,63,28,64,29,65,23,66,96,67,93,68,30,69,31,70,32,71,35,72,36,73,37,74,95,75,38,76,39,77,41,78,42,79,43,80,89,81,44,82,94,83,45,84,46,85,66,86,90,87,47,88,48,89,49,90,50,91,51,92,52,93,53,94,54,95,56,96,97,97,98,98,101,99,99,100,100,101,57,102,70,103,33,104,34,105,40,107,84,108},new int[]{-120,163,-129,22,-133,24,-134,27,-272,30,-132,31,-273,106});
states[163] = new State(-241);
states[164] = new State(-577);
states[165] = new State(new int[]{115,167},new int[]{-277,166});
states[166] = new State(-578);
states[167] = new State(new int[]{135,23,78,25,79,26,73,28,71,29,146,153,148,154,147,155,108,269,107,270,136,148,138,149,137,151,8,471,20,480,43,488,44,697,29,701,69,705,60,708,39,713,32,728},new int[]{-276,168,-260,1291,-254,172,-84,174,-93,414,-94,415,-163,416,-129,195,-133,24,-134,27,-14,466,-182,467,-147,470,-149,146,-148,150,-261,737,-262,478,-259,479,-252,486,-26,487,-245,696,-112,700,-113,704,-208,738,-206,711,-205,712,-278,739});
states[168] = new State(new int[]{113,169,92,170});
states[169] = new State(-220);
states[170] = new State(new int[]{135,23,78,25,79,26,73,28,71,29,146,153,148,154,147,155,108,269,107,270,136,148,138,149,137,151,8,471,20,480,43,488,44,697,29,701,69,705,60,708,39,713,32,728},new int[]{-260,171,-254,172,-84,174,-93,414,-94,415,-163,416,-129,195,-133,24,-134,27,-14,466,-182,467,-147,470,-149,146,-148,150,-261,737,-262,478,-259,479,-252,486,-26,487,-245,696,-112,700,-113,704,-208,738,-206,711,-205,712,-278,739});
states[171] = new State(-222);
states[172] = new State(new int[]{13,173,113,-223,92,-223,10,-223,9,-223,119,-223,112,-223,102,-223,84,-223,90,-223,93,-223,28,-223,96,-223,27,-223,12,-223,91,-223,79,-223,78,-223,2,-223,77,-223,76,-223,75,-223,74,-223,129,-223});
states[173] = new State(-224);
states[174] = new State(new int[]{6,1289,108,1276,107,1277,120,1278,121,1279,13,-228,113,-228,92,-228,10,-228,9,-228,119,-228,112,-228,102,-228,84,-228,90,-228,93,-228,28,-228,96,-228,27,-228,12,-228,91,-228,79,-228,78,-228,2,-228,77,-228,76,-228,75,-228,74,-228,129,-228},new int[]{-176,175});
states[175] = new State(new int[]{135,23,78,25,79,26,73,28,71,29,146,153,148,154,147,155,108,269,107,270,136,148,138,149,137,151},new int[]{-93,176,-94,415,-163,469,-129,195,-133,24,-134,27,-14,466,-182,467,-147,470,-149,146,-148,150});
states[176] = new State(new int[]{110,216,109,217,123,218,124,219,125,220,126,221,122,222,6,-232,108,-232,107,-232,120,-232,121,-232,13,-232,113,-232,92,-232,10,-232,9,-232,119,-232,112,-232,102,-232,84,-232,90,-232,93,-232,28,-232,96,-232,27,-232,12,-232,91,-232,79,-232,78,-232,2,-232,77,-232,76,-232,75,-232,74,-232,129,-232},new int[]{-178,177});
states[177] = new State(new int[]{135,23,78,25,79,26,73,28,71,29,146,153,148,154,147,155,108,269,107,270,136,148,138,149,137,151},new int[]{-94,178,-163,469,-129,195,-133,24,-134,27,-14,466,-182,467,-147,470,-149,146,-148,150});
states[178] = new State(new int[]{8,179,110,-234,109,-234,123,-234,124,-234,125,-234,126,-234,122,-234,6,-234,108,-234,107,-234,120,-234,121,-234,13,-234,113,-234,92,-234,10,-234,9,-234,119,-234,112,-234,102,-234,84,-234,90,-234,93,-234,28,-234,96,-234,27,-234,12,-234,91,-234,79,-234,78,-234,2,-234,77,-234,76,-234,75,-234,74,-234,129,-234});
states[179] = new State(new int[]{135,23,78,25,79,26,73,28,71,225,37,240,17,243,18,248,11,253,146,153,148,154,147,155,136,148,138,149,137,151,51,259,133,260,8,262,127,265,108,269,107,270,9,-171},new int[]{-68,180,-65,182,-85,256,-82,185,-74,190,-11,213,-9,223,-12,200,-129,224,-133,24,-134,27,-238,242,-274,247,-221,252,-14,257,-147,258,-149,146,-148,150,-182,267,-156,271,-247,272,-251,273,-223,274});
states[180] = new State(new int[]{9,181});
states[181] = new State(-239);
states[182] = new State(new int[]{92,183,9,-170,12,-170});
states[183] = new State(new int[]{135,23,78,25,79,26,73,28,71,225,37,240,17,243,18,248,11,253,146,153,148,154,147,155,136,148,138,149,137,151,51,259,133,260,8,262,127,265,108,269,107,270},new int[]{-85,184,-82,185,-74,190,-11,213,-9,223,-12,200,-129,224,-133,24,-134,27,-238,242,-274,247,-221,252,-14,257,-147,258,-149,146,-148,150,-182,267,-156,271,-247,272,-251,273,-223,274});
states[184] = new State(-173);
states[185] = new State(new int[]{13,186,6,1287,92,-174,9,-174,12,-174,5,-174});
states[186] = new State(new int[]{135,23,78,25,79,26,73,28,71,225,37,240,17,243,18,248,11,253,146,153,148,154,147,155,136,148,138,149,137,151,51,259,133,260,8,262,127,265,108,269,107,270},new int[]{-82,187,-74,190,-11,213,-9,223,-12,200,-129,224,-133,24,-134,27,-238,242,-274,247,-221,252,-14,257,-147,258,-149,146,-148,150,-182,267,-156,271,-247,272,-251,273,-223,274});
states[187] = new State(new int[]{5,188,13,186});
states[188] = new State(new int[]{135,23,78,25,79,26,73,28,71,225,37,240,17,243,18,248,11,253,146,153,148,154,147,155,136,148,138,149,137,151,51,259,133,260,8,262,127,265,108,269,107,270},new int[]{-82,189,-74,190,-11,213,-9,223,-12,200,-129,224,-133,24,-134,27,-238,242,-274,247,-221,252,-14,257,-147,258,-149,146,-148,150,-182,267,-156,271,-247,272,-251,273,-223,274});
states[189] = new State(new int[]{13,186,6,-115,92,-115,9,-115,12,-115,5,-115,10,-115,84,-115,90,-115,93,-115,28,-115,96,-115,27,-115,91,-115,79,-115,78,-115,2,-115,77,-115,76,-115,75,-115,74,-115});
states[190] = new State(new int[]{108,1276,107,1277,120,1278,121,1279,112,1280,117,1281,115,1282,113,1283,116,1284,114,1285,129,1286,13,-112,6,-112,92,-112,9,-112,12,-112,5,-112,10,-112,84,-112,90,-112,93,-112,28,-112,96,-112,27,-112,91,-112,79,-112,78,-112,2,-112,77,-112,76,-112,75,-112,74,-112},new int[]{-176,191,-175,1274});
states[191] = new State(new int[]{135,23,78,25,79,26,73,28,71,225,37,240,17,243,18,248,11,253,146,153,148,154,147,155,136,148,138,149,137,151,51,259,133,260,8,262,127,265,108,269,107,270},new int[]{-11,192,-9,223,-12,200,-129,224,-133,24,-134,27,-238,242,-274,247,-221,252,-14,257,-147,258,-149,146,-148,150,-182,267,-156,271,-247,272,-251,273});
states[192] = new State(new int[]{128,214,130,215,110,216,109,217,123,218,124,219,125,220,126,221,122,222,108,-124,107,-124,120,-124,121,-124,112,-124,117,-124,115,-124,113,-124,116,-124,114,-124,129,-124,13,-124,6,-124,92,-124,9,-124,12,-124,5,-124,10,-124,84,-124,90,-124,93,-124,28,-124,96,-124,27,-124,91,-124,79,-124,78,-124,2,-124,77,-124,76,-124,75,-124,74,-124},new int[]{-184,193,-178,196});
states[193] = new State(new int[]{135,23,78,25,79,26,73,28,71,29},new int[]{-263,194,-163,161,-129,195,-133,24,-134,27});
states[194] = new State(-129);
states[195] = new State(-240);
states[196] = new State(new int[]{135,23,78,25,79,26,73,28,71,225,37,240,17,243,18,248,11,253,146,153,148,154,147,155,136,148,138,149,137,151,51,259,133,260,8,262,127,265,108,269,107,270},new int[]{-9,197,-251,1273,-12,200,-129,224,-133,24,-134,27,-238,242,-274,247,-221,252,-14,257,-147,258,-149,146,-148,150,-182,267,-156,271});
states[197] = new State(new int[]{111,198,128,-134,130,-134,110,-134,109,-134,123,-134,124,-134,125,-134,126,-134,122,-134,108,-134,107,-134,120,-134,121,-134,112,-134,117,-134,115,-134,113,-134,116,-134,114,-134,129,-134,13,-134,6,-134,92,-134,9,-134,12,-134,5,-134,10,-134,84,-134,90,-134,93,-134,28,-134,96,-134,27,-134,91,-134,79,-134,78,-134,2,-134,77,-134,76,-134,75,-134,74,-134});
states[198] = new State(new int[]{135,23,78,25,79,26,73,28,71,225,37,240,17,243,18,248,11,253,146,153,148,154,147,155,136,148,138,149,137,151,51,259,133,260,8,262,127,265,108,269,107,270},new int[]{-9,199,-12,200,-129,224,-133,24,-134,27,-238,242,-274,247,-221,252,-14,257,-147,258,-149,146,-148,150,-182,267,-156,271});
states[199] = new State(-130);
states[200] = new State(new int[]{4,202,7,204,134,206,8,207,11,1270,111,-143,128,-143,130,-143,110,-143,109,-143,123,-143,124,-143,125,-143,126,-143,122,-143,108,-143,107,-143,120,-143,121,-143,112,-143,117,-143,115,-143,113,-143,116,-143,114,-143,129,-143,13,-143,6,-143,92,-143,9,-143,12,-143,5,-143,10,-143,84,-143,90,-143,93,-143,28,-143,96,-143,27,-143,91,-143,79,-143,78,-143,2,-143,77,-143,76,-143,75,-143,74,-143},new int[]{-10,201});
states[201] = new State(-160);
states[202] = new State(new int[]{115,167},new int[]{-277,203});
states[203] = new State(-161);
states[204] = new State(new int[]{135,23,78,25,79,26,73,28,71,29,77,32,76,33,75,34,74,35,64,36,59,37,120,38,18,39,17,40,58,41,19,42,121,43,122,44,123,45,124,46,125,47,126,48,127,49,128,50,129,51,130,52,20,53,69,54,83,55,21,56,22,57,24,58,25,59,26,60,67,61,91,62,27,63,28,64,29,65,23,66,96,67,93,68,30,69,31,70,32,71,35,72,36,73,37,74,95,75,38,76,39,77,41,78,42,79,43,80,89,81,44,82,94,83,45,84,46,85,66,86,90,87,47,88,48,89,49,90,50,91,51,92,52,93,53,94,54,95,56,96,97,97,98,98,101,99,99,100,100,101,57,102,70,103,33,104,34,105,40,107,84,108},new int[]{-120,205,-129,22,-133,24,-134,27,-272,30,-132,31,-273,106});
states[205] = new State(-162);
states[206] = new State(-163);
states[207] = new State(new int[]{135,23,78,25,79,26,73,28,71,225,37,240,17,243,18,248,11,253,146,153,148,154,147,155,136,148,138,149,137,151,51,259,133,260,8,262,127,265,108,269,107,270,9,-167},new int[]{-69,208,-66,210,-82,1269,-74,190,-11,213,-9,223,-12,200,-129,224,-133,24,-134,27,-238,242,-274,247,-221,252,-14,257,-147,258,-149,146,-148,150,-182,267,-156,271,-247,272,-251,273,-223,274});
states[208] = new State(new int[]{9,209});
states[209] = new State(-164);
states[210] = new State(new int[]{92,211,9,-166});
states[211] = new State(new int[]{135,23,78,25,79,26,73,28,71,225,37,240,17,243,18,248,11,253,146,153,148,154,147,155,136,148,138,149,137,151,51,259,133,260,8,262,127,265,108,269,107,270},new int[]{-82,212,-74,190,-11,213,-9,223,-12,200,-129,224,-133,24,-134,27,-238,242,-274,247,-221,252,-14,257,-147,258,-149,146,-148,150,-182,267,-156,271,-247,272,-251,273,-223,274});
states[212] = new State(new int[]{13,186,92,-169,9,-169});
states[213] = new State(new int[]{128,214,130,215,110,216,109,217,123,218,124,219,125,220,126,221,122,222,108,-123,107,-123,120,-123,121,-123,112,-123,117,-123,115,-123,113,-123,116,-123,114,-123,129,-123,13,-123,6,-123,92,-123,9,-123,12,-123,5,-123,10,-123,84,-123,90,-123,93,-123,28,-123,96,-123,27,-123,91,-123,79,-123,78,-123,2,-123,77,-123,76,-123,75,-123,74,-123},new int[]{-184,193,-178,196});
states[214] = new State(-629);
states[215] = new State(-630);
states[216] = new State(-136);
states[217] = new State(-137);
states[218] = new State(-138);
states[219] = new State(-139);
states[220] = new State(-140);
states[221] = new State(-141);
states[222] = new State(-142);
states[223] = new State(new int[]{111,198,128,-131,130,-131,110,-131,109,-131,123,-131,124,-131,125,-131,126,-131,122,-131,108,-131,107,-131,120,-131,121,-131,112,-131,117,-131,115,-131,113,-131,116,-131,114,-131,129,-131,13,-131,6,-131,92,-131,9,-131,12,-131,5,-131,10,-131,84,-131,90,-131,93,-131,28,-131,96,-131,27,-131,91,-131,79,-131,78,-131,2,-131,77,-131,76,-131,75,-131,74,-131});
states[224] = new State(-156);
states[225] = new State(new int[]{22,1258,135,23,78,25,79,26,73,28,71,29,11,-731,16,-731,8,-731,7,-731,134,-731,4,-731,14,-731,102,-731,103,-731,104,-731,105,-731,106,-731,84,-731,10,-731,5,-731,90,-731,93,-731,28,-731,96,-731,119,-731,130,-731,128,-731,110,-731,109,-731,123,-731,124,-731,125,-731,126,-731,122,-731,108,-731,107,-731,120,-731,121,-731,118,-731,112,-731,117,-731,115,-731,113,-731,116,-731,114,-731,129,-731,15,-731,13,-731,27,-731,92,-731,12,-731,9,-731,91,-731,2,-731,77,-731,76,-731,75,-731,74,-731,111,-731,6,-731,46,-731,53,-731,133,-731,40,-731,37,-731,17,-731,18,-731,136,-731,138,-731,137,-731,146,-731,148,-731,147,-731,52,-731,83,-731,35,-731,21,-731,89,-731,49,-731,30,-731,50,-731,94,-731,42,-731,31,-731,48,-731,55,-731,70,-731,68,-731,33,-731,66,-731,67,-731},new int[]{-263,226,-163,161,-129,195,-133,24,-134,27});
states[226] = new State(new int[]{11,228,8,769,84,-588,10,-588,90,-588,93,-588,28,-588,96,-588,130,-588,128,-588,110,-588,109,-588,123,-588,124,-588,125,-588,126,-588,122,-588,5,-588,108,-588,107,-588,120,-588,121,-588,118,-588,112,-588,117,-588,115,-588,113,-588,116,-588,114,-588,129,-588,15,-588,13,-588,27,-588,92,-588,12,-588,9,-588,91,-588,79,-588,78,-588,2,-588,77,-588,76,-588,75,-588,74,-588,6,-588,46,-588,53,-588,133,-588,135,-588,73,-588,71,-588,40,-588,37,-588,17,-588,18,-588,136,-588,138,-588,137,-588,146,-588,148,-588,147,-588,52,-588,83,-588,35,-588,21,-588,89,-588,49,-588,30,-588,50,-588,94,-588,42,-588,31,-588,48,-588,55,-588,70,-588,68,-588,33,-588,66,-588,67,-588,111,-588},new int[]{-63,227});
states[227] = new State(-581);
states[228] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,772,17,243,18,248,5,527,32,827,39,841,12,-690},new int[]{-61,229,-64,298,-81,351,-80,125,-90,126,-89,131,-88,301,-92,309,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,538,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525,-104,526,-297,825,-298,826});
states[229] = new State(new int[]{12,230});
states[230] = new State(new int[]{8,232,84,-580,10,-580,90,-580,93,-580,28,-580,96,-580,130,-580,128,-580,110,-580,109,-580,123,-580,124,-580,125,-580,126,-580,122,-580,5,-580,108,-580,107,-580,120,-580,121,-580,118,-580,112,-580,117,-580,115,-580,113,-580,116,-580,114,-580,129,-580,15,-580,13,-580,27,-580,92,-580,12,-580,9,-580,91,-580,79,-580,78,-580,2,-580,77,-580,76,-580,75,-580,74,-580,6,-580,46,-580,53,-580,133,-580,135,-580,73,-580,71,-580,40,-580,37,-580,17,-580,18,-580,136,-580,138,-580,137,-580,146,-580,148,-580,147,-580,52,-580,83,-580,35,-580,21,-580,89,-580,49,-580,30,-580,50,-580,94,-580,42,-580,31,-580,48,-580,55,-580,70,-580,68,-580,33,-580,66,-580,67,-580,111,-580},new int[]{-4,231});
states[231] = new State(-582);
states[232] = new State(new int[]{135,23,78,25,79,26,73,28,71,225,37,240,17,243,18,248,11,253,146,153,148,154,147,155,136,148,138,149,137,151,51,259,133,260,8,275,127,265,108,269,107,270,58,157,9,-185},new int[]{-60,233,-59,235,-78,286,-77,238,-82,239,-74,190,-11,213,-9,223,-12,200,-129,224,-133,24,-134,27,-238,242,-274,247,-221,252,-14,257,-147,258,-149,146,-148,150,-182,267,-156,271,-247,272,-251,273,-223,274,-86,294,-224,295,-51,287});
states[233] = new State(new int[]{9,234});
states[234] = new State(-579);
states[235] = new State(new int[]{92,236,9,-186});
states[236] = new State(new int[]{135,23,78,25,79,26,73,28,71,225,37,240,17,243,18,248,11,253,146,153,148,154,147,155,136,148,138,149,137,151,51,259,133,260,8,275,127,265,108,269,107,270,58,157},new int[]{-78,237,-77,238,-82,239,-74,190,-11,213,-9,223,-12,200,-129,224,-133,24,-134,27,-238,242,-274,247,-221,252,-14,257,-147,258,-149,146,-148,150,-182,267,-156,271,-247,272,-251,273,-223,274,-86,294,-224,295,-51,287});
states[237] = new State(-188);
states[238] = new State(-393);
states[239] = new State(new int[]{13,186,92,-179,9,-179,10,-179,84,-179,90,-179,93,-179,28,-179,96,-179,27,-179,12,-179,91,-179,79,-179,78,-179,2,-179,77,-179,76,-179,75,-179,74,-179});
states[240] = new State(new int[]{135,23,78,25,79,26,73,28,71,29},new int[]{-129,241,-133,24,-134,27});
states[241] = new State(-157);
states[242] = new State(-158);
states[243] = new State(new int[]{8,244});
states[244] = new State(new int[]{135,23,78,25,79,26,73,28,71,29},new int[]{-263,245,-163,161,-129,195,-133,24,-134,27});
states[245] = new State(new int[]{9,246});
states[246] = new State(-573);
states[247] = new State(-159);
states[248] = new State(new int[]{8,249});
states[249] = new State(new int[]{135,23,78,25,79,26,73,28,71,29},new int[]{-263,250,-163,161,-129,195,-133,24,-134,27});
states[250] = new State(new int[]{9,251});
states[251] = new State(-574);
states[252] = new State(-144);
states[253] = new State(new int[]{135,23,78,25,79,26,73,28,71,225,37,240,17,243,18,248,11,253,146,153,148,154,147,155,136,148,138,149,137,151,51,259,133,260,8,262,127,265,108,269,107,270,12,-171},new int[]{-68,254,-65,182,-85,256,-82,185,-74,190,-11,213,-9,223,-12,200,-129,224,-133,24,-134,27,-238,242,-274,247,-221,252,-14,257,-147,258,-149,146,-148,150,-182,267,-156,271,-247,272,-251,273,-223,274});
states[254] = new State(new int[]{12,255});
states[255] = new State(-153);
states[256] = new State(-172);
states[257] = new State(-145);
states[258] = new State(-146);
states[259] = new State(-147);
states[260] = new State(new int[]{135,23,78,25,79,26,73,28,71,225,37,240,17,243,18,248,11,253,146,153,148,154,147,155,136,148,138,149,137,151,51,259,133,260,8,262,127,265,108,269,107,270},new int[]{-9,261,-12,200,-129,224,-133,24,-134,27,-238,242,-274,247,-221,252,-14,257,-147,258,-149,146,-148,150,-182,267,-156,271});
states[261] = new State(-148);
states[262] = new State(new int[]{135,23,78,25,79,26,73,28,71,225,37,240,17,243,18,248,11,253,146,153,148,154,147,155,136,148,138,149,137,151,51,259,133,260,8,262,127,265,108,269,107,270},new int[]{-82,263,-74,190,-11,213,-9,223,-12,200,-129,224,-133,24,-134,27,-238,242,-274,247,-221,252,-14,257,-147,258,-149,146,-148,150,-182,267,-156,271,-247,272,-251,273,-223,274});
states[263] = new State(new int[]{9,264,13,186});
states[264] = new State(-149);
states[265] = new State(new int[]{135,23,78,25,79,26,73,28,71,225,37,240,17,243,18,248,11,253,146,153,148,154,147,155,136,148,138,149,137,151,51,259,133,260,8,262,127,265,108,269,107,270},new int[]{-9,266,-12,200,-129,224,-133,24,-134,27,-238,242,-274,247,-221,252,-14,257,-147,258,-149,146,-148,150,-182,267,-156,271});
states[266] = new State(-150);
states[267] = new State(new int[]{135,23,78,25,79,26,73,28,71,225,37,240,17,243,18,248,11,253,146,153,148,154,147,155,136,148,138,149,137,151,51,259,133,260,8,262,127,265,108,269,107,270},new int[]{-9,268,-12,200,-129,224,-133,24,-134,27,-238,242,-274,247,-221,252,-14,257,-147,258,-149,146,-148,150,-182,267,-156,271});
states[268] = new State(-151);
states[269] = new State(-154);
states[270] = new State(-155);
states[271] = new State(-152);
states[272] = new State(-132);
states[273] = new State(-133);
states[274] = new State(-114);
states[275] = new State(new int[]{135,23,78,25,79,26,73,28,71,225,37,240,17,243,18,248,11,253,146,153,148,154,147,155,136,148,138,149,137,151,51,259,133,260,8,275,127,265,108,269,107,270,58,157,9,-185},new int[]{-82,276,-60,277,-224,279,-86,281,-226,283,-74,190,-11,213,-9,223,-12,200,-129,285,-133,24,-134,27,-238,242,-274,247,-221,252,-14,257,-147,258,-149,146,-148,150,-182,267,-156,271,-247,272,-251,273,-223,274,-59,235,-78,286,-77,238,-51,287,-225,288,-227,297,-118,291});
states[276] = new State(new int[]{9,264,13,186,92,-179});
states[277] = new State(new int[]{9,278});
states[278] = new State(-182);
states[279] = new State(new int[]{9,280,92,-181});
states[280] = new State(-183);
states[281] = new State(new int[]{9,282,92,-180});
states[282] = new State(-184);
states[283] = new State(new int[]{9,284});
states[284] = new State(-189);
states[285] = new State(new int[]{4,-156,7,-156,134,-156,8,-156,11,-156,111,-156,128,-156,130,-156,110,-156,109,-156,123,-156,124,-156,125,-156,126,-156,122,-156,108,-156,107,-156,120,-156,121,-156,112,-156,117,-156,115,-156,113,-156,116,-156,114,-156,129,-156,9,-156,13,-156,92,-156,5,-195});
states[286] = new State(-187);
states[287] = new State(-394);
states[288] = new State(new int[]{10,289,9,-190});
states[289] = new State(new int[]{135,23,78,25,79,26,73,28,71,29,9,-191},new int[]{-227,290,-118,291,-129,296,-133,24,-134,27});
states[290] = new State(-193);
states[291] = new State(new int[]{5,292});
states[292] = new State(new int[]{135,23,78,25,79,26,73,28,71,225,37,240,17,243,18,248,11,253,146,153,148,154,147,155,136,148,138,149,137,151,51,259,133,260,8,275,127,265,108,269,107,270},new int[]{-77,293,-82,239,-74,190,-11,213,-9,223,-12,200,-129,224,-133,24,-134,27,-238,242,-274,247,-221,252,-14,257,-147,258,-149,146,-148,150,-182,267,-156,271,-247,272,-251,273,-223,274,-86,294,-224,295});
states[293] = new State(-194);
states[294] = new State(-180);
states[295] = new State(-181);
states[296] = new State(-195);
states[297] = new State(-192);
states[298] = new State(new int[]{92,299,12,-689,9,-689});
states[299] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,772,17,243,18,248,5,527,32,827,39,841},new int[]{-81,300,-80,125,-90,126,-89,131,-88,301,-92,309,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,538,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525,-104,526,-297,825,-298,826});
states[300] = new State(-560);
states[301] = new State(new int[]{112,302,117,303,115,304,113,305,116,306,114,307,129,308,15,-571,13,-571,84,-571,10,-571,90,-571,93,-571,28,-571,96,-571,27,-571,92,-571,12,-571,9,-571,91,-571,79,-571,78,-571,2,-571,77,-571,76,-571,75,-571,74,-571,5,-571,6,-571,46,-571,53,-571,133,-571,135,-571,73,-571,71,-571,40,-571,37,-571,8,-571,17,-571,18,-571,136,-571,138,-571,137,-571,146,-571,148,-571,147,-571,52,-571,83,-571,35,-571,21,-571,89,-571,49,-571,30,-571,50,-571,94,-571,42,-571,31,-571,48,-571,55,-571,70,-571,68,-571,33,-571,66,-571,67,-571},new int[]{-179,134});
states[302] = new State(-615);
states[303] = new State(-616);
states[304] = new State(-617);
states[305] = new State(-618);
states[306] = new State(-619);
states[307] = new State(-620);
states[308] = new State(-621);
states[309] = new State(new int[]{5,310,108,314,107,315,120,316,121,317,118,318,112,-590,117,-590,115,-590,113,-590,116,-590,114,-590,129,-590,15,-590,13,-590,84,-590,10,-590,90,-590,93,-590,28,-590,96,-590,27,-590,92,-590,12,-590,9,-590,91,-590,79,-590,78,-590,2,-590,77,-590,76,-590,75,-590,74,-590,6,-590},new int[]{-180,136});
states[310] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248,5,-610,84,-610,10,-610,90,-610,93,-610,28,-610,96,-610,27,-610,92,-610,12,-610,9,-610,91,-610,2,-610,77,-610,76,-610,75,-610,74,-610,6,-610},new int[]{-101,311,-92,532,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,531,-249,524});
states[311] = new State(new int[]{5,312,84,-611,10,-611,90,-611,93,-611,28,-611,96,-611,27,-611,92,-611,12,-611,9,-611,91,-611,79,-611,78,-611,2,-611,77,-611,76,-611,75,-611,74,-611,6,-611});
states[312] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248},new int[]{-92,313,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,531,-249,524});
states[313] = new State(new int[]{108,314,107,315,120,316,121,317,118,318,84,-613,10,-613,90,-613,93,-613,28,-613,96,-613,27,-613,92,-613,12,-613,9,-613,91,-613,79,-613,78,-613,2,-613,77,-613,76,-613,75,-613,74,-613,6,-613},new int[]{-180,136});
states[314] = new State(-624);
states[315] = new State(-625);
states[316] = new State(-626);
states[317] = new State(-627);
states[318] = new State(-628);
states[319] = new State(new int[]{130,320,128,322,110,324,109,325,123,326,124,327,125,328,126,329,122,330,5,-622,108,-622,107,-622,120,-622,121,-622,118,-622,112,-622,117,-622,115,-622,113,-622,116,-622,114,-622,129,-622,15,-622,13,-622,84,-622,10,-622,90,-622,93,-622,28,-622,96,-622,27,-622,92,-622,12,-622,9,-622,91,-622,79,-622,78,-622,2,-622,77,-622,76,-622,75,-622,74,-622,6,-622,46,-622,53,-622,133,-622,135,-622,73,-622,71,-622,40,-622,37,-622,8,-622,17,-622,18,-622,136,-622,138,-622,137,-622,146,-622,148,-622,147,-622,52,-622,83,-622,35,-622,21,-622,89,-622,49,-622,30,-622,50,-622,94,-622,42,-622,31,-622,48,-622,55,-622,70,-622,68,-622,33,-622,66,-622,67,-622},new int[]{-181,138});
states[320] = new State(new int[]{135,23,78,25,79,26,73,28,71,29},new int[]{-263,321,-163,161,-129,195,-133,24,-134,27});
states[321] = new State(-634);
states[322] = new State(new int[]{135,23,78,25,79,26,73,28,71,29},new int[]{-263,323,-163,161,-129,195,-133,24,-134,27});
states[323] = new State(-633);
states[324] = new State(-643);
states[325] = new State(-644);
states[326] = new State(-645);
states[327] = new State(-646);
states[328] = new State(-647);
states[329] = new State(-648);
states[330] = new State(-649);
states[331] = new State(new int[]{130,-637,128,-637,110,-637,109,-637,123,-637,124,-637,125,-637,126,-637,122,-637,5,-637,108,-637,107,-637,120,-637,121,-637,118,-637,112,-637,117,-637,115,-637,113,-637,116,-637,114,-637,129,-637,15,-637,13,-637,84,-637,10,-637,90,-637,93,-637,28,-637,96,-637,27,-637,92,-637,12,-637,9,-637,91,-637,79,-637,78,-637,2,-637,77,-637,76,-637,75,-637,74,-637,6,-637,46,-637,53,-637,133,-637,135,-637,73,-637,71,-637,40,-637,37,-637,8,-637,17,-637,18,-637,136,-637,138,-637,137,-637,146,-637,148,-637,147,-637,52,-637,83,-637,35,-637,21,-637,89,-637,49,-637,30,-637,50,-637,94,-637,42,-637,31,-637,48,-637,55,-637,70,-637,68,-637,33,-637,66,-637,67,-637,111,-635});
states[332] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248,5,527,12,-692},new int[]{-62,333,-70,335,-83,1257,-80,338,-90,126,-89,131,-88,301,-92,309,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525,-104,526});
states[333] = new State(new int[]{12,334});
states[334] = new State(-655);
states[335] = new State(new int[]{92,336,12,-691});
states[336] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248,5,527},new int[]{-83,337,-80,338,-90,126,-89,131,-88,301,-92,309,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525,-104,526});
states[337] = new State(-694);
states[338] = new State(new int[]{6,339,92,-695,12,-695});
states[339] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248,5,527},new int[]{-80,340,-90,126,-89,131,-88,301,-92,309,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525,-104,526});
states[340] = new State(-696);
states[341] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,29,40,360,37,390,8,392,17,243,18,248},new int[]{-87,342,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445});
states[342] = new State(-656);
states[343] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,29,40,360,37,390,8,392,17,243,18,248},new int[]{-87,344,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445});
states[344] = new State(-657);
states[345] = new State(-658);
states[346] = new State(new int[]{133,1256,135,23,78,25,79,26,73,28,71,29,40,360,37,390,8,392,17,243,18,248,136,148,138,149,137,151,146,153,148,154,147,155},new int[]{-98,347,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-13,551,-147,145,-149,146,-148,150,-14,152,-52,552});
states[347] = new State(new int[]{11,348,16,354,8,535,7,954,134,956,4,957,102,-664,103,-664,104,-664,105,-664,106,-664,84,-664,10,-664,90,-664,93,-664,28,-664,96,-664,130,-664,128,-664,110,-664,109,-664,123,-664,124,-664,125,-664,126,-664,122,-664,5,-664,108,-664,107,-664,120,-664,121,-664,118,-664,112,-664,117,-664,115,-664,113,-664,116,-664,114,-664,129,-664,15,-664,13,-664,27,-664,92,-664,12,-664,9,-664,91,-664,79,-664,78,-664,2,-664,77,-664,76,-664,75,-664,74,-664,111,-664,6,-664,46,-664,53,-664,133,-664,135,-664,73,-664,71,-664,40,-664,37,-664,17,-664,18,-664,136,-664,138,-664,137,-664,146,-664,148,-664,147,-664,52,-664,83,-664,35,-664,21,-664,89,-664,49,-664,30,-664,50,-664,94,-664,42,-664,31,-664,48,-664,55,-664,70,-664,68,-664,33,-664,66,-664,67,-664});
states[348] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,772,17,243,18,248,5,527,32,827,39,841},new int[]{-64,349,-81,351,-80,125,-90,126,-89,131,-88,301,-92,309,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,538,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525,-104,526,-297,825,-298,826});
states[349] = new State(new int[]{12,350,92,299});
states[350] = new State(-682);
states[351] = new State(-559);
states[352] = new State(-667);
states[353] = new State(new int[]{11,348,16,354,8,535,7,954,134,956,4,957,14,960,102,-665,103,-665,104,-665,105,-665,106,-665,84,-665,10,-665,90,-665,93,-665,28,-665,96,-665,130,-665,128,-665,110,-665,109,-665,123,-665,124,-665,125,-665,126,-665,122,-665,5,-665,108,-665,107,-665,120,-665,121,-665,118,-665,112,-665,117,-665,115,-665,113,-665,116,-665,114,-665,129,-665,15,-665,13,-665,27,-665,92,-665,12,-665,9,-665,91,-665,79,-665,78,-665,2,-665,77,-665,76,-665,75,-665,74,-665,111,-665,6,-665,46,-665,53,-665,133,-665,135,-665,73,-665,71,-665,40,-665,37,-665,17,-665,18,-665,136,-665,138,-665,137,-665,146,-665,148,-665,147,-665,52,-665,83,-665,35,-665,21,-665,89,-665,49,-665,30,-665,50,-665,94,-665,42,-665,31,-665,48,-665,55,-665,70,-665,68,-665,33,-665,66,-665,67,-665});
states[354] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248,5,527},new int[]{-104,355,-92,357,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,531,-249,524});
states[355] = new State(new int[]{12,356});
states[356] = new State(-683);
states[357] = new State(new int[]{5,310,108,314,107,315,120,316,121,317,118,318},new int[]{-180,136});
states[358] = new State(-675);
states[359] = new State(-676);
states[360] = new State(new int[]{107,362,108,363,109,364,110,365,112,366,113,367,114,368,115,369,116,370,117,371,120,372,121,373,122,374,123,375,124,376,125,377,126,378,127,379,129,380,131,381,132,382,102,384,103,385,104,386,105,387,106,388,111,389},new int[]{-183,361,-177,383});
states[361] = new State(-703);
states[362] = new State(-809);
states[363] = new State(-810);
states[364] = new State(-811);
states[365] = new State(-812);
states[366] = new State(-813);
states[367] = new State(-814);
states[368] = new State(-815);
states[369] = new State(-816);
states[370] = new State(-817);
states[371] = new State(-818);
states[372] = new State(-819);
states[373] = new State(-820);
states[374] = new State(-821);
states[375] = new State(-822);
states[376] = new State(-823);
states[377] = new State(-824);
states[378] = new State(-825);
states[379] = new State(-826);
states[380] = new State(-827);
states[381] = new State(-828);
states[382] = new State(-829);
states[383] = new State(-830);
states[384] = new State(-832);
states[385] = new State(-833);
states[386] = new State(-834);
states[387] = new State(-835);
states[388] = new State(-836);
states[389] = new State(-831);
states[390] = new State(new int[]{135,23,78,25,79,26,73,28,71,29},new int[]{-129,391,-133,24,-134,27});
states[391] = new State(-677);
states[392] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248,5,527},new int[]{-80,393,-90,395,-89,131,-88,301,-92,309,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525,-104,526});
states[393] = new State(new int[]{9,394});
states[394] = new State(-678);
states[395] = new State(new int[]{92,396,13,127,9,-565});
states[396] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248},new int[]{-72,397,-90,800,-89,131,-88,301,-92,542,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525});
states[397] = new State(new int[]{92,798,5,409,10,-856,9,-856},new int[]{-299,398});
states[398] = new State(new int[]{10,401,9,-844},new int[]{-305,399});
states[399] = new State(new int[]{9,400});
states[400] = new State(-651);
states[401] = new State(new int[]{135,23,78,25,79,26,73,28,71,29},new int[]{-301,402,-302,818,-140,405,-129,633,-133,24,-134,27});
states[402] = new State(new int[]{10,403,9,-845});
states[403] = new State(new int[]{135,23,78,25,79,26,73,28,71,29},new int[]{-302,404,-140,405,-129,633,-133,24,-134,27});
states[404] = new State(-854);
states[405] = new State(new int[]{92,407,5,409,10,-856,9,-856},new int[]{-299,406});
states[406] = new State(-855);
states[407] = new State(new int[]{135,23,78,25,79,26,73,28,71,29},new int[]{-129,408,-133,24,-134,27});
states[408] = new State(-326);
states[409] = new State(new int[]{135,462,78,25,79,26,73,28,71,29,146,153,148,154,147,155,108,269,107,270,136,148,138,149,137,151,8,471,134,475,20,480,43,488,44,697,29,701,69,705,60,708,39,713,32,728},new int[]{-256,410,-257,411,-254,412,-84,174,-93,414,-94,415,-163,416,-129,195,-133,24,-134,27,-14,466,-182,467,-147,470,-149,146,-148,150,-237,473,-230,474,-261,477,-262,478,-259,479,-252,486,-26,487,-245,696,-112,700,-113,704,-208,710,-206,711,-205,712,-278,732});
states[410] = new State(-857);
states[411] = new State(-457);
states[412] = new State(new int[]{13,413,10,-212,9,-212,119,-212,112,-212,92,-212,113,-212,102,-212,84,-212,90,-212,93,-212,28,-212,96,-212,27,-212,12,-212,91,-212,79,-212,78,-212,2,-212,77,-212,76,-212,75,-212,74,-212,129,-212});
states[413] = new State(-213);
states[414] = new State(new int[]{110,216,109,217,123,218,124,219,125,220,126,221,122,222,6,-231,108,-231,107,-231,120,-231,121,-231,13,-231,113,-231,92,-231,10,-231,9,-231,119,-231,112,-231,102,-231,84,-231,90,-231,93,-231,28,-231,96,-231,27,-231,12,-231,91,-231,79,-231,78,-231,2,-231,77,-231,76,-231,75,-231,74,-231,129,-231},new int[]{-178,177});
states[415] = new State(new int[]{8,179,110,-233,109,-233,123,-233,124,-233,125,-233,126,-233,122,-233,6,-233,108,-233,107,-233,120,-233,121,-233,13,-233,113,-233,92,-233,10,-233,9,-233,119,-233,112,-233,102,-233,84,-233,90,-233,93,-233,28,-233,96,-233,27,-233,12,-233,91,-233,79,-233,78,-233,2,-233,77,-233,76,-233,75,-233,74,-233,129,-233});
states[416] = new State(new int[]{7,162,119,417,115,167,8,-235,110,-235,109,-235,123,-235,124,-235,125,-235,126,-235,122,-235,6,-235,108,-235,107,-235,120,-235,121,-235,13,-235,113,-235,92,-235,10,-235,9,-235,112,-235,102,-235,84,-235,90,-235,93,-235,28,-235,96,-235,27,-235,12,-235,91,-235,79,-235,78,-235,2,-235,77,-235,76,-235,75,-235,74,-235,129,-235},new int[]{-277,768});
states[417] = new State(new int[]{8,419,135,23,78,25,79,26,73,28,71,29,146,153,148,154,147,155,108,269,107,270,136,148,138,149,137,151,20,480,43,488,44,697,29,701,69,705,60,708,39,713,32,728},new int[]{-260,418,-254,172,-84,174,-93,414,-94,415,-163,416,-129,195,-133,24,-134,27,-14,466,-182,467,-147,470,-149,146,-148,150,-261,737,-262,478,-259,479,-252,486,-26,487,-245,696,-112,700,-113,704,-208,738,-206,711,-205,712,-278,739});
states[418] = new State(-271);
states[419] = new State(new int[]{9,420,135,462,78,25,79,26,73,28,71,29,146,153,148,154,147,155,108,269,107,270,136,148,138,149,137,151,8,471,134,475,20,480,43,488,44,697,29,701,69,705,60,708,39,713,32,728},new int[]{-73,425,-71,431,-257,434,-254,412,-84,174,-93,414,-94,415,-163,416,-129,195,-133,24,-134,27,-14,466,-182,467,-147,470,-149,146,-148,150,-237,473,-230,474,-261,477,-262,478,-259,479,-252,486,-26,487,-245,696,-112,700,-113,704,-208,710,-206,711,-205,712,-278,732});
states[420] = new State(new int[]{119,421,113,-275,92,-275,10,-275,9,-275,112,-275,102,-275,84,-275,90,-275,93,-275,28,-275,96,-275,27,-275,12,-275,91,-275,79,-275,78,-275,2,-275,77,-275,76,-275,75,-275,74,-275,129,-275});
states[421] = new State(new int[]{8,423,135,23,78,25,79,26,73,28,71,29,146,153,148,154,147,155,108,269,107,270,136,148,138,149,137,151,20,480,43,488,44,697,29,701,69,705,60,708,39,713,32,728},new int[]{-260,422,-254,172,-84,174,-93,414,-94,415,-163,416,-129,195,-133,24,-134,27,-14,466,-182,467,-147,470,-149,146,-148,150,-261,737,-262,478,-259,479,-252,486,-26,487,-245,696,-112,700,-113,704,-208,738,-206,711,-205,712,-278,739});
states[422] = new State(-273);
states[423] = new State(new int[]{9,424,135,462,78,25,79,26,73,28,71,29,146,153,148,154,147,155,108,269,107,270,136,148,138,149,137,151,8,471,134,475,20,480,43,488,44,697,29,701,69,705,60,708,39,713,32,728},new int[]{-73,425,-71,431,-257,434,-254,412,-84,174,-93,414,-94,415,-163,416,-129,195,-133,24,-134,27,-14,466,-182,467,-147,470,-149,146,-148,150,-237,473,-230,474,-261,477,-262,478,-259,479,-252,486,-26,487,-245,696,-112,700,-113,704,-208,710,-206,711,-205,712,-278,732});
states[424] = new State(new int[]{119,421,113,-277,92,-277,10,-277,9,-277,112,-277,102,-277,84,-277,90,-277,93,-277,28,-277,96,-277,27,-277,12,-277,91,-277,79,-277,78,-277,2,-277,77,-277,76,-277,75,-277,74,-277,129,-277});
states[425] = new State(new int[]{9,426,92,792});
states[426] = new State(new int[]{119,427,13,-230,113,-230,92,-230,10,-230,9,-230,112,-230,102,-230,84,-230,90,-230,93,-230,28,-230,96,-230,27,-230,12,-230,91,-230,79,-230,78,-230,2,-230,77,-230,76,-230,75,-230,74,-230,129,-230});
states[427] = new State(new int[]{8,429,135,23,78,25,79,26,73,28,71,29,146,153,148,154,147,155,108,269,107,270,136,148,138,149,137,151,20,480,43,488,44,697,29,701,69,705,60,708,39,713,32,728},new int[]{-260,428,-254,172,-84,174,-93,414,-94,415,-163,416,-129,195,-133,24,-134,27,-14,466,-182,467,-147,470,-149,146,-148,150,-261,737,-262,478,-259,479,-252,486,-26,487,-245,696,-112,700,-113,704,-208,738,-206,711,-205,712,-278,739});
states[428] = new State(-274);
states[429] = new State(new int[]{9,430,135,462,78,25,79,26,73,28,71,29,146,153,148,154,147,155,108,269,107,270,136,148,138,149,137,151,8,471,134,475,20,480,43,488,44,697,29,701,69,705,60,708,39,713,32,728},new int[]{-73,425,-71,431,-257,434,-254,412,-84,174,-93,414,-94,415,-163,416,-129,195,-133,24,-134,27,-14,466,-182,467,-147,470,-149,146,-148,150,-237,473,-230,474,-261,477,-262,478,-259,479,-252,486,-26,487,-245,696,-112,700,-113,704,-208,710,-206,711,-205,712,-278,732});
states[430] = new State(new int[]{119,421,113,-278,92,-278,10,-278,9,-278,112,-278,102,-278,84,-278,90,-278,93,-278,28,-278,96,-278,27,-278,12,-278,91,-278,79,-278,78,-278,2,-278,77,-278,76,-278,75,-278,74,-278,129,-278});
states[431] = new State(new int[]{92,432});
states[432] = new State(new int[]{135,462,78,25,79,26,73,28,71,29,146,153,148,154,147,155,108,269,107,270,136,148,138,149,137,151,8,471,134,475,20,480,43,488,44,697,29,701,69,705,60,708,39,713,32,728},new int[]{-71,433,-257,434,-254,412,-84,174,-93,414,-94,415,-163,416,-129,195,-133,24,-134,27,-14,466,-182,467,-147,470,-149,146,-148,150,-237,473,-230,474,-261,477,-262,478,-259,479,-252,486,-26,487,-245,696,-112,700,-113,704,-208,710,-206,711,-205,712,-278,732});
states[433] = new State(-242);
states[434] = new State(new int[]{112,435,92,-244,9,-244});
states[435] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248,5,527},new int[]{-80,436,-90,126,-89,131,-88,301,-92,309,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525,-104,526});
states[436] = new State(-245);
states[437] = new State(-679);
states[438] = new State(-680);
states[439] = new State(new int[]{7,440,130,-659,128,-659,110,-659,109,-659,123,-659,124,-659,125,-659,126,-659,122,-659,5,-659,108,-659,107,-659,120,-659,121,-659,118,-659,112,-659,117,-659,115,-659,113,-659,116,-659,114,-659,129,-659,15,-659,13,-659,84,-659,10,-659,90,-659,93,-659,28,-659,96,-659,27,-659,92,-659,12,-659,9,-659,91,-659,79,-659,78,-659,2,-659,77,-659,76,-659,75,-659,74,-659,111,-659,6,-659,46,-659,53,-659,133,-659,135,-659,73,-659,71,-659,40,-659,37,-659,8,-659,17,-659,18,-659,136,-659,138,-659,137,-659,146,-659,148,-659,147,-659,52,-659,83,-659,35,-659,21,-659,89,-659,49,-659,30,-659,50,-659,94,-659,42,-659,31,-659,48,-659,55,-659,70,-659,68,-659,33,-659,66,-659,67,-659});
states[440] = new State(new int[]{135,23,78,25,79,26,73,28,71,29,77,32,76,33,75,34,74,35,64,36,59,37,120,38,18,39,17,40,58,41,19,42,121,43,122,44,123,45,124,46,125,47,126,48,127,49,128,50,129,51,130,52,20,53,69,54,83,55,21,56,22,57,24,58,25,59,26,60,67,61,91,62,27,63,28,64,29,65,23,66,96,67,93,68,30,69,31,70,32,71,35,72,36,73,37,74,95,75,38,76,39,77,41,78,42,79,43,80,89,81,44,82,94,83,45,84,46,85,66,86,90,87,47,88,48,89,49,90,50,91,51,92,52,93,53,94,54,95,56,96,97,97,98,98,101,99,99,100,100,101,57,102,70,103,33,104,34,105,40,360},new int[]{-130,441,-129,442,-133,24,-134,27,-272,443,-132,31,-174,444});
states[441] = new State(-686);
states[442] = new State(-716);
states[443] = new State(-717);
states[444] = new State(-718);
states[445] = new State(-666);
states[446] = new State(-638);
states[447] = new State(-639);
states[448] = new State(new int[]{111,449});
states[449] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,29,40,360,37,390,8,392,17,243,18,248},new int[]{-87,450,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445});
states[450] = new State(-636);
states[451] = new State(-642);
states[452] = new State(new int[]{8,453,130,-631,128,-631,110,-631,109,-631,123,-631,124,-631,125,-631,126,-631,122,-631,5,-631,108,-631,107,-631,120,-631,121,-631,118,-631,112,-631,117,-631,115,-631,113,-631,116,-631,114,-631,129,-631,15,-631,13,-631,84,-631,10,-631,90,-631,93,-631,28,-631,96,-631,27,-631,92,-631,12,-631,9,-631,91,-631,79,-631,78,-631,2,-631,77,-631,76,-631,75,-631,74,-631,6,-631,46,-631,53,-631,133,-631,135,-631,73,-631,71,-631,40,-631,37,-631,17,-631,18,-631,136,-631,138,-631,137,-631,146,-631,148,-631,147,-631,52,-631,83,-631,35,-631,21,-631,89,-631,49,-631,30,-631,50,-631,94,-631,42,-631,31,-631,48,-631,55,-631,70,-631,68,-631,33,-631,66,-631,67,-631});
states[453] = new State(new int[]{48,458,135,23,78,25,79,26,73,28,71,29},new int[]{-320,454,-318,1255,-313,1248,-263,1249,-163,161,-129,195,-133,24,-134,27});
states[454] = new State(new int[]{9,455,10,456,92,1253});
states[455] = new State(-592);
states[456] = new State(new int[]{48,458,135,23,78,25,79,26,73,28,71,29},new int[]{-318,457,-313,1248,-263,1249,-163,161,-129,195,-133,24,-134,27});
states[457] = new State(-599);
states[458] = new State(new int[]{135,23,78,25,79,26,73,28,71,29},new int[]{-129,459,-133,24,-134,27});
states[459] = new State(new int[]{5,460,9,-602,10,-602,92,-602});
states[460] = new State(new int[]{135,462,78,25,79,26,73,28,71,29,146,153,148,154,147,155,108,269,107,270,136,148,138,149,137,151,8,471,134,475,20,480,43,488,44,697,29,701,69,705,60,708,39,713,32,728},new int[]{-257,461,-254,412,-84,174,-93,414,-94,415,-163,416,-129,195,-133,24,-134,27,-14,466,-182,467,-147,470,-149,146,-148,150,-237,473,-230,474,-261,477,-262,478,-259,479,-252,486,-26,487,-245,696,-112,700,-113,704,-208,710,-206,711,-205,712,-278,732});
states[461] = new State(-601);
states[462] = new State(new int[]{11,463,7,-710,119,-710,115,-710,8,-710,110,-710,109,-710,123,-710,124,-710,125,-710,126,-710,122,-710,6,-710,108,-710,107,-710,120,-710,121,-710,13,-710,10,-710,9,-710,112,-710,92,-710,113,-710,102,-710,84,-710,90,-710,93,-710,28,-710,96,-710,27,-710,12,-710,91,-710,79,-710,78,-710,2,-710,77,-710,76,-710,75,-710,74,-710,129,-710});
states[463] = new State(new int[]{135,23,78,25,79,26,73,28,71,225,37,240,17,243,18,248,11,253,146,153,148,154,147,155,136,148,138,149,137,151,51,259,133,260,8,262,127,265,108,269,107,270},new int[]{-82,464,-74,190,-11,213,-9,223,-12,200,-129,224,-133,24,-134,27,-238,242,-274,247,-221,252,-14,257,-147,258,-149,146,-148,150,-182,267,-156,271,-247,272,-251,273,-223,274});
states[464] = new State(new int[]{12,465,13,186});
states[465] = new State(-265);
states[466] = new State(-236);
states[467] = new State(new int[]{135,23,78,25,79,26,73,28,71,29,146,153,148,154,147,155,108,269,107,270,136,148,138,149,137,151},new int[]{-94,468,-163,469,-129,195,-133,24,-134,27,-14,466,-182,467,-147,470,-149,146,-148,150});
states[468] = new State(new int[]{8,179,110,-237,109,-237,123,-237,124,-237,125,-237,126,-237,122,-237,6,-237,108,-237,107,-237,120,-237,121,-237,13,-237,113,-237,92,-237,10,-237,9,-237,119,-237,112,-237,102,-237,84,-237,90,-237,93,-237,28,-237,96,-237,27,-237,12,-237,91,-237,79,-237,78,-237,2,-237,77,-237,76,-237,75,-237,74,-237,129,-237});
states[469] = new State(new int[]{7,162,8,-235,110,-235,109,-235,123,-235,124,-235,125,-235,126,-235,122,-235,6,-235,108,-235,107,-235,120,-235,121,-235,13,-235,113,-235,92,-235,10,-235,9,-235,119,-235,112,-235,102,-235,84,-235,90,-235,93,-235,28,-235,96,-235,27,-235,12,-235,91,-235,79,-235,78,-235,2,-235,77,-235,76,-235,75,-235,74,-235,129,-235});
states[470] = new State(-238);
states[471] = new State(new int[]{9,472,135,462,78,25,79,26,73,28,71,29,146,153,148,154,147,155,108,269,107,270,136,148,138,149,137,151,8,471,134,475,20,480,43,488,44,697,29,701,69,705,60,708,39,713,32,728},new int[]{-73,425,-71,431,-257,434,-254,412,-84,174,-93,414,-94,415,-163,416,-129,195,-133,24,-134,27,-14,466,-182,467,-147,470,-149,146,-148,150,-237,473,-230,474,-261,477,-262,478,-259,479,-252,486,-26,487,-245,696,-112,700,-113,704,-208,710,-206,711,-205,712,-278,732});
states[472] = new State(new int[]{119,421});
states[473] = new State(-214);
states[474] = new State(-215);
states[475] = new State(new int[]{135,462,78,25,79,26,73,28,71,29,146,153,148,154,147,155,108,269,107,270,136,148,138,149,137,151,8,471,134,475,20,480,43,488,44,697,29,701,69,705,60,708,39,713,32,728},new int[]{-256,476,-257,411,-254,412,-84,174,-93,414,-94,415,-163,416,-129,195,-133,24,-134,27,-14,466,-182,467,-147,470,-149,146,-148,150,-237,473,-230,474,-261,477,-262,478,-259,479,-252,486,-26,487,-245,696,-112,700,-113,704,-208,710,-206,711,-205,712,-278,732});
states[476] = new State(-246);
states[477] = new State(-216);
states[478] = new State(-247);
states[479] = new State(-249);
states[480] = new State(new int[]{11,481,53,1246});
states[481] = new State(new int[]{135,23,78,25,79,26,73,28,71,29,146,153,148,154,147,155,108,269,107,270,136,148,138,149,137,151,8,789,12,-261,92,-261},new int[]{-146,482,-253,1245,-254,1244,-84,174,-93,414,-94,415,-163,469,-129,195,-133,24,-134,27,-14,466,-182,467,-147,470,-149,146,-148,150});
states[482] = new State(new int[]{12,483,92,1242});
states[483] = new State(new int[]{53,484});
states[484] = new State(new int[]{135,462,78,25,79,26,73,28,71,29,146,153,148,154,147,155,108,269,107,270,136,148,138,149,137,151,8,471,134,475,20,480,43,488,44,697,29,701,69,705,60,708,39,713,32,728},new int[]{-257,485,-254,412,-84,174,-93,414,-94,415,-163,416,-129,195,-133,24,-134,27,-14,466,-182,467,-147,470,-149,146,-148,150,-237,473,-230,474,-261,477,-262,478,-259,479,-252,486,-26,487,-245,696,-112,700,-113,704,-208,710,-206,711,-205,712,-278,732});
states[485] = new State(-255);
states[486] = new State(-256);
states[487] = new State(-250);
states[488] = new State(new int[]{8,1092,19,-297,11,-297,84,-297,77,-297,76,-297,75,-297,74,-297,24,-297,135,-297,78,-297,79,-297,73,-297,71,-297,57,-297,22,-297,39,-297,32,-297,25,-297,26,-297,41,-297},new int[]{-166,489});
states[489] = new State(new int[]{19,1083,11,-304,84,-304,77,-304,76,-304,75,-304,74,-304,24,-304,135,-304,78,-304,79,-304,73,-304,71,-304,57,-304,22,-304,39,-304,32,-304,25,-304,26,-304,41,-304},new int[]{-292,490,-291,1081,-290,1103});
states[490] = new State(new int[]{11,760,84,-321,77,-321,76,-321,75,-321,74,-321,24,-199,135,-199,78,-199,79,-199,73,-199,71,-199,57,-199,22,-199,39,-199,32,-199,25,-199,26,-199,41,-199},new int[]{-20,491,-27,1061,-29,495,-39,1062,-5,1063,-231,872,-28,1200,-48,1202,-47,501,-49,1201});
states[491] = new State(new int[]{84,492,77,1057,76,1058,75,1059,74,1060},new int[]{-6,493});
states[492] = new State(-280);
states[493] = new State(new int[]{11,760,84,-321,77,-321,76,-321,75,-321,74,-321,24,-199,135,-199,78,-199,79,-199,73,-199,71,-199,57,-199,22,-199,39,-199,32,-199,25,-199,26,-199,41,-199},new int[]{-27,494,-29,495,-39,1062,-5,1063,-231,872,-28,1200,-48,1202,-47,501,-49,1201});
states[494] = new State(-316);
states[495] = new State(new int[]{10,497,84,-327,77,-327,76,-327,75,-327,74,-327},new int[]{-173,496});
states[496] = new State(-322);
states[497] = new State(new int[]{11,760,84,-328,77,-328,76,-328,75,-328,74,-328,24,-199,135,-199,78,-199,79,-199,73,-199,71,-199,57,-199,22,-199,39,-199,32,-199,25,-199,26,-199,41,-199},new int[]{-39,498,-28,499,-5,1063,-231,872,-48,1202,-47,501,-49,1201});
states[498] = new State(-330);
states[499] = new State(new int[]{11,760,84,-324,77,-324,76,-324,75,-324,74,-324,22,-199,39,-199,32,-199,25,-199,26,-199,41,-199},new int[]{-48,500,-47,501,-5,502,-231,872,-49,1201});
states[500] = new State(-333);
states[501] = new State(-334);
states[502] = new State(new int[]{22,507,39,1076,32,1111,25,1185,26,1192,11,760,41,1130},new int[]{-204,503,-231,504,-201,505,-239,506,-212,1172,-210,1005,-207,1075,-211,1110,-209,1173,-197,1196,-198,1197,-200,1198,-240,1199});
states[503] = new State(-341);
states[504] = new State(-198);
states[505] = new State(-342);
states[506] = new State(-360);
states[507] = new State(new int[]{25,509,39,1076,32,1111,41,1130},new int[]{-212,508,-198,1003,-240,1004,-210,1005,-207,1075,-211,1110});
states[508] = new State(-345);
states[509] = new State(new int[]{135,23,78,25,79,26,73,28,71,29,40,360,8,-355,102,-355,10,-355},new int[]{-154,510,-153,986,-152,987,-124,988,-119,989,-116,990,-129,995,-133,24,-134,27,-174,996,-308,998,-131,1002});
states[510] = new State(new int[]{8,715,102,-441,10,-441},new int[]{-110,511});
states[511] = new State(new int[]{102,513,10,975},new int[]{-190,512});
states[512] = new State(-352);
states[513] = new State(new int[]{133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,516,8,517,17,243,18,248,136,148,138,149,137,151,146,153,148,154,147,155,52,555,83,115,35,545,21,563,89,580,49,585,30,590,50,600,94,606,42,613,31,616,48,624,55,650,70,659,68,665,33,670,10,-465},new int[]{-242,514,-3,121,-99,122,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-13,551,-147,145,-149,146,-148,150,-14,152,-52,552,-102,445,-194,553,-115,554,-236,560,-135,561,-30,562,-228,579,-293,584,-106,589,-294,599,-142,604,-279,605,-229,612,-105,615,-289,623,-53,654,-157,655,-156,656,-151,657,-108,658,-109,663,-107,664,-315,669});
states[514] = new State(new int[]{10,515});
states[515] = new State(-400);
states[516] = new State(new int[]{135,23,78,25,79,26,73,28,71,29,84,-541,10,-541,90,-541,93,-541,28,-541,96,-541,27,-541,92,-541,12,-541,9,-541,91,-541,2,-541,77,-541,76,-541,75,-541,74,-541},new int[]{-129,391,-133,24,-134,27});
states[517] = new State(new int[]{48,963,51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248,5,527},new int[]{-80,393,-90,395,-98,518,-89,131,-88,301,-92,309,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525,-104,526});
states[518] = new State(new int[]{92,519,11,348,16,354,8,535,7,954,134,956,4,957,14,960,130,-665,128,-665,110,-665,109,-665,123,-665,124,-665,125,-665,126,-665,122,-665,5,-665,108,-665,107,-665,120,-665,121,-665,118,-665,112,-665,117,-665,115,-665,113,-665,116,-665,114,-665,129,-665,15,-665,13,-665,9,-665,111,-665});
states[519] = new State(new int[]{135,23,78,25,79,26,73,28,71,29,40,360,37,390,8,392,17,243,18,248,136,148,138,149,137,151,146,153,148,154,147,155},new int[]{-310,520,-98,959,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-13,551,-147,145,-149,146,-148,150,-14,152,-52,552});
states[520] = new State(new int[]{9,521,92,533});
states[521] = new State(new int[]{102,384,103,385,104,386,105,387,106,388},new int[]{-177,522});
states[522] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248,5,527},new int[]{-80,523,-90,126,-89,131,-88,301,-92,309,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525,-104,526});
states[523] = new State(-494);
states[524] = new State(-632);
states[525] = new State(-568);
states[526] = new State(-566);
states[527] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248,5,-610,84,-610,10,-610,90,-610,93,-610,28,-610,96,-610,27,-610,92,-610,12,-610,9,-610,91,-610,2,-610,77,-610,76,-610,75,-610,74,-610,6,-610},new int[]{-101,528,-92,532,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,531,-249,524});
states[528] = new State(new int[]{5,529,84,-612,10,-612,90,-612,93,-612,28,-612,96,-612,27,-612,92,-612,12,-612,9,-612,91,-612,79,-612,78,-612,2,-612,77,-612,76,-612,75,-612,74,-612,6,-612});
states[529] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248},new int[]{-92,530,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,531,-249,524});
states[530] = new State(new int[]{108,314,107,315,120,316,121,317,118,318,84,-614,10,-614,90,-614,93,-614,28,-614,96,-614,27,-614,92,-614,12,-614,9,-614,91,-614,79,-614,78,-614,2,-614,77,-614,76,-614,75,-614,74,-614,6,-614},new int[]{-180,136});
states[531] = new State(-631);
states[532] = new State(new int[]{108,314,107,315,120,316,121,317,118,318,5,-609,84,-609,10,-609,90,-609,93,-609,28,-609,96,-609,27,-609,92,-609,12,-609,9,-609,91,-609,79,-609,78,-609,2,-609,77,-609,76,-609,75,-609,74,-609,6,-609},new int[]{-180,136});
states[533] = new State(new int[]{135,23,78,25,79,26,73,28,71,29,40,360,37,390,8,392,17,243,18,248,136,148,138,149,137,151,146,153,148,154,147,155},new int[]{-98,534,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-13,551,-147,145,-149,146,-148,150,-14,152,-52,552});
states[534] = new State(new int[]{11,348,16,354,8,535,7,954,134,956,4,957,9,-496,92,-496});
states[535] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,772,17,243,18,248,5,527,32,827,39,841,9,-690},new int[]{-61,536,-64,298,-81,351,-80,125,-90,126,-89,131,-88,301,-92,309,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,538,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525,-104,526,-297,825,-298,826});
states[536] = new State(new int[]{9,537});
states[537] = new State(-684);
states[538] = new State(new int[]{119,539,11,-675,16,-675,8,-675,7,-675,134,-675,4,-675,14,-675,130,-675,128,-675,110,-675,109,-675,123,-675,124,-675,125,-675,126,-675,122,-675,5,-675,108,-675,107,-675,120,-675,121,-675,118,-675,112,-675,117,-675,115,-675,113,-675,116,-675,114,-675,129,-675,15,-675,13,-675,84,-675,10,-675,90,-675,93,-675,28,-675,96,-675,27,-675,92,-675,12,-675,9,-675,91,-675,79,-675,78,-675,2,-675,77,-675,76,-675,75,-675,74,-675,111,-675});
states[539] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248,83,115,35,545,49,585,89,580,30,590,31,616,21,563,94,606,55,650,70,784},new int[]{-303,540,-90,541,-89,131,-88,301,-92,542,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525,-236,543,-135,544,-293,643,-228,644,-106,645,-105,646,-30,647,-279,648,-151,649,-108,783});
states[540] = new State(-837);
states[541] = new State(new int[]{13,127,84,-860,10,-860,90,-860,93,-860,28,-860,96,-860,27,-860,92,-860,12,-860,9,-860,91,-860,79,-860,78,-860,2,-860,77,-860,76,-860,75,-860,74,-860});
states[542] = new State(new int[]{108,314,107,315,120,316,121,317,118,318,112,-590,117,-590,115,-590,113,-590,116,-590,114,-590,129,-590,15,-590,5,-590,13,-590,84,-590,10,-590,90,-590,93,-590,28,-590,96,-590,27,-590,92,-590,12,-590,9,-590,91,-590,79,-590,78,-590,2,-590,77,-590,76,-590,75,-590,74,-590,6,-590,46,-590,53,-590,133,-590,135,-590,73,-590,71,-590,40,-590,37,-590,8,-590,17,-590,18,-590,136,-590,138,-590,137,-590,146,-590,148,-590,147,-590,52,-590,83,-590,35,-590,21,-590,89,-590,49,-590,30,-590,50,-590,94,-590,42,-590,31,-590,48,-590,55,-590,70,-590,68,-590,33,-590,66,-590,67,-590},new int[]{-180,136});
states[543] = new State(-861);
states[544] = new State(-862);
states[545] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248},new int[]{-90,546,-89,131,-88,301,-92,542,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525});
states[546] = new State(new int[]{46,547,13,127});
states[547] = new State(new int[]{133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,516,8,517,17,243,18,248,136,148,138,149,137,151,146,153,148,154,147,155,52,555,83,115,35,545,21,563,89,580,49,585,30,590,50,600,94,606,42,613,31,616,48,624,55,650,70,659,68,665,33,670,84,-465,10,-465,90,-465,93,-465,28,-465,96,-465,27,-465,92,-465,12,-465,9,-465,91,-465,2,-465,77,-465,76,-465,75,-465,74,-465},new int[]{-242,548,-3,121,-99,122,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-13,551,-147,145,-149,146,-148,150,-14,152,-52,552,-102,445,-194,553,-115,554,-236,560,-135,561,-30,562,-228,579,-293,584,-106,589,-294,599,-142,604,-279,605,-229,612,-105,615,-289,623,-53,654,-157,655,-156,656,-151,657,-108,658,-109,663,-107,664,-315,669});
states[548] = new State(new int[]{27,549,84,-504,10,-504,90,-504,93,-504,28,-504,96,-504,92,-504,12,-504,9,-504,91,-504,79,-504,78,-504,2,-504,77,-504,76,-504,75,-504,74,-504});
states[549] = new State(new int[]{133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,516,8,517,17,243,18,248,136,148,138,149,137,151,146,153,148,154,147,155,52,555,83,115,35,545,21,563,89,580,49,585,30,590,50,600,94,606,42,613,31,616,48,624,55,650,70,659,68,665,33,670,84,-465,10,-465,90,-465,93,-465,28,-465,96,-465,27,-465,92,-465,12,-465,9,-465,91,-465,2,-465,77,-465,76,-465,75,-465,74,-465},new int[]{-242,550,-3,121,-99,122,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-13,551,-147,145,-149,146,-148,150,-14,152,-52,552,-102,445,-194,553,-115,554,-236,560,-135,561,-30,562,-228,579,-293,584,-106,589,-294,599,-142,604,-279,605,-229,612,-105,615,-289,623,-53,654,-157,655,-156,656,-151,657,-108,658,-109,663,-107,664,-315,669});
states[550] = new State(-505);
states[551] = new State(new int[]{7,143});
states[552] = new State(new int[]{7,440});
states[553] = new State(-467);
states[554] = new State(-468);
states[555] = new State(new int[]{146,557,147,558,135,23,78,25,79,26,73,28,71,29},new int[]{-125,556,-129,559,-133,24,-134,27});
states[556] = new State(-500);
states[557] = new State(-91);
states[558] = new State(-92);
states[559] = new State(-93);
states[560] = new State(-469);
states[561] = new State(-470);
states[562] = new State(-471);
states[563] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248},new int[]{-90,564,-89,131,-88,301,-92,542,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525});
states[564] = new State(new int[]{53,565,13,127});
states[565] = new State(new int[]{135,23,78,25,79,26,73,28,71,225,37,240,17,243,18,248,11,253,146,153,148,154,147,155,136,148,138,149,137,151,51,259,133,260,8,262,127,265,108,269,107,270,27,573,84,-521},new int[]{-31,566,-234,951,-244,953,-67,944,-97,950,-85,949,-82,185,-74,190,-11,213,-9,223,-12,200,-129,224,-133,24,-134,27,-238,242,-274,247,-221,252,-14,257,-147,258,-149,146,-148,150,-182,267,-156,271,-247,272,-251,273,-223,274});
states[566] = new State(new int[]{10,569,27,573,84,-521},new int[]{-234,567});
states[567] = new State(new int[]{84,568});
states[568] = new State(-512);
states[569] = new State(new int[]{27,573,135,23,78,25,79,26,73,28,71,225,37,240,17,243,18,248,11,253,146,153,148,154,147,155,136,148,138,149,137,151,51,259,133,260,8,262,127,265,108,269,107,270,84,-521},new int[]{-234,570,-244,572,-67,944,-97,950,-85,949,-82,185,-74,190,-11,213,-9,223,-12,200,-129,224,-133,24,-134,27,-238,242,-274,247,-221,252,-14,257,-147,258,-149,146,-148,150,-182,267,-156,271,-247,272,-251,273,-223,274});
states[570] = new State(new int[]{84,571});
states[571] = new State(-513);
states[572] = new State(-516);
states[573] = new State(new int[]{133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,516,8,517,17,243,18,248,136,148,138,149,137,151,146,577,148,154,147,578,52,555,83,115,35,545,21,563,89,580,49,585,30,590,50,600,94,606,42,613,31,616,48,624,55,650,70,659,68,665,33,670,10,-465,84,-465},new int[]{-233,574,-243,575,-242,120,-3,121,-99,122,-114,346,-98,353,-129,576,-133,24,-134,27,-174,359,-238,437,-274,438,-13,551,-147,145,-149,146,-148,150,-14,152,-52,552,-102,445,-194,553,-115,554,-236,560,-135,561,-30,562,-228,579,-293,584,-106,589,-294,599,-142,604,-279,605,-229,612,-105,615,-289,623,-53,654,-157,655,-156,656,-151,657,-108,658,-109,663,-107,664,-315,669,-125,911});
states[574] = new State(new int[]{10,118,84,-522});
states[575] = new State(-502);
states[576] = new State(new int[]{11,-675,16,-675,8,-675,7,-675,134,-675,4,-675,14,-675,102,-675,103,-675,104,-675,105,-675,106,-675,84,-675,10,-675,90,-675,93,-675,28,-675,96,-675,5,-93});
states[577] = new State(new int[]{7,-176,5,-91});
states[578] = new State(new int[]{7,-178,5,-92});
states[579] = new State(-472);
states[580] = new State(new int[]{133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,516,8,517,17,243,18,248,136,148,138,149,137,151,146,577,148,154,147,578,52,555,83,115,35,545,21,563,89,580,49,585,30,590,50,600,94,606,42,613,31,616,48,624,55,650,70,659,68,665,33,670,90,-465,10,-465},new int[]{-233,581,-243,575,-242,120,-3,121,-99,122,-114,346,-98,353,-129,576,-133,24,-134,27,-174,359,-238,437,-274,438,-13,551,-147,145,-149,146,-148,150,-14,152,-52,552,-102,445,-194,553,-115,554,-236,560,-135,561,-30,562,-228,579,-293,584,-106,589,-294,599,-142,604,-279,605,-229,612,-105,615,-289,623,-53,654,-157,655,-156,656,-151,657,-108,658,-109,663,-107,664,-315,669,-125,911});
states[581] = new State(new int[]{90,582,10,118});
states[582] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248,5,527},new int[]{-80,583,-90,126,-89,131,-88,301,-92,309,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525,-104,526});
states[583] = new State(-523);
states[584] = new State(-473);
states[585] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248},new int[]{-90,586,-89,131,-88,301,-92,542,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525});
states[586] = new State(new int[]{13,127,91,936,133,-526,135,-526,78,-526,79,-526,73,-526,71,-526,40,-526,37,-526,8,-526,17,-526,18,-526,136,-526,138,-526,137,-526,146,-526,148,-526,147,-526,52,-526,83,-526,35,-526,21,-526,89,-526,49,-526,30,-526,50,-526,94,-526,42,-526,31,-526,48,-526,55,-526,70,-526,68,-526,33,-526,84,-526,10,-526,90,-526,93,-526,28,-526,96,-526,27,-526,92,-526,12,-526,9,-526,2,-526,77,-526,76,-526,75,-526,74,-526},new int[]{-271,587});
states[587] = new State(new int[]{133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,516,8,517,17,243,18,248,136,148,138,149,137,151,146,153,148,154,147,155,52,555,83,115,35,545,21,563,89,580,49,585,30,590,50,600,94,606,42,613,31,616,48,624,55,650,70,659,68,665,33,670,84,-465,10,-465,90,-465,93,-465,28,-465,96,-465,27,-465,92,-465,12,-465,9,-465,91,-465,2,-465,77,-465,76,-465,75,-465,74,-465},new int[]{-242,588,-3,121,-99,122,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-13,551,-147,145,-149,146,-148,150,-14,152,-52,552,-102,445,-194,553,-115,554,-236,560,-135,561,-30,562,-228,579,-293,584,-106,589,-294,599,-142,604,-279,605,-229,612,-105,615,-289,623,-53,654,-157,655,-156,656,-151,657,-108,658,-109,663,-107,664,-315,669});
states[588] = new State(-524);
states[589] = new State(-474);
states[590] = new State(new int[]{48,943,135,-535,78,-535,79,-535,73,-535,71,-535},new int[]{-16,591});
states[591] = new State(new int[]{135,23,78,25,79,26,73,28,71,29},new int[]{-129,592,-133,24,-134,27});
states[592] = new State(new int[]{102,939,5,940},new int[]{-265,593});
states[593] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248},new int[]{-90,594,-89,131,-88,301,-92,542,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525});
states[594] = new State(new int[]{13,127,66,937,67,938},new int[]{-103,595});
states[595] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248},new int[]{-90,596,-89,131,-88,301,-92,542,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525});
states[596] = new State(new int[]{13,127,91,936,133,-526,135,-526,78,-526,79,-526,73,-526,71,-526,40,-526,37,-526,8,-526,17,-526,18,-526,136,-526,138,-526,137,-526,146,-526,148,-526,147,-526,52,-526,83,-526,35,-526,21,-526,89,-526,49,-526,30,-526,50,-526,94,-526,42,-526,31,-526,48,-526,55,-526,70,-526,68,-526,33,-526,84,-526,10,-526,90,-526,93,-526,28,-526,96,-526,27,-526,92,-526,12,-526,9,-526,2,-526,77,-526,76,-526,75,-526,74,-526},new int[]{-271,597});
states[597] = new State(new int[]{133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,516,8,517,17,243,18,248,136,148,138,149,137,151,146,153,148,154,147,155,52,555,83,115,35,545,21,563,89,580,49,585,30,590,50,600,94,606,42,613,31,616,48,624,55,650,70,659,68,665,33,670,84,-465,10,-465,90,-465,93,-465,28,-465,96,-465,27,-465,92,-465,12,-465,9,-465,91,-465,2,-465,77,-465,76,-465,75,-465,74,-465},new int[]{-242,598,-3,121,-99,122,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-13,551,-147,145,-149,146,-148,150,-14,152,-52,552,-102,445,-194,553,-115,554,-236,560,-135,561,-30,562,-228,579,-293,584,-106,589,-294,599,-142,604,-279,605,-229,612,-105,615,-289,623,-53,654,-157,655,-156,656,-151,657,-108,658,-109,663,-107,664,-315,669});
states[598] = new State(-533);
states[599] = new State(-475);
states[600] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,772,17,243,18,248,5,527,32,827,39,841},new int[]{-64,601,-81,351,-80,125,-90,126,-89,131,-88,301,-92,309,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,538,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525,-104,526,-297,825,-298,826});
states[601] = new State(new int[]{91,602,92,299});
states[602] = new State(new int[]{133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,516,8,517,17,243,18,248,136,148,138,149,137,151,146,153,148,154,147,155,52,555,83,115,35,545,21,563,89,580,49,585,30,590,50,600,94,606,42,613,31,616,48,624,55,650,70,659,68,665,33,670,84,-465,10,-465,90,-465,93,-465,28,-465,96,-465,27,-465,92,-465,12,-465,9,-465,91,-465,2,-465,77,-465,76,-465,75,-465,74,-465},new int[]{-242,603,-3,121,-99,122,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-13,551,-147,145,-149,146,-148,150,-14,152,-52,552,-102,445,-194,553,-115,554,-236,560,-135,561,-30,562,-228,579,-293,584,-106,589,-294,599,-142,604,-279,605,-229,612,-105,615,-289,623,-53,654,-157,655,-156,656,-151,657,-108,658,-109,663,-107,664,-315,669});
states[603] = new State(-540);
states[604] = new State(-476);
states[605] = new State(-477);
states[606] = new State(new int[]{133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,516,8,517,17,243,18,248,136,148,138,149,137,151,146,577,148,154,147,578,52,555,83,115,35,545,21,563,89,580,49,585,30,590,50,600,94,606,42,613,31,616,48,624,55,650,70,659,68,665,33,670,10,-465,93,-465,28,-465},new int[]{-233,607,-243,575,-242,120,-3,121,-99,122,-114,346,-98,353,-129,576,-133,24,-134,27,-174,359,-238,437,-274,438,-13,551,-147,145,-149,146,-148,150,-14,152,-52,552,-102,445,-194,553,-115,554,-236,560,-135,561,-30,562,-228,579,-293,584,-106,589,-294,599,-142,604,-279,605,-229,612,-105,615,-289,623,-53,654,-157,655,-156,656,-151,657,-108,658,-109,663,-107,664,-315,669,-125,911});
states[607] = new State(new int[]{10,118,93,609,28,914},new int[]{-269,608});
states[608] = new State(-542);
states[609] = new State(new int[]{133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,516,8,517,17,243,18,248,136,148,138,149,137,151,146,577,148,154,147,578,52,555,83,115,35,545,21,563,89,580,49,585,30,590,50,600,94,606,42,613,31,616,48,624,55,650,70,659,68,665,33,670,84,-465,10,-465},new int[]{-233,610,-243,575,-242,120,-3,121,-99,122,-114,346,-98,353,-129,576,-133,24,-134,27,-174,359,-238,437,-274,438,-13,551,-147,145,-149,146,-148,150,-14,152,-52,552,-102,445,-194,553,-115,554,-236,560,-135,561,-30,562,-228,579,-293,584,-106,589,-294,599,-142,604,-279,605,-229,612,-105,615,-289,623,-53,654,-157,655,-156,656,-151,657,-108,658,-109,663,-107,664,-315,669,-125,911});
states[610] = new State(new int[]{84,611,10,118});
states[611] = new State(-543);
states[612] = new State(-478);
states[613] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248,5,527,84,-557,10,-557,90,-557,93,-557,28,-557,96,-557,27,-557,92,-557,12,-557,9,-557,91,-557,2,-557,77,-557,76,-557,75,-557,74,-557},new int[]{-80,614,-90,126,-89,131,-88,301,-92,309,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525,-104,526});
states[614] = new State(-558);
states[615] = new State(-479);
states[616] = new State(new int[]{48,899,135,23,78,25,79,26,73,28,71,29},new int[]{-129,617,-133,24,-134,27});
states[617] = new State(new int[]{5,897,129,-532},new int[]{-255,618});
states[618] = new State(new int[]{129,619});
states[619] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248},new int[]{-90,620,-89,131,-88,301,-92,542,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525});
states[620] = new State(new int[]{91,621,13,127});
states[621] = new State(new int[]{133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,516,8,517,17,243,18,248,136,148,138,149,137,151,146,153,148,154,147,155,52,555,83,115,35,545,21,563,89,580,49,585,30,590,50,600,94,606,42,613,31,616,48,624,55,650,70,659,68,665,33,670,84,-465,10,-465,90,-465,93,-465,28,-465,96,-465,27,-465,92,-465,12,-465,9,-465,91,-465,2,-465,77,-465,76,-465,75,-465,74,-465},new int[]{-242,622,-3,121,-99,122,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-13,551,-147,145,-149,146,-148,150,-14,152,-52,552,-102,445,-194,553,-115,554,-236,560,-135,561,-30,562,-228,579,-293,584,-106,589,-294,599,-142,604,-279,605,-229,612,-105,615,-289,623,-53,654,-157,655,-156,656,-151,657,-108,658,-109,663,-107,664,-315,669});
states[622] = new State(-528);
states[623] = new State(-480);
states[624] = new State(new int[]{8,626,135,23,78,25,79,26,73,28,71,29},new int[]{-287,625,-140,634,-129,633,-133,24,-134,27});
states[625] = new State(-490);
states[626] = new State(new int[]{135,23,78,25,79,26,73,28,71,29},new int[]{-129,627,-133,24,-134,27});
states[627] = new State(new int[]{92,628});
states[628] = new State(new int[]{135,23,78,25,79,26,73,28,71,29},new int[]{-140,629,-129,633,-133,24,-134,27});
states[629] = new State(new int[]{9,630,92,407});
states[630] = new State(new int[]{102,631});
states[631] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248,5,527},new int[]{-80,632,-90,126,-89,131,-88,301,-92,309,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525,-104,526});
states[632] = new State(-492);
states[633] = new State(-325);
states[634] = new State(new int[]{5,635,92,407,102,895});
states[635] = new State(new int[]{135,462,78,25,79,26,73,28,71,29,146,153,148,154,147,155,108,269,107,270,136,148,138,149,137,151,8,471,134,475,20,480,43,488,44,697,29,701,69,705,60,708,39,713,32,728},new int[]{-257,636,-254,412,-84,174,-93,414,-94,415,-163,416,-129,195,-133,24,-134,27,-14,466,-182,467,-147,470,-149,146,-148,150,-237,473,-230,474,-261,477,-262,478,-259,479,-252,486,-26,487,-245,696,-112,700,-113,704,-208,710,-206,711,-205,712,-278,732});
states[636] = new State(new int[]{102,893,112,894,84,-385,10,-385,90,-385,93,-385,28,-385,96,-385,27,-385,92,-385,12,-385,9,-385,91,-385,79,-385,78,-385,2,-385,77,-385,76,-385,75,-385,74,-385},new int[]{-312,637});
states[637] = new State(new int[]{135,23,78,25,79,26,73,28,71,225,37,240,17,243,18,248,11,253,146,153,148,154,147,155,136,148,138,149,137,151,51,259,133,260,8,883,127,265,108,269,107,270,58,157,32,827,39,841},new int[]{-79,638,-78,639,-77,238,-82,239,-74,190,-11,213,-9,223,-12,200,-129,640,-133,24,-134,27,-238,242,-274,247,-221,252,-14,257,-147,258,-149,146,-148,150,-182,267,-156,271,-247,272,-251,273,-223,274,-86,294,-224,295,-51,287,-298,892});
states[638] = new State(-387);
states[639] = new State(-388);
states[640] = new State(new int[]{119,641,4,-156,7,-156,134,-156,8,-156,11,-156,111,-156,128,-156,130,-156,110,-156,109,-156,123,-156,124,-156,125,-156,126,-156,122,-156,108,-156,107,-156,120,-156,121,-156,112,-156,117,-156,115,-156,113,-156,116,-156,114,-156,129,-156,13,-156,84,-156,10,-156,90,-156,93,-156,28,-156,96,-156,27,-156,92,-156,12,-156,9,-156,91,-156,79,-156,78,-156,2,-156,77,-156,76,-156,75,-156,74,-156});
states[641] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248,83,115,35,545,49,585,89,580,30,590,31,616,21,563,94,606,55,650,70,784},new int[]{-303,642,-90,541,-89,131,-88,301,-92,542,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525,-236,543,-135,544,-293,643,-228,644,-106,645,-105,646,-30,647,-279,648,-151,649,-108,783});
states[642] = new State(-390);
states[643] = new State(-863);
states[644] = new State(-864);
states[645] = new State(-865);
states[646] = new State(-866);
states[647] = new State(-867);
states[648] = new State(-868);
states[649] = new State(-869);
states[650] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248},new int[]{-90,651,-89,131,-88,301,-92,542,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525});
states[651] = new State(new int[]{91,652,13,127});
states[652] = new State(new int[]{133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,516,8,517,17,243,18,248,136,148,138,149,137,151,146,153,148,154,147,155,52,555,83,115,35,545,21,563,89,580,49,585,30,590,50,600,94,606,42,613,31,616,48,624,55,650,70,659,68,665,33,670,84,-465,10,-465,90,-465,93,-465,28,-465,96,-465,27,-465,92,-465,12,-465,9,-465,91,-465,2,-465,77,-465,76,-465,75,-465,74,-465},new int[]{-242,653,-3,121,-99,122,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-13,551,-147,145,-149,146,-148,150,-14,152,-52,552,-102,445,-194,553,-115,554,-236,560,-135,561,-30,562,-228,579,-293,584,-106,589,-294,599,-142,604,-279,605,-229,612,-105,615,-289,623,-53,654,-157,655,-156,656,-151,657,-108,658,-109,663,-107,664,-315,669});
states[653] = new State(-527);
states[654] = new State(-481);
states[655] = new State(-561);
states[656] = new State(-562);
states[657] = new State(-482);
states[658] = new State(-483);
states[659] = new State(new int[]{69,661,51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248},new int[]{-90,660,-89,131,-88,301,-92,542,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525});
states[660] = new State(new int[]{13,127,84,-488,10,-488,90,-488,93,-488,28,-488,96,-488,27,-488,92,-488,12,-488,9,-488,91,-488,79,-488,78,-488,2,-488,77,-488,76,-488,75,-488,74,-488});
states[661] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248},new int[]{-90,662,-89,131,-88,301,-92,542,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525});
states[662] = new State(new int[]{13,127,84,-489,10,-489,90,-489,93,-489,28,-489,96,-489,27,-489,92,-489,12,-489,9,-489,91,-489,79,-489,78,-489,2,-489,77,-489,76,-489,75,-489,74,-489});
states[663] = new State(-484);
states[664] = new State(-485);
states[665] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248},new int[]{-90,666,-89,131,-88,301,-92,542,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525});
states[666] = new State(new int[]{91,667,13,127});
states[667] = new State(new int[]{133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,516,8,517,17,243,18,248,136,148,138,149,137,151,146,153,148,154,147,155,52,555,83,115,35,545,21,563,89,580,49,585,30,590,50,600,94,606,42,613,31,616,48,624,55,650,70,659,68,665,33,670,84,-465,10,-465,90,-465,93,-465,28,-465,96,-465,27,-465,92,-465,12,-465,9,-465,91,-465,2,-465,77,-465,76,-465,75,-465,74,-465},new int[]{-242,668,-3,121,-99,122,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-13,551,-147,145,-149,146,-148,150,-14,152,-52,552,-102,445,-194,553,-115,554,-236,560,-135,561,-30,562,-228,579,-293,584,-106,589,-294,599,-142,604,-279,605,-229,612,-105,615,-289,623,-53,654,-157,655,-156,656,-151,657,-108,658,-109,663,-107,664,-315,669});
states[668] = new State(-487);
states[669] = new State(-486);
states[670] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248},new int[]{-90,671,-89,131,-88,301,-92,542,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525});
states[671] = new State(new int[]{50,672,13,127});
states[672] = new State(new int[]{135,23,78,25,79,26,73,28,71,29},new int[]{-317,673,-316,882,-314,680,-263,687,-163,161,-129,195,-133,24,-134,27});
states[673] = new State(new int[]{10,676,27,573,84,-521},new int[]{-234,674});
states[674] = new State(new int[]{84,675});
states[675] = new State(-506);
states[676] = new State(new int[]{27,573,135,23,78,25,79,26,73,28,71,29,84,-521},new int[]{-234,677,-316,679,-314,680,-263,687,-163,161,-129,195,-133,24,-134,27});
states[677] = new State(new int[]{84,678});
states[678] = new State(-507);
states[679] = new State(-509);
states[680] = new State(new int[]{34,681,5,685});
states[681] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248},new int[]{-90,682,-89,131,-88,301,-92,542,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525});
states[682] = new State(new int[]{5,683,13,127});
states[683] = new State(new int[]{133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,516,8,517,17,243,18,248,136,148,138,149,137,151,146,153,148,154,147,155,52,555,83,115,35,545,21,563,89,580,49,585,30,590,50,600,94,606,42,613,31,616,48,624,55,650,70,659,68,665,33,670,10,-465,27,-465,84,-465},new int[]{-242,684,-3,121,-99,122,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-13,551,-147,145,-149,146,-148,150,-14,152,-52,552,-102,445,-194,553,-115,554,-236,560,-135,561,-30,562,-228,579,-293,584,-106,589,-294,599,-142,604,-279,605,-229,612,-105,615,-289,623,-53,654,-157,655,-156,656,-151,657,-108,658,-109,663,-107,664,-315,669});
states[684] = new State(-510);
states[685] = new State(new int[]{133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,516,8,517,17,243,18,248,136,148,138,149,137,151,146,153,148,154,147,155,52,555,83,115,35,545,21,563,89,580,49,585,30,590,50,600,94,606,42,613,31,616,48,624,55,650,70,659,68,665,33,670,10,-465,27,-465,84,-465},new int[]{-242,686,-3,121,-99,122,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-13,551,-147,145,-149,146,-148,150,-14,152,-52,552,-102,445,-194,553,-115,554,-236,560,-135,561,-30,562,-228,579,-293,584,-106,589,-294,599,-142,604,-279,605,-229,612,-105,615,-289,623,-53,654,-157,655,-156,656,-151,657,-108,658,-109,663,-107,664,-315,669});
states[686] = new State(-511);
states[687] = new State(new int[]{8,688});
states[688] = new State(new int[]{135,23,78,25,79,26,73,28,71,29,48,874},new int[]{-321,689,-319,881,-129,693,-133,24,-134,27,-314,878,-263,687,-163,161});
states[689] = new State(new int[]{9,690,10,691,92,879});
states[690] = new State(-594);
states[691] = new State(new int[]{135,23,78,25,79,26,73,28,71,29,48,874},new int[]{-319,692,-129,693,-133,24,-134,27,-314,878,-263,687,-163,161});
states[692] = new State(-596);
states[693] = new State(new int[]{5,694,9,-605,10,-605,92,-605,7,-240,4,-240,115,-240,8,-240});
states[694] = new State(new int[]{135,462,78,25,79,26,73,28,71,29,146,153,148,154,147,155,108,269,107,270,136,148,138,149,137,151,8,471,134,475,20,480,43,488,44,697,29,701,69,705,60,708,39,713,32,728},new int[]{-257,695,-254,412,-84,174,-93,414,-94,415,-163,416,-129,195,-133,24,-134,27,-14,466,-182,467,-147,470,-149,146,-148,150,-237,473,-230,474,-261,477,-262,478,-259,479,-252,486,-26,487,-245,696,-112,700,-113,704,-208,710,-206,711,-205,712,-278,732});
states[695] = new State(-604);
states[696] = new State(-251);
states[697] = new State(new int[]{53,698});
states[698] = new State(new int[]{135,462,78,25,79,26,73,28,71,29,146,153,148,154,147,155,108,269,107,270,136,148,138,149,137,151,8,471,134,475,20,480,43,488,44,697,29,701,69,705,60,708,39,713,32,728},new int[]{-257,699,-254,412,-84,174,-93,414,-94,415,-163,416,-129,195,-133,24,-134,27,-14,466,-182,467,-147,470,-149,146,-148,150,-237,473,-230,474,-261,477,-262,478,-259,479,-252,486,-26,487,-245,696,-112,700,-113,704,-208,710,-206,711,-205,712,-278,732});
states[699] = new State(-262);
states[700] = new State(-252);
states[701] = new State(new int[]{53,702,113,-264,92,-264,10,-264,9,-264,119,-264,112,-264,102,-264,84,-264,90,-264,93,-264,28,-264,96,-264,27,-264,12,-264,91,-264,79,-264,78,-264,2,-264,77,-264,76,-264,75,-264,74,-264,129,-264});
states[702] = new State(new int[]{135,462,78,25,79,26,73,28,71,29,146,153,148,154,147,155,108,269,107,270,136,148,138,149,137,151,8,471,134,475,20,480,43,488,44,697,29,701,69,705,60,708,39,713,32,728},new int[]{-257,703,-254,412,-84,174,-93,414,-94,415,-163,416,-129,195,-133,24,-134,27,-14,466,-182,467,-147,470,-149,146,-148,150,-237,473,-230,474,-261,477,-262,478,-259,479,-252,486,-26,487,-245,696,-112,700,-113,704,-208,710,-206,711,-205,712,-278,732});
states[703] = new State(-263);
states[704] = new State(-253);
states[705] = new State(new int[]{53,706});
states[706] = new State(new int[]{135,462,78,25,79,26,73,28,71,29,146,153,148,154,147,155,108,269,107,270,136,148,138,149,137,151,8,471,134,475,20,480,43,488,44,697,29,701,69,705,60,708,39,713,32,728},new int[]{-257,707,-254,412,-84,174,-93,414,-94,415,-163,416,-129,195,-133,24,-134,27,-14,466,-182,467,-147,470,-149,146,-148,150,-237,473,-230,474,-261,477,-262,478,-259,479,-252,486,-26,487,-245,696,-112,700,-113,704,-208,710,-206,711,-205,712,-278,732});
states[707] = new State(-254);
states[708] = new State(new int[]{20,480,43,488,44,697,29,701,69,705},new int[]{-262,709,-259,479,-252,486,-26,487,-245,696,-112,700,-113,704});
states[709] = new State(-248);
states[710] = new State(-217);
states[711] = new State(-266);
states[712] = new State(-267);
states[713] = new State(new int[]{8,715,113,-441,92,-441,10,-441,9,-441,119,-441,112,-441,102,-441,84,-441,90,-441,93,-441,28,-441,96,-441,27,-441,12,-441,91,-441,79,-441,78,-441,2,-441,77,-441,76,-441,75,-441,74,-441,129,-441},new int[]{-110,714});
states[714] = new State(-268);
states[715] = new State(new int[]{9,716,11,760,135,-199,78,-199,79,-199,73,-199,71,-199,48,-199,24,-199,100,-199},new int[]{-111,717,-50,873,-5,721,-231,872});
states[716] = new State(-442);
states[717] = new State(new int[]{9,718,10,719});
states[718] = new State(-443);
states[719] = new State(new int[]{11,760,135,-199,78,-199,79,-199,73,-199,71,-199,48,-199,24,-199,100,-199},new int[]{-50,720,-5,721,-231,872});
states[720] = new State(-445);
states[721] = new State(new int[]{135,23,78,25,79,26,73,28,71,29,48,744,24,750,100,756,11,760},new int[]{-275,722,-231,504,-141,723,-117,743,-129,742,-133,24,-134,27});
states[722] = new State(-446);
states[723] = new State(new int[]{5,724,92,740});
states[724] = new State(new int[]{135,462,78,25,79,26,73,28,71,29,146,153,148,154,147,155,108,269,107,270,136,148,138,149,137,151,8,471,134,475,20,480,43,488,44,697,29,701,69,705,60,708,39,713,32,728},new int[]{-256,725,-257,411,-254,412,-84,174,-93,414,-94,415,-163,416,-129,195,-133,24,-134,27,-14,466,-182,467,-147,470,-149,146,-148,150,-237,473,-230,474,-261,477,-262,478,-259,479,-252,486,-26,487,-245,696,-112,700,-113,704,-208,710,-206,711,-205,712,-278,732});
states[725] = new State(new int[]{102,726,9,-447,10,-447});
states[726] = new State(new int[]{135,23,78,25,79,26,73,28,71,225,37,240,17,243,18,248,11,253,146,153,148,154,147,155,136,148,138,149,137,151,51,259,133,260,8,262,127,265,108,269,107,270},new int[]{-82,727,-74,190,-11,213,-9,223,-12,200,-129,224,-133,24,-134,27,-238,242,-274,247,-221,252,-14,257,-147,258,-149,146,-148,150,-182,267,-156,271,-247,272,-251,273,-223,274});
states[727] = new State(new int[]{13,186,9,-451,10,-451});
states[728] = new State(new int[]{8,715,5,-441,113,-441,92,-441,10,-441,9,-441,119,-441,112,-441,102,-441,84,-441,90,-441,93,-441,28,-441,96,-441,27,-441,12,-441,91,-441,79,-441,78,-441,2,-441,77,-441,76,-441,75,-441,74,-441,129,-441},new int[]{-110,729});
states[729] = new State(new int[]{5,730,113,-269,92,-269,10,-269,9,-269,119,-269,112,-269,102,-269,84,-269,90,-269,93,-269,28,-269,96,-269,27,-269,12,-269,91,-269,79,-269,78,-269,2,-269,77,-269,76,-269,75,-269,74,-269,129,-269});
states[730] = new State(new int[]{135,462,78,25,79,26,73,28,71,29,146,153,148,154,147,155,108,269,107,270,136,148,138,149,137,151,8,471,134,475,20,480,43,488,44,697,29,701,69,705,60,708,39,713,32,728},new int[]{-256,731,-257,411,-254,412,-84,174,-93,414,-94,415,-163,416,-129,195,-133,24,-134,27,-14,466,-182,467,-147,470,-149,146,-148,150,-237,473,-230,474,-261,477,-262,478,-259,479,-252,486,-26,487,-245,696,-112,700,-113,704,-208,710,-206,711,-205,712,-278,732});
states[731] = new State(-270);
states[732] = new State(new int[]{119,733,10,-218,9,-218,112,-218,92,-218,113,-218,102,-218,84,-218,90,-218,93,-218,28,-218,96,-218,27,-218,12,-218,91,-218,79,-218,78,-218,2,-218,77,-218,76,-218,75,-218,74,-218,129,-218});
states[733] = new State(new int[]{8,735,135,23,78,25,79,26,73,28,71,29,146,153,148,154,147,155,108,269,107,270,136,148,138,149,137,151,20,480,43,488,44,697,29,701,69,705,60,708,39,713,32,728},new int[]{-260,734,-254,172,-84,174,-93,414,-94,415,-163,416,-129,195,-133,24,-134,27,-14,466,-182,467,-147,470,-149,146,-148,150,-261,737,-262,478,-259,479,-252,486,-26,487,-245,696,-112,700,-113,704,-208,738,-206,711,-205,712,-278,739});
states[734] = new State(-272);
states[735] = new State(new int[]{9,736,135,462,78,25,79,26,73,28,71,29,146,153,148,154,147,155,108,269,107,270,136,148,138,149,137,151,8,471,134,475,20,480,43,488,44,697,29,701,69,705,60,708,39,713,32,728},new int[]{-73,425,-71,431,-257,434,-254,412,-84,174,-93,414,-94,415,-163,416,-129,195,-133,24,-134,27,-14,466,-182,467,-147,470,-149,146,-148,150,-237,473,-230,474,-261,477,-262,478,-259,479,-252,486,-26,487,-245,696,-112,700,-113,704,-208,710,-206,711,-205,712,-278,732});
states[736] = new State(new int[]{119,421,113,-276,92,-276,10,-276,9,-276,112,-276,102,-276,84,-276,90,-276,93,-276,28,-276,96,-276,27,-276,12,-276,91,-276,79,-276,78,-276,2,-276,77,-276,76,-276,75,-276,74,-276,129,-276});
states[737] = new State(-225);
states[738] = new State(-226);
states[739] = new State(new int[]{119,733,113,-227,92,-227,10,-227,9,-227,112,-227,102,-227,84,-227,90,-227,93,-227,28,-227,96,-227,27,-227,12,-227,91,-227,79,-227,78,-227,2,-227,77,-227,76,-227,75,-227,74,-227,129,-227});
states[740] = new State(new int[]{135,23,78,25,79,26,73,28,71,29},new int[]{-117,741,-129,742,-133,24,-134,27});
states[741] = new State(-455);
states[742] = new State(-456);
states[743] = new State(-454);
states[744] = new State(new int[]{135,23,78,25,79,26,73,28,71,29},new int[]{-141,745,-117,743,-129,742,-133,24,-134,27});
states[745] = new State(new int[]{5,746,92,740});
states[746] = new State(new int[]{135,462,78,25,79,26,73,28,71,29,146,153,148,154,147,155,108,269,107,270,136,148,138,149,137,151,8,471,134,475,20,480,43,488,44,697,29,701,69,705,60,708,39,713,32,728},new int[]{-256,747,-257,411,-254,412,-84,174,-93,414,-94,415,-163,416,-129,195,-133,24,-134,27,-14,466,-182,467,-147,470,-149,146,-148,150,-237,473,-230,474,-261,477,-262,478,-259,479,-252,486,-26,487,-245,696,-112,700,-113,704,-208,710,-206,711,-205,712,-278,732});
states[747] = new State(new int[]{102,748,9,-448,10,-448});
states[748] = new State(new int[]{135,23,78,25,79,26,73,28,71,225,37,240,17,243,18,248,11,253,146,153,148,154,147,155,136,148,138,149,137,151,51,259,133,260,8,262,127,265,108,269,107,270},new int[]{-82,749,-74,190,-11,213,-9,223,-12,200,-129,224,-133,24,-134,27,-238,242,-274,247,-221,252,-14,257,-147,258,-149,146,-148,150,-182,267,-156,271,-247,272,-251,273,-223,274});
states[749] = new State(new int[]{13,186,9,-452,10,-452});
states[750] = new State(new int[]{135,23,78,25,79,26,73,28,71,29},new int[]{-141,751,-117,743,-129,742,-133,24,-134,27});
states[751] = new State(new int[]{5,752,92,740});
states[752] = new State(new int[]{135,462,78,25,79,26,73,28,71,29,146,153,148,154,147,155,108,269,107,270,136,148,138,149,137,151,8,471,134,475,20,480,43,488,44,697,29,701,69,705,60,708,39,713,32,728},new int[]{-256,753,-257,411,-254,412,-84,174,-93,414,-94,415,-163,416,-129,195,-133,24,-134,27,-14,466,-182,467,-147,470,-149,146,-148,150,-237,473,-230,474,-261,477,-262,478,-259,479,-252,486,-26,487,-245,696,-112,700,-113,704,-208,710,-206,711,-205,712,-278,732});
states[753] = new State(new int[]{102,754,9,-449,10,-449});
states[754] = new State(new int[]{135,23,78,25,79,26,73,28,71,225,37,240,17,243,18,248,11,253,146,153,148,154,147,155,136,148,138,149,137,151,51,259,133,260,8,262,127,265,108,269,107,270},new int[]{-82,755,-74,190,-11,213,-9,223,-12,200,-129,224,-133,24,-134,27,-238,242,-274,247,-221,252,-14,257,-147,258,-149,146,-148,150,-182,267,-156,271,-247,272,-251,273,-223,274});
states[755] = new State(new int[]{13,186,9,-453,10,-453});
states[756] = new State(new int[]{135,23,78,25,79,26,73,28,71,29},new int[]{-141,757,-117,743,-129,742,-133,24,-134,27});
states[757] = new State(new int[]{5,758,92,740});
states[758] = new State(new int[]{135,462,78,25,79,26,73,28,71,29,146,153,148,154,147,155,108,269,107,270,136,148,138,149,137,151,8,471,134,475,20,480,43,488,44,697,29,701,69,705,60,708,39,713,32,728},new int[]{-256,759,-257,411,-254,412,-84,174,-93,414,-94,415,-163,416,-129,195,-133,24,-134,27,-14,466,-182,467,-147,470,-149,146,-148,150,-237,473,-230,474,-261,477,-262,478,-259,479,-252,486,-26,487,-245,696,-112,700,-113,704,-208,710,-206,711,-205,712,-278,732});
states[759] = new State(-450);
states[760] = new State(new int[]{135,23,78,25,79,26,73,28,71,29},new int[]{-232,761,-7,871,-8,765,-163,766,-129,866,-133,24,-134,27,-278,869});
states[761] = new State(new int[]{12,762,92,763});
states[762] = new State(-200);
states[763] = new State(new int[]{135,23,78,25,79,26,73,28,71,29},new int[]{-7,764,-8,765,-163,766,-129,866,-133,24,-134,27,-278,869});
states[764] = new State(-202);
states[765] = new State(-203);
states[766] = new State(new int[]{7,162,8,769,115,167,12,-588,92,-588},new int[]{-63,767,-277,768});
states[767] = new State(-669);
states[768] = new State(-219);
states[769] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,772,17,243,18,248,5,527,32,827,39,841,9,-690},new int[]{-61,770,-64,298,-81,351,-80,125,-90,126,-89,131,-88,301,-92,309,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,538,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525,-104,526,-297,825,-298,826});
states[770] = new State(new int[]{9,771});
states[771] = new State(-589);
states[772] = new State(new int[]{9,801,51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248,5,527},new int[]{-80,393,-90,773,-129,805,-89,131,-88,301,-92,309,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525,-104,526});
states[773] = new State(new int[]{92,774,13,127,9,-565});
states[774] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248},new int[]{-72,775,-90,800,-89,131,-88,301,-92,542,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525});
states[775] = new State(new int[]{92,798,5,409,10,-856,9,-856},new int[]{-299,776});
states[776] = new State(new int[]{10,401,9,-844},new int[]{-305,777});
states[777] = new State(new int[]{9,778});
states[778] = new State(new int[]{5,785,7,-651,130,-651,128,-651,110,-651,109,-651,123,-651,124,-651,125,-651,126,-651,122,-651,108,-651,107,-651,120,-651,121,-651,118,-651,112,-651,117,-651,115,-651,113,-651,116,-651,114,-651,129,-651,15,-651,13,-651,84,-651,10,-651,90,-651,93,-651,28,-651,96,-651,27,-651,92,-651,12,-651,9,-651,91,-651,79,-651,78,-651,2,-651,77,-651,76,-651,75,-651,74,-651,111,-651,119,-858},new int[]{-309,779,-300,780});
states[779] = new State(-842);
states[780] = new State(new int[]{119,781});
states[781] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248,83,115,35,545,49,585,89,580,30,590,31,616,21,563,94,606,55,650,70,784},new int[]{-303,782,-90,541,-89,131,-88,301,-92,542,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525,-236,543,-135,544,-293,643,-228,644,-106,645,-105,646,-30,647,-279,648,-151,649,-108,783});
states[782] = new State(-846);
states[783] = new State(-870);
states[784] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248},new int[]{-90,660,-89,131,-88,301,-92,542,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525});
states[785] = new State(new int[]{135,462,78,25,79,26,73,28,71,29,146,153,148,154,147,155,108,269,107,270,136,148,138,149,137,151,8,789,134,475,20,480,43,488,44,697,29,701,69,705,60,708},new int[]{-258,786,-254,787,-84,174,-93,414,-94,415,-163,788,-129,195,-133,24,-134,27,-14,466,-182,467,-147,470,-149,146,-148,150,-237,794,-230,795,-261,796,-262,478,-259,479,-252,486,-26,487,-245,696,-112,700,-113,704,-278,797});
states[786] = new State(-859);
states[787] = new State(-458);
states[788] = new State(new int[]{7,162,115,167,8,-235,110,-235,109,-235,123,-235,124,-235,125,-235,126,-235,122,-235,6,-235,108,-235,107,-235,120,-235,121,-235,119,-235},new int[]{-277,768});
states[789] = new State(new int[]{135,462,78,25,79,26,73,28,71,29,146,153,148,154,147,155,108,269,107,270,136,148,138,149,137,151,8,471,134,475,20,480,43,488,44,697,29,701,69,705,60,708,39,713,32,728},new int[]{-73,790,-71,431,-257,434,-254,412,-84,174,-93,414,-94,415,-163,416,-129,195,-133,24,-134,27,-14,466,-182,467,-147,470,-149,146,-148,150,-237,473,-230,474,-261,477,-262,478,-259,479,-252,486,-26,487,-245,696,-112,700,-113,704,-208,710,-206,711,-205,712,-278,732});
states[790] = new State(new int[]{9,791,92,792});
states[791] = new State(-230);
states[792] = new State(new int[]{135,462,78,25,79,26,73,28,71,29,146,153,148,154,147,155,108,269,107,270,136,148,138,149,137,151,8,471,134,475,20,480,43,488,44,697,29,701,69,705,60,708,39,713,32,728},new int[]{-71,793,-257,434,-254,412,-84,174,-93,414,-94,415,-163,416,-129,195,-133,24,-134,27,-14,466,-182,467,-147,470,-149,146,-148,150,-237,473,-230,474,-261,477,-262,478,-259,479,-252,486,-26,487,-245,696,-112,700,-113,704,-208,710,-206,711,-205,712,-278,732});
states[793] = new State(-243);
states[794] = new State(-459);
states[795] = new State(-460);
states[796] = new State(-461);
states[797] = new State(-462);
states[798] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248},new int[]{-90,799,-89,131,-88,301,-92,542,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525});
states[799] = new State(new int[]{13,127,92,-111,5,-111,10,-111,9,-111});
states[800] = new State(new int[]{13,127,92,-110,5,-110,10,-110,9,-110});
states[801] = new State(new int[]{5,785,119,-858},new int[]{-300,802});
states[802] = new State(new int[]{119,803});
states[803] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248,83,115,35,545,49,585,89,580,30,590,31,616,21,563,94,606,55,650,70,784},new int[]{-303,804,-90,541,-89,131,-88,301,-92,542,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525,-236,543,-135,544,-293,643,-228,644,-106,645,-105,646,-30,647,-279,648,-151,649,-108,783});
states[804] = new State(-838);
states[805] = new State(new int[]{5,806,10,819,11,-675,16,-675,8,-675,7,-675,134,-675,4,-675,14,-675,130,-675,128,-675,110,-675,109,-675,123,-675,124,-675,125,-675,126,-675,122,-675,108,-675,107,-675,120,-675,121,-675,118,-675,112,-675,117,-675,115,-675,113,-675,116,-675,114,-675,129,-675,15,-675,92,-675,13,-675,9,-675,111,-675});
states[806] = new State(new int[]{135,462,78,25,79,26,73,28,71,29,146,153,148,154,147,155,108,269,107,270,136,148,138,149,137,151,8,471,134,475,20,480,43,488,44,697,29,701,69,705,60,708,39,713,32,728},new int[]{-256,807,-257,411,-254,412,-84,174,-93,414,-94,415,-163,416,-129,195,-133,24,-134,27,-14,466,-182,467,-147,470,-149,146,-148,150,-237,473,-230,474,-261,477,-262,478,-259,479,-252,486,-26,487,-245,696,-112,700,-113,704,-208,710,-206,711,-205,712,-278,732});
states[807] = new State(new int[]{9,808,10,812});
states[808] = new State(new int[]{5,785,119,-858},new int[]{-300,809});
states[809] = new State(new int[]{119,810});
states[810] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248,83,115,35,545,49,585,89,580,30,590,31,616,21,563,94,606,55,650,70,784},new int[]{-303,811,-90,541,-89,131,-88,301,-92,542,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525,-236,543,-135,544,-293,643,-228,644,-106,645,-105,646,-30,647,-279,648,-151,649,-108,783});
states[811] = new State(-839);
states[812] = new State(new int[]{135,23,78,25,79,26,73,28,71,29},new int[]{-301,813,-302,818,-140,405,-129,633,-133,24,-134,27});
states[813] = new State(new int[]{9,814,10,403});
states[814] = new State(new int[]{5,785,119,-858},new int[]{-300,815});
states[815] = new State(new int[]{119,816});
states[816] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248,83,115,35,545,49,585,89,580,30,590,31,616,21,563,94,606,55,650,70,784},new int[]{-303,817,-90,541,-89,131,-88,301,-92,542,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525,-236,543,-135,544,-293,643,-228,644,-106,645,-105,646,-30,647,-279,648,-151,649,-108,783});
states[817] = new State(-841);
states[818] = new State(-853);
states[819] = new State(new int[]{135,23,78,25,79,26,73,28,71,29},new int[]{-301,820,-302,818,-140,405,-129,633,-133,24,-134,27});
states[820] = new State(new int[]{9,821,10,403});
states[821] = new State(new int[]{5,785,119,-858},new int[]{-300,822});
states[822] = new State(new int[]{119,823});
states[823] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248,83,115,35,545,49,585,89,580,30,590,31,616,21,563,94,606,55,650,70,784},new int[]{-303,824,-90,541,-89,131,-88,301,-92,542,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525,-236,543,-135,544,-293,643,-228,644,-106,645,-105,646,-30,647,-279,648,-151,649,-108,783});
states[824] = new State(-840);
states[825] = new State(-564);
states[826] = new State(-843);
states[827] = new State(new int[]{8,831,5,409,119,-856},new int[]{-299,828});
states[828] = new State(new int[]{119,829});
states[829] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248,83,115,35,545,49,585,89,580,30,590,31,616,21,563,94,606,55,650,70,784},new int[]{-303,830,-90,541,-89,131,-88,301,-92,542,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525,-236,543,-135,544,-293,643,-228,644,-106,645,-105,646,-30,647,-279,648,-151,649,-108,783});
states[830] = new State(-847);
states[831] = new State(new int[]{9,832,135,23,78,25,79,26,73,28,71,29},new int[]{-301,836,-302,818,-140,405,-129,633,-133,24,-134,27});
states[832] = new State(new int[]{5,409,119,-856},new int[]{-299,833});
states[833] = new State(new int[]{119,834});
states[834] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248,83,115,35,545,49,585,89,580,30,590,31,616,21,563,94,606,55,650,70,784},new int[]{-303,835,-90,541,-89,131,-88,301,-92,542,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525,-236,543,-135,544,-293,643,-228,644,-106,645,-105,646,-30,647,-279,648,-151,649,-108,783});
states[835] = new State(-848);
states[836] = new State(new int[]{9,837,10,403});
states[837] = new State(new int[]{5,409,119,-856},new int[]{-299,838});
states[838] = new State(new int[]{119,839});
states[839] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248,83,115,35,545,49,585,89,580,30,590,31,616,21,563,94,606,55,650,70,784},new int[]{-303,840,-90,541,-89,131,-88,301,-92,542,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525,-236,543,-135,544,-293,643,-228,644,-106,645,-105,646,-30,647,-279,648,-151,649,-108,783});
states[840] = new State(-849);
states[841] = new State(new int[]{119,842,8,858});
states[842] = new State(new int[]{133,352,135,23,78,25,79,26,73,28,71,29,40,360,37,390,8,845,17,243,18,248,136,148,138,149,137,151,146,153,148,154,147,155,83,115,35,545,49,585,89,580,30,590,31,616,21,563,94,606,55,650,70,784,42,613},new int[]{-304,843,-194,844,-99,122,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-13,551,-147,145,-149,146,-148,150,-14,152,-52,552,-102,445,-236,846,-135,847,-293,848,-228,849,-106,850,-105,851,-30,852,-279,853,-151,854,-108,855,-229,856,-3,857});
states[843] = new State(-850);
states[844] = new State(-871);
states[845] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248,5,527},new int[]{-80,393,-90,395,-98,518,-89,131,-88,301,-92,309,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525,-104,526});
states[846] = new State(-872);
states[847] = new State(-873);
states[848] = new State(-874);
states[849] = new State(-875);
states[850] = new State(-876);
states[851] = new State(-877);
states[852] = new State(-878);
states[853] = new State(-879);
states[854] = new State(-880);
states[855] = new State(-881);
states[856] = new State(-882);
states[857] = new State(-883);
states[858] = new State(new int[]{9,859,135,23,78,25,79,26,73,28,71,29},new int[]{-301,862,-302,818,-140,405,-129,633,-133,24,-134,27});
states[859] = new State(new int[]{119,860});
states[860] = new State(new int[]{133,352,135,23,78,25,79,26,73,28,71,29,40,360,37,390,8,845,17,243,18,248,136,148,138,149,137,151,146,153,148,154,147,155,83,115,35,545,49,585,89,580,30,590,31,616,21,563,94,606,55,650,70,784,42,613},new int[]{-304,861,-194,844,-99,122,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-13,551,-147,145,-149,146,-148,150,-14,152,-52,552,-102,445,-236,846,-135,847,-293,848,-228,849,-106,850,-105,851,-30,852,-279,853,-151,854,-108,855,-229,856,-3,857});
states[861] = new State(-851);
states[862] = new State(new int[]{9,863,10,403});
states[863] = new State(new int[]{119,864});
states[864] = new State(new int[]{133,352,135,23,78,25,79,26,73,28,71,29,40,360,37,390,8,845,17,243,18,248,136,148,138,149,137,151,146,153,148,154,147,155,83,115,35,545,49,585,89,580,30,590,31,616,21,563,94,606,55,650,70,784,42,613},new int[]{-304,865,-194,844,-99,122,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-13,551,-147,145,-149,146,-148,150,-14,152,-52,552,-102,445,-236,846,-135,847,-293,848,-228,849,-106,850,-105,851,-30,852,-279,853,-151,854,-108,855,-229,856,-3,857});
states[865] = new State(-852);
states[866] = new State(new int[]{5,867,7,-240,8,-240,115,-240,12,-240,92,-240});
states[867] = new State(new int[]{135,23,78,25,79,26,73,28,71,29},new int[]{-8,868,-163,766,-129,195,-133,24,-134,27,-278,869});
states[868] = new State(-204);
states[869] = new State(new int[]{8,769,12,-588,92,-588},new int[]{-63,870});
states[870] = new State(-670);
states[871] = new State(-201);
states[872] = new State(-197);
states[873] = new State(-444);
states[874] = new State(new int[]{135,23,78,25,79,26,73,28,71,29},new int[]{-129,875,-133,24,-134,27});
states[875] = new State(new int[]{5,876,9,-607,10,-607,92,-607});
states[876] = new State(new int[]{135,462,78,25,79,26,73,28,71,29,146,153,148,154,147,155,108,269,107,270,136,148,138,149,137,151,8,471,134,475,20,480,43,488,44,697,29,701,69,705,60,708,39,713,32,728},new int[]{-257,877,-254,412,-84,174,-93,414,-94,415,-163,416,-129,195,-133,24,-134,27,-14,466,-182,467,-147,470,-149,146,-148,150,-237,473,-230,474,-261,477,-262,478,-259,479,-252,486,-26,487,-245,696,-112,700,-113,704,-208,710,-206,711,-205,712,-278,732});
states[877] = new State(-606);
states[878] = new State(-608);
states[879] = new State(new int[]{135,23,78,25,79,26,73,28,71,29,48,874},new int[]{-319,880,-129,693,-133,24,-134,27,-314,878,-263,687,-163,161});
states[880] = new State(-597);
states[881] = new State(-595);
states[882] = new State(-508);
states[883] = new State(new int[]{9,888,135,23,78,25,79,26,73,28,71,225,37,240,17,243,18,248,11,253,146,153,148,154,147,155,136,148,138,149,137,151,51,259,133,260,8,275,127,265,108,269,107,270,58,157},new int[]{-82,276,-60,884,-224,279,-86,281,-226,283,-74,190,-11,213,-9,223,-12,200,-129,285,-133,24,-134,27,-238,242,-274,247,-221,252,-14,257,-147,258,-149,146,-148,150,-182,267,-156,271,-247,272,-251,273,-223,274,-59,235,-78,286,-77,238,-51,287,-225,288,-227,297,-118,291});
states[884] = new State(new int[]{9,885});
states[885] = new State(new int[]{119,886,84,-182,10,-182,90,-182,93,-182,28,-182,96,-182,27,-182,92,-182,12,-182,9,-182,91,-182,79,-182,78,-182,2,-182,77,-182,76,-182,75,-182,74,-182});
states[886] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248,83,115,35,545,49,585,89,580,30,590,31,616,21,563,94,606,55,650,70,784},new int[]{-303,887,-90,541,-89,131,-88,301,-92,542,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525,-236,543,-135,544,-293,643,-228,644,-106,645,-105,646,-30,647,-279,648,-151,649,-108,783});
states[887] = new State(-392);
states[888] = new State(new int[]{5,409,119,-856},new int[]{-299,889});
states[889] = new State(new int[]{119,890});
states[890] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248,83,115,35,545,49,585,89,580,30,590,31,616,21,563,94,606,55,650,70,784},new int[]{-303,891,-90,541,-89,131,-88,301,-92,542,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525,-236,543,-135,544,-293,643,-228,644,-106,645,-105,646,-30,647,-279,648,-151,649,-108,783});
states[891] = new State(-391);
states[892] = new State(-389);
states[893] = new State(-383);
states[894] = new State(-384);
states[895] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248,5,527},new int[]{-80,896,-90,126,-89,131,-88,301,-92,309,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525,-104,526});
states[896] = new State(-386);
states[897] = new State(new int[]{135,462,78,25,79,26,73,28,71,29,146,153,148,154,147,155,108,269,107,270,136,148,138,149,137,151,8,471,134,475,20,480,43,488,44,697,29,701,69,705,60,708,39,713,32,728},new int[]{-257,898,-254,412,-84,174,-93,414,-94,415,-163,416,-129,195,-133,24,-134,27,-14,466,-182,467,-147,470,-149,146,-148,150,-237,473,-230,474,-261,477,-262,478,-259,479,-252,486,-26,487,-245,696,-112,700,-113,704,-208,710,-206,711,-205,712,-278,732});
states[898] = new State(-531);
states[899] = new State(new int[]{135,23,78,25,79,26,73,28,71,29},new int[]{-129,900,-133,24,-134,27});
states[900] = new State(new int[]{5,901,129,907});
states[901] = new State(new int[]{135,462,78,25,79,26,73,28,71,29,146,153,148,154,147,155,108,269,107,270,136,148,138,149,137,151,8,471,134,475,20,480,43,488,44,697,29,701,69,705,60,708,39,713,32,728},new int[]{-257,902,-254,412,-84,174,-93,414,-94,415,-163,416,-129,195,-133,24,-134,27,-14,466,-182,467,-147,470,-149,146,-148,150,-237,473,-230,474,-261,477,-262,478,-259,479,-252,486,-26,487,-245,696,-112,700,-113,704,-208,710,-206,711,-205,712,-278,732});
states[902] = new State(new int[]{129,903});
states[903] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248},new int[]{-90,904,-89,131,-88,301,-92,542,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525});
states[904] = new State(new int[]{91,905,13,127});
states[905] = new State(new int[]{133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,516,8,517,17,243,18,248,136,148,138,149,137,151,146,153,148,154,147,155,52,555,83,115,35,545,21,563,89,580,49,585,30,590,50,600,94,606,42,613,31,616,48,624,55,650,70,659,68,665,33,670,84,-465,10,-465,90,-465,93,-465,28,-465,96,-465,27,-465,92,-465,12,-465,9,-465,91,-465,2,-465,77,-465,76,-465,75,-465,74,-465},new int[]{-242,906,-3,121,-99,122,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-13,551,-147,145,-149,146,-148,150,-14,152,-52,552,-102,445,-194,553,-115,554,-236,560,-135,561,-30,562,-228,579,-293,584,-106,589,-294,599,-142,604,-279,605,-229,612,-105,615,-289,623,-53,654,-157,655,-156,656,-151,657,-108,658,-109,663,-107,664,-315,669});
states[906] = new State(-529);
states[907] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248},new int[]{-90,908,-89,131,-88,301,-92,542,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525});
states[908] = new State(new int[]{91,909,13,127});
states[909] = new State(new int[]{133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,516,8,517,17,243,18,248,136,148,138,149,137,151,146,153,148,154,147,155,52,555,83,115,35,545,21,563,89,580,49,585,30,590,50,600,94,606,42,613,31,616,48,624,55,650,70,659,68,665,33,670,84,-465,10,-465,90,-465,93,-465,28,-465,96,-465,27,-465,92,-465,12,-465,9,-465,91,-465,2,-465,77,-465,76,-465,75,-465,74,-465},new int[]{-242,910,-3,121,-99,122,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-13,551,-147,145,-149,146,-148,150,-14,152,-52,552,-102,445,-194,553,-115,554,-236,560,-135,561,-30,562,-228,579,-293,584,-106,589,-294,599,-142,604,-279,605,-229,612,-105,615,-289,623,-53,654,-157,655,-156,656,-151,657,-108,658,-109,663,-107,664,-315,669});
states[910] = new State(-530);
states[911] = new State(new int[]{5,912});
states[912] = new State(new int[]{133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,516,8,517,17,243,18,248,136,148,138,149,137,151,146,577,148,154,147,578,52,555,83,115,35,545,21,563,89,580,49,585,30,590,50,600,94,606,42,613,31,616,48,624,55,650,70,659,68,665,33,670,84,-465,10,-465,90,-465,93,-465,28,-465,96,-465},new int[]{-243,913,-242,120,-3,121,-99,122,-114,346,-98,353,-129,576,-133,24,-134,27,-174,359,-238,437,-274,438,-13,551,-147,145,-149,146,-148,150,-14,152,-52,552,-102,445,-194,553,-115,554,-236,560,-135,561,-30,562,-228,579,-293,584,-106,589,-294,599,-142,604,-279,605,-229,612,-105,615,-289,623,-53,654,-157,655,-156,656,-151,657,-108,658,-109,663,-107,664,-315,669,-125,911});
states[913] = new State(-464);
states[914] = new State(new int[]{72,922,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,516,8,517,17,243,18,248,136,148,138,149,137,151,146,577,148,154,147,578,52,555,83,115,35,545,21,563,89,580,49,585,30,590,50,600,94,606,42,613,31,616,48,624,55,650,70,659,68,665,33,670,10,-465,84,-465},new int[]{-54,915,-57,917,-56,934,-233,935,-243,575,-242,120,-3,121,-99,122,-114,346,-98,353,-129,576,-133,24,-134,27,-174,359,-238,437,-274,438,-13,551,-147,145,-149,146,-148,150,-14,152,-52,552,-102,445,-194,553,-115,554,-236,560,-135,561,-30,562,-228,579,-293,584,-106,589,-294,599,-142,604,-279,605,-229,612,-105,615,-289,623,-53,654,-157,655,-156,656,-151,657,-108,658,-109,663,-107,664,-315,669,-125,911});
states[915] = new State(new int[]{84,916});
states[916] = new State(-544);
states[917] = new State(new int[]{10,919,27,932,84,-550},new int[]{-235,918});
states[918] = new State(-545);
states[919] = new State(new int[]{72,922,27,932,84,-550},new int[]{-56,920,-235,921});
states[920] = new State(-549);
states[921] = new State(-546);
states[922] = new State(new int[]{135,23,78,25,79,26,73,28,71,29},new int[]{-58,923,-162,926,-163,927,-129,928,-133,24,-134,27,-122,929});
states[923] = new State(new int[]{91,924});
states[924] = new State(new int[]{133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,516,8,517,17,243,18,248,136,148,138,149,137,151,146,153,148,154,147,155,52,555,83,115,35,545,21,563,89,580,49,585,30,590,50,600,94,606,42,613,31,616,48,624,55,650,70,659,68,665,33,670,10,-465,27,-465,84,-465},new int[]{-242,925,-3,121,-99,122,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-13,551,-147,145,-149,146,-148,150,-14,152,-52,552,-102,445,-194,553,-115,554,-236,560,-135,561,-30,562,-228,579,-293,584,-106,589,-294,599,-142,604,-279,605,-229,612,-105,615,-289,623,-53,654,-157,655,-156,656,-151,657,-108,658,-109,663,-107,664,-315,669});
states[925] = new State(-552);
states[926] = new State(-553);
states[927] = new State(new int[]{7,162,91,-555});
states[928] = new State(new int[]{7,-240,91,-240,5,-556});
states[929] = new State(new int[]{5,930});
states[930] = new State(new int[]{135,23,78,25,79,26,73,28,71,29},new int[]{-162,931,-163,927,-129,195,-133,24,-134,27});
states[931] = new State(-554);
states[932] = new State(new int[]{133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,516,8,517,17,243,18,248,136,148,138,149,137,151,146,577,148,154,147,578,52,555,83,115,35,545,21,563,89,580,49,585,30,590,50,600,94,606,42,613,31,616,48,624,55,650,70,659,68,665,33,670,10,-465,84,-465},new int[]{-233,933,-243,575,-242,120,-3,121,-99,122,-114,346,-98,353,-129,576,-133,24,-134,27,-174,359,-238,437,-274,438,-13,551,-147,145,-149,146,-148,150,-14,152,-52,552,-102,445,-194,553,-115,554,-236,560,-135,561,-30,562,-228,579,-293,584,-106,589,-294,599,-142,604,-279,605,-229,612,-105,615,-289,623,-53,654,-157,655,-156,656,-151,657,-108,658,-109,663,-107,664,-315,669,-125,911});
states[933] = new State(new int[]{10,118,84,-551});
states[934] = new State(-548);
states[935] = new State(new int[]{10,118,84,-547});
states[936] = new State(-525);
states[937] = new State(-538);
states[938] = new State(-539);
states[939] = new State(-536);
states[940] = new State(new int[]{135,23,78,25,79,26,73,28,71,29},new int[]{-163,941,-129,195,-133,24,-134,27});
states[941] = new State(new int[]{102,942,7,162});
states[942] = new State(-537);
states[943] = new State(-534);
states[944] = new State(new int[]{5,945,92,947});
states[945] = new State(new int[]{133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,516,8,517,17,243,18,248,136,148,138,149,137,151,146,153,148,154,147,155,52,555,83,115,35,545,21,563,89,580,49,585,30,590,50,600,94,606,42,613,31,616,48,624,55,650,70,659,68,665,33,670,10,-465,27,-465,84,-465},new int[]{-242,946,-3,121,-99,122,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-13,551,-147,145,-149,146,-148,150,-14,152,-52,552,-102,445,-194,553,-115,554,-236,560,-135,561,-30,562,-228,579,-293,584,-106,589,-294,599,-142,604,-279,605,-229,612,-105,615,-289,623,-53,654,-157,655,-156,656,-151,657,-108,658,-109,663,-107,664,-315,669});
states[946] = new State(-517);
states[947] = new State(new int[]{135,23,78,25,79,26,73,28,71,225,37,240,17,243,18,248,11,253,146,153,148,154,147,155,136,148,138,149,137,151,51,259,133,260,8,262,127,265,108,269,107,270},new int[]{-97,948,-85,949,-82,185,-74,190,-11,213,-9,223,-12,200,-129,224,-133,24,-134,27,-238,242,-274,247,-221,252,-14,257,-147,258,-149,146,-148,150,-182,267,-156,271,-247,272,-251,273,-223,274});
states[948] = new State(-519);
states[949] = new State(-520);
states[950] = new State(-518);
states[951] = new State(new int[]{84,952});
states[952] = new State(-514);
states[953] = new State(-515);
states[954] = new State(new int[]{135,23,78,25,79,26,73,28,71,29,77,32,76,33,75,34,74,35,64,36,59,37,120,38,18,39,17,40,58,41,19,42,121,43,122,44,123,45,124,46,125,47,126,48,127,49,128,50,129,51,130,52,20,53,69,54,83,55,21,56,22,57,24,58,25,59,26,60,67,61,91,62,27,63,28,64,29,65,23,66,96,67,93,68,30,69,31,70,32,71,35,72,36,73,37,74,95,75,38,76,39,77,41,78,42,79,43,80,89,81,44,82,94,83,45,84,46,85,66,86,90,87,47,88,48,89,49,90,50,91,51,92,52,93,53,94,54,95,56,96,97,97,98,98,101,99,99,100,100,101,57,102,70,103,33,104,34,105,40,360},new int[]{-130,955,-129,442,-133,24,-134,27,-272,443,-132,31,-174,444});
states[955] = new State(-685);
states[956] = new State(-687);
states[957] = new State(new int[]{115,167},new int[]{-277,958});
states[958] = new State(-688);
states[959] = new State(new int[]{11,348,16,354,8,535,7,954,134,956,4,957,9,-495,92,-495});
states[960] = new State(new int[]{135,23,78,25,79,26,73,28,71,29,40,360,37,390,8,392,17,243,18,248,136,148,138,149,137,151,146,153,148,154,147,155},new int[]{-98,961,-102,962,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-13,551,-147,145,-149,146,-148,150,-14,152,-52,552});
states[961] = new State(new int[]{11,348,16,354,8,535,7,954,134,956,4,957,14,960,102,-662,103,-662,104,-662,105,-662,106,-662,84,-662,10,-662,90,-662,93,-662,28,-662,96,-662,130,-662,128,-662,110,-662,109,-662,123,-662,124,-662,125,-662,126,-662,122,-662,5,-662,108,-662,107,-662,120,-662,121,-662,118,-662,112,-662,117,-662,115,-662,113,-662,116,-662,114,-662,129,-662,15,-662,13,-662,27,-662,92,-662,12,-662,9,-662,91,-662,79,-662,78,-662,2,-662,77,-662,76,-662,75,-662,74,-662,111,-662,6,-662,46,-662,53,-662,133,-662,135,-662,73,-662,71,-662,40,-662,37,-662,17,-662,18,-662,136,-662,138,-662,137,-662,146,-662,148,-662,147,-662,52,-662,83,-662,35,-662,21,-662,89,-662,49,-662,30,-662,50,-662,94,-662,42,-662,31,-662,48,-662,55,-662,70,-662,68,-662,33,-662,66,-662,67,-662});
states[962] = new State(-663);
states[963] = new State(new int[]{135,23,78,25,79,26,73,28,71,29},new int[]{-129,964,-133,24,-134,27});
states[964] = new State(new int[]{92,965});
states[965] = new State(new int[]{48,973},new int[]{-311,966});
states[966] = new State(new int[]{9,967,92,970});
states[967] = new State(new int[]{102,968});
states[968] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248,5,527},new int[]{-80,969,-90,126,-89,131,-88,301,-92,309,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525,-104,526});
states[969] = new State(-491);
states[970] = new State(new int[]{48,971});
states[971] = new State(new int[]{135,23,78,25,79,26,73,28,71,29},new int[]{-129,972,-133,24,-134,27});
states[972] = new State(-498);
states[973] = new State(new int[]{135,23,78,25,79,26,73,28,71,29},new int[]{-129,974,-133,24,-134,27});
states[974] = new State(-497);
states[975] = new State(new int[]{139,979,141,980,142,981,143,982,145,983,144,984,99,-704,83,-704,54,-704,24,-704,62,-704,45,-704,48,-704,57,-704,11,-704,22,-704,39,-704,32,-704,25,-704,26,-704,41,-704,84,-704,77,-704,76,-704,75,-704,74,-704,19,-704,140,-704,36,-704},new int[]{-189,976,-192,985});
states[976] = new State(new int[]{10,977});
states[977] = new State(new int[]{139,979,141,980,142,981,143,982,145,983,144,984,99,-705,83,-705,54,-705,24,-705,62,-705,45,-705,48,-705,57,-705,11,-705,22,-705,39,-705,32,-705,25,-705,26,-705,41,-705,84,-705,77,-705,76,-705,75,-705,74,-705,19,-705,140,-705,36,-705},new int[]{-192,978});
states[978] = new State(-709);
states[979] = new State(-719);
states[980] = new State(-720);
states[981] = new State(-721);
states[982] = new State(-722);
states[983] = new State(-723);
states[984] = new State(-724);
states[985] = new State(-708);
states[986] = new State(-354);
states[987] = new State(-418);
states[988] = new State(-419);
states[989] = new State(new int[]{8,-424,102,-424,10,-424,5,-424,7,-421});
states[990] = new State(new int[]{115,992,8,-427,102,-427,10,-427,7,-427,5,-427},new int[]{-137,991});
states[991] = new State(-428);
states[992] = new State(new int[]{135,23,78,25,79,26,73,28,71,29},new int[]{-140,993,-129,633,-133,24,-134,27});
states[993] = new State(new int[]{113,994,92,407});
states[994] = new State(-303);
states[995] = new State(-429);
states[996] = new State(new int[]{115,992,8,-425,102,-425,10,-425,5,-425},new int[]{-137,997});
states[997] = new State(-426);
states[998] = new State(new int[]{7,999});
states[999] = new State(new int[]{135,23,78,25,79,26,73,28,71,29,40,360},new int[]{-124,1000,-131,1001,-119,989,-116,990,-129,995,-133,24,-134,27,-174,996});
states[1000] = new State(-420);
states[1001] = new State(-423);
states[1002] = new State(-422);
states[1003] = new State(-411);
states[1004] = new State(-362);
states[1005] = new State(new int[]{99,1176,11,-348,22,-348,39,-348,32,-348,25,-348,26,-348,41,-348,84,-348,77,-348,76,-348,75,-348,74,-348,54,-62,24,-62,62,-62,45,-62,48,-62,57,-62,83,-62},new int[]{-159,1006,-38,1007,-34,1010,-55,1175});
states[1006] = new State(-412);
states[1007] = new State(new int[]{83,115},new int[]{-236,1008});
states[1008] = new State(new int[]{10,1009});
states[1009] = new State(-439);
states[1010] = new State(new int[]{54,1013,24,1034,62,1038,45,1224,48,1230,57,1240,83,-61},new int[]{-40,1011,-150,1012,-24,1019,-46,1036,-268,1040,-285,1226});
states[1011] = new State(-63);
states[1012] = new State(-79);
states[1013] = new State(new int[]{146,557,147,558,135,23,78,25,79,26,73,28,71,29},new int[]{-138,1014,-125,1018,-129,559,-133,24,-134,27});
states[1014] = new State(new int[]{10,1015,92,1016});
states[1015] = new State(-88);
states[1016] = new State(new int[]{146,557,147,558,135,23,78,25,79,26,73,28,71,29},new int[]{-125,1017,-129,559,-133,24,-134,27});
states[1017] = new State(-90);
states[1018] = new State(-89);
states[1019] = new State(new int[]{135,23,78,25,79,26,73,28,71,29,54,-80,24,-80,62,-80,45,-80,48,-80,57,-80,83,-80},new int[]{-22,1020,-23,1021,-123,1023,-129,1033,-133,24,-134,27});
states[1020] = new State(-95);
states[1021] = new State(new int[]{10,1022});
states[1022] = new State(-104);
states[1023] = new State(new int[]{112,1024,5,1029});
states[1024] = new State(new int[]{135,23,78,25,79,26,73,28,71,225,37,240,17,243,18,248,11,253,146,153,148,154,147,155,136,148,138,149,137,151,51,259,133,260,8,1027,127,265,108,269,107,270},new int[]{-96,1025,-82,1026,-74,190,-11,213,-9,223,-12,200,-129,224,-133,24,-134,27,-238,242,-274,247,-221,252,-14,257,-147,258,-149,146,-148,150,-182,267,-156,271,-247,272,-251,273,-223,274,-86,1028});
states[1025] = new State(-105);
states[1026] = new State(new int[]{13,186,10,-107,84,-107,77,-107,76,-107,75,-107,74,-107});
states[1027] = new State(new int[]{135,23,78,25,79,26,73,28,71,225,37,240,17,243,18,248,11,253,146,153,148,154,147,155,136,148,138,149,137,151,51,259,133,260,8,275,127,265,108,269,107,270,58,157,9,-185},new int[]{-82,276,-60,277,-224,279,-86,281,-74,190,-11,213,-9,223,-12,200,-129,224,-133,24,-134,27,-238,242,-274,247,-221,252,-14,257,-147,258,-149,146,-148,150,-182,267,-156,271,-247,272,-251,273,-223,274,-59,235,-78,286,-77,238,-51,287});
states[1028] = new State(-108);
states[1029] = new State(new int[]{135,462,78,25,79,26,73,28,71,29,146,153,148,154,147,155,108,269,107,270,136,148,138,149,137,151,8,471,134,475,20,480,43,488,44,697,29,701,69,705,60,708,39,713,32,728},new int[]{-257,1030,-254,412,-84,174,-93,414,-94,415,-163,416,-129,195,-133,24,-134,27,-14,466,-182,467,-147,470,-149,146,-148,150,-237,473,-230,474,-261,477,-262,478,-259,479,-252,486,-26,487,-245,696,-112,700,-113,704,-208,710,-206,711,-205,712,-278,732});
states[1030] = new State(new int[]{112,1031});
states[1031] = new State(new int[]{135,23,78,25,79,26,73,28,71,225,37,240,17,243,18,248,11,253,146,153,148,154,147,155,136,148,138,149,137,151,51,259,133,260,8,275,127,265,108,269,107,270},new int[]{-77,1032,-82,239,-74,190,-11,213,-9,223,-12,200,-129,224,-133,24,-134,27,-238,242,-274,247,-221,252,-14,257,-147,258,-149,146,-148,150,-182,267,-156,271,-247,272,-251,273,-223,274,-86,294,-224,295});
states[1032] = new State(-106);
states[1033] = new State(-109);
states[1034] = new State(new int[]{135,23,78,25,79,26,73,28,71,29},new int[]{-22,1035,-23,1021,-123,1023,-129,1033,-133,24,-134,27});
states[1035] = new State(-94);
states[1036] = new State(new int[]{135,23,78,25,79,26,73,28,71,29,54,-81,24,-81,62,-81,45,-81,48,-81,57,-81,83,-81},new int[]{-22,1037,-23,1021,-123,1023,-129,1033,-133,24,-134,27});
states[1037] = new State(-97);
states[1038] = new State(new int[]{135,23,78,25,79,26,73,28,71,29},new int[]{-22,1039,-23,1021,-123,1023,-129,1033,-133,24,-134,27});
states[1039] = new State(-96);
states[1040] = new State(new int[]{11,760,54,-82,24,-82,62,-82,45,-82,48,-82,57,-82,83,-82,135,-199,78,-199,79,-199,73,-199,71,-199},new int[]{-43,1041,-5,1042,-231,872});
states[1041] = new State(-99);
states[1042] = new State(new int[]{135,23,78,25,79,26,73,28,71,29,11,760},new int[]{-44,1043,-231,504,-126,1044,-129,1216,-133,24,-134,27,-127,1221});
states[1043] = new State(-196);
states[1044] = new State(new int[]{112,1045});
states[1045] = new State(new int[]{135,462,78,25,79,26,73,28,71,29,146,153,148,154,147,155,108,269,107,270,136,148,138,149,137,151,8,471,134,475,20,480,43,488,44,697,29,701,69,705,60,708,39,713,32,728,64,1211,65,1212,139,1213,23,1214,22,-285,38,-285,59,-285},new int[]{-266,1046,-257,1048,-254,412,-84,174,-93,414,-94,415,-163,416,-129,195,-133,24,-134,27,-14,466,-182,467,-147,470,-149,146,-148,150,-237,473,-230,474,-261,477,-262,478,-259,479,-252,486,-26,487,-245,696,-112,700,-113,704,-208,710,-206,711,-205,712,-278,732,-25,1049,-18,1050,-19,1209,-17,1215});
states[1046] = new State(new int[]{10,1047});
states[1047] = new State(-205);
states[1048] = new State(-210);
states[1049] = new State(-211);
states[1050] = new State(new int[]{22,1203,38,1204,59,1205},new int[]{-270,1051});
states[1051] = new State(new int[]{8,1092,19,-297,11,-297,84,-297,77,-297,76,-297,75,-297,74,-297,24,-297,135,-297,78,-297,79,-297,73,-297,71,-297,57,-297,22,-297,39,-297,32,-297,25,-297,26,-297,41,-297,10,-297},new int[]{-166,1052});
states[1052] = new State(new int[]{19,1083,11,-304,84,-304,77,-304,76,-304,75,-304,74,-304,24,-304,135,-304,78,-304,79,-304,73,-304,71,-304,57,-304,22,-304,39,-304,32,-304,25,-304,26,-304,41,-304,10,-304},new int[]{-292,1053,-291,1081,-290,1103});
states[1053] = new State(new int[]{11,760,10,-295,84,-321,77,-321,76,-321,75,-321,74,-321,24,-199,135,-199,78,-199,79,-199,73,-199,71,-199,57,-199,22,-199,39,-199,32,-199,25,-199,26,-199,41,-199},new int[]{-21,1054,-20,1055,-27,1061,-29,495,-39,1062,-5,1063,-231,872,-28,1200,-48,1202,-47,501,-49,1201});
states[1054] = new State(-279);
states[1055] = new State(new int[]{84,1056,77,1057,76,1058,75,1059,74,1060},new int[]{-6,493});
states[1056] = new State(-296);
states[1057] = new State(-317);
states[1058] = new State(-318);
states[1059] = new State(-319);
states[1060] = new State(-320);
states[1061] = new State(-315);
states[1062] = new State(-329);
states[1063] = new State(new int[]{24,1065,135,23,78,25,79,26,73,28,71,29,57,1069,22,1073,11,760,39,1076,32,1111,25,1185,26,1192,41,1130},new int[]{-45,1064,-231,504,-204,503,-201,505,-239,506,-288,1067,-287,1068,-140,634,-129,633,-133,24,-134,27,-212,1172,-210,1005,-207,1075,-211,1110,-209,1173,-197,1196,-198,1197,-200,1198,-240,1199});
states[1064] = new State(-331);
states[1065] = new State(new int[]{135,23,78,25,79,26,73,28,71,29},new int[]{-23,1066,-123,1023,-129,1033,-133,24,-134,27});
states[1066] = new State(-336);
states[1067] = new State(-337);
states[1068] = new State(-339);
states[1069] = new State(new int[]{135,23,78,25,79,26,73,28,71,29},new int[]{-140,1070,-129,633,-133,24,-134,27});
states[1070] = new State(new int[]{5,1071,92,407});
states[1071] = new State(new int[]{135,462,78,25,79,26,73,28,71,29,146,153,148,154,147,155,108,269,107,270,136,148,138,149,137,151,8,471,134,475,20,480,43,488,44,697,29,701,69,705,60,708,39,713,32,728},new int[]{-257,1072,-254,412,-84,174,-93,414,-94,415,-163,416,-129,195,-133,24,-134,27,-14,466,-182,467,-147,470,-149,146,-148,150,-237,473,-230,474,-261,477,-262,478,-259,479,-252,486,-26,487,-245,696,-112,700,-113,704,-208,710,-206,711,-205,712,-278,732});
states[1072] = new State(-340);
states[1073] = new State(new int[]{25,509,135,23,78,25,79,26,73,28,71,29,57,1069,39,1076,32,1111,41,1130},new int[]{-288,1074,-212,508,-198,1003,-240,1004,-287,1068,-140,634,-129,633,-133,24,-134,27,-210,1005,-207,1075,-211,1110});
states[1074] = new State(-338);
states[1075] = new State(-349);
states[1076] = new State(new int[]{135,23,78,25,79,26,73,28,71,29,40,360},new int[]{-153,1077,-152,987,-124,988,-119,989,-116,990,-129,995,-133,24,-134,27,-174,996,-308,998,-131,1002});
states[1077] = new State(new int[]{8,715,10,-441,102,-441},new int[]{-110,1078});
states[1078] = new State(new int[]{10,1108,102,-706},new int[]{-190,1079,-191,1104});
states[1079] = new State(new int[]{19,1083,99,-304,83,-304,54,-304,24,-304,62,-304,45,-304,48,-304,57,-304,11,-304,22,-304,39,-304,32,-304,25,-304,26,-304,41,-304,84,-304,77,-304,76,-304,75,-304,74,-304,140,-304,36,-304},new int[]{-292,1080,-291,1081,-290,1103});
states[1080] = new State(-430);
states[1081] = new State(new int[]{19,1083,11,-305,84,-305,77,-305,76,-305,75,-305,74,-305,24,-305,135,-305,78,-305,79,-305,73,-305,71,-305,57,-305,22,-305,39,-305,32,-305,25,-305,26,-305,41,-305,10,-305,99,-305,83,-305,54,-305,62,-305,45,-305,48,-305,140,-305,36,-305},new int[]{-290,1082});
states[1082] = new State(-307);
states[1083] = new State(new int[]{135,23,78,25,79,26,73,28,71,29},new int[]{-140,1084,-129,633,-133,24,-134,27});
states[1084] = new State(new int[]{5,1085,92,407});
states[1085] = new State(new int[]{135,462,78,25,79,26,73,28,71,29,146,153,148,154,147,155,108,269,107,270,136,148,138,149,137,151,8,471,134,475,20,480,43,1091,44,697,29,701,69,705,60,708,39,713,32,728,22,1100,25,1101},new int[]{-267,1086,-264,1102,-257,1090,-254,412,-84,174,-93,414,-94,415,-163,416,-129,195,-133,24,-134,27,-14,466,-182,467,-147,470,-149,146,-148,150,-237,473,-230,474,-261,477,-262,478,-259,479,-252,486,-26,487,-245,696,-112,700,-113,704,-208,710,-206,711,-205,712,-278,732});
states[1086] = new State(new int[]{10,1087,92,1088});
states[1087] = new State(-308);
states[1088] = new State(new int[]{135,462,78,25,79,26,73,28,71,29,146,153,148,154,147,155,108,269,107,270,136,148,138,149,137,151,8,471,134,475,20,480,43,1091,44,697,29,701,69,705,60,708,39,713,32,728,22,1100,25,1101},new int[]{-264,1089,-257,1090,-254,412,-84,174,-93,414,-94,415,-163,416,-129,195,-133,24,-134,27,-14,466,-182,467,-147,470,-149,146,-148,150,-237,473,-230,474,-261,477,-262,478,-259,479,-252,486,-26,487,-245,696,-112,700,-113,704,-208,710,-206,711,-205,712,-278,732});
states[1089] = new State(-310);
states[1090] = new State(-311);
states[1091] = new State(new int[]{8,1092,10,-313,92,-313,19,-297,11,-297,84,-297,77,-297,76,-297,75,-297,74,-297,24,-297,135,-297,78,-297,79,-297,73,-297,71,-297,57,-297,22,-297,39,-297,32,-297,25,-297,26,-297,41,-297},new int[]{-166,489});
states[1092] = new State(new int[]{135,23,78,25,79,26,73,28,71,29},new int[]{-165,1093,-164,1099,-163,1097,-129,195,-133,24,-134,27,-278,1098});
states[1093] = new State(new int[]{9,1094,92,1095});
states[1094] = new State(-298);
states[1095] = new State(new int[]{135,23,78,25,79,26,73,28,71,29},new int[]{-164,1096,-163,1097,-129,195,-133,24,-134,27,-278,1098});
states[1096] = new State(-300);
states[1097] = new State(new int[]{7,162,115,167,9,-301,92,-301},new int[]{-277,768});
states[1098] = new State(-302);
states[1099] = new State(-299);
states[1100] = new State(-312);
states[1101] = new State(-314);
states[1102] = new State(-309);
states[1103] = new State(-306);
states[1104] = new State(new int[]{102,1105});
states[1105] = new State(new int[]{133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,516,8,517,17,243,18,248,136,148,138,149,137,151,146,153,148,154,147,155,52,555,83,115,35,545,21,563,89,580,49,585,30,590,50,600,94,606,42,613,31,616,48,624,55,650,70,659,68,665,33,670,10,-465},new int[]{-242,1106,-3,121,-99,122,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-13,551,-147,145,-149,146,-148,150,-14,152,-52,552,-102,445,-194,553,-115,554,-236,560,-135,561,-30,562,-228,579,-293,584,-106,589,-294,599,-142,604,-279,605,-229,612,-105,615,-289,623,-53,654,-157,655,-156,656,-151,657,-108,658,-109,663,-107,664,-315,669});
states[1106] = new State(new int[]{10,1107});
states[1107] = new State(-415);
states[1108] = new State(new int[]{139,979,141,980,142,981,143,982,145,983,144,984,19,-704,99,-704,83,-704,54,-704,24,-704,62,-704,45,-704,48,-704,57,-704,11,-704,22,-704,39,-704,32,-704,25,-704,26,-704,41,-704,84,-704,77,-704,76,-704,75,-704,74,-704,140,-704},new int[]{-189,1109,-192,985});
states[1109] = new State(new int[]{10,977,102,-707});
states[1110] = new State(-350);
states[1111] = new State(new int[]{135,23,78,25,79,26,73,28,71,29,40,360},new int[]{-152,1112,-124,988,-119,989,-116,990,-129,995,-133,24,-134,27,-174,996,-308,998,-131,1002});
states[1112] = new State(new int[]{8,715,5,-441,10,-441,102,-441},new int[]{-110,1113});
states[1113] = new State(new int[]{5,1116,10,1108,102,-706},new int[]{-190,1114,-191,1126});
states[1114] = new State(new int[]{19,1083,99,-304,83,-304,54,-304,24,-304,62,-304,45,-304,48,-304,57,-304,11,-304,22,-304,39,-304,32,-304,25,-304,26,-304,41,-304,84,-304,77,-304,76,-304,75,-304,74,-304,140,-304,36,-304},new int[]{-292,1115,-291,1081,-290,1103});
states[1115] = new State(-431);
states[1116] = new State(new int[]{135,462,78,25,79,26,73,28,71,29,146,153,148,154,147,155,108,269,107,270,136,148,138,149,137,151,8,471,134,475,20,480,43,488,44,697,29,701,69,705,60,708,39,713,32,728},new int[]{-256,1117,-257,411,-254,412,-84,174,-93,414,-94,415,-163,416,-129,195,-133,24,-134,27,-14,466,-182,467,-147,470,-149,146,-148,150,-237,473,-230,474,-261,477,-262,478,-259,479,-252,486,-26,487,-245,696,-112,700,-113,704,-208,710,-206,711,-205,712,-278,732});
states[1117] = new State(new int[]{10,1108,102,-706},new int[]{-190,1118,-191,1120});
states[1118] = new State(new int[]{19,1083,99,-304,83,-304,54,-304,24,-304,62,-304,45,-304,48,-304,57,-304,11,-304,22,-304,39,-304,32,-304,25,-304,26,-304,41,-304,84,-304,77,-304,76,-304,75,-304,74,-304,140,-304,36,-304},new int[]{-292,1119,-291,1081,-290,1103});
states[1119] = new State(-432);
states[1120] = new State(new int[]{102,1121});
states[1121] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,772,17,243,18,248,32,827,39,841},new int[]{-91,1122,-90,1124,-89,131,-88,301,-92,542,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,538,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525,-297,1125,-298,826});
states[1122] = new State(new int[]{10,1123});
states[1123] = new State(-413);
states[1124] = new State(new int[]{13,127,10,-569});
states[1125] = new State(-570);
states[1126] = new State(new int[]{102,1127});
states[1127] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,772,17,243,18,248,32,827,39,841},new int[]{-91,1128,-90,1124,-89,131,-88,301,-92,542,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,538,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525,-297,1125,-298,826});
states[1128] = new State(new int[]{10,1129});
states[1129] = new State(-414);
states[1130] = new State(new int[]{135,23,78,25,79,26,73,28,71,29,77,32,76,33,75,34,74,35},new int[]{-155,1131,-129,1170,-133,24,-134,27,-132,1171});
states[1131] = new State(new int[]{7,1155,11,1161,5,-368},new int[]{-215,1132,-220,1158});
states[1132] = new State(new int[]{78,1144,79,1150,10,-375},new int[]{-185,1133});
states[1133] = new State(new int[]{10,1134});
states[1134] = new State(new int[]{58,1139,144,1141,143,1142,139,1143,11,-365,22,-365,39,-365,32,-365,25,-365,26,-365,41,-365,84,-365,77,-365,76,-365,75,-365,74,-365},new int[]{-188,1135,-193,1136});
states[1135] = new State(-363);
states[1136] = new State(new int[]{10,1137});
states[1137] = new State(new int[]{58,1139,11,-365,22,-365,39,-365,32,-365,25,-365,26,-365,41,-365,84,-365,77,-365,76,-365,75,-365,74,-365},new int[]{-188,1138});
states[1138] = new State(-364);
states[1139] = new State(new int[]{10,1140});
states[1140] = new State(-366);
states[1141] = new State(-725);
states[1142] = new State(-726);
states[1143] = new State(-727);
states[1144] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,772,17,243,18,248,5,527,32,827,39,841,10,-374},new int[]{-100,1145,-81,1149,-80,125,-90,126,-89,131,-88,301,-92,309,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,538,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525,-104,526,-297,825,-298,826});
states[1145] = new State(new int[]{79,1147,10,-378},new int[]{-186,1146});
states[1146] = new State(-376);
states[1147] = new State(new int[]{133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,516,8,517,17,243,18,248,136,148,138,149,137,151,146,153,148,154,147,155,52,555,83,115,35,545,21,563,89,580,49,585,30,590,50,600,94,606,42,613,31,616,48,624,55,650,70,659,68,665,33,670,10,-465},new int[]{-242,1148,-3,121,-99,122,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-13,551,-147,145,-149,146,-148,150,-14,152,-52,552,-102,445,-194,553,-115,554,-236,560,-135,561,-30,562,-228,579,-293,584,-106,589,-294,599,-142,604,-279,605,-229,612,-105,615,-289,623,-53,654,-157,655,-156,656,-151,657,-108,658,-109,663,-107,664,-315,669});
states[1148] = new State(-379);
states[1149] = new State(-373);
states[1150] = new State(new int[]{133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,516,8,517,17,243,18,248,136,148,138,149,137,151,146,153,148,154,147,155,52,555,83,115,35,545,21,563,89,580,49,585,30,590,50,600,94,606,42,613,31,616,48,624,55,650,70,659,68,665,33,670,10,-465},new int[]{-242,1151,-3,121,-99,122,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-13,551,-147,145,-149,146,-148,150,-14,152,-52,552,-102,445,-194,553,-115,554,-236,560,-135,561,-30,562,-228,579,-293,584,-106,589,-294,599,-142,604,-279,605,-229,612,-105,615,-289,623,-53,654,-157,655,-156,656,-151,657,-108,658,-109,663,-107,664,-315,669});
states[1151] = new State(new int[]{78,1153,10,-380},new int[]{-187,1152});
states[1152] = new State(-377);
states[1153] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,772,17,243,18,248,5,527,32,827,39,841,10,-374},new int[]{-100,1154,-81,1149,-80,125,-90,126,-89,131,-88,301,-92,309,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,538,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525,-104,526,-297,825,-298,826});
states[1154] = new State(-381);
states[1155] = new State(new int[]{135,23,78,25,79,26,73,28,71,29,77,32,76,33,75,34,74,35},new int[]{-129,1156,-132,1157,-133,24,-134,27});
states[1156] = new State(-358);
states[1157] = new State(-359);
states[1158] = new State(new int[]{5,1159});
states[1159] = new State(new int[]{135,462,78,25,79,26,73,28,71,29,146,153,148,154,147,155,108,269,107,270,136,148,138,149,137,151,8,471,134,475,20,480,43,488,44,697,29,701,69,705,60,708,39,713,32,728},new int[]{-256,1160,-257,411,-254,412,-84,174,-93,414,-94,415,-163,416,-129,195,-133,24,-134,27,-14,466,-182,467,-147,470,-149,146,-148,150,-237,473,-230,474,-261,477,-262,478,-259,479,-252,486,-26,487,-245,696,-112,700,-113,704,-208,710,-206,711,-205,712,-278,732});
states[1160] = new State(-367);
states[1161] = new State(new int[]{135,23,78,25,79,26,73,28,71,29},new int[]{-219,1162,-218,1169,-140,1166,-129,633,-133,24,-134,27});
states[1162] = new State(new int[]{12,1163,10,1164});
states[1163] = new State(-369);
states[1164] = new State(new int[]{135,23,78,25,79,26,73,28,71,29},new int[]{-218,1165,-140,1166,-129,633,-133,24,-134,27});
states[1165] = new State(-371);
states[1166] = new State(new int[]{5,1167,92,407});
states[1167] = new State(new int[]{135,462,78,25,79,26,73,28,71,29,146,153,148,154,147,155,108,269,107,270,136,148,138,149,137,151,8,471,134,475,20,480,43,488,44,697,29,701,69,705,60,708,39,713,32,728},new int[]{-256,1168,-257,411,-254,412,-84,174,-93,414,-94,415,-163,416,-129,195,-133,24,-134,27,-14,466,-182,467,-147,470,-149,146,-148,150,-237,473,-230,474,-261,477,-262,478,-259,479,-252,486,-26,487,-245,696,-112,700,-113,704,-208,710,-206,711,-205,712,-278,732});
states[1168] = new State(-372);
states[1169] = new State(-370);
states[1170] = new State(-356);
states[1171] = new State(-357);
states[1172] = new State(-346);
states[1173] = new State(new int[]{99,1176,11,-347,22,-347,39,-347,32,-347,25,-347,26,-347,41,-347,84,-347,77,-347,76,-347,75,-347,74,-347,54,-62,24,-62,62,-62,45,-62,48,-62,57,-62,83,-62},new int[]{-159,1174,-38,1007,-34,1010,-55,1175});
states[1174] = new State(-398);
states[1175] = new State(-440);
states[1176] = new State(new int[]{10,1184,135,23,78,25,79,26,73,28,71,29,136,148,138,149,137,151},new int[]{-95,1177,-129,1181,-133,24,-134,27,-147,1182,-149,146,-148,150});
states[1177] = new State(new int[]{73,1178,10,1183});
states[1178] = new State(new int[]{135,23,78,25,79,26,73,28,71,29,136,148,138,149,137,151},new int[]{-95,1179,-129,1181,-133,24,-134,27,-147,1182,-149,146,-148,150});
states[1179] = new State(new int[]{10,1180});
states[1180] = new State(-433);
states[1181] = new State(-436);
states[1182] = new State(-437);
states[1183] = new State(-434);
states[1184] = new State(-435);
states[1185] = new State(new int[]{135,23,78,25,79,26,73,28,71,29,40,360,8,-355,102,-355,10,-355},new int[]{-154,1186,-153,986,-152,987,-124,988,-119,989,-116,990,-129,995,-133,24,-134,27,-174,996,-308,998,-131,1002});
states[1186] = new State(new int[]{8,715,102,-441,10,-441},new int[]{-110,1187});
states[1187] = new State(new int[]{102,1189,10,975},new int[]{-190,1188});
states[1188] = new State(-351);
states[1189] = new State(new int[]{133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,516,8,517,17,243,18,248,136,148,138,149,137,151,146,153,148,154,147,155,52,555,83,115,35,545,21,563,89,580,49,585,30,590,50,600,94,606,42,613,31,616,48,624,55,650,70,659,68,665,33,670,10,-465},new int[]{-242,1190,-3,121,-99,122,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-13,551,-147,145,-149,146,-148,150,-14,152,-52,552,-102,445,-194,553,-115,554,-236,560,-135,561,-30,562,-228,579,-293,584,-106,589,-294,599,-142,604,-279,605,-229,612,-105,615,-289,623,-53,654,-157,655,-156,656,-151,657,-108,658,-109,663,-107,664,-315,669});
states[1190] = new State(new int[]{10,1191});
states[1191] = new State(-399);
states[1192] = new State(new int[]{135,23,78,25,79,26,73,28,71,29,40,360,8,-355,10,-355},new int[]{-154,1193,-153,986,-152,987,-124,988,-119,989,-116,990,-129,995,-133,24,-134,27,-174,996,-308,998,-131,1002});
states[1193] = new State(new int[]{8,715,10,-441},new int[]{-110,1194});
states[1194] = new State(new int[]{10,975},new int[]{-190,1195});
states[1195] = new State(-353);
states[1196] = new State(-343);
states[1197] = new State(-410);
states[1198] = new State(-344);
states[1199] = new State(-361);
states[1200] = new State(new int[]{11,760,84,-323,77,-323,76,-323,75,-323,74,-323,22,-199,39,-199,32,-199,25,-199,26,-199,41,-199},new int[]{-48,500,-47,501,-5,502,-231,872,-49,1201});
states[1201] = new State(-335);
states[1202] = new State(-332);
states[1203] = new State(-289);
states[1204] = new State(-290);
states[1205] = new State(new int[]{22,1206,43,1207,38,1208,8,-291,19,-291,11,-291,84,-291,77,-291,76,-291,75,-291,74,-291,24,-291,135,-291,78,-291,79,-291,73,-291,71,-291,57,-291,39,-291,32,-291,25,-291,26,-291,41,-291,10,-291});
states[1206] = new State(-292);
states[1207] = new State(-293);
states[1208] = new State(-294);
states[1209] = new State(new int[]{64,1211,65,1212,139,1213,23,1214,22,-286,38,-286,59,-286},new int[]{-17,1210});
states[1210] = new State(-288);
states[1211] = new State(-281);
states[1212] = new State(-282);
states[1213] = new State(-283);
states[1214] = new State(-284);
states[1215] = new State(-287);
states[1216] = new State(new int[]{115,1218,112,-207},new int[]{-137,1217});
states[1217] = new State(-208);
states[1218] = new State(new int[]{135,23,78,25,79,26,73,28,71,29},new int[]{-140,1219,-129,633,-133,24,-134,27});
states[1219] = new State(new int[]{114,1220,113,994,92,407});
states[1220] = new State(-209);
states[1221] = new State(new int[]{135,462,78,25,79,26,73,28,71,29,146,153,148,154,147,155,108,269,107,270,136,148,138,149,137,151,8,471,134,475,20,480,43,488,44,697,29,701,69,705,60,708,39,713,32,728,64,1211,65,1212,139,1213,23,1214,22,-285,38,-285,59,-285},new int[]{-266,1222,-257,1048,-254,412,-84,174,-93,414,-94,415,-163,416,-129,195,-133,24,-134,27,-14,466,-182,467,-147,470,-149,146,-148,150,-237,473,-230,474,-261,477,-262,478,-259,479,-252,486,-26,487,-245,696,-112,700,-113,704,-208,710,-206,711,-205,712,-278,732,-25,1049,-18,1050,-19,1209,-17,1215});
states[1222] = new State(new int[]{10,1223});
states[1223] = new State(-206);
states[1224] = new State(new int[]{11,760,135,-199,78,-199,79,-199,73,-199,71,-199},new int[]{-43,1225,-5,1042,-231,872});
states[1225] = new State(-98);
states[1226] = new State(new int[]{135,23,78,25,79,26,73,28,71,29,54,-83,24,-83,62,-83,45,-83,48,-83,57,-83,83,-83},new int[]{-286,1227,-287,1228,-140,634,-129,633,-133,24,-134,27});
states[1227] = new State(-102);
states[1228] = new State(new int[]{10,1229});
states[1229] = new State(-382);
states[1230] = new State(new int[]{8,1232,135,23,78,25,79,26,73,28,71,29},new int[]{-286,1231,-287,1228,-140,634,-129,633,-133,24,-134,27});
states[1231] = new State(-100);
states[1232] = new State(new int[]{135,23,78,25,79,26,73,28,71,29},new int[]{-129,1233,-133,24,-134,27});
states[1233] = new State(new int[]{92,1234});
states[1234] = new State(new int[]{135,23,78,25,79,26,73,28,71,29},new int[]{-140,1235,-129,633,-133,24,-134,27});
states[1235] = new State(new int[]{9,1236,92,407});
states[1236] = new State(new int[]{102,1237});
states[1237] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248},new int[]{-90,1238,-89,131,-88,301,-92,542,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525});
states[1238] = new State(new int[]{10,1239,13,127});
states[1239] = new State(-103);
states[1240] = new State(new int[]{135,23,78,25,79,26,73,28,71,29},new int[]{-286,1241,-287,1228,-140,634,-129,633,-133,24,-134,27});
states[1241] = new State(-101);
states[1242] = new State(new int[]{135,23,78,25,79,26,73,28,71,29,146,153,148,154,147,155,108,269,107,270,136,148,138,149,137,151,8,789,12,-261,92,-261},new int[]{-253,1243,-254,1244,-84,174,-93,414,-94,415,-163,469,-129,195,-133,24,-134,27,-14,466,-182,467,-147,470,-149,146,-148,150});
states[1243] = new State(-259);
states[1244] = new State(-260);
states[1245] = new State(-258);
states[1246] = new State(new int[]{135,462,78,25,79,26,73,28,71,29,146,153,148,154,147,155,108,269,107,270,136,148,138,149,137,151,8,471,134,475,20,480,43,488,44,697,29,701,69,705,60,708,39,713,32,728},new int[]{-257,1247,-254,412,-84,174,-93,414,-94,415,-163,416,-129,195,-133,24,-134,27,-14,466,-182,467,-147,470,-149,146,-148,150,-237,473,-230,474,-261,477,-262,478,-259,479,-252,486,-26,487,-245,696,-112,700,-113,704,-208,710,-206,711,-205,712,-278,732});
states[1247] = new State(-257);
states[1248] = new State(-603);
states[1249] = new State(new int[]{8,1250});
states[1250] = new State(new int[]{48,458,135,23,78,25,79,26,73,28,71,29},new int[]{-320,1251,-318,1255,-313,1248,-263,1249,-163,161,-129,195,-133,24,-134,27});
states[1251] = new State(new int[]{9,1252,10,456,92,1253});
states[1252] = new State(-593);
states[1253] = new State(new int[]{48,458,135,23,78,25,79,26,73,28,71,29},new int[]{-318,1254,-313,1248,-263,1249,-163,161,-129,195,-133,24,-134,27});
states[1254] = new State(-600);
states[1255] = new State(-598);
states[1256] = new State(-668);
states[1257] = new State(-693);
states[1258] = new State(new int[]{8,1259});
states[1259] = new State(new int[]{135,23,78,25,79,26,73,28,71,225,51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,40,360,37,390,8,392,17,243,18,248},new int[]{-307,1260,-306,1268,-129,1264,-133,24,-134,27,-88,1267,-92,542,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524});
states[1260] = new State(new int[]{9,1261,92,1262});
states[1261] = new State(-583);
states[1262] = new State(new int[]{135,23,78,25,79,26,73,28,71,225,51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,40,360,37,390,8,392,17,243,18,248},new int[]{-306,1263,-129,1264,-133,24,-134,27,-88,1267,-92,542,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524});
states[1263] = new State(-587);
states[1264] = new State(new int[]{102,1265,11,-675,16,-675,8,-675,7,-675,134,-675,4,-675,14,-675,130,-675,128,-675,110,-675,109,-675,123,-675,124,-675,125,-675,126,-675,122,-675,108,-675,107,-675,120,-675,121,-675,118,-675,112,-675,117,-675,115,-675,113,-675,116,-675,114,-675,129,-675,9,-675,92,-675,111,-675});
states[1265] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248},new int[]{-88,1266,-92,542,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524});
states[1266] = new State(new int[]{112,302,117,303,115,304,113,305,116,306,114,307,129,308,9,-584,92,-584},new int[]{-179,134});
states[1267] = new State(new int[]{112,302,117,303,115,304,113,305,116,306,114,307,129,308,9,-585,92,-585},new int[]{-179,134});
states[1268] = new State(-586);
states[1269] = new State(new int[]{13,186,92,-168,9,-168});
states[1270] = new State(new int[]{135,23,78,25,79,26,73,28,71,225,37,240,17,243,18,248,11,253,146,153,148,154,147,155,136,148,138,149,137,151,51,259,133,260,8,262,127,265,108,269,107,270,12,-171},new int[]{-68,1271,-65,182,-85,256,-82,185,-74,190,-11,213,-9,223,-12,200,-129,224,-133,24,-134,27,-238,242,-274,247,-221,252,-14,257,-147,258,-149,146,-148,150,-182,267,-156,271,-247,272,-251,273,-223,274});
states[1271] = new State(new int[]{12,1272});
states[1272] = new State(-165);
states[1273] = new State(-135);
states[1274] = new State(new int[]{135,23,78,25,79,26,73,28,71,225,37,240,17,243,18,248,11,253,146,153,148,154,147,155,136,148,138,149,137,151,51,259,133,260,8,262,127,265,108,269,107,270},new int[]{-74,1275,-11,213,-9,223,-12,200,-129,224,-133,24,-134,27,-238,242,-274,247,-221,252,-14,257,-147,258,-149,146,-148,150,-182,267,-156,271,-247,272,-251,273});
states[1275] = new State(new int[]{108,1276,107,1277,120,1278,121,1279,13,-113,6,-113,92,-113,9,-113,12,-113,5,-113,10,-113,84,-113,90,-113,93,-113,28,-113,96,-113,27,-113,91,-113,79,-113,78,-113,2,-113,77,-113,76,-113,75,-113,74,-113},new int[]{-176,191});
states[1276] = new State(-125);
states[1277] = new State(-126);
states[1278] = new State(-127);
states[1279] = new State(-128);
states[1280] = new State(-116);
states[1281] = new State(-117);
states[1282] = new State(-118);
states[1283] = new State(-119);
states[1284] = new State(-120);
states[1285] = new State(-121);
states[1286] = new State(-122);
states[1287] = new State(new int[]{135,23,78,25,79,26,73,28,71,225,37,240,17,243,18,248,11,253,146,153,148,154,147,155,136,148,138,149,137,151,51,259,133,260,8,262,127,265,108,269,107,270},new int[]{-82,1288,-74,190,-11,213,-9,223,-12,200,-129,224,-133,24,-134,27,-238,242,-274,247,-221,252,-14,257,-147,258,-149,146,-148,150,-182,267,-156,271,-247,272,-251,273,-223,274});
states[1288] = new State(new int[]{13,186,92,-175,9,-175,12,-175,5,-175});
states[1289] = new State(new int[]{135,23,78,25,79,26,73,28,71,29,146,153,148,154,147,155,108,269,107,270,136,148,138,149,137,151},new int[]{-84,1290,-93,414,-94,415,-163,469,-129,195,-133,24,-134,27,-14,466,-182,467,-147,470,-149,146,-148,150});
states[1290] = new State(new int[]{108,1276,107,1277,120,1278,121,1279,13,-229,113,-229,92,-229,10,-229,9,-229,119,-229,112,-229,102,-229,84,-229,90,-229,93,-229,28,-229,96,-229,27,-229,12,-229,91,-229,79,-229,78,-229,2,-229,77,-229,76,-229,75,-229,74,-229,129,-229},new int[]{-176,175});
states[1291] = new State(-221);
states[1292] = new State(-32);
states[1293] = new State(new int[]{54,1013,24,1034,62,1038,45,1224,48,1230,57,1240,11,760,83,-58,84,-58,95,-58,39,-199,32,-199,22,-199,25,-199,26,-199},new int[]{-41,1294,-150,1295,-24,1296,-46,1297,-268,1298,-285,1299,-202,1300,-5,1301,-231,872});
states[1294] = new State(-60);
states[1295] = new State(-70);
states[1296] = new State(new int[]{135,23,78,25,79,26,73,28,71,29,54,-71,24,-71,62,-71,45,-71,48,-71,57,-71,11,-71,39,-71,32,-71,22,-71,25,-71,26,-71,83,-71,84,-71,95,-71},new int[]{-22,1020,-23,1021,-123,1023,-129,1033,-133,24,-134,27});
states[1297] = new State(new int[]{135,23,78,25,79,26,73,28,71,29,54,-72,24,-72,62,-72,45,-72,48,-72,57,-72,11,-72,39,-72,32,-72,22,-72,25,-72,26,-72,83,-72,84,-72,95,-72},new int[]{-22,1037,-23,1021,-123,1023,-129,1033,-133,24,-134,27});
states[1298] = new State(new int[]{11,760,54,-73,24,-73,62,-73,45,-73,48,-73,57,-73,39,-73,32,-73,22,-73,25,-73,26,-73,83,-73,84,-73,95,-73,135,-199,78,-199,79,-199,73,-199,71,-199},new int[]{-43,1041,-5,1042,-231,872});
states[1299] = new State(new int[]{135,23,78,25,79,26,73,28,71,29,54,-74,24,-74,62,-74,45,-74,48,-74,57,-74,11,-74,39,-74,32,-74,22,-74,25,-74,26,-74,83,-74,84,-74,95,-74},new int[]{-286,1227,-287,1228,-140,634,-129,633,-133,24,-134,27});
states[1300] = new State(-75);
states[1301] = new State(new int[]{39,1314,32,1321,22,1338,25,1349,26,1192,11,760},new int[]{-195,1302,-231,504,-196,1303,-203,1304,-210,1305,-207,1075,-211,1110,-199,1346,-209,1347});
states[1302] = new State(-78);
states[1303] = new State(-76);
states[1304] = new State(-401);
states[1305] = new State(new int[]{140,1307,99,1176,54,-59,24,-59,62,-59,45,-59,48,-59,57,-59,11,-59,39,-59,32,-59,22,-59,25,-59,26,-59,83,-59},new int[]{-161,1306,-160,1309,-36,1310,-37,1293,-55,1313});
states[1306] = new State(-403);
states[1307] = new State(new int[]{10,1308});
states[1308] = new State(-409);
states[1309] = new State(-416);
states[1310] = new State(new int[]{83,115},new int[]{-236,1311});
states[1311] = new State(new int[]{10,1312});
states[1312] = new State(-438);
states[1313] = new State(-417);
states[1314] = new State(new int[]{135,23,78,25,79,26,73,28,71,29,40,360},new int[]{-153,1315,-152,987,-124,988,-119,989,-116,990,-129,995,-133,24,-134,27,-174,996,-308,998,-131,1002});
states[1315] = new State(new int[]{8,715,10,-441,102,-441},new int[]{-110,1316});
states[1316] = new State(new int[]{10,1108,102,-706},new int[]{-190,1079,-191,1317});
states[1317] = new State(new int[]{102,1318});
states[1318] = new State(new int[]{133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,516,8,517,17,243,18,248,136,148,138,149,137,151,146,153,148,154,147,155,52,555,83,115,35,545,21,563,89,580,49,585,30,590,50,600,94,606,42,613,31,616,48,624,55,650,70,659,68,665,33,670,10,-465},new int[]{-242,1319,-3,121,-99,122,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-13,551,-147,145,-149,146,-148,150,-14,152,-52,552,-102,445,-194,553,-115,554,-236,560,-135,561,-30,562,-228,579,-293,584,-106,589,-294,599,-142,604,-279,605,-229,612,-105,615,-289,623,-53,654,-157,655,-156,656,-151,657,-108,658,-109,663,-107,664,-315,669});
states[1319] = new State(new int[]{10,1320});
states[1320] = new State(-408);
states[1321] = new State(new int[]{135,23,78,25,79,26,73,28,71,29,40,360},new int[]{-152,1322,-124,988,-119,989,-116,990,-129,995,-133,24,-134,27,-174,996,-308,998,-131,1002});
states[1322] = new State(new int[]{8,715,5,-441,10,-441,102,-441},new int[]{-110,1323});
states[1323] = new State(new int[]{5,1324,10,1108,102,-706},new int[]{-190,1114,-191,1332});
states[1324] = new State(new int[]{135,462,78,25,79,26,73,28,71,29,146,153,148,154,147,155,108,269,107,270,136,148,138,149,137,151,8,471,134,475,20,480,43,488,44,697,29,701,69,705,60,708,39,713,32,728},new int[]{-256,1325,-257,411,-254,412,-84,174,-93,414,-94,415,-163,416,-129,195,-133,24,-134,27,-14,466,-182,467,-147,470,-149,146,-148,150,-237,473,-230,474,-261,477,-262,478,-259,479,-252,486,-26,487,-245,696,-112,700,-113,704,-208,710,-206,711,-205,712,-278,732});
states[1325] = new State(new int[]{10,1108,102,-706},new int[]{-190,1118,-191,1326});
states[1326] = new State(new int[]{102,1327});
states[1327] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,772,17,243,18,248,32,827,39,841},new int[]{-90,1328,-297,1330,-89,131,-88,301,-92,542,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,538,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525,-298,826});
states[1328] = new State(new int[]{10,1329,13,127});
states[1329] = new State(-404);
states[1330] = new State(new int[]{10,1331});
states[1331] = new State(-406);
states[1332] = new State(new int[]{102,1333});
states[1333] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,772,17,243,18,248,32,827,39,841},new int[]{-90,1334,-297,1336,-89,131,-88,301,-92,542,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,538,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525,-298,826});
states[1334] = new State(new int[]{10,1335,13,127});
states[1335] = new State(-405);
states[1336] = new State(new int[]{10,1337});
states[1337] = new State(-407);
states[1338] = new State(new int[]{25,1340,39,1314,32,1321},new int[]{-203,1339,-210,1305,-207,1075,-211,1110});
states[1339] = new State(-402);
states[1340] = new State(new int[]{135,23,78,25,79,26,73,28,71,29,40,360,8,-355,102,-355,10,-355},new int[]{-154,1341,-153,986,-152,987,-124,988,-119,989,-116,990,-129,995,-133,24,-134,27,-174,996,-308,998,-131,1002});
states[1341] = new State(new int[]{8,715,102,-441,10,-441},new int[]{-110,1342});
states[1342] = new State(new int[]{102,1343,10,975},new int[]{-190,512});
states[1343] = new State(new int[]{133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,516,8,517,17,243,18,248,136,148,138,149,137,151,146,153,148,154,147,155,52,555,83,115,35,545,21,563,89,580,49,585,30,590,50,600,94,606,42,613,31,616,48,624,55,650,70,659,68,665,33,670,10,-465},new int[]{-242,1344,-3,121,-99,122,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-13,551,-147,145,-149,146,-148,150,-14,152,-52,552,-102,445,-194,553,-115,554,-236,560,-135,561,-30,562,-228,579,-293,584,-106,589,-294,599,-142,604,-279,605,-229,612,-105,615,-289,623,-53,654,-157,655,-156,656,-151,657,-108,658,-109,663,-107,664,-315,669});
states[1344] = new State(new int[]{10,1345});
states[1345] = new State(-397);
states[1346] = new State(-77);
states[1347] = new State(-59,new int[]{-160,1348,-36,1310,-37,1293});
states[1348] = new State(-395);
states[1349] = new State(new int[]{135,23,78,25,79,26,73,28,71,29,40,360,8,-355,102,-355,10,-355},new int[]{-154,1350,-153,986,-152,987,-124,988,-119,989,-116,990,-129,995,-133,24,-134,27,-174,996,-308,998,-131,1002});
states[1350] = new State(new int[]{8,715,102,-441,10,-441},new int[]{-110,1351});
states[1351] = new State(new int[]{102,1352,10,975},new int[]{-190,1188});
states[1352] = new State(new int[]{133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,516,8,517,17,243,18,248,136,148,138,149,137,151,146,153,148,154,147,155,52,555,83,115,35,545,21,563,89,580,49,585,30,590,50,600,94,606,42,613,31,616,48,624,55,650,70,659,68,665,33,670,10,-465},new int[]{-242,1353,-3,121,-99,122,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-13,551,-147,145,-149,146,-148,150,-14,152,-52,552,-102,445,-194,553,-115,554,-236,560,-135,561,-30,562,-228,579,-293,584,-106,589,-294,599,-142,604,-279,605,-229,612,-105,615,-289,623,-53,654,-157,655,-156,656,-151,657,-108,658,-109,663,-107,664,-315,669});
states[1353] = new State(new int[]{10,1354});
states[1354] = new State(-396);
states[1355] = new State(new int[]{3,1357,47,-12,83,-12,54,-12,24,-12,62,-12,45,-12,48,-12,57,-12,11,-12,39,-12,32,-12,22,-12,25,-12,26,-12,38,-12,84,-12,95,-12},new int[]{-167,1356});
states[1356] = new State(-14);
states[1357] = new State(new int[]{135,1358,136,1359});
states[1358] = new State(-15);
states[1359] = new State(-16);
states[1360] = new State(-13);
states[1361] = new State(new int[]{135,23,78,25,79,26,73,28,71,29},new int[]{-129,1362,-133,24,-134,27});
states[1362] = new State(new int[]{10,1364,8,1365},new int[]{-170,1363});
states[1363] = new State(-25);
states[1364] = new State(-26);
states[1365] = new State(new int[]{135,23,78,25,79,26,73,28,71,29},new int[]{-172,1366,-128,1372,-129,1371,-133,24,-134,27});
states[1366] = new State(new int[]{9,1367,92,1369});
states[1367] = new State(new int[]{10,1368});
states[1368] = new State(-27);
states[1369] = new State(new int[]{135,23,78,25,79,26,73,28,71,29},new int[]{-128,1370,-129,1371,-133,24,-134,27});
states[1370] = new State(-29);
states[1371] = new State(-30);
states[1372] = new State(-28);
states[1373] = new State(-3);
states[1374] = new State(new int[]{97,1429,98,1430,101,1431,11,760},new int[]{-284,1375,-231,504,-2,1424});
states[1375] = new State(new int[]{38,1396,47,-35,54,-35,24,-35,62,-35,45,-35,48,-35,57,-35,11,-35,39,-35,32,-35,22,-35,25,-35,26,-35,84,-35,95,-35,83,-35},new int[]{-144,1376,-145,1393,-280,1422});
states[1376] = new State(new int[]{36,1390},new int[]{-143,1377});
states[1377] = new State(new int[]{84,1380,95,1381,83,1387},new int[]{-136,1378});
states[1378] = new State(new int[]{7,1379});
states[1379] = new State(-41);
states[1380] = new State(-51);
states[1381] = new State(new int[]{133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,516,8,517,17,243,18,248,136,148,138,149,137,151,146,577,148,154,147,578,52,555,83,115,35,545,21,563,89,580,49,585,30,590,50,600,94,606,42,613,31,616,48,624,55,650,70,659,68,665,33,670,84,-465,96,-465,10,-465},new int[]{-233,1382,-243,575,-242,120,-3,121,-99,122,-114,346,-98,353,-129,576,-133,24,-134,27,-174,359,-238,437,-274,438,-13,551,-147,145,-149,146,-148,150,-14,152,-52,552,-102,445,-194,553,-115,554,-236,560,-135,561,-30,562,-228,579,-293,584,-106,589,-294,599,-142,604,-279,605,-229,612,-105,615,-289,623,-53,654,-157,655,-156,656,-151,657,-108,658,-109,663,-107,664,-315,669,-125,911});
states[1382] = new State(new int[]{84,1383,96,1384,10,118});
states[1383] = new State(-52);
states[1384] = new State(new int[]{133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,516,8,517,17,243,18,248,136,148,138,149,137,151,146,577,148,154,147,578,52,555,83,115,35,545,21,563,89,580,49,585,30,590,50,600,94,606,42,613,31,616,48,624,55,650,70,659,68,665,33,670,84,-465,10,-465},new int[]{-233,1385,-243,575,-242,120,-3,121,-99,122,-114,346,-98,353,-129,576,-133,24,-134,27,-174,359,-238,437,-274,438,-13,551,-147,145,-149,146,-148,150,-14,152,-52,552,-102,445,-194,553,-115,554,-236,560,-135,561,-30,562,-228,579,-293,584,-106,589,-294,599,-142,604,-279,605,-229,612,-105,615,-289,623,-53,654,-157,655,-156,656,-151,657,-108,658,-109,663,-107,664,-315,669,-125,911});
states[1385] = new State(new int[]{84,1386,10,118});
states[1386] = new State(-53);
states[1387] = new State(new int[]{133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,516,8,517,17,243,18,248,136,148,138,149,137,151,146,577,148,154,147,578,52,555,83,115,35,545,21,563,89,580,49,585,30,590,50,600,94,606,42,613,31,616,48,624,55,650,70,659,68,665,33,670,84,-465,10,-465},new int[]{-233,1388,-243,575,-242,120,-3,121,-99,122,-114,346,-98,353,-129,576,-133,24,-134,27,-174,359,-238,437,-274,438,-13,551,-147,145,-149,146,-148,150,-14,152,-52,552,-102,445,-194,553,-115,554,-236,560,-135,561,-30,562,-228,579,-293,584,-106,589,-294,599,-142,604,-279,605,-229,612,-105,615,-289,623,-53,654,-157,655,-156,656,-151,657,-108,658,-109,663,-107,664,-315,669,-125,911});
states[1388] = new State(new int[]{84,1389,10,118});
states[1389] = new State(-54);
states[1390] = new State(-35,new int[]{-280,1391});
states[1391] = new State(new int[]{47,14,54,-59,24,-59,62,-59,45,-59,48,-59,57,-59,11,-59,39,-59,32,-59,22,-59,25,-59,26,-59,84,-59,95,-59,83,-59},new int[]{-36,1392,-37,1293});
states[1392] = new State(-49);
states[1393] = new State(new int[]{84,1380,95,1381,83,1387},new int[]{-136,1394});
states[1394] = new State(new int[]{7,1395});
states[1395] = new State(-42);
states[1396] = new State(-35,new int[]{-280,1397});
states[1397] = new State(new int[]{47,14,24,-56,62,-56,45,-56,48,-56,57,-56,11,-56,39,-56,32,-56,36,-56},new int[]{-35,1398,-33,1399});
states[1398] = new State(-48);
states[1399] = new State(new int[]{24,1034,62,1038,45,1224,48,1230,57,1240,11,760,36,-55,39,-199,32,-199},new int[]{-42,1400,-24,1401,-46,1402,-268,1403,-285,1404,-214,1405,-5,1406,-231,872,-213,1421});
states[1400] = new State(-57);
states[1401] = new State(new int[]{135,23,78,25,79,26,73,28,71,29,24,-64,62,-64,45,-64,48,-64,57,-64,11,-64,39,-64,32,-64,36,-64},new int[]{-22,1020,-23,1021,-123,1023,-129,1033,-133,24,-134,27});
states[1402] = new State(new int[]{135,23,78,25,79,26,73,28,71,29,24,-65,62,-65,45,-65,48,-65,57,-65,11,-65,39,-65,32,-65,36,-65},new int[]{-22,1037,-23,1021,-123,1023,-129,1033,-133,24,-134,27});
states[1403] = new State(new int[]{11,760,24,-66,62,-66,45,-66,48,-66,57,-66,39,-66,32,-66,36,-66,135,-199,78,-199,79,-199,73,-199,71,-199},new int[]{-43,1041,-5,1042,-231,872});
states[1404] = new State(new int[]{135,23,78,25,79,26,73,28,71,29,24,-67,62,-67,45,-67,48,-67,57,-67,11,-67,39,-67,32,-67,36,-67},new int[]{-286,1227,-287,1228,-140,634,-129,633,-133,24,-134,27});
states[1405] = new State(-68);
states[1406] = new State(new int[]{39,1413,11,760,32,1416},new int[]{-207,1407,-231,504,-211,1410});
states[1407] = new State(new int[]{140,1408,24,-84,62,-84,45,-84,48,-84,57,-84,11,-84,39,-84,32,-84,36,-84});
states[1408] = new State(new int[]{10,1409});
states[1409] = new State(-85);
states[1410] = new State(new int[]{140,1411,24,-86,62,-86,45,-86,48,-86,57,-86,11,-86,39,-86,32,-86,36,-86});
states[1411] = new State(new int[]{10,1412});
states[1412] = new State(-87);
states[1413] = new State(new int[]{135,23,78,25,79,26,73,28,71,29,40,360},new int[]{-153,1414,-152,987,-124,988,-119,989,-116,990,-129,995,-133,24,-134,27,-174,996,-308,998,-131,1002});
states[1414] = new State(new int[]{8,715,10,-441},new int[]{-110,1415});
states[1415] = new State(new int[]{10,975},new int[]{-190,1079});
states[1416] = new State(new int[]{135,23,78,25,79,26,73,28,71,29,40,360},new int[]{-152,1417,-124,988,-119,989,-116,990,-129,995,-133,24,-134,27,-174,996,-308,998,-131,1002});
states[1417] = new State(new int[]{8,715,5,-441,10,-441},new int[]{-110,1418});
states[1418] = new State(new int[]{5,1419,10,975},new int[]{-190,1114});
states[1419] = new State(new int[]{135,462,78,25,79,26,73,28,71,29,146,153,148,154,147,155,108,269,107,270,136,148,138,149,137,151,8,471,134,475,20,480,43,488,44,697,29,701,69,705,60,708,39,713,32,728},new int[]{-256,1420,-257,411,-254,412,-84,174,-93,414,-94,415,-163,416,-129,195,-133,24,-134,27,-14,466,-182,467,-147,470,-149,146,-148,150,-237,473,-230,474,-261,477,-262,478,-259,479,-252,486,-26,487,-245,696,-112,700,-113,704,-208,710,-206,711,-205,712,-278,732});
states[1420] = new State(new int[]{10,975},new int[]{-190,1118});
states[1421] = new State(-69);
states[1422] = new State(new int[]{47,14,54,-59,24,-59,62,-59,45,-59,48,-59,57,-59,11,-59,39,-59,32,-59,22,-59,25,-59,26,-59,84,-59,95,-59,83,-59},new int[]{-36,1423,-37,1293});
states[1423] = new State(-50);
states[1424] = new State(new int[]{135,23,78,25,79,26,73,28,71,29},new int[]{-121,1425,-129,1428,-133,24,-134,27});
states[1425] = new State(new int[]{10,1426});
states[1426] = new State(new int[]{3,1357,38,-11,84,-11,95,-11,83,-11,47,-11,54,-11,24,-11,62,-11,45,-11,48,-11,57,-11,11,-11,39,-11,32,-11,22,-11,25,-11,26,-11},new int[]{-168,1427,-169,1355,-167,1360});
states[1427] = new State(-43);
states[1428] = new State(-47);
states[1429] = new State(-45);
states[1430] = new State(-46);
states[1431] = new State(new int[]{135,23,78,25,79,26,73,28,71,29,77,32,76,33,75,34,74,35,64,36,59,37,120,38,18,39,17,40,58,41,19,42,121,43,122,44,123,45,124,46,125,47,126,48,127,49,128,50,129,51,130,52,20,53,69,54,83,55,21,56,22,57,24,58,25,59,26,60,67,61,91,62,27,63,28,64,29,65,23,66,96,67,93,68,30,69,31,70,32,71,35,72,36,73,37,74,95,75,38,76,39,77,41,78,42,79,43,80,89,81,44,82,94,83,45,84,46,85,66,86,90,87,47,88,48,89,49,90,50,91,51,92,52,93,53,94,54,95,56,96,97,97,98,98,101,99,99,100,100,101,57,102,70,103,33,104,34,105,40,107,84,108},new int[]{-139,1432,-120,111,-129,22,-133,24,-134,27,-272,30,-132,31,-273,106});
states[1432] = new State(new int[]{10,1433,7,20});
states[1433] = new State(new int[]{3,1357,38,-11,84,-11,95,-11,83,-11,47,-11,54,-11,24,-11,62,-11,45,-11,48,-11,57,-11,11,-11,39,-11,32,-11,22,-11,25,-11,26,-11},new int[]{-168,1434,-169,1355,-167,1360});
states[1434] = new State(-44);
states[1435] = new State(-4);
states[1436] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,392,17,243,18,248,5,527},new int[]{-80,1437,-90,126,-89,131,-88,301,-92,309,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,345,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525,-104,526});
states[1437] = new State(-5);
states[1438] = new State(new int[]{135,23,78,25,79,26,73,28,71,29},new int[]{-295,1439,-296,1440,-129,1444,-133,24,-134,27});
states[1439] = new State(-6);
states[1440] = new State(new int[]{7,1441,115,167,2,-673},new int[]{-277,1443});
states[1441] = new State(new int[]{135,23,78,25,79,26,73,28,71,29,77,32,76,33,75,34,74,35,64,36,59,37,120,38,18,39,17,40,58,41,19,42,121,43,122,44,123,45,124,46,125,47,126,48,127,49,128,50,129,51,130,52,20,53,69,54,83,55,21,56,22,57,24,58,25,59,26,60,67,61,91,62,27,63,28,64,29,65,23,66,96,67,93,68,30,69,31,70,32,71,35,72,36,73,37,74,95,75,38,76,39,77,41,78,42,79,43,80,89,81,44,82,94,83,45,84,46,85,66,86,90,87,47,88,48,89,49,90,50,91,51,92,52,93,53,94,54,95,56,96,97,97,98,98,101,99,99,100,100,101,57,102,70,103,33,104,34,105,40,107,84,108},new int[]{-120,1442,-129,22,-133,24,-134,27,-272,30,-132,31,-273,106});
states[1442] = new State(-672);
states[1443] = new State(-674);
states[1444] = new State(-671);
states[1445] = new State(new int[]{51,141,136,148,138,149,137,151,146,153,148,154,147,155,58,157,11,332,127,341,108,269,107,270,133,352,135,23,78,25,79,26,73,28,71,225,40,360,37,390,8,517,17,243,18,248,5,527,48,624},new int[]{-241,1446,-80,1447,-90,126,-89,131,-88,301,-92,309,-75,319,-87,331,-13,142,-147,145,-149,146,-148,150,-14,152,-51,156,-182,343,-99,1448,-114,346,-98,353,-129,358,-133,24,-134,27,-174,359,-238,437,-274,438,-52,439,-102,445,-156,446,-250,447,-76,448,-246,451,-248,452,-249,524,-222,525,-104,526,-3,1449,-289,1450});
states[1446] = new State(-7);
states[1447] = new State(-8);
states[1448] = new State(new int[]{102,384,103,385,104,386,105,387,106,388,130,-658,128,-658,110,-658,109,-658,123,-658,124,-658,125,-658,126,-658,122,-658,5,-658,108,-658,107,-658,120,-658,121,-658,118,-658,112,-658,117,-658,115,-658,113,-658,116,-658,114,-658,129,-658,15,-658,13,-658,2,-658,111,-658},new int[]{-177,123});
states[1449] = new State(-9);
states[1450] = new State(-10);
rules[1] = new Rule(-322, new int[]{-1,2});
rules[2] = new Rule(-1, new int[]{-216});
rules[3] = new Rule(-1, new int[]{-282});
rules[4] = new Rule(-1, new int[]{-158});
rules[5] = new Rule(-158, new int[]{80,-80});
rules[6] = new Rule(-158, new int[]{82,-295});
rules[7] = new Rule(-158, new int[]{81,-241});
rules[8] = new Rule(-241, new int[]{-80});
rules[9] = new Rule(-241, new int[]{-3});
rules[10] = new Rule(-241, new int[]{-289});
rules[11] = new Rule(-168, new int[]{});
rules[12] = new Rule(-168, new int[]{-169});
rules[13] = new Rule(-169, new int[]{-167});
rules[14] = new Rule(-169, new int[]{-169,-167});
rules[15] = new Rule(-167, new int[]{3,135});
rules[16] = new Rule(-167, new int[]{3,136});
rules[17] = new Rule(-216, new int[]{-217,-168,-280,-15,-171});
rules[18] = new Rule(-171, new int[]{7});
rules[19] = new Rule(-171, new int[]{10});
rules[20] = new Rule(-171, new int[]{5});
rules[21] = new Rule(-171, new int[]{92});
rules[22] = new Rule(-171, new int[]{6});
rules[23] = new Rule(-171, new int[]{});
rules[24] = new Rule(-217, new int[]{});
rules[25] = new Rule(-217, new int[]{56,-129,-170});
rules[26] = new Rule(-170, new int[]{10});
rules[27] = new Rule(-170, new int[]{8,-172,9,10});
rules[28] = new Rule(-172, new int[]{-128});
rules[29] = new Rule(-172, new int[]{-172,92,-128});
rules[30] = new Rule(-128, new int[]{-129});
rules[31] = new Rule(-15, new int[]{-32,-236});
rules[32] = new Rule(-32, new int[]{-36});
rules[33] = new Rule(-139, new int[]{-120});
rules[34] = new Rule(-139, new int[]{-139,7,-120});
rules[35] = new Rule(-280, new int[]{});
rules[36] = new Rule(-280, new int[]{-280,47,-281,10});
rules[37] = new Rule(-281, new int[]{-283});
rules[38] = new Rule(-281, new int[]{-281,92,-283});
rules[39] = new Rule(-283, new int[]{-139});
rules[40] = new Rule(-283, new int[]{-139,129,136});
rules[41] = new Rule(-282, new int[]{-5,-284,-144,-143,-136,7});
rules[42] = new Rule(-282, new int[]{-5,-284,-145,-136,7});
rules[43] = new Rule(-284, new int[]{-2,-121,10,-168});
rules[44] = new Rule(-284, new int[]{101,-139,10,-168});
rules[45] = new Rule(-2, new int[]{97});
rules[46] = new Rule(-2, new int[]{98});
rules[47] = new Rule(-121, new int[]{-129});
rules[48] = new Rule(-144, new int[]{38,-280,-35});
rules[49] = new Rule(-143, new int[]{36,-280,-36});
rules[50] = new Rule(-145, new int[]{-280,-36});
rules[51] = new Rule(-136, new int[]{84});
rules[52] = new Rule(-136, new int[]{95,-233,84});
rules[53] = new Rule(-136, new int[]{95,-233,96,-233,84});
rules[54] = new Rule(-136, new int[]{83,-233,84});
rules[55] = new Rule(-35, new int[]{-33});
rules[56] = new Rule(-33, new int[]{});
rules[57] = new Rule(-33, new int[]{-33,-42});
rules[58] = new Rule(-36, new int[]{-37});
rules[59] = new Rule(-37, new int[]{});
rules[60] = new Rule(-37, new int[]{-37,-41});
rules[61] = new Rule(-38, new int[]{-34});
rules[62] = new Rule(-34, new int[]{});
rules[63] = new Rule(-34, new int[]{-34,-40});
rules[64] = new Rule(-42, new int[]{-24});
rules[65] = new Rule(-42, new int[]{-46});
rules[66] = new Rule(-42, new int[]{-268});
rules[67] = new Rule(-42, new int[]{-285});
rules[68] = new Rule(-42, new int[]{-214});
rules[69] = new Rule(-42, new int[]{-213});
rules[70] = new Rule(-41, new int[]{-150});
rules[71] = new Rule(-41, new int[]{-24});
rules[72] = new Rule(-41, new int[]{-46});
rules[73] = new Rule(-41, new int[]{-268});
rules[74] = new Rule(-41, new int[]{-285});
rules[75] = new Rule(-41, new int[]{-202});
rules[76] = new Rule(-195, new int[]{-196});
rules[77] = new Rule(-195, new int[]{-199});
rules[78] = new Rule(-202, new int[]{-5,-195});
rules[79] = new Rule(-40, new int[]{-150});
rules[80] = new Rule(-40, new int[]{-24});
rules[81] = new Rule(-40, new int[]{-46});
rules[82] = new Rule(-40, new int[]{-268});
rules[83] = new Rule(-40, new int[]{-285});
rules[84] = new Rule(-214, new int[]{-5,-207});
rules[85] = new Rule(-214, new int[]{-5,-207,140,10});
rules[86] = new Rule(-213, new int[]{-5,-211});
rules[87] = new Rule(-213, new int[]{-5,-211,140,10});
rules[88] = new Rule(-150, new int[]{54,-138,10});
rules[89] = new Rule(-138, new int[]{-125});
rules[90] = new Rule(-138, new int[]{-138,92,-125});
rules[91] = new Rule(-125, new int[]{146});
rules[92] = new Rule(-125, new int[]{147});
rules[93] = new Rule(-125, new int[]{-129});
rules[94] = new Rule(-24, new int[]{24,-22});
rules[95] = new Rule(-24, new int[]{-24,-22});
rules[96] = new Rule(-46, new int[]{62,-22});
rules[97] = new Rule(-46, new int[]{-46,-22});
rules[98] = new Rule(-268, new int[]{45,-43});
rules[99] = new Rule(-268, new int[]{-268,-43});
rules[100] = new Rule(-285, new int[]{48,-286});
rules[101] = new Rule(-285, new int[]{57,-286});
rules[102] = new Rule(-285, new int[]{-285,-286});
rules[103] = new Rule(-285, new int[]{48,8,-129,92,-140,9,102,-90,10});
rules[104] = new Rule(-22, new int[]{-23,10});
rules[105] = new Rule(-23, new int[]{-123,112,-96});
rules[106] = new Rule(-23, new int[]{-123,5,-257,112,-77});
rules[107] = new Rule(-96, new int[]{-82});
rules[108] = new Rule(-96, new int[]{-86});
rules[109] = new Rule(-123, new int[]{-129});
rules[110] = new Rule(-72, new int[]{-90});
rules[111] = new Rule(-72, new int[]{-72,92,-90});
rules[112] = new Rule(-82, new int[]{-74});
rules[113] = new Rule(-82, new int[]{-74,-175,-74});
rules[114] = new Rule(-82, new int[]{-223});
rules[115] = new Rule(-223, new int[]{-82,13,-82,5,-82});
rules[116] = new Rule(-175, new int[]{112});
rules[117] = new Rule(-175, new int[]{117});
rules[118] = new Rule(-175, new int[]{115});
rules[119] = new Rule(-175, new int[]{113});
rules[120] = new Rule(-175, new int[]{116});
rules[121] = new Rule(-175, new int[]{114});
rules[122] = new Rule(-175, new int[]{129});
rules[123] = new Rule(-74, new int[]{-11});
rules[124] = new Rule(-74, new int[]{-74,-176,-11});
rules[125] = new Rule(-176, new int[]{108});
rules[126] = new Rule(-176, new int[]{107});
rules[127] = new Rule(-176, new int[]{120});
rules[128] = new Rule(-176, new int[]{121});
rules[129] = new Rule(-247, new int[]{-11,-184,-263});
rules[130] = new Rule(-251, new int[]{-9,111,-9});
rules[131] = new Rule(-11, new int[]{-9});
rules[132] = new Rule(-11, new int[]{-247});
rules[133] = new Rule(-11, new int[]{-251});
rules[134] = new Rule(-11, new int[]{-11,-178,-9});
rules[135] = new Rule(-11, new int[]{-11,-178,-251});
rules[136] = new Rule(-178, new int[]{110});
rules[137] = new Rule(-178, new int[]{109});
rules[138] = new Rule(-178, new int[]{123});
rules[139] = new Rule(-178, new int[]{124});
rules[140] = new Rule(-178, new int[]{125});
rules[141] = new Rule(-178, new int[]{126});
rules[142] = new Rule(-178, new int[]{122});
rules[143] = new Rule(-9, new int[]{-12});
rules[144] = new Rule(-9, new int[]{-221});
rules[145] = new Rule(-9, new int[]{-14});
rules[146] = new Rule(-9, new int[]{-147});
rules[147] = new Rule(-9, new int[]{51});
rules[148] = new Rule(-9, new int[]{133,-9});
rules[149] = new Rule(-9, new int[]{8,-82,9});
rules[150] = new Rule(-9, new int[]{127,-9});
rules[151] = new Rule(-9, new int[]{-182,-9});
rules[152] = new Rule(-9, new int[]{-156});
rules[153] = new Rule(-221, new int[]{11,-68,12});
rules[154] = new Rule(-182, new int[]{108});
rules[155] = new Rule(-182, new int[]{107});
rules[156] = new Rule(-12, new int[]{-129});
rules[157] = new Rule(-12, new int[]{37,-129});
rules[158] = new Rule(-12, new int[]{-238});
rules[159] = new Rule(-12, new int[]{-274});
rules[160] = new Rule(-12, new int[]{-12,-10});
rules[161] = new Rule(-12, new int[]{-12,4,-277});
rules[162] = new Rule(-10, new int[]{7,-120});
rules[163] = new Rule(-10, new int[]{134});
rules[164] = new Rule(-10, new int[]{8,-69,9});
rules[165] = new Rule(-10, new int[]{11,-68,12});
rules[166] = new Rule(-69, new int[]{-66});
rules[167] = new Rule(-69, new int[]{});
rules[168] = new Rule(-66, new int[]{-82});
rules[169] = new Rule(-66, new int[]{-66,92,-82});
rules[170] = new Rule(-68, new int[]{-65});
rules[171] = new Rule(-68, new int[]{});
rules[172] = new Rule(-65, new int[]{-85});
rules[173] = new Rule(-65, new int[]{-65,92,-85});
rules[174] = new Rule(-85, new int[]{-82});
rules[175] = new Rule(-85, new int[]{-82,6,-82});
rules[176] = new Rule(-14, new int[]{146});
rules[177] = new Rule(-14, new int[]{148});
rules[178] = new Rule(-14, new int[]{147});
rules[179] = new Rule(-77, new int[]{-82});
rules[180] = new Rule(-77, new int[]{-86});
rules[181] = new Rule(-77, new int[]{-224});
rules[182] = new Rule(-86, new int[]{8,-60,9});
rules[183] = new Rule(-86, new int[]{8,-224,9});
rules[184] = new Rule(-86, new int[]{8,-86,9});
rules[185] = new Rule(-60, new int[]{});
rules[186] = new Rule(-60, new int[]{-59});
rules[187] = new Rule(-59, new int[]{-78});
rules[188] = new Rule(-59, new int[]{-59,92,-78});
rules[189] = new Rule(-224, new int[]{8,-226,9});
rules[190] = new Rule(-226, new int[]{-225});
rules[191] = new Rule(-226, new int[]{-225,10});
rules[192] = new Rule(-225, new int[]{-227});
rules[193] = new Rule(-225, new int[]{-225,10,-227});
rules[194] = new Rule(-227, new int[]{-118,5,-77});
rules[195] = new Rule(-118, new int[]{-129});
rules[196] = new Rule(-43, new int[]{-5,-44});
rules[197] = new Rule(-5, new int[]{-231});
rules[198] = new Rule(-5, new int[]{-5,-231});
rules[199] = new Rule(-5, new int[]{});
rules[200] = new Rule(-231, new int[]{11,-232,12});
rules[201] = new Rule(-232, new int[]{-7});
rules[202] = new Rule(-232, new int[]{-232,92,-7});
rules[203] = new Rule(-7, new int[]{-8});
rules[204] = new Rule(-7, new int[]{-129,5,-8});
rules[205] = new Rule(-44, new int[]{-126,112,-266,10});
rules[206] = new Rule(-44, new int[]{-127,-266,10});
rules[207] = new Rule(-126, new int[]{-129});
rules[208] = new Rule(-126, new int[]{-129,-137});
rules[209] = new Rule(-127, new int[]{-129,115,-140,114});
rules[210] = new Rule(-266, new int[]{-257});
rules[211] = new Rule(-266, new int[]{-25});
rules[212] = new Rule(-257, new int[]{-254});
rules[213] = new Rule(-257, new int[]{-254,13});
rules[214] = new Rule(-257, new int[]{-237});
rules[215] = new Rule(-257, new int[]{-230});
rules[216] = new Rule(-257, new int[]{-261});
rules[217] = new Rule(-257, new int[]{-208});
rules[218] = new Rule(-257, new int[]{-278});
rules[219] = new Rule(-278, new int[]{-163,-277});
rules[220] = new Rule(-277, new int[]{115,-276,113});
rules[221] = new Rule(-276, new int[]{-260});
rules[222] = new Rule(-276, new int[]{-276,92,-260});
rules[223] = new Rule(-260, new int[]{-254});
rules[224] = new Rule(-260, new int[]{-254,13});
rules[225] = new Rule(-260, new int[]{-261});
rules[226] = new Rule(-260, new int[]{-208});
rules[227] = new Rule(-260, new int[]{-278});
rules[228] = new Rule(-254, new int[]{-84});
rules[229] = new Rule(-254, new int[]{-84,6,-84});
rules[230] = new Rule(-254, new int[]{8,-73,9});
rules[231] = new Rule(-84, new int[]{-93});
rules[232] = new Rule(-84, new int[]{-84,-176,-93});
rules[233] = new Rule(-93, new int[]{-94});
rules[234] = new Rule(-93, new int[]{-93,-178,-94});
rules[235] = new Rule(-94, new int[]{-163});
rules[236] = new Rule(-94, new int[]{-14});
rules[237] = new Rule(-94, new int[]{-182,-94});
rules[238] = new Rule(-94, new int[]{-147});
rules[239] = new Rule(-94, new int[]{-94,8,-68,9});
rules[240] = new Rule(-163, new int[]{-129});
rules[241] = new Rule(-163, new int[]{-163,7,-120});
rules[242] = new Rule(-73, new int[]{-71,92,-71});
rules[243] = new Rule(-73, new int[]{-73,92,-71});
rules[244] = new Rule(-71, new int[]{-257});
rules[245] = new Rule(-71, new int[]{-257,112,-80});
rules[246] = new Rule(-230, new int[]{134,-256});
rules[247] = new Rule(-261, new int[]{-262});
rules[248] = new Rule(-261, new int[]{60,-262});
rules[249] = new Rule(-262, new int[]{-259});
rules[250] = new Rule(-262, new int[]{-26});
rules[251] = new Rule(-262, new int[]{-245});
rules[252] = new Rule(-262, new int[]{-112});
rules[253] = new Rule(-262, new int[]{-113});
rules[254] = new Rule(-113, new int[]{69,53,-257});
rules[255] = new Rule(-259, new int[]{20,11,-146,12,53,-257});
rules[256] = new Rule(-259, new int[]{-252});
rules[257] = new Rule(-252, new int[]{20,53,-257});
rules[258] = new Rule(-146, new int[]{-253});
rules[259] = new Rule(-146, new int[]{-146,92,-253});
rules[260] = new Rule(-253, new int[]{-254});
rules[261] = new Rule(-253, new int[]{});
rules[262] = new Rule(-245, new int[]{44,53,-257});
rules[263] = new Rule(-112, new int[]{29,53,-257});
rules[264] = new Rule(-112, new int[]{29});
rules[265] = new Rule(-237, new int[]{135,11,-82,12});
rules[266] = new Rule(-208, new int[]{-206});
rules[267] = new Rule(-206, new int[]{-205});
rules[268] = new Rule(-205, new int[]{39,-110});
rules[269] = new Rule(-205, new int[]{32,-110});
rules[270] = new Rule(-205, new int[]{32,-110,5,-256});
rules[271] = new Rule(-205, new int[]{-163,119,-260});
rules[272] = new Rule(-205, new int[]{-278,119,-260});
rules[273] = new Rule(-205, new int[]{8,9,119,-260});
rules[274] = new Rule(-205, new int[]{8,-73,9,119,-260});
rules[275] = new Rule(-205, new int[]{-163,119,8,9});
rules[276] = new Rule(-205, new int[]{-278,119,8,9});
rules[277] = new Rule(-205, new int[]{8,9,119,8,9});
rules[278] = new Rule(-205, new int[]{8,-73,9,119,8,9});
rules[279] = new Rule(-25, new int[]{-18,-270,-166,-292,-21});
rules[280] = new Rule(-26, new int[]{43,-166,-292,-20,84});
rules[281] = new Rule(-17, new int[]{64});
rules[282] = new Rule(-17, new int[]{65});
rules[283] = new Rule(-17, new int[]{139});
rules[284] = new Rule(-17, new int[]{23});
rules[285] = new Rule(-18, new int[]{});
rules[286] = new Rule(-18, new int[]{-19});
rules[287] = new Rule(-19, new int[]{-17});
rules[288] = new Rule(-19, new int[]{-19,-17});
rules[289] = new Rule(-270, new int[]{22});
rules[290] = new Rule(-270, new int[]{38});
rules[291] = new Rule(-270, new int[]{59});
rules[292] = new Rule(-270, new int[]{59,22});
rules[293] = new Rule(-270, new int[]{59,43});
rules[294] = new Rule(-270, new int[]{59,38});
rules[295] = new Rule(-21, new int[]{});
rules[296] = new Rule(-21, new int[]{-20,84});
rules[297] = new Rule(-166, new int[]{});
rules[298] = new Rule(-166, new int[]{8,-165,9});
rules[299] = new Rule(-165, new int[]{-164});
rules[300] = new Rule(-165, new int[]{-165,92,-164});
rules[301] = new Rule(-164, new int[]{-163});
rules[302] = new Rule(-164, new int[]{-278});
rules[303] = new Rule(-137, new int[]{115,-140,113});
rules[304] = new Rule(-292, new int[]{});
rules[305] = new Rule(-292, new int[]{-291});
rules[306] = new Rule(-291, new int[]{-290});
rules[307] = new Rule(-291, new int[]{-291,-290});
rules[308] = new Rule(-290, new int[]{19,-140,5,-267,10});
rules[309] = new Rule(-267, new int[]{-264});
rules[310] = new Rule(-267, new int[]{-267,92,-264});
rules[311] = new Rule(-264, new int[]{-257});
rules[312] = new Rule(-264, new int[]{22});
rules[313] = new Rule(-264, new int[]{43});
rules[314] = new Rule(-264, new int[]{25});
rules[315] = new Rule(-20, new int[]{-27});
rules[316] = new Rule(-20, new int[]{-20,-6,-27});
rules[317] = new Rule(-6, new int[]{77});
rules[318] = new Rule(-6, new int[]{76});
rules[319] = new Rule(-6, new int[]{75});
rules[320] = new Rule(-6, new int[]{74});
rules[321] = new Rule(-27, new int[]{});
rules[322] = new Rule(-27, new int[]{-29,-173});
rules[323] = new Rule(-27, new int[]{-28});
rules[324] = new Rule(-27, new int[]{-29,10,-28});
rules[325] = new Rule(-140, new int[]{-129});
rules[326] = new Rule(-140, new int[]{-140,92,-129});
rules[327] = new Rule(-173, new int[]{});
rules[328] = new Rule(-173, new int[]{10});
rules[329] = new Rule(-29, new int[]{-39});
rules[330] = new Rule(-29, new int[]{-29,10,-39});
rules[331] = new Rule(-39, new int[]{-5,-45});
rules[332] = new Rule(-28, new int[]{-48});
rules[333] = new Rule(-28, new int[]{-28,-48});
rules[334] = new Rule(-48, new int[]{-47});
rules[335] = new Rule(-48, new int[]{-49});
rules[336] = new Rule(-45, new int[]{24,-23});
rules[337] = new Rule(-45, new int[]{-288});
rules[338] = new Rule(-45, new int[]{22,-288});
rules[339] = new Rule(-288, new int[]{-287});
rules[340] = new Rule(-288, new int[]{57,-140,5,-257});
rules[341] = new Rule(-47, new int[]{-5,-204});
rules[342] = new Rule(-47, new int[]{-5,-201});
rules[343] = new Rule(-201, new int[]{-197});
rules[344] = new Rule(-201, new int[]{-200});
rules[345] = new Rule(-204, new int[]{22,-212});
rules[346] = new Rule(-204, new int[]{-212});
rules[347] = new Rule(-204, new int[]{-209});
rules[348] = new Rule(-212, new int[]{-210});
rules[349] = new Rule(-210, new int[]{-207});
rules[350] = new Rule(-210, new int[]{-211});
rules[351] = new Rule(-209, new int[]{25,-154,-110,-190});
rules[352] = new Rule(-209, new int[]{22,25,-154,-110,-190});
rules[353] = new Rule(-209, new int[]{26,-154,-110,-190});
rules[354] = new Rule(-154, new int[]{-153});
rules[355] = new Rule(-154, new int[]{});
rules[356] = new Rule(-155, new int[]{-129});
rules[357] = new Rule(-155, new int[]{-132});
rules[358] = new Rule(-155, new int[]{-155,7,-129});
rules[359] = new Rule(-155, new int[]{-155,7,-132});
rules[360] = new Rule(-49, new int[]{-5,-239});
rules[361] = new Rule(-239, new int[]{-240});
rules[362] = new Rule(-239, new int[]{22,-240});
rules[363] = new Rule(-240, new int[]{41,-155,-215,-185,10,-188});
rules[364] = new Rule(-240, new int[]{41,-155,-215,-185,10,-193,10,-188});
rules[365] = new Rule(-188, new int[]{});
rules[366] = new Rule(-188, new int[]{58,10});
rules[367] = new Rule(-215, new int[]{-220,5,-256});
rules[368] = new Rule(-220, new int[]{});
rules[369] = new Rule(-220, new int[]{11,-219,12});
rules[370] = new Rule(-219, new int[]{-218});
rules[371] = new Rule(-219, new int[]{-219,10,-218});
rules[372] = new Rule(-218, new int[]{-140,5,-256});
rules[373] = new Rule(-100, new int[]{-81});
rules[374] = new Rule(-100, new int[]{});
rules[375] = new Rule(-185, new int[]{});
rules[376] = new Rule(-185, new int[]{78,-100,-186});
rules[377] = new Rule(-185, new int[]{79,-242,-187});
rules[378] = new Rule(-186, new int[]{});
rules[379] = new Rule(-186, new int[]{79,-242});
rules[380] = new Rule(-187, new int[]{});
rules[381] = new Rule(-187, new int[]{78,-100});
rules[382] = new Rule(-286, new int[]{-287,10});
rules[383] = new Rule(-312, new int[]{102});
rules[384] = new Rule(-312, new int[]{112});
rules[385] = new Rule(-287, new int[]{-140,5,-257});
rules[386] = new Rule(-287, new int[]{-140,102,-80});
rules[387] = new Rule(-287, new int[]{-140,5,-257,-312,-79});
rules[388] = new Rule(-79, new int[]{-78});
rules[389] = new Rule(-79, new int[]{-298});
rules[390] = new Rule(-79, new int[]{-129,119,-303});
rules[391] = new Rule(-79, new int[]{8,9,-299,119,-303});
rules[392] = new Rule(-79, new int[]{8,-60,9,119,-303});
rules[393] = new Rule(-78, new int[]{-77});
rules[394] = new Rule(-78, new int[]{-51});
rules[395] = new Rule(-199, new int[]{-209,-160});
rules[396] = new Rule(-199, new int[]{25,-154,-110,102,-242,10});
rules[397] = new Rule(-199, new int[]{22,25,-154,-110,102,-242,10});
rules[398] = new Rule(-200, new int[]{-209,-159});
rules[399] = new Rule(-200, new int[]{25,-154,-110,102,-242,10});
rules[400] = new Rule(-200, new int[]{22,25,-154,-110,102,-242,10});
rules[401] = new Rule(-196, new int[]{-203});
rules[402] = new Rule(-196, new int[]{22,-203});
rules[403] = new Rule(-203, new int[]{-210,-161});
rules[404] = new Rule(-203, new int[]{32,-152,-110,5,-256,-191,102,-90,10});
rules[405] = new Rule(-203, new int[]{32,-152,-110,-191,102,-90,10});
rules[406] = new Rule(-203, new int[]{32,-152,-110,5,-256,-191,102,-297,10});
rules[407] = new Rule(-203, new int[]{32,-152,-110,-191,102,-297,10});
rules[408] = new Rule(-203, new int[]{39,-153,-110,-191,102,-242,10});
rules[409] = new Rule(-203, new int[]{-210,140,10});
rules[410] = new Rule(-197, new int[]{-198});
rules[411] = new Rule(-197, new int[]{22,-198});
rules[412] = new Rule(-198, new int[]{-210,-159});
rules[413] = new Rule(-198, new int[]{32,-152,-110,5,-256,-191,102,-91,10});
rules[414] = new Rule(-198, new int[]{32,-152,-110,-191,102,-91,10});
rules[415] = new Rule(-198, new int[]{39,-153,-110,-191,102,-242,10});
rules[416] = new Rule(-161, new int[]{-160});
rules[417] = new Rule(-161, new int[]{-55});
rules[418] = new Rule(-153, new int[]{-152});
rules[419] = new Rule(-152, new int[]{-124});
rules[420] = new Rule(-152, new int[]{-308,7,-124});
rules[421] = new Rule(-131, new int[]{-119});
rules[422] = new Rule(-308, new int[]{-131});
rules[423] = new Rule(-308, new int[]{-308,7,-131});
rules[424] = new Rule(-124, new int[]{-119});
rules[425] = new Rule(-124, new int[]{-174});
rules[426] = new Rule(-124, new int[]{-174,-137});
rules[427] = new Rule(-119, new int[]{-116});
rules[428] = new Rule(-119, new int[]{-116,-137});
rules[429] = new Rule(-116, new int[]{-129});
rules[430] = new Rule(-207, new int[]{39,-153,-110,-190,-292});
rules[431] = new Rule(-211, new int[]{32,-152,-110,-190,-292});
rules[432] = new Rule(-211, new int[]{32,-152,-110,5,-256,-190,-292});
rules[433] = new Rule(-55, new int[]{99,-95,73,-95,10});
rules[434] = new Rule(-55, new int[]{99,-95,10});
rules[435] = new Rule(-55, new int[]{99,10});
rules[436] = new Rule(-95, new int[]{-129});
rules[437] = new Rule(-95, new int[]{-147});
rules[438] = new Rule(-160, new int[]{-36,-236,10});
rules[439] = new Rule(-159, new int[]{-38,-236,10});
rules[440] = new Rule(-159, new int[]{-55});
rules[441] = new Rule(-110, new int[]{});
rules[442] = new Rule(-110, new int[]{8,9});
rules[443] = new Rule(-110, new int[]{8,-111,9});
rules[444] = new Rule(-111, new int[]{-50});
rules[445] = new Rule(-111, new int[]{-111,10,-50});
rules[446] = new Rule(-50, new int[]{-5,-275});
rules[447] = new Rule(-275, new int[]{-141,5,-256});
rules[448] = new Rule(-275, new int[]{48,-141,5,-256});
rules[449] = new Rule(-275, new int[]{24,-141,5,-256});
rules[450] = new Rule(-275, new int[]{100,-141,5,-256});
rules[451] = new Rule(-275, new int[]{-141,5,-256,102,-82});
rules[452] = new Rule(-275, new int[]{48,-141,5,-256,102,-82});
rules[453] = new Rule(-275, new int[]{24,-141,5,-256,102,-82});
rules[454] = new Rule(-141, new int[]{-117});
rules[455] = new Rule(-141, new int[]{-141,92,-117});
rules[456] = new Rule(-117, new int[]{-129});
rules[457] = new Rule(-256, new int[]{-257});
rules[458] = new Rule(-258, new int[]{-254});
rules[459] = new Rule(-258, new int[]{-237});
rules[460] = new Rule(-258, new int[]{-230});
rules[461] = new Rule(-258, new int[]{-261});
rules[462] = new Rule(-258, new int[]{-278});
rules[463] = new Rule(-243, new int[]{-242});
rules[464] = new Rule(-243, new int[]{-125,5,-243});
rules[465] = new Rule(-242, new int[]{});
rules[466] = new Rule(-242, new int[]{-3});
rules[467] = new Rule(-242, new int[]{-194});
rules[468] = new Rule(-242, new int[]{-115});
rules[469] = new Rule(-242, new int[]{-236});
rules[470] = new Rule(-242, new int[]{-135});
rules[471] = new Rule(-242, new int[]{-30});
rules[472] = new Rule(-242, new int[]{-228});
rules[473] = new Rule(-242, new int[]{-293});
rules[474] = new Rule(-242, new int[]{-106});
rules[475] = new Rule(-242, new int[]{-294});
rules[476] = new Rule(-242, new int[]{-142});
rules[477] = new Rule(-242, new int[]{-279});
rules[478] = new Rule(-242, new int[]{-229});
rules[479] = new Rule(-242, new int[]{-105});
rules[480] = new Rule(-242, new int[]{-289});
rules[481] = new Rule(-242, new int[]{-53});
rules[482] = new Rule(-242, new int[]{-151});
rules[483] = new Rule(-242, new int[]{-108});
rules[484] = new Rule(-242, new int[]{-109});
rules[485] = new Rule(-242, new int[]{-107});
rules[486] = new Rule(-242, new int[]{-315});
rules[487] = new Rule(-107, new int[]{68,-90,91,-242});
rules[488] = new Rule(-108, new int[]{70,-90});
rules[489] = new Rule(-109, new int[]{70,69,-90});
rules[490] = new Rule(-289, new int[]{48,-287});
rules[491] = new Rule(-289, new int[]{8,48,-129,92,-311,9,102,-80});
rules[492] = new Rule(-289, new int[]{48,8,-129,92,-140,9,102,-80});
rules[493] = new Rule(-3, new int[]{-99,-177,-81});
rules[494] = new Rule(-3, new int[]{8,-98,92,-310,9,-177,-80});
rules[495] = new Rule(-310, new int[]{-98});
rules[496] = new Rule(-310, new int[]{-310,92,-98});
rules[497] = new Rule(-311, new int[]{48,-129});
rules[498] = new Rule(-311, new int[]{-311,92,48,-129});
rules[499] = new Rule(-194, new int[]{-99});
rules[500] = new Rule(-115, new int[]{52,-125});
rules[501] = new Rule(-236, new int[]{83,-233,84});
rules[502] = new Rule(-233, new int[]{-243});
rules[503] = new Rule(-233, new int[]{-233,10,-243});
rules[504] = new Rule(-135, new int[]{35,-90,46,-242});
rules[505] = new Rule(-135, new int[]{35,-90,46,-242,27,-242});
rules[506] = new Rule(-315, new int[]{33,-90,50,-317,-234,84});
rules[507] = new Rule(-315, new int[]{33,-90,50,-317,10,-234,84});
rules[508] = new Rule(-317, new int[]{-316});
rules[509] = new Rule(-317, new int[]{-317,10,-316});
rules[510] = new Rule(-316, new int[]{-314,34,-90,5,-242});
rules[511] = new Rule(-316, new int[]{-314,5,-242});
rules[512] = new Rule(-30, new int[]{21,-90,53,-31,-234,84});
rules[513] = new Rule(-30, new int[]{21,-90,53,-31,10,-234,84});
rules[514] = new Rule(-30, new int[]{21,-90,53,-234,84});
rules[515] = new Rule(-31, new int[]{-244});
rules[516] = new Rule(-31, new int[]{-31,10,-244});
rules[517] = new Rule(-244, new int[]{-67,5,-242});
rules[518] = new Rule(-67, new int[]{-97});
rules[519] = new Rule(-67, new int[]{-67,92,-97});
rules[520] = new Rule(-97, new int[]{-85});
rules[521] = new Rule(-234, new int[]{});
rules[522] = new Rule(-234, new int[]{27,-233});
rules[523] = new Rule(-228, new int[]{89,-233,90,-80});
rules[524] = new Rule(-293, new int[]{49,-90,-271,-242});
rules[525] = new Rule(-271, new int[]{91});
rules[526] = new Rule(-271, new int[]{});
rules[527] = new Rule(-151, new int[]{55,-90,91,-242});
rules[528] = new Rule(-105, new int[]{31,-129,-255,129,-90,91,-242});
rules[529] = new Rule(-105, new int[]{31,48,-129,5,-257,129,-90,91,-242});
rules[530] = new Rule(-105, new int[]{31,48,-129,129,-90,91,-242});
rules[531] = new Rule(-255, new int[]{5,-257});
rules[532] = new Rule(-255, new int[]{});
rules[533] = new Rule(-106, new int[]{30,-16,-129,-265,-90,-103,-90,-271,-242});
rules[534] = new Rule(-16, new int[]{48});
rules[535] = new Rule(-16, new int[]{});
rules[536] = new Rule(-265, new int[]{102});
rules[537] = new Rule(-265, new int[]{5,-163,102});
rules[538] = new Rule(-103, new int[]{66});
rules[539] = new Rule(-103, new int[]{67});
rules[540] = new Rule(-294, new int[]{50,-64,91,-242});
rules[541] = new Rule(-142, new int[]{37});
rules[542] = new Rule(-279, new int[]{94,-233,-269});
rules[543] = new Rule(-269, new int[]{93,-233,84});
rules[544] = new Rule(-269, new int[]{28,-54,84});
rules[545] = new Rule(-54, new int[]{-57,-235});
rules[546] = new Rule(-54, new int[]{-57,10,-235});
rules[547] = new Rule(-54, new int[]{-233});
rules[548] = new Rule(-57, new int[]{-56});
rules[549] = new Rule(-57, new int[]{-57,10,-56});
rules[550] = new Rule(-235, new int[]{});
rules[551] = new Rule(-235, new int[]{27,-233});
rules[552] = new Rule(-56, new int[]{72,-58,91,-242});
rules[553] = new Rule(-58, new int[]{-162});
rules[554] = new Rule(-58, new int[]{-122,5,-162});
rules[555] = new Rule(-162, new int[]{-163});
rules[556] = new Rule(-122, new int[]{-129});
rules[557] = new Rule(-229, new int[]{42});
rules[558] = new Rule(-229, new int[]{42,-80});
rules[559] = new Rule(-64, new int[]{-81});
rules[560] = new Rule(-64, new int[]{-64,92,-81});
rules[561] = new Rule(-53, new int[]{-157});
rules[562] = new Rule(-157, new int[]{-156});
rules[563] = new Rule(-81, new int[]{-80});
rules[564] = new Rule(-81, new int[]{-297});
rules[565] = new Rule(-80, new int[]{-90});
rules[566] = new Rule(-80, new int[]{-104});
rules[567] = new Rule(-90, new int[]{-89});
rules[568] = new Rule(-90, new int[]{-222});
rules[569] = new Rule(-91, new int[]{-90});
rules[570] = new Rule(-91, new int[]{-297});
rules[571] = new Rule(-89, new int[]{-88});
rules[572] = new Rule(-89, new int[]{-89,15,-88});
rules[573] = new Rule(-238, new int[]{17,8,-263,9});
rules[574] = new Rule(-274, new int[]{18,8,-263,9});
rules[575] = new Rule(-222, new int[]{-90,13,-90,5,-90});
rules[576] = new Rule(-263, new int[]{-163});
rules[577] = new Rule(-263, new int[]{-163,-277});
rules[578] = new Rule(-263, new int[]{-163,4,-277});
rules[579] = new Rule(-4, new int[]{8,-60,9});
rules[580] = new Rule(-4, new int[]{});
rules[581] = new Rule(-156, new int[]{71,-263,-63});
rules[582] = new Rule(-156, new int[]{71,-263,11,-61,12,-4});
rules[583] = new Rule(-156, new int[]{71,22,8,-307,9});
rules[584] = new Rule(-306, new int[]{-129,102,-88});
rules[585] = new Rule(-306, new int[]{-88});
rules[586] = new Rule(-307, new int[]{-306});
rules[587] = new Rule(-307, new int[]{-307,92,-306});
rules[588] = new Rule(-63, new int[]{});
rules[589] = new Rule(-63, new int[]{8,-61,9});
rules[590] = new Rule(-88, new int[]{-92});
rules[591] = new Rule(-88, new int[]{-88,-179,-92});
rules[592] = new Rule(-88, new int[]{-248,8,-320,9});
rules[593] = new Rule(-313, new int[]{-263,8,-320,9});
rules[594] = new Rule(-314, new int[]{-263,8,-321,9});
rules[595] = new Rule(-321, new int[]{-319});
rules[596] = new Rule(-321, new int[]{-321,10,-319});
rules[597] = new Rule(-321, new int[]{-321,92,-319});
rules[598] = new Rule(-320, new int[]{-318});
rules[599] = new Rule(-320, new int[]{-320,10,-318});
rules[600] = new Rule(-320, new int[]{-320,92,-318});
rules[601] = new Rule(-318, new int[]{48,-129,5,-257});
rules[602] = new Rule(-318, new int[]{48,-129});
rules[603] = new Rule(-318, new int[]{-313});
rules[604] = new Rule(-319, new int[]{-129,5,-257});
rules[605] = new Rule(-319, new int[]{-129});
rules[606] = new Rule(-319, new int[]{48,-129,5,-257});
rules[607] = new Rule(-319, new int[]{48,-129});
rules[608] = new Rule(-319, new int[]{-314});
rules[609] = new Rule(-101, new int[]{-92});
rules[610] = new Rule(-101, new int[]{});
rules[611] = new Rule(-104, new int[]{-92,5,-101});
rules[612] = new Rule(-104, new int[]{5,-101});
rules[613] = new Rule(-104, new int[]{-92,5,-101,5,-92});
rules[614] = new Rule(-104, new int[]{5,-101,5,-92});
rules[615] = new Rule(-179, new int[]{112});
rules[616] = new Rule(-179, new int[]{117});
rules[617] = new Rule(-179, new int[]{115});
rules[618] = new Rule(-179, new int[]{113});
rules[619] = new Rule(-179, new int[]{116});
rules[620] = new Rule(-179, new int[]{114});
rules[621] = new Rule(-179, new int[]{129});
rules[622] = new Rule(-92, new int[]{-75});
rules[623] = new Rule(-92, new int[]{-92,-180,-75});
rules[624] = new Rule(-180, new int[]{108});
rules[625] = new Rule(-180, new int[]{107});
rules[626] = new Rule(-180, new int[]{120});
rules[627] = new Rule(-180, new int[]{121});
rules[628] = new Rule(-180, new int[]{118});
rules[629] = new Rule(-184, new int[]{128});
rules[630] = new Rule(-184, new int[]{130});
rules[631] = new Rule(-246, new int[]{-248});
rules[632] = new Rule(-246, new int[]{-249});
rules[633] = new Rule(-249, new int[]{-75,128,-263});
rules[634] = new Rule(-248, new int[]{-75,130,-263});
rules[635] = new Rule(-76, new int[]{-87});
rules[636] = new Rule(-250, new int[]{-76,111,-87});
rules[637] = new Rule(-75, new int[]{-87});
rules[638] = new Rule(-75, new int[]{-156});
rules[639] = new Rule(-75, new int[]{-250});
rules[640] = new Rule(-75, new int[]{-75,-181,-87});
rules[641] = new Rule(-75, new int[]{-75,-181,-250});
rules[642] = new Rule(-75, new int[]{-246});
rules[643] = new Rule(-181, new int[]{110});
rules[644] = new Rule(-181, new int[]{109});
rules[645] = new Rule(-181, new int[]{123});
rules[646] = new Rule(-181, new int[]{124});
rules[647] = new Rule(-181, new int[]{125});
rules[648] = new Rule(-181, new int[]{126});
rules[649] = new Rule(-181, new int[]{122});
rules[650] = new Rule(-51, new int[]{58,8,-263,9});
rules[651] = new Rule(-52, new int[]{8,-90,92,-72,-299,-305,9});
rules[652] = new Rule(-87, new int[]{51});
rules[653] = new Rule(-87, new int[]{-13});
rules[654] = new Rule(-87, new int[]{-51});
rules[655] = new Rule(-87, new int[]{11,-62,12});
rules[656] = new Rule(-87, new int[]{127,-87});
rules[657] = new Rule(-87, new int[]{-182,-87});
rules[658] = new Rule(-87, new int[]{-99});
rules[659] = new Rule(-87, new int[]{-52});
rules[660] = new Rule(-13, new int[]{-147});
rules[661] = new Rule(-13, new int[]{-14});
rules[662] = new Rule(-102, new int[]{-98,14,-98});
rules[663] = new Rule(-102, new int[]{-98,14,-102});
rules[664] = new Rule(-99, new int[]{-114,-98});
rules[665] = new Rule(-99, new int[]{-98});
rules[666] = new Rule(-99, new int[]{-102});
rules[667] = new Rule(-114, new int[]{133});
rules[668] = new Rule(-114, new int[]{-114,133});
rules[669] = new Rule(-8, new int[]{-163,-63});
rules[670] = new Rule(-8, new int[]{-278,-63});
rules[671] = new Rule(-296, new int[]{-129});
rules[672] = new Rule(-296, new int[]{-296,7,-120});
rules[673] = new Rule(-295, new int[]{-296});
rules[674] = new Rule(-295, new int[]{-296,-277});
rules[675] = new Rule(-98, new int[]{-129});
rules[676] = new Rule(-98, new int[]{-174});
rules[677] = new Rule(-98, new int[]{37,-129});
rules[678] = new Rule(-98, new int[]{8,-80,9});
rules[679] = new Rule(-98, new int[]{-238});
rules[680] = new Rule(-98, new int[]{-274});
rules[681] = new Rule(-98, new int[]{-13,7,-120});
rules[682] = new Rule(-98, new int[]{-98,11,-64,12});
rules[683] = new Rule(-98, new int[]{-98,16,-104,12});
rules[684] = new Rule(-98, new int[]{-98,8,-61,9});
rules[685] = new Rule(-98, new int[]{-98,7,-130});
rules[686] = new Rule(-98, new int[]{-52,7,-130});
rules[687] = new Rule(-98, new int[]{-98,134});
rules[688] = new Rule(-98, new int[]{-98,4,-277});
rules[689] = new Rule(-61, new int[]{-64});
rules[690] = new Rule(-61, new int[]{});
rules[691] = new Rule(-62, new int[]{-70});
rules[692] = new Rule(-62, new int[]{});
rules[693] = new Rule(-70, new int[]{-83});
rules[694] = new Rule(-70, new int[]{-70,92,-83});
rules[695] = new Rule(-83, new int[]{-80});
rules[696] = new Rule(-83, new int[]{-80,6,-80});
rules[697] = new Rule(-148, new int[]{136});
rules[698] = new Rule(-148, new int[]{138});
rules[699] = new Rule(-147, new int[]{-149});
rules[700] = new Rule(-147, new int[]{137});
rules[701] = new Rule(-149, new int[]{-148});
rules[702] = new Rule(-149, new int[]{-149,-148});
rules[703] = new Rule(-174, new int[]{40,-183});
rules[704] = new Rule(-190, new int[]{10});
rules[705] = new Rule(-190, new int[]{10,-189,10});
rules[706] = new Rule(-191, new int[]{});
rules[707] = new Rule(-191, new int[]{10,-189});
rules[708] = new Rule(-189, new int[]{-192});
rules[709] = new Rule(-189, new int[]{-189,10,-192});
rules[710] = new Rule(-129, new int[]{135});
rules[711] = new Rule(-129, new int[]{-133});
rules[712] = new Rule(-129, new int[]{-134});
rules[713] = new Rule(-120, new int[]{-129});
rules[714] = new Rule(-120, new int[]{-272});
rules[715] = new Rule(-120, new int[]{-273});
rules[716] = new Rule(-130, new int[]{-129});
rules[717] = new Rule(-130, new int[]{-272});
rules[718] = new Rule(-130, new int[]{-174});
rules[719] = new Rule(-192, new int[]{139});
rules[720] = new Rule(-192, new int[]{141});
rules[721] = new Rule(-192, new int[]{142});
rules[722] = new Rule(-192, new int[]{143});
rules[723] = new Rule(-192, new int[]{145});
rules[724] = new Rule(-192, new int[]{144});
rules[725] = new Rule(-193, new int[]{144});
rules[726] = new Rule(-193, new int[]{143});
rules[727] = new Rule(-193, new int[]{139});
rules[728] = new Rule(-133, new int[]{78});
rules[729] = new Rule(-133, new int[]{79});
rules[730] = new Rule(-134, new int[]{73});
rules[731] = new Rule(-134, new int[]{71});
rules[732] = new Rule(-132, new int[]{77});
rules[733] = new Rule(-132, new int[]{76});
rules[734] = new Rule(-132, new int[]{75});
rules[735] = new Rule(-132, new int[]{74});
rules[736] = new Rule(-272, new int[]{-132});
rules[737] = new Rule(-272, new int[]{64});
rules[738] = new Rule(-272, new int[]{59});
rules[739] = new Rule(-272, new int[]{120});
rules[740] = new Rule(-272, new int[]{18});
rules[741] = new Rule(-272, new int[]{17});
rules[742] = new Rule(-272, new int[]{58});
rules[743] = new Rule(-272, new int[]{19});
rules[744] = new Rule(-272, new int[]{121});
rules[745] = new Rule(-272, new int[]{122});
rules[746] = new Rule(-272, new int[]{123});
rules[747] = new Rule(-272, new int[]{124});
rules[748] = new Rule(-272, new int[]{125});
rules[749] = new Rule(-272, new int[]{126});
rules[750] = new Rule(-272, new int[]{127});
rules[751] = new Rule(-272, new int[]{128});
rules[752] = new Rule(-272, new int[]{129});
rules[753] = new Rule(-272, new int[]{130});
rules[754] = new Rule(-272, new int[]{20});
rules[755] = new Rule(-272, new int[]{69});
rules[756] = new Rule(-272, new int[]{83});
rules[757] = new Rule(-272, new int[]{21});
rules[758] = new Rule(-272, new int[]{22});
rules[759] = new Rule(-272, new int[]{24});
rules[760] = new Rule(-272, new int[]{25});
rules[761] = new Rule(-272, new int[]{26});
rules[762] = new Rule(-272, new int[]{67});
rules[763] = new Rule(-272, new int[]{91});
rules[764] = new Rule(-272, new int[]{27});
rules[765] = new Rule(-272, new int[]{28});
rules[766] = new Rule(-272, new int[]{29});
rules[767] = new Rule(-272, new int[]{23});
rules[768] = new Rule(-272, new int[]{96});
rules[769] = new Rule(-272, new int[]{93});
rules[770] = new Rule(-272, new int[]{30});
rules[771] = new Rule(-272, new int[]{31});
rules[772] = new Rule(-272, new int[]{32});
rules[773] = new Rule(-272, new int[]{35});
rules[774] = new Rule(-272, new int[]{36});
rules[775] = new Rule(-272, new int[]{37});
rules[776] = new Rule(-272, new int[]{95});
rules[777] = new Rule(-272, new int[]{38});
rules[778] = new Rule(-272, new int[]{39});
rules[779] = new Rule(-272, new int[]{41});
rules[780] = new Rule(-272, new int[]{42});
rules[781] = new Rule(-272, new int[]{43});
rules[782] = new Rule(-272, new int[]{89});
rules[783] = new Rule(-272, new int[]{44});
rules[784] = new Rule(-272, new int[]{94});
rules[785] = new Rule(-272, new int[]{45});
rules[786] = new Rule(-272, new int[]{46});
rules[787] = new Rule(-272, new int[]{66});
rules[788] = new Rule(-272, new int[]{90});
rules[789] = new Rule(-272, new int[]{47});
rules[790] = new Rule(-272, new int[]{48});
rules[791] = new Rule(-272, new int[]{49});
rules[792] = new Rule(-272, new int[]{50});
rules[793] = new Rule(-272, new int[]{51});
rules[794] = new Rule(-272, new int[]{52});
rules[795] = new Rule(-272, new int[]{53});
rules[796] = new Rule(-272, new int[]{54});
rules[797] = new Rule(-272, new int[]{56});
rules[798] = new Rule(-272, new int[]{97});
rules[799] = new Rule(-272, new int[]{98});
rules[800] = new Rule(-272, new int[]{101});
rules[801] = new Rule(-272, new int[]{99});
rules[802] = new Rule(-272, new int[]{100});
rules[803] = new Rule(-272, new int[]{57});
rules[804] = new Rule(-272, new int[]{70});
rules[805] = new Rule(-272, new int[]{33});
rules[806] = new Rule(-272, new int[]{34});
rules[807] = new Rule(-273, new int[]{40});
rules[808] = new Rule(-273, new int[]{84});
rules[809] = new Rule(-183, new int[]{107});
rules[810] = new Rule(-183, new int[]{108});
rules[811] = new Rule(-183, new int[]{109});
rules[812] = new Rule(-183, new int[]{110});
rules[813] = new Rule(-183, new int[]{112});
rules[814] = new Rule(-183, new int[]{113});
rules[815] = new Rule(-183, new int[]{114});
rules[816] = new Rule(-183, new int[]{115});
rules[817] = new Rule(-183, new int[]{116});
rules[818] = new Rule(-183, new int[]{117});
rules[819] = new Rule(-183, new int[]{120});
rules[820] = new Rule(-183, new int[]{121});
rules[821] = new Rule(-183, new int[]{122});
rules[822] = new Rule(-183, new int[]{123});
rules[823] = new Rule(-183, new int[]{124});
rules[824] = new Rule(-183, new int[]{125});
rules[825] = new Rule(-183, new int[]{126});
rules[826] = new Rule(-183, new int[]{127});
rules[827] = new Rule(-183, new int[]{129});
rules[828] = new Rule(-183, new int[]{131});
rules[829] = new Rule(-183, new int[]{132});
rules[830] = new Rule(-183, new int[]{-177});
rules[831] = new Rule(-183, new int[]{111});
rules[832] = new Rule(-177, new int[]{102});
rules[833] = new Rule(-177, new int[]{103});
rules[834] = new Rule(-177, new int[]{104});
rules[835] = new Rule(-177, new int[]{105});
rules[836] = new Rule(-177, new int[]{106});
rules[837] = new Rule(-297, new int[]{-129,119,-303});
rules[838] = new Rule(-297, new int[]{8,9,-300,119,-303});
rules[839] = new Rule(-297, new int[]{8,-129,5,-256,9,-300,119,-303});
rules[840] = new Rule(-297, new int[]{8,-129,10,-301,9,-300,119,-303});
rules[841] = new Rule(-297, new int[]{8,-129,5,-256,10,-301,9,-300,119,-303});
rules[842] = new Rule(-297, new int[]{8,-90,92,-72,-299,-305,9,-309});
rules[843] = new Rule(-297, new int[]{-298});
rules[844] = new Rule(-305, new int[]{});
rules[845] = new Rule(-305, new int[]{10,-301});
rules[846] = new Rule(-309, new int[]{-300,119,-303});
rules[847] = new Rule(-298, new int[]{32,-299,119,-303});
rules[848] = new Rule(-298, new int[]{32,8,9,-299,119,-303});
rules[849] = new Rule(-298, new int[]{32,8,-301,9,-299,119,-303});
rules[850] = new Rule(-298, new int[]{39,119,-304});
rules[851] = new Rule(-298, new int[]{39,8,9,119,-304});
rules[852] = new Rule(-298, new int[]{39,8,-301,9,119,-304});
rules[853] = new Rule(-301, new int[]{-302});
rules[854] = new Rule(-301, new int[]{-301,10,-302});
rules[855] = new Rule(-302, new int[]{-140,-299});
rules[856] = new Rule(-299, new int[]{});
rules[857] = new Rule(-299, new int[]{5,-256});
rules[858] = new Rule(-300, new int[]{});
rules[859] = new Rule(-300, new int[]{5,-258});
rules[860] = new Rule(-303, new int[]{-90});
rules[861] = new Rule(-303, new int[]{-236});
rules[862] = new Rule(-303, new int[]{-135});
rules[863] = new Rule(-303, new int[]{-293});
rules[864] = new Rule(-303, new int[]{-228});
rules[865] = new Rule(-303, new int[]{-106});
rules[866] = new Rule(-303, new int[]{-105});
rules[867] = new Rule(-303, new int[]{-30});
rules[868] = new Rule(-303, new int[]{-279});
rules[869] = new Rule(-303, new int[]{-151});
rules[870] = new Rule(-303, new int[]{-108});
rules[871] = new Rule(-304, new int[]{-194});
rules[872] = new Rule(-304, new int[]{-236});
rules[873] = new Rule(-304, new int[]{-135});
rules[874] = new Rule(-304, new int[]{-293});
rules[875] = new Rule(-304, new int[]{-228});
rules[876] = new Rule(-304, new int[]{-106});
rules[877] = new Rule(-304, new int[]{-105});
rules[878] = new Rule(-304, new int[]{-30});
rules[879] = new Rule(-304, new int[]{-279});
rules[880] = new Rule(-304, new int[]{-151});
rules[881] = new Rule(-304, new int[]{-108});
rules[882] = new Rule(-304, new int[]{-229});
rules[883] = new Rule(-304, new int[]{-3});
}
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 -> tkParseModeType, variable_as_type
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].ex; }
break;
case 7: // parts -> tkParseModeStatement, stmt_or_expression
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 8: // stmt_or_expression -> expr
{ CurrentSemanticValue.stn = new expression_as_statement(ValueStack[ValueStack.Depth-1].ex,CurrentLocationSpan);}
break;
case 9: // stmt_or_expression -> assignment
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 10: // stmt_or_expression -> var_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 11: // optional_head_compiler_directives -> /* empty */
{ CurrentSemanticValue.ob = null; }
break;
case 12: // optional_head_compiler_directives -> head_compiler_directives
{ CurrentSemanticValue.ob = null; }
break;
case 13: // head_compiler_directives -> one_compiler_directive
{ CurrentSemanticValue.ob = null; }
break;
case 14: // head_compiler_directives -> head_compiler_directives, one_compiler_directive
{ CurrentSemanticValue.ob = null; }
break;
case 15: // one_compiler_directive -> tkDirectiveName, tkIdentifier
{
parsertools.AddErrorFromResource("UNSUPPORTED_OLD_DIRECTIVES",CurrentLocationSpan);
CurrentSemanticValue.ob = null;
}
break;
case 16: // one_compiler_directive -> tkDirectiveName, tkStringLiteral
{
parsertools.AddErrorFromResource("UNSUPPORTED_OLD_DIRECTIVES",CurrentLocationSpan);
CurrentSemanticValue.ob = null;
}
break;
case 17: // 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 18: // optional_tk_point -> tkPoint
{ CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-1].ti; }
break;
case 19: // optional_tk_point -> tkSemiColon
{ CurrentSemanticValue.ob = null; }
break;
case 20: // optional_tk_point -> tkColon
{ CurrentSemanticValue.ob = null; }
break;
case 21: // optional_tk_point -> tkComma
{ CurrentSemanticValue.ob = null; }
break;
case 22: // optional_tk_point -> tkDotDot
{ CurrentSemanticValue.ob = null; }
break;
case 24: // program_header -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 25: // program_header -> tkProgram, identifier, program_heading_2
{ CurrentSemanticValue.stn = new program_name(ValueStack[ValueStack.Depth-2].id,CurrentLocationSpan); }
break;
case 26: // program_heading_2 -> tkSemiColon
{ CurrentSemanticValue.ob = null; }
break;
case 27: // program_heading_2 -> tkRoundOpen, program_param_list, tkRoundClose, tkSemiColon
{ CurrentSemanticValue.ob = null; }
break;
case 28: // program_param_list -> program_param
{ CurrentSemanticValue.ob = null; }
break;
case 29: // program_param_list -> program_param_list, tkComma, program_param
{ CurrentSemanticValue.ob = null; }
break;
case 30: // program_param -> identifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 31: // 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 32: // program_decl_sect_list -> decl_sect_list
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 33: // ident_or_keyword_pointseparator_list -> identifier_or_keyword
{
CurrentSemanticValue.stn = new ident_list(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan);
}
break;
case 34: // 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 35: // uses_clause -> /* empty */
{
CurrentSemanticValue.stn = null;
}
break;
case 36: // 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 37: // used_units_list -> used_unit_name
{
CurrentSemanticValue.stn = new uses_list(ValueStack[ValueStack.Depth-1].stn as unit_or_namespace,CurrentLocationSpan);
}
break;
case 38: // 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 39: // 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 40: // 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 41: // 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 42: // 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 43: // 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 44: // 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 45: // unit_key_word -> tkUnit
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 46: // unit_key_word -> tkLibrary
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 47: // unit_name -> identifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 48: // 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 49: // 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 50: // 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 51: // initialization_part -> tkEnd
{
CurrentSemanticValue.stn = new initfinal_part();
CurrentSemanticValue.stn.source_context = CurrentLocationSpan;
}
break;
case 52: // 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 53: // 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 54: // 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 55: // 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 56: // int_decl_sect_list1 -> /* empty */
{
CurrentSemanticValue.stn = new declarations();
if (GlobalDecls==null)
GlobalDecls = CurrentSemanticValue.stn as declarations;
}
break;
case 57: // 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 58: // 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 59: // decl_sect_list1 -> /* empty */
{
CurrentSemanticValue.stn = new declarations();
if (GlobalDecls==null)
GlobalDecls = CurrentSemanticValue.stn as declarations;
}
break;
case 60: // 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 61: // 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 62: // inclass_decl_sect_list1 -> /* empty */
{
CurrentSemanticValue.stn = new declarations();
}
break;
case 63: // 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 64: // int_decl_sect -> const_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 65: // int_decl_sect -> res_str_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 66: // int_decl_sect -> type_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 67: // int_decl_sect -> var_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 68: // int_decl_sect -> int_proc_header
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].td; }
break;
case 69: // int_decl_sect -> int_func_header
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].td; }
break;
case 70: // decl_sect -> label_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 71: // decl_sect -> const_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 72: // decl_sect -> res_str_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 73: // decl_sect -> type_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 74: // decl_sect -> var_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 75: // decl_sect -> proc_func_constr_destr_decl_with_attr
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 76: // proc_func_constr_destr_decl -> proc_func_decl
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 77: // proc_func_constr_destr_decl -> constr_destr_decl
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 78: // 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 79: // abc_decl_sect -> label_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 80: // abc_decl_sect -> const_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 81: // abc_decl_sect -> res_str_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 82: // abc_decl_sect -> type_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 83: // abc_decl_sect -> var_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 84: // 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 85: // 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 86: // 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 87: // 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 88: // label_decl_sect -> tkLabel, label_list, tkSemiColon
{
CurrentSemanticValue.stn = new label_definitions(ValueStack[ValueStack.Depth-2].stn as ident_list, CurrentLocationSpan);
}
break;
case 89: // label_list -> label_name
{
CurrentSemanticValue.stn = new ident_list(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan);
}
break;
case 90: // 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 91: // label_name -> tkInteger
{
CurrentSemanticValue.id = new ident(ValueStack[ValueStack.Depth-1].ex.ToString(), CurrentLocationSpan);
}
break;
case 92: // label_name -> tkFloat
{
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_sect -> tkVar, var_decl
{
CurrentSemanticValue.stn = new variable_definitions(ValueStack[ValueStack.Depth-1].stn as var_def_statement, CurrentLocationSpan);
}
break;
case 101: // var_decl_sect -> tkEvent, var_decl
{
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 102: // var_decl_sect -> var_decl_sect, var_decl
{
CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-2].stn as variable_definitions).Add(ValueStack[ValueStack.Depth-1].stn as var_def_statement, CurrentLocationSpan);
}
break;
case 103: // var_decl_sect -> tkVar, 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-9],LocationStack[LocationStack.Depth-8],LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5],LocationStack[LocationStack.Depth-4]);
CurrentSemanticValue.stn = new assign_var_tuple(ValueStack[ValueStack.Depth-5].stn as ident_list, ValueStack[ValueStack.Depth-2].ex, CurrentLocationSpan);
}
break;
case 104: // const_decl -> only_const_decl, tkSemiColon
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; }
break;
case 105: // 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 106: // 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 107: // init_const_expr -> const_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 108: // init_const_expr -> array_const
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 109: // const_name -> identifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 110: // expr_l1_list -> expr_l1
{
CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 111: // 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 112: // const_expr -> const_simple_expr
{
CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex;
}
break;
case 113: // 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 114: // const_expr -> question_constexpr
{
CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex;
}
break;
case 115: // 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 116: // const_relop -> tkEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 117: // const_relop -> tkNotEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 118: // const_relop -> tkLower
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 119: // const_relop -> tkGreater
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 120: // const_relop -> tkLowerEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 121: // const_relop -> tkGreaterEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 122: // const_relop -> tkIn
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 123: // const_simple_expr -> const_term
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 124: // 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 125: // const_addop -> tkPlus
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 126: // const_addop -> tkMinus
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 127: // const_addop -> tkOr
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 128: // const_addop -> tkXor
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 129: // 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 130: // 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 131: // const_term -> const_factor
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 132: // const_term -> as_is_constexpr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 133: // const_term -> power_constexpr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 134: // 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 135: // 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 136: // const_mulop -> tkStar
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 137: // const_mulop -> tkSlash
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 138: // const_mulop -> tkDiv
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 139: // const_mulop -> tkMod
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 140: // const_mulop -> tkShl
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 141: // const_mulop -> tkShr
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 142: // const_mulop -> tkAnd
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 143: // const_factor -> const_variable
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 144: // const_factor -> const_set
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 145: // const_factor -> unsigned_number
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 146: // const_factor -> literal
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 147: // const_factor -> tkNil
{
CurrentSemanticValue.ex = new nil_const();
CurrentSemanticValue.ex.source_context = CurrentLocationSpan;
}
break;
case 148: // const_factor -> tkAddressOf, const_factor
{
CurrentSemanticValue.ex = new get_address(ValueStack[ValueStack.Depth-1].ex as addressed_value, CurrentLocationSpan);
}
break;
case 149: // const_factor -> tkRoundOpen, const_expr, tkRoundClose
{
CurrentSemanticValue.ex = new bracket_expr(ValueStack[ValueStack.Depth-2].ex, CurrentLocationSpan);
}
break;
case 150: // const_factor -> tkNot, const_factor
{
CurrentSemanticValue.ex = new un_expr(ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan);
}
break;
case 151: // 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 152: // const_factor -> new_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 153: // const_set -> tkSquareOpen, const_elem_list, tkSquareClose
{
CurrentSemanticValue.ex = new pascal_set_constant(ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan);
}
break;
case 154: // sign -> tkPlus
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 155: // sign -> tkMinus
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 156: // const_variable -> identifier
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].id; }
break;
case 157: // const_variable -> tkInherited, identifier
{
CurrentSemanticValue.ex = new inherited_ident(ValueStack[ValueStack.Depth-1].id.name, CurrentLocationSpan);
}
break;
case 158: // const_variable -> sizeof_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 159: // const_variable -> typeof_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 160: // const_variable -> const_variable, const_variable_2
{
CurrentSemanticValue.ex = NewConstVariable(ValueStack[ValueStack.Depth-2].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 161: // 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 162: // const_variable_2 -> tkPoint, identifier_or_keyword
{
CurrentSemanticValue.ex = new dot_node(null, ValueStack[ValueStack.Depth-1].id as addressed_value, CurrentLocationSpan);
}
break;
case 163: // const_variable_2 -> tkDeref
{
CurrentSemanticValue.ex = new roof_dereference();
CurrentSemanticValue.ex.source_context = CurrentLocationSpan;
}
break;
case 164: // 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 165: // const_variable_2 -> tkSquareOpen, const_elem_list, tkSquareClose
{
CurrentSemanticValue.ex = new indexer(ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan);
}
break;
case 166: // optional_const_func_expr_list -> const_func_expr_list
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 167: // optional_const_func_expr_list -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 168: // const_func_expr_list -> const_expr
{
CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 169: // const_func_expr_list -> const_func_expr_list, tkComma, const_expr
{
CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as expression_list).Add(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
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 183: // array_const -> tkRoundOpen, record_const, tkRoundClose
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-2].ex; }
break;
case 184: // array_const -> tkRoundOpen, array_const, tkRoundClose
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-2].ex; }
break;
case 186: // typed_const_list -> typed_const_list1
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
}
break;
case 187: // typed_const_list1 -> typed_const_plus
{
CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 188: // 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 189: // record_const -> tkRoundOpen, const_field_list, tkRoundClose
{
CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-2].ex;
CurrentSemanticValue.ex.source_context = CurrentLocationSpan;
}
break;
case 190: // const_field_list -> const_field_list_1
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 191: // const_field_list -> const_field_list_1, tkSemiColon
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-2].ex; }
break;
case 192: // const_field_list_1 -> const_field
{
CurrentSemanticValue.ex = new record_const(ValueStack[ValueStack.Depth-1].stn as record_const_definition, CurrentLocationSpan);
}
break;
case 193: // 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 194: // 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 195: // const_field_name -> identifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 196: // 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 197: // attribute_declarations -> attribute_declaration
{
CurrentSemanticValue.stn = new attribute_list(ValueStack[ValueStack.Depth-1].stn as simple_attribute_list, CurrentLocationSpan);
}
break;
case 198: // 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 199: // attribute_declarations -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 200: // attribute_declaration -> tkSquareOpen, one_or_some_attribute, tkSquareClose
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; }
break;
case 201: // one_or_some_attribute -> one_attribute
{
CurrentSemanticValue.stn = new simple_attribute_list(ValueStack[ValueStack.Depth-1].stn as attribute, CurrentLocationSpan);
}
break;
case 202: // 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 203: // one_attribute -> attribute_variable
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 204: // 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 205: // 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 206: // 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 207: // type_decl_identifier -> identifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 208: // 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 209: // 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 210: // type_decl_type -> type_ref
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 211: // type_decl_type -> object_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 212: // type_ref -> simple_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 213: // type_ref -> simple_type, tkQuestion
{
if (parsertools.build_tree_for_formatter)
{
CurrentSemanticValue.td = ValueStack[ValueStack.Depth-2].td;
}
else
{
var l = new List<ident>();
l.Add(new ident("System"));
l.Add(new ident("Nullable"));
CurrentSemanticValue.td = new template_type_reference(new named_type_reference(l), new template_param_list(ValueStack[ValueStack.Depth-2].td), CurrentLocationSpan);
}
}
break;
case 214: // 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_param_list -> template_param
{
CurrentSemanticValue.stn = new template_param_list(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan);
}
break;
case 222: // 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 223: // template_param -> simple_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 224: // 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 225: // template_param -> structured_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 226: // template_param -> procedural_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 227: // template_param -> template_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 228: // simple_type -> range_expr
{
CurrentSemanticValue.td = parsertools.ConvertDotNodeOrIdentToNamedTypeReference(ValueStack[ValueStack.Depth-1].ex);
}
break;
case 229: // simple_type -> range_expr, tkDotDot, range_expr
{
CurrentSemanticValue.td = new diapason(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 230: // simple_type -> tkRoundOpen, enumeration_id_list, tkRoundClose
{
CurrentSemanticValue.td = new enum_type_definition(ValueStack[ValueStack.Depth-2].stn as enumerator_list, CurrentLocationSpan);
}
break;
case 231: // range_expr -> range_term
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 232: // 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 233: // range_term -> range_factor
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 234: // 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 235: // range_factor -> simple_type_identifier
{
CurrentSemanticValue.ex = parsertools.ConvertNamedTypeReferenceToDotNodeOrIdent(ValueStack[ValueStack.Depth-1].td as named_type_reference);
}
break;
case 236: // range_factor -> unsigned_number
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 237: // range_factor -> sign, range_factor
{
CurrentSemanticValue.ex = new un_expr(ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan);
}
break;
case 238: // range_factor -> literal
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 239: // 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 240: // simple_type_identifier -> identifier
{
CurrentSemanticValue.td = new named_type_reference(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan);
}
break;
case 241: // 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 242: // 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 243: // 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 244: // enumeration_id -> type_ref
{
CurrentSemanticValue.stn = new enumerator(ValueStack[ValueStack.Depth-1].td, null, CurrentLocationSpan);
}
break;
case 245: // enumeration_id -> type_ref, tkEqual, expr
{
CurrentSemanticValue.stn = new enumerator(ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 246: // pointer_type -> tkDeref, fptype
{
CurrentSemanticValue.td = new ref_type(ValueStack[ValueStack.Depth-1].td,CurrentLocationSpan);
}
break;
case 247: // structured_type -> unpacked_structured_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 248: // structured_type -> tkPacked, unpacked_structured_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 249: // unpacked_structured_type -> array_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 250: // unpacked_structured_type -> record_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 251: // unpacked_structured_type -> set_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 252: // unpacked_structured_type -> file_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 253: // unpacked_structured_type -> sequence_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 254: // sequence_type -> tkSequence, tkOf, type_ref
{
CurrentSemanticValue.td = new sequence_type(ValueStack[ValueStack.Depth-1].td,CurrentLocationSpan);
}
break;
case 255: // 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 256: // array_type -> unsized_array_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 257: // unsized_array_type -> tkArray, tkOf, type_ref
{
CurrentSemanticValue.td = new array_type(null, ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan);
}
break;
case 258: // simple_type_list -> simple_type_or_
{
CurrentSemanticValue.stn = new indexers_types(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan);
}
break;
case 259: // 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 260: // simple_type_or_ -> simple_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 261: // simple_type_or_ -> /* empty */
{ CurrentSemanticValue.td = null; }
break;
case 262: // set_type -> tkSet, tkOf, type_ref
{
CurrentSemanticValue.td = new set_type_definition(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan);
}
break;
case 263: // file_type -> tkFile, tkOf, type_ref
{
CurrentSemanticValue.td = new file_type(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan);
}
break;
case 264: // file_type -> tkFile
{
CurrentSemanticValue.td = new file_type();
CurrentSemanticValue.td.source_context = CurrentLocationSpan;
}
break;
case 265: // 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 266: // procedural_type -> procedural_type_kind
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 267: // procedural_type_kind -> proc_type_decl
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 268: // 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 269: // proc_type_decl -> tkFunction, fp_list
{
CurrentSemanticValue.td = new function_header(ValueStack[ValueStack.Depth-1].stn as formal_parameters, null, null, null, null, CurrentLocationSpan);
}
break;
case 270: // 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 271: // 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 272: // 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 273: // proc_type_decl -> tkRoundOpen, tkRoundClose, tkArrow, template_param
{
CurrentSemanticValue.td = new modern_proc_type(null,null,ValueStack[ValueStack.Depth-1].td,CurrentLocationSpan);
}
break;
case 274: // 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 275: // 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 276: // proc_type_decl -> template_type, tkArrow, tkRoundOpen, tkRoundClose
{
CurrentSemanticValue.td = new modern_proc_type(ValueStack[ValueStack.Depth-4].td,null,null,CurrentLocationSpan);
}
break;
case 277: // proc_type_decl -> tkRoundOpen, tkRoundClose, tkArrow, tkRoundOpen, tkRoundClose
{
CurrentSemanticValue.td = new modern_proc_type(null,null,null,CurrentLocationSpan);
}
break;
case 278: // 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 279: // object_type -> class_attributes, class_or_interface_keyword,
// optional_base_classes, optional_where_section,
// optional_component_list_seq_end
{
CurrentSemanticValue.td = 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);
class_definition cd = CurrentSemanticValue.td as class_definition;
if (cd == null || cd.body == null)
break;
var ccnt = cd.body.DescendantNodes().OfType<simple_property>().ToArray();
var cm = new class_members(access_modifer.private_modifer);
foreach (var prop in ccnt)
{
var td = prop.property_type;
var ra = prop.accessors?.read_accessor;
if (ValueStack[ValueStack.Depth-4].ti.text.ToLower() == "interface" && ra != null && (ra.pr != null || ra.accessor_name != null))
parsertools.AddErrorFromResource("INVALID_INTERFACE_MEMBER",ra.source_context);
if (ra != null && ra.pr != null)
{
if (prop.parameter_list != null)
parsertools.AddErrorFromResource("EXTENDED_INDEXED_PROPERTIES",ra.source_context);
var rapr = ra.pr as procedure_definition;
(rapr.proc_header as function_header).return_type = td;
cm.Add(rapr);
if (prop.attr == definition_attribute.Static)
{
rapr.proc_header.class_keyword = true;
procedure_attribute pa = new procedure_attribute(proc_attribute.attr_static);
pa.source_context = rapr.proc_header.source_context;
rapr.proc_header.proc_attributes = new procedure_attributes_list(pa);
}
}
var wa = prop.accessors?.write_accessor;
if (ValueStack[ValueStack.Depth-4].ti.text.ToLower() == "interface" && wa != null && (wa.pr != null || wa.accessor_name != null))
parsertools.AddErrorFromResource("INVALID_INTERFACE_MEMBER",wa.source_context);
if (wa != null && wa.pr != null)
{
if (prop.parameter_list != null)
parsertools.AddErrorFromResource("EXTENDED_INDEXED_PROPERTIES",ra.source_context);
var wapr = wa.pr as procedure_definition;
wapr.proc_header.parameters.params_list[0].vars_type = td;
cm.Add(wapr);
if (prop.attr == definition_attribute.Static)
{
wapr.proc_header.class_keyword = true;
procedure_attribute pa = new procedure_attribute(proc_attribute.attr_static);
pa.source_context = wapr.proc_header.source_context;
wapr.proc_header.proc_attributes = new procedure_attributes_list(pa);
}
}
}
if (cm.Count>0)
cd.body.Insert(0, cm);
}
break;
case 280: // record_type -> tkRecord, optional_base_classes, optional_where_section,
// member_list_section, tkEnd
{
CurrentSemanticValue.td = NewRecordType(ValueStack[ValueStack.Depth-4].stn as named_type_reference_list, ValueStack[ValueStack.Depth-3].stn as where_definition_list, ValueStack[ValueStack.Depth-2].stn as class_body_list, CurrentLocationSpan);
class_definition cd = CurrentSemanticValue.td as class_definition;
if (cd == null || cd.body == null)
break;
var ccnt = cd.body.DescendantNodes().OfType<simple_property>().ToArray();
var cm = new class_members(access_modifer.private_modifer);
foreach (var prop in ccnt)
{
var td = prop.property_type;
var ra = prop.accessors?.read_accessor;
if (ra != null && ra.pr != null)
{
if (prop.parameter_list != null)
parsertools.AddErrorFromResource("EXTENDED_INDEXED_PROPERTIES",ra.source_context);
var rapr = ra.pr as procedure_definition;
(rapr.proc_header as function_header).return_type = td;
cm.Add(rapr);
if (prop.attr == definition_attribute.Static)
{
rapr.proc_header.class_keyword = true;
procedure_attribute pa = new procedure_attribute(proc_attribute.attr_static);
pa.source_context = rapr.proc_header.source_context;
rapr.proc_header.proc_attributes = new procedure_attributes_list(pa);
}
}
var wa = prop.accessors?.write_accessor;
if (wa != null && wa.pr != null && prop.parameter_list == null)
{
if (prop.parameter_list != null)
parsertools.AddErrorFromResource("EXTENDED_INDEXED_PROPERTIES",ra.source_context);
var wapr = wa.pr as procedure_definition;
wapr.proc_header.parameters.params_list[0].vars_type = td;
cm.Add(wapr);
if (prop.attr == definition_attribute.Static)
{
wapr.proc_header.class_keyword = true;
procedure_attribute pa = new procedure_attribute(proc_attribute.attr_static);
pa.source_context = wapr.proc_header.source_context;
wapr.proc_header.proc_attributes = new procedure_attributes_list(pa);
}
}
}
if (cm.Count>0)
cd.body.Insert(0, cm);
}
break;
case 281: // class_attribute -> tkSealed
{ CurrentSemanticValue.ob = class_attribute.Sealed; }
break;
case 282: // class_attribute -> tkPartial
{ CurrentSemanticValue.ob = class_attribute.Partial; }
break;
case 283: // class_attribute -> tkAbstract
{ CurrentSemanticValue.ob = class_attribute.Abstract; }
break;
case 284: // class_attribute -> tkAuto
{ CurrentSemanticValue.ob = class_attribute.Auto; }
break;
case 285: // class_attributes -> /* empty */
{
CurrentSemanticValue.ob = class_attribute.None;
}
break;
case 286: // class_attributes -> class_attributes1
{
CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-1].ob;
}
break;
case 287: // class_attributes1 -> class_attribute
{
CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-1].ob;
}
break;
case 288: // class_attributes1 -> class_attributes1, class_attribute
{
CurrentSemanticValue.ob = ((class_attribute)ValueStack[ValueStack.Depth-2].ob) | ((class_attribute)ValueStack[ValueStack.Depth-1].ob);
//$$ = $1;
}
break;
case 289: // class_or_interface_keyword -> tkClass
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 290: // class_or_interface_keyword -> tkInterface
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 291: // class_or_interface_keyword -> tkTemplate
{
CurrentSemanticValue.ti = NewClassOrInterfaceKeyword(ValueStack[ValueStack.Depth-1].ti);
}
break;
case 292: // class_or_interface_keyword -> tkTemplate, tkClass
{
CurrentSemanticValue.ti = NewClassOrInterfaceKeyword(ValueStack[ValueStack.Depth-2].ti, "c", CurrentLocationSpan);
}
break;
case 293: // class_or_interface_keyword -> tkTemplate, tkRecord
{
CurrentSemanticValue.ti = NewClassOrInterfaceKeyword(ValueStack[ValueStack.Depth-2].ti, "r", CurrentLocationSpan);
}
break;
case 294: // class_or_interface_keyword -> tkTemplate, tkInterface
{
CurrentSemanticValue.ti = NewClassOrInterfaceKeyword(ValueStack[ValueStack.Depth-2].ti, "i", CurrentLocationSpan);
}
break;
case 295: // optional_component_list_seq_end -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 296: // optional_component_list_seq_end -> member_list_section, tkEnd
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn;
CurrentSemanticValue.stn.source_context = CurrentLocationSpan;
}
break;
case 298: // optional_base_classes -> tkRoundOpen, base_classes_names_list, tkRoundClose
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; }
break;
case 299: // 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 300: // 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 301: // base_class_name -> simple_type_identifier
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].td; }
break;
case 302: // base_class_name -> template_type
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].td; }
break;
case 303: // template_arguments -> tkLower, ident_list, tkGreater
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn;
CurrentSemanticValue.stn.source_context = CurrentLocationSpan;
}
break;
case 304: // optional_where_section -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 305: // optional_where_section -> where_part_list
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 306: // where_part_list -> where_part
{
CurrentSemanticValue.stn = new where_definition_list(ValueStack[ValueStack.Depth-1].stn as where_definition, CurrentLocationSpan);
}
break;
case 307: // 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 308: // 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 309: // type_ref_and_secific_list -> type_ref_or_secific
{
CurrentSemanticValue.stn = new where_type_specificator_list(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan);
}
break;
case 310: // 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 311: // type_ref_or_secific -> type_ref
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 312: // type_ref_or_secific -> tkClass
{
CurrentSemanticValue.td = new declaration_specificator(DeclarationSpecificator.WhereDefClass, ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan);
}
break;
case 313: // type_ref_or_secific -> tkRecord
{
CurrentSemanticValue.td = new declaration_specificator(DeclarationSpecificator.WhereDefValueType, ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan);
}
break;
case 314: // type_ref_or_secific -> tkConstructor
{
CurrentSemanticValue.td = new declaration_specificator(DeclarationSpecificator.WhereDefConstructor, ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan);
}
break;
case 315: // member_list_section -> member_list
{
CurrentSemanticValue.stn = new class_body_list(ValueStack[ValueStack.Depth-1].stn as class_members, CurrentLocationSpan);
}
break;
case 316: // 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 317: // ot_visibility_specifier -> tkInternal
{ CurrentSemanticValue.stn = new access_modifer_node(access_modifer.internal_modifer, CurrentLocationSpan); }
break;
case 318: // ot_visibility_specifier -> tkPublic
{ CurrentSemanticValue.stn = new access_modifer_node(access_modifer.public_modifer, CurrentLocationSpan); }
break;
case 319: // ot_visibility_specifier -> tkProtected
{ CurrentSemanticValue.stn = new access_modifer_node(access_modifer.protected_modifer, CurrentLocationSpan); }
break;
case 320: // ot_visibility_specifier -> tkPrivate
{ CurrentSemanticValue.stn = new access_modifer_node(access_modifer.private_modifer, CurrentLocationSpan); }
break;
case 321: // member_list -> /* empty */
{ CurrentSemanticValue.stn = new class_members(); }
break;
case 322: // member_list -> field_or_const_definition_list, optional_semicolon
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; }
break;
case 323: // member_list -> method_decl_list
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 324: // 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 325: // ident_list -> identifier
{
CurrentSemanticValue.stn = new ident_list(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan);
}
break;
case 326: // 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 327: // optional_semicolon -> /* empty */
{ CurrentSemanticValue.ob = null; }
break;
case 328: // optional_semicolon -> tkSemiColon
{ CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-1].ti; }
break;
case 329: // field_or_const_definition_list -> field_or_const_definition
{
CurrentSemanticValue.stn = new class_members(ValueStack[ValueStack.Depth-1].stn as declaration, CurrentLocationSpan);
}
break;
case 330: // 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 331: // 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 332: // method_decl_list -> method_or_property_decl
{
CurrentSemanticValue.stn = new class_members(ValueStack[ValueStack.Depth-1].stn as declaration, CurrentLocationSpan);
}
break;
case 333: // 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 334: // method_or_property_decl -> method_decl_withattr
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 335: // method_or_property_decl -> property_definition
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 336: // simple_field_or_const_definition -> tkConst, only_const_decl
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
CurrentSemanticValue.stn.source_context = CurrentLocationSpan;
}
break;
case 337: // simple_field_or_const_definition -> field_definition
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 338: // simple_field_or_const_definition -> tkClass, 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 339: // field_definition -> var_decl_part
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 340: // 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 341: // 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 342: // 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 343: // method_decl -> inclass_proc_func_decl
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 344: // method_decl -> inclass_constr_destr_decl
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 345: // method_header -> tkClass, method_procfunc_header
{
(ValueStack[ValueStack.Depth-1].td as procedure_header).class_keyword = true;
CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td;
}
break;
case 346: // method_header -> method_procfunc_header
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 347: // method_header -> constr_destr_header
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 348: // method_procfunc_header -> proc_func_header
{
CurrentSemanticValue.td = NewProcfuncHeading(ValueStack[ValueStack.Depth-1].td as procedure_header);
}
break;
case 349: // proc_func_header -> proc_header
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 350: // proc_func_header -> func_header
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 351: // 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 352: // constr_destr_header -> tkClass, 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 353: // 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 354: // optional_proc_name -> proc_name
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 355: // optional_proc_name -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 356: // qualified_identifier -> identifier
{ CurrentSemanticValue.stn = new method_name(null,null,ValueStack[ValueStack.Depth-1].id,null,CurrentLocationSpan); }
break;
case 357: // qualified_identifier -> visibility_specifier
{ CurrentSemanticValue.stn = new method_name(null,null,ValueStack[ValueStack.Depth-1].id,null,CurrentLocationSpan); }
break;
case 358: // 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 359: // 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 360: // property_definition -> attribute_declarations, simple_prim_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 361: // simple_prim_property_definition -> simple_property_definition
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 362: // simple_prim_property_definition -> tkClass, simple_property_definition
{
CurrentSemanticValue.stn = NewSimplePrimPropertyDefinition(ValueStack[ValueStack.Depth-1].stn as simple_property, CurrentLocationSpan);
}
break;
case 363: // 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 364: // 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 365: // array_defaultproperty -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 366: // array_defaultproperty -> tkDefault, tkSemiColon
{
CurrentSemanticValue.stn = new property_array_default();
CurrentSemanticValue.stn.source_context = CurrentLocationSpan;
}
break;
case 367: // 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 368: // property_parameter_list -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 369: // property_parameter_list -> tkSquareOpen, parameter_decl_list, tkSquareClose
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; }
break;
case 370: // parameter_decl_list -> parameter_decl
{
CurrentSemanticValue.stn = new property_parameter_list(ValueStack[ValueStack.Depth-1].stn as property_parameter, CurrentLocationSpan);
}
break;
case 371: // 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 372: // 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 373: // optional_read_expr -> expr_with_func_decl_lambda
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 374: // optional_read_expr -> /* empty */
{ CurrentSemanticValue.ex = null; }
break;
case 376: // 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");
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 377: // 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");
procedure_definition pr = null;
if (!parsertools.build_tree_for_formatter)
pr = CreateAndAddToClassWriteProc(ValueStack[ValueStack.Depth-2].stn as statement,id,LocationStack[LocationStack.Depth-2]);
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>
}
}
break;
case 379: // 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");
procedure_definition pr = null;
if (!parsertools.build_tree_for_formatter)
pr = CreateAndAddToClassWriteProc(ValueStack[ValueStack.Depth-1].stn as statement,id,LocationStack[LocationStack.Depth-1]);
CurrentSemanticValue.stn = NewPropertySpecifiersWrite(ValueStack[ValueStack.Depth-2].id, id, pr, ValueStack[ValueStack.Depth-1].stn as statement, null, CurrentLocationSpan);
}
}
break;
case 381: // 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");
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 382: // var_decl -> var_decl_part, tkSemiColon
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; }
break;
case 385: // 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 386: // 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 387: // 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 388: // typed_var_init_expression -> typed_const_plus
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 389: // typed_var_init_expression -> expl_func_decl_lambda
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 390: // 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 391: // 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 392: // 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 393: // typed_const_plus -> typed_const
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 394: // typed_const_plus -> default_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 395: // 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 396: // 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,CurrentLocationSpan);
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 397: // constr_destr_decl -> tkClass, 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,CurrentLocationSpan);
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 398: // 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 399: // 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 400: // inclass_constr_destr_decl -> tkClass, 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 401: // proc_func_decl -> proc_func_decl_noclass
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 402: // proc_func_decl -> tkClass, 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 403: // 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 404: // 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 405: // 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 406: // 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 407: // 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 408: // 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 409: // 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 410: // inclass_proc_func_decl -> inclass_proc_func_decl_noclass
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
}
break;
case 411: // inclass_proc_func_decl -> tkClass, 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 412: // 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 413: // 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 414: // 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 415: // 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 416: // proc_func_external_block -> block
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 417: // proc_func_external_block -> external_block
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 418: // proc_name -> func_name
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 419: // func_name -> func_meth_name_ident
{
CurrentSemanticValue.stn = new method_name(null,null, ValueStack[ValueStack.Depth-1].id, null, CurrentLocationSpan);
}
break;
case 420: // 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 421: // func_class_name_ident -> func_name_with_template_args
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 422: // 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 423: // 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 424: // func_meth_name_ident -> func_name_with_template_args
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 425: // func_meth_name_ident -> operator_name_ident
{ CurrentSemanticValue.id = (ident)ValueStack[ValueStack.Depth-1].ex; }
break;
case 426: // 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 427: // func_name_with_template_args -> func_name_ident
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 428: // 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 429: // func_name_ident -> identifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 430: // 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 431: // 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 432: // 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 433: // 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 434: // external_block -> tkExternal, external_directive_ident, tkSemiColon
{
CurrentSemanticValue.stn = new external_directive(ValueStack[ValueStack.Depth-2].ex, null, CurrentLocationSpan);
}
break;
case 435: // external_block -> tkExternal, tkSemiColon
{
CurrentSemanticValue.stn = new external_directive(null, null, CurrentLocationSpan);
}
break;
case 436: // external_directive_ident -> identifier
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].id; }
break;
case 437: // external_directive_ident -> literal
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 438: // 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 439: // 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 440: // inclass_block -> external_block
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 441: // fp_list -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 442: // fp_list -> tkRoundOpen, tkRoundClose
{
CurrentSemanticValue.stn = null;
}
break;
case 443: // 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 444: // fp_sect_list -> fp_sect
{
CurrentSemanticValue.stn = new formal_parameters(ValueStack[ValueStack.Depth-1].stn as typed_parameters, CurrentLocationSpan);
}
break;
case 445: // 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 446: // 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 447: // 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 448: // 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 449: // 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 450: // 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 451: // simple_fp_sect -> param_name_list, tkColon, fptype, tkAssign, const_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 452: // simple_fp_sect -> tkVar, param_name_list, tkColon, fptype, tkAssign, const_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 453: // simple_fp_sect -> tkConst, param_name_list, tkColon, fptype, tkAssign,
// const_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 454: // param_name_list -> param_name
{
CurrentSemanticValue.stn = new ident_list(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan);
}
break;
case 455: // 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 456: // param_name -> identifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 457: // fptype -> type_ref
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 458: // fptype_noproctype -> simple_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 459: // fptype_noproctype -> string_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 460: // fptype_noproctype -> pointer_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 461: // fptype_noproctype -> structured_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 462: // fptype_noproctype -> template_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 463: // stmt -> unlabelled_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 464: // 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 465: // unlabelled_stmt -> /* empty */
{
CurrentSemanticValue.stn = new empty_statement();
CurrentSemanticValue.stn.source_context = null;
}
break;
case 466: // unlabelled_stmt -> assignment
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 467: // unlabelled_stmt -> proc_call
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 468: // unlabelled_stmt -> goto_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 469: // unlabelled_stmt -> compound_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 470: // unlabelled_stmt -> if_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 471: // unlabelled_stmt -> case_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 472: // unlabelled_stmt -> repeat_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 473: // unlabelled_stmt -> while_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 474: // unlabelled_stmt -> for_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 475: // unlabelled_stmt -> with_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 476: // unlabelled_stmt -> inherited_message
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 477: // unlabelled_stmt -> try_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 478: // unlabelled_stmt -> raise_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 479: // unlabelled_stmt -> foreach_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 480: // unlabelled_stmt -> var_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 481: // unlabelled_stmt -> expr_as_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 482: // unlabelled_stmt -> lock_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 483: // unlabelled_stmt -> yield_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 484: // unlabelled_stmt -> yield_sequence_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 485: // unlabelled_stmt -> loop_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 486: // unlabelled_stmt -> match_with
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 487: // 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 488: // yield_stmt -> tkYield, expr_l1
{
CurrentSemanticValue.stn = new yield_node(ValueStack[ValueStack.Depth-1].ex,CurrentLocationSpan);
}
break;
case 489: // yield_sequence_stmt -> tkYield, tkSequence, expr_l1
{
CurrentSemanticValue.stn = new yield_sequence_node(ValueStack[ValueStack.Depth-1].ex,CurrentLocationSpan);
}
break;
case 490: // var_stmt -> tkVar, var_decl_part
{
CurrentSemanticValue.stn = new var_statement(ValueStack[ValueStack.Depth-1].stn as var_def_statement, CurrentLocationSpan);
}
break;
case 491: // 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 492: // 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 493: // 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 494: // 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 495: // variable_list -> variable
{
CurrentSemanticValue.ob = new addressed_value_list(ValueStack[ValueStack.Depth-1].ex as addressed_value,LocationStack[LocationStack.Depth-1]);
}
break;
case 496: // 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 497: // var_ident_list -> tkVar, identifier
{
CurrentSemanticValue.ob = new ident_list(ValueStack[ValueStack.Depth-1].id,CurrentLocationSpan);
}
break;
case 498: // 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 499: // 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 500: // goto_stmt -> tkGoto, label_name
{
CurrentSemanticValue.stn = new goto_statement(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan);
}
break;
case 501: // 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 502: // stmt_list -> stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, LocationStack[LocationStack.Depth-1]);
}
break;
case 503: // 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 504: // 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 505: // 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 506: // 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 507: // 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 508: // pattern_cases -> pattern_case
{
CurrentSemanticValue.stn = new pattern_cases(ValueStack[ValueStack.Depth-1].stn as pattern_case);
}
break;
case 509: // 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 510: // 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 511: // 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 512: // 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 513: // 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 514: // 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 515: // 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 516: // 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 517: // 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 518: // case_label_list -> case_label
{
CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 519: // 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 520: // case_label -> const_elem
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 521: // else_case -> /* empty */
{ CurrentSemanticValue.stn = null;}
break;
case 522: // else_case -> tkElse, stmt_list
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 523: // 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 524: // 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 525: // optional_tk_do -> tkDo
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 526: // optional_tk_do -> /* empty */
{ CurrentSemanticValue.ti = null; }
break;
case 527: // 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 528: // 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 529: // 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 530: // 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 531: // foreach_stmt_ident_dype_opt -> tkColon, type_ref
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 533: // 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 534: // optional_var -> tkVar
{ CurrentSemanticValue.ob = true; }
break;
case 535: // optional_var -> /* empty */
{ CurrentSemanticValue.ob = false; }
break;
case 537: // for_stmt_decl_or_assign -> tkColon, simple_type_identifier, tkAssign
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-2].td; }
break;
case 538: // for_cycle_type -> tkTo
{ CurrentSemanticValue.ob = for_cycle_type.to; }
break;
case 539: // for_cycle_type -> tkDownto
{ CurrentSemanticValue.ob = for_cycle_type.downto; }
break;
case 540: // 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 541: // inherited_message -> tkInherited
{
CurrentSemanticValue.stn = new inherited_message();
CurrentSemanticValue.stn.source_context = CurrentLocationSpan;
}
break;
case 542: // 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 543: // 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 544: // 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 545: // 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 546: // 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 547: // 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 548: // exception_handler_list -> exception_handler
{
CurrentSemanticValue.stn = new exception_handler_list(ValueStack[ValueStack.Depth-1].stn as exception_handler, CurrentLocationSpan);
}
break;
case 549: // 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 550: // exception_block_else_branch -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 551: // exception_block_else_branch -> tkElse, stmt_list
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 552: // 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 553: // exception_identifier -> exception_class_type_identifier
{
CurrentSemanticValue.stn = new exception_ident(null, (named_type_reference)ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan);
}
break;
case 554: // 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 555: // exception_class_type_identifier -> simple_type_identifier
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 556: // exception_variable -> identifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 557: // raise_stmt -> tkRaise
{
CurrentSemanticValue.stn = new raise_stmt();
CurrentSemanticValue.stn.source_context = CurrentLocationSpan;
}
break;
case 558: // raise_stmt -> tkRaise, expr
{
CurrentSemanticValue.stn = new raise_stmt(ValueStack[ValueStack.Depth-1].ex, null, CurrentLocationSpan);
}
break;
case 559: // expr_list -> expr_with_func_decl_lambda
{
CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 560: // 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 561: // expr_as_stmt -> allowable_expr_as_stmt
{
CurrentSemanticValue.stn = new expression_as_statement(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 562: // allowable_expr_as_stmt -> new_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 563: // expr_with_func_decl_lambda -> expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 564: // expr_with_func_decl_lambda -> func_decl_lambda
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 565: // expr -> expr_l1
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 566: // expr -> format_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 567: // expr_l1 -> expr_dq
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 568: // expr_l1 -> question_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 569: // expr_l1_func_decl_lambda -> expr_l1
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 570: // expr_l1_func_decl_lambda -> func_decl_lambda
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 571: // expr_dq -> relop_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 572: // 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 573: // 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 574: // 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 575: // 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 576: // simple_or_template_type_reference -> simple_type_identifier
{
CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td;
}
break;
case 577: // 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 578: // 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 579: // optional_array_initializer -> tkRoundOpen, typed_const_list, tkRoundClose
{
CurrentSemanticValue.stn = new array_const((expression_list)ValueStack[ValueStack.Depth-2].stn, CurrentLocationSpan);
}
break;
case 581: // 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 582: // 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 583: // 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
var ne = new new_expr(type, new expression_list(exprs), CurrentLocationSpan);
// node unnamed_type_object - for formatting
CurrentSemanticValue.ex = new unnamed_type_object(l, true, ne, CurrentLocationSpan);
}
break;
case 584: // field_in_unnamed_object -> identifier, tkAssign, relop_expr
{
CurrentSemanticValue.ob = new name_assign_expr(ValueStack[ValueStack.Depth-3].id,ValueStack[ValueStack.Depth-1].ex,CurrentLocationSpan);
}
break;
case 585: // 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 586: // 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 587: // 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 588: // optional_expr_list_with_bracket -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 589: // optional_expr_list_with_bracket -> tkRoundOpen, optional_expr_list,
// tkRoundClose
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; }
break;
case 590: // relop_expr -> simple_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 591: // 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 592: // 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 593: // 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 594: // 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 595: // 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 596: // 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 597: // 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 598: // 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 599: // 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 600: // 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 601: // 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 602: // pattern_out_param -> tkVar, identifier
{
CurrentSemanticValue.stn = new var_deconstructor_parameter(ValueStack[ValueStack.Depth-1].id, null, CurrentLocationSpan);
}
break;
case 603: // pattern_out_param -> pattern
{
CurrentSemanticValue.stn = new recursive_deconstructor_parameter(ValueStack[ValueStack.Depth-1].stn as pattern_node, CurrentLocationSpan);
}
break;
case 604: // 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 605: // pattern_out_param_optional_var -> identifier
{
CurrentSemanticValue.stn = new var_deconstructor_parameter(ValueStack[ValueStack.Depth-1].id, null, CurrentLocationSpan);
}
break;
case 606: // 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 607: // pattern_out_param_optional_var -> tkVar, identifier
{
CurrentSemanticValue.stn = new var_deconstructor_parameter(ValueStack[ValueStack.Depth-1].id, null, CurrentLocationSpan);
}
break;
case 608: // 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 609: // simple_expr_or_nothing -> simple_expr
{
CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex;
}
break;
case 610: // simple_expr_or_nothing -> /* empty */
{
CurrentSemanticValue.ex = null;
}
break;
case 611: // 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 612: // format_expr -> tkColon, simple_expr_or_nothing
{
CurrentSemanticValue.ex = new format_expr(null, ValueStack[ValueStack.Depth-1].ex, null, CurrentLocationSpan);
}
break;
case 613: // 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 614: // 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 615: // relop -> tkEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 616: // relop -> tkNotEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 617: // relop -> tkLower
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 618: // relop -> tkGreater
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 619: // relop -> tkLowerEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 620: // relop -> tkGreaterEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 621: // relop -> tkIn
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 622: // simple_expr -> term
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 623: // 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 624: // addop -> tkPlus
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 625: // addop -> tkMinus
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 626: // addop -> tkOr
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 627: // addop -> tkXor
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 628: // addop -> tkCSharpStyleOr
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 629: // typecast_op -> tkAs
{
CurrentSemanticValue.ob = op_typecast.as_op;
}
break;
case 630: // typecast_op -> tkIs
{
CurrentSemanticValue.ob = op_typecast.is_op;
}
break;
case 631: // as_is_expr -> is_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 632: // as_is_expr -> as_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 633: // 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 634: // 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 635: // simple_term -> factor
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 636: // 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 637: // term -> factor
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 638: // term -> new_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 639: // term -> power_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 640: // 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 641: // 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 642: // term -> as_is_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 643: // mulop -> tkStar
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 644: // mulop -> tkSlash
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 645: // mulop -> tkDiv
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 646: // mulop -> tkMod
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 647: // mulop -> tkShl
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 648: // mulop -> tkShr
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 649: // mulop -> tkAnd
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 650: // 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 651: // 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 652: // factor -> tkNil
{
CurrentSemanticValue.ex = new nil_const();
CurrentSemanticValue.ex.source_context = CurrentLocationSpan;
}
break;
case 653: // factor -> literal_or_number
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 654: // factor -> default_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 655: // factor -> tkSquareOpen, elem_list, tkSquareClose
{
CurrentSemanticValue.ex = new pascal_set_constant(ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan);
}
break;
case 656: // factor -> tkNot, factor
{
CurrentSemanticValue.ex = new un_expr(ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan);
}
break;
case 657: // 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 658: // factor -> var_reference
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 659: // factor -> tuple
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 660: // literal_or_number -> literal
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 661: // literal_or_number -> unsigned_number
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 662: // 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 663: // 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 664: // 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 665: // var_reference -> variable
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 666: // var_reference -> var_question_point
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 667: // var_address -> tkAddressOf
{
CurrentSemanticValue.stn = NewVarAddress(CurrentLocationSpan);
}
break;
case 668: // var_address -> var_address, tkAddressOf
{
CurrentSemanticValue.stn = NewVarAddress(ValueStack[ValueStack.Depth-2].stn as get_address, CurrentLocationSpan);
}
break;
case 669: // 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 670: // 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 671: // dotted_identifier -> identifier
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].id; }
break;
case 672: // 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 673: // variable_as_type -> dotted_identifier
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex;}
break;
case 674: // 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 675: // variable -> identifier
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].id; }
break;
case 676: // variable -> operator_name_ident
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 677: // variable -> tkInherited, identifier
{
CurrentSemanticValue.ex = new inherited_ident(ValueStack[ValueStack.Depth-1].id.name, CurrentLocationSpan);
}
break;
case 678: // 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 679: // variable -> sizeof_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 680: // variable -> typeof_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 681: // 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 682: // variable -> variable, 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 683: // 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 684: // 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 685: // 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 686: // 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 687: // variable -> variable, tkDeref
{
CurrentSemanticValue.ex = new roof_dereference(ValueStack[ValueStack.Depth-2].ex as addressed_value,CurrentLocationSpan);
}
break;
case 688: // 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 689: // optional_expr_list -> expr_list
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 690: // optional_expr_list -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 691: // elem_list -> elem_list1
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 692: // elem_list -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 693: // elem_list1 -> elem
{
CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 694: // 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 695: // elem -> expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 696: // elem -> expr, tkDotDot, expr
{ CurrentSemanticValue.ex = new diapason_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); }
break;
case 697: // one_literal -> tkStringLiteral
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].stn as literal; }
break;
case 698: // one_literal -> tkAsciiChar
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].stn as literal; }
break;
case 699: // literal -> literal_list
{
CurrentSemanticValue.ex = NewLiteral(ValueStack[ValueStack.Depth-1].stn as literal_const_line);
}
break;
case 700: // 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 701: // literal_list -> one_literal
{
CurrentSemanticValue.stn = new literal_const_line(ValueStack[ValueStack.Depth-1].ex as literal, CurrentLocationSpan);
}
break;
case 702: // 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 703: // 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 704: // optional_method_modificators -> tkSemiColon
{
CurrentSemanticValue.stn = new procedure_attributes_list(new List<procedure_attribute>(),CurrentLocationSpan);
}
break;
case 705: // 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 706: // optional_method_modificators1 -> /* empty */
{
CurrentSemanticValue.stn = new procedure_attributes_list(new List<procedure_attribute>(),CurrentLocationSpan);
}
break;
case 707: // 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 708: // meth_modificators -> meth_modificator
{
CurrentSemanticValue.stn = new procedure_attributes_list(ValueStack[ValueStack.Depth-1].id as procedure_attribute, CurrentLocationSpan);
}
break;
case 709: // 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 710: // identifier -> tkIdentifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 711: // identifier -> property_specifier_directives
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 712: // identifier -> non_reserved
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 713: // identifier_or_keyword -> identifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 714: // identifier_or_keyword -> keyword
{ CurrentSemanticValue.id = new ident(ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan); }
break;
case 715: // identifier_or_keyword -> reserved_keyword
{ CurrentSemanticValue.id = new ident(ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan); }
break;
case 716: // identifier_keyword_operatorname -> identifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 717: // identifier_keyword_operatorname -> keyword
{ CurrentSemanticValue.id = new ident(ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan); }
break;
case 718: // identifier_keyword_operatorname -> operator_name_ident
{ CurrentSemanticValue.id = (ident)ValueStack[ValueStack.Depth-1].ex; }
break;
case 719: // meth_modificator -> tkAbstract
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 720: // 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 721: // meth_modificator -> tkReintroduce
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 722: // meth_modificator -> tkOverride
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 723: // meth_modificator -> tkExtensionMethod
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 724: // meth_modificator -> tkVirtual
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 725: // property_modificator -> tkVirtual
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 726: // property_modificator -> tkOverride
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 727: // property_modificator -> tkAbstract
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 728: // property_specifier_directives -> tkRead
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 729: // property_specifier_directives -> tkWrite
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 730: // non_reserved -> tkName
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 731: // non_reserved -> tkNew
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 732: // visibility_specifier -> tkInternal
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 733: // visibility_specifier -> tkPublic
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 734: // visibility_specifier -> tkProtected
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 735: // visibility_specifier -> tkPrivate
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 736: // keyword -> visibility_specifier
{
CurrentSemanticValue.ti = new token_info(ValueStack[ValueStack.Depth-1].id.name, CurrentLocationSpan);
}
break;
case 737: // keyword -> tkSealed
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 738: // keyword -> tkTemplate
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 739: // keyword -> tkOr
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 740: // keyword -> tkTypeOf
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 741: // keyword -> tkSizeOf
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 742: // keyword -> tkDefault
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 743: // keyword -> tkWhere
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 744: // keyword -> tkXor
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 745: // keyword -> tkAnd
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 746: // keyword -> tkDiv
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 747: // keyword -> tkMod
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 748: // keyword -> tkShl
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 749: // keyword -> tkShr
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 750: // keyword -> tkNot
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 751: // keyword -> tkAs
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 752: // keyword -> tkIn
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 753: // keyword -> tkIs
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 754: // keyword -> tkArray
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 755: // keyword -> tkSequence
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 756: // keyword -> tkBegin
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 757: // keyword -> tkCase
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 758: // keyword -> tkClass
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 759: // keyword -> tkConst
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 760: // keyword -> tkConstructor
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 761: // keyword -> tkDestructor
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 762: // keyword -> tkDownto
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 763: // keyword -> tkDo
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 764: // keyword -> tkElse
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 765: // keyword -> tkExcept
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 766: // keyword -> tkFile
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 767: // keyword -> tkAuto
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 768: // keyword -> tkFinalization
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 769: // keyword -> tkFinally
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 770: // keyword -> tkFor
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 771: // keyword -> tkForeach
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 772: // keyword -> tkFunction
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 773: // keyword -> tkIf
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 774: // keyword -> tkImplementation
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 775: // keyword -> tkInherited
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 776: // keyword -> tkInitialization
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 777: // keyword -> tkInterface
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 778: // keyword -> tkProcedure
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 779: // keyword -> tkProperty
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 780: // keyword -> tkRaise
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 781: // keyword -> tkRecord
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 782: // keyword -> tkRepeat
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 783: // keyword -> tkSet
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 784: // keyword -> tkTry
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 785: // keyword -> tkType
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 786: // keyword -> tkThen
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 787: // keyword -> tkTo
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 788: // keyword -> tkUntil
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 789: // keyword -> tkUses
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 790: // keyword -> tkVar
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 791: // keyword -> tkWhile
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 792: // keyword -> tkWith
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 793: // keyword -> tkNil
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 794: // keyword -> tkGoto
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 795: // keyword -> tkOf
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 796: // keyword -> tkLabel
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 797: // keyword -> tkProgram
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 798: // keyword -> tkUnit
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 799: // keyword -> tkLibrary
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 800: // keyword -> tkNamespace
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 801: // keyword -> tkExternal
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 802: // keyword -> tkParams
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 803: // keyword -> tkEvent
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 804: // keyword -> tkYield
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 805: // keyword -> tkMatch
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 806: // keyword -> tkWhen
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 807: // reserved_keyword -> tkOperator
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 808: // reserved_keyword -> tkEnd
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 809: // overload_operator -> tkMinus
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 810: // overload_operator -> tkPlus
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 811: // overload_operator -> tkSlash
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 812: // overload_operator -> tkStar
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 813: // overload_operator -> tkEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 814: // overload_operator -> tkGreater
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 815: // overload_operator -> tkGreaterEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 816: // overload_operator -> tkLower
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 817: // overload_operator -> tkLowerEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 818: // overload_operator -> tkNotEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 819: // overload_operator -> tkOr
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 820: // overload_operator -> tkXor
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 821: // overload_operator -> tkAnd
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 822: // overload_operator -> tkDiv
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 823: // overload_operator -> tkMod
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 824: // overload_operator -> tkShl
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 825: // overload_operator -> tkShr
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 826: // overload_operator -> tkNot
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 827: // overload_operator -> tkIn
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 828: // overload_operator -> tkImplicit
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 829: // overload_operator -> tkExplicit
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 830: // overload_operator -> assign_operator
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 831: // overload_operator -> tkStarStar
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 832: // assign_operator -> tkAssign
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 833: // assign_operator -> tkPlusEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 834: // assign_operator -> tkMinusEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 835: // assign_operator -> tkMultEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 836: // assign_operator -> tkDivEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 837: // 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 838: // 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 839: // 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 840: // 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 841: // 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 842: // 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 843: // func_decl_lambda -> expl_func_decl_lambda
{
CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex;
}
break;
case 844: // optional_full_lambda_fp_list -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 845: // optional_full_lambda_fp_list -> tkSemiColon, full_lambda_fp_list
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
}
break;
case 846: // 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 847: // 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 848: // 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 849: // 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 850: // 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 851: // 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 852: // 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 853: // 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 854: // 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 855: // 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 856: // lambda_type_ref -> /* empty */
{
CurrentSemanticValue.td = new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), null);
}
break;
case 857: // lambda_type_ref -> tkColon, fptype
{
CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td;
}
break;
case 858: // lambda_type_ref_noproctype -> /* empty */
{
CurrentSemanticValue.td = new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), null);
}
break;
case 859: // lambda_type_ref_noproctype -> tkColon, fptype_noproctype
{
CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td;
}
break;
case 860: // lambda_function_body -> expr_l1
{
CurrentSemanticValue.stn = NewLambdaBody(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 861: // lambda_function_body -> compound_stmt
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
}
break;
case 862: // lambda_function_body -> if_stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 863: // lambda_function_body -> while_stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 864: // lambda_function_body -> repeat_stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 865: // lambda_function_body -> for_stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 866: // lambda_function_body -> foreach_stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 867: // lambda_function_body -> case_stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 868: // lambda_function_body -> try_stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 869: // lambda_function_body -> lock_stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 870: // lambda_function_body -> yield_stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 871: // lambda_procedure_body -> proc_call
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 872: // lambda_procedure_body -> compound_stmt
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
}
break;
case 873: // lambda_procedure_body -> if_stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 874: // lambda_procedure_body -> while_stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 875: // lambda_procedure_body -> repeat_stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 876: // lambda_procedure_body -> for_stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 877: // lambda_procedure_body -> foreach_stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 878: // lambda_procedure_body -> case_stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 879: // lambda_procedure_body -> try_stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 880: // lambda_procedure_body -> lock_stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 881: // lambda_procedure_body -> yield_stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 882: // lambda_procedure_body -> raise_stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 883: // lambda_procedure_body -> assignment
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
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);
}
}
}