diff --git a/gen/t6/parser.ypp b/gen/t6/parser.ypp index f3049015..19081116 100644 --- a/gen/t6/parser.ypp +++ b/gen/t6/parser.ypp @@ -56,6 +56,7 @@ xsk::arc::t6::parser::symbol_type T6lex(xsk::arc::t6::lexer& lexer); %token INLINE "#inline" %token INCLUDE "#include" %token USINGTREE "#using_animtree" +%token ANIMTREE "#animtree" %token ENDON "endon" %token NOTIFY "notify" %token WAIT "wait" @@ -243,6 +244,7 @@ xsk::arc::t6::parser::symbol_type T6lex(xsk::arc::t6::lexer& lexer); %type expr_anim %type expr_level %type expr_animation +%type expr_animtree %type expr_identifier_nosize %type expr_identifier %type expr_path @@ -661,6 +663,7 @@ expr_primitive | expr_anim { $$.as_node = std::move($1); } | expr_level { $$.as_node = std::move($1); } | expr_animation { $$.as_node = std::move($1); } + | expr_animtree { $$.as_node = std::move($1); } | expr_identifier { $$.as_node = std::move($1); } | expr_istring { $$.as_node = std::move($1); } | expr_string { $$.as_node = std::move($1); } @@ -926,6 +929,11 @@ expr_animation { $$ = std::make_unique(@$, $2); }; ; +expr_animtree + : ANIMTREE + { $$ = std::make_unique(@$); }; + ; + expr_identifier_nosize : IDENTIFIER { $$ = std::make_unique(@$, $1); }; diff --git a/src/t6/xsk/assembler.cpp b/src/t6/xsk/assembler.cpp index 193d73f4..76281836 100644 --- a/src/t6/xsk/assembler.cpp +++ b/src/t6/xsk/assembler.cpp @@ -324,7 +324,7 @@ void assembler::assemble_instruction(const instruction::ptr& inst) break; case opcode::OP_GetInteger: script_->align(4); - script_->write(std::stoi(inst->data[0])); + script_->write((inst->data.size() == 2) ? -1 : std::stoi(inst->data[0])); break; case opcode::OP_GetFloat: script_->align(4); @@ -579,6 +579,8 @@ void assembler::align_instruction(const instruction::ptr& inst) break; case opcode::OP_GetInteger: inst->size += script_->align(4); + if (inst->data.size() == 2) + add_anim_reference(inst->data, script_->pos()); script_->seek(4); break; case opcode::OP_GetFloat: @@ -849,14 +851,28 @@ void assembler::add_anim_reference(const std::vector& data, std::ui { if (entry.name == data[0]) { - entry.anims.push_back({ data[1], ref }); + if (data[1] == "-1") + { + entry.refs.push_back(ref); + } + else + { + entry.anims.push_back({ data[1], ref }); + } return; } } animtree_ref new_entry; new_entry.name = data[0]; - new_entry.anims.push_back({ data[1], ref }); + if (data[1] == "-1") + { + new_entry.refs.push_back(ref); + } + else + { + new_entry.anims.push_back({ data[1], ref }); + } animtrees_.push_back(std::move(new_entry)); } diff --git a/src/t6/xsk/compiler.cpp b/src/t6/xsk/compiler.cpp index 5403c161..8a66334b 100644 --- a/src/t6/xsk/compiler.cpp +++ b/src/t6/xsk/compiler.cpp @@ -914,6 +914,9 @@ void compiler::emit_expr(const ast::expr& expr) case ast::kind::expr_animation: emit_expr_animation(expr.as_animation); break; + case ast::kind::expr_animtree: + emit_expr_animtree(expr.as_animtree); + break; case ast::kind::expr_identifier: emit_expr_local(expr.as_identifier); break; @@ -1874,6 +1877,16 @@ void compiler::emit_expr_animation(const ast::expr_animation::ptr& expr) emit_opcode(opcode::OP_GetAnimation, { animtrees_.back(), expr->value }); } +void compiler::emit_expr_animtree(const ast::expr_animtree::ptr& expr) +{ + if (animtrees_.size() == 0) + { + throw comp_error( expr->loc(), "trying to use animtree without specified using animtree"); + } + + emit_opcode(opcode::OP_GetInteger, { animtrees_.back(), "-1" }); +} + void compiler::emit_expr_istring(const ast::expr_istring::ptr& expr) { emit_opcode(opcode::OP_GetIString, expr->value); diff --git a/src/t6/xsk/compiler.hpp b/src/t6/xsk/compiler.hpp index d737e0d2..c04c3af9 100644 --- a/src/t6/xsk/compiler.hpp +++ b/src/t6/xsk/compiler.hpp @@ -123,6 +123,7 @@ private: void emit_expr_object(const ast::expr& expr); void emit_expr_vector(const ast::expr_vector::ptr& expr); void emit_expr_animation(const ast::expr_animation::ptr& expr); + void emit_expr_animtree(const ast::expr_animtree::ptr& expr); void emit_expr_istring(const ast::expr_istring::ptr& expr); void emit_expr_string(const ast::expr_string::ptr& expr); void emit_expr_hash(const ast::expr_hash::ptr& expr); diff --git a/src/t6/xsk/decompiler.cpp b/src/t6/xsk/decompiler.cpp index f994a445..feb00d26 100644 --- a/src/t6/xsk/decompiler.cpp +++ b/src/t6/xsk/decompiler.cpp @@ -145,7 +145,6 @@ void decompiler::decompile_instruction(const instruction::ptr& inst, bool last) } case opcode::OP_GetByte: case opcode::OP_GetUnsignedShort: - case opcode::OP_GetInteger: { auto node = std::make_unique(loc, inst->data[0]); stack_.push(std::move(node)); @@ -158,6 +157,43 @@ void decompiler::decompile_instruction(const instruction::ptr& inst, bool last) stack_.push(std::move(node)); break; } + case opcode::OP_GetInteger: + { + if (inst->data.size() == 2) + { + bool found = false; + + //for (const auto& entry : program_->declarations) TODO: C++20 reverse_view + for (auto i = program_->declarations.rbegin(); i != program_->declarations.rend(); ++i) + { + if (*i == ast::kind::decl_usingtree) + { + if (i->as_usingtree->name->value == inst->data[0]) + found = true; + else + found = false; + + break; + } + } + + if (!found) + { + auto tree = std::make_unique(loc, inst->data[0]); + auto decl = std::make_unique(loc, std::move(tree)); + program_->declarations.push_back(ast::decl(std::move(decl))); + } + + auto node = std::make_unique(loc); + stack_.push(std::move(node)); + } + else + { + auto node = std::make_unique(loc, inst->data[0]); + stack_.push(std::move(node)); + } + break; + } case opcode::OP_GetFloat: { auto node = std::make_unique(loc, inst->data[0]); @@ -217,14 +253,17 @@ void decompiler::decompile_instruction(const instruction::ptr& inst, bool last) { bool found = false; - for (const auto& entry : program_->declarations) + //for (const auto& entry : program_->declarations) TODO: C++20 reverse_view + for (auto i = program_->declarations.rbegin(); i != program_->declarations.rend(); ++i) { - if (entry == ast::kind::decl_usingtree) + if (*i == ast::kind::decl_usingtree) { - if (entry.as_usingtree->name->value == inst->data[0]) + if (i->as_usingtree->name->value == inst->data[0]) found = true; else found = false; + + break; } } @@ -1426,27 +1465,42 @@ void decompiler::decompile_ifelses(const ast::stmt_list::ptr& stmt) void decompiler::decompile_aborts(const ast::stmt_list::ptr& stmt) { - for (auto i = 0u; i < stmt->list.size(); i++) + for (auto i = static_cast>(stmt->list.size() - 1); i >= 0; i--) + //for (auto i = 0u; i < stmt->list.size(); i++) { if (stmt->list.at(i) == ast::kind::asm_jump) { auto loc = stmt->list.at(i).loc(); auto jump_loc = stmt->list.at(i).as_jump->value; - if (jump_loc == blocks_.back().loc_continue) - { - stmt->list.erase(stmt->list.begin() + i); - auto new_stmt = ast::stmt(std::make_unique(loc)); - stmt->list.insert(stmt->list.begin() + i, std::move(new_stmt)); - } - else if (jump_loc == blocks_.back().loc_break) + if (jump_loc == blocks_.back().loc_break) { stmt->list.erase(stmt->list.begin() + i); auto new_stmt = ast::stmt(std::make_unique(loc)); stmt->list.insert(stmt->list.begin() + i, std::move(new_stmt)); } + else if (jump_loc == blocks_.back().loc_continue) + { + stmt->list.erase(stmt->list.begin() + i); + auto new_stmt = ast::stmt(std::make_unique(loc)); + stmt->list.insert(stmt->list.begin() + i, std::move(new_stmt)); + } else { + // fix for treyarch compiler bug: nested switch break locs are not preserved + if (jump_loc != blocks_.back().loc_end) + { + auto j = find_location_index(stmt, jump_loc); + + if (stmt->list.at(j).as_node->kind() == ast::kind::stmt_break) + { + stmt->list.erase(stmt->list.begin() + i); + auto new_stmt = ast::stmt(std::make_unique(loc)); + stmt->list.insert(stmt->list.begin() + i, std::move(new_stmt)); + + continue; + } + } std::cout << "WARNING: unresolved jump to '" + jump_loc + "', maybe incomplete for loop\n"; } } diff --git a/src/t6/xsk/disassembler.cpp b/src/t6/xsk/disassembler.cpp index 626814c3..bfa92591 100644 --- a/src/t6/xsk/disassembler.cpp +++ b/src/t6/xsk/disassembler.cpp @@ -108,7 +108,9 @@ void disassembler::disassemble(const std::string& file, std::vectorrefs.push_back(script_->read()); + auto ref = script_->read(); + entry->refs.push_back(ref); + anim_refs_.insert({ ref, entry }); } for (auto k = 0; k < anim_count; k++) @@ -367,6 +369,7 @@ void disassembler::disassemble_instruction(const instruction::ptr& inst) break; case opcode::OP_GetInteger: inst->size += script_->align(4); + disassemble_animtree(inst); inst->data.push_back(utils::string::va("%i", script_->read())); break; case opcode::OP_GetFloat: @@ -465,6 +468,19 @@ void disassembler::disassemble_string(const instruction::ptr& inst) throw disasm_error(utils::string::va("string reference not found at index '%04X'!", inst->index)); } +void disassembler::disassemble_animtree(const instruction::ptr& inst) +{ + // GetInteger(-1) push animtree name if ref found + + const auto ref = script_->pos(); + const auto entry = anim_refs_.find(ref); + + if (entry != anim_refs_.end()) + { + inst->data.push_back(entry->second->name); + } +} + void disassembler::disassemble_animation(const instruction::ptr& inst) { inst->size += script_->align(4); diff --git a/src/t6/xsk/disassembler.hpp b/src/t6/xsk/disassembler.hpp index 66587c39..06af722f 100644 --- a/src/t6/xsk/disassembler.hpp +++ b/src/t6/xsk/disassembler.hpp @@ -34,6 +34,7 @@ private: void disassemble_function(const function::ptr& func); void disassemble_instruction(const instruction::ptr& inst); void disassemble_string(const instruction::ptr& inst); + void disassemble_animtree(const instruction::ptr& inst); void disassemble_animation(const instruction::ptr& inst); void disassemble_localvars(const instruction::ptr& inst); void disassemble_import(const instruction::ptr& inst); diff --git a/src/t6/xsk/lexer.cpp b/src/t6/xsk/lexer.cpp index 2a659515..8dd494aa 100644 --- a/src/t6/xsk/lexer.cpp +++ b/src/t6/xsk/lexer.cpp @@ -29,6 +29,7 @@ const std::unordered_map keywo { "#inline", parser::token::INLINE }, { "#include", parser::token::INCLUDE }, { "#using_animtree", parser::token::USINGTREE }, + { "#animtree", parser::token::ANIMTREE }, { "endon", parser::token::ENDON }, { "notify", parser::token::NOTIFY }, { "wait", parser::token::WAIT }, diff --git a/src/t6/xsk/parser.cpp b/src/t6/xsk/parser.cpp index f54b89bf..05c1b1bd 100644 --- a/src/t6/xsk/parser.cpp +++ b/src/t6/xsk/parser.cpp @@ -276,6 +276,10 @@ namespace xsk { namespace arc { namespace t6 { value.YY_MOVE_OR_COPY< ast::expr_animation::ptr > (YY_MOVE (that.value)); break; + case symbol_kind::S_expr_animtree: // expr_animtree + value.YY_MOVE_OR_COPY< ast::expr_animtree::ptr > (YY_MOVE (that.value)); + break; + case symbol_kind::S_expr_arguments: // expr_arguments case symbol_kind::S_expr_arguments_no_empty: // expr_arguments_no_empty value.YY_MOVE_OR_COPY< ast::expr_arguments::ptr > (YY_MOVE (that.value)); @@ -643,6 +647,10 @@ namespace xsk { namespace arc { namespace t6 { value.move< ast::expr_animation::ptr > (YY_MOVE (that.value)); break; + case symbol_kind::S_expr_animtree: // expr_animtree + value.move< ast::expr_animtree::ptr > (YY_MOVE (that.value)); + break; + case symbol_kind::S_expr_arguments: // expr_arguments case symbol_kind::S_expr_arguments_no_empty: // expr_arguments_no_empty value.move< ast::expr_arguments::ptr > (YY_MOVE (that.value)); @@ -1010,6 +1018,10 @@ namespace xsk { namespace arc { namespace t6 { value.copy< ast::expr_animation::ptr > (that.value); break; + case symbol_kind::S_expr_animtree: // expr_animtree + value.copy< ast::expr_animtree::ptr > (that.value); + break; + case symbol_kind::S_expr_arguments: // expr_arguments case symbol_kind::S_expr_arguments_no_empty: // expr_arguments_no_empty value.copy< ast::expr_arguments::ptr > (that.value); @@ -1376,6 +1388,10 @@ namespace xsk { namespace arc { namespace t6 { value.move< ast::expr_animation::ptr > (that.value); break; + case symbol_kind::S_expr_animtree: // expr_animtree + value.move< ast::expr_animtree::ptr > (that.value); + break; + case symbol_kind::S_expr_arguments: // expr_arguments case symbol_kind::S_expr_arguments_no_empty: // expr_arguments_no_empty value.move< ast::expr_arguments::ptr > (that.value); @@ -1997,6 +2013,10 @@ namespace xsk { namespace arc { namespace t6 { yylhs.value.emplace< ast::expr_animation::ptr > (); break; + case symbol_kind::S_expr_animtree: // expr_animtree + yylhs.value.emplace< ast::expr_animtree::ptr > (); + break; + case symbol_kind::S_expr_arguments: // expr_arguments case symbol_kind::S_expr_arguments_no_empty: // expr_arguments_no_empty yylhs.value.emplace< ast::expr_arguments::ptr > (); @@ -2309,1543 +2329,1555 @@ namespace xsk { namespace arc { namespace t6 { switch (yyn) { case 2: // root: program -#line 288 "parser.ypp" +#line 290 "parser.ypp" { ast = std::move(yystack_[0].value.as < ast::program::ptr > ()); } -#line 2315 "parser.cpp" +#line 2335 "parser.cpp" break; case 3: // root: %empty -#line 289 "parser.ypp" +#line 291 "parser.ypp" { ast = std::make_unique(yylhs.location); } -#line 2321 "parser.cpp" +#line 2341 "parser.cpp" break; case 4: // program: program inline -#line 294 "parser.ypp" +#line 296 "parser.ypp" { yylhs.value.as < ast::program::ptr > () = std::move(yystack_[1].value.as < ast::program::ptr > ()); } -#line 2327 "parser.cpp" +#line 2347 "parser.cpp" break; case 5: // program: program include -#line 296 "parser.ypp" +#line 298 "parser.ypp" { yylhs.value.as < ast::program::ptr > () = std::move(yystack_[1].value.as < ast::program::ptr > ()); yylhs.value.as < ast::program::ptr > ()->includes.push_back(std::move(yystack_[0].value.as < ast::include::ptr > ())); } -#line 2333 "parser.cpp" +#line 2353 "parser.cpp" break; case 6: // program: program declaration -#line 298 "parser.ypp" +#line 300 "parser.ypp" { yylhs.value.as < ast::program::ptr > () = std::move(yystack_[1].value.as < ast::program::ptr > ()); yylhs.value.as < ast::program::ptr > ()->declarations.push_back(std::move(yystack_[0].value.as < ast::decl > ())); } -#line 2339 "parser.cpp" +#line 2359 "parser.cpp" break; case 7: // program: inline -#line 300 "parser.ypp" +#line 302 "parser.ypp" { yylhs.value.as < ast::program::ptr > () = std::make_unique(yylhs.location); } -#line 2345 "parser.cpp" +#line 2365 "parser.cpp" break; case 8: // program: include -#line 302 "parser.ypp" +#line 304 "parser.ypp" { yylhs.value.as < ast::program::ptr > () = std::make_unique(yylhs.location); yylhs.value.as < ast::program::ptr > ()->includes.push_back(std::move(yystack_[0].value.as < ast::include::ptr > ())); } -#line 2351 "parser.cpp" +#line 2371 "parser.cpp" break; case 9: // program: declaration -#line 304 "parser.ypp" +#line 306 "parser.ypp" { yylhs.value.as < ast::program::ptr > () = std::make_unique(yylhs.location); yylhs.value.as < ast::program::ptr > ()->declarations.push_back(std::move(yystack_[0].value.as < ast::decl > ())); } -#line 2357 "parser.cpp" +#line 2377 "parser.cpp" break; case 10: // inline: "#inline" expr_path ";" -#line 308 "parser.ypp" +#line 310 "parser.ypp" { lexer.push_header(yystack_[1].value.as < ast::expr_path::ptr > ()->value); } -#line 2363 "parser.cpp" +#line 2383 "parser.cpp" break; case 11: // include: "#include" expr_path ";" -#line 313 "parser.ypp" +#line 315 "parser.ypp" { yylhs.value.as < ast::include::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr_path::ptr > ())); } -#line 2369 "parser.cpp" +#line 2389 "parser.cpp" break; case 12: // declaration: "/#" -#line 317 "parser.ypp" +#line 319 "parser.ypp" { yylhs.value.as < ast::decl > ().as_dev_begin = std::make_unique(yylhs.location); } -#line 2375 "parser.cpp" +#line 2395 "parser.cpp" break; case 13: // declaration: "#/" -#line 318 "parser.ypp" +#line 320 "parser.ypp" { yylhs.value.as < ast::decl > ().as_dev_end = std::make_unique(yylhs.location); } -#line 2381 "parser.cpp" +#line 2401 "parser.cpp" break; case 14: // declaration: decl_usingtree -#line 319 "parser.ypp" +#line 321 "parser.ypp" { yylhs.value.as < ast::decl > ().as_usingtree = std::move(yystack_[0].value.as < ast::decl_usingtree::ptr > ()); } -#line 2387 "parser.cpp" +#line 2407 "parser.cpp" break; case 15: // declaration: decl_constant -#line 320 "parser.ypp" +#line 322 "parser.ypp" { yylhs.value.as < ast::decl > ().as_constant = std::move(yystack_[0].value.as < ast::decl_constant::ptr > ()); } -#line 2393 "parser.cpp" +#line 2413 "parser.cpp" break; case 16: // declaration: decl_thread -#line 321 "parser.ypp" +#line 323 "parser.ypp" { yylhs.value.as < ast::decl > ().as_thread = std::move(yystack_[0].value.as < ast::decl_thread::ptr > ()); } -#line 2399 "parser.cpp" +#line 2419 "parser.cpp" break; case 17: // decl_usingtree: "#using_animtree" "(" expr_string ")" ";" -#line 326 "parser.ypp" +#line 328 "parser.ypp" { lexer.ban_header(yylhs.location); yylhs.value.as < ast::decl_usingtree::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr_string::ptr > ())); } -#line 2405 "parser.cpp" +#line 2425 "parser.cpp" break; case 18: // decl_constant: expr_identifier "=" expr ";" -#line 331 "parser.ypp" +#line 333 "parser.ypp" { yylhs.value.as < ast::decl_constant::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[3].value.as < ast::expr_identifier::ptr > ()), std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2411 "parser.cpp" +#line 2431 "parser.cpp" break; case 19: // decl_thread: expr_identifier "(" expr_parameters ")" stmt_block -#line 336 "parser.ypp" +#line 338 "parser.ypp" { lexer.ban_header(yylhs.location); yylhs.value.as < ast::decl_thread::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[4].value.as < ast::expr_identifier::ptr > ()), std::move(yystack_[2].value.as < ast::expr_parameters::ptr > ()), std::move(yystack_[0].value.as < ast::stmt_list::ptr > ())); } -#line 2417 "parser.cpp" +#line 2437 "parser.cpp" break; case 20: // stmt: stmt_block -#line 340 "parser.ypp" +#line 342 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_list = std::move(yystack_[0].value.as < ast::stmt_list::ptr > ()); } -#line 2423 "parser.cpp" +#line 2443 "parser.cpp" break; case 21: // stmt: stmt_call -#line 341 "parser.ypp" +#line 343 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_call = std::move(yystack_[0].value.as < ast::stmt_call::ptr > ()); } -#line 2429 "parser.cpp" +#line 2449 "parser.cpp" break; case 22: // stmt: stmt_assign -#line 342 "parser.ypp" +#line 344 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_assign = std::move(yystack_[0].value.as < ast::stmt_assign::ptr > ()); } -#line 2435 "parser.cpp" +#line 2455 "parser.cpp" break; case 23: // stmt: stmt_endon -#line 343 "parser.ypp" +#line 345 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_endon = std::move(yystack_[0].value.as < ast::stmt_endon::ptr > ()); } -#line 2441 "parser.cpp" +#line 2461 "parser.cpp" break; case 24: // stmt: stmt_notify -#line 344 "parser.ypp" +#line 346 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_notify = std::move(yystack_[0].value.as < ast::stmt_notify::ptr > ()); } -#line 2447 "parser.cpp" +#line 2467 "parser.cpp" break; case 25: // stmt: stmt_wait -#line 345 "parser.ypp" +#line 347 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_wait = std::move(yystack_[0].value.as < ast::stmt_wait::ptr > ()); } -#line 2453 "parser.cpp" +#line 2473 "parser.cpp" break; case 26: // stmt: stmt_waittill -#line 346 "parser.ypp" +#line 348 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittill = std::move(yystack_[0].value.as < ast::stmt_waittill::ptr > ()); } -#line 2459 "parser.cpp" +#line 2479 "parser.cpp" break; case 27: // stmt: stmt_waittillmatch -#line 347 "parser.ypp" +#line 349 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittillmatch = std::move(yystack_[0].value.as < ast::stmt_waittillmatch::ptr > ()); } -#line 2465 "parser.cpp" +#line 2485 "parser.cpp" break; case 28: // stmt: stmt_waittillframeend -#line 348 "parser.ypp" +#line 350 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittillframeend = std::move(yystack_[0].value.as < ast::stmt_waittillframeend::ptr > ()); } -#line 2471 "parser.cpp" +#line 2491 "parser.cpp" break; case 29: // stmt: stmt_if -#line 349 "parser.ypp" +#line 351 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_if = std::move(yystack_[0].value.as < ast::stmt_if::ptr > ()); } -#line 2477 "parser.cpp" +#line 2497 "parser.cpp" break; case 30: // stmt: stmt_ifelse -#line 350 "parser.ypp" +#line 352 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_ifelse = std::move(yystack_[0].value.as < ast::stmt_ifelse::ptr > ()); } -#line 2483 "parser.cpp" +#line 2503 "parser.cpp" break; case 31: // stmt: stmt_while -#line 351 "parser.ypp" +#line 353 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_while = std::move(yystack_[0].value.as < ast::stmt_while::ptr > ()); } -#line 2489 "parser.cpp" +#line 2509 "parser.cpp" break; case 32: // stmt: stmt_dowhile -#line 352 "parser.ypp" +#line 354 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_dowhile = std::move(yystack_[0].value.as < ast::stmt_dowhile::ptr > ()); } -#line 2495 "parser.cpp" +#line 2515 "parser.cpp" break; case 33: // stmt: stmt_for -#line 353 "parser.ypp" +#line 355 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_for = std::move(yystack_[0].value.as < ast::stmt_for::ptr > ()); } -#line 2501 "parser.cpp" +#line 2521 "parser.cpp" break; case 34: // stmt: stmt_foreach -#line 354 "parser.ypp" +#line 356 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_foreach = std::move(yystack_[0].value.as < ast::stmt_foreach::ptr > ()); } -#line 2507 "parser.cpp" +#line 2527 "parser.cpp" break; case 35: // stmt: stmt_switch -#line 355 "parser.ypp" +#line 357 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_switch = std::move(yystack_[0].value.as < ast::stmt_switch::ptr > ()); } -#line 2513 "parser.cpp" +#line 2533 "parser.cpp" break; case 36: // stmt: stmt_case -#line 356 "parser.ypp" +#line 358 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_case = std::move(yystack_[0].value.as < ast::stmt_case::ptr > ()); } -#line 2519 "parser.cpp" +#line 2539 "parser.cpp" break; case 37: // stmt: stmt_default -#line 357 "parser.ypp" +#line 359 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_default = std::move(yystack_[0].value.as < ast::stmt_default::ptr > ()); } -#line 2525 "parser.cpp" +#line 2545 "parser.cpp" break; case 38: // stmt: stmt_break -#line 358 "parser.ypp" +#line 360 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_break = std::move(yystack_[0].value.as < ast::stmt_break::ptr > ()); } -#line 2531 "parser.cpp" +#line 2551 "parser.cpp" break; case 39: // stmt: stmt_continue -#line 359 "parser.ypp" +#line 361 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_continue = std::move(yystack_[0].value.as < ast::stmt_continue::ptr > ()); } -#line 2537 "parser.cpp" +#line 2557 "parser.cpp" break; case 40: // stmt: stmt_return -#line 360 "parser.ypp" +#line 362 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_return = std::move(yystack_[0].value.as < ast::stmt_return::ptr > ()); } -#line 2543 "parser.cpp" +#line 2563 "parser.cpp" break; case 41: // stmt: stmt_prof_begin -#line 361 "parser.ypp" +#line 363 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_prof_begin = std::move(yystack_[0].value.as < ast::stmt_prof_begin::ptr > ()); } -#line 2549 "parser.cpp" +#line 2569 "parser.cpp" break; case 42: // stmt: stmt_prof_end -#line 362 "parser.ypp" +#line 364 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_prof_end = std::move(yystack_[0].value.as < ast::stmt_prof_end::ptr > ()); } -#line 2555 "parser.cpp" +#line 2575 "parser.cpp" break; case 43: // stmt_or_dev: stmt -#line 366 "parser.ypp" +#line 368 "parser.ypp" { yylhs.value.as < ast::stmt > () = std::move(yystack_[0].value.as < ast::stmt > ()); } -#line 2561 "parser.cpp" +#line 2581 "parser.cpp" break; case 44: // stmt_or_dev: stmt_dev -#line 367 "parser.ypp" +#line 369 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_dev = std::move(yystack_[0].value.as < ast::stmt_dev::ptr > ()); } -#line 2567 "parser.cpp" +#line 2587 "parser.cpp" break; case 45: // stmt_list: stmt_list stmt -#line 372 "parser.ypp" +#line 374 "parser.ypp" { yylhs.value.as < ast::stmt_list::ptr > () = std::move(yystack_[1].value.as < ast::stmt_list::ptr > ()); yylhs.value.as < ast::stmt_list::ptr > ()->list.push_back(std::move(yystack_[0].value.as < ast::stmt > ())); } -#line 2573 "parser.cpp" +#line 2593 "parser.cpp" break; case 46: // stmt_list: stmt -#line 374 "parser.ypp" +#line 376 "parser.ypp" { yylhs.value.as < ast::stmt_list::ptr > () = std::make_unique(yylhs.location); yylhs.value.as < ast::stmt_list::ptr > ()->list.push_back(std::move(yystack_[0].value.as < ast::stmt > ())); } -#line 2579 "parser.cpp" +#line 2599 "parser.cpp" break; case 47: // stmt_or_dev_list: stmt_or_dev_list stmt_or_dev -#line 379 "parser.ypp" +#line 381 "parser.ypp" { yylhs.value.as < ast::stmt_list::ptr > () = std::move(yystack_[1].value.as < ast::stmt_list::ptr > ()); yylhs.value.as < ast::stmt_list::ptr > ()->list.push_back(std::move(yystack_[0].value.as < ast::stmt > ())); } -#line 2585 "parser.cpp" +#line 2605 "parser.cpp" break; case 48: // stmt_or_dev_list: stmt_or_dev -#line 381 "parser.ypp" +#line 383 "parser.ypp" { yylhs.value.as < ast::stmt_list::ptr > () = std::make_unique(yylhs.location); yylhs.value.as < ast::stmt_list::ptr > ()->list.push_back(std::move(yystack_[0].value.as < ast::stmt > ())); } -#line 2591 "parser.cpp" +#line 2611 "parser.cpp" break; case 49: // stmt_dev: "/#" stmt_list "#/" -#line 385 "parser.ypp" +#line 387 "parser.ypp" { yylhs.value.as < ast::stmt_dev::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::stmt_list::ptr > ())); } -#line 2597 "parser.cpp" +#line 2617 "parser.cpp" break; case 50: // stmt_dev: "/#" "#/" -#line 386 "parser.ypp" +#line 388 "parser.ypp" { yylhs.value.as < ast::stmt_dev::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2603 "parser.cpp" +#line 2623 "parser.cpp" break; case 51: // stmt_block: "{" stmt_or_dev_list "}" -#line 390 "parser.ypp" +#line 392 "parser.ypp" { yylhs.value.as < ast::stmt_list::ptr > () = std::move(yystack_[1].value.as < ast::stmt_list::ptr > ()); } -#line 2609 "parser.cpp" +#line 2629 "parser.cpp" break; case 52: // stmt_block: "{" "}" -#line 391 "parser.ypp" +#line 393 "parser.ypp" { yylhs.value.as < ast::stmt_list::ptr > () = std::make_unique(yylhs.location); } -#line 2615 "parser.cpp" +#line 2635 "parser.cpp" break; case 53: // stmt_expr: expr_assign -#line 396 "parser.ypp" +#line 398 "parser.ypp" { yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2621 "parser.cpp" +#line 2641 "parser.cpp" break; case 54: // stmt_expr: expr_increment -#line 398 "parser.ypp" +#line 400 "parser.ypp" { yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2627 "parser.cpp" +#line 2647 "parser.cpp" break; case 55: // stmt_expr: expr_decrement -#line 400 "parser.ypp" +#line 402 "parser.ypp" { yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2633 "parser.cpp" +#line 2653 "parser.cpp" break; case 56: // stmt_expr: %empty -#line 402 "parser.ypp" +#line 404 "parser.ypp" { yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2639 "parser.cpp" +#line 2659 "parser.cpp" break; case 57: // stmt_call: expr_call ";" -#line 407 "parser.ypp" +#line 409 "parser.ypp" { yylhs.value.as < ast::stmt_call::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[1].value.as < ast::expr_call::ptr > ()))); } -#line 2645 "parser.cpp" +#line 2665 "parser.cpp" break; case 58: // stmt_call: expr_method ";" -#line 409 "parser.ypp" +#line 411 "parser.ypp" { yylhs.value.as < ast::stmt_call::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[1].value.as < ast::expr_method::ptr > ()))); } -#line 2651 "parser.cpp" +#line 2671 "parser.cpp" break; case 59: // stmt_assign: expr_assign ";" -#line 414 "parser.ypp" +#line 416 "parser.ypp" { yylhs.value.as < ast::stmt_assign::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2657 "parser.cpp" +#line 2677 "parser.cpp" break; case 60: // stmt_assign: expr_increment ";" -#line 416 "parser.ypp" +#line 418 "parser.ypp" { yylhs.value.as < ast::stmt_assign::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2663 "parser.cpp" +#line 2683 "parser.cpp" break; case 61: // stmt_assign: expr_decrement ";" -#line 418 "parser.ypp" +#line 420 "parser.ypp" { yylhs.value.as < ast::stmt_assign::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2669 "parser.cpp" +#line 2689 "parser.cpp" break; case 62: // stmt_endon: expr_object "endon" "(" expr ")" ";" -#line 423 "parser.ypp" +#line 425 "parser.ypp" { yylhs.value.as < ast::stmt_endon::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[5].value.as < ast::expr > ()), std::move(yystack_[2].value.as < ast::expr > ())); } -#line 2675 "parser.cpp" +#line 2695 "parser.cpp" break; case 63: // stmt_notify: expr_object "notify" "(" expr "," expr_arguments_no_empty ")" ";" -#line 428 "parser.ypp" +#line 430 "parser.ypp" { yylhs.value.as < ast::stmt_notify::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[7].value.as < ast::expr > ()), std::move(yystack_[4].value.as < ast::expr > ()), std::move(yystack_[2].value.as < ast::expr_arguments::ptr > ())); } -#line 2681 "parser.cpp" +#line 2701 "parser.cpp" break; case 64: // stmt_notify: expr_object "notify" "(" expr ")" ";" -#line 430 "parser.ypp" +#line 432 "parser.ypp" { yylhs.value.as < ast::stmt_notify::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[5].value.as < ast::expr > ()), std::move(yystack_[2].value.as < ast::expr > ()), std::make_unique(yylhs.location)); } -#line 2687 "parser.cpp" +#line 2707 "parser.cpp" break; case 65: // stmt_wait: "wait" expr ";" -#line 435 "parser.ypp" +#line 437 "parser.ypp" { yylhs.value.as < ast::stmt_wait::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2693 "parser.cpp" +#line 2713 "parser.cpp" break; case 66: // stmt_waittill: expr_object "waittill" "(" expr "," expr_arguments_no_empty ")" ";" -#line 440 "parser.ypp" +#line 442 "parser.ypp" { yylhs.value.as < ast::stmt_waittill::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[7].value.as < ast::expr > ()), std::move(yystack_[4].value.as < ast::expr > ()), std::move(yystack_[2].value.as < ast::expr_arguments::ptr > ())); } -#line 2699 "parser.cpp" +#line 2719 "parser.cpp" break; case 67: // stmt_waittill: expr_object "waittill" "(" expr ")" ";" -#line 442 "parser.ypp" +#line 444 "parser.ypp" { yylhs.value.as < ast::stmt_waittill::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[5].value.as < ast::expr > ()), std::move(yystack_[2].value.as < ast::expr > ()), std::make_unique(yylhs.location)); } -#line 2705 "parser.cpp" +#line 2725 "parser.cpp" break; case 68: // stmt_waittillmatch: expr_object "waittillmatch" "(" expr "," expr_arguments_no_empty ")" ";" -#line 447 "parser.ypp" +#line 449 "parser.ypp" { yylhs.value.as < ast::stmt_waittillmatch::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[7].value.as < ast::expr > ()), std::move(yystack_[4].value.as < ast::expr > ()), std::move(yystack_[2].value.as < ast::expr_arguments::ptr > ())); } -#line 2711 "parser.cpp" +#line 2731 "parser.cpp" break; case 69: // stmt_waittillmatch: expr_object "waittillmatch" "(" expr ")" ";" -#line 449 "parser.ypp" +#line 451 "parser.ypp" { yylhs.value.as < ast::stmt_waittillmatch::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[5].value.as < ast::expr > ()), std::move(yystack_[2].value.as < ast::expr > ()), std::make_unique(yylhs.location)); } -#line 2717 "parser.cpp" +#line 2737 "parser.cpp" break; case 70: // stmt_waittillframeend: "waittillframeend" ";" -#line 454 "parser.ypp" +#line 456 "parser.ypp" { yylhs.value.as < ast::stmt_waittillframeend::ptr > () = std::make_unique(yylhs.location); } -#line 2723 "parser.cpp" +#line 2743 "parser.cpp" break; case 71: // stmt_if: "if" "(" expr ")" stmt -#line 459 "parser.ypp" +#line 461 "parser.ypp" { yylhs.value.as < ast::stmt_if::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::stmt > ())); } -#line 2729 "parser.cpp" +#line 2749 "parser.cpp" break; case 72: // stmt_ifelse: "if" "(" expr ")" stmt "else" stmt -#line 464 "parser.ypp" +#line 466 "parser.ypp" { yylhs.value.as < ast::stmt_ifelse::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[4].value.as < ast::expr > ()), std::move(yystack_[2].value.as < ast::stmt > ()), std::move(yystack_[0].value.as < ast::stmt > ())); } -#line 2735 "parser.cpp" +#line 2755 "parser.cpp" break; case 73: // stmt_while: "while" "(" expr ")" stmt -#line 469 "parser.ypp" +#line 471 "parser.ypp" { yylhs.value.as < ast::stmt_while::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::stmt > ())); } -#line 2741 "parser.cpp" +#line 2761 "parser.cpp" break; case 74: // stmt_dowhile: "do" stmt "while" "(" expr ")" ";" -#line 474 "parser.ypp" +#line 476 "parser.ypp" { yylhs.value.as < ast::stmt_dowhile::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[5].value.as < ast::stmt > ())); } -#line 2747 "parser.cpp" +#line 2767 "parser.cpp" break; case 75: // stmt_for: "for" "(" stmt_expr ";" expr_or_empty ";" stmt_expr ")" stmt -#line 479 "parser.ypp" +#line 481 "parser.ypp" { yylhs.value.as < ast::stmt_for::ptr > () = std::make_unique(yylhs.location, ast::stmt(std::move(yystack_[6].value.as < ast::stmt_expr::ptr > ())), std::move(yystack_[4].value.as < ast::expr > ()), ast::stmt(std::move(yystack_[2].value.as < ast::stmt_expr::ptr > ())), std::move(yystack_[0].value.as < ast::stmt > ())); } -#line 2753 "parser.cpp" +#line 2773 "parser.cpp" break; case 76: // stmt_foreach: "foreach" "(" expr_identifier "in" expr ")" stmt -#line 484 "parser.ypp" +#line 486 "parser.ypp" { yylhs.value.as < ast::stmt_foreach::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[4].value.as < ast::expr_identifier::ptr > ())), std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::stmt > ())); } -#line 2759 "parser.cpp" +#line 2779 "parser.cpp" break; case 77: // stmt_foreach: "foreach" "(" expr_identifier "," expr_identifier "in" expr ")" stmt -#line 486 "parser.ypp" +#line 488 "parser.ypp" { yylhs.value.as < ast::stmt_foreach::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[6].value.as < ast::expr_identifier::ptr > ())), ast::expr(std::move(yystack_[4].value.as < ast::expr_identifier::ptr > ())), std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::stmt > ())); } -#line 2765 "parser.cpp" +#line 2785 "parser.cpp" break; case 78: // stmt_switch: "switch" "(" expr ")" stmt_block -#line 491 "parser.ypp" +#line 493 "parser.ypp" { yylhs.value.as < ast::stmt_switch::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::stmt_list::ptr > ())); } -#line 2771 "parser.cpp" +#line 2791 "parser.cpp" break; case 79: // stmt_case: "case" expr_integer ":" -#line 496 "parser.ypp" +#line 498 "parser.ypp" { yylhs.value.as < ast::stmt_case::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[1].value.as < ast::expr_integer::ptr > ())), std::make_unique(yylhs.location)); } -#line 2777 "parser.cpp" +#line 2797 "parser.cpp" break; case 80: // stmt_case: "case" expr_string ":" -#line 498 "parser.ypp" +#line 500 "parser.ypp" { yylhs.value.as < ast::stmt_case::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[1].value.as < ast::expr_string::ptr > ())), std::make_unique(yylhs.location)); } -#line 2783 "parser.cpp" +#line 2803 "parser.cpp" break; case 81: // stmt_default: "default" ":" -#line 503 "parser.ypp" +#line 505 "parser.ypp" { yylhs.value.as < ast::stmt_default::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2789 "parser.cpp" +#line 2809 "parser.cpp" break; case 82: // stmt_break: "break" ";" -#line 508 "parser.ypp" +#line 510 "parser.ypp" { yylhs.value.as < ast::stmt_break::ptr > () = std::make_unique(yylhs.location); } -#line 2795 "parser.cpp" +#line 2815 "parser.cpp" break; case 83: // stmt_continue: "continue" ";" -#line 513 "parser.ypp" +#line 515 "parser.ypp" { yylhs.value.as < ast::stmt_continue::ptr > () = std::make_unique(yylhs.location); } -#line 2801 "parser.cpp" +#line 2821 "parser.cpp" break; case 84: // stmt_return: "return" expr ";" -#line 518 "parser.ypp" +#line 520 "parser.ypp" { yylhs.value.as < ast::stmt_return::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2807 "parser.cpp" +#line 2827 "parser.cpp" break; case 85: // stmt_return: "return" ";" -#line 520 "parser.ypp" +#line 522 "parser.ypp" { yylhs.value.as < ast::stmt_return::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2813 "parser.cpp" +#line 2833 "parser.cpp" break; case 86: // stmt_prof_begin: "prof_begin" "(" expr_arguments ")" ";" -#line 525 "parser.ypp" +#line 527 "parser.ypp" { yylhs.value.as < ast::stmt_prof_begin::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr_arguments::ptr > ())); } -#line 2819 "parser.cpp" +#line 2839 "parser.cpp" break; case 87: // stmt_prof_end: "prof_end" "(" expr_arguments ")" ";" -#line 530 "parser.ypp" +#line 532 "parser.ypp" { yylhs.value.as < ast::stmt_prof_end::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr_arguments::ptr > ())); } -#line 2825 "parser.cpp" +#line 2845 "parser.cpp" break; case 88: // expr: expr_ternary -#line 534 "parser.ypp" +#line 536 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2831 "parser.cpp" +#line 2851 "parser.cpp" break; case 89: // expr: expr_binary -#line 535 "parser.ypp" +#line 537 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2837 "parser.cpp" +#line 2857 "parser.cpp" break; case 90: // expr: expr_primitive -#line 536 "parser.ypp" +#line 538 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2843 "parser.cpp" +#line 2863 "parser.cpp" break; case 91: // expr_or_empty: expr -#line 540 "parser.ypp" +#line 542 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2849 "parser.cpp" +#line 2869 "parser.cpp" break; case 92: // expr_or_empty: %empty -#line 541 "parser.ypp" +#line 543 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location); } -#line 2855 "parser.cpp" +#line 2875 "parser.cpp" break; case 93: // expr_assign: expr_object "=" expr -#line 546 "parser.ypp" +#line 548 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2861 "parser.cpp" +#line 2881 "parser.cpp" break; case 94: // expr_assign: expr_object "|=" expr -#line 548 "parser.ypp" +#line 550 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2867 "parser.cpp" +#line 2887 "parser.cpp" break; case 95: // expr_assign: expr_object "&=" expr -#line 550 "parser.ypp" +#line 552 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2873 "parser.cpp" +#line 2893 "parser.cpp" break; case 96: // expr_assign: expr_object "^=" expr -#line 552 "parser.ypp" +#line 554 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2879 "parser.cpp" +#line 2899 "parser.cpp" break; case 97: // expr_assign: expr_object "<<=" expr -#line 554 "parser.ypp" +#line 556 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()),std::move( yystack_[0].value.as < ast::expr > ())); } -#line 2885 "parser.cpp" +#line 2905 "parser.cpp" break; case 98: // expr_assign: expr_object ">>=" expr -#line 556 "parser.ypp" +#line 558 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2891 "parser.cpp" +#line 2911 "parser.cpp" break; case 99: // expr_assign: expr_object "+=" expr -#line 558 "parser.ypp" +#line 560 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2897 "parser.cpp" +#line 2917 "parser.cpp" break; case 100: // expr_assign: expr_object "-=" expr -#line 560 "parser.ypp" +#line 562 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2903 "parser.cpp" +#line 2923 "parser.cpp" break; case 101: // expr_assign: expr_object "*=" expr -#line 562 "parser.ypp" +#line 564 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2909 "parser.cpp" +#line 2929 "parser.cpp" break; case 102: // expr_assign: expr_object "/=" expr -#line 564 "parser.ypp" +#line 566 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2915 "parser.cpp" +#line 2935 "parser.cpp" break; case 103: // expr_assign: expr_object "%=" expr -#line 566 "parser.ypp" +#line 568 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2921 "parser.cpp" +#line 2941 "parser.cpp" break; case 104: // expr_increment: "++" expr_object -#line 571 "parser.ypp" +#line 573 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ()), true); } -#line 2927 "parser.cpp" +#line 2947 "parser.cpp" break; case 105: // expr_increment: expr_object "++" -#line 573 "parser.ypp" +#line 575 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ()), false); } -#line 2933 "parser.cpp" +#line 2953 "parser.cpp" break; case 106: // expr_decrement: "--" expr_object -#line 578 "parser.ypp" +#line 580 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ()), true); } -#line 2939 "parser.cpp" +#line 2959 "parser.cpp" break; case 107: // expr_decrement: expr_object "--" -#line 580 "parser.ypp" +#line 582 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ()), false); } -#line 2945 "parser.cpp" +#line 2965 "parser.cpp" break; case 108: // expr_ternary: expr "?" expr ":" expr -#line 585 "parser.ypp" +#line 587 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[4].value.as < ast::expr > ()), std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2951 "parser.cpp" +#line 2971 "parser.cpp" break; case 109: // expr_binary: expr "||" expr -#line 590 "parser.ypp" +#line 592 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2957 "parser.cpp" +#line 2977 "parser.cpp" break; case 110: // expr_binary: expr "&&" expr -#line 592 "parser.ypp" +#line 594 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2963 "parser.cpp" +#line 2983 "parser.cpp" break; case 111: // expr_binary: expr "==" expr -#line 594 "parser.ypp" +#line 596 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2969 "parser.cpp" +#line 2989 "parser.cpp" break; case 112: // expr_binary: expr "!=" expr -#line 596 "parser.ypp" +#line 598 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2975 "parser.cpp" +#line 2995 "parser.cpp" break; case 113: // expr_binary: expr "<=" expr -#line 598 "parser.ypp" +#line 600 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2981 "parser.cpp" +#line 3001 "parser.cpp" break; case 114: // expr_binary: expr ">=" expr -#line 600 "parser.ypp" +#line 602 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2987 "parser.cpp" +#line 3007 "parser.cpp" break; case 115: // expr_binary: expr "<" expr -#line 602 "parser.ypp" +#line 604 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2993 "parser.cpp" +#line 3013 "parser.cpp" break; case 116: // expr_binary: expr ">" expr -#line 604 "parser.ypp" +#line 606 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2999 "parser.cpp" +#line 3019 "parser.cpp" break; case 117: // expr_binary: expr "|" expr -#line 606 "parser.ypp" +#line 608 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); } -#line 3005 "parser.cpp" +#line 3025 "parser.cpp" break; case 118: // expr_binary: expr "&" expr -#line 608 "parser.ypp" +#line 610 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); } -#line 3011 "parser.cpp" +#line 3031 "parser.cpp" break; case 119: // expr_binary: expr "^" expr -#line 610 "parser.ypp" +#line 612 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); } -#line 3017 "parser.cpp" +#line 3037 "parser.cpp" break; case 120: // expr_binary: expr "<<" expr -#line 612 "parser.ypp" +#line 614 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); } -#line 3023 "parser.cpp" +#line 3043 "parser.cpp" break; case 121: // expr_binary: expr ">>" expr -#line 614 "parser.ypp" +#line 616 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); } -#line 3029 "parser.cpp" +#line 3049 "parser.cpp" break; case 122: // expr_binary: expr "+" expr -#line 616 "parser.ypp" +#line 618 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); } -#line 3035 "parser.cpp" +#line 3055 "parser.cpp" break; case 123: // expr_binary: expr "-" expr -#line 618 "parser.ypp" +#line 620 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); } -#line 3041 "parser.cpp" +#line 3061 "parser.cpp" break; case 124: // expr_binary: expr "*" expr -#line 620 "parser.ypp" +#line 622 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); } -#line 3047 "parser.cpp" +#line 3067 "parser.cpp" break; case 125: // expr_binary: expr "/" expr -#line 622 "parser.ypp" +#line 624 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); } -#line 3053 "parser.cpp" +#line 3073 "parser.cpp" break; case 126: // expr_binary: expr "%" expr -#line 624 "parser.ypp" +#line 626 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); } -#line 3059 "parser.cpp" +#line 3079 "parser.cpp" break; case 127: // expr_primitive: expr_complement -#line 628 "parser.ypp" +#line 630 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_complement::ptr > ()); } -#line 3065 "parser.cpp" +#line 3085 "parser.cpp" break; case 128: // expr_primitive: expr_negate -#line 629 "parser.ypp" +#line 631 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_negate::ptr > ()); } -#line 3071 "parser.cpp" +#line 3091 "parser.cpp" break; case 129: // expr_primitive: expr_not -#line 630 "parser.ypp" +#line 632 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_not::ptr > ()); } -#line 3077 "parser.cpp" +#line 3097 "parser.cpp" break; case 130: // expr_primitive: expr_call -#line 631 "parser.ypp" +#line 633 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } -#line 3083 "parser.cpp" +#line 3103 "parser.cpp" break; case 131: // expr_primitive: expr_method -#line 632 "parser.ypp" +#line 634 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } -#line 3089 "parser.cpp" +#line 3109 "parser.cpp" break; case 132: // expr_primitive: expr_getnextarraykey -#line 633 "parser.ypp" +#line 635 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_getnextarraykey::ptr > ()); } -#line 3095 "parser.cpp" +#line 3115 "parser.cpp" break; case 133: // expr_primitive: expr_getfirstarraykey -#line 634 "parser.ypp" +#line 636 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_getfirstarraykey::ptr > ()); } -#line 3101 "parser.cpp" +#line 3121 "parser.cpp" break; case 134: // expr_primitive: expr_getdvarcoloralpha -#line 635 "parser.ypp" +#line 637 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_getdvarcoloralpha::ptr > ()); } -#line 3107 "parser.cpp" +#line 3127 "parser.cpp" break; case 135: // expr_primitive: expr_getdvarcolorblue -#line 636 "parser.ypp" +#line 638 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_getdvarcolorblue::ptr > ()); } -#line 3113 "parser.cpp" +#line 3133 "parser.cpp" break; case 136: // expr_primitive: expr_getdvarcolorgreen -#line 637 "parser.ypp" +#line 639 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_getdvarcolorgreen::ptr > ()); } -#line 3119 "parser.cpp" +#line 3139 "parser.cpp" break; case 137: // expr_primitive: expr_getdvarcolorred -#line 638 "parser.ypp" +#line 640 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_getdvarcolorred::ptr > ()); } -#line 3125 "parser.cpp" +#line 3145 "parser.cpp" break; case 138: // expr_primitive: expr_getdvarvector -#line 639 "parser.ypp" +#line 641 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_getdvarvector::ptr > ()); } -#line 3131 "parser.cpp" +#line 3151 "parser.cpp" break; case 139: // expr_primitive: expr_getdvarfloat -#line 640 "parser.ypp" +#line 642 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_getdvarfloat::ptr > ()); } -#line 3137 "parser.cpp" +#line 3157 "parser.cpp" break; case 140: // expr_primitive: expr_getdvarint -#line 641 "parser.ypp" +#line 643 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_getdvarint::ptr > ()); } -#line 3143 "parser.cpp" +#line 3163 "parser.cpp" break; case 141: // expr_primitive: expr_getdvar -#line 642 "parser.ypp" +#line 644 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_getdvar::ptr > ()); } -#line 3149 "parser.cpp" +#line 3169 "parser.cpp" break; case 142: // expr_primitive: expr_gettime -#line 643 "parser.ypp" +#line 645 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_gettime::ptr > ()); } -#line 3155 "parser.cpp" +#line 3175 "parser.cpp" break; case 143: // expr_primitive: expr_abs -#line 644 "parser.ypp" +#line 646 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_abs::ptr > ()); } -#line 3161 "parser.cpp" +#line 3181 "parser.cpp" break; case 144: // expr_primitive: expr_vectortoangles -#line 645 "parser.ypp" +#line 647 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_vectortoangles::ptr > ()); } -#line 3167 "parser.cpp" +#line 3187 "parser.cpp" break; case 145: // expr_primitive: expr_angleclamp180 -#line 646 "parser.ypp" +#line 648 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_angleclamp180::ptr > ()); } -#line 3173 "parser.cpp" +#line 3193 "parser.cpp" break; case 146: // expr_primitive: expr_anglestoforward -#line 647 "parser.ypp" +#line 649 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anglestoforward::ptr > ()); } -#line 3179 "parser.cpp" +#line 3199 "parser.cpp" break; case 147: // expr_primitive: expr_anglestoright -#line 648 "parser.ypp" +#line 650 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anglestoright::ptr > ()); } -#line 3185 "parser.cpp" +#line 3205 "parser.cpp" break; case 148: // expr_primitive: expr_anglestoup -#line 649 "parser.ypp" +#line 651 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anglestoup::ptr > ()); } -#line 3191 "parser.cpp" +#line 3211 "parser.cpp" break; case 149: // expr_primitive: expr_vectorscale -#line 650 "parser.ypp" +#line 652 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_vectorscale::ptr > ()); } -#line 3197 "parser.cpp" +#line 3217 "parser.cpp" break; case 150: // expr_primitive: expr_isdefined -#line 651 "parser.ypp" +#line 653 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_isdefined::ptr > ()); } -#line 3203 "parser.cpp" +#line 3223 "parser.cpp" break; case 151: // expr_primitive: expr_reference -#line 652 "parser.ypp" +#line 654 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_reference::ptr > ()); } -#line 3209 "parser.cpp" +#line 3229 "parser.cpp" break; case 152: // expr_primitive: expr_array -#line 653 "parser.ypp" +#line 655 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } -#line 3215 "parser.cpp" +#line 3235 "parser.cpp" break; case 153: // expr_primitive: expr_field -#line 654 "parser.ypp" +#line 656 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } -#line 3221 "parser.cpp" +#line 3241 "parser.cpp" break; case 154: // expr_primitive: expr_size -#line 655 "parser.ypp" +#line 657 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_size::ptr > ()); } -#line 3227 "parser.cpp" +#line 3247 "parser.cpp" break; case 155: // expr_primitive: expr_paren -#line 656 "parser.ypp" +#line 658 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_paren::ptr > ()); } -#line 3233 "parser.cpp" +#line 3253 "parser.cpp" break; case 156: // expr_primitive: expr_empty_array -#line 657 "parser.ypp" +#line 659 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_empty_array::ptr > ()); } -#line 3239 "parser.cpp" +#line 3259 "parser.cpp" break; case 157: // expr_primitive: expr_undefined -#line 658 "parser.ypp" +#line 660 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_undefined::ptr > ()); } -#line 3245 "parser.cpp" +#line 3265 "parser.cpp" break; case 158: // expr_primitive: expr_game -#line 659 "parser.ypp" +#line 661 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } -#line 3251 "parser.cpp" +#line 3271 "parser.cpp" break; case 159: // expr_primitive: expr_self -#line 660 "parser.ypp" +#line 662 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } -#line 3257 "parser.cpp" +#line 3277 "parser.cpp" break; case 160: // expr_primitive: expr_anim -#line 661 "parser.ypp" +#line 663 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } -#line 3263 "parser.cpp" +#line 3283 "parser.cpp" break; case 161: // expr_primitive: expr_level -#line 662 "parser.ypp" +#line 664 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } -#line 3269 "parser.cpp" +#line 3289 "parser.cpp" break; case 162: // expr_primitive: expr_animation -#line 663 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animation::ptr > ()); } -#line 3275 "parser.cpp" - break; - - case 163: // expr_primitive: expr_identifier -#line 664 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()); } -#line 3281 "parser.cpp" - break; - - case 164: // expr_primitive: expr_istring #line 665 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_istring::ptr > ()); } -#line 3287 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animation::ptr > ()); } +#line 3295 "parser.cpp" break; - case 165: // expr_primitive: expr_string + case 163: // expr_primitive: expr_animtree #line 666 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_string::ptr > ()); } -#line 3293 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animtree::ptr > ()); } +#line 3301 "parser.cpp" break; - case 166: // expr_primitive: expr_vector + case 164: // expr_primitive: expr_identifier #line 667 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_vector::ptr > ()); } -#line 3299 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()); } +#line 3307 "parser.cpp" break; - case 167: // expr_primitive: expr_hash + case 165: // expr_primitive: expr_istring #line 668 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_hash::ptr > ()); } -#line 3305 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_istring::ptr > ()); } +#line 3313 "parser.cpp" break; - case 168: // expr_primitive: expr_float + case 166: // expr_primitive: expr_string #line 669 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_float::ptr > ()); } -#line 3311 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_string::ptr > ()); } +#line 3319 "parser.cpp" break; - case 169: // expr_primitive: expr_integer + case 167: // expr_primitive: expr_vector #line 670 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_integer::ptr > ()); } -#line 3317 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_vector::ptr > ()); } +#line 3325 "parser.cpp" break; - case 170: // expr_primitive: expr_false + case 168: // expr_primitive: expr_hash #line 671 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_false::ptr > ()); } -#line 3323 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_hash::ptr > ()); } +#line 3331 "parser.cpp" break; - case 171: // expr_primitive: expr_true + case 169: // expr_primitive: expr_float #line 672 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_float::ptr > ()); } +#line 3337 "parser.cpp" + break; + + case 170: // expr_primitive: expr_integer +#line 673 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_integer::ptr > ()); } +#line 3343 "parser.cpp" + break; + + case 171: // expr_primitive: expr_false +#line 674 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_false::ptr > ()); } +#line 3349 "parser.cpp" + break; + + case 172: // expr_primitive: expr_true +#line 675 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_true::ptr > ()); } -#line 3329 "parser.cpp" +#line 3355 "parser.cpp" break; - case 172: // expr_complement: "~" expr -#line 677 "parser.ypp" + case 173: // expr_complement: "~" expr +#line 680 "parser.ypp" { yylhs.value.as < ast::expr_complement::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 3335 "parser.cpp" +#line 3361 "parser.cpp" break; - case 173: // expr_negate: "-" expr_identifier -#line 682 "parser.ypp" + case 174: // expr_negate: "-" expr_identifier +#line 685 "parser.ypp" { yylhs.value.as < ast::expr_negate::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()))); } -#line 3341 "parser.cpp" +#line 3367 "parser.cpp" break; - case 174: // expr_negate: "-" expr_paren -#line 684 "parser.ypp" + case 175: // expr_negate: "-" expr_paren +#line 687 "parser.ypp" { yylhs.value.as < ast::expr_negate::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[0].value.as < ast::expr_paren::ptr > ()))); } -#line 3347 "parser.cpp" +#line 3373 "parser.cpp" break; - case 175: // expr_negate: "-" expr_array -#line 686 "parser.ypp" + case 176: // expr_negate: "-" expr_array +#line 689 "parser.ypp" { yylhs.value.as < ast::expr_negate::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[0].value.as < ast::expr_array::ptr > ()))); } -#line 3353 "parser.cpp" +#line 3379 "parser.cpp" break; - case 176: // expr_negate: "-" expr_field -#line 688 "parser.ypp" + case 177: // expr_negate: "-" expr_field +#line 691 "parser.ypp" { yylhs.value.as < ast::expr_negate::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[0].value.as < ast::expr_field::ptr > ()))); } -#line 3359 "parser.cpp" +#line 3385 "parser.cpp" break; - case 177: // expr_not: "!" expr -#line 693 "parser.ypp" + case 178: // expr_not: "!" expr +#line 696 "parser.ypp" { yylhs.value.as < ast::expr_not::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 3365 "parser.cpp" +#line 3391 "parser.cpp" break; - case 178: // expr_call: expr_function -#line 697 "parser.ypp" + case 179: // expr_call: expr_function +#line 700 "parser.ypp" { yylhs.value.as < ast::expr_call::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::call > ())); } -#line 3371 "parser.cpp" +#line 3397 "parser.cpp" break; - case 179: // expr_call: expr_pointer -#line 698 "parser.ypp" - { yylhs.value.as < ast::expr_call::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::call > ())); } -#line 3377 "parser.cpp" - break; - - case 180: // expr_method: expr_object expr_function + case 180: // expr_call: expr_pointer #line 701 "parser.ypp" - { yylhs.value.as < ast::expr_method::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::call > ())); } -#line 3383 "parser.cpp" + { yylhs.value.as < ast::expr_call::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::call > ())); } +#line 3403 "parser.cpp" break; - case 181: // expr_method: expr_object expr_pointer -#line 702 "parser.ypp" + case 181: // expr_method: expr_object expr_function +#line 704 "parser.ypp" { yylhs.value.as < ast::expr_method::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::call > ())); } -#line 3389 "parser.cpp" +#line 3409 "parser.cpp" break; - case 182: // expr_function: expr_identifier "(" expr_arguments ")" -#line 707 "parser.ypp" + case 182: // expr_method: expr_object expr_pointer +#line 705 "parser.ypp" + { yylhs.value.as < ast::expr_method::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::call > ())); } +#line 3415 "parser.cpp" + break; + + case 183: // expr_function: expr_identifier "(" expr_arguments ")" +#line 710 "parser.ypp" { yylhs.value.as < ast::call > ().as_function = std::make_unique(yylhs.location, std::make_unique(yylhs.location), std::move(yystack_[3].value.as < ast::expr_identifier::ptr > ()), std::move(yystack_[1].value.as < ast::expr_arguments::ptr > ()), ast::call::mode::normal); } -#line 3395 "parser.cpp" +#line 3421 "parser.cpp" break; - case 183: // expr_function: expr_path "::" expr_identifier "(" expr_arguments ")" -#line 709 "parser.ypp" + case 184: // expr_function: expr_path "::" expr_identifier "(" expr_arguments ")" +#line 712 "parser.ypp" { yylhs.value.as < ast::call > ().as_function = std::make_unique(yylhs.location, std::move(yystack_[5].value.as < ast::expr_path::ptr > ()), std::move(yystack_[3].value.as < ast::expr_identifier::ptr > ()), std::move(yystack_[1].value.as < ast::expr_arguments::ptr > ()), ast::call::mode::normal); } -#line 3401 "parser.cpp" +#line 3427 "parser.cpp" break; - case 184: // expr_function: "thread" expr_identifier "(" expr_arguments ")" -#line 711 "parser.ypp" + case 185: // expr_function: "thread" expr_identifier "(" expr_arguments ")" +#line 714 "parser.ypp" { yylhs.value.as < ast::call > ().as_function = std::make_unique(yylhs.location, std::make_unique(yylhs.location), std::move(yystack_[3].value.as < ast::expr_identifier::ptr > ()), std::move(yystack_[1].value.as < ast::expr_arguments::ptr > ()), ast::call::mode::thread); } -#line 3407 "parser.cpp" +#line 3433 "parser.cpp" break; - case 185: // expr_function: "thread" expr_path "::" expr_identifier "(" expr_arguments ")" -#line 713 "parser.ypp" + case 186: // expr_function: "thread" expr_path "::" expr_identifier "(" expr_arguments ")" +#line 716 "parser.ypp" { yylhs.value.as < ast::call > ().as_function = std::make_unique(yylhs.location, std::move(yystack_[5].value.as < ast::expr_path::ptr > ()), std::move(yystack_[3].value.as < ast::expr_identifier::ptr > ()), std::move(yystack_[1].value.as < ast::expr_arguments::ptr > ()), ast::call::mode::thread); } -#line 3413 "parser.cpp" +#line 3439 "parser.cpp" break; - case 186: // expr_pointer: "[" "[" expr "]" "]" "(" expr_arguments ")" -#line 718 "parser.ypp" + case 187: // expr_pointer: "[" "[" expr "]" "]" "(" expr_arguments ")" +#line 721 "parser.ypp" { yylhs.value.as < ast::call > ().as_pointer = std::make_unique(yylhs.location, std::move(yystack_[5].value.as < ast::expr > ()), std::move(yystack_[1].value.as < ast::expr_arguments::ptr > ()), ast::call::mode::normal); } -#line 3419 "parser.cpp" +#line 3445 "parser.cpp" break; - case 187: // expr_pointer: "thread" "[" "[" expr "]" "]" "(" expr_arguments ")" -#line 720 "parser.ypp" + case 188: // expr_pointer: "thread" "[" "[" expr "]" "]" "(" expr_arguments ")" +#line 723 "parser.ypp" { yylhs.value.as < ast::call > ().as_pointer = std::make_unique(yylhs.location, std::move(yystack_[5].value.as < ast::expr > ()), std::move(yystack_[1].value.as < ast::expr_arguments::ptr > ()), ast::call::mode::thread); } -#line 3425 "parser.cpp" +#line 3451 "parser.cpp" break; - case 188: // expr_parameters: expr_parameters "," expr_identifier -#line 725 "parser.ypp" + case 189: // expr_parameters: expr_parameters "," expr_identifier +#line 728 "parser.ypp" { yylhs.value.as < ast::expr_parameters::ptr > () = std::move(yystack_[2].value.as < ast::expr_parameters::ptr > ()); yylhs.value.as < ast::expr_parameters::ptr > ()->list.push_back(std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ())); } -#line 3431 "parser.cpp" +#line 3457 "parser.cpp" break; - case 189: // expr_parameters: expr_identifier -#line 727 "parser.ypp" + case 190: // expr_parameters: expr_identifier +#line 730 "parser.ypp" { yylhs.value.as < ast::expr_parameters::ptr > () = std::make_unique(yylhs.location); yylhs.value.as < ast::expr_parameters::ptr > ()->list.push_back(std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ())); } -#line 3437 "parser.cpp" +#line 3463 "parser.cpp" break; - case 190: // expr_parameters: %empty -#line 729 "parser.ypp" + case 191: // expr_parameters: %empty +#line 732 "parser.ypp" { yylhs.value.as < ast::expr_parameters::ptr > () = std::make_unique(yylhs.location); } -#line 3443 "parser.cpp" +#line 3469 "parser.cpp" break; - case 191: // expr_arguments: expr_arguments_no_empty -#line 734 "parser.ypp" + case 192: // expr_arguments: expr_arguments_no_empty +#line 737 "parser.ypp" { yylhs.value.as < ast::expr_arguments::ptr > () = std::move(yystack_[0].value.as < ast::expr_arguments::ptr > ()); } -#line 3449 "parser.cpp" +#line 3475 "parser.cpp" break; - case 192: // expr_arguments: %empty -#line 736 "parser.ypp" + case 193: // expr_arguments: %empty +#line 739 "parser.ypp" { yylhs.value.as < ast::expr_arguments::ptr > () = std::make_unique(yylhs.location); } -#line 3455 "parser.cpp" +#line 3481 "parser.cpp" break; - case 193: // expr_arguments_no_empty: expr_arguments "," expr -#line 741 "parser.ypp" + case 194: // expr_arguments_no_empty: expr_arguments "," expr +#line 744 "parser.ypp" { yylhs.value.as < ast::expr_arguments::ptr > () = std::move(yystack_[2].value.as < ast::expr_arguments::ptr > ()); yylhs.value.as < ast::expr_arguments::ptr > ()->list.push_back(std::move(yystack_[0].value.as < ast::expr > ())); } -#line 3461 "parser.cpp" +#line 3487 "parser.cpp" break; - case 194: // expr_arguments_no_empty: expr -#line 743 "parser.ypp" + case 195: // expr_arguments_no_empty: expr +#line 746 "parser.ypp" { yylhs.value.as < ast::expr_arguments::ptr > () = std::make_unique(yylhs.location); yylhs.value.as < ast::expr_arguments::ptr > ()->list.push_back(std::move(yystack_[0].value.as < ast::expr > ())); } -#line 3467 "parser.cpp" +#line 3493 "parser.cpp" break; - case 195: // expr_getnextarraykey: "getnextarraykey" "(" expr "," expr ")" -#line 748 "parser.ypp" + case 196: // expr_getnextarraykey: "getnextarraykey" "(" expr "," expr ")" +#line 751 "parser.ypp" { yylhs.value.as < ast::expr_getnextarraykey::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[3].value.as < ast::expr > ()), std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3473 "parser.cpp" +#line 3499 "parser.cpp" break; - case 196: // expr_getfirstarraykey: "getfirstarraykey" "(" expr ")" -#line 753 "parser.ypp" + case 197: // expr_getfirstarraykey: "getfirstarraykey" "(" expr ")" +#line 756 "parser.ypp" { yylhs.value.as < ast::expr_getfirstarraykey::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3479 "parser.cpp" +#line 3505 "parser.cpp" break; - case 197: // expr_getdvarcoloralpha: "getdvarcoloralpha" "(" expr ")" -#line 758 "parser.ypp" + case 198: // expr_getdvarcoloralpha: "getdvarcoloralpha" "(" expr ")" +#line 761 "parser.ypp" { yylhs.value.as < ast::expr_getdvarcoloralpha::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3485 "parser.cpp" +#line 3511 "parser.cpp" break; - case 198: // expr_getdvarcolorblue: "getdvarcolorblue" "(" expr ")" -#line 763 "parser.ypp" + case 199: // expr_getdvarcolorblue: "getdvarcolorblue" "(" expr ")" +#line 766 "parser.ypp" { yylhs.value.as < ast::expr_getdvarcolorblue::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3491 "parser.cpp" +#line 3517 "parser.cpp" break; - case 199: // expr_getdvarcolorgreen: "getdvarcolorgreen" "(" expr ")" -#line 768 "parser.ypp" + case 200: // expr_getdvarcolorgreen: "getdvarcolorgreen" "(" expr ")" +#line 771 "parser.ypp" { yylhs.value.as < ast::expr_getdvarcolorgreen::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3497 "parser.cpp" +#line 3523 "parser.cpp" break; - case 200: // expr_getdvarcolorred: "getdvarcolorred" "(" expr ")" -#line 773 "parser.ypp" + case 201: // expr_getdvarcolorred: "getdvarcolorred" "(" expr ")" +#line 776 "parser.ypp" { yylhs.value.as < ast::expr_getdvarcolorred::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3503 "parser.cpp" +#line 3529 "parser.cpp" break; - case 201: // expr_getdvarvector: "getdvarvector" "(" expr ")" -#line 778 "parser.ypp" + case 202: // expr_getdvarvector: "getdvarvector" "(" expr ")" +#line 781 "parser.ypp" { yylhs.value.as < ast::expr_getdvarvector::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3509 "parser.cpp" +#line 3535 "parser.cpp" break; - case 202: // expr_getdvarfloat: "getdvarfloat" "(" expr ")" -#line 783 "parser.ypp" + case 203: // expr_getdvarfloat: "getdvarfloat" "(" expr ")" +#line 786 "parser.ypp" { yylhs.value.as < ast::expr_getdvarfloat::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3515 "parser.cpp" +#line 3541 "parser.cpp" break; - case 203: // expr_getdvarint: "getdvarint" "(" expr ")" -#line 788 "parser.ypp" + case 204: // expr_getdvarint: "getdvarint" "(" expr ")" +#line 791 "parser.ypp" { yylhs.value.as < ast::expr_getdvarint::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3521 "parser.cpp" +#line 3547 "parser.cpp" break; - case 204: // expr_getdvar: "getdvar" "(" expr ")" -#line 793 "parser.ypp" + case 205: // expr_getdvar: "getdvar" "(" expr ")" +#line 796 "parser.ypp" { yylhs.value.as < ast::expr_getdvar::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3527 "parser.cpp" +#line 3553 "parser.cpp" break; - case 205: // expr_gettime: "gettime" "(" ")" -#line 798 "parser.ypp" + case 206: // expr_gettime: "gettime" "(" ")" +#line 801 "parser.ypp" { yylhs.value.as < ast::expr_gettime::ptr > () = std::make_unique(yylhs.location); } -#line 3533 "parser.cpp" +#line 3559 "parser.cpp" break; - case 206: // expr_abs: "abs" "(" expr ")" -#line 803 "parser.ypp" + case 207: // expr_abs: "abs" "(" expr ")" +#line 806 "parser.ypp" { yylhs.value.as < ast::expr_abs::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3539 "parser.cpp" +#line 3565 "parser.cpp" break; - case 207: // expr_vectortoangles: "vectortoangles" "(" expr ")" -#line 808 "parser.ypp" + case 208: // expr_vectortoangles: "vectortoangles" "(" expr ")" +#line 811 "parser.ypp" { yylhs.value.as < ast::expr_vectortoangles::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3545 "parser.cpp" +#line 3571 "parser.cpp" break; - case 208: // expr_angleclamp180: "angleclamp180" "(" expr ")" -#line 813 "parser.ypp" + case 209: // expr_angleclamp180: "angleclamp180" "(" expr ")" +#line 816 "parser.ypp" { yylhs.value.as < ast::expr_angleclamp180::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3551 "parser.cpp" +#line 3577 "parser.cpp" break; - case 209: // expr_anglestoforward: "anglestoforward" "(" expr ")" -#line 818 "parser.ypp" + case 210: // expr_anglestoforward: "anglestoforward" "(" expr ")" +#line 821 "parser.ypp" { yylhs.value.as < ast::expr_anglestoforward::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3557 "parser.cpp" +#line 3583 "parser.cpp" break; - case 210: // expr_anglestoright: "anglestoright" "(" expr ")" -#line 823 "parser.ypp" + case 211: // expr_anglestoright: "anglestoright" "(" expr ")" +#line 826 "parser.ypp" { yylhs.value.as < ast::expr_anglestoright::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3563 "parser.cpp" +#line 3589 "parser.cpp" break; - case 211: // expr_anglestoup: "anglestoup" "(" expr ")" -#line 828 "parser.ypp" + case 212: // expr_anglestoup: "anglestoup" "(" expr ")" +#line 831 "parser.ypp" { yylhs.value.as < ast::expr_anglestoup::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3569 "parser.cpp" +#line 3595 "parser.cpp" break; - case 212: // expr_vectorscale: "vectorscale" "(" expr "," expr ")" -#line 833 "parser.ypp" + case 213: // expr_vectorscale: "vectorscale" "(" expr "," expr ")" +#line 836 "parser.ypp" { yylhs.value.as < ast::expr_vectorscale::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[3].value.as < ast::expr > ()), std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3575 "parser.cpp" +#line 3601 "parser.cpp" break; - case 213: // expr_isdefined: "isdefined" "(" expr ")" -#line 838 "parser.ypp" + case 214: // expr_isdefined: "isdefined" "(" expr ")" +#line 841 "parser.ypp" { yylhs.value.as < ast::expr_isdefined::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3581 "parser.cpp" +#line 3607 "parser.cpp" break; - case 214: // expr_reference: "::" expr_identifier -#line 843 "parser.ypp" + case 215: // expr_reference: "::" expr_identifier +#line 846 "parser.ypp" { yylhs.value.as < ast::expr_reference::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location), std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ())); } -#line 3587 "parser.cpp" +#line 3613 "parser.cpp" break; - case 215: // expr_reference: expr_path "::" expr_identifier -#line 845 "parser.ypp" + case 216: // expr_reference: expr_path "::" expr_identifier +#line 848 "parser.ypp" { yylhs.value.as < ast::expr_reference::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr_path::ptr > ()), std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ())); } -#line 3593 "parser.cpp" +#line 3619 "parser.cpp" break; - case 216: // expr_array: expr_object "[" expr "]" -#line 850 "parser.ypp" + case 217: // expr_array: expr_object "[" expr "]" +#line 853 "parser.ypp" { yylhs.value.as < ast::expr_array::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[3].value.as < ast::expr > ()), std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3599 "parser.cpp" +#line 3625 "parser.cpp" break; - case 217: // expr_array: expr_getdvarvector "[" expr "]" -#line 852 "parser.ypp" + case 218: // expr_array: expr_getdvarvector "[" expr "]" +#line 855 "parser.ypp" { yylhs.value.as < ast::expr_array::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[3].value.as < ast::expr_getdvarvector::ptr > ())), std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3605 "parser.cpp" +#line 3631 "parser.cpp" break; - case 218: // expr_array: expr_vectortoangles "[" expr "]" -#line 854 "parser.ypp" + case 219: // expr_array: expr_vectortoangles "[" expr "]" +#line 857 "parser.ypp" { yylhs.value.as < ast::expr_array::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[3].value.as < ast::expr_vectortoangles::ptr > ())), std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3611 "parser.cpp" +#line 3637 "parser.cpp" break; - case 219: // expr_array: expr_angleclamp180 "[" expr "]" -#line 856 "parser.ypp" + case 220: // expr_array: expr_angleclamp180 "[" expr "]" +#line 859 "parser.ypp" { yylhs.value.as < ast::expr_array::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[3].value.as < ast::expr_angleclamp180::ptr > ())), std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3617 "parser.cpp" +#line 3643 "parser.cpp" break; - case 220: // expr_array: expr_anglestoforward "[" expr "]" -#line 858 "parser.ypp" + case 221: // expr_array: expr_anglestoforward "[" expr "]" +#line 861 "parser.ypp" { yylhs.value.as < ast::expr_array::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[3].value.as < ast::expr_anglestoforward::ptr > ())), std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3623 "parser.cpp" +#line 3649 "parser.cpp" break; - case 221: // expr_array: expr_anglestoright "[" expr "]" -#line 860 "parser.ypp" + case 222: // expr_array: expr_anglestoright "[" expr "]" +#line 863 "parser.ypp" { yylhs.value.as < ast::expr_array::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[3].value.as < ast::expr_anglestoright::ptr > ())), std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3629 "parser.cpp" +#line 3655 "parser.cpp" break; - case 222: // expr_array: expr_anglestoup "[" expr "]" -#line 862 "parser.ypp" + case 223: // expr_array: expr_anglestoup "[" expr "]" +#line 865 "parser.ypp" { yylhs.value.as < ast::expr_array::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[3].value.as < ast::expr_anglestoup::ptr > ())), std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3635 "parser.cpp" +#line 3661 "parser.cpp" break; - case 223: // expr_array: expr_vectorscale "[" expr "]" -#line 864 "parser.ypp" + case 224: // expr_array: expr_vectorscale "[" expr "]" +#line 867 "parser.ypp" { yylhs.value.as < ast::expr_array::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[3].value.as < ast::expr_vectorscale::ptr > ())), std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3641 "parser.cpp" +#line 3667 "parser.cpp" break; - case 224: // expr_field: expr_object "." expr_identifier_nosize -#line 869 "parser.ypp" + case 225: // expr_field: expr_object "." expr_identifier_nosize +#line 872 "parser.ypp" { yylhs.value.as < ast::expr_field::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ())); } -#line 3647 "parser.cpp" +#line 3673 "parser.cpp" break; - case 225: // expr_size: expr_object "." "size" -#line 874 "parser.ypp" + case 226: // expr_size: expr_object "." "size" +#line 877 "parser.ypp" { yylhs.value.as < ast::expr_size::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ())); } -#line 3653 "parser.cpp" +#line 3679 "parser.cpp" break; - case 226: // expr_paren: "(" expr ")" -#line 879 "parser.ypp" + case 227: // expr_paren: "(" expr ")" +#line 882 "parser.ypp" { yylhs.value.as < ast::expr_paren::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3659 "parser.cpp" +#line 3685 "parser.cpp" break; - case 227: // expr_object: expr_call -#line 883 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } -#line 3665 "parser.cpp" - break; - - case 228: // expr_object: expr_method -#line 884 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } -#line 3671 "parser.cpp" - break; - - case 229: // expr_object: expr_array -#line 885 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } -#line 3677 "parser.cpp" - break; - - case 230: // expr_object: expr_field + case 228: // expr_object: expr_call #line 886 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } -#line 3683 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } +#line 3691 "parser.cpp" break; - case 231: // expr_object: expr_game + case 229: // expr_object: expr_method #line 887 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } -#line 3689 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } +#line 3697 "parser.cpp" break; - case 232: // expr_object: expr_self + case 230: // expr_object: expr_array #line 888 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } -#line 3695 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } +#line 3703 "parser.cpp" break; - case 233: // expr_object: expr_anim + case 231: // expr_object: expr_field #line 889 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } -#line 3701 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } +#line 3709 "parser.cpp" break; - case 234: // expr_object: expr_level + case 232: // expr_object: expr_game #line 890 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } -#line 3707 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } +#line 3715 "parser.cpp" break; - case 235: // expr_object: expr_identifier + case 233: // expr_object: expr_self #line 891 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } +#line 3721 "parser.cpp" + break; + + case 234: // expr_object: expr_anim +#line 892 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } +#line 3727 "parser.cpp" + break; + + case 235: // expr_object: expr_level +#line 893 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } +#line 3733 "parser.cpp" + break; + + case 236: // expr_object: expr_identifier +#line 894 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()); } -#line 3713 "parser.cpp" +#line 3739 "parser.cpp" break; - case 236: // expr_empty_array: "[" "]" -#line 896 "parser.ypp" + case 237: // expr_empty_array: "[" "]" +#line 899 "parser.ypp" { yylhs.value.as < ast::expr_empty_array::ptr > () = std::make_unique(yylhs.location); } -#line 3719 "parser.cpp" +#line 3745 "parser.cpp" break; - case 237: // expr_undefined: "undefined" -#line 901 "parser.ypp" + case 238: // expr_undefined: "undefined" +#line 904 "parser.ypp" { yylhs.value.as < ast::expr_undefined::ptr > () = std::make_unique(yylhs.location); } -#line 3725 "parser.cpp" +#line 3751 "parser.cpp" break; - case 238: // expr_game: "game" -#line 906 "parser.ypp" + case 239: // expr_game: "game" +#line 909 "parser.ypp" { yylhs.value.as < ast::expr_game::ptr > () = std::make_unique(yylhs.location); } -#line 3731 "parser.cpp" +#line 3757 "parser.cpp" break; - case 239: // expr_self: "self" -#line 911 "parser.ypp" + case 240: // expr_self: "self" +#line 914 "parser.ypp" { yylhs.value.as < ast::expr_self::ptr > () = std::make_unique(yylhs.location); } -#line 3737 "parser.cpp" +#line 3763 "parser.cpp" break; - case 240: // expr_anim: "anim" -#line 916 "parser.ypp" + case 241: // expr_anim: "anim" +#line 919 "parser.ypp" { yylhs.value.as < ast::expr_anim::ptr > () = std::make_unique(yylhs.location); } -#line 3743 "parser.cpp" +#line 3769 "parser.cpp" break; - case 241: // expr_level: "level" -#line 921 "parser.ypp" + case 242: // expr_level: "level" +#line 924 "parser.ypp" { yylhs.value.as < ast::expr_level::ptr > () = std::make_unique(yylhs.location); } -#line 3749 "parser.cpp" +#line 3775 "parser.cpp" break; - case 242: // expr_animation: "%" "identifier" -#line 926 "parser.ypp" + case 243: // expr_animation: "%" "identifier" +#line 929 "parser.ypp" { yylhs.value.as < ast::expr_animation::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3755 "parser.cpp" +#line 3781 "parser.cpp" break; - case 243: // expr_identifier_nosize: "identifier" -#line 931 "parser.ypp" + case 244: // expr_animtree: "#animtree" +#line 934 "parser.ypp" + { yylhs.value.as < ast::expr_animtree::ptr > () = std::make_unique(yylhs.location); } +#line 3787 "parser.cpp" + break; + + case 245: // expr_identifier_nosize: "identifier" +#line 939 "parser.ypp" { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3761 "parser.cpp" +#line 3793 "parser.cpp" break; - case 244: // expr_identifier: "identifier" -#line 936 "parser.ypp" + case 246: // expr_identifier: "identifier" +#line 944 "parser.ypp" { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3767 "parser.cpp" +#line 3799 "parser.cpp" break; - case 245: // expr_identifier: "size" -#line 938 "parser.ypp" + case 247: // expr_identifier: "size" +#line 946 "parser.ypp" { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, "size"); } -#line 3773 "parser.cpp" +#line 3805 "parser.cpp" break; - case 246: // expr_path: "identifier" -#line 943 "parser.ypp" + case 248: // expr_path: "identifier" +#line 951 "parser.ypp" { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3779 "parser.cpp" +#line 3811 "parser.cpp" break; - case 247: // expr_path: "path" -#line 945 "parser.ypp" + case 249: // expr_path: "path" +#line 953 "parser.ypp" { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3785 "parser.cpp" +#line 3817 "parser.cpp" break; - case 248: // expr_istring: "localized string" -#line 950 "parser.ypp" + case 250: // expr_istring: "localized string" +#line 958 "parser.ypp" { yylhs.value.as < ast::expr_istring::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3791 "parser.cpp" +#line 3823 "parser.cpp" break; - case 249: // expr_string: "string literal" -#line 955 "parser.ypp" + case 251: // expr_string: "string literal" +#line 963 "parser.ypp" { yylhs.value.as < ast::expr_string::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3797 "parser.cpp" +#line 3829 "parser.cpp" break; - case 250: // expr_vector: "(" expr "," expr "," expr ")" -#line 960 "parser.ypp" + case 252: // expr_vector: "(" expr "," expr "," expr ")" +#line 968 "parser.ypp" { yylhs.value.as < ast::expr_vector::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[5].value.as < ast::expr > ()), std::move(yystack_[3].value.as < ast::expr > ()), std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3803 "parser.cpp" +#line 3835 "parser.cpp" break; - case 251: // expr_hash: "hash" -#line 965 "parser.ypp" + case 253: // expr_hash: "hash" +#line 973 "parser.ypp" { yylhs.value.as < ast::expr_hash::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3809 "parser.cpp" +#line 3841 "parser.cpp" break; - case 252: // expr_float: "-" "float" -#line 970 "parser.ypp" + case 254: // expr_float: "-" "float" +#line 978 "parser.ypp" { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } -#line 3815 "parser.cpp" +#line 3847 "parser.cpp" break; - case 253: // expr_float: "float" -#line 972 "parser.ypp" + case 255: // expr_float: "float" +#line 980 "parser.ypp" { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3821 "parser.cpp" +#line 3853 "parser.cpp" break; - case 254: // expr_integer: "-" "integer" -#line 977 "parser.ypp" + case 256: // expr_integer: "-" "integer" +#line 985 "parser.ypp" { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } -#line 3827 "parser.cpp" +#line 3859 "parser.cpp" break; - case 255: // expr_integer: "integer" -#line 979 "parser.ypp" + case 257: // expr_integer: "integer" +#line 987 "parser.ypp" { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3833 "parser.cpp" +#line 3865 "parser.cpp" break; - case 256: // expr_false: "false" -#line 984 "parser.ypp" + case 258: // expr_false: "false" +#line 992 "parser.ypp" { yylhs.value.as < ast::expr_false::ptr > () = std::make_unique(yylhs.location); } -#line 3839 "parser.cpp" +#line 3871 "parser.cpp" break; - case 257: // expr_true: "true" -#line 989 "parser.ypp" + case 259: // expr_true: "true" +#line 997 "parser.ypp" { yylhs.value.as < ast::expr_true::ptr > () = std::make_unique(yylhs.location); } -#line 3845 "parser.cpp" +#line 3877 "parser.cpp" break; -#line 3849 "parser.cpp" +#line 3881 "parser.cpp" default: break; @@ -4031,26 +4063,26 @@ namespace xsk { namespace arc { namespace t6 { { "end of file", "error", "invalid token", "#define", "#undef", "#ifdef", "#ifndef", "#if", "#elif", "#else", "#endif", "/#", "#/", "#inline", - "#include", "#using_animtree", "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", "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", "float", - "integer", "SIZEOF", "THEN", "TERN", "NEG", "ANIMREF", "PREINC", - "PREDEC", "POSTINC", "POSTDEC", "$accept", "root", "program", "inline", - "include", "declaration", "decl_usingtree", "decl_constant", - "decl_thread", "stmt", "stmt_or_dev", "stmt_list", "stmt_or_dev_list", - "stmt_dev", "stmt_block", "stmt_expr", "stmt_call", "stmt_assign", - "stmt_endon", "stmt_notify", "stmt_wait", "stmt_waittill", + "#include", "#using_animtree", "#animtree", "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", + "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", "float", "integer", "SIZEOF", "THEN", "TERN", + "NEG", "ANIMREF", "PREINC", "PREDEC", "POSTINC", "POSTDEC", "$accept", + "root", "program", "inline", "include", "declaration", "decl_usingtree", + "decl_constant", "decl_thread", "stmt", "stmt_or_dev", "stmt_list", + "stmt_or_dev_list", "stmt_dev", "stmt_block", "stmt_expr", "stmt_call", + "stmt_assign", "stmt_endon", "stmt_notify", "stmt_wait", "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", @@ -4069,9 +4101,10 @@ namespace xsk { namespace arc { namespace t6 { "expr_isdefined", "expr_reference", "expr_array", "expr_field", "expr_size", "expr_paren", "expr_object", "expr_empty_array", "expr_undefined", "expr_game", "expr_self", "expr_anim", "expr_level", - "expr_animation", "expr_identifier_nosize", "expr_identifier", - "expr_path", "expr_istring", "expr_string", "expr_vector", "expr_hash", - "expr_float", "expr_integer", "expr_false", "expr_true", YY_NULLPTR + "expr_animation", "expr_animtree", "expr_identifier_nosize", + "expr_identifier", "expr_path", "expr_istring", "expr_string", + "expr_vector", "expr_hash", "expr_float", "expr_integer", "expr_false", + "expr_true", YY_NULLPTR }; return yy_sname[yysymbol]; } @@ -4340,970 +4373,984 @@ namespace xsk { namespace arc { namespace t6 { } - const short parser::yypact_ninf_ = -408; + const short parser::yypact_ninf_ = -379; - const short parser::yytable_ninf_ = -247; + const short parser::yytable_ninf_ = -249; const short parser::yypact_[] = { - 10, -408, -408, 34, 34, -35, -408, -408, 33, 10, - -408, -408, -408, -408, -408, -408, -45, -408, -408, -27, - -23, -51, -408, -408, -408, -408, -13, 1723, -408, -408, - -408, -1, -22, -408, 2, -408, -408, -408, -408, -408, - -408, -408, 14, 28, 30, 37, 55, 61, 71, 77, - 94, 105, 107, 117, 125, 126, 128, 130, 136, 137, - 139, 1723, 119, -13, 1723, 1723, -5, -36, 45, -408, - -408, -408, -408, 3288, -408, -408, -408, -408, -408, -408, - 66, 86, -408, -408, -408, -408, -408, -408, -408, -408, - 111, -408, -408, -408, -408, -408, 134, 140, 142, 148, - 151, 153, -408, -408, 102, 115, -408, -408, 138, -408, - -408, 206, 252, 269, 282, -408, 4, 132, -408, -408, - -408, -408, -408, -408, -408, -408, 131, 141, -13, 158, - 164, 157, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 167, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1089, 1723, -408, -408, -408, -408, 1723, 165, -408, - -408, -408, -408, 111, 134, 140, 142, 148, 151, 153, - 102, 115, -408, 288, -408, -408, -408, -408, 4, 168, - -408, -408, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1803, -12, - -408, -408, 173, 1723, -13, -408, 1192, -408, -408, 1723, - 1723, -13, 3139, 1896, 1930, 1964, 1998, 2032, 2066, 2100, - 2134, 2168, -408, 2202, 2236, 2270, 2304, 2338, 2372, 3178, - 2406, -408, 1723, 1559, 2440, 133, -13, 3253, 279, 279, - 3402, 3412, 1634, 1634, 265, 265, 265, 265, 884, 3453, - 3443, -91, -91, -408, -408, -408, 1719, 2820, 2860, 2900, - 2940, 2980, 3020, 1563, 3060, -408, -408, -408, 3371, 6, - -408, 180, 1314, 1723, 179, 190, 1520, 192, 193, 194, - 195, 48, 188, 189, 196, 1643, 200, 204, -408, 88, - 88, -408, -408, 1253, -408, -408, -408, -408, -408, -408, - -408, -408, -408, -408, -408, -408, -408, -408, -408, -408, - -408, -408, -408, -408, -408, -408, -408, -408, 198, 199, - 205, 210, 213, -408, -408, 1429, 173, 3100, 38, 212, - 1723, -408, -408, -408, -408, -408, -408, -408, -408, -408, - -408, -408, -408, -408, -408, -408, 1723, -408, 3217, 209, - 180, 1723, -408, -408, -408, -408, -408, -408, -408, -408, - -408, 1723, 1723, -408, -408, 1375, 3323, -408, 1723, 242, - 1723, 1013, -13, 1723, 181, 207, 221, -408, -408, -408, - -408, 3358, 1723, 1723, 288, 288, -408, -408, -408, -408, - -408, -408, -408, 231, 233, 239, 240, -408, -408, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 243, -408, 1723, 2474, 2508, 1723, 244, 3371, 3371, 51, - -408, -408, -408, 2542, 249, 2576, 245, -408, -408, -408, - -10, 7, 2610, -408, -408, -408, 53, 95, 1723, 1723, - 1723, 1723, 3371, 3371, 3371, 3371, 3371, 3371, 3371, 3371, - 3371, 3371, 3371, 250, 96, -408, -408, 2644, 1723, -408, - 1520, 1723, 1520, 1723, 1723, -13, 141, 247, 251, 2678, - 1408, 1818, 1862, 1723, -408, -408, 97, 304, 2712, -408, - 3371, 255, 2746, 303, -408, -408, -408, 257, 258, 1723, - 261, 1723, 264, 1723, 112, -408, 1520, 267, 1013, 1520, - 1723, -408, -408, 275, 274, -408, 283, -408, 286, -408, - -408, -408, 287, -408, 2780, 273, 280, 281, 1520, 1520, - -408, -408, -408, -408, -408 + 10, -379, -379, -43, -43, -39, -379, -379, 19, 10, + -379, -379, -379, -379, -379, -379, -48, -379, -379, -29, + -27, -60, -379, -379, -379, -379, -28, 1398, -379, -379, + -379, 11, -38, -379, -379, 68, -379, -379, -379, -379, + -379, -379, -379, 5, 25, 32, 67, 73, 75, 88, + 90, 91, 99, 103, 104, 108, 110, 111, 115, 118, + 119, 120, 1398, 34, -28, 1398, 1398, -5, -33, 53, + -379, -379, -379, -379, 3357, -379, -379, -379, -379, -379, + -379, -10, 24, -379, -379, -379, -379, -379, -379, -379, + -379, 93, -379, -379, -379, -379, -379, 122, 124, 125, + 127, 128, 129, -379, -379, 48, 61, -379, -379, 140, + -379, -379, 158, 170, 253, 270, -379, -379, 4, 116, + -379, -379, -379, -379, -379, -379, -379, -379, 113, 133, + -28, 139, 145, 141, 1398, 1398, 1398, 1398, 1398, 1398, + 1398, 1398, 1398, 1398, 147, 1398, 1398, 1398, 1398, 1398, + 1398, 1398, 1398, 1801, 1398, -379, -379, -379, -379, 1398, + 149, -379, -379, -379, -379, 93, 122, 124, 125, 127, + 128, 129, 48, 61, -379, 287, -379, -379, -379, -379, + 4, 146, -379, -379, 1398, 1398, 1398, 1398, 1398, 1398, + 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, + 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, + 1478, -25, -379, -379, 156, 1398, -28, -379, 1585, -379, + -379, 1398, 1398, -28, 3208, 2045, 2079, 2113, 2147, 2181, + 2215, 2249, 2283, 2317, -379, 2351, 2385, 2419, 2453, 2487, + 2521, 3247, 2555, -379, 1398, 1152, 2589, 112, -28, 3322, + 97, 97, 1086, 3471, 1014, 1014, 326, 326, 326, 326, + 3481, 3522, 3512, 16, 16, -379, -379, -379, 1234, 1394, + 1474, 2969, 3009, 3049, 3089, 1238, 3129, -379, -379, -379, + 3440, -36, -379, 163, 1707, 1398, 157, 166, 1913, 169, + 179, 180, 181, -24, 161, 177, 183, 1318, 190, 191, + -379, 1016, 1016, -379, -379, 1646, -379, -379, -379, -379, + -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, + -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, + 184, 185, 186, 189, 195, -379, -379, 1822, 156, 3169, + -22, 200, 1398, -379, -379, -379, -379, -379, -379, -379, + -379, -379, -379, -379, -379, -379, -379, -379, 1398, -379, + 3286, 196, 163, 1398, -379, -379, -379, -379, -379, -379, + -379, -379, -379, 1398, 1398, -379, -379, 1768, 3392, -379, + 1398, 247, 1398, 309, -28, 1398, 159, 202, 204, -379, + -379, -379, -379, 3427, 1398, 1398, 287, 287, -379, -379, + -379, -379, -379, -379, -379, 209, 214, 217, 221, -379, + -379, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, + 1398, 1398, 219, -379, 1398, 2623, 2657, 1398, 231, 3440, + 3440, 9, -379, -379, -379, 2691, 232, 2725, 223, -379, + -379, -379, 50, 1, 2759, -379, -379, -379, 13, 28, + 1398, 1398, 1398, 1398, 3440, 3440, 3440, 3440, 3440, 3440, + 3440, 3440, 3440, 3440, 3440, 234, 41, -379, -379, 2793, + 1398, -379, 1913, 1398, 1913, 1398, 1398, -28, 133, 230, + 235, 2827, 1923, 1967, 2011, 1398, -379, -379, 47, 283, + 2861, -379, 3440, 239, 2895, 288, -379, -379, -379, 240, + 242, 1398, 243, 1398, 245, 1398, 86, -379, 1913, 246, + 309, 1913, 1398, -379, -379, 252, 260, -379, 261, -379, + 264, -379, -379, -379, 265, -379, 2929, 257, 258, 259, + 1913, 1913, -379, -379, -379, -379, -379 }; const short parser::yydefact_[] = { - 3, 12, 13, 0, 0, 0, 245, 244, 0, 2, - 7, 8, 9, 14, 15, 16, 0, 247, 246, 0, - 0, 0, 1, 4, 5, 6, 190, 0, 10, 11, - 249, 0, 0, 189, 0, 257, 256, 237, 238, 239, - 240, 241, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 12, 13, 0, 0, 0, 247, 246, 0, 2, + 7, 8, 9, 14, 15, 16, 0, 249, 248, 0, + 0, 0, 1, 4, 5, 6, 191, 0, 10, 11, + 251, 0, 0, 190, 244, 0, 259, 258, 238, 239, + 240, 241, 242, 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, 244, 248, - 251, 253, 255, 0, 88, 89, 90, 127, 128, 129, - 130, 131, 178, 179, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, 0, 156, - 157, 158, 159, 160, 161, 162, 163, 0, 164, 165, - 166, 167, 168, 169, 170, 171, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 246, + 250, 253, 255, 257, 0, 88, 89, 90, 127, 128, + 129, 130, 131, 179, 180, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 0, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 0, + 165, 166, 167, 168, 169, 170, 171, 172, 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, 236, 214, 177, 172, 0, 0, 252, - 254, 227, 228, 0, 0, 0, 0, 0, 0, 0, - 175, 176, 174, 0, 231, 232, 233, 234, 173, 0, - 242, 18, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 237, 215, 178, 173, 0, + 0, 254, 256, 228, 229, 0, 0, 0, 0, 0, + 0, 0, 176, 177, 175, 0, 232, 233, 234, 235, + 174, 0, 243, 18, 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, - 180, 181, 0, 192, 0, 17, 0, 19, 188, 0, - 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 205, 0, 0, 0, 0, 0, 0, 0, - 0, 226, 0, 0, 0, 0, 0, 0, 120, 121, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 122, 123, 124, 125, 126, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 225, 243, 224, 194, 0, - 191, 215, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, - 0, 43, 48, 0, 44, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 0, 0, - 0, 227, 228, 229, 230, 0, 235, 0, 0, 0, - 0, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 206, 207, 208, 209, 210, 211, 0, 213, 0, 0, - 0, 0, 217, 218, 219, 220, 221, 222, 223, 216, - 182, 0, 192, 50, 46, 0, 0, 70, 0, 0, - 0, 56, 0, 0, 0, 0, 0, 81, 82, 83, - 85, 0, 192, 192, 104, 106, 51, 47, 59, 60, - 61, 57, 58, 0, 0, 0, 0, 105, 107, 0, + 0, 0, 181, 182, 0, 193, 0, 17, 0, 19, + 189, 0, 193, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 206, 0, 0, 0, 0, 0, + 0, 0, 0, 227, 0, 0, 0, 0, 0, 0, + 120, 121, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 122, 123, 124, 125, 126, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 226, 245, 225, + 195, 0, 192, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 184, 192, 0, 0, 0, 0, 108, 193, 0, - 49, 45, 65, 0, 0, 0, 0, 53, 54, 55, - 0, 0, 0, 80, 79, 84, 0, 0, 0, 0, - 0, 0, 93, 99, 100, 101, 102, 103, 94, 95, - 96, 98, 97, 0, 0, 195, 212, 0, 192, 183, - 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 192, 185, 250, 0, 71, 0, 73, - 91, 0, 0, 0, 78, 86, 87, 0, 0, 192, - 0, 192, 0, 192, 0, 186, 0, 0, 56, 0, - 0, 62, 64, 0, 191, 67, 191, 69, 191, 187, - 72, 74, 0, 76, 0, 0, 0, 0, 0, 0, - 63, 66, 68, 75, 77 + 52, 0, 0, 43, 48, 0, 44, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 0, 0, 0, 228, 229, 230, 231, 0, 236, 0, + 0, 0, 0, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 207, 208, 209, 210, 211, 212, 0, 214, + 0, 0, 0, 0, 218, 219, 220, 221, 222, 223, + 224, 217, 183, 0, 193, 50, 46, 0, 0, 70, + 0, 0, 0, 56, 0, 0, 0, 0, 0, 81, + 82, 83, 85, 0, 193, 193, 104, 106, 51, 47, + 59, 60, 61, 57, 58, 0, 0, 0, 0, 105, + 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 185, 193, 0, 0, 0, 0, 108, + 194, 0, 49, 45, 65, 0, 0, 0, 0, 53, + 54, 55, 0, 0, 0, 80, 79, 84, 0, 0, + 0, 0, 0, 0, 93, 99, 100, 101, 102, 103, + 94, 95, 96, 98, 97, 0, 0, 196, 213, 0, + 193, 184, 0, 0, 0, 92, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 193, 186, 252, 0, 71, + 0, 73, 91, 0, 0, 0, 78, 86, 87, 0, + 0, 193, 0, 193, 0, 193, 0, 187, 0, 0, + 56, 0, 0, 62, 64, 0, 192, 67, 192, 69, + 192, 188, 72, 74, 0, 76, 0, 0, 0, 0, + 0, 0, 63, 66, 68, 75, 77 }; const short parser::yypgoto_[] = { - -408, -408, -408, 349, 352, 355, -408, -408, -408, -278, - 63, -408, -408, -408, -126, -141, -408, -408, -408, -408, - -408, -408, -408, -408, -408, -408, -408, -408, -408, -408, - -408, -408, -408, -408, -408, -408, -408, -408, 412, -408, - -374, -371, -367, -408, -408, -408, -408, -408, -408, -63, - -47, -103, -93, -408, -207, -407, -408, -408, -408, -408, - -408, -408, -16, -408, -408, -408, -408, -408, 152, 197, - 202, 363, 437, 472, -408, -408, 477, 598, -408, 310, - 628, -408, -408, 633, 638, 734, 739, -408, -408, 0, - 8, -408, -19, -408, -408, -408, 78, -408, -408 + -379, -379, -379, 329, 332, 333, -379, -379, -379, -281, + 39, -379, -379, -379, -128, -164, -379, -379, -379, -379, + -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, + -379, -379, -379, -379, -379, -379, -379, -379, 413, -379, + -378, -373, -370, -379, -379, -379, -379, -379, -379, -63, + -47, -103, -93, -379, -207, -337, -379, -379, -379, -379, + -379, -379, -16, -379, -379, -379, -379, -379, 197, 289, + 363, 374, 434, 476, -379, -379, 574, 625, -379, 281, + 634, -379, -379, 674, 689, 734, 742, -379, -379, -379, + 0, 8, -379, -19, -379, -379, -379, 65, -379, -379 }; const short parser::yydefgoto_[] = { - 0, 8, 9, 10, 11, 12, 13, 14, 15, 301, - 302, 375, 303, 304, 305, 436, 306, 307, 308, 309, - 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 278, 491, - 328, 329, 330, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 32, 513, 280, 84, 85, 86, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 277, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125 + 0, 8, 9, 10, 11, 12, 13, 14, 15, 303, + 304, 377, 305, 306, 307, 438, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 280, 493, + 330, 331, 332, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 32, 515, 282, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 279, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127 }; const short parser::yytable_[] = { - 16, 217, 31, 161, 374, 210, 279, 437, 379, 16, - 438, 19, 20, 338, 439, 211, 198, 199, 200, 162, - 26, 1, 2, 3, 4, 5, 33, 34, 6, 275, - 21, 6, 34, 22, 130, 474, 6, 38, 39, 40, - 41, -235, 131, 6, 127, -235, 27, 48, 28, 128, - 163, 6, 29, 54, 55, 56, 57, 58, 59, 208, - 157, 30, 245, 154, 158, 126, 178, 407, 408, 213, - 210, 129, 370, -235, 179, 180, -235, 371, 475, 132, - 211, 409, 410, 411, 412, 413, 414, 415, 416, 417, - 418, 419, 514, 133, 516, 134, 518, 431, 7, 276, - 17, 68, 135, -227, 421, 17, 68, -227, 212, 371, - 159, 160, 17, 68, -235, -235, 179, 469, -246, 477, - 136, 7, 371, -228, 371, 34, 137, -228, 218, 6, - 38, 39, 40, 41, 437, -227, 138, 438, -227, -229, - 48, 439, 139, -229, 17, 18, 54, 55, 56, 57, - 58, 59, -230, 331, 384, -228, -230, 158, -228, 140, - 30, 478, 484, 505, 72, 429, 371, 371, 371, 332, - 141, -229, 142, 212, -229, 34, -227, -227, 519, 6, - 201, 179, 143, 371, -230, 446, 447, -230, 152, 153, - 144, 145, 487, 146, 489, 147, -228, -228, 17, 68, - 163, 148, 149, 202, 150, 214, 215, 208, 216, 203, - 209, 204, -229, -229, 281, 464, 336, 205, 164, 331, - 206, 339, 207, 331, 179, -230, -230, 219, 520, 220, - 221, 523, 210, 232, 152, 332, 161, 161, 213, 332, - 331, 246, 211, -231, 276, 372, 360, -231, 17, 68, - 533, 534, 162, 162, 377, 378, 332, 380, 381, 382, - 383, 486, 387, 165, 388, 392, 163, 434, 166, 393, - 163, 389, 385, 398, 399, -231, 504, 422, -231, 426, - 400, 443, 336, 163, 163, 401, 336, 163, 402, -232, - 179, 210, 210, -232, 179, 444, 448, 160, 449, 336, - 336, 211, 211, 336, 450, 451, -233, 179, 179, 468, - -233, 179, 331, 463, 471, 483, -231, -231, 161, -234, - 473, -232, 495, -234, -232, 34, 496, 506, 332, 6, - 508, 510, 511, 512, 162, 212, 515, 210, -233, 517, - 525, -233, 521, 179, 183, 184, 371, 211, 530, 526, - 494, -234, 527, 528, -234, 531, 532, 208, 23, 163, - 245, 24, -232, -232, 25, 163, 397, 522, 164, 386, - 196, 197, 198, 199, 200, 336, 172, 0, 0, -233, - -233, 336, 441, 179, 196, 197, 198, 199, 200, 179, - 0, 0, -234, -234, 212, 212, 0, 0, 17, 68, - 0, 0, 179, 179, 0, 0, 0, 331, 0, 331, - 0, 0, 0, 165, 0, 0, 0, 0, 166, 0, - 0, 0, 0, 332, 0, 332, 0, 0, 0, 167, - 0, 0, 0, 0, 164, 0, 0, 0, 164, 73, - 212, 0, 0, 331, 0, 161, 331, 0, 179, 0, - 0, 164, 164, 0, 163, 164, 163, 0, 0, 332, - 0, 162, 332, 0, 0, 331, 331, 0, 0, 0, - 336, 0, 336, 151, 0, 493, 155, 156, 179, 165, - 179, 332, 332, 165, 166, 0, 0, 0, 166, 0, - 163, 0, 163, 163, 0, 0, 165, 165, 0, 0, - 165, 166, 166, 168, 0, 166, 336, 0, 336, 336, - 0, 0, 163, 163, 179, 0, 179, 179, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 164, 336, 336, - 0, 0, 0, 164, 0, 0, 179, 179, 169, 0, - 0, 0, 0, 170, 222, 223, 224, 225, 226, 227, - 228, 229, 230, 231, 0, 233, 234, 235, 236, 237, - 238, 239, 240, 0, 243, 0, 0, 0, 0, 244, - 0, 0, 165, 0, 0, 0, 0, 166, 165, 167, - 0, 0, 0, 166, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 247, 248, 249, 250, 251, 252, - 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, - 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, - 274, 0, 164, 0, 164, 0, 0, 0, 0, 0, - 0, 337, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 167, 0, 0, 0, 167, - 0, 0, 0, 168, 358, 0, 0, 0, 164, 0, - 164, 164, 167, 167, 171, 0, 167, 165, 0, 165, - 0, 0, 166, 0, 166, 0, 0, 0, 0, 0, - 164, 164, 0, 0, 0, 243, 0, 0, 169, 0, - 0, 0, 0, 333, 173, 376, 0, 0, 0, 174, - 0, 0, 0, 165, 175, 165, 165, 391, 166, 0, - 166, 166, 0, 0, 0, 0, 0, 0, 0, 168, - 0, 0, 0, 168, 0, 165, 165, 0, 0, 0, - 166, 166, 0, 0, 0, 0, 168, 168, 167, 0, - 168, 0, 0, 0, 167, 0, 0, 0, 0, 0, - 0, 0, 423, 0, 169, 0, 0, 0, 169, 333, - 0, 0, 0, 333, 0, 0, 0, 0, 424, 0, - 0, 169, 169, 427, 0, 169, 333, 333, 0, 0, - 333, 0, 0, 428, 0, 0, 0, 0, 0, 0, - 433, 0, 435, 0, 0, 442, 0, 0, 0, 0, - 176, 0, 0, 0, 0, 177, 0, 0, 0, 0, - 0, 0, 168, 0, 334, 0, 0, 0, 168, 0, - 0, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 461, 462, 0, 167, 0, 167, 0, 467, 0, 0, - 0, 0, 0, 0, 335, 0, 0, 169, 0, 174, - 0, 0, 333, 169, 175, 0, 0, 0, 333, 0, - 479, 480, 481, 482, 0, 0, 0, 0, 0, 167, - 0, 167, 167, 0, 0, 0, 0, 0, 0, 0, - 334, 0, 0, 488, 334, 490, 492, 0, 0, 0, - 0, 167, 167, 0, 0, 0, 0, 334, 334, 0, - 0, 334, 0, 0, 0, 0, 0, 168, 0, 168, - 335, 0, 0, 0, 335, 174, 0, 0, 0, 174, - 175, 0, 524, 0, 175, 0, 0, 394, 395, 0, - 0, 335, 174, 174, 0, 0, 174, 175, 175, 0, - 0, 175, 169, 168, 169, 168, 168, 333, 0, 333, - 176, 0, 0, 0, 0, 177, 0, 0, 0, 0, - 0, 0, 0, 183, 184, 168, 168, 187, 188, 189, - 190, 191, 192, 334, 0, 0, 0, 0, 169, 334, - 169, 169, 0, 333, 0, 333, 333, 194, 195, 196, - 197, 198, 199, 200, 0, 0, 0, 0, 0, 0, - 169, 169, 0, 335, 0, 333, 333, 0, 174, 440, - 0, 0, 0, 175, 174, 0, 176, 0, 0, 175, - 176, 177, 0, 0, 0, 177, 0, 0, 0, 0, - 0, 0, 0, 176, 176, 0, 0, 176, 177, 177, - 0, 0, 177, 0, 0, 0, 0, 0, 0, 0, - 34, 0, 0, 0, 6, 38, 39, 40, 41, 0, - 0, 0, 0, 0, 0, 48, 0, 0, 334, 0, - 334, 54, 55, 56, 57, 58, 59, 0, 0, 0, - 0, 0, 158, 0, 0, 0, 0, 0, 0, 0, - 299, 300, 0, 0, 0, 0, 0, 0, 335, 0, - 335, 0, 0, 174, 334, 174, 334, 334, 175, 176, - 175, 0, 0, 0, 177, 176, 0, 0, 0, 0, - 177, 0, 0, 17, 68, 0, 334, 334, 0, 0, - 0, 0, 0, 0, 335, 0, 440, 335, 0, 174, - 0, 174, 174, 0, 175, 0, 175, 175, 0, 0, - 0, 0, 0, 0, 0, 241, 335, 335, 0, 0, - 242, 174, 174, 0, 0, 182, 175, 175, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 0, 0, + 16, 219, 31, 376, 163, 439, 212, 381, 281, 16, + 440, 19, 20, 441, 6, 340, 213, 277, 26, 22, + 164, 1, 2, 3, 4, 5, 33, 21, -228, 129, + 476, 372, -228, 35, 130, 132, 373, 6, 39, 40, + 41, 42, -236, 133, 27, 423, -236, 28, 49, 29, + 373, 165, 6, 30, 55, 56, 57, 58, 59, 60, + -228, 159, -229, -228, 156, 160, -229, 180, 17, 18, + 215, 134, 212, 477, -236, 181, 471, -236, 128, 182, + 479, 373, 213, 386, 7, 373, -230, 278, 35, 30, + -230, 135, 6, 73, -229, 480, 433, -229, 136, -231, + 373, -228, -228, -231, 154, 155, 17, 69, 486, 214, + 6, 161, 162, 373, 507, -236, -236, 181, -230, 373, + 210, -230, 7, 247, 200, 201, 202, -248, 409, 410, + 220, -231, 439, 137, -231, -229, -229, 440, 131, 138, + 441, 139, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 521, 140, 333, 141, 142, 373, -230, + -230, 17, 69, 203, 516, 143, 518, 431, 520, 144, + 145, 334, -231, -231, 146, 214, 147, 148, 35, 17, + 69, 149, 6, 181, 150, 151, 152, 448, 449, 217, + 216, 489, 204, 491, 205, 206, -232, 207, 208, 209, + -232, 218, 165, 198, 199, 200, 201, 202, -233, 221, + 210, 222, -233, 211, 234, 223, 283, 466, 338, 154, + 248, 333, 215, 341, 278, 333, 181, 522, -232, 374, + 525, -232, 380, 379, 212, 382, 389, 334, 163, 163, + -233, 334, 333, -233, 213, 383, 384, 385, 362, 535, + 536, 17, 69, 390, 164, 164, 394, 395, 334, 391, + 400, 401, 402, 488, 166, 403, 424, 428, 165, -232, + -232, 404, 165, 436, 387, 450, 162, 445, 506, 446, + 451, -233, -233, 452, 338, 165, 165, 453, 338, 165, + 465, -234, 181, 212, 212, -234, 181, 470, 473, 475, + 485, 338, 338, 213, 213, 338, 497, 508, -235, 181, + 181, 498, -235, 181, 333, 510, 513, 512, 514, 517, + 163, 519, 523, -234, 373, 35, -234, 527, 528, 6, + 334, 529, 530, 532, 533, 534, 164, 214, 23, 212, + -235, 24, 25, -235, 399, 181, 524, 35, 174, 213, + 496, 6, 39, 40, 41, 42, 167, 210, 388, 0, + 247, 165, 49, 0, -234, -234, 0, 165, 55, 56, + 57, 58, 59, 60, 0, 0, 0, 338, 0, 160, + 0, -235, -235, 338, 443, 181, 0, 301, 302, 0, + 0, 181, 0, 0, 0, 0, 214, 214, 17, 69, + 0, 0, 0, 0, 181, 181, 185, 186, 0, 333, + 0, 333, 0, 0, 0, 166, 0, 0, 0, 0, + 17, 69, 0, 0, 0, 334, 0, 334, 0, 0, + 168, 0, 198, 199, 200, 201, 202, 0, 0, 0, + 74, 169, 214, 0, 0, 333, 0, 163, 333, 0, + 181, 0, 0, 0, 0, 0, 165, 0, 165, 0, + 0, 334, 0, 164, 334, 0, 0, 333, 333, 0, + 0, 0, 338, 0, 338, 153, 0, 495, 157, 158, + 181, 166, 181, 334, 334, 166, 0, 0, 0, 0, + 0, 0, 165, 0, 165, 165, 0, 0, 166, 166, + 0, 170, 166, 0, 0, 0, 0, 167, 338, 0, + 338, 338, 0, 0, 165, 165, 181, 0, 181, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 193, 194, 195, 196, 197, 198, 199, 200, 0, - 0, 0, 0, 282, 176, 0, 176, 0, 0, 177, - 283, 177, 0, 284, 285, 0, 286, 287, 288, 289, - 0, 290, 291, 292, 293, 294, 295, 296, 297, 34, - 0, 0, 0, 6, 38, 39, 40, 41, 0, 0, - 176, 0, 176, 176, 48, 177, 0, 177, 177, 0, - 54, 55, 56, 57, 58, 59, 0, 0, 0, 216, - 298, 158, 176, 176, 282, 0, 0, 177, 177, 299, - 300, 283, 0, 0, 284, 285, 0, 286, 287, 288, - 289, 0, 290, 291, 292, 293, 294, 295, 296, 297, - 34, 0, 0, 0, 6, 38, 39, 40, 41, 0, - 0, 0, 17, 68, 0, 48, 0, 0, 0, 0, - 0, 54, 55, 56, 57, 58, 59, 0, 0, 0, - 216, 396, 158, 0, 0, 0, 373, 0, 0, 0, - 299, 300, 283, 0, 0, 284, 285, 0, 286, 287, - 288, 289, 0, 290, 291, 292, 293, 294, 295, 296, - 297, 34, 0, 0, 0, 6, 38, 39, 40, 41, - 0, 0, 0, 17, 68, 0, 48, 0, 0, 0, - 0, 0, 54, 55, 56, 57, 58, 59, 0, 0, - 0, 216, 0, 158, 0, 0, 0, 430, 0, 0, - 0, 299, 300, 283, 0, 0, 284, 285, 0, 286, - 287, 288, 289, 0, 290, 291, 292, 293, 294, 295, - 296, 297, 34, 0, 0, 0, 6, 38, 39, 40, - 41, 0, 0, 0, 17, 68, 0, 48, 0, 0, - 0, 0, 0, 54, 55, 56, 57, 58, 59, 0, - 0, 0, 216, 0, 158, 403, 404, 0, 405, 406, - 0, 0, 299, 300, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, - 6, 0, 0, 0, 498, 0, 0, 0, 0, 499, - 0, 0, 0, 0, 182, 17, 68, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 0, 208, 0, - 0, 245, 0, 0, 0, 0, 407, 408, 0, 0, - 193, 194, 195, 196, 197, 198, 199, 200, 0, 0, - 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, - 419, 0, 0, 0, 0, 0, 0, 0, 283, 17, - 68, 284, 285, 0, 286, 287, 288, 289, 0, 290, - 291, 292, 293, 294, 295, 296, 297, 34, 0, 0, - 0, 6, 38, 39, 40, 41, 0, 0, 0, 0, - 0, 0, 48, 0, 0, 0, 0, 0, 54, 55, - 56, 57, 58, 59, 0, 0, 0, 216, 0, 158, - 0, 0, 0, 0, 0, 0, 0, 299, 300, 0, - 34, 35, 36, 37, 6, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 61, 359, - 17, 68, 273, 153, 0, 182, 63, 0, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 0, 0, - 0, 0, 64, 65, 0, 0, 0, 0, 0, 0, - 0, 193, 194, 195, 196, 197, 198, 199, 200, 66, - 0, 0, 67, 17, 68, 30, 69, 70, 71, 72, - 34, 35, 36, 37, 6, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 61, 0, - 0, 0, 62, 183, 184, 0, 63, 0, 390, 189, - 190, 191, 192, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 64, 65, 0, 0, 0, 0, 0, 196, - 197, 198, 199, 200, 0, 0, 0, 0, 0, 66, - 0, 0, 67, 17, 68, 30, 69, 70, 71, 72, - 34, 35, 36, 37, 6, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 61, 362, - 0, 0, 62, 0, 0, 182, 63, 0, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 0, 0, - 0, 0, 64, 65, 0, 0, 0, 0, 0, 0, - 0, 193, 194, 195, 196, 197, 198, 199, 200, 66, - 0, 0, 67, 17, 68, 30, 69, 70, 71, 72, - 34, 35, 36, 37, 6, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 61, 0, - 0, 0, 273, 0, 0, 0, 63, 0, 0, 0, - 0, 0, 0, 0, 500, 0, 0, 0, 0, 501, - 0, 0, 64, 65, 182, 0, 0, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 0, 0, 66, - 0, 0, 67, 17, 68, 30, 69, 70, 71, 72, - 193, 194, 195, 196, 197, 198, 199, 200, 502, 0, - 0, 0, 0, 503, 0, 0, 0, 0, 182, 0, - 0, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 341, 0, 193, 194, 195, 196, 197, 198, - 199, 200, 182, 0, 0, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 342, 0, 193, 194, - 195, 196, 197, 198, 199, 200, 182, 0, 0, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 0, + 338, 338, 0, 0, 0, 0, 0, 0, 181, 181, + 0, 0, 0, 171, 0, 0, 0, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 0, 235, 236, + 237, 238, 239, 240, 241, 242, 0, 245, 0, 0, + 0, 0, 246, 167, 166, 0, 0, 167, 0, 0, + 166, 168, 0, 0, 0, 0, 0, 0, 0, 0, + 167, 167, 169, 0, 167, 0, 0, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 276, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 339, 0, 0, 0, 0, 0, + 0, 172, 0, 0, 0, 0, 0, 168, 0, 0, + 0, 168, 170, 0, 0, 0, 0, 360, 169, 0, + 0, 0, 169, 0, 168, 168, 167, 0, 168, 166, + 0, 166, 167, 0, 0, 169, 169, 0, 0, 169, + 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, + 0, 0, 173, 0, 171, 0, 0, 0, 378, 0, + 0, 175, 0, 0, 0, 166, 0, 166, 166, 0, + 393, 0, 0, 0, 0, 0, 0, 0, 170, 0, + 0, 0, 170, 0, 0, 0, 0, 166, 166, 0, + 0, 0, 0, 0, 0, 170, 170, 0, 0, 170, + 168, 176, 0, 0, 0, 0, 168, 0, 0, 0, + 0, 169, 0, 0, 0, 425, 177, 169, 0, 0, + 171, 167, 0, 167, 171, 0, 0, 0, 0, 0, + 0, 426, 0, 0, 0, 0, 429, 171, 171, 0, + 0, 171, 0, 0, 0, 0, 430, 0, 0, 0, + 0, 0, 335, 435, 0, 437, 0, 167, 444, 167, + 167, 178, 0, 0, 0, 0, 0, 0, 0, 179, + 0, 170, 0, 0, 0, 0, 0, 170, 0, 167, + 167, 0, 0, 0, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 168, 0, 168, 0, 0, + 469, 0, 0, 336, 0, 0, 169, 0, 169, 0, + 0, 0, 337, 171, 0, 0, 0, 0, 335, 171, + 0, 0, 335, 481, 482, 483, 484, 0, 0, 0, + 0, 168, 0, 168, 168, 335, 335, 0, 0, 335, + 0, 0, 169, 0, 169, 169, 490, 0, 492, 494, + 0, 0, 176, 168, 168, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 169, 169, 170, 177, 170, 336, + 0, 0, 0, 336, 0, 0, 0, 0, 337, 0, + 0, 0, 337, 0, 0, 526, 336, 336, 0, 0, + 336, 0, 0, 0, 0, 396, 397, 0, 0, 337, + 0, 0, 170, 0, 170, 170, 0, 0, 171, 0, + 171, 335, 178, 0, 0, 0, 0, 335, 176, 0, + 179, 0, 176, 0, 170, 170, 0, 0, 0, 0, + 0, 0, 0, 177, 0, 176, 176, 177, 0, 176, + 0, 0, 0, 0, 171, 0, 171, 171, 0, 0, + 177, 177, 0, 0, 177, 0, 0, 0, 0, 0, + 0, 0, 336, 0, 0, 0, 171, 171, 336, 0, + 0, 337, 0, 0, 0, 0, 0, 442, 178, 0, + 0, 0, 178, 0, 0, 0, 179, 0, 0, 0, + 179, 0, 0, 0, 0, 178, 178, 0, 0, 178, + 0, 0, 0, 179, 179, 0, 335, 179, 335, 0, + 0, 176, 0, 0, 35, 0, 0, 176, 6, 39, + 40, 41, 42, 0, 0, 0, 177, 0, 0, 49, + 0, 0, 177, 0, 0, 55, 56, 57, 58, 59, + 60, 0, 335, 0, 335, 335, 160, 0, 0, 0, + 0, 0, 0, 0, 185, 186, 0, 336, 0, 336, + 191, 192, 193, 194, 335, 335, 337, 0, 337, 0, + 0, 178, 0, 0, 0, 0, 0, 178, 0, 179, + 198, 199, 200, 201, 202, 179, 0, 17, 69, 0, + 0, 0, 0, 336, 0, 336, 336, 0, 0, 0, + 0, 0, 337, 0, 442, 337, 176, 0, 176, 0, + 0, 0, 0, 0, 0, 336, 336, 0, 0, 0, + 0, 177, 0, 177, 337, 337, 185, 186, 0, 188, + 189, 190, 191, 192, 193, 194, 0, 0, 0, 0, + 0, 0, 176, 0, 176, 176, 0, 0, 0, 195, + 196, 197, 198, 199, 200, 201, 202, 177, 0, 177, + 177, 0, 0, 0, 176, 176, 178, 0, 178, 0, + 0, 0, 0, 0, 179, 0, 179, 0, 0, 177, + 177, 0, 0, 361, 0, 0, 0, 0, 0, 184, + 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 178, 0, 178, 178, 0, 0, 0, 0, + 179, 0, 179, 179, 34, 195, 196, 197, 198, 199, + 200, 201, 202, 0, 178, 178, 0, 0, 0, 0, + 0, 0, 179, 179, 0, 0, 35, 36, 37, 38, + 6, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 364, 0, 0, 275, 155, + 0, 184, 64, 0, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 0, 0, 0, 0, 65, 66, + 0, 0, 0, 0, 34, 0, 0, 195, 196, 197, + 198, 199, 200, 201, 202, 67, 0, 0, 68, 17, + 69, 30, 70, 71, 72, 73, 35, 36, 37, 38, + 6, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 0, 0, 0, 63, 0, + 0, 0, 64, 0, 392, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 65, 66, + 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 67, 0, 0, 68, 17, + 69, 30, 70, 71, 72, 73, 35, 36, 37, 38, + 6, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 365, 0, 0, 63, 0, + 0, 184, 64, 0, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 0, 0, 0, 0, 65, 66, + 0, 0, 0, 0, 34, 0, 0, 195, 196, 197, + 198, 199, 200, 201, 202, 67, 0, 0, 68, 17, + 69, 30, 70, 71, 72, 73, 35, 36, 37, 38, + 6, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 366, 0, 0, 275, 0, + 0, 184, 64, 0, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 0, 0, 0, 0, 65, 66, + 0, 0, 0, 0, 0, 0, 0, 195, 196, 197, + 198, 199, 200, 201, 202, 67, 0, 0, 68, 17, + 69, 30, 70, 71, 72, 73, 284, 0, 0, 0, + 0, 0, 0, 0, 285, 0, 0, 286, 287, 0, + 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, + 297, 298, 299, 35, 0, 0, 0, 6, 39, 40, + 41, 42, 0, 0, 0, 0, 0, 0, 49, 0, + 0, 0, 0, 0, 55, 56, 57, 58, 59, 60, + 0, 0, 0, 218, 300, 160, 0, 284, 0, 0, + 0, 0, 0, 301, 302, 285, 0, 0, 286, 287, + 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, + 296, 297, 298, 299, 35, 0, 0, 0, 6, 39, + 40, 41, 42, 0, 0, 0, 17, 69, 0, 49, + 0, 0, 0, 0, 0, 55, 56, 57, 58, 59, + 60, 0, 0, 0, 218, 398, 160, 0, 0, 375, + 0, 0, 0, 0, 301, 302, 285, 0, 0, 286, + 287, 0, 288, 289, 290, 291, 0, 292, 293, 294, + 295, 296, 297, 298, 299, 35, 0, 0, 0, 6, + 39, 40, 41, 42, 0, 0, 0, 17, 69, 0, + 49, 0, 0, 0, 0, 0, 55, 56, 57, 58, + 59, 60, 0, 0, 0, 218, 0, 160, 0, 0, + 432, 0, 0, 0, 0, 301, 302, 285, 0, 0, + 286, 287, 0, 288, 289, 290, 291, 0, 292, 293, + 294, 295, 296, 297, 298, 299, 35, 0, 0, 0, + 6, 39, 40, 41, 42, 0, 0, 0, 17, 69, + 0, 49, 0, 0, 0, 0, 0, 55, 56, 57, + 58, 59, 60, 0, 0, 0, 218, 0, 160, 405, + 406, 0, 407, 408, 0, 0, 301, 302, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 343, 0, 193, 194, 195, 196, 197, 198, 199, 200, - 182, 0, 0, 183, 184, 185, 186, 187, 188, 189, - 190, 191, 192, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 344, 0, 193, 194, 195, 196, - 197, 198, 199, 200, 182, 0, 0, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 345, 0, - 193, 194, 195, 196, 197, 198, 199, 200, 182, 0, - 0, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 346, 0, 193, 194, 195, 196, 197, 198, - 199, 200, 182, 0, 0, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 347, 0, 193, 194, - 195, 196, 197, 198, 199, 200, 182, 0, 0, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 0, + 35, 0, 0, 0, 6, 0, 0, 0, 243, 0, + 0, 0, 0, 244, 0, 0, 0, 0, 184, 17, + 69, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 0, 210, 0, 0, 247, 0, 0, 0, 0, + 409, 410, 0, 0, 195, 196, 197, 198, 199, 200, + 201, 202, 0, 0, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 0, 0, 0, 0, 0, + 0, 0, 285, 17, 69, 286, 287, 0, 288, 289, + 290, 291, 0, 292, 293, 294, 295, 296, 297, 298, + 299, 35, 0, 0, 0, 6, 39, 40, 41, 42, + 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, + 0, 0, 55, 56, 57, 58, 59, 60, 0, 0, + 0, 218, 0, 160, 0, 0, 0, 0, 0, 0, + 500, 301, 302, 0, 0, 501, 0, 0, 0, 0, + 184, 0, 0, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 17, 69, 195, 196, 197, 198, + 199, 200, 201, 202, 502, 0, 0, 0, 0, 503, + 0, 0, 0, 0, 184, 0, 0, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 348, 0, 193, 194, 195, 196, 197, 198, 199, 200, - 182, 0, 0, 183, 184, 185, 186, 187, 188, 189, - 190, 191, 192, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 349, 0, 193, 194, 195, 196, - 197, 198, 199, 200, 182, 0, 0, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 350, 0, - 193, 194, 195, 196, 197, 198, 199, 200, 182, 0, - 0, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 351, 0, 193, 194, 195, 196, 197, 198, - 199, 200, 182, 0, 0, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 352, 0, 193, 194, - 195, 196, 197, 198, 199, 200, 182, 0, 0, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 0, + 195, 196, 197, 198, 199, 200, 201, 202, 504, 0, + 0, 0, 0, 505, 0, 0, 0, 0, 184, 0, + 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 343, 0, 195, 196, 197, 198, 199, 200, + 201, 202, 184, 0, 0, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 344, 0, 195, 196, + 197, 198, 199, 200, 201, 202, 184, 0, 0, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 353, 0, 193, 194, 195, 196, 197, 198, 199, 200, - 182, 0, 0, 183, 184, 185, 186, 187, 188, 189, - 190, 191, 192, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 354, 0, 193, 194, 195, 196, - 197, 198, 199, 200, 182, 0, 0, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 355, 0, - 193, 194, 195, 196, 197, 198, 199, 200, 182, 0, - 0, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 357, 0, 193, 194, 195, 196, 197, 198, - 199, 200, 182, 0, 0, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 241, 0, 193, 194, - 195, 196, 197, 198, 199, 200, 182, 0, 0, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 0, + 345, 0, 195, 196, 197, 198, 199, 200, 201, 202, + 184, 0, 0, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 346, 0, 195, 196, 197, 198, + 199, 200, 201, 202, 184, 0, 0, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 347, 0, + 195, 196, 197, 198, 199, 200, 201, 202, 184, 0, + 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 348, 0, 195, 196, 197, 198, 199, 200, + 201, 202, 184, 0, 0, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 349, 0, 195, 196, + 197, 198, 199, 200, 201, 202, 184, 0, 0, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 465, 0, 193, 194, 195, 196, 197, 198, 199, 200, - 182, 0, 0, 183, 184, 185, 186, 187, 188, 189, - 190, 191, 192, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 466, 0, 193, 194, 195, 196, - 197, 198, 199, 200, 182, 0, 0, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 470, 0, - 193, 194, 195, 196, 197, 198, 199, 200, 182, 0, - 0, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 472, 0, 193, 194, 195, 196, 197, 198, - 199, 200, 182, 0, 0, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 476, 0, 193, 194, - 195, 196, 197, 198, 199, 200, 182, 0, 0, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 0, + 350, 0, 195, 196, 197, 198, 199, 200, 201, 202, + 184, 0, 0, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 351, 0, 195, 196, 197, 198, + 199, 200, 201, 202, 184, 0, 0, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 352, 0, + 195, 196, 197, 198, 199, 200, 201, 202, 184, 0, + 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 353, 0, 195, 196, 197, 198, 199, 200, + 201, 202, 184, 0, 0, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 354, 0, 195, 196, + 197, 198, 199, 200, 201, 202, 184, 0, 0, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 485, 0, 193, 194, 195, 196, 197, 198, 199, 200, - 182, 0, 0, 183, 184, 185, 186, 187, 188, 189, - 190, 191, 192, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 497, 0, 193, 194, 195, 196, - 197, 198, 199, 200, 182, 0, 0, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 507, 0, - 193, 194, 195, 196, 197, 198, 199, 200, 182, 0, - 0, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 509, 0, 193, 194, 195, 196, 197, 198, - 199, 200, 182, 0, 0, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 529, 0, 193, 194, - 195, 196, 197, 198, 199, 200, 182, 0, 0, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 0, + 355, 0, 195, 196, 197, 198, 199, 200, 201, 202, + 184, 0, 0, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 356, 0, 195, 196, 197, 198, + 199, 200, 201, 202, 184, 0, 0, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 357, 0, + 195, 196, 197, 198, 199, 200, 201, 202, 184, 0, + 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 359, 0, 195, 196, 197, 198, 199, 200, + 201, 202, 184, 0, 0, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 243, 0, 195, 196, + 197, 198, 199, 200, 201, 202, 184, 0, 0, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 193, 194, 195, 196, 197, 198, 199, 200, - 363, 0, 0, 0, 0, 0, 182, 0, 0, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 0, + 467, 0, 195, 196, 197, 198, 199, 200, 201, 202, + 184, 0, 0, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 468, 0, 195, 196, 197, 198, + 199, 200, 201, 202, 184, 0, 0, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 472, 0, + 195, 196, 197, 198, 199, 200, 201, 202, 184, 0, + 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 474, 0, 195, 196, 197, 198, 199, 200, + 201, 202, 184, 0, 0, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 478, 0, 195, 196, + 197, 198, 199, 200, 201, 202, 184, 0, 0, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 193, 194, 195, 196, 197, 198, 199, 200, - 364, 0, 0, 0, 0, 0, 182, 0, 0, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 0, + 487, 0, 195, 196, 197, 198, 199, 200, 201, 202, + 184, 0, 0, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 499, 0, 195, 196, 197, 198, + 199, 200, 201, 202, 184, 0, 0, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 509, 0, + 195, 196, 197, 198, 199, 200, 201, 202, 184, 0, + 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 511, 0, 195, 196, 197, 198, 199, 200, + 201, 202, 184, 0, 0, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 531, 0, 195, 196, + 197, 198, 199, 200, 201, 202, 184, 0, 0, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 193, 194, 195, 196, 197, 198, 199, 200, - 365, 0, 0, 0, 0, 0, 182, 0, 0, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 0, + 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, + 367, 0, 0, 0, 0, 0, 184, 0, 0, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 193, 194, 195, 196, 197, 198, 199, 200, - 366, 0, 0, 0, 0, 0, 182, 0, 0, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 0, + 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, + 368, 0, 0, 0, 0, 0, 184, 0, 0, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 193, 194, 195, 196, 197, 198, 199, 200, - 367, 0, 0, 0, 0, 0, 182, 0, 0, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 0, + 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, + 369, 0, 0, 0, 0, 0, 184, 0, 0, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 193, 194, 195, 196, 197, 198, 199, 200, - 368, 0, 0, 0, 0, 0, 182, 0, 0, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 0, + 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, + 370, 0, 0, 0, 0, 0, 184, 0, 0, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 193, 194, 195, 196, 197, 198, 199, 200, - 369, 0, 0, 0, 0, 0, 182, 0, 0, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 0, + 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, + 371, 0, 0, 0, 0, 0, 184, 0, 0, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 193, 194, 195, 196, 197, 198, 199, 200, - 420, 0, 0, 0, 0, 0, 182, 0, 0, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 0, + 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, + 422, 0, 0, 0, 0, 0, 184, 0, 0, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 193, 194, 195, 196, 197, 198, 199, 200, - 340, 0, 0, 0, 0, 182, 0, 0, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 0, 0, + 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, + 342, 0, 0, 0, 0, 184, 0, 0, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 193, 194, 195, 196, 197, 198, 199, 200, 356, - 0, 0, 0, 0, 182, 0, 0, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 0, 0, 0, + 0, 195, 196, 197, 198, 199, 200, 201, 202, 358, + 0, 0, 0, 0, 184, 0, 0, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 193, 194, 195, 196, 197, 198, 199, 200, 425, 0, - 0, 0, 0, 182, 0, 0, 183, 184, 185, 186, - 187, 188, 189, 190, 191, 192, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 193, - 194, 195, 196, 197, 198, 199, 200, 361, 0, 182, - 0, 0, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 193, 194, 195, 196, 197, - 198, 199, 200, 181, 182, 0, 0, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 0, 0, 0, + 195, 196, 197, 198, 199, 200, 201, 202, 427, 0, + 0, 0, 0, 184, 0, 0, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 195, + 196, 197, 198, 199, 200, 201, 202, 363, 0, 184, + 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 195, 196, 197, 198, 199, + 200, 201, 202, 183, 184, 0, 0, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 193, 194, 195, 196, 197, 198, 199, 200, 432, 182, - 0, 0, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 193, 194, 195, 196, 197, - 198, 199, 200, 445, 182, 0, 0, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 182, 0, 0, - 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 0, 0, - 0, 0, 0, 193, 194, 195, 196, 197, 198, 199, - 200, 183, 184, 0, 186, 187, 188, 189, 190, 191, - 192, 183, 184, 0, 0, 187, 188, 189, 190, 191, - 192, 0, 0, 0, 193, 194, 195, 196, 197, 198, - 199, 200, 0, 0, 193, 194, 195, 196, 197, 198, - 199, 200, 183, 184, 0, 0, 187, 188, 189, 190, - 191, 192, 183, 184, 0, 0, 187, 188, 189, 190, - 191, 192, 0, 0, 0, 0, 194, 0, 196, 197, - 198, 199, 200, 0, 0, 0, 0, 0, 196, 197, - 198, 199, 200 + 195, 196, 197, 198, 199, 200, 201, 202, 434, 184, + 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 195, 196, 197, 198, 199, + 200, 201, 202, 447, 184, 0, 0, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 184, 0, 0, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 0, 0, + 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, + 202, 185, 186, 0, 0, 189, 190, 191, 192, 193, + 194, 185, 186, 0, 0, 189, 190, 191, 192, 193, + 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, + 201, 202, 0, 0, 0, 196, 197, 198, 199, 200, + 201, 202, 185, 186, 0, 0, 189, 190, 191, 192, + 193, 194, 185, 186, 0, 0, 189, 190, 191, 192, + 193, 194, 0, 0, 0, 0, 196, 0, 198, 199, + 200, 201, 202, 0, 0, 0, 0, 0, 198, 199, + 200, 201, 202 }; const short parser::yycheck_[] = { - 0, 127, 21, 66, 282, 108, 213, 381, 286, 9, - 381, 3, 4, 220, 381, 108, 107, 108, 109, 66, - 65, 11, 12, 13, 14, 15, 26, 37, 41, 41, - 65, 41, 37, 0, 34, 28, 41, 42, 43, 44, - 45, 37, 34, 41, 66, 41, 91, 52, 75, 71, - 66, 41, 75, 58, 59, 60, 61, 62, 63, 69, - 65, 112, 72, 63, 69, 66, 66, 77, 78, 65, - 173, 69, 66, 69, 66, 111, 72, 71, 71, 65, - 173, 91, 92, 93, 94, 95, 96, 97, 98, 99, - 100, 101, 499, 65, 501, 65, 503, 375, 111, 111, - 110, 111, 65, 37, 66, 110, 111, 41, 108, 71, - 115, 116, 110, 111, 110, 111, 108, 66, 73, 66, - 65, 111, 71, 37, 71, 37, 65, 41, 128, 41, - 42, 43, 44, 45, 508, 69, 65, 508, 72, 37, - 52, 508, 65, 41, 110, 111, 58, 59, 60, 61, - 62, 63, 37, 216, 106, 69, 41, 69, 72, 65, - 112, 66, 66, 66, 116, 372, 71, 71, 71, 216, - 65, 69, 65, 173, 72, 37, 110, 111, 66, 41, - 69, 173, 65, 71, 69, 392, 393, 72, 69, 70, - 65, 65, 470, 65, 472, 65, 110, 111, 110, 111, - 216, 65, 65, 69, 65, 73, 75, 69, 67, 69, - 72, 69, 110, 111, 214, 422, 216, 69, 66, 282, - 69, 221, 69, 286, 216, 110, 111, 69, 506, 65, - 73, 509, 335, 66, 69, 282, 299, 300, 65, 286, - 303, 73, 335, 37, 111, 65, 246, 41, 110, 111, - 528, 529, 299, 300, 75, 65, 303, 65, 65, 65, - 65, 468, 74, 66, 75, 65, 282, 25, 66, 65, - 286, 75, 291, 75, 75, 69, 483, 65, 72, 70, - 75, 74, 282, 299, 300, 75, 286, 303, 75, 37, - 282, 394, 395, 41, 286, 74, 65, 116, 65, 299, - 300, 394, 395, 303, 65, 65, 37, 299, 300, 65, - 41, 303, 375, 70, 65, 65, 110, 111, 381, 37, - 75, 69, 75, 41, 72, 37, 75, 23, 375, 41, - 75, 28, 75, 75, 381, 335, 75, 440, 69, 75, - 66, 72, 75, 335, 79, 80, 71, 440, 75, 66, - 476, 69, 66, 66, 72, 75, 75, 69, 9, 375, - 72, 9, 110, 111, 9, 381, 303, 508, 216, 291, - 105, 106, 107, 108, 109, 375, 66, -1, -1, 110, - 111, 381, 382, 375, 105, 106, 107, 108, 109, 381, - -1, -1, 110, 111, 394, 395, -1, -1, 110, 111, - -1, -1, 394, 395, -1, -1, -1, 470, -1, 472, - -1, -1, -1, 216, -1, -1, -1, -1, 216, -1, - -1, -1, -1, 470, -1, 472, -1, -1, -1, 66, - -1, -1, -1, -1, 282, -1, -1, -1, 286, 27, - 440, -1, -1, 506, -1, 508, 509, -1, 440, -1, - -1, 299, 300, -1, 470, 303, 472, -1, -1, 506, - -1, 508, 509, -1, -1, 528, 529, -1, -1, -1, - 470, -1, 472, 61, -1, 475, 64, 65, 470, 282, - 472, 528, 529, 286, 282, -1, -1, -1, 286, -1, - 506, -1, 508, 509, -1, -1, 299, 300, -1, -1, - 303, 299, 300, 66, -1, 303, 506, -1, 508, 509, - -1, -1, 528, 529, 506, -1, 508, 509, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 375, 528, 529, - -1, -1, -1, 381, -1, -1, 528, 529, 66, -1, - -1, -1, -1, 66, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, -1, 143, 144, 145, 146, 147, - 148, 149, 150, -1, 152, -1, -1, -1, -1, 157, - -1, -1, 375, -1, -1, -1, -1, 375, 381, 216, - -1, -1, -1, 381, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 182, 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, -1, 470, -1, 472, -1, -1, -1, -1, -1, - -1, 219, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 282, -1, -1, -1, 286, - -1, -1, -1, 216, 242, -1, -1, -1, 506, -1, - 508, 509, 299, 300, 66, -1, 303, 470, -1, 472, - -1, -1, 470, -1, 472, -1, -1, -1, -1, -1, - 528, 529, -1, -1, -1, 273, -1, -1, 216, -1, - -1, -1, -1, 216, 66, 283, -1, -1, -1, 66, - -1, -1, -1, 506, 66, 508, 509, 295, 506, -1, - 508, 509, -1, -1, -1, -1, -1, -1, -1, 282, - -1, -1, -1, 286, -1, 528, 529, -1, -1, -1, - 528, 529, -1, -1, -1, -1, 299, 300, 375, -1, - 303, -1, -1, -1, 381, -1, -1, -1, -1, -1, - -1, -1, 340, -1, 282, -1, -1, -1, 286, 282, - -1, -1, -1, 286, -1, -1, -1, -1, 356, -1, - -1, 299, 300, 361, -1, 303, 299, 300, -1, -1, - 303, -1, -1, 371, -1, -1, -1, -1, -1, -1, - 378, -1, 380, -1, -1, 383, -1, -1, -1, -1, - 66, -1, -1, -1, -1, 66, -1, -1, -1, -1, - -1, -1, 375, -1, 216, -1, -1, -1, 381, -1, - -1, 409, 410, 411, 412, 413, 414, 415, 416, 417, - 418, 419, -1, 470, -1, 472, -1, 425, -1, -1, - -1, -1, -1, -1, 216, -1, -1, 375, -1, 216, - -1, -1, 375, 381, 216, -1, -1, -1, 381, -1, - 448, 449, 450, 451, -1, -1, -1, -1, -1, 506, - -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, - 282, -1, -1, 471, 286, 473, 474, -1, -1, -1, - -1, 528, 529, -1, -1, -1, -1, 299, 300, -1, - -1, 303, -1, -1, -1, -1, -1, 470, -1, 472, - 282, -1, -1, -1, 286, 282, -1, -1, -1, 286, - 282, -1, 510, -1, 286, -1, -1, 299, 300, -1, - -1, 303, 299, 300, -1, -1, 303, 299, 300, -1, - -1, 303, 470, 506, 472, 508, 509, 470, -1, 472, - 216, -1, -1, -1, -1, 216, -1, -1, -1, -1, - -1, -1, -1, 79, 80, 528, 529, 83, 84, 85, - 86, 87, 88, 375, -1, -1, -1, -1, 506, 381, - 508, 509, -1, 506, -1, 508, 509, 103, 104, 105, - 106, 107, 108, 109, -1, -1, -1, -1, -1, -1, - 528, 529, -1, 375, -1, 528, 529, -1, 375, 381, - -1, -1, -1, 375, 381, -1, 282, -1, -1, 381, - 286, 282, -1, -1, -1, 286, -1, -1, -1, -1, - -1, -1, -1, 299, 300, -1, -1, 303, 299, 300, - -1, -1, 303, -1, -1, -1, -1, -1, -1, -1, - 37, -1, -1, -1, 41, 42, 43, 44, 45, -1, - -1, -1, -1, -1, -1, 52, -1, -1, 470, -1, - 472, 58, 59, 60, 61, 62, 63, -1, -1, -1, - -1, -1, 69, -1, -1, -1, -1, -1, -1, -1, - 77, 78, -1, -1, -1, -1, -1, -1, 470, -1, - 472, -1, -1, 470, 506, 472, 508, 509, 470, 375, - 472, -1, -1, -1, 375, 381, -1, -1, -1, -1, - 381, -1, -1, 110, 111, -1, 528, 529, -1, -1, - -1, -1, -1, -1, 506, -1, 508, 509, -1, 506, - -1, 508, 509, -1, 506, -1, 508, 509, -1, -1, - -1, -1, -1, -1, -1, 66, 528, 529, -1, -1, - 71, 528, 529, -1, -1, 76, 528, 529, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, -1, -1, + 0, 129, 21, 284, 67, 383, 109, 288, 215, 9, + 383, 3, 4, 383, 42, 222, 109, 42, 66, 0, + 67, 11, 12, 13, 14, 15, 26, 66, 38, 67, + 29, 67, 42, 38, 72, 35, 72, 42, 43, 44, + 45, 46, 38, 35, 92, 67, 42, 76, 53, 76, + 72, 67, 42, 113, 59, 60, 61, 62, 63, 64, + 70, 66, 38, 73, 64, 70, 42, 67, 111, 112, + 66, 66, 175, 72, 70, 67, 67, 73, 67, 112, + 67, 72, 175, 107, 112, 72, 38, 112, 38, 113, + 42, 66, 42, 117, 70, 67, 377, 73, 66, 38, + 72, 111, 112, 42, 70, 71, 111, 112, 67, 109, + 42, 116, 117, 72, 67, 111, 112, 109, 70, 72, + 70, 73, 112, 73, 108, 109, 110, 74, 78, 79, + 130, 70, 510, 66, 73, 111, 112, 510, 70, 66, + 510, 66, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 67, 66, 218, 66, 66, 72, 111, + 112, 111, 112, 70, 501, 66, 503, 374, 505, 66, + 66, 218, 111, 112, 66, 175, 66, 66, 38, 111, + 112, 66, 42, 175, 66, 66, 66, 394, 395, 76, + 74, 472, 70, 474, 70, 70, 38, 70, 70, 70, + 42, 68, 218, 106, 107, 108, 109, 110, 38, 70, + 70, 66, 42, 73, 67, 74, 216, 424, 218, 70, + 74, 284, 66, 223, 112, 288, 218, 508, 70, 66, + 511, 73, 66, 76, 337, 66, 75, 284, 301, 302, + 70, 288, 305, 73, 337, 66, 66, 66, 248, 530, + 531, 111, 112, 76, 301, 302, 66, 66, 305, 76, + 76, 76, 76, 470, 67, 76, 66, 71, 284, 111, + 112, 76, 288, 26, 293, 66, 117, 75, 485, 75, + 66, 111, 112, 66, 284, 301, 302, 66, 288, 305, + 71, 38, 284, 396, 397, 42, 288, 66, 66, 76, + 66, 301, 302, 396, 397, 305, 76, 24, 38, 301, + 302, 76, 42, 305, 377, 76, 76, 29, 76, 76, + 383, 76, 76, 70, 72, 38, 73, 67, 67, 42, + 377, 67, 67, 76, 76, 76, 383, 337, 9, 442, + 70, 9, 9, 73, 305, 337, 510, 38, 67, 442, + 478, 42, 43, 44, 45, 46, 67, 70, 293, -1, + 73, 377, 53, -1, 111, 112, -1, 383, 59, 60, + 61, 62, 63, 64, -1, -1, -1, 377, -1, 70, + -1, 111, 112, 383, 384, 377, -1, 78, 79, -1, + -1, 383, -1, -1, -1, -1, 396, 397, 111, 112, + -1, -1, -1, -1, 396, 397, 80, 81, -1, 472, + -1, 474, -1, -1, -1, 218, -1, -1, -1, -1, + 111, 112, -1, -1, -1, 472, -1, 474, -1, -1, + 67, -1, 106, 107, 108, 109, 110, -1, -1, -1, + 27, 67, 442, -1, -1, 508, -1, 510, 511, -1, + 442, -1, -1, -1, -1, -1, 472, -1, 474, -1, + -1, 508, -1, 510, 511, -1, -1, 530, 531, -1, + -1, -1, 472, -1, 474, 62, -1, 477, 65, 66, + 472, 284, 474, 530, 531, 288, -1, -1, -1, -1, + -1, -1, 508, -1, 510, 511, -1, -1, 301, 302, + -1, 67, 305, -1, -1, -1, -1, 218, 508, -1, + 510, 511, -1, -1, 530, 531, 508, -1, 510, 511, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, - -1, -1, -1, 11, 470, -1, 472, -1, -1, 470, - 18, 472, -1, 21, 22, -1, 24, 25, 26, 27, - -1, 29, 30, 31, 32, 33, 34, 35, 36, 37, - -1, -1, -1, 41, 42, 43, 44, 45, -1, -1, - 506, -1, 508, 509, 52, 506, -1, 508, 509, -1, - 58, 59, 60, 61, 62, 63, -1, -1, -1, 67, - 68, 69, 528, 529, 11, -1, -1, 528, 529, 77, - 78, 18, -1, -1, 21, 22, -1, 24, 25, 26, - 27, -1, 29, 30, 31, 32, 33, 34, 35, 36, - 37, -1, -1, -1, 41, 42, 43, 44, 45, -1, - -1, -1, 110, 111, -1, 52, -1, -1, -1, -1, - -1, 58, 59, 60, 61, 62, 63, -1, -1, -1, - 67, 68, 69, -1, -1, -1, 12, -1, -1, -1, - 77, 78, 18, -1, -1, 21, 22, -1, 24, 25, - 26, 27, -1, 29, 30, 31, 32, 33, 34, 35, - 36, 37, -1, -1, -1, 41, 42, 43, 44, 45, - -1, -1, -1, 110, 111, -1, 52, -1, -1, -1, - -1, -1, 58, 59, 60, 61, 62, 63, -1, -1, - -1, 67, -1, 69, -1, -1, -1, 12, -1, -1, - -1, 77, 78, 18, -1, -1, 21, 22, -1, 24, - 25, 26, 27, -1, 29, 30, 31, 32, 33, 34, - 35, 36, 37, -1, -1, -1, 41, 42, 43, 44, - 45, -1, -1, -1, 110, 111, -1, 52, -1, -1, - -1, -1, -1, 58, 59, 60, 61, 62, 63, -1, - -1, -1, 67, -1, 69, 16, 17, -1, 19, 20, - -1, -1, 77, 78, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 37, -1, -1, -1, - 41, -1, -1, -1, 66, -1, -1, -1, -1, 71, - -1, -1, -1, -1, 76, 110, 111, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, -1, 69, -1, - -1, 72, -1, -1, -1, -1, 77, 78, -1, -1, - 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, -1, -1, -1, -1, -1, -1, -1, 18, 110, - 111, 21, 22, -1, 24, 25, 26, 27, -1, 29, - 30, 31, 32, 33, 34, 35, 36, 37, -1, -1, - -1, 41, 42, 43, 44, 45, -1, -1, -1, -1, - -1, -1, 52, -1, -1, -1, -1, -1, 58, 59, - 60, 61, 62, 63, -1, -1, -1, 67, -1, 69, - -1, -1, -1, -1, -1, -1, -1, 77, 78, -1, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 70, - 110, 111, 69, 70, -1, 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, - -1, -1, 109, 110, 111, 112, 113, 114, 115, 116, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, - -1, -1, 69, 79, 80, -1, 73, -1, 75, 85, - 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 89, 90, -1, -1, -1, -1, -1, 105, - 106, 107, 108, 109, -1, -1, -1, -1, -1, 106, - -1, -1, 109, 110, 111, 112, 113, 114, 115, 116, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 70, - -1, -1, 69, -1, -1, 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, - -1, -1, 109, 110, 111, 112, 113, 114, 115, 116, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, - -1, -1, 69, -1, -1, -1, 73, -1, -1, -1, - -1, -1, -1, -1, 66, -1, -1, -1, -1, 71, - -1, -1, 89, 90, 76, -1, -1, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, -1, -1, 106, - -1, -1, 109, 110, 111, 112, 113, 114, 115, 116, - 102, 103, 104, 105, 106, 107, 108, 109, 66, -1, - -1, -1, -1, 71, -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, 66, -1, 102, 103, 104, 105, 106, 107, - 108, 109, 76, -1, -1, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 88, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 66, -1, 102, 103, - 104, 105, 106, 107, 108, 109, 76, -1, -1, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, -1, + 530, 531, -1, -1, -1, -1, -1, -1, 530, 531, + -1, -1, -1, 67, -1, -1, -1, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, -1, 145, 146, + 147, 148, 149, 150, 151, 152, -1, 154, -1, -1, + -1, -1, 159, 284, 377, -1, -1, 288, -1, -1, + 383, 218, -1, -1, -1, -1, -1, -1, -1, -1, + 301, 302, 218, -1, 305, -1, -1, 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, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 221, -1, -1, -1, -1, -1, + -1, 67, -1, -1, -1, -1, -1, 284, -1, -1, + -1, 288, 218, -1, -1, -1, -1, 244, 284, -1, + -1, -1, 288, -1, 301, 302, 377, -1, 305, 472, + -1, 474, 383, -1, -1, 301, 302, -1, -1, 305, + -1, -1, -1, -1, -1, -1, -1, -1, 275, -1, + -1, -1, 67, -1, 218, -1, -1, -1, 285, -1, + -1, 67, -1, -1, -1, 508, -1, 510, 511, -1, + 297, -1, -1, -1, -1, -1, -1, -1, 284, -1, + -1, -1, 288, -1, -1, -1, -1, 530, 531, -1, + -1, -1, -1, -1, -1, 301, 302, -1, -1, 305, + 377, 67, -1, -1, -1, -1, 383, -1, -1, -1, + -1, 377, -1, -1, -1, 342, 67, 383, -1, -1, + 284, 472, -1, 474, 288, -1, -1, -1, -1, -1, + -1, 358, -1, -1, -1, -1, 363, 301, 302, -1, + -1, 305, -1, -1, -1, -1, 373, -1, -1, -1, + -1, -1, 218, 380, -1, 382, -1, 508, 385, 510, + 511, 67, -1, -1, -1, -1, -1, -1, -1, 67, + -1, 377, -1, -1, -1, -1, -1, 383, -1, 530, + 531, -1, -1, -1, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 472, -1, 474, -1, -1, + 427, -1, -1, 218, -1, -1, 472, -1, 474, -1, + -1, -1, 218, 377, -1, -1, -1, -1, 284, 383, + -1, -1, 288, 450, 451, 452, 453, -1, -1, -1, + -1, 508, -1, 510, 511, 301, 302, -1, -1, 305, + -1, -1, 508, -1, 510, 511, 473, -1, 475, 476, + -1, -1, 218, 530, 531, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 530, 531, 472, 218, 474, 284, + -1, -1, -1, 288, -1, -1, -1, -1, 284, -1, + -1, -1, 288, -1, -1, 512, 301, 302, -1, -1, + 305, -1, -1, -1, -1, 301, 302, -1, -1, 305, + -1, -1, 508, -1, 510, 511, -1, -1, 472, -1, + 474, 377, 218, -1, -1, -1, -1, 383, 284, -1, + 218, -1, 288, -1, 530, 531, -1, -1, -1, -1, + -1, -1, -1, 284, -1, 301, 302, 288, -1, 305, + -1, -1, -1, -1, 508, -1, 510, 511, -1, -1, + 301, 302, -1, -1, 305, -1, -1, -1, -1, -1, + -1, -1, 377, -1, -1, -1, 530, 531, 383, -1, + -1, 377, -1, -1, -1, -1, -1, 383, 284, -1, + -1, -1, 288, -1, -1, -1, 284, -1, -1, -1, + 288, -1, -1, -1, -1, 301, 302, -1, -1, 305, + -1, -1, -1, 301, 302, -1, 472, 305, 474, -1, + -1, 377, -1, -1, 38, -1, -1, 383, 42, 43, + 44, 45, 46, -1, -1, -1, 377, -1, -1, 53, + -1, -1, 383, -1, -1, 59, 60, 61, 62, 63, + 64, -1, 508, -1, 510, 511, 70, -1, -1, -1, + -1, -1, -1, -1, 80, 81, -1, 472, -1, 474, + 86, 87, 88, 89, 530, 531, 472, -1, 474, -1, + -1, 377, -1, -1, -1, -1, -1, 383, -1, 377, + 106, 107, 108, 109, 110, 383, -1, 111, 112, -1, + -1, -1, -1, 508, -1, 510, 511, -1, -1, -1, + -1, -1, 508, -1, 510, 511, 472, -1, 474, -1, + -1, -1, -1, -1, -1, 530, 531, -1, -1, -1, + -1, 472, -1, 474, 530, 531, 80, 81, -1, 83, + 84, 85, 86, 87, 88, 89, -1, -1, -1, -1, + -1, -1, 508, -1, 510, 511, -1, -1, -1, 103, + 104, 105, 106, 107, 108, 109, 110, 508, -1, 510, + 511, -1, -1, -1, 530, 531, 472, -1, 474, -1, + -1, -1, -1, -1, 472, -1, 474, -1, -1, 530, + 531, -1, -1, 71, -1, -1, -1, -1, -1, 77, + -1, -1, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 508, -1, 510, 511, -1, -1, -1, -1, + 508, -1, 510, 511, 16, 103, 104, 105, 106, 107, + 108, 109, 110, -1, 530, 531, -1, -1, -1, -1, + -1, -1, 530, 531, -1, -1, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 71, -1, -1, 70, 71, + -1, 77, 74, -1, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, -1, -1, -1, -1, 90, 91, + -1, -1, -1, -1, 16, -1, -1, 103, 104, 105, + 106, 107, 108, 109, 110, 107, -1, -1, 110, 111, + 112, 113, 114, 115, 116, 117, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, -1, -1, -1, 70, -1, + -1, -1, 74, -1, 76, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 90, 91, + -1, -1, -1, -1, 16, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 107, -1, -1, 110, 111, + 112, 113, 114, 115, 116, 117, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 71, -1, -1, 70, -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, 16, -1, -1, 103, 104, 105, + 106, 107, 108, 109, 110, 107, -1, -1, 110, 111, + 112, 113, 114, 115, 116, 117, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 71, -1, -1, 70, -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, -1, -1, 110, 111, + 112, 113, 114, 115, 116, 117, 11, -1, -1, -1, + -1, -1, -1, -1, 19, -1, -1, 22, 23, -1, + 25, 26, 27, 28, -1, 30, 31, 32, 33, 34, + 35, 36, 37, 38, -1, -1, -1, 42, 43, 44, + 45, 46, -1, -1, -1, -1, -1, -1, 53, -1, + -1, -1, -1, -1, 59, 60, 61, 62, 63, 64, + -1, -1, -1, 68, 69, 70, -1, 11, -1, -1, + -1, -1, -1, 78, 79, 19, -1, -1, 22, 23, + -1, 25, 26, 27, 28, -1, 30, 31, 32, 33, + 34, 35, 36, 37, 38, -1, -1, -1, 42, 43, + 44, 45, 46, -1, -1, -1, 111, 112, -1, 53, + -1, -1, -1, -1, -1, 59, 60, 61, 62, 63, + 64, -1, -1, -1, 68, 69, 70, -1, -1, 12, + -1, -1, -1, -1, 78, 79, 19, -1, -1, 22, + 23, -1, 25, 26, 27, 28, -1, 30, 31, 32, + 33, 34, 35, 36, 37, 38, -1, -1, -1, 42, + 43, 44, 45, 46, -1, -1, -1, 111, 112, -1, + 53, -1, -1, -1, -1, -1, 59, 60, 61, 62, + 63, 64, -1, -1, -1, 68, -1, 70, -1, -1, + 12, -1, -1, -1, -1, 78, 79, 19, -1, -1, + 22, 23, -1, 25, 26, 27, 28, -1, 30, 31, + 32, 33, 34, 35, 36, 37, 38, -1, -1, -1, + 42, 43, 44, 45, 46, -1, -1, -1, 111, 112, + -1, 53, -1, -1, -1, -1, -1, 59, 60, 61, + 62, 63, 64, -1, -1, -1, 68, -1, 70, 17, + 18, -1, 20, 21, -1, -1, 78, 79, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 66, -1, 102, 103, 104, 105, 106, 107, 108, 109, - 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, - 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 66, -1, 102, 103, 104, 105, - 106, 107, 108, 109, 76, -1, -1, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, - 102, 103, 104, 105, 106, 107, 108, 109, 76, -1, - -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 66, -1, 102, 103, 104, 105, 106, 107, - 108, 109, 76, -1, -1, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 88, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 66, -1, 102, 103, - 104, 105, 106, 107, 108, 109, 76, -1, -1, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, -1, + 38, -1, -1, -1, 42, -1, -1, -1, 67, -1, + -1, -1, -1, 72, -1, -1, -1, -1, 77, 111, + 112, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, -1, 70, -1, -1, 73, -1, -1, -1, -1, + 78, 79, -1, -1, 103, 104, 105, 106, 107, 108, + 109, 110, -1, -1, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, -1, -1, -1, -1, -1, + -1, -1, 19, 111, 112, 22, 23, -1, 25, 26, + 27, 28, -1, 30, 31, 32, 33, 34, 35, 36, + 37, 38, -1, -1, -1, 42, 43, 44, 45, 46, + -1, -1, -1, -1, -1, -1, 53, -1, -1, -1, + -1, -1, 59, 60, 61, 62, 63, 64, -1, -1, + -1, 68, -1, 70, -1, -1, -1, -1, -1, -1, + 67, 78, 79, -1, -1, 72, -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, 111, 112, 103, 104, 105, 106, + 107, 108, 109, 110, 67, -1, -1, -1, -1, 72, + -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, - 66, -1, 102, 103, 104, 105, 106, 107, 108, 109, - 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, - 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 66, -1, 102, 103, 104, 105, - 106, 107, 108, 109, 76, -1, -1, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, - 102, 103, 104, 105, 106, 107, 108, 109, 76, -1, - -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 66, -1, 102, 103, 104, 105, 106, 107, - 108, 109, 76, -1, -1, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 88, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 66, -1, 102, 103, - 104, 105, 106, 107, 108, 109, 76, -1, -1, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, -1, + 103, 104, 105, 106, 107, 108, 109, 110, 67, -1, + -1, -1, -1, 72, -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, 67, -1, 103, 104, 105, 106, 107, 108, + 109, 110, 77, -1, -1, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 67, -1, 103, 104, + 105, 106, 107, 108, 109, 110, 77, -1, -1, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 66, -1, 102, 103, 104, 105, 106, 107, 108, 109, - 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, - 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 66, -1, 102, 103, 104, 105, - 106, 107, 108, 109, 76, -1, -1, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, - 102, 103, 104, 105, 106, 107, 108, 109, 76, -1, - -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 66, -1, 102, 103, 104, 105, 106, 107, - 108, 109, 76, -1, -1, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 88, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 66, -1, 102, 103, - 104, 105, 106, 107, 108, 109, 76, -1, -1, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, -1, + 67, -1, 103, 104, 105, 106, 107, 108, 109, 110, + 77, -1, -1, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 67, -1, 103, 104, 105, 106, + 107, 108, 109, 110, 77, -1, -1, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, + 103, 104, 105, 106, 107, 108, 109, 110, 77, -1, + -1, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 67, -1, 103, 104, 105, 106, 107, 108, + 109, 110, 77, -1, -1, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 67, -1, 103, 104, + 105, 106, 107, 108, 109, 110, 77, -1, -1, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 66, -1, 102, 103, 104, 105, 106, 107, 108, 109, - 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, - 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 66, -1, 102, 103, 104, 105, - 106, 107, 108, 109, 76, -1, -1, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, - 102, 103, 104, 105, 106, 107, 108, 109, 76, -1, - -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 66, -1, 102, 103, 104, 105, 106, 107, - 108, 109, 76, -1, -1, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 88, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 66, -1, 102, 103, - 104, 105, 106, 107, 108, 109, 76, -1, -1, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, -1, + 67, -1, 103, 104, 105, 106, 107, 108, 109, 110, + 77, -1, -1, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 67, -1, 103, 104, 105, 106, + 107, 108, 109, 110, 77, -1, -1, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, + 103, 104, 105, 106, 107, 108, 109, 110, 77, -1, + -1, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 67, -1, 103, 104, 105, 106, 107, 108, + 109, 110, 77, -1, -1, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 67, -1, 103, 104, + 105, 106, 107, 108, 109, 110, 77, -1, -1, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 66, -1, 102, 103, 104, 105, 106, 107, 108, 109, - 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, - 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 66, -1, 102, 103, 104, 105, - 106, 107, 108, 109, 76, -1, -1, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, - 102, 103, 104, 105, 106, 107, 108, 109, 76, -1, - -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 66, -1, 102, 103, 104, 105, 106, 107, - 108, 109, 76, -1, -1, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 88, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 66, -1, 102, 103, - 104, 105, 106, 107, 108, 109, 76, -1, -1, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, -1, + 67, -1, 103, 104, 105, 106, 107, 108, 109, 110, + 77, -1, -1, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 67, -1, 103, 104, 105, 106, + 107, 108, 109, 110, 77, -1, -1, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, + 103, 104, 105, 106, 107, 108, 109, 110, 77, -1, + -1, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 67, -1, 103, 104, 105, 106, 107, 108, + 109, 110, 77, -1, -1, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 67, -1, 103, 104, + 105, 106, 107, 108, 109, 110, 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, - 70, -1, -1, -1, -1, -1, 76, -1, -1, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, -1, + 67, -1, 103, 104, 105, 106, 107, 108, 109, 110, + 77, -1, -1, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 67, -1, 103, 104, 105, 106, + 107, 108, 109, 110, 77, -1, -1, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, + 103, 104, 105, 106, 107, 108, 109, 110, 77, -1, + -1, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 67, -1, 103, 104, 105, 106, 107, 108, + 109, 110, 77, -1, -1, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 67, -1, 103, 104, + 105, 106, 107, 108, 109, 110, 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, - 70, -1, -1, -1, -1, -1, 76, -1, -1, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, -1, + 67, -1, 103, 104, 105, 106, 107, 108, 109, 110, + 77, -1, -1, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 67, -1, 103, 104, 105, 106, + 107, 108, 109, 110, 77, -1, -1, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, + 103, 104, 105, 106, 107, 108, 109, 110, 77, -1, + -1, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 67, -1, 103, 104, 105, 106, 107, 108, + 109, 110, 77, -1, -1, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 67, -1, 103, 104, + 105, 106, 107, 108, 109, 110, 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, - 70, -1, -1, -1, -1, -1, 76, -1, -1, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, -1, + -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, + 71, -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, - 70, -1, -1, -1, -1, -1, 76, -1, -1, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, -1, + -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, + 71, -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, - 70, -1, -1, -1, -1, -1, 76, -1, -1, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, -1, + -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, + 71, -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, - 70, -1, -1, -1, -1, -1, 76, -1, -1, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, -1, + -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, + 71, -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, - 70, -1, -1, -1, -1, -1, 76, -1, -1, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, -1, + -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, + 71, -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, - 70, -1, -1, -1, -1, -1, 76, -1, -1, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, -1, + -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, + 71, -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, - 71, -1, -1, -1, -1, 76, -1, -1, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, -1, -1, + -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, + 72, -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, 71, - -1, -1, -1, -1, 76, -1, -1, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, -1, -1, -1, + -1, 103, 104, 105, 106, 107, 108, 109, 110, 72, + -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, 71, -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, + 103, 104, 105, 106, 107, 108, 109, 110, 72, -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, 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, - 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, 79, 80, -1, 82, 83, 84, 85, 86, 87, - 88, 79, 80, -1, -1, 83, 84, 85, 86, 87, - 88, -1, -1, -1, 102, 103, 104, 105, 106, 107, - 108, 109, -1, -1, 102, 103, 104, 105, 106, 107, - 108, 109, 79, 80, -1, -1, 83, 84, 85, 86, - 87, 88, 79, 80, -1, -1, 83, 84, 85, 86, - 87, 88, -1, -1, -1, -1, 103, -1, 105, 106, - 107, 108, 109, -1, -1, -1, -1, -1, 105, 106, - 107, 108, 109 + 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, 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, 80, 81, -1, -1, 84, 85, 86, 87, 88, + 89, 80, 81, -1, -1, 84, 85, 86, 87, 88, + 89, -1, -1, -1, 103, 104, 105, 106, 107, 108, + 109, 110, -1, -1, -1, 104, 105, 106, 107, 108, + 109, 110, 80, 81, -1, -1, 84, 85, 86, 87, + 88, 89, 80, 81, -1, -1, 84, 85, 86, 87, + 88, 89, -1, -1, -1, -1, 104, -1, 106, 107, + 108, 109, 110, -1, -1, -1, -1, -1, 106, 107, + 108, 109, 110 }; const unsigned char parser::yystos_[] = { - 0, 11, 12, 13, 14, 15, 41, 111, 127, 128, - 129, 130, 131, 132, 133, 134, 215, 110, 111, 216, - 216, 65, 0, 129, 130, 131, 65, 91, 75, 75, - 112, 218, 179, 215, 37, 38, 39, 40, 42, 43, + 0, 11, 12, 13, 14, 15, 42, 112, 128, 129, + 130, 131, 132, 133, 134, 135, 217, 111, 112, 218, + 218, 66, 0, 130, 131, 132, 66, 92, 76, 76, + 113, 220, 180, 217, 16, 38, 39, 40, 41, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 69, 73, 89, 90, 106, 109, 111, 113, - 114, 115, 116, 164, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 182, 183, 184, 185, 186, 187, + 64, 65, 66, 70, 74, 90, 91, 107, 110, 112, + 114, 115, 116, 117, 165, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 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, 215, 216, 217, 218, - 219, 220, 221, 222, 223, 224, 66, 66, 71, 69, - 215, 216, 65, 65, 65, 65, 65, 65, 65, 65, - 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, - 65, 164, 69, 70, 215, 164, 164, 65, 69, 115, - 116, 175, 176, 188, 194, 195, 196, 197, 198, 199, - 202, 203, 205, 206, 209, 210, 211, 212, 215, 216, - 111, 75, 76, 79, 80, 81, 82, 83, 84, 85, - 86, 87, 88, 102, 103, 104, 105, 106, 107, 108, - 109, 69, 69, 69, 69, 69, 69, 69, 69, 72, - 177, 178, 215, 65, 73, 75, 67, 140, 215, 69, - 65, 73, 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 66, 164, 164, 164, 164, 164, 164, 164, - 164, 66, 71, 164, 164, 72, 73, 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, 69, 164, 41, 111, 214, 164, 180, - 181, 215, 11, 18, 21, 22, 24, 25, 26, 27, - 29, 30, 31, 32, 33, 34, 35, 36, 68, 77, - 78, 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, 202, 203, 206, 215, 164, 180, 215, - 71, 66, 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 71, 66, 164, 70, - 215, 74, 70, 70, 70, 70, 70, 70, 70, 70, - 66, 71, 65, 12, 135, 137, 164, 75, 65, 135, - 65, 65, 65, 65, 106, 218, 222, 74, 75, 75, - 75, 164, 65, 65, 206, 206, 68, 136, 75, 75, - 75, 75, 75, 16, 17, 19, 20, 77, 78, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 70, 66, 65, 164, 164, 71, 70, 164, 164, 180, - 12, 135, 75, 164, 25, 164, 141, 166, 167, 168, - 206, 215, 164, 74, 74, 75, 180, 180, 65, 65, - 65, 65, 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 70, 180, 66, 66, 164, 65, 66, - 66, 65, 66, 75, 28, 71, 66, 66, 66, 164, - 164, 164, 164, 65, 66, 66, 180, 135, 164, 135, - 164, 165, 164, 215, 140, 75, 75, 66, 66, 71, - 66, 71, 66, 71, 180, 66, 23, 66, 75, 66, - 28, 75, 75, 180, 181, 75, 181, 75, 181, 66, - 135, 75, 141, 135, 164, 66, 66, 66, 66, 66, - 75, 75, 75, 135, 135 + 208, 209, 210, 211, 212, 213, 214, 215, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 67, 67, + 72, 70, 217, 218, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 165, 70, 71, 217, 165, 165, 66, + 70, 116, 117, 176, 177, 189, 195, 196, 197, 198, + 199, 200, 203, 204, 206, 207, 210, 211, 212, 213, + 217, 218, 112, 76, 77, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 103, 104, 105, 106, 107, + 108, 109, 110, 70, 70, 70, 70, 70, 70, 70, + 70, 73, 178, 179, 217, 66, 74, 76, 68, 141, + 217, 70, 66, 74, 165, 165, 165, 165, 165, 165, + 165, 165, 165, 165, 67, 165, 165, 165, 165, 165, + 165, 165, 165, 67, 72, 165, 165, 73, 74, 165, + 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, + 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, + 165, 165, 165, 165, 165, 70, 165, 42, 112, 216, + 165, 181, 182, 217, 11, 19, 22, 23, 25, 26, + 27, 28, 30, 31, 32, 33, 34, 35, 36, 37, + 69, 78, 79, 136, 137, 139, 140, 141, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 167, 168, 169, 176, 177, 203, 204, 207, 217, 165, + 181, 217, 72, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 72, 67, + 165, 71, 217, 75, 71, 71, 71, 71, 71, 71, + 71, 71, 67, 72, 66, 12, 136, 138, 165, 76, + 66, 136, 66, 66, 66, 66, 107, 220, 224, 75, + 76, 76, 76, 165, 66, 66, 207, 207, 69, 137, + 76, 76, 76, 76, 76, 17, 18, 20, 21, 78, + 79, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 71, 67, 66, 165, 165, 72, 71, 165, + 165, 181, 12, 136, 76, 165, 26, 165, 142, 167, + 168, 169, 207, 217, 165, 75, 75, 76, 181, 181, + 66, 66, 66, 66, 165, 165, 165, 165, 165, 165, + 165, 165, 165, 165, 165, 71, 181, 67, 67, 165, + 66, 67, 67, 66, 67, 76, 29, 72, 67, 67, + 67, 165, 165, 165, 165, 66, 67, 67, 181, 136, + 165, 136, 165, 166, 165, 217, 141, 76, 76, 67, + 67, 72, 67, 72, 67, 72, 181, 67, 24, 67, + 76, 67, 29, 76, 76, 181, 182, 76, 182, 76, + 182, 67, 136, 76, 142, 136, 165, 67, 67, 67, + 67, 67, 76, 76, 76, 136, 136 }; const unsigned char parser::yyr1_[] = { - 0, 126, 127, 127, 128, 128, 128, 128, 128, 128, - 129, 130, 131, 131, 131, 131, 131, 132, 133, 134, - 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, 138, 138, 139, - 139, 140, 140, 141, 141, 141, 141, 142, 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, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 167, 167, 168, 168, 169, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 171, 171, 171, + 0, 127, 128, 128, 129, 129, 129, 129, 129, 129, + 130, 131, 132, 132, 132, 132, 132, 133, 134, 135, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 137, 137, 138, 138, 139, 139, 140, + 140, 141, 141, 142, 142, 142, 142, 143, 143, 144, + 144, 144, 145, 146, 146, 147, 148, 148, 149, 149, + 150, 151, 152, 153, 154, 155, 156, 156, 157, 158, + 158, 159, 160, 161, 162, 162, 163, 164, 165, 165, + 165, 166, 166, 167, 167, 167, 167, 167, 167, 167, + 167, 167, 167, 167, 168, 168, 169, 169, 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, 172, 173, 173, 173, 173, 174, 175, 175, - 176, 176, 177, 177, 177, 177, 178, 178, 179, 179, - 179, 180, 180, 181, 181, 182, 183, 184, 185, 186, + 171, 171, 171, 171, 171, 171, 171, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 173, 174, 174, 174, 174, 175, 176, + 176, 177, 177, 178, 178, 178, 178, 179, 179, 180, + 180, 180, 181, 181, 182, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 201, 202, 202, 202, 202, - 202, 202, 202, 202, 203, 204, 205, 206, 206, 206, - 206, 206, 206, 206, 206, 206, 207, 208, 209, 210, - 211, 212, 213, 214, 215, 215, 216, 216, 217, 218, - 219, 220, 221, 221, 222, 222, 223, 224 + 197, 198, 199, 200, 201, 202, 202, 203, 203, 203, + 203, 203, 203, 203, 203, 204, 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 }; const signed char @@ -5326,15 +5373,15 @@ namespace xsk { namespace arc { namespace t6 { 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, 1, - 0, 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, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, - 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, - 7, 1, 2, 1, 2, 1, 1, 1 + 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, + 1, 2, 2, 4, 6, 5, 7, 8, 9, 3, + 1, 0, 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, 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 }; @@ -5344,32 +5391,32 @@ namespace xsk { namespace arc { namespace t6 { const short parser::yyrline_[] = { - 0, 288, 288, 289, 293, 295, 297, 299, 301, 303, - 308, 312, 317, 318, 319, 320, 321, 325, 330, 335, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 366, 367, 371, 373, 378, 380, 385, - 386, 390, 391, 395, 397, 399, 402, 406, 408, 413, - 415, 417, 422, 427, 429, 434, 439, 441, 446, 448, - 453, 458, 463, 468, 473, 478, 483, 485, 490, 495, - 497, 502, 507, 512, 517, 519, 524, 529, 534, 535, - 536, 540, 541, 545, 547, 549, 551, 553, 555, 557, - 559, 561, 563, 565, 570, 572, 577, 579, 584, 589, - 591, 593, 595, 597, 599, 601, 603, 605, 607, 609, - 611, 613, 615, 617, 619, 621, 623, 628, 629, 630, - 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, - 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, - 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, - 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, - 671, 672, 676, 681, 683, 685, 687, 692, 697, 698, - 701, 702, 706, 708, 710, 712, 717, 719, 724, 726, - 729, 733, 736, 740, 742, 747, 752, 757, 762, 767, - 772, 777, 782, 787, 792, 797, 802, 807, 812, 817, - 822, 827, 832, 837, 842, 844, 849, 851, 853, 855, - 857, 859, 861, 863, 868, 873, 878, 883, 884, 885, - 886, 887, 888, 889, 890, 891, 895, 900, 905, 910, - 915, 920, 925, 930, 935, 937, 942, 944, 949, 954, - 959, 964, 969, 971, 976, 978, 983, 988 + 0, 290, 290, 291, 295, 297, 299, 301, 303, 305, + 310, 314, 319, 320, 321, 322, 323, 327, 332, 337, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 368, 369, 373, 375, 380, 382, 387, + 388, 392, 393, 397, 399, 401, 404, 408, 410, 415, + 417, 419, 424, 429, 431, 436, 441, 443, 448, 450, + 455, 460, 465, 470, 475, 480, 485, 487, 492, 497, + 499, 504, 509, 514, 519, 521, 526, 531, 536, 537, + 538, 542, 543, 547, 549, 551, 553, 555, 557, 559, + 561, 563, 565, 567, 572, 574, 579, 581, 586, 591, + 593, 595, 597, 599, 601, 603, 605, 607, 609, 611, + 613, 615, 617, 619, 621, 623, 625, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, + 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, + 673, 674, 675, 679, 684, 686, 688, 690, 695, 700, + 701, 704, 705, 709, 711, 713, 715, 720, 722, 727, + 729, 732, 736, 739, 743, 745, 750, 755, 760, 765, + 770, 775, 780, 785, 790, 795, 800, 805, 810, 815, + 820, 825, 830, 835, 840, 845, 847, 852, 854, 856, + 858, 860, 862, 864, 866, 871, 876, 881, 886, 887, + 888, 889, 890, 891, 892, 893, 894, 898, 903, 908, + 913, 918, 923, 928, 933, 938, 943, 945, 950, 952, + 957, 962, 967, 972, 977, 979, 984, 986, 991, 996 }; void @@ -5402,9 +5449,9 @@ namespace xsk { namespace arc { namespace t6 { #line 13 "parser.ypp" } } } // xsk::arc::t6 -#line 5406 "parser.cpp" +#line 5453 "parser.cpp" -#line 992 "parser.ypp" +#line 1000 "parser.ypp" void xsk::arc::t6::parser::error(const xsk::arc::location& loc, const std::string& msg) diff --git a/src/t6/xsk/parser.hpp b/src/t6/xsk/parser.hpp index 08c37776..22d8cdec 100644 --- a/src/t6/xsk/parser.hpp +++ b/src/t6/xsk/parser.hpp @@ -470,217 +470,220 @@ namespace xsk { namespace arc { namespace t6 { // expr_animation char dummy13[sizeof (ast::expr_animation::ptr)]; + // expr_animtree + char dummy14[sizeof (ast::expr_animtree::ptr)]; + // expr_arguments // expr_arguments_no_empty - char dummy14[sizeof (ast::expr_arguments::ptr)]; + char dummy15[sizeof (ast::expr_arguments::ptr)]; // expr_array - char dummy15[sizeof (ast::expr_array::ptr)]; + char dummy16[sizeof (ast::expr_array::ptr)]; // expr_call - char dummy16[sizeof (ast::expr_call::ptr)]; + char dummy17[sizeof (ast::expr_call::ptr)]; // expr_complement - char dummy17[sizeof (ast::expr_complement::ptr)]; + char dummy18[sizeof (ast::expr_complement::ptr)]; // expr_empty_array - char dummy18[sizeof (ast::expr_empty_array::ptr)]; + char dummy19[sizeof (ast::expr_empty_array::ptr)]; // expr_false - char dummy19[sizeof (ast::expr_false::ptr)]; + char dummy20[sizeof (ast::expr_false::ptr)]; // expr_field - char dummy20[sizeof (ast::expr_field::ptr)]; + char dummy21[sizeof (ast::expr_field::ptr)]; // expr_float - char dummy21[sizeof (ast::expr_float::ptr)]; + char dummy22[sizeof (ast::expr_float::ptr)]; // expr_game - char dummy22[sizeof (ast::expr_game::ptr)]; + char dummy23[sizeof (ast::expr_game::ptr)]; // expr_getdvar - char dummy23[sizeof (ast::expr_getdvar::ptr)]; + char dummy24[sizeof (ast::expr_getdvar::ptr)]; // expr_getdvarcoloralpha - char dummy24[sizeof (ast::expr_getdvarcoloralpha::ptr)]; + char dummy25[sizeof (ast::expr_getdvarcoloralpha::ptr)]; // expr_getdvarcolorblue - char dummy25[sizeof (ast::expr_getdvarcolorblue::ptr)]; + char dummy26[sizeof (ast::expr_getdvarcolorblue::ptr)]; // expr_getdvarcolorgreen - char dummy26[sizeof (ast::expr_getdvarcolorgreen::ptr)]; + char dummy27[sizeof (ast::expr_getdvarcolorgreen::ptr)]; // expr_getdvarcolorred - char dummy27[sizeof (ast::expr_getdvarcolorred::ptr)]; + char dummy28[sizeof (ast::expr_getdvarcolorred::ptr)]; // expr_getdvarfloat - char dummy28[sizeof (ast::expr_getdvarfloat::ptr)]; + char dummy29[sizeof (ast::expr_getdvarfloat::ptr)]; // expr_getdvarint - char dummy29[sizeof (ast::expr_getdvarint::ptr)]; + char dummy30[sizeof (ast::expr_getdvarint::ptr)]; // expr_getdvarvector - char dummy30[sizeof (ast::expr_getdvarvector::ptr)]; + char dummy31[sizeof (ast::expr_getdvarvector::ptr)]; // expr_getfirstarraykey - char dummy31[sizeof (ast::expr_getfirstarraykey::ptr)]; + char dummy32[sizeof (ast::expr_getfirstarraykey::ptr)]; // expr_getnextarraykey - char dummy32[sizeof (ast::expr_getnextarraykey::ptr)]; + char dummy33[sizeof (ast::expr_getnextarraykey::ptr)]; // expr_gettime - char dummy33[sizeof (ast::expr_gettime::ptr)]; + char dummy34[sizeof (ast::expr_gettime::ptr)]; // expr_hash - char dummy34[sizeof (ast::expr_hash::ptr)]; + char dummy35[sizeof (ast::expr_hash::ptr)]; // expr_identifier_nosize // expr_identifier - char dummy35[sizeof (ast::expr_identifier::ptr)]; + char dummy36[sizeof (ast::expr_identifier::ptr)]; // expr_integer - char dummy36[sizeof (ast::expr_integer::ptr)]; + char dummy37[sizeof (ast::expr_integer::ptr)]; // expr_isdefined - char dummy37[sizeof (ast::expr_isdefined::ptr)]; + char dummy38[sizeof (ast::expr_isdefined::ptr)]; // expr_istring - char dummy38[sizeof (ast::expr_istring::ptr)]; + char dummy39[sizeof (ast::expr_istring::ptr)]; // expr_level - char dummy39[sizeof (ast::expr_level::ptr)]; + char dummy40[sizeof (ast::expr_level::ptr)]; // expr_method - char dummy40[sizeof (ast::expr_method::ptr)]; + char dummy41[sizeof (ast::expr_method::ptr)]; // expr_negate - char dummy41[sizeof (ast::expr_negate::ptr)]; + char dummy42[sizeof (ast::expr_negate::ptr)]; // expr_not - char dummy42[sizeof (ast::expr_not::ptr)]; + char dummy43[sizeof (ast::expr_not::ptr)]; // expr_parameters - char dummy43[sizeof (ast::expr_parameters::ptr)]; + char dummy44[sizeof (ast::expr_parameters::ptr)]; // expr_paren - char dummy44[sizeof (ast::expr_paren::ptr)]; + char dummy45[sizeof (ast::expr_paren::ptr)]; // expr_path - char dummy45[sizeof (ast::expr_path::ptr)]; + char dummy46[sizeof (ast::expr_path::ptr)]; // expr_reference - char dummy46[sizeof (ast::expr_reference::ptr)]; + char dummy47[sizeof (ast::expr_reference::ptr)]; // expr_self - char dummy47[sizeof (ast::expr_self::ptr)]; + char dummy48[sizeof (ast::expr_self::ptr)]; // expr_size - char dummy48[sizeof (ast::expr_size::ptr)]; + char dummy49[sizeof (ast::expr_size::ptr)]; // expr_string - char dummy49[sizeof (ast::expr_string::ptr)]; + char dummy50[sizeof (ast::expr_string::ptr)]; // expr_true - char dummy50[sizeof (ast::expr_true::ptr)]; + char dummy51[sizeof (ast::expr_true::ptr)]; // expr_undefined - char dummy51[sizeof (ast::expr_undefined::ptr)]; + char dummy52[sizeof (ast::expr_undefined::ptr)]; // expr_vector - char dummy52[sizeof (ast::expr_vector::ptr)]; + char dummy53[sizeof (ast::expr_vector::ptr)]; // expr_vectorscale - char dummy53[sizeof (ast::expr_vectorscale::ptr)]; + char dummy54[sizeof (ast::expr_vectorscale::ptr)]; // expr_vectortoangles - char dummy54[sizeof (ast::expr_vectortoangles::ptr)]; + char dummy55[sizeof (ast::expr_vectortoangles::ptr)]; // include - char dummy55[sizeof (ast::include::ptr)]; + char dummy56[sizeof (ast::include::ptr)]; // program - char dummy56[sizeof (ast::program::ptr)]; + char dummy57[sizeof (ast::program::ptr)]; // stmt // stmt_or_dev - char dummy57[sizeof (ast::stmt)]; + char dummy58[sizeof (ast::stmt)]; // stmt_assign - char dummy58[sizeof (ast::stmt_assign::ptr)]; + char dummy59[sizeof (ast::stmt_assign::ptr)]; // stmt_break - char dummy59[sizeof (ast::stmt_break::ptr)]; + char dummy60[sizeof (ast::stmt_break::ptr)]; // stmt_call - char dummy60[sizeof (ast::stmt_call::ptr)]; + char dummy61[sizeof (ast::stmt_call::ptr)]; // stmt_case - char dummy61[sizeof (ast::stmt_case::ptr)]; + char dummy62[sizeof (ast::stmt_case::ptr)]; // stmt_continue - char dummy62[sizeof (ast::stmt_continue::ptr)]; + char dummy63[sizeof (ast::stmt_continue::ptr)]; // stmt_default - char dummy63[sizeof (ast::stmt_default::ptr)]; + char dummy64[sizeof (ast::stmt_default::ptr)]; // stmt_dev - char dummy64[sizeof (ast::stmt_dev::ptr)]; + char dummy65[sizeof (ast::stmt_dev::ptr)]; // stmt_dowhile - char dummy65[sizeof (ast::stmt_dowhile::ptr)]; + char dummy66[sizeof (ast::stmt_dowhile::ptr)]; // stmt_endon - char dummy66[sizeof (ast::stmt_endon::ptr)]; + char dummy67[sizeof (ast::stmt_endon::ptr)]; // stmt_expr - char dummy67[sizeof (ast::stmt_expr::ptr)]; + char dummy68[sizeof (ast::stmt_expr::ptr)]; // stmt_for - char dummy68[sizeof (ast::stmt_for::ptr)]; + char dummy69[sizeof (ast::stmt_for::ptr)]; // stmt_foreach - char dummy69[sizeof (ast::stmt_foreach::ptr)]; + char dummy70[sizeof (ast::stmt_foreach::ptr)]; // stmt_if - char dummy70[sizeof (ast::stmt_if::ptr)]; + char dummy71[sizeof (ast::stmt_if::ptr)]; // stmt_ifelse - char dummy71[sizeof (ast::stmt_ifelse::ptr)]; + char dummy72[sizeof (ast::stmt_ifelse::ptr)]; // stmt_list // stmt_or_dev_list // stmt_block - char dummy72[sizeof (ast::stmt_list::ptr)]; + char dummy73[sizeof (ast::stmt_list::ptr)]; // stmt_notify - char dummy73[sizeof (ast::stmt_notify::ptr)]; + char dummy74[sizeof (ast::stmt_notify::ptr)]; // stmt_prof_begin - char dummy74[sizeof (ast::stmt_prof_begin::ptr)]; + char dummy75[sizeof (ast::stmt_prof_begin::ptr)]; // stmt_prof_end - char dummy75[sizeof (ast::stmt_prof_end::ptr)]; + char dummy76[sizeof (ast::stmt_prof_end::ptr)]; // stmt_return - char dummy76[sizeof (ast::stmt_return::ptr)]; + char dummy77[sizeof (ast::stmt_return::ptr)]; // stmt_switch - char dummy77[sizeof (ast::stmt_switch::ptr)]; + char dummy78[sizeof (ast::stmt_switch::ptr)]; // stmt_wait - char dummy78[sizeof (ast::stmt_wait::ptr)]; + char dummy79[sizeof (ast::stmt_wait::ptr)]; // stmt_waittill - char dummy79[sizeof (ast::stmt_waittill::ptr)]; + char dummy80[sizeof (ast::stmt_waittill::ptr)]; // stmt_waittillframeend - char dummy80[sizeof (ast::stmt_waittillframeend::ptr)]; + char dummy81[sizeof (ast::stmt_waittillframeend::ptr)]; // stmt_waittillmatch - char dummy81[sizeof (ast::stmt_waittillmatch::ptr)]; + char dummy82[sizeof (ast::stmt_waittillmatch::ptr)]; // stmt_while - char dummy82[sizeof (ast::stmt_while::ptr)]; + char dummy83[sizeof (ast::stmt_while::ptr)]; // "path" // "identifier" @@ -689,7 +692,7 @@ namespace xsk { namespace arc { namespace t6 { // "hash" // "float" // "integer" - char dummy83[sizeof (std::string)]; + char dummy84[sizeof (std::string)]; }; /// The size of the largest semantic type. @@ -755,116 +758,117 @@ namespace xsk { namespace arc { namespace t6 { INLINE = 13, // "#inline" INCLUDE = 14, // "#include" USINGTREE = 15, // "#using_animtree" - ENDON = 16, // "endon" - NOTIFY = 17, // "notify" - WAIT = 18, // "wait" - WAITTILL = 19, // "waittill" - WAITTILLMATCH = 20, // "waittillmatch" - WAITTILLFRAMEEND = 21, // "waittillframeend" - IF = 22, // "if" - ELSE = 23, // "else" - DO = 24, // "do" - WHILE = 25, // "while" - FOR = 26, // "for" - FOREACH = 27, // "foreach" - IN = 28, // "in" - SWITCH = 29, // "switch" - CASE = 30, // "case" - DEFAULT = 31, // "default" - BREAK = 32, // "break" - CONTINUE = 33, // "continue" - RETURN = 34, // "return" - PROFBEGIN = 35, // "prof_begin" - PROFEND = 36, // "prof_end" - THREAD = 37, // "thread" - TRUE = 38, // "true" - FALSE = 39, // "false" - UNDEFINED = 40, // "undefined" - SIZE = 41, // "size" - GAME = 42, // "game" - SELF = 43, // "self" - ANIM = 44, // "anim" - LEVEL = 45, // "level" - GETNEXTARRAYKEY = 46, // "getnextarraykey" - GETFIRSTARRAYKEY = 47, // "getfirstarraykey" - GETDVARCOLORALPHA = 48, // "getdvarcoloralpha" - GETDVARCOLORBLUE = 49, // "getdvarcolorblue" - GETDVARCOLORGREEN = 50, // "getdvarcolorgreen" - GETDVARCOLORRED = 51, // "getdvarcolorred" - GETDVARVECTOR = 52, // "getdvarvector" - GETDVARFLOAT = 53, // "getdvarfloat" - GETDVARINT = 54, // "getdvarint" - GETDVAR = 55, // "getdvar" - GETTIME = 56, // "gettime" - ABS = 57, // "abs" - VECTORTOANGLES = 58, // "vectortoangles" - ANGLECLAMP180 = 59, // "angleclamp180" - ANGLESTOFORWARD = 60, // "anglestoforward" - ANGLESTORIGHT = 61, // "anglestoright" - ANGLESTOUP = 62, // "anglestoup" - VECTORSCALE = 63, // "vectorscale" - ISDEFINED = 64, // "isdefined" - LPAREN = 65, // "(" - RPAREN = 66, // ")" - LBRACE = 67, // "{" - RBRACE = 68, // "}" - LBRACKET = 69, // "[" - RBRACKET = 70, // "]" - COMMA = 71, // "," - DOT = 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" - HASH = 114, // "hash" - 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 + ANIMTREE = 16, // "#animtree" + ENDON = 17, // "endon" + NOTIFY = 18, // "notify" + WAIT = 19, // "wait" + WAITTILL = 20, // "waittill" + WAITTILLMATCH = 21, // "waittillmatch" + WAITTILLFRAMEEND = 22, // "waittillframeend" + IF = 23, // "if" + ELSE = 24, // "else" + DO = 25, // "do" + WHILE = 26, // "while" + FOR = 27, // "for" + FOREACH = 28, // "foreach" + IN = 29, // "in" + SWITCH = 30, // "switch" + CASE = 31, // "case" + DEFAULT = 32, // "default" + BREAK = 33, // "break" + CONTINUE = 34, // "continue" + RETURN = 35, // "return" + PROFBEGIN = 36, // "prof_begin" + PROFEND = 37, // "prof_end" + THREAD = 38, // "thread" + TRUE = 39, // "true" + FALSE = 40, // "false" + UNDEFINED = 41, // "undefined" + SIZE = 42, // "size" + GAME = 43, // "game" + SELF = 44, // "self" + ANIM = 45, // "anim" + LEVEL = 46, // "level" + GETNEXTARRAYKEY = 47, // "getnextarraykey" + GETFIRSTARRAYKEY = 48, // "getfirstarraykey" + GETDVARCOLORALPHA = 49, // "getdvarcoloralpha" + GETDVARCOLORBLUE = 50, // "getdvarcolorblue" + GETDVARCOLORGREEN = 51, // "getdvarcolorgreen" + GETDVARCOLORRED = 52, // "getdvarcolorred" + GETDVARVECTOR = 53, // "getdvarvector" + GETDVARFLOAT = 54, // "getdvarfloat" + GETDVARINT = 55, // "getdvarint" + GETDVAR = 56, // "getdvar" + GETTIME = 57, // "gettime" + ABS = 58, // "abs" + VECTORTOANGLES = 59, // "vectortoangles" + ANGLECLAMP180 = 60, // "angleclamp180" + ANGLESTOFORWARD = 61, // "anglestoforward" + ANGLESTORIGHT = 62, // "anglestoright" + ANGLESTOUP = 63, // "anglestoup" + VECTORSCALE = 64, // "vectorscale" + ISDEFINED = 65, // "isdefined" + LPAREN = 66, // "(" + RPAREN = 67, // ")" + LBRACE = 68, // "{" + RBRACE = 69, // "}" + LBRACKET = 70, // "[" + RBRACKET = 71, // "]" + COMMA = 72, // "," + DOT = 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" + HASH = 115, // "hash" + 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 { namespace t6 { { 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,215 +903,217 @@ namespace xsk { namespace arc { namespace t6 { S_INLINE = 13, // "#inline" S_INCLUDE = 14, // "#include" S_USINGTREE = 15, // "#using_animtree" - S_ENDON = 16, // "endon" - S_NOTIFY = 17, // "notify" - S_WAIT = 18, // "wait" - S_WAITTILL = 19, // "waittill" - S_WAITTILLMATCH = 20, // "waittillmatch" - S_WAITTILLFRAMEEND = 21, // "waittillframeend" - S_IF = 22, // "if" - S_ELSE = 23, // "else" - S_DO = 24, // "do" - S_WHILE = 25, // "while" - S_FOR = 26, // "for" - S_FOREACH = 27, // "foreach" - S_IN = 28, // "in" - S_SWITCH = 29, // "switch" - S_CASE = 30, // "case" - S_DEFAULT = 31, // "default" - S_BREAK = 32, // "break" - S_CONTINUE = 33, // "continue" - S_RETURN = 34, // "return" - S_PROFBEGIN = 35, // "prof_begin" - S_PROFEND = 36, // "prof_end" - S_THREAD = 37, // "thread" - S_TRUE = 38, // "true" - S_FALSE = 39, // "false" - S_UNDEFINED = 40, // "undefined" - S_SIZE = 41, // "size" - S_GAME = 42, // "game" - S_SELF = 43, // "self" - S_ANIM = 44, // "anim" - S_LEVEL = 45, // "level" - S_GETNEXTARRAYKEY = 46, // "getnextarraykey" - S_GETFIRSTARRAYKEY = 47, // "getfirstarraykey" - S_GETDVARCOLORALPHA = 48, // "getdvarcoloralpha" - S_GETDVARCOLORBLUE = 49, // "getdvarcolorblue" - S_GETDVARCOLORGREEN = 50, // "getdvarcolorgreen" - S_GETDVARCOLORRED = 51, // "getdvarcolorred" - S_GETDVARVECTOR = 52, // "getdvarvector" - S_GETDVARFLOAT = 53, // "getdvarfloat" - S_GETDVARINT = 54, // "getdvarint" - S_GETDVAR = 55, // "getdvar" - S_GETTIME = 56, // "gettime" - S_ABS = 57, // "abs" - S_VECTORTOANGLES = 58, // "vectortoangles" - S_ANGLECLAMP180 = 59, // "angleclamp180" - S_ANGLESTOFORWARD = 60, // "anglestoforward" - S_ANGLESTORIGHT = 61, // "anglestoright" - S_ANGLESTOUP = 62, // "anglestoup" - S_VECTORSCALE = 63, // "vectorscale" - S_ISDEFINED = 64, // "isdefined" - S_LPAREN = 65, // "(" - S_RPAREN = 66, // ")" - S_LBRACE = 67, // "{" - S_RBRACE = 68, // "}" - S_LBRACKET = 69, // "[" - S_RBRACKET = 70, // "]" - S_COMMA = 71, // "," - S_DOT = 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_HASH = 114, // "hash" - 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_constant = 133, // decl_constant - S_decl_thread = 134, // decl_thread - 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_block = 140, // stmt_block - S_stmt_expr = 141, // stmt_expr - S_stmt_call = 142, // stmt_call - 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_assign = 166, // expr_assign - S_expr_increment = 167, // expr_increment - S_expr_decrement = 168, // expr_decrement - 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_arguments = 180, // expr_arguments - S_expr_arguments_no_empty = 181, // expr_arguments_no_empty - S_expr_getnextarraykey = 182, // expr_getnextarraykey - S_expr_getfirstarraykey = 183, // expr_getfirstarraykey - S_expr_getdvarcoloralpha = 184, // expr_getdvarcoloralpha - S_expr_getdvarcolorblue = 185, // expr_getdvarcolorblue - S_expr_getdvarcolorgreen = 186, // expr_getdvarcolorgreen - S_expr_getdvarcolorred = 187, // expr_getdvarcolorred - S_expr_getdvarvector = 188, // expr_getdvarvector - S_expr_getdvarfloat = 189, // expr_getdvarfloat - S_expr_getdvarint = 190, // expr_getdvarint - S_expr_getdvar = 191, // expr_getdvar - S_expr_gettime = 192, // expr_gettime - S_expr_abs = 193, // expr_abs - S_expr_vectortoangles = 194, // expr_vectortoangles - S_expr_angleclamp180 = 195, // expr_angleclamp180 - S_expr_anglestoforward = 196, // expr_anglestoforward - S_expr_anglestoright = 197, // expr_anglestoright - S_expr_anglestoup = 198, // expr_anglestoup - S_expr_vectorscale = 199, // expr_vectorscale - S_expr_isdefined = 200, // expr_isdefined - S_expr_reference = 201, // expr_reference - S_expr_array = 202, // expr_array - S_expr_field = 203, // expr_field - S_expr_size = 204, // expr_size - S_expr_paren = 205, // expr_paren - S_expr_object = 206, // expr_object - S_expr_empty_array = 207, // expr_empty_array - S_expr_undefined = 208, // expr_undefined - S_expr_game = 209, // expr_game - S_expr_self = 210, // expr_self - S_expr_anim = 211, // expr_anim - S_expr_level = 212, // expr_level - S_expr_animation = 213, // expr_animation - S_expr_identifier_nosize = 214, // expr_identifier_nosize - S_expr_identifier = 215, // expr_identifier - S_expr_path = 216, // expr_path - S_expr_istring = 217, // expr_istring - S_expr_string = 218, // expr_string - S_expr_vector = 219, // expr_vector - S_expr_hash = 220, // expr_hash - S_expr_float = 221, // expr_float - S_expr_integer = 222, // expr_integer - S_expr_false = 223, // expr_false - S_expr_true = 224 // expr_true + S_ANIMTREE = 16, // "#animtree" + S_ENDON = 17, // "endon" + S_NOTIFY = 18, // "notify" + S_WAIT = 19, // "wait" + S_WAITTILL = 20, // "waittill" + S_WAITTILLMATCH = 21, // "waittillmatch" + S_WAITTILLFRAMEEND = 22, // "waittillframeend" + S_IF = 23, // "if" + S_ELSE = 24, // "else" + S_DO = 25, // "do" + S_WHILE = 26, // "while" + S_FOR = 27, // "for" + S_FOREACH = 28, // "foreach" + S_IN = 29, // "in" + S_SWITCH = 30, // "switch" + S_CASE = 31, // "case" + S_DEFAULT = 32, // "default" + S_BREAK = 33, // "break" + S_CONTINUE = 34, // "continue" + S_RETURN = 35, // "return" + S_PROFBEGIN = 36, // "prof_begin" + S_PROFEND = 37, // "prof_end" + S_THREAD = 38, // "thread" + S_TRUE = 39, // "true" + S_FALSE = 40, // "false" + S_UNDEFINED = 41, // "undefined" + S_SIZE = 42, // "size" + S_GAME = 43, // "game" + S_SELF = 44, // "self" + S_ANIM = 45, // "anim" + S_LEVEL = 46, // "level" + S_GETNEXTARRAYKEY = 47, // "getnextarraykey" + S_GETFIRSTARRAYKEY = 48, // "getfirstarraykey" + S_GETDVARCOLORALPHA = 49, // "getdvarcoloralpha" + S_GETDVARCOLORBLUE = 50, // "getdvarcolorblue" + S_GETDVARCOLORGREEN = 51, // "getdvarcolorgreen" + S_GETDVARCOLORRED = 52, // "getdvarcolorred" + S_GETDVARVECTOR = 53, // "getdvarvector" + S_GETDVARFLOAT = 54, // "getdvarfloat" + S_GETDVARINT = 55, // "getdvarint" + S_GETDVAR = 56, // "getdvar" + S_GETTIME = 57, // "gettime" + S_ABS = 58, // "abs" + S_VECTORTOANGLES = 59, // "vectortoangles" + S_ANGLECLAMP180 = 60, // "angleclamp180" + S_ANGLESTOFORWARD = 61, // "anglestoforward" + S_ANGLESTORIGHT = 62, // "anglestoright" + S_ANGLESTOUP = 63, // "anglestoup" + S_VECTORSCALE = 64, // "vectorscale" + S_ISDEFINED = 65, // "isdefined" + S_LPAREN = 66, // "(" + S_RPAREN = 67, // ")" + S_LBRACE = 68, // "{" + S_RBRACE = 69, // "}" + S_LBRACKET = 70, // "[" + S_RBRACKET = 71, // "]" + S_COMMA = 72, // "," + S_DOT = 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_HASH = 115, // "hash" + 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_constant = 134, // decl_constant + S_decl_thread = 135, // decl_thread + S_stmt = 136, // stmt + S_stmt_or_dev = 137, // stmt_or_dev + S_stmt_list = 138, // stmt_list + S_stmt_or_dev_list = 139, // stmt_or_dev_list + S_stmt_dev = 140, // stmt_dev + S_stmt_block = 141, // stmt_block + S_stmt_expr = 142, // stmt_expr + S_stmt_call = 143, // stmt_call + 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_waittill = 148, // stmt_waittill + S_stmt_waittillmatch = 149, // stmt_waittillmatch + S_stmt_waittillframeend = 150, // stmt_waittillframeend + S_stmt_if = 151, // stmt_if + S_stmt_ifelse = 152, // stmt_ifelse + S_stmt_while = 153, // stmt_while + S_stmt_dowhile = 154, // stmt_dowhile + S_stmt_for = 155, // stmt_for + S_stmt_foreach = 156, // stmt_foreach + S_stmt_switch = 157, // stmt_switch + S_stmt_case = 158, // stmt_case + S_stmt_default = 159, // stmt_default + S_stmt_break = 160, // stmt_break + S_stmt_continue = 161, // stmt_continue + S_stmt_return = 162, // stmt_return + S_stmt_prof_begin = 163, // stmt_prof_begin + S_stmt_prof_end = 164, // stmt_prof_end + S_expr = 165, // expr + S_expr_or_empty = 166, // expr_or_empty + S_expr_assign = 167, // expr_assign + S_expr_increment = 168, // expr_increment + S_expr_decrement = 169, // expr_decrement + S_expr_ternary = 170, // expr_ternary + S_expr_binary = 171, // expr_binary + S_expr_primitive = 172, // expr_primitive + S_expr_complement = 173, // expr_complement + S_expr_negate = 174, // expr_negate + S_expr_not = 175, // expr_not + S_expr_call = 176, // expr_call + S_expr_method = 177, // expr_method + S_expr_function = 178, // expr_function + S_expr_pointer = 179, // expr_pointer + S_expr_parameters = 180, // expr_parameters + 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 }; }; @@ -1205,6 +1211,10 @@ namespace xsk { namespace arc { namespace t6 { value.move< ast::expr_animation::ptr > (std::move (that.value)); break; + case symbol_kind::S_expr_animtree: // expr_animtree + value.move< ast::expr_animtree::ptr > (std::move (that.value)); + break; + case symbol_kind::S_expr_arguments: // expr_arguments case symbol_kind::S_expr_arguments_no_empty: // expr_arguments_no_empty value.move< ast::expr_arguments::ptr > (std::move (that.value)); @@ -1701,6 +1711,20 @@ namespace xsk { namespace arc { namespace t6 { {} #endif +#if 201103L <= YY_CPLUSPLUS + basic_symbol (typename Base::kind_type t, ast::expr_animtree::ptr&& v, location_type&& l) + : Base (t) + , value (std::move (v)) + , location (std::move (l)) + {} +#else + basic_symbol (typename Base::kind_type t, const ast::expr_animtree::ptr& v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} +#endif + #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, ast::expr_arguments::ptr&& v, location_type&& l) : Base (t) @@ -2766,6 +2790,10 @@ switch (yykind) value.template destroy< ast::expr_animation::ptr > (); break; + case symbol_kind::S_expr_animtree: // expr_animtree + value.template destroy< ast::expr_animtree::ptr > (); + break; + case symbol_kind::S_expr_arguments: // expr_arguments case symbol_kind::S_expr_arguments_no_empty: // expr_arguments_no_empty value.template destroy< ast::expr_arguments::ptr > (); @@ -3459,6 +3487,21 @@ switch (yykind) return symbol_type (token::USINGTREE, l); } #endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_ANIMTREE (location_type l) + { + return symbol_type (token::ANIMTREE, std::move (l)); + } +#else + static + symbol_type + make_ANIMTREE (const location_type& l) + { + return symbol_type (token::ANIMTREE, l); + } +#endif #if 201103L <= YY_CPLUSPLUS static symbol_type @@ -5453,8 +5496,8 @@ switch (yykind) /// Constants. enum { - yylast_ = 3562, ///< Last index in yytable_. - yynnts_ = 99, ///< Number of nonterminal symbols. + yylast_ = 3632, ///< Last index in yytable_. + yynnts_ = 100, ///< Number of nonterminal symbols. yyfinal_ = 22 ///< Termination state number. }; @@ -5542,6 +5585,10 @@ switch (yykind) value.copy< ast::expr_animation::ptr > (YY_MOVE (that.value)); break; + case symbol_kind::S_expr_animtree: // expr_animtree + value.copy< ast::expr_animtree::ptr > (YY_MOVE (that.value)); + break; + case symbol_kind::S_expr_arguments: // expr_arguments case symbol_kind::S_expr_arguments_no_empty: // expr_arguments_no_empty value.copy< ast::expr_arguments::ptr > (YY_MOVE (that.value)); @@ -5925,6 +5972,10 @@ switch (yykind) value.move< ast::expr_animation::ptr > (YY_MOVE (s.value)); break; + case symbol_kind::S_expr_animtree: // expr_animtree + value.move< ast::expr_animtree::ptr > (YY_MOVE (s.value)); + break; + case symbol_kind::S_expr_arguments: // expr_arguments case symbol_kind::S_expr_arguments_no_empty: // expr_arguments_no_empty value.move< ast::expr_arguments::ptr > (YY_MOVE (s.value)); @@ -6283,7 +6334,7 @@ switch (yykind) #line 13 "parser.ypp" } } } // xsk::arc::t6 -#line 6287 "parser.hpp" +#line 6338 "parser.hpp" diff --git a/src/utils/xsk/arc/nodetree.cpp b/src/utils/xsk/arc/nodetree.cpp index eeb8495b..2883a4c1 100644 --- a/src/utils/xsk/arc/nodetree.cpp +++ b/src/utils/xsk/arc/nodetree.cpp @@ -178,6 +178,9 @@ expr_path::expr_path(const location& loc, const std::string& value) : node(kind: expr_identifier::expr_identifier(const std::string& value) : node(kind::expr_identifier), value(value) {} expr_identifier::expr_identifier(const location& loc, const std::string& value) : node(kind::expr_identifier, loc), value(value) {} +expr_animtree::expr_animtree() : node(kind::expr_animtree) {} +expr_animtree::expr_animtree(const location& loc) : node(kind::expr_animtree, loc) {} + expr_animation::expr_animation(const std::string& value) : node(kind::expr_animation), value(value) {} expr_animation::expr_animation(const location& loc, const std::string& value) : node(kind::expr_animation, loc), value(value) {} @@ -590,6 +593,11 @@ auto expr_identifier::print() const -> std::string return value; } +auto expr_animtree::print() const -> std::string +{ + return "#animtree"; +} + auto expr_animation::print() const -> std::string { return "%"s += value; @@ -1535,6 +1543,11 @@ bool operator==(const expr_identifier& lhs, const expr_identifier& rhs) return lhs.value == rhs.value; } +bool operator==(const expr_animtree&, const expr_animtree&) +{ + return true; +} + bool operator==(const expr_animation& lhs, const expr_animation& rhs) { return lhs.value == rhs.value; @@ -1664,6 +1677,7 @@ expr::~expr() case kind::expr_istring: as_istring.~unique_ptr(); return; case kind::expr_path: as_path.~unique_ptr(); return; case kind::expr_identifier: as_identifier.~unique_ptr(); return; + case kind::expr_animtree: as_animtree.~unique_ptr(); return; case kind::expr_animation: as_animation.~unique_ptr(); return; case kind::expr_level: as_level.~unique_ptr(); return; case kind::expr_anim: as_anim.~unique_ptr(); return; @@ -1766,6 +1780,7 @@ bool operator==(const expr& lhs, const expr& rhs) case kind::expr_istring: return *lhs.as_istring == *rhs.as_istring; case kind::expr_path: return *lhs.as_path == *rhs.as_path; case kind::expr_identifier: return *lhs.as_identifier == *rhs.as_identifier; + case kind::expr_animtree: return *lhs.as_animtree == *rhs.as_animtree; case kind::expr_animation: return *lhs.as_animation == *rhs.as_animation; case kind::expr_level: return *lhs.as_level == *rhs.as_level; case kind::expr_anim: return *lhs.as_anim == *rhs.as_anim; diff --git a/src/utils/xsk/arc/nodetree.hpp b/src/utils/xsk/arc/nodetree.hpp index abd532fa..8150ca21 100644 --- a/src/utils/xsk/arc/nodetree.hpp +++ b/src/utils/xsk/arc/nodetree.hpp @@ -21,6 +21,7 @@ enum class kind expr_istring, expr_path, expr_identifier, + expr_animtree, expr_animation, expr_level, expr_anim, @@ -152,6 +153,7 @@ struct expr_string; struct expr_istring; struct expr_path; struct expr_identifier; +struct expr_animtree; struct expr_animation; struct expr_level; struct expr_anim; @@ -305,6 +307,7 @@ union expr std::unique_ptr as_istring; std::unique_ptr as_path; std::unique_ptr as_identifier; + std::unique_ptr as_animtree; std::unique_ptr as_animation; std::unique_ptr as_level; std::unique_ptr as_anim; @@ -627,6 +630,16 @@ struct expr_identifier : public node friend bool operator==(const expr_identifier& lhs, const expr_identifier& rhs); }; +struct expr_animtree : public node +{ + using ptr = std::unique_ptr; + + expr_animtree(); + expr_animtree(const location& loc); + auto print() const -> std::string override; + friend bool operator==(const expr_animtree& lhs, const expr_animtree& rhs); +}; + struct expr_animation : public node { using ptr = std::unique_ptr;