fix(arc): refactor regressions & func objects (#123)

This commit is contained in:
Xenxo Espasandín 2023-05-15 17:33:52 +02:00 committed by GitHub
parent c1eb9b0c9b
commit 908564a182
6 changed files with 379 additions and 339 deletions

View File

@ -734,9 +734,22 @@ expr_call
: expr_function { $$ = expr_call::make(@$, std::move($1)); } : expr_function { $$ = expr_call::make(@$, std::move($1)); }
| expr_pointer { $$ = expr_call::make(@$, std::move($1)); } | expr_pointer { $$ = expr_call::make(@$, std::move($1)); }
; ;
expr_method expr_method
: expr_object expr_function { $$ = expr_method::make(@$, std::move($1), std::move($2)); } : expr_object expr_function
| expr_object expr_pointer { $$ = expr_method::make(@$, std::move($1), std::move($2)); } {
if ($1->loc().begin.line != $2->loc().begin.line)
error($2->loc(), "missing ';' ?");
$$ = expr_method::make(@$, std::move($1), std::move($2));
}
| expr_object expr_pointer
{
if ($1->loc().begin.line != $2->loc().begin.line)
error($2->loc(), "missing ';' ?");
$$ = expr_method::make(@$, std::move($1), std::move($2));
}
; ;
expr_function expr_function

View File

@ -728,9 +728,22 @@ expr_call
: expr_function { $$ = expr_call::make(@$, std::move($1)); } : expr_function { $$ = expr_call::make(@$, std::move($1)); }
| expr_pointer { $$ = expr_call::make(@$, std::move($1)); } | expr_pointer { $$ = expr_call::make(@$, std::move($1)); }
; ;
expr_method expr_method
: expr_object expr_function { $$ = expr_method::make(@$, std::move($1), std::move($2)); } : expr_object expr_function
| expr_object expr_pointer { $$ = expr_method::make(@$, std::move($1), std::move($2)); } {
if ($1->loc().begin.line != $2->loc().begin.line)
error($2->loc(), "missing ';' ?");
$$ = expr_method::make(@$, std::move($1), std::move($2));
}
| expr_object expr_pointer
{
if ($1->loc().begin.line != $2->loc().begin.line)
error($2->loc(), "missing ';' ?");
$$ = expr_method::make(@$, std::move($1), std::move($2));
}
; ;
expr_function expr_function

View File

@ -207,7 +207,7 @@ auto assembler::assemble(assembly const& data) -> buffer
if (ctx_->props() & props::size64) if (ctx_->props() & props::size64)
script_.write<u32>(head.name); script_.write<u32>(head.name);
else else
script_.write<u32>(head.name); script_.write<u16>(static_cast<u16>(head.name));
script_.write<u16>(head.stringtablefixup_count); script_.write<u16>(head.stringtablefixup_count);
script_.write<u16>(head.exports_count); script_.write<u16>(head.exports_count);

View File

@ -372,8 +372,8 @@ auto compiler::emit_stmt_ifelse(stmt_ifelse const& stm) -> void
insert_label(else_loc); insert_label(else_loc);
paren = scopes_.back(); auto& paren2 = scopes_.back();
scopes_.push_back(scope(paren.brk, paren.cnt)); scopes_.push_back(scope(paren2.brk, paren2.cnt));
emit_stmt(*stm.stmt_else); emit_stmt(*stm.stmt_else);
scopes_.pop_back(); scopes_.pop_back();
@ -936,7 +936,6 @@ auto compiler::emit_expr_increment(expr_increment const& exp, bool is_stmt) -> v
{ {
emit_expr_variable_ref(*exp.lvalue, false); emit_expr_variable_ref(*exp.lvalue, false);
emit_opcode(opcode::OP_Inc); emit_opcode(opcode::OP_Inc);
emit_opcode(opcode::OP_SetVariableField);
} }
else else
{ {
@ -950,7 +949,6 @@ auto compiler::emit_expr_decrement(expr_decrement const& exp, bool is_stmt) -> v
{ {
emit_expr_variable_ref(*exp.lvalue, false); emit_expr_variable_ref(*exp.lvalue, false);
emit_opcode(opcode::OP_Dec); emit_opcode(opcode::OP_Dec);
emit_opcode(opcode::OP_SetVariableField);
} }
else else
{ {

View File

@ -3441,505 +3441,515 @@ namespace xsk { namespace arc {
break; break;
case 190: // expr_method: expr_object expr_function case 190: // expr_method: expr_object expr_function
#line 738 "parser.ypp" #line 740 "parser.ypp"
{ yylhs.value.as < expr_method::ptr > () = expr_method::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < call::ptr > ())); } {
#line 3453 "parser.cpp" if (yystack_[1].value.as < expr::ptr > ()->loc().begin.line != yystack_[0].value.as < call::ptr > ()->loc().begin.line)
error(yystack_[0].value.as < call::ptr > ()->loc(), "missing ';' ?");
yylhs.value.as < expr_method::ptr > () = expr_method::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < call::ptr > ()));
}
#line 3458 "parser.cpp"
break; break;
case 191: // expr_method: expr_object expr_pointer case 191: // expr_method: expr_object expr_pointer
#line 739 "parser.ypp" #line 747 "parser.ypp"
{ yylhs.value.as < expr_method::ptr > () = expr_method::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < call::ptr > ())); } {
#line 3459 "parser.cpp" if (yystack_[1].value.as < expr::ptr > ()->loc().begin.line != yystack_[0].value.as < call::ptr > ()->loc().begin.line)
error(yystack_[0].value.as < call::ptr > ()->loc(), "missing ';' ?");
yylhs.value.as < expr_method::ptr > () = expr_method::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < call::ptr > ()));
}
#line 3469 "parser.cpp"
break; break;
case 192: // expr_function: expr_identifier "(" expr_arguments ")" case 192: // expr_function: expr_identifier "(" expr_arguments ")"
#line 744 "parser.ypp" #line 757 "parser.ypp"
{ yylhs.value.as < call::ptr > () = expr_function::make(yylhs.location, expr_path::make(yylhs.location), std::move(yystack_[3].value.as < expr_identifier::ptr > ()), std::move(yystack_[1].value.as < expr_arguments::ptr > ()), call::mode::normal); } { yylhs.value.as < call::ptr > () = expr_function::make(yylhs.location, expr_path::make(yylhs.location), std::move(yystack_[3].value.as < expr_identifier::ptr > ()), std::move(yystack_[1].value.as < expr_arguments::ptr > ()), call::mode::normal); }
#line 3465 "parser.cpp" #line 3475 "parser.cpp"
break; break;
case 193: // expr_function: expr_path "::" expr_identifier "(" expr_arguments ")" case 193: // expr_function: expr_path "::" expr_identifier "(" expr_arguments ")"
#line 746 "parser.ypp" #line 759 "parser.ypp"
{ yylhs.value.as < call::ptr > () = expr_function::make(yylhs.location, std::move(yystack_[5].value.as < expr_path::ptr > ()), std::move(yystack_[3].value.as < expr_identifier::ptr > ()), std::move(yystack_[1].value.as < expr_arguments::ptr > ()), call::mode::normal); } { yylhs.value.as < call::ptr > () = expr_function::make(yylhs.location, std::move(yystack_[5].value.as < expr_path::ptr > ()), std::move(yystack_[3].value.as < expr_identifier::ptr > ()), std::move(yystack_[1].value.as < expr_arguments::ptr > ()), call::mode::normal); }
#line 3471 "parser.cpp" #line 3481 "parser.cpp"
break; break;
case 194: // expr_function: "thread" expr_identifier "(" expr_arguments ")" case 194: // expr_function: "thread" expr_identifier "(" expr_arguments ")"
#line 748 "parser.ypp" #line 761 "parser.ypp"
{ yylhs.value.as < call::ptr > () = expr_function::make(yylhs.location, expr_path::make(yylhs.location), std::move(yystack_[3].value.as < expr_identifier::ptr > ()), std::move(yystack_[1].value.as < expr_arguments::ptr > ()), call::mode::thread); } { yylhs.value.as < call::ptr > () = expr_function::make(yylhs.location, expr_path::make(yylhs.location), std::move(yystack_[3].value.as < expr_identifier::ptr > ()), std::move(yystack_[1].value.as < expr_arguments::ptr > ()), call::mode::thread); }
#line 3477 "parser.cpp" #line 3487 "parser.cpp"
break; break;
case 195: // expr_function: "thread" expr_path "::" expr_identifier "(" expr_arguments ")" case 195: // expr_function: "thread" expr_path "::" expr_identifier "(" expr_arguments ")"
#line 750 "parser.ypp" #line 763 "parser.ypp"
{ yylhs.value.as < call::ptr > () = expr_function::make(yylhs.location, std::move(yystack_[5].value.as < expr_path::ptr > ()), std::move(yystack_[3].value.as < expr_identifier::ptr > ()), std::move(yystack_[1].value.as < expr_arguments::ptr > ()), call::mode::thread); } { yylhs.value.as < call::ptr > () = expr_function::make(yylhs.location, std::move(yystack_[5].value.as < expr_path::ptr > ()), std::move(yystack_[3].value.as < expr_identifier::ptr > ()), std::move(yystack_[1].value.as < expr_arguments::ptr > ()), call::mode::thread); }
#line 3483 "parser.cpp" #line 3493 "parser.cpp"
break; break;
case 196: // expr_pointer: "[" "[" expr "]" "]" "(" expr_arguments ")" case 196: // expr_pointer: "[" "[" expr "]" "]" "(" expr_arguments ")"
#line 755 "parser.ypp" #line 768 "parser.ypp"
{ yylhs.value.as < call::ptr > () = expr_pointer::make(yylhs.location, std::move(yystack_[5].value.as < expr::ptr > ()), std::move(yystack_[1].value.as < expr_arguments::ptr > ()), call::mode::normal); } { yylhs.value.as < call::ptr > () = expr_pointer::make(yylhs.location, std::move(yystack_[5].value.as < expr::ptr > ()), std::move(yystack_[1].value.as < expr_arguments::ptr > ()), call::mode::normal); }
#line 3489 "parser.cpp" #line 3499 "parser.cpp"
break; break;
case 197: // expr_pointer: "thread" "[" "[" expr "]" "]" "(" expr_arguments ")" case 197: // expr_pointer: "thread" "[" "[" expr "]" "]" "(" expr_arguments ")"
#line 757 "parser.ypp" #line 770 "parser.ypp"
{ yylhs.value.as < call::ptr > () = expr_pointer::make(yylhs.location, std::move(yystack_[5].value.as < expr::ptr > ()), std::move(yystack_[1].value.as < expr_arguments::ptr > ()), call::mode::thread); } { yylhs.value.as < call::ptr > () = expr_pointer::make(yylhs.location, std::move(yystack_[5].value.as < expr::ptr > ()), std::move(yystack_[1].value.as < expr_arguments::ptr > ()), call::mode::thread); }
#line 3495 "parser.cpp" #line 3505 "parser.cpp"
break; break;
case 198: // expr_parameters: expr_parameters "," expr_parameters_default case 198: // expr_parameters: expr_parameters "," expr_parameters_default
#line 762 "parser.ypp" #line 775 "parser.ypp"
{ yylhs.value.as < expr_parameters::ptr > () = std::move(yystack_[2].value.as < expr_parameters::ptr > ()); yylhs.value.as < expr_parameters::ptr > ()->list.push_back(std::move(yystack_[0].value.as < expr::ptr > ())); } { yylhs.value.as < expr_parameters::ptr > () = std::move(yystack_[2].value.as < expr_parameters::ptr > ()); yylhs.value.as < expr_parameters::ptr > ()->list.push_back(std::move(yystack_[0].value.as < expr::ptr > ())); }
#line 3501 "parser.cpp" #line 3511 "parser.cpp"
break; break;
case 199: // expr_parameters: expr_parameters "," expr_identifier case 199: // expr_parameters: expr_parameters "," expr_identifier
#line 764 "parser.ypp" #line 777 "parser.ypp"
{ yylhs.value.as < expr_parameters::ptr > () = std::move(yystack_[2].value.as < expr_parameters::ptr > ()); yylhs.value.as < expr_parameters::ptr > ()->list.push_back(std::move(yystack_[0].value.as < expr_identifier::ptr > ())); } { yylhs.value.as < expr_parameters::ptr > () = std::move(yystack_[2].value.as < expr_parameters::ptr > ()); yylhs.value.as < expr_parameters::ptr > ()->list.push_back(std::move(yystack_[0].value.as < expr_identifier::ptr > ())); }
#line 3507 "parser.cpp" #line 3517 "parser.cpp"
break; break;
case 200: // expr_parameters: expr_parameters_default case 200: // expr_parameters: expr_parameters_default
#line 766 "parser.ypp" #line 779 "parser.ypp"
{ yylhs.value.as < expr_parameters::ptr > () = expr_parameters::make(yylhs.location); yylhs.value.as < expr_parameters::ptr > ()->list.push_back(std::move(yystack_[0].value.as < expr::ptr > ())); } { yylhs.value.as < expr_parameters::ptr > () = expr_parameters::make(yylhs.location); yylhs.value.as < expr_parameters::ptr > ()->list.push_back(std::move(yystack_[0].value.as < expr::ptr > ())); }
#line 3513 "parser.cpp" #line 3523 "parser.cpp"
break; break;
case 201: // expr_parameters: expr_identifier case 201: // expr_parameters: expr_identifier
#line 768 "parser.ypp" #line 781 "parser.ypp"
{ yylhs.value.as < expr_parameters::ptr > () = expr_parameters::make(yylhs.location); yylhs.value.as < expr_parameters::ptr > ()->list.push_back(std::move(yystack_[0].value.as < expr_identifier::ptr > ())); } { yylhs.value.as < expr_parameters::ptr > () = expr_parameters::make(yylhs.location); yylhs.value.as < expr_parameters::ptr > ()->list.push_back(std::move(yystack_[0].value.as < expr_identifier::ptr > ())); }
#line 3519 "parser.cpp" #line 3529 "parser.cpp"
break; break;
case 202: // expr_parameters: %empty case 202: // expr_parameters: %empty
#line 770 "parser.ypp" #line 783 "parser.ypp"
{ yylhs.value.as < expr_parameters::ptr > () = expr_parameters::make(yylhs.location); } { yylhs.value.as < expr_parameters::ptr > () = expr_parameters::make(yylhs.location); }
#line 3525 "parser.cpp" #line 3535 "parser.cpp"
break; break;
case 203: // expr_parameters_default: expr_identifier "=" expr case 203: // expr_parameters_default: expr_identifier "=" expr
#line 775 "parser.ypp" #line 788 "parser.ypp"
{ yylhs.value.as < expr::ptr > () = expr_assign::make(yylhs.location, std::move(yystack_[2].value.as < expr_identifier::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_assign::op::eq); } { yylhs.value.as < expr::ptr > () = expr_assign::make(yylhs.location, std::move(yystack_[2].value.as < expr_identifier::ptr > ()), std::move(yystack_[0].value.as < expr::ptr > ()), expr_assign::op::eq); }
#line 3531 "parser.cpp" #line 3541 "parser.cpp"
break; break;
case 204: // expr_arguments: expr_arguments_no_empty case 204: // expr_arguments: expr_arguments_no_empty
#line 780 "parser.ypp" #line 793 "parser.ypp"
{ yylhs.value.as < expr_arguments::ptr > () = std::move(yystack_[0].value.as < expr_arguments::ptr > ()); } { yylhs.value.as < expr_arguments::ptr > () = std::move(yystack_[0].value.as < expr_arguments::ptr > ()); }
#line 3537 "parser.cpp" #line 3547 "parser.cpp"
break; break;
case 205: // expr_arguments: %empty case 205: // expr_arguments: %empty
#line 782 "parser.ypp" #line 795 "parser.ypp"
{ yylhs.value.as < expr_arguments::ptr > () = expr_arguments::make(yylhs.location); } { yylhs.value.as < expr_arguments::ptr > () = expr_arguments::make(yylhs.location); }
#line 3543 "parser.cpp" #line 3553 "parser.cpp"
break; break;
case 206: // expr_arguments_no_empty: expr_arguments "," expr case 206: // expr_arguments_no_empty: expr_arguments "," expr
#line 787 "parser.ypp" #line 800 "parser.ypp"
{ yylhs.value.as < expr_arguments::ptr > () = std::move(yystack_[2].value.as < expr_arguments::ptr > ()); yylhs.value.as < expr_arguments::ptr > ()->list.push_back(std::move(yystack_[0].value.as < expr::ptr > ())); } { yylhs.value.as < expr_arguments::ptr > () = std::move(yystack_[2].value.as < expr_arguments::ptr > ()); yylhs.value.as < expr_arguments::ptr > ()->list.push_back(std::move(yystack_[0].value.as < expr::ptr > ())); }
#line 3549 "parser.cpp" #line 3559 "parser.cpp"
break; break;
case 207: // expr_arguments_no_empty: expr case 207: // expr_arguments_no_empty: expr
#line 789 "parser.ypp" #line 802 "parser.ypp"
{ yylhs.value.as < expr_arguments::ptr > () = expr_arguments::make(yylhs.location); yylhs.value.as < expr_arguments::ptr > ()->list.push_back(std::move(yystack_[0].value.as < expr::ptr > ())); } { yylhs.value.as < expr_arguments::ptr > () = expr_arguments::make(yylhs.location); yylhs.value.as < expr_arguments::ptr > ()->list.push_back(std::move(yystack_[0].value.as < expr::ptr > ())); }
#line 3555 "parser.cpp" #line 3565 "parser.cpp"
break; break;
case 208: // expr_getnextarraykey: "getnextarraykey" "(" expr "," expr ")" case 208: // expr_getnextarraykey: "getnextarraykey" "(" expr "," expr ")"
#line 794 "parser.ypp" #line 807 "parser.ypp"
{ yylhs.value.as < expr_getnextarraykey::ptr > () = expr_getnextarraykey::make(yylhs.location, std::move(yystack_[3].value.as < expr::ptr > ()), std::move(yystack_[1].value.as < expr::ptr > ())); } { yylhs.value.as < expr_getnextarraykey::ptr > () = expr_getnextarraykey::make(yylhs.location, std::move(yystack_[3].value.as < expr::ptr > ()), std::move(yystack_[1].value.as < expr::ptr > ())); }
#line 3561 "parser.cpp" #line 3571 "parser.cpp"
break; break;
case 209: // expr_getfirstarraykey: "getfirstarraykey" "(" expr ")" case 209: // expr_getfirstarraykey: "getfirstarraykey" "(" expr ")"
#line 799 "parser.ypp" #line 812 "parser.ypp"
{ yylhs.value.as < expr_getfirstarraykey::ptr > () = expr_getfirstarraykey::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); } { yylhs.value.as < expr_getfirstarraykey::ptr > () = expr_getfirstarraykey::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); }
#line 3567 "parser.cpp" #line 3577 "parser.cpp"
break; break;
case 210: // expr_getdvarcoloralpha: "getdvarcoloralpha" "(" expr ")" case 210: // expr_getdvarcoloralpha: "getdvarcoloralpha" "(" expr ")"
#line 804 "parser.ypp" #line 817 "parser.ypp"
{ yylhs.value.as < expr_getdvarcoloralpha::ptr > () = expr_getdvarcoloralpha::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); } { yylhs.value.as < expr_getdvarcoloralpha::ptr > () = expr_getdvarcoloralpha::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); }
#line 3573 "parser.cpp" #line 3583 "parser.cpp"
break; break;
case 211: // expr_getdvarcolorblue: "getdvarcolorblue" "(" expr ")" case 211: // expr_getdvarcolorblue: "getdvarcolorblue" "(" expr ")"
#line 809 "parser.ypp" #line 822 "parser.ypp"
{ yylhs.value.as < expr_getdvarcolorblue::ptr > () = expr_getdvarcolorblue::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); } { yylhs.value.as < expr_getdvarcolorblue::ptr > () = expr_getdvarcolorblue::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); }
#line 3579 "parser.cpp" #line 3589 "parser.cpp"
break; break;
case 212: // expr_getdvarcolorgreen: "getdvarcolorgreen" "(" expr ")" case 212: // expr_getdvarcolorgreen: "getdvarcolorgreen" "(" expr ")"
#line 814 "parser.ypp" #line 827 "parser.ypp"
{ yylhs.value.as < expr_getdvarcolorgreen::ptr > () = expr_getdvarcolorgreen::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); } { yylhs.value.as < expr_getdvarcolorgreen::ptr > () = expr_getdvarcolorgreen::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); }
#line 3585 "parser.cpp" #line 3595 "parser.cpp"
break; break;
case 213: // expr_getdvarcolorred: "getdvarcolorred" "(" expr ")" case 213: // expr_getdvarcolorred: "getdvarcolorred" "(" expr ")"
#line 819 "parser.ypp" #line 832 "parser.ypp"
{ yylhs.value.as < expr_getdvarcolorred::ptr > () = expr_getdvarcolorred::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); } { yylhs.value.as < expr_getdvarcolorred::ptr > () = expr_getdvarcolorred::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); }
#line 3591 "parser.cpp" #line 3601 "parser.cpp"
break; break;
case 214: // expr_getdvarvector: "getdvarvector" "(" expr ")" case 214: // expr_getdvarvector: "getdvarvector" "(" expr ")"
#line 824 "parser.ypp" #line 837 "parser.ypp"
{ yylhs.value.as < expr_getdvarvector::ptr > () = expr_getdvarvector::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); } { yylhs.value.as < expr_getdvarvector::ptr > () = expr_getdvarvector::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); }
#line 3597 "parser.cpp" #line 3607 "parser.cpp"
break; break;
case 215: // expr_getdvarfloat: "getdvarfloat" "(" expr ")" case 215: // expr_getdvarfloat: "getdvarfloat" "(" expr ")"
#line 829 "parser.ypp" #line 842 "parser.ypp"
{ yylhs.value.as < expr_getdvarfloat::ptr > () = expr_getdvarfloat::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); } { yylhs.value.as < expr_getdvarfloat::ptr > () = expr_getdvarfloat::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); }
#line 3603 "parser.cpp" #line 3613 "parser.cpp"
break; break;
case 216: // expr_getdvarint: "getdvarint" "(" expr ")" case 216: // expr_getdvarint: "getdvarint" "(" expr ")"
#line 834 "parser.ypp" #line 847 "parser.ypp"
{ yylhs.value.as < expr_getdvarint::ptr > () = expr_getdvarint::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); } { yylhs.value.as < expr_getdvarint::ptr > () = expr_getdvarint::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); }
#line 3609 "parser.cpp" #line 3619 "parser.cpp"
break; break;
case 217: // expr_getdvar: "getdvar" "(" expr ")" case 217: // expr_getdvar: "getdvar" "(" expr ")"
#line 839 "parser.ypp" #line 852 "parser.ypp"
{ yylhs.value.as < expr_getdvar::ptr > () = expr_getdvar::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); } { yylhs.value.as < expr_getdvar::ptr > () = expr_getdvar::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); }
#line 3615 "parser.cpp" #line 3625 "parser.cpp"
break; break;
case 218: // expr_gettime: "gettime" "(" ")" case 218: // expr_gettime: "gettime" "(" ")"
#line 844 "parser.ypp" #line 857 "parser.ypp"
{ yylhs.value.as < expr_gettime::ptr > () = expr_gettime::make(yylhs.location); } { yylhs.value.as < expr_gettime::ptr > () = expr_gettime::make(yylhs.location); }
#line 3621 "parser.cpp" #line 3631 "parser.cpp"
break; break;
case 219: // expr_abs: "abs" "(" expr ")" case 219: // expr_abs: "abs" "(" expr ")"
#line 849 "parser.ypp" #line 862 "parser.ypp"
{ yylhs.value.as < expr_abs::ptr > () = expr_abs::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); } { yylhs.value.as < expr_abs::ptr > () = expr_abs::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); }
#line 3627 "parser.cpp" #line 3637 "parser.cpp"
break; break;
case 220: // expr_vectortoangles: "vectortoangles" "(" expr ")" case 220: // expr_vectortoangles: "vectortoangles" "(" expr ")"
#line 854 "parser.ypp" #line 867 "parser.ypp"
{ yylhs.value.as < expr_vectortoangles::ptr > () = expr_vectortoangles::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); } { yylhs.value.as < expr_vectortoangles::ptr > () = expr_vectortoangles::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); }
#line 3633 "parser.cpp" #line 3643 "parser.cpp"
break; break;
case 221: // expr_angleclamp180: "angleclamp180" "(" expr ")" case 221: // expr_angleclamp180: "angleclamp180" "(" expr ")"
#line 859 "parser.ypp" #line 872 "parser.ypp"
{ yylhs.value.as < expr_angleclamp180::ptr > () = expr_angleclamp180::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); } { yylhs.value.as < expr_angleclamp180::ptr > () = expr_angleclamp180::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); }
#line 3639 "parser.cpp" #line 3649 "parser.cpp"
break; break;
case 222: // expr_anglestoforward: "anglestoforward" "(" expr ")" case 222: // expr_anglestoforward: "anglestoforward" "(" expr ")"
#line 864 "parser.ypp" #line 877 "parser.ypp"
{ yylhs.value.as < expr_anglestoforward::ptr > () = expr_anglestoforward::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); } { yylhs.value.as < expr_anglestoforward::ptr > () = expr_anglestoforward::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); }
#line 3645 "parser.cpp" #line 3655 "parser.cpp"
break; break;
case 223: // expr_anglestoright: "anglestoright" "(" expr ")" case 223: // expr_anglestoright: "anglestoright" "(" expr ")"
#line 869 "parser.ypp" #line 882 "parser.ypp"
{ yylhs.value.as < expr_anglestoright::ptr > () = expr_anglestoright::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); } { yylhs.value.as < expr_anglestoright::ptr > () = expr_anglestoright::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); }
#line 3651 "parser.cpp" #line 3661 "parser.cpp"
break; break;
case 224: // expr_anglestoup: "anglestoup" "(" expr ")" case 224: // expr_anglestoup: "anglestoup" "(" expr ")"
#line 874 "parser.ypp" #line 887 "parser.ypp"
{ yylhs.value.as < expr_anglestoup::ptr > () = expr_anglestoup::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); } { yylhs.value.as < expr_anglestoup::ptr > () = expr_anglestoup::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); }
#line 3657 "parser.cpp" #line 3667 "parser.cpp"
break; break;
case 225: // expr_vectorscale: "vectorscale" "(" expr "," expr ")" case 225: // expr_vectorscale: "vectorscale" "(" expr "," expr ")"
#line 879 "parser.ypp" #line 892 "parser.ypp"
{ yylhs.value.as < expr_vectorscale::ptr > () = expr_vectorscale::make(yylhs.location, std::move(yystack_[3].value.as < expr::ptr > ()), std::move(yystack_[1].value.as < expr::ptr > ())); } { yylhs.value.as < expr_vectorscale::ptr > () = expr_vectorscale::make(yylhs.location, std::move(yystack_[3].value.as < expr::ptr > ()), std::move(yystack_[1].value.as < expr::ptr > ())); }
#line 3663 "parser.cpp" #line 3673 "parser.cpp"
break; break;
case 226: // expr_isdefined: "isdefined" "(" expr ")" case 226: // expr_isdefined: "isdefined" "(" expr ")"
#line 884 "parser.ypp" #line 897 "parser.ypp"
{ yylhs.value.as < expr_isdefined::ptr > () = expr_isdefined::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); } { yylhs.value.as < expr_isdefined::ptr > () = expr_isdefined::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); }
#line 3669 "parser.cpp" #line 3679 "parser.cpp"
break; break;
case 227: // expr_reference: "::" expr_identifier case 227: // expr_reference: "::" expr_identifier
#line 889 "parser.ypp" #line 902 "parser.ypp"
{ yylhs.value.as < expr_reference::ptr > () = expr_reference::make(yylhs.location, expr_path::make(yylhs.location), std::move(yystack_[0].value.as < expr_identifier::ptr > ())); } { yylhs.value.as < expr_reference::ptr > () = expr_reference::make(yylhs.location, expr_path::make(yylhs.location), std::move(yystack_[0].value.as < expr_identifier::ptr > ())); }
#line 3675 "parser.cpp" #line 3685 "parser.cpp"
break; break;
case 228: // expr_reference: expr_path "::" expr_identifier case 228: // expr_reference: expr_path "::" expr_identifier
#line 891 "parser.ypp" #line 904 "parser.ypp"
{ yylhs.value.as < expr_reference::ptr > () = expr_reference::make(yylhs.location, std::move(yystack_[2].value.as < expr_path::ptr > ()), std::move(yystack_[0].value.as < expr_identifier::ptr > ())); } { yylhs.value.as < expr_reference::ptr > () = expr_reference::make(yylhs.location, std::move(yystack_[2].value.as < expr_path::ptr > ()), std::move(yystack_[0].value.as < expr_identifier::ptr > ())); }
#line 3681 "parser.cpp" #line 3691 "parser.cpp"
break; break;
case 229: // expr_array: expr_object "[" expr "]" case 229: // expr_array: expr_object "[" expr "]"
#line 896 "parser.ypp" #line 909 "parser.ypp"
{ yylhs.value.as < expr_array::ptr > () = expr_array::make(yylhs.location, std::move(yystack_[3].value.as < expr::ptr > ()), std::move(yystack_[1].value.as < expr::ptr > ())); } { yylhs.value.as < expr_array::ptr > () = expr_array::make(yylhs.location, std::move(yystack_[3].value.as < expr::ptr > ()), std::move(yystack_[1].value.as < expr::ptr > ())); }
#line 3687 "parser.cpp" #line 3697 "parser.cpp"
break; break;
case 230: // expr_array: expr_getdvarvector "[" expr "]" case 230: // expr_array: expr_getdvarvector "[" expr "]"
#line 898 "parser.ypp" #line 911 "parser.ypp"
{ yylhs.value.as < expr_array::ptr > () = expr_array::make(yylhs.location, std::move(yystack_[3].value.as < expr_getdvarvector::ptr > ()), std::move(yystack_[1].value.as < expr::ptr > ())); } { yylhs.value.as < expr_array::ptr > () = expr_array::make(yylhs.location, std::move(yystack_[3].value.as < expr_getdvarvector::ptr > ()), std::move(yystack_[1].value.as < expr::ptr > ())); }
#line 3693 "parser.cpp" #line 3703 "parser.cpp"
break; break;
case 231: // expr_array: expr_vectortoangles "[" expr "]" case 231: // expr_array: expr_vectortoangles "[" expr "]"
#line 900 "parser.ypp" #line 913 "parser.ypp"
{ yylhs.value.as < expr_array::ptr > () = expr_array::make(yylhs.location, std::move(yystack_[3].value.as < expr_vectortoangles::ptr > ()), std::move(yystack_[1].value.as < expr::ptr > ())); } { yylhs.value.as < expr_array::ptr > () = expr_array::make(yylhs.location, std::move(yystack_[3].value.as < expr_vectortoangles::ptr > ()), std::move(yystack_[1].value.as < expr::ptr > ())); }
#line 3699 "parser.cpp" #line 3709 "parser.cpp"
break; break;
case 232: // expr_array: expr_angleclamp180 "[" expr "]" case 232: // expr_array: expr_angleclamp180 "[" expr "]"
#line 902 "parser.ypp" #line 915 "parser.ypp"
{ yylhs.value.as < expr_array::ptr > () = expr_array::make(yylhs.location, std::move(yystack_[3].value.as < expr_angleclamp180::ptr > ()), std::move(yystack_[1].value.as < expr::ptr > ())); } { yylhs.value.as < expr_array::ptr > () = expr_array::make(yylhs.location, std::move(yystack_[3].value.as < expr_angleclamp180::ptr > ()), std::move(yystack_[1].value.as < expr::ptr > ())); }
#line 3705 "parser.cpp" #line 3715 "parser.cpp"
break; break;
case 233: // expr_array: expr_anglestoforward "[" expr "]" case 233: // expr_array: expr_anglestoforward "[" expr "]"
#line 904 "parser.ypp" #line 917 "parser.ypp"
{ yylhs.value.as < expr_array::ptr > () = expr_array::make(yylhs.location, std::move(yystack_[3].value.as < expr_anglestoforward::ptr > ()), std::move(yystack_[1].value.as < expr::ptr > ())); } { yylhs.value.as < expr_array::ptr > () = expr_array::make(yylhs.location, std::move(yystack_[3].value.as < expr_anglestoforward::ptr > ()), std::move(yystack_[1].value.as < expr::ptr > ())); }
#line 3711 "parser.cpp" #line 3721 "parser.cpp"
break; break;
case 234: // expr_array: expr_anglestoright "[" expr "]" case 234: // expr_array: expr_anglestoright "[" expr "]"
#line 906 "parser.ypp" #line 919 "parser.ypp"
{ yylhs.value.as < expr_array::ptr > () = expr_array::make(yylhs.location, std::move(yystack_[3].value.as < expr_anglestoright::ptr > ()), std::move(yystack_[1].value.as < expr::ptr > ())); } { yylhs.value.as < expr_array::ptr > () = expr_array::make(yylhs.location, std::move(yystack_[3].value.as < expr_anglestoright::ptr > ()), std::move(yystack_[1].value.as < expr::ptr > ())); }
#line 3717 "parser.cpp" #line 3727 "parser.cpp"
break; break;
case 235: // expr_array: expr_anglestoup "[" expr "]" case 235: // expr_array: expr_anglestoup "[" expr "]"
#line 908 "parser.ypp" #line 921 "parser.ypp"
{ yylhs.value.as < expr_array::ptr > () = expr_array::make(yylhs.location, std::move(yystack_[3].value.as < expr_anglestoup::ptr > ()), std::move(yystack_[1].value.as < expr::ptr > ())); } { yylhs.value.as < expr_array::ptr > () = expr_array::make(yylhs.location, std::move(yystack_[3].value.as < expr_anglestoup::ptr > ()), std::move(yystack_[1].value.as < expr::ptr > ())); }
#line 3723 "parser.cpp" #line 3733 "parser.cpp"
break; break;
case 236: // expr_array: expr_vectorscale "[" expr "]" case 236: // expr_array: expr_vectorscale "[" expr "]"
#line 910 "parser.ypp" #line 923 "parser.ypp"
{ yylhs.value.as < expr_array::ptr > () = expr_array::make(yylhs.location, std::move(yystack_[3].value.as < expr_vectorscale::ptr > ()), std::move(yystack_[1].value.as < expr::ptr > ())); } { yylhs.value.as < expr_array::ptr > () = expr_array::make(yylhs.location, std::move(yystack_[3].value.as < expr_vectorscale::ptr > ()), std::move(yystack_[1].value.as < expr::ptr > ())); }
#line 3729 "parser.cpp" #line 3739 "parser.cpp"
break; break;
case 237: // expr_field: expr_object "." expr_identifier_nosize case 237: // expr_field: expr_object "." expr_identifier_nosize
#line 915 "parser.ypp" #line 928 "parser.ypp"
{ yylhs.value.as < expr_field::ptr > () = expr_field::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr_identifier::ptr > ())); } { yylhs.value.as < expr_field::ptr > () = expr_field::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr_identifier::ptr > ())); }
#line 3735 "parser.cpp" #line 3745 "parser.cpp"
break; break;
case 238: // expr_size: expr_object "." "size" case 238: // expr_size: expr_object "." "size"
#line 920 "parser.ypp" #line 933 "parser.ypp"
{ yylhs.value.as < expr_size::ptr > () = expr_size::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ())); } { yylhs.value.as < expr_size::ptr > () = expr_size::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ())); }
#line 3741 "parser.cpp" #line 3751 "parser.cpp"
break; break;
case 239: // expr_paren: "(" expr ")" case 239: // expr_paren: "(" expr ")"
#line 925 "parser.ypp" #line 938 "parser.ypp"
{ yylhs.value.as < expr_paren::ptr > () = expr_paren::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); } { yylhs.value.as < expr_paren::ptr > () = expr_paren::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); }
#line 3747 "parser.cpp" #line 3757 "parser.cpp"
break; break;
case 240: // expr_object: expr_call case 240: // expr_object: expr_call
#line 929 "parser.ypp" #line 942 "parser.ypp"
{ yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_call::ptr > ()); } { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_call::ptr > ()); }
#line 3753 "parser.cpp" #line 3763 "parser.cpp"
break; break;
case 241: // expr_object: expr_method case 241: // expr_object: expr_method
#line 930 "parser.ypp" #line 943 "parser.ypp"
{ yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_method::ptr > ()); } { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_method::ptr > ()); }
#line 3759 "parser.cpp" #line 3769 "parser.cpp"
break; break;
case 242: // expr_object: expr_array case 242: // expr_object: expr_array
#line 931 "parser.ypp" #line 944 "parser.ypp"
{ yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_array::ptr > ()); } { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_array::ptr > ()); }
#line 3765 "parser.cpp" #line 3775 "parser.cpp"
break; break;
case 243: // expr_object: expr_field case 243: // expr_object: expr_field
#line 932 "parser.ypp" #line 945 "parser.ypp"
{ yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_field::ptr > ()); } { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_field::ptr > ()); }
#line 3771 "parser.cpp" #line 3781 "parser.cpp"
break; break;
case 244: // expr_object: expr_game case 244: // expr_object: expr_game
#line 933 "parser.ypp" #line 946 "parser.ypp"
{ yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_game::ptr > ()); } { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_game::ptr > ()); }
#line 3777 "parser.cpp" #line 3787 "parser.cpp"
break; break;
case 245: // expr_object: expr_self case 245: // expr_object: expr_self
#line 934 "parser.ypp" #line 947 "parser.ypp"
{ yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_self::ptr > ()); } { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_self::ptr > ()); }
#line 3783 "parser.cpp" #line 3793 "parser.cpp"
break; break;
case 246: // expr_object: expr_anim case 246: // expr_object: expr_anim
#line 935 "parser.ypp" #line 948 "parser.ypp"
{ yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_anim::ptr > ()); } { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_anim::ptr > ()); }
#line 3789 "parser.cpp" #line 3799 "parser.cpp"
break; break;
case 247: // expr_object: expr_level case 247: // expr_object: expr_level
#line 936 "parser.ypp" #line 949 "parser.ypp"
{ yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_level::ptr > ()); } { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_level::ptr > ()); }
#line 3795 "parser.cpp" #line 3805 "parser.cpp"
break; break;
case 248: // expr_object: expr_identifier case 248: // expr_object: expr_identifier
#line 937 "parser.ypp" #line 950 "parser.ypp"
{ yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_identifier::ptr > ()); } { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_identifier::ptr > ()); }
#line 3801 "parser.cpp" #line 3811 "parser.cpp"
break; break;
case 249: // expr_empty_array: "[" "]" case 249: // expr_empty_array: "[" "]"
#line 942 "parser.ypp" #line 955 "parser.ypp"
{ yylhs.value.as < expr_empty_array::ptr > () = expr_empty_array::make(yylhs.location); } { yylhs.value.as < expr_empty_array::ptr > () = expr_empty_array::make(yylhs.location); }
#line 3807 "parser.cpp" #line 3817 "parser.cpp"
break; break;
case 250: // expr_undefined: "undefined" case 250: // expr_undefined: "undefined"
#line 947 "parser.ypp" #line 960 "parser.ypp"
{ yylhs.value.as < expr_undefined::ptr > () = expr_undefined::make(yylhs.location); } { yylhs.value.as < expr_undefined::ptr > () = expr_undefined::make(yylhs.location); }
#line 3813 "parser.cpp" #line 3823 "parser.cpp"
break; break;
case 251: // expr_game: "game" case 251: // expr_game: "game"
#line 952 "parser.ypp" #line 965 "parser.ypp"
{ yylhs.value.as < expr_game::ptr > () = expr_game::make(yylhs.location); } { yylhs.value.as < expr_game::ptr > () = expr_game::make(yylhs.location); }
#line 3819 "parser.cpp" #line 3829 "parser.cpp"
break; break;
case 252: // expr_self: "self" case 252: // expr_self: "self"
#line 957 "parser.ypp" #line 970 "parser.ypp"
{ yylhs.value.as < expr_self::ptr > () = expr_self::make(yylhs.location); } { yylhs.value.as < expr_self::ptr > () = expr_self::make(yylhs.location); }
#line 3825 "parser.cpp" #line 3835 "parser.cpp"
break; break;
case 253: // expr_anim: "anim" case 253: // expr_anim: "anim"
#line 962 "parser.ypp" #line 975 "parser.ypp"
{ yylhs.value.as < expr_anim::ptr > () = expr_anim::make(yylhs.location); } { yylhs.value.as < expr_anim::ptr > () = expr_anim::make(yylhs.location); }
#line 3831 "parser.cpp" #line 3841 "parser.cpp"
break; break;
case 254: // expr_level: "level" case 254: // expr_level: "level"
#line 967 "parser.ypp" #line 980 "parser.ypp"
{ yylhs.value.as < expr_level::ptr > () = expr_level::make(yylhs.location); } { yylhs.value.as < expr_level::ptr > () = expr_level::make(yylhs.location); }
#line 3837 "parser.cpp" #line 3847 "parser.cpp"
break; break;
case 255: // expr_animation: "%" "identifier" case 255: // expr_animation: "%" "identifier"
#line 972 "parser.ypp" #line 985 "parser.ypp"
{ yylhs.value.as < expr_animation::ptr > () = expr_animation::make(yylhs.location, yystack_[0].value.as < std::string > ()); } { yylhs.value.as < expr_animation::ptr > () = expr_animation::make(yylhs.location, yystack_[0].value.as < std::string > ()); }
#line 3843 "parser.cpp" #line 3853 "parser.cpp"
break; break;
case 256: // expr_animtree: "#animtree" case 256: // expr_animtree: "#animtree"
#line 977 "parser.ypp" #line 990 "parser.ypp"
{ yylhs.value.as < expr_animtree::ptr > () = expr_animtree::make(yylhs.location); } { yylhs.value.as < expr_animtree::ptr > () = expr_animtree::make(yylhs.location); }
#line 3849 "parser.cpp" #line 3859 "parser.cpp"
break; break;
case 257: // expr_identifier_nosize: "identifier" case 257: // expr_identifier_nosize: "identifier"
#line 982 "parser.ypp" #line 995 "parser.ypp"
{ yylhs.value.as < expr_identifier::ptr > () = expr_identifier::make(yylhs.location, yystack_[0].value.as < std::string > ()); } { yylhs.value.as < expr_identifier::ptr > () = expr_identifier::make(yylhs.location, yystack_[0].value.as < std::string > ()); }
#line 3855 "parser.cpp" #line 3865 "parser.cpp"
break; break;
case 258: // expr_identifier: "identifier" case 258: // expr_identifier: "identifier"
#line 987 "parser.ypp" #line 1000 "parser.ypp"
{ yylhs.value.as < expr_identifier::ptr > () = expr_identifier::make(yylhs.location, yystack_[0].value.as < std::string > ()); } { yylhs.value.as < expr_identifier::ptr > () = expr_identifier::make(yylhs.location, yystack_[0].value.as < std::string > ()); }
#line 3861 "parser.cpp" #line 3871 "parser.cpp"
break; break;
case 259: // expr_identifier: "size" case 259: // expr_identifier: "size"
#line 989 "parser.ypp" #line 1002 "parser.ypp"
{ yylhs.value.as < expr_identifier::ptr > () = expr_identifier::make(yylhs.location, "size"); } { yylhs.value.as < expr_identifier::ptr > () = expr_identifier::make(yylhs.location, "size"); }
#line 3867 "parser.cpp" #line 3877 "parser.cpp"
break; break;
case 260: // expr_path: "path" "/" "identifier" case 260: // expr_path: "path" "/" "identifier"
#line 994 "parser.ypp" #line 1007 "parser.ypp"
{ yylhs.value.as < expr_path::ptr > () = expr_path::make(yylhs.location, yystack_[2].value.as < std::string > () + "/" + yystack_[0].value.as < std::string > ()); } { yylhs.value.as < expr_path::ptr > () = expr_path::make(yylhs.location, yystack_[2].value.as < std::string > () + "/" + yystack_[0].value.as < std::string > ()); }
#line 3873 "parser.cpp" #line 3883 "parser.cpp"
break; break;
case 261: // expr_path: "identifier" case 261: // expr_path: "identifier"
#line 996 "parser.ypp" #line 1009 "parser.ypp"
{ yylhs.value.as < expr_path::ptr > () = expr_path::make(yylhs.location, yystack_[0].value.as < std::string > ()); } { yylhs.value.as < expr_path::ptr > () = expr_path::make(yylhs.location, yystack_[0].value.as < std::string > ()); }
#line 3879 "parser.cpp" #line 3889 "parser.cpp"
break; break;
case 262: // expr_path: "path" case 262: // expr_path: "path"
#line 998 "parser.ypp" #line 1011 "parser.ypp"
{ yylhs.value.as < expr_path::ptr > () = expr_path::make(yylhs.location, yystack_[0].value.as < std::string > ()); } { yylhs.value.as < expr_path::ptr > () = expr_path::make(yylhs.location, yystack_[0].value.as < std::string > ()); }
#line 3885 "parser.cpp" #line 3895 "parser.cpp"
break; break;
case 263: // expr_istring: "localized string" case 263: // expr_istring: "localized string"
#line 1003 "parser.ypp" #line 1016 "parser.ypp"
{ yylhs.value.as < expr_istring::ptr > () = expr_istring::make(yylhs.location, yystack_[0].value.as < std::string > ()); } { yylhs.value.as < expr_istring::ptr > () = expr_istring::make(yylhs.location, yystack_[0].value.as < std::string > ()); }
#line 3891 "parser.cpp" #line 3901 "parser.cpp"
break; break;
case 264: // expr_string: "string literal" case 264: // expr_string: "string literal"
#line 1008 "parser.ypp" #line 1021 "parser.ypp"
{ yylhs.value.as < expr_string::ptr > () = expr_string::make(yylhs.location, yystack_[0].value.as < std::string > ()); } { yylhs.value.as < expr_string::ptr > () = expr_string::make(yylhs.location, yystack_[0].value.as < std::string > ()); }
#line 3897 "parser.cpp" #line 3907 "parser.cpp"
break; break;
case 265: // expr_vector: "(" expr "," expr "," expr ")" case 265: // expr_vector: "(" expr "," expr "," expr ")"
#line 1013 "parser.ypp" #line 1026 "parser.ypp"
{ yylhs.value.as < expr_vector::ptr > () = expr_vector::make(yylhs.location, std::move(yystack_[5].value.as < expr::ptr > ()), std::move(yystack_[3].value.as < expr::ptr > ()), std::move(yystack_[1].value.as < expr::ptr > ())); } { yylhs.value.as < expr_vector::ptr > () = expr_vector::make(yylhs.location, std::move(yystack_[5].value.as < expr::ptr > ()), std::move(yystack_[3].value.as < expr::ptr > ()), std::move(yystack_[1].value.as < expr::ptr > ())); }
#line 3903 "parser.cpp" #line 3913 "parser.cpp"
break; break;
case 266: // expr_hash: "hash string" case 266: // expr_hash: "hash string"
#line 1018 "parser.ypp" #line 1031 "parser.ypp"
{ yylhs.value.as < expr_hash::ptr > () = expr_hash::make(yylhs.location, yystack_[0].value.as < std::string > ()); } { yylhs.value.as < expr_hash::ptr > () = expr_hash::make(yylhs.location, yystack_[0].value.as < std::string > ()); }
#line 3909 "parser.cpp" #line 3919 "parser.cpp"
break; break;
case 267: // expr_float: "-" "float" case 267: // expr_float: "-" "float"
#line 1023 "parser.ypp" #line 1036 "parser.ypp"
{ yylhs.value.as < expr_float::ptr > () = expr_float::make(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } { yylhs.value.as < expr_float::ptr > () = expr_float::make(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); }
#line 3915 "parser.cpp" #line 3925 "parser.cpp"
break; break;
case 268: // expr_float: "float" case 268: // expr_float: "float"
#line 1025 "parser.ypp" #line 1038 "parser.ypp"
{ yylhs.value.as < expr_float::ptr > () = expr_float::make(yylhs.location, yystack_[0].value.as < std::string > ()); } { yylhs.value.as < expr_float::ptr > () = expr_float::make(yylhs.location, yystack_[0].value.as < std::string > ()); }
#line 3921 "parser.cpp" #line 3931 "parser.cpp"
break; break;
case 269: // expr_integer: "-" "integer" case 269: // expr_integer: "-" "integer"
#line 1030 "parser.ypp" #line 1043 "parser.ypp"
{ yylhs.value.as < expr_integer::ptr > () = expr_integer::make(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } { yylhs.value.as < expr_integer::ptr > () = expr_integer::make(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); }
#line 3927 "parser.cpp" #line 3937 "parser.cpp"
break; break;
case 270: // expr_integer: "integer" case 270: // expr_integer: "integer"
#line 1032 "parser.ypp" #line 1045 "parser.ypp"
{ yylhs.value.as < expr_integer::ptr > () = expr_integer::make(yylhs.location, yystack_[0].value.as < std::string > ()); } { yylhs.value.as < expr_integer::ptr > () = expr_integer::make(yylhs.location, yystack_[0].value.as < std::string > ()); }
#line 3933 "parser.cpp" #line 3943 "parser.cpp"
break; break;
case 271: // expr_false: "false" case 271: // expr_false: "false"
#line 1037 "parser.ypp" #line 1050 "parser.ypp"
{ yylhs.value.as < expr_false::ptr > () = expr_false::make(yylhs.location); } { yylhs.value.as < expr_false::ptr > () = expr_false::make(yylhs.location); }
#line 3939 "parser.cpp" #line 3949 "parser.cpp"
break; break;
case 272: // expr_true: "true" case 272: // expr_true: "true"
#line 1042 "parser.ypp" #line 1055 "parser.ypp"
{ yylhs.value.as < expr_true::ptr > () = expr_true::make(yylhs.location); } { yylhs.value.as < expr_true::ptr > () = expr_true::make(yylhs.location); }
#line 3945 "parser.cpp" #line 3955 "parser.cpp"
break; break;
#line 3949 "parser.cpp" #line 3959 "parser.cpp"
default: default:
break; break;
@ -5423,15 +5433,15 @@ namespace xsk { namespace arc {
688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697,
698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707,
708, 709, 713, 718, 720, 722, 724, 729, 734, 735, 708, 709, 713, 718, 720, 722, 724, 729, 734, 735,
738, 739, 743, 745, 747, 749, 754, 756, 761, 763, 739, 746, 756, 758, 760, 762, 767, 769, 774, 776,
765, 767, 770, 774, 779, 782, 786, 788, 793, 798, 778, 780, 783, 787, 792, 795, 799, 801, 806, 811,
803, 808, 813, 818, 823, 828, 833, 838, 843, 848, 816, 821, 826, 831, 836, 841, 846, 851, 856, 861,
853, 858, 863, 868, 873, 878, 883, 888, 890, 895, 866, 871, 876, 881, 886, 891, 896, 901, 903, 908,
897, 899, 901, 903, 905, 907, 909, 914, 919, 924, 910, 912, 914, 916, 918, 920, 922, 927, 932, 937,
929, 930, 931, 932, 933, 934, 935, 936, 937, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 954,
946, 951, 956, 961, 966, 971, 976, 981, 986, 988, 959, 964, 969, 974, 979, 984, 989, 994, 999, 1001,
993, 995, 997, 1002, 1007, 1012, 1017, 1022, 1024, 1029, 1006, 1008, 1010, 1015, 1020, 1025, 1030, 1035, 1037, 1042,
1031, 1036, 1041 1044, 1049, 1054
}; };
void void
@ -5464,9 +5474,9 @@ namespace xsk { namespace arc {
#line 13 "parser.ypp" #line 13 "parser.ypp"
} } // xsk::arc } } // xsk::arc
#line 5474 "parser.cpp" #line 5484 "parser.cpp"
#line 1045 "parser.ypp" #line 1058 "parser.ypp"
namespace xsk::arc namespace xsk::arc

View File

@ -52,10 +52,6 @@ namespace xsk::gsc
// Take the name prefix into account. // Take the name prefix into account.
#define yylex GSClex #define yylex GSClex
#ifndef YY_ #ifndef YY_
# if defined YYENABLE_NLS && YYENABLE_NLS # if defined YYENABLE_NLS && YYENABLE_NLS
# if ENABLE_NLS # if ENABLE_NLS
@ -3221,412 +3217,422 @@ namespace xsk { namespace gsc {
break; break;
case 183: // expr_method: expr_object expr_function case 183: // expr_method: expr_object expr_function
#line 732 "parser.ypp" #line 734 "parser.ypp"
{ yylhs.value.as < expr_method::ptr > () = expr_method::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < call::ptr > ())); } {
#line 3230 "parser.cpp" if (yystack_[1].value.as < expr::ptr > ()->loc().begin.line != yystack_[0].value.as < call::ptr > ()->loc().begin.line)
error(yystack_[0].value.as < call::ptr > ()->loc(), "missing ';' ?");
yylhs.value.as < expr_method::ptr > () = expr_method::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < call::ptr > ()));
}
#line 3235 "parser.cpp"
break; break;
case 184: // expr_method: expr_object expr_pointer case 184: // expr_method: expr_object expr_pointer
#line 733 "parser.ypp" #line 741 "parser.ypp"
{ yylhs.value.as < expr_method::ptr > () = expr_method::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < call::ptr > ())); } {
#line 3236 "parser.cpp" if (yystack_[1].value.as < expr::ptr > ()->loc().begin.line != yystack_[0].value.as < call::ptr > ()->loc().begin.line)
error(yystack_[0].value.as < call::ptr > ()->loc(), "missing ';' ?");
yylhs.value.as < expr_method::ptr > () = expr_method::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < call::ptr > ()));
}
#line 3246 "parser.cpp"
break; break;
case 185: // expr_function: expr_identifier "(" expr_arguments ")" case 185: // expr_function: expr_identifier "(" expr_arguments ")"
#line 738 "parser.ypp" #line 751 "parser.ypp"
{ yylhs.value.as < call::ptr > () = expr_function::make(yylhs.location, expr_path::make(yylhs.location), std::move(yystack_[3].value.as < expr_identifier::ptr > ()), std::move(yystack_[1].value.as < expr_arguments::ptr > ()), call::mode::normal); } { yylhs.value.as < call::ptr > () = expr_function::make(yylhs.location, expr_path::make(yylhs.location), std::move(yystack_[3].value.as < expr_identifier::ptr > ()), std::move(yystack_[1].value.as < expr_arguments::ptr > ()), call::mode::normal); }
#line 3242 "parser.cpp" #line 3252 "parser.cpp"
break; break;
case 186: // expr_function: expr_path "::" expr_identifier "(" expr_arguments ")" case 186: // expr_function: expr_path "::" expr_identifier "(" expr_arguments ")"
#line 740 "parser.ypp" #line 753 "parser.ypp"
{ yylhs.value.as < call::ptr > () = expr_function::make(yylhs.location, std::move(yystack_[5].value.as < expr_path::ptr > ()), std::move(yystack_[3].value.as < expr_identifier::ptr > ()), std::move(yystack_[1].value.as < expr_arguments::ptr > ()), call::mode::normal); } { yylhs.value.as < call::ptr > () = expr_function::make(yylhs.location, std::move(yystack_[5].value.as < expr_path::ptr > ()), std::move(yystack_[3].value.as < expr_identifier::ptr > ()), std::move(yystack_[1].value.as < expr_arguments::ptr > ()), call::mode::normal); }
#line 3248 "parser.cpp" #line 3258 "parser.cpp"
break; break;
case 187: // expr_function: "thread" expr_identifier "(" expr_arguments ")" case 187: // expr_function: "thread" expr_identifier "(" expr_arguments ")"
#line 742 "parser.ypp" #line 755 "parser.ypp"
{ yylhs.value.as < call::ptr > () = expr_function::make(yylhs.location, expr_path::make(yylhs.location), std::move(yystack_[3].value.as < expr_identifier::ptr > ()), std::move(yystack_[1].value.as < expr_arguments::ptr > ()), call::mode::thread); } { yylhs.value.as < call::ptr > () = expr_function::make(yylhs.location, expr_path::make(yylhs.location), std::move(yystack_[3].value.as < expr_identifier::ptr > ()), std::move(yystack_[1].value.as < expr_arguments::ptr > ()), call::mode::thread); }
#line 3254 "parser.cpp" #line 3264 "parser.cpp"
break; break;
case 188: // expr_function: "thread" expr_path "::" expr_identifier "(" expr_arguments ")" case 188: // expr_function: "thread" expr_path "::" expr_identifier "(" expr_arguments ")"
#line 744 "parser.ypp" #line 757 "parser.ypp"
{ yylhs.value.as < call::ptr > () = expr_function::make(yylhs.location, std::move(yystack_[5].value.as < expr_path::ptr > ()), std::move(yystack_[3].value.as < expr_identifier::ptr > ()), std::move(yystack_[1].value.as < expr_arguments::ptr > ()), call::mode::thread); } { yylhs.value.as < call::ptr > () = expr_function::make(yylhs.location, std::move(yystack_[5].value.as < expr_path::ptr > ()), std::move(yystack_[3].value.as < expr_identifier::ptr > ()), std::move(yystack_[1].value.as < expr_arguments::ptr > ()), call::mode::thread); }
#line 3260 "parser.cpp" #line 3270 "parser.cpp"
break; break;
case 189: // expr_function: "childthread" expr_identifier "(" expr_arguments ")" case 189: // expr_function: "childthread" expr_identifier "(" expr_arguments ")"
#line 746 "parser.ypp" #line 759 "parser.ypp"
{ yylhs.value.as < call::ptr > () = expr_function::make(yylhs.location, expr_path::make(yylhs.location), std::move(yystack_[3].value.as < expr_identifier::ptr > ()), std::move(yystack_[1].value.as < expr_arguments::ptr > ()), call::mode::childthread); } { yylhs.value.as < call::ptr > () = expr_function::make(yylhs.location, expr_path::make(yylhs.location), std::move(yystack_[3].value.as < expr_identifier::ptr > ()), std::move(yystack_[1].value.as < expr_arguments::ptr > ()), call::mode::childthread); }
#line 3266 "parser.cpp" #line 3276 "parser.cpp"
break; break;
case 190: // expr_function: "childthread" expr_path "::" expr_identifier "(" expr_arguments ")" case 190: // expr_function: "childthread" expr_path "::" expr_identifier "(" expr_arguments ")"
#line 748 "parser.ypp" #line 761 "parser.ypp"
{ yylhs.value.as < call::ptr > () = expr_function::make(yylhs.location, std::move(yystack_[5].value.as < expr_path::ptr > ()), std::move(yystack_[3].value.as < expr_identifier::ptr > ()), std::move(yystack_[1].value.as < expr_arguments::ptr > ()), call::mode::childthread); } { yylhs.value.as < call::ptr > () = expr_function::make(yylhs.location, std::move(yystack_[5].value.as < expr_path::ptr > ()), std::move(yystack_[3].value.as < expr_identifier::ptr > ()), std::move(yystack_[1].value.as < expr_arguments::ptr > ()), call::mode::childthread); }
#line 3272 "parser.cpp" #line 3282 "parser.cpp"
break; break;
case 191: // expr_pointer: "[" "[" expr "]" "]" "(" expr_arguments ")" case 191: // expr_pointer: "[" "[" expr "]" "]" "(" expr_arguments ")"
#line 753 "parser.ypp" #line 766 "parser.ypp"
{ yylhs.value.as < call::ptr > () = expr_pointer::make(yylhs.location, std::move(yystack_[5].value.as < expr::ptr > ()), std::move(yystack_[1].value.as < expr_arguments::ptr > ()), call::mode::normal); } { yylhs.value.as < call::ptr > () = expr_pointer::make(yylhs.location, std::move(yystack_[5].value.as < expr::ptr > ()), std::move(yystack_[1].value.as < expr_arguments::ptr > ()), call::mode::normal); }
#line 3278 "parser.cpp" #line 3288 "parser.cpp"
break; break;
case 192: // expr_pointer: "thread" "[" "[" expr "]" "]" "(" expr_arguments ")" case 192: // expr_pointer: "thread" "[" "[" expr "]" "]" "(" expr_arguments ")"
#line 755 "parser.ypp" #line 768 "parser.ypp"
{ yylhs.value.as < call::ptr > () = expr_pointer::make(yylhs.location, std::move(yystack_[5].value.as < expr::ptr > ()), std::move(yystack_[1].value.as < expr_arguments::ptr > ()), call::mode::thread); } { yylhs.value.as < call::ptr > () = expr_pointer::make(yylhs.location, std::move(yystack_[5].value.as < expr::ptr > ()), std::move(yystack_[1].value.as < expr_arguments::ptr > ()), call::mode::thread); }
#line 3284 "parser.cpp" #line 3294 "parser.cpp"
break; break;
case 193: // expr_pointer: "childthread" "[" "[" expr "]" "]" "(" expr_arguments ")" case 193: // expr_pointer: "childthread" "[" "[" expr "]" "]" "(" expr_arguments ")"
#line 757 "parser.ypp" #line 770 "parser.ypp"
{ yylhs.value.as < call::ptr > () = expr_pointer::make(yylhs.location, std::move(yystack_[5].value.as < expr::ptr > ()), std::move(yystack_[1].value.as < expr_arguments::ptr > ()), call::mode::childthread); } { yylhs.value.as < call::ptr > () = expr_pointer::make(yylhs.location, std::move(yystack_[5].value.as < expr::ptr > ()), std::move(yystack_[1].value.as < expr_arguments::ptr > ()), call::mode::childthread); }
#line 3290 "parser.cpp" #line 3300 "parser.cpp"
break; break;
case 194: // expr_pointer: "call" "[" "[" expr "]" "]" "(" expr_arguments ")" case 194: // expr_pointer: "call" "[" "[" expr "]" "]" "(" expr_arguments ")"
#line 759 "parser.ypp" #line 772 "parser.ypp"
{ yylhs.value.as < call::ptr > () = expr_pointer::make(yylhs.location, std::move(yystack_[5].value.as < expr::ptr > ()), std::move(yystack_[1].value.as < expr_arguments::ptr > ()), call::mode::builtin); } { yylhs.value.as < call::ptr > () = expr_pointer::make(yylhs.location, std::move(yystack_[5].value.as < expr::ptr > ()), std::move(yystack_[1].value.as < expr_arguments::ptr > ()), call::mode::builtin); }
#line 3296 "parser.cpp" #line 3306 "parser.cpp"
break; break;
case 195: // expr_add_array: "[" expr_arguments_no_empty "]" case 195: // expr_add_array: "[" expr_arguments_no_empty "]"
#line 764 "parser.ypp" #line 777 "parser.ypp"
{ yylhs.value.as < expr_add_array::ptr > () = expr_add_array::make(yylhs.location, std::move(yystack_[1].value.as < expr_arguments::ptr > ())); } { yylhs.value.as < expr_add_array::ptr > () = expr_add_array::make(yylhs.location, std::move(yystack_[1].value.as < expr_arguments::ptr > ())); }
#line 3302 "parser.cpp" #line 3312 "parser.cpp"
break; break;
case 196: // expr_parameters: expr_parameters "," expr_identifier case 196: // expr_parameters: expr_parameters "," expr_identifier
#line 769 "parser.ypp" #line 782 "parser.ypp"
{ yylhs.value.as < expr_parameters::ptr > () = std::move(yystack_[2].value.as < expr_parameters::ptr > ()); yylhs.value.as < expr_parameters::ptr > ()->list.push_back(std::move(yystack_[0].value.as < expr_identifier::ptr > ())); } { yylhs.value.as < expr_parameters::ptr > () = std::move(yystack_[2].value.as < expr_parameters::ptr > ()); yylhs.value.as < expr_parameters::ptr > ()->list.push_back(std::move(yystack_[0].value.as < expr_identifier::ptr > ())); }
#line 3308 "parser.cpp" #line 3318 "parser.cpp"
break; break;
case 197: // expr_parameters: expr_identifier case 197: // expr_parameters: expr_identifier
#line 771 "parser.ypp" #line 784 "parser.ypp"
{ yylhs.value.as < expr_parameters::ptr > () = expr_parameters::make(yylhs.location); yylhs.value.as < expr_parameters::ptr > ()->list.push_back(std::move(yystack_[0].value.as < expr_identifier::ptr > ())); } { yylhs.value.as < expr_parameters::ptr > () = expr_parameters::make(yylhs.location); yylhs.value.as < expr_parameters::ptr > ()->list.push_back(std::move(yystack_[0].value.as < expr_identifier::ptr > ())); }
#line 3314 "parser.cpp" #line 3324 "parser.cpp"
break; break;
case 198: // expr_parameters: %empty case 198: // expr_parameters: %empty
#line 773 "parser.ypp" #line 786 "parser.ypp"
{ yylhs.value.as < expr_parameters::ptr > () = expr_parameters::make(yylhs.location); } { yylhs.value.as < expr_parameters::ptr > () = expr_parameters::make(yylhs.location); }
#line 3320 "parser.cpp" #line 3330 "parser.cpp"
break; break;
case 199: // expr_arguments: expr_arguments_no_empty case 199: // expr_arguments: expr_arguments_no_empty
#line 778 "parser.ypp" #line 791 "parser.ypp"
{ yylhs.value.as < expr_arguments::ptr > () = std::move(yystack_[0].value.as < expr_arguments::ptr > ()); } { yylhs.value.as < expr_arguments::ptr > () = std::move(yystack_[0].value.as < expr_arguments::ptr > ()); }
#line 3326 "parser.cpp" #line 3336 "parser.cpp"
break; break;
case 200: // expr_arguments: %empty case 200: // expr_arguments: %empty
#line 780 "parser.ypp" #line 793 "parser.ypp"
{ yylhs.value.as < expr_arguments::ptr > () = expr_arguments::make(yylhs.location); } { yylhs.value.as < expr_arguments::ptr > () = expr_arguments::make(yylhs.location); }
#line 3332 "parser.cpp" #line 3342 "parser.cpp"
break; break;
case 201: // expr_arguments_no_empty: expr_arguments "," expr case 201: // expr_arguments_no_empty: expr_arguments "," expr
#line 785 "parser.ypp" #line 798 "parser.ypp"
{ yylhs.value.as < expr_arguments::ptr > () = std::move(yystack_[2].value.as < expr_arguments::ptr > ()); yylhs.value.as < expr_arguments::ptr > ()->list.push_back(std::move(yystack_[0].value.as < expr::ptr > ())); } { yylhs.value.as < expr_arguments::ptr > () = std::move(yystack_[2].value.as < expr_arguments::ptr > ()); yylhs.value.as < expr_arguments::ptr > ()->list.push_back(std::move(yystack_[0].value.as < expr::ptr > ())); }
#line 3338 "parser.cpp" #line 3348 "parser.cpp"
break; break;
case 202: // expr_arguments_no_empty: expr case 202: // expr_arguments_no_empty: expr
#line 787 "parser.ypp" #line 800 "parser.ypp"
{ yylhs.value.as < expr_arguments::ptr > () = expr_arguments::make(yylhs.location); yylhs.value.as < expr_arguments::ptr > ()->list.push_back(std::move(yystack_[0].value.as < expr::ptr > ())); } { yylhs.value.as < expr_arguments::ptr > () = expr_arguments::make(yylhs.location); yylhs.value.as < expr_arguments::ptr > ()->list.push_back(std::move(yystack_[0].value.as < expr::ptr > ())); }
#line 3344 "parser.cpp" #line 3354 "parser.cpp"
break; break;
case 203: // expr_isdefined: "isdefined" "(" expr ")" case 203: // expr_isdefined: "isdefined" "(" expr ")"
#line 792 "parser.ypp" #line 805 "parser.ypp"
{ yylhs.value.as < expr_isdefined::ptr > () = expr_isdefined::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); } { yylhs.value.as < expr_isdefined::ptr > () = expr_isdefined::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); }
#line 3350 "parser.cpp" #line 3360 "parser.cpp"
break; break;
case 204: // expr_istrue: "istrue" "(" expr ")" case 204: // expr_istrue: "istrue" "(" expr ")"
#line 797 "parser.ypp" #line 810 "parser.ypp"
{ yylhs.value.as < expr_istrue::ptr > () = expr_istrue::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); } { yylhs.value.as < expr_istrue::ptr > () = expr_istrue::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); }
#line 3356 "parser.cpp" #line 3366 "parser.cpp"
break; break;
case 205: // expr_reference: "::" expr_identifier case 205: // expr_reference: "::" expr_identifier
#line 802 "parser.ypp" #line 815 "parser.ypp"
{ yylhs.value.as < expr_reference::ptr > () = expr_reference::make(yylhs.location, expr_path::make(yylhs.location), std::move(yystack_[0].value.as < expr_identifier::ptr > ())); } { yylhs.value.as < expr_reference::ptr > () = expr_reference::make(yylhs.location, expr_path::make(yylhs.location), std::move(yystack_[0].value.as < expr_identifier::ptr > ())); }
#line 3362 "parser.cpp" #line 3372 "parser.cpp"
break; break;
case 206: // expr_reference: expr_path "::" expr_identifier case 206: // expr_reference: expr_path "::" expr_identifier
#line 804 "parser.ypp" #line 817 "parser.ypp"
{ yylhs.value.as < expr_reference::ptr > () = expr_reference::make(yylhs.location, std::move(yystack_[2].value.as < expr_path::ptr > ()), std::move(yystack_[0].value.as < expr_identifier::ptr > ())); } { yylhs.value.as < expr_reference::ptr > () = expr_reference::make(yylhs.location, std::move(yystack_[2].value.as < expr_path::ptr > ()), std::move(yystack_[0].value.as < expr_identifier::ptr > ())); }
#line 3368 "parser.cpp" #line 3378 "parser.cpp"
break; break;
case 207: // expr_tuple: "[" expr_tuple_arguments "]" case 207: // expr_tuple: "[" expr_tuple_arguments "]"
#line 809 "parser.ypp" #line 822 "parser.ypp"
{ {
yylhs.value.as < expr::ptr > () = std::move(yystack_[1].value.as < expr_tuple::ptr > ()); yylhs.value.as < expr::ptr > () = std::move(yystack_[1].value.as < expr_tuple::ptr > ());
yylhs.value.as < expr::ptr > ()->as<expr_tuple>().temp = expr_identifier::make(yylhs.value.as < expr::ptr > ()->loc(), fmt::format("_temp_{}", ++index)); yylhs.value.as < expr::ptr > ()->as<expr_tuple>().temp = expr_identifier::make(yylhs.value.as < expr::ptr > ()->loc(), fmt::format("_temp_{}", ++index));
} }
#line 3377 "parser.cpp" #line 3387 "parser.cpp"
break; break;
case 208: // expr_tuple_arguments: expr_tuple_arguments "," expr_tuple_types case 208: // expr_tuple_arguments: expr_tuple_arguments "," expr_tuple_types
#line 817 "parser.ypp" #line 830 "parser.ypp"
{ yylhs.value.as < expr_tuple::ptr > () = std::move(yystack_[2].value.as < expr_tuple::ptr > ()); yylhs.value.as < expr_tuple::ptr > ()->list.push_back(std::move(yystack_[0].value.as < expr::ptr > ())); } { yylhs.value.as < expr_tuple::ptr > () = std::move(yystack_[2].value.as < expr_tuple::ptr > ()); yylhs.value.as < expr_tuple::ptr > ()->list.push_back(std::move(yystack_[0].value.as < expr::ptr > ())); }
#line 3383 "parser.cpp" #line 3393 "parser.cpp"
break; break;
case 209: // expr_tuple_arguments: expr_tuple_types case 209: // expr_tuple_arguments: expr_tuple_types
#line 819 "parser.ypp" #line 832 "parser.ypp"
{ yylhs.value.as < expr_tuple::ptr > () = expr_tuple::make(yylhs.location); yylhs.value.as < expr_tuple::ptr > ()->list.push_back(std::move(yystack_[0].value.as < expr::ptr > ())); } { yylhs.value.as < expr_tuple::ptr > () = expr_tuple::make(yylhs.location); yylhs.value.as < expr_tuple::ptr > ()->list.push_back(std::move(yystack_[0].value.as < expr::ptr > ())); }
#line 3389 "parser.cpp" #line 3399 "parser.cpp"
break; break;
case 210: // expr_tuple_types: expr_array case 210: // expr_tuple_types: expr_array
#line 823 "parser.ypp" #line 836 "parser.ypp"
{ yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_array::ptr > ()); } { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_array::ptr > ()); }
#line 3395 "parser.cpp" #line 3405 "parser.cpp"
break; break;
case 211: // expr_tuple_types: expr_field case 211: // expr_tuple_types: expr_field
#line 824 "parser.ypp" #line 837 "parser.ypp"
{ yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_field::ptr > ()); } { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_field::ptr > ()); }
#line 3401 "parser.cpp" #line 3411 "parser.cpp"
break; break;
case 212: // expr_tuple_types: expr_identifier case 212: // expr_tuple_types: expr_identifier
#line 825 "parser.ypp" #line 838 "parser.ypp"
{ yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_identifier::ptr > ()); } { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_identifier::ptr > ()); }
#line 3407 "parser.cpp" #line 3417 "parser.cpp"
break; break;
case 213: // expr_array: expr_object "[" expr "]" case 213: // expr_array: expr_object "[" expr "]"
#line 830 "parser.ypp" #line 843 "parser.ypp"
{ yylhs.value.as < expr_array::ptr > () = expr_array::make(yylhs.location, std::move(yystack_[3].value.as < expr::ptr > ()), std::move(yystack_[1].value.as < expr::ptr > ())); } { yylhs.value.as < expr_array::ptr > () = expr_array::make(yylhs.location, std::move(yystack_[3].value.as < expr::ptr > ()), std::move(yystack_[1].value.as < expr::ptr > ())); }
#line 3413 "parser.cpp" #line 3423 "parser.cpp"
break; break;
case 214: // expr_field: expr_object "." expr_identifier_nosize case 214: // expr_field: expr_object "." expr_identifier_nosize
#line 835 "parser.ypp" #line 848 "parser.ypp"
{ yylhs.value.as < expr_field::ptr > () = expr_field::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr_identifier::ptr > ())); } { yylhs.value.as < expr_field::ptr > () = expr_field::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ()), std::move(yystack_[0].value.as < expr_identifier::ptr > ())); }
#line 3419 "parser.cpp" #line 3429 "parser.cpp"
break; break;
case 215: // expr_size: expr_object "." "size" case 215: // expr_size: expr_object "." "size"
#line 840 "parser.ypp" #line 853 "parser.ypp"
{ yylhs.value.as < expr_size::ptr > () = expr_size::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ())); } { yylhs.value.as < expr_size::ptr > () = expr_size::make(yylhs.location, std::move(yystack_[2].value.as < expr::ptr > ())); }
#line 3425 "parser.cpp" #line 3435 "parser.cpp"
break; break;
case 216: // expr_paren: "(" expr ")" case 216: // expr_paren: "(" expr ")"
#line 845 "parser.ypp" #line 858 "parser.ypp"
{ yylhs.value.as < expr_paren::ptr > () = expr_paren::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); } { yylhs.value.as < expr_paren::ptr > () = expr_paren::make(yylhs.location, std::move(yystack_[1].value.as < expr::ptr > ())); }
#line 3431 "parser.cpp" #line 3441 "parser.cpp"
break; break;
case 217: // expr_object: expr_call case 217: // expr_object: expr_call
#line 849 "parser.ypp" #line 862 "parser.ypp"
{ yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_call::ptr > ()); } { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_call::ptr > ()); }
#line 3437 "parser.cpp" #line 3447 "parser.cpp"
break; break;
case 218: // expr_object: expr_method case 218: // expr_object: expr_method
#line 850 "parser.ypp" #line 863 "parser.ypp"
{ yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_method::ptr > ()); } { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_method::ptr > ()); }
#line 3443 "parser.cpp" #line 3453 "parser.cpp"
break; break;
case 219: // expr_object: expr_array case 219: // expr_object: expr_array
#line 851 "parser.ypp" #line 864 "parser.ypp"
{ yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_array::ptr > ()); } { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_array::ptr > ()); }
#line 3449 "parser.cpp" #line 3459 "parser.cpp"
break; break;
case 220: // expr_object: expr_field case 220: // expr_object: expr_field
#line 852 "parser.ypp" #line 865 "parser.ypp"
{ yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_field::ptr > ()); } { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_field::ptr > ()); }
#line 3455 "parser.cpp" #line 3465 "parser.cpp"
break; break;
case 221: // expr_object: expr_game case 221: // expr_object: expr_game
#line 853 "parser.ypp" #line 866 "parser.ypp"
{ yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_game::ptr > ()); } { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_game::ptr > ()); }
#line 3461 "parser.cpp" #line 3471 "parser.cpp"
break; break;
case 222: // expr_object: expr_self case 222: // expr_object: expr_self
#line 854 "parser.ypp" #line 867 "parser.ypp"
{ yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_self::ptr > ()); } { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_self::ptr > ()); }
#line 3467 "parser.cpp" #line 3477 "parser.cpp"
break; break;
case 223: // expr_object: expr_anim case 223: // expr_object: expr_anim
#line 855 "parser.ypp" #line 868 "parser.ypp"
{ yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_anim::ptr > ()); } { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_anim::ptr > ()); }
#line 3473 "parser.cpp" #line 3483 "parser.cpp"
break; break;
case 224: // expr_object: expr_level case 224: // expr_object: expr_level
#line 856 "parser.ypp" #line 869 "parser.ypp"
{ yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_level::ptr > ()); } { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_level::ptr > ()); }
#line 3479 "parser.cpp" #line 3489 "parser.cpp"
break; break;
case 225: // expr_object: expr_identifier case 225: // expr_object: expr_identifier
#line 857 "parser.ypp" #line 870 "parser.ypp"
{ yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_identifier::ptr > ()); } { yylhs.value.as < expr::ptr > () = std::move(yystack_[0].value.as < expr_identifier::ptr > ()); }
#line 3485 "parser.cpp" #line 3495 "parser.cpp"
break; break;
case 226: // expr_thisthread: "thisthread" case 226: // expr_thisthread: "thisthread"
#line 862 "parser.ypp" #line 875 "parser.ypp"
{ yylhs.value.as < expr_thisthread::ptr > () = expr_thisthread::make(yylhs.location); } { yylhs.value.as < expr_thisthread::ptr > () = expr_thisthread::make(yylhs.location); }
#line 3491 "parser.cpp" #line 3501 "parser.cpp"
break; break;
case 227: // expr_empty_array: "[" "]" case 227: // expr_empty_array: "[" "]"
#line 867 "parser.ypp" #line 880 "parser.ypp"
{ yylhs.value.as < expr_empty_array::ptr > () = expr_empty_array::make(yylhs.location); } { yylhs.value.as < expr_empty_array::ptr > () = expr_empty_array::make(yylhs.location); }
#line 3497 "parser.cpp" #line 3507 "parser.cpp"
break; break;
case 228: // expr_undefined: "undefined" case 228: // expr_undefined: "undefined"
#line 872 "parser.ypp" #line 885 "parser.ypp"
{ yylhs.value.as < expr_undefined::ptr > () = expr_undefined::make(yylhs.location); } { yylhs.value.as < expr_undefined::ptr > () = expr_undefined::make(yylhs.location); }
#line 3503 "parser.cpp" #line 3513 "parser.cpp"
break; break;
case 229: // expr_game: "game" case 229: // expr_game: "game"
#line 877 "parser.ypp" #line 890 "parser.ypp"
{ yylhs.value.as < expr_game::ptr > () = expr_game::make(yylhs.location); } { yylhs.value.as < expr_game::ptr > () = expr_game::make(yylhs.location); }
#line 3509 "parser.cpp" #line 3519 "parser.cpp"
break; break;
case 230: // expr_self: "self" case 230: // expr_self: "self"
#line 882 "parser.ypp" #line 895 "parser.ypp"
{ yylhs.value.as < expr_self::ptr > () = expr_self::make(yylhs.location); } { yylhs.value.as < expr_self::ptr > () = expr_self::make(yylhs.location); }
#line 3515 "parser.cpp" #line 3525 "parser.cpp"
break; break;
case 231: // expr_anim: "anim" case 231: // expr_anim: "anim"
#line 887 "parser.ypp" #line 900 "parser.ypp"
{ yylhs.value.as < expr_anim::ptr > () = expr_anim::make(yylhs.location); } { yylhs.value.as < expr_anim::ptr > () = expr_anim::make(yylhs.location); }
#line 3521 "parser.cpp" #line 3531 "parser.cpp"
break; break;
case 232: // expr_level: "level" case 232: // expr_level: "level"
#line 892 "parser.ypp" #line 905 "parser.ypp"
{ yylhs.value.as < expr_level::ptr > () = expr_level::make(yylhs.location); } { yylhs.value.as < expr_level::ptr > () = expr_level::make(yylhs.location); }
#line 3527 "parser.cpp" #line 3537 "parser.cpp"
break; break;
case 233: // expr_animation: "%" "identifier" case 233: // expr_animation: "%" "identifier"
#line 897 "parser.ypp" #line 910 "parser.ypp"
{ yylhs.value.as < expr_animation::ptr > () = expr_animation::make(yylhs.location, yystack_[0].value.as < std::string > ()); } { yylhs.value.as < expr_animation::ptr > () = expr_animation::make(yylhs.location, yystack_[0].value.as < std::string > ()); }
#line 3533 "parser.cpp" #line 3543 "parser.cpp"
break; break;
case 234: // expr_animtree: "#animtree" case 234: // expr_animtree: "#animtree"
#line 902 "parser.ypp" #line 915 "parser.ypp"
{ yylhs.value.as < expr_animtree::ptr > () = expr_animtree::make(yylhs.location); } { yylhs.value.as < expr_animtree::ptr > () = expr_animtree::make(yylhs.location); }
#line 3539 "parser.cpp" #line 3549 "parser.cpp"
break; break;
case 235: // expr_identifier_nosize: "identifier" case 235: // expr_identifier_nosize: "identifier"
#line 907 "parser.ypp" #line 920 "parser.ypp"
{ yylhs.value.as < expr_identifier::ptr > () = expr_identifier::make(yylhs.location, yystack_[0].value.as < std::string > ()); } { yylhs.value.as < expr_identifier::ptr > () = expr_identifier::make(yylhs.location, yystack_[0].value.as < std::string > ()); }
#line 3545 "parser.cpp" #line 3555 "parser.cpp"
break; break;
case 236: // expr_identifier: "identifier" case 236: // expr_identifier: "identifier"
#line 912 "parser.ypp" #line 925 "parser.ypp"
{ yylhs.value.as < expr_identifier::ptr > () = expr_identifier::make(yylhs.location, yystack_[0].value.as < std::string > ()); } { yylhs.value.as < expr_identifier::ptr > () = expr_identifier::make(yylhs.location, yystack_[0].value.as < std::string > ()); }
#line 3551 "parser.cpp" #line 3561 "parser.cpp"
break; break;
case 237: // expr_identifier: "size" case 237: // expr_identifier: "size"
#line 914 "parser.ypp" #line 927 "parser.ypp"
{ yylhs.value.as < expr_identifier::ptr > () = expr_identifier::make(yylhs.location, "size"); } { yylhs.value.as < expr_identifier::ptr > () = expr_identifier::make(yylhs.location, "size"); }
#line 3557 "parser.cpp" #line 3567 "parser.cpp"
break; break;
case 238: // expr_path: "path" "/" "identifier" case 238: // expr_path: "path" "/" "identifier"
#line 919 "parser.ypp" #line 932 "parser.ypp"
{ yylhs.value.as < expr_path::ptr > () = expr_path::make(yylhs.location, yystack_[2].value.as < std::string > () + "/" + yystack_[0].value.as < std::string > ()); } { yylhs.value.as < expr_path::ptr > () = expr_path::make(yylhs.location, yystack_[2].value.as < std::string > () + "/" + yystack_[0].value.as < std::string > ()); }
#line 3563 "parser.cpp" #line 3573 "parser.cpp"
break; break;
case 239: // expr_path: "identifier" case 239: // expr_path: "identifier"
#line 921 "parser.ypp" #line 934 "parser.ypp"
{ yylhs.value.as < expr_path::ptr > () = expr_path::make(yylhs.location, yystack_[0].value.as < std::string > ()); } { yylhs.value.as < expr_path::ptr > () = expr_path::make(yylhs.location, yystack_[0].value.as < std::string > ()); }
#line 3569 "parser.cpp" #line 3579 "parser.cpp"
break; break;
case 240: // expr_path: "path" case 240: // expr_path: "path"
#line 923 "parser.ypp" #line 936 "parser.ypp"
{ yylhs.value.as < expr_path::ptr > () = expr_path::make(yylhs.location, yystack_[0].value.as < std::string > ()); } { yylhs.value.as < expr_path::ptr > () = expr_path::make(yylhs.location, yystack_[0].value.as < std::string > ()); }
#line 3575 "parser.cpp" #line 3585 "parser.cpp"
break; break;
case 241: // expr_istring: "localized string" case 241: // expr_istring: "localized string"
#line 928 "parser.ypp" #line 941 "parser.ypp"
{ yylhs.value.as < expr_istring::ptr > () = expr_istring::make(yylhs.location, yystack_[0].value.as < std::string > ()); } { yylhs.value.as < expr_istring::ptr > () = expr_istring::make(yylhs.location, yystack_[0].value.as < std::string > ()); }
#line 3581 "parser.cpp" #line 3591 "parser.cpp"
break; break;
case 242: // expr_string: "string literal" case 242: // expr_string: "string literal"
#line 933 "parser.ypp" #line 946 "parser.ypp"
{ yylhs.value.as < expr_string::ptr > () = expr_string::make(yylhs.location, yystack_[0].value.as < std::string > ()); } { yylhs.value.as < expr_string::ptr > () = expr_string::make(yylhs.location, yystack_[0].value.as < std::string > ()); }
#line 3587 "parser.cpp" #line 3597 "parser.cpp"
break; break;
case 243: // expr_vector: "(" expr "," expr "," expr ")" case 243: // expr_vector: "(" expr "," expr "," expr ")"
#line 938 "parser.ypp" #line 951 "parser.ypp"
{ yylhs.value.as < expr_vector::ptr > () = expr_vector::make(yylhs.location, std::move(yystack_[5].value.as < expr::ptr > ()), std::move(yystack_[3].value.as < expr::ptr > ()), std::move(yystack_[1].value.as < expr::ptr > ())); } { yylhs.value.as < expr_vector::ptr > () = expr_vector::make(yylhs.location, std::move(yystack_[5].value.as < expr::ptr > ()), std::move(yystack_[3].value.as < expr::ptr > ()), std::move(yystack_[1].value.as < expr::ptr > ())); }
#line 3593 "parser.cpp" #line 3603 "parser.cpp"
break; break;
case 244: // expr_float: "-" "float" case 244: // expr_float: "-" "float"
#line 943 "parser.ypp" #line 956 "parser.ypp"
{ yylhs.value.as < expr_float::ptr > () = expr_float::make(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } { yylhs.value.as < expr_float::ptr > () = expr_float::make(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); }
#line 3599 "parser.cpp" #line 3609 "parser.cpp"
break; break;
case 245: // expr_float: "float" case 245: // expr_float: "float"
#line 945 "parser.ypp" #line 958 "parser.ypp"
{ yylhs.value.as < expr_float::ptr > () = expr_float::make(yylhs.location, yystack_[0].value.as < std::string > ()); } { yylhs.value.as < expr_float::ptr > () = expr_float::make(yylhs.location, yystack_[0].value.as < std::string > ()); }
#line 3605 "parser.cpp" #line 3615 "parser.cpp"
break; break;
case 246: // expr_integer: "-" "integer" case 246: // expr_integer: "-" "integer"
#line 950 "parser.ypp" #line 963 "parser.ypp"
{ yylhs.value.as < expr_integer::ptr > () = expr_integer::make(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } { yylhs.value.as < expr_integer::ptr > () = expr_integer::make(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); }
#line 3611 "parser.cpp" #line 3621 "parser.cpp"
break; break;
case 247: // expr_integer: "integer" case 247: // expr_integer: "integer"
#line 952 "parser.ypp" #line 965 "parser.ypp"
{ yylhs.value.as < expr_integer::ptr > () = expr_integer::make(yylhs.location, yystack_[0].value.as < std::string > ()); } { yylhs.value.as < expr_integer::ptr > () = expr_integer::make(yylhs.location, yystack_[0].value.as < std::string > ()); }
#line 3617 "parser.cpp" #line 3627 "parser.cpp"
break; break;
case 248: // expr_false: "false" case 248: // expr_false: "false"
#line 957 "parser.ypp" #line 970 "parser.ypp"
{ yylhs.value.as < expr_false::ptr > () = expr_false::make(yylhs.location); } { yylhs.value.as < expr_false::ptr > () = expr_false::make(yylhs.location); }
#line 3623 "parser.cpp" #line 3633 "parser.cpp"
break; break;
case 249: // expr_true: "true" case 249: // expr_true: "true"
#line 962 "parser.ypp" #line 975 "parser.ypp"
{ yylhs.value.as < expr_true::ptr > () = expr_true::make(yylhs.location); } { yylhs.value.as < expr_true::ptr > () = expr_true::make(yylhs.location); }
#line 3629 "parser.cpp" #line 3639 "parser.cpp"
break; break;
#line 3633 "parser.cpp" #line 3643 "parser.cpp"
default: default:
break; break;
@ -4893,13 +4899,13 @@ namespace xsk { namespace gsc {
679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688,
689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698,
699, 700, 701, 702, 703, 707, 712, 714, 716, 718, 699, 700, 701, 702, 703, 707, 712, 714, 716, 718,
723, 728, 729, 732, 733, 737, 739, 741, 743, 745, 723, 728, 729, 733, 740, 750, 752, 754, 756, 758,
747, 752, 754, 756, 758, 763, 768, 770, 773, 777, 760, 765, 767, 769, 771, 776, 781, 783, 786, 790,
780, 784, 786, 791, 796, 801, 803, 808, 816, 818, 793, 797, 799, 804, 809, 814, 816, 821, 829, 831,
823, 824, 825, 829, 834, 839, 844, 849, 850, 851, 836, 837, 838, 842, 847, 852, 857, 862, 863, 864,
852, 853, 854, 855, 856, 857, 861, 866, 871, 876, 865, 866, 867, 868, 869, 870, 874, 879, 884, 889,
881, 886, 891, 896, 901, 906, 911, 913, 918, 920, 894, 899, 904, 909, 914, 919, 924, 926, 931, 933,
922, 927, 932, 937, 942, 944, 949, 951, 956, 961 935, 940, 945, 950, 955, 957, 962, 964, 969, 974
}; };
void void
@ -4932,9 +4938,9 @@ namespace xsk { namespace gsc {
#line 13 "parser.ypp" #line 13 "parser.ypp"
} } // xsk::gsc } } // xsk::gsc
#line 4939 "parser.cpp" #line 4949 "parser.cpp"
#line 965 "parser.ypp" #line 978 "parser.ypp"
namespace xsk::gsc namespace xsk::gsc