diff --git a/gen/arc/parser.ypp b/gen/arc/parser.ypp index 36f2e421..582a51e5 100644 --- a/gen/arc/parser.ypp +++ b/gen/arc/parser.ypp @@ -63,6 +63,7 @@ namespace xsk::arc %token ENDON "endon" %token NOTIFY "notify" %token WAIT "wait" +%token WAITREALTIME "waitrealtime" %token WAITTILL "waittill" %token WAITTILLMATCH "waittillmatch" %token WAITTILLFRAMEEND "waittillframeend" @@ -183,6 +184,7 @@ namespace xsk::arc %type stmt_endon %type stmt_notify %type stmt_wait +%type stmt_waitrealtime %type stmt_waittill %type stmt_waittillmatch %type stmt_waittillframeend @@ -357,6 +359,7 @@ stmt | stmt_endon { $$ = std::move($1); } | stmt_notify { $$ = std::move($1); } | stmt_wait { $$ = std::move($1); } + | stmt_waitrealtime { $$ = std::move($1); } | stmt_waittill { $$ = std::move($1); } | stmt_waittillmatch { $$ = std::move($1); } | stmt_waittillframeend { $$ = std::move($1); } @@ -462,6 +465,11 @@ stmt_wait { $$ = stmt_wait::make(@$, std::move($2)); } ; +stmt_waitrealtime + : WAITREALTIME expr SEMICOLON + { $$ = stmt_waitrealtime::make(@$, std::move($2)); } + ; + stmt_waittill : expr_object WAITTILL LPAREN expr COMMA expr_arguments_no_empty RPAREN SEMICOLON { $$ = stmt_waittill::make(@$, std::move($1), std::move($4), std::move($6)); } @@ -1230,6 +1238,7 @@ std::unordered_map const tok_to_par { token::ENDON, parser::token::ENDON }, { token::NOTIFY, parser::token::NOTIFY }, { token::WAIT, parser::token::WAIT }, + { token::WAITREALTIME, parser::token::WAITREALTIME }, { token::WAITTILL, parser::token::WAITTILL }, { token::WAITTILLMATCH, parser::token::WAITTILLMATCH }, { token::WAITTILLFRAMEEND, parser::token::WAITTILLFRAMEEND }, @@ -1289,6 +1298,7 @@ std::unordered_map const keywo { "endon", parser::token::ENDON }, { "notify", parser::token::NOTIFY }, { "wait", parser::token::WAIT }, + { "waitrealtime", parser::token::WAITREALTIME}, { "waittill", parser::token::WAITTILL }, { "waittillmatch", parser::token::WAITTILLMATCH }, { "waittillframeend", parser::token::WAITTILLFRAMEEND }, diff --git a/include/xsk/arc/common/ast.hpp b/include/xsk/arc/common/ast.hpp index 28f71e97..2b43fab9 100644 --- a/include/xsk/arc/common/ast.hpp +++ b/include/xsk/arc/common/ast.hpp @@ -88,10 +88,10 @@ struct node stmt_endon, stmt_notify, stmt_wait, + stmt_waitrealtime, stmt_waittill, stmt_waittillmatch, stmt_waittillframeend, - stmt_waitrealtime, stmt_if, stmt_ifelse, stmt_while, @@ -1001,6 +1001,16 @@ struct stmt_wait : public stmt XSK_ARC_AST_MAKE(stmt_wait) }; +struct stmt_waitrealtime : public stmt +{ + using ptr = std::unique_ptr; + + expr::ptr time; + + stmt_waitrealtime(location const& loc, expr::ptr time); + XSK_ARC_AST_MAKE(stmt_waitrealtime) +}; + struct stmt_waittill : public stmt { using ptr = std::unique_ptr; @@ -1033,16 +1043,6 @@ struct stmt_waittillframeend : public stmt XSK_ARC_AST_MAKE(stmt_waittillframeend) }; -struct stmt_waitrealtime : public stmt -{ - using ptr = std::unique_ptr; - - expr::ptr time; - - stmt_waitrealtime(location const& loc, expr::ptr time); - XSK_ARC_AST_MAKE(stmt_waitrealtime) -}; - struct stmt_if : public stmt { using ptr = std::unique_ptr; diff --git a/include/xsk/arc/common/token.hpp b/include/xsk/arc/common/token.hpp index f18ef549..45aa1980 100644 --- a/include/xsk/arc/common/token.hpp +++ b/include/xsk/arc/common/token.hpp @@ -20,9 +20,9 @@ struct token NAME, PATH, STRING, ISTRING, HASHSTR, INT, FLT, DEVBEGIN, DEVEND, INLINE, INCLUDE, USINGTREE, ANIMTREE, AUTOEXEC, CODECALL, PRIVATE, - ENDON, NOTIFY, WAIT, WAITTILL, WAITTILLMATCH, WAITTILLFRAMEEND, IF, ELSE, DO, WHILE, - FOR, FOREACH, IN, SWITCH, CASE, DEFAULT, BREAK, CONTINUE, RETURN, PROFBEGIN, PROFEND, - THREAD, TRUE, FALSE, UNDEFINED, SIZE, GAME, SELF, ANIM, LEVEL, + ENDON, NOTIFY, WAIT, WAITREALTIME, WAITTILL, WAITTILLMATCH, WAITTILLFRAMEEND, IF, ELSE, + DO, WHILE, FOR, FOREACH, IN, SWITCH, CASE, DEFAULT, BREAK, CONTINUE, RETURN, PROFBEGIN, + PROFEND, THREAD, TRUE, FALSE, UNDEFINED, SIZE, GAME, SELF, ANIM, LEVEL, CONST, ISDEFINED, VECTORSCALE, ANGLESTOUP, ANGLESTORIGHT, ANGLESTOFORWARD, ANGLECLAMP180, VECTORTOANGLES, ABS, GETTIME, GETDVAR, GETDVARINT, GETDVARFLOAT, GETDVARVECTOR, GETDVARCOLORRED, GETDVARCOLORGREEN, GETDVARCOLORBLUE, GETDVARCOLORALPHA, GETFIRSTARRAYKEY, GETNEXTARRAYKEY, diff --git a/include/xsk/arc/compiler.hpp b/include/xsk/arc/compiler.hpp index 47ad5fd7..af62a995 100644 --- a/include/xsk/arc/compiler.hpp +++ b/include/xsk/arc/compiler.hpp @@ -45,6 +45,7 @@ private: auto emit_stmt_endon(stmt_endon const& stm) -> void; auto emit_stmt_notify(stmt_notify const& stm) -> void; auto emit_stmt_wait(stmt_wait const& stm) -> void; + auto emit_stmt_waitrealtime(stmt_waitrealtime const& stm) -> void; auto emit_stmt_waittill(stmt_waittill const& stm) -> void; auto emit_stmt_waittillmatch(stmt_waittillmatch const& stm) -> void; auto emit_stmt_waittillframeend(stmt_waittillframeend const& stm) -> void; diff --git a/include/xsk/arc/decompiler.hpp b/include/xsk/arc/decompiler.hpp index bf9203c8..021dc248 100644 --- a/include/xsk/arc/decompiler.hpp +++ b/include/xsk/arc/decompiler.hpp @@ -65,9 +65,9 @@ private: auto process_stmt_endon(stmt_endon& stm) -> void; auto process_stmt_notify(stmt_notify& stm) -> void; auto process_stmt_wait(stmt_wait& stm) -> void; + auto process_stmt_waitrealtime(stmt_waitrealtime& stm) -> void; auto process_stmt_waittill(stmt_waittill& stm) -> void; auto process_stmt_waittillmatch(stmt_waittillmatch& stm) -> void; - auto process_stmt_waitrealtime(stmt_waitrealtime& stm) -> void; auto process_stmt_if(stmt_if& stm) -> void; auto process_stmt_ifelse(stmt_ifelse& stm) -> void; auto process_stmt_while(stmt_while& stm) -> void; diff --git a/include/xsk/arc/parser.hpp b/include/xsk/arc/parser.hpp index 725f5003..db3853e1 100644 --- a/include/xsk/arc/parser.hpp +++ b/include/xsk/arc/parser.hpp @@ -679,17 +679,20 @@ namespace xsk { namespace arc { // stmt_wait char dummy78[sizeof (stmt_wait::ptr)]; + // stmt_waitrealtime + char dummy79[sizeof (stmt_waitrealtime::ptr)]; + // stmt_waittill - char dummy79[sizeof (stmt_waittill::ptr)]; + char dummy80[sizeof (stmt_waittill::ptr)]; // stmt_waittillframeend - char dummy80[sizeof (stmt_waittillframeend::ptr)]; + char dummy81[sizeof (stmt_waittillframeend::ptr)]; // stmt_waittillmatch - char dummy81[sizeof (stmt_waittillmatch::ptr)]; + char dummy82[sizeof (stmt_waittillmatch::ptr)]; // stmt_while - char dummy82[sizeof (stmt_while::ptr)]; + char dummy83[sizeof (stmt_while::ptr)]; }; /// The size of the largest semantic type. @@ -755,116 +758,117 @@ namespace xsk { namespace arc { ENDON = 13, // "endon" NOTIFY = 14, // "notify" WAIT = 15, // "wait" - WAITTILL = 16, // "waittill" - WAITTILLMATCH = 17, // "waittillmatch" - WAITTILLFRAMEEND = 18, // "waittillframeend" - IF = 19, // "if" - ELSE = 20, // "else" - DO = 21, // "do" - WHILE = 22, // "while" - FOR = 23, // "for" - FOREACH = 24, // "foreach" - IN = 25, // "in" - SWITCH = 26, // "switch" - CASE = 27, // "case" - DEFAULT = 28, // "default" - BREAK = 29, // "break" - CONTINUE = 30, // "continue" - RETURN = 31, // "return" - PROFBEGIN = 32, // "prof_begin" - PROFEND = 33, // "prof_end" - THREAD = 34, // "thread" - TRUE = 35, // "true" - FALSE = 36, // "false" - UNDEFINED = 37, // "undefined" - SIZE = 38, // "size" - GAME = 39, // "game" - SELF = 40, // "self" - ANIM = 41, // "anim" - LEVEL = 42, // "level" - CONST = 43, // "const" - GETNEXTARRAYKEY = 44, // "getnextarraykey" - GETFIRSTARRAYKEY = 45, // "getfirstarraykey" - GETDVARCOLORALPHA = 46, // "getdvarcoloralpha" - GETDVARCOLORBLUE = 47, // "getdvarcolorblue" - GETDVARCOLORGREEN = 48, // "getdvarcolorgreen" - GETDVARCOLORRED = 49, // "getdvarcolorred" - GETDVARVECTOR = 50, // "getdvarvector" - GETDVARFLOAT = 51, // "getdvarfloat" - GETDVARINT = 52, // "getdvarint" - GETDVAR = 53, // "getdvar" - GETTIME = 54, // "gettime" - ABS = 55, // "abs" - VECTORTOANGLES = 56, // "vectortoangles" - ANGLECLAMP180 = 57, // "angleclamp180" - ANGLESTOFORWARD = 58, // "anglestoforward" - ANGLESTORIGHT = 59, // "anglestoright" - ANGLESTOUP = 60, // "anglestoup" - VECTORSCALE = 61, // "vectorscale" - ISDEFINED = 62, // "isdefined" - LPAREN = 63, // "(" - RPAREN = 64, // ")" - LBRACE = 65, // "{" - RBRACE = 66, // "}" - LBRACKET = 67, // "[" - RBRACKET = 68, // "]" - COMMA = 69, // "," - DOT = 70, // "." - DOUBLEDOT = 71, // ".." - ELLIPSIS = 72, // "..." - DOUBLECOLON = 73, // "::" - COLON = 74, // ":" - SEMICOLON = 75, // ";" - QMARK = 76, // "?" - INCREMENT = 77, // "++" - DECREMENT = 78, // "--" - LSHIFT = 79, // "<<" - RSHIFT = 80, // ">>" - OR = 81, // "||" - AND = 82, // "&&" - EQUALITY = 83, // "==" - INEQUALITY = 84, // "!=" - LESS_EQUAL = 85, // "<=" - GREATER_EQUAL = 86, // ">=" - LESS = 87, // "<" - GREATER = 88, // ">" - NOT = 89, // "!" - COMPLEMENT = 90, // "~" - ASSIGN = 91, // "=" - ASSIGN_ADD = 92, // "+=" - ASSIGN_SUB = 93, // "-=" - ASSIGN_MUL = 94, // "*=" - ASSIGN_DIV = 95, // "/=" - ASSIGN_MOD = 96, // "%=" - ASSIGN_BW_OR = 97, // "|=" - ASSIGN_BW_AND = 98, // "&=" - ASSIGN_BW_EXOR = 99, // "^=" - ASSIGN_RSHIFT = 100, // ">>=" - ASSIGN_LSHIFT = 101, // "<<=" - BITWISE_OR = 102, // "|" - BITWISE_AND = 103, // "&" - BITWISE_EXOR = 104, // "^" - ADD = 105, // "+" - SUB = 106, // "-" - MUL = 107, // "*" - DIV = 108, // "/" - MOD = 109, // "%" - PATH = 110, // "path" - IDENTIFIER = 111, // "identifier" - STRING = 112, // "string literal" - ISTRING = 113, // "localized string" - HASHSTR = 114, // "hash string" - FLOAT = 115, // "float" - INTEGER = 116, // "integer" - SIZEOF = 117, // SIZEOF - THEN = 118, // THEN - TERN = 119, // TERN - NEG = 120, // NEG - ANIMREF = 121, // ANIMREF - PREINC = 122, // PREINC - PREDEC = 123, // PREDEC - POSTINC = 124, // POSTINC - POSTDEC = 125 // POSTDEC + WAITREALTIME = 16, // "waitrealtime" + WAITTILL = 17, // "waittill" + WAITTILLMATCH = 18, // "waittillmatch" + WAITTILLFRAMEEND = 19, // "waittillframeend" + IF = 20, // "if" + ELSE = 21, // "else" + DO = 22, // "do" + WHILE = 23, // "while" + FOR = 24, // "for" + FOREACH = 25, // "foreach" + IN = 26, // "in" + SWITCH = 27, // "switch" + CASE = 28, // "case" + DEFAULT = 29, // "default" + BREAK = 30, // "break" + CONTINUE = 31, // "continue" + RETURN = 32, // "return" + PROFBEGIN = 33, // "prof_begin" + PROFEND = 34, // "prof_end" + THREAD = 35, // "thread" + TRUE = 36, // "true" + FALSE = 37, // "false" + UNDEFINED = 38, // "undefined" + SIZE = 39, // "size" + GAME = 40, // "game" + SELF = 41, // "self" + ANIM = 42, // "anim" + LEVEL = 43, // "level" + CONST = 44, // "const" + GETNEXTARRAYKEY = 45, // "getnextarraykey" + GETFIRSTARRAYKEY = 46, // "getfirstarraykey" + GETDVARCOLORALPHA = 47, // "getdvarcoloralpha" + GETDVARCOLORBLUE = 48, // "getdvarcolorblue" + GETDVARCOLORGREEN = 49, // "getdvarcolorgreen" + GETDVARCOLORRED = 50, // "getdvarcolorred" + GETDVARVECTOR = 51, // "getdvarvector" + GETDVARFLOAT = 52, // "getdvarfloat" + GETDVARINT = 53, // "getdvarint" + GETDVAR = 54, // "getdvar" + GETTIME = 55, // "gettime" + ABS = 56, // "abs" + VECTORTOANGLES = 57, // "vectortoangles" + ANGLECLAMP180 = 58, // "angleclamp180" + ANGLESTOFORWARD = 59, // "anglestoforward" + ANGLESTORIGHT = 60, // "anglestoright" + ANGLESTOUP = 61, // "anglestoup" + VECTORSCALE = 62, // "vectorscale" + ISDEFINED = 63, // "isdefined" + LPAREN = 64, // "(" + RPAREN = 65, // ")" + LBRACE = 66, // "{" + RBRACE = 67, // "}" + LBRACKET = 68, // "[" + RBRACKET = 69, // "]" + COMMA = 70, // "," + DOT = 71, // "." + DOUBLEDOT = 72, // ".." + ELLIPSIS = 73, // "..." + DOUBLECOLON = 74, // "::" + COLON = 75, // ":" + SEMICOLON = 76, // ";" + QMARK = 77, // "?" + INCREMENT = 78, // "++" + DECREMENT = 79, // "--" + LSHIFT = 80, // "<<" + RSHIFT = 81, // ">>" + OR = 82, // "||" + AND = 83, // "&&" + EQUALITY = 84, // "==" + INEQUALITY = 85, // "!=" + LESS_EQUAL = 86, // "<=" + GREATER_EQUAL = 87, // ">=" + LESS = 88, // "<" + GREATER = 89, // ">" + NOT = 90, // "!" + COMPLEMENT = 91, // "~" + ASSIGN = 92, // "=" + ASSIGN_ADD = 93, // "+=" + ASSIGN_SUB = 94, // "-=" + ASSIGN_MUL = 95, // "*=" + ASSIGN_DIV = 96, // "/=" + ASSIGN_MOD = 97, // "%=" + ASSIGN_BW_OR = 98, // "|=" + ASSIGN_BW_AND = 99, // "&=" + ASSIGN_BW_EXOR = 100, // "^=" + ASSIGN_RSHIFT = 101, // ">>=" + ASSIGN_LSHIFT = 102, // "<<=" + BITWISE_OR = 103, // "|" + BITWISE_AND = 104, // "&" + BITWISE_EXOR = 105, // "^" + ADD = 106, // "+" + SUB = 107, // "-" + MUL = 108, // "*" + DIV = 109, // "/" + MOD = 110, // "%" + PATH = 111, // "path" + IDENTIFIER = 112, // "identifier" + STRING = 113, // "string literal" + ISTRING = 114, // "localized string" + HASHSTR = 115, // "hash string" + FLOAT = 116, // "float" + INTEGER = 117, // "integer" + SIZEOF = 118, // SIZEOF + THEN = 119, // THEN + TERN = 120, // TERN + NEG = 121, // NEG + ANIMREF = 122, // ANIMREF + PREINC = 123, // PREINC + PREDEC = 124, // PREDEC + POSTINC = 125, // POSTINC + POSTDEC = 126 // POSTDEC }; /// Backward compatibility alias (Bison 3.6). typedef token_kind_type yytokentype; @@ -881,7 +885,7 @@ namespace xsk { namespace arc { { enum symbol_kind_type { - YYNTOKENS = 126, ///< Number of tokens. + YYNTOKENS = 127, ///< Number of tokens. S_YYEMPTY = -2, S_YYEOF = 0, // "end of file" S_YYerror = 1, // error @@ -899,217 +903,219 @@ namespace xsk { namespace arc { S_ENDON = 13, // "endon" S_NOTIFY = 14, // "notify" S_WAIT = 15, // "wait" - S_WAITTILL = 16, // "waittill" - S_WAITTILLMATCH = 17, // "waittillmatch" - S_WAITTILLFRAMEEND = 18, // "waittillframeend" - S_IF = 19, // "if" - S_ELSE = 20, // "else" - S_DO = 21, // "do" - S_WHILE = 22, // "while" - S_FOR = 23, // "for" - S_FOREACH = 24, // "foreach" - S_IN = 25, // "in" - S_SWITCH = 26, // "switch" - S_CASE = 27, // "case" - S_DEFAULT = 28, // "default" - S_BREAK = 29, // "break" - S_CONTINUE = 30, // "continue" - S_RETURN = 31, // "return" - S_PROFBEGIN = 32, // "prof_begin" - S_PROFEND = 33, // "prof_end" - S_THREAD = 34, // "thread" - S_TRUE = 35, // "true" - S_FALSE = 36, // "false" - S_UNDEFINED = 37, // "undefined" - S_SIZE = 38, // "size" - S_GAME = 39, // "game" - S_SELF = 40, // "self" - S_ANIM = 41, // "anim" - S_LEVEL = 42, // "level" - S_CONST = 43, // "const" - S_GETNEXTARRAYKEY = 44, // "getnextarraykey" - S_GETFIRSTARRAYKEY = 45, // "getfirstarraykey" - S_GETDVARCOLORALPHA = 46, // "getdvarcoloralpha" - S_GETDVARCOLORBLUE = 47, // "getdvarcolorblue" - S_GETDVARCOLORGREEN = 48, // "getdvarcolorgreen" - S_GETDVARCOLORRED = 49, // "getdvarcolorred" - S_GETDVARVECTOR = 50, // "getdvarvector" - S_GETDVARFLOAT = 51, // "getdvarfloat" - S_GETDVARINT = 52, // "getdvarint" - S_GETDVAR = 53, // "getdvar" - S_GETTIME = 54, // "gettime" - S_ABS = 55, // "abs" - S_VECTORTOANGLES = 56, // "vectortoangles" - S_ANGLECLAMP180 = 57, // "angleclamp180" - S_ANGLESTOFORWARD = 58, // "anglestoforward" - S_ANGLESTORIGHT = 59, // "anglestoright" - S_ANGLESTOUP = 60, // "anglestoup" - S_VECTORSCALE = 61, // "vectorscale" - S_ISDEFINED = 62, // "isdefined" - S_LPAREN = 63, // "(" - S_RPAREN = 64, // ")" - S_LBRACE = 65, // "{" - S_RBRACE = 66, // "}" - S_LBRACKET = 67, // "[" - S_RBRACKET = 68, // "]" - S_COMMA = 69, // "," - S_DOT = 70, // "." - S_DOUBLEDOT = 71, // ".." - S_ELLIPSIS = 72, // "..." - S_DOUBLECOLON = 73, // "::" - S_COLON = 74, // ":" - S_SEMICOLON = 75, // ";" - S_QMARK = 76, // "?" - S_INCREMENT = 77, // "++" - S_DECREMENT = 78, // "--" - S_LSHIFT = 79, // "<<" - S_RSHIFT = 80, // ">>" - S_OR = 81, // "||" - S_AND = 82, // "&&" - S_EQUALITY = 83, // "==" - S_INEQUALITY = 84, // "!=" - S_LESS_EQUAL = 85, // "<=" - S_GREATER_EQUAL = 86, // ">=" - S_LESS = 87, // "<" - S_GREATER = 88, // ">" - S_NOT = 89, // "!" - S_COMPLEMENT = 90, // "~" - S_ASSIGN = 91, // "=" - S_ASSIGN_ADD = 92, // "+=" - S_ASSIGN_SUB = 93, // "-=" - S_ASSIGN_MUL = 94, // "*=" - S_ASSIGN_DIV = 95, // "/=" - S_ASSIGN_MOD = 96, // "%=" - S_ASSIGN_BW_OR = 97, // "|=" - S_ASSIGN_BW_AND = 98, // "&=" - S_ASSIGN_BW_EXOR = 99, // "^=" - S_ASSIGN_RSHIFT = 100, // ">>=" - S_ASSIGN_LSHIFT = 101, // "<<=" - S_BITWISE_OR = 102, // "|" - S_BITWISE_AND = 103, // "&" - S_BITWISE_EXOR = 104, // "^" - S_ADD = 105, // "+" - S_SUB = 106, // "-" - S_MUL = 107, // "*" - S_DIV = 108, // "/" - S_MOD = 109, // "%" - S_PATH = 110, // "path" - S_IDENTIFIER = 111, // "identifier" - S_STRING = 112, // "string literal" - S_ISTRING = 113, // "localized string" - S_HASHSTR = 114, // "hash string" - S_FLOAT = 115, // "float" - S_INTEGER = 116, // "integer" - S_SIZEOF = 117, // SIZEOF - S_THEN = 118, // THEN - S_TERN = 119, // TERN - S_NEG = 120, // NEG - S_ANIMREF = 121, // ANIMREF - S_PREINC = 122, // PREINC - S_PREDEC = 123, // PREDEC - S_POSTINC = 124, // POSTINC - S_POSTDEC = 125, // POSTDEC - S_YYACCEPT = 126, // $accept - S_root = 127, // root - S_program = 128, // program - S_inline = 129, // inline - S_include = 130, // include - S_declaration = 131, // declaration - S_decl_usingtree = 132, // decl_usingtree - S_decl_function = 133, // decl_function - S_stmt = 134, // stmt - S_stmt_or_dev = 135, // stmt_or_dev - S_stmt_list = 136, // stmt_list - S_stmt_or_dev_list = 137, // stmt_or_dev_list - S_stmt_dev = 138, // stmt_dev - S_stmt_comp = 139, // stmt_comp - S_stmt_expr = 140, // stmt_expr - S_stmt_call = 141, // stmt_call - S_stmt_const = 142, // stmt_const - S_stmt_assign = 143, // stmt_assign - S_stmt_endon = 144, // stmt_endon - S_stmt_notify = 145, // stmt_notify - S_stmt_wait = 146, // stmt_wait - S_stmt_waittill = 147, // stmt_waittill - S_stmt_waittillmatch = 148, // stmt_waittillmatch - S_stmt_waittillframeend = 149, // stmt_waittillframeend - S_stmt_if = 150, // stmt_if - S_stmt_ifelse = 151, // stmt_ifelse - S_stmt_while = 152, // stmt_while - S_stmt_dowhile = 153, // stmt_dowhile - S_stmt_for = 154, // stmt_for - S_stmt_foreach = 155, // stmt_foreach - S_stmt_switch = 156, // stmt_switch - S_stmt_case = 157, // stmt_case - S_stmt_default = 158, // stmt_default - S_stmt_break = 159, // stmt_break - S_stmt_continue = 160, // stmt_continue - S_stmt_return = 161, // stmt_return - S_stmt_prof_begin = 162, // stmt_prof_begin - S_stmt_prof_end = 163, // stmt_prof_end - S_expr = 164, // expr - S_expr_or_empty = 165, // expr_or_empty - S_expr_increment = 166, // expr_increment - S_expr_decrement = 167, // expr_decrement - S_expr_assign = 168, // expr_assign - S_expr_ternary = 169, // expr_ternary - S_expr_binary = 170, // expr_binary - S_expr_primitive = 171, // expr_primitive - S_expr_complement = 172, // expr_complement - S_expr_negate = 173, // expr_negate - S_expr_not = 174, // expr_not - S_expr_call = 175, // expr_call - S_expr_method = 176, // expr_method - S_expr_function = 177, // expr_function - S_expr_pointer = 178, // expr_pointer - S_expr_parameters = 179, // expr_parameters - S_expr_parameters_default = 180, // expr_parameters_default - S_expr_arguments = 181, // expr_arguments - S_expr_arguments_no_empty = 182, // expr_arguments_no_empty - S_expr_getnextarraykey = 183, // expr_getnextarraykey - S_expr_getfirstarraykey = 184, // expr_getfirstarraykey - S_expr_getdvarcoloralpha = 185, // expr_getdvarcoloralpha - S_expr_getdvarcolorblue = 186, // expr_getdvarcolorblue - S_expr_getdvarcolorgreen = 187, // expr_getdvarcolorgreen - S_expr_getdvarcolorred = 188, // expr_getdvarcolorred - S_expr_getdvarvector = 189, // expr_getdvarvector - S_expr_getdvarfloat = 190, // expr_getdvarfloat - S_expr_getdvarint = 191, // expr_getdvarint - S_expr_getdvar = 192, // expr_getdvar - S_expr_gettime = 193, // expr_gettime - S_expr_abs = 194, // expr_abs - S_expr_vectortoangles = 195, // expr_vectortoangles - S_expr_angleclamp180 = 196, // expr_angleclamp180 - S_expr_anglestoforward = 197, // expr_anglestoforward - S_expr_anglestoright = 198, // expr_anglestoright - S_expr_anglestoup = 199, // expr_anglestoup - S_expr_vectorscale = 200, // expr_vectorscale - S_expr_isdefined = 201, // expr_isdefined - S_expr_reference = 202, // expr_reference - S_expr_array = 203, // expr_array - S_expr_field = 204, // expr_field - S_expr_size = 205, // expr_size - S_expr_paren = 206, // expr_paren - S_expr_object = 207, // expr_object - S_expr_empty_array = 208, // expr_empty_array - S_expr_undefined = 209, // expr_undefined - S_expr_game = 210, // expr_game - S_expr_self = 211, // expr_self - S_expr_anim = 212, // expr_anim - S_expr_level = 213, // expr_level - S_expr_animation = 214, // expr_animation - S_expr_animtree = 215, // expr_animtree - S_expr_identifier_nosize = 216, // expr_identifier_nosize - S_expr_identifier = 217, // expr_identifier - S_expr_path = 218, // expr_path - S_expr_istring = 219, // expr_istring - S_expr_string = 220, // expr_string - S_expr_vector = 221, // expr_vector - S_expr_hash = 222, // expr_hash - S_expr_float = 223, // expr_float - S_expr_integer = 224, // expr_integer - S_expr_false = 225, // expr_false - S_expr_true = 226 // expr_true + S_WAITREALTIME = 16, // "waitrealtime" + S_WAITTILL = 17, // "waittill" + S_WAITTILLMATCH = 18, // "waittillmatch" + S_WAITTILLFRAMEEND = 19, // "waittillframeend" + S_IF = 20, // "if" + S_ELSE = 21, // "else" + S_DO = 22, // "do" + S_WHILE = 23, // "while" + S_FOR = 24, // "for" + S_FOREACH = 25, // "foreach" + S_IN = 26, // "in" + S_SWITCH = 27, // "switch" + S_CASE = 28, // "case" + S_DEFAULT = 29, // "default" + S_BREAK = 30, // "break" + S_CONTINUE = 31, // "continue" + S_RETURN = 32, // "return" + S_PROFBEGIN = 33, // "prof_begin" + S_PROFEND = 34, // "prof_end" + S_THREAD = 35, // "thread" + S_TRUE = 36, // "true" + S_FALSE = 37, // "false" + S_UNDEFINED = 38, // "undefined" + S_SIZE = 39, // "size" + S_GAME = 40, // "game" + S_SELF = 41, // "self" + S_ANIM = 42, // "anim" + S_LEVEL = 43, // "level" + S_CONST = 44, // "const" + S_GETNEXTARRAYKEY = 45, // "getnextarraykey" + S_GETFIRSTARRAYKEY = 46, // "getfirstarraykey" + S_GETDVARCOLORALPHA = 47, // "getdvarcoloralpha" + S_GETDVARCOLORBLUE = 48, // "getdvarcolorblue" + S_GETDVARCOLORGREEN = 49, // "getdvarcolorgreen" + S_GETDVARCOLORRED = 50, // "getdvarcolorred" + S_GETDVARVECTOR = 51, // "getdvarvector" + S_GETDVARFLOAT = 52, // "getdvarfloat" + S_GETDVARINT = 53, // "getdvarint" + S_GETDVAR = 54, // "getdvar" + S_GETTIME = 55, // "gettime" + S_ABS = 56, // "abs" + S_VECTORTOANGLES = 57, // "vectortoangles" + S_ANGLECLAMP180 = 58, // "angleclamp180" + S_ANGLESTOFORWARD = 59, // "anglestoforward" + S_ANGLESTORIGHT = 60, // "anglestoright" + S_ANGLESTOUP = 61, // "anglestoup" + S_VECTORSCALE = 62, // "vectorscale" + S_ISDEFINED = 63, // "isdefined" + S_LPAREN = 64, // "(" + S_RPAREN = 65, // ")" + S_LBRACE = 66, // "{" + S_RBRACE = 67, // "}" + S_LBRACKET = 68, // "[" + S_RBRACKET = 69, // "]" + S_COMMA = 70, // "," + S_DOT = 71, // "." + S_DOUBLEDOT = 72, // ".." + S_ELLIPSIS = 73, // "..." + S_DOUBLECOLON = 74, // "::" + S_COLON = 75, // ":" + S_SEMICOLON = 76, // ";" + S_QMARK = 77, // "?" + S_INCREMENT = 78, // "++" + S_DECREMENT = 79, // "--" + S_LSHIFT = 80, // "<<" + S_RSHIFT = 81, // ">>" + S_OR = 82, // "||" + S_AND = 83, // "&&" + S_EQUALITY = 84, // "==" + S_INEQUALITY = 85, // "!=" + S_LESS_EQUAL = 86, // "<=" + S_GREATER_EQUAL = 87, // ">=" + S_LESS = 88, // "<" + S_GREATER = 89, // ">" + S_NOT = 90, // "!" + S_COMPLEMENT = 91, // "~" + S_ASSIGN = 92, // "=" + S_ASSIGN_ADD = 93, // "+=" + S_ASSIGN_SUB = 94, // "-=" + S_ASSIGN_MUL = 95, // "*=" + S_ASSIGN_DIV = 96, // "/=" + S_ASSIGN_MOD = 97, // "%=" + S_ASSIGN_BW_OR = 98, // "|=" + S_ASSIGN_BW_AND = 99, // "&=" + S_ASSIGN_BW_EXOR = 100, // "^=" + S_ASSIGN_RSHIFT = 101, // ">>=" + S_ASSIGN_LSHIFT = 102, // "<<=" + S_BITWISE_OR = 103, // "|" + S_BITWISE_AND = 104, // "&" + S_BITWISE_EXOR = 105, // "^" + S_ADD = 106, // "+" + S_SUB = 107, // "-" + S_MUL = 108, // "*" + S_DIV = 109, // "/" + S_MOD = 110, // "%" + S_PATH = 111, // "path" + S_IDENTIFIER = 112, // "identifier" + S_STRING = 113, // "string literal" + S_ISTRING = 114, // "localized string" + S_HASHSTR = 115, // "hash string" + S_FLOAT = 116, // "float" + S_INTEGER = 117, // "integer" + S_SIZEOF = 118, // SIZEOF + S_THEN = 119, // THEN + S_TERN = 120, // TERN + S_NEG = 121, // NEG + S_ANIMREF = 122, // ANIMREF + S_PREINC = 123, // PREINC + S_PREDEC = 124, // PREDEC + S_POSTINC = 125, // POSTINC + S_POSTDEC = 126, // POSTDEC + S_YYACCEPT = 127, // $accept + S_root = 128, // root + S_program = 129, // program + S_inline = 130, // inline + S_include = 131, // include + S_declaration = 132, // declaration + S_decl_usingtree = 133, // decl_usingtree + S_decl_function = 134, // decl_function + S_stmt = 135, // stmt + S_stmt_or_dev = 136, // stmt_or_dev + S_stmt_list = 137, // stmt_list + S_stmt_or_dev_list = 138, // stmt_or_dev_list + S_stmt_dev = 139, // stmt_dev + S_stmt_comp = 140, // stmt_comp + S_stmt_expr = 141, // stmt_expr + S_stmt_call = 142, // stmt_call + S_stmt_const = 143, // stmt_const + S_stmt_assign = 144, // stmt_assign + S_stmt_endon = 145, // stmt_endon + S_stmt_notify = 146, // stmt_notify + S_stmt_wait = 147, // stmt_wait + S_stmt_waitrealtime = 148, // stmt_waitrealtime + S_stmt_waittill = 149, // stmt_waittill + S_stmt_waittillmatch = 150, // stmt_waittillmatch + S_stmt_waittillframeend = 151, // stmt_waittillframeend + S_stmt_if = 152, // stmt_if + S_stmt_ifelse = 153, // stmt_ifelse + S_stmt_while = 154, // stmt_while + S_stmt_dowhile = 155, // stmt_dowhile + S_stmt_for = 156, // stmt_for + S_stmt_foreach = 157, // stmt_foreach + S_stmt_switch = 158, // stmt_switch + S_stmt_case = 159, // stmt_case + S_stmt_default = 160, // stmt_default + S_stmt_break = 161, // stmt_break + S_stmt_continue = 162, // stmt_continue + S_stmt_return = 163, // stmt_return + S_stmt_prof_begin = 164, // stmt_prof_begin + S_stmt_prof_end = 165, // stmt_prof_end + S_expr = 166, // expr + S_expr_or_empty = 167, // expr_or_empty + S_expr_increment = 168, // expr_increment + S_expr_decrement = 169, // expr_decrement + S_expr_assign = 170, // expr_assign + S_expr_ternary = 171, // expr_ternary + S_expr_binary = 172, // expr_binary + S_expr_primitive = 173, // expr_primitive + S_expr_complement = 174, // expr_complement + S_expr_negate = 175, // expr_negate + S_expr_not = 176, // expr_not + S_expr_call = 177, // expr_call + S_expr_method = 178, // expr_method + S_expr_function = 179, // expr_function + S_expr_pointer = 180, // expr_pointer + S_expr_parameters = 181, // expr_parameters + S_expr_parameters_default = 182, // expr_parameters_default + S_expr_arguments = 183, // expr_arguments + S_expr_arguments_no_empty = 184, // expr_arguments_no_empty + S_expr_getnextarraykey = 185, // expr_getnextarraykey + S_expr_getfirstarraykey = 186, // expr_getfirstarraykey + S_expr_getdvarcoloralpha = 187, // expr_getdvarcoloralpha + S_expr_getdvarcolorblue = 188, // expr_getdvarcolorblue + S_expr_getdvarcolorgreen = 189, // expr_getdvarcolorgreen + S_expr_getdvarcolorred = 190, // expr_getdvarcolorred + S_expr_getdvarvector = 191, // expr_getdvarvector + S_expr_getdvarfloat = 192, // expr_getdvarfloat + S_expr_getdvarint = 193, // expr_getdvarint + S_expr_getdvar = 194, // expr_getdvar + S_expr_gettime = 195, // expr_gettime + S_expr_abs = 196, // expr_abs + S_expr_vectortoangles = 197, // expr_vectortoangles + S_expr_angleclamp180 = 198, // expr_angleclamp180 + S_expr_anglestoforward = 199, // expr_anglestoforward + S_expr_anglestoright = 200, // expr_anglestoright + S_expr_anglestoup = 201, // expr_anglestoup + S_expr_vectorscale = 202, // expr_vectorscale + S_expr_isdefined = 203, // expr_isdefined + S_expr_reference = 204, // expr_reference + S_expr_array = 205, // expr_array + S_expr_field = 206, // expr_field + S_expr_size = 207, // expr_size + S_expr_paren = 208, // expr_paren + S_expr_object = 209, // expr_object + S_expr_empty_array = 210, // expr_empty_array + S_expr_undefined = 211, // expr_undefined + S_expr_game = 212, // expr_game + S_expr_self = 213, // expr_self + S_expr_anim = 214, // expr_anim + S_expr_level = 215, // expr_level + S_expr_animation = 216, // expr_animation + S_expr_animtree = 217, // expr_animtree + S_expr_identifier_nosize = 218, // expr_identifier_nosize + S_expr_identifier = 219, // expr_identifier + S_expr_path = 220, // expr_path + S_expr_istring = 221, // expr_istring + S_expr_string = 222, // expr_string + S_expr_vector = 223, // expr_vector + S_expr_hash = 224, // expr_hash + S_expr_float = 225, // expr_float + S_expr_integer = 226, // expr_integer + S_expr_false = 227, // expr_false + S_expr_true = 228 // expr_true }; }; @@ -1481,6 +1487,10 @@ namespace xsk { namespace arc { value.move< stmt_wait::ptr > (std::move (that.value)); break; + case symbol_kind::S_stmt_waitrealtime: // stmt_waitrealtime + value.move< stmt_waitrealtime::ptr > (std::move (that.value)); + break; + case symbol_kind::S_stmt_waittill: // stmt_waittill value.move< stmt_waittill::ptr > (std::move (that.value)); break; @@ -2612,6 +2622,20 @@ namespace xsk { namespace arc { {} #endif +#if 201103L <= YY_CPLUSPLUS + basic_symbol (typename Base::kind_type t, stmt_waitrealtime::ptr&& v, location_type&& l) + : Base (t) + , value (std::move (v)) + , location (std::move (l)) + {} +#else + basic_symbol (typename Base::kind_type t, const stmt_waitrealtime::ptr& v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} +#endif + #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, stmt_waittill::ptr&& v, location_type&& l) : Base (t) @@ -3027,6 +3051,10 @@ switch (yykind) value.template destroy< stmt_wait::ptr > (); break; + case symbol_kind::S_stmt_waitrealtime: // stmt_waitrealtime + value.template destroy< stmt_waitrealtime::ptr > (); + break; + case symbol_kind::S_stmt_waittill: // stmt_waittill value.template destroy< stmt_waittill::ptr > (); break; @@ -3445,6 +3473,21 @@ switch (yykind) return symbol_type (token::WAIT, l); } #endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_WAITREALTIME (location_type l) + { + return symbol_type (token::WAITREALTIME, std::move (l)); + } +#else + static + symbol_type + make_WAITREALTIME (const location_type& l) + { + return symbol_type (token::WAITREALTIME, l); + } +#endif #if 201103L <= YY_CPLUSPLUS static symbol_type @@ -5439,8 +5482,8 @@ switch (yykind) /// Constants. enum { - yylast_ = 3330, ///< Last index in yytable_. - yynnts_ = 101, ///< Number of nonterminal symbols. + yylast_ = 3307, ///< Last index in yytable_. + yynnts_ = 102, ///< Number of nonterminal symbols. yyfinal_ = 28 ///< Termination state number. }; @@ -5804,6 +5847,10 @@ switch (yykind) value.copy< stmt_wait::ptr > (YY_MOVE (that.value)); break; + case symbol_kind::S_stmt_waitrealtime: // stmt_waitrealtime + value.copy< stmt_waitrealtime::ptr > (YY_MOVE (that.value)); + break; + case symbol_kind::S_stmt_waittill: // stmt_waittill value.copy< stmt_waittill::ptr > (YY_MOVE (that.value)); break; @@ -6186,6 +6233,10 @@ switch (yykind) value.move< stmt_wait::ptr > (YY_MOVE (s.value)); break; + case symbol_kind::S_stmt_waitrealtime: // stmt_waitrealtime + value.move< stmt_waitrealtime::ptr > (YY_MOVE (s.value)); + break; + case symbol_kind::S_stmt_waittill: // stmt_waittill value.move< stmt_waittill::ptr > (YY_MOVE (s.value)); break; @@ -6269,7 +6320,7 @@ switch (yykind) #line 13 "parser.ypp" } } // xsk::arc -#line 6273 "parser.hpp" +#line 6324 "parser.hpp" diff --git a/include/xsk/arc/source.hpp b/include/xsk/arc/source.hpp index 204e3eda..80434978 100644 --- a/include/xsk/arc/source.hpp +++ b/include/xsk/arc/source.hpp @@ -49,10 +49,10 @@ private: auto dump_stmt_endon(stmt_endon const& stm) -> void; auto dump_stmt_notify(stmt_notify const& stm) -> void; auto dump_stmt_wait(stmt_wait const& stm) -> void; + auto dump_stmt_waitrealtime(stmt_waitrealtime const& stm) -> void; auto dump_stmt_waittill(stmt_waittill const& stm) -> void; auto dump_stmt_waittillmatch(stmt_waittillmatch const& stm) -> void; auto dump_stmt_waittillframeend(stmt_waittillframeend const& stm) -> void; - auto dump_stmt_waitrealtime(stmt_waitrealtime const& stm) -> void; auto dump_stmt_if(stmt_if const& stm) -> void; auto dump_stmt_ifelse(stmt_ifelse const& stm) -> void; auto dump_stmt_while(stmt_while const& stm) -> void; diff --git a/src/arc/common/ast.cpp b/src/arc/common/ast.cpp index c113476b..648a6044 100644 --- a/src/arc/common/ast.cpp +++ b/src/arc/common/ast.cpp @@ -411,10 +411,10 @@ XSK_ARC_STMT_IS(stmt_expr) XSK_ARC_STMT_IS(stmt_endon) XSK_ARC_STMT_IS(stmt_notify) XSK_ARC_STMT_IS(stmt_wait) +XSK_ARC_STMT_IS(stmt_waitrealtime) XSK_ARC_STMT_IS(stmt_waittill) XSK_ARC_STMT_IS(stmt_waittillmatch) XSK_ARC_STMT_IS(stmt_waittillframeend) -XSK_ARC_STMT_IS(stmt_waitrealtime) XSK_ARC_STMT_IS(stmt_if) XSK_ARC_STMT_IS(stmt_ifelse) XSK_ARC_STMT_IS(stmt_while) @@ -742,6 +742,10 @@ stmt_wait::stmt_wait(location const& loc, expr::ptr time) : stmt{ type::stmt_wai { } +stmt_waitrealtime::stmt_waitrealtime(location const& loc, expr::ptr time) : stmt{ type::stmt_waitrealtime, loc }, time{ std::move(time) } +{ +} + stmt_waittill::stmt_waittill(location const& loc, expr::ptr obj, expr::ptr event, expr_arguments::ptr args) : stmt{ type::stmt_waittill, loc }, obj{ std::move(obj) }, event{ std::move(event) }, args{ std::move(args) } { } @@ -754,10 +758,6 @@ stmt_waittillframeend::stmt_waittillframeend(location const& loc) : stmt{ type:: { } -stmt_waitrealtime::stmt_waitrealtime(location const& loc, expr::ptr time) : stmt{ type::stmt_waitrealtime, loc }, time{ std::move(time) } -{ -} - stmt_if::stmt_if(location const& loc, expr::ptr test, stmt::ptr body) : stmt{ type::stmt_if, loc }, test{ std::move(test) }, body{ std::move(body) } { } diff --git a/src/arc/common/token.cpp b/src/arc/common/token.cpp index af1bbaaf..e23f2c95 100644 --- a/src/arc/common/token.cpp +++ b/src/arc/common/token.cpp @@ -83,6 +83,7 @@ auto token::to_string() -> std::string case token::ENDON: return "endon"; case token::NOTIFY: return "notify"; case token::WAIT: return "wait"; + case token::WAITREALTIME: return "waitrealtime"; case token::WAITTILL: return "waittill"; case token::WAITTILLMATCH: return "waittillmatch"; case token::WAITTILLFRAMEEND: return "waittillframeend"; diff --git a/src/arc/compiler.cpp b/src/arc/compiler.cpp index 8e1b4e92..875eded3 100644 --- a/src/arc/compiler.cpp +++ b/src/arc/compiler.cpp @@ -161,6 +161,9 @@ auto compiler::emit_stmt(stmt const& stm) -> void case node::stmt_wait: emit_stmt_wait(stm.as()); break; + case node::stmt_waitrealtime: + emit_stmt_waitrealtime(stm.as()); + break; case node::stmt_waittill: emit_stmt_waittill(stm.as()); break; @@ -294,6 +297,12 @@ auto compiler::emit_stmt_wait(stmt_wait const& stm) -> void emit_opcode(opcode::OP_Wait); } +auto compiler::emit_stmt_waitrealtime(stmt_waitrealtime const& stm) -> void +{ + emit_expr(*stm.time); + emit_opcode(opcode::OP_RealWait); +} + auto compiler::emit_stmt_waittill(stmt_waittill const& stm) -> void { emit_expr(*stm.event); diff --git a/src/arc/decompiler.cpp b/src/arc/decompiler.cpp index b4ed35fa..9a263b1c 100644 --- a/src/arc/decompiler.cpp +++ b/src/arc/decompiler.cpp @@ -2037,15 +2037,15 @@ auto decompiler::process_stmt(stmt& stm) -> void case node::stmt_wait: process_stmt_wait(stm.as()); break; + case node::stmt_waitrealtime: + process_stmt_waitrealtime(stm.as()); + break; case node::stmt_waittill: process_stmt_waittill(stm.as()); break; case node::stmt_waittillmatch: process_stmt_waittillmatch(stm.as()); break; - case node::stmt_waitrealtime: - process_stmt_waitrealtime(stm.as()); - break; case node::stmt_if: process_stmt_if(stm.as()); break; @@ -2135,6 +2135,11 @@ auto decompiler::process_stmt_wait(stmt_wait& stm) -> void process_expr(stm.time); } +auto decompiler::process_stmt_waitrealtime(stmt_waitrealtime& stm) -> void +{ + process_expr(stm.time); +} + auto decompiler::process_stmt_waittill(stmt_waittill& stm) -> void { process_expr(stm.event); @@ -2153,11 +2158,6 @@ auto decompiler::process_stmt_waittillmatch(stmt_waittillmatch& stm) -> void process_expr(stm.obj); } -auto decompiler::process_stmt_waitrealtime(stmt_waitrealtime& stm) -> void -{ - process_expr(stm.time); -} - auto decompiler::process_stmt_if(stmt_if& stm) -> void { process_expr(stm.test); diff --git a/src/arc/parser.cpp b/src/arc/parser.cpp index 7b26abe3..c95db62c 100644 --- a/src/arc/parser.cpp +++ b/src/arc/parser.cpp @@ -550,6 +550,10 @@ namespace xsk { namespace arc { value.YY_MOVE_OR_COPY< stmt_wait::ptr > (YY_MOVE (that.value)); break; + case symbol_kind::S_stmt_waitrealtime: // stmt_waitrealtime + value.YY_MOVE_OR_COPY< stmt_waitrealtime::ptr > (YY_MOVE (that.value)); + break; + case symbol_kind::S_stmt_waittill: // stmt_waittill value.YY_MOVE_OR_COPY< stmt_waittill::ptr > (YY_MOVE (that.value)); break; @@ -916,6 +920,10 @@ namespace xsk { namespace arc { value.move< stmt_wait::ptr > (YY_MOVE (that.value)); break; + case symbol_kind::S_stmt_waitrealtime: // stmt_waitrealtime + value.move< stmt_waitrealtime::ptr > (YY_MOVE (that.value)); + break; + case symbol_kind::S_stmt_waittill: // stmt_waittill value.move< stmt_waittill::ptr > (YY_MOVE (that.value)); break; @@ -1282,6 +1290,10 @@ namespace xsk { namespace arc { value.copy< stmt_wait::ptr > (that.value); break; + case symbol_kind::S_stmt_waitrealtime: // stmt_waitrealtime + value.copy< stmt_waitrealtime::ptr > (that.value); + break; + case symbol_kind::S_stmt_waittill: // stmt_waittill value.copy< stmt_waittill::ptr > (that.value); break; @@ -1647,6 +1659,10 @@ namespace xsk { namespace arc { value.move< stmt_wait::ptr > (that.value); break; + case symbol_kind::S_stmt_waitrealtime: // stmt_waitrealtime + value.move< stmt_waitrealtime::ptr > (that.value); + break; + case symbol_kind::S_stmt_waittill: // stmt_waittill value.move< stmt_waittill::ptr > (that.value); break; @@ -2267,6 +2283,10 @@ namespace xsk { namespace arc { yylhs.value.emplace< stmt_wait::ptr > (); break; + case symbol_kind::S_stmt_waitrealtime: // stmt_waitrealtime + yylhs.value.emplace< stmt_waitrealtime::ptr > (); + break; + case symbol_kind::S_stmt_waittill: // stmt_waittill yylhs.value.emplace< stmt_waittill::ptr > (); break; @@ -2304,1652 +2324,1664 @@ namespace xsk { namespace arc { switch (yyn) { case 2: // root: program -#line 297 "parser.ypp" +#line 299 "parser.ypp" { ast = std::move(yystack_[0].value.as < program::ptr > ()); } -#line 2316 "parser.cpp" +#line 2336 "parser.cpp" break; case 3: // root: %empty -#line 298 "parser.ypp" +#line 300 "parser.ypp" { ast = program::make(yylhs.location); } -#line 2322 "parser.cpp" +#line 2342 "parser.cpp" break; case 4: // program: program ";" -#line 303 "parser.ypp" +#line 305 "parser.ypp" { yylhs.value.as < program::ptr > () = std::move(yystack_[1].value.as < program::ptr > ()); } -#line 2328 "parser.cpp" +#line 2348 "parser.cpp" break; case 5: // program: program inline -#line 305 "parser.ypp" +#line 307 "parser.ypp" { yylhs.value.as < program::ptr > () = std::move(yystack_[1].value.as < program::ptr > ()); } -#line 2334 "parser.cpp" +#line 2354 "parser.cpp" break; case 6: // program: program include -#line 307 "parser.ypp" +#line 309 "parser.ypp" { yylhs.value.as < program::ptr > () = std::move(yystack_[1].value.as < program::ptr > ()); yylhs.value.as < program::ptr > ()->includes.push_back(std::move(yystack_[0].value.as < include::ptr > ())); } -#line 2340 "parser.cpp" +#line 2360 "parser.cpp" break; case 7: // program: program declaration -#line 309 "parser.ypp" +#line 311 "parser.ypp" { yylhs.value.as < program::ptr > () = std::move(yystack_[1].value.as < program::ptr > ()); yylhs.value.as < program::ptr > ()->declarations.push_back(std::move(yystack_[0].value.as < decl::ptr > ())); } -#line 2346 "parser.cpp" +#line 2366 "parser.cpp" break; case 8: // program: ";" -#line 311 "parser.ypp" +#line 313 "parser.ypp" { yylhs.value.as < program::ptr > () = program::make(yylhs.location); } -#line 2352 "parser.cpp" +#line 2372 "parser.cpp" break; case 9: // program: inline -#line 313 "parser.ypp" +#line 315 "parser.ypp" { yylhs.value.as < program::ptr > () = program::make(yylhs.location); } -#line 2358 "parser.cpp" +#line 2378 "parser.cpp" break; case 10: // program: include -#line 315 "parser.ypp" +#line 317 "parser.ypp" { yylhs.value.as < program::ptr > () = program::make(yylhs.location); yylhs.value.as < program::ptr > ()->includes.push_back(std::move(yystack_[0].value.as < include::ptr > ())); } -#line 2364 "parser.cpp" +#line 2384 "parser.cpp" break; case 11: // program: declaration -#line 317 "parser.ypp" +#line 319 "parser.ypp" { yylhs.value.as < program::ptr > () = program::make(yylhs.location); yylhs.value.as < program::ptr > ()->declarations.push_back(std::move(yystack_[0].value.as < decl::ptr > ())); } -#line 2370 "parser.cpp" +#line 2390 "parser.cpp" break; case 12: // inline: "#inline" expr_path ";" -#line 321 "parser.ypp" +#line 323 "parser.ypp" { ppr.push_header(yystack_[1].value.as < expr_path::ptr > ()->value); } -#line 2376 "parser.cpp" +#line 2396 "parser.cpp" break; case 13: // include: "#include" expr_path ";" -#line 326 "parser.ypp" +#line 328 "parser.ypp" { yylhs.value.as < include::ptr > () = include::make(yylhs.location, std::move(yystack_[1].value.as < expr_path::ptr > ())); } -#line 2382 "parser.cpp" +#line 2402 "parser.cpp" break; case 14: // declaration: "/#" -#line 330 "parser.ypp" +#line 332 "parser.ypp" { yylhs.value.as < decl::ptr > () = decl_dev_begin::make(yylhs.location); } -#line 2388 "parser.cpp" +#line 2408 "parser.cpp" break; case 15: // declaration: "#/" -#line 331 "parser.ypp" +#line 333 "parser.ypp" { yylhs.value.as < decl::ptr > () = decl_dev_end::make(yylhs.location); } -#line 2394 "parser.cpp" +#line 2414 "parser.cpp" break; case 16: // declaration: decl_usingtree -#line 332 "parser.ypp" +#line 334 "parser.ypp" { yylhs.value.as < decl::ptr > () = std::move(yystack_[0].value.as < decl_usingtree::ptr > ()); } -#line 2400 "parser.cpp" +#line 2420 "parser.cpp" break; case 17: // declaration: decl_function -#line 333 "parser.ypp" +#line 335 "parser.ypp" { yylhs.value.as < decl::ptr > () = std::move(yystack_[0].value.as < decl_function::ptr > ()); } -#line 2406 "parser.cpp" +#line 2426 "parser.cpp" break; case 18: // decl_usingtree: "#using_animtree" "(" expr_string ")" ";" -#line 338 "parser.ypp" +#line 340 "parser.ypp" { ppr.ban_header(yylhs.location); yylhs.value.as < decl_usingtree::ptr > () = decl_usingtree::make(yylhs.location, std::move(yystack_[2].value.as < expr_string::ptr > ())); } -#line 2412 "parser.cpp" +#line 2432 "parser.cpp" break; case 19: // decl_function: expr_identifier "(" expr_parameters ")" stmt_comp -#line 343 "parser.ypp" +#line 345 "parser.ypp" { ppr.ban_header(yylhs.location); yylhs.value.as < decl_function::ptr > () = decl_function::make(yylhs.location, expr_identifier::make(yylhs.location, ""), std::move(yystack_[4].value.as < expr_identifier::ptr > ()), std::move(yystack_[2].value.as < expr_parameters::ptr > ()), std::move(yystack_[0].value.as < stmt_comp::ptr > ()), export_flags::export_none); } -#line 2418 "parser.cpp" +#line 2438 "parser.cpp" break; case 20: // decl_function: "autoexec" expr_identifier "(" expr_parameters ")" stmt_comp -#line 345 "parser.ypp" +#line 347 "parser.ypp" { ppr.ban_header(yylhs.location); yylhs.value.as < decl_function::ptr > () = decl_function::make(yylhs.location, expr_identifier::make(yylhs.location, ""), std::move(yystack_[4].value.as < expr_identifier::ptr > ()), std::move(yystack_[2].value.as < expr_parameters::ptr > ()), std::move(yystack_[0].value.as < stmt_comp::ptr > ()), export_flags::export_autoexec); } -#line 2424 "parser.cpp" +#line 2444 "parser.cpp" break; case 21: // decl_function: "codecall" expr_identifier "(" expr_parameters ")" stmt_comp -#line 347 "parser.ypp" +#line 349 "parser.ypp" { ppr.ban_header(yylhs.location); yylhs.value.as < decl_function::ptr > () = decl_function::make(yylhs.location, expr_identifier::make(yylhs.location, ""), std::move(yystack_[4].value.as < expr_identifier::ptr > ()), std::move(yystack_[2].value.as < expr_parameters::ptr > ()), std::move(yystack_[0].value.as < stmt_comp::ptr > ()), export_flags::export_codecall); } -#line 2430 "parser.cpp" +#line 2450 "parser.cpp" break; case 22: // decl_function: "private" expr_identifier "(" expr_parameters ")" stmt_comp -#line 349 "parser.ypp" +#line 351 "parser.ypp" { ppr.ban_header(yylhs.location); yylhs.value.as < decl_function::ptr > () = decl_function::make(yylhs.location, expr_identifier::make(yylhs.location, ""), std::move(yystack_[4].value.as < expr_identifier::ptr > ()), std::move(yystack_[2].value.as < expr_parameters::ptr > ()), std::move(yystack_[0].value.as < stmt_comp::ptr > ()), export_flags::export_private2); } -#line 2436 "parser.cpp" +#line 2456 "parser.cpp" break; case 23: // stmt: stmt_comp -#line 353 "parser.ypp" +#line 355 "parser.ypp" { yylhs.value.as < stmt::ptr > () = std::move(yystack_[0].value.as < stmt_comp::ptr > ()); } -#line 2442 "parser.cpp" +#line 2462 "parser.cpp" break; case 24: // stmt: stmt_call -#line 354 "parser.ypp" +#line 356 "parser.ypp" { yylhs.value.as < stmt::ptr > () = std::move(yystack_[0].value.as < stmt_expr::ptr > ()); } -#line 2448 "parser.cpp" +#line 2468 "parser.cpp" break; case 25: // stmt: stmt_const -#line 355 "parser.ypp" +#line 357 "parser.ypp" { yylhs.value.as < stmt::ptr > () = std::move(yystack_[0].value.as < stmt_expr::ptr > ()); } -#line 2454 "parser.cpp" +#line 2474 "parser.cpp" break; case 26: // stmt: stmt_assign -#line 356 "parser.ypp" +#line 358 "parser.ypp" { yylhs.value.as < stmt::ptr > () = std::move(yystack_[0].value.as < stmt_expr::ptr > ()); } -#line 2460 "parser.cpp" +#line 2480 "parser.cpp" break; case 27: // stmt: stmt_endon -#line 357 "parser.ypp" +#line 359 "parser.ypp" { yylhs.value.as < stmt::ptr > () = std::move(yystack_[0].value.as < stmt_endon::ptr > ()); } -#line 2466 "parser.cpp" +#line 2486 "parser.cpp" break; case 28: // stmt: stmt_notify -#line 358 "parser.ypp" +#line 360 "parser.ypp" { yylhs.value.as < stmt::ptr > () = std::move(yystack_[0].value.as < stmt_notify::ptr > ()); } -#line 2472 "parser.cpp" +#line 2492 "parser.cpp" break; case 29: // stmt: stmt_wait -#line 359 "parser.ypp" - { yylhs.value.as < stmt::ptr > () = std::move(yystack_[0].value.as < stmt_wait::ptr > ()); } -#line 2478 "parser.cpp" - break; - - case 30: // stmt: stmt_waittill -#line 360 "parser.ypp" - { yylhs.value.as < stmt::ptr > () = std::move(yystack_[0].value.as < stmt_waittill::ptr > ()); } -#line 2484 "parser.cpp" - break; - - case 31: // stmt: stmt_waittillmatch #line 361 "parser.ypp" - { yylhs.value.as < stmt::ptr > () = std::move(yystack_[0].value.as < stmt_waittillmatch::ptr > ()); } -#line 2490 "parser.cpp" + { yylhs.value.as < stmt::ptr > () = std::move(yystack_[0].value.as < stmt_wait::ptr > ()); } +#line 2498 "parser.cpp" break; - case 32: // stmt: stmt_waittillframeend + case 30: // stmt: stmt_waitrealtime #line 362 "parser.ypp" - { yylhs.value.as < stmt::ptr > () = std::move(yystack_[0].value.as < stmt_waittillframeend::ptr > ()); } -#line 2496 "parser.cpp" + { yylhs.value.as < stmt::ptr > () = std::move(yystack_[0].value.as < stmt_waitrealtime::ptr > ()); } +#line 2504 "parser.cpp" break; - case 33: // stmt: stmt_if + case 31: // stmt: stmt_waittill #line 363 "parser.ypp" - { yylhs.value.as < stmt::ptr > () = std::move(yystack_[0].value.as < stmt_if::ptr > ()); } -#line 2502 "parser.cpp" + { yylhs.value.as < stmt::ptr > () = std::move(yystack_[0].value.as < stmt_waittill::ptr > ()); } +#line 2510 "parser.cpp" break; - case 34: // stmt: stmt_ifelse + case 32: // stmt: stmt_waittillmatch #line 364 "parser.ypp" - { yylhs.value.as < stmt::ptr > () = std::move(yystack_[0].value.as < stmt_ifelse::ptr > ()); } -#line 2508 "parser.cpp" + { yylhs.value.as < stmt::ptr > () = std::move(yystack_[0].value.as < stmt_waittillmatch::ptr > ()); } +#line 2516 "parser.cpp" break; - case 35: // stmt: stmt_while + case 33: // stmt: stmt_waittillframeend #line 365 "parser.ypp" - { yylhs.value.as < stmt::ptr > () = std::move(yystack_[0].value.as < stmt_while::ptr > ()); } -#line 2514 "parser.cpp" + { yylhs.value.as < stmt::ptr > () = std::move(yystack_[0].value.as < stmt_waittillframeend::ptr > ()); } +#line 2522 "parser.cpp" break; - case 36: // stmt: stmt_dowhile + case 34: // stmt: stmt_if #line 366 "parser.ypp" - { yylhs.value.as < stmt::ptr > () = std::move(yystack_[0].value.as < stmt_dowhile::ptr > ()); } -#line 2520 "parser.cpp" + { yylhs.value.as < stmt::ptr > () = std::move(yystack_[0].value.as < stmt_if::ptr > ()); } +#line 2528 "parser.cpp" break; - case 37: // stmt: stmt_for + case 35: // stmt: stmt_ifelse #line 367 "parser.ypp" - { yylhs.value.as < stmt::ptr > () = std::move(yystack_[0].value.as < stmt_for::ptr > ()); } -#line 2526 "parser.cpp" + { yylhs.value.as < stmt::ptr > () = std::move(yystack_[0].value.as < stmt_ifelse::ptr > ()); } +#line 2534 "parser.cpp" break; - case 38: // stmt: stmt_foreach + case 36: // stmt: stmt_while #line 368 "parser.ypp" - { yylhs.value.as < stmt::ptr > () = std::move(yystack_[0].value.as < stmt_foreach::ptr > ()); } -#line 2532 "parser.cpp" + { yylhs.value.as < stmt::ptr > () = std::move(yystack_[0].value.as < stmt_while::ptr > ()); } +#line 2540 "parser.cpp" break; - case 39: // stmt: stmt_switch + case 37: // stmt: stmt_dowhile #line 369 "parser.ypp" - { yylhs.value.as < stmt::ptr > () = std::move(yystack_[0].value.as < stmt_switch::ptr > ()); } -#line 2538 "parser.cpp" + { yylhs.value.as < stmt::ptr > () = std::move(yystack_[0].value.as < stmt_dowhile::ptr > ()); } +#line 2546 "parser.cpp" break; - case 40: // stmt: stmt_case + case 38: // stmt: stmt_for #line 370 "parser.ypp" - { yylhs.value.as < stmt::ptr > () = std::move(yystack_[0].value.as < stmt_case::ptr > ()); } -#line 2544 "parser.cpp" + { yylhs.value.as < stmt::ptr > () = std::move(yystack_[0].value.as < stmt_for::ptr > ()); } +#line 2552 "parser.cpp" break; - case 41: // stmt: stmt_default + case 39: // stmt: stmt_foreach #line 371 "parser.ypp" - { yylhs.value.as < stmt::ptr > () = std::move(yystack_[0].value.as < stmt_default::ptr > ()); } -#line 2550 "parser.cpp" + { yylhs.value.as < stmt::ptr > () = std::move(yystack_[0].value.as < stmt_foreach::ptr > ()); } +#line 2558 "parser.cpp" break; - case 42: // stmt: stmt_break + case 40: // stmt: stmt_switch #line 372 "parser.ypp" - { yylhs.value.as < stmt::ptr > () = std::move(yystack_[0].value.as < stmt_break::ptr > ()); } -#line 2556 "parser.cpp" + { yylhs.value.as < stmt::ptr > () = std::move(yystack_[0].value.as < stmt_switch::ptr > ()); } +#line 2564 "parser.cpp" break; - case 43: // stmt: stmt_continue + case 41: // stmt: stmt_case #line 373 "parser.ypp" - { yylhs.value.as < stmt::ptr > () = std::move(yystack_[0].value.as < stmt_continue::ptr > ()); } -#line 2562 "parser.cpp" + { yylhs.value.as < stmt::ptr > () = std::move(yystack_[0].value.as < stmt_case::ptr > ()); } +#line 2570 "parser.cpp" break; - case 44: // stmt: stmt_return + case 42: // stmt: stmt_default #line 374 "parser.ypp" - { yylhs.value.as < stmt::ptr > () = std::move(yystack_[0].value.as < stmt_return::ptr > ()); } -#line 2568 "parser.cpp" + { yylhs.value.as < stmt::ptr > () = std::move(yystack_[0].value.as < stmt_default::ptr > ()); } +#line 2576 "parser.cpp" break; - case 45: // stmt: stmt_prof_begin + case 43: // stmt: stmt_break #line 375 "parser.ypp" - { yylhs.value.as < stmt::ptr > () = std::move(yystack_[0].value.as < stmt_prof_begin::ptr > ()); } -#line 2574 "parser.cpp" + { yylhs.value.as < stmt::ptr > () = std::move(yystack_[0].value.as < stmt_break::ptr > ()); } +#line 2582 "parser.cpp" break; - case 46: // stmt: stmt_prof_end + case 44: // stmt: stmt_continue #line 376 "parser.ypp" + { yylhs.value.as < stmt::ptr > () = std::move(yystack_[0].value.as < stmt_continue::ptr > ()); } +#line 2588 "parser.cpp" + break; + + case 45: // stmt: stmt_return +#line 377 "parser.ypp" + { yylhs.value.as < stmt::ptr > () = std::move(yystack_[0].value.as < stmt_return::ptr > ()); } +#line 2594 "parser.cpp" + break; + + case 46: // stmt: stmt_prof_begin +#line 378 "parser.ypp" + { yylhs.value.as < stmt::ptr > () = std::move(yystack_[0].value.as < stmt_prof_begin::ptr > ()); } +#line 2600 "parser.cpp" + break; + + case 47: // stmt: stmt_prof_end +#line 379 "parser.ypp" { yylhs.value.as < stmt::ptr > () = std::move(yystack_[0].value.as < stmt_prof_end::ptr > ()); } -#line 2580 "parser.cpp" +#line 2606 "parser.cpp" break; - case 47: // stmt_or_dev: stmt -#line 380 "parser.ypp" + case 48: // stmt_or_dev: stmt +#line 383 "parser.ypp" { yylhs.value.as < stmt::ptr > () = std::move(yystack_[0].value.as < stmt::ptr > ()); } -#line 2586 "parser.cpp" +#line 2612 "parser.cpp" break; - case 48: // stmt_or_dev: stmt_dev -#line 381 "parser.ypp" + case 49: // stmt_or_dev: stmt_dev +#line 384 "parser.ypp" { yylhs.value.as < stmt::ptr > () = std::move(yystack_[0].value.as < stmt_dev::ptr > ()); } -#line 2592 "parser.cpp" +#line 2618 "parser.cpp" break; - case 49: // stmt_list: stmt_list stmt -#line 386 "parser.ypp" + case 50: // stmt_list: stmt_list stmt +#line 389 "parser.ypp" { yylhs.value.as < stmt_list::ptr > () = std::move(yystack_[1].value.as < stmt_list::ptr > ()); yylhs.value.as < stmt_list::ptr > ()->list.push_back(std::move(yystack_[0].value.as < stmt::ptr > ())); } -#line 2598 "parser.cpp" +#line 2624 "parser.cpp" break; - case 50: // stmt_list: stmt -#line 388 "parser.ypp" + case 51: // stmt_list: stmt +#line 391 "parser.ypp" { yylhs.value.as < stmt_list::ptr > () = stmt_list::make(yylhs.location); yylhs.value.as < stmt_list::ptr > ()->list.push_back(std::move(yystack_[0].value.as < stmt::ptr > ())); } -#line 2604 "parser.cpp" +#line 2630 "parser.cpp" break; - case 51: // stmt_list: stmt_list ";" -#line 390 "parser.ypp" + case 52: // stmt_list: stmt_list ";" +#line 393 "parser.ypp" { yylhs.value.as < stmt_list::ptr > () = std::move(yystack_[1].value.as < stmt_list::ptr > ()); } -#line 2610 "parser.cpp" +#line 2636 "parser.cpp" break; - case 52: // stmt_list: ";" -#line 392 "parser.ypp" + case 53: // stmt_list: ";" +#line 395 "parser.ypp" { yylhs.value.as < stmt_list::ptr > () = stmt_list::make(yylhs.location); } -#line 2616 "parser.cpp" +#line 2642 "parser.cpp" break; - case 53: // stmt_or_dev_list: stmt_or_dev_list stmt_or_dev -#line 397 "parser.ypp" + case 54: // stmt_or_dev_list: stmt_or_dev_list stmt_or_dev +#line 400 "parser.ypp" { yylhs.value.as < stmt_list::ptr > () = std::move(yystack_[1].value.as < stmt_list::ptr > ()); yylhs.value.as < stmt_list::ptr > ()->list.push_back(std::move(yystack_[0].value.as < stmt::ptr > ())); } -#line 2622 "parser.cpp" +#line 2648 "parser.cpp" break; - case 54: // stmt_or_dev_list: stmt_or_dev -#line 399 "parser.ypp" + case 55: // stmt_or_dev_list: stmt_or_dev +#line 402 "parser.ypp" { yylhs.value.as < stmt_list::ptr > () = stmt_list::make(yylhs.location); yylhs.value.as < stmt_list::ptr > ()->list.push_back(std::move(yystack_[0].value.as < stmt::ptr > ())); } -#line 2628 "parser.cpp" +#line 2654 "parser.cpp" break; - case 55: // stmt_or_dev_list: stmt_or_dev_list ";" -#line 401 "parser.ypp" + case 56: // stmt_or_dev_list: stmt_or_dev_list ";" +#line 404 "parser.ypp" { yylhs.value.as < stmt_list::ptr > () = std::move(yystack_[1].value.as < stmt_list::ptr > ()); } -#line 2634 "parser.cpp" +#line 2660 "parser.cpp" break; - case 56: // stmt_or_dev_list: ";" -#line 403 "parser.ypp" + case 57: // stmt_or_dev_list: ";" +#line 406 "parser.ypp" { yylhs.value.as < stmt_list::ptr > () = stmt_list::make(yylhs.location); } -#line 2640 "parser.cpp" +#line 2666 "parser.cpp" break; - case 57: // stmt_dev: "/#" stmt_list "#/" -#line 407 "parser.ypp" + case 58: // stmt_dev: "/#" stmt_list "#/" +#line 410 "parser.ypp" { yylhs.value.as < stmt_dev::ptr > () = stmt_dev::make(yylhs.location, std::move(yystack_[1].value.as < stmt_list::ptr > ())); } -#line 2646 "parser.cpp" +#line 2672 "parser.cpp" break; - case 58: // stmt_dev: "/#" "#/" -#line 408 "parser.ypp" + case 59: // stmt_dev: "/#" "#/" +#line 411 "parser.ypp" { yylhs.value.as < stmt_dev::ptr > () = stmt_dev::make(yylhs.location, stmt_list::make(yylhs.location)); } -#line 2652 "parser.cpp" +#line 2678 "parser.cpp" break; - case 59: // stmt_comp: "{" stmt_or_dev_list "}" -#line 412 "parser.ypp" + case 60: // stmt_comp: "{" stmt_or_dev_list "}" +#line 415 "parser.ypp" { yylhs.value.as < stmt_comp::ptr > () = stmt_comp::make(yylhs.location, std::move(yystack_[1].value.as < stmt_list::ptr > ())); } -#line 2658 "parser.cpp" +#line 2684 "parser.cpp" break; - case 60: // stmt_comp: "{" "}" -#line 413 "parser.ypp" + case 61: // stmt_comp: "{" "}" +#line 416 "parser.ypp" { yylhs.value.as < stmt_comp::ptr > () = stmt_comp::make(yylhs.location, stmt_list::make(yylhs.location)); } -#line 2664 "parser.cpp" +#line 2690 "parser.cpp" break; - case 61: // stmt_expr: expr_assign -#line 418 "parser.ypp" + case 62: // stmt_expr: expr_assign +#line 421 "parser.ypp" { yylhs.value.as < stmt_expr::ptr > () = stmt_expr::make(yylhs.location, std::move(yystack_[0].value.as < expr::ptr > ())); } -#line 2670 "parser.cpp" +#line 2696 "parser.cpp" break; - case 62: // stmt_expr: expr_increment -#line 420 "parser.ypp" + case 63: // stmt_expr: expr_increment +#line 423 "parser.ypp" { yylhs.value.as < stmt_expr::ptr > () = stmt_expr::make(yylhs.location, std::move(yystack_[0].value.as < expr::ptr > ())); } -#line 2676 "parser.cpp" +#line 2702 "parser.cpp" break; - case 63: // stmt_expr: expr_decrement -#line 422 "parser.ypp" + case 64: // stmt_expr: expr_decrement +#line 425 "parser.ypp" { yylhs.value.as < stmt_expr::ptr > () = stmt_expr::make(yylhs.location, std::move(yystack_[0].value.as < expr::ptr > ())); } -#line 2682 "parser.cpp" +#line 2708 "parser.cpp" break; - case 64: // stmt_expr: %empty -#line 424 "parser.ypp" + case 65: // stmt_expr: %empty +#line 427 "parser.ypp" { yylhs.value.as < stmt_expr::ptr > () = stmt_expr::make(yylhs.location, expr_empty::make(yylhs.location)); } -#line 2688 "parser.cpp" +#line 2714 "parser.cpp" break; - case 65: // stmt_call: expr_call ";" -#line 429 "parser.ypp" + case 66: // stmt_call: expr_call ";" +#line 432 "parser.ypp" { yylhs.value.as < stmt_expr::ptr > () = stmt_expr::make(yylhs.location, std::move(yystack_[1].value.as < expr_call::ptr > ())); } -#line 2694 "parser.cpp" +#line 2720 "parser.cpp" break; - case 66: // stmt_call: expr_method ";" -#line 431 "parser.ypp" + case 67: // stmt_call: expr_method ";" +#line 434 "parser.ypp" { yylhs.value.as < stmt_expr::ptr > () = stmt_expr::make(yylhs.location, std::move(yystack_[1].value.as < expr_method::ptr > ())); } -#line 2700 "parser.cpp" +#line 2726 "parser.cpp" break; - case 67: // stmt_const: "const" expr_identifier "=" expr ";" -#line 436 "parser.ypp" + case 68: // stmt_const: "const" expr_identifier "=" expr ";" +#line 439 "parser.ypp" { yylhs.value.as < stmt_expr::ptr > () = stmt_expr::make(yylhs.location, expr_const::make(yylhs.location, std::move(yystack_[3].value.as < expr_identifier::ptr > ()), std::move(yystack_[1].value.as < expr::ptr > ()))); } -#line 2706 "parser.cpp" +#line 2732 "parser.cpp" break; - case 68: // stmt_assign: expr_assign ";" -#line 441 "parser.ypp" + case 69: // stmt_assign: expr_assign ";" +#line 444 "parser.ypp" { yylhs.value.as < stmt_expr::ptr > () = stmt_expr::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); } -#line 2712 "parser.cpp" +#line 2738 "parser.cpp" break; - case 69: // stmt_assign: expr_increment ";" -#line 443 "parser.ypp" + case 70: // stmt_assign: expr_increment ";" +#line 446 "parser.ypp" { yylhs.value.as < stmt_expr::ptr > () = stmt_expr::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); } -#line 2718 "parser.cpp" +#line 2744 "parser.cpp" break; - case 70: // stmt_assign: expr_decrement ";" -#line 445 "parser.ypp" + case 71: // stmt_assign: expr_decrement ";" +#line 448 "parser.ypp" { yylhs.value.as < stmt_expr::ptr > () = stmt_expr::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); } -#line 2724 "parser.cpp" +#line 2750 "parser.cpp" break; - case 71: // stmt_endon: expr_object "endon" "(" expr ")" ";" -#line 450 "parser.ypp" + case 72: // stmt_endon: expr_object "endon" "(" expr ")" ";" +#line 453 "parser.ypp" { yylhs.value.as < stmt_endon::ptr > () = stmt_endon::make(yylhs.location, std::move(yystack_[5].value.as < expr::ptr > ()), std::move(yystack_[2].value.as < expr::ptr > ())); } -#line 2730 "parser.cpp" +#line 2756 "parser.cpp" break; - case 72: // stmt_notify: expr_object "notify" "(" expr "," expr_arguments_no_empty ")" ";" -#line 455 "parser.ypp" + case 73: // stmt_notify: expr_object "notify" "(" expr "," expr_arguments_no_empty ")" ";" +#line 458 "parser.ypp" { yylhs.value.as < stmt_notify::ptr > () = stmt_notify::make(yylhs.location, std::move(yystack_[7].value.as < expr::ptr > ()), std::move(yystack_[4].value.as < expr::ptr > ()), std::move(yystack_[2].value.as < expr_arguments::ptr > ())); } -#line 2736 "parser.cpp" +#line 2762 "parser.cpp" break; - case 73: // stmt_notify: expr_object "notify" "(" expr ")" ";" -#line 457 "parser.ypp" + case 74: // stmt_notify: expr_object "notify" "(" expr ")" ";" +#line 460 "parser.ypp" { yylhs.value.as < stmt_notify::ptr > () = stmt_notify::make(yylhs.location, std::move(yystack_[5].value.as < expr::ptr > ()), std::move(yystack_[2].value.as < expr::ptr > ()), expr_arguments::make(yylhs.location)); } -#line 2742 "parser.cpp" +#line 2768 "parser.cpp" break; - case 74: // stmt_wait: "wait" expr ";" -#line 462 "parser.ypp" + case 75: // stmt_wait: "wait" expr ";" +#line 465 "parser.ypp" { yylhs.value.as < stmt_wait::ptr > () = stmt_wait::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); } -#line 2748 "parser.cpp" +#line 2774 "parser.cpp" break; - case 75: // stmt_waittill: expr_object "waittill" "(" expr "," expr_arguments_no_empty ")" ";" -#line 467 "parser.ypp" + case 76: // stmt_waitrealtime: "waitrealtime" expr ";" +#line 470 "parser.ypp" + { yylhs.value.as < stmt_waitrealtime::ptr > () = stmt_waitrealtime::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); } +#line 2780 "parser.cpp" + break; + + case 77: // stmt_waittill: expr_object "waittill" "(" expr "," expr_arguments_no_empty ")" ";" +#line 475 "parser.ypp" { yylhs.value.as < stmt_waittill::ptr > () = stmt_waittill::make(yylhs.location, std::move(yystack_[7].value.as < expr::ptr > ()), std::move(yystack_[4].value.as < expr::ptr > ()), std::move(yystack_[2].value.as < expr_arguments::ptr > ())); } -#line 2754 "parser.cpp" +#line 2786 "parser.cpp" break; - case 76: // stmt_waittill: expr_object "waittill" "(" expr ")" ";" -#line 469 "parser.ypp" + case 78: // stmt_waittill: expr_object "waittill" "(" expr ")" ";" +#line 477 "parser.ypp" { yylhs.value.as < stmt_waittill::ptr > () = stmt_waittill::make(yylhs.location, std::move(yystack_[5].value.as < expr::ptr > ()), std::move(yystack_[2].value.as < expr::ptr > ()), expr_arguments::make(yylhs.location)); } -#line 2760 "parser.cpp" +#line 2792 "parser.cpp" break; - case 77: // stmt_waittillmatch: expr_object "waittillmatch" "(" expr "," expr_arguments_no_empty ")" ";" -#line 474 "parser.ypp" + case 79: // stmt_waittillmatch: expr_object "waittillmatch" "(" expr "," expr_arguments_no_empty ")" ";" +#line 482 "parser.ypp" { yylhs.value.as < stmt_waittillmatch::ptr > () = stmt_waittillmatch::make(yylhs.location, std::move(yystack_[7].value.as < expr::ptr > ()), std::move(yystack_[4].value.as < expr::ptr > ()), std::move(yystack_[2].value.as < expr_arguments::ptr > ())); } -#line 2766 "parser.cpp" +#line 2798 "parser.cpp" break; - case 78: // stmt_waittillmatch: expr_object "waittillmatch" "(" expr ")" ";" -#line 476 "parser.ypp" + case 80: // stmt_waittillmatch: expr_object "waittillmatch" "(" expr ")" ";" +#line 484 "parser.ypp" { yylhs.value.as < stmt_waittillmatch::ptr > () = stmt_waittillmatch::make(yylhs.location, std::move(yystack_[5].value.as < expr::ptr > ()), std::move(yystack_[2].value.as < expr::ptr > ()), expr_arguments::make(yylhs.location)); } -#line 2772 "parser.cpp" +#line 2804 "parser.cpp" break; - case 79: // stmt_waittillframeend: "waittillframeend" ";" -#line 481 "parser.ypp" + case 81: // stmt_waittillframeend: "waittillframeend" ";" +#line 489 "parser.ypp" { yylhs.value.as < stmt_waittillframeend::ptr > () = stmt_waittillframeend::make(yylhs.location); } -#line 2778 "parser.cpp" +#line 2810 "parser.cpp" break; - case 80: // stmt_if: "if" "(" expr ")" stmt -#line 486 "parser.ypp" + case 82: // stmt_if: "if" "(" expr ")" stmt +#line 494 "parser.ypp" { yylhs.value.as < stmt_if::ptr > () = stmt_if::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < stmt::ptr > ())); } -#line 2784 "parser.cpp" +#line 2816 "parser.cpp" break; - case 81: // stmt_ifelse: "if" "(" expr ")" stmt "else" stmt -#line 491 "parser.ypp" + case 83: // stmt_ifelse: "if" "(" expr ")" stmt "else" stmt +#line 499 "parser.ypp" { yylhs.value.as < stmt_ifelse::ptr > () = stmt_ifelse::make(yylhs.location, std::move(yystack_[4].value.as < expr::ptr > ()), std::move(yystack_[2].value.as < stmt::ptr > ()), std::move(yystack_[0].value.as < stmt::ptr > ())); } -#line 2790 "parser.cpp" +#line 2822 "parser.cpp" break; - case 82: // stmt_while: "while" "(" expr ")" stmt -#line 496 "parser.ypp" + case 84: // stmt_while: "while" "(" expr ")" stmt +#line 504 "parser.ypp" { yylhs.value.as < stmt_while::ptr > () = stmt_while::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < stmt::ptr > ())); } -#line 2796 "parser.cpp" +#line 2828 "parser.cpp" break; - case 83: // stmt_dowhile: "do" stmt "while" "(" expr ")" ";" -#line 501 "parser.ypp" + case 85: // stmt_dowhile: "do" stmt "while" "(" expr ")" ";" +#line 509 "parser.ypp" { yylhs.value.as < stmt_dowhile::ptr > () = stmt_dowhile::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[5].value.as < stmt::ptr > ())); } -#line 2802 "parser.cpp" +#line 2834 "parser.cpp" break; - case 84: // stmt_for: "for" "(" stmt_expr ";" expr_or_empty ";" stmt_expr ")" stmt -#line 506 "parser.ypp" + case 86: // stmt_for: "for" "(" stmt_expr ";" expr_or_empty ";" stmt_expr ")" stmt +#line 514 "parser.ypp" { yylhs.value.as < stmt_for::ptr > () = stmt_for::make(yylhs.location, std::move(yystack_[6].value.as < stmt_expr::ptr > ()), std::move(yystack_[4].value.as < expr::ptr > ()), std::move(yystack_[2].value.as < stmt_expr::ptr > ()), std::move(yystack_[0].value.as < stmt::ptr > ())); } -#line 2808 "parser.cpp" +#line 2840 "parser.cpp" break; - case 85: // stmt_foreach: "foreach" "(" expr_identifier "in" expr ")" stmt -#line 511 "parser.ypp" + case 87: // stmt_foreach: "foreach" "(" expr_identifier "in" expr ")" stmt +#line 519 "parser.ypp" { auto array = expr_identifier::make(yylhs.location, fmt::format("_a{}", ++index)); auto key = expr_identifier::make(yylhs.location, fmt::format("_k{}", ++index)); yylhs.value.as < stmt_foreach::ptr > () = stmt_foreach::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[4].value.as < expr_identifier::ptr > ()), std::move(array), std::move(key), std::move(yystack_[0].value.as < stmt::ptr > ()), false); } -#line 2818 "parser.cpp" +#line 2850 "parser.cpp" break; - case 86: // stmt_foreach: "foreach" "(" expr_identifier "," expr_identifier "in" expr ")" stmt -#line 517 "parser.ypp" + case 88: // stmt_foreach: "foreach" "(" expr_identifier "," expr_identifier "in" expr ")" stmt +#line 525 "parser.ypp" { auto array = expr_identifier::make(yylhs.location, fmt::format("_a{}", ++index)); yylhs.value.as < stmt_foreach::ptr > () = stmt_foreach::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[4].value.as < expr_identifier::ptr > ()), std::move(array), std::move(yystack_[6].value.as < expr_identifier::ptr > ()), std::move(yystack_[0].value.as < stmt::ptr > ()), true); } -#line 2827 "parser.cpp" - break; - - case 87: // stmt_switch: "switch" "(" expr ")" stmt_comp -#line 525 "parser.ypp" - { yylhs.value.as < stmt_switch::ptr > () = stmt_switch::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < stmt_comp::ptr > ())); - parse_switch(*yylhs.value.as < stmt_switch::ptr > ()); - } -#line 2835 "parser.cpp" - break; - - case 88: // stmt_case: "case" expr_integer ":" -#line 532 "parser.ypp" - { yylhs.value.as < stmt_case::ptr > () = stmt_case::make(yylhs.location, std::move(yystack_[1].value.as < expr_integer::ptr > ()), stmt_list::make(yylhs.location)); } -#line 2841 "parser.cpp" - break; - - case 89: // stmt_case: "case" expr_string ":" -#line 534 "parser.ypp" - { yylhs.value.as < stmt_case::ptr > () = stmt_case::make(yylhs.location, std::move(yystack_[1].value.as < expr_string::ptr > ()), stmt_list::make(yylhs.location)); } -#line 2847 "parser.cpp" - break; - - case 90: // stmt_default: "default" ":" -#line 539 "parser.ypp" - { yylhs.value.as < stmt_default::ptr > () = stmt_default::make(yylhs.location, stmt_list::make(yylhs.location)); } -#line 2853 "parser.cpp" - break; - - case 91: // stmt_break: "break" ";" -#line 544 "parser.ypp" - { yylhs.value.as < stmt_break::ptr > () = stmt_break::make(yylhs.location); } #line 2859 "parser.cpp" break; - case 92: // stmt_continue: "continue" ";" -#line 549 "parser.ypp" + case 89: // stmt_switch: "switch" "(" expr ")" stmt_comp +#line 533 "parser.ypp" + { yylhs.value.as < stmt_switch::ptr > () = stmt_switch::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < stmt_comp::ptr > ())); + parse_switch(*yylhs.value.as < stmt_switch::ptr > ()); + } +#line 2867 "parser.cpp" + break; + + case 90: // stmt_case: "case" expr_integer ":" +#line 540 "parser.ypp" + { yylhs.value.as < stmt_case::ptr > () = stmt_case::make(yylhs.location, std::move(yystack_[1].value.as < expr_integer::ptr > ()), stmt_list::make(yylhs.location)); } +#line 2873 "parser.cpp" + break; + + case 91: // stmt_case: "case" expr_string ":" +#line 542 "parser.ypp" + { yylhs.value.as < stmt_case::ptr > () = stmt_case::make(yylhs.location, std::move(yystack_[1].value.as < expr_string::ptr > ()), stmt_list::make(yylhs.location)); } +#line 2879 "parser.cpp" + break; + + case 92: // stmt_default: "default" ":" +#line 547 "parser.ypp" + { yylhs.value.as < stmt_default::ptr > () = stmt_default::make(yylhs.location, stmt_list::make(yylhs.location)); } +#line 2885 "parser.cpp" + break; + + case 93: // stmt_break: "break" ";" +#line 552 "parser.ypp" + { yylhs.value.as < stmt_break::ptr > () = stmt_break::make(yylhs.location); } +#line 2891 "parser.cpp" + break; + + case 94: // stmt_continue: "continue" ";" +#line 557 "parser.ypp" { yylhs.value.as < stmt_continue::ptr > () = stmt_continue::make(yylhs.location); } -#line 2865 "parser.cpp" +#line 2897 "parser.cpp" break; - case 93: // stmt_return: "return" expr ";" -#line 554 "parser.ypp" + case 95: // stmt_return: "return" expr ";" +#line 562 "parser.ypp" { yylhs.value.as < stmt_return::ptr > () = stmt_return::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); } -#line 2871 "parser.cpp" +#line 2903 "parser.cpp" break; - case 94: // stmt_return: "return" ";" -#line 556 "parser.ypp" + case 96: // stmt_return: "return" ";" +#line 564 "parser.ypp" { yylhs.value.as < stmt_return::ptr > () = stmt_return::make(yylhs.location, expr_empty::make(yylhs.location)); } -#line 2877 "parser.cpp" +#line 2909 "parser.cpp" break; - case 95: // stmt_prof_begin: "prof_begin" "(" expr_arguments ")" ";" -#line 561 "parser.ypp" + case 97: // stmt_prof_begin: "prof_begin" "(" expr_arguments ")" ";" +#line 569 "parser.ypp" { yylhs.value.as < stmt_prof_begin::ptr > () = stmt_prof_begin::make(yylhs.location, std::move(yystack_[2].value.as < expr_arguments::ptr > ())); } -#line 2883 "parser.cpp" +#line 2915 "parser.cpp" break; - case 96: // stmt_prof_end: "prof_end" "(" expr_arguments ")" ";" -#line 566 "parser.ypp" + case 98: // stmt_prof_end: "prof_end" "(" expr_arguments ")" ";" +#line 574 "parser.ypp" { yylhs.value.as < stmt_prof_end::ptr > () = stmt_prof_end::make(yylhs.location, std::move(yystack_[2].value.as < expr_arguments::ptr > ())); } -#line 2889 "parser.cpp" +#line 2921 "parser.cpp" break; - case 97: // expr: expr_ternary -#line 570 "parser.ypp" + case 99: // expr: expr_ternary +#line 578 "parser.ypp" { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr::ptr > ()); } -#line 2895 "parser.cpp" +#line 2927 "parser.cpp" break; - case 98: // expr: expr_binary -#line 571 "parser.ypp" + case 100: // expr: expr_binary +#line 579 "parser.ypp" { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr::ptr > ()); } -#line 2901 "parser.cpp" +#line 2933 "parser.cpp" break; - case 99: // expr: expr_primitive -#line 572 "parser.ypp" + case 101: // expr: expr_primitive +#line 580 "parser.ypp" { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr::ptr > ()); } -#line 2907 "parser.cpp" +#line 2939 "parser.cpp" break; - case 100: // expr_or_empty: expr -#line 576 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr::ptr > ()); } -#line 2913 "parser.cpp" - break; - - case 101: // expr_or_empty: %empty -#line 577 "parser.ypp" - { yylhs.value.as < expr::ptr > () = expr_empty::make(yylhs.location); } -#line 2919 "parser.cpp" - break; - - case 102: // expr_increment: "++" expr_object -#line 582 "parser.ypp" - { yylhs.value.as < expr::ptr > () = expr_increment::make(yylhs.location, std::move(yystack_[0].value.as < expr::ptr > ()), true); } -#line 2925 "parser.cpp" - break; - - case 103: // expr_increment: expr_object "++" + case 102: // expr_or_empty: expr #line 584 "parser.ypp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr::ptr > ()); } +#line 2945 "parser.cpp" + break; + + case 103: // expr_or_empty: %empty +#line 585 "parser.ypp" + { yylhs.value.as < expr::ptr > () = expr_empty::make(yylhs.location); } +#line 2951 "parser.cpp" + break; + + case 104: // expr_increment: "++" expr_object +#line 590 "parser.ypp" + { yylhs.value.as < expr::ptr > () = expr_increment::make(yylhs.location, std::move(yystack_[0].value.as < expr::ptr > ()), true); } +#line 2957 "parser.cpp" + break; + + case 105: // expr_increment: expr_object "++" +#line 592 "parser.ypp" { yylhs.value.as < expr::ptr > () = expr_increment::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ()), false); } -#line 2931 "parser.cpp" +#line 2963 "parser.cpp" break; - case 104: // expr_decrement: "--" expr_object -#line 589 "parser.ypp" + case 106: // expr_decrement: "--" expr_object +#line 597 "parser.ypp" { yylhs.value.as < expr::ptr > () = expr_decrement::make(yylhs.location, std::move(yystack_[0].value.as < expr::ptr > ()), true); } -#line 2937 "parser.cpp" +#line 2969 "parser.cpp" break; - case 105: // expr_decrement: expr_object "--" -#line 591 "parser.ypp" + case 107: // expr_decrement: expr_object "--" +#line 599 "parser.ypp" { yylhs.value.as < expr::ptr > () = expr_decrement::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ()), false); } -#line 2943 "parser.cpp" +#line 2975 "parser.cpp" break; - case 106: // expr_assign: expr_object "=" expr -#line 596 "parser.ypp" - { yylhs.value.as < expr::ptr > () = expr_assign::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_assign::op::eq); } -#line 2949 "parser.cpp" - break; - - case 107: // expr_assign: expr_object "|=" expr -#line 598 "parser.ypp" - { yylhs.value.as < expr::ptr > () = expr_assign::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_assign::op::bwor); } -#line 2955 "parser.cpp" - break; - - case 108: // expr_assign: expr_object "&=" expr -#line 600 "parser.ypp" - { yylhs.value.as < expr::ptr > () = expr_assign::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_assign::op::bwand); } -#line 2961 "parser.cpp" - break; - - case 109: // expr_assign: expr_object "^=" expr -#line 602 "parser.ypp" - { yylhs.value.as < expr::ptr > () = expr_assign::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_assign::op::bwexor); } -#line 2967 "parser.cpp" - break; - - case 110: // expr_assign: expr_object "<<=" expr + case 108: // expr_assign: expr_object "=" expr #line 604 "parser.ypp" - { yylhs.value.as < expr::ptr > () = expr_assign::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_assign::op::shl); } -#line 2973 "parser.cpp" + { yylhs.value.as < expr::ptr > () = expr_assign::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_assign::op::eq); } +#line 2981 "parser.cpp" break; - case 111: // expr_assign: expr_object ">>=" expr + case 109: // expr_assign: expr_object "|=" expr #line 606 "parser.ypp" - { yylhs.value.as < expr::ptr > () = expr_assign::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_assign::op::shr); } -#line 2979 "parser.cpp" + { yylhs.value.as < expr::ptr > () = expr_assign::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_assign::op::bwor); } +#line 2987 "parser.cpp" break; - case 112: // expr_assign: expr_object "+=" expr + case 110: // expr_assign: expr_object "&=" expr #line 608 "parser.ypp" - { yylhs.value.as < expr::ptr > () = expr_assign::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_assign::op::add); } -#line 2985 "parser.cpp" + { yylhs.value.as < expr::ptr > () = expr_assign::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_assign::op::bwand); } +#line 2993 "parser.cpp" break; - case 113: // expr_assign: expr_object "-=" expr + case 111: // expr_assign: expr_object "^=" expr #line 610 "parser.ypp" - { yylhs.value.as < expr::ptr > () = expr_assign::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_assign::op::sub); } -#line 2991 "parser.cpp" + { yylhs.value.as < expr::ptr > () = expr_assign::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_assign::op::bwexor); } +#line 2999 "parser.cpp" break; - case 114: // expr_assign: expr_object "*=" expr + case 112: // expr_assign: expr_object "<<=" expr #line 612 "parser.ypp" - { yylhs.value.as < expr::ptr > () = expr_assign::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_assign::op::mul); } -#line 2997 "parser.cpp" + { yylhs.value.as < expr::ptr > () = expr_assign::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_assign::op::shl); } +#line 3005 "parser.cpp" break; - case 115: // expr_assign: expr_object "/=" expr + case 113: // expr_assign: expr_object ">>=" expr #line 614 "parser.ypp" - { yylhs.value.as < expr::ptr > () = expr_assign::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_assign::op::div); } -#line 3003 "parser.cpp" + { yylhs.value.as < expr::ptr > () = expr_assign::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_assign::op::shr); } +#line 3011 "parser.cpp" break; - case 116: // expr_assign: expr_object "%=" expr + case 114: // expr_assign: expr_object "+=" expr #line 616 "parser.ypp" + { yylhs.value.as < expr::ptr > () = expr_assign::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_assign::op::add); } +#line 3017 "parser.cpp" + break; + + case 115: // expr_assign: expr_object "-=" expr +#line 618 "parser.ypp" + { yylhs.value.as < expr::ptr > () = expr_assign::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_assign::op::sub); } +#line 3023 "parser.cpp" + break; + + case 116: // expr_assign: expr_object "*=" expr +#line 620 "parser.ypp" + { yylhs.value.as < expr::ptr > () = expr_assign::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_assign::op::mul); } +#line 3029 "parser.cpp" + break; + + case 117: // expr_assign: expr_object "/=" expr +#line 622 "parser.ypp" + { yylhs.value.as < expr::ptr > () = expr_assign::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_assign::op::div); } +#line 3035 "parser.cpp" + break; + + case 118: // expr_assign: expr_object "%=" expr +#line 624 "parser.ypp" { yylhs.value.as < expr::ptr > () = expr_assign::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_assign::op::mod); } -#line 3009 "parser.cpp" +#line 3041 "parser.cpp" break; - case 117: // expr_ternary: expr "?" expr ":" expr -#line 621 "parser.ypp" + case 119: // expr_ternary: expr "?" expr ":" expr +#line 629 "parser.ypp" { yylhs.value.as < expr::ptr > () = expr_ternary::make(yylhs.location, std::move(yystack_[4].value.as < expr::ptr > ()), std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ())); } -#line 3015 "parser.cpp" +#line 3047 "parser.cpp" break; - case 118: // expr_binary: expr "||" expr -#line 626 "parser.ypp" - { yylhs.value.as < expr::ptr > () = expr_binary::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_binary::op::bool_or); } -#line 3021 "parser.cpp" - break; - - case 119: // expr_binary: expr "&&" expr -#line 628 "parser.ypp" - { yylhs.value.as < expr::ptr > () = expr_binary::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_binary::op::bool_and); } -#line 3027 "parser.cpp" - break; - - case 120: // expr_binary: expr "==" expr -#line 630 "parser.ypp" - { yylhs.value.as < expr::ptr > () = expr_binary::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_binary::op::eq); } -#line 3033 "parser.cpp" - break; - - case 121: // expr_binary: expr "!=" expr -#line 632 "parser.ypp" - { yylhs.value.as < expr::ptr > () = expr_binary::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_binary::op::ne); } -#line 3039 "parser.cpp" - break; - - case 122: // expr_binary: expr "<=" expr + case 120: // expr_binary: expr "||" expr #line 634 "parser.ypp" - { yylhs.value.as < expr::ptr > () = expr_binary::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_binary::op::le); } -#line 3045 "parser.cpp" + { yylhs.value.as < expr::ptr > () = expr_binary::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_binary::op::bool_or); } +#line 3053 "parser.cpp" break; - case 123: // expr_binary: expr ">=" expr + case 121: // expr_binary: expr "&&" expr #line 636 "parser.ypp" - { yylhs.value.as < expr::ptr > () = expr_binary::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_binary::op::ge); } -#line 3051 "parser.cpp" + { yylhs.value.as < expr::ptr > () = expr_binary::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_binary::op::bool_and); } +#line 3059 "parser.cpp" break; - case 124: // expr_binary: expr "<" expr + case 122: // expr_binary: expr "==" expr #line 638 "parser.ypp" - { yylhs.value.as < expr::ptr > () = expr_binary::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_binary::op::lt); } -#line 3057 "parser.cpp" + { yylhs.value.as < expr::ptr > () = expr_binary::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_binary::op::eq); } +#line 3065 "parser.cpp" break; - case 125: // expr_binary: expr ">" expr + case 123: // expr_binary: expr "!=" expr #line 640 "parser.ypp" - { yylhs.value.as < expr::ptr > () = expr_binary::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_binary::op::gt); } -#line 3063 "parser.cpp" + { yylhs.value.as < expr::ptr > () = expr_binary::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_binary::op::ne); } +#line 3071 "parser.cpp" break; - case 126: // expr_binary: expr "|" expr + case 124: // expr_binary: expr "<=" expr #line 642 "parser.ypp" - { yylhs.value.as < expr::ptr > () = expr_binary::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_binary::op::bwor); } -#line 3069 "parser.cpp" + { yylhs.value.as < expr::ptr > () = expr_binary::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_binary::op::le); } +#line 3077 "parser.cpp" break; - case 127: // expr_binary: expr "&" expr + case 125: // expr_binary: expr ">=" expr #line 644 "parser.ypp" - { yylhs.value.as < expr::ptr > () = expr_binary::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_binary::op::bwand); } -#line 3075 "parser.cpp" + { yylhs.value.as < expr::ptr > () = expr_binary::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_binary::op::ge); } +#line 3083 "parser.cpp" break; - case 128: // expr_binary: expr "^" expr + case 126: // expr_binary: expr "<" expr #line 646 "parser.ypp" - { yylhs.value.as < expr::ptr > () = expr_binary::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_binary::op::bwexor); } -#line 3081 "parser.cpp" + { yylhs.value.as < expr::ptr > () = expr_binary::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_binary::op::lt); } +#line 3089 "parser.cpp" break; - case 129: // expr_binary: expr "<<" expr + case 127: // expr_binary: expr ">" expr #line 648 "parser.ypp" - { yylhs.value.as < expr::ptr > () = expr_binary::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_binary::op::shl); } -#line 3087 "parser.cpp" + { yylhs.value.as < expr::ptr > () = expr_binary::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_binary::op::gt); } +#line 3095 "parser.cpp" break; - case 130: // expr_binary: expr ">>" expr + case 128: // expr_binary: expr "|" expr #line 650 "parser.ypp" - { yylhs.value.as < expr::ptr > () = expr_binary::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_binary::op::shr); } -#line 3093 "parser.cpp" + { yylhs.value.as < expr::ptr > () = expr_binary::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_binary::op::bwor); } +#line 3101 "parser.cpp" break; - case 131: // expr_binary: expr "+" expr + case 129: // expr_binary: expr "&" expr #line 652 "parser.ypp" - { yylhs.value.as < expr::ptr > () = expr_binary::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_binary::op::add); } -#line 3099 "parser.cpp" + { yylhs.value.as < expr::ptr > () = expr_binary::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_binary::op::bwand); } +#line 3107 "parser.cpp" break; - case 132: // expr_binary: expr "-" expr + case 130: // expr_binary: expr "^" expr #line 654 "parser.ypp" - { yylhs.value.as < expr::ptr > () = expr_binary::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_binary::op::sub); } -#line 3105 "parser.cpp" + { yylhs.value.as < expr::ptr > () = expr_binary::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_binary::op::bwexor); } +#line 3113 "parser.cpp" break; - case 133: // expr_binary: expr "*" expr + case 131: // expr_binary: expr "<<" expr #line 656 "parser.ypp" - { yylhs.value.as < expr::ptr > () = expr_binary::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_binary::op::mul); } -#line 3111 "parser.cpp" + { yylhs.value.as < expr::ptr > () = expr_binary::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_binary::op::shl); } +#line 3119 "parser.cpp" break; - case 134: // expr_binary: expr "/" expr + case 132: // expr_binary: expr ">>" expr #line 658 "parser.ypp" - { yylhs.value.as < expr::ptr > () = expr_binary::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_binary::op::div); } -#line 3117 "parser.cpp" + { yylhs.value.as < expr::ptr > () = expr_binary::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_binary::op::shr); } +#line 3125 "parser.cpp" break; - case 135: // expr_binary: expr "%" expr + case 133: // expr_binary: expr "+" expr #line 660 "parser.ypp" - { yylhs.value.as < expr::ptr > () = expr_binary::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_binary::op::mod); } -#line 3123 "parser.cpp" + { yylhs.value.as < expr::ptr > () = expr_binary::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_binary::op::add); } +#line 3131 "parser.cpp" break; - case 136: // expr_primitive: expr_complement + case 134: // expr_binary: expr "-" expr +#line 662 "parser.ypp" + { yylhs.value.as < expr::ptr > () = expr_binary::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_binary::op::sub); } +#line 3137 "parser.cpp" + break; + + case 135: // expr_binary: expr "*" expr #line 664 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_complement::ptr > ()); } -#line 3129 "parser.cpp" + { yylhs.value.as < expr::ptr > () = expr_binary::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_binary::op::mul); } +#line 3143 "parser.cpp" break; - case 137: // expr_primitive: expr_negate -#line 665 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_negate::ptr > ()); } -#line 3135 "parser.cpp" - break; - - case 138: // expr_primitive: expr_not + case 136: // expr_binary: expr "/" expr #line 666 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_not::ptr > ()); } -#line 3141 "parser.cpp" + { yylhs.value.as < expr::ptr > () = expr_binary::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_binary::op::div); } +#line 3149 "parser.cpp" break; - case 139: // expr_primitive: expr_call -#line 667 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_call::ptr > ()); } -#line 3147 "parser.cpp" - break; - - case 140: // expr_primitive: expr_method + case 137: // expr_binary: expr "%" expr #line 668 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_method::ptr > ()); } -#line 3153 "parser.cpp" + { yylhs.value.as < expr::ptr > () = expr_binary::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_binary::op::mod); } +#line 3155 "parser.cpp" break; - case 141: // expr_primitive: expr_getnextarraykey -#line 669 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_getnextarraykey::ptr > ()); } -#line 3159 "parser.cpp" - break; - - case 142: // expr_primitive: expr_getfirstarraykey -#line 670 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_getfirstarraykey::ptr > ()); } -#line 3165 "parser.cpp" - break; - - case 143: // expr_primitive: expr_getdvarcoloralpha -#line 671 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_getdvarcoloralpha::ptr > ()); } -#line 3171 "parser.cpp" - break; - - case 144: // expr_primitive: expr_getdvarcolorblue + case 138: // expr_primitive: expr_complement #line 672 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_getdvarcolorblue::ptr > ()); } -#line 3177 "parser.cpp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_complement::ptr > ()); } +#line 3161 "parser.cpp" break; - case 145: // expr_primitive: expr_getdvarcolorgreen + case 139: // expr_primitive: expr_negate #line 673 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_getdvarcolorgreen::ptr > ()); } -#line 3183 "parser.cpp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_negate::ptr > ()); } +#line 3167 "parser.cpp" break; - case 146: // expr_primitive: expr_getdvarcolorred + case 140: // expr_primitive: expr_not #line 674 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_getdvarcolorred::ptr > ()); } -#line 3189 "parser.cpp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_not::ptr > ()); } +#line 3173 "parser.cpp" break; - case 147: // expr_primitive: expr_getdvarvector + case 141: // expr_primitive: expr_call #line 675 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_getdvarvector::ptr > ()); } -#line 3195 "parser.cpp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_call::ptr > ()); } +#line 3179 "parser.cpp" break; - case 148: // expr_primitive: expr_getdvarfloat + case 142: // expr_primitive: expr_method #line 676 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_getdvarfloat::ptr > ()); } -#line 3201 "parser.cpp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_method::ptr > ()); } +#line 3185 "parser.cpp" break; - case 149: // expr_primitive: expr_getdvarint + case 143: // expr_primitive: expr_getnextarraykey #line 677 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_getdvarint::ptr > ()); } -#line 3207 "parser.cpp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_getnextarraykey::ptr > ()); } +#line 3191 "parser.cpp" break; - case 150: // expr_primitive: expr_getdvar + case 144: // expr_primitive: expr_getfirstarraykey #line 678 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_getdvar::ptr > ()); } -#line 3213 "parser.cpp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_getfirstarraykey::ptr > ()); } +#line 3197 "parser.cpp" break; - case 151: // expr_primitive: expr_gettime + case 145: // expr_primitive: expr_getdvarcoloralpha #line 679 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_gettime::ptr > ()); } -#line 3219 "parser.cpp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_getdvarcoloralpha::ptr > ()); } +#line 3203 "parser.cpp" break; - case 152: // expr_primitive: expr_abs + case 146: // expr_primitive: expr_getdvarcolorblue #line 680 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_abs::ptr > ()); } -#line 3225 "parser.cpp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_getdvarcolorblue::ptr > ()); } +#line 3209 "parser.cpp" break; - case 153: // expr_primitive: expr_vectortoangles + case 147: // expr_primitive: expr_getdvarcolorgreen #line 681 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_vectortoangles::ptr > ()); } -#line 3231 "parser.cpp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_getdvarcolorgreen::ptr > ()); } +#line 3215 "parser.cpp" break; - case 154: // expr_primitive: expr_angleclamp180 + case 148: // expr_primitive: expr_getdvarcolorred #line 682 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_angleclamp180::ptr > ()); } -#line 3237 "parser.cpp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_getdvarcolorred::ptr > ()); } +#line 3221 "parser.cpp" break; - case 155: // expr_primitive: expr_anglestoforward + case 149: // expr_primitive: expr_getdvarvector #line 683 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_anglestoforward::ptr > ()); } -#line 3243 "parser.cpp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_getdvarvector::ptr > ()); } +#line 3227 "parser.cpp" break; - case 156: // expr_primitive: expr_anglestoright + case 150: // expr_primitive: expr_getdvarfloat #line 684 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_anglestoright::ptr > ()); } -#line 3249 "parser.cpp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_getdvarfloat::ptr > ()); } +#line 3233 "parser.cpp" break; - case 157: // expr_primitive: expr_anglestoup + case 151: // expr_primitive: expr_getdvarint #line 685 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_anglestoup::ptr > ()); } -#line 3255 "parser.cpp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_getdvarint::ptr > ()); } +#line 3239 "parser.cpp" break; - case 158: // expr_primitive: expr_vectorscale + case 152: // expr_primitive: expr_getdvar #line 686 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_vectorscale::ptr > ()); } -#line 3261 "parser.cpp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_getdvar::ptr > ()); } +#line 3245 "parser.cpp" break; - case 159: // expr_primitive: expr_isdefined + case 153: // expr_primitive: expr_gettime #line 687 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_isdefined::ptr > ()); } -#line 3267 "parser.cpp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_gettime::ptr > ()); } +#line 3251 "parser.cpp" break; - case 160: // expr_primitive: expr_reference + case 154: // expr_primitive: expr_abs #line 688 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_reference::ptr > ()); } -#line 3273 "parser.cpp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_abs::ptr > ()); } +#line 3257 "parser.cpp" break; - case 161: // expr_primitive: expr_array + case 155: // expr_primitive: expr_vectortoangles #line 689 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_array::ptr > ()); } -#line 3279 "parser.cpp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_vectortoangles::ptr > ()); } +#line 3263 "parser.cpp" break; - case 162: // expr_primitive: expr_field + case 156: // expr_primitive: expr_angleclamp180 #line 690 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_field::ptr > ()); } -#line 3285 "parser.cpp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_angleclamp180::ptr > ()); } +#line 3269 "parser.cpp" break; - case 163: // expr_primitive: expr_size + case 157: // expr_primitive: expr_anglestoforward #line 691 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_size::ptr > ()); } -#line 3291 "parser.cpp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_anglestoforward::ptr > ()); } +#line 3275 "parser.cpp" break; - case 164: // expr_primitive: expr_paren + case 158: // expr_primitive: expr_anglestoright #line 692 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_paren::ptr > ()); } -#line 3297 "parser.cpp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_anglestoright::ptr > ()); } +#line 3281 "parser.cpp" break; - case 165: // expr_primitive: expr_empty_array + case 159: // expr_primitive: expr_anglestoup #line 693 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_empty_array::ptr > ()); } -#line 3303 "parser.cpp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_anglestoup::ptr > ()); } +#line 3287 "parser.cpp" break; - case 166: // expr_primitive: expr_undefined + case 160: // expr_primitive: expr_vectorscale #line 694 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_undefined::ptr > ()); } -#line 3309 "parser.cpp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_vectorscale::ptr > ()); } +#line 3293 "parser.cpp" break; - case 167: // expr_primitive: expr_game + case 161: // expr_primitive: expr_isdefined #line 695 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_game::ptr > ()); } -#line 3315 "parser.cpp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_isdefined::ptr > ()); } +#line 3299 "parser.cpp" break; - case 168: // expr_primitive: expr_self + case 162: // expr_primitive: expr_reference #line 696 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_self::ptr > ()); } -#line 3321 "parser.cpp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_reference::ptr > ()); } +#line 3305 "parser.cpp" break; - case 169: // expr_primitive: expr_anim + case 163: // expr_primitive: expr_array #line 697 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_anim::ptr > ()); } -#line 3327 "parser.cpp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_array::ptr > ()); } +#line 3311 "parser.cpp" break; - case 170: // expr_primitive: expr_level + case 164: // expr_primitive: expr_field #line 698 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_level::ptr > ()); } -#line 3333 "parser.cpp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_field::ptr > ()); } +#line 3317 "parser.cpp" break; - case 171: // expr_primitive: expr_animation + case 165: // expr_primitive: expr_size #line 699 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_animation::ptr > ()); } -#line 3339 "parser.cpp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_size::ptr > ()); } +#line 3323 "parser.cpp" break; - case 172: // expr_primitive: expr_animtree + case 166: // expr_primitive: expr_paren #line 700 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_animtree::ptr > ()); } -#line 3345 "parser.cpp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_paren::ptr > ()); } +#line 3329 "parser.cpp" break; - case 173: // expr_primitive: expr_identifier + case 167: // expr_primitive: expr_empty_array #line 701 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_identifier::ptr > ()); } -#line 3351 "parser.cpp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_empty_array::ptr > ()); } +#line 3335 "parser.cpp" break; - case 174: // expr_primitive: expr_istring + case 168: // expr_primitive: expr_undefined #line 702 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_istring::ptr > ()); } -#line 3357 "parser.cpp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_undefined::ptr > ()); } +#line 3341 "parser.cpp" break; - case 175: // expr_primitive: expr_string + case 169: // expr_primitive: expr_game #line 703 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_string::ptr > ()); } -#line 3363 "parser.cpp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_game::ptr > ()); } +#line 3347 "parser.cpp" break; - case 176: // expr_primitive: expr_vector + case 170: // expr_primitive: expr_self #line 704 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_vector::ptr > ()); } -#line 3369 "parser.cpp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_self::ptr > ()); } +#line 3353 "parser.cpp" break; - case 177: // expr_primitive: expr_hash + case 171: // expr_primitive: expr_anim #line 705 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_hash::ptr > ()); } -#line 3375 "parser.cpp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_anim::ptr > ()); } +#line 3359 "parser.cpp" break; - case 178: // expr_primitive: expr_float + case 172: // expr_primitive: expr_level #line 706 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_float::ptr > ()); } -#line 3381 "parser.cpp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_level::ptr > ()); } +#line 3365 "parser.cpp" break; - case 179: // expr_primitive: expr_integer + case 173: // expr_primitive: expr_animation #line 707 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_integer::ptr > ()); } -#line 3387 "parser.cpp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_animation::ptr > ()); } +#line 3371 "parser.cpp" break; - case 180: // expr_primitive: expr_false + case 174: // expr_primitive: expr_animtree #line 708 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_false::ptr > ()); } -#line 3393 "parser.cpp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_animtree::ptr > ()); } +#line 3377 "parser.cpp" break; - case 181: // expr_primitive: expr_true + case 175: // expr_primitive: expr_identifier #line 709 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_true::ptr > ()); } -#line 3399 "parser.cpp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_identifier::ptr > ()); } +#line 3383 "parser.cpp" break; - case 182: // expr_complement: "~" expr + case 176: // expr_primitive: expr_istring +#line 710 "parser.ypp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_istring::ptr > ()); } +#line 3389 "parser.cpp" + break; + + case 177: // expr_primitive: expr_string +#line 711 "parser.ypp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_string::ptr > ()); } +#line 3395 "parser.cpp" + break; + + case 178: // expr_primitive: expr_vector +#line 712 "parser.ypp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_vector::ptr > ()); } +#line 3401 "parser.cpp" + break; + + case 179: // expr_primitive: expr_hash +#line 713 "parser.ypp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_hash::ptr > ()); } +#line 3407 "parser.cpp" + break; + + case 180: // expr_primitive: expr_float #line 714 "parser.ypp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_float::ptr > ()); } +#line 3413 "parser.cpp" + break; + + case 181: // expr_primitive: expr_integer +#line 715 "parser.ypp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_integer::ptr > ()); } +#line 3419 "parser.cpp" + break; + + case 182: // expr_primitive: expr_false +#line 716 "parser.ypp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_false::ptr > ()); } +#line 3425 "parser.cpp" + break; + + case 183: // expr_primitive: expr_true +#line 717 "parser.ypp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_true::ptr > ()); } +#line 3431 "parser.cpp" + break; + + case 184: // expr_complement: "~" expr +#line 722 "parser.ypp" { yylhs.value.as < expr_complement::ptr > () = expr_complement::make(yylhs.location, std::move(yystack_[0].value.as < expr::ptr > ())); } -#line 3405 "parser.cpp" +#line 3437 "parser.cpp" break; - case 183: // expr_negate: "-" expr_identifier -#line 719 "parser.ypp" + case 185: // expr_negate: "-" expr_identifier +#line 727 "parser.ypp" { yylhs.value.as < expr_negate::ptr > () = expr_negate::make(yylhs.location, std::move(yystack_[0].value.as < expr_identifier::ptr > ())); } -#line 3411 "parser.cpp" +#line 3443 "parser.cpp" break; - case 184: // expr_negate: "-" expr_paren -#line 721 "parser.ypp" + case 186: // expr_negate: "-" expr_paren +#line 729 "parser.ypp" { yylhs.value.as < expr_negate::ptr > () = expr_negate::make(yylhs.location, std::move(yystack_[0].value.as < expr_paren::ptr > ())); } -#line 3417 "parser.cpp" +#line 3449 "parser.cpp" break; - case 185: // expr_negate: "-" expr_array -#line 723 "parser.ypp" + case 187: // expr_negate: "-" expr_array +#line 731 "parser.ypp" { yylhs.value.as < expr_negate::ptr > () = expr_negate::make(yylhs.location, std::move(yystack_[0].value.as < expr_array::ptr > ())); } -#line 3423 "parser.cpp" +#line 3455 "parser.cpp" break; - case 186: // expr_negate: "-" expr_field -#line 725 "parser.ypp" + case 188: // expr_negate: "-" expr_field +#line 733 "parser.ypp" { yylhs.value.as < expr_negate::ptr > () = expr_negate::make(yylhs.location, std::move(yystack_[0].value.as < expr_field::ptr > ())); } -#line 3429 "parser.cpp" +#line 3461 "parser.cpp" break; - case 187: // expr_not: "!" expr -#line 730 "parser.ypp" + case 189: // expr_not: "!" expr +#line 738 "parser.ypp" { yylhs.value.as < expr_not::ptr > () = expr_not::make(yylhs.location, std::move(yystack_[0].value.as < expr::ptr > ())); } -#line 3435 "parser.cpp" +#line 3467 "parser.cpp" break; - case 188: // expr_call: expr_function -#line 734 "parser.ypp" + case 190: // expr_call: expr_function +#line 742 "parser.ypp" { yylhs.value.as < expr_call::ptr > () = expr_call::make(yylhs.location, std::move(yystack_[0].value.as < call::ptr > ())); } -#line 3441 "parser.cpp" +#line 3473 "parser.cpp" break; - case 189: // expr_call: expr_pointer -#line 735 "parser.ypp" + case 191: // expr_call: expr_pointer +#line 743 "parser.ypp" { yylhs.value.as < expr_call::ptr > () = expr_call::make(yylhs.location, std::move(yystack_[0].value.as < call::ptr > ())); } -#line 3447 "parser.cpp" +#line 3479 "parser.cpp" break; - case 190: // expr_method: expr_object expr_function -#line 740 "parser.ypp" + case 192: // expr_method: expr_object expr_function +#line 748 "parser.ypp" { if (yystack_[1].value.as < expr::ptr > ()->loc().begin.line != yystack_[0].value.as < call::ptr > ()->loc().begin.line) error(yystack_[0].value.as < call::ptr > ()->loc(), "missing ';' ?"); yylhs.value.as < expr_method::ptr > () = expr_method::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < call::ptr > ())); } -#line 3458 "parser.cpp" +#line 3490 "parser.cpp" break; - case 191: // expr_method: expr_object expr_pointer -#line 747 "parser.ypp" + case 193: // expr_method: expr_object expr_pointer +#line 755 "parser.ypp" { if (yystack_[1].value.as < expr::ptr > ()->loc().begin.line != yystack_[0].value.as < call::ptr > ()->loc().begin.line) error(yystack_[0].value.as < call::ptr > ()->loc(), "missing ';' ?"); yylhs.value.as < expr_method::ptr > () = expr_method::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < call::ptr > ())); } -#line 3469 "parser.cpp" +#line 3501 "parser.cpp" break; - case 192: // expr_function: expr_identifier "(" expr_arguments ")" -#line 757 "parser.ypp" + case 194: // expr_function: expr_identifier "(" expr_arguments ")" +#line 765 "parser.ypp" { yylhs.value.as < call::ptr > () = expr_function::make(yylhs.location, expr_path::make(yylhs.location), std::move(yystack_[3].value.as < expr_identifier::ptr > ()), std::move(yystack_[1].value.as < expr_arguments::ptr > ()), call::mode::normal); } -#line 3475 "parser.cpp" +#line 3507 "parser.cpp" break; - case 193: // expr_function: expr_path "::" expr_identifier "(" expr_arguments ")" -#line 759 "parser.ypp" + case 195: // expr_function: expr_path "::" expr_identifier "(" expr_arguments ")" +#line 767 "parser.ypp" { yylhs.value.as < call::ptr > () = expr_function::make(yylhs.location, std::move(yystack_[5].value.as < expr_path::ptr > ()), std::move(yystack_[3].value.as < expr_identifier::ptr > ()), std::move(yystack_[1].value.as < expr_arguments::ptr > ()), call::mode::normal); } -#line 3481 "parser.cpp" +#line 3513 "parser.cpp" break; - case 194: // expr_function: "thread" expr_identifier "(" expr_arguments ")" -#line 761 "parser.ypp" + case 196: // expr_function: "thread" expr_identifier "(" expr_arguments ")" +#line 769 "parser.ypp" { yylhs.value.as < call::ptr > () = expr_function::make(yylhs.location, expr_path::make(yylhs.location), std::move(yystack_[3].value.as < expr_identifier::ptr > ()), std::move(yystack_[1].value.as < expr_arguments::ptr > ()), call::mode::thread); } -#line 3487 "parser.cpp" +#line 3519 "parser.cpp" break; - case 195: // expr_function: "thread" expr_path "::" expr_identifier "(" expr_arguments ")" -#line 763 "parser.ypp" + case 197: // expr_function: "thread" expr_path "::" expr_identifier "(" expr_arguments ")" +#line 771 "parser.ypp" { yylhs.value.as < call::ptr > () = expr_function::make(yylhs.location, std::move(yystack_[5].value.as < expr_path::ptr > ()), std::move(yystack_[3].value.as < expr_identifier::ptr > ()), std::move(yystack_[1].value.as < expr_arguments::ptr > ()), call::mode::thread); } -#line 3493 "parser.cpp" +#line 3525 "parser.cpp" break; - case 196: // expr_pointer: "[" "[" expr "]" "]" "(" expr_arguments ")" -#line 768 "parser.ypp" + case 198: // expr_pointer: "[" "[" expr "]" "]" "(" expr_arguments ")" +#line 776 "parser.ypp" { yylhs.value.as < call::ptr > () = expr_pointer::make(yylhs.location, std::move(yystack_[5].value.as < expr::ptr > ()), std::move(yystack_[1].value.as < expr_arguments::ptr > ()), call::mode::normal); } -#line 3499 "parser.cpp" +#line 3531 "parser.cpp" break; - case 197: // expr_pointer: "thread" "[" "[" expr "]" "]" "(" expr_arguments ")" -#line 770 "parser.ypp" + case 199: // expr_pointer: "thread" "[" "[" expr "]" "]" "(" expr_arguments ")" +#line 778 "parser.ypp" { yylhs.value.as < call::ptr > () = expr_pointer::make(yylhs.location, std::move(yystack_[5].value.as < expr::ptr > ()), std::move(yystack_[1].value.as < expr_arguments::ptr > ()), call::mode::thread); } -#line 3505 "parser.cpp" +#line 3537 "parser.cpp" break; - case 198: // expr_parameters: expr_parameters "," expr_parameters_default -#line 775 "parser.ypp" - { yylhs.value.as < expr_parameters::ptr > () = std::move(yystack_[2].value.as < expr_parameters::ptr > ()); yylhs.value.as < expr_parameters::ptr > ()->list.push_back(std::move(yystack_[0].value.as < expr::ptr > ())); } -#line 3511 "parser.cpp" - break; - - case 199: // expr_parameters: expr_parameters "," expr_identifier -#line 777 "parser.ypp" - { yylhs.value.as < expr_parameters::ptr > () = std::move(yystack_[2].value.as < expr_parameters::ptr > ()); yylhs.value.as < expr_parameters::ptr > ()->list.push_back(std::move(yystack_[0].value.as < expr_identifier::ptr > ())); } -#line 3517 "parser.cpp" - break; - - case 200: // expr_parameters: expr_parameters_default -#line 779 "parser.ypp" - { yylhs.value.as < expr_parameters::ptr > () = expr_parameters::make(yylhs.location); yylhs.value.as < expr_parameters::ptr > ()->list.push_back(std::move(yystack_[0].value.as < expr::ptr > ())); } -#line 3523 "parser.cpp" - break; - - case 201: // expr_parameters: expr_identifier -#line 781 "parser.ypp" - { yylhs.value.as < expr_parameters::ptr > () = expr_parameters::make(yylhs.location); yylhs.value.as < expr_parameters::ptr > ()->list.push_back(std::move(yystack_[0].value.as < expr_identifier::ptr > ())); } -#line 3529 "parser.cpp" - break; - - case 202: // expr_parameters: %empty + case 200: // expr_parameters: expr_parameters "," expr_parameters_default #line 783 "parser.ypp" + { yylhs.value.as < expr_parameters::ptr > () = std::move(yystack_[2].value.as < expr_parameters::ptr > ()); yylhs.value.as < expr_parameters::ptr > ()->list.push_back(std::move(yystack_[0].value.as < expr::ptr > ())); } +#line 3543 "parser.cpp" + break; + + case 201: // expr_parameters: expr_parameters "," expr_identifier +#line 785 "parser.ypp" + { yylhs.value.as < expr_parameters::ptr > () = std::move(yystack_[2].value.as < expr_parameters::ptr > ()); yylhs.value.as < expr_parameters::ptr > ()->list.push_back(std::move(yystack_[0].value.as < expr_identifier::ptr > ())); } +#line 3549 "parser.cpp" + break; + + case 202: // expr_parameters: expr_parameters_default +#line 787 "parser.ypp" + { yylhs.value.as < expr_parameters::ptr > () = expr_parameters::make(yylhs.location); yylhs.value.as < expr_parameters::ptr > ()->list.push_back(std::move(yystack_[0].value.as < expr::ptr > ())); } +#line 3555 "parser.cpp" + break; + + case 203: // expr_parameters: expr_identifier +#line 789 "parser.ypp" + { yylhs.value.as < expr_parameters::ptr > () = expr_parameters::make(yylhs.location); yylhs.value.as < expr_parameters::ptr > ()->list.push_back(std::move(yystack_[0].value.as < expr_identifier::ptr > ())); } +#line 3561 "parser.cpp" + break; + + case 204: // expr_parameters: %empty +#line 791 "parser.ypp" { yylhs.value.as < expr_parameters::ptr > () = expr_parameters::make(yylhs.location); } -#line 3535 "parser.cpp" +#line 3567 "parser.cpp" break; - case 203: // expr_parameters_default: expr_identifier "=" expr -#line 788 "parser.ypp" + case 205: // expr_parameters_default: expr_identifier "=" expr +#line 796 "parser.ypp" { yylhs.value.as < expr::ptr > () = expr_assign::make(yylhs.location, std::move(yystack_[2].value.as < expr_identifier::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_assign::op::eq); } -#line 3541 "parser.cpp" +#line 3573 "parser.cpp" break; - case 204: // expr_arguments: expr_arguments_no_empty -#line 793 "parser.ypp" + case 206: // expr_arguments: expr_arguments_no_empty +#line 801 "parser.ypp" { yylhs.value.as < expr_arguments::ptr > () = std::move(yystack_[0].value.as < expr_arguments::ptr > ()); } -#line 3547 "parser.cpp" +#line 3579 "parser.cpp" break; - case 205: // expr_arguments: %empty -#line 795 "parser.ypp" + case 207: // expr_arguments: %empty +#line 803 "parser.ypp" { yylhs.value.as < expr_arguments::ptr > () = expr_arguments::make(yylhs.location); } -#line 3553 "parser.cpp" +#line 3585 "parser.cpp" break; - case 206: // expr_arguments_no_empty: expr_arguments "," expr -#line 800 "parser.ypp" + case 208: // expr_arguments_no_empty: expr_arguments "," expr +#line 808 "parser.ypp" { yylhs.value.as < expr_arguments::ptr > () = std::move(yystack_[2].value.as < expr_arguments::ptr > ()); yylhs.value.as < expr_arguments::ptr > ()->list.push_back(std::move(yystack_[0].value.as < expr::ptr > ())); } -#line 3559 "parser.cpp" +#line 3591 "parser.cpp" break; - case 207: // expr_arguments_no_empty: expr -#line 802 "parser.ypp" + case 209: // expr_arguments_no_empty: expr +#line 810 "parser.ypp" { yylhs.value.as < expr_arguments::ptr > () = expr_arguments::make(yylhs.location); yylhs.value.as < expr_arguments::ptr > ()->list.push_back(std::move(yystack_[0].value.as < expr::ptr > ())); } -#line 3565 "parser.cpp" +#line 3597 "parser.cpp" break; - case 208: // expr_getnextarraykey: "getnextarraykey" "(" expr "," expr ")" -#line 807 "parser.ypp" + case 210: // expr_getnextarraykey: "getnextarraykey" "(" expr "," expr ")" +#line 815 "parser.ypp" { yylhs.value.as < expr_getnextarraykey::ptr > () = expr_getnextarraykey::make(yylhs.location, std::move(yystack_[3].value.as < expr::ptr > ()), std::move(yystack_[1].value.as < expr::ptr > ())); } -#line 3571 "parser.cpp" +#line 3603 "parser.cpp" break; - case 209: // expr_getfirstarraykey: "getfirstarraykey" "(" expr ")" -#line 812 "parser.ypp" + case 211: // expr_getfirstarraykey: "getfirstarraykey" "(" expr ")" +#line 820 "parser.ypp" { yylhs.value.as < expr_getfirstarraykey::ptr > () = expr_getfirstarraykey::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); } -#line 3577 "parser.cpp" +#line 3609 "parser.cpp" break; - case 210: // expr_getdvarcoloralpha: "getdvarcoloralpha" "(" expr ")" -#line 817 "parser.ypp" + case 212: // expr_getdvarcoloralpha: "getdvarcoloralpha" "(" expr ")" +#line 825 "parser.ypp" { yylhs.value.as < expr_getdvarcoloralpha::ptr > () = expr_getdvarcoloralpha::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); } -#line 3583 "parser.cpp" +#line 3615 "parser.cpp" break; - case 211: // expr_getdvarcolorblue: "getdvarcolorblue" "(" expr ")" -#line 822 "parser.ypp" + case 213: // expr_getdvarcolorblue: "getdvarcolorblue" "(" expr ")" +#line 830 "parser.ypp" { yylhs.value.as < expr_getdvarcolorblue::ptr > () = expr_getdvarcolorblue::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); } -#line 3589 "parser.cpp" +#line 3621 "parser.cpp" break; - case 212: // expr_getdvarcolorgreen: "getdvarcolorgreen" "(" expr ")" -#line 827 "parser.ypp" + case 214: // expr_getdvarcolorgreen: "getdvarcolorgreen" "(" expr ")" +#line 835 "parser.ypp" { yylhs.value.as < expr_getdvarcolorgreen::ptr > () = expr_getdvarcolorgreen::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); } -#line 3595 "parser.cpp" +#line 3627 "parser.cpp" break; - case 213: // expr_getdvarcolorred: "getdvarcolorred" "(" expr ")" -#line 832 "parser.ypp" + case 215: // expr_getdvarcolorred: "getdvarcolorred" "(" expr ")" +#line 840 "parser.ypp" { yylhs.value.as < expr_getdvarcolorred::ptr > () = expr_getdvarcolorred::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); } -#line 3601 "parser.cpp" +#line 3633 "parser.cpp" break; - case 214: // expr_getdvarvector: "getdvarvector" "(" expr ")" -#line 837 "parser.ypp" + case 216: // expr_getdvarvector: "getdvarvector" "(" expr ")" +#line 845 "parser.ypp" { yylhs.value.as < expr_getdvarvector::ptr > () = expr_getdvarvector::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); } -#line 3607 "parser.cpp" +#line 3639 "parser.cpp" break; - case 215: // expr_getdvarfloat: "getdvarfloat" "(" expr ")" -#line 842 "parser.ypp" + case 217: // expr_getdvarfloat: "getdvarfloat" "(" expr ")" +#line 850 "parser.ypp" { yylhs.value.as < expr_getdvarfloat::ptr > () = expr_getdvarfloat::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); } -#line 3613 "parser.cpp" +#line 3645 "parser.cpp" break; - case 216: // expr_getdvarint: "getdvarint" "(" expr ")" -#line 847 "parser.ypp" + case 218: // expr_getdvarint: "getdvarint" "(" expr ")" +#line 855 "parser.ypp" { yylhs.value.as < expr_getdvarint::ptr > () = expr_getdvarint::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); } -#line 3619 "parser.cpp" +#line 3651 "parser.cpp" break; - case 217: // expr_getdvar: "getdvar" "(" expr ")" -#line 852 "parser.ypp" + case 219: // expr_getdvar: "getdvar" "(" expr ")" +#line 860 "parser.ypp" { yylhs.value.as < expr_getdvar::ptr > () = expr_getdvar::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); } -#line 3625 "parser.cpp" +#line 3657 "parser.cpp" break; - case 218: // expr_gettime: "gettime" "(" ")" -#line 857 "parser.ypp" + case 220: // expr_gettime: "gettime" "(" ")" +#line 865 "parser.ypp" { yylhs.value.as < expr_gettime::ptr > () = expr_gettime::make(yylhs.location); } -#line 3631 "parser.cpp" +#line 3663 "parser.cpp" break; - case 219: // expr_abs: "abs" "(" expr ")" -#line 862 "parser.ypp" + case 221: // expr_abs: "abs" "(" expr ")" +#line 870 "parser.ypp" { yylhs.value.as < expr_abs::ptr > () = expr_abs::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); } -#line 3637 "parser.cpp" +#line 3669 "parser.cpp" break; - case 220: // expr_vectortoangles: "vectortoangles" "(" expr ")" -#line 867 "parser.ypp" + case 222: // expr_vectortoangles: "vectortoangles" "(" expr ")" +#line 875 "parser.ypp" { yylhs.value.as < expr_vectortoangles::ptr > () = expr_vectortoangles::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); } -#line 3643 "parser.cpp" +#line 3675 "parser.cpp" break; - case 221: // expr_angleclamp180: "angleclamp180" "(" expr ")" -#line 872 "parser.ypp" + case 223: // expr_angleclamp180: "angleclamp180" "(" expr ")" +#line 880 "parser.ypp" { yylhs.value.as < expr_angleclamp180::ptr > () = expr_angleclamp180::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); } -#line 3649 "parser.cpp" +#line 3681 "parser.cpp" break; - case 222: // expr_anglestoforward: "anglestoforward" "(" expr ")" -#line 877 "parser.ypp" + case 224: // expr_anglestoforward: "anglestoforward" "(" expr ")" +#line 885 "parser.ypp" { yylhs.value.as < expr_anglestoforward::ptr > () = expr_anglestoforward::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); } -#line 3655 "parser.cpp" +#line 3687 "parser.cpp" break; - case 223: // expr_anglestoright: "anglestoright" "(" expr ")" -#line 882 "parser.ypp" + case 225: // expr_anglestoright: "anglestoright" "(" expr ")" +#line 890 "parser.ypp" { yylhs.value.as < expr_anglestoright::ptr > () = expr_anglestoright::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); } -#line 3661 "parser.cpp" +#line 3693 "parser.cpp" break; - case 224: // expr_anglestoup: "anglestoup" "(" expr ")" -#line 887 "parser.ypp" + case 226: // expr_anglestoup: "anglestoup" "(" expr ")" +#line 895 "parser.ypp" { yylhs.value.as < expr_anglestoup::ptr > () = expr_anglestoup::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); } -#line 3667 "parser.cpp" +#line 3699 "parser.cpp" break; - case 225: // expr_vectorscale: "vectorscale" "(" expr "," expr ")" -#line 892 "parser.ypp" + case 227: // expr_vectorscale: "vectorscale" "(" expr "," expr ")" +#line 900 "parser.ypp" { yylhs.value.as < expr_vectorscale::ptr > () = expr_vectorscale::make(yylhs.location, std::move(yystack_[3].value.as < expr::ptr > ()), std::move(yystack_[1].value.as < expr::ptr > ())); } -#line 3673 "parser.cpp" +#line 3705 "parser.cpp" break; - case 226: // expr_isdefined: "isdefined" "(" expr ")" -#line 897 "parser.ypp" + case 228: // expr_isdefined: "isdefined" "(" expr ")" +#line 905 "parser.ypp" { yylhs.value.as < expr_isdefined::ptr > () = expr_isdefined::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); } -#line 3679 "parser.cpp" +#line 3711 "parser.cpp" break; - case 227: // expr_reference: "::" expr_identifier -#line 902 "parser.ypp" + case 229: // expr_reference: "::" expr_identifier +#line 910 "parser.ypp" { yylhs.value.as < expr_reference::ptr > () = expr_reference::make(yylhs.location, expr_path::make(yylhs.location), std::move(yystack_[0].value.as < expr_identifier::ptr > ())); } -#line 3685 "parser.cpp" +#line 3717 "parser.cpp" break; - case 228: // expr_reference: expr_path "::" expr_identifier -#line 904 "parser.ypp" + case 230: // expr_reference: expr_path "::" expr_identifier +#line 912 "parser.ypp" { yylhs.value.as < expr_reference::ptr > () = expr_reference::make(yylhs.location, std::move(yystack_[2].value.as < expr_path::ptr > ()), std::move(yystack_[0].value.as < expr_identifier::ptr > ())); } -#line 3691 "parser.cpp" +#line 3723 "parser.cpp" break; - case 229: // expr_array: expr_object "[" expr "]" -#line 909 "parser.ypp" - { yylhs.value.as < expr_array::ptr > () = expr_array::make(yylhs.location, std::move(yystack_[3].value.as < expr::ptr > ()), std::move(yystack_[1].value.as < expr::ptr > ())); } -#line 3697 "parser.cpp" - break; - - case 230: // expr_array: expr_getdvarvector "[" expr "]" -#line 911 "parser.ypp" - { yylhs.value.as < expr_array::ptr > () = expr_array::make(yylhs.location, std::move(yystack_[3].value.as < expr_getdvarvector::ptr > ()), std::move(yystack_[1].value.as < expr::ptr > ())); } -#line 3703 "parser.cpp" - break; - - case 231: // expr_array: expr_vectortoangles "[" expr "]" -#line 913 "parser.ypp" - { yylhs.value.as < expr_array::ptr > () = expr_array::make(yylhs.location, std::move(yystack_[3].value.as < expr_vectortoangles::ptr > ()), std::move(yystack_[1].value.as < expr::ptr > ())); } -#line 3709 "parser.cpp" - break; - - case 232: // expr_array: expr_angleclamp180 "[" expr "]" -#line 915 "parser.ypp" - { yylhs.value.as < expr_array::ptr > () = expr_array::make(yylhs.location, std::move(yystack_[3].value.as < expr_angleclamp180::ptr > ()), std::move(yystack_[1].value.as < expr::ptr > ())); } -#line 3715 "parser.cpp" - break; - - case 233: // expr_array: expr_anglestoforward "[" expr "]" + case 231: // expr_array: expr_object "[" expr "]" #line 917 "parser.ypp" - { yylhs.value.as < expr_array::ptr > () = expr_array::make(yylhs.location, std::move(yystack_[3].value.as < expr_anglestoforward::ptr > ()), std::move(yystack_[1].value.as < expr::ptr > ())); } -#line 3721 "parser.cpp" + { yylhs.value.as < expr_array::ptr > () = expr_array::make(yylhs.location, std::move(yystack_[3].value.as < expr::ptr > ()), std::move(yystack_[1].value.as < expr::ptr > ())); } +#line 3729 "parser.cpp" break; - case 234: // expr_array: expr_anglestoright "[" expr "]" + case 232: // expr_array: expr_getdvarvector "[" expr "]" #line 919 "parser.ypp" - { yylhs.value.as < expr_array::ptr > () = expr_array::make(yylhs.location, std::move(yystack_[3].value.as < expr_anglestoright::ptr > ()), std::move(yystack_[1].value.as < expr::ptr > ())); } -#line 3727 "parser.cpp" + { yylhs.value.as < expr_array::ptr > () = expr_array::make(yylhs.location, std::move(yystack_[3].value.as < expr_getdvarvector::ptr > ()), std::move(yystack_[1].value.as < expr::ptr > ())); } +#line 3735 "parser.cpp" break; - case 235: // expr_array: expr_anglestoup "[" expr "]" + case 233: // expr_array: expr_vectortoangles "[" expr "]" #line 921 "parser.ypp" - { yylhs.value.as < expr_array::ptr > () = expr_array::make(yylhs.location, std::move(yystack_[3].value.as < expr_anglestoup::ptr > ()), std::move(yystack_[1].value.as < expr::ptr > ())); } -#line 3733 "parser.cpp" + { yylhs.value.as < expr_array::ptr > () = expr_array::make(yylhs.location, std::move(yystack_[3].value.as < expr_vectortoangles::ptr > ()), std::move(yystack_[1].value.as < expr::ptr > ())); } +#line 3741 "parser.cpp" break; - case 236: // expr_array: expr_vectorscale "[" expr "]" + case 234: // expr_array: expr_angleclamp180 "[" expr "]" #line 923 "parser.ypp" + { yylhs.value.as < expr_array::ptr > () = expr_array::make(yylhs.location, std::move(yystack_[3].value.as < expr_angleclamp180::ptr > ()), std::move(yystack_[1].value.as < expr::ptr > ())); } +#line 3747 "parser.cpp" + break; + + case 235: // expr_array: expr_anglestoforward "[" expr "]" +#line 925 "parser.ypp" + { yylhs.value.as < expr_array::ptr > () = expr_array::make(yylhs.location, std::move(yystack_[3].value.as < expr_anglestoforward::ptr > ()), std::move(yystack_[1].value.as < expr::ptr > ())); } +#line 3753 "parser.cpp" + break; + + case 236: // expr_array: expr_anglestoright "[" expr "]" +#line 927 "parser.ypp" + { yylhs.value.as < expr_array::ptr > () = expr_array::make(yylhs.location, std::move(yystack_[3].value.as < expr_anglestoright::ptr > ()), std::move(yystack_[1].value.as < expr::ptr > ())); } +#line 3759 "parser.cpp" + break; + + case 237: // expr_array: expr_anglestoup "[" expr "]" +#line 929 "parser.ypp" + { yylhs.value.as < expr_array::ptr > () = expr_array::make(yylhs.location, std::move(yystack_[3].value.as < expr_anglestoup::ptr > ()), std::move(yystack_[1].value.as < expr::ptr > ())); } +#line 3765 "parser.cpp" + break; + + case 238: // expr_array: expr_vectorscale "[" expr "]" +#line 931 "parser.ypp" { yylhs.value.as < expr_array::ptr > () = expr_array::make(yylhs.location, std::move(yystack_[3].value.as < expr_vectorscale::ptr > ()), std::move(yystack_[1].value.as < expr::ptr > ())); } -#line 3739 "parser.cpp" +#line 3771 "parser.cpp" break; - case 237: // expr_field: expr_object "." expr_identifier_nosize -#line 928 "parser.ypp" + case 239: // expr_field: expr_object "." expr_identifier_nosize +#line 936 "parser.ypp" { yylhs.value.as < expr_field::ptr > () = expr_field::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr_identifier::ptr > ())); } -#line 3745 "parser.cpp" +#line 3777 "parser.cpp" break; - case 238: // expr_size: expr_object "." "size" -#line 933 "parser.ypp" + case 240: // expr_size: expr_object "." "size" +#line 941 "parser.ypp" { yylhs.value.as < expr_size::ptr > () = expr_size::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ())); } -#line 3751 "parser.cpp" +#line 3783 "parser.cpp" break; - case 239: // expr_size: expr_string "." "size" -#line 935 "parser.ypp" + case 241: // expr_size: expr_string "." "size" +#line 943 "parser.ypp" { yylhs.value.as < expr_size::ptr > () = expr_size::make(yylhs.location, std::move(yystack_[2].value.as < expr_string::ptr > ())); } -#line 3757 "parser.cpp" +#line 3789 "parser.cpp" break; - case 240: // expr_paren: "(" expr ")" -#line 940 "parser.ypp" - { yylhs.value.as < expr_paren::ptr > () = expr_paren::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); } -#line 3763 "parser.cpp" - break; - - case 241: // expr_object: expr_call -#line 944 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_call::ptr > ()); } -#line 3769 "parser.cpp" - break; - - case 242: // expr_object: expr_method -#line 945 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_method::ptr > ()); } -#line 3775 "parser.cpp" - break; - - case 243: // expr_object: expr_array -#line 946 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_array::ptr > ()); } -#line 3781 "parser.cpp" - break; - - case 244: // expr_object: expr_field -#line 947 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_field::ptr > ()); } -#line 3787 "parser.cpp" - break; - - case 245: // expr_object: expr_game + case 242: // expr_paren: "(" expr ")" #line 948 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_game::ptr > ()); } -#line 3793 "parser.cpp" + { yylhs.value.as < expr_paren::ptr > () = expr_paren::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); } +#line 3795 "parser.cpp" break; - case 246: // expr_object: expr_self -#line 949 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_self::ptr > ()); } -#line 3799 "parser.cpp" - break; - - case 247: // expr_object: expr_anim -#line 950 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_anim::ptr > ()); } -#line 3805 "parser.cpp" - break; - - case 248: // expr_object: expr_level -#line 951 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_level::ptr > ()); } -#line 3811 "parser.cpp" - break; - - case 249: // expr_object: expr_identifier + case 243: // expr_object: expr_call #line 952 "parser.ypp" - { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_identifier::ptr > ()); } -#line 3817 "parser.cpp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_call::ptr > ()); } +#line 3801 "parser.cpp" break; - case 250: // expr_empty_array: "[" "]" + case 244: // expr_object: expr_method +#line 953 "parser.ypp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_method::ptr > ()); } +#line 3807 "parser.cpp" + break; + + case 245: // expr_object: expr_array +#line 954 "parser.ypp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_array::ptr > ()); } +#line 3813 "parser.cpp" + break; + + case 246: // expr_object: expr_field +#line 955 "parser.ypp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_field::ptr > ()); } +#line 3819 "parser.cpp" + break; + + case 247: // expr_object: expr_game +#line 956 "parser.ypp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_game::ptr > ()); } +#line 3825 "parser.cpp" + break; + + case 248: // expr_object: expr_self #line 957 "parser.ypp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_self::ptr > ()); } +#line 3831 "parser.cpp" + break; + + case 249: // expr_object: expr_anim +#line 958 "parser.ypp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_anim::ptr > ()); } +#line 3837 "parser.cpp" + break; + + case 250: // expr_object: expr_level +#line 959 "parser.ypp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_level::ptr > ()); } +#line 3843 "parser.cpp" + break; + + case 251: // expr_object: expr_identifier +#line 960 "parser.ypp" + { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_identifier::ptr > ()); } +#line 3849 "parser.cpp" + break; + + case 252: // expr_empty_array: "[" "]" +#line 965 "parser.ypp" { yylhs.value.as < expr_empty_array::ptr > () = expr_empty_array::make(yylhs.location); } -#line 3823 "parser.cpp" +#line 3855 "parser.cpp" break; - case 251: // expr_undefined: "undefined" -#line 962 "parser.ypp" + case 253: // expr_undefined: "undefined" +#line 970 "parser.ypp" { yylhs.value.as < expr_undefined::ptr > () = expr_undefined::make(yylhs.location); } -#line 3829 "parser.cpp" +#line 3861 "parser.cpp" break; - case 252: // expr_game: "game" -#line 967 "parser.ypp" + case 254: // expr_game: "game" +#line 975 "parser.ypp" { yylhs.value.as < expr_game::ptr > () = expr_game::make(yylhs.location); } -#line 3835 "parser.cpp" +#line 3867 "parser.cpp" break; - case 253: // expr_self: "self" -#line 972 "parser.ypp" + case 255: // expr_self: "self" +#line 980 "parser.ypp" { yylhs.value.as < expr_self::ptr > () = expr_self::make(yylhs.location); } -#line 3841 "parser.cpp" +#line 3873 "parser.cpp" break; - case 254: // expr_anim: "anim" -#line 977 "parser.ypp" + case 256: // expr_anim: "anim" +#line 985 "parser.ypp" { yylhs.value.as < expr_anim::ptr > () = expr_anim::make(yylhs.location); } -#line 3847 "parser.cpp" +#line 3879 "parser.cpp" break; - case 255: // expr_level: "level" -#line 982 "parser.ypp" + case 257: // expr_level: "level" +#line 990 "parser.ypp" { yylhs.value.as < expr_level::ptr > () = expr_level::make(yylhs.location); } -#line 3853 "parser.cpp" +#line 3885 "parser.cpp" break; - case 256: // expr_animation: "%" "identifier" -#line 987 "parser.ypp" + case 258: // expr_animation: "%" "identifier" +#line 995 "parser.ypp" { yylhs.value.as < expr_animation::ptr > () = expr_animation::make(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3859 "parser.cpp" +#line 3891 "parser.cpp" break; - case 257: // expr_animtree: "#animtree" -#line 992 "parser.ypp" + case 259: // expr_animtree: "#animtree" +#line 1000 "parser.ypp" { yylhs.value.as < expr_animtree::ptr > () = expr_animtree::make(yylhs.location); } -#line 3865 "parser.cpp" +#line 3897 "parser.cpp" break; - case 258: // expr_identifier_nosize: "identifier" -#line 997 "parser.ypp" + case 260: // expr_identifier_nosize: "identifier" +#line 1005 "parser.ypp" { yylhs.value.as < expr_identifier::ptr > () = expr_identifier::make(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3871 "parser.cpp" +#line 3903 "parser.cpp" break; - case 259: // expr_identifier: "identifier" -#line 1002 "parser.ypp" + case 261: // expr_identifier: "identifier" +#line 1010 "parser.ypp" { yylhs.value.as < expr_identifier::ptr > () = expr_identifier::make(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3877 "parser.cpp" +#line 3909 "parser.cpp" break; - case 260: // expr_identifier: "size" -#line 1004 "parser.ypp" + case 262: // expr_identifier: "size" +#line 1012 "parser.ypp" { yylhs.value.as < expr_identifier::ptr > () = expr_identifier::make(yylhs.location, "size"); } -#line 3883 "parser.cpp" +#line 3915 "parser.cpp" break; - case 261: // expr_path: "identifier" -#line 1009 "parser.ypp" + case 263: // expr_path: "identifier" +#line 1017 "parser.ypp" { yylhs.value.as < expr_path::ptr > () = expr_path::make(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3889 "parser.cpp" +#line 3921 "parser.cpp" break; - case 262: // expr_path: "path" -#line 1011 "parser.ypp" + case 264: // expr_path: "path" +#line 1019 "parser.ypp" { yylhs.value.as < expr_path::ptr > () = expr_path::make(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3895 "parser.cpp" +#line 3927 "parser.cpp" break; - case 263: // expr_istring: "localized string" -#line 1016 "parser.ypp" + case 265: // expr_istring: "localized string" +#line 1024 "parser.ypp" { yylhs.value.as < expr_istring::ptr > () = expr_istring::make(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3901 "parser.cpp" +#line 3933 "parser.cpp" break; - case 264: // expr_string: "string literal" -#line 1021 "parser.ypp" + case 266: // expr_string: "string literal" +#line 1029 "parser.ypp" { yylhs.value.as < expr_string::ptr > () = expr_string::make(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3907 "parser.cpp" +#line 3939 "parser.cpp" break; - case 265: // expr_vector: "(" expr "," expr "," expr ")" -#line 1026 "parser.ypp" + case 267: // expr_vector: "(" expr "," expr "," expr ")" +#line 1034 "parser.ypp" { yylhs.value.as < expr_vector::ptr > () = expr_vector::make(yylhs.location, std::move(yystack_[5].value.as < expr::ptr > ()), std::move(yystack_[3].value.as < expr::ptr > ()), std::move(yystack_[1].value.as < expr::ptr > ())); } -#line 3913 "parser.cpp" +#line 3945 "parser.cpp" break; - case 266: // expr_hash: "hash string" -#line 1031 "parser.ypp" + case 268: // expr_hash: "hash string" +#line 1039 "parser.ypp" { yylhs.value.as < expr_hash::ptr > () = expr_hash::make(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3919 "parser.cpp" +#line 3951 "parser.cpp" break; - case 267: // expr_float: "-" "float" -#line 1036 "parser.ypp" + case 269: // expr_float: "-" "float" +#line 1044 "parser.ypp" { yylhs.value.as < expr_float::ptr > () = expr_float::make(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } -#line 3925 "parser.cpp" +#line 3957 "parser.cpp" break; - case 268: // expr_float: "float" -#line 1038 "parser.ypp" + case 270: // expr_float: "float" +#line 1046 "parser.ypp" { yylhs.value.as < expr_float::ptr > () = expr_float::make(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3931 "parser.cpp" +#line 3963 "parser.cpp" break; - case 269: // expr_integer: "-" "integer" -#line 1043 "parser.ypp" + case 271: // expr_integer: "-" "integer" +#line 1051 "parser.ypp" { yylhs.value.as < expr_integer::ptr > () = expr_integer::make(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } -#line 3937 "parser.cpp" +#line 3969 "parser.cpp" break; - case 270: // expr_integer: "integer" -#line 1045 "parser.ypp" + case 272: // expr_integer: "integer" +#line 1053 "parser.ypp" { yylhs.value.as < expr_integer::ptr > () = expr_integer::make(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3943 "parser.cpp" +#line 3975 "parser.cpp" break; - case 271: // expr_false: "false" -#line 1050 "parser.ypp" + case 273: // expr_false: "false" +#line 1058 "parser.ypp" { yylhs.value.as < expr_false::ptr > () = expr_false::make(yylhs.location); } -#line 3949 "parser.cpp" +#line 3981 "parser.cpp" break; - case 272: // expr_true: "true" -#line 1055 "parser.ypp" + case 274: // expr_true: "true" +#line 1063 "parser.ypp" { yylhs.value.as < expr_true::ptr > () = expr_true::make(yylhs.location); } -#line 3955 "parser.cpp" +#line 3987 "parser.cpp" break; -#line 3959 "parser.cpp" +#line 3991 "parser.cpp" default: break; @@ -4135,26 +4167,27 @@ namespace xsk { namespace arc { { "end of file", "error", "invalid token", "#", "/#", "#/", "#inline", "#include", "#using_animtree", "#animtree", "autoexec", "codecall", - "private", "endon", "notify", "wait", "waittill", "waittillmatch", - "waittillframeend", "if", "else", "do", "while", "for", "foreach", "in", - "switch", "case", "default", "break", "continue", "return", "prof_begin", - "prof_end", "thread", "true", "false", "undefined", "size", "game", - "self", "anim", "level", "const", "getnextarraykey", "getfirstarraykey", - "getdvarcoloralpha", "getdvarcolorblue", "getdvarcolorgreen", - "getdvarcolorred", "getdvarvector", "getdvarfloat", "getdvarint", - "getdvar", "gettime", "abs", "vectortoangles", "angleclamp180", - "anglestoforward", "anglestoright", "anglestoup", "vectorscale", - "isdefined", "(", ")", "{", "}", "[", "]", ",", ".", "..", "...", "::", - ":", ";", "?", "++", "--", "<<", ">>", "||", "&&", "==", "!=", "<=", - ">=", "<", ">", "!", "~", "=", "+=", "-=", "*=", "/=", "%=", "|=", "&=", - "^=", ">>=", "<<=", "|", "&", "^", "+", "-", "*", "/", "%", "path", - "identifier", "string literal", "localized string", "hash string", - "float", "integer", "SIZEOF", "THEN", "TERN", "NEG", "ANIMREF", "PREINC", - "PREDEC", "POSTINC", "POSTDEC", "$accept", "root", "program", "inline", - "include", "declaration", "decl_usingtree", "decl_function", "stmt", - "stmt_or_dev", "stmt_list", "stmt_or_dev_list", "stmt_dev", "stmt_comp", - "stmt_expr", "stmt_call", "stmt_const", "stmt_assign", "stmt_endon", - "stmt_notify", "stmt_wait", "stmt_waittill", "stmt_waittillmatch", + "private", "endon", "notify", "wait", "waitrealtime", "waittill", + "waittillmatch", "waittillframeend", "if", "else", "do", "while", "for", + "foreach", "in", "switch", "case", "default", "break", "continue", + "return", "prof_begin", "prof_end", "thread", "true", "false", + "undefined", "size", "game", "self", "anim", "level", "const", + "getnextarraykey", "getfirstarraykey", "getdvarcoloralpha", + "getdvarcolorblue", "getdvarcolorgreen", "getdvarcolorred", + "getdvarvector", "getdvarfloat", "getdvarint", "getdvar", "gettime", + "abs", "vectortoangles", "angleclamp180", "anglestoforward", + "anglestoright", "anglestoup", "vectorscale", "isdefined", "(", ")", "{", + "}", "[", "]", ",", ".", "..", "...", "::", ":", ";", "?", "++", "--", + "<<", ">>", "||", "&&", "==", "!=", "<=", ">=", "<", ">", "!", "~", "=", + "+=", "-=", "*=", "/=", "%=", "|=", "&=", "^=", ">>=", "<<=", "|", "&", + "^", "+", "-", "*", "/", "%", "path", "identifier", "string literal", + "localized string", "hash string", "float", "integer", "SIZEOF", "THEN", + "TERN", "NEG", "ANIMREF", "PREINC", "PREDEC", "POSTINC", "POSTDEC", + "$accept", "root", "program", "inline", "include", "declaration", + "decl_usingtree", "decl_function", "stmt", "stmt_or_dev", "stmt_list", + "stmt_or_dev_list", "stmt_dev", "stmt_comp", "stmt_expr", "stmt_call", + "stmt_const", "stmt_assign", "stmt_endon", "stmt_notify", "stmt_wait", + "stmt_waitrealtime", "stmt_waittill", "stmt_waittillmatch", "stmt_waittillframeend", "stmt_if", "stmt_ifelse", "stmt_while", "stmt_dowhile", "stmt_for", "stmt_foreach", "stmt_switch", "stmt_case", "stmt_default", "stmt_break", "stmt_continue", "stmt_return", @@ -4445,937 +4478,934 @@ namespace xsk { namespace arc { } - const short parser::yypact_ninf_ = -344; + const short parser::yypact_ninf_ = -394; - const short parser::yytable_ninf_ = -262; + const short parser::yytable_ninf_ = -264; const short parser::yypact_[] = { - 75, -344, -344, -20, -20, -47, -34, -34, -34, -344, - -344, -344, 35, 98, -344, -344, -344, -344, -344, -21, - -344, -344, -30, -17, -60, 9, 12, 15, -344, -344, - -344, -344, -344, -34, -344, -344, -344, 20, -34, -34, - -34, -35, -344, -27, 26, -18, -16, -2, 65, -34, - 1379, -344, 65, 65, 65, 1185, -344, -344, -27, -344, - -37, -344, -344, -344, -344, -344, -344, -344, 54, 64, - 76, 88, 89, 96, 99, 112, 115, 124, 134, 138, - 139, 140, 142, 143, 147, 159, 171, 1379, 80, -34, - 1379, 1379, 1416, 32, 148, -344, -344, -344, -344, 3221, - -344, -344, -344, -344, -344, -344, 166, 174, -344, -344, - -344, -344, -344, -344, -344, -344, 168, -344, -344, -344, - -344, -344, 170, 175, 178, 179, 182, 185, -344, -344, - 333, 364, -344, -344, 371, -344, -344, 577, 579, 593, - 635, -344, -344, -13, 165, -344, 183, -344, -344, -344, - -344, -344, -344, -344, -344, -344, 1629, 1379, 107, 193, - 1757, 194, 196, 197, 198, -75, 188, 190, 191, 821, - 205, 206, -34, -344, 207, -344, 1337, 1337, -344, -344, - 1565, -344, -344, -344, -344, -344, -344, -344, -344, -344, - -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, - -344, -344, -344, -344, -344, -344, 208, 212, 213, 214, - 215, 168, 170, 175, 178, 179, 182, 185, -344, -344, - 724, -344, -344, -344, -344, 218, 209, 226, 231, 224, - 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, - 238, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1797, - 1379, -344, -344, -344, -344, 1379, -344, -344, -344, -344, - 333, 364, -344, 672, -13, -344, 1379, 1379, 1379, 1379, - 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, - 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, - 1379, 1379, 1462, -15, -344, -344, 218, 1379, -34, 263, - -344, -344, -344, 1693, 1458, -344, 1379, 282, 1379, 1787, - -34, 1379, 189, 232, 233, -344, -344, -344, -344, 3173, - 1379, 1379, 217, 672, 672, -344, -344, -344, -344, -344, - -344, -344, -344, 249, 250, 252, 253, 210, -344, -344, - 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, - 1379, -34, 1379, 1379, -34, 3020, 1948, 1982, 1995, 2029, - 2042, 2076, 2089, 2123, 2136, -344, 2170, 2183, 2217, 2230, - 2264, 2277, 3061, 2311, -344, 1379, 2601, 2324, 3138, 109, - 109, 869, 1830, 938, 938, 87, 87, 87, 87, 1194, - 1876, 1206, 62, 62, -344, -344, -344, 2643, 2685, 2727, - 2769, 2811, 2853, 2895, 1296, 2937, -344, -344, -344, 3221, - 1, -344, 256, -344, -344, -344, -344, -344, 2358, 257, - 2371, 247, -344, -344, -344, 1061, -10, 2405, -344, -344, - -344, 2, 24, 1379, 1379, 1379, 1379, 1379, 3221, 3221, - 3221, 3221, 3221, 3221, 3221, 3221, 3221, 3221, 3221, 256, - 2979, 30, 265, 1379, -344, -344, -344, -344, -344, -344, - -344, -344, -344, -344, -344, -344, -344, -344, -344, 1379, - -344, 3102, 258, 1379, -344, -344, -344, -344, -344, -344, - -344, -344, -344, 1379, 1379, 1757, 1379, 1757, 1379, 1379, - -34, 65, 255, 261, 3208, 2418, 1843, 1889, 1935, 269, - -344, 1379, 2452, 2465, 1379, 276, 3221, 3221, 43, 313, - 2499, -344, 3221, 266, 2512, 315, -344, -344, -344, -344, - 267, 271, 1379, 273, 1379, 274, 1379, 281, 50, -344, - -344, 2546, 1379, -344, 1757, 275, 1787, 1757, 1379, -344, - -344, 283, 289, -344, 293, -344, 294, 1379, -344, -344, - 52, -344, -344, 296, -344, 2559, 286, 288, 290, 59, - -344, 1757, 1757, -344, -344, -344, -344, -344, -344 + 164, -394, -394, -84, -84, -30, -22, -22, -22, -394, + -394, -394, 43, 648, -394, -394, -394, -394, -394, -19, + -394, -394, -28, -26, -59, 1, 8, 19, -394, -394, + -394, -394, -394, -22, -394, -394, -394, 28, -22, -22, + -22, -14, -394, 10, 27, 9, 11, 12, 61, -22, + 1484, -394, 61, 61, 61, 1195, -394, -394, 10, -394, + -16, -394, -394, -394, -394, -394, -394, -394, 48, 66, + 68, 72, 77, 83, 89, 90, 101, 102, 115, 116, + 118, 122, 124, 127, 134, 135, 138, 1484, -11, -22, + 1484, 1484, 934, 13, 141, -394, -394, -394, -394, 3197, + -394, -394, -394, -394, -394, -394, -24, -4, -394, -394, + -394, -394, -394, -394, -394, -394, 121, -394, -394, -394, + -394, -394, 133, 140, 150, 151, 153, 155, -394, -394, + 2, 125, -394, -394, 219, -394, -394, 275, 320, 332, + 371, -394, -394, 7, 152, -394, 154, -394, -394, -394, + -394, -394, -394, -394, -394, -394, 1736, 1484, 1484, 148, + 145, 1866, 169, 171, 174, 175, -81, 166, 177, 179, + 1318, 186, 187, -22, -394, 192, -394, 1356, 1356, -394, + -394, 1671, -394, -394, -394, -394, -394, -394, -394, -394, + -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, + -394, -394, -394, -394, -394, -394, -394, -394, 188, 193, + 194, 198, 199, 121, 133, 140, 150, 151, 153, 155, + -394, -394, 853, -394, -394, -394, -394, 216, 189, 200, + 218, 209, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, + 1484, 1484, 197, 1484, 1484, 1484, 1484, 1484, 1484, 1484, + 1484, 1899, 1484, -394, -394, -394, -394, 1484, -394, -394, + -394, -394, 2, 125, -394, 399, 7, -394, 1484, 1484, + 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, + 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, + 1484, 1484, 1484, 1484, 1567, -15, -394, -394, 216, 1484, + -22, 245, -394, -394, -394, 1801, 798, 1062, -394, 1484, + 262, 1484, 1879, -22, 1484, 172, 211, 213, -394, -394, + -394, -394, 3149, 1484, 1484, 201, 399, 399, -394, -394, + -394, -394, -394, -394, -394, -394, 227, 228, 230, 231, + 185, -394, -394, 1484, 1484, 1484, 1484, 1484, 1484, 1484, + 1484, 1484, 1484, 1484, -22, 1484, 1484, -22, 2996, 2050, + 2084, 2097, 2131, 2144, 2178, 2191, 2225, 2238, -394, 2272, + 2285, 2319, 2332, 2366, 2379, 3037, 2413, -394, 1484, 1397, + 2426, 3114, 137, 137, 931, 1075, 610, 610, 512, 512, + 512, 512, 810, 1237, 1205, 41, 41, -394, -394, -394, + 1480, 1563, 2703, 2745, 2787, 2829, 2871, 1401, 2913, -394, + -394, -394, 3197, 15, -394, 235, -394, -394, -394, -394, + -394, -394, 2460, 238, 2473, 232, -394, -394, -394, 761, + -1, 2507, -394, -394, -394, 21, 34, 1484, 1484, 1484, + 1484, 1484, 3197, 3197, 3197, 3197, 3197, 3197, 3197, 3197, + 3197, 3197, 3197, 235, 2955, 36, 242, 1484, -394, -394, + -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, + -394, -394, -394, 1484, -394, 3078, 240, 1484, -394, -394, + -394, -394, -394, -394, -394, -394, -394, 1484, 1484, 1866, + 1484, 1866, 1484, 1484, -22, 61, 239, 241, 3184, 2520, + 1945, 1991, 2037, 252, -394, 1484, 2554, 2567, 1484, 258, + 3197, 3197, 40, 304, 2601, -394, 3197, 248, 2614, 302, + -394, -394, -394, -394, 253, 259, 1484, 260, 1484, 261, + 1484, 278, 46, -394, -394, 2648, 1484, -394, 1866, 263, + 1879, 1866, 1484, -394, -394, 277, 280, -394, 283, -394, + 284, 1484, -394, -394, 50, -394, -394, 287, -394, 2661, + 274, 286, 288, 59, -394, 1866, 1866, -394, -394, -394, + -394, -394, -394 }; const short parser::yydefact_[] = { - 3, 14, 15, 0, 0, 0, 0, 0, 0, 260, - 8, 259, 0, 2, 9, 10, 11, 16, 17, 0, - 262, 261, 0, 0, 0, 0, 0, 0, 1, 4, - 5, 6, 7, 202, 12, 13, 264, 0, 202, 202, - 202, 0, 200, 201, 0, 0, 0, 0, 0, 0, - 0, 18, 0, 0, 0, 0, 19, 198, 199, 257, - 0, 272, 271, 251, 252, 253, 254, 255, 0, 0, + 3, 14, 15, 0, 0, 0, 0, 0, 0, 262, + 8, 261, 0, 2, 9, 10, 11, 16, 17, 0, + 264, 263, 0, 0, 0, 0, 0, 0, 1, 4, + 5, 6, 7, 204, 12, 13, 266, 0, 204, 204, + 204, 0, 202, 203, 0, 0, 0, 0, 0, 0, + 0, 18, 0, 0, 0, 0, 19, 200, 201, 259, + 0, 274, 273, 253, 254, 255, 256, 257, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 259, 263, 266, 268, 270, 203, - 97, 98, 99, 136, 137, 138, 139, 140, 188, 189, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 0, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 0, 174, 175, 176, 177, 178, - 179, 180, 181, 20, 21, 22, 0, 0, 0, 0, + 0, 0, 0, 0, 261, 265, 268, 270, 272, 205, + 99, 100, 101, 138, 139, 140, 141, 142, 190, 191, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 0, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 0, 176, 177, 178, 179, 180, + 181, 182, 183, 20, 21, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 60, 0, 56, 0, 0, 47, 54, - 0, 48, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 0, 0, 0, 241, - 242, 0, 0, 0, 0, 0, 0, 0, 243, 244, - 0, 245, 246, 247, 248, 249, 0, 0, 0, 0, + 0, 0, 0, 0, 61, 0, 57, 0, 0, 48, + 55, 0, 49, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 0, 0, + 0, 243, 244, 0, 0, 0, 0, 0, 0, 0, + 245, 246, 0, 247, 248, 249, 250, 251, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 250, 227, 187, 182, 0, 267, 269, 241, 242, - 185, 186, 184, 0, 183, 256, 0, 0, 0, 0, + 0, 0, 0, 252, 229, 189, 184, 0, 269, 271, + 243, 244, 187, 188, 186, 0, 185, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 190, 191, 0, 205, 0, 0, - 58, 52, 50, 0, 0, 79, 0, 0, 0, 64, - 0, 0, 0, 0, 0, 90, 91, 92, 94, 0, - 205, 205, 0, 102, 104, 59, 55, 53, 69, 70, - 68, 65, 66, 0, 0, 0, 0, 0, 103, 105, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 205, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 218, 0, 0, 0, 0, - 0, 0, 0, 0, 240, 0, 0, 0, 0, 129, - 130, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 131, 132, 133, 134, 135, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 238, 258, 237, 207, - 0, 204, 228, 239, 57, 51, 49, 74, 0, 0, - 0, 0, 62, 63, 61, 0, 0, 0, 89, 88, - 93, 0, 0, 0, 0, 0, 0, 0, 106, 112, - 113, 114, 115, 116, 107, 108, 109, 111, 110, 0, - 0, 0, 0, 0, 209, 210, 211, 212, 213, 214, - 215, 216, 217, 219, 220, 221, 222, 223, 224, 0, - 226, 0, 0, 0, 230, 231, 232, 233, 234, 235, - 236, 229, 192, 0, 205, 0, 0, 0, 101, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 194, 205, 0, 0, 0, 0, 117, 206, 0, 80, - 0, 82, 100, 0, 0, 0, 87, 95, 96, 67, - 0, 0, 205, 0, 205, 0, 205, 0, 0, 208, - 225, 0, 205, 193, 0, 0, 64, 0, 0, 71, - 73, 0, 204, 76, 204, 78, 204, 205, 195, 265, - 0, 81, 83, 0, 85, 0, 0, 0, 0, 0, - 196, 0, 0, 72, 75, 77, 197, 84, 86 + 0, 0, 0, 0, 0, 0, 192, 193, 0, 207, + 0, 0, 59, 53, 51, 0, 0, 0, 81, 0, + 0, 0, 65, 0, 0, 0, 0, 0, 92, 93, + 94, 96, 0, 207, 207, 0, 104, 106, 60, 56, + 54, 70, 71, 69, 66, 67, 0, 0, 0, 0, + 0, 105, 107, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 207, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 220, 0, + 0, 0, 0, 0, 0, 0, 0, 242, 0, 0, + 0, 0, 131, 132, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 133, 134, 135, 136, 137, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 240, + 260, 239, 209, 0, 206, 230, 241, 58, 52, 50, + 75, 76, 0, 0, 0, 0, 63, 64, 62, 0, + 0, 0, 91, 90, 95, 0, 0, 0, 0, 0, + 0, 0, 108, 114, 115, 116, 117, 118, 109, 110, + 111, 113, 112, 0, 0, 0, 0, 0, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 221, 222, 223, + 224, 225, 226, 0, 228, 0, 0, 0, 232, 233, + 234, 235, 236, 237, 238, 231, 194, 0, 207, 0, + 0, 0, 103, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 196, 207, 0, 0, 0, 0, + 119, 208, 0, 82, 0, 84, 102, 0, 0, 0, + 89, 97, 98, 68, 0, 0, 207, 0, 207, 0, + 207, 0, 0, 210, 227, 0, 207, 195, 0, 0, + 65, 0, 0, 72, 74, 0, 206, 78, 206, 80, + 206, 207, 197, 267, 0, 83, 85, 0, 87, 0, + 0, 0, 0, 0, 198, 0, 0, 73, 77, 79, + 199, 86, 88 }; const short parser::yypgoto_[] = { - -344, -344, -344, 343, 351, 355, -344, -344, -142, 201, - -344, -344, -344, -26, -167, -344, -344, -344, -344, -344, - -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, - -344, -344, -344, -344, -344, -344, -344, -344, 835, -344, - -307, -306, -304, -344, -344, -344, -344, -344, -344, -45, - -36, -125, -98, 151, 321, -277, -343, -344, -344, -344, - -344, -344, -344, -31, -344, -344, -344, -344, -344, -23, - 63, 71, 119, 158, 199, -344, -344, 237, 270, -344, - 285, 292, -344, -344, 404, 460, 494, 502, -344, -344, - -344, 0, 8, -344, -7, -344, -344, -344, 220, -344, - -344 + -394, -394, -394, 340, 343, 348, -394, -394, -93, 182, + -394, -394, -394, -34, -174, -394, -394, -394, -394, -394, + -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, + -394, -394, -394, -394, -394, -394, -394, -394, -394, 843, + -394, -311, -310, -309, -394, -394, -394, -394, -394, -394, + -39, -33, -122, -113, 119, 321, -294, -393, -394, -394, + -394, -394, -394, -394, 29, -394, -394, -394, -394, -394, + 39, 71, 100, 142, 204, 212, -394, -394, 246, 285, + -394, 282, 303, -394, -394, 422, 467, 490, 533, -394, + -394, -394, 0, 6, -394, -20, -394, -394, -394, 203, + -394, -394 }; const short parser::yydefgoto_[] = { - 0, 12, 13, 14, 15, 16, 17, 18, 178, 179, - 303, 180, 181, 182, 421, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 409, 513, - 206, 207, 208, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 109, 41, 42, 541, 411, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 408, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152 + 0, 12, 13, 14, 15, 16, 17, 18, 179, 180, + 305, 181, 182, 183, 425, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 412, + 517, 208, 209, 210, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 41, 42, 545, 414, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 411, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152 }; const short parser::yytable_[] = { - 19, 9, 422, 423, 9, 424, 25, 26, 27, 294, - 209, 22, 23, 19, 302, 489, 24, 37, 307, 210, - 410, -249, 56, 406, 211, -249, 153, 154, 155, 48, - 227, 312, 212, 43, 49, 28, 295, 36, 43, 43, - 43, 98, 33, 431, 432, 34, 52, 258, 53, 58, - 297, 49, 36, 49, -249, 225, 259, -249, 35, 490, - 228, 211, 54, 226, 50, 482, 492, 49, 229, 212, - 483, 483, 38, 20, 94, 39, 451, 11, 40, 1, - 2, 3, 4, 5, 44, 6, 7, 8, 493, 252, - 20, 21, 264, 483, 500, 294, 407, -249, -249, 483, - 226, 51, 1, 2, 3, 4, 5, 533, 6, 7, - 8, 209, 483, 9, 548, 209, 560, 230, 213, 483, - 210, 483, 295, 566, 210, 211, 214, 231, 483, 211, - 55, 258, 258, 212, 296, 209, 9, 212, 294, 232, - 259, 259, 226, 265, 210, 211, 211, 250, 251, 211, - 10, 233, 234, 212, 212, 213, 225, 212, 313, 235, - 225, 416, 236, 214, 226, 295, 267, 268, 226, 282, - 283, 284, 322, 29, 215, 237, 225, 225, 238, 542, - 225, 544, 305, 546, 226, 226, 11, 239, 226, 45, - 46, 47, 280, 281, 282, 283, 284, 240, 294, 294, - -241, 241, 242, 243, -241, 244, 245, 508, -242, 11, - 246, 215, -242, 216, 280, 281, 282, 283, 284, 213, - 296, -261, 247, 213, 528, 295, 295, 214, 226, 422, - 423, 214, 424, -241, 248, 285, -241, 286, 298, 213, - 213, -242, 287, 213, -242, 288, 289, 214, 214, 290, - 216, 214, 291, 299, 217, 550, 306, 308, 209, 309, - 310, 311, 315, 296, 258, 316, 317, 210, 320, 321, - 559, 226, 211, 259, 250, 215, -241, -241, 211, 215, - 212, 297, 351, 328, -242, -242, 212, 329, 330, 331, - 332, 217, 218, 352, 353, 215, 215, 354, 412, 215, - 294, 413, 365, 225, 419, 257, 428, 429, 433, 225, - 426, 226, 434, 435, 216, 436, 437, 226, 216, 484, - 486, 407, 488, 296, 296, 219, 505, 295, 501, 260, - 517, 226, 226, 534, 216, 216, 518, 527, 216, 532, - 538, 536, 539, 509, 547, 511, 540, 220, 543, 545, - 552, 449, 483, 556, 452, 217, 30, 557, 558, 217, - 561, 563, 261, 564, 31, 565, 213, -243, 32, 553, - 57, -243, 213, 0, 214, 217, 217, 262, 0, 217, - 214, 327, 0, 0, 263, 314, 0, 0, 0, 0, - 0, 0, 551, 218, 0, 554, 0, 218, -244, 0, - -243, 0, -244, -243, 0, 60, 0, 0, 0, 9, - 0, 0, 0, 218, 218, 0, 0, 218, 0, 567, - 568, 0, 215, 0, 0, 296, 219, 0, 215, 0, - 219, -244, 0, 226, -244, 0, 0, 0, 292, 0, - 209, 293, 209, -243, -243, 0, 219, 219, 220, 210, - 219, 210, 220, 0, 211, 0, 211, 0, 0, 221, - 0, 216, 212, 0, 212, 516, 0, 216, 323, 324, - 0, 0, 220, 0, -244, -244, 0, 0, 0, 0, - 0, 20, 94, 0, 0, 225, 0, 225, 0, 209, - 515, 258, 209, 226, 0, 226, 221, 0, 210, 0, - 259, 210, 217, 211, 0, 211, 211, 0, 217, 0, - 0, 212, 0, 212, 212, 222, 209, 209, 0, 0, - 0, 0, 0, 0, 0, 210, 210, 0, 0, 0, - 211, 211, 0, 0, 225, 0, 225, 225, 212, 212, - 218, 0, 226, 0, 226, 226, 218, 0, 213, 223, - 213, 0, 222, 0, 0, 0, 214, 224, 214, 0, - 221, 225, 225, 0, 221, 0, 0, 0, 0, 226, - 226, 0, 0, 219, 0, 0, 0, 0, 0, 219, - 221, 221, 0, 0, 221, 0, 223, 0, 0, 0, - 0, 0, 0, 0, 224, 220, 0, 213, 0, 213, - 213, 425, 0, 0, 215, 214, 215, 214, 214, 0, - 0, -245, 0, -246, 0, -245, 222, -246, 0, 0, - 222, 0, 0, 0, 213, 213, 0, -247, 0, 0, - 0, -247, 214, 214, 0, 0, 222, 222, 0, 0, - 222, 0, 0, 216, -245, 216, -246, -245, 0, -246, - 223, 0, 0, 215, 223, 215, 215, 0, 224, 0, - -247, 0, 224, -247, 0, 0, 0, 0, 0, -248, - 223, 223, 0, -248, 223, 0, 0, 0, 224, 224, - 215, 215, 224, 0, 217, 0, 217, -245, -245, -246, - -246, 0, 216, 0, 216, 216, 0, 0, 0, 0, - 0, 0, -248, -247, -247, -248, 60, 221, 0, 0, - 9, 0, 0, 221, 0, 0, 0, 0, 0, 216, - 216, 0, 218, 0, 218, 0, 0, 0, 0, 0, - 0, 0, 0, 217, 0, 217, 217, 333, 334, 292, - 335, 336, 337, 0, 0, -248, -248, 0, 0, 0, - 0, 0, 0, 0, 0, 219, 0, 219, 60, 0, - 217, 217, 9, 222, 0, 0, 0, 0, 0, 222, - 0, 218, 0, 218, 218, 0, 0, 220, 0, 220, - 0, 0, 20, 94, 0, 0, 0, 0, 0, 0, - 0, 292, 0, 0, 337, 0, 0, 223, 218, 218, - 0, 338, 339, 223, 219, 224, 219, 219, 0, 0, - 0, 224, 0, 0, 0, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, 350, 220, 0, 425, 220, - 59, 219, 219, 0, 20, 94, 0, 0, 0, 0, + 19, 426, 427, 428, 37, 413, 25, 26, 27, 22, + 23, -243, 296, 19, 56, -243, 211, 9, 153, 154, + 155, 297, 212, 9, 409, 493, 315, 20, 21, 435, + 436, -244, 36, 43, 24, -244, 98, -245, 43, 43, + 43, -245, -251, 28, -243, 33, -251, -243, 34, 58, + 35, 48, 229, 260, 36, 227, 49, 252, 253, 261, + 230, 228, 455, 304, -244, 38, 231, -244, 310, 494, + -245, 299, 39, -245, 52, -251, 53, 54, -251, 49, + 486, 49, 49, 40, 213, 487, 496, -243, -243, 254, + 11, 487, 266, 44, 214, 20, 94, 410, 228, 497, + 296, 504, 50, 51, 487, 537, 487, -244, -244, 297, + 487, 552, 232, -245, -245, 564, 487, 211, -251, -251, + 487, 213, 211, 212, 570, 267, 215, 55, 212, 487, + 233, 214, 234, 546, 298, 548, 235, 550, 260, 260, + 228, 236, 211, 296, 261, 261, 316, 237, 212, 284, + 285, 286, 297, 238, 239, 216, 227, 45, 46, 47, + -246, 227, 228, 215, -246, 240, 241, 228, 1, 2, + 3, 4, 5, 325, 6, 7, 8, 227, 227, 242, + 243, 227, 244, 228, 228, 213, 245, 228, 246, 287, + 213, 247, 216, -246, 512, 214, -246, 217, 248, 249, + 214, 288, 250, 9, 296, 296, 213, 213, 289, 309, + 213, 532, 419, 297, 297, -263, 214, 214, 290, 291, + 214, 292, 298, 293, 308, 301, 300, 215, 228, 426, + 427, 428, 215, 311, 217, 312, -246, -246, 313, 314, + 10, 318, 554, 282, 283, 284, 285, 286, 215, 215, + 323, 324, 215, 319, 60, 320, 216, 563, 9, 218, + 252, 216, 368, 354, 331, 298, 211, 219, 355, 332, + 333, 228, 212, 260, 334, 335, 11, 216, 216, 261, + 299, 216, 356, 357, 416, 423, 432, 294, 433, 259, + 295, 438, 439, 437, 440, 441, 218, 410, 217, 488, + 415, 220, 490, 217, 219, 227, 505, 296, 492, 509, + -247, 228, 227, 430, -247, 521, 297, 522, 228, 217, + 217, 531, 536, 217, 540, 538, 298, 298, 542, 543, + 20, 94, 228, 228, 213, 544, 547, 549, 262, 556, + 221, 213, 551, -247, 214, 560, -247, 487, 561, 562, + 567, 214, 565, 30, 453, -248, 31, 456, 222, -248, + 218, 32, 568, 330, 569, 218, 557, -249, 219, 317, + 57, -249, 0, 219, 264, 0, 215, 263, 0, 0, + 0, 218, 218, 215, 0, 218, -247, -247, -248, 219, + 219, -248, 0, 219, 0, 265, 513, 0, 515, 0, + -249, 0, 220, -249, 0, 216, -250, 220, 0, 0, + -250, 0, 216, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 220, 220, 0, 0, 220, 0, 298, + 0, -248, -248, 0, 60, 228, 0, 0, 9, -250, + 0, 221, -250, -249, -249, 555, 221, 217, 558, 0, + 211, 0, 211, 0, 217, 0, 212, 0, 212, 222, + 0, 520, 221, 221, 222, 0, 221, 294, 0, 0, + 340, 0, 571, 572, 0, 0, 0, 223, 0, 0, + 326, 327, -250, -250, 222, 0, 0, 0, 0, 227, + 0, 227, 0, 0, 519, 228, 0, 228, 0, 211, + 0, 260, 211, 0, 0, 212, 0, 261, 212, 218, + 20, 94, 0, 0, 223, 0, 218, 219, 213, 0, + 213, 0, 224, 0, 219, 0, 211, 211, 214, 0, + 214, 0, 212, 212, 0, 0, 0, 0, 227, 0, + 227, 227, 0, 0, 228, 225, 228, 228, 0, 0, + 0, 220, 0, 0, 0, 0, 0, 0, 220, 224, + 215, 0, 215, 0, 0, 227, 227, 213, 0, 213, + 213, 228, 228, 0, 0, 0, 0, 214, 223, 214, + 214, 0, 225, 223, 0, 0, 0, 0, 226, 216, + 221, 216, 269, 270, 213, 213, 0, 221, 0, 223, + 223, 0, 0, 223, 214, 214, 0, 0, 222, 215, + 0, 215, 215, 0, 0, 429, 0, 0, 282, 283, + 284, 285, 286, 224, 0, 226, 0, 0, 224, 0, + 0, 217, 0, 217, 0, 0, 215, 215, 216, 0, + 216, 216, 0, 0, 224, 224, 225, 0, 224, 0, + 0, 225, 1, 2, 3, 4, 5, 0, 6, 7, + 8, 0, 0, 0, 0, 216, 216, 225, 225, 0, + 0, 225, 0, 0, 0, 0, 0, 0, 0, 0, + 217, 0, 217, 217, 0, 0, 0, 9, 0, 226, + 269, 270, 0, 218, 226, 218, 275, 276, 277, 278, + 0, 219, 0, 219, 0, 0, 0, 217, 217, 0, + 226, 226, 0, 0, 226, 0, 282, 283, 284, 285, + 286, 0, 0, 0, 29, 0, 0, 223, 0, 0, + 0, 0, 0, 0, 223, 220, 0, 220, 0, 0, + 0, 0, 218, 0, 218, 218, 0, 0, 0, 0, + 219, 0, 219, 219, 0, 0, 0, 0, 0, 0, + 11, 0, 0, 0, 0, 0, 0, 0, 0, 218, + 218, 0, 224, 0, 221, 0, 221, 219, 219, 224, + 0, 0, 0, 0, 220, 0, 220, 220, 0, 0, + 0, 0, 222, 0, 222, 225, 60, 0, 0, 0, + 9, 0, 225, 0, 0, 0, 0, 0, 0, 0, + 0, 220, 220, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 221, 0, 221, 221, 0, 0, 294, + 0, 0, 340, 0, 0, 0, 0, 0, 226, 341, + 342, 222, 0, 429, 222, 226, 0, 0, 0, 0, + 221, 221, 0, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 0, 0, 336, 337, 222, 222, + 338, 339, 20, 94, 420, 268, 0, 0, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 60, 0, + 269, 270, 9, 99, 273, 274, 275, 276, 277, 278, + 0, 279, 280, 281, 282, 283, 284, 285, 286, 0, + 0, 223, 0, 223, 280, 281, 282, 283, 284, 285, + 286, 294, 0, 0, 340, 0, 0, 0, 0, 0, + 251, 341, 342, 255, 256, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 224, 0, 224, 0, + 223, 0, 223, 223, 20, 94, 0, 0, 0, 60, + 0, 0, 0, 9, 64, 65, 66, 67, 0, 225, + 0, 225, 0, 0, 0, 74, 0, 223, 223, 0, + 0, 80, 81, 82, 83, 84, 85, 0, 257, 0, + 306, 307, 175, 0, 0, 224, 0, 224, 224, 0, + 0, 269, 270, 322, 272, 273, 274, 275, 276, 277, + 278, 0, 226, 0, 226, 0, 0, 0, 225, 0, + 225, 225, 224, 224, 279, 280, 281, 282, 283, 284, + 285, 286, 0, 0, 0, 20, 94, 0, 0, 0, + 258, 259, 0, 0, 0, 225, 225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 220, 220, 60, 61, 62, 63, 9, - 64, 65, 66, 67, 0, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 99, 0, 0, 88, 221, - 0, 221, 0, 0, 89, 0, 318, 0, 0, 0, + 0, 226, 0, 226, 226, 358, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 0, 369, 370, 371, 372, + 373, 374, 375, 376, 0, 379, 0, 0, 226, 226, + 380, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 408, 421, 268, + 0, 0, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 422, 0, 424, 269, 270, 431, 0, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 0, 0, 0, 0, 0, 279, 280, + 281, 282, 283, 284, 285, 286, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 0, 454, 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 90, 91, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 249, 0, 0, 253, 254, 92, 0, 0, - 93, 20, 94, 36, 95, 96, 97, 98, 221, 0, - 221, 221, 0, 0, 0, 222, 0, 222, 267, 268, - 0, 270, 271, 272, 273, 274, 275, 276, 0, 0, - 0, 0, 0, 0, 0, 221, 221, 0, 0, 0, - 0, 277, 278, 279, 280, 281, 282, 283, 284, 223, - 0, 223, 0, 0, 0, 0, 0, 224, 0, 224, - 0, 0, 304, 0, 222, 0, 222, 222, 0, 0, - 0, 0, 0, 0, 319, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 267, 268, 0, - 0, 222, 222, 273, 274, 275, 276, 0, 223, 0, - 223, 223, 0, 0, 0, 0, 224, 0, 224, 224, - 0, 0, 0, 280, 281, 282, 283, 284, 0, 0, - 0, 0, 0, 0, 0, 223, 223, 0, 0, 0, - 0, 0, 0, 224, 224, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 0, 366, 367, 368, 369, - 370, 371, 372, 373, 0, 376, 0, 0, 0, 0, - 377, 0, 0, 0, 0, 60, 0, 0, 0, 9, - 0, 378, 379, 380, 381, 382, 383, 384, 385, 386, - 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, - 397, 398, 399, 400, 401, 402, 403, 405, 292, 0, - 0, 337, 0, 0, 0, 0, 0, 0, 338, 339, - 0, 418, 0, 420, 0, 0, 427, 0, 0, 0, - 0, 0, 340, 341, 342, 343, 344, 345, 346, 347, - 348, 349, 350, 0, 0, 0, 0, 0, 0, 0, - 0, 20, 94, 0, 0, 438, 439, 440, 441, 442, - 443, 444, 445, 446, 447, 448, 0, 450, 0, 156, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 157, 0, 0, 158, 159, 0, 160, 161, 162, 163, - 471, 164, 165, 166, 167, 168, 169, 170, 171, 60, - 0, 0, 0, 9, 64, 65, 66, 67, 172, 0, - 0, 0, 0, 0, 0, 74, 0, 0, 0, 376, - 0, 80, 81, 82, 83, 84, 85, 0, 0, 0, - 55, 173, 174, 0, 0, 0, 0, 0, 0, 0, - 175, 0, 176, 177, 0, 0, 0, 0, 494, 495, - 496, 497, 498, 267, 268, 0, 0, 271, 272, 273, - 274, 275, 276, 0, 0, 267, 268, 0, 502, 271, - 272, 273, 274, 275, 276, 20, 94, 278, 279, 280, - 281, 282, 283, 284, 503, 59, 0, 0, 506, 278, - 0, 280, 281, 282, 283, 284, 0, 0, 507, 0, - 0, 510, 0, 512, 514, 0, 0, 0, 0, 0, - 60, 61, 62, 63, 9, 64, 65, 66, 67, 531, - 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 0, 0, 0, 404, 251, 0, 0, 0, 0, 89, - 0, 60, 0, 555, 0, 9, 64, 65, 66, 67, - 0, 0, 0, 0, 0, 90, 91, 74, 59, 0, - 0, 0, 0, 80, 81, 82, 83, 84, 85, 0, - 0, 0, 92, 0, 174, 93, 20, 94, 36, 95, - 96, 97, 98, 60, 61, 62, 63, 9, 64, 65, + 157, 158, 0, 0, 159, 160, 0, 161, 162, 163, + 164, 475, 165, 166, 167, 168, 169, 170, 171, 172, + 60, 0, 0, 0, 9, 64, 65, 66, 67, 173, + 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, + 379, 0, 80, 81, 82, 83, 84, 85, 0, 0, + 0, 55, 174, 175, 0, 0, 0, 0, 0, 0, + 0, 176, 0, 177, 178, 0, 0, 0, 0, 0, + 498, 499, 500, 501, 502, 269, 270, 0, 0, 273, + 274, 275, 276, 277, 278, 0, 0, 0, 0, 0, + 506, 0, 0, 0, 0, 0, 20, 94, 0, 280, + 0, 282, 283, 284, 285, 286, 507, 269, 270, 0, + 510, 273, 274, 275, 276, 277, 278, 59, 0, 0, + 511, 0, 0, 514, 0, 516, 518, 0, 0, 0, + 0, 0, 0, 282, 283, 284, 285, 286, 0, 0, + 0, 535, 0, 60, 61, 62, 63, 9, 64, 65, 66, 67, 0, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 0, 0, 0, 88, 20, 94, 0, - 60, 0, 89, 0, 9, 64, 65, 66, 67, 0, - 0, 0, 0, 0, 0, 0, 74, 0, 90, 91, - 0, 59, 80, 81, 82, 83, 84, 85, 0, 255, - 0, 0, 0, 174, 0, 92, 0, 0, 93, 20, + 85, 86, 87, 0, 0, 559, 88, 0, 0, 0, + 0, 60, 89, 0, 321, 9, 64, 65, 66, 67, + 0, 0, 0, 0, 0, 0, 0, 74, 90, 91, + 59, 0, 0, 80, 81, 82, 83, 84, 85, 0, + 0, 0, 0, 0, 175, 92, 0, 0, 93, 20, 94, 36, 95, 96, 97, 98, 60, 61, 62, 63, 9, 64, 65, 66, 67, 0, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 20, 94, 0, 404, - 0, 256, 257, 417, 266, 89, 0, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 0, 0, 0, - 0, 90, 91, 0, 0, 0, 0, 0, 0, 0, - 277, 278, 279, 280, 281, 282, 283, 284, 92, 156, - 0, 93, 20, 94, 36, 95, 96, 97, 98, 0, - 157, 0, 0, 158, 159, 0, 160, 161, 162, 163, - 0, 164, 165, 166, 167, 168, 169, 170, 171, 60, - 0, 0, 0, 9, 64, 65, 66, 67, 172, 0, - 0, 0, 0, 0, 0, 74, 0, 0, 0, 0, - 0, 80, 81, 82, 83, 84, 85, 0, 0, 0, - 55, 325, 174, 0, 300, 0, 0, 0, 0, 0, - 326, 0, 176, 177, 157, 0, 0, 158, 159, 0, - 160, 161, 162, 163, 0, 164, 165, 166, 167, 168, - 169, 170, 171, 60, 0, 0, 0, 9, 64, 65, - 66, 67, 172, 0, 0, 20, 94, 0, 0, 74, - 0, 0, 0, 0, 0, 80, 81, 82, 83, 84, - 85, 0, 0, 0, 55, 0, 174, 0, 414, 0, - 0, 0, 0, 0, 301, 0, 176, 177, 157, 0, - 0, 158, 159, 0, 160, 161, 162, 163, 0, 164, - 165, 166, 167, 168, 169, 170, 171, 60, 0, 0, - 0, 9, 64, 65, 66, 67, 172, 0, 0, 20, - 94, 0, 0, 74, 0, 0, 0, 0, 0, 80, - 81, 82, 83, 84, 85, 0, 0, 0, 55, 0, - 174, 0, 0, 0, 0, 0, 0, 0, 415, 0, - 176, 177, 157, 0, 0, 158, 159, 0, 160, 161, - 162, 163, 0, 164, 165, 166, 167, 168, 169, 170, - 171, 60, 0, 0, 0, 9, 64, 65, 66, 67, - 172, 0, 0, 20, 94, 0, 0, 74, 0, 0, - 0, 0, 0, 80, 81, 82, 83, 84, 85, 0, - 0, 60, 55, 0, 174, 9, 64, 65, 66, 67, - 0, 0, 0, 0, 176, 177, 0, 74, 0, 0, - 0, 0, 0, 80, 81, 82, 83, 84, 85, 0, - 0, 0, 0, 0, 174, 0, 0, 0, 0, 0, - 0, 374, 0, 0, 176, 177, 375, 20, 94, 0, - 0, 0, 0, 266, 0, 0, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 20, 94, 277, - 278, 279, 280, 281, 282, 283, 284, 521, 0, 267, - 268, 0, 522, 271, 272, 273, 274, 275, 276, 266, - 0, 0, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 0, 0, 0, 0, 0, 277, 278, 279, 280, 281, - 282, 283, 284, 523, 0, 267, 268, 0, 524, 271, - 272, 273, 274, 275, 276, 266, 0, 0, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 0, 0, - 0, 280, 281, 282, 283, 284, 0, 0, 0, 0, - 0, 277, 278, 279, 280, 281, 282, 283, 284, 525, - 0, 0, 0, 0, 526, 0, 0, 0, 0, 0, - 0, 266, 454, 0, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 266, 0, 0, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 0, 455, 0, 0, 0, - 277, 278, 279, 280, 281, 282, 283, 284, 266, 456, - 0, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 266, 0, 0, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 0, 457, 0, 0, 0, 277, 278, 279, - 280, 281, 282, 283, 284, 266, 458, 0, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 266, 0, - 0, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 280, 281, 282, 283, 284, 0, - 459, 0, 0, 0, 277, 278, 279, 280, 281, 282, - 283, 284, 266, 460, 0, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 266, 0, 0, 267, 268, + 82, 83, 84, 85, 86, 87, 476, 20, 94, 407, + 253, 0, 0, 0, 268, 89, 0, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 0, 0, 0, + 0, 90, 91, 59, 0, 0, 0, 0, 0, 0, + 279, 280, 281, 282, 283, 284, 285, 286, 92, 0, + 0, 93, 20, 94, 36, 95, 96, 97, 98, 60, + 61, 62, 63, 9, 64, 65, 66, 67, 0, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 478, + 0, 0, 88, 0, 0, 0, 0, 268, 89, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 0, 461, 0, 0, - 0, 277, 278, 279, 280, 281, 282, 283, 284, 266, - 462, 0, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 266, 0, 0, 267, 268, 269, 270, 271, + 0, 0, 0, 0, 90, 91, 59, 0, 0, 0, + 0, 0, 0, 279, 280, 281, 282, 283, 284, 285, + 286, 92, 0, 0, 93, 20, 94, 36, 95, 96, + 97, 98, 60, 61, 62, 63, 9, 64, 65, 66, + 67, 0, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 479, 0, 0, 407, 0, 0, 0, 0, + 268, 89, 0, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 0, 0, 0, 0, 90, 91, 0, + 0, 0, 0, 0, 0, 0, 279, 280, 281, 282, + 283, 284, 285, 286, 92, 156, 0, 93, 20, 94, + 36, 95, 96, 97, 98, 0, 157, 158, 0, 0, + 159, 160, 0, 161, 162, 163, 164, 0, 165, 166, + 167, 168, 169, 170, 171, 172, 60, 0, 0, 0, + 9, 64, 65, 66, 67, 173, 0, 0, 0, 0, + 0, 0, 74, 0, 0, 0, 0, 0, 80, 81, + 82, 83, 84, 85, 0, 0, 0, 55, 328, 175, + 0, 302, 0, 0, 0, 0, 0, 329, 0, 177, + 178, 157, 158, 0, 0, 159, 160, 0, 161, 162, + 163, 164, 0, 165, 166, 167, 168, 169, 170, 171, + 172, 60, 0, 0, 0, 9, 64, 65, 66, 67, + 173, 0, 20, 94, 0, 0, 0, 74, 0, 0, + 0, 0, 0, 80, 81, 82, 83, 84, 85, 0, + 0, 0, 55, 0, 175, 0, 417, 0, 0, 0, + 0, 0, 303, 0, 177, 178, 157, 158, 0, 0, + 159, 160, 0, 161, 162, 163, 164, 0, 165, 166, + 167, 168, 169, 170, 171, 172, 60, 0, 0, 0, + 9, 64, 65, 66, 67, 173, 0, 20, 94, 0, + 0, 0, 74, 0, 0, 0, 0, 0, 80, 81, + 82, 83, 84, 85, 0, 0, 0, 55, 0, 175, + 0, 0, 0, 0, 0, 0, 0, 418, 0, 177, + 178, 157, 158, 0, 0, 159, 160, 0, 161, 162, + 163, 164, 0, 165, 166, 167, 168, 169, 170, 171, + 172, 60, 0, 0, 0, 9, 64, 65, 66, 67, + 173, 0, 20, 94, 60, 0, 0, 74, 9, 64, + 65, 66, 67, 80, 81, 82, 83, 84, 85, 0, + 74, 0, 55, 0, 175, 0, 80, 81, 82, 83, + 84, 85, 0, 0, 177, 178, 0, 175, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 177, 178, 0, + 0, 0, 0, 0, 377, 0, 0, 0, 0, 378, + 0, 0, 0, 0, 0, 0, 268, 20, 94, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, + 20, 94, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 279, 280, 281, 282, 283, 284, 285, 286, + 525, 0, 0, 0, 0, 526, 0, 0, 0, 0, + 0, 0, 268, 0, 0, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 279, 280, + 281, 282, 283, 284, 285, 286, 527, 0, 0, 0, + 0, 528, 0, 0, 0, 0, 0, 0, 268, 0, + 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 279, 280, 281, 282, 283, 284, + 285, 286, 529, 0, 0, 0, 0, 530, 0, 0, + 0, 0, 0, 0, 268, 458, 0, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 268, 0, 0, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 0, 459, + 0, 0, 0, 279, 280, 281, 282, 283, 284, 285, + 286, 268, 460, 0, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 268, 0, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, - 282, 283, 284, 0, 463, 0, 0, 0, 277, 278, - 279, 280, 281, 282, 283, 284, 266, 464, 0, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 266, - 0, 0, 267, 268, 269, 270, 271, 272, 273, 274, + 282, 283, 284, 285, 286, 0, 461, 0, 0, 0, + 279, 280, 281, 282, 283, 284, 285, 286, 268, 462, + 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 268, 0, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 0, 465, 0, 0, 0, 277, 278, 279, 280, 281, - 282, 283, 284, 266, 466, 0, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 266, 0, 0, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 280, 281, 282, 283, 284, 0, 467, 0, - 0, 0, 277, 278, 279, 280, 281, 282, 283, 284, - 266, 468, 0, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 266, 0, 0, 267, 268, 269, 270, + 285, 286, 0, 463, 0, 0, 0, 279, 280, 281, + 282, 283, 284, 285, 286, 268, 464, 0, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 268, 0, + 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 0, + 465, 0, 0, 0, 279, 280, 281, 282, 283, 284, + 285, 286, 268, 466, 0, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 268, 0, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 0, 470, 0, 0, 0, 277, - 278, 279, 280, 281, 282, 283, 284, 266, 374, 0, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 266, 0, 0, 267, 268, 269, 270, 271, 272, 273, + 281, 282, 283, 284, 285, 286, 0, 467, 0, 0, + 0, 279, 280, 281, 282, 283, 284, 285, 286, 268, + 468, 0, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 268, 0, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 0, 485, 0, 0, 0, 277, 278, 279, 280, - 281, 282, 283, 284, 266, 487, 0, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 266, 0, 0, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 0, 491, - 0, 0, 0, 277, 278, 279, 280, 281, 282, 283, - 284, 266, 520, 0, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 266, 0, 0, 267, 268, 269, + 284, 285, 286, 0, 469, 0, 0, 0, 279, 280, + 281, 282, 283, 284, 285, 286, 268, 470, 0, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 268, + 0, 0, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 0, 471, 0, 0, 0, 279, 280, 281, 282, 283, + 284, 285, 286, 268, 472, 0, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 268, 0, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 0, 529, 0, 0, 0, - 277, 278, 279, 280, 281, 282, 283, 284, 266, 530, - 0, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 266, 0, 0, 267, 268, 269, 270, 271, 272, + 280, 281, 282, 283, 284, 285, 286, 0, 474, 0, + 0, 0, 279, 280, 281, 282, 283, 284, 285, 286, + 268, 377, 0, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 268, 0, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 0, 535, 0, 0, 0, 277, 278, 279, - 280, 281, 282, 283, 284, 266, 537, 0, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 266, 0, - 0, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 280, 281, 282, 283, 284, 0, - 549, 0, 0, 0, 277, 278, 279, 280, 281, 282, - 283, 284, 266, 562, 0, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 266, 0, 0, 267, 268, + 283, 284, 285, 286, 0, 489, 0, 0, 0, 279, + 280, 281, 282, 283, 284, 285, 286, 268, 491, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 0, 0, 0, 0, - 0, 277, 278, 279, 280, 281, 282, 283, 284, 472, - 0, 0, 0, 0, 0, 0, 0, 266, 0, 0, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 268, 0, 0, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 0, 495, 0, 0, 0, 279, 280, 281, 282, + 283, 284, 285, 286, 268, 524, 0, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 268, 0, 0, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 0, 533, + 0, 0, 0, 279, 280, 281, 282, 283, 284, 285, + 286, 268, 534, 0, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 268, 0, 0, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 0, 539, 0, 0, 0, + 279, 280, 281, 282, 283, 284, 285, 286, 268, 541, + 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 268, 0, 0, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 0, 553, 0, 0, 0, 279, 280, 281, + 282, 283, 284, 285, 286, 268, 566, 0, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 268, 0, + 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 0, + 0, 0, 0, 0, 279, 280, 281, 282, 283, 284, + 285, 286, 480, 0, 0, 0, 0, 0, 0, 0, + 268, 0, 0, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 279, 280, 281, 282, + 283, 284, 285, 286, 481, 0, 0, 0, 0, 0, + 0, 0, 268, 0, 0, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 279, 280, + 281, 282, 283, 284, 285, 286, 482, 0, 0, 0, + 0, 0, 0, 0, 268, 0, 0, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 277, 278, 279, 280, 281, 282, 283, - 284, 474, 0, 0, 0, 0, 0, 0, 0, 266, - 0, 0, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 277, 278, 279, 280, 281, - 282, 283, 284, 475, 0, 0, 0, 0, 0, 0, - 0, 266, 0, 0, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 277, 278, 279, - 280, 281, 282, 283, 284, 476, 0, 0, 0, 0, - 0, 0, 0, 266, 0, 0, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 277, - 278, 279, 280, 281, 282, 283, 284, 477, 0, 0, - 0, 0, 0, 0, 0, 266, 0, 0, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 0, 0, + 279, 280, 281, 282, 283, 284, 285, 286, 483, 0, + 0, 0, 0, 0, 0, 0, 268, 0, 0, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 277, 278, 279, 280, 281, 282, 283, 284, 478, - 0, 0, 0, 0, 0, 0, 0, 266, 0, 0, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 0, 0, 279, 280, 281, 282, 283, 284, 285, 286, + 484, 0, 0, 0, 0, 0, 0, 0, 268, 0, + 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 279, 280, 281, 282, 283, 284, + 285, 286, 485, 0, 0, 0, 0, 0, 0, 0, + 268, 0, 0, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 279, 280, 281, 282, + 283, 284, 285, 286, 503, 0, 0, 0, 0, 0, + 0, 0, 268, 0, 0, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 279, 280, + 281, 282, 283, 284, 285, 286, 457, 0, 0, 0, + 0, 0, 0, 268, 0, 0, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 279, + 280, 281, 282, 283, 284, 285, 286, 473, 0, 0, + 0, 0, 0, 0, 268, 0, 0, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 277, 278, 279, 280, 281, 282, 283, - 284, 479, 0, 0, 0, 0, 0, 0, 0, 266, - 0, 0, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 277, 278, 279, 280, 281, - 282, 283, 284, 480, 0, 0, 0, 0, 0, 0, - 0, 266, 0, 0, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 277, 278, 279, - 280, 281, 282, 283, 284, 481, 0, 0, 0, 0, - 0, 0, 0, 266, 0, 0, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 277, - 278, 279, 280, 281, 282, 283, 284, 499, 0, 0, - 0, 0, 0, 0, 0, 266, 0, 0, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 0, 0, + 279, 280, 281, 282, 283, 284, 285, 286, 508, 0, + 0, 0, 0, 0, 0, 268, 0, 0, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 277, 278, 279, 280, 281, 282, 283, 284, 453, - 0, 0, 0, 0, 0, 0, 266, 0, 0, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 0, + 0, 279, 280, 281, 282, 283, 284, 285, 286, 477, + 0, 268, 0, 0, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 279, 280, 281, + 282, 283, 284, 285, 286, 434, 268, 0, 0, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 277, 278, 279, 280, 281, 282, 283, 284, - 469, 0, 0, 0, 0, 0, 0, 266, 0, 0, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 277, 278, 279, 280, 281, 282, 283, - 284, 504, 0, 0, 0, 0, 0, 0, 266, 0, - 0, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 277, 278, 279, 280, 281, 282, - 283, 284, 473, 0, 266, 0, 0, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 277, 278, 279, 280, 281, 282, 283, 284, 430, 266, - 0, 0, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 277, 278, 279, 280, 281, - 282, 283, 284, 519, 266, 0, 0, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 266, 0, 0, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 0, 0, - 0, 0, 0, 277, 278, 279, 280, 281, 282, 283, - 284 + 0, 0, 279, 280, 281, 282, 283, 284, 285, 286, + 523, 268, 0, 0, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 268, 0, 0, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 0, 0, 0, 0, 0, + 279, 280, 281, 282, 283, 284, 285, 286 }; const short parser::yycheck_[] = { - 0, 38, 309, 309, 38, 309, 6, 7, 8, 134, - 55, 3, 4, 13, 156, 25, 63, 24, 160, 55, - 297, 34, 48, 38, 55, 38, 52, 53, 54, 64, - 67, 106, 55, 33, 69, 0, 134, 112, 38, 39, - 40, 116, 63, 320, 321, 75, 64, 92, 64, 49, - 63, 69, 112, 69, 67, 55, 92, 70, 75, 69, - 60, 92, 64, 55, 91, 64, 64, 69, 60, 92, - 69, 69, 63, 110, 111, 63, 353, 111, 63, 4, - 5, 6, 7, 8, 64, 10, 11, 12, 64, 89, - 110, 111, 92, 69, 64, 220, 111, 110, 111, 69, - 92, 75, 4, 5, 6, 7, 8, 64, 10, 11, - 12, 156, 69, 38, 64, 160, 64, 63, 55, 69, - 156, 69, 220, 64, 160, 156, 55, 63, 69, 160, - 65, 176, 177, 156, 134, 180, 38, 160, 263, 63, - 176, 177, 134, 111, 180, 176, 177, 67, 68, 180, - 75, 63, 63, 176, 177, 92, 156, 180, 165, 63, - 160, 303, 63, 92, 156, 263, 79, 80, 160, 107, - 108, 109, 172, 75, 55, 63, 176, 177, 63, 522, - 180, 524, 75, 526, 176, 177, 111, 63, 180, 38, - 39, 40, 105, 106, 107, 108, 109, 63, 323, 324, - 34, 63, 63, 63, 38, 63, 63, 484, 34, 111, - 63, 92, 38, 55, 105, 106, 107, 108, 109, 156, - 220, 73, 63, 160, 501, 323, 324, 156, 220, 536, - 536, 160, 536, 67, 63, 67, 70, 67, 73, 176, - 177, 67, 67, 180, 70, 67, 67, 176, 177, 67, - 92, 180, 67, 70, 55, 532, 63, 63, 303, 63, - 63, 63, 74, 263, 309, 75, 75, 303, 63, 63, - 547, 263, 303, 309, 67, 156, 110, 111, 309, 160, - 303, 63, 73, 75, 110, 111, 309, 75, 75, 75, - 75, 92, 55, 67, 63, 176, 177, 73, 298, 180, - 425, 38, 64, 303, 22, 116, 74, 74, 91, 309, - 310, 303, 63, 63, 156, 63, 63, 309, 160, 63, - 63, 111, 75, 323, 324, 55, 68, 425, 63, 92, - 75, 323, 324, 20, 176, 177, 75, 68, 180, 63, - 25, 75, 75, 485, 63, 487, 75, 55, 75, 75, - 75, 351, 69, 64, 354, 156, 13, 64, 64, 160, - 64, 75, 92, 75, 13, 75, 303, 34, 13, 536, - 49, 38, 309, -1, 303, 176, 177, 92, -1, 180, - 309, 180, -1, -1, 92, 165, -1, -1, -1, -1, - -1, -1, 534, 156, -1, 537, -1, 160, 34, -1, - 67, -1, 38, 70, -1, 34, -1, -1, -1, 38, - -1, -1, -1, 176, 177, -1, -1, 180, -1, 561, - 562, -1, 303, -1, -1, 425, 156, -1, 309, -1, - 160, 67, -1, 425, 70, -1, -1, -1, 67, -1, - 485, 70, 487, 110, 111, -1, 176, 177, 156, 485, - 180, 487, 160, -1, 485, -1, 487, -1, -1, 55, - -1, 303, 485, -1, 487, 491, -1, 309, 176, 177, - -1, -1, 180, -1, 110, 111, -1, -1, -1, -1, - -1, 110, 111, -1, -1, 485, -1, 487, -1, 534, - 490, 536, 537, 485, -1, 487, 92, -1, 534, -1, - 536, 537, 303, 534, -1, 536, 537, -1, 309, -1, - -1, 534, -1, 536, 537, 55, 561, 562, -1, -1, - -1, -1, -1, -1, -1, 561, 562, -1, -1, -1, - 561, 562, -1, -1, 534, -1, 536, 537, 561, 562, - 303, -1, 534, -1, 536, 537, 309, -1, 485, 55, - 487, -1, 92, -1, -1, -1, 485, 55, 487, -1, - 156, 561, 562, -1, 160, -1, -1, -1, -1, 561, - 562, -1, -1, 303, -1, -1, -1, -1, -1, 309, - 176, 177, -1, -1, 180, -1, 92, -1, -1, -1, - -1, -1, -1, -1, 92, 303, -1, 534, -1, 536, - 537, 309, -1, -1, 485, 534, 487, 536, 537, -1, - -1, 34, -1, 34, -1, 38, 156, 38, -1, -1, - 160, -1, -1, -1, 561, 562, -1, 34, -1, -1, - -1, 38, 561, 562, -1, -1, 176, 177, -1, -1, - 180, -1, -1, 485, 67, 487, 67, 70, -1, 70, - 156, -1, -1, 534, 160, 536, 537, -1, 156, -1, - 67, -1, 160, 70, -1, -1, -1, -1, -1, 34, - 176, 177, -1, 38, 180, -1, -1, -1, 176, 177, - 561, 562, 180, -1, 485, -1, 487, 110, 111, 110, - 111, -1, 534, -1, 536, 537, -1, -1, -1, -1, - -1, -1, 67, 110, 111, 70, 34, 303, -1, -1, - 38, -1, -1, 309, -1, -1, -1, -1, -1, 561, - 562, -1, 485, -1, 487, -1, -1, -1, -1, -1, - -1, -1, -1, 534, -1, 536, 537, 13, 14, 67, - 16, 17, 70, -1, -1, 110, 111, -1, -1, -1, - -1, -1, -1, -1, -1, 485, -1, 487, 34, -1, - 561, 562, 38, 303, -1, -1, -1, -1, -1, 309, - -1, 534, -1, 536, 537, -1, -1, 485, -1, 487, - -1, -1, 110, 111, -1, -1, -1, -1, -1, -1, - -1, 67, -1, -1, 70, -1, -1, 303, 561, 562, - -1, 77, 78, 309, 534, 303, 536, 537, -1, -1, - -1, 309, -1, -1, -1, 91, 92, 93, 94, 95, - 96, 97, 98, 99, 100, 101, 534, -1, 536, 537, - 9, 561, 562, -1, 110, 111, -1, -1, -1, -1, + 0, 312, 312, 312, 24, 299, 6, 7, 8, 3, + 4, 35, 134, 13, 48, 39, 55, 39, 52, 53, + 54, 134, 55, 39, 39, 26, 107, 111, 112, 323, + 324, 35, 113, 33, 64, 39, 117, 35, 38, 39, + 40, 39, 35, 0, 68, 64, 39, 71, 76, 49, + 76, 65, 68, 92, 113, 55, 70, 68, 69, 92, + 60, 55, 356, 156, 68, 64, 60, 71, 161, 70, + 68, 64, 64, 71, 65, 68, 65, 65, 71, 70, + 65, 70, 70, 64, 55, 70, 65, 111, 112, 89, + 112, 70, 92, 65, 55, 111, 112, 112, 92, 65, + 222, 65, 92, 76, 70, 65, 70, 111, 112, 222, + 70, 65, 64, 111, 112, 65, 70, 156, 111, 112, + 70, 92, 161, 156, 65, 112, 55, 66, 161, 70, + 64, 92, 64, 526, 134, 528, 64, 530, 177, 178, + 134, 64, 181, 265, 177, 178, 166, 64, 181, 108, + 109, 110, 265, 64, 64, 55, 156, 38, 39, 40, + 35, 161, 156, 92, 39, 64, 64, 161, 4, 5, + 6, 7, 8, 173, 10, 11, 12, 177, 178, 64, + 64, 181, 64, 177, 178, 156, 64, 181, 64, 68, + 161, 64, 92, 68, 488, 156, 71, 55, 64, 64, + 161, 68, 64, 39, 326, 327, 177, 178, 68, 64, + 181, 505, 305, 326, 327, 74, 177, 178, 68, 68, + 181, 68, 222, 68, 76, 71, 74, 156, 222, 540, + 540, 540, 161, 64, 92, 64, 111, 112, 64, 64, + 76, 75, 536, 106, 107, 108, 109, 110, 177, 178, + 64, 64, 181, 76, 35, 76, 156, 551, 39, 55, + 68, 161, 65, 74, 76, 265, 305, 55, 68, 76, + 76, 265, 305, 312, 76, 76, 112, 177, 178, 312, + 64, 181, 64, 74, 39, 23, 75, 68, 75, 117, + 71, 64, 64, 92, 64, 64, 92, 112, 156, 64, + 300, 55, 64, 161, 92, 305, 64, 429, 76, 69, + 35, 305, 312, 313, 39, 76, 429, 76, 312, 177, + 178, 69, 64, 181, 76, 21, 326, 327, 26, 76, + 111, 112, 326, 327, 305, 76, 76, 76, 92, 76, + 55, 312, 64, 68, 305, 65, 71, 70, 65, 65, + 76, 312, 65, 13, 354, 35, 13, 357, 55, 39, + 156, 13, 76, 181, 76, 161, 540, 35, 156, 166, + 49, 39, -1, 161, 92, -1, 305, 92, -1, -1, + -1, 177, 178, 312, -1, 181, 111, 112, 68, 177, + 178, 71, -1, 181, -1, 92, 489, -1, 491, -1, + 68, -1, 156, 71, -1, 305, 35, 161, -1, -1, + 39, -1, 312, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 177, 178, -1, -1, 181, -1, 429, + -1, 111, 112, -1, 35, 429, -1, -1, 39, 68, + -1, 156, 71, 111, 112, 538, 161, 305, 541, -1, + 489, -1, 491, -1, 312, -1, 489, -1, 491, 156, + -1, 495, 177, 178, 161, -1, 181, 68, -1, -1, + 71, -1, 565, 566, -1, -1, -1, 55, -1, -1, + 177, 178, 111, 112, 181, -1, -1, -1, -1, 489, + -1, 491, -1, -1, 494, 489, -1, 491, -1, 538, + -1, 540, 541, -1, -1, 538, -1, 540, 541, 305, + 111, 112, -1, -1, 92, -1, 312, 305, 489, -1, + 491, -1, 55, -1, 312, -1, 565, 566, 489, -1, + 491, -1, 565, 566, -1, -1, -1, -1, 538, -1, + 540, 541, -1, -1, 538, 55, 540, 541, -1, -1, + -1, 305, -1, -1, -1, -1, -1, -1, 312, 92, + 489, -1, 491, -1, -1, 565, 566, 538, -1, 540, + 541, 565, 566, -1, -1, -1, -1, 538, 156, 540, + 541, -1, 92, 161, -1, -1, -1, -1, 55, 489, + 305, 491, 80, 81, 565, 566, -1, 312, -1, 177, + 178, -1, -1, 181, 565, 566, -1, -1, 305, 538, + -1, 540, 541, -1, -1, 312, -1, -1, 106, 107, + 108, 109, 110, 156, -1, 92, -1, -1, 161, -1, + -1, 489, -1, 491, -1, -1, 565, 566, 538, -1, + 540, 541, -1, -1, 177, 178, 156, -1, 181, -1, + -1, 161, 4, 5, 6, 7, 8, -1, 10, 11, + 12, -1, -1, -1, -1, 565, 566, 177, 178, -1, + -1, 181, -1, -1, -1, -1, -1, -1, -1, -1, + 538, -1, 540, 541, -1, -1, -1, 39, -1, 156, + 80, 81, -1, 489, 161, 491, 86, 87, 88, 89, + -1, 489, -1, 491, -1, -1, -1, 565, 566, -1, + 177, 178, -1, -1, 181, -1, 106, 107, 108, 109, + 110, -1, -1, -1, 76, -1, -1, 305, -1, -1, + -1, -1, -1, -1, 312, 489, -1, 491, -1, -1, + -1, -1, 538, -1, 540, 541, -1, -1, -1, -1, + 538, -1, 540, 541, -1, -1, -1, -1, -1, -1, + 112, -1, -1, -1, -1, -1, -1, -1, -1, 565, + 566, -1, 305, -1, 489, -1, 491, 565, 566, 312, + -1, -1, -1, -1, 538, -1, 540, 541, -1, -1, + -1, -1, 489, -1, 491, 305, 35, -1, -1, -1, + 39, -1, 312, -1, -1, -1, -1, -1, -1, -1, + -1, 565, 566, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 538, -1, 540, 541, -1, -1, 68, + -1, -1, 71, -1, -1, -1, -1, -1, 305, 78, + 79, 538, -1, 540, 541, 312, -1, -1, -1, -1, + 565, 566, -1, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, -1, -1, 13, 14, 565, 566, + 17, 18, 111, 112, 76, 77, -1, -1, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 35, -1, + 80, 81, 39, 50, 84, 85, 86, 87, 88, 89, + -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, + -1, 489, -1, 491, 104, 105, 106, 107, 108, 109, + 110, 68, -1, -1, 71, -1, -1, -1, -1, -1, + 87, 78, 79, 90, 91, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 489, -1, 491, -1, + 538, -1, 540, 541, 111, 112, -1, -1, -1, 35, + -1, -1, -1, 39, 40, 41, 42, 43, -1, 489, + -1, 491, -1, -1, -1, 51, -1, 565, 566, -1, + -1, 57, 58, 59, 60, 61, 62, -1, 64, -1, + 157, 158, 68, -1, -1, 538, -1, 540, 541, -1, + -1, 80, 81, 170, 83, 84, 85, 86, 87, 88, + 89, -1, 489, -1, 491, -1, -1, -1, 538, -1, + 540, 541, 565, 566, 103, 104, 105, 106, 107, 108, + 109, 110, -1, -1, -1, 111, 112, -1, -1, -1, + 116, 117, -1, -1, -1, 565, 566, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 561, 562, 34, 35, 36, 37, 38, - 39, 40, 41, 42, -1, 44, 45, 46, 47, 48, + -1, 538, -1, 540, 541, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, -1, 243, 244, 245, 246, + 247, 248, 249, 250, -1, 252, -1, -1, 565, 566, + 257, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 76, 77, + -1, -1, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 309, -1, 311, 80, 81, 314, -1, 84, + 85, 86, 87, 88, 89, 103, 104, 105, 106, 107, + 108, 109, 110, -1, -1, -1, -1, -1, 103, 104, + 105, 106, 107, 108, 109, 110, 343, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, -1, 355, 4, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 15, 16, -1, -1, 19, 20, -1, 22, 23, 24, + 25, 378, 27, 28, 29, 30, 31, 32, 33, 34, + 35, -1, -1, -1, 39, 40, 41, 42, 43, 44, + -1, -1, -1, -1, -1, -1, 51, -1, -1, -1, + 407, -1, 57, 58, 59, 60, 61, 62, -1, -1, + -1, 66, 67, 68, -1, -1, -1, -1, -1, -1, + -1, 76, -1, 78, 79, -1, -1, -1, -1, -1, + 437, 438, 439, 440, 441, 80, 81, -1, -1, 84, + 85, 86, 87, 88, 89, -1, -1, -1, -1, -1, + 457, -1, -1, -1, -1, -1, 111, 112, -1, 104, + -1, 106, 107, 108, 109, 110, 473, 80, 81, -1, + 477, 84, 85, 86, 87, 88, 89, 9, -1, -1, + 487, -1, -1, 490, -1, 492, 493, -1, -1, -1, + -1, -1, -1, 106, 107, 108, 109, 110, -1, -1, + -1, 508, -1, 35, 36, 37, 38, 39, 40, 41, + 42, 43, -1, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, -1, -1, 542, 68, -1, -1, -1, + -1, 35, 74, -1, 76, 39, 40, 41, 42, 43, + -1, -1, -1, -1, -1, -1, -1, 51, 90, 91, + 9, -1, -1, 57, 58, 59, 60, 61, 62, -1, + -1, -1, -1, -1, 68, 107, -1, -1, 110, 111, + 112, 113, 114, 115, 116, 117, 35, 36, 37, 38, + 39, 40, 41, 42, 43, -1, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 50, -1, -1, 67, 485, - -1, 487, -1, -1, 73, -1, 75, -1, -1, -1, + 59, 60, 61, 62, 63, 64, 69, 111, 112, 68, + 69, -1, -1, -1, 77, 74, -1, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, -1, -1, -1, + -1, 90, 91, 9, -1, -1, -1, -1, -1, -1, + 103, 104, 105, 106, 107, 108, 109, 110, 107, -1, + -1, 110, 111, 112, 113, 114, 115, 116, 117, 35, + 36, 37, 38, 39, 40, 41, 42, 43, -1, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 69, + -1, -1, 68, -1, -1, -1, -1, 77, 74, -1, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + -1, -1, -1, -1, 90, 91, 9, -1, -1, -1, + -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, + 110, 107, -1, -1, 110, 111, 112, 113, 114, 115, + 116, 117, 35, 36, 37, 38, 39, 40, 41, 42, + 43, -1, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 69, -1, -1, 68, -1, -1, -1, -1, + 77, 74, -1, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, -1, -1, -1, -1, 90, 91, -1, + -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, + 107, 108, 109, 110, 107, 4, -1, 110, 111, 112, + 113, 114, 115, 116, 117, -1, 15, 16, -1, -1, + 19, 20, -1, 22, 23, 24, 25, -1, 27, 28, + 29, 30, 31, 32, 33, 34, 35, -1, -1, -1, + 39, 40, 41, 42, 43, 44, -1, -1, -1, -1, + -1, -1, 51, -1, -1, -1, -1, -1, 57, 58, + 59, 60, 61, 62, -1, -1, -1, 66, 67, 68, + -1, 5, -1, -1, -1, -1, -1, 76, -1, 78, + 79, 15, 16, -1, -1, 19, 20, -1, 22, 23, + 24, 25, -1, 27, 28, 29, 30, 31, 32, 33, + 34, 35, -1, -1, -1, 39, 40, 41, 42, 43, + 44, -1, 111, 112, -1, -1, -1, 51, -1, -1, + -1, -1, -1, 57, 58, 59, 60, 61, 62, -1, + -1, -1, 66, -1, 68, -1, 5, -1, -1, -1, + -1, -1, 76, -1, 78, 79, 15, 16, -1, -1, + 19, 20, -1, 22, 23, 24, 25, -1, 27, 28, + 29, 30, 31, 32, 33, 34, 35, -1, -1, -1, + 39, 40, 41, 42, 43, 44, -1, 111, 112, -1, + -1, -1, 51, -1, -1, -1, -1, -1, 57, 58, + 59, 60, 61, 62, -1, -1, -1, 66, -1, 68, + -1, -1, -1, -1, -1, -1, -1, 76, -1, 78, + 79, 15, 16, -1, -1, 19, 20, -1, 22, 23, + 24, 25, -1, 27, 28, 29, 30, 31, 32, 33, + 34, 35, -1, -1, -1, 39, 40, 41, 42, 43, + 44, -1, 111, 112, 35, -1, -1, 51, 39, 40, + 41, 42, 43, 57, 58, 59, 60, 61, 62, -1, + 51, -1, 66, -1, 68, -1, 57, 58, 59, 60, + 61, 62, -1, -1, 78, 79, -1, 68, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 78, 79, -1, + -1, -1, -1, -1, 65, -1, -1, -1, -1, 70, + -1, -1, -1, -1, -1, -1, 77, 111, 112, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, + 111, 112, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, + 65, -1, -1, -1, -1, 70, -1, -1, -1, -1, + -1, -1, 77, -1, -1, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 103, 104, + 105, 106, 107, 108, 109, 110, 65, -1, -1, -1, + -1, 70, -1, -1, -1, -1, -1, -1, 77, -1, + -1, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, + 109, 110, 65, -1, -1, -1, -1, 70, -1, -1, + -1, -1, -1, -1, 77, 65, -1, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 77, -1, -1, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 103, 104, 105, 106, 107, 108, 109, 110, -1, 65, + -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, + 110, 77, 65, -1, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 77, -1, -1, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 103, 104, 105, + 106, 107, 108, 109, 110, -1, 65, -1, -1, -1, + 103, 104, 105, 106, 107, 108, 109, 110, 77, 65, + -1, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 77, -1, -1, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 103, 104, 105, 106, 107, 108, + 109, 110, -1, 65, -1, -1, -1, 103, 104, 105, + 106, 107, 108, 109, 110, 77, 65, -1, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 77, -1, + -1, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 103, 104, 105, 106, 107, 108, 109, 110, -1, + 65, -1, -1, -1, 103, 104, 105, 106, 107, 108, + 109, 110, 77, 65, -1, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 77, -1, -1, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 103, 104, + 105, 106, 107, 108, 109, 110, -1, 65, -1, -1, + -1, 103, 104, 105, 106, 107, 108, 109, 110, 77, + 65, -1, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 77, -1, -1, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 103, 104, 105, 106, 107, + 108, 109, 110, -1, 65, -1, -1, -1, 103, 104, + 105, 106, 107, 108, 109, 110, 77, 65, -1, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 77, + -1, -1, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 103, 104, 105, 106, 107, 108, 109, 110, + -1, 65, -1, -1, -1, 103, 104, 105, 106, 107, + 108, 109, 110, 77, 65, -1, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 77, -1, -1, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 103, + 104, 105, 106, 107, 108, 109, 110, -1, 65, -1, + -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, + 77, 65, -1, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 77, -1, -1, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 103, 104, 105, 106, + 107, 108, 109, 110, -1, 65, -1, -1, -1, 103, + 104, 105, 106, 107, 108, 109, 110, 77, 65, -1, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 77, -1, -1, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 103, 104, 105, 106, 107, 108, 109, + 110, -1, 65, -1, -1, -1, 103, 104, 105, 106, + 107, 108, 109, 110, 77, 65, -1, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 77, -1, -1, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 103, 104, 105, 106, 107, 108, 109, 110, -1, 65, + -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, + 110, 77, 65, -1, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 77, -1, -1, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 103, 104, 105, + 106, 107, 108, 109, 110, -1, 65, -1, -1, -1, + 103, 104, 105, 106, 107, 108, 109, 110, 77, 65, + -1, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 77, -1, -1, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 103, 104, 105, 106, 107, 108, + 109, 110, -1, 65, -1, -1, -1, 103, 104, 105, + 106, 107, 108, 109, 110, 77, 65, -1, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 77, -1, + -1, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 103, 104, 105, 106, 107, 108, 109, 110, -1, + -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, + 109, 110, 69, -1, -1, -1, -1, -1, -1, -1, + 77, -1, -1, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, + 107, 108, 109, 110, 69, -1, -1, -1, -1, -1, + -1, -1, 77, -1, -1, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 103, 104, + 105, 106, 107, 108, 109, 110, 69, -1, -1, -1, + -1, -1, -1, -1, 77, -1, -1, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 89, 90, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 87, -1, -1, 90, 91, 106, -1, -1, - 109, 110, 111, 112, 113, 114, 115, 116, 534, -1, - 536, 537, -1, -1, -1, 485, -1, 487, 79, 80, - -1, 82, 83, 84, 85, 86, 87, 88, -1, -1, - -1, -1, -1, -1, -1, 561, 562, -1, -1, -1, - -1, 102, 103, 104, 105, 106, 107, 108, 109, 485, - -1, 487, -1, -1, -1, -1, -1, 485, -1, 487, - -1, -1, 157, -1, 534, -1, 536, 537, -1, -1, - -1, -1, -1, -1, 169, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 79, 80, -1, - -1, 561, 562, 85, 86, 87, 88, -1, 534, -1, - 536, 537, -1, -1, -1, -1, 534, -1, 536, 537, - -1, -1, -1, 105, 106, 107, 108, 109, -1, -1, - -1, -1, -1, -1, -1, 561, 562, -1, -1, -1, - -1, -1, -1, 561, 562, 230, 231, 232, 233, 234, - 235, 236, 237, 238, 239, -1, 241, 242, 243, 244, - 245, 246, 247, 248, -1, 250, -1, -1, -1, -1, - 255, -1, -1, -1, -1, 34, -1, -1, -1, 38, - -1, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 289, 290, 291, 292, 67, -1, - -1, 70, -1, -1, -1, -1, -1, -1, 77, 78, - -1, 306, -1, 308, -1, -1, 311, -1, -1, -1, - -1, -1, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, -1, -1, -1, -1, -1, -1, -1, - -1, 110, 111, -1, -1, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, 350, -1, 352, -1, 4, + 103, 104, 105, 106, 107, 108, 109, 110, 69, -1, + -1, -1, -1, -1, -1, -1, 77, -1, -1, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 15, -1, -1, 18, 19, -1, 21, 22, 23, 24, - 375, 26, 27, 28, 29, 30, 31, 32, 33, 34, - -1, -1, -1, 38, 39, 40, 41, 42, 43, -1, - -1, -1, -1, -1, -1, 50, -1, -1, -1, 404, - -1, 56, 57, 58, 59, 60, 61, -1, -1, -1, - 65, 66, 67, -1, -1, -1, -1, -1, -1, -1, - 75, -1, 77, 78, -1, -1, -1, -1, 433, 434, - 435, 436, 437, 79, 80, -1, -1, 83, 84, 85, - 86, 87, 88, -1, -1, 79, 80, -1, 453, 83, - 84, 85, 86, 87, 88, 110, 111, 103, 104, 105, - 106, 107, 108, 109, 469, 9, -1, -1, 473, 103, - -1, 105, 106, 107, 108, 109, -1, -1, 483, -1, - -1, 486, -1, 488, 489, -1, -1, -1, -1, -1, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 504, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, - -1, -1, -1, 67, 68, -1, -1, -1, -1, 73, - -1, 34, -1, 538, -1, 38, 39, 40, 41, 42, - -1, -1, -1, -1, -1, 89, 90, 50, 9, -1, - -1, -1, -1, 56, 57, 58, 59, 60, 61, -1, - -1, -1, 106, -1, 67, 109, 110, 111, 112, 113, - 114, 115, 116, 34, 35, 36, 37, 38, 39, 40, - 41, 42, -1, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, -1, -1, -1, 67, 110, 111, -1, - 34, -1, 73, -1, 38, 39, 40, 41, 42, -1, - -1, -1, -1, -1, -1, -1, 50, -1, 89, 90, - -1, 9, 56, 57, 58, 59, 60, 61, -1, 63, - -1, -1, -1, 67, -1, 106, -1, -1, 109, 110, - 111, 112, 113, 114, 115, 116, 34, 35, 36, 37, - 38, 39, 40, 41, 42, -1, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 110, 111, -1, 67, - -1, 115, 116, 75, 76, 73, -1, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, -1, -1, -1, - -1, 89, 90, -1, -1, -1, -1, -1, -1, -1, - 102, 103, 104, 105, 106, 107, 108, 109, 106, 4, - -1, 109, 110, 111, 112, 113, 114, 115, 116, -1, - 15, -1, -1, 18, 19, -1, 21, 22, 23, 24, - -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, - -1, -1, -1, 38, 39, 40, 41, 42, 43, -1, - -1, -1, -1, -1, -1, 50, -1, -1, -1, -1, - -1, 56, 57, 58, 59, 60, 61, -1, -1, -1, - 65, 66, 67, -1, 5, -1, -1, -1, -1, -1, - 75, -1, 77, 78, 15, -1, -1, 18, 19, -1, - 21, 22, 23, 24, -1, 26, 27, 28, 29, 30, - 31, 32, 33, 34, -1, -1, -1, 38, 39, 40, - 41, 42, 43, -1, -1, 110, 111, -1, -1, 50, - -1, -1, -1, -1, -1, 56, 57, 58, 59, 60, - 61, -1, -1, -1, 65, -1, 67, -1, 5, -1, - -1, -1, -1, -1, 75, -1, 77, 78, 15, -1, - -1, 18, 19, -1, 21, 22, 23, 24, -1, 26, - 27, 28, 29, 30, 31, 32, 33, 34, -1, -1, - -1, 38, 39, 40, 41, 42, 43, -1, -1, 110, - 111, -1, -1, 50, -1, -1, -1, -1, -1, 56, - 57, 58, 59, 60, 61, -1, -1, -1, 65, -1, - 67, -1, -1, -1, -1, -1, -1, -1, 75, -1, - 77, 78, 15, -1, -1, 18, 19, -1, 21, 22, - 23, 24, -1, 26, 27, 28, 29, 30, 31, 32, - 33, 34, -1, -1, -1, 38, 39, 40, 41, 42, - 43, -1, -1, 110, 111, -1, -1, 50, -1, -1, - -1, -1, -1, 56, 57, 58, 59, 60, 61, -1, - -1, 34, 65, -1, 67, 38, 39, 40, 41, 42, - -1, -1, -1, -1, 77, 78, -1, 50, -1, -1, - -1, -1, -1, 56, 57, 58, 59, 60, 61, -1, - -1, -1, -1, -1, 67, -1, -1, -1, -1, -1, - -1, 64, -1, -1, 77, 78, 69, 110, 111, -1, - -1, -1, -1, 76, -1, -1, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 110, 111, 102, - 103, 104, 105, 106, 107, 108, 109, 64, -1, 79, - 80, -1, 69, 83, 84, 85, 86, 87, 88, 76, - -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, 102, 103, 104, 105, 106, 107, 108, 109, - -1, -1, -1, -1, -1, 102, 103, 104, 105, 106, - 107, 108, 109, 64, -1, 79, 80, -1, 69, 83, - 84, 85, 86, 87, 88, 76, -1, -1, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, -1, -1, - -1, 105, 106, 107, 108, 109, -1, -1, -1, -1, - -1, 102, 103, 104, 105, 106, 107, 108, 109, 64, - -1, -1, -1, -1, 69, -1, -1, -1, -1, -1, - -1, 76, 64, -1, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 76, -1, -1, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 102, 103, 104, - 105, 106, 107, 108, 109, -1, 64, -1, -1, -1, - 102, 103, 104, 105, 106, 107, 108, 109, 76, 64, - -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, 76, -1, -1, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 102, 103, 104, 105, 106, 107, - 108, 109, -1, 64, -1, -1, -1, 102, 103, 104, - 105, 106, 107, 108, 109, 76, 64, -1, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 76, -1, - -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, 102, 103, 104, 105, 106, 107, 108, 109, -1, - 64, -1, -1, -1, 102, 103, 104, 105, 106, 107, - 108, 109, 76, 64, -1, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 88, 76, -1, -1, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 102, 103, - 104, 105, 106, 107, 108, 109, -1, 64, -1, -1, - -1, 102, 103, 104, 105, 106, 107, 108, 109, 76, - 64, -1, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, 76, -1, -1, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 88, 102, 103, 104, 105, 106, - 107, 108, 109, -1, 64, -1, -1, -1, 102, 103, - 104, 105, 106, 107, 108, 109, 76, 64, -1, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, 76, - -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, 102, 103, 104, 105, 106, 107, 108, 109, - -1, 64, -1, -1, -1, 102, 103, 104, 105, 106, - 107, 108, 109, 76, 64, -1, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 76, -1, -1, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, 102, - 103, 104, 105, 106, 107, 108, 109, -1, 64, -1, - -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, - 76, 64, -1, 79, 80, 81, 82, 83, 84, 85, - 86, 87, 88, 76, -1, -1, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 102, 103, 104, 105, - 106, 107, 108, 109, -1, 64, -1, -1, -1, 102, - 103, 104, 105, 106, 107, 108, 109, 76, 64, -1, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, - 86, 87, 88, 102, 103, 104, 105, 106, 107, 108, - 109, -1, 64, -1, -1, -1, 102, 103, 104, 105, - 106, 107, 108, 109, 76, 64, -1, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 76, -1, -1, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 102, 103, 104, 105, 106, 107, 108, 109, -1, 64, - -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, - 109, 76, 64, -1, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 76, -1, -1, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 102, 103, 104, - 105, 106, 107, 108, 109, -1, 64, -1, -1, -1, - 102, 103, 104, 105, 106, 107, 108, 109, 76, 64, - -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, 76, -1, -1, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 102, 103, 104, 105, 106, 107, - 108, 109, -1, 64, -1, -1, -1, 102, 103, 104, - 105, 106, 107, 108, 109, 76, 64, -1, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 76, -1, - -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, 102, 103, 104, 105, 106, 107, 108, 109, -1, - 64, -1, -1, -1, 102, 103, 104, 105, 106, 107, - 108, 109, 76, 64, -1, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 88, 76, -1, -1, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 102, 103, - 104, 105, 106, 107, 108, 109, -1, -1, -1, -1, - -1, 102, 103, 104, 105, 106, 107, 108, 109, 68, - -1, -1, -1, -1, -1, -1, -1, 76, -1, -1, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, + 69, -1, -1, -1, -1, -1, -1, -1, 77, -1, + -1, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, + 109, 110, 69, -1, -1, -1, -1, -1, -1, -1, + 77, -1, -1, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, + 107, 108, 109, 110, 69, -1, -1, -1, -1, -1, + -1, -1, 77, -1, -1, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 103, 104, + 105, 106, 107, 108, 109, 110, 70, -1, -1, -1, + -1, -1, -1, 77, -1, -1, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 103, + 104, 105, 106, 107, 108, 109, 110, 70, -1, -1, + -1, -1, -1, -1, 77, -1, -1, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, - 109, 68, -1, -1, -1, -1, -1, -1, -1, 76, - -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 102, 103, 104, 105, 106, - 107, 108, 109, 68, -1, -1, -1, -1, -1, -1, - -1, 76, -1, -1, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 102, 103, 104, - 105, 106, 107, 108, 109, 68, -1, -1, -1, -1, - -1, -1, -1, 76, -1, -1, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 102, - 103, 104, 105, 106, 107, 108, 109, 68, -1, -1, - -1, -1, -1, -1, -1, 76, -1, -1, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, -1, -1, + 103, 104, 105, 106, 107, 108, 109, 110, 70, -1, + -1, -1, -1, -1, -1, 77, -1, -1, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 102, 103, 104, 105, 106, 107, 108, 109, 68, - -1, -1, -1, -1, -1, -1, -1, 76, -1, -1, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + -1, 103, 104, 105, 106, 107, 108, 109, 110, 75, + -1, 77, -1, -1, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, + 106, 107, 108, 109, 110, 76, 77, -1, -1, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, - 109, 68, -1, -1, -1, -1, -1, -1, -1, 76, - -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 102, 103, 104, 105, 106, - 107, 108, 109, 68, -1, -1, -1, -1, -1, -1, - -1, 76, -1, -1, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 102, 103, 104, - 105, 106, 107, 108, 109, 68, -1, -1, -1, -1, - -1, -1, -1, 76, -1, -1, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 102, - 103, 104, 105, 106, 107, 108, 109, 68, -1, -1, - -1, -1, -1, -1, -1, 76, -1, -1, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 102, 103, 104, 105, 106, 107, 108, 109, 69, - -1, -1, -1, -1, -1, -1, 76, -1, -1, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, - 69, -1, -1, -1, -1, -1, -1, 76, -1, -1, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, - 109, 69, -1, -1, -1, -1, -1, -1, 76, -1, - -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 102, 103, 104, 105, 106, 107, - 108, 109, 74, -1, 76, -1, -1, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 102, 103, 104, 105, 106, 107, 108, 109, 75, 76, - -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 102, 103, 104, 105, 106, - 107, 108, 109, 75, 76, -1, -1, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 76, -1, -1, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, - -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, - 109 + -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, + 76, 77, -1, -1, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 77, -1, -1, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 103, 104, 105, + 106, 107, 108, 109, 110, -1, -1, -1, -1, -1, + 103, 104, 105, 106, 107, 108, 109, 110 }; const unsigned char parser::yystos_[] = { - 0, 4, 5, 6, 7, 8, 10, 11, 12, 38, - 75, 111, 127, 128, 129, 130, 131, 132, 133, 217, - 110, 111, 218, 218, 63, 217, 217, 217, 0, 75, - 129, 130, 131, 63, 75, 75, 112, 220, 63, 63, - 63, 179, 180, 217, 64, 179, 179, 179, 64, 69, - 91, 75, 64, 64, 64, 65, 139, 180, 217, 9, - 34, 35, 36, 37, 39, 40, 41, 42, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 67, 73, - 89, 90, 106, 109, 111, 113, 114, 115, 116, 164, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, - 213, 214, 215, 217, 218, 219, 220, 221, 222, 223, - 224, 225, 226, 139, 139, 139, 4, 15, 18, 19, - 21, 22, 23, 24, 26, 27, 28, 29, 30, 31, - 32, 33, 43, 66, 67, 75, 77, 78, 134, 135, - 137, 138, 139, 141, 142, 143, 144, 145, 146, 147, + 0, 4, 5, 6, 7, 8, 10, 11, 12, 39, + 76, 112, 128, 129, 130, 131, 132, 133, 134, 219, + 111, 112, 220, 220, 64, 219, 219, 219, 0, 76, + 130, 131, 132, 64, 76, 76, 113, 222, 64, 64, + 64, 181, 182, 219, 65, 181, 181, 181, 65, 70, + 92, 76, 65, 65, 65, 66, 140, 182, 219, 9, + 35, 36, 37, 38, 40, 41, 42, 43, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 68, 74, + 90, 91, 107, 110, 112, 114, 115, 116, 117, 166, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 140, 140, 140, 4, 15, 16, 19, + 20, 22, 23, 24, 25, 27, 28, 29, 30, 31, + 32, 33, 34, 44, 67, 68, 76, 78, 79, 135, + 136, 138, 139, 140, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, 162, 163, 166, 167, 168, 175, - 176, 189, 195, 196, 197, 198, 199, 200, 203, 204, - 207, 210, 211, 212, 213, 217, 218, 67, 217, 218, - 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, 63, 164, - 67, 68, 217, 164, 164, 63, 115, 116, 175, 176, - 203, 204, 206, 207, 217, 111, 76, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 102, 103, 104, - 105, 106, 107, 108, 109, 67, 67, 67, 67, 67, - 67, 67, 67, 70, 177, 178, 217, 63, 73, 70, - 5, 75, 134, 136, 164, 75, 63, 134, 63, 63, - 63, 63, 106, 220, 224, 74, 75, 75, 75, 164, - 63, 63, 217, 207, 207, 66, 75, 135, 75, 75, - 75, 75, 75, 13, 14, 16, 17, 70, 77, 78, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 73, 67, 63, 73, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 64, 164, 164, 164, 164, - 164, 164, 164, 164, 64, 69, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 67, 164, 38, 111, 216, 164, - 181, 182, 217, 38, 5, 75, 134, 75, 164, 22, - 164, 140, 166, 167, 168, 207, 217, 164, 74, 74, - 75, 181, 181, 91, 63, 63, 63, 63, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, 164, 217, - 164, 181, 217, 69, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 69, - 64, 164, 68, 74, 68, 68, 68, 68, 68, 68, - 68, 68, 64, 69, 63, 64, 63, 64, 75, 25, - 69, 64, 64, 64, 164, 164, 164, 164, 164, 68, - 64, 63, 164, 164, 69, 68, 164, 164, 181, 134, - 164, 134, 164, 165, 164, 217, 139, 75, 75, 75, - 64, 64, 69, 64, 69, 64, 69, 68, 181, 64, - 64, 164, 63, 64, 20, 64, 75, 64, 25, 75, - 75, 181, 182, 75, 182, 75, 182, 63, 64, 64, - 181, 134, 75, 140, 134, 164, 64, 64, 64, 181, - 64, 64, 64, 75, 75, 75, 64, 134, 134 + 158, 159, 160, 161, 162, 163, 164, 165, 168, 169, + 170, 177, 178, 191, 197, 198, 199, 200, 201, 202, + 205, 206, 209, 212, 213, 214, 215, 219, 220, 68, + 219, 220, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 166, 68, 69, 219, 166, 166, 64, 116, 117, + 177, 178, 205, 206, 208, 209, 219, 112, 77, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 103, + 104, 105, 106, 107, 108, 109, 110, 68, 68, 68, + 68, 68, 68, 68, 68, 71, 179, 180, 219, 64, + 74, 71, 5, 76, 135, 137, 166, 166, 76, 64, + 135, 64, 64, 64, 64, 107, 222, 226, 75, 76, + 76, 76, 166, 64, 64, 219, 209, 209, 67, 76, + 136, 76, 76, 76, 76, 76, 13, 14, 17, 18, + 71, 78, 79, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 74, 68, 64, 74, 166, 166, + 166, 166, 166, 166, 166, 166, 166, 166, 65, 166, + 166, 166, 166, 166, 166, 166, 166, 65, 70, 166, + 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, + 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, + 166, 166, 166, 166, 166, 166, 166, 68, 166, 39, + 112, 218, 166, 183, 184, 219, 39, 5, 76, 135, + 76, 76, 166, 23, 166, 141, 168, 169, 170, 209, + 219, 166, 75, 75, 76, 183, 183, 92, 64, 64, + 64, 64, 166, 166, 166, 166, 166, 166, 166, 166, + 166, 166, 166, 219, 166, 183, 219, 70, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 70, 65, 166, 69, 75, 69, 69, + 69, 69, 69, 69, 69, 69, 65, 70, 64, 65, + 64, 65, 76, 26, 70, 65, 65, 65, 166, 166, + 166, 166, 166, 69, 65, 64, 166, 166, 70, 69, + 166, 166, 183, 135, 166, 135, 166, 167, 166, 219, + 140, 76, 76, 76, 65, 65, 70, 65, 70, 65, + 70, 69, 183, 65, 65, 166, 64, 65, 21, 65, + 76, 65, 26, 76, 76, 183, 184, 76, 184, 76, + 184, 64, 65, 65, 183, 135, 76, 141, 135, 166, + 65, 65, 65, 183, 65, 65, 65, 76, 76, 76, + 65, 135, 135 }; const unsigned char parser::yyr1_[] = { - 0, 126, 127, 127, 128, 128, 128, 128, 128, 128, - 128, 128, 129, 130, 131, 131, 131, 131, 132, 133, - 133, 133, 133, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 135, 135, 136, - 136, 136, 136, 137, 137, 137, 137, 138, 138, 139, - 139, 140, 140, 140, 140, 141, 141, 142, 143, 143, - 143, 144, 145, 145, 146, 147, 147, 148, 148, 149, - 150, 151, 152, 153, 154, 155, 155, 156, 157, 157, - 158, 159, 160, 161, 161, 162, 163, 164, 164, 164, - 165, 165, 166, 166, 167, 167, 168, 168, 168, 168, - 168, 168, 168, 168, 168, 168, 168, 169, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 172, 173, 173, 173, 173, 174, 175, 175, - 176, 176, 177, 177, 177, 177, 178, 178, 179, 179, - 179, 179, 179, 180, 181, 181, 182, 182, 183, 184, + 0, 127, 128, 128, 129, 129, 129, 129, 129, 129, + 129, 129, 130, 131, 132, 132, 132, 132, 133, 134, + 134, 134, 134, 135, 135, 135, 135, 135, 135, 135, + 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, + 135, 135, 135, 135, 135, 135, 135, 135, 136, 136, + 137, 137, 137, 137, 138, 138, 138, 138, 139, 139, + 140, 140, 141, 141, 141, 141, 142, 142, 143, 144, + 144, 144, 145, 146, 146, 147, 148, 149, 149, 150, + 150, 151, 152, 153, 154, 155, 156, 157, 157, 158, + 159, 159, 160, 161, 162, 163, 163, 164, 165, 166, + 166, 166, 167, 167, 168, 168, 169, 169, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 174, 175, 175, 175, 175, 176, + 177, 177, 178, 178, 179, 179, 179, 179, 180, 180, + 181, 181, 181, 181, 181, 182, 183, 183, 184, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 202, 203, - 203, 203, 203, 203, 203, 203, 203, 204, 205, 205, - 206, 207, 207, 207, 207, 207, 207, 207, 207, 207, - 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, - 217, 218, 218, 219, 220, 221, 222, 223, 223, 224, - 224, 225, 226 + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 204, 205, 205, 205, 205, 205, 205, 205, 205, 206, + 207, 207, 208, 209, 209, 209, 209, 209, 209, 209, + 209, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 219, 220, 220, 221, 222, 223, 224, 225, + 225, 226, 226, 227, 228 }; const signed char @@ -5385,30 +5415,30 @@ namespace xsk { namespace arc { 1, 1, 3, 3, 1, 1, 1, 1, 5, 5, 6, 6, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, - 1, 2, 1, 2, 1, 2, 1, 3, 2, 3, - 2, 1, 1, 1, 0, 2, 2, 5, 2, 2, - 2, 6, 8, 6, 3, 8, 6, 8, 6, 2, - 5, 7, 5, 7, 9, 7, 9, 5, 3, 3, - 2, 2, 2, 3, 2, 5, 5, 1, 1, 1, - 1, 0, 2, 2, 2, 2, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 5, 3, 3, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 1, 2, 1, 2, 1, 2, 1, 3, 2, + 3, 2, 1, 1, 1, 0, 2, 2, 5, 2, + 2, 2, 6, 8, 6, 3, 3, 8, 6, 8, + 6, 2, 5, 7, 5, 7, 9, 7, 9, 5, + 3, 3, 2, 2, 2, 3, 2, 5, 5, 1, + 1, 1, 1, 0, 2, 2, 2, 2, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, + 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, - 2, 2, 4, 6, 5, 7, 8, 9, 3, 3, - 1, 1, 0, 3, 1, 0, 3, 1, 6, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 3, 4, - 4, 4, 4, 4, 4, 6, 4, 2, 3, 4, - 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, - 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, - 1, 1, 1, 1, 1, 7, 1, 2, 1, 2, - 1, 1, 1 + 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, + 1, 1, 2, 2, 4, 6, 5, 7, 8, 9, + 3, 3, 1, 1, 0, 3, 1, 0, 3, 1, + 6, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 3, 4, 4, 4, 4, 4, 4, 6, 4, 2, + 3, 4, 4, 4, 4, 4, 4, 4, 4, 3, + 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 7, 1, 2, + 1, 2, 1, 1, 1 }; @@ -5418,34 +5448,34 @@ namespace xsk { namespace arc { const short parser::yyrline_[] = { - 0, 297, 297, 298, 302, 304, 306, 308, 310, 312, - 314, 316, 321, 325, 330, 331, 332, 333, 337, 342, - 344, 346, 348, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, - 370, 371, 372, 373, 374, 375, 376, 380, 381, 385, - 387, 389, 391, 396, 398, 400, 402, 407, 408, 412, - 413, 417, 419, 421, 424, 428, 430, 435, 440, 442, - 444, 449, 454, 456, 461, 466, 468, 473, 475, 480, - 485, 490, 495, 500, 505, 510, 516, 524, 531, 533, - 538, 543, 548, 553, 555, 560, 565, 570, 571, 572, - 576, 577, 581, 583, 588, 590, 595, 597, 599, 601, - 603, 605, 607, 609, 611, 613, 615, 620, 625, 627, - 629, 631, 633, 635, 637, 639, 641, 643, 645, 647, - 649, 651, 653, 655, 657, 659, 664, 665, 666, 667, - 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, - 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, - 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, - 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, - 708, 709, 713, 718, 720, 722, 724, 729, 734, 735, - 739, 746, 756, 758, 760, 762, 767, 769, 774, 776, - 778, 780, 783, 787, 792, 795, 799, 801, 806, 811, - 816, 821, 826, 831, 836, 841, 846, 851, 856, 861, - 866, 871, 876, 881, 886, 891, 896, 901, 903, 908, - 910, 912, 914, 916, 918, 920, 922, 927, 932, 934, - 939, 944, 945, 946, 947, 948, 949, 950, 951, 952, - 956, 961, 966, 971, 976, 981, 986, 991, 996, 1001, - 1003, 1008, 1010, 1015, 1020, 1025, 1030, 1035, 1037, 1042, - 1044, 1049, 1054 + 0, 299, 299, 300, 304, 306, 308, 310, 312, 314, + 316, 318, 323, 327, 332, 333, 334, 335, 339, 344, + 346, 348, 350, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 379, 383, 384, + 388, 390, 392, 394, 399, 401, 403, 405, 410, 411, + 415, 416, 420, 422, 424, 427, 431, 433, 438, 443, + 445, 447, 452, 457, 459, 464, 469, 474, 476, 481, + 483, 488, 493, 498, 503, 508, 513, 518, 524, 532, + 539, 541, 546, 551, 556, 561, 563, 568, 573, 578, + 579, 580, 584, 585, 589, 591, 596, 598, 603, 605, + 607, 609, 611, 613, 615, 617, 619, 621, 623, 628, + 633, 635, 637, 639, 641, 643, 645, 647, 649, 651, + 653, 655, 657, 659, 661, 663, 665, 667, 672, 673, + 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, + 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, + 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, + 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, + 714, 715, 716, 717, 721, 726, 728, 730, 732, 737, + 742, 743, 747, 754, 764, 766, 768, 770, 775, 777, + 782, 784, 786, 788, 791, 795, 800, 803, 807, 809, + 814, 819, 824, 829, 834, 839, 844, 849, 854, 859, + 864, 869, 874, 879, 884, 889, 894, 899, 904, 909, + 911, 916, 918, 920, 922, 924, 926, 928, 930, 935, + 940, 942, 947, 952, 953, 954, 955, 956, 957, 958, + 959, 960, 964, 969, 974, 979, 984, 989, 994, 999, + 1004, 1009, 1011, 1016, 1018, 1023, 1028, 1033, 1038, 1043, + 1045, 1050, 1052, 1057, 1062 }; void @@ -5478,9 +5508,9 @@ namespace xsk { namespace arc { #line 13 "parser.ypp" } } // xsk::arc -#line 5488 "parser.cpp" +#line 5518 "parser.cpp" -#line 1058 "parser.ypp" +#line 1066 "parser.ypp" namespace xsk::arc @@ -5656,6 +5686,7 @@ std::unordered_map const tok_to_par { token::ENDON, parser::token::ENDON }, { token::NOTIFY, parser::token::NOTIFY }, { token::WAIT, parser::token::WAIT }, + { token::WAITREALTIME, parser::token::WAITREALTIME }, { token::WAITTILL, parser::token::WAITTILL }, { token::WAITTILLMATCH, parser::token::WAITTILLMATCH }, { token::WAITTILLFRAMEEND, parser::token::WAITTILLFRAMEEND }, @@ -5715,6 +5746,7 @@ std::unordered_map const keywo { "endon", parser::token::ENDON }, { "notify", parser::token::NOTIFY }, { "wait", parser::token::WAIT }, + { "waitrealtime", parser::token::WAITREALTIME}, { "waittill", parser::token::WAITTILL }, { "waittillmatch", parser::token::WAITTILLMATCH }, { "waittillframeend", parser::token::WAITTILLFRAMEEND }, diff --git a/src/arc/source.cpp b/src/arc/source.cpp index 03cc0073..da19abd8 100644 --- a/src/arc/source.cpp +++ b/src/arc/source.cpp @@ -309,6 +309,9 @@ auto source::dump_stmt(stmt const& stm) -> void case node::stmt_wait: dump_stmt_wait(stm.as()); break; + case node::stmt_waitrealtime: + dump_stmt_waitrealtime(stm.as()); + break; case node::stmt_waittill: dump_stmt_waittill(stm.as()); break; @@ -318,9 +321,6 @@ auto source::dump_stmt(stmt const& stm) -> void case node::stmt_waittillframeend: dump_stmt_waittillframeend(stm.as()); break; - case node::stmt_waitrealtime: - dump_stmt_waitrealtime(stm.as()); - break; case node::stmt_if: dump_stmt_if(stm.as()); break; @@ -521,6 +521,22 @@ auto source::dump_stmt_wait(stmt_wait const& stm) -> void } } +auto source::dump_stmt_waitrealtime(stmt_waitrealtime const& stm) -> void +{ + if (stm.time->is()) + { + fmt::format_to(std::back_inserter(buf_), "waitrealtime"); + dump_expr(*stm.time); + fmt::format_to(std::back_inserter(buf_), ";"); + } + else + { + fmt::format_to(std::back_inserter(buf_), "waitrealtime( "); + dump_expr(*stm.time); + fmt::format_to(std::back_inserter(buf_), " );"); + } +} + auto source::dump_stmt_waittill(stmt_waittill const& stm) -> void { dump_expr(*stm.obj); @@ -564,22 +580,6 @@ auto source::dump_stmt_waittillframeend(stmt_waittillframeend const&) -> void fmt::format_to(std::back_inserter(buf_), "waittillframeend;"); } -auto source::dump_stmt_waitrealtime(stmt_waitrealtime const& stm) -> void -{ - if (stm.time->is()) - { - fmt::format_to(std::back_inserter(buf_), "waitrealtime"); - dump_expr(*stm.time); - fmt::format_to(std::back_inserter(buf_), ";"); - } - else - { - fmt::format_to(std::back_inserter(buf_), "waitrealtime( "); - dump_expr(*stm.time); - fmt::format_to(std::back_inserter(buf_), " );"); - } -} - auto source::dump_stmt_if(stmt_if const& stm) -> void { fmt::format_to(std::back_inserter(buf_), "if ( ");