pascalabcnet/Parsers/PascalABCParserNewSaushkin/ABCPascalYacc.cs

5616 lines
378 KiB
C#
Raw Blame History

// (see accompanying GPPGcopyright.rtf)
// GPPG version 1.3.6
// Machine: SSM
// DateTime: 21.01.2016 15:14:12
// 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,tkMatching=14,tkSizeOf=15,tkTypeOf=16,tkWhere=17,tkArray=18,
tkCase=19,tkClass=20,tkAuto=21,tkConst=22,tkConstructor=23,tkDestructor=24,
tkElse=25,tkExcept=26,tkFile=27,tkFor=28,tkForeach=29,tkFunction=30,
tkIf=31,tkImplementation=32,tkInherited=33,tkInterface=34,tkProcedure=35,tkOperator=36,
tkProperty=37,tkRaise=38,tkRecord=39,tkSet=40,tkType=41,tkThen=42,
tkUses=43,tkVar=44,tkWhile=45,tkWith=46,tkNil=47,tkGoto=48,
tkOf=49,tkLabel=50,tkLock=51,tkProgram=52,tkEvent=53,tkDefault=54,
tkTemplate=55,tkPacked=56,tkExports=57,tkResourceString=58,tkThreadvar=59,tkSealed=60,
tkPartial=61,tkTo=62,tkDownto=63,tkCycle=64,tkSequence=65,tkYield=66,
tkNew=67,tkOn=68,tkName=69,tkPrivate=70,tkProtected=71,tkPublic=72,
tkInternal=73,tkRead=74,tkWrite=75,tkParseModeExpression=76,tkParseModeStatement=77,tkParseModeType=78,
tkBegin=79,tkEnd=80,tkAsmBody=81,tkILCode=82,tkError=83,INVISIBLE=84,
tkRepeat=85,tkUntil=86,tkDo=87,tkComma=88,tkFinally=89,tkTry=90,
tkInitialization=91,tkFinalization=92,tkUnit=93,tkLibrary=94,tkExternal=95,tkParams=96,
tkAssign=97,tkPlusEqual=98,tkMinusEqual=99,tkMultEqual=100,tkDivEqual=101,tkMinus=102,
tkPlus=103,tkSlash=104,tkStar=105,tkEqual=106,tkGreater=107,tkGreaterEqual=108,
tkLower=109,tkLowerEqual=110,tkNotEqual=111,tkCSharpStyleOr=112,tkArrow=113,tkOr=114,
tkXor=115,tkAnd=116,tkDiv=117,tkMod=118,tkShl=119,tkShr=120,
tkNot=121,tkAs=122,tkIn=123,tkIs=124,tkImplicit=125,tkExplicit=126,
tkAddressOf=127,tkDeref=128,tkIdentifier=129,tkStringLiteral=130,tkAsciiChar=131,tkAbstract=132,
tkForward=133,tkOverload=134,tkReintroduce=135,tkOverride=136,tkVirtual=137,tkExtensionMethod=138,
tkInteger=139,tkFloat=140,tkHex=141};
// 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[783];
private static State[] states = new State[1254];
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", "var_specifiers",
"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",
"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", "typed_const",
"typed_const_or_new", "expr", "const_expr", "elem", "range_expr", "const_elem",
"array_const", "factor", "relop_expr", "expr_l1", "simple_expr", "range_term",
"range_factor", "external_directive_ident", "init_const_expr", "case_label",
"variable", "var_reference", "for_cycle_type", "format_expr", "foreach_stmt",
"for_stmt", "yield_stmt", "fp_list", "fp_sect_list", "file_type", "sequence_type",
"var_address", "goto_stmt", "my_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",
"optional_identifier", "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", "array_defaultproperty", "meth_modificators",
"optional_method_modificators", "optional_method_modificators1", "meth_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", "unsized_array_type", "simple_type_or_",
"simple_type", "array_name_for_new_expr", "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", "tkAssignOrEqual", "$accept", };
static GPPGParser() {
states[0] = new State(new int[]{52,1167,11,597,76,1238,78,1240,77,1247,3,-24,43,-24,79,-24,50,-24,22,-24,58,-24,41,-24,44,-24,53,-24,35,-24,30,-24,20,-24,23,-24,24,-24,93,-195,94,-195},new int[]{-1,1,-205,3,-206,4,-268,1179,-5,1180,-220,609,-150,1237});
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,1163,43,-11,79,-11,50,-11,22,-11,58,-11,41,-11,44,-11,53,-11,11,-11,35,-11,30,-11,20,-11,23,-11,24,-11},new int[]{-160,5,-161,1161,-159,1166});
states[5] = new State(-35,new int[]{-266,6});
states[6] = new State(new int[]{43,14,50,-58,22,-58,58,-58,41,-58,44,-58,53,-58,11,-58,35,-58,30,-58,20,-58,23,-58,24,-58,79,-58},new int[]{-16,7,-33,108,-37,1108,-38,1109});
states[7] = new State(new int[]{7,9,10,10,5,11,88,12,6,13,2,-23},new int[]{-163,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[]{129,23,74,25,75,26,69,28,67,29,73,32,72,33,71,34,70,35,60,36,55,37,114,38,16,39,15,40,54,41,17,42,115,43,116,44,117,45,118,46,119,47,120,48,121,49,122,50,123,51,124,52,18,53,65,54,79,55,19,56,20,57,22,58,23,59,24,60,63,61,87,62,25,63,26,64,27,65,21,66,92,67,89,68,28,69,29,70,30,71,31,72,32,73,33,74,91,75,34,76,35,77,37,78,38,79,39,80,85,81,40,82,90,83,41,84,42,85,62,86,86,87,43,88,44,89,45,90,46,91,47,92,48,93,49,94,50,95,52,96,93,97,94,98,95,99,96,100,36,102,80,103},new int[]{-267,15,-269,107,-131,19,-111,106,-120,22,-125,24,-126,27,-258,30,-124,31,-259,101});
states[15] = new State(new int[]{10,16,88,17});
states[16] = new State(-36);
states[17] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,73,32,72,33,71,34,70,35,60,36,55,37,114,38,16,39,15,40,54,41,17,42,115,43,116,44,117,45,118,46,119,47,120,48,121,49,122,50,123,51,124,52,18,53,65,54,79,55,19,56,20,57,22,58,23,59,24,60,63,61,87,62,25,63,26,64,27,65,21,66,92,67,89,68,28,69,29,70,30,71,31,72,32,73,33,74,91,75,34,76,35,77,37,78,38,79,39,80,85,81,40,82,90,83,41,84,42,85,62,86,86,87,43,88,44,89,45,90,46,91,47,92,48,93,49,94,50,95,52,96,93,97,94,98,95,99,96,100,36,102,80,103},new int[]{-269,18,-131,19,-111,106,-120,22,-125,24,-126,27,-258,30,-124,31,-259,101});
states[18] = new State(-38);
states[19] = new State(new int[]{7,20,123,104,10,-39,88,-39});
states[20] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,73,32,72,33,71,34,70,35,60,36,55,37,114,38,16,39,15,40,54,41,17,42,115,43,116,44,117,45,118,46,119,47,120,48,121,49,122,50,123,51,124,52,18,53,65,54,79,55,19,56,20,57,22,58,23,59,24,60,63,61,87,62,25,63,26,64,27,65,21,66,92,67,89,68,28,69,29,70,30,71,31,72,32,73,33,74,91,75,34,76,35,77,37,78,38,79,39,80,85,81,40,82,90,83,41,84,42,85,62,86,86,87,43,88,44,89,45,90,46,91,47,92,48,93,49,94,50,95,52,96,93,97,94,98,95,99,96,100,36,102,80,103},new int[]{-111,21,-120,22,-125,24,-126,27,-258,30,-124,31,-259,101});
states[21] = new State(-34);
states[22] = new State(-640);
states[23] = new State(-637);
states[24] = new State(-638);
states[25] = new State(-652);
states[26] = new State(-653);
states[27] = new State(-639);
states[28] = new State(-654);
states[29] = new State(-655);
states[30] = new State(-641);
states[31] = new State(-660);
states[32] = new State(-656);
states[33] = new State(-657);
states[34] = new State(-658);
states[35] = new State(-659);
states[36] = new State(-661);
states[37] = new State(-662);
states[38] = new State(-663);
states[39] = new State(-664);
states[40] = new State(-665);
states[41] = new State(-666);
states[42] = new State(-667);
states[43] = new State(-668);
states[44] = new State(-669);
states[45] = new State(-670);
states[46] = new State(-671);
states[47] = new State(-672);
states[48] = new State(-673);
states[49] = new State(-674);
states[50] = new State(-675);
states[51] = new State(-676);
states[52] = new State(-677);
states[53] = new State(-678);
states[54] = new State(-679);
states[55] = new State(-680);
states[56] = new State(-681);
states[57] = new State(-682);
states[58] = new State(-683);
states[59] = new State(-684);
states[60] = new State(-685);
states[61] = new State(-686);
states[62] = new State(-687);
states[63] = new State(-688);
states[64] = new State(-689);
states[65] = new State(-690);
states[66] = new State(-691);
states[67] = new State(-692);
states[68] = new State(-693);
states[69] = new State(-694);
states[70] = new State(-695);
states[71] = new State(-696);
states[72] = new State(-697);
states[73] = new State(-698);
states[74] = new State(-699);
states[75] = new State(-700);
states[76] = new State(-701);
states[77] = new State(-702);
states[78] = new State(-703);
states[79] = new State(-704);
states[80] = new State(-705);
states[81] = new State(-706);
states[82] = new State(-707);
states[83] = new State(-708);
states[84] = new State(-709);
states[85] = new State(-710);
states[86] = new State(-711);
states[87] = new State(-712);
states[88] = new State(-713);
states[89] = new State(-714);
states[90] = new State(-715);
states[91] = new State(-716);
states[92] = new State(-717);
states[93] = new State(-718);
states[94] = new State(-719);
states[95] = new State(-720);
states[96] = new State(-721);
states[97] = new State(-722);
states[98] = new State(-723);
states[99] = new State(-724);
states[100] = new State(-725);
states[101] = new State(-642);
states[102] = new State(-726);
states[103] = new State(-727);
states[104] = new State(new int[]{130,105});
states[105] = new State(-40);
states[106] = new State(-33);
states[107] = new State(-37);
states[108] = new State(new int[]{79,110},new int[]{-225,109});
states[109] = new State(-31);
states[110] = new State(new int[]{127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,748,8,749,15,274,16,279,130,139,131,140,139,767,141,144,140,768,48,771,79,110,31,775,19,782,85,794,45,800,28,805,46,815,90,821,38,828,29,831,44,839,51,845,64,850,66,854,80,-443,10,-443},new int[]{-222,111,-232,798,-231,115,-3,116,-94,117,-104,208,-93,217,-120,747,-125,24,-126,27,-166,234,-227,273,-260,278,-14,300,-139,136,-141,137,-140,141,-15,142,-183,769,-105,770,-225,773,-127,774,-31,781,-217,793,-279,799,-98,804,-280,814,-134,819,-265,820,-218,827,-97,830,-275,838,-53,841,-149,842,-148,843,-143,844,-106,849,-99,853,-116,856});
states[111] = new State(new int[]{80,112,10,113});
states[112] = new State(-472);
states[113] = new State(new int[]{127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,748,8,749,15,274,16,279,130,139,131,140,139,767,141,144,140,768,48,771,79,110,31,775,19,782,85,794,45,800,28,805,46,815,90,821,38,828,29,831,44,839,51,845,64,850,66,854,80,-443,10,-443,86,-443,89,-443,26,-443,92,-443},new int[]{-232,114,-231,115,-3,116,-94,117,-104,208,-93,217,-120,747,-125,24,-126,27,-166,234,-227,273,-260,278,-14,300,-139,136,-141,137,-140,141,-15,142,-183,769,-105,770,-225,773,-127,774,-31,781,-217,793,-279,799,-98,804,-280,814,-134,819,-265,820,-218,827,-97,830,-275,838,-53,841,-149,842,-148,843,-143,844,-106,849,-99,853,-116,856});
states[114] = new State(-474);
states[115] = new State(-441);
states[116] = new State(-444);
states[117] = new State(new int[]{97,259,98,260,99,261,100,262,101,263,80,-470,10,-470,86,-470,89,-470,26,-470,92,-470,25,-470},new int[]{-169,118});
states[118] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289},new int[]{-78,119,-86,120,-85,125,-87,176,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297,-211,298,-96,299});
states[119] = new State(-466);
states[120] = new State(new int[]{13,121,80,-527,10,-527,86,-527,89,-527,26,-527,92,-527,25,-527,2,-527,6,-527,88,-527,12,-527,9,-527,87,-527,73,-527,72,-527,71,-527,70,-527,42,-527,49,-527,127,-527,129,-527,74,-527,75,-527,69,-527,67,-527,36,-527,33,-527,8,-527,15,-527,16,-527,130,-527,131,-527,139,-527,141,-527,140,-527,48,-527,79,-527,31,-527,19,-527,85,-527,45,-527,28,-527,46,-527,90,-527,38,-527,29,-527,44,-527,51,-527,64,-527,66,-527,62,-527,63,-527});
states[121] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289},new int[]{-86,122,-85,125,-87,227,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297,-211,298});
states[122] = new State(new int[]{5,123,13,121});
states[123] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289},new int[]{-86,124,-85,125,-87,227,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297,-211,298});
states[124] = new State(new int[]{13,121,80,-533,10,-533,86,-533,89,-533,26,-533,92,-533,25,-533,2,-533,5,-533,6,-533,88,-533,12,-533,9,-533,87,-533,105,-533,104,-533,117,-533,118,-533,119,-533,120,-533,116,-533,122,-533,124,-533,103,-533,102,-533,114,-533,115,-533,112,-533,14,-533,106,-533,111,-533,109,-533,107,-533,110,-533,108,-533,123,-533,73,-533,72,-533,71,-533,70,-533,42,-533,49,-533,127,-533,129,-533,74,-533,75,-533,69,-533,67,-533,36,-533,33,-533,8,-533,15,-533,16,-533,130,-533,131,-533,139,-533,141,-533,140,-533,48,-533,79,-533,31,-533,19,-533,85,-533,45,-533,28,-533,46,-533,90,-533,38,-533,29,-533,44,-533,51,-533,64,-533,66,-533,62,-533,63,-533});
states[125] = new State(new int[]{14,926,106,928,111,929,109,930,107,931,110,932,108,933,123,934,13,-529,80,-529,10,-529,86,-529,89,-529,26,-529,92,-529,25,-529,2,-529,5,-529,6,-529,88,-529,12,-529,9,-529,87,-529,105,-529,104,-529,117,-529,118,-529,119,-529,120,-529,116,-529,122,-529,124,-529,103,-529,102,-529,114,-529,115,-529,112,-529,73,-529,72,-529,71,-529,70,-529,42,-529,49,-529,127,-529,129,-529,74,-529,75,-529,69,-529,67,-529,36,-529,33,-529,8,-529,15,-529,16,-529,130,-529,131,-529,139,-529,141,-529,140,-529,48,-529,79,-529,31,-529,19,-529,85,-529,45,-529,28,-529,46,-529,90,-529,38,-529,29,-529,44,-529,51,-529,64,-529,66,-529,62,-529,63,-529},new int[]{-171,126});
states[126] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289},new int[]{-87,127,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297});
states[127] = new State(new int[]{103,181,102,182,114,183,115,184,112,185,14,-551,106,-551,111,-551,109,-551,107,-551,110,-551,108,-551,123,-551,13,-551,80,-551,10,-551,86,-551,89,-551,26,-551,92,-551,25,-551,2,-551,5,-551,6,-551,88,-551,12,-551,9,-551,87,-551,105,-551,104,-551,117,-551,118,-551,119,-551,120,-551,116,-551,122,-551,124,-551,73,-551,72,-551,71,-551,70,-551,42,-551,49,-551,127,-551,129,-551,74,-551,75,-551,69,-551,67,-551,36,-551,33,-551,8,-551,15,-551,16,-551,130,-551,131,-551,139,-551,141,-551,140,-551,48,-551,79,-551,31,-551,19,-551,85,-551,45,-551,28,-551,46,-551,90,-551,38,-551,29,-551,44,-551,51,-551,64,-551,66,-551,62,-551,63,-551},new int[]{-172,128});
states[128] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289},new int[]{-75,129,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297});
states[129] = new State(new int[]{105,189,104,190,117,191,118,192,119,193,120,194,116,195,122,196,124,197,5,-563,103,-563,102,-563,114,-563,115,-563,112,-563,14,-563,106,-563,111,-563,109,-563,107,-563,110,-563,108,-563,123,-563,13,-563,80,-563,10,-563,86,-563,89,-563,26,-563,92,-563,25,-563,2,-563,6,-563,88,-563,12,-563,9,-563,87,-563,73,-563,72,-563,71,-563,70,-563,42,-563,49,-563,127,-563,129,-563,74,-563,75,-563,69,-563,67,-563,36,-563,33,-563,8,-563,15,-563,16,-563,130,-563,131,-563,139,-563,141,-563,140,-563,48,-563,79,-563,31,-563,19,-563,85,-563,45,-563,28,-563,46,-563,90,-563,38,-563,29,-563,44,-563,51,-563,64,-563,66,-563,62,-563,63,-563},new int[]{-173,130,-176,187});
states[130] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,29,36,235,33,264,8,266,15,274,16,279,30,285,35,289},new int[]{-84,131,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284});
states[131] = new State(-574);
states[132] = new State(-584);
states[133] = new State(new int[]{7,134,105,-585,104,-585,117,-585,118,-585,119,-585,120,-585,116,-585,122,-585,124,-585,5,-585,103,-585,102,-585,114,-585,115,-585,112,-585,14,-585,106,-585,111,-585,109,-585,107,-585,110,-585,108,-585,123,-585,13,-585,80,-585,10,-585,86,-585,89,-585,26,-585,92,-585,25,-585,2,-585,6,-585,88,-585,12,-585,9,-585,87,-585,73,-585,72,-585,71,-585,70,-585,42,-585,49,-585,127,-585,129,-585,74,-585,75,-585,69,-585,67,-585,36,-585,33,-585,8,-585,15,-585,16,-585,130,-585,131,-585,139,-585,141,-585,140,-585,48,-585,79,-585,31,-585,19,-585,85,-585,45,-585,28,-585,46,-585,90,-585,38,-585,29,-585,44,-585,51,-585,64,-585,66,-585,62,-585,63,-585});
states[134] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,73,32,72,33,71,34,70,35,60,36,55,37,114,38,16,39,15,40,54,41,17,42,115,43,116,44,117,45,118,46,119,47,120,48,121,49,122,50,123,51,124,52,18,53,65,54,79,55,19,56,20,57,22,58,23,59,24,60,63,61,87,62,25,63,26,64,27,65,21,66,92,67,89,68,28,69,29,70,30,71,31,72,32,73,33,74,91,75,34,76,35,77,37,78,38,79,39,80,85,81,40,82,90,83,41,84,42,85,62,86,86,87,43,88,44,89,45,90,46,91,47,92,48,93,49,94,50,95,52,96,93,97,94,98,95,99,96,100,36,102,80,103},new int[]{-111,135,-120,22,-125,24,-126,27,-258,30,-124,31,-259,101});
states[135] = new State(-610);
states[136] = new State(-593);
states[137] = new State(new int[]{130,139,131,140,7,-627,105,-627,104,-627,117,-627,118,-627,119,-627,120,-627,116,-627,122,-627,124,-627,5,-627,103,-627,102,-627,114,-627,115,-627,112,-627,14,-627,106,-627,111,-627,109,-627,107,-627,110,-627,108,-627,123,-627,13,-627,80,-627,10,-627,86,-627,89,-627,26,-627,92,-627,25,-627,2,-627,6,-627,88,-627,12,-627,9,-627,87,-627,73,-627,72,-627,71,-627,70,-627,42,-627,49,-627,127,-627,129,-627,74,-627,75,-627,69,-627,67,-627,36,-627,33,-627,8,-627,15,-627,16,-627,139,-627,141,-627,140,-627,48,-627,79,-627,31,-627,19,-627,85,-627,45,-627,28,-627,46,-627,90,-627,38,-627,29,-627,44,-627,51,-627,64,-627,66,-627,62,-627,63,-627,113,-627,97,-627,11,-627},new int[]{-140,138});
states[138] = new State(-629);
states[139] = new State(-625);
states[140] = new State(-626);
states[141] = new State(-628);
states[142] = new State(-594);
states[143] = new State(-172);
states[144] = new State(-173);
states[145] = new State(-174);
states[146] = new State(-586);
states[147] = new State(new int[]{8,148});
states[148] = new State(new int[]{129,23,74,25,75,26,69,28,67,29},new int[]{-249,149,-155,151,-120,164,-125,24,-126,27});
states[149] = new State(new int[]{9,150});
states[150] = new State(-583);
states[151] = new State(new int[]{7,152,4,155,109,157,9,-534,105,-534,104,-534,117,-534,118,-534,119,-534,120,-534,116,-534,122,-534,124,-534,5,-534,103,-534,102,-534,114,-534,115,-534,112,-534,14,-534,106,-534,111,-534,107,-534,110,-534,108,-534,123,-534,13,-534,80,-534,10,-534,86,-534,89,-534,26,-534,92,-534,25,-534,2,-534,6,-534,88,-534,12,-534,87,-534,73,-534,72,-534,71,-534,70,-534,42,-534,49,-534,127,-534,129,-534,74,-534,75,-534,69,-534,67,-534,36,-534,33,-534,8,-534,15,-534,16,-534,130,-534,131,-534,139,-534,141,-534,140,-534,48,-534,79,-534,31,-534,19,-534,85,-534,45,-534,28,-534,46,-534,90,-534,38,-534,29,-534,44,-534,51,-534,64,-534,66,-534,62,-534,63,-534},new int[]{-263,154});
states[152] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,73,32,72,33,71,34,70,35,60,36,55,37,114,38,16,39,15,40,54,41,17,42,115,43,116,44,117,45,118,46,119,47,120,48,121,49,122,50,123,51,124,52,18,53,65,54,79,55,19,56,20,57,22,58,23,59,24,60,63,61,87,62,25,63,26,64,27,65,21,66,92,67,89,68,28,69,29,70,30,71,31,72,32,73,33,74,91,75,34,76,35,77,37,78,38,79,39,80,85,81,40,82,90,83,41,84,42,85,62,86,86,87,43,88,44,89,45,90,46,91,47,92,48,93,49,94,50,95,52,96,93,97,94,98,95,99,96,100,36,102,80,103},new int[]{-111,153,-120,22,-125,24,-126,27,-258,30,-124,31,-259,101});
states[153] = new State(-233);
states[154] = new State(-535);
states[155] = new State(new int[]{109,157},new int[]{-263,156});
states[156] = new State(-536);
states[157] = new State(new int[]{129,23,74,25,75,26,69,28,67,29},new int[]{-262,158,-246,166,-155,162,-120,164,-125,24,-126,27,-264,165});
states[158] = new State(new int[]{107,159,88,160});
states[159] = new State(-215);
states[160] = new State(new int[]{129,23,74,25,75,26,69,28,67,29},new int[]{-246,161,-155,162,-120,164,-125,24,-126,27,-264,165});
states[161] = new State(-217);
states[162] = new State(new int[]{7,152,109,157,107,-218,88,-218,113,-218,9,-218,10,-218,106,-218,97,-218,80,-218,73,-218,72,-218,71,-218,70,-218,86,-218,89,-218,26,-218,92,-218,25,-218,2,-218,123,-218,74,-218,75,-218,12,-218,11,-218},new int[]{-263,163});
states[163] = new State(-214);
states[164] = new State(-232);
states[165] = new State(-219);
states[166] = new State(-216);
states[167] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289,12,-620},new int[]{-62,168,-70,170,-80,1107,-78,173,-86,120,-85,125,-87,176,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297,-211,298,-96,299});
states[168] = new State(new int[]{12,169});
states[169] = new State(-587);
states[170] = new State(new int[]{88,171,12,-619});
states[171] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289},new int[]{-80,172,-78,173,-86,120,-85,125,-87,176,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297,-211,298,-96,299});
states[172] = new State(-622);
states[173] = new State(new int[]{6,174,88,-623,12,-623});
states[174] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289},new int[]{-78,175,-86,120,-85,125,-87,176,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297,-211,298,-96,299});
states[175] = new State(-624);
states[176] = new State(new int[]{5,177,103,181,102,182,114,183,115,184,112,185,14,-550,106,-550,111,-550,109,-550,107,-550,110,-550,108,-550,123,-550,13,-550,80,-550,10,-550,86,-550,89,-550,26,-550,92,-550,25,-550,2,-550,6,-550,88,-550,12,-550,9,-550,87,-550,73,-550,72,-550,71,-550,70,-550,42,-550,49,-550,127,-550,129,-550,74,-550,75,-550,69,-550,67,-550,36,-550,33,-550,8,-550,15,-550,16,-550,130,-550,131,-550,139,-550,141,-550,140,-550,48,-550,79,-550,31,-550,19,-550,85,-550,45,-550,28,-550,46,-550,90,-550,38,-550,29,-550,44,-550,51,-550,64,-550,66,-550,62,-550,63,-550},new int[]{-172,128});
states[177] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289},new int[]{-87,178,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297});
states[178] = new State(new int[]{5,179,103,181,102,182,114,183,115,184,112,185,80,-553,10,-553,86,-553,89,-553,26,-553,92,-553,25,-553,2,-553,6,-553,88,-553,12,-553,9,-553,87,-553,73,-553,72,-553,71,-553,70,-553,42,-553,49,-553,127,-553,129,-553,74,-553,75,-553,69,-553,67,-553,36,-553,33,-553,8,-553,15,-553,16,-553,130,-553,131,-553,139,-553,141,-553,140,-553,48,-553,79,-553,31,-553,19,-553,85,-553,45,-553,28,-553,46,-553,90,-553,38,-553,29,-553,44,-553,51,-553,64,-553,66,-553,62,-553,63,-553},new int[]{-172,128});
states[179] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289},new int[]{-87,180,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297});
states[180] = new State(new int[]{103,181,102,182,114,183,115,184,112,185,80,-554,10,-554,86,-554,89,-554,26,-554,92,-554,25,-554,2,-554,6,-554,88,-554,12,-554,9,-554,87,-554,73,-554,72,-554,71,-554,70,-554,42,-554,49,-554,127,-554,129,-554,74,-554,75,-554,69,-554,67,-554,36,-554,33,-554,8,-554,15,-554,16,-554,130,-554,131,-554,139,-554,141,-554,140,-554,48,-554,79,-554,31,-554,19,-554,85,-554,45,-554,28,-554,46,-554,90,-554,38,-554,29,-554,44,-554,51,-554,64,-554,66,-554,62,-554,63,-554},new int[]{-172,128});
states[181] = new State(-564);
states[182] = new State(-565);
states[183] = new State(-566);
states[184] = new State(-567);
states[185] = new State(-568);
states[186] = new State(new int[]{105,189,104,190,117,191,118,192,119,193,120,194,116,195,122,196,124,197,5,-562,103,-562,102,-562,114,-562,115,-562,112,-562,14,-562,106,-562,111,-562,109,-562,107,-562,110,-562,108,-562,123,-562,13,-562,80,-562,10,-562,86,-562,89,-562,26,-562,92,-562,25,-562,2,-562,6,-562,88,-562,12,-562,9,-562,87,-562,73,-562,72,-562,71,-562,70,-562,42,-562,49,-562,127,-562,129,-562,74,-562,75,-562,69,-562,67,-562,36,-562,33,-562,8,-562,15,-562,16,-562,130,-562,131,-562,139,-562,141,-562,140,-562,48,-562,79,-562,31,-562,19,-562,85,-562,45,-562,28,-562,46,-562,90,-562,38,-562,29,-562,44,-562,51,-562,64,-562,66,-562,62,-562,63,-562},new int[]{-173,130,-176,187});
states[187] = new State(new int[]{129,23,74,25,75,26,69,28,67,29},new int[]{-249,188,-155,151,-120,164,-125,24,-126,27});
states[188] = new State(-571);
states[189] = new State(-576);
states[190] = new State(-577);
states[191] = new State(-578);
states[192] = new State(-579);
states[193] = new State(-580);
states[194] = new State(-581);
states[195] = new State(-582);
states[196] = new State(-569);
states[197] = new State(-570);
states[198] = new State(-572);
states[199] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,29,36,235,33,264,8,266,15,274,16,279,30,285,35,289},new int[]{-84,200,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284});
states[200] = new State(-588);
states[201] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,29,36,235,33,264,8,266,15,274,16,279,30,285,35,289},new int[]{-84,202,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284});
states[202] = new State(-589);
states[203] = new State(-152);
states[204] = new State(-153);
states[205] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,29,36,235,33,264,8,266,15,274,16,279,30,285,35,289},new int[]{-84,206,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284});
states[206] = new State(-590);
states[207] = new State(-591);
states[208] = new State(new int[]{127,1106,129,23,74,25,75,26,69,28,67,29,36,235,33,264,8,295,15,274,16,279,130,139,131,140,139,143,141,144,140,145},new int[]{-93,209,-120,294,-125,24,-126,27,-166,234,-227,273,-260,278,-14,300,-139,136,-141,137,-140,141,-15,142});
states[209] = new State(new int[]{11,211,8,218,7,758,128,763,4,764,97,-595,98,-595,99,-595,100,-595,101,-595,80,-595,10,-595,86,-595,89,-595,26,-595,92,-595,105,-595,104,-595,117,-595,118,-595,119,-595,120,-595,116,-595,122,-595,124,-595,5,-595,103,-595,102,-595,114,-595,115,-595,112,-595,14,-595,106,-595,111,-595,109,-595,107,-595,110,-595,108,-595,123,-595,13,-595,25,-595,2,-595,6,-595,88,-595,12,-595,9,-595,87,-595,73,-595,72,-595,71,-595,70,-595,42,-595,49,-595,127,-595,129,-595,74,-595,75,-595,69,-595,67,-595,36,-595,33,-595,15,-595,16,-595,130,-595,131,-595,139,-595,141,-595,140,-595,48,-595,79,-595,31,-595,19,-595,85,-595,45,-595,28,-595,46,-595,90,-595,38,-595,29,-595,44,-595,51,-595,64,-595,66,-595,62,-595,63,-595},new int[]{-13,210});
states[210] = new State(-611);
states[211] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289},new int[]{-64,212,-78,222,-86,120,-85,125,-87,176,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297,-211,298,-96,299});
states[212] = new State(new int[]{12,213,88,214});
states[213] = new State(-612);
states[214] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289},new int[]{-78,215,-86,120,-85,125,-87,176,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297,-211,298,-96,299});
states[215] = new State(-524);
states[216] = new State(-597);
states[217] = new State(new int[]{11,211,8,218,7,758,128,763,4,764,97,-596,98,-596,99,-596,100,-596,101,-596,80,-596,10,-596,86,-596,89,-596,26,-596,92,-596,105,-596,104,-596,117,-596,118,-596,119,-596,120,-596,116,-596,122,-596,124,-596,5,-596,103,-596,102,-596,114,-596,115,-596,112,-596,14,-596,106,-596,111,-596,109,-596,107,-596,110,-596,108,-596,123,-596,13,-596,25,-596,2,-596,6,-596,88,-596,12,-596,9,-596,87,-596,73,-596,72,-596,71,-596,70,-596,42,-596,49,-596,127,-596,129,-596,74,-596,75,-596,69,-596,67,-596,36,-596,33,-596,15,-596,16,-596,130,-596,131,-596,139,-596,141,-596,140,-596,48,-596,79,-596,31,-596,19,-596,85,-596,45,-596,28,-596,46,-596,90,-596,38,-596,29,-596,44,-596,51,-596,64,-596,66,-596,62,-596,63,-596},new int[]{-13,210});
states[218] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289,9,-618},new int[]{-61,219,-64,221,-78,222,-86,120,-85,125,-87,176,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297,-211,298,-96,299});
states[219] = new State(new int[]{9,220});
states[220] = new State(-613);
states[221] = new State(new int[]{88,214,9,-617,12,-617});
states[222] = new State(-523);
states[223] = new State(new int[]{113,224,11,-604,8,-604,7,-604,128,-604,4,-604,105,-604,104,-604,117,-604,118,-604,119,-604,120,-604,116,-604,122,-604,124,-604,5,-604,103,-604,102,-604,114,-604,115,-604,112,-604,14,-604,106,-604,111,-604,109,-604,107,-604,110,-604,108,-604,123,-604,13,-604,80,-604,10,-604,86,-604,89,-604,26,-604,92,-604,25,-604,2,-604,6,-604,88,-604,12,-604,9,-604,87,-604,73,-604,72,-604,71,-604,70,-604,42,-604,49,-604,127,-604,129,-604,74,-604,75,-604,69,-604,67,-604,36,-604,33,-604,15,-604,16,-604,130,-604,131,-604,139,-604,141,-604,140,-604,48,-604,79,-604,31,-604,19,-604,85,-604,45,-604,28,-604,46,-604,90,-604,38,-604,29,-604,44,-604,51,-604,64,-604,66,-604,62,-604,63,-604,97,-604,98,-604,99,-604,100,-604,101,-604});
states[224] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289,79,110},new int[]{-289,225,-86,226,-85,125,-87,227,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297,-211,298,-225,363});
states[225] = new State(-755);
states[226] = new State(new int[]{13,121,80,-779,10,-779,86,-779,89,-779,26,-779,92,-779,25,-779,2,-779,5,-779,6,-779,88,-779,12,-779,9,-779,87,-779,105,-779,104,-779,117,-779,118,-779,119,-779,120,-779,116,-779,122,-779,124,-779,103,-779,102,-779,114,-779,115,-779,112,-779,14,-779,106,-779,111,-779,109,-779,107,-779,110,-779,108,-779,123,-779,73,-779,72,-779,71,-779,70,-779,42,-779,49,-779,127,-779,129,-779,74,-779,75,-779,69,-779,67,-779,36,-779,33,-779,8,-779,15,-779,16,-779,130,-779,131,-779,139,-779,141,-779,140,-779,48,-779,79,-779,31,-779,19,-779,85,-779,45,-779,28,-779,46,-779,90,-779,38,-779,29,-779,44,-779,51,-779,64,-779,66,-779,62,-779,63,-779});
states[227] = new State(new int[]{103,181,102,182,114,183,115,184,112,185,14,-550,106,-550,111,-550,109,-550,107,-550,110,-550,108,-550,123,-550,5,-550,13,-550,80,-550,10,-550,86,-550,89,-550,26,-550,92,-550,25,-550,2,-550,6,-550,88,-550,12,-550,9,-550,87,-550,105,-550,104,-550,117,-550,118,-550,119,-550,120,-550,116,-550,122,-550,124,-550,73,-550,72,-550,71,-550,70,-550,42,-550,49,-550,127,-550,129,-550,74,-550,75,-550,69,-550,67,-550,36,-550,33,-550,8,-550,15,-550,16,-550,130,-550,131,-550,139,-550,141,-550,140,-550,48,-550,79,-550,31,-550,19,-550,85,-550,45,-550,28,-550,46,-550,90,-550,38,-550,29,-550,44,-550,51,-550,64,-550,66,-550,62,-550,63,-550},new int[]{-172,128});
states[228] = new State(new int[]{20,1092,129,23,74,25,75,26,69,28,67,29,18,1105,11,-655,8,-655,7,-655,128,-655,4,-655,97,-655,98,-655,99,-655,100,-655,101,-655,80,-655,10,-655,5,-655,86,-655,89,-655,26,-655,92,-655,113,-655,105,-655,104,-655,117,-655,118,-655,119,-655,120,-655,116,-655,122,-655,124,-655,103,-655,102,-655,114,-655,115,-655,112,-655,14,-655,106,-655,111,-655,109,-655,107,-655,110,-655,108,-655,123,-655,13,-655,25,-655,2,-655,6,-655,88,-655,12,-655,9,-655,87,-655,73,-655,72,-655,71,-655,70,-655,42,-655,49,-655,127,-655,36,-655,33,-655,15,-655,16,-655,130,-655,131,-655,139,-655,141,-655,140,-655,48,-655,79,-655,31,-655,19,-655,85,-655,45,-655,28,-655,46,-655,90,-655,38,-655,29,-655,44,-655,51,-655,64,-655,66,-655,62,-655,63,-655},new int[]{-249,229,-240,1084,-155,1103,-120,164,-125,24,-126,27,-237,1104});
states[229] = new State(new int[]{8,231,80,-548,10,-548,86,-548,89,-548,26,-548,92,-548,105,-548,104,-548,117,-548,118,-548,119,-548,120,-548,116,-548,122,-548,124,-548,5,-548,103,-548,102,-548,114,-548,115,-548,112,-548,14,-548,106,-548,111,-548,109,-548,107,-548,110,-548,108,-548,123,-548,13,-548,25,-548,2,-548,6,-548,88,-548,12,-548,9,-548,87,-548,73,-548,72,-548,71,-548,70,-548,42,-548,49,-548,127,-548,129,-548,74,-548,75,-548,69,-548,67,-548,36,-548,33,-548,15,-548,16,-548,130,-548,131,-548,139,-548,141,-548,140,-548,48,-548,79,-548,31,-548,19,-548,85,-548,45,-548,28,-548,46,-548,90,-548,38,-548,29,-548,44,-548,51,-548,64,-548,66,-548,62,-548,63,-548},new int[]{-63,230});
states[230] = new State(-539);
states[231] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289,9,-618},new int[]{-61,232,-64,221,-78,222,-86,120,-85,125,-87,176,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297,-211,298,-96,299});
states[232] = new State(new int[]{9,233});
states[233] = new State(-549);
states[234] = new State(-605);
states[235] = new State(new int[]{102,237,103,238,104,239,105,240,106,241,107,242,108,243,109,244,110,245,111,246,114,247,115,248,116,249,117,250,118,251,119,252,120,253,121,254,123,255,125,256,126,257,97,259,98,260,99,261,100,262,101,263},new int[]{-175,236,-169,258});
states[236] = new State(-630);
states[237] = new State(-728);
states[238] = new State(-729);
states[239] = new State(-730);
states[240] = new State(-731);
states[241] = new State(-732);
states[242] = new State(-733);
states[243] = new State(-734);
states[244] = new State(-735);
states[245] = new State(-736);
states[246] = new State(-737);
states[247] = new State(-738);
states[248] = new State(-739);
states[249] = new State(-740);
states[250] = new State(-741);
states[251] = new State(-742);
states[252] = new State(-743);
states[253] = new State(-744);
states[254] = new State(-745);
states[255] = new State(-746);
states[256] = new State(-747);
states[257] = new State(-748);
states[258] = new State(-749);
states[259] = new State(-750);
states[260] = new State(-751);
states[261] = new State(-752);
states[262] = new State(-753);
states[263] = new State(-754);
states[264] = new State(new int[]{129,23,74,25,75,26,69,28,67,29},new int[]{-120,265,-125,24,-126,27});
states[265] = new State(-606);
states[266] = new State(new int[]{9,269,47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289},new int[]{-78,267,-120,1050,-86,1069,-85,125,-87,176,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297,-211,298,-96,299});
states[267] = new State(new int[]{9,268});
states[268] = new State(-607);
states[269] = new State(new int[]{5,1042,113,-777},new int[]{-286,270});
states[270] = new State(new int[]{113,271});
states[271] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289,79,110},new int[]{-289,272,-86,226,-85,125,-87,227,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297,-211,298,-225,363});
states[272] = new State(-756);
states[273] = new State(-608);
states[274] = new State(new int[]{8,275});
states[275] = new State(new int[]{129,23,74,25,75,26,69,28,67,29},new int[]{-249,276,-155,151,-120,164,-125,24,-126,27});
states[276] = new State(new int[]{9,277});
states[277] = new State(-531);
states[278] = new State(-609);
states[279] = new State(new int[]{8,280});
states[280] = new State(new int[]{129,23,74,25,75,26,69,28,67,29},new int[]{-249,281,-155,151,-120,164,-125,24,-126,27});
states[281] = new State(new int[]{9,282});
states[282] = new State(-532);
states[283] = new State(-592);
states[284] = new State(-761);
states[285] = new State(new int[]{8,1032,5,316,113,-775},new int[]{-285,286});
states[286] = new State(new int[]{113,287});
states[287] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289,79,110},new int[]{-289,288,-86,226,-85,125,-87,227,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297,-211,298,-225,363});
states[288] = new State(-766);
states[289] = new State(new int[]{113,290,8,302});
states[290] = new State(new int[]{127,216,129,23,74,25,75,26,69,28,67,29,36,235,33,264,8,295,15,274,16,279,130,139,131,140,139,143,141,144,140,145,79,110},new int[]{-290,291,-183,292,-94,293,-104,208,-93,217,-120,294,-125,24,-126,27,-166,234,-227,273,-260,278,-14,300,-139,136,-141,137,-140,141,-15,142,-225,301});
states[291] = new State(-769);
states[292] = new State(-781);
states[293] = new State(-470);
states[294] = new State(-604);
states[295] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289},new int[]{-78,267,-86,120,-85,125,-87,176,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297,-211,298,-96,299});
states[296] = new State(-573);
states[297] = new State(-575);
states[298] = new State(-530);
states[299] = new State(-528);
states[300] = new State(new int[]{7,134});
states[301] = new State(-782);
states[302] = new State(new int[]{9,303,129,23,74,25,75,26,69,28,67,29},new int[]{-287,306,-288,1031,-132,312,-120,620,-125,24,-126,27});
states[303] = new State(new int[]{113,304});
states[304] = new State(new int[]{127,216,129,23,74,25,75,26,69,28,67,29,36,235,33,264,8,295,15,274,16,279,130,139,131,140,139,143,141,144,140,145,79,110},new int[]{-290,305,-183,292,-94,293,-104,208,-93,217,-120,294,-125,24,-126,27,-166,234,-227,273,-260,278,-14,300,-139,136,-141,137,-140,141,-15,142,-225,301});
states[305] = new State(-770);
states[306] = new State(new int[]{9,307,10,310});
states[307] = new State(new int[]{113,308});
states[308] = new State(new int[]{127,216,129,23,74,25,75,26,69,28,67,29,36,235,33,264,8,295,15,274,16,279,130,139,131,140,139,143,141,144,140,145,79,110},new int[]{-290,309,-183,292,-94,293,-104,208,-93,217,-120,294,-125,24,-126,27,-166,234,-227,273,-260,278,-14,300,-139,136,-141,137,-140,141,-15,142,-225,301});
states[309] = new State(-771);
states[310] = new State(new int[]{129,23,74,25,75,26,69,28,67,29},new int[]{-288,311,-132,312,-120,620,-125,24,-126,27});
states[311] = new State(-773);
states[312] = new State(new int[]{88,314,5,316,9,-775,10,-775},new int[]{-285,313});
states[313] = new State(-774);
states[314] = new State(new int[]{129,23,74,25,75,26,69,28,67,29},new int[]{-120,315,-125,24,-126,27});
states[315] = new State(-318);
states[316] = new State(new int[]{129,325,74,25,75,26,69,28,67,29,139,143,141,144,140,145,103,203,102,204,130,139,131,140,8,466,128,480,18,485,39,493,40,543,27,554,65,558,56,561,35,566,30,568},new int[]{-242,317,-243,318,-239,319,-155,320,-120,164,-125,24,-126,27,-81,449,-88,465,-89,464,-15,460,-174,461,-139,463,-141,137,-140,141,-226,478,-219,479,-247,482,-248,483,-245,484,-237,491,-27,492,-234,542,-102,553,-103,557,-197,563,-195,564,-194,565,-264,572});
states[317] = new State(-776);
states[318] = new State(-435);
states[319] = new State(-208);
states[320] = new State(new int[]{7,152,113,321,109,157,9,-220,10,-220,106,-220,88,-220,97,-220,80,-220,73,-220,72,-220,71,-220,70,-220,86,-220,89,-220,26,-220,92,-220,25,-220,2,-220,123,-220,74,-220,75,-220,12,-220,11,-220,8,-227,105,-227,104,-227,117,-227,118,-227,119,-227,120,-227,116,-227,6,-227,103,-227,102,-227,114,-227,115,-227},new int[]{-263,163});
states[321] = new State(new int[]{8,323,129,23,74,25,75,26,69,28,67,29},new int[]{-246,322,-155,162,-120,164,-125,24,-126,27,-264,165});
states[322] = new State(-263);
states[323] = new State(new int[]{9,324});
states[324] = new State(-267);
states[325] = new State(new int[]{11,326,7,-637,113,-637,109,-637,9,-637,10,-637,8,-637,105,-637,104,-637,117,-637,118,-637,119,-637,120,-637,116,-637,6,-637,103,-637,102,-637,114,-637,115,-637,106,-637,88,-637,97,-637,80,-637,73,-637,72,-637,71,-637,70,-637,86,-637,89,-637,26,-637,92,-637,25,-637,2,-637,123,-637,74,-637,75,-637,12,-637});
states[326] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,15,274,16,279,11,367,139,143,141,144,140,145,130,139,131,140,47,378,127,379,8,385,121,405,103,203,102,204,128,409},new int[]{-79,327,-74,333,-11,351,-9,359,-12,340,-120,360,-125,24,-126,27,-227,364,-260,365,-210,366,-15,376,-139,377,-141,137,-140,141,-174,407,-236,411,-212,412});
states[327] = new State(new int[]{12,328,13,329});
states[328] = new State(-257);
states[329] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,15,274,16,279,11,367,139,143,141,144,140,145,130,139,131,140,47,378,127,379,8,385,121,405,103,203,102,204,128,409},new int[]{-79,330,-74,333,-11,351,-9,359,-12,340,-120,360,-125,24,-126,27,-227,364,-260,365,-210,366,-15,376,-139,377,-141,137,-140,141,-174,407,-236,411,-212,412});
states[330] = new State(new int[]{5,331,13,329});
states[331] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,15,274,16,279,11,367,139,143,141,144,140,145,130,139,131,140,47,378,127,379,8,385,121,405,103,203,102,204,128,409},new int[]{-79,332,-74,333,-11,351,-9,359,-12,340,-120,360,-125,24,-126,27,-227,364,-260,365,-210,366,-15,376,-139,377,-141,137,-140,141,-174,407,-236,411,-212,412});
states[332] = new State(new int[]{13,329,12,-116,5,-116,88,-116,9,-116,6,-116,10,-116,80,-116,73,-116,72,-116,71,-116,70,-116,86,-116,89,-116,26,-116,92,-116,25,-116,2,-116});
states[333] = new State(new int[]{103,438,102,439,114,440,115,441,106,442,111,443,109,444,107,445,110,446,108,447,123,448,12,-110,13,-110,5,-110,88,-110,9,-110,6,-110,10,-110,80,-110,73,-110,72,-110,71,-110,70,-110,86,-110,89,-110,26,-110,92,-110,25,-110,2,-110},new int[]{-168,334,-167,436});
states[334] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,15,274,16,279,11,367,139,143,141,144,140,145,130,139,131,140,47,378,127,379,8,382,121,405,103,203,102,204,128,409},new int[]{-11,335,-9,359,-12,340,-120,381,-125,24,-126,27,-227,364,-260,365,-210,366,-15,376,-139,377,-141,137,-140,141,-174,407,-236,411});
states[335] = new State(new int[]{122,196,124,197,105,352,104,353,117,354,118,355,119,356,120,357,116,358,103,-125,102,-125,114,-125,115,-125,106,-125,111,-125,109,-125,107,-125,110,-125,108,-125,123,-125,12,-125,13,-125,5,-125,88,-125,9,-125,6,-125,10,-125,80,-125,73,-125,72,-125,71,-125,70,-125,86,-125,89,-125,26,-125,92,-125,25,-125,2,-125},new int[]{-176,336,-170,338});
states[336] = new State(new int[]{129,23,74,25,75,26,69,28,67,29},new int[]{-249,337,-155,151,-120,164,-125,24,-126,27});
states[337] = new State(-130);
states[338] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,15,274,16,279,11,367,139,143,141,144,140,145,130,139,131,140,47,378,127,379,8,382,121,405,103,203,102,204,128,409},new int[]{-9,339,-12,340,-120,381,-125,24,-126,27,-227,364,-260,365,-210,366,-15,376,-139,377,-141,137,-140,141,-174,407});
states[339] = new State(-133);
states[340] = new State(new int[]{7,342,128,344,8,345,11,433,122,-141,124,-141,105,-141,104,-141,117,-141,118,-141,119,-141,120,-141,116,-141,103,-141,102,-141,114,-141,115,-141,106,-141,111,-141,109,-141,107,-141,110,-141,108,-141,123,-141,12,-141,13,-141,5,-141,88,-141,9,-141,6,-141,10,-141,80,-141,73,-141,72,-141,71,-141,70,-141,86,-141,89,-141,26,-141,92,-141,25,-141,2,-141},new int[]{-10,341});
states[341] = new State(-157);
states[342] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,73,32,72,33,71,34,70,35,60,36,55,37,114,38,16,39,15,40,54,41,17,42,115,43,116,44,117,45,118,46,119,47,120,48,121,49,122,50,123,51,124,52,18,53,65,54,79,55,19,56,20,57,22,58,23,59,24,60,63,61,87,62,25,63,26,64,27,65,21,66,92,67,89,68,28,69,29,70,30,71,31,72,32,73,33,74,91,75,34,76,35,77,37,78,38,79,39,80,85,81,40,82,90,83,41,84,42,85,62,86,86,87,43,88,44,89,45,90,46,91,47,92,48,93,49,94,50,95,52,96,93,97,94,98,95,99,96,100,36,102,80,103},new int[]{-111,343,-120,22,-125,24,-126,27,-258,30,-124,31,-259,101});
states[343] = new State(-158);
states[344] = new State(-159);
states[345] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,15,274,16,279,11,367,139,143,141,144,140,145,130,139,131,140,47,378,127,379,8,385,121,405,103,203,102,204,128,409,9,-163},new int[]{-69,346,-66,348,-79,432,-74,333,-11,351,-9,359,-12,340,-120,360,-125,24,-126,27,-227,364,-260,365,-210,366,-15,376,-139,377,-141,137,-140,141,-174,407,-236,411,-212,412});
states[346] = new State(new int[]{9,347});
states[347] = new State(-160);
states[348] = new State(new int[]{88,349,9,-162});
states[349] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,15,274,16,279,11,367,139,143,141,144,140,145,130,139,131,140,47,378,127,379,8,385,121,405,103,203,102,204,128,409},new int[]{-79,350,-74,333,-11,351,-9,359,-12,340,-120,360,-125,24,-126,27,-227,364,-260,365,-210,366,-15,376,-139,377,-141,137,-140,141,-174,407,-236,411,-212,412});
states[350] = new State(new int[]{13,329,88,-165,9,-165});
states[351] = new State(new int[]{122,196,124,197,105,352,104,353,117,354,118,355,119,356,120,357,116,358,103,-124,102,-124,114,-124,115,-124,106,-124,111,-124,109,-124,107,-124,110,-124,108,-124,123,-124,12,-124,13,-124,5,-124,88,-124,9,-124,6,-124,10,-124,80,-124,73,-124,72,-124,71,-124,70,-124,86,-124,89,-124,26,-124,92,-124,25,-124,2,-124},new int[]{-176,336,-170,338});
states[352] = new State(-134);
states[353] = new State(-135);
states[354] = new State(-136);
states[355] = new State(-137);
states[356] = new State(-138);
states[357] = new State(-139);
states[358] = new State(-140);
states[359] = new State(-131);
states[360] = new State(new int[]{113,361,7,-154,128,-154,8,-154,11,-154,122,-154,124,-154,105,-154,104,-154,117,-154,118,-154,119,-154,120,-154,116,-154,103,-154,102,-154,114,-154,115,-154,106,-154,111,-154,109,-154,107,-154,110,-154,108,-154,123,-154,12,-154,13,-154,5,-154,88,-154,9,-154,6,-154,10,-154,80,-154,73,-154,72,-154,71,-154,70,-154,86,-154,89,-154,26,-154,92,-154,25,-154,2,-154});
states[361] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289,79,110},new int[]{-289,362,-86,226,-85,125,-87,227,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297,-211,298,-225,363});
states[362] = new State(-111);
states[363] = new State(-780);
states[364] = new State(-155);
states[365] = new State(-156);
states[366] = new State(-142);
states[367] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,15,274,16,279,11,367,139,143,141,144,140,145,130,139,131,140,47,378,127,379,8,385,121,405,103,203,102,204,128,409,12,-167},new int[]{-68,368,-65,370,-82,431,-79,373,-74,333,-11,351,-9,359,-12,340,-120,360,-125,24,-126,27,-227,364,-260,365,-210,366,-15,376,-139,377,-141,137,-140,141,-174,407,-236,411,-212,412});
states[368] = new State(new int[]{12,369});
states[369] = new State(-151);
states[370] = new State(new int[]{88,371,12,-166,9,-166});
states[371] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,15,274,16,279,11,367,139,143,141,144,140,145,130,139,131,140,47,378,127,379,8,385,121,405,103,203,102,204,128,409},new int[]{-82,372,-79,373,-74,333,-11,351,-9,359,-12,340,-120,360,-125,24,-126,27,-227,364,-260,365,-210,366,-15,376,-139,377,-141,137,-140,141,-174,407,-236,411,-212,412});
states[372] = new State(-169);
states[373] = new State(new int[]{13,329,6,374,88,-170,12,-170,9,-170,5,-170});
states[374] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,15,274,16,279,11,367,139,143,141,144,140,145,130,139,131,140,47,378,127,379,8,385,121,405,103,203,102,204,128,409},new int[]{-79,375,-74,333,-11,351,-9,359,-12,340,-120,360,-125,24,-126,27,-227,364,-260,365,-210,366,-15,376,-139,377,-141,137,-140,141,-174,407,-236,411,-212,412});
states[375] = new State(new int[]{13,329,88,-171,12,-171,9,-171,5,-171});
states[376] = new State(-143);
states[377] = new State(-144);
states[378] = new State(-145);
states[379] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,15,274,16,279,11,367,139,143,141,144,140,145,130,139,131,140,47,378,127,379,8,382,121,405,103,203,102,204,128,409},new int[]{-9,380,-12,340,-120,381,-125,24,-126,27,-227,364,-260,365,-210,366,-15,376,-139,377,-141,137,-140,141,-174,407});
states[380] = new State(-146);
states[381] = new State(-154);
states[382] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,15,274,16,279,11,367,139,143,141,144,140,145,130,139,131,140,47,378,127,379,8,385,121,405,103,203,102,204,128,409},new int[]{-79,383,-74,333,-11,351,-9,359,-12,340,-120,360,-125,24,-126,27,-227,364,-260,365,-210,366,-15,376,-139,377,-141,137,-140,141,-174,407,-236,411,-212,412});
states[383] = new State(new int[]{9,384,13,329});
states[384] = new State(-147);
states[385] = new State(new int[]{9,387,129,23,74,25,75,26,69,28,67,228,15,274,16,279,11,367,139,143,141,144,140,145,130,139,131,140,47,378,127,379,8,395,121,405,103,203,102,204,128,409,54,147},new int[]{-79,386,-60,391,-74,333,-11,351,-9,359,-12,340,-120,360,-125,24,-126,27,-227,364,-260,365,-210,366,-15,376,-139,377,-141,137,-140,141,-174,407,-236,411,-212,412,-59,413,-77,422,-76,416,-83,418,-213,419,-148,420,-52,421});
states[386] = new State(new int[]{9,384,13,329,88,-175});
states[387] = new State(new int[]{5,316,113,-775},new int[]{-285,388});
states[388] = new State(new int[]{113,389});
states[389] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289,79,110},new int[]{-289,390,-86,226,-85,125,-87,227,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297,-211,298,-225,363});
states[390] = new State(-112);
states[391] = new State(new int[]{9,392});
states[392] = new State(new int[]{113,393});
states[393] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289,79,110},new int[]{-289,394,-86,226,-85,125,-87,227,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297,-211,298,-225,363});
states[394] = new State(-113);
states[395] = new State(new int[]{9,387,129,23,74,25,75,26,69,28,67,228,15,274,16,279,11,367,139,143,141,144,140,145,130,139,131,140,47,378,127,379,8,395,121,405,103,203,102,204,128,409,54,147},new int[]{-79,386,-60,396,-213,398,-83,400,-215,402,-74,333,-11,351,-9,359,-12,340,-120,404,-125,24,-126,27,-227,364,-260,365,-210,366,-15,376,-139,377,-141,137,-140,141,-174,407,-236,411,-212,412,-59,413,-77,422,-76,416,-148,420,-52,421,-214,423,-216,430,-109,426});
states[396] = new State(new int[]{9,397});
states[397] = new State(new int[]{113,393,88,-178,9,-178,10,-178,80,-178,73,-178,72,-178,71,-178,70,-178,86,-178,89,-178,26,-178,92,-178,25,-178,2,-178});
states[398] = new State(new int[]{9,399,88,-177});
states[399] = new State(-179);
states[400] = new State(new int[]{9,401,88,-176});
states[401] = new State(-180);
states[402] = new State(new int[]{9,403});
states[403] = new State(-185);
states[404] = new State(new int[]{113,361,7,-154,128,-154,8,-154,11,-154,122,-154,124,-154,105,-154,104,-154,117,-154,118,-154,119,-154,120,-154,116,-154,103,-154,102,-154,114,-154,115,-154,106,-154,111,-154,109,-154,107,-154,110,-154,108,-154,123,-154,9,-154,13,-154,88,-154,5,-191});
states[405] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,15,274,16,279,11,367,139,143,141,144,140,145,130,139,131,140,47,378,127,379,8,382,121,405,103,203,102,204,128,409},new int[]{-9,406,-12,340,-120,381,-125,24,-126,27,-227,364,-260,365,-210,366,-15,376,-139,377,-141,137,-140,141,-174,407});
states[406] = new State(-148);
states[407] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,15,274,16,279,11,367,139,143,141,144,140,145,130,139,131,140,47,378,127,379,8,382,121,405,103,203,102,204,128,409},new int[]{-9,408,-12,340,-120,381,-125,24,-126,27,-227,364,-260,365,-210,366,-15,376,-139,377,-141,137,-140,141,-174,407});
states[408] = new State(-149);
states[409] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,15,274,16,279,11,367,139,143,141,144,140,145,130,139,131,140,47,378,127,379,8,382,121,405,103,203,102,204,128,409},new int[]{-9,410,-12,340,-120,381,-125,24,-126,27,-227,364,-260,365,-210,366,-15,376,-139,377,-141,137,-140,141,-174,407});
states[410] = new State(-150);
states[411] = new State(-132);
states[412] = new State(-115);
states[413] = new State(new int[]{88,414,9,-182});
states[414] = new State(new int[]{129,23,74,25,75,26,69,28,67,228,15,274,16,279,11,367,139,143,141,144,140,145,130,139,131,140,47,378,127,379,8,395,121,405,103,203,102,204,128,409,54,147},new int[]{-77,415,-76,416,-79,417,-74,333,-11,351,-9,359,-12,340,-120,360,-125,24,-126,27,-227,364,-260,365,-210,366,-15,376,-139,377,-141,137,-140,141,-174,407,-236,411,-212,412,-83,418,-213,419,-148,420,-52,421});
states[415] = new State(-184);
states[416] = new State(-377);
states[417] = new State(new int[]{13,329,88,-175,9,-175,10,-175,80,-175,73,-175,72,-175,71,-175,70,-175,86,-175,89,-175,26,-175,92,-175,25,-175,2,-175});
states[418] = new State(-176);
states[419] = new State(-177);
states[420] = new State(-378);
states[421] = new State(-379);
states[422] = new State(-183);
states[423] = new State(new int[]{10,424,9,-186});
states[424] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,9,-187},new int[]{-216,425,-109,426,-120,429,-125,24,-126,27});
states[425] = new State(-189);
states[426] = new State(new int[]{5,427});
states[427] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,15,274,16,279,11,367,139,143,141,144,140,145,130,139,131,140,47,378,127,379,8,395,121,405,103,203,102,204,128,409},new int[]{-76,428,-79,417,-74,333,-11,351,-9,359,-12,340,-120,360,-125,24,-126,27,-227,364,-260,365,-210,366,-15,376,-139,377,-141,137,-140,141,-174,407,-236,411,-212,412,-83,418,-213,419});
states[428] = new State(-190);
states[429] = new State(-191);
states[430] = new State(-188);
states[431] = new State(-168);
states[432] = new State(new int[]{13,329,88,-164,9,-164});
states[433] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,15,274,16,279,11,367,139,143,141,144,140,145,130,139,131,140,47,378,127,379,8,385,121,405,103,203,102,204,128,409,12,-167},new int[]{-68,434,-65,370,-82,431,-79,373,-74,333,-11,351,-9,359,-12,340,-120,360,-125,24,-126,27,-227,364,-260,365,-210,366,-15,376,-139,377,-141,137,-140,141,-174,407,-236,411,-212,412});
states[434] = new State(new int[]{12,435});
states[435] = new State(-161);
states[436] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,15,274,16,279,11,367,139,143,141,144,140,145,130,139,131,140,47,378,127,379,8,382,121,405,103,203,102,204,128,409},new int[]{-74,437,-11,351,-9,359,-12,340,-120,381,-125,24,-126,27,-227,364,-260,365,-210,366,-15,376,-139,377,-141,137,-140,141,-174,407,-236,411});
states[437] = new State(new int[]{103,438,102,439,114,440,115,441,12,-114,13,-114,5,-114,88,-114,9,-114,6,-114,10,-114,80,-114,73,-114,72,-114,71,-114,70,-114,86,-114,89,-114,26,-114,92,-114,25,-114,2,-114},new int[]{-168,334});
states[438] = new State(-126);
states[439] = new State(-127);
states[440] = new State(-128);
states[441] = new State(-129);
states[442] = new State(-117);
states[443] = new State(-118);
states[444] = new State(-119);
states[445] = new State(-120);
states[446] = new State(-121);
states[447] = new State(-122);
states[448] = new State(-123);
states[449] = new State(new int[]{6,450,103,438,102,439,114,440,115,441},new int[]{-168,452});
states[450] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,139,143,141,144,140,145,103,203,102,204,130,139,131,140},new int[]{-81,451,-88,465,-89,464,-155,459,-120,164,-125,24,-126,27,-15,460,-174,461,-139,463,-141,137,-140,141});
states[451] = new State(new int[]{103,438,102,439,114,440,115,441,113,-221,9,-221,10,-221,106,-221,88,-221,97,-221,80,-221,73,-221,72,-221,71,-221,70,-221,86,-221,89,-221,26,-221,92,-221,25,-221,2,-221,123,-221,74,-221,75,-221,12,-221,11,-221},new int[]{-168,452});
states[452] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,139,143,141,144,140,145,103,203,102,204,130,139,131,140},new int[]{-88,453,-89,464,-155,459,-120,164,-125,24,-126,27,-15,460,-174,461,-139,463,-141,137,-140,141});
states[453] = new State(new int[]{105,352,104,353,117,354,118,355,119,356,120,357,116,358,6,-224,103,-224,102,-224,114,-224,115,-224,113,-224,9,-224,10,-224,106,-224,88,-224,97,-224,80,-224,73,-224,72,-224,71,-224,70,-224,86,-224,89,-224,26,-224,92,-224,25,-224,2,-224,123,-224,74,-224,75,-224,12,-224,11,-224},new int[]{-170,454});
states[454] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,139,143,141,144,140,145,103,203,102,204,130,139,131,140},new int[]{-89,455,-155,459,-120,164,-125,24,-126,27,-15,460,-174,461,-139,463,-141,137,-140,141});
states[455] = new State(new int[]{8,456,105,-226,104,-226,117,-226,118,-226,119,-226,120,-226,116,-226,6,-226,103,-226,102,-226,114,-226,115,-226,113,-226,9,-226,10,-226,106,-226,88,-226,97,-226,80,-226,73,-226,72,-226,71,-226,70,-226,86,-226,89,-226,26,-226,92,-226,25,-226,2,-226,123,-226,74,-226,75,-226,12,-226,11,-226});
states[456] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,15,274,16,279,11,367,139,143,141,144,140,145,130,139,131,140,47,378,127,379,8,385,121,405,103,203,102,204,128,409,9,-167},new int[]{-68,457,-65,370,-82,431,-79,373,-74,333,-11,351,-9,359,-12,340,-120,360,-125,24,-126,27,-227,364,-260,365,-210,366,-15,376,-139,377,-141,137,-140,141,-174,407,-236,411,-212,412});
states[457] = new State(new int[]{9,458});
states[458] = new State(-231);
states[459] = new State(new int[]{7,152,8,-227,105,-227,104,-227,117,-227,118,-227,119,-227,120,-227,116,-227,103,-227,102,-227,114,-227,115,-227,113,-227,9,-227,10,-227,106,-227,88,-227,97,-227,80,-227,73,-227,72,-227,71,-227,70,-227,86,-227,89,-227,26,-227,92,-227,25,-227,2,-227,123,-227,74,-227,75,-227,12,-227,11,-227,6,-227});
states[460] = new State(-228);
states[461] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,139,143,141,144,140,145,103,203,102,204,130,139,131,140},new int[]{-89,462,-155,459,-120,164,-125,24,-126,27,-15,460,-174,461,-139,463,-141,137,-140,141});
states[462] = new State(new int[]{8,456,105,-229,104,-229,117,-229,118,-229,119,-229,120,-229,116,-229,6,-229,103,-229,102,-229,114,-229,115,-229,113,-229,9,-229,10,-229,106,-229,88,-229,97,-229,80,-229,73,-229,72,-229,71,-229,70,-229,86,-229,89,-229,26,-229,92,-229,25,-229,2,-229,123,-229,74,-229,75,-229,12,-229,11,-229});
states[463] = new State(-230);
states[464] = new State(new int[]{8,456,105,-225,104,-225,117,-225,118,-225,119,-225,120,-225,116,-225,6,-225,103,-225,102,-225,114,-225,115,-225,113,-225,9,-225,10,-225,106,-225,88,-225,97,-225,80,-225,73,-225,72,-225,71,-225,70,-225,86,-225,89,-225,26,-225,92,-225,25,-225,2,-225,123,-225,74,-225,75,-225,12,-225,11,-225});
states[465] = new State(new int[]{105,352,104,353,117,354,118,355,119,356,120,357,116,358,6,-223,103,-223,102,-223,114,-223,115,-223,113,-223,9,-223,10,-223,106,-223,88,-223,97,-223,80,-223,73,-223,72,-223,71,-223,70,-223,86,-223,89,-223,26,-223,92,-223,25,-223,2,-223,123,-223,74,-223,75,-223,12,-223,11,-223},new int[]{-170,454});
states[466] = new State(new int[]{9,1026,129,325,74,25,75,26,69,28,67,29,139,143,141,144,140,145,103,203,102,204,130,139,131,140,8,466,128,480,18,485,39,493,40,543,27,554,65,558,56,561,35,566,30,568},new int[]{-73,467,-71,550,-243,475,-239,319,-155,320,-120,164,-125,24,-126,27,-81,449,-88,465,-89,464,-15,460,-174,461,-139,463,-141,137,-140,141,-226,478,-219,479,-247,482,-248,483,-245,484,-237,491,-27,492,-234,542,-102,553,-103,557,-197,563,-195,564,-194,565,-264,572});
states[467] = new State(new int[]{9,468,88,473});
states[468] = new State(new int[]{113,469,9,-222,10,-222,106,-222,88,-222,97,-222,80,-222,73,-222,72,-222,71,-222,70,-222,86,-222,89,-222,26,-222,92,-222,25,-222,2,-222,123,-222,74,-222,75,-222,12,-222,11,-222});
states[469] = new State(new int[]{8,471,129,23,74,25,75,26,69,28,67,29},new int[]{-246,470,-155,162,-120,164,-125,24,-126,27,-264,165});
states[470] = new State(-266);
states[471] = new State(new int[]{9,472});
states[472] = new State(-270);
states[473] = new State(new int[]{129,325,74,25,75,26,69,28,67,29,139,143,141,144,140,145,103,203,102,204,130,139,131,140,8,466,128,480,18,485,39,493,40,543,27,554,65,558,56,561,35,566,30,568},new int[]{-71,474,-243,475,-239,319,-155,320,-120,164,-125,24,-126,27,-81,449,-88,465,-89,464,-15,460,-174,461,-139,463,-141,137,-140,141,-226,478,-219,479,-247,482,-248,483,-245,484,-237,491,-27,492,-234,542,-102,553,-103,557,-197,563,-195,564,-194,565,-264,572});
states[474] = new State(-235);
states[475] = new State(new int[]{106,476,88,-236,9,-236});
states[476] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289},new int[]{-78,477,-86,120,-85,125,-87,176,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297,-211,298,-96,299});
states[477] = new State(-237);
states[478] = new State(-209);
states[479] = new State(-210);
states[480] = new State(new int[]{129,325,74,25,75,26,69,28,67,29,139,143,141,144,140,145,103,203,102,204,130,139,131,140,8,466,128,480,18,485,39,493,40,543,27,554,65,558,56,561,35,566,30,568},new int[]{-242,481,-243,318,-239,319,-155,320,-120,164,-125,24,-126,27,-81,449,-88,465,-89,464,-15,460,-174,461,-139,463,-141,137,-140,141,-226,478,-219,479,-247,482,-248,483,-245,484,-237,491,-27,492,-234,542,-102,553,-103,557,-197,563,-195,564,-194,565,-264,572});
states[481] = new State(-238);
states[482] = new State(-211);
states[483] = new State(-239);
states[484] = new State(-241);
states[485] = new State(new int[]{11,486,49,1024});
states[486] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,139,143,141,144,140,145,103,203,102,204,130,139,131,140,8,547,12,-253,88,-253},new int[]{-138,487,-238,1023,-239,1022,-155,546,-120,164,-125,24,-126,27,-81,449,-88,465,-89,464,-15,460,-174,461,-139,463,-141,137,-140,141});
states[487] = new State(new int[]{12,488,88,1020});
states[488] = new State(new int[]{49,489});
states[489] = new State(new int[]{129,325,74,25,75,26,69,28,67,29,139,143,141,144,140,145,103,203,102,204,130,139,131,140,8,466,128,480,18,485,39,493,40,543,27,554,65,558,56,561,35,566,30,568},new int[]{-243,490,-239,319,-155,320,-120,164,-125,24,-126,27,-81,449,-88,465,-89,464,-15,460,-174,461,-139,463,-141,137,-140,141,-226,478,-219,479,-247,482,-248,483,-245,484,-237,491,-27,492,-234,542,-102,553,-103,557,-197,563,-195,564,-194,565,-264,572});
states[490] = new State(-247);
states[491] = new State(-248);
states[492] = new State(-242);
states[493] = new State(new int[]{8,731,17,-289,11,-289,80,-289,73,-289,72,-289,71,-289,70,-289,22,-289,129,-289,74,-289,75,-289,69,-289,67,-289,53,-289,20,-289,35,-289,30,-289,23,-289,24,-289,37,-289},new int[]{-158,494});
states[494] = new State(new int[]{17,722,11,-296,80,-296,73,-296,72,-296,71,-296,70,-296,22,-296,129,-296,74,-296,75,-296,69,-296,67,-296,53,-296,20,-296,35,-296,30,-296,23,-296,24,-296,37,-296},new int[]{-278,495,-277,720,-276,742});
states[495] = new State(new int[]{11,597,80,-313,73,-313,72,-313,71,-313,70,-313,22,-195,129,-195,74,-195,75,-195,69,-195,67,-195,53,-195,20,-195,35,-195,30,-195,23,-195,24,-195,37,-195},new int[]{-21,496,-28,690,-30,500,-40,691,-5,692,-220,609,-29,986,-49,988,-48,506,-50,987});
states[496] = new State(new int[]{80,497,73,686,72,687,71,688,70,689},new int[]{-6,498});
states[497] = new State(-272);
states[498] = new State(new int[]{11,597,80,-313,73,-313,72,-313,71,-313,70,-313,22,-195,129,-195,74,-195,75,-195,69,-195,67,-195,53,-195,20,-195,35,-195,30,-195,23,-195,24,-195,37,-195},new int[]{-28,499,-30,500,-40,691,-5,692,-220,609,-29,986,-49,988,-48,506,-50,987});
states[499] = new State(-308);
states[500] = new State(new int[]{10,502,80,-319,73,-319,72,-319,71,-319,70,-319},new int[]{-165,501});
states[501] = new State(-314);
states[502] = new State(new int[]{11,597,80,-320,73,-320,72,-320,71,-320,70,-320,22,-195,129,-195,74,-195,75,-195,69,-195,67,-195,53,-195,20,-195,35,-195,30,-195,23,-195,24,-195,37,-195},new int[]{-40,503,-29,504,-5,692,-220,609,-49,988,-48,506,-50,987});
states[503] = new State(-322);
states[504] = new State(new int[]{11,597,80,-316,73,-316,72,-316,71,-316,70,-316,20,-195,35,-195,30,-195,23,-195,24,-195,37,-195},new int[]{-49,505,-48,506,-5,507,-220,609,-50,987});
states[505] = new State(-325);
states[506] = new State(-326);
states[507] = new State(new int[]{20,512,35,715,30,913,23,974,24,978,11,597,37,939},new int[]{-193,508,-220,509,-190,510,-228,511,-201,971,-199,631,-196,714,-200,912,-198,972,-186,982,-187,983,-189,984,-229,985});
states[508] = new State(-333);
states[509] = new State(-194);
states[510] = new State(-334);
states[511] = new State(-352);
states[512] = new State(new int[]{23,514,35,715,30,913,37,939},new int[]{-201,513,-187,629,-229,630,-199,631,-196,714,-200,912});
states[513] = new State(-337);
states[514] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,36,235,8,-347,10,-347},new int[]{-146,515,-145,611,-144,612,-115,613,-110,614,-107,615,-120,621,-125,24,-126,27,-166,622,-294,624,-122,628});
states[515] = new State(new int[]{8,529,10,-419},new int[]{-100,516});
states[516] = new State(new int[]{10,518},new int[]{-180,517});
states[517] = new State(-344);
states[518] = new State(new int[]{132,522,134,523,135,524,136,525,138,526,137,527,79,-631,50,-631,22,-631,58,-631,41,-631,44,-631,53,-631,11,-631,20,-631,35,-631,30,-631,23,-631,24,-631,37,-631,80,-631,73,-631,72,-631,71,-631,70,-631,17,-631,133,-631,95,-631,32,-631},new int[]{-179,519,-182,528});
states[519] = new State(new int[]{10,520});
states[520] = new State(new int[]{132,522,134,523,135,524,136,525,138,526,137,527,79,-632,50,-632,22,-632,58,-632,41,-632,44,-632,53,-632,11,-632,20,-632,35,-632,30,-632,23,-632,24,-632,37,-632,80,-632,73,-632,72,-632,71,-632,70,-632,17,-632,133,-632,95,-632,32,-632},new int[]{-182,521});
states[521] = new State(-636);
states[522] = new State(-646);
states[523] = new State(-647);
states[524] = new State(-648);
states[525] = new State(-649);
states[526] = new State(-650);
states[527] = new State(-651);
states[528] = new State(-635);
states[529] = new State(new int[]{9,530,11,597,129,-195,74,-195,75,-195,69,-195,67,-195,44,-195,22,-195,96,-195},new int[]{-101,531,-51,610,-5,535,-220,609});
states[530] = new State(-420);
states[531] = new State(new int[]{9,532,10,533});
states[532] = new State(-421);
states[533] = new State(new int[]{11,597,129,-195,74,-195,75,-195,69,-195,67,-195,44,-195,22,-195,96,-195},new int[]{-51,534,-5,535,-220,609});
states[534] = new State(-423);
states[535] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,44,581,22,587,96,593,11,597},new int[]{-261,536,-220,509,-133,537,-108,580,-120,579,-125,24,-126,27});
states[536] = new State(-424);
states[537] = new State(new int[]{5,538,88,577});
states[538] = new State(new int[]{129,325,74,25,75,26,69,28,67,29,139,143,141,144,140,145,103,203,102,204,130,139,131,140,8,466,128,480,18,485,39,493,40,543,27,554,65,558,56,561,35,566,30,568},new int[]{-242,539,-243,318,-239,319,-155,320,-120,164,-125,24,-126,27,-81,449,-88,465,-89,464,-15,460,-174,461,-139,463,-141,137,-140,141,-226,478,-219,479,-247,482,-248,483,-245,484,-237,491,-27,492,-234,542,-102,553,-103,557,-197,563,-195,564,-194,565,-264,572});
states[539] = new State(new int[]{97,540,9,-425,10,-425});
states[540] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,15,274,16,279,11,367,139,143,141,144,140,145,130,139,131,140,47,378,127,379,8,385,121,405,103,203,102,204,128,409},new int[]{-79,541,-74,333,-11,351,-9,359,-12,340,-120,360,-125,24,-126,27,-227,364,-260,365,-210,366,-15,376,-139,377,-141,137,-140,141,-174,407,-236,411,-212,412});
states[541] = new State(new int[]{13,329,9,-429,10,-429});
states[542] = new State(-243);
states[543] = new State(new int[]{49,544});
states[544] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,139,143,141,144,140,145,103,203,102,204,130,139,131,140,8,547},new int[]{-239,545,-155,546,-120,164,-125,24,-126,27,-81,449,-88,465,-89,464,-15,460,-174,461,-139,463,-141,137,-140,141});
states[545] = new State(-254);
states[546] = new State(new int[]{7,152,12,-220,88,-220,113,-220,9,-220,10,-220,106,-220,97,-220,80,-220,73,-220,72,-220,71,-220,70,-220,86,-220,89,-220,26,-220,92,-220,25,-220,2,-220,123,-220,74,-220,75,-220,11,-220,8,-227,105,-227,104,-227,117,-227,118,-227,119,-227,120,-227,116,-227,6,-227,103,-227,102,-227,114,-227,115,-227});
states[547] = new State(new int[]{129,325,74,25,75,26,69,28,67,29,139,143,141,144,140,145,103,203,102,204,130,139,131,140,8,466,128,480,18,485,39,493,40,543,27,554,65,558,56,561,35,566,30,568},new int[]{-73,548,-71,550,-243,475,-239,319,-155,320,-120,164,-125,24,-126,27,-81,449,-88,465,-89,464,-15,460,-174,461,-139,463,-141,137,-140,141,-226,478,-219,479,-247,482,-248,483,-245,484,-237,491,-27,492,-234,542,-102,553,-103,557,-197,563,-195,564,-194,565,-264,572});
states[548] = new State(new int[]{9,549,88,473});
states[549] = new State(-222);
states[550] = new State(new int[]{88,551});
states[551] = new State(new int[]{129,325,74,25,75,26,69,28,67,29,139,143,141,144,140,145,103,203,102,204,130,139,131,140,8,466,128,480,18,485,39,493,40,543,27,554,65,558,56,561,35,566,30,568},new int[]{-71,552,-243,475,-239,319,-155,320,-120,164,-125,24,-126,27,-81,449,-88,465,-89,464,-15,460,-174,461,-139,463,-141,137,-140,141,-226,478,-219,479,-247,482,-248,483,-245,484,-237,491,-27,492,-234,542,-102,553,-103,557,-197,563,-195,564,-194,565,-264,572});
states[552] = new State(-234);
states[553] = new State(-244);
states[554] = new State(new int[]{49,555,113,-256,9,-256,10,-256,106,-256,88,-256,97,-256,80,-256,73,-256,72,-256,71,-256,70,-256,86,-256,89,-256,26,-256,92,-256,25,-256,2,-256,123,-256,74,-256,75,-256,12,-256,11,-256});
states[555] = new State(new int[]{129,325,74,25,75,26,69,28,67,29,139,143,141,144,140,145,103,203,102,204,130,139,131,140,8,466,128,480,18,485,39,493,40,543,27,554,65,558,56,561,35,566,30,568},new int[]{-243,556,-239,319,-155,320,-120,164,-125,24,-126,27,-81,449,-88,465,-89,464,-15,460,-174,461,-139,463,-141,137,-140,141,-226,478,-219,479,-247,482,-248,483,-245,484,-237,491,-27,492,-234,542,-102,553,-103,557,-197,563,-195,564,-194,565,-264,572});
states[556] = new State(-255);
states[557] = new State(-245);
states[558] = new State(new int[]{49,559});
states[559] = new State(new int[]{129,23,74,25,75,26,69,28,67,29},new int[]{-246,560,-155,162,-120,164,-125,24,-126,27,-264,165});
states[560] = new State(-246);
states[561] = new State(new int[]{18,485,39,493,40,543,27,554,65,558},new int[]{-248,562,-245,484,-237,491,-27,492,-234,542,-102,553,-103,557});
states[562] = new State(-240);
states[563] = new State(-212);
states[564] = new State(-258);
states[565] = new State(-259);
states[566] = new State(new int[]{8,529,113,-419,9,-419,10,-419,106,-419,88,-419,97,-419,80,-419,73,-419,72,-419,71,-419,70,-419,86,-419,89,-419,26,-419,92,-419,25,-419,2,-419,123,-419,74,-419,75,-419,12,-419,11,-419},new int[]{-100,567});
states[567] = new State(-260);
states[568] = new State(new int[]{8,529,5,-419,113,-419,9,-419,10,-419,106,-419,88,-419,97,-419,80,-419,73,-419,72,-419,71,-419,70,-419,86,-419,89,-419,26,-419,92,-419,25,-419,2,-419,123,-419,74,-419,75,-419,12,-419,11,-419},new int[]{-100,569});
states[569] = new State(new int[]{5,570,113,-261,9,-261,10,-261,106,-261,88,-261,97,-261,80,-261,73,-261,72,-261,71,-261,70,-261,86,-261,89,-261,26,-261,92,-261,25,-261,2,-261,123,-261,74,-261,75,-261,12,-261,11,-261});
states[570] = new State(new int[]{129,325,74,25,75,26,69,28,67,29,139,143,141,144,140,145,103,203,102,204,130,139,131,140,8,466,128,480,18,485,39,493,40,543,27,554,65,558,56,561,35,566,30,568},new int[]{-242,571,-243,318,-239,319,-155,320,-120,164,-125,24,-126,27,-81,449,-88,465,-89,464,-15,460,-174,461,-139,463,-141,137,-140,141,-226,478,-219,479,-247,482,-248,483,-245,484,-237,491,-27,492,-234,542,-102,553,-103,557,-197,563,-195,564,-194,565,-264,572});
states[571] = new State(-262);
states[572] = new State(new int[]{113,573,9,-213,10,-213,106,-213,88,-213,97,-213,80,-213,73,-213,72,-213,71,-213,70,-213,86,-213,89,-213,26,-213,92,-213,25,-213,2,-213,123,-213,74,-213,75,-213,12,-213,11,-213});
states[573] = new State(new int[]{8,575,129,23,74,25,75,26,69,28,67,29},new int[]{-246,574,-155,162,-120,164,-125,24,-126,27,-264,165});
states[574] = new State(-264);
states[575] = new State(new int[]{9,576});
states[576] = new State(-268);
states[577] = new State(new int[]{129,23,74,25,75,26,69,28,67,29},new int[]{-108,578,-120,579,-125,24,-126,27});
states[578] = new State(-433);
states[579] = new State(-434);
states[580] = new State(-432);
states[581] = new State(new int[]{129,23,74,25,75,26,69,28,67,29},new int[]{-133,582,-108,580,-120,579,-125,24,-126,27});
states[582] = new State(new int[]{5,583,88,577});
states[583] = new State(new int[]{129,325,74,25,75,26,69,28,67,29,139,143,141,144,140,145,103,203,102,204,130,139,131,140,8,466,128,480,18,485,39,493,40,543,27,554,65,558,56,561,35,566,30,568},new int[]{-242,584,-243,318,-239,319,-155,320,-120,164,-125,24,-126,27,-81,449,-88,465,-89,464,-15,460,-174,461,-139,463,-141,137,-140,141,-226,478,-219,479,-247,482,-248,483,-245,484,-237,491,-27,492,-234,542,-102,553,-103,557,-197,563,-195,564,-194,565,-264,572});
states[584] = new State(new int[]{97,585,9,-426,10,-426});
states[585] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,15,274,16,279,11,367,139,143,141,144,140,145,130,139,131,140,47,378,127,379,8,385,121,405,103,203,102,204,128,409},new int[]{-79,586,-74,333,-11,351,-9,359,-12,340,-120,360,-125,24,-126,27,-227,364,-260,365,-210,366,-15,376,-139,377,-141,137,-140,141,-174,407,-236,411,-212,412});
states[586] = new State(new int[]{13,329,9,-430,10,-430});
states[587] = new State(new int[]{129,23,74,25,75,26,69,28,67,29},new int[]{-133,588,-108,580,-120,579,-125,24,-126,27});
states[588] = new State(new int[]{5,589,88,577});
states[589] = new State(new int[]{129,325,74,25,75,26,69,28,67,29,139,143,141,144,140,145,103,203,102,204,130,139,131,140,8,466,128,480,18,485,39,493,40,543,27,554,65,558,56,561,35,566,30,568},new int[]{-242,590,-243,318,-239,319,-155,320,-120,164,-125,24,-126,27,-81,449,-88,465,-89,464,-15,460,-174,461,-139,463,-141,137,-140,141,-226,478,-219,479,-247,482,-248,483,-245,484,-237,491,-27,492,-234,542,-102,553,-103,557,-197,563,-195,564,-194,565,-264,572});
states[590] = new State(new int[]{97,591,9,-427,10,-427});
states[591] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,15,274,16,279,11,367,139,143,141,144,140,145,130,139,131,140,47,378,127,379,8,385,121,405,103,203,102,204,128,409},new int[]{-79,592,-74,333,-11,351,-9,359,-12,340,-120,360,-125,24,-126,27,-227,364,-260,365,-210,366,-15,376,-139,377,-141,137,-140,141,-174,407,-236,411,-212,412});
states[592] = new State(new int[]{13,329,9,-431,10,-431});
states[593] = new State(new int[]{129,23,74,25,75,26,69,28,67,29},new int[]{-133,594,-108,580,-120,579,-125,24,-126,27});
states[594] = new State(new int[]{5,595,88,577});
states[595] = new State(new int[]{129,325,74,25,75,26,69,28,67,29,139,143,141,144,140,145,103,203,102,204,130,139,131,140,8,466,128,480,18,485,39,493,40,543,27,554,65,558,56,561,35,566,30,568},new int[]{-242,596,-243,318,-239,319,-155,320,-120,164,-125,24,-126,27,-81,449,-88,465,-89,464,-15,460,-174,461,-139,463,-141,137,-140,141,-226,478,-219,479,-247,482,-248,483,-245,484,-237,491,-27,492,-234,542,-102,553,-103,557,-197,563,-195,564,-194,565,-264,572});
states[596] = new State(-428);
states[597] = new State(new int[]{129,23,74,25,75,26,69,28,67,29},new int[]{-221,598,-7,608,-8,602,-155,603,-120,605,-125,24,-126,27});
states[598] = new State(new int[]{12,599,88,600});
states[599] = new State(-196);
states[600] = new State(new int[]{129,23,74,25,75,26,69,28,67,29},new int[]{-7,601,-8,602,-155,603,-120,605,-125,24,-126,27});
states[601] = new State(-198);
states[602] = new State(-199);
states[603] = new State(new int[]{7,152,8,231,12,-548,88,-548},new int[]{-63,604});
states[604] = new State(-599);
states[605] = new State(new int[]{5,606,7,-232,8,-232,12,-232,88,-232});
states[606] = new State(new int[]{129,23,74,25,75,26,69,28,67,29},new int[]{-8,607,-155,603,-120,164,-125,24,-126,27});
states[607] = new State(-200);
states[608] = new State(-197);
states[609] = new State(-193);
states[610] = new State(-422);
states[611] = new State(-346);
states[612] = new State(-397);
states[613] = new State(-398);
states[614] = new State(new int[]{8,-403,10,-403,97,-403,5,-403,7,-400});
states[615] = new State(new int[]{109,617,8,-406,10,-406,7,-406,97,-406,5,-406},new int[]{-129,616});
states[616] = new State(-407);
states[617] = new State(new int[]{129,23,74,25,75,26,69,28,67,29},new int[]{-132,618,-120,620,-125,24,-126,27});
states[618] = new State(new int[]{107,619,88,314});
states[619] = new State(-295);
states[620] = new State(-317);
states[621] = new State(-408);
states[622] = new State(new int[]{109,617,8,-404,10,-404,97,-404,5,-404},new int[]{-129,623});
states[623] = new State(-405);
states[624] = new State(new int[]{7,625});
states[625] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,36,235},new int[]{-115,626,-122,627,-110,614,-107,615,-120,621,-125,24,-126,27,-166,622});
states[626] = new State(-399);
states[627] = new State(-402);
states[628] = new State(-401);
states[629] = new State(-390);
states[630] = new State(-354);
states[631] = new State(new int[]{11,-340,20,-340,35,-340,30,-340,23,-340,24,-340,37,-340,80,-340,73,-340,72,-340,71,-340,70,-340,50,-61,22,-61,58,-61,41,-61,44,-61,53,-61,79,-61},new int[]{-151,632,-39,633,-35,636});
states[632] = new State(-391);
states[633] = new State(new int[]{79,110},new int[]{-225,634});
states[634] = new State(new int[]{10,635});
states[635] = new State(-418);
states[636] = new State(new int[]{50,639,22,663,58,667,41,1010,44,1016,53,1018,79,-60},new int[]{-41,637,-142,638,-25,648,-47,665,-254,669,-271,1012});
states[637] = new State(-62);
states[638] = new State(-78);
states[639] = new State(new int[]{139,644,140,645,129,23,74,25,75,26,69,28,67,29},new int[]{-130,640,-116,647,-120,646,-125,24,-126,27});
states[640] = new State(new int[]{10,641,88,642});
states[641] = new State(-87);
states[642] = new State(new int[]{139,644,140,645,129,23,74,25,75,26,69,28,67,29},new int[]{-116,643,-120,646,-125,24,-126,27});
states[643] = new State(-89);
states[644] = new State(-90);
states[645] = new State(-91);
states[646] = new State(-92);
states[647] = new State(-88);
states[648] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,50,-79,22,-79,58,-79,41,-79,44,-79,53,-79,79,-79},new int[]{-23,649,-24,650,-114,652,-120,662,-125,24,-126,27});
states[649] = new State(-94);
states[650] = new State(new int[]{10,651});
states[651] = new State(-102);
states[652] = new State(new int[]{106,653,5,658});
states[653] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,15,274,16,279,11,367,139,143,141,144,140,145,130,139,131,140,47,378,127,379,8,656,121,405,103,203,102,204,128,409},new int[]{-91,654,-79,655,-74,333,-11,351,-9,359,-12,340,-120,360,-125,24,-126,27,-227,364,-260,365,-210,366,-15,376,-139,377,-141,137,-140,141,-174,407,-236,411,-212,412,-83,657});
states[654] = new State(-103);
states[655] = new State(new int[]{13,329,10,-105,80,-105,73,-105,72,-105,71,-105,70,-105});
states[656] = new State(new int[]{9,387,129,23,74,25,75,26,69,28,67,228,15,274,16,279,11,367,139,143,141,144,140,145,130,139,131,140,47,378,127,379,8,395,121,405,103,203,102,204,128,409,54,147},new int[]{-79,386,-60,396,-213,398,-83,400,-74,333,-11,351,-9,359,-12,340,-120,360,-125,24,-126,27,-227,364,-260,365,-210,366,-15,376,-139,377,-141,137,-140,141,-174,407,-236,411,-212,412,-59,413,-77,422,-76,416,-148,420,-52,421});
states[657] = new State(-106);
states[658] = new State(new int[]{129,325,74,25,75,26,69,28,67,29,139,143,141,144,140,145,103,203,102,204,130,139,131,140,8,466,128,480,18,485,39,493,40,543,27,554,65,558,56,561,35,566,30,568},new int[]{-243,659,-239,319,-155,320,-120,164,-125,24,-126,27,-81,449,-88,465,-89,464,-15,460,-174,461,-139,463,-141,137,-140,141,-226,478,-219,479,-247,482,-248,483,-245,484,-237,491,-27,492,-234,542,-102,553,-103,557,-197,563,-195,564,-194,565,-264,572});
states[659] = new State(new int[]{106,660});
states[660] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,15,274,16,279,11,367,139,143,141,144,140,145,130,139,131,140,47,378,127,379,8,395,121,405,103,203,102,204,128,409},new int[]{-76,661,-79,417,-74,333,-11,351,-9,359,-12,340,-120,360,-125,24,-126,27,-227,364,-260,365,-210,366,-15,376,-139,377,-141,137,-140,141,-174,407,-236,411,-212,412,-83,418,-213,419});
states[661] = new State(-104);
states[662] = new State(-107);
states[663] = new State(new int[]{129,23,74,25,75,26,69,28,67,29},new int[]{-23,664,-24,650,-114,652,-120,662,-125,24,-126,27});
states[664] = new State(-93);
states[665] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,50,-80,22,-80,58,-80,41,-80,44,-80,53,-80,79,-80},new int[]{-23,666,-24,650,-114,652,-120,662,-125,24,-126,27});
states[666] = new State(-96);
states[667] = new State(new int[]{129,23,74,25,75,26,69,28,67,29},new int[]{-23,668,-24,650,-114,652,-120,662,-125,24,-126,27});
states[668] = new State(-95);
states[669] = new State(new int[]{11,597,50,-81,22,-81,58,-81,41,-81,44,-81,53,-81,79,-81,129,-195,74,-195,75,-195,69,-195,67,-195},new int[]{-44,670,-5,671,-220,609});
states[670] = new State(-98);
states[671] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,11,597},new int[]{-45,672,-220,509,-117,673,-120,1002,-125,24,-126,27,-118,1007});
states[672] = new State(-192);
states[673] = new State(new int[]{106,674});
states[674] = new State(new int[]{129,325,74,25,75,26,69,28,67,29,139,143,141,144,140,145,103,203,102,204,130,139,131,140,8,466,128,480,18,485,39,493,40,543,27,554,65,558,56,561,35,566,30,568,60,997,61,998,132,999,21,1000,20,-277,34,-277,55,-277},new int[]{-252,675,-243,677,-239,319,-155,320,-120,164,-125,24,-126,27,-81,449,-88,465,-89,464,-15,460,-174,461,-139,463,-141,137,-140,141,-226,478,-219,479,-247,482,-248,483,-245,484,-237,491,-27,492,-234,542,-102,553,-103,557,-197,563,-195,564,-194,565,-264,572,-26,678,-19,679,-20,995,-18,1001});
states[675] = new State(new int[]{10,676});
states[676] = new State(-201);
states[677] = new State(-206);
states[678] = new State(-207);
states[679] = new State(new int[]{20,989,34,990,55,991},new int[]{-256,680});
states[680] = new State(new int[]{8,731,17,-289,11,-289,80,-289,73,-289,72,-289,71,-289,70,-289,22,-289,129,-289,74,-289,75,-289,69,-289,67,-289,53,-289,20,-289,35,-289,30,-289,23,-289,24,-289,37,-289,10,-289},new int[]{-158,681});
states[681] = new State(new int[]{17,722,11,-296,80,-296,73,-296,72,-296,71,-296,70,-296,22,-296,129,-296,74,-296,75,-296,69,-296,67,-296,53,-296,20,-296,35,-296,30,-296,23,-296,24,-296,37,-296,10,-296},new int[]{-278,682,-277,720,-276,742});
states[682] = new State(new int[]{11,597,10,-287,80,-313,73,-313,72,-313,71,-313,70,-313,22,-195,129,-195,74,-195,75,-195,69,-195,67,-195,53,-195,20,-195,35,-195,30,-195,23,-195,24,-195,37,-195},new int[]{-22,683,-21,684,-28,690,-30,500,-40,691,-5,692,-220,609,-29,986,-49,988,-48,506,-50,987});
states[683] = new State(-271);
states[684] = new State(new int[]{80,685,73,686,72,687,71,688,70,689},new int[]{-6,498});
states[685] = new State(-288);
states[686] = new State(-309);
states[687] = new State(-310);
states[688] = new State(-311);
states[689] = new State(-312);
states[690] = new State(-307);
states[691] = new State(-321);
states[692] = new State(new int[]{22,694,129,23,74,25,75,26,69,28,67,29,53,708,20,712,11,597,35,715,30,913,23,974,24,978,37,939},new int[]{-46,693,-220,509,-193,508,-190,510,-228,511,-274,696,-273,697,-132,698,-120,620,-125,24,-126,27,-201,971,-199,631,-196,714,-200,912,-198,972,-186,982,-187,983,-189,984,-229,985});
states[693] = new State(-323);
states[694] = new State(new int[]{129,23,74,25,75,26,69,28,67,29},new int[]{-24,695,-114,652,-120,662,-125,24,-126,27});
states[695] = new State(-328);
states[696] = new State(-329);
states[697] = new State(-331);
states[698] = new State(new int[]{5,699,88,314,97,706});
states[699] = new State(new int[]{129,325,74,25,75,26,69,28,67,29,139,143,141,144,140,145,103,203,102,204,130,139,131,140,8,466,128,480,18,485,39,493,40,543,27,554,65,558,56,561,35,566,30,568},new int[]{-243,700,-239,319,-155,320,-120,164,-125,24,-126,27,-81,449,-88,465,-89,464,-15,460,-174,461,-139,463,-141,137,-140,141,-226,478,-219,479,-247,482,-248,483,-245,484,-237,491,-27,492,-234,542,-102,553,-103,557,-197,563,-195,564,-194,565,-264,572});
states[700] = new State(new int[]{97,704,106,705,10,-373,80,-373,73,-373,72,-373,71,-373,70,-373,86,-373,89,-373,26,-373,92,-373,25,-373,2,-373},new int[]{-297,701});
states[701] = new State(new int[]{129,23,74,25,75,26,69,28,67,228,15,274,16,279,11,367,139,143,141,144,140,145,130,139,131,140,47,378,127,379,8,395,121,405,103,203,102,204,128,409,54,147,30,285,35,289},new int[]{-77,702,-284,703,-76,416,-79,417,-74,333,-11,351,-9,359,-12,340,-120,360,-125,24,-126,27,-227,364,-260,365,-210,366,-15,376,-139,377,-141,137,-140,141,-174,407,-236,411,-212,412,-83,418,-213,419,-148,420,-52,421});
states[702] = new State(-375);
states[703] = new State(-376);
states[704] = new State(-371);
states[705] = new State(-372);
states[706] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289},new int[]{-78,707,-86,120,-85,125,-87,176,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297,-211,298,-96,299});
states[707] = new State(-374);
states[708] = new State(new int[]{129,23,74,25,75,26,69,28,67,29},new int[]{-132,709,-120,620,-125,24,-126,27});
states[709] = new State(new int[]{5,710,88,314});
states[710] = new State(new int[]{129,325,74,25,75,26,69,28,67,29,139,143,141,144,140,145,103,203,102,204,130,139,131,140,8,466,128,480,18,485,39,493,40,543,27,554,65,558,56,561,35,566,30,568},new int[]{-243,711,-239,319,-155,320,-120,164,-125,24,-126,27,-81,449,-88,465,-89,464,-15,460,-174,461,-139,463,-141,137,-140,141,-226,478,-219,479,-247,482,-248,483,-245,484,-237,491,-27,492,-234,542,-102,553,-103,557,-197,563,-195,564,-194,565,-264,572});
states[711] = new State(-332);
states[712] = new State(new int[]{23,514,129,23,74,25,75,26,69,28,67,29,53,708,35,715,30,913,37,939},new int[]{-274,713,-201,513,-187,629,-229,630,-273,697,-132,698,-120,620,-125,24,-126,27,-199,631,-196,714,-200,912});
states[713] = new State(-330);
states[714] = new State(-341);
states[715] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,36,235},new int[]{-145,716,-144,612,-115,613,-110,614,-107,615,-120,621,-125,24,-126,27,-166,622,-294,624,-122,628});
states[716] = new State(new int[]{8,529,10,-419,97,-419},new int[]{-100,717});
states[717] = new State(new int[]{10,910,97,-633},new int[]{-180,718,-181,743});
states[718] = new State(new int[]{17,722,79,-296,50,-296,22,-296,58,-296,41,-296,44,-296,53,-296,11,-296,20,-296,35,-296,30,-296,23,-296,24,-296,37,-296,80,-296,73,-296,72,-296,71,-296,70,-296,133,-296,95,-296,32,-296},new int[]{-278,719,-277,720,-276,742});
states[719] = new State(-409);
states[720] = new State(new int[]{17,722,11,-297,80,-297,73,-297,72,-297,71,-297,70,-297,22,-297,129,-297,74,-297,75,-297,69,-297,67,-297,53,-297,20,-297,35,-297,30,-297,23,-297,24,-297,37,-297,10,-297,79,-297,50,-297,58,-297,41,-297,44,-297,133,-297,95,-297,32,-297},new int[]{-276,721});
states[721] = new State(-299);
states[722] = new State(new int[]{129,23,74,25,75,26,69,28,67,29},new int[]{-132,723,-120,620,-125,24,-126,27});
states[723] = new State(new int[]{5,724,88,314});
states[724] = new State(new int[]{129,325,74,25,75,26,69,28,67,29,139,143,141,144,140,145,103,203,102,204,130,139,131,140,8,466,128,480,18,485,39,730,40,543,27,554,65,558,56,561,35,566,30,568,20,739,23,740},new int[]{-253,725,-250,741,-243,729,-239,319,-155,320,-120,164,-125,24,-126,27,-81,449,-88,465,-89,464,-15,460,-174,461,-139,463,-141,137,-140,141,-226,478,-219,479,-247,482,-248,483,-245,484,-237,491,-27,492,-234,542,-102,553,-103,557,-197,563,-195,564,-194,565,-264,572});
states[725] = new State(new int[]{10,726,88,727});
states[726] = new State(-300);
states[727] = new State(new int[]{129,325,74,25,75,26,69,28,67,29,139,143,141,144,140,145,103,203,102,204,130,139,131,140,8,466,128,480,18,485,39,730,40,543,27,554,65,558,56,561,35,566,30,568,20,739,23,740},new int[]{-250,728,-243,729,-239,319,-155,320,-120,164,-125,24,-126,27,-81,449,-88,465,-89,464,-15,460,-174,461,-139,463,-141,137,-140,141,-226,478,-219,479,-247,482,-248,483,-245,484,-237,491,-27,492,-234,542,-102,553,-103,557,-197,563,-195,564,-194,565,-264,572});
states[728] = new State(-302);
states[729] = new State(-303);
states[730] = new State(new int[]{8,731,10,-305,88,-305,17,-289,11,-289,80,-289,73,-289,72,-289,71,-289,70,-289,22,-289,129,-289,74,-289,75,-289,69,-289,67,-289,53,-289,20,-289,35,-289,30,-289,23,-289,24,-289,37,-289},new int[]{-158,494});
states[731] = new State(new int[]{129,23,74,25,75,26,69,28,67,29},new int[]{-157,732,-156,738,-155,736,-120,164,-125,24,-126,27,-264,737});
states[732] = new State(new int[]{9,733,88,734});
states[733] = new State(-290);
states[734] = new State(new int[]{129,23,74,25,75,26,69,28,67,29},new int[]{-156,735,-155,736,-120,164,-125,24,-126,27,-264,737});
states[735] = new State(-292);
states[736] = new State(new int[]{7,152,109,157,9,-293,88,-293},new int[]{-263,163});
states[737] = new State(-294);
states[738] = new State(-291);
states[739] = new State(-304);
states[740] = new State(-306);
states[741] = new State(-301);
states[742] = new State(-298);
states[743] = new State(new int[]{97,744});
states[744] = new State(new int[]{127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,748,8,749,15,274,16,279,130,139,131,140,139,767,141,144,140,768,48,771,79,110,31,775,19,782,85,794,45,800,28,805,46,815,90,821,38,828,29,831,44,839,51,845,64,850,66,854,10,-443},new int[]{-232,745,-231,115,-3,116,-94,117,-104,208,-93,217,-120,747,-125,24,-126,27,-166,234,-227,273,-260,278,-14,300,-139,136,-141,137,-140,141,-15,142,-183,769,-105,770,-225,773,-127,774,-31,781,-217,793,-279,799,-98,804,-280,814,-134,819,-265,820,-218,827,-97,830,-275,838,-53,841,-149,842,-148,843,-143,844,-106,849,-99,853,-116,856});
states[745] = new State(new int[]{10,746});
states[746] = new State(-394);
states[747] = new State(new int[]{11,-604,8,-604,7,-604,128,-604,4,-604,97,-604,98,-604,99,-604,100,-604,101,-604,80,-604,10,-604,86,-604,89,-604,26,-604,92,-604,25,-604,5,-92});
states[748] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,80,-505,10,-505,86,-505,89,-505,26,-505,92,-505,25,-505},new int[]{-120,265,-125,24,-126,27});
states[749] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289},new int[]{-78,267,-93,750,-86,120,-85,125,-87,176,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297,-211,298,-96,299});
states[750] = new State(new int[]{88,751,11,211,8,218,7,758,128,763,4,764,105,-596,104,-596,117,-596,118,-596,119,-596,120,-596,116,-596,122,-596,124,-596,5,-596,103,-596,102,-596,114,-596,115,-596,112,-596,14,-596,106,-596,111,-596,109,-596,107,-596,110,-596,108,-596,123,-596,13,-596,9,-596},new int[]{-13,210});
states[751] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,36,235,33,264,8,295,15,274,16,279,130,139,131,140,139,143,141,144,140,145},new int[]{-296,752,-93,766,-120,294,-125,24,-126,27,-166,234,-227,273,-260,278,-14,300,-139,136,-141,137,-140,141,-15,142});
states[752] = new State(new int[]{9,753,88,756});
states[753] = new State(new int[]{97,259,98,260,99,261,100,262,101,263},new int[]{-169,754});
states[754] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289},new int[]{-78,755,-86,120,-85,125,-87,176,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297,-211,298,-96,299});
states[755] = new State(-467);
states[756] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,36,235,33,264,8,295,15,274,16,279,130,139,131,140,139,143,141,144,140,145},new int[]{-93,757,-120,294,-125,24,-126,27,-166,234,-227,273,-260,278,-14,300,-139,136,-141,137,-140,141,-15,142});
states[757] = new State(new int[]{11,211,8,218,7,758,128,763,4,764,9,-469,88,-469},new int[]{-13,210});
states[758] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,73,32,72,33,71,34,70,35,60,36,55,37,114,38,16,39,15,40,54,41,17,42,115,43,116,44,117,45,118,46,119,47,120,48,121,49,122,50,123,51,124,52,18,53,65,54,79,55,19,56,20,57,22,58,23,59,24,60,63,61,87,62,25,63,26,64,27,65,21,66,92,67,89,68,28,69,29,70,30,71,31,72,32,73,33,74,91,75,34,76,35,77,37,78,38,79,39,80,85,81,40,82,90,83,41,84,42,85,62,86,86,87,43,88,44,89,45,90,46,91,47,92,48,93,49,94,50,95,52,96,93,97,94,98,95,99,96,100,36,235},new int[]{-121,759,-120,760,-125,24,-126,27,-258,761,-124,31,-166,762});
states[759] = new State(-614);
states[760] = new State(-643);
states[761] = new State(-644);
states[762] = new State(-645);
states[763] = new State(-615);
states[764] = new State(new int[]{109,157},new int[]{-263,765});
states[765] = new State(-616);
states[766] = new State(new int[]{11,211,8,218,7,758,128,763,4,764,9,-468,88,-468},new int[]{-13,210});
states[767] = new State(new int[]{7,-172,5,-90});
states[768] = new State(new int[]{7,-174,5,-91});
states[769] = new State(-445);
states[770] = new State(-446);
states[771] = new State(new int[]{139,644,140,645,129,23,74,25,75,26,69,28,67,29},new int[]{-116,772,-120,646,-125,24,-126,27});
states[772] = new State(-471);
states[773] = new State(-447);
states[774] = new State(-448);
states[775] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289},new int[]{-78,776,-86,120,-85,125,-87,176,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297,-211,298,-96,299});
states[776] = new State(new int[]{42,777});
states[777] = new State(new int[]{127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,748,8,749,15,274,16,279,130,139,131,140,139,767,141,144,140,768,48,771,79,110,31,775,19,782,85,794,45,800,28,805,46,815,90,821,38,828,29,831,44,839,51,845,64,850,66,854,25,-443,80,-443,10,-443,86,-443,89,-443,26,-443,92,-443},new int[]{-232,778,-231,115,-3,116,-94,117,-104,208,-93,217,-120,747,-125,24,-126,27,-166,234,-227,273,-260,278,-14,300,-139,136,-141,137,-140,141,-15,142,-183,769,-105,770,-225,773,-127,774,-31,781,-217,793,-279,799,-98,804,-280,814,-134,819,-265,820,-218,827,-97,830,-275,838,-53,841,-149,842,-148,843,-143,844,-106,849,-99,853,-116,856});
states[778] = new State(new int[]{25,779,80,-475,10,-475,86,-475,89,-475,26,-475,92,-475});
states[779] = new State(new int[]{127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,748,8,749,15,274,16,279,130,139,131,140,139,767,141,144,140,768,48,771,79,110,31,775,19,782,85,794,45,800,28,805,46,815,90,821,38,828,29,831,44,839,51,845,64,850,66,854,25,-443,80,-443,10,-443,86,-443,89,-443,26,-443,92,-443},new int[]{-232,780,-231,115,-3,116,-94,117,-104,208,-93,217,-120,747,-125,24,-126,27,-166,234,-227,273,-260,278,-14,300,-139,136,-141,137,-140,141,-15,142,-183,769,-105,770,-225,773,-127,774,-31,781,-217,793,-279,799,-98,804,-280,814,-134,819,-265,820,-218,827,-97,830,-275,838,-53,841,-149,842,-148,843,-143,844,-106,849,-99,853,-116,856});
states[780] = new State(-476);
states[781] = new State(-449);
states[782] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289},new int[]{-78,783,-86,120,-85,125,-87,176,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297,-211,298,-96,299});
states[783] = new State(new int[]{49,784});
states[784] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,15,274,16,279,11,367,139,143,141,144,140,145,130,139,131,140,47,378,127,379,8,385,121,405,103,203,102,204,128,409,10,-480,25,-480,80,-480},new int[]{-32,785,-233,909,-67,790,-92,906,-82,905,-79,373,-74,333,-11,351,-9,359,-12,340,-120,360,-125,24,-126,27,-227,364,-260,365,-210,366,-15,376,-139,377,-141,137,-140,141,-174,407,-236,411,-212,412});
states[785] = new State(new int[]{10,788,25,907,80,-485},new int[]{-223,786});
states[786] = new State(new int[]{80,787});
states[787] = new State(-477);
states[788] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,15,274,16,279,11,367,139,143,141,144,140,145,130,139,131,140,47,378,127,379,8,385,121,405,103,203,102,204,128,409,10,-480,25,-480,80,-480},new int[]{-233,789,-67,790,-92,906,-82,905,-79,373,-74,333,-11,351,-9,359,-12,340,-120,360,-125,24,-126,27,-227,364,-260,365,-210,366,-15,376,-139,377,-141,137,-140,141,-174,407,-236,411,-212,412});
states[789] = new State(-479);
states[790] = new State(new int[]{5,791,88,903});
states[791] = new State(new int[]{127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,748,8,749,15,274,16,279,130,139,131,140,139,767,141,144,140,768,48,771,79,110,31,775,19,782,85,794,45,800,28,805,46,815,90,821,38,828,29,831,44,839,51,845,64,850,66,854,10,-443,25,-443,80,-443},new int[]{-232,792,-231,115,-3,116,-94,117,-104,208,-93,217,-120,747,-125,24,-126,27,-166,234,-227,273,-260,278,-14,300,-139,136,-141,137,-140,141,-15,142,-183,769,-105,770,-225,773,-127,774,-31,781,-217,793,-279,799,-98,804,-280,814,-134,819,-265,820,-218,827,-97,830,-275,838,-53,841,-149,842,-148,843,-143,844,-106,849,-99,853,-116,856});
states[792] = new State(-481);
states[793] = new State(-450);
states[794] = new State(new int[]{127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,748,8,749,15,274,16,279,130,139,131,140,139,767,141,144,140,768,48,771,79,110,31,775,19,782,85,794,45,800,28,805,46,815,90,821,38,828,29,831,44,839,51,845,64,850,66,854,86,-443,10,-443},new int[]{-222,795,-232,798,-231,115,-3,116,-94,117,-104,208,-93,217,-120,747,-125,24,-126,27,-166,234,-227,273,-260,278,-14,300,-139,136,-141,137,-140,141,-15,142,-183,769,-105,770,-225,773,-127,774,-31,781,-217,793,-279,799,-98,804,-280,814,-134,819,-265,820,-218,827,-97,830,-275,838,-53,841,-149,842,-148,843,-143,844,-106,849,-99,853,-116,856});
states[795] = new State(new int[]{86,796,10,113});
states[796] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289},new int[]{-78,797,-86,120,-85,125,-87,176,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297,-211,298,-96,299});
states[797] = new State(-487);
states[798] = new State(-473);
states[799] = new State(-451);
states[800] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289},new int[]{-78,801,-86,120,-85,125,-87,176,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297,-211,298,-96,299});
states[801] = new State(new int[]{87,895,127,-490,129,-490,74,-490,75,-490,69,-490,67,-490,36,-490,33,-490,8,-490,15,-490,16,-490,130,-490,131,-490,139,-490,141,-490,140,-490,48,-490,79,-490,31,-490,19,-490,85,-490,45,-490,28,-490,46,-490,90,-490,38,-490,29,-490,44,-490,51,-490,64,-490,66,-490,80,-490,10,-490,86,-490,89,-490,26,-490,92,-490,25,-490},new int[]{-257,802});
states[802] = new State(new int[]{127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,748,8,749,15,274,16,279,130,139,131,140,139,767,141,144,140,768,48,771,79,110,31,775,19,782,85,794,45,800,28,805,46,815,90,821,38,828,29,831,44,839,51,845,64,850,66,854,25,-443,80,-443,10,-443,86,-443,89,-443,26,-443,92,-443},new int[]{-232,803,-231,115,-3,116,-94,117,-104,208,-93,217,-120,747,-125,24,-126,27,-166,234,-227,273,-260,278,-14,300,-139,136,-141,137,-140,141,-15,142,-183,769,-105,770,-225,773,-127,774,-31,781,-217,793,-279,799,-98,804,-280,814,-134,819,-265,820,-218,827,-97,830,-275,838,-53,841,-149,842,-148,843,-143,844,-106,849,-99,853,-116,856});
states[803] = new State(-488);
states[804] = new State(-452);
states[805] = new State(new int[]{44,902,129,-499,74,-499,75,-499,69,-499,67,-499},new int[]{-17,806});
states[806] = new State(new int[]{129,23,74,25,75,26,69,28,67,29},new int[]{-120,807,-125,24,-126,27});
states[807] = new State(new int[]{97,898,5,899},new int[]{-251,808});
states[808] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289},new int[]{-78,809,-86,120,-85,125,-87,176,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297,-211,298,-96,299});
states[809] = new State(new int[]{62,896,63,897},new int[]{-95,810});
states[810] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289},new int[]{-78,811,-86,120,-85,125,-87,176,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297,-211,298,-96,299});
states[811] = new State(new int[]{87,895,127,-490,129,-490,74,-490,75,-490,69,-490,67,-490,36,-490,33,-490,8,-490,15,-490,16,-490,130,-490,131,-490,139,-490,141,-490,140,-490,48,-490,79,-490,31,-490,19,-490,85,-490,45,-490,28,-490,46,-490,90,-490,38,-490,29,-490,44,-490,51,-490,64,-490,66,-490,80,-490,10,-490,86,-490,89,-490,26,-490,92,-490,25,-490},new int[]{-257,812});
states[812] = new State(new int[]{127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,748,8,749,15,274,16,279,130,139,131,140,139,767,141,144,140,768,48,771,79,110,31,775,19,782,85,794,45,800,28,805,46,815,90,821,38,828,29,831,44,839,51,845,64,850,66,854,25,-443,80,-443,10,-443,86,-443,89,-443,26,-443,92,-443},new int[]{-232,813,-231,115,-3,116,-94,117,-104,208,-93,217,-120,747,-125,24,-126,27,-166,234,-227,273,-260,278,-14,300,-139,136,-141,137,-140,141,-15,142,-183,769,-105,770,-225,773,-127,774,-31,781,-217,793,-279,799,-98,804,-280,814,-134,819,-265,820,-218,827,-97,830,-275,838,-53,841,-149,842,-148,843,-143,844,-106,849,-99,853,-116,856});
states[813] = new State(-497);
states[814] = new State(-453);
states[815] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289},new int[]{-64,816,-78,222,-86,120,-85,125,-87,176,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297,-211,298,-96,299});
states[816] = new State(new int[]{87,817,88,214});
states[817] = new State(new int[]{127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,748,8,749,15,274,16,279,130,139,131,140,139,767,141,144,140,768,48,771,79,110,31,775,19,782,85,794,45,800,28,805,46,815,90,821,38,828,29,831,44,839,51,845,64,850,66,854,25,-443,80,-443,10,-443,86,-443,89,-443,26,-443,92,-443},new int[]{-232,818,-231,115,-3,116,-94,117,-104,208,-93,217,-120,747,-125,24,-126,27,-166,234,-227,273,-260,278,-14,300,-139,136,-141,137,-140,141,-15,142,-183,769,-105,770,-225,773,-127,774,-31,781,-217,793,-279,799,-98,804,-280,814,-134,819,-265,820,-218,827,-97,830,-275,838,-53,841,-149,842,-148,843,-143,844,-106,849,-99,853,-116,856});
states[818] = new State(-504);
states[819] = new State(-454);
states[820] = new State(-455);
states[821] = new State(new int[]{127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,748,8,749,15,274,16,279,130,139,131,140,139,767,141,144,140,768,48,771,79,110,31,775,19,782,85,794,45,800,28,805,46,815,90,821,38,828,29,831,44,839,51,845,64,850,66,854,10,-443,89,-443,26,-443},new int[]{-222,822,-232,798,-231,115,-3,116,-94,117,-104,208,-93,217,-120,747,-125,24,-126,27,-166,234,-227,273,-260,278,-14,300,-139,136,-141,137,-140,141,-15,142,-183,769,-105,770,-225,773,-127,774,-31,781,-217,793,-279,799,-98,804,-280,814,-134,819,-265,820,-218,827,-97,830,-275,838,-53,841,-149,842,-148,843,-143,844,-106,849,-99,853,-116,856});
states[822] = new State(new int[]{10,113,89,824,26,873},new int[]{-255,823});
states[823] = new State(-506);
states[824] = new State(new int[]{127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,748,8,749,15,274,16,279,130,139,131,140,139,767,141,144,140,768,48,771,79,110,31,775,19,782,85,794,45,800,28,805,46,815,90,821,38,828,29,831,44,839,51,845,64,850,66,854,80,-443,10,-443},new int[]{-222,825,-232,798,-231,115,-3,116,-94,117,-104,208,-93,217,-120,747,-125,24,-126,27,-166,234,-227,273,-260,278,-14,300,-139,136,-141,137,-140,141,-15,142,-183,769,-105,770,-225,773,-127,774,-31,781,-217,793,-279,799,-98,804,-280,814,-134,819,-265,820,-218,827,-97,830,-275,838,-53,841,-149,842,-148,843,-143,844,-106,849,-99,853,-116,856});
states[825] = new State(new int[]{80,826,10,113});
states[826] = new State(-507);
states[827] = new State(-456);
states[828] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289,80,-521,10,-521,86,-521,89,-521,26,-521,92,-521,25,-521},new int[]{-78,829,-86,120,-85,125,-87,176,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297,-211,298,-96,299});
states[829] = new State(-522);
states[830] = new State(-457);
states[831] = new State(new int[]{44,861,129,23,74,25,75,26,69,28,67,29},new int[]{-120,832,-125,24,-126,27});
states[832] = new State(new int[]{5,859,123,-496},new int[]{-241,833});
states[833] = new State(new int[]{123,834});
states[834] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289},new int[]{-78,835,-86,120,-85,125,-87,176,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297,-211,298,-96,299});
states[835] = new State(new int[]{87,836});
states[836] = new State(new int[]{127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,748,8,749,15,274,16,279,130,139,131,140,139,767,141,144,140,768,48,771,79,110,31,775,19,782,85,794,45,800,28,805,46,815,90,821,38,828,29,831,44,839,51,845,64,850,66,854,25,-443,80,-443,10,-443,86,-443,89,-443,26,-443,92,-443},new int[]{-232,837,-231,115,-3,116,-94,117,-104,208,-93,217,-120,747,-125,24,-126,27,-166,234,-227,273,-260,278,-14,300,-139,136,-141,137,-140,141,-15,142,-183,769,-105,770,-225,773,-127,774,-31,781,-217,793,-279,799,-98,804,-280,814,-134,819,-265,820,-218,827,-97,830,-275,838,-53,841,-149,842,-148,843,-143,844,-106,849,-99,853,-116,856});
states[837] = new State(-492);
states[838] = new State(-458);
states[839] = new State(new int[]{129,23,74,25,75,26,69,28,67,29},new int[]{-273,840,-132,698,-120,620,-125,24,-126,27});
states[840] = new State(-465);
states[841] = new State(-459);
states[842] = new State(-525);
states[843] = new State(-526);
states[844] = new State(-460);
states[845] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289},new int[]{-78,846,-86,120,-85,125,-87,176,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297,-211,298,-96,299});
states[846] = new State(new int[]{87,847});
states[847] = new State(new int[]{127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,748,8,749,15,274,16,279,130,139,131,140,139,767,141,144,140,768,48,771,79,110,31,775,19,782,85,794,45,800,28,805,46,815,90,821,38,828,29,831,44,839,51,845,64,850,66,854,25,-443,80,-443,10,-443,86,-443,89,-443,26,-443,92,-443},new int[]{-232,848,-231,115,-3,116,-94,117,-104,208,-93,217,-120,747,-125,24,-126,27,-166,234,-227,273,-260,278,-14,300,-139,136,-141,137,-140,141,-15,142,-183,769,-105,770,-225,773,-127,774,-31,781,-217,793,-279,799,-98,804,-280,814,-134,819,-265,820,-218,827,-97,830,-275,838,-53,841,-149,842,-148,843,-143,844,-106,849,-99,853,-116,856});
states[848] = new State(-491);
states[849] = new State(-461);
states[850] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289},new int[]{-78,851,-86,120,-85,125,-87,176,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297,-211,298,-96,299});
states[851] = new State(new int[]{127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,748,8,749,15,274,16,279,130,139,131,140,139,143,141,144,140,145,48,771,79,110,31,775,19,782,85,794,45,800,28,805,46,815,90,821,38,828,29,831,44,839,51,845,64,850,66,854,25,-443,80,-443,10,-443,86,-443,89,-443,26,-443,92,-443},new int[]{-231,852,-3,116,-94,117,-104,208,-93,217,-120,294,-125,24,-126,27,-166,234,-227,273,-260,278,-14,300,-139,136,-141,137,-140,141,-15,142,-183,769,-105,770,-225,773,-127,774,-31,781,-217,793,-279,799,-98,804,-280,814,-134,819,-265,820,-218,827,-97,830,-275,838,-53,841,-149,842,-148,843,-143,844,-106,849,-99,853});
states[852] = new State(-464);
states[853] = new State(-462);
states[854] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289},new int[]{-86,855,-85,125,-87,227,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297,-211,298});
states[855] = new State(new int[]{13,121,80,-463,10,-463,86,-463,89,-463,26,-463,92,-463,25,-463});
states[856] = new State(new int[]{5,857});
states[857] = new State(new int[]{127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,748,8,749,15,274,16,279,130,139,131,140,139,767,141,144,140,768,48,771,79,110,31,775,19,782,85,794,45,800,28,805,46,815,90,821,38,828,29,831,44,839,51,845,64,850,66,854,25,-443,80,-443,10,-443,86,-443,89,-443,26,-443,92,-443},new int[]{-232,858,-231,115,-3,116,-94,117,-104,208,-93,217,-120,747,-125,24,-126,27,-166,234,-227,273,-260,278,-14,300,-139,136,-141,137,-140,141,-15,142,-183,769,-105,770,-225,773,-127,774,-31,781,-217,793,-279,799,-98,804,-280,814,-134,819,-265,820,-218,827,-97,830,-275,838,-53,841,-149,842,-148,843,-143,844,-106,849,-99,853,-116,856});
states[858] = new State(-442);
states[859] = new State(new int[]{129,325,74,25,75,26,69,28,67,29,139,143,141,144,140,145,103,203,102,204,130,139,131,140,8,466,128,480,18,485,39,493,40,543,27,554,65,558,56,561,35,566,30,568},new int[]{-243,860,-239,319,-155,320,-120,164,-125,24,-126,27,-81,449,-88,465,-89,464,-15,460,-174,461,-139,463,-141,137,-140,141,-226,478,-219,479,-247,482,-248,483,-245,484,-237,491,-27,492,-234,542,-102,553,-103,557,-197,563,-195,564,-194,565,-264,572});
states[860] = new State(-495);
states[861] = new State(new int[]{129,23,74,25,75,26,69,28,67,29},new int[]{-120,862,-125,24,-126,27});
states[862] = new State(new int[]{5,863,123,869});
states[863] = new State(new int[]{129,325,74,25,75,26,69,28,67,29,139,143,141,144,140,145,103,203,102,204,130,139,131,140,8,466,128,480,18,485,39,493,40,543,27,554,65,558,56,561,35,566,30,568},new int[]{-243,864,-239,319,-155,320,-120,164,-125,24,-126,27,-81,449,-88,465,-89,464,-15,460,-174,461,-139,463,-141,137,-140,141,-226,478,-219,479,-247,482,-248,483,-245,484,-237,491,-27,492,-234,542,-102,553,-103,557,-197,563,-195,564,-194,565,-264,572});
states[864] = new State(new int[]{123,865});
states[865] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289},new int[]{-78,866,-86,120,-85,125,-87,176,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297,-211,298,-96,299});
states[866] = new State(new int[]{87,867});
states[867] = new State(new int[]{127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,748,8,749,15,274,16,279,130,139,131,140,139,767,141,144,140,768,48,771,79,110,31,775,19,782,85,794,45,800,28,805,46,815,90,821,38,828,29,831,44,839,51,845,64,850,66,854,25,-443,80,-443,10,-443,86,-443,89,-443,26,-443,92,-443},new int[]{-232,868,-231,115,-3,116,-94,117,-104,208,-93,217,-120,747,-125,24,-126,27,-166,234,-227,273,-260,278,-14,300,-139,136,-141,137,-140,141,-15,142,-183,769,-105,770,-225,773,-127,774,-31,781,-217,793,-279,799,-98,804,-280,814,-134,819,-265,820,-218,827,-97,830,-275,838,-53,841,-149,842,-148,843,-143,844,-106,849,-99,853,-116,856});
states[868] = new State(-493);
states[869] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289},new int[]{-78,870,-86,120,-85,125,-87,176,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297,-211,298,-96,299});
states[870] = new State(new int[]{87,871});
states[871] = new State(new int[]{127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,748,8,749,15,274,16,279,130,139,131,140,139,767,141,144,140,768,48,771,79,110,31,775,19,782,85,794,45,800,28,805,46,815,90,821,38,828,29,831,44,839,51,845,64,850,66,854,25,-443,80,-443,10,-443,86,-443,89,-443,26,-443,92,-443},new int[]{-232,872,-231,115,-3,116,-94,117,-104,208,-93,217,-120,747,-125,24,-126,27,-166,234,-227,273,-260,278,-14,300,-139,136,-141,137,-140,141,-15,142,-183,769,-105,770,-225,773,-127,774,-31,781,-217,793,-279,799,-98,804,-280,814,-134,819,-265,820,-218,827,-97,830,-275,838,-53,841,-149,842,-148,843,-143,844,-106,849,-99,853,-116,856});
states[872] = new State(-494);
states[873] = new State(new int[]{68,881,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,748,8,749,15,274,16,279,130,139,131,140,139,767,141,144,140,768,48,771,79,110,31,775,19,782,85,794,45,800,28,805,46,815,90,821,38,828,29,831,44,839,51,845,64,850,66,854,10,-443,80,-443},new int[]{-54,874,-57,876,-56,893,-222,894,-232,798,-231,115,-3,116,-94,117,-104,208,-93,217,-120,747,-125,24,-126,27,-166,234,-227,273,-260,278,-14,300,-139,136,-141,137,-140,141,-15,142,-183,769,-105,770,-225,773,-127,774,-31,781,-217,793,-279,799,-98,804,-280,814,-134,819,-265,820,-218,827,-97,830,-275,838,-53,841,-149,842,-148,843,-143,844,-106,849,-99,853,-116,856});
states[874] = new State(new int[]{80,875});
states[875] = new State(-508);
states[876] = new State(new int[]{10,878,25,891,80,-514},new int[]{-224,877});
states[877] = new State(-509);
states[878] = new State(new int[]{68,881,25,891,80,-514},new int[]{-56,879,-224,880});
states[879] = new State(-513);
states[880] = new State(-510);
states[881] = new State(new int[]{129,23,74,25,75,26,69,28,67,29},new int[]{-58,882,-154,885,-155,886,-120,887,-125,24,-126,27,-113,888});
states[882] = new State(new int[]{87,883});
states[883] = new State(new int[]{127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,748,8,749,15,274,16,279,130,139,131,140,139,767,141,144,140,768,48,771,79,110,31,775,19,782,85,794,45,800,28,805,46,815,90,821,38,828,29,831,44,839,51,845,64,850,66,854,10,-443,25,-443,80,-443},new int[]{-232,884,-231,115,-3,116,-94,117,-104,208,-93,217,-120,747,-125,24,-126,27,-166,234,-227,273,-260,278,-14,300,-139,136,-141,137,-140,141,-15,142,-183,769,-105,770,-225,773,-127,774,-31,781,-217,793,-279,799,-98,804,-280,814,-134,819,-265,820,-218,827,-97,830,-275,838,-53,841,-149,842,-148,843,-143,844,-106,849,-99,853,-116,856});
states[884] = new State(-516);
states[885] = new State(-517);
states[886] = new State(new int[]{7,152,87,-519});
states[887] = new State(new int[]{7,-232,87,-232,5,-520});
states[888] = new State(new int[]{5,889});
states[889] = new State(new int[]{129,23,74,25,75,26,69,28,67,29},new int[]{-154,890,-155,886,-120,164,-125,24,-126,27});
states[890] = new State(-518);
states[891] = new State(new int[]{127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,748,8,749,15,274,16,279,130,139,131,140,139,767,141,144,140,768,48,771,79,110,31,775,19,782,85,794,45,800,28,805,46,815,90,821,38,828,29,831,44,839,51,845,64,850,66,854,10,-443,80,-443},new int[]{-222,892,-232,798,-231,115,-3,116,-94,117,-104,208,-93,217,-120,747,-125,24,-126,27,-166,234,-227,273,-260,278,-14,300,-139,136,-141,137,-140,141,-15,142,-183,769,-105,770,-225,773,-127,774,-31,781,-217,793,-279,799,-98,804,-280,814,-134,819,-265,820,-218,827,-97,830,-275,838,-53,841,-149,842,-148,843,-143,844,-106,849,-99,853,-116,856});
states[892] = new State(new int[]{10,113,80,-515});
states[893] = new State(-512);
states[894] = new State(new int[]{10,113,80,-511});
states[895] = new State(-489);
states[896] = new State(-502);
states[897] = new State(-503);
states[898] = new State(-500);
states[899] = new State(new int[]{129,23,74,25,75,26,69,28,67,29},new int[]{-155,900,-120,164,-125,24,-126,27});
states[900] = new State(new int[]{97,901,7,152});
states[901] = new State(-501);
states[902] = new State(-498);
states[903] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,15,274,16,279,11,367,139,143,141,144,140,145,130,139,131,140,47,378,127,379,8,385,121,405,103,203,102,204,128,409},new int[]{-92,904,-82,905,-79,373,-74,333,-11,351,-9,359,-12,340,-120,360,-125,24,-126,27,-227,364,-260,365,-210,366,-15,376,-139,377,-141,137,-140,141,-174,407,-236,411,-212,412});
states[904] = new State(-483);
states[905] = new State(-484);
states[906] = new State(-482);
states[907] = new State(new int[]{127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,748,8,749,15,274,16,279,130,139,131,140,139,767,141,144,140,768,48,771,79,110,31,775,19,782,85,794,45,800,28,805,46,815,90,821,38,828,29,831,44,839,51,845,64,850,66,854,10,-443,80,-443},new int[]{-222,908,-232,798,-231,115,-3,116,-94,117,-104,208,-93,217,-120,747,-125,24,-126,27,-166,234,-227,273,-260,278,-14,300,-139,136,-141,137,-140,141,-15,142,-183,769,-105,770,-225,773,-127,774,-31,781,-217,793,-279,799,-98,804,-280,814,-134,819,-265,820,-218,827,-97,830,-275,838,-53,841,-149,842,-148,843,-143,844,-106,849,-99,853,-116,856});
states[908] = new State(new int[]{10,113,80,-486});
states[909] = new State(-478);
states[910] = new State(new int[]{132,522,134,523,135,524,136,525,138,526,137,527,17,-631,79,-631,50,-631,22,-631,58,-631,41,-631,44,-631,53,-631,11,-631,20,-631,35,-631,30,-631,23,-631,24,-631,37,-631,80,-631,73,-631,72,-631,71,-631,70,-631},new int[]{-179,911,-182,528});
states[911] = new State(new int[]{10,520,97,-634});
states[912] = new State(-342);
states[913] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,36,235},new int[]{-144,914,-115,613,-110,614,-107,615,-120,621,-125,24,-126,27,-166,622,-294,624,-122,628});
states[914] = new State(new int[]{8,529,5,-419,10,-419,97,-419},new int[]{-100,915});
states[915] = new State(new int[]{5,918,10,910,97,-633},new int[]{-180,916,-181,935});
states[916] = new State(new int[]{17,722,79,-296,50,-296,22,-296,58,-296,41,-296,44,-296,53,-296,11,-296,20,-296,35,-296,30,-296,23,-296,24,-296,37,-296,80,-296,73,-296,72,-296,71,-296,70,-296,133,-296,95,-296,32,-296},new int[]{-278,917,-277,720,-276,742});
states[917] = new State(-410);
states[918] = new State(new int[]{129,325,74,25,75,26,69,28,67,29,139,143,141,144,140,145,103,203,102,204,130,139,131,140,8,466,128,480,18,485,39,493,40,543,27,554,65,558,56,561,35,566,30,568},new int[]{-242,919,-243,318,-239,319,-155,320,-120,164,-125,24,-126,27,-81,449,-88,465,-89,464,-15,460,-174,461,-139,463,-141,137,-140,141,-226,478,-219,479,-247,482,-248,483,-245,484,-237,491,-27,492,-234,542,-102,553,-103,557,-197,563,-195,564,-194,565,-264,572});
states[919] = new State(new int[]{10,910,97,-633},new int[]{-180,920,-181,922});
states[920] = new State(new int[]{17,722,79,-296,50,-296,22,-296,58,-296,41,-296,44,-296,53,-296,11,-296,20,-296,35,-296,30,-296,23,-296,24,-296,37,-296,80,-296,73,-296,72,-296,71,-296,70,-296,133,-296,95,-296,32,-296},new int[]{-278,921,-277,720,-276,742});
states[921] = new State(-411);
states[922] = new State(new int[]{97,923});
states[923] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289},new int[]{-85,924,-87,227,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297});
states[924] = new State(new int[]{10,925,14,926,106,928,111,929,109,930,107,931,110,932,108,933,123,934},new int[]{-171,126});
states[925] = new State(-392);
states[926] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289},new int[]{-87,927,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297});
states[927] = new State(new int[]{103,181,102,182,114,183,115,184,112,185,14,-552,106,-552,111,-552,109,-552,107,-552,110,-552,108,-552,123,-552,13,-552,80,-552,10,-552,86,-552,89,-552,26,-552,92,-552,25,-552,2,-552,5,-552,6,-552,88,-552,12,-552,9,-552,87,-552,105,-552,104,-552,117,-552,118,-552,119,-552,120,-552,116,-552,122,-552,124,-552,73,-552,72,-552,71,-552,70,-552,42,-552,49,-552,127,-552,129,-552,74,-552,75,-552,69,-552,67,-552,36,-552,33,-552,8,-552,15,-552,16,-552,130,-552,131,-552,139,-552,141,-552,140,-552,48,-552,79,-552,31,-552,19,-552,85,-552,45,-552,28,-552,46,-552,90,-552,38,-552,29,-552,44,-552,51,-552,64,-552,66,-552,62,-552,63,-552},new int[]{-172,128});
states[928] = new State(-555);
states[929] = new State(-556);
states[930] = new State(-557);
states[931] = new State(-558);
states[932] = new State(-559);
states[933] = new State(-560);
states[934] = new State(-561);
states[935] = new State(new int[]{97,936});
states[936] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289},new int[]{-85,937,-87,227,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297});
states[937] = new State(new int[]{10,938,14,926,106,928,111,929,109,930,107,931,110,932,108,933,123,934},new int[]{-171,126});
states[938] = new State(-393);
states[939] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,73,32,72,33,71,34,70,35},new int[]{-147,940,-120,969,-125,24,-126,27,-124,970});
states[940] = new State(new int[]{7,954,11,960,74,-358,75,-358,10,-358,5,-360},new int[]{-204,941,-209,957});
states[941] = new State(new int[]{74,947,75,950,10,-367},new int[]{-177,942});
states[942] = new State(new int[]{10,943});
states[943] = new State(new int[]{54,945,11,-356,20,-356,35,-356,30,-356,23,-356,24,-356,37,-356,80,-356,73,-356,72,-356,71,-356,70,-356},new int[]{-178,944});
states[944] = new State(-355);
states[945] = new State(new int[]{10,946});
states[946] = new State(-357);
states[947] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,10,-366},new int[]{-123,948,-120,953,-125,24,-126,27});
states[948] = new State(new int[]{74,947,75,950,10,-367},new int[]{-177,949});
states[949] = new State(-368);
states[950] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,10,-366},new int[]{-123,951,-120,953,-125,24,-126,27});
states[951] = new State(new int[]{74,947,75,950,10,-367},new int[]{-177,952});
states[952] = new State(-369);
states[953] = new State(-365);
states[954] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,73,32,72,33,71,34,70,35},new int[]{-120,955,-124,956,-125,24,-126,27});
states[955] = new State(-350);
states[956] = new State(-351);
states[957] = new State(new int[]{5,958});
states[958] = new State(new int[]{129,325,74,25,75,26,69,28,67,29,139,143,141,144,140,145,103,203,102,204,130,139,131,140,8,466,128,480,18,485,39,493,40,543,27,554,65,558,56,561,35,566,30,568},new int[]{-242,959,-243,318,-239,319,-155,320,-120,164,-125,24,-126,27,-81,449,-88,465,-89,464,-15,460,-174,461,-139,463,-141,137,-140,141,-226,478,-219,479,-247,482,-248,483,-245,484,-237,491,-27,492,-234,542,-102,553,-103,557,-197,563,-195,564,-194,565,-264,572});
states[959] = new State(-359);
states[960] = new State(new int[]{129,23,74,25,75,26,69,28,67,29},new int[]{-208,961,-207,968,-132,965,-120,620,-125,24,-126,27});
states[961] = new State(new int[]{12,962,10,963});
states[962] = new State(-361);
states[963] = new State(new int[]{129,23,74,25,75,26,69,28,67,29},new int[]{-207,964,-132,965,-120,620,-125,24,-126,27});
states[964] = new State(-363);
states[965] = new State(new int[]{5,966,88,314});
states[966] = new State(new int[]{129,325,74,25,75,26,69,28,67,29,139,143,141,144,140,145,103,203,102,204,130,139,131,140,8,466,128,480,18,485,39,493,40,543,27,554,65,558,56,561,35,566,30,568},new int[]{-242,967,-243,318,-239,319,-155,320,-120,164,-125,24,-126,27,-81,449,-88,465,-89,464,-15,460,-174,461,-139,463,-141,137,-140,141,-226,478,-219,479,-247,482,-248,483,-245,484,-237,491,-27,492,-234,542,-102,553,-103,557,-197,563,-195,564,-194,565,-264,572});
states[967] = new State(-364);
states[968] = new State(-362);
states[969] = new State(-348);
states[970] = new State(-349);
states[971] = new State(-338);
states[972] = new State(new int[]{11,-339,20,-339,35,-339,30,-339,23,-339,24,-339,37,-339,80,-339,73,-339,72,-339,71,-339,70,-339,50,-61,22,-61,58,-61,41,-61,44,-61,53,-61,79,-61},new int[]{-151,973,-39,633,-35,636});
states[973] = new State(-381);
states[974] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,36,235,8,-347,10,-347},new int[]{-146,975,-145,611,-144,612,-115,613,-110,614,-107,615,-120,621,-125,24,-126,27,-166,622,-294,624,-122,628});
states[975] = new State(new int[]{8,529,10,-419},new int[]{-100,976});
states[976] = new State(new int[]{10,518},new int[]{-180,977});
states[977] = new State(-343);
states[978] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,36,235,8,-347,10,-347},new int[]{-146,979,-145,611,-144,612,-115,613,-110,614,-107,615,-120,621,-125,24,-126,27,-166,622,-294,624,-122,628});
states[979] = new State(new int[]{8,529,10,-419},new int[]{-100,980});
states[980] = new State(new int[]{10,518},new int[]{-180,981});
states[981] = new State(-345);
states[982] = new State(-335);
states[983] = new State(-389);
states[984] = new State(-336);
states[985] = new State(-353);
states[986] = new State(new int[]{11,597,80,-315,73,-315,72,-315,71,-315,70,-315,20,-195,35,-195,30,-195,23,-195,24,-195,37,-195},new int[]{-49,505,-48,506,-5,507,-220,609,-50,987});
states[987] = new State(-327);
states[988] = new State(-324);
states[989] = new State(-281);
states[990] = new State(-282);
states[991] = new State(new int[]{20,992,39,993,34,994,8,-283,17,-283,11,-283,80,-283,73,-283,72,-283,71,-283,70,-283,22,-283,129,-283,74,-283,75,-283,69,-283,67,-283,53,-283,35,-283,30,-283,23,-283,24,-283,37,-283,10,-283});
states[992] = new State(-284);
states[993] = new State(-285);
states[994] = new State(-286);
states[995] = new State(new int[]{60,997,61,998,132,999,21,1000,20,-278,34,-278,55,-278},new int[]{-18,996});
states[996] = new State(-280);
states[997] = new State(-273);
states[998] = new State(-274);
states[999] = new State(-275);
states[1000] = new State(-276);
states[1001] = new State(-279);
states[1002] = new State(new int[]{109,1004,106,-203},new int[]{-129,1003});
states[1003] = new State(-204);
states[1004] = new State(new int[]{129,23,74,25,75,26,69,28,67,29},new int[]{-132,1005,-120,620,-125,24,-126,27});
states[1005] = new State(new int[]{108,1006,107,619,88,314});
states[1006] = new State(-205);
states[1007] = new State(new int[]{129,325,74,25,75,26,69,28,67,29,139,143,141,144,140,145,103,203,102,204,130,139,131,140,8,466,128,480,18,485,39,493,40,543,27,554,65,558,56,561,35,566,30,568,60,997,61,998,132,999,21,1000,20,-277,34,-277,55,-277},new int[]{-252,1008,-243,677,-239,319,-155,320,-120,164,-125,24,-126,27,-81,449,-88,465,-89,464,-15,460,-174,461,-139,463,-141,137,-140,141,-226,478,-219,479,-247,482,-248,483,-245,484,-237,491,-27,492,-234,542,-102,553,-103,557,-197,563,-195,564,-194,565,-264,572,-26,678,-19,679,-20,995,-18,1001});
states[1008] = new State(new int[]{10,1009});
states[1009] = new State(-202);
states[1010] = new State(new int[]{11,597,129,-195,74,-195,75,-195,69,-195,67,-195},new int[]{-44,1011,-5,671,-220,609});
states[1011] = new State(-97);
states[1012] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,50,-82,22,-82,58,-82,41,-82,44,-82,53,-82,79,-82},new int[]{-272,1013,-273,1014,-132,698,-120,620,-125,24,-126,27});
states[1013] = new State(-101);
states[1014] = new State(new int[]{10,1015});
states[1015] = new State(-370);
states[1016] = new State(new int[]{129,23,74,25,75,26,69,28,67,29},new int[]{-272,1017,-273,1014,-132,698,-120,620,-125,24,-126,27});
states[1017] = new State(-99);
states[1018] = new State(new int[]{129,23,74,25,75,26,69,28,67,29},new int[]{-272,1019,-273,1014,-132,698,-120,620,-125,24,-126,27});
states[1019] = new State(-100);
states[1020] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,139,143,141,144,140,145,103,203,102,204,130,139,131,140,8,547,12,-253,88,-253},new int[]{-238,1021,-239,1022,-155,546,-120,164,-125,24,-126,27,-81,449,-88,465,-89,464,-15,460,-174,461,-139,463,-141,137,-140,141});
states[1021] = new State(-251);
states[1022] = new State(-252);
states[1023] = new State(-250);
states[1024] = new State(new int[]{129,325,74,25,75,26,69,28,67,29,139,143,141,144,140,145,103,203,102,204,130,139,131,140,8,466,128,480,18,485,39,493,40,543,27,554,65,558,56,561,35,566,30,568},new int[]{-243,1025,-239,319,-155,320,-120,164,-125,24,-126,27,-81,449,-88,465,-89,464,-15,460,-174,461,-139,463,-141,137,-140,141,-226,478,-219,479,-247,482,-248,483,-245,484,-237,491,-27,492,-234,542,-102,553,-103,557,-197,563,-195,564,-194,565,-264,572});
states[1025] = new State(-249);
states[1026] = new State(new int[]{113,1027});
states[1027] = new State(new int[]{8,1029,129,23,74,25,75,26,69,28,67,29},new int[]{-246,1028,-155,162,-120,164,-125,24,-126,27,-264,165});
states[1028] = new State(-265);
states[1029] = new State(new int[]{9,1030});
states[1030] = new State(-269);
states[1031] = new State(-772);
states[1032] = new State(new int[]{9,1033,129,23,74,25,75,26,69,28,67,29},new int[]{-287,1037,-288,1031,-132,312,-120,620,-125,24,-126,27});
states[1033] = new State(new int[]{5,316,113,-775},new int[]{-285,1034});
states[1034] = new State(new int[]{113,1035});
states[1035] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289,79,110},new int[]{-289,1036,-86,226,-85,125,-87,227,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297,-211,298,-225,363});
states[1036] = new State(-767);
states[1037] = new State(new int[]{9,1038,10,310});
states[1038] = new State(new int[]{5,316,113,-775},new int[]{-285,1039});
states[1039] = new State(new int[]{113,1040});
states[1040] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289,79,110},new int[]{-289,1041,-86,226,-85,125,-87,227,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297,-211,298,-225,363});
states[1041] = new State(-768);
states[1042] = new State(new int[]{129,325,74,25,75,26,69,28,67,29,139,143,141,144,140,145,103,203,102,204,130,139,131,140,8,547,128,480,18,485,39,493,40,543,27,554,65,558,56,561},new int[]{-244,1043,-239,1044,-155,1045,-120,164,-125,24,-126,27,-81,449,-88,465,-89,464,-15,460,-174,461,-139,463,-141,137,-140,141,-226,1046,-219,1047,-247,1048,-248,483,-245,484,-237,491,-27,492,-234,542,-102,553,-103,557,-264,1049});
states[1043] = new State(-778);
states[1044] = new State(-436);
states[1045] = new State(new int[]{7,152,109,157,113,-220,8,-227,105,-227,104,-227,117,-227,118,-227,119,-227,120,-227,116,-227,6,-227,103,-227,102,-227,114,-227,115,-227},new int[]{-263,163});
states[1046] = new State(-437);
states[1047] = new State(-438);
states[1048] = new State(-439);
states[1049] = new State(-440);
states[1050] = new State(new int[]{5,1051,10,1063,113,224,11,-604,8,-604,7,-604,128,-604,4,-604,105,-604,104,-604,117,-604,118,-604,119,-604,120,-604,116,-604,122,-604,124,-604,103,-604,102,-604,114,-604,115,-604,112,-604,14,-604,106,-604,111,-604,109,-604,107,-604,110,-604,108,-604,123,-604,88,-604,13,-604,9,-604});
states[1051] = new State(new int[]{129,325,74,25,75,26,69,28,67,29,139,143,141,144,140,145,103,203,102,204,130,139,131,140,8,466,128,480,18,485,39,493,40,543,27,554,65,558,56,561,35,566,30,568},new int[]{-242,1052,-243,318,-239,319,-155,320,-120,164,-125,24,-126,27,-81,449,-88,465,-89,464,-15,460,-174,461,-139,463,-141,137,-140,141,-226,478,-219,479,-247,482,-248,483,-245,484,-237,491,-27,492,-234,542,-102,553,-103,557,-197,563,-195,564,-194,565,-264,572});
states[1052] = new State(new int[]{9,1053,10,1057});
states[1053] = new State(new int[]{5,1042,113,-777},new int[]{-286,1054});
states[1054] = new State(new int[]{113,1055});
states[1055] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289,79,110},new int[]{-289,1056,-86,226,-85,125,-87,227,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297,-211,298,-225,363});
states[1056] = new State(-757);
states[1057] = new State(new int[]{129,23,74,25,75,26,69,28,67,29},new int[]{-287,1058,-288,1031,-132,312,-120,620,-125,24,-126,27});
states[1058] = new State(new int[]{9,1059,10,310});
states[1059] = new State(new int[]{5,1042,113,-777},new int[]{-286,1060});
states[1060] = new State(new int[]{113,1061});
states[1061] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289,79,110},new int[]{-289,1062,-86,226,-85,125,-87,227,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297,-211,298,-225,363});
states[1062] = new State(-759);
states[1063] = new State(new int[]{129,23,74,25,75,26,69,28,67,29},new int[]{-287,1064,-288,1031,-132,312,-120,620,-125,24,-126,27});
states[1064] = new State(new int[]{9,1065,10,310});
states[1065] = new State(new int[]{5,1042,113,-777},new int[]{-286,1066});
states[1066] = new State(new int[]{113,1067});
states[1067] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289,79,110},new int[]{-289,1068,-86,226,-85,125,-87,227,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297,-211,298,-225,363});
states[1068] = new State(-758);
states[1069] = new State(new int[]{88,1070,13,121,9,-527});
states[1070] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289},new int[]{-72,1071,-86,1083,-85,125,-87,227,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297,-211,298});
states[1071] = new State(new int[]{88,1081,5,316,10,-775,9,-775},new int[]{-285,1072});
states[1072] = new State(new int[]{10,1079,9,-762},new int[]{-291,1073});
states[1073] = new State(new int[]{9,1074});
states[1074] = new State(new int[]{5,1042,13,-764,80,-764,10,-764,86,-764,89,-764,26,-764,92,-764,25,-764,2,-764,6,-764,88,-764,12,-764,9,-764,87,-764,105,-764,104,-764,117,-764,118,-764,119,-764,120,-764,116,-764,122,-764,124,-764,103,-764,102,-764,114,-764,115,-764,112,-764,14,-764,106,-764,111,-764,109,-764,107,-764,110,-764,108,-764,123,-764,73,-764,72,-764,71,-764,70,-764,42,-764,49,-764,127,-764,129,-764,74,-764,75,-764,69,-764,67,-764,36,-764,33,-764,8,-764,15,-764,16,-764,130,-764,131,-764,139,-764,141,-764,140,-764,48,-764,79,-764,31,-764,19,-764,85,-764,45,-764,28,-764,46,-764,90,-764,38,-764,29,-764,44,-764,51,-764,64,-764,66,-764,62,-764,63,-764,113,-777},new int[]{-295,1075,-286,1076});
states[1075] = new State(-760);
states[1076] = new State(new int[]{113,1077});
states[1077] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289,79,110},new int[]{-289,1078,-86,226,-85,125,-87,227,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297,-211,298,-225,363});
states[1078] = new State(-765);
states[1079] = new State(new int[]{129,23,74,25,75,26,69,28,67,29},new int[]{-287,1080,-288,1031,-132,312,-120,620,-125,24,-126,27});
states[1080] = new State(new int[]{10,310,9,-763});
states[1081] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289},new int[]{-86,1082,-85,125,-87,227,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297,-211,298});
states[1082] = new State(new int[]{13,121,88,-109,5,-109,10,-109,9,-109});
states[1083] = new State(new int[]{13,121,88,-108,5,-108,10,-108,9,-108});
states[1084] = new State(new int[]{11,1085});
states[1085] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289,12,-618},new int[]{-61,1086,-64,221,-78,222,-86,120,-85,125,-87,176,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297,-211,298,-96,299});
states[1086] = new State(new int[]{12,1087});
states[1087] = new State(new int[]{8,1089,80,-538,10,-538,86,-538,89,-538,26,-538,92,-538,105,-538,104,-538,117,-538,118,-538,119,-538,120,-538,116,-538,122,-538,124,-538,5,-538,103,-538,102,-538,114,-538,115,-538,112,-538,14,-538,106,-538,111,-538,109,-538,107,-538,110,-538,108,-538,123,-538,13,-538,25,-538,2,-538,6,-538,88,-538,12,-538,9,-538,87,-538,73,-538,72,-538,71,-538,70,-538,42,-538,49,-538,127,-538,129,-538,74,-538,75,-538,69,-538,67,-538,36,-538,33,-538,15,-538,16,-538,130,-538,131,-538,139,-538,141,-538,140,-538,48,-538,79,-538,31,-538,19,-538,85,-538,45,-538,28,-538,46,-538,90,-538,38,-538,29,-538,44,-538,51,-538,64,-538,66,-538,62,-538,63,-538},new int[]{-4,1088});
states[1088] = new State(-540);
states[1089] = new State(new int[]{129,23,74,25,75,26,69,28,67,228,15,274,16,279,11,367,139,143,141,144,140,145,130,139,131,140,47,378,127,379,8,395,121,405,103,203,102,204,128,409,54,147,9,-181},new int[]{-60,1090,-59,413,-77,422,-76,416,-79,417,-74,333,-11,351,-9,359,-12,340,-120,360,-125,24,-126,27,-227,364,-260,365,-210,366,-15,376,-139,377,-141,137,-140,141,-174,407,-236,411,-212,412,-83,418,-213,419,-148,420,-52,421});
states[1090] = new State(new int[]{9,1091});
states[1091] = new State(-537);
states[1092] = new State(new int[]{8,1093});
states[1093] = new State(new int[]{129,23,74,25,75,26,69,28,67,228,47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,36,235,33,264,8,266,15,274,16,279,30,285,35,289},new int[]{-293,1094,-292,1102,-120,1098,-125,24,-126,27,-85,1101,-87,227,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297});
states[1094] = new State(new int[]{9,1095,88,1096});
states[1095] = new State(-541);
states[1096] = new State(new int[]{129,23,74,25,75,26,69,28,67,228,47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,36,235,33,264,8,266,15,274,16,279,30,285,35,289},new int[]{-292,1097,-120,1098,-125,24,-126,27,-85,1101,-87,227,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297});
states[1097] = new State(-545);
states[1098] = new State(new int[]{97,1099,113,224,11,-604,8,-604,7,-604,128,-604,4,-604,105,-604,104,-604,117,-604,118,-604,119,-604,120,-604,116,-604,122,-604,124,-604,103,-604,102,-604,114,-604,115,-604,112,-604,14,-604,106,-604,111,-604,109,-604,107,-604,110,-604,108,-604,123,-604,9,-604,88,-604});
states[1099] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289},new int[]{-85,1100,-87,227,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297});
states[1100] = new State(new int[]{14,926,106,928,111,929,109,930,107,931,110,932,108,933,123,934,9,-542,88,-542},new int[]{-171,126});
states[1101] = new State(new int[]{14,926,106,928,111,929,109,930,107,931,110,932,108,933,123,934,9,-543,88,-543},new int[]{-171,126});
states[1102] = new State(-544);
states[1103] = new State(new int[]{7,152,4,155,109,157,8,-534,80,-534,10,-534,86,-534,89,-534,26,-534,92,-534,105,-534,104,-534,117,-534,118,-534,119,-534,120,-534,116,-534,122,-534,124,-534,5,-534,103,-534,102,-534,114,-534,115,-534,112,-534,14,-534,106,-534,111,-534,107,-534,110,-534,108,-534,123,-534,13,-534,25,-534,2,-534,6,-534,88,-534,12,-534,9,-534,87,-534,73,-534,72,-534,71,-534,70,-534,42,-534,49,-534,127,-534,129,-534,74,-534,75,-534,69,-534,67,-534,36,-534,33,-534,15,-534,16,-534,130,-534,131,-534,139,-534,141,-534,140,-534,48,-534,79,-534,31,-534,19,-534,85,-534,45,-534,28,-534,46,-534,90,-534,38,-534,29,-534,44,-534,51,-534,64,-534,66,-534,62,-534,63,-534,11,-546},new int[]{-263,154});
states[1104] = new State(-547);
states[1105] = new State(new int[]{49,1024});
states[1106] = new State(-598);
states[1107] = new State(-621);
states[1108] = new State(-32);
states[1109] = new State(new int[]{50,639,22,663,58,667,41,1010,44,1016,53,1018,11,597,79,-57,80,-57,91,-57,35,-195,30,-195,20,-195,23,-195,24,-195},new int[]{-42,1110,-142,1111,-25,1112,-47,1113,-254,1114,-271,1115,-191,1116,-5,1117,-220,609});
states[1110] = new State(-59);
states[1111] = new State(-69);
states[1112] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,50,-70,22,-70,58,-70,41,-70,44,-70,53,-70,11,-70,35,-70,30,-70,20,-70,23,-70,24,-70,79,-70,80,-70,91,-70},new int[]{-23,649,-24,650,-114,652,-120,662,-125,24,-126,27});
states[1113] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,50,-71,22,-71,58,-71,41,-71,44,-71,53,-71,11,-71,35,-71,30,-71,20,-71,23,-71,24,-71,79,-71,80,-71,91,-71},new int[]{-23,666,-24,650,-114,652,-120,662,-125,24,-126,27});
states[1114] = new State(new int[]{11,597,50,-72,22,-72,58,-72,41,-72,44,-72,53,-72,35,-72,30,-72,20,-72,23,-72,24,-72,79,-72,80,-72,91,-72,129,-195,74,-195,75,-195,69,-195,67,-195},new int[]{-44,670,-5,671,-220,609});
states[1115] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,50,-73,22,-73,58,-73,41,-73,44,-73,53,-73,11,-73,35,-73,30,-73,20,-73,23,-73,24,-73,79,-73,80,-73,91,-73},new int[]{-272,1013,-273,1014,-132,698,-120,620,-125,24,-126,27});
states[1116] = new State(-74);
states[1117] = new State(new int[]{35,1139,30,1145,20,1156,23,974,24,978,11,597},new int[]{-184,1118,-220,509,-185,1119,-192,1120,-199,1121,-196,714,-200,912,-188,1158,-198,1159});
states[1118] = new State(-77);
states[1119] = new State(-75);
states[1120] = new State(-382);
states[1121] = new State(new int[]{133,1123,95,1130,50,-58,22,-58,58,-58,41,-58,44,-58,53,-58,11,-58,35,-58,30,-58,20,-58,23,-58,24,-58,79,-58},new int[]{-153,1122,-152,1125,-37,1126,-38,1109,-55,1129});
states[1122] = new State(-384);
states[1123] = new State(new int[]{10,1124});
states[1124] = new State(-388);
states[1125] = new State(-395);
states[1126] = new State(new int[]{79,110},new int[]{-225,1127});
states[1127] = new State(new int[]{10,1128});
states[1128] = new State(-417);
states[1129] = new State(-396);
states[1130] = new State(new int[]{10,1138,129,23,74,25,75,26,69,28,67,29,130,139,131,140},new int[]{-90,1131,-120,1135,-125,24,-126,27,-139,1136,-141,137,-140,141});
states[1131] = new State(new int[]{69,1132,10,1137});
states[1132] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,130,139,131,140},new int[]{-90,1133,-120,1135,-125,24,-126,27,-139,1136,-141,137,-140,141});
states[1133] = new State(new int[]{10,1134});
states[1134] = new State(-412);
states[1135] = new State(-415);
states[1136] = new State(-416);
states[1137] = new State(-413);
states[1138] = new State(-414);
states[1139] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,36,235},new int[]{-145,1140,-144,612,-115,613,-110,614,-107,615,-120,621,-125,24,-126,27,-166,622,-294,624,-122,628});
states[1140] = new State(new int[]{8,529,97,-419,10,-419},new int[]{-100,1141});
states[1141] = new State(new int[]{97,1142,10,518},new int[]{-180,718});
states[1142] = new State(new int[]{127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,748,8,749,15,274,16,279,130,139,131,140,139,767,141,144,140,768,48,771,79,110,31,775,19,782,85,794,45,800,28,805,46,815,90,821,38,828,29,831,44,839,51,845,64,850,66,854,10,-443},new int[]{-232,1143,-231,115,-3,116,-94,117,-104,208,-93,217,-120,747,-125,24,-126,27,-166,234,-227,273,-260,278,-14,300,-139,136,-141,137,-140,141,-15,142,-183,769,-105,770,-225,773,-127,774,-31,781,-217,793,-279,799,-98,804,-280,814,-134,819,-265,820,-218,827,-97,830,-275,838,-53,841,-149,842,-148,843,-143,844,-106,849,-99,853,-116,856});
states[1143] = new State(new int[]{10,1144});
states[1144] = new State(-387);
states[1145] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,36,235},new int[]{-144,1146,-115,613,-110,614,-107,615,-120,621,-125,24,-126,27,-166,622,-294,624,-122,628});
states[1146] = new State(new int[]{8,529,5,-419,97,-419,10,-419},new int[]{-100,1147});
states[1147] = new State(new int[]{5,1148,97,1153,10,518},new int[]{-180,916});
states[1148] = new State(new int[]{129,325,74,25,75,26,69,28,67,29,139,143,141,144,140,145,103,203,102,204,130,139,131,140,8,466,128,480,18,485,39,493,40,543,27,554,65,558,56,561,35,566,30,568},new int[]{-242,1149,-243,318,-239,319,-155,320,-120,164,-125,24,-126,27,-81,449,-88,465,-89,464,-15,460,-174,461,-139,463,-141,137,-140,141,-226,478,-219,479,-247,482,-248,483,-245,484,-237,491,-27,492,-234,542,-102,553,-103,557,-197,563,-195,564,-194,565,-264,572});
states[1149] = new State(new int[]{97,1150,10,518},new int[]{-180,920});
states[1150] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289},new int[]{-85,1151,-87,227,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297});
states[1151] = new State(new int[]{10,1152,14,926,106,928,111,929,109,930,107,931,110,932,108,933,123,934},new int[]{-171,126});
states[1152] = new State(-385);
states[1153] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289},new int[]{-85,1154,-87,227,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297});
states[1154] = new State(new int[]{10,1155,14,926,106,928,111,929,109,930,107,931,110,932,108,933,123,934},new int[]{-171,126});
states[1155] = new State(-386);
states[1156] = new State(new int[]{23,514,35,1139,30,1145},new int[]{-192,1157,-199,1121,-196,714,-200,912});
states[1157] = new State(-383);
states[1158] = new State(-76);
states[1159] = new State(-58,new int[]{-152,1160,-37,1126,-38,1109});
states[1160] = new State(-380);
states[1161] = new State(new int[]{3,1163,43,-12,79,-12,50,-12,22,-12,58,-12,41,-12,44,-12,53,-12,11,-12,35,-12,30,-12,20,-12,23,-12,24,-12,34,-12,80,-12,91,-12},new int[]{-159,1162});
states[1162] = new State(-14);
states[1163] = new State(new int[]{129,1164,130,1165});
states[1164] = new State(-15);
states[1165] = new State(-16);
states[1166] = new State(-13);
states[1167] = new State(new int[]{129,23,74,25,75,26,69,28,67,29},new int[]{-120,1168,-125,24,-126,27});
states[1168] = new State(new int[]{10,1170,8,1171},new int[]{-162,1169});
states[1169] = new State(-25);
states[1170] = new State(-26);
states[1171] = new State(new int[]{129,23,74,25,75,26,69,28,67,29},new int[]{-164,1172,-119,1178,-120,1177,-125,24,-126,27});
states[1172] = new State(new int[]{9,1173,88,1175});
states[1173] = new State(new int[]{10,1174});
states[1174] = new State(-27);
states[1175] = new State(new int[]{129,23,74,25,75,26,69,28,67,29},new int[]{-119,1176,-120,1177,-125,24,-126,27});
states[1176] = new State(-29);
states[1177] = new State(-30);
states[1178] = new State(-28);
states[1179] = new State(-3);
states[1180] = new State(new int[]{93,1235,94,1236,11,597},new int[]{-270,1181,-220,509,-2,1230});
states[1181] = new State(new int[]{34,1202,43,-35,50,-35,22,-35,58,-35,41,-35,44,-35,53,-35,11,-35,35,-35,30,-35,20,-35,23,-35,24,-35,80,-35,91,-35,79,-35},new int[]{-136,1182,-137,1199,-266,1228});
states[1182] = new State(new int[]{32,1196},new int[]{-135,1183});
states[1183] = new State(new int[]{80,1186,91,1187,79,1193},new int[]{-128,1184});
states[1184] = new State(new int[]{7,1185});
states[1185] = new State(-41);
states[1186] = new State(-50);
states[1187] = new State(new int[]{127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,748,8,749,15,274,16,279,130,139,131,140,139,767,141,144,140,768,48,771,79,110,31,775,19,782,85,794,45,800,28,805,46,815,90,821,38,828,29,831,44,839,51,845,64,850,66,854,80,-443,92,-443,10,-443},new int[]{-222,1188,-232,798,-231,115,-3,116,-94,117,-104,208,-93,217,-120,747,-125,24,-126,27,-166,234,-227,273,-260,278,-14,300,-139,136,-141,137,-140,141,-15,142,-183,769,-105,770,-225,773,-127,774,-31,781,-217,793,-279,799,-98,804,-280,814,-134,819,-265,820,-218,827,-97,830,-275,838,-53,841,-149,842,-148,843,-143,844,-106,849,-99,853,-116,856});
states[1188] = new State(new int[]{80,1189,92,1190,10,113});
states[1189] = new State(-51);
states[1190] = new State(new int[]{127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,748,8,749,15,274,16,279,130,139,131,140,139,767,141,144,140,768,48,771,79,110,31,775,19,782,85,794,45,800,28,805,46,815,90,821,38,828,29,831,44,839,51,845,64,850,66,854,80,-443,10,-443},new int[]{-222,1191,-232,798,-231,115,-3,116,-94,117,-104,208,-93,217,-120,747,-125,24,-126,27,-166,234,-227,273,-260,278,-14,300,-139,136,-141,137,-140,141,-15,142,-183,769,-105,770,-225,773,-127,774,-31,781,-217,793,-279,799,-98,804,-280,814,-134,819,-265,820,-218,827,-97,830,-275,838,-53,841,-149,842,-148,843,-143,844,-106,849,-99,853,-116,856});
states[1191] = new State(new int[]{80,1192,10,113});
states[1192] = new State(-52);
states[1193] = new State(new int[]{127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,748,8,749,15,274,16,279,130,139,131,140,139,767,141,144,140,768,48,771,79,110,31,775,19,782,85,794,45,800,28,805,46,815,90,821,38,828,29,831,44,839,51,845,64,850,66,854,80,-443,10,-443},new int[]{-222,1194,-232,798,-231,115,-3,116,-94,117,-104,208,-93,217,-120,747,-125,24,-126,27,-166,234,-227,273,-260,278,-14,300,-139,136,-141,137,-140,141,-15,142,-183,769,-105,770,-225,773,-127,774,-31,781,-217,793,-279,799,-98,804,-280,814,-134,819,-265,820,-218,827,-97,830,-275,838,-53,841,-149,842,-148,843,-143,844,-106,849,-99,853,-116,856});
states[1194] = new State(new int[]{80,1195,10,113});
states[1195] = new State(-53);
states[1196] = new State(-35,new int[]{-266,1197});
states[1197] = new State(new int[]{43,14,50,-58,22,-58,58,-58,41,-58,44,-58,53,-58,11,-58,35,-58,30,-58,20,-58,23,-58,24,-58,80,-58,91,-58,79,-58},new int[]{-37,1198,-38,1109});
states[1198] = new State(-48);
states[1199] = new State(new int[]{80,1186,91,1187,79,1193},new int[]{-128,1200});
states[1200] = new State(new int[]{7,1201});
states[1201] = new State(-42);
states[1202] = new State(-35,new int[]{-266,1203});
states[1203] = new State(new int[]{43,14,22,-55,58,-55,41,-55,44,-55,53,-55,11,-55,35,-55,30,-55,32,-55},new int[]{-36,1204,-34,1205});
states[1204] = new State(-47);
states[1205] = new State(new int[]{22,663,58,667,41,1010,44,1016,53,1018,11,597,32,-54,35,-195,30,-195},new int[]{-43,1206,-25,1207,-47,1208,-254,1209,-271,1210,-203,1211,-5,1212,-220,609,-202,1227});
states[1206] = new State(-56);
states[1207] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,22,-63,58,-63,41,-63,44,-63,53,-63,11,-63,35,-63,30,-63,32,-63},new int[]{-23,649,-24,650,-114,652,-120,662,-125,24,-126,27});
states[1208] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,22,-64,58,-64,41,-64,44,-64,53,-64,11,-64,35,-64,30,-64,32,-64},new int[]{-23,666,-24,650,-114,652,-120,662,-125,24,-126,27});
states[1209] = new State(new int[]{11,597,22,-65,58,-65,41,-65,44,-65,53,-65,35,-65,30,-65,32,-65,129,-195,74,-195,75,-195,69,-195,67,-195},new int[]{-44,670,-5,671,-220,609});
states[1210] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,22,-66,58,-66,41,-66,44,-66,53,-66,11,-66,35,-66,30,-66,32,-66},new int[]{-272,1013,-273,1014,-132,698,-120,620,-125,24,-126,27});
states[1211] = new State(-67);
states[1212] = new State(new int[]{35,1219,11,597,30,1222},new int[]{-196,1213,-220,509,-200,1216});
states[1213] = new State(new int[]{133,1214,22,-83,58,-83,41,-83,44,-83,53,-83,11,-83,35,-83,30,-83,32,-83});
states[1214] = new State(new int[]{10,1215});
states[1215] = new State(-84);
states[1216] = new State(new int[]{133,1217,22,-85,58,-85,41,-85,44,-85,53,-85,11,-85,35,-85,30,-85,32,-85});
states[1217] = new State(new int[]{10,1218});
states[1218] = new State(-86);
states[1219] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,36,235},new int[]{-145,1220,-144,612,-115,613,-110,614,-107,615,-120,621,-125,24,-126,27,-166,622,-294,624,-122,628});
states[1220] = new State(new int[]{8,529,10,-419},new int[]{-100,1221});
states[1221] = new State(new int[]{10,518},new int[]{-180,718});
states[1222] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,36,235},new int[]{-144,1223,-115,613,-110,614,-107,615,-120,621,-125,24,-126,27,-166,622,-294,624,-122,628});
states[1223] = new State(new int[]{8,529,5,-419,10,-419},new int[]{-100,1224});
states[1224] = new State(new int[]{5,1225,10,518},new int[]{-180,916});
states[1225] = new State(new int[]{129,325,74,25,75,26,69,28,67,29,139,143,141,144,140,145,103,203,102,204,130,139,131,140,8,466,128,480,18,485,39,493,40,543,27,554,65,558,56,561,35,566,30,568},new int[]{-242,1226,-243,318,-239,319,-155,320,-120,164,-125,24,-126,27,-81,449,-88,465,-89,464,-15,460,-174,461,-139,463,-141,137,-140,141,-226,478,-219,479,-247,482,-248,483,-245,484,-237,491,-27,492,-234,542,-102,553,-103,557,-197,563,-195,564,-194,565,-264,572});
states[1226] = new State(new int[]{10,518},new int[]{-180,920});
states[1227] = new State(-68);
states[1228] = new State(new int[]{43,14,50,-58,22,-58,58,-58,41,-58,44,-58,53,-58,11,-58,35,-58,30,-58,20,-58,23,-58,24,-58,80,-58,91,-58,79,-58},new int[]{-37,1229,-38,1109});
states[1229] = new State(-49);
states[1230] = new State(new int[]{129,23,74,25,75,26,69,28,67,29},new int[]{-112,1231,-120,1234,-125,24,-126,27});
states[1231] = new State(new int[]{10,1232});
states[1232] = new State(new int[]{3,1163,34,-11,80,-11,91,-11,79,-11,43,-11,50,-11,22,-11,58,-11,41,-11,44,-11,53,-11,11,-11,35,-11,30,-11,20,-11,23,-11,24,-11},new int[]{-160,1233,-161,1161,-159,1166});
states[1233] = new State(-43);
states[1234] = new State(-46);
states[1235] = new State(-44);
states[1236] = new State(-45);
states[1237] = new State(-4);
states[1238] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289},new int[]{-78,1239,-86,120,-85,125,-87,176,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297,-211,298,-96,299});
states[1239] = new State(-5);
states[1240] = new State(new int[]{129,23,74,25,75,26,69,28,67,29},new int[]{-281,1241,-282,1242,-120,1246,-125,24,-126,27});
states[1241] = new State(-6);
states[1242] = new State(new int[]{7,1243,109,157,2,-602},new int[]{-263,1245});
states[1243] = new State(new int[]{129,23,74,25,75,26,69,28,67,29,73,32,72,33,71,34,70,35,60,36,55,37,114,38,16,39,15,40,54,41,17,42,115,43,116,44,117,45,118,46,119,47,120,48,121,49,122,50,123,51,124,52,18,53,65,54,79,55,19,56,20,57,22,58,23,59,24,60,63,61,87,62,25,63,26,64,27,65,21,66,92,67,89,68,28,69,29,70,30,71,31,72,32,73,33,74,91,75,34,76,35,77,37,78,38,79,39,80,85,81,40,82,90,83,41,84,42,85,62,86,86,87,43,88,44,89,45,90,46,91,47,92,48,93,49,94,50,95,52,96,93,97,94,98,95,99,96,100,36,102,80,103},new int[]{-111,1244,-120,22,-125,24,-126,27,-258,30,-124,31,-259,101});
states[1244] = new State(-601);
states[1245] = new State(-603);
states[1246] = new State(-600);
states[1247] = new State(new int[]{47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,1251,15,274,16,279,30,285,35,289,44,839},new int[]{-230,1248,-78,1249,-86,120,-85,125,-87,176,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,1250,-104,208,-93,217,-120,223,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297,-211,298,-96,299,-3,1252,-275,1253});
states[1248] = new State(-7);
states[1249] = new State(-8);
states[1250] = new State(new int[]{97,259,98,260,99,261,100,262,101,263,105,-591,104,-591,117,-591,118,-591,119,-591,120,-591,116,-591,122,-591,124,-591,5,-591,103,-591,102,-591,114,-591,115,-591,112,-591,14,-591,106,-591,111,-591,109,-591,107,-591,110,-591,108,-591,123,-591,13,-591,2,-591},new int[]{-169,118});
states[1251] = new State(new int[]{9,269,47,132,130,139,131,140,139,143,141,144,140,145,54,147,11,167,121,199,103,203,102,204,128,205,127,216,129,23,74,25,75,26,69,28,67,228,36,235,33,264,8,266,15,274,16,279,30,285,35,289},new int[]{-78,267,-120,1050,-86,1069,-93,750,-85,125,-87,176,-75,186,-84,198,-14,133,-139,136,-141,137,-140,141,-15,142,-52,146,-174,201,-94,207,-104,208,-125,24,-126,27,-166,234,-227,273,-260,278,-283,283,-284,284,-148,296,-235,297,-211,298,-96,299});
states[1252] = new State(-9);
states[1253] = new State(-10);
rules[1] = new Rule(-298, new int[]{-1,2});
rules[2] = new Rule(-1, new int[]{-205});
rules[3] = new Rule(-1, new int[]{-268});
rules[4] = new Rule(-1, new int[]{-150});
rules[5] = new Rule(-150, new int[]{76,-78});
rules[6] = new Rule(-150, new int[]{78,-281});
rules[7] = new Rule(-150, new int[]{77,-230});
rules[8] = new Rule(-230, new int[]{-78});
rules[9] = new Rule(-230, new int[]{-3});
rules[10] = new Rule(-230, new int[]{-275});
rules[11] = new Rule(-160, new int[]{});
rules[12] = new Rule(-160, new int[]{-161});
rules[13] = new Rule(-161, new int[]{-159});
rules[14] = new Rule(-161, new int[]{-161,-159});
rules[15] = new Rule(-159, new int[]{3,129});
rules[16] = new Rule(-159, new int[]{3,130});
rules[17] = new Rule(-205, new int[]{-206,-160,-266,-16,-163});
rules[18] = new Rule(-163, new int[]{7});
rules[19] = new Rule(-163, new int[]{10});
rules[20] = new Rule(-163, new int[]{5});
rules[21] = new Rule(-163, new int[]{88});
rules[22] = new Rule(-163, new int[]{6});
rules[23] = new Rule(-163, new int[]{});
rules[24] = new Rule(-206, new int[]{});
rules[25] = new Rule(-206, new int[]{52,-120,-162});
rules[26] = new Rule(-162, new int[]{10});
rules[27] = new Rule(-162, new int[]{8,-164,9,10});
rules[28] = new Rule(-164, new int[]{-119});
rules[29] = new Rule(-164, new int[]{-164,88,-119});
rules[30] = new Rule(-119, new int[]{-120});
rules[31] = new Rule(-16, new int[]{-33,-225});
rules[32] = new Rule(-33, new int[]{-37});
rules[33] = new Rule(-131, new int[]{-111});
rules[34] = new Rule(-131, new int[]{-131,7,-111});
rules[35] = new Rule(-266, new int[]{});
rules[36] = new Rule(-266, new int[]{-266,43,-267,10});
rules[37] = new Rule(-267, new int[]{-269});
rules[38] = new Rule(-267, new int[]{-267,88,-269});
rules[39] = new Rule(-269, new int[]{-131});
rules[40] = new Rule(-269, new int[]{-131,123,130});
rules[41] = new Rule(-268, new int[]{-5,-270,-136,-135,-128,7});
rules[42] = new Rule(-268, new int[]{-5,-270,-137,-128,7});
rules[43] = new Rule(-270, new int[]{-2,-112,10,-160});
rules[44] = new Rule(-2, new int[]{93});
rules[45] = new Rule(-2, new int[]{94});
rules[46] = new Rule(-112, new int[]{-120});
rules[47] = new Rule(-136, new int[]{34,-266,-36});
rules[48] = new Rule(-135, new int[]{32,-266,-37});
rules[49] = new Rule(-137, new int[]{-266,-37});
rules[50] = new Rule(-128, new int[]{80});
rules[51] = new Rule(-128, new int[]{91,-222,80});
rules[52] = new Rule(-128, new int[]{91,-222,92,-222,80});
rules[53] = new Rule(-128, new int[]{79,-222,80});
rules[54] = new Rule(-36, new int[]{-34});
rules[55] = new Rule(-34, new int[]{});
rules[56] = new Rule(-34, new int[]{-34,-43});
rules[57] = new Rule(-37, new int[]{-38});
rules[58] = new Rule(-38, new int[]{});
rules[59] = new Rule(-38, new int[]{-38,-42});
rules[60] = new Rule(-39, new int[]{-35});
rules[61] = new Rule(-35, new int[]{});
rules[62] = new Rule(-35, new int[]{-35,-41});
rules[63] = new Rule(-43, new int[]{-25});
rules[64] = new Rule(-43, new int[]{-47});
rules[65] = new Rule(-43, new int[]{-254});
rules[66] = new Rule(-43, new int[]{-271});
rules[67] = new Rule(-43, new int[]{-203});
rules[68] = new Rule(-43, new int[]{-202});
rules[69] = new Rule(-42, new int[]{-142});
rules[70] = new Rule(-42, new int[]{-25});
rules[71] = new Rule(-42, new int[]{-47});
rules[72] = new Rule(-42, new int[]{-254});
rules[73] = new Rule(-42, new int[]{-271});
rules[74] = new Rule(-42, new int[]{-191});
rules[75] = new Rule(-184, new int[]{-185});
rules[76] = new Rule(-184, new int[]{-188});
rules[77] = new Rule(-191, new int[]{-5,-184});
rules[78] = new Rule(-41, new int[]{-142});
rules[79] = new Rule(-41, new int[]{-25});
rules[80] = new Rule(-41, new int[]{-47});
rules[81] = new Rule(-41, new int[]{-254});
rules[82] = new Rule(-41, new int[]{-271});
rules[83] = new Rule(-203, new int[]{-5,-196});
rules[84] = new Rule(-203, new int[]{-5,-196,133,10});
rules[85] = new Rule(-202, new int[]{-5,-200});
rules[86] = new Rule(-202, new int[]{-5,-200,133,10});
rules[87] = new Rule(-142, new int[]{50,-130,10});
rules[88] = new Rule(-130, new int[]{-116});
rules[89] = new Rule(-130, new int[]{-130,88,-116});
rules[90] = new Rule(-116, new int[]{139});
rules[91] = new Rule(-116, new int[]{140});
rules[92] = new Rule(-116, new int[]{-120});
rules[93] = new Rule(-25, new int[]{22,-23});
rules[94] = new Rule(-25, new int[]{-25,-23});
rules[95] = new Rule(-47, new int[]{58,-23});
rules[96] = new Rule(-47, new int[]{-47,-23});
rules[97] = new Rule(-254, new int[]{41,-44});
rules[98] = new Rule(-254, new int[]{-254,-44});
rules[99] = new Rule(-271, new int[]{44,-272});
rules[100] = new Rule(-271, new int[]{53,-272});
rules[101] = new Rule(-271, new int[]{-271,-272});
rules[102] = new Rule(-23, new int[]{-24,10});
rules[103] = new Rule(-24, new int[]{-114,106,-91});
rules[104] = new Rule(-24, new int[]{-114,5,-243,106,-76});
rules[105] = new Rule(-91, new int[]{-79});
rules[106] = new Rule(-91, new int[]{-83});
rules[107] = new Rule(-114, new int[]{-120});
rules[108] = new Rule(-72, new int[]{-86});
rules[109] = new Rule(-72, new int[]{-72,88,-86});
rules[110] = new Rule(-79, new int[]{-74});
rules[111] = new Rule(-79, new int[]{-120,113,-289});
rules[112] = new Rule(-79, new int[]{8,9,-285,113,-289});
rules[113] = new Rule(-79, new int[]{8,-60,9,113,-289});
rules[114] = new Rule(-79, new int[]{-74,-167,-74});
rules[115] = new Rule(-79, new int[]{-212});
rules[116] = new Rule(-212, new int[]{-79,13,-79,5,-79});
rules[117] = new Rule(-167, new int[]{106});
rules[118] = new Rule(-167, new int[]{111});
rules[119] = new Rule(-167, new int[]{109});
rules[120] = new Rule(-167, new int[]{107});
rules[121] = new Rule(-167, new int[]{110});
rules[122] = new Rule(-167, new int[]{108});
rules[123] = new Rule(-167, new int[]{123});
rules[124] = new Rule(-74, new int[]{-11});
rules[125] = new Rule(-74, new int[]{-74,-168,-11});
rules[126] = new Rule(-168, new int[]{103});
rules[127] = new Rule(-168, new int[]{102});
rules[128] = new Rule(-168, new int[]{114});
rules[129] = new Rule(-168, new int[]{115});
rules[130] = new Rule(-236, new int[]{-11,-176,-249});
rules[131] = new Rule(-11, new int[]{-9});
rules[132] = new Rule(-11, new int[]{-236});
rules[133] = new Rule(-11, new int[]{-11,-170,-9});
rules[134] = new Rule(-170, new int[]{105});
rules[135] = new Rule(-170, new int[]{104});
rules[136] = new Rule(-170, new int[]{117});
rules[137] = new Rule(-170, new int[]{118});
rules[138] = new Rule(-170, new int[]{119});
rules[139] = new Rule(-170, new int[]{120});
rules[140] = new Rule(-170, new int[]{116});
rules[141] = new Rule(-9, new int[]{-12});
rules[142] = new Rule(-9, new int[]{-210});
rules[143] = new Rule(-9, new int[]{-15});
rules[144] = new Rule(-9, new int[]{-139});
rules[145] = new Rule(-9, new int[]{47});
rules[146] = new Rule(-9, new int[]{127,-9});
rules[147] = new Rule(-9, new int[]{8,-79,9});
rules[148] = new Rule(-9, new int[]{121,-9});
rules[149] = new Rule(-9, new int[]{-174,-9});
rules[150] = new Rule(-9, new int[]{128,-9});
rules[151] = new Rule(-210, new int[]{11,-68,12});
rules[152] = new Rule(-174, new int[]{103});
rules[153] = new Rule(-174, new int[]{102});
rules[154] = new Rule(-12, new int[]{-120});
rules[155] = new Rule(-12, new int[]{-227});
rules[156] = new Rule(-12, new int[]{-260});
rules[157] = new Rule(-12, new int[]{-12,-10});
rules[158] = new Rule(-10, new int[]{7,-111});
rules[159] = new Rule(-10, new int[]{128});
rules[160] = new Rule(-10, new int[]{8,-69,9});
rules[161] = new Rule(-10, new int[]{11,-68,12});
rules[162] = new Rule(-69, new int[]{-66});
rules[163] = new Rule(-69, new int[]{});
rules[164] = new Rule(-66, new int[]{-79});
rules[165] = new Rule(-66, new int[]{-66,88,-79});
rules[166] = new Rule(-68, new int[]{-65});
rules[167] = new Rule(-68, new int[]{});
rules[168] = new Rule(-65, new int[]{-82});
rules[169] = new Rule(-65, new int[]{-65,88,-82});
rules[170] = new Rule(-82, new int[]{-79});
rules[171] = new Rule(-82, new int[]{-79,6,-79});
rules[172] = new Rule(-15, new int[]{139});
rules[173] = new Rule(-15, new int[]{141});
rules[174] = new Rule(-15, new int[]{140});
rules[175] = new Rule(-76, new int[]{-79});
rules[176] = new Rule(-76, new int[]{-83});
rules[177] = new Rule(-76, new int[]{-213});
rules[178] = new Rule(-83, new int[]{8,-60,9});
rules[179] = new Rule(-83, new int[]{8,-213,9});
rules[180] = new Rule(-83, new int[]{8,-83,9});
rules[181] = new Rule(-60, new int[]{});
rules[182] = new Rule(-60, new int[]{-59});
rules[183] = new Rule(-59, new int[]{-77});
rules[184] = new Rule(-59, new int[]{-59,88,-77});
rules[185] = new Rule(-213, new int[]{8,-215,9});
rules[186] = new Rule(-215, new int[]{-214});
rules[187] = new Rule(-215, new int[]{-214,10});
rules[188] = new Rule(-214, new int[]{-216});
rules[189] = new Rule(-214, new int[]{-214,10,-216});
rules[190] = new Rule(-216, new int[]{-109,5,-76});
rules[191] = new Rule(-109, new int[]{-120});
rules[192] = new Rule(-44, new int[]{-5,-45});
rules[193] = new Rule(-5, new int[]{-220});
rules[194] = new Rule(-5, new int[]{-5,-220});
rules[195] = new Rule(-5, new int[]{});
rules[196] = new Rule(-220, new int[]{11,-221,12});
rules[197] = new Rule(-221, new int[]{-7});
rules[198] = new Rule(-221, new int[]{-221,88,-7});
rules[199] = new Rule(-7, new int[]{-8});
rules[200] = new Rule(-7, new int[]{-120,5,-8});
rules[201] = new Rule(-45, new int[]{-117,106,-252,10});
rules[202] = new Rule(-45, new int[]{-118,-252,10});
rules[203] = new Rule(-117, new int[]{-120});
rules[204] = new Rule(-117, new int[]{-120,-129});
rules[205] = new Rule(-118, new int[]{-120,109,-132,108});
rules[206] = new Rule(-252, new int[]{-243});
rules[207] = new Rule(-252, new int[]{-26});
rules[208] = new Rule(-243, new int[]{-239});
rules[209] = new Rule(-243, new int[]{-226});
rules[210] = new Rule(-243, new int[]{-219});
rules[211] = new Rule(-243, new int[]{-247});
rules[212] = new Rule(-243, new int[]{-197});
rules[213] = new Rule(-243, new int[]{-264});
rules[214] = new Rule(-264, new int[]{-155,-263});
rules[215] = new Rule(-263, new int[]{109,-262,107});
rules[216] = new Rule(-262, new int[]{-246});
rules[217] = new Rule(-262, new int[]{-262,88,-246});
rules[218] = new Rule(-246, new int[]{-155});
rules[219] = new Rule(-246, new int[]{-264});
rules[220] = new Rule(-239, new int[]{-155});
rules[221] = new Rule(-239, new int[]{-81,6,-81});
rules[222] = new Rule(-239, new int[]{8,-73,9});
rules[223] = new Rule(-81, new int[]{-88});
rules[224] = new Rule(-81, new int[]{-81,-168,-88});
rules[225] = new Rule(-88, new int[]{-89});
rules[226] = new Rule(-88, new int[]{-88,-170,-89});
rules[227] = new Rule(-89, new int[]{-155});
rules[228] = new Rule(-89, new int[]{-15});
rules[229] = new Rule(-89, new int[]{-174,-89});
rules[230] = new Rule(-89, new int[]{-139});
rules[231] = new Rule(-89, new int[]{-89,8,-68,9});
rules[232] = new Rule(-155, new int[]{-120});
rules[233] = new Rule(-155, new int[]{-155,7,-111});
rules[234] = new Rule(-73, new int[]{-71,88,-71});
rules[235] = new Rule(-73, new int[]{-73,88,-71});
rules[236] = new Rule(-71, new int[]{-243});
rules[237] = new Rule(-71, new int[]{-243,106,-78});
rules[238] = new Rule(-219, new int[]{128,-242});
rules[239] = new Rule(-247, new int[]{-248});
rules[240] = new Rule(-247, new int[]{56,-248});
rules[241] = new Rule(-248, new int[]{-245});
rules[242] = new Rule(-248, new int[]{-27});
rules[243] = new Rule(-248, new int[]{-234});
rules[244] = new Rule(-248, new int[]{-102});
rules[245] = new Rule(-248, new int[]{-103});
rules[246] = new Rule(-103, new int[]{65,49,-246});
rules[247] = new Rule(-245, new int[]{18,11,-138,12,49,-243});
rules[248] = new Rule(-245, new int[]{-237});
rules[249] = new Rule(-237, new int[]{18,49,-243});
rules[250] = new Rule(-138, new int[]{-238});
rules[251] = new Rule(-138, new int[]{-138,88,-238});
rules[252] = new Rule(-238, new int[]{-239});
rules[253] = new Rule(-238, new int[]{});
rules[254] = new Rule(-234, new int[]{40,49,-239});
rules[255] = new Rule(-102, new int[]{27,49,-243});
rules[256] = new Rule(-102, new int[]{27});
rules[257] = new Rule(-226, new int[]{129,11,-79,12});
rules[258] = new Rule(-197, new int[]{-195});
rules[259] = new Rule(-195, new int[]{-194});
rules[260] = new Rule(-194, new int[]{35,-100});
rules[261] = new Rule(-194, new int[]{30,-100});
rules[262] = new Rule(-194, new int[]{30,-100,5,-242});
rules[263] = new Rule(-194, new int[]{-155,113,-246});
rules[264] = new Rule(-194, new int[]{-264,113,-246});
rules[265] = new Rule(-194, new int[]{8,9,113,-246});
rules[266] = new Rule(-194, new int[]{8,-73,9,113,-246});
rules[267] = new Rule(-194, new int[]{-155,113,8,9});
rules[268] = new Rule(-194, new int[]{-264,113,8,9});
rules[269] = new Rule(-194, new int[]{8,9,113,8,9});
rules[270] = new Rule(-194, new int[]{8,-73,9,113,8,9});
rules[271] = new Rule(-26, new int[]{-19,-256,-158,-278,-22});
rules[272] = new Rule(-27, new int[]{39,-158,-278,-21,80});
rules[273] = new Rule(-18, new int[]{60});
rules[274] = new Rule(-18, new int[]{61});
rules[275] = new Rule(-18, new int[]{132});
rules[276] = new Rule(-18, new int[]{21});
rules[277] = new Rule(-19, new int[]{});
rules[278] = new Rule(-19, new int[]{-20});
rules[279] = new Rule(-20, new int[]{-18});
rules[280] = new Rule(-20, new int[]{-20,-18});
rules[281] = new Rule(-256, new int[]{20});
rules[282] = new Rule(-256, new int[]{34});
rules[283] = new Rule(-256, new int[]{55});
rules[284] = new Rule(-256, new int[]{55,20});
rules[285] = new Rule(-256, new int[]{55,39});
rules[286] = new Rule(-256, new int[]{55,34});
rules[287] = new Rule(-22, new int[]{});
rules[288] = new Rule(-22, new int[]{-21,80});
rules[289] = new Rule(-158, new int[]{});
rules[290] = new Rule(-158, new int[]{8,-157,9});
rules[291] = new Rule(-157, new int[]{-156});
rules[292] = new Rule(-157, new int[]{-157,88,-156});
rules[293] = new Rule(-156, new int[]{-155});
rules[294] = new Rule(-156, new int[]{-264});
rules[295] = new Rule(-129, new int[]{109,-132,107});
rules[296] = new Rule(-278, new int[]{});
rules[297] = new Rule(-278, new int[]{-277});
rules[298] = new Rule(-277, new int[]{-276});
rules[299] = new Rule(-277, new int[]{-277,-276});
rules[300] = new Rule(-276, new int[]{17,-132,5,-253,10});
rules[301] = new Rule(-253, new int[]{-250});
rules[302] = new Rule(-253, new int[]{-253,88,-250});
rules[303] = new Rule(-250, new int[]{-243});
rules[304] = new Rule(-250, new int[]{20});
rules[305] = new Rule(-250, new int[]{39});
rules[306] = new Rule(-250, new int[]{23});
rules[307] = new Rule(-21, new int[]{-28});
rules[308] = new Rule(-21, new int[]{-21,-6,-28});
rules[309] = new Rule(-6, new int[]{73});
rules[310] = new Rule(-6, new int[]{72});
rules[311] = new Rule(-6, new int[]{71});
rules[312] = new Rule(-6, new int[]{70});
rules[313] = new Rule(-28, new int[]{});
rules[314] = new Rule(-28, new int[]{-30,-165});
rules[315] = new Rule(-28, new int[]{-29});
rules[316] = new Rule(-28, new int[]{-30,10,-29});
rules[317] = new Rule(-132, new int[]{-120});
rules[318] = new Rule(-132, new int[]{-132,88,-120});
rules[319] = new Rule(-165, new int[]{});
rules[320] = new Rule(-165, new int[]{10});
rules[321] = new Rule(-30, new int[]{-40});
rules[322] = new Rule(-30, new int[]{-30,10,-40});
rules[323] = new Rule(-40, new int[]{-5,-46});
rules[324] = new Rule(-29, new int[]{-49});
rules[325] = new Rule(-29, new int[]{-29,-49});
rules[326] = new Rule(-49, new int[]{-48});
rules[327] = new Rule(-49, new int[]{-50});
rules[328] = new Rule(-46, new int[]{22,-24});
rules[329] = new Rule(-46, new int[]{-274});
rules[330] = new Rule(-46, new int[]{20,-274});
rules[331] = new Rule(-274, new int[]{-273});
rules[332] = new Rule(-274, new int[]{53,-132,5,-243});
rules[333] = new Rule(-48, new int[]{-5,-193});
rules[334] = new Rule(-48, new int[]{-5,-190});
rules[335] = new Rule(-190, new int[]{-186});
rules[336] = new Rule(-190, new int[]{-189});
rules[337] = new Rule(-193, new int[]{20,-201});
rules[338] = new Rule(-193, new int[]{-201});
rules[339] = new Rule(-193, new int[]{-198});
rules[340] = new Rule(-201, new int[]{-199});
rules[341] = new Rule(-199, new int[]{-196});
rules[342] = new Rule(-199, new int[]{-200});
rules[343] = new Rule(-198, new int[]{23,-146,-100,-180});
rules[344] = new Rule(-198, new int[]{20,23,-146,-100,-180});
rules[345] = new Rule(-198, new int[]{24,-146,-100,-180});
rules[346] = new Rule(-146, new int[]{-145});
rules[347] = new Rule(-146, new int[]{});
rules[348] = new Rule(-147, new int[]{-120});
rules[349] = new Rule(-147, new int[]{-124});
rules[350] = new Rule(-147, new int[]{-147,7,-120});
rules[351] = new Rule(-147, new int[]{-147,7,-124});
rules[352] = new Rule(-50, new int[]{-5,-228});
rules[353] = new Rule(-228, new int[]{-229});
rules[354] = new Rule(-228, new int[]{20,-229});
rules[355] = new Rule(-229, new int[]{37,-147,-204,-177,10,-178});
rules[356] = new Rule(-178, new int[]{});
rules[357] = new Rule(-178, new int[]{54,10});
rules[358] = new Rule(-204, new int[]{});
rules[359] = new Rule(-204, new int[]{-209,5,-242});
rules[360] = new Rule(-209, new int[]{});
rules[361] = new Rule(-209, new int[]{11,-208,12});
rules[362] = new Rule(-208, new int[]{-207});
rules[363] = new Rule(-208, new int[]{-208,10,-207});
rules[364] = new Rule(-207, new int[]{-132,5,-242});
rules[365] = new Rule(-123, new int[]{-120});
rules[366] = new Rule(-123, new int[]{});
rules[367] = new Rule(-177, new int[]{});
rules[368] = new Rule(-177, new int[]{74,-123,-177});
rules[369] = new Rule(-177, new int[]{75,-123,-177});
rules[370] = new Rule(-272, new int[]{-273,10});
rules[371] = new Rule(-297, new int[]{97});
rules[372] = new Rule(-297, new int[]{106});
rules[373] = new Rule(-273, new int[]{-132,5,-243});
rules[374] = new Rule(-273, new int[]{-132,97,-78});
rules[375] = new Rule(-273, new int[]{-132,5,-243,-297,-77});
rules[376] = new Rule(-273, new int[]{-132,5,-243,-297,-284});
rules[377] = new Rule(-77, new int[]{-76});
rules[378] = new Rule(-77, new int[]{-148});
rules[379] = new Rule(-77, new int[]{-52});
rules[380] = new Rule(-188, new int[]{-198,-152});
rules[381] = new Rule(-189, new int[]{-198,-151});
rules[382] = new Rule(-185, new int[]{-192});
rules[383] = new Rule(-185, new int[]{20,-192});
rules[384] = new Rule(-192, new int[]{-199,-153});
rules[385] = new Rule(-192, new int[]{30,-144,-100,5,-242,97,-85,10});
rules[386] = new Rule(-192, new int[]{30,-144,-100,97,-85,10});
rules[387] = new Rule(-192, new int[]{35,-145,-100,97,-232,10});
rules[388] = new Rule(-192, new int[]{-199,133,10});
rules[389] = new Rule(-186, new int[]{-187});
rules[390] = new Rule(-186, new int[]{20,-187});
rules[391] = new Rule(-187, new int[]{-199,-151});
rules[392] = new Rule(-187, new int[]{30,-144,-100,5,-242,-181,97,-85,10});
rules[393] = new Rule(-187, new int[]{30,-144,-100,-181,97,-85,10});
rules[394] = new Rule(-187, new int[]{35,-145,-100,-181,97,-232,10});
rules[395] = new Rule(-153, new int[]{-152});
rules[396] = new Rule(-153, new int[]{-55});
rules[397] = new Rule(-145, new int[]{-144});
rules[398] = new Rule(-144, new int[]{-115});
rules[399] = new Rule(-144, new int[]{-294,7,-115});
rules[400] = new Rule(-122, new int[]{-110});
rules[401] = new Rule(-294, new int[]{-122});
rules[402] = new Rule(-294, new int[]{-294,7,-122});
rules[403] = new Rule(-115, new int[]{-110});
rules[404] = new Rule(-115, new int[]{-166});
rules[405] = new Rule(-115, new int[]{-166,-129});
rules[406] = new Rule(-110, new int[]{-107});
rules[407] = new Rule(-110, new int[]{-107,-129});
rules[408] = new Rule(-107, new int[]{-120});
rules[409] = new Rule(-196, new int[]{35,-145,-100,-180,-278});
rules[410] = new Rule(-200, new int[]{30,-144,-100,-180,-278});
rules[411] = new Rule(-200, new int[]{30,-144,-100,5,-242,-180,-278});
rules[412] = new Rule(-55, new int[]{95,-90,69,-90,10});
rules[413] = new Rule(-55, new int[]{95,-90,10});
rules[414] = new Rule(-55, new int[]{95,10});
rules[415] = new Rule(-90, new int[]{-120});
rules[416] = new Rule(-90, new int[]{-139});
rules[417] = new Rule(-152, new int[]{-37,-225,10});
rules[418] = new Rule(-151, new int[]{-39,-225,10});
rules[419] = new Rule(-100, new int[]{});
rules[420] = new Rule(-100, new int[]{8,9});
rules[421] = new Rule(-100, new int[]{8,-101,9});
rules[422] = new Rule(-101, new int[]{-51});
rules[423] = new Rule(-101, new int[]{-101,10,-51});
rules[424] = new Rule(-51, new int[]{-5,-261});
rules[425] = new Rule(-261, new int[]{-133,5,-242});
rules[426] = new Rule(-261, new int[]{44,-133,5,-242});
rules[427] = new Rule(-261, new int[]{22,-133,5,-242});
rules[428] = new Rule(-261, new int[]{96,-133,5,-242});
rules[429] = new Rule(-261, new int[]{-133,5,-242,97,-79});
rules[430] = new Rule(-261, new int[]{44,-133,5,-242,97,-79});
rules[431] = new Rule(-261, new int[]{22,-133,5,-242,97,-79});
rules[432] = new Rule(-133, new int[]{-108});
rules[433] = new Rule(-133, new int[]{-133,88,-108});
rules[434] = new Rule(-108, new int[]{-120});
rules[435] = new Rule(-242, new int[]{-243});
rules[436] = new Rule(-244, new int[]{-239});
rules[437] = new Rule(-244, new int[]{-226});
rules[438] = new Rule(-244, new int[]{-219});
rules[439] = new Rule(-244, new int[]{-247});
rules[440] = new Rule(-244, new int[]{-264});
rules[441] = new Rule(-232, new int[]{-231});
rules[442] = new Rule(-232, new int[]{-116,5,-232});
rules[443] = new Rule(-231, new int[]{});
rules[444] = new Rule(-231, new int[]{-3});
rules[445] = new Rule(-231, new int[]{-183});
rules[446] = new Rule(-231, new int[]{-105});
rules[447] = new Rule(-231, new int[]{-225});
rules[448] = new Rule(-231, new int[]{-127});
rules[449] = new Rule(-231, new int[]{-31});
rules[450] = new Rule(-231, new int[]{-217});
rules[451] = new Rule(-231, new int[]{-279});
rules[452] = new Rule(-231, new int[]{-98});
rules[453] = new Rule(-231, new int[]{-280});
rules[454] = new Rule(-231, new int[]{-134});
rules[455] = new Rule(-231, new int[]{-265});
rules[456] = new Rule(-231, new int[]{-218});
rules[457] = new Rule(-231, new int[]{-97});
rules[458] = new Rule(-231, new int[]{-275});
rules[459] = new Rule(-231, new int[]{-53});
rules[460] = new Rule(-231, new int[]{-143});
rules[461] = new Rule(-231, new int[]{-106});
rules[462] = new Rule(-231, new int[]{-99});
rules[463] = new Rule(-99, new int[]{66,-86});
rules[464] = new Rule(-106, new int[]{64,-78,-231});
rules[465] = new Rule(-275, new int[]{44,-273});
rules[466] = new Rule(-3, new int[]{-94,-169,-78});
rules[467] = new Rule(-3, new int[]{8,-93,88,-296,9,-169,-78});
rules[468] = new Rule(-296, new int[]{-93});
rules[469] = new Rule(-296, new int[]{-296,88,-93});
rules[470] = new Rule(-183, new int[]{-94});
rules[471] = new Rule(-105, new int[]{48,-116});
rules[472] = new Rule(-225, new int[]{79,-222,80});
rules[473] = new Rule(-222, new int[]{-232});
rules[474] = new Rule(-222, new int[]{-222,10,-232});
rules[475] = new Rule(-127, new int[]{31,-78,42,-232});
rules[476] = new Rule(-127, new int[]{31,-78,42,-232,25,-232});
rules[477] = new Rule(-31, new int[]{19,-78,49,-32,-223,80});
rules[478] = new Rule(-32, new int[]{-233});
rules[479] = new Rule(-32, new int[]{-32,10,-233});
rules[480] = new Rule(-233, new int[]{});
rules[481] = new Rule(-233, new int[]{-67,5,-232});
rules[482] = new Rule(-67, new int[]{-92});
rules[483] = new Rule(-67, new int[]{-67,88,-92});
rules[484] = new Rule(-92, new int[]{-82});
rules[485] = new Rule(-223, new int[]{});
rules[486] = new Rule(-223, new int[]{25,-222});
rules[487] = new Rule(-217, new int[]{85,-222,86,-78});
rules[488] = new Rule(-279, new int[]{45,-78,-257,-232});
rules[489] = new Rule(-257, new int[]{87});
rules[490] = new Rule(-257, new int[]{});
rules[491] = new Rule(-143, new int[]{51,-78,87,-232});
rules[492] = new Rule(-97, new int[]{29,-120,-241,123,-78,87,-232});
rules[493] = new Rule(-97, new int[]{29,44,-120,5,-243,123,-78,87,-232});
rules[494] = new Rule(-97, new int[]{29,44,-120,123,-78,87,-232});
rules[495] = new Rule(-241, new int[]{5,-243});
rules[496] = new Rule(-241, new int[]{});
rules[497] = new Rule(-98, new int[]{28,-17,-120,-251,-78,-95,-78,-257,-232});
rules[498] = new Rule(-17, new int[]{44});
rules[499] = new Rule(-17, new int[]{});
rules[500] = new Rule(-251, new int[]{97});
rules[501] = new Rule(-251, new int[]{5,-155,97});
rules[502] = new Rule(-95, new int[]{62});
rules[503] = new Rule(-95, new int[]{63});
rules[504] = new Rule(-280, new int[]{46,-64,87,-232});
rules[505] = new Rule(-134, new int[]{33});
rules[506] = new Rule(-265, new int[]{90,-222,-255});
rules[507] = new Rule(-255, new int[]{89,-222,80});
rules[508] = new Rule(-255, new int[]{26,-54,80});
rules[509] = new Rule(-54, new int[]{-57,-224});
rules[510] = new Rule(-54, new int[]{-57,10,-224});
rules[511] = new Rule(-54, new int[]{-222});
rules[512] = new Rule(-57, new int[]{-56});
rules[513] = new Rule(-57, new int[]{-57,10,-56});
rules[514] = new Rule(-224, new int[]{});
rules[515] = new Rule(-224, new int[]{25,-222});
rules[516] = new Rule(-56, new int[]{68,-58,87,-232});
rules[517] = new Rule(-58, new int[]{-154});
rules[518] = new Rule(-58, new int[]{-113,5,-154});
rules[519] = new Rule(-154, new int[]{-155});
rules[520] = new Rule(-113, new int[]{-120});
rules[521] = new Rule(-218, new int[]{38});
rules[522] = new Rule(-218, new int[]{38,-78});
rules[523] = new Rule(-64, new int[]{-78});
rules[524] = new Rule(-64, new int[]{-64,88,-78});
rules[525] = new Rule(-53, new int[]{-149});
rules[526] = new Rule(-149, new int[]{-148});
rules[527] = new Rule(-78, new int[]{-86});
rules[528] = new Rule(-78, new int[]{-96});
rules[529] = new Rule(-86, new int[]{-85});
rules[530] = new Rule(-86, new int[]{-211});
rules[531] = new Rule(-227, new int[]{15,8,-249,9});
rules[532] = new Rule(-260, new int[]{16,8,-249,9});
rules[533] = new Rule(-211, new int[]{-86,13,-86,5,-86});
rules[534] = new Rule(-249, new int[]{-155});
rules[535] = new Rule(-249, new int[]{-155,-263});
rules[536] = new Rule(-249, new int[]{-155,4,-263});
rules[537] = new Rule(-4, new int[]{8,-60,9});
rules[538] = new Rule(-4, new int[]{});
rules[539] = new Rule(-148, new int[]{67,-249,-63});
rules[540] = new Rule(-148, new int[]{67,-240,11,-61,12,-4});
rules[541] = new Rule(-148, new int[]{67,20,8,-293,9});
rules[542] = new Rule(-292, new int[]{-120,97,-85});
rules[543] = new Rule(-292, new int[]{-85});
rules[544] = new Rule(-293, new int[]{-292});
rules[545] = new Rule(-293, new int[]{-293,88,-292});
rules[546] = new Rule(-240, new int[]{-155});
rules[547] = new Rule(-240, new int[]{-237});
rules[548] = new Rule(-63, new int[]{});
rules[549] = new Rule(-63, new int[]{8,-61,9});
rules[550] = new Rule(-85, new int[]{-87});
rules[551] = new Rule(-85, new int[]{-85,-171,-87});
rules[552] = new Rule(-85, new int[]{-85,14,-87});
rules[553] = new Rule(-96, new int[]{-87,5,-87});
rules[554] = new Rule(-96, new int[]{-87,5,-87,5,-87});
rules[555] = new Rule(-171, new int[]{106});
rules[556] = new Rule(-171, new int[]{111});
rules[557] = new Rule(-171, new int[]{109});
rules[558] = new Rule(-171, new int[]{107});
rules[559] = new Rule(-171, new int[]{110});
rules[560] = new Rule(-171, new int[]{108});
rules[561] = new Rule(-171, new int[]{123});
rules[562] = new Rule(-87, new int[]{-75});
rules[563] = new Rule(-87, new int[]{-87,-172,-75});
rules[564] = new Rule(-172, new int[]{103});
rules[565] = new Rule(-172, new int[]{102});
rules[566] = new Rule(-172, new int[]{114});
rules[567] = new Rule(-172, new int[]{115});
rules[568] = new Rule(-172, new int[]{112});
rules[569] = new Rule(-176, new int[]{122});
rules[570] = new Rule(-176, new int[]{124});
rules[571] = new Rule(-235, new int[]{-75,-176,-249});
rules[572] = new Rule(-75, new int[]{-84});
rules[573] = new Rule(-75, new int[]{-148});
rules[574] = new Rule(-75, new int[]{-75,-173,-84});
rules[575] = new Rule(-75, new int[]{-235});
rules[576] = new Rule(-173, new int[]{105});
rules[577] = new Rule(-173, new int[]{104});
rules[578] = new Rule(-173, new int[]{117});
rules[579] = new Rule(-173, new int[]{118});
rules[580] = new Rule(-173, new int[]{119});
rules[581] = new Rule(-173, new int[]{120});
rules[582] = new Rule(-173, new int[]{116});
rules[583] = new Rule(-52, new int[]{54,8,-249,9});
rules[584] = new Rule(-84, new int[]{47});
rules[585] = new Rule(-84, new int[]{-14});
rules[586] = new Rule(-84, new int[]{-52});
rules[587] = new Rule(-84, new int[]{11,-62,12});
rules[588] = new Rule(-84, new int[]{121,-84});
rules[589] = new Rule(-84, new int[]{-174,-84});
rules[590] = new Rule(-84, new int[]{128,-84});
rules[591] = new Rule(-84, new int[]{-94});
rules[592] = new Rule(-84, new int[]{-283});
rules[593] = new Rule(-14, new int[]{-139});
rules[594] = new Rule(-14, new int[]{-15});
rules[595] = new Rule(-94, new int[]{-104,-93});
rules[596] = new Rule(-94, new int[]{-93});
rules[597] = new Rule(-104, new int[]{127});
rules[598] = new Rule(-104, new int[]{-104,127});
rules[599] = new Rule(-8, new int[]{-155,-63});
rules[600] = new Rule(-282, new int[]{-120});
rules[601] = new Rule(-282, new int[]{-282,7,-111});
rules[602] = new Rule(-281, new int[]{-282});
rules[603] = new Rule(-281, new int[]{-282,-263});
rules[604] = new Rule(-93, new int[]{-120});
rules[605] = new Rule(-93, new int[]{-166});
rules[606] = new Rule(-93, new int[]{33,-120});
rules[607] = new Rule(-93, new int[]{8,-78,9});
rules[608] = new Rule(-93, new int[]{-227});
rules[609] = new Rule(-93, new int[]{-260});
rules[610] = new Rule(-93, new int[]{-14,7,-111});
rules[611] = new Rule(-93, new int[]{-93,-13});
rules[612] = new Rule(-13, new int[]{11,-64,12});
rules[613] = new Rule(-13, new int[]{8,-61,9});
rules[614] = new Rule(-13, new int[]{7,-121});
rules[615] = new Rule(-13, new int[]{128});
rules[616] = new Rule(-13, new int[]{4,-263});
rules[617] = new Rule(-61, new int[]{-64});
rules[618] = new Rule(-61, new int[]{});
rules[619] = new Rule(-62, new int[]{-70});
rules[620] = new Rule(-62, new int[]{});
rules[621] = new Rule(-70, new int[]{-80});
rules[622] = new Rule(-70, new int[]{-70,88,-80});
rules[623] = new Rule(-80, new int[]{-78});
rules[624] = new Rule(-80, new int[]{-78,6,-78});
rules[625] = new Rule(-140, new int[]{130});
rules[626] = new Rule(-140, new int[]{131});
rules[627] = new Rule(-139, new int[]{-141});
rules[628] = new Rule(-141, new int[]{-140});
rules[629] = new Rule(-141, new int[]{-141,-140});
rules[630] = new Rule(-166, new int[]{36,-175});
rules[631] = new Rule(-180, new int[]{10});
rules[632] = new Rule(-180, new int[]{10,-179,10});
rules[633] = new Rule(-181, new int[]{});
rules[634] = new Rule(-181, new int[]{10,-179});
rules[635] = new Rule(-179, new int[]{-182});
rules[636] = new Rule(-179, new int[]{-179,10,-182});
rules[637] = new Rule(-120, new int[]{129});
rules[638] = new Rule(-120, new int[]{-125});
rules[639] = new Rule(-120, new int[]{-126});
rules[640] = new Rule(-111, new int[]{-120});
rules[641] = new Rule(-111, new int[]{-258});
rules[642] = new Rule(-111, new int[]{-259});
rules[643] = new Rule(-121, new int[]{-120});
rules[644] = new Rule(-121, new int[]{-258});
rules[645] = new Rule(-121, new int[]{-166});
rules[646] = new Rule(-182, new int[]{132});
rules[647] = new Rule(-182, new int[]{134});
rules[648] = new Rule(-182, new int[]{135});
rules[649] = new Rule(-182, new int[]{136});
rules[650] = new Rule(-182, new int[]{138});
rules[651] = new Rule(-182, new int[]{137});
rules[652] = new Rule(-125, new int[]{74});
rules[653] = new Rule(-125, new int[]{75});
rules[654] = new Rule(-126, new int[]{69});
rules[655] = new Rule(-126, new int[]{67});
rules[656] = new Rule(-124, new int[]{73});
rules[657] = new Rule(-124, new int[]{72});
rules[658] = new Rule(-124, new int[]{71});
rules[659] = new Rule(-124, new int[]{70});
rules[660] = new Rule(-258, new int[]{-124});
rules[661] = new Rule(-258, new int[]{60});
rules[662] = new Rule(-258, new int[]{55});
rules[663] = new Rule(-258, new int[]{114});
rules[664] = new Rule(-258, new int[]{16});
rules[665] = new Rule(-258, new int[]{15});
rules[666] = new Rule(-258, new int[]{54});
rules[667] = new Rule(-258, new int[]{17});
rules[668] = new Rule(-258, new int[]{115});
rules[669] = new Rule(-258, new int[]{116});
rules[670] = new Rule(-258, new int[]{117});
rules[671] = new Rule(-258, new int[]{118});
rules[672] = new Rule(-258, new int[]{119});
rules[673] = new Rule(-258, new int[]{120});
rules[674] = new Rule(-258, new int[]{121});
rules[675] = new Rule(-258, new int[]{122});
rules[676] = new Rule(-258, new int[]{123});
rules[677] = new Rule(-258, new int[]{124});
rules[678] = new Rule(-258, new int[]{18});
rules[679] = new Rule(-258, new int[]{65});
rules[680] = new Rule(-258, new int[]{79});
rules[681] = new Rule(-258, new int[]{19});
rules[682] = new Rule(-258, new int[]{20});
rules[683] = new Rule(-258, new int[]{22});
rules[684] = new Rule(-258, new int[]{23});
rules[685] = new Rule(-258, new int[]{24});
rules[686] = new Rule(-258, new int[]{63});
rules[687] = new Rule(-258, new int[]{87});
rules[688] = new Rule(-258, new int[]{25});
rules[689] = new Rule(-258, new int[]{26});
rules[690] = new Rule(-258, new int[]{27});
rules[691] = new Rule(-258, new int[]{21});
rules[692] = new Rule(-258, new int[]{92});
rules[693] = new Rule(-258, new int[]{89});
rules[694] = new Rule(-258, new int[]{28});
rules[695] = new Rule(-258, new int[]{29});
rules[696] = new Rule(-258, new int[]{30});
rules[697] = new Rule(-258, new int[]{31});
rules[698] = new Rule(-258, new int[]{32});
rules[699] = new Rule(-258, new int[]{33});
rules[700] = new Rule(-258, new int[]{91});
rules[701] = new Rule(-258, new int[]{34});
rules[702] = new Rule(-258, new int[]{35});
rules[703] = new Rule(-258, new int[]{37});
rules[704] = new Rule(-258, new int[]{38});
rules[705] = new Rule(-258, new int[]{39});
rules[706] = new Rule(-258, new int[]{85});
rules[707] = new Rule(-258, new int[]{40});
rules[708] = new Rule(-258, new int[]{90});
rules[709] = new Rule(-258, new int[]{41});
rules[710] = new Rule(-258, new int[]{42});
rules[711] = new Rule(-258, new int[]{62});
rules[712] = new Rule(-258, new int[]{86});
rules[713] = new Rule(-258, new int[]{43});
rules[714] = new Rule(-258, new int[]{44});
rules[715] = new Rule(-258, new int[]{45});
rules[716] = new Rule(-258, new int[]{46});
rules[717] = new Rule(-258, new int[]{47});
rules[718] = new Rule(-258, new int[]{48});
rules[719] = new Rule(-258, new int[]{49});
rules[720] = new Rule(-258, new int[]{50});
rules[721] = new Rule(-258, new int[]{52});
rules[722] = new Rule(-258, new int[]{93});
rules[723] = new Rule(-258, new int[]{94});
rules[724] = new Rule(-258, new int[]{95});
rules[725] = new Rule(-258, new int[]{96});
rules[726] = new Rule(-259, new int[]{36});
rules[727] = new Rule(-259, new int[]{80});
rules[728] = new Rule(-175, new int[]{102});
rules[729] = new Rule(-175, new int[]{103});
rules[730] = new Rule(-175, new int[]{104});
rules[731] = new Rule(-175, new int[]{105});
rules[732] = new Rule(-175, new int[]{106});
rules[733] = new Rule(-175, new int[]{107});
rules[734] = new Rule(-175, new int[]{108});
rules[735] = new Rule(-175, new int[]{109});
rules[736] = new Rule(-175, new int[]{110});
rules[737] = new Rule(-175, new int[]{111});
rules[738] = new Rule(-175, new int[]{114});
rules[739] = new Rule(-175, new int[]{115});
rules[740] = new Rule(-175, new int[]{116});
rules[741] = new Rule(-175, new int[]{117});
rules[742] = new Rule(-175, new int[]{118});
rules[743] = new Rule(-175, new int[]{119});
rules[744] = new Rule(-175, new int[]{120});
rules[745] = new Rule(-175, new int[]{121});
rules[746] = new Rule(-175, new int[]{123});
rules[747] = new Rule(-175, new int[]{125});
rules[748] = new Rule(-175, new int[]{126});
rules[749] = new Rule(-175, new int[]{-169});
rules[750] = new Rule(-169, new int[]{97});
rules[751] = new Rule(-169, new int[]{98});
rules[752] = new Rule(-169, new int[]{99});
rules[753] = new Rule(-169, new int[]{100});
rules[754] = new Rule(-169, new int[]{101});
rules[755] = new Rule(-283, new int[]{-120,113,-289});
rules[756] = new Rule(-283, new int[]{8,9,-286,113,-289});
rules[757] = new Rule(-283, new int[]{8,-120,5,-242,9,-286,113,-289});
rules[758] = new Rule(-283, new int[]{8,-120,10,-287,9,-286,113,-289});
rules[759] = new Rule(-283, new int[]{8,-120,5,-242,10,-287,9,-286,113,-289});
rules[760] = new Rule(-283, new int[]{8,-86,88,-72,-285,-291,9,-295});
rules[761] = new Rule(-283, new int[]{-284});
rules[762] = new Rule(-291, new int[]{});
rules[763] = new Rule(-291, new int[]{10,-287});
rules[764] = new Rule(-295, new int[]{});
rules[765] = new Rule(-295, new int[]{-286,113,-289});
rules[766] = new Rule(-284, new int[]{30,-285,113,-289});
rules[767] = new Rule(-284, new int[]{30,8,9,-285,113,-289});
rules[768] = new Rule(-284, new int[]{30,8,-287,9,-285,113,-289});
rules[769] = new Rule(-284, new int[]{35,113,-290});
rules[770] = new Rule(-284, new int[]{35,8,9,113,-290});
rules[771] = new Rule(-284, new int[]{35,8,-287,9,113,-290});
rules[772] = new Rule(-287, new int[]{-288});
rules[773] = new Rule(-287, new int[]{-287,10,-288});
rules[774] = new Rule(-288, new int[]{-132,-285});
rules[775] = new Rule(-285, new int[]{});
rules[776] = new Rule(-285, new int[]{5,-242});
rules[777] = new Rule(-286, new int[]{});
rules[778] = new Rule(-286, new int[]{5,-244});
rules[779] = new Rule(-289, new int[]{-86});
rules[780] = new Rule(-289, new int[]{-225});
rules[781] = new Rule(-290, new int[]{-183});
rules[782] = new Rule(-290, new int[]{-225});
}
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)
ValueStack[ValueStack.Depth-4].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)
ValueStack[ValueStack.Depth-4].stn = ValueStack[ValueStack.Depth-2].stn;
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_key_word -> tkUnit
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 45: // unit_key_word -> tkLibrary
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 46: // unit_name -> identifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 47: // 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 48: // 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 49: // 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 50: // initialization_part -> tkEnd
{
CurrentSemanticValue.stn = new initfinal_part();
CurrentSemanticValue.stn.source_context = CurrentLocationSpan;
}
break;
case 51: // 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 52: // 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 53: // 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 54: // interface_decl_sect_list -> int_decl_sect_list1
{
if ((ValueStack[ValueStack.Depth-1].stn as declarations).defs.Count > 0)
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
else
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
}
break;
case 55: // int_decl_sect_list1 -> /* empty */
{
CurrentSemanticValue.stn = new declarations();
if (GlobalDecls==null)
GlobalDecls = CurrentSemanticValue.stn as declarations;
}
break;
case 56: // 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 57: // decl_sect_list -> decl_sect_list1
{
if ((ValueStack[ValueStack.Depth-1].stn as declarations).defs.Count > 0)
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
else
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
}
break;
case 58: // decl_sect_list1 -> /* empty */
{
CurrentSemanticValue.stn = new declarations();
if (GlobalDecls==null)
GlobalDecls = CurrentSemanticValue.stn as declarations;
}
break;
case 59: // 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 60: // inclass_decl_sect_list -> inclass_decl_sect_list1
{
if ((ValueStack[ValueStack.Depth-1].stn as declarations).defs.Count > 0)
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
else
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
}
break;
case 61: // inclass_decl_sect_list1 -> /* empty */
{
CurrentSemanticValue.stn = new declarations();
}
break;
case 62: // 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 63: // int_decl_sect -> const_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 64: // int_decl_sect -> res_str_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 65: // int_decl_sect -> type_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 66: // int_decl_sect -> var_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 67: // int_decl_sect -> int_proc_header
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].td; }
break;
case 68: // int_decl_sect -> int_func_header
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].td; }
break;
case 69: // decl_sect -> label_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 70: // decl_sect -> const_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 71: // decl_sect -> res_str_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 72: // decl_sect -> type_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 73: // decl_sect -> var_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 74: // decl_sect -> proc_func_constr_destr_decl_with_attr
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 75: // proc_func_constr_destr_decl -> proc_func_decl
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 76: // proc_func_constr_destr_decl -> constr_destr_decl
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 77: // 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 78: // abc_decl_sect -> label_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 79: // abc_decl_sect -> const_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 80: // abc_decl_sect -> res_str_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 81: // abc_decl_sect -> type_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 82: // abc_decl_sect -> var_decl_sect
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 83: // 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 84: // 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 85: // 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 86: // 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 87: // label_decl_sect -> tkLabel, label_list, tkSemiColon
{
CurrentSemanticValue.stn = new label_definitions(ValueStack[ValueStack.Depth-2].stn as ident_list, CurrentLocationSpan);
}
break;
case 88: // label_list -> label_name
{
CurrentSemanticValue.stn = new ident_list(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan);
}
break;
case 89: // 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 90: // label_name -> tkInteger
{
CurrentSemanticValue.id = new ident(ValueStack[ValueStack.Depth-1].ex.ToString(), CurrentLocationSpan);
}
break;
case 91: // label_name -> tkFloat
{
CurrentSemanticValue.id = new ident(ValueStack[ValueStack.Depth-1].ex.ToString(), CurrentLocationSpan);
}
break;
case 92: // label_name -> identifier
{
CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id;
}
break;
case 93: // const_decl_sect -> tkConst, const_decl
{
CurrentSemanticValue.stn = new consts_definitions_list(ValueStack[ValueStack.Depth-1].stn as const_definition, CurrentLocationSpan);
}
break;
case 94: // 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 95: // res_str_decl_sect -> tkResourceString, const_decl
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
}
break;
case 96: // res_str_decl_sect -> res_str_decl_sect, const_decl
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn;
}
break;
case 97: // type_decl_sect -> tkType, type_decl
{
CurrentSemanticValue.stn = new type_declarations(ValueStack[ValueStack.Depth-1].stn as type_declaration, CurrentLocationSpan);
}
break;
case 98: // 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 99: // var_decl_sect -> tkVar, var_decl
{
CurrentSemanticValue.stn = new variable_definitions(ValueStack[ValueStack.Depth-1].stn as var_def_statement, CurrentLocationSpan);
}
break;
case 100: // 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 101: // 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 102: // const_decl -> only_const_decl, tkSemiColon
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; }
break;
case 103: // 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 104: // 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 105: // init_const_expr -> const_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 106: // init_const_expr -> array_const
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 107: // const_name -> identifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 108: // expr_l1_list -> expr_l1
{
CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 109: // 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 110: // const_expr -> const_simple_expr
{
CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex;
}
break;
case 111: // const_expr -> 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(), null), 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(), null), ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan);
}
break;
case 112: // const_expr -> 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 113: // const_expr -> tkRoundOpen, typed_const_list, tkRoundClose, tkArrow,
// lambda_function_body
{
var el = ValueStack[ValueStack.Depth-4].stn as expression_list;
var cnt = el.expressions.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(), null);
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 114: // const_expr -> const_simple_expr, const_relop, const_simple_expr
{
CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan);
}
break;
case 115: // const_expr -> question_constexpr
{
CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex;
}
break;
case 116: // question_constexpr -> const_expr, tkQuestion, const_expr, tkColon, const_expr
{ CurrentSemanticValue.ex = new question_colon_expression(ValueStack[ValueStack.Depth-5].ex, ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); }
break;
case 117: // const_relop -> tkEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 118: // const_relop -> tkNotEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 119: // const_relop -> tkLower
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 120: // const_relop -> tkGreater
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 121: // const_relop -> tkLowerEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 122: // const_relop -> tkGreaterEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 123: // const_relop -> tkIn
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 124: // const_simple_expr -> const_term
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 125: // const_simple_expr -> const_simple_expr, const_addop, const_term
{ CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); }
break;
case 126: // const_addop -> tkPlus
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 127: // const_addop -> tkMinus
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 128: // const_addop -> tkOr
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 129: // const_addop -> tkXor
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 130: // as_is_constexpr -> const_term, typecast_op, simple_or_template_type_reference
{
CurrentSemanticValue.ex = NewAsIsConstexpr(ValueStack[ValueStack.Depth-3].ex, (op_typecast)ValueStack[ValueStack.Depth-2].ob, ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan);
}
break;
case 131: // 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 -> 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 134: // const_mulop -> tkStar
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 135: // const_mulop -> tkSlash
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 136: // const_mulop -> tkDiv
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 137: // const_mulop -> tkMod
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 138: // const_mulop -> tkShl
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 139: // const_mulop -> tkShr
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 140: // const_mulop -> tkAnd
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 141: // const_factor -> const_variable
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 142: // const_factor -> const_set
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 143: // const_factor -> unsigned_number
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 144: // const_factor -> literal
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 145: // const_factor -> tkNil
{
CurrentSemanticValue.ex = new nil_const();
CurrentSemanticValue.ex.source_context = CurrentLocationSpan;
}
break;
case 146: // const_factor -> tkAddressOf, const_factor
{
CurrentSemanticValue.ex = new get_address(ValueStack[ValueStack.Depth-1].ex as addressed_value, CurrentLocationSpan);
}
break;
case 147: // const_factor -> tkRoundOpen, const_expr, tkRoundClose
{
CurrentSemanticValue.ex = new bracket_expr(ValueStack[ValueStack.Depth-2].ex, CurrentLocationSpan);
}
break;
case 148: // const_factor -> tkNot, const_factor
{
CurrentSemanticValue.ex = new un_expr(ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan);
}
break;
case 149: // const_factor -> sign, const_factor
{
CurrentSemanticValue.ex = new un_expr(ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan);
}
break;
case 150: // const_factor -> tkDeref, const_factor
{
CurrentSemanticValue.ex = new roof_dereference(ValueStack[ValueStack.Depth-1].ex as addressed_value, CurrentLocationSpan);
}
break;
case 151: // const_set -> tkSquareOpen, const_elem_list, tkSquareClose
{
CurrentSemanticValue.ex = new pascal_set_constant(ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan);
}
break;
case 152: // sign -> tkPlus
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 153: // sign -> tkMinus
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 154: // const_variable -> identifier
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].id; }
break;
case 155: // const_variable -> sizeof_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 156: // const_variable -> typeof_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 157: // const_variable -> const_variable, const_variable_2
{
CurrentSemanticValue.ex = NewConstVariable(ValueStack[ValueStack.Depth-2].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 158: // const_variable_2 -> tkPoint, identifier_or_keyword
{
CurrentSemanticValue.ex = new dot_node(null, ValueStack[ValueStack.Depth-1].id as addressed_value, CurrentLocationSpan);
}
break;
case 159: // const_variable_2 -> tkDeref
{
CurrentSemanticValue.ex = new roof_dereference();
CurrentSemanticValue.ex.source_context = CurrentLocationSpan;
}
break;
case 160: // 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 161: // const_variable_2 -> tkSquareOpen, const_elem_list, tkSquareClose
{
CurrentSemanticValue.ex = new indexer(ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan);
}
break;
case 162: // optional_const_func_expr_list -> const_func_expr_list
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 163: // optional_const_func_expr_list -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 164: // const_func_expr_list -> const_expr
{
CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 165: // 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 166: // const_elem_list -> const_elem_list1
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 168: // const_elem_list1 -> const_elem
{
CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 169: // 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 170: // const_elem -> const_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 171: // 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 172: // unsigned_number -> tkInteger
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 173: // unsigned_number -> tkHex
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 174: // unsigned_number -> tkFloat
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 175: // typed_const -> const_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 176: // typed_const -> array_const
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 177: // typed_const -> record_const
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 178: // array_const -> tkRoundOpen, typed_const_list, tkRoundClose
{
CurrentSemanticValue.ex = new array_const(ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan);
}
break;
case 179: // array_const -> tkRoundOpen, record_const, tkRoundClose
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-2].ex; }
break;
case 180: // array_const -> tkRoundOpen, array_const, tkRoundClose
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-2].ex; }
break;
case 182: // typed_const_list -> typed_const_list1
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
}
break;
case 183: // typed_const_list1 -> typed_const_or_new
{
CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 184: // typed_const_list1 -> typed_const_list1, tkComma, typed_const_or_new
{
CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as expression_list).Add(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 185: // record_const -> tkRoundOpen, const_field_list, tkRoundClose
{
CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-2].ex;
CurrentSemanticValue.ex.source_context = CurrentLocationSpan;
}
break;
case 186: // const_field_list -> const_field_list_1
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 187: // const_field_list -> const_field_list_1, tkSemiColon
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-2].ex; }
break;
case 188: // const_field_list_1 -> const_field
{
CurrentSemanticValue.ex = new record_const(ValueStack[ValueStack.Depth-1].stn as record_const_definition, CurrentLocationSpan);
}
break;
case 189: // 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 190: // 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 191: // const_field_name -> identifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 192: // 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 193: // attribute_declarations -> attribute_declaration
{
CurrentSemanticValue.stn = new attribute_list(ValueStack[ValueStack.Depth-1].stn as simple_attribute_list, CurrentLocationSpan);
}
break;
case 194: // 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 195: // attribute_declarations -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 196: // attribute_declaration -> tkSquareOpen, one_or_some_attribute, tkSquareClose
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; }
break;
case 197: // one_or_some_attribute -> one_attribute
{
CurrentSemanticValue.stn = new simple_attribute_list(ValueStack[ValueStack.Depth-1].stn as attribute, CurrentLocationSpan);
}
break;
case 198: // 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 199: // one_attribute -> attribute_variable
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 200: // 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 201: // 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 202: // 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 203: // type_decl_identifier -> identifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 204: // 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 205: // 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 206: // type_decl_type -> type_ref
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 207: // type_decl_type -> object_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 208: // type_ref -> simple_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 209: // type_ref -> string_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 210: // type_ref -> pointer_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 211: // type_ref -> structured_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 212: // type_ref -> procedural_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 213: // type_ref -> template_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 214: // 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 215: // template_type_params -> tkLower, template_param_list, tkGreater
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn;
CurrentSemanticValue.stn.source_context = CurrentLocationSpan;
}
break;
case 216: // template_param_list -> template_param
{
CurrentSemanticValue.stn = new template_param_list(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan);
}
break;
case 217: // 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 218: // template_param -> simple_type_identifier
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 219: // template_param -> template_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 220: // simple_type -> simple_type_identifier
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 221: // simple_type -> range_expr, tkDotDot, range_expr
{
CurrentSemanticValue.td = new diapason(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 222: // simple_type -> tkRoundOpen, enumeration_id_list, tkRoundClose
{
CurrentSemanticValue.td = new enum_type_definition(ValueStack[ValueStack.Depth-2].stn as enumerator_list, CurrentLocationSpan);
}
break;
case 223: // range_expr -> range_term
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 224: // 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 225: // range_term -> range_factor
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 226: // 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 227: // range_factor -> simple_type_identifier
{
if((ValueStack[ValueStack.Depth-1].td as named_type_reference).names.Count>0)
CurrentSemanticValue.ex = (ValueStack[ValueStack.Depth-1].td as named_type_reference).names[0];
else
CurrentSemanticValue.ex = null;
}
break;
case 228: // range_factor -> unsigned_number
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 229: // range_factor -> sign, range_factor
{
CurrentSemanticValue.ex = new un_expr(ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan);
}
break;
case 230: // range_factor -> literal
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 231: // 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 232: // simple_type_identifier -> identifier
{
CurrentSemanticValue.td = new named_type_reference(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan);
}
break;
case 233: // 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 234: // 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 235: // 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 236: // enumeration_id -> type_ref
{
CurrentSemanticValue.stn = new enumerator(ValueStack[ValueStack.Depth-1].td, null, CurrentLocationSpan);
}
break;
case 237: // enumeration_id -> type_ref, tkEqual, expr
{
CurrentSemanticValue.stn = new enumerator(ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 238: // pointer_type -> tkDeref, fptype
{
CurrentSemanticValue.td = new ref_type(ValueStack[ValueStack.Depth-1].td,CurrentLocationSpan);
}
break;
case 239: // structured_type -> unpacked_structured_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 240: // structured_type -> tkPacked, unpacked_structured_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 241: // unpacked_structured_type -> array_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 242: // unpacked_structured_type -> record_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 243: // unpacked_structured_type -> set_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 244: // unpacked_structured_type -> file_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 245: // unpacked_structured_type -> sequence_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 246: // sequence_type -> tkSequence, tkOf, template_param
{
CurrentSemanticValue.td = new sequence_type(ValueStack[ValueStack.Depth-1].td,CurrentLocationSpan);
}
break;
case 247: // 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 248: // array_type -> unsized_array_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 249: // unsized_array_type -> tkArray, tkOf, type_ref
{
CurrentSemanticValue.td = new array_type(null, ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan);
}
break;
case 250: // simple_type_list -> simple_type_or_
{
CurrentSemanticValue.stn = new indexers_types(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan);
}
break;
case 251: // 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 252: // simple_type_or_ -> simple_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 253: // simple_type_or_ -> /* empty */
{ CurrentSemanticValue.td = null; }
break;
case 254: // set_type -> tkSet, tkOf, simple_type
{
CurrentSemanticValue.td = new set_type_definition(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan);
}
break;
case 255: // file_type -> tkFile, tkOf, type_ref
{
CurrentSemanticValue.td = new file_type(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan);
}
break;
case 256: // file_type -> tkFile
{
CurrentSemanticValue.td = new file_type();
CurrentSemanticValue.td.source_context = CurrentLocationSpan;
}
break;
case 257: // 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 258: // procedural_type -> procedural_type_kind
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 259: // procedural_type_kind -> proc_type_decl
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 260: // 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 261: // 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 262: // 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 263: // 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 264: // 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 265: // proc_type_decl -> tkRoundOpen, tkRoundClose, tkArrow, template_param
{
CurrentSemanticValue.td = new modern_proc_type(null,null,ValueStack[ValueStack.Depth-1].td,CurrentLocationSpan);
}
break;
case 266: // 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 267: // 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 268: // proc_type_decl -> template_type, tkArrow, tkRoundOpen, tkRoundClose
{
CurrentSemanticValue.td = new modern_proc_type(ValueStack[ValueStack.Depth-4].td,null,null,CurrentLocationSpan);
}
break;
case 269: // proc_type_decl -> tkRoundOpen, tkRoundClose, tkArrow, tkRoundOpen, tkRoundClose
{
CurrentSemanticValue.td = new modern_proc_type(null,null,null,CurrentLocationSpan);
}
break;
case 270: // 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 271: // 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, CurrentLocationSpan);
}
break;
case 272: // 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, CurrentLocationSpan);
}
break;
case 273: // class_attribute -> tkSealed
{ CurrentSemanticValue.ob = class_attribute.Sealed; }
break;
case 274: // class_attribute -> tkPartial
{ CurrentSemanticValue.ob = class_attribute.Partial; }
break;
case 275: // class_attribute -> tkAbstract
{ CurrentSemanticValue.ob = class_attribute.Abstract; }
break;
case 276: // class_attribute -> tkAuto
{ CurrentSemanticValue.ob = class_attribute.Auto; }
break;
case 277: // class_attributes -> /* empty */
{
CurrentSemanticValue.ob = class_attribute.None;
}
break;
case 278: // class_attributes -> class_attributes1
{
CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-1].ob;
}
break;
case 279: // class_attributes1 -> class_attribute
{
CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-1].ob;
}
break;
case 280: // class_attributes1 -> class_attributes1, class_attribute
{
ValueStack[ValueStack.Depth-2].ob = ((class_attribute)ValueStack[ValueStack.Depth-2].ob) | ((class_attribute)ValueStack[ValueStack.Depth-1].ob);
CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-2].ob;
}
break;
case 281: // class_or_interface_keyword -> tkClass
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 282: // class_or_interface_keyword -> tkInterface
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 283: // class_or_interface_keyword -> tkTemplate
{
CurrentSemanticValue.ti = NewClassOrInterfaceKeyword(ValueStack[ValueStack.Depth-1].ti);
}
break;
case 284: // class_or_interface_keyword -> tkTemplate, tkClass
{
CurrentSemanticValue.ti = NewClassOrInterfaceKeyword(ValueStack[ValueStack.Depth-2].ti, "c", CurrentLocationSpan);
}
break;
case 285: // class_or_interface_keyword -> tkTemplate, tkRecord
{
CurrentSemanticValue.ti = NewClassOrInterfaceKeyword(ValueStack[ValueStack.Depth-2].ti, "r", CurrentLocationSpan);
}
break;
case 286: // class_or_interface_keyword -> tkTemplate, tkInterface
{
CurrentSemanticValue.ti = NewClassOrInterfaceKeyword(ValueStack[ValueStack.Depth-2].ti, "i", CurrentLocationSpan);
}
break;
case 287: // optional_component_list_seq_end -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 288: // optional_component_list_seq_end -> member_list_section, tkEnd
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn;
CurrentSemanticValue.stn.source_context = CurrentLocationSpan;
}
break;
case 290: // optional_base_classes -> tkRoundOpen, base_classes_names_list, tkRoundClose
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; }
break;
case 291: // 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 292: // 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 293: // base_class_name -> simple_type_identifier
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].td; }
break;
case 294: // base_class_name -> template_type
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].td; }
break;
case 295: // template_arguments -> tkLower, ident_list, tkGreater
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn;
CurrentSemanticValue.stn.source_context = CurrentLocationSpan;
}
break;
case 296: // optional_where_section -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 297: // optional_where_section -> where_part_list
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 298: // where_part_list -> where_part
{
CurrentSemanticValue.stn = new where_definition_list(ValueStack[ValueStack.Depth-1].stn as where_definition, CurrentLocationSpan);
}
break;
case 299: // 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 300: // 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 301: // type_ref_and_secific_list -> type_ref_or_secific
{
CurrentSemanticValue.stn = new where_type_specificator_list(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan);
}
break;
case 302: // 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 303: // type_ref_or_secific -> type_ref
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 304: // type_ref_or_secific -> tkClass
{
CurrentSemanticValue.td = new declaration_specificator(DeclarationSpecificator.WhereDefClass, ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan);
}
break;
case 305: // type_ref_or_secific -> tkRecord
{
CurrentSemanticValue.td = new declaration_specificator(DeclarationSpecificator.WhereDefValueType, ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan);
}
break;
case 306: // type_ref_or_secific -> tkConstructor
{
CurrentSemanticValue.td = new declaration_specificator(DeclarationSpecificator.WhereDefConstructor, ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan);
}
break;
case 307: // member_list_section -> member_list
{
CurrentSemanticValue.stn = new class_body(ValueStack[ValueStack.Depth-1].stn as class_members, CurrentLocationSpan);
}
break;
case 308: // 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).Add(ValueStack[ValueStack.Depth-1].stn as class_members,CurrentLocationSpan);
if ((ValueStack[ValueStack.Depth-3].stn as class_body).class_def_blocks[0].members.Count == 0)
(ValueStack[ValueStack.Depth-3].stn as class_body).class_def_blocks.RemoveAt(0);
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-3].stn;
}
break;
case 309: // ot_visibility_specifier -> tkInternal
{ CurrentSemanticValue.stn = new access_modifer_node(access_modifer.internal_modifer, CurrentLocationSpan); }
break;
case 310: // ot_visibility_specifier -> tkPublic
{ CurrentSemanticValue.stn = new access_modifer_node(access_modifer.public_modifer, CurrentLocationSpan); }
break;
case 311: // ot_visibility_specifier -> tkProtected
{ CurrentSemanticValue.stn = new access_modifer_node(access_modifer.protected_modifer, CurrentLocationSpan); }
break;
case 312: // ot_visibility_specifier -> tkPrivate
{ CurrentSemanticValue.stn = new access_modifer_node(access_modifer.private_modifer, CurrentLocationSpan); }
break;
case 313: // member_list -> /* empty */
{ CurrentSemanticValue.stn = new class_members(); }
break;
case 314: // member_list -> field_or_const_definition_list, optional_semicolon
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; }
break;
case 315: // member_list -> method_decl_list
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 316: // 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 317: // ident_list -> identifier
{
CurrentSemanticValue.stn = new ident_list(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan);
}
break;
case 318: // 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 319: // optional_semicolon -> /* empty */
{ CurrentSemanticValue.ob = null; }
break;
case 320: // optional_semicolon -> tkSemiColon
{ CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-1].ti; }
break;
case 321: // field_or_const_definition_list -> field_or_const_definition
{
CurrentSemanticValue.stn = new class_members(ValueStack[ValueStack.Depth-1].stn as declaration, CurrentLocationSpan);
}
break;
case 322: // 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 323: // 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 324: // method_decl_list -> method_or_property_decl
{
CurrentSemanticValue.stn = new class_members(ValueStack[ValueStack.Depth-1].stn as declaration, CurrentLocationSpan);
}
break;
case 325: // 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 326: // method_or_property_decl -> method_decl_withattr
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 327: // method_or_property_decl -> property_definition
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 328: // simple_field_or_const_definition -> tkConst, only_const_decl
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
CurrentSemanticValue.stn.source_context = CurrentLocationSpan;
}
break;
case 329: // simple_field_or_const_definition -> field_definition
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 330: // 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 331: // field_definition -> var_decl_part
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 332: // 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 333: // 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 334: // method_decl_withattr -> attribute_declarations, method_decl
{
(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 335: // method_decl -> inclass_proc_func_decl
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 336: // method_decl -> inclass_constr_destr_decl
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 337: // 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 338: // method_header -> method_procfunc_header
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 339: // method_header -> constr_destr_header
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 340: // method_procfunc_header -> proc_func_header
{
CurrentSemanticValue.td = NewProcfuncHeading(ValueStack[ValueStack.Depth-1].td as procedure_header);
}
break;
case 341: // proc_func_header -> proc_header
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 342: // proc_func_header -> func_header
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 343: // 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 344: // 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 345: // 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 346: // optional_proc_name -> proc_name
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 347: // optional_proc_name -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 348: // qualified_identifier -> identifier
{ CurrentSemanticValue.stn = new method_name(null,null,ValueStack[ValueStack.Depth-1].id,null,CurrentLocationSpan); }
break;
case 349: // qualified_identifier -> visibility_specifier
{ CurrentSemanticValue.stn = new method_name(null,null,ValueStack[ValueStack.Depth-1].id,null,CurrentLocationSpan); }
break;
case 350: // 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 351: // 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 352: // 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 353: // simple_prim_property_definition -> simple_property_definition
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 354: // simple_prim_property_definition -> tkClass, simple_property_definition
{
CurrentSemanticValue.stn = NewSimplePrimPropertyDefinition(ValueStack[ValueStack.Depth-1].stn as simple_property, CurrentLocationSpan);
}
break;
case 355: // 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, ValueStack[ValueStack.Depth-1].stn as property_array_default, CurrentLocationSpan);
}
break;
case 356: // array_defaultproperty -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 357: // array_defaultproperty -> tkDefault, tkSemiColon
{
CurrentSemanticValue.stn = new property_array_default();
CurrentSemanticValue.stn.source_context = CurrentLocationSpan;
}
break;
case 358: // property_interface -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 359: // 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 360: // property_parameter_list -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 361: // property_parameter_list -> tkSquareOpen, parameter_decl_list, tkSquareClose
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; }
break;
case 362: // parameter_decl_list -> parameter_decl
{
CurrentSemanticValue.stn = new property_parameter_list(ValueStack[ValueStack.Depth-1].stn as property_parameter, CurrentLocationSpan);
}
break;
case 363: // 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 364: // 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 365: // optional_identifier -> identifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 366: // optional_identifier -> /* empty */
{ CurrentSemanticValue.id = null; }
break;
case 368: // property_specifiers -> tkRead, optional_identifier, property_specifiers
{
CurrentSemanticValue.stn = NewPropertySpecifiersRead(ValueStack[ValueStack.Depth-3].id, ValueStack[ValueStack.Depth-2].id, ValueStack[ValueStack.Depth-1].stn as property_accessors, CurrentLocationSpan);
}
break;
case 369: // property_specifiers -> tkWrite, optional_identifier, property_specifiers
{
CurrentSemanticValue.stn = NewPropertySpecifiersWrite(ValueStack[ValueStack.Depth-3].id, ValueStack[ValueStack.Depth-2].id, ValueStack[ValueStack.Depth-1].stn as property_accessors, CurrentLocationSpan);
}
break;
case 370: // var_decl -> var_decl_part, tkSemiColon
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; }
break;
case 373: // 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 374: // 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 375: // var_decl_part -> ident_list, tkColon, type_ref, tkAssignOrEqual,
// typed_const_or_new
{
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 376: // var_decl_part -> ident_list, tkColon, type_ref, tkAssignOrEqual,
// expl_func_decl_lambda
{
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 377: // typed_const_or_new -> typed_const
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 378: // typed_const_or_new -> new_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 379: // typed_const_or_new -> default_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 380: // 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 381: // 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 382: // proc_func_decl -> proc_func_decl_noclass
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 383: // 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 384: // 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 385: // proc_func_decl_noclass -> tkFunction, func_name, fp_list, tkColon, fptype,
// tkAssign, relop_expr, tkSemiColon
{
CurrentSemanticValue.stn = SyntaxTreeBuilder.BuildShortFuncDefinition(ValueStack[ValueStack.Depth-6].stn as formal_parameters, new procedure_attributes_list(), ValueStack[ValueStack.Depth-7].stn as method_name, ValueStack[ValueStack.Depth-4].td as type_definition, ValueStack[ValueStack.Depth-2].ex, LocationStack[LocationStack.Depth-8].Merge(LocationStack[LocationStack.Depth-4]));
}
break;
case 386: // proc_func_decl_noclass -> tkFunction, func_name, fp_list, tkAssign, relop_expr,
// tkSemiColon
{
CurrentSemanticValue.stn = SyntaxTreeBuilder.BuildShortFuncDefinition(ValueStack[ValueStack.Depth-4].stn as formal_parameters, new procedure_attributes_list(), ValueStack[ValueStack.Depth-5].stn as method_name, null, ValueStack[ValueStack.Depth-2].ex, LocationStack[LocationStack.Depth-6].Merge(LocationStack[LocationStack.Depth-4]));
}
break;
case 387: // proc_func_decl_noclass -> tkProcedure, proc_name, fp_list, tkAssign, stmt,
// tkSemiColon
{
CurrentSemanticValue.stn = SyntaxTreeBuilder.BuildShortProcDefinition(ValueStack[ValueStack.Depth-4].stn as formal_parameters, new procedure_attributes_list(), ValueStack[ValueStack.Depth-5].stn as method_name, ValueStack[ValueStack.Depth-2].stn as statement, LocationStack[LocationStack.Depth-6].Merge(LocationStack[LocationStack.Depth-4]));
}
break;
case 388: // 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 389: // inclass_proc_func_decl -> inclass_proc_func_decl_noclass
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 390: // 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 391: // 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 392: // inclass_proc_func_decl_noclass -> tkFunction, func_name, fp_list, tkColon,
// fptype, optional_method_modificators1,
// tkAssign, relop_expr, 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 393: // inclass_proc_func_decl_noclass -> tkFunction, func_name, fp_list,
// optional_method_modificators1, tkAssign,
// relop_expr, 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 394: // inclass_proc_func_decl_noclass -> tkProcedure, proc_name, fp_list,
// optional_method_modificators1, tkAssign,
// 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 395: // proc_func_external_block -> block
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 396: // proc_func_external_block -> external_block
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 397: // proc_name -> func_name
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 398: // func_name -> func_meth_name_ident
{
CurrentSemanticValue.stn = new method_name(null,null, ValueStack[ValueStack.Depth-1].id, null, CurrentLocationSpan);
}
break;
case 399: // func_name -> func_class_name_ident_list, tkPoint, func_meth_name_ident
{
var ln = ValueStack[ValueStack.Depth-3].ob as List<ident>;
var cnt = (ValueStack[ValueStack.Depth-3].ob as List<ident>).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 400: // func_class_name_ident -> func_name_with_template_args
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 401: // 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 402: // 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 403: // func_meth_name_ident -> func_name_with_template_args
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 404: // func_meth_name_ident -> operator_name_ident
{ CurrentSemanticValue.id = (ident)ValueStack[ValueStack.Depth-1].ex; }
break;
case 405: // 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 406: // func_name_with_template_args -> func_name_ident
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 407: // 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 408: // func_name_ident -> identifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 409: // 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 410: // 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 411: // 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 412: // 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 413: // external_block -> tkExternal, external_directive_ident, tkSemiColon
{
CurrentSemanticValue.stn = new external_directive(ValueStack[ValueStack.Depth-2].ex, null, CurrentLocationSpan);
}
break;
case 414: // external_block -> tkExternal, tkSemiColon
{
CurrentSemanticValue.stn = new external_directive(null, null, CurrentLocationSpan);
}
break;
case 415: // external_directive_ident -> identifier
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].id; }
break;
case 416: // external_directive_ident -> literal
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 417: // 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 418: // 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 419: // fp_list -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 420: // fp_list -> tkRoundOpen, tkRoundClose
{
CurrentSemanticValue.stn = null;
}
break;
case 421: // 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 422: // fp_sect_list -> fp_sect
{
CurrentSemanticValue.stn = new formal_parameters(ValueStack[ValueStack.Depth-1].stn as typed_parameters, CurrentLocationSpan);
}
break;
case 423: // 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 424: // 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 425: // 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 426: // 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 427: // 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 428: // 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 429: // 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 430: // 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 431: // 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 432: // param_name_list -> param_name
{
CurrentSemanticValue.stn = new ident_list(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan);
}
break;
case 433: // 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 434: // param_name -> identifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 435: // fptype -> type_ref
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 436: // fptype_noproctype -> simple_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 437: // fptype_noproctype -> string_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 438: // fptype_noproctype -> pointer_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 439: // fptype_noproctype -> structured_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 440: // fptype_noproctype -> template_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 441: // stmt -> unlabelled_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 442: // 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 443: // unlabelled_stmt -> /* empty */
{
CurrentSemanticValue.stn = new empty_statement();
CurrentSemanticValue.stn.source_context = null;
}
break;
case 444: // unlabelled_stmt -> assignment
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 445: // unlabelled_stmt -> proc_call
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 446: // unlabelled_stmt -> goto_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 447: // unlabelled_stmt -> compound_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 448: // unlabelled_stmt -> if_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 449: // unlabelled_stmt -> case_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 450: // unlabelled_stmt -> repeat_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 451: // unlabelled_stmt -> while_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 452: // unlabelled_stmt -> for_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 453: // unlabelled_stmt -> with_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 454: // unlabelled_stmt -> inherited_message
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 455: // unlabelled_stmt -> try_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 456: // unlabelled_stmt -> raise_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 457: // unlabelled_stmt -> foreach_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 458: // unlabelled_stmt -> var_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 459: // unlabelled_stmt -> expr_as_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 460: // unlabelled_stmt -> lock_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 461: // unlabelled_stmt -> my_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 462: // unlabelled_stmt -> yield_stmt
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 463: // yield_stmt -> tkYield, expr_l1
{
CurrentSemanticValue.stn = new yield_node(ValueStack[ValueStack.Depth-1].ex,CurrentLocationSpan);
}
break;
case 464: // my_stmt -> tkCycle, expr, unlabelled_stmt
{
CurrentSemanticValue.stn = parsertools.MyStmt(ValueStack[ValueStack.Depth-2].ex,ValueStack[ValueStack.Depth-1].stn as statement);
}
break;
case 465: // var_stmt -> tkVar, var_decl_part
{
CurrentSemanticValue.stn = new var_statement(ValueStack[ValueStack.Depth-1].stn as var_def_statement, CurrentLocationSpan);
}
break;
case 466: // assignment -> var_reference, assign_operator, expr
{
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 467: // 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).variables.Insert(0,ValueStack[ValueStack.Depth-6].ex as addressed_value);
(ValueStack[ValueStack.Depth-4].ob as addressed_value_list).source_context = LexLocation.MergeAll(LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5],LocationStack[LocationStack.Depth-4]);
CurrentSemanticValue.stn = new assign_tuple(ValueStack[ValueStack.Depth-4].ob as addressed_value_list, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 468: // variable_list -> variable
{
CurrentSemanticValue.ob = new addressed_value_list(ValueStack[ValueStack.Depth-1].ex as addressed_value,LocationStack[LocationStack.Depth-1]);
}
break;
case 469: // 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 addressed_value_list).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 470: // proc_call -> var_reference
{
CurrentSemanticValue.stn = new procedure_call(ValueStack[ValueStack.Depth-1].ex as addressed_value, CurrentLocationSpan);
}
break;
case 471: // goto_stmt -> tkGoto, label_name
{
CurrentSemanticValue.stn = new goto_statement(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan);
}
break;
case 472: // 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 473: // stmt_list -> stmt
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, LocationStack[LocationStack.Depth-1]);
}
break;
case 474: // 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 475: // if_stmt -> tkIf, expr, tkThen, stmt
{
CurrentSemanticValue.stn = new if_node(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].stn as statement, null, CurrentLocationSpan);
}
break;
case 476: // if_stmt -> tkIf, expr, tkThen, stmt, tkElse, 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 477: // case_stmt -> tkCase, expr, 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 478: // 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 479: // 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 480: // case_item -> /* empty */
{
CurrentSemanticValue.stn = new empty_statement();
}
break;
case 481: // case_item -> case_label_list, tkColon, stmt
{
CurrentSemanticValue.stn = new case_variant(ValueStack[ValueStack.Depth-3].stn as expression_list, ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 482: // case_label_list -> case_label
{
CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 483: // 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 484: // case_label -> const_elem
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 485: // else_case -> /* empty */
{ CurrentSemanticValue.stn = null;}
break;
case 486: // else_case -> tkElse, stmt_list
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 487: // 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 488: // while_stmt -> tkWhile, expr, optional_tk_do, 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 489: // optional_tk_do -> tkDo
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 490: // optional_tk_do -> /* empty */
{ CurrentSemanticValue.ti = null; }
break;
case 491: // lock_stmt -> tkLock, expr, tkDo, stmt
{
CurrentSemanticValue.stn = new lock_stmt(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 492: // foreach_stmt -> tkForeach, identifier, foreach_stmt_ident_dype_opt, tkIn, expr,
// tkDo, 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);
}
break;
case 493: // foreach_stmt -> tkForeach, tkVar, identifier, tkColon, type_ref, tkIn, expr,
// tkDo, 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 494: // foreach_stmt -> tkForeach, tkVar, identifier, tkIn, expr, tkDo, 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 495: // foreach_stmt_ident_dype_opt -> tkColon, type_ref
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 497: // for_stmt -> tkFor, optional_var, identifier, for_stmt_decl_or_assign, expr,
// for_cycle_type, expr, optional_tk_do, 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 498: // optional_var -> tkVar
{ CurrentSemanticValue.ob = true; }
break;
case 499: // optional_var -> /* empty */
{ CurrentSemanticValue.ob = false; }
break;
case 501: // for_stmt_decl_or_assign -> tkColon, simple_type_identifier, tkAssign
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-2].td; }
break;
case 502: // for_cycle_type -> tkTo
{ CurrentSemanticValue.ob = for_cycle_type.to; }
break;
case 503: // for_cycle_type -> tkDownto
{ CurrentSemanticValue.ob = for_cycle_type.downto; }
break;
case 504: // with_stmt -> tkWith, expr_list, tkDo, stmt
{
CurrentSemanticValue.stn = new with_statement(ValueStack[ValueStack.Depth-1].stn as statement, ValueStack[ValueStack.Depth-3].stn as expression_list, CurrentLocationSpan);
}
break;
case 505: // inherited_message -> tkInherited
{
CurrentSemanticValue.stn = new inherited_message();
CurrentSemanticValue.stn.source_context = CurrentLocationSpan;
}
break;
case 506: // 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 507: // 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 508: // 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 509: // 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 510: // 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 511: // 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 512: // exception_handler_list -> exception_handler
{
CurrentSemanticValue.stn = new exception_handler_list(ValueStack[ValueStack.Depth-1].stn as exception_handler, CurrentLocationSpan);
}
break;
case 513: // 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 514: // exception_block_else_branch -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 515: // exception_block_else_branch -> tkElse, stmt_list
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 516: // exception_handler -> tkOn, exception_identifier, tkDo, 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 517: // exception_identifier -> exception_class_type_identifier
{
CurrentSemanticValue.stn = new exception_ident(null, (named_type_reference)ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan);
}
break;
case 518: // 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 519: // exception_class_type_identifier -> simple_type_identifier
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 520: // exception_variable -> identifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 521: // raise_stmt -> tkRaise
{
CurrentSemanticValue.stn = new raise_stmt();
CurrentSemanticValue.stn.source_context = CurrentLocationSpan;
}
break;
case 522: // raise_stmt -> tkRaise, expr
{
CurrentSemanticValue.stn = new raise_stmt(ValueStack[ValueStack.Depth-1].ex, null, CurrentLocationSpan);
}
break;
case 523: // expr_list -> expr
{
CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 524: // expr_list -> expr_list, tkComma, expr
{
CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as expression_list).Add(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 525: // expr_as_stmt -> allowable_expr_as_stmt
{
CurrentSemanticValue.stn = new expression_as_statement(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 526: // allowable_expr_as_stmt -> new_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 527: // expr -> expr_l1
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 528: // expr -> format_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 529: // expr_l1 -> relop_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 530: // expr_l1 -> question_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 531: // 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 532: // 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 533: // question_expr -> expr_l1, tkQuestion, expr_l1, tkColon, expr_l1
{
CurrentSemanticValue.ex = new question_colon_expression(ValueStack[ValueStack.Depth-5].ex, ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 534: // simple_or_template_type_reference -> simple_type_identifier
{
CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td;
}
break;
case 535: // 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 536: // 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 537: // optional_array_initializer -> tkRoundOpen, typed_const_list, tkRoundClose
{
CurrentSemanticValue.stn = new array_const((expression_list)ValueStack[ValueStack.Depth-2].stn, CurrentLocationSpan);
}
break;
case 539: // 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 540: // new_expr -> tkNew, array_name_for_new_expr, 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.expressions.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 541: // 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 542: // 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 543: // 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 544: // 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 545: // 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 546: // array_name_for_new_expr -> simple_type_identifier
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 547: // array_name_for_new_expr -> unsized_array_type
{ CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; }
break;
case 548: // optional_expr_list_with_bracket -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 549: // optional_expr_list_with_bracket -> tkRoundOpen, optional_expr_list,
// tkRoundClose
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; }
break;
case 550: // relop_expr -> simple_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 551: // 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 552: // relop_expr -> relop_expr, tkMatching, simple_expr
{
CurrentSemanticValue.ex = new matching_expression(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 553: // format_expr -> simple_expr, tkColon, simple_expr
{
CurrentSemanticValue.ex = new format_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, null, CurrentLocationSpan);
}
break;
case 554: // format_expr -> simple_expr, tkColon, simple_expr, 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 555: // relop -> tkEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 556: // relop -> tkNotEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 557: // relop -> tkLower
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 558: // relop -> tkGreater
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 559: // relop -> tkLowerEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 560: // relop -> tkGreaterEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 561: // relop -> tkIn
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 562: // simple_expr -> term
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 563: // 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 564: // addop -> tkPlus
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 565: // addop -> tkMinus
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 566: // addop -> tkOr
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 567: // addop -> tkXor
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 568: // addop -> tkCSharpStyleOr
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 569: // typecast_op -> tkAs
{
CurrentSemanticValue.ob = op_typecast.as_op;
}
break;
case 570: // typecast_op -> tkIs
{
CurrentSemanticValue.ob = op_typecast.is_op;
}
break;
case 571: // as_is_expr -> term, typecast_op, simple_or_template_type_reference
{
CurrentSemanticValue.ex = NewAsIsExpr(ValueStack[ValueStack.Depth-3].ex, (op_typecast)ValueStack[ValueStack.Depth-2].ob, ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan);
}
break;
case 572: // term -> factor
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 573: // term -> new_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 574: // 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 575: // term -> as_is_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 576: // mulop -> tkStar
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 577: // mulop -> tkSlash
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 578: // mulop -> tkDiv
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 579: // mulop -> tkMod
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 580: // mulop -> tkShl
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 581: // mulop -> tkShr
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 582: // mulop -> tkAnd
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 583: // 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 584: // factor -> tkNil
{
CurrentSemanticValue.ex = new nil_const();
CurrentSemanticValue.ex.source_context = CurrentLocationSpan;
}
break;
case 585: // factor -> literal_or_number
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 586: // factor -> default_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 587: // factor -> tkSquareOpen, elem_list, tkSquareClose
{
CurrentSemanticValue.ex = new pascal_set_constant(ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan);
}
break;
case 588: // factor -> tkNot, factor
{
CurrentSemanticValue.ex = new un_expr(ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan);
}
break;
case 589: // factor -> sign, factor
{
CurrentSemanticValue.ex = new un_expr(ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan);
}
break;
case 590: // factor -> tkDeref, factor
{
CurrentSemanticValue.ex = new roof_dereference(ValueStack[ValueStack.Depth-1].ex as addressed_value, CurrentLocationSpan);
}
break;
case 591: // factor -> var_reference
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 592: // factor -> func_decl_lambda
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 593: // literal_or_number -> literal
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 594: // literal_or_number -> unsigned_number
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 595: // 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 596: // var_reference -> variable
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 597: // var_address -> tkAddressOf
{
CurrentSemanticValue.stn = NewVarAddress(CurrentLocationSpan);
}
break;
case 598: // var_address -> var_address, tkAddressOf
{
CurrentSemanticValue.stn = NewVarAddress(ValueStack[ValueStack.Depth-2].stn as get_address, CurrentLocationSpan);
}
break;
case 599: // 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 600: // dotted_identifier -> identifier
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].id; }
break;
case 601: // 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 602: // variable_as_type -> dotted_identifier
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex;}
break;
case 603: // 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 604: // variable -> identifier
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].id; }
break;
case 605: // variable -> operator_name_ident
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 606: // variable -> tkInherited, identifier
{
CurrentSemanticValue.ex = new inherited_ident(ValueStack[ValueStack.Depth-1].id.name, CurrentLocationSpan);
}
break;
case 607: // 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 608: // variable -> sizeof_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 609: // variable -> typeof_expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 610: // 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 611: // variable -> variable, var_specifiers
{
CurrentSemanticValue.ex = NewVariable(ValueStack[ValueStack.Depth-2].ex as addressed_value, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 612: // var_specifiers -> tkSquareOpen, expr_list, tkSquareClose
{
CurrentSemanticValue.ex = new indexer(ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan);
}
break;
case 613: // var_specifiers -> tkRoundOpen, optional_expr_list, tkRoundClose
{
CurrentSemanticValue.ex = new method_call(ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan);
}
break;
case 614: // var_specifiers -> tkPoint, identifier_keyword_operatorname
{
CurrentSemanticValue.ex = new dot_node(null, ValueStack[ValueStack.Depth-1].id as addressed_value, CurrentLocationSpan);
}
break;
case 615: // var_specifiers -> tkDeref
{
CurrentSemanticValue.ex = new roof_dereference();
CurrentSemanticValue.ex.source_context = CurrentLocationSpan;
}
break;
case 616: // var_specifiers -> tkAmpersend, template_type_params
{
CurrentSemanticValue.ex = new ident_with_templateparams(null, ValueStack[ValueStack.Depth-1].stn as template_param_list, CurrentLocationSpan);
}
break;
case 617: // optional_expr_list -> expr_list
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 618: // optional_expr_list -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 619: // elem_list -> elem_list1
{ CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; }
break;
case 620: // elem_list -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 621: // elem_list1 -> elem
{
CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 622: // 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 623: // elem -> expr
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; }
break;
case 624: // elem -> expr, tkDotDot, expr
{ CurrentSemanticValue.ex = new diapason_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); }
break;
case 625: // one_literal -> tkStringLiteral
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].stn as literal; }
break;
case 626: // one_literal -> tkAsciiChar
{ CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].stn as literal; }
break;
case 627: // literal -> literal_list
{
CurrentSemanticValue.ex = NewLiteral(ValueStack[ValueStack.Depth-1].stn as literal_const_line);
}
break;
case 628: // literal_list -> one_literal
{
CurrentSemanticValue.stn = new literal_const_line(ValueStack[ValueStack.Depth-1].ex as literal, CurrentLocationSpan);
}
break;
case 629: // literal_list -> literal_list, one_literal
{
CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-2].stn as literal_const_line).Add(ValueStack[ValueStack.Depth-1].ex as literal, CurrentLocationSpan);
}
break;
case 630: // 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 631: // optional_method_modificators -> tkSemiColon
{
CurrentSemanticValue.stn = new procedure_attributes_list(new List<procedure_attribute>(),CurrentLocationSpan);
}
break;
case 632: // 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 633: // optional_method_modificators1 -> /* empty */
{
CurrentSemanticValue.stn = new procedure_attributes_list(new List<procedure_attribute>(),CurrentLocationSpan);
}
break;
case 634: // 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 635: // meth_modificators -> meth_modificator
{
CurrentSemanticValue.stn = new procedure_attributes_list(ValueStack[ValueStack.Depth-1].id as procedure_attribute, CurrentLocationSpan);
}
break;
case 636: // 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 637: // identifier -> tkIdentifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 638: // identifier -> property_specifier_directives
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 639: // identifier -> non_reserved
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 640: // identifier_or_keyword -> identifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 641: // identifier_or_keyword -> keyword
{ CurrentSemanticValue.id = new ident(ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan); }
break;
case 642: // identifier_or_keyword -> reserved_keyword
{ CurrentSemanticValue.id = new ident(ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan); }
break;
case 643: // identifier_keyword_operatorname -> identifier
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 644: // identifier_keyword_operatorname -> keyword
{ CurrentSemanticValue.id = new ident(ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan); }
break;
case 645: // identifier_keyword_operatorname -> operator_name_ident
{ CurrentSemanticValue.id = (ident)ValueStack[ValueStack.Depth-1].ex; }
break;
case 646: // meth_modificator -> tkAbstract
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 647: // meth_modificator -> tkOverload
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 648: // meth_modificator -> tkReintroduce
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 649: // meth_modificator -> tkOverride
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 650: // meth_modificator -> tkExtensionMethod
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 651: // meth_modificator -> tkVirtual
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 652: // property_specifier_directives -> tkRead
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 653: // property_specifier_directives -> tkWrite
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 654: // non_reserved -> tkName
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 655: // non_reserved -> tkNew
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 656: // visibility_specifier -> tkInternal
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 657: // visibility_specifier -> tkPublic
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 658: // visibility_specifier -> tkProtected
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 659: // visibility_specifier -> tkPrivate
{ CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; }
break;
case 660: // keyword -> visibility_specifier
{
CurrentSemanticValue.ti = new token_info(ValueStack[ValueStack.Depth-1].id.name, CurrentLocationSpan);
}
break;
case 661: // keyword -> tkSealed
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 662: // keyword -> tkTemplate
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 663: // keyword -> tkOr
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 664: // keyword -> tkTypeOf
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 665: // keyword -> tkSizeOf
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 666: // keyword -> tkDefault
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 667: // keyword -> tkWhere
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 668: // keyword -> tkXor
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 669: // keyword -> tkAnd
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 670: // keyword -> tkDiv
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 671: // keyword -> tkMod
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 672: // keyword -> tkShl
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 673: // keyword -> tkShr
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 674: // keyword -> tkNot
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 675: // keyword -> tkAs
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 676: // keyword -> tkIn
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 677: // keyword -> tkIs
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; }
break;
case 678: // keyword -> tkArray
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 679: // keyword -> tkSequence
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 680: // keyword -> tkBegin
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 681: // keyword -> tkCase
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 682: // keyword -> tkClass
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 683: // keyword -> tkConst
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 684: // keyword -> tkConstructor
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 685: // keyword -> tkDestructor
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 686: // keyword -> tkDownto
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 687: // keyword -> tkDo
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 688: // keyword -> tkElse
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 689: // keyword -> tkExcept
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 690: // keyword -> tkFile
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 691: // keyword -> tkAuto
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 692: // keyword -> tkFinalization
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 693: // keyword -> tkFinally
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 694: // keyword -> tkFor
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 695: // keyword -> tkForeach
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 696: // keyword -> tkFunction
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 697: // keyword -> tkIf
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 698: // keyword -> tkImplementation
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 699: // keyword -> tkInherited
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 700: // keyword -> tkInitialization
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 701: // keyword -> tkInterface
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 702: // keyword -> tkProcedure
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 703: // keyword -> tkProperty
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 704: // keyword -> tkRaise
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 705: // keyword -> tkRecord
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 706: // keyword -> tkRepeat
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 707: // keyword -> tkSet
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 708: // keyword -> tkTry
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 709: // keyword -> tkType
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 710: // keyword -> tkThen
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 711: // keyword -> tkTo
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 712: // keyword -> tkUntil
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 713: // keyword -> tkUses
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 714: // keyword -> tkVar
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 715: // keyword -> tkWhile
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 716: // keyword -> tkWith
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 717: // keyword -> tkNil
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 718: // keyword -> tkGoto
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 719: // keyword -> tkOf
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 720: // keyword -> tkLabel
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 721: // keyword -> tkProgram
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 722: // keyword -> tkUnit
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 723: // keyword -> tkLibrary
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 724: // keyword -> tkExternal
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 725: // keyword -> tkParams
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 726: // reserved_keyword -> tkOperator
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 727: // reserved_keyword -> tkEnd
{ CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; }
break;
case 728: // overload_operator -> tkMinus
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 729: // overload_operator -> tkPlus
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 730: // overload_operator -> tkSlash
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 731: // overload_operator -> tkStar
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 732: // overload_operator -> tkEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 733: // overload_operator -> tkGreater
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 734: // overload_operator -> tkGreaterEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 735: // overload_operator -> tkLower
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 736: // overload_operator -> tkLowerEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 737: // overload_operator -> tkNotEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 738: // overload_operator -> tkOr
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 739: // overload_operator -> tkXor
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 740: // overload_operator -> tkAnd
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 741: // overload_operator -> tkDiv
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 742: // overload_operator -> tkMod
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 743: // overload_operator -> tkShl
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 744: // overload_operator -> tkShr
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 745: // overload_operator -> tkNot
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 746: // overload_operator -> tkIn
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 747: // overload_operator -> tkImplicit
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 748: // overload_operator -> tkExplicit
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 749: // overload_operator -> assign_operator
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 750: // assign_operator -> tkAssign
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 751: // assign_operator -> tkPlusEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 752: // assign_operator -> tkMinusEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 753: // assign_operator -> tkMultEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 754: // assign_operator -> tkDivEqual
{ CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; }
break;
case 755: // 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(), null), 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(), null), ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan);
}
break;
case 756: // 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 757: // 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 758: // 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).params_list.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 759: // 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).params_list.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 760: // func_decl_lambda -> tkRoundOpen, expr_l1, tkComma, expr_l1_list,
// lambda_type_ref, optional_full_lambda_fp_list,
// tkRoundClose, rem_lambda
{
if (ValueStack[ValueStack.Depth-1].ob==null) // It is a tuple - check for nothing except expr_list is in parentheses
{
if (!(ValueStack[ValueStack.Depth-4].td is lambda_inferred_type))
parsertools.AddErrorFromResource("BAD_TUPLE",LocationStack[LocationStack.Depth-4]);
if (ValueStack[ValueStack.Depth-3].stn != null)
parsertools.AddErrorFromResource("BAD_TUPLE",LocationStack[LocationStack.Depth-4]);
(ValueStack[ValueStack.Depth-5].stn as expression_list).expressions.Insert(0,ValueStack[ValueStack.Depth-7].ex);
if ((ValueStack[ValueStack.Depth-5].stn as expression_list).expressions.Count>7)
parsertools.AddErrorFromResource("TUPLE_ELEMENTS_COUNT_MUST_BE_LESSEQUAL_7",LocationStack[LocationStack.Depth-4]);
if (parsertools.build_tree_for_formatter)
CurrentSemanticValue.ex = new tuple_node_for_formatter(ValueStack[ValueStack.Depth-5].stn as expression_list,CurrentLocationSpan);
else
{
var dn = new dot_node(new dot_node(new ident("?System"),new ident("Tuple")),new ident("Create",CurrentLocationSpan));
CurrentSemanticValue.ex = new method_call(dn,ValueStack[ValueStack.Depth-5].stn as expression_list,CurrentLocationSpan);
}
}
else // It is a lambda-expression. Expressions in parameters must be identifiers.
{
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).params_list.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.idents.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).params_list.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 761: // func_decl_lambda -> expl_func_decl_lambda
{
CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex;
}
break;
case 762: // optional_full_lambda_fp_list -> /* empty */
{ CurrentSemanticValue.stn = null; }
break;
case 763: // optional_full_lambda_fp_list -> tkSemiColon, full_lambda_fp_list
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
}
break;
case 764: // rem_lambda -> /* empty */
{ CurrentSemanticValue.ob = null; }
break;
case 765: // 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 766: // 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, CurrentLocationSpan);
}
break;
case 767: // 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, CurrentLocationSpan);
}
break;
case 768: // 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, CurrentLocationSpan);
}
break;
case 769: // 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, CurrentLocationSpan);
}
break;
case 770: // 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, CurrentLocationSpan);
}
break;
case 771: // 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, CurrentLocationSpan);
}
break;
case 772: // 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 773: // 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 774: // 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 775: // lambda_type_ref -> /* empty */
{
CurrentSemanticValue.td = new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), null);
}
break;
case 776: // lambda_type_ref -> tkColon, fptype
{
CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td;
}
break;
case 777: // lambda_type_ref_noproctype -> /* empty */
{
CurrentSemanticValue.td = new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), null);
}
break;
case 778: // lambda_type_ref_noproctype -> tkColon, fptype_noproctype
{
CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td;
}
break;
case 779: // lambda_function_body -> expr_l1
{
CurrentSemanticValue.stn = NewLambdaBody(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan);
}
break;
case 780: // lambda_function_body -> compound_stmt
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
}
break;
case 781: // lambda_procedure_body -> proc_call
{
CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan);
}
break;
case 782: // lambda_procedure_body -> compound_stmt
{
CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn;
}
break;
}
}
protected override string TerminalToString(int terminal)
{
if (aliasses != null && aliasses.ContainsKey(terminal))
return aliasses[terminal];
else if (((Tokens)terminal).ToString() != terminal.ToString(CultureInfo.InvariantCulture))
return ((Tokens)terminal).ToString();
else
return CharToString((char)terminal);
}
}
}